diff --git a/.github/workflows/publish_image.yml b/.github/workflows/publish_image.yml index 84c8b8a88c2..6106dad6b42 100644 --- a/.github/workflows/publish_image.yml +++ b/.github/workflows/publish_image.yml @@ -52,7 +52,8 @@ jobs: - uses: docker/build-push-action@v3 with: push: true - context: '{{defaultContext}}:studio' + context: '{{defaultContext}}' + file: studio/Dockerfile target: production platforms: linux/amd64,linux/arm64 tags: ${{ steps.meta.outputs.tags }} diff --git a/DEVELOPERS.md b/DEVELOPERS.md index e427b76ed6f..c9e45c9d5e9 100644 --- a/DEVELOPERS.md +++ b/DEVELOPERS.md @@ -79,7 +79,7 @@ Then visit, and edit, any of the following sites: #### Running sites individually -You can run any of the sites indiviudally by using the scope name. For example: +You can run any of the sites individually by using the scope name. For example: ```sh npm run dev:www diff --git a/apps/docs/components/ButtonCard.tsx b/apps/docs/components/ButtonCard.tsx index 1c069e4d1b5..f1aa4caefbc 100644 --- a/apps/docs/components/ButtonCard.tsx +++ b/apps/docs/components/ButtonCard.tsx @@ -6,8 +6,8 @@ interface Props { title: string description?: string to: string - icon?: string | ReactNode - children?: ReactNode + icon?: string | any + children?: any layout?: 'vertical' | 'horizontal' } diff --git a/apps/docs/components/Extensions.js b/apps/docs/components/Extensions.js new file mode 100644 index 00000000000..47753d6bfde --- /dev/null +++ b/apps/docs/components/Extensions.js @@ -0,0 +1,35 @@ +import React, { useState } from 'react' +import extensions from '../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)} +

+
+
+ ))} +
+ + ) +} diff --git a/apps/docs/components/GuidesTableOfContents.tsx b/apps/docs/components/GuidesTableOfContents.tsx new file mode 100644 index 00000000000..eefa3b085b1 --- /dev/null +++ b/apps/docs/components/GuidesTableOfContents.tsx @@ -0,0 +1,74 @@ +import { FC } from 'react' +import { removeAnchor } from './CustomHTMLElements/CustomHTMLElements.utils' + +const formatSlug = (slug: string) => { + // [Joshen] We will still provide support for headers declared like this: + // ## REST API {#rest-api-overview} + // At least for now, this was a docusaurus thing. + if (slug.includes('#')) return slug.split('#')[1] + return slug +} + +const formatTOCHeader = (content: string) => { + let begin = false + const res = [] + for (const x of content) { + if (x === '`') { + if (!begin) { + begin = true + res.push(``) + } else { + begin = false + res.push(``) + } + } else { + res.push(x) + } + } + return res.join('') +} + +interface TOCHeader { + id: number + level: number + text: string + link: string +} + +interface Props { + list: TOCHeader[] +} + +const GuidesTableOfContents: FC = ({ list }) => { + return ( + + + // + ) +} + +export default GuidesTableOfContents diff --git a/apps/docs/components/LinkCard.tsx b/apps/docs/components/LinkCard.tsx index 8d2edcd90b1..e74ac68384a 100644 --- a/apps/docs/components/LinkCard.tsx +++ b/apps/docs/components/LinkCard.tsx @@ -9,7 +9,7 @@ export default function LinkCard({ }: { title: string description: string - icon: ReactElement + icon: any link: string }) { return ( diff --git a/apps/docs/components/LinkCardsWrapper.tsx b/apps/docs/components/LinkCardsWrapper.tsx index 32bc987a0a3..a268902457d 100644 --- a/apps/docs/components/LinkCardsWrapper.tsx +++ b/apps/docs/components/LinkCardsWrapper.tsx @@ -1,5 +1,5 @@ import { ReactElement } from 'react' -export default function LinkCardsWrapper({ children }: { children: ReactElement }) { +export default function LinkCardsWrapper({ children }: { children: any }) { return
{children}
} diff --git a/apps/docs/components/Navigation/AlgoliaSearch.tsx b/apps/docs/components/Navigation/AlgoliaSearch.tsx index e749ba034ee..206cac08a7f 100644 --- a/apps/docs/components/Navigation/AlgoliaSearch.tsx +++ b/apps/docs/components/Navigation/AlgoliaSearch.tsx @@ -110,15 +110,17 @@ const AlgoliaSearch: FC = ({}) => { : 'capitalize' }`} > - {item.category} - {item.version ? ` (${item.version})` : ''}: + <> + {item.category} + {item.version ? ` (${item.version})` : ''}: +

)}

-

{item.description}

+

{item.description as string}

) diff --git a/apps/docs/components/TableOfContents.tsx b/apps/docs/components/TableOfContents.tsx index 107480cfa96..8be2a831646 100644 --- a/apps/docs/components/TableOfContents.tsx +++ b/apps/docs/components/TableOfContents.tsx @@ -1,3 +1,7 @@ +// [Terry] +// Delete this after we've implemented GuidesTableofContents and moved all guides +// and rename GuidesTableofContents to TableOfContents + import { FC } from 'react' import { getAnchor, removeAnchor } from './CustomHTMLElements/CustomHTMLElements.utils' diff --git a/apps/docs/components/index.tsx b/apps/docs/components/index.tsx index 035b7fc610a..ffaadc1ed96 100644 --- a/apps/docs/components/index.tsx +++ b/apps/docs/components/index.tsx @@ -11,11 +11,13 @@ import JwtGenerator from './JwtGenerator' import Frameworks from './Frameworks' import AuthProviders from './AuthProviders' import FunctionsExamples from './FunctionsExamples' +import Extensions from './Extensions' // Other components import { Heading } from './CustomHTMLElements' import QuickstartIntro from './MDX/quickstart_intro.mdx' import ProjectSetup from './MDX/project_setup.mdx' +import { Mermaid } from 'mdx-mermaid/lib/Mermaid' const components = { Admonition, @@ -28,6 +30,8 @@ const components = { JwtGenerator, QuickstartIntro, ProjectSetup, + Mermaid, + Extensions, Alert: (props: any) => ( {props.children} diff --git a/apps/docs/docs/.gitkeep b/apps/docs/docs/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d diff --git a/apps/docs/docs/404.mdx b/apps/docs/docs/404.mdx deleted file mode 100644 index 78c7d88f970..00000000000 --- a/apps/docs/docs/404.mdx +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: '404' -description: 'Page not found' ---- - -# Page not found diff --git a/apps/docs/docs/features.mdx b/apps/docs/docs/features.mdx deleted file mode 100755 index 4bcf932de71..00000000000 --- a/apps/docs/docs/features.mdx +++ /dev/null @@ -1,172 +0,0 @@ ---- -id: features -title: Features -description: 'Supabase features' ---- - -This is a non-exhaustive list of features that Supabase provides for every project. - -## Database - -### Postgres Database - -Every project is a full Postgres database. [Docs](/docs/guides/database). - -### Database Extensions - -Every database comes with a full set of Postgres extensions. [Docs](/docs/guides/database/extensions). - -### Database Functions - -Create custom database functions which you can call from the browser. [Docs](/docs/guides/database/functions). - -### Database Triggers - -Attach triggers to your tables to handle database changes. [Docs](/docs/guides/auth/managing-user-data#using-triggers). - -### Database Webhooks - -Send database changes to any external service using Webhooks. [Link](https://supabase.com/blog/supabase-functions-updates#database-webhooks-alpha). - -### Database Backups - -Projects are backed up daily with the option to upgrade to Point in Time recovery. - -### Search - -Build search functionality using Postgres Full Text Search. [Docs](/docs/guides/database/full-text-search). - -### Secrets and encryption - -Encrypt sensitive data and store secrets using our Postgres extension, Supabase Vault. [Link](https://supabase.com/blog/supabase-vault). - -### Database migrations - -Develop locally and push your changes to your production database using migrations. [Docs](/docs/guides/cli/local-development#database-migrations) - -
- -## Auth - -### Email & Password Logins - -Build email logins for your application or website. [Docs](/docs/guides/auth/auth-email). - -### Magic Links - -Build passwordless logins for your application or website.[Docs](/docs/guides/auth/auth-magic-link). - -### Social Logins - -Provide social logins - everything from Apple, to GitHub, to Slack. [Docs](/docs/guides/auth/auth-apple). - -### Phone Logins - -Provide phone logins using a 3rd-party SMS provider. [Docs](/docs/guides/auth/auth-twilio). - -### Row Level Security - -Control the data each user can access with Postgres Policies. [Docs](/docs/guides/auth/row-level-security). - -### Serverside Auth Helpers - -Helpers for implementing user authentication in popular frameworks like [Next.js](/docs/guides/auth/auth-helpers/nextjs) and [SvelteKit](/docs/guides/auth/auth-helpers/sveltekit) - -### Auth UI Kit - -Build login and registration pages with custom themes. [Docs](/docs/guides/auth/auth-helpers/auth-ui). - -
- -## APIs & Client libraries - -### Auto-generated REST API - -RESTful APIs are autogenerated from your database, without a single line of code. [Docs](/docs/guides/api#rest-api-overview). - -### Auto-generated GraphQL API - -Fast GraphQL APIs using our custom Postgres GraphQL extension. [Docs](/docs/guides/api#graphql-api-overview). - -### Realtime Database changes - -Receive your database changes through websockets. [Docs](/docs/guides/realtime/postgres-cdc). - -### User Broadcasting - -Send messages between connected users through websockets. [Docs](/docs/guides/realtime#broadcast). - -### User Presence - -Synchronize shared state across your users, including online status and typing indicators. [Docs](/docs/guides/realtime#presence). - -### Client libraries - -Official client libraries for [JavaScript](/docs/reference/javascript/) and [Dart](/docs/reference/dart). -Unofficial libraries [supported by the community](https://github.com/supabase-community#client-libraries). - -
- -## File Storage - -### Large File storage - -Supabase Storage makes it simple to store and serve large files. [Docs](/docs/guides/storage). - -### Storage CDN - -Cache large files using the Supabase CDN. [Docs](/docs/guides/storage-cdn). - -
- -## Edge Functions - -### Deno Edge Functions - -Globally distributed TypeScript functions to execute custom business logic. [Docs](/docs/guides/functions). - -
- -## Project Managment - -### CLI - -Use our CLI to develop your project locally and deploy to the Supabase Platform. [Docs](/docs/reference/cli). - -### Management API - -Manage your projects programmatically. [Docs](/docs/reference/api). - -
- -## Feature Status - -Both Postgres and the Supabase Platform are production-ready. Some tools we offer on top of Postgres are still under development. - -| Product | Feature | Stage | -| -------------------------- | ---------------------- | ------- | -| Database | Postgres | `GA` | -| Database | Triggers | `GA` | -| Database | Functions | `GA` | -| Database | Extensions | `GA` | -| Database | Full Text Search | `GA` | -| Database | Webhooks | `alpha` | -| Database | Point-in-Time Recovery | `alpha` | -| Database | Vault | `alpha` | -| Studio | | `GA` | -| Realtime | Postgres CDC | `beta` | -| Realtime | Broadcast | `alpha` | -| Realtime | Presence | `alpha` | -| Storage | Backend (S3) | `GA` | -| Storage | API | `beta` | -| Storage | CDN | `beta` | -| Edge Functions | | `beta` | -| Auth | OAuth Providers | `beta` | -| Auth | Passwordless | `beta` | -| Auth | Next.js Auth Helpers | `alpha` | -| Auth | SvelteKit Auth Helpers | `alpha` | -| Auth | Remix Auth Helpers | `alpha` | -| Management API | | `beta` | -| CLI | | `beta` | -| Client Library: JavaScript | | `GA` | -| Client Library: Dart | | `beta` | diff --git a/apps/docs/docs/guides/functions/examples.mdx b/apps/docs/docs/guides/functions/examples.mdx deleted file mode 100644 index 12b0f47484d..00000000000 --- a/apps/docs/docs/guides/functions/examples.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -id: examples -title: Examples -description: Useful Supabase Edge Functions 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. - -
- -
diff --git a/apps/docs/docs/guides/storage/storage-sample.mdx b/apps/docs/docs/guides/storage/storage-sample.mdx deleted file mode 100644 index 2e7cc678245..00000000000 --- a/apps/docs/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... diff --git a/apps/docs/docs/reference/storage.mdx b/apps/docs/docs/reference/storage.mdx index 2ee380acae1..e56f8949e7e 100644 --- a/apps/docs/docs/reference/storage.mdx +++ b/apps/docs/docs/reference/storage.mdx @@ -24,5 +24,5 @@ Read [this post](https://supabase.com/blog/supabase-storage) on why we decided t - [Source Code](https://github.com/supabase/storage-api) - [Known bugs and issues](https://github.com/supabase/storage-js/issues) -- [Storage Guides](/guides/storage) +- [Storage Guides](/docs/guides/storage) - [OpenAPI Docs](https://supabase.github.io/storage-api/) diff --git a/apps/docs/layouts/Default.tsx b/apps/docs/layouts/Default.tsx index d0145806d5c..56a5e3ebca8 100644 --- a/apps/docs/layouts/Default.tsx +++ b/apps/docs/layouts/Default.tsx @@ -1,5 +1,5 @@ import { useEffect, FC } from 'react' -import Head from 'next/head' +import { NextSeo } from 'next-seo' import NavBar from '../components/Navigation/NavBar' import SideBar from '../components/Navigation/SideBar' import Footer from '../components/Footer' @@ -36,16 +36,20 @@ const Layout: FC = ({ meta, children, toc }) => { return ( <> - - {meta?.title} | Supabase - - - - - - - - +
diff --git a/apps/docs/layouts/DefaultGuideLayout.tsx b/apps/docs/layouts/DefaultGuideLayout.tsx new file mode 100644 index 00000000000..a164df93f6e --- /dev/null +++ b/apps/docs/layouts/DefaultGuideLayout.tsx @@ -0,0 +1,112 @@ +import { MDXProvider } from '@mdx-js/react' +import { useEffect, FC, useRef, useState } from 'react' +import { NextSeo } from 'next-seo' +import NavBar from '../components/Navigation/NavBar' +import SideBar from '../components/Navigation/SideBar' +import Footer from '../components/Footer' +import GuidesTableOfContents from '~/components/GuidesTableOfContents' +import { useRouter } from 'next/router' +import { getPageType } from '../lib/helpers' +import components from '~/components' +import { menuItems } from '../components/Navigation/Navigation.constants' + +interface Props { + meta: { title: string; description?: string; hide_table_of_contents?: boolean } + children: any + toc?: any + currentPage: string +} + +const Layout: FC = ({ meta, children }) => { + const { asPath } = useRouter() + const page = getPageType(asPath) + + useEffect(() => { + const key = localStorage.getItem('supabaseDarkMode') + if (!key) { + // Default to dark mode if no preference config + document.documentElement.className = 'dark' + } else { + document.documentElement.className = key === 'true' ? 'dark' : '' + } + }, []) + + const articleRef = useRef() + const [tocList, setTocList] = useState([]) + + useEffect(() => { + const articleEl = articleRef.current as HTMLElement + + if (!articleRef.current) return + const headings = Array.from(articleEl.querySelectorAll('h2, h3')) + const newHeadings = headings + .filter((heading) => heading.id) + .map((heading) => { + const text = heading.textContent.replace('#', '') + const link = heading.querySelector('a').getAttribute('href') + const level = heading.tagName === 'H2' ? 2 : 3 + return { text, link, level } + }) + setTocList(newHeadings) + }, []) + + const hasTableOfContents = tocList.length > 0 + + return ( + <> + + +
+ +
+ +
+
+
+ {meta?.title &&

{meta.title}

} + {children} +
+
+ {hasTableOfContents && !meta?.hide_table_of_contents && ( + + )} +
+
+
+
+ + ) +} + +export default Layout diff --git a/apps/docs/lib/docs.ts b/apps/docs/lib/docs.ts index d67a61583f7..daa0f83d6bd 100644 --- a/apps/docs/lib/docs.ts +++ b/apps/docs/lib/docs.ts @@ -45,7 +45,7 @@ export function getDocsBySlug(slug: string) { // if no match, 404 if (!fs.existsSync(fullPath)) { console.log(`\nfile ${fullPath} not found, redirect to 404\n`) - fullPath = join(docsDirectory, 'docs/404.mdx') + fullPath = join(docsDirectory, 'pages/404.mdx') } const fileContents = fs.readFileSync(fullPath, 'utf8') diff --git a/apps/docs/next.config.mjs b/apps/docs/next.config.mjs index 5c1035f4aa0..d36b0c6eec8 100644 --- a/apps/docs/next.config.mjs +++ b/apps/docs/next.config.mjs @@ -1,10 +1,8 @@ import nextMdx from '@next/mdx' -import bundleAnalyzer from '@next/bundle-analyzer' - import remarkGfm from 'remark-gfm' import rehypeSlug from 'rehype-slug' -import theme from 'shiki/themes/nord.json' assert { type: 'json' } +//import theme from 'shiki/themes/nord.json' assert { type: 'json' } import { remarkCodeHike } from '@code-hike/mdx' import withTM from 'next-transpile-modules' @@ -35,14 +33,10 @@ const withMDX = nextMdx({ ], rehypePlugins: [rehypeSlug], // This is required for `MDXProvider` component - providerImportSource: '@mdx-js/react', + // providerImportSource: '@mdx-js/react', }, }) -// const withBundleAnalyzer = bundleAnalyzer({ -// enabled: process.env.ANALYZE === 'true', -// }) - // /** @type {NextConfig} */ const nextConfig = { // Append the default value with md extensions @@ -54,6 +48,27 @@ const nextConfig = { dangerouslyAllowSVG: true, domains: ['avatars.githubusercontent.com', 'github.com', 'user-images.githubusercontent.com'], }, + async headers() { + return [ + { + source: '/(.*)', + headers: [ + { + key: 'Strict-Transport-Security', + value: '', + }, + { + key: 'X-Robots-Tag', + value: 'all', + }, + { + key: 'X-Frame-Options', + value: 'DENY', + }, + ], + }, + ] + }, } // next.config.js diff --git a/apps/docs/package.json b/apps/docs/package.json index 8d7768df8ec..6c85ea530db 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -51,11 +51,13 @@ "jsrsasign": "^10.5.26", "lodash": "^4.17.21", "markdown-toc": "^1.2.0", + "mdx-mermaid": "2.0.0-rc3", "next": "12.1.0", "next-compose-plugins": "^2.2.1", "next-mdx-remote": "^4.1.0", "next-mdx-toc": "^0.1.3", "next-plugin-yaml": "^1.0.1", + "next-seo": "^5.14.1", "next-themes": "0.0.15", "next-transpile-modules": "^9.0.0", "octokit": "^2.0.10", diff --git a/apps/docs/pages/404.mdx b/apps/docs/pages/404.mdx new file mode 100644 index 00000000000..92807aeb5af --- /dev/null +++ b/apps/docs/pages/404.mdx @@ -0,0 +1,6 @@ +export const meta = { + title: '404', + description: 'Page not found', +} + +# Page not found diff --git a/apps/docs/pages/[...slug].tsx b/apps/docs/pages/[...slug].tsx index 5651f9b8be8..aa0c75bec04 100644 --- a/apps/docs/pages/[...slug].tsx +++ b/apps/docs/pages/[...slug].tsx @@ -30,7 +30,6 @@ export default function Doc({ meta, content, toc }: Props) { export async function getStaticProps({ params }: { params: { slug: string[] } }) { let slug - if (params.slug.length > 1) { slug = `docs/${params.slug.join('/')}` } else { diff --git a/apps/docs/docs/architecture.mdx b/apps/docs/pages/architecture.mdx similarity index 96% rename from apps/docs/docs/architecture.mdx rename to apps/docs/pages/architecture.mdx index 57510a2789e..91048898791 100644 --- a/apps/docs/docs/architecture.mdx +++ b/apps/docs/pages/architecture.mdx @@ -1,8 +1,10 @@ ---- -id: architecture -title: Architecture -description: 'Supabase design and architecture' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'architecture', + title: 'Architecture', + description: 'Supabase design and architecture', +} Supabase is open source. We choose open source tools which are scalable and make them simple to use. @@ -154,3 +156,7 @@ As the profile of a developer changes over time, Supabase will continue to evolv Supabase supports existing tools and communities wherever possible. Supabase is more like a "community of communities" - each tool typically has its own community which we work with. Open source is something we approach [collaboratively](https://supabase.com/blog/supabase-series-b#giving-back): we employ maintainers, sponsor projects, invest in businesses, and develop our own open source tools. + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/company/aup.md b/apps/docs/pages/company/aup.md similarity index 100% rename from apps/docs/docs/company/aup.md rename to apps/docs/pages/company/aup.md diff --git a/apps/docs/docs/company/privacy.md b/apps/docs/pages/company/privacy.md similarity index 100% rename from apps/docs/docs/company/privacy.md rename to apps/docs/pages/company/privacy.md diff --git a/apps/docs/docs/company/sla.md b/apps/docs/pages/company/sla.md similarity index 100% rename from apps/docs/docs/company/sla.md rename to apps/docs/pages/company/sla.md diff --git a/apps/docs/docs/company/terms.md b/apps/docs/pages/company/terms.md similarity index 100% rename from apps/docs/docs/company/terms.md rename to apps/docs/pages/company/terms.md diff --git a/apps/docs/docs/faq.mdx b/apps/docs/pages/faq.mdx similarity index 89% rename from apps/docs/docs/faq.mdx rename to apps/docs/pages/faq.mdx index 71bb4a1f525..eced1e89829 100644 --- a/apps/docs/docs/faq.mdx +++ b/apps/docs/pages/faq.mdx @@ -1,8 +1,10 @@ ---- -id: faq -title: FAQs -description: 'Most frequently asked questions regarding Supabase' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'faq', + title: 'FAQs', + description: 'Most frequently asked questions regarding Supabase', +} ### Where do I find support? @@ -36,3 +38,7 @@ We only support PostgreSQL. It's unlikely we'll ever move away from Postgres; ho We officially support [JavaScript](/docs/reference/javascript/installing) and [Flutter](/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). + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/features.mdx b/apps/docs/pages/features.mdx similarity index 95% rename from apps/docs/docs/guides/features.mdx rename to apps/docs/pages/features.mdx index 3267fa32ced..06152162e48 100755 --- a/apps/docs/docs/guides/features.mdx +++ b/apps/docs/pages/features.mdx @@ -1,8 +1,10 @@ ---- -id: features -title: Features -description: 'Supabase features' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'features', + title: 'Features', + description: 'Supabase features', +} This is a non-exhaustive list of features that Supabase provides for every project. @@ -170,3 +172,7 @@ Both Postgres and the Supabase Platform are production-ready. Some tools we offe | CLI | | `beta` | | Client Library: JavaScript | | `GA` | | Client Library: Dart | | `beta` | + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/api.mdx b/apps/docs/pages/guides/api.mdx similarity index 96% rename from apps/docs/docs/guides/api.mdx rename to apps/docs/pages/guides/api.mdx index 9896a65128b..07f55536c1a 100644 --- a/apps/docs/docs/guides/api.mdx +++ b/apps/docs/pages/guides/api.mdx @@ -1,9 +1,11 @@ ---- -id: api -title: Serverless APIs -description: Auto-generating and Realtime APIs. -sidebar_label: Overview ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'api', + title: 'Serverless APIs', + description: 'Auto-generating and Realtime APIs.', + sidebar_label: 'Overview', +} Supabase auto-generates three types of API directly from your database schema. @@ -319,8 +321,8 @@ called `supabase_realtime`, and by managing this publication you can control whi ### Securing your Routes -Your API is designed to work with Postgres Row Level Security (RLS). If you use Supabase [Auth](/guides/auth), you can restrict data based on the logged-in user. -To control access to your data, you can use [Policies](/guides/auth#policies). +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: + +export default Page diff --git a/apps/docs/docs/guides/api/generating-types.mdx b/apps/docs/pages/guides/api/generating-types.mdx similarity index 92% rename from apps/docs/docs/guides/api/generating-types.mdx rename to apps/docs/pages/guides/api/generating-types.mdx index 8110c2ebfe8..a50399287b6 100644 --- a/apps/docs/docs/guides/api/generating-types.mdx +++ b/apps/docs/pages/guides/api/generating-types.mdx @@ -1,8 +1,10 @@ ---- -id: generating-types -title: 'Generating Types' -description: How to generate types for your API and Supabase libraries. ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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. @@ -105,3 +107,7 @@ Alternatively, you can use a community-supported GitHub action: [generate-supaba ## 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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth.mdx b/apps/docs/pages/guides/auth.mdx similarity index 93% rename from apps/docs/docs/guides/auth.mdx rename to apps/docs/pages/guides/auth.mdx index 1d60ab88fbb..93384ee69cf 100644 --- a/apps/docs/docs/guides/auth.mdx +++ b/apps/docs/pages/guides/auth.mdx @@ -1,9 +1,11 @@ ---- -id: auth -title: Auth -description: Use Supabase to Authenticate and Authorize your users. -sidebar_label: Overview ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'auth', + title: 'Auth', + description: 'Use Supabase to Authenticate and Authorize your users.', + sidebar_label: 'Overview', +} ## Overview @@ -120,3 +122,7 @@ When users sign up, Supabase assigns them a unique ID. You can reference this ID + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-apple.mdx b/apps/docs/pages/guides/auth/auth-apple.mdx similarity index 96% rename from apps/docs/docs/guides/auth/auth-apple.mdx rename to apps/docs/pages/guides/auth/auth-apple.mdx index 5f1030a2529..d5bf22f9205 100644 --- a/apps/docs/docs/guides/auth/auth-apple.mdx +++ b/apps/docs/pages/guides/auth/auth-apple.mdx @@ -1,11 +1,10 @@ ---- -id: auth-apple -title: 'Login with Apple' -description: Add Apple OAuth to your Supabase project ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'auth-apple', + title: 'Login with Apple', + description: 'Add Apple OAuth to your Supabase project', +} 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. @@ -202,3 +201,7 @@ async function signout() { - [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). + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-azure.mdx b/apps/docs/pages/guides/auth/auth-azure.mdx similarity index 92% rename from apps/docs/docs/guides/auth/auth-azure.mdx rename to apps/docs/pages/guides/auth/auth-azure.mdx index bb1d1ed212a..d75a365b1d5 100644 --- a/apps/docs/docs/guides/auth/auth-azure.mdx +++ b/apps/docs/pages/guides/auth/auth-azure.mdx @@ -1,11 +1,10 @@ ---- -id: auth-azure -title: 'Login with Azure' -description: Add Azure OAuth to your Supabase project ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'auth-azure', + title: 'Login with Azure', + description: 'Add Azure OAuth to your Supabase project', +} 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. @@ -98,3 +97,7 @@ async function signout() { - [Azure Developer Account](https://portal.azure.com) - [GitHub Discussion](https://github.com/supabase/gotrue/pull/54#issuecomment-757043573) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-bitbucket.mdx b/apps/docs/pages/guides/auth/auth-bitbucket.mdx similarity index 91% rename from apps/docs/docs/guides/auth/auth-bitbucket.mdx rename to apps/docs/pages/guides/auth/auth-bitbucket.mdx index 2a3c37af2c9..626b1ef3cf7 100644 --- a/apps/docs/docs/guides/auth/auth-bitbucket.mdx +++ b/apps/docs/pages/guides/auth/auth-bitbucket.mdx @@ -1,11 +1,10 @@ ---- -id: auth-bitbucket -title: 'Login with Bitbucket' -description: Add Bitbucket OAuth to your Supabase project ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'auth-bitbucket', + title: 'Login with Bitbucket', + description: 'Add Bitbucket OAuth to your Supabase project', +} 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. @@ -90,3 +89,7 @@ async function signout() { - [Supabase Account - Free Tier OK](https://supabase.com) - [Supabase JS Client](https://github.com/supabase/supabase-js) - [Bitbucket Account](https://bitbucket.org) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-captcha.mdx b/apps/docs/pages/guides/auth/auth-captcha.mdx similarity index 92% rename from apps/docs/docs/guides/auth/auth-captcha.mdx rename to apps/docs/pages/guides/auth/auth-captcha.mdx index 225c899d614..389032261ea 100644 --- a/apps/docs/docs/guides/auth/auth-captcha.mdx +++ b/apps/docs/pages/guides/auth/auth-captcha.mdx @@ -1,11 +1,10 @@ ---- -id: auth-captcha -title: 'Enable Captcha Protection' -description: Add Captcha Protection to your Supabase project ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'auth-captcha', + title: 'Enable Captcha Protection', + description: 'Add Captcha Protection to your Supabase project', +} 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/). @@ -109,3 +108,7 @@ 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. + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-discord.mdx b/apps/docs/pages/guides/auth/auth-discord.mdx similarity index 92% rename from apps/docs/docs/guides/auth/auth-discord.mdx rename to apps/docs/pages/guides/auth/auth-discord.mdx index 0707d391610..dc599979d0e 100644 --- a/apps/docs/docs/guides/auth/auth-discord.mdx +++ b/apps/docs/pages/guides/auth/auth-discord.mdx @@ -1,11 +1,10 @@ ---- -id: auth-discord -title: 'Login with Discord' -description: Add Discord OAuth to your Supabase project ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'auth-discord', + title: 'Login with Discord', + description: 'Add Discord OAuth to your Supabase project', +} 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. @@ -92,3 +91,7 @@ async function signout() { - [Supabase JS Client](https://github.com/supabase/supabase-js) - [Discord Account](https://discord.com) - [Discord Developer Portal](https://discord.com/developers) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-email.mdx b/apps/docs/pages/guides/auth/auth-email.mdx similarity index 89% rename from apps/docs/docs/guides/auth/auth-email.mdx rename to apps/docs/pages/guides/auth/auth-email.mdx index d3bd96a3d8f..0f833876253 100644 --- a/apps/docs/docs/guides/auth/auth-email.mdx +++ b/apps/docs/pages/guides/auth/auth-email.mdx @@ -1,11 +1,10 @@ ---- -id: auth-email -title: 'Login With Email' -description: Use Supabase to Authenticate and Authorize your users using email. ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'auth-email', + title: 'Login With Email', + description: 'Use Supabase to Authenticate and Authorize your users using email.', +} ## Overview @@ -99,3 +98,7 @@ Future signOut() async { - [Supabase Account - Free Tier OK](https://supabase.com) - [Supabase JS Client](https://github.com/supabase/supabase-js) - [Supabase Flutter Client](https://github.com/supabase/supabase-flutter) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-facebook.mdx b/apps/docs/pages/guides/auth/auth-facebook.mdx similarity index 93% rename from apps/docs/docs/guides/auth/auth-facebook.mdx rename to apps/docs/pages/guides/auth/auth-facebook.mdx index 472e1fa21ef..43658f38b00 100644 --- a/apps/docs/docs/guides/auth/auth-facebook.mdx +++ b/apps/docs/pages/guides/auth/auth-facebook.mdx @@ -1,11 +1,10 @@ ---- -id: auth-facebook -title: 'Login with Facebook' -description: Add Facebook OAuth to your Supabase project ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'auth-facebook', + title: 'Login with Facebook', + description: 'Add Facebook OAuth to your Supabase project', +} 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. @@ -107,3 +106,7 @@ async function signout() { - [Supabase Account - Free Tier OK](https://supabase.com) - [Supabase JS Client](https://github.com/supabase/supabase-js) - [Facebook Developers Dashboard](https://developers.facebook.com/) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-github.mdx b/apps/docs/pages/guides/auth/auth-github.mdx similarity index 92% rename from apps/docs/docs/guides/auth/auth-github.mdx rename to apps/docs/pages/guides/auth/auth-github.mdx index 493a73123a3..6ddcdac1ede 100644 --- a/apps/docs/docs/guides/auth/auth-github.mdx +++ b/apps/docs/pages/guides/auth/auth-github.mdx @@ -1,11 +1,10 @@ ---- -id: auth-github -title: 'Login with GitHub' -description: Add GitHub OAuth to your Supabase project ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'auth-github', + title: 'Login with GitHub', + description: 'Add GitHub OAuth to your Supabase project', +} 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. @@ -100,3 +99,7 @@ async function signout() { - [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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-gitlab.mdx b/apps/docs/pages/guides/auth/auth-gitlab.mdx similarity index 91% rename from apps/docs/docs/guides/auth/auth-gitlab.mdx rename to apps/docs/pages/guides/auth/auth-gitlab.mdx index 7942bfd6cfd..870c292a0b8 100644 --- a/apps/docs/docs/guides/auth/auth-gitlab.mdx +++ b/apps/docs/pages/guides/auth/auth-gitlab.mdx @@ -1,11 +1,10 @@ ---- -id: auth-gitlab -title: 'Login with GitLab' -description: Add GitLab OAuth to your Supabase project ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'auth-gitlab', + title: 'Login with GitLab', + description: 'Add GitLab OAuth to your Supabase project', +} 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. @@ -87,3 +86,7 @@ async function signout() { - [Supabase Account - Free Tier OK](https://supabase.com) - [Supabase JS Client](https://github.com/supabase/supabase-js) - [GitLab Account](https://gitlab.com) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-google.mdx b/apps/docs/pages/guides/auth/auth-google.mdx similarity index 93% rename from apps/docs/docs/guides/auth/auth-google.mdx rename to apps/docs/pages/guides/auth/auth-google.mdx index 90777b39a6b..4a8a2c3b222 100644 --- a/apps/docs/docs/guides/auth/auth-google.mdx +++ b/apps/docs/pages/guides/auth/auth-google.mdx @@ -1,11 +1,10 @@ ---- -id: auth-google -title: 'Login with Google' -description: Add Google OAuth to your Supabase project ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'auth-google', + title: 'Login with Google', + description: 'Add Google OAuth to your Supabase project', +} 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. @@ -115,3 +114,7 @@ async function signout() { - [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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-helpers.mdx b/apps/docs/pages/guides/auth/auth-helpers.mdx similarity index 81% rename from apps/docs/docs/guides/auth/auth-helpers.mdx rename to apps/docs/pages/guides/auth/auth-helpers.mdx index bc797ec1896..56115933b9a 100644 --- a/apps/docs/docs/guides/auth/auth-helpers.mdx +++ b/apps/docs/pages/guides/auth/auth-helpers.mdx @@ -1,9 +1,11 @@ ---- -id: index -title: Auth Helpers -description: A collection of framework-specific Auth utilities for working with Supabase. -sidebar_label: Overview ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'index', + title: 'Auth Helpers', + description: 'A collection of framework-specific Auth utilities for working with Supabase.', + sidebar_label: 'Overview', +} A collection of framework-specific Auth utilities for working with Supabase. @@ -52,3 +54,7 @@ The Auth Helpers are in `beta`. They are usable in their current state, but it's - [Source code](https://github.com/supabase/auth-helpers) - [Known bugs and issues](https://github.com/supabase/auth-helpers/issues) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-helpers/auth-ui.mdx b/apps/docs/pages/guides/auth/auth-helpers/auth-ui.mdx similarity index 96% rename from apps/docs/docs/guides/auth/auth-helpers/auth-ui.mdx rename to apps/docs/pages/guides/auth/auth-helpers/auth-ui.mdx index 14e94ea0170..2b4eff8c77a 100644 --- a/apps/docs/docs/guides/auth/auth-helpers/auth-ui.mdx +++ b/apps/docs/pages/guides/auth/auth-helpers/auth-ui.mdx @@ -1,8 +1,10 @@ ---- -id: auth-ui -title: Auth UI -description: A prebuilt, customizable React component for authenticating users. ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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. @@ -273,3 +275,7 @@ const App = () => ( /> ) ``` + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-helpers/nextjs.mdx b/apps/docs/pages/guides/auth/auth-helpers/nextjs.mdx similarity index 98% rename from apps/docs/docs/guides/auth/auth-helpers/nextjs.mdx rename to apps/docs/pages/guides/auth/auth-helpers/nextjs.mdx index 581c6ec5f37..e6acf1da031 100644 --- a/apps/docs/docs/guides/auth/auth-helpers/nextjs.mdx +++ b/apps/docs/pages/guides/auth/auth-helpers/nextjs.mdx @@ -1,12 +1,11 @@ ---- -id: nextjs -title: Supabase Auth with Next.js -description: Authentication helpers for Next.js API routes, middleware, and SSR. -sidebar_label: 'Next.js' ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'nextjs', + title: 'Supabase Auth with Next.js', + description: 'Authentication helpers for Next.js API routes, middleware, and SSR.', + sidebar_label: 'Next.js', +} This submodule provides convenience helpers for implementing user authentication in Next.js applications. @@ -838,3 +837,7 @@ import { Database } from '../database.types' const supabaseClient = useSupabaseClient() ``` + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-helpers/remix.mdx b/apps/docs/pages/guides/auth/auth-helpers/remix.mdx similarity index 98% rename from apps/docs/docs/guides/auth/auth-helpers/remix.mdx rename to apps/docs/pages/guides/auth/auth-helpers/remix.mdx index 5a644521a4f..6df649ea7b1 100644 --- a/apps/docs/docs/guides/auth/auth-helpers/remix.mdx +++ b/apps/docs/pages/guides/auth/auth-helpers/remix.mdx @@ -1,12 +1,11 @@ ---- -id: remix -title: Supabase Auth with Remix -description: Authentication helpers for loaders and actions in Remix. -sidebar_label: 'Remix' ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'remix', + title: 'Supabase Auth with Remix', + description: 'Authentication helpers for loaders and actions in Remix.', + sidebar_label: 'Remix', +} This submodule provides convenience helpers for implementing user authentication in Remix applications. @@ -877,3 +876,7 @@ export default function ProtectedPage() { return
{JSON.stringify({ user, allRepos }, null, 2)}
; } ``` + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-helpers/sveltekit.mdx b/apps/docs/pages/guides/auth/auth-helpers/sveltekit.mdx similarity index 82% rename from apps/docs/docs/guides/auth/auth-helpers/sveltekit.mdx rename to apps/docs/pages/guides/auth/auth-helpers/sveltekit.mdx index 7d5d25d3385..ed7fb35f055 100644 --- a/apps/docs/docs/guides/auth/auth-helpers/sveltekit.mdx +++ b/apps/docs/pages/guides/auth/auth-helpers/sveltekit.mdx @@ -1,12 +1,11 @@ ---- -id: sveltekit -title: Supabase Auth with SvelteKit -description: Convenience helpers for implementing user authentication in SvelteKit. -sidebar_label: SvelteKit ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'sveltekit', + title: 'Supabase Auth with SvelteKit', + description: 'Convenience helpers for implementing user authentication in SvelteKit.', + sidebar_label: 'SvelteKit', +} This submodule provides convenience helpers for implementing user authentication in [SvelteKit](https://kit.svelte.dev/) applications. @@ -53,21 +52,18 @@ PUBLIC_SUPABASE_ANON_KEY=your-anon-key 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/auth-helpers-sveltekit'; -import { env } from '$env/dynamic/public'; +import { createClient } from '@supabase/auth-helpers-sveltekit' +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 -); +export const supabaseClient = createClient(env.PUBLIC_SUPABASE_URL, env.PUBLIC_SUPABASE_ANON_KEY) ``` To make sure the client is initialized on the server and the client, include this file in `src/hooks.server.js` and `src/hooks.client.js`: ```ts -import '$lib/db'; +import '$lib/db' ``` ### Synchronizing the page store @@ -76,21 +72,21 @@ Edit your `+layout.svelte` file and set up the client side. ```html title=src/routes/+layout.svelte @@ -105,26 +101,26 @@ If some data is not updated on signin/signout you can fall back to `invalidateAl To make the session available to the UI (pages, layouts), pass the session in the root layout server load function: ```ts title=src/routes/+layout.server.ts -import type { LayoutServerLoad } from './$types'; -import { getServerSession } from '@supabase/auth-helpers-sveltekit'; +import type { LayoutServerLoad } from './$types' +import { getServerSession } from '@supabase/auth-helpers-sveltekit' export const load: LayoutServerLoad = async (event) => { return { - session: await getServerSession(event) - }; -}; + session: await getServerSession(event), + } +} ``` In addition you can create a layout load function if you are using `invalidate('supabase:auth')`: ```ts title=src/routes/+layout.ts -import type { LayoutLoad } from './$types'; -import { getSupabase } from '@supabase/auth-helpers-sveltekit'; +import type { LayoutLoad } from './$types' +import { getSupabase } from '@supabase/auth-helpers-sveltekit' export const load: LayoutLoad = async (event) => { - const { session } = await getSupabase(event); - return { session }; -}; + const { session } = await getSupabase(event) + return { session } +} ``` This results in fewer server calls as the client manages the session on its own. @@ -134,7 +130,6 @@ This results in fewer server calls as the client manages the session on its own. In order to get the most out of TypeScript and it´s intellisense, you should import our 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 @@ -142,13 +137,13 @@ In order to get the most out of TypeScript and it´s intellisense, you should im // and what to do when importing types declare namespace App { interface Supabase { - Database: import('./DatabaseDefinitions').Database; - SchemaName: 'public'; + Database: import('./DatabaseDefinitions').Database + SchemaName: 'public' } // interface Locals {} interface PageData { - session: import('@supabase/supabase-js').Session | null; + session: import('@supabase/supabase-js').Session | null } // interface Error {} // interface Platform {} @@ -161,7 +156,7 @@ You can now determine if a user is authenticated on the client-side by checking ```html title=src/routes/+page.svelte {#if !$page.data.session} @@ -178,17 +173,17 @@ For [row level security](/docs/learn/auth-deep-dive/auth-row-level-security) to ```html @@ -203,8 +198,8 @@ For [row level security](/docs/learn/auth-deep-dive/auth-row-level-security) to ```html title=src/routes/profile/+page.svelte
Protected content for {user.email}
@@ -215,22 +210,22 @@ For [row level security](/docs/learn/auth-deep-dive/auth-row-level-security) to For [row level security](/docs/learn/auth-deep-dive/auth-row-level-security) to work in a server environment, you need to use the `getSupabase` helper to check if the user is authenticated. The helper requires the `event` and returns `session` and `supabaseClient`: ```ts title=src/routes/profile/+page.ts -import type { PageLoad } from './$types'; -import { getSupabase } from '@supabase/auth-helpers-sveltekit'; -import { redirect } from '@sveltejs/kit'; +import type { PageLoad } from './$types' +import { getSupabase } from '@supabase/auth-helpers-sveltekit' +import { redirect } from '@sveltejs/kit' export const load: PageLoad = async (event) => { - const { session, supabaseClient } = await getSupabase(event); + const { session, supabaseClient } = await getSupabase(event) if (!session) { - throw redirect(303, '/'); + throw redirect(303, '/') } - const { data: tableData } = await supabaseClient.from('test').select('*'); + const { data: tableData } = await supabaseClient.from('test').select('*') return { user: session.user, - tableData - }; -}; + tableData, + } +} ``` ## Protecting API routes @@ -238,19 +233,19 @@ export const load: PageLoad = async (event) => { 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 { getSupabase } from '@supabase/auth-helpers-sveltekit'; -import { json, redirect } from '@sveltejs/kit'; +import type { RequestHandler } from './$types' +import { getSupabase } from '@supabase/auth-helpers-sveltekit' +import { json, redirect } from '@sveltejs/kit' export const GET: RequestHandler = async (event) => { - const { session, supabaseClient } = await getSupabase(event); + const { session, supabaseClient } = await getSupabase(event) if (!session) { - throw redirect(303, '/'); + throw redirect(303, '/') } - const { data } = await supabaseClient.from('test').select('*'); + const { data } = await supabaseClient.from('test').select('*') - return json({ data }); -}; + return json({ data }) +} ``` If you visit `/api/protected-route` without a valid session cookie, you will get a 303 response. @@ -260,36 +255,36 @@ If you visit `/api/protected-route` without a valid session cookie, you will get 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 { getSupabase } from '@supabase/auth-helpers-sveltekit'; -import { error, invalid } from '@sveltejs/kit'; +import type { Actions } from './$types' +import { getSupabase } from '@supabase/auth-helpers-sveltekit' +import { error, invalid } from '@sveltejs/kit' export const actions: Actions = { createPost: async (event) => { - const { request } = event; - const { session, supabaseClient } = await getSupabase(event); + const { request } = event + const { session, supabaseClient } = await getSupabase(event) if (!session) { // the user is not signed in - throw error(403, { message: 'Unauthorized' }); + 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 formData = await request.formData() + const content = formData.get('content') const { error: createPostError, data: newPost } = await supabaseClient .from('posts') - .insert({ content }); + .insert({ content }) if (createPostError) { return invalid(500, { - supabaseErrorMessage: createPostError.message - }); + supabaseErrorMessage: createPostError.message, + }) } return { - newPost - }; - } -}; + newPost, + } + }, +} ``` If you try to submit a form with the action `?/createPost` without a valid session cookie, you will get a 403 error response. @@ -297,50 +292,50 @@ If you try to submit a form with the action `?/createPost` without a valid sessi ## Saving and deleting the session ```ts -import type { Actions } from './$types'; -import { invalid, redirect } from '@sveltejs/kit'; -import { getSupabase } from '@supabase/auth-helpers-sveltekit'; +import type { Actions } from './$types' +import { invalid, redirect } from '@sveltejs/kit' +import { getSupabase } from '@supabase/auth-helpers-sveltekit' export const actions: Actions = { signin: async (event) => { - const { request, cookies, url } = event; - const { session, supabaseClient } = await getSupabase(event); - const formData = await request.formData(); + const { request, cookies, url } = event + const { session, supabaseClient } = await getSupabase(event) + const formData = await request.formData() - const email = formData.get('email') as string; - const password = formData.get('password') as string; + const email = formData.get('email') as string + const password = formData.get('password') as string const { error } = await supabaseClient.auth.signInWithPassword({ email, - password - }); + password, + }) if (error) { if (error instanceof AuthApiError && error.status === 400) { return invalid(400, { error: 'Invalid credentials.', values: { - email - } - }); + email, + }, + }) } return invalid(500, { error: 'Server error. Try again later.', values: { - email - } - }); + email, + }, + }) } - throw redirect(303, '/dashboard'); + throw redirect(303, '/dashboard') }, signout: async (event) => { - const { supabaseClient } = await getSupabase(event); - await supabaseClient.auth.signOut(); - throw redirect(303, '/'); - } -}; + const { supabaseClient } = await getSupabase(event) + await supabaseClient.auth.signOut() + throw redirect(303, '/') + }, +} ``` ## Protecting multiple routes @@ -349,34 +344,31 @@ To avoid writing the same auth logic in every single route you can use the handl protect multiple routes at once. ```ts title=src/hooks.server.ts -import type { RequestHandler } from './$types'; -import { getSupabase } from '@supabase/auth-helpers-sveltekit'; -import { redirect, error } from '@sveltejs/kit'; +import type { RequestHandler } from './$types' +import { getSupabase } from '@supabase/auth-helpers-sveltekit' +import { redirect, error } from '@sveltejs/kit' export const handle: Handle = async ({ event, resolve }) => { // protect requests to all routes that start with /protected-routes if (event.url.pathname.startsWith('/protected-routes')) { - const { session, supabaseClient } = await getSupabase(event); + const { session, supabaseClient } = await getSupabase(event) if (!session) { - throw redirect(303, '/'); + throw redirect(303, '/') } } // protect POST requests to all routes that start with /protected-posts - if ( - event.url.pathname.startsWith('/protected-posts') && - event.request.method === 'POST' - ) { - const { session, supabaseClient } = await getSupabase(event); + if (event.url.pathname.startsWith('/protected-posts') && event.request.method === 'POST') { + const { session, supabaseClient } = await getSupabase(event) if (!session) { - throw error(303, '/'); + throw error(303, '/') } } - return resolve(event); -}; + return resolve(event) +} ``` ## Migrate from 0.7.x to 0.8 {#migration} @@ -423,10 +415,7 @@ import { env } from '$env/dynamic/public' // 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 -); +export const supabaseClient = createClient(env.PUBLIC_SUPABASE_URL, env.PUBLIC_SUPABASE_ANON_KEY) ``` @@ -465,21 +454,21 @@ export const supabaseClient = createClient( ```html title=src/routes/+layout.svelte @@ -576,13 +565,13 @@ declare namespace App { // and what to do when importing types declare namespace App { interface Supabase { - Database: import('./DatabaseDefinitions').Database; - SchemaName: 'public'; + Database: import('./DatabaseDefinitions').Database + SchemaName: 'public' } // interface Locals {} interface PageData { - session: import('@supabase/auth-helpers-sveltekit').SupabaseSession; + session: import('@supabase/auth-helpers-sveltekit').SupabaseSession } // interface Error {} // interface Platform {} @@ -638,8 +627,8 @@ export const load: PageLoad = withAuth(async ({ session, getSupabaseClient }) => ```html title=src/routes/protected-route/+page.svelte
Protected content for {user.email}
@@ -649,22 +638,22 @@ export const load: PageLoad = withAuth(async ({ session, getSupabaseClient }) => ```ts title=src/routes/protected-route/+page.ts // src/routes/profile/+page.ts -import type { PageLoad } from './$types'; -import { getSupabase } from '@supabase/auth-helpers-sveltekit'; -import { redirect } from '@sveltejs/kit'; +import type { PageLoad } from './$types' +import { getSupabase } from '@supabase/auth-helpers-sveltekit' +import { redirect } from '@sveltejs/kit' export const load: PageLoad = async (event) => { - const { session, supabaseClient } = await getSupabase(event); + const { session, supabaseClient } = await getSupabase(event) if (!session) { - throw redirect(303, '/'); + throw redirect(303, '/') } - const { data: tableData } = await supabaseClient.from('test').select('*'); + const { data: tableData } = await supabaseClient.from('test').select('*') return { user: session.user, - tableData - }; -}; + tableData, + } +} ``` @@ -681,45 +670,43 @@ export const load: PageLoad = async (event) => { ```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'; +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; + id: string + created_at: string } export const GET: RequestHandler = withAuth(async ({ session, getSupabaseClient }) => { if (!session.user) { - throw redirect(303, '/'); + throw redirect(303, '/') } - const { data } = await getSupabaseClient() - .from('test') - .select('*'); + const { data } = await getSupabaseClient().from('test').select('*') - return json({ data }); -}); + return json({ data }) +}) ``` ```ts title=src/routes/api/protected-route/+server.ts -import type { RequestHandler } from './$types'; -import { getSupabase } from '@supabase/auth-helpers-sveltekit'; -import { json, redirect } from '@sveltejs/kit'; +import type { RequestHandler } from './$types' +import { getSupabase } from '@supabase/auth-helpers-sveltekit' +import { json, redirect } from '@sveltejs/kit' export const GET: RequestHandler = async (event) => { - const { session, supabaseClient } = await getSupabase(event); + const { session, supabaseClient } = await getSupabase(event) if (!session) { - throw redirect(303, '/'); + throw redirect(303, '/') } - const { data } = await supabaseClient.from('test').select('*'); + const { data } = await supabaseClient.from('test').select('*') - return json({ data }); -}; + return json({ data }) +} ``` @@ -1129,3 +1116,7 @@ export const GET: RequestHandler = withAuth(async ({ session, getSupabaseClient - [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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-keycloak.mdx b/apps/docs/pages/guides/auth/auth-keycloak.mdx similarity index 92% rename from apps/docs/docs/guides/auth/auth-keycloak.mdx rename to apps/docs/pages/guides/auth/auth-keycloak.mdx index 51099a0653a..73998bc3dcb 100644 --- a/apps/docs/docs/guides/auth/auth-keycloak.mdx +++ b/apps/docs/pages/guides/auth/auth-keycloak.mdx @@ -1,11 +1,10 @@ ---- -id: auth-keycloak -title: 'Login with Keycloak' -description: Add Keycloak OAuth to your Supabase project ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'auth-keycloak', + title: 'Login with Keycloak', + description: 'Add Keycloak OAuth to your Supabase project', +} 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. @@ -84,3 +83,7 @@ async function signout() { - You can find the keycloak openid endpoint configuration under the realm settings. ![Keycloak OpenID Endpoint Configuration](/docs/img/guides/auth-keycloak/keycloak-openid-endpoint-config.png) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-linkedin.mdx b/apps/docs/pages/guides/auth/auth-linkedin.mdx similarity index 91% rename from apps/docs/docs/guides/auth/auth-linkedin.mdx rename to apps/docs/pages/guides/auth/auth-linkedin.mdx index ac5feca9617..22fb6f1f05e 100644 --- a/apps/docs/docs/guides/auth/auth-linkedin.mdx +++ b/apps/docs/pages/guides/auth/auth-linkedin.mdx @@ -1,11 +1,10 @@ ---- -id: auth-linkedin -title: 'Login with LinkedIn' -description: Add LinkedIn OAuth to your Supabase project ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'auth-linkedin', + title: 'Login with LinkedIn', + description: 'Add LinkedIn OAuth to your Supabase project', +} 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. @@ -86,3 +85,7 @@ async function signout() { - [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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-magic-link.mdx b/apps/docs/pages/guides/auth/auth-magic-link.mdx similarity index 88% rename from apps/docs/docs/guides/auth/auth-magic-link.mdx rename to apps/docs/pages/guides/auth/auth-magic-link.mdx index af4696fbca8..181954436ae 100644 --- a/apps/docs/docs/guides/auth/auth-magic-link.mdx +++ b/apps/docs/pages/guides/auth/auth-magic-link.mdx @@ -1,11 +1,10 @@ ---- -id: auth-magic-link -title: 'Login With Magic Link' -description: Use Supabase to authenticate and authorize your users using magic links. ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'auth-magic-link', + title: 'Login With Magic Link', + description: 'Use Supabase to authenticate and authorize your users using magic links.', +} 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. @@ -91,3 +90,7 @@ Future signOut() async { - [Supabase Account - Free Tier OK](https://supabase.com) - [Supabase JS Client](https://github.com/supabase/supabase-js) - [Supabase Flutter Client](https://github.com/supabase/supabase-flutter) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-messagebird.mdx b/apps/docs/pages/guides/auth/auth-messagebird.mdx similarity index 96% rename from apps/docs/docs/guides/auth/auth-messagebird.mdx rename to apps/docs/pages/guides/auth/auth-messagebird.mdx index f545769ca13..acfc4d0cbe2 100644 --- a/apps/docs/docs/guides/auth/auth-messagebird.mdx +++ b/apps/docs/pages/guides/auth/auth-messagebird.mdx @@ -1,11 +1,10 @@ ---- -id: auth-messagebird -title: Phone Auth with MessageBird -description: How to set up and use Mobile OTP with MessageBird and Supabase. ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'auth-messagebird', + title: 'Phone Auth with MessageBird', + description: 'How to set up and use Mobile OTP with MessageBird and Supabase.', +} ## Overview @@ -281,3 +280,7 @@ The user does not have a password therefore will need to sign in via this method - [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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-mfa.mdx b/apps/docs/pages/guides/auth/auth-mfa.mdx similarity index 95% rename from apps/docs/docs/guides/auth/auth-mfa.mdx rename to apps/docs/pages/guides/auth/auth-mfa.mdx index 83c6af27cd8..286916d29de 100644 --- a/apps/docs/docs/guides/auth/auth-mfa.mdx +++ b/apps/docs/pages/guides/auth/auth-mfa.mdx @@ -1,10 +1,11 @@ ---- -id: auth-mfa -title: 'Multi-Factor Authentication' -description: Add an additional layer of security to your apps with Supabase Auth multi-factor authentication. ---- +import Layout from '~/layouts/DefaultGuideLayout' -import { Mermaid } from 'mdx-mermaid/Mermaid' +export const meta = { + id: 'auth-mfa', + title: 'Multi-Factor Authentication', + description: + 'Add an additional layer of security to your apps with Supabase Auth multi-factor authentication.', +} @@ -26,9 +27,9 @@ prone to malicious account takeovers. These can be prevented with MFA because they require the user to provide proof of both of these: -- Something they know. +- Something they know. Password, or access to a social-login account. -- Something they have. +- Something they have. Access to an authenticator app (a.k.a. TOTP), mobile phone or recovery code. ## Overview @@ -39,9 +40,9 @@ authenticator app in the control of users. Applications using MFA require two important flows: -1. **Enrollment flow.** +1. **Enrollment flow.** This lets users set up and control MFA in your app. -2. **Authentication flow.** +2. **Authentication flow.** This lets users sign in using any factors after the conventional login step. Supabase Auth provides: @@ -78,11 +79,11 @@ Level](https://pages.nist.gov/800-63-3-Implementation-Resources/63B/AAL/), a standard measure about the assurance Supabase Auth has of the user's identity for that particular session. There are two levels recognized today: -1. **Assurance Level 1: `aal1`** +1. **Assurance Level 1: `aal1`** Means that the user's identity was verified using a conventional login method such as email+password, magic link, one-time password, phone auth or social login. -2. **Assurance Level 2: `aal2`** +2. **Assurance Level 2: `aal2`** Means that the user's identity was additionally verified using at least one second factor, such as a TOTP code. @@ -95,15 +96,15 @@ for your application. JWTs without an `aal` claim are at the `aal1` level. Adding MFA to your app involves these three steps: -1. **Add enrollment flow.** +1. **Add enrollment flow.** You need to provide a UI within your app that your users will be able to set-up MFA in. You can add this right after sign-up, or as part of a separate flow in the settings portion of your app. -2. **Add challenge step to login.** +2. **Add challenge step to login.** If a user has set-up MFA, your app's login flow needs to present a challenge screen to the user asking them to prove they have access to the additional factor. -3. **Enforce rules for MFA logins.** +3. **Enforce rules for MFA logins.** Once your users have a way to enroll and log in with MFA, you need to enforce authorization rules across your app: on the frontend, backend, API servers or Row-Level Security policies. @@ -113,12 +114,12 @@ Adding MFA to your app involves these three steps: An enrollment flow provides a UI for users to set up additional authentication factors. Most applications add the enrollment flow in two places within their app: -1. Right after login or sign up. +1. Right after login or sign up. This lets users quickly set up MFA immediately after they log in or create an account. We recommend encouraging all users to set up MFA if that makes sense for your application. Many applications offer this as an opt-in step in an effort to reduce onboarding friction. -2. From within a settings page. +2. From within a settings page. Allows users to set up, disable or modify their MFA settings. We recommend building one generic flow that you can reuse in both cases with @@ -126,15 +127,15 @@ minor modifications. Enrolling a factor for use with MFA takes three steps: -1. Call `supabase.auth.mfa.enroll()`. +1. Call `supabase.auth.mfa.enroll()`. This method returns a QR code and a secret. Display the QR code to the user and ask them to scan it with their authenticator application. If they are unable to scan the QR code, show the secret in plain text which they can type or paste into their authenticator app. -2. Calling the `supabase.auth.mfa.challenge()` API. +2. Calling the `supabase.auth.mfa.challenge()` API. This prepares Supabase Auth to accept a verification code from the user and returns a challenge ID. -3. Calling the `supabase.auth.mfa.verify()` API. +3. Calling the `supabase.auth.mfa.verify()` API. This verifies that the user has indeed added the secret from step (1) into their app and is working correctly. If the verification succeeds, the factor immediately becomes active for the user account. If not, you should repeat @@ -400,15 +401,15 @@ application's database, APIs and server-side rendering. Depending on your application's needs, there are three ways you can choose to enforce MFA. -1. **Enforce for all users (new and existing).** - Any user account will have to enroll MFA to continue using your app. +1. **Enforce for all users (new and existing).** + Any user account will have to enroll MFA to continue using your app. The application will not allow access without going through MFA first. -2. **Enforce for new users only.** +2. **Enforce for new users only.** Only new users will be forced to enroll MFA, while old users will be encouraged - to do so. + to do so. The application will not allow access for new users without going through MFA first. -3. **Enforce only for users that have opted-in.** +3. **Enforce only for users that have opted-in.** Users that want MFA can enroll in it and the application will not allow access without going through MFA first. @@ -547,14 +548,14 @@ using Row Level Security policies will give you sufficient protection. In the event that you have other APIs that you wish to protect, follow these general guidelines: -1. **Use a good JWT verification and parsing library for your language.** +1. **Use a good JWT verification and parsing library for your language.** This will let you securely parse JWTs and extract their claims. 2. **Retrieve the `aal` claim from the JWT and compare its value according to - your needs.** + your needs.** If you've encountered an AAL level that can be increased, ask the user to continue the login process instead of logging them out. 3. **Use the `https://.supabase.co/rest/v1/auth/factors` REST - endpoint to identify if the user has enrolled any MFA factors.** + endpoint to identify if the user has enrolled any MFA factors.** Only `verified` factors should be acted upon. ## Frequently asked questions @@ -627,3 +628,7 @@ Currently recognized methods are: - `mfa/totp` - a TOTP additional factor. This list will expand in the future. + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-notion.mdx b/apps/docs/pages/guides/auth/auth-notion.mdx similarity index 92% rename from apps/docs/docs/guides/auth/auth-notion.mdx rename to apps/docs/pages/guides/auth/auth-notion.mdx index 6f920495943..1f1d74e465a 100644 --- a/apps/docs/docs/guides/auth/auth-notion.mdx +++ b/apps/docs/pages/guides/auth/auth-notion.mdx @@ -1,11 +1,10 @@ ---- -id: auth-notion -title: 'Login with Notion' -description: Add Notion OAuth to your Supabase project ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'auth-notion', + title: 'Login with Notion', + description: 'Add Notion OAuth to your Supabase project', +} 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. @@ -90,3 +89,7 @@ async function signout() { - [Supabase JS Client](https://github.com/supabase/supabase-js) - [Notion Account](https://notion.so) - [Notion Developer Portal](https://www.notion.so/my-integrations) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-slack.mdx b/apps/docs/pages/guides/auth/auth-slack.mdx similarity index 91% rename from apps/docs/docs/guides/auth/auth-slack.mdx rename to apps/docs/pages/guides/auth/auth-slack.mdx index 0c8a9f3d228..6d700e6f961 100644 --- a/apps/docs/docs/guides/auth/auth-slack.mdx +++ b/apps/docs/pages/guides/auth/auth-slack.mdx @@ -1,11 +1,10 @@ ---- -id: auth-slack -title: 'Login with Slack' -description: Add Slack OAuth to your Supabase project ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'auth-slack', + title: 'Login with Slack', + description: 'Add Slack OAuth to your Supabase project', +} 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. @@ -99,3 +98,7 @@ async function signout() { - [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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-spotify.mdx b/apps/docs/pages/guides/auth/auth-spotify.mdx similarity index 91% rename from apps/docs/docs/guides/auth/auth-spotify.mdx rename to apps/docs/pages/guides/auth/auth-spotify.mdx index ed836ebba44..c5f3a0872f2 100644 --- a/apps/docs/docs/guides/auth/auth-spotify.mdx +++ b/apps/docs/pages/guides/auth/auth-spotify.mdx @@ -1,11 +1,10 @@ ---- -id: auth-spotify -title: 'Login with Spotify' -description: Add Spotify OAuth to your Supabase project ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'auth-spotify', + title: 'Login with Spotify', + description: 'Add Spotify OAuth to your Supabase project', +} 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. @@ -94,3 +93,7 @@ async function signout() { - [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/) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-twilio.mdx b/apps/docs/pages/guides/auth/auth-twilio.mdx similarity index 96% rename from apps/docs/docs/guides/auth/auth-twilio.mdx rename to apps/docs/pages/guides/auth/auth-twilio.mdx index 6868eca32ec..fa45a547970 100644 --- a/apps/docs/docs/guides/auth/auth-twilio.mdx +++ b/apps/docs/pages/guides/auth/auth-twilio.mdx @@ -1,11 +1,10 @@ ---- -id: auth-twilio -title: Phone Auth with Twilio -description: How to set up and use Mobile OTP with Twilio and Supabase. ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'auth-twilio', + title: 'Phone Auth with Twilio', + description: 'How to set up and use Mobile OTP with Twilio and Supabase.', +} ## Overview @@ -300,3 +299,7 @@ The user does not have a password therefore will need to sign in via this method - [Twilio Signup](https://www.twilio.com/try-twilio) - [Supabase Dashboard](https://app.supabase.com) - [Supabase Row Level Security](/docs/guides/auth#row-level-security) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-twitch.mdx b/apps/docs/pages/guides/auth/auth-twitch.mdx similarity index 93% rename from apps/docs/docs/guides/auth/auth-twitch.mdx rename to apps/docs/pages/guides/auth/auth-twitch.mdx index 3be91d87aee..fab1f8e42e3 100644 --- a/apps/docs/docs/guides/auth/auth-twitch.mdx +++ b/apps/docs/pages/guides/auth/auth-twitch.mdx @@ -1,11 +1,10 @@ ---- -id: auth-twitch -title: 'Login with Twitch' -description: Add Twitch OAuth to your Supabase project ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'auth-twitch', + title: 'Login with Twitch', + description: 'Add Twitch OAuth to your Supabase project', +} 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. @@ -106,3 +105,7 @@ async function signout() { - [Supabase JS Client](https://github.com/supabase/supabase-js) - [Twitch Account](https://twitch.tv) - [Twitch Developer Console](https://dev.twitch.tv/console) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-twitter.mdx b/apps/docs/pages/guides/auth/auth-twitter.mdx similarity index 92% rename from apps/docs/docs/guides/auth/auth-twitter.mdx rename to apps/docs/pages/guides/auth/auth-twitter.mdx index e385d49cc5e..40cf31af0da 100644 --- a/apps/docs/docs/guides/auth/auth-twitter.mdx +++ b/apps/docs/pages/guides/auth/auth-twitter.mdx @@ -1,11 +1,10 @@ ---- -id: auth-twitter -title: 'Login with Twitter' -description: Add Twitter OAuth to your Supabase project ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'auth-twitter', + title: 'Login with Twitter', + description: 'Add Twitter OAuth to your Supabase project', +} 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. @@ -95,3 +94,7 @@ async function signout() { - [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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-vonage.mdx b/apps/docs/pages/guides/auth/auth-vonage.mdx similarity index 96% rename from apps/docs/docs/guides/auth/auth-vonage.mdx rename to apps/docs/pages/guides/auth/auth-vonage.mdx index 27b01e29092..5ebe1de41d0 100644 --- a/apps/docs/docs/guides/auth/auth-vonage.mdx +++ b/apps/docs/pages/guides/auth/auth-vonage.mdx @@ -1,11 +1,10 @@ ---- -id: auth-vonage -title: Phone Auth with Vonage -description: How to set up and use Mobile OTP with Vonage and Supabase. ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'auth-vonage', + title: 'Phone Auth with Vonage', + description: 'How to set up and use Mobile OTP with Vonage and Supabase.', +} ## Overview @@ -272,3 +271,7 @@ The user does not have a password therefore will need to sign in via this method - [Vonage Signup](https://dashboard.nexmo.com/sign-up) - [Supabase Dashboard](https://app.supabase.com) - [Supabase Row Level Security](/docs/guides/auth#row-level-security) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-workos.mdx b/apps/docs/pages/guides/auth/auth-workos.mdx similarity index 91% rename from apps/docs/docs/guides/auth/auth-workos.mdx rename to apps/docs/pages/guides/auth/auth-workos.mdx index 110e707652e..806a838207a 100644 --- a/apps/docs/docs/guides/auth/auth-workos.mdx +++ b/apps/docs/pages/guides/auth/auth-workos.mdx @@ -1,11 +1,10 @@ ---- -id: auth-workos -title: 'Login with WorkOS' -description: Add WorkOS OAuth to your Supabase project ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'auth-workos', + title: 'Login with WorkOS', + description: 'Add WorkOS OAuth to your Supabase project', +} To enable WorkOS Auth for your project, you need to set up WorkOS OAuth application and add the application credentials to your Supabase Dashboard. @@ -88,3 +87,7 @@ async function signout() { ## Resources - [WorkOS Documentation](https://workos.com/docs/sso/guide) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/auth-zoom.mdx b/apps/docs/pages/guides/auth/auth-zoom.mdx similarity index 91% rename from apps/docs/docs/guides/auth/auth-zoom.mdx rename to apps/docs/pages/guides/auth/auth-zoom.mdx index 897df230e41..13d9de860c5 100644 --- a/apps/docs/docs/guides/auth/auth-zoom.mdx +++ b/apps/docs/pages/guides/auth/auth-zoom.mdx @@ -1,11 +1,10 @@ ---- -id: auth-zoom -title: 'Login with Zoom' -description: Add Zoom OAuth to your Supabase project ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'auth-zoom', + title: 'Login with Zoom', + description: 'Add Zoom OAuth to your Supabase project', +} 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. @@ -95,3 +94,7 @@ async function signout() { - [Supabase Account - Free Tier OK](https://supabase.com) - [Supabase JS Client](https://github.com/supabase/supabase-js) - [Zoom App Marketplace](https://marketplace.zoom.us/) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/managing-user-data.mdx b/apps/docs/pages/guides/auth/managing-user-data.mdx similarity index 88% rename from apps/docs/docs/guides/auth/managing-user-data.mdx rename to apps/docs/pages/guides/auth/managing-user-data.mdx index ee6461042f6..da30e0bb329 100644 --- a/apps/docs/docs/guides/auth/managing-user-data.mdx +++ b/apps/docs/pages/guides/auth/managing-user-data.mdx @@ -1,8 +1,10 @@ ---- -id: managing-user-data -title: Managing User Data -description: Securing your user data with Row Level Security. ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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. @@ -59,9 +61,7 @@ The nice thing about this pattern? We can now query this table via the API and w ```js // This will return nothing while the user is logged out -const { data } = await supabase - .from('profiles') - .select('id, username, avatar_url, website') +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 @@ -105,3 +105,7 @@ create trigger on_auth_user_created after insert on auth.users for each row execute procedure public.handle_new_user(); ``` + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/row-level-security.mdx b/apps/docs/pages/guides/auth/row-level-security.mdx similarity index 96% rename from apps/docs/docs/guides/auth/row-level-security.mdx rename to apps/docs/pages/guides/auth/row-level-security.mdx index 376660938f9..eca412cd214 100644 --- a/apps/docs/docs/guides/auth/row-level-security.mdx +++ b/apps/docs/pages/guides/auth/row-level-security.mdx @@ -1,8 +1,10 @@ ---- -id: row-level-security -title: Row Level Security -description: Secure your data using Postgres Row Level Security. ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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). @@ -363,3 +365,7 @@ Deprecated. Use `auth.jwt() ->> 'email'` instead. Returns the email of the user making the request. + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/auth/server-side-rendering.mdx b/apps/docs/pages/guides/auth/server-side-rendering.mdx similarity index 96% rename from apps/docs/docs/guides/auth/server-side-rendering.mdx rename to apps/docs/pages/guides/auth/server-side-rendering.mdx index c80ff1ce825..e11d61cafc8 100644 --- a/apps/docs/docs/guides/auth/server-side-rendering.mdx +++ b/apps/docs/pages/guides/auth/server-side-rendering.mdx @@ -1,8 +1,10 @@ ---- -id: server-side-rendering -title: Server-Side Rendering -description: Render pages with user information on the server. ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'server-side-rendering', + title: 'Server-Side Rendering', + description: 'Render pages with user information on the server.', +} Single-page apps with server-side rendering (SSR) is a popular way to optimize rendering performance and leverage advanced caching strategies. @@ -205,3 +207,7 @@ data belonging to different users! Also be sure you set proper cache control headers. We recommend invalidating cache keys every hour or less. + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/cli.mdx b/apps/docs/pages/guides/cli.mdx similarity index 84% rename from apps/docs/docs/guides/cli.mdx rename to apps/docs/pages/guides/cli.mdx index 337fa5b42c0..ef861654950 100644 --- a/apps/docs/docs/guides/cli.mdx +++ b/apps/docs/pages/guides/cli.mdx @@ -1,10 +1,13 @@ ---- -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 Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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, +} 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. @@ -20,6 +23,7 @@ You can also use the CLI to manage your Supabase projects, handle database migra Install the CLI as dev dependency via [npm](https://www.npmjs.com/package/supabase): + ```sh npm install supabase --save-dev ``` @@ -112,3 +116,7 @@ brew upgrade supabase - [Supabase CLI Reference](/docs/reference/cli/usage) - [Local Development](/docs/guides/cli/local-development) - [Managing Environments](/docs/guides/cli/managing-environments) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/cli/local-development.mdx b/apps/docs/pages/guides/cli/local-development.mdx similarity index 94% rename from apps/docs/docs/guides/cli/local-development.mdx rename to apps/docs/pages/guides/cli/local-development.mdx index 542df07d559..199e77e7c9c 100644 --- a/apps/docs/docs/guides/cli/local-development.mdx +++ b/apps/docs/pages/guides/cli/local-development.mdx @@ -1,11 +1,10 @@ ---- -id: local-development -title: Local Development -description: How to use Supabase on your local development machine. ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'local-development', + title: 'Local Development', + description: 'How to use Supabase on your local development machine.', +} Learn how to use the Supabase CLI to develop your project locally and deploy to the Supabase Platform. @@ -46,7 +45,7 @@ git init supabase init ``` -Make sure Docker is running. The [start](/docs/reference/cli/usage#supabase-start) command uses Docker to start the Supabase [services](/architecture). +Make sure Docker is running. The [start](/docs/reference/cli/usage#supabase-start) command uses Docker to start the Supabase [services](/docs/architecture). This command may take a while to run if this is the first time using the CLI. ```bash @@ -238,3 +237,7 @@ The local development environment is not as feature-complete as the Supabase Pla ``` ``` + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/cli/managing-environments.mdx b/apps/docs/pages/guides/cli/managing-environments.mdx similarity index 97% rename from apps/docs/docs/guides/cli/managing-environments.mdx rename to apps/docs/pages/guides/cli/managing-environments.mdx index c63b83ab093..238cc17609c 100644 --- a/apps/docs/docs/guides/cli/managing-environments.mdx +++ b/apps/docs/pages/guides/cli/managing-environments.mdx @@ -1,11 +1,10 @@ ---- -id: managing-environments -title: Managing Environments -description: How to deploy Supabase schema changes with a CI / CD pipeline. ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'managing-environments', + title: 'Managing Environments', + description: 'How to deploy Supabase schema changes with a CI / CD pipeline.', +} ## Overview @@ -415,3 +414,7 @@ supabase db reset In case [`reset`](/docs/reference/cli/usage#supabase-db-reset) fails, you can manually resolve conflicts by editing `_dev_A.sql` file. Once validated locally, commit your changes to Git and push to GitHub. + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/database.mdx b/apps/docs/pages/guides/database.mdx similarity index 91% rename from apps/docs/docs/guides/database.mdx rename to apps/docs/pages/guides/database.mdx index ace142b022a..d557ac7a79e 100644 --- a/apps/docs/docs/guides/database.mdx +++ b/apps/docs/pages/guides/database.mdx @@ -1,9 +1,11 @@ ---- -id: database -title: Database -description: Use Supabase to manage your data. -sidebar_label: Overview ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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. @@ -85,3 +87,7 @@ Read about resetting your database password [here](/docs/guides/database/managin - Read more about [Postgres](/docs/postgres/server/about) - Sign in: [app.supabase.com](https://app.supabase.com) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/database/arrays.mdx b/apps/docs/pages/guides/database/arrays.mdx similarity index 91% rename from apps/docs/docs/guides/database/arrays.mdx rename to apps/docs/pages/guides/database/arrays.mdx index 9065f762952..17595464aee 100644 --- a/apps/docs/docs/guides/database/arrays.mdx +++ b/apps/docs/pages/guides/database/arrays.mdx @@ -1,11 +1,10 @@ ---- -id: arrays -title: 'Working With Arrays' -description: How to use arrays in PostgreSQL and the Supabase API. ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'arrays', + title: 'Working With Arrays', + description: 'How to use arrays in PostgreSQL and the Supabase API.', +} 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. @@ -160,3 +159,7 @@ returns: - [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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/database/connecting-to-postgres.mdx b/apps/docs/pages/guides/database/connecting-to-postgres.mdx similarity index 94% rename from apps/docs/docs/guides/database/connecting-to-postgres.mdx rename to apps/docs/pages/guides/database/connecting-to-postgres.mdx index f87a954de6d..13bade73e20 100644 --- a/apps/docs/docs/guides/database/connecting-to-postgres.mdx +++ b/apps/docs/pages/guides/database/connecting-to-postgres.mdx @@ -1,8 +1,10 @@ ---- -id: connecting-to-postgres -title: 'Database Connections' -description: There are various ways to connect to your Postgres database. ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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: @@ -121,7 +123,7 @@ SSL enabled as illustrated below: psql "sslmode=verify-full sslrootcert=$HOME/Downloads/prod-ca-2021.cer host=db.abcdefghijklm.supabase.co dbname=postgres user=postgres" ``` -2. With `pgAdmin` +2. With `pgAdmin` a. Register a new Postgres server ![Register a new postgres server.](/docs/img/guides/database/register-server-pgAdmin.png) @@ -133,3 +135,7 @@ psql "sslmode=verify-full sslrootcert=$HOME/Downloads/prod-ca-2021.cer host=db.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.](/docs/img/guides/database/add-ssl-config.png) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/database/extensions.mdx b/apps/docs/pages/guides/database/extensions.mdx similarity index 84% rename from apps/docs/docs/guides/database/extensions.mdx rename to apps/docs/pages/guides/database/extensions.mdx index fe844b7da8a..a09ca6ca56e 100644 --- a/apps/docs/docs/guides/database/extensions.mdx +++ b/apps/docs/pages/guides/database/extensions.mdx @@ -1,12 +1,10 @@ ---- -id: extensions -title: Overview -description: Using Postgres extensions. ---- +import Layout from '~/layouts/DefaultGuideLayout' -import ExtensionsComponent from '@site/src/components/Extensions' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'extensions', + title: 'Overview', + description: 'Using Postgres extensions.', +} 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. @@ -56,4 +54,8 @@ Enabling some extensions with `create extension with schema ext Supabase is pre-configured with over 50 extensions. You can also install your own SQL extensions directly in the database through our SQL editor. - + + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/database/extensions/http.mdx b/apps/docs/pages/guides/database/extensions/http.mdx similarity index 90% rename from apps/docs/docs/guides/database/extensions/http.mdx rename to apps/docs/pages/guides/database/extensions/http.mdx index 13c4718aba7..39d11b19c14 100644 --- a/apps/docs/docs/guides/database/extensions/http.mdx +++ b/apps/docs/pages/guides/database/extensions/http.mdx @@ -1,11 +1,10 @@ ---- -id: http -title: 'http: RESTful Client' -description: An HTTP Client for PostgreSQL Functions. ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'http', + title: 'http: RESTful Client', + description: 'An HTTP Client for PostgreSQL Functions.', +} The `http` extension allows you to call RESTful endpoints within Postgres. @@ -114,3 +113,7 @@ from ## Resources - Official [`http` GitHub Repository](https://github.com/pramsey/pgsql-http) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/database/extensions/pgcron.mdx b/apps/docs/pages/guides/database/extensions/pgcron.mdx similarity index 87% rename from apps/docs/docs/guides/database/extensions/pgcron.mdx rename to apps/docs/pages/guides/database/extensions/pgcron.mdx index 7cdf943bdf0..57a704e444a 100644 --- a/apps/docs/docs/guides/database/extensions/pgcron.mdx +++ b/apps/docs/pages/guides/database/extensions/pgcron.mdx @@ -1,11 +1,11 @@ ---- -id: pgcron -title: 'pg_cron: Job Scheduling' -description: 'pgnet: a simple cron-based job scheduler for PostgreSQL that runs inside the database.' ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'pgcron', + title: 'pg_cron: Job Scheduling', + description: + 'pgnet: a simple cron-based job scheduler for PostgreSQL that runs inside the database.', +} The `pg_cron` extension is a simple cron-based job scheduler for PostgreSQL that runs inside the database. @@ -96,3 +96,7 @@ SELECT cron.unschedule('nightly-vacuum'); ## Resources - [pg_cron GitHub Repository](https://github.com/citusdata/pg_cron) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/database/extensions/pgnet.mdx b/apps/docs/pages/guides/database/extensions/pgnet.mdx similarity index 95% rename from apps/docs/docs/guides/database/extensions/pgnet.mdx rename to apps/docs/pages/guides/database/extensions/pgnet.mdx index 58fb475be27..e8290f6fa0a 100644 --- a/apps/docs/docs/guides/database/extensions/pgnet.mdx +++ b/apps/docs/pages/guides/database/extensions/pgnet.mdx @@ -1,11 +1,10 @@ ---- -id: pgnet -title: 'pg_net: Async Networking' -description: 'pg_net: an async networking extension for PostgreSQL.' ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'pgnet', + title: 'pg_net: Async Networking', + description: 'pg_net: an async networking extension for PostgreSQL.', +} @@ -251,3 +250,7 @@ Possible values for `net.http_response_result.status` are `('PENDING', 'SUCCESS' - Source code: [github.com/supabase/pg_net](https://github.com/supabase/pg_net/) - Official Docs: [supabase.github.io/pg_net](https://supabase.github.io/pg_net/) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/database/extensions/pgtap.mdx b/apps/docs/pages/guides/database/extensions/pgtap.mdx similarity index 94% rename from apps/docs/docs/guides/database/extensions/pgtap.mdx rename to apps/docs/pages/guides/database/extensions/pgtap.mdx index 7e6b439dc3e..fc642b522ab 100644 --- a/apps/docs/docs/guides/database/extensions/pgtap.mdx +++ b/apps/docs/pages/guides/database/extensions/pgtap.mdx @@ -1,11 +1,10 @@ ---- -id: pgtap -title: 'pgTAP: Unit Testing' -description: Unit testing in PostgreSQL. ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'pgtap', + title: 'pgTAP: Unit Testing', + description: 'Unit testing in PostgreSQL.', +} `pgTAP` is a unit testing extension for PostgreSQL. @@ -156,3 +155,7 @@ API: ## Resources - Official [`pgTAP` documentation](https://pgtap.org/) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/database/extensions/plv8.mdx b/apps/docs/pages/guides/database/extensions/plv8.mdx similarity index 91% rename from apps/docs/docs/guides/database/extensions/plv8.mdx rename to apps/docs/pages/guides/database/extensions/plv8.mdx index 5e13b5a081a..eb408b2c30f 100644 --- a/apps/docs/docs/guides/database/extensions/plv8.mdx +++ b/apps/docs/pages/guides/database/extensions/plv8.mdx @@ -1,11 +1,10 @@ ---- -id: plv8 -title: 'plv8: JavaScript Language' -description: JavaScript language for PostgreSQL. ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'plv8', + title: 'plv8: JavaScript Language', + description: 'JavaScript language for PostgreSQL.', +} The `plv8` extension allows you use JavaScript within Postgres. @@ -142,3 +141,7 @@ $$ language plv8; - Official [`plv8` documentation](https://plv8.github.io/) - [plv8 GitHub Repository](https://github.com/plv8/plv8) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/database/extensions/uuid-ossp.mdx b/apps/docs/pages/guides/database/extensions/uuid-ossp.mdx similarity index 84% rename from apps/docs/docs/guides/database/extensions/uuid-ossp.mdx rename to apps/docs/pages/guides/database/extensions/uuid-ossp.mdx index bb66b8c33c2..2731ae221a2 100644 --- a/apps/docs/docs/guides/database/extensions/uuid-ossp.mdx +++ b/apps/docs/pages/guides/database/extensions/uuid-ossp.mdx @@ -1,11 +1,10 @@ ---- -id: uuid-ossp -title: 'uuid-ossp: Unique Identifiers' -description: A UUID generator for PostgreSQL. ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'uuid-ossp', + title: 'uuid-ossp: Unique Identifiers', + description: 'A UUID generator for PostgreSQL.', +} The `uuid-ossp` extension can be used to generate a `UUID`. @@ -63,9 +62,10 @@ Once the extension is enabled, you now have access to a `uuid` type. Creates a UUID value based on the combination of computer’s MAC address, current timestamp, and a random value. -:::note -UUIDv1 leaks identifiable details, which might make it unsuitable for certain security-sensitive applications. -::: + + UUIDv1 leaks identifiable details, which might make it unsuitable for certain security-sensitive + applications. + ### `uuid_generate_v4()` @@ -97,3 +97,7 @@ create table contacts ( - [Choosing a Postgres Primary Key](https://supabase.com/blog/choosing-a-postgres-primary-key) - [The Basics Of PostgreSQL `UUID` Data Type](https://www.postgresqltutorial.com/postgresql-uuid/) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/database/full-text-search.mdx b/apps/docs/pages/guides/database/full-text-search.mdx similarity index 98% rename from apps/docs/docs/guides/database/full-text-search.mdx rename to apps/docs/pages/guides/database/full-text-search.mdx index 0f597589e5d..bf25e78a453 100644 --- a/apps/docs/docs/guides/database/full-text-search.mdx +++ b/apps/docs/pages/guides/database/full-text-search.mdx @@ -1,11 +1,10 @@ ---- -id: full-text-search -title: 'Full Text Search' -description: How to use full text search in PostgreSQL. ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'full-text-search', + title: 'Full Text Search', + description: 'How to use full text search in PostgreSQL.', +} Postgres has built-in functions to handle `Full Text Search` queries. This is like a "search engine" within Postgres. @@ -588,3 +587,7 @@ final result = await client ## Resources - [PostgreSQL: Text Search Functions and Operators](https://www.postgresql.org/docs/12/functions-textsearch.html) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/database/functions.mdx b/apps/docs/pages/guides/database/functions.mdx similarity index 96% rename from apps/docs/docs/guides/database/functions.mdx rename to apps/docs/pages/guides/database/functions.mdx index 097e3c0ac98..0204ef78eac 100644 --- a/apps/docs/docs/guides/database/functions.mdx +++ b/apps/docs/pages/guides/database/functions.mdx @@ -1,11 +1,10 @@ ---- -id: functions -title: Database Functions -description: Creating and using Postgres functions. ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'functions', + title: 'Database Functions', + description: 'Creating and using Postgres functions.', +} 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](../../reference/javascript/rpc). @@ -344,3 +343,7 @@ GRANT EXECUTE ON FUNCTION hello_world TO service_role; allowFullScreen > + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/database/json.mdx b/apps/docs/pages/guides/database/json.mdx similarity index 97% rename from apps/docs/docs/guides/database/json.mdx rename to apps/docs/pages/guides/database/json.mdx index 11dc1963581..c78fbb8475b 100644 --- a/apps/docs/docs/guides/database/json.mdx +++ b/apps/docs/pages/guides/database/json.mdx @@ -1,11 +1,10 @@ ---- -id: json -title: 'JSON' -description: Using the JSON data type in PostgreSQL. ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'json', + title: 'JSON', + description: 'Using the JSON data type in PostgreSQL.', +} 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. @@ -266,3 +265,7 @@ Note that the `->` operator returns JSONB data. If you want TEXT/STRING data ret - [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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/database/managing-passwords.mdx b/apps/docs/pages/guides/database/managing-passwords.mdx similarity index 80% rename from apps/docs/docs/guides/database/managing-passwords.mdx rename to apps/docs/pages/guides/database/managing-passwords.mdx index e100a41ee4d..79e51176195 100644 --- a/apps/docs/docs/guides/database/managing-passwords.mdx +++ b/apps/docs/pages/guides/database/managing-passwords.mdx @@ -1,11 +1,10 @@ ---- -id: managing-passwords -title: 'Passwords' -description: How to change your PostgreSQL database password. ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'managing-passwords', + title: 'Passwords', + description: 'How to change your PostgreSQL database password.', +} Your PostgreSQL database is the core of your Supabase project, so it's important that it has a strong, secure password at all times. @@ -28,3 +27,7 @@ It's absolutely critical that you store your customers' data safely. Here are so ## Resources - [PostgreSQL `ALTER USER` Documentation](https://www.postgresql.org/docs/12/sql-alteruser.html) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/database/managing-timezones.mdx b/apps/docs/pages/guides/database/managing-timezones.mdx similarity index 81% rename from apps/docs/docs/guides/database/managing-timezones.mdx rename to apps/docs/pages/guides/database/managing-timezones.mdx index 8b4cf4bde75..fdafda70537 100644 --- a/apps/docs/docs/guides/database/managing-timezones.mdx +++ b/apps/docs/pages/guides/database/managing-timezones.mdx @@ -1,12 +1,11 @@ ---- -id: managing-timezones -title: 'Timezones' -slug: managing-timezones -description: How to change your database timezone. ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'managing-timezones', + title: 'Timezones', + slug: 'managing-timezones', + description: 'How to change your database timezone.', +} 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". @@ -75,3 +74,7 @@ where name ilike '%york%';
+ +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/database/replication.mdx b/apps/docs/pages/guides/database/replication.mdx similarity index 87% rename from apps/docs/docs/guides/database/replication.mdx rename to apps/docs/pages/guides/database/replication.mdx index e78ec795f81..e7c349ca91f 100644 --- a/apps/docs/docs/guides/database/replication.mdx +++ b/apps/docs/pages/guides/database/replication.mdx @@ -1,11 +1,10 @@ ---- -id: replication -title: 'Replication' -slug: replication ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'replication', + title: 'Replication', + slug: 'replication', +} 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: @@ -22,12 +21,7 @@ Replication is done through _publications_, a method of choosing which changes t 4. Control which tables broadcast changes by selecting **Source** and toggling each table. ## Create a publication @@ -96,3 +90,7 @@ begin; create publication publication_name; commit; ``` + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/database/sql-to-api.mdx b/apps/docs/pages/guides/database/sql-to-api.mdx similarity index 87% rename from apps/docs/docs/guides/database/sql-to-api.mdx rename to apps/docs/pages/guides/database/sql-to-api.mdx index 298ece3417d..e26756c7b44 100644 --- a/apps/docs/docs/guides/database/sql-to-api.mdx +++ b/apps/docs/pages/guides/database/sql-to-api.mdx @@ -1,11 +1,10 @@ ---- -id: sql-to-api -title: 'Converting SQL to JavaScript API' -description: Implementing common SQL patterns in the JavaScript API ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'sql-to-api', + title: 'Converting SQL to JavaScript API', + description: 'Implementing common SQL patterns in the JavaScript API', +} @@ -81,3 +80,7 @@ const { data, error } = await supabase - [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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/database/tables.mdx b/apps/docs/pages/guides/database/tables.mdx similarity index 98% rename from apps/docs/docs/guides/database/tables.mdx rename to apps/docs/pages/guides/database/tables.mdx index e6b46ce49d8..010b104a2a4 100644 --- a/apps/docs/docs/guides/database/tables.mdx +++ b/apps/docs/pages/guides/database/tables.mdx @@ -1,11 +1,10 @@ ---- -id: tables -title: Tables and Data -description: Creating and using Postgres tables. ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'tables', + title: 'Tables and Data', + description: 'Creating and using Postgres tables.', +} Tables are where you store your data. @@ -504,3 +503,7 @@ Creating a materialized view is not a solution to inefficient queries. You shoul - [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/) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/database/testing.mdx b/apps/docs/pages/guides/database/testing.mdx similarity index 81% rename from apps/docs/docs/guides/database/testing.mdx rename to apps/docs/pages/guides/database/testing.mdx index 1301042e379..1ff2d912d66 100644 --- a/apps/docs/docs/guides/database/testing.mdx +++ b/apps/docs/pages/guides/database/testing.mdx @@ -1,11 +1,10 @@ ---- -id: testing -title: Testing Your Database -description: Test your database schema, tables, functions, and policies. ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'testing', + title: 'Testing Your Database', + description: 'Test your database schema, tables, functions, and policies.', +} You can use the Supabase CLI to test your database. The minimum required version of the CLI is [v1.11.4](https://github.com/supabase/cli/releases). To get started: @@ -68,3 +67,7 @@ Result: PASS - [pgTAP extension](/docs/guides/database/extensions/pgtap) - Official [pgTAP documentation](https://pgtap.org/) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/database/timeouts.mdx b/apps/docs/pages/guides/database/timeouts.mdx similarity index 83% rename from apps/docs/docs/guides/database/timeouts.mdx rename to apps/docs/pages/guides/database/timeouts.mdx index 2436c5dc0db..3afd0fe513a 100644 --- a/apps/docs/docs/guides/database/timeouts.mdx +++ b/apps/docs/pages/guides/database/timeouts.mdx @@ -1,8 +1,10 @@ ---- -id: timeouts -title: Timeouts -description: Timeouts and optimization ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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. @@ -25,3 +27,7 @@ set statement_timeout to 60000; -- 1 minute in milliseconds 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. + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/database/webhooks.mdx b/apps/docs/pages/guides/database/webhooks.mdx similarity index 87% rename from apps/docs/docs/guides/database/webhooks.mdx rename to apps/docs/pages/guides/database/webhooks.mdx index d7c19aa2cf7..ebbe58ade3d 100644 --- a/apps/docs/docs/guides/database/webhooks.mdx +++ b/apps/docs/pages/guides/database/webhooks.mdx @@ -1,11 +1,10 @@ ---- -id: webhooks -title: 'Database Webhooks' -description: Trigger external payloads on database events. ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'webhooks', + title: 'Database Webhooks', + description: 'Trigger external payloads on database events.', +} Database Webhooks allow you to send real-time data from your database to another system whenever a table event occurs. @@ -71,3 +70,7 @@ type DeletePayload = { ## Resources - [pg_net](/docs/guides/database/extensions/pgnet): an async networking extension for PostgreSQL + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/examples.mdx b/apps/docs/pages/guides/examples.mdx similarity index 97% rename from apps/docs/docs/guides/examples.mdx rename to apps/docs/pages/guides/examples.mdx index 0bc057bc305..0d923495ff6 100644 --- a/apps/docs/docs/guides/examples.mdx +++ b/apps/docs/pages/guides/examples.mdx @@ -1,8 +1,10 @@ ---- -id: examples -title: Examples and Resources -description: 'Examples you can use to get started with Supabase' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'examples', + title: 'Examples and Resources', + description: 'Examples you can use to get started with Supabase', +} @@ -153,3 +155,7 @@ Build a basic Todo List with Supabase and your favorite frontend framework: - [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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/functions.mdx b/apps/docs/pages/guides/functions.mdx similarity index 97% rename from apps/docs/docs/guides/functions.mdx rename to apps/docs/pages/guides/functions.mdx index 5d8982b94e4..dc9d680ec67 100644 --- a/apps/docs/docs/guides/functions.mdx +++ b/apps/docs/pages/guides/functions.mdx @@ -1,12 +1,11 @@ ---- -id: functions -title: Edge Functions -description: 'Globally distributed TypeScript functions.' -sidebar_label: Overview ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'functions', + title: 'Edge Functions', + description: 'Globally distributed TypeScript functions.', + sidebar_label: 'Overview', +} 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](https://github.com/supabase/supabase/tree/master/examples/edge-functions/supabase/functions/stripe-webhooks). @@ -275,3 +274,7 @@ Edge Functions supports `GET`, `POST`, `PUT`, `PATCH`, `DELETE`, and `OPTIONS`. - Edge Functions - Local development - only one function at a time - Serving of HTML content is not supported (`GET` requests that return `text/html` will be rewritten to `text/plain`). + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/functions/auth.mdx b/apps/docs/pages/guides/functions/auth.mdx similarity index 90% rename from apps/docs/docs/guides/functions/auth.mdx rename to apps/docs/pages/guides/functions/auth.mdx index 6918f10c040..2a611f8c3b9 100644 --- a/apps/docs/docs/guides/functions/auth.mdx +++ b/apps/docs/pages/guides/functions/auth.mdx @@ -1,8 +1,10 @@ ---- -id: auth -title: Auth -description: Supabase Edge Functions and Auth. ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'auth', + title: 'Auth', + description: 'Supabase Edge Functions and Auth.', +} Edge Functions work seamlessly with [Supabase Auth](/docs/guides/auth), allowing you to identify which user called your function. @@ -56,3 +58,7 @@ serve(async (req: Request) => { ``` See the [example on GitHub](https://github.com/supabase/supabase/blob/master/examples/edge-functions/supabase/functions/select-from-table-with-auth-rls/index.ts). + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/functions/cicd-workflow.mdx b/apps/docs/pages/guides/functions/cicd-workflow.mdx similarity index 74% rename from apps/docs/docs/guides/functions/cicd-workflow.mdx rename to apps/docs/pages/guides/functions/cicd-workflow.mdx index d876604da88..e902f140370 100644 --- a/apps/docs/docs/guides/functions/cicd-workflow.mdx +++ b/apps/docs/pages/guides/functions/cicd-workflow.mdx @@ -1,8 +1,10 @@ ---- -id: cicd-workflow -title: CI / CD Workflow -description: How to deploy Supabase Edge Functions with a CI / CD pipeline. ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'cicd-workflow', + title: 'CI / CD Workflow', + description: 'How to deploy Supabase Edge Functions with a CI / CD pipeline.', +} As described in the Supabase CLI [Environments Guide](/docs/guides/cli/managing-environments), 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: @@ -34,3 +36,7 @@ jobs: ``` See the [example on GitHub](https://github.com/supabase/supabase/blob/master/examples/edge-functions/.github/workflows/deploy.yaml). + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/pages/guides/functions/examples.mdx b/apps/docs/pages/guides/functions/examples.mdx new file mode 100644 index 00000000000..66e499356a3 --- /dev/null +++ b/apps/docs/pages/guides/functions/examples.mdx @@ -0,0 +1,17 @@ +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'examples', + title: 'Examples', + description: 'Useful Supabase Edge Functions 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. + +
+ +
+ +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/hosting/docker.mdx b/apps/docs/pages/guides/hosting/docker.mdx similarity index 92% rename from apps/docs/docs/guides/hosting/docker.mdx rename to apps/docs/pages/guides/hosting/docker.mdx index 682cffd8d4f..db9bcdf0563 100644 --- a/apps/docs/docs/guides/hosting/docker.mdx +++ b/apps/docs/pages/guides/hosting/docker.mdx @@ -1,9 +1,11 @@ ---- -id: docker -title: Self-hosting with Docker -description: How to configure and deploy Supabase. -sidebar_label: Docker ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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. @@ -112,3 +114,7 @@ See the following guides to deploy Docker Compose setup using your preferred too - Got a question? [Ask here](https://github.com/supabase/supabase/discussions). - Sign in: [app.supabase.com](https://app.supabase.com) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/hosting/overview.mdx b/apps/docs/pages/guides/hosting/overview.mdx similarity index 95% rename from apps/docs/docs/guides/hosting/overview.mdx rename to apps/docs/pages/guides/hosting/overview.mdx index 00c9a6b9b14..27c77f0421a 100644 --- a/apps/docs/docs/guides/hosting/overview.mdx +++ b/apps/docs/pages/guides/hosting/overview.mdx @@ -1,9 +1,11 @@ ---- -id: overview -title: Self Hosting -sidebar_label: Overview -description: Getting started with Self Hosting. ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'overview', + title: 'Self Hosting', + sidebar_label: 'Overview', + description: 'Getting started with Self Hosting.', +} There are several ways to use Supabase: @@ -153,3 +155,7 @@ While Supabase officially supports Docker, we have several other deployment stra - [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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/hosting/platform.mdx b/apps/docs/pages/guides/hosting/platform.mdx similarity index 90% rename from apps/docs/docs/guides/hosting/platform.mdx rename to apps/docs/pages/guides/hosting/platform.mdx index a8c24cba66f..a713064e779 100644 --- a/apps/docs/docs/guides/hosting/platform.mdx +++ b/apps/docs/pages/guides/hosting/platform.mdx @@ -1,9 +1,11 @@ ---- -id: platform -title: Supabase Platform -description: Getting started with the Supabase Platform. -sidebar_label: Overview ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'platform', + title: 'Supabase Platform', + description: 'Getting started with the Supabase Platform.', + sidebar_label: 'Overview', +} Supabase is a hosted platform which makes it very simple to get started without needing to manage any infrastructure. @@ -29,12 +31,7 @@ Organizations are a way to group your projects. Each organization can be configu You can invite your team members into your organizations to collaborate on projects. You can also assign roles to your team members with different access levels. The table below shows the corresponding permissions for each available role in the Dashboard. @@ -83,3 +80,7 @@ If Supabase experiences outages, we keep you as informed as possible, as early a - 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. + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/integrations/appsmith.mdx b/apps/docs/pages/guides/integrations/appsmith.mdx similarity index 95% rename from apps/docs/docs/guides/integrations/appsmith.mdx rename to apps/docs/pages/guides/integrations/appsmith.mdx index 2d28b3e8118..f65602ef9fc 100644 --- a/apps/docs/docs/guides/integrations/appsmith.mdx +++ b/apps/docs/pages/guides/integrations/appsmith.mdx @@ -1,8 +1,11 @@ ---- -id: appsmith -title: 'Appsmith' -description: 'Get started with Supabase and Appsmith, an open-source framework for building internal tools.' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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. @@ -164,3 +167,7 @@ SELECT * FROM public."tickets"; - [Appsmith](https://www.appsmith.com/) official website. - [Appsmith GitHub](https://github.com/appsmithorg). - [Appsmith](https://docs.appsmith.com/) documentation. + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/integrations/auth0.mdx b/apps/docs/pages/guides/integrations/auth0.mdx similarity index 97% rename from apps/docs/docs/guides/integrations/auth0.mdx rename to apps/docs/pages/guides/integrations/auth0.mdx index c4ec569577a..e344acacdb8 100644 --- a/apps/docs/docs/guides/integrations/auth0.mdx +++ b/apps/docs/pages/guides/integrations/auth0.mdx @@ -1,8 +1,11 @@ ---- -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).' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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. @@ -461,3 +464,7 @@ Now when we refresh our application, we should finally see our list of `todos`! - [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/). + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/integrations/authsignal.mdx b/apps/docs/pages/guides/integrations/authsignal.mdx similarity index 97% rename from apps/docs/docs/guides/integrations/authsignal.mdx rename to apps/docs/pages/guides/integrations/authsignal.mdx index c98930959f3..250b822b483 100644 --- a/apps/docs/docs/guides/integrations/authsignal.mdx +++ b/apps/docs/pages/guides/integrations/authsignal.mdx @@ -1,8 +1,11 @@ ---- -id: authsignal -title: 'Authsignal' -description: 'Add an MFA step after sign-in. Use Supabase Auth to sign in with email and password and Authsignal to initiate an Authenticator App challenge.' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'authsignal', + title: 'Authsignal', + description: + 'Add an MFA step after sign-in. Use Supabase Auth to sign in with email and password and Authsignal to initiate an Authenticator App challenge.', +} This guide shows how to integrate [Authsignal](https://www.authsignal.com/) with [Next.js](https://nextjs.org/) and [Supabase](https://supabase.com/) in order to add an MFA step after sign-in. @@ -580,3 +583,7 @@ Then if you sign out, you'll be prompted to complete an MFA challenge when signi - To learn more about Authsignal take a look at the [API Documentation](https://docs.authsignal.com/). - You can customize the look and feel of the Authsignal Prebuilt MFA page [here](https://portal.authsignal.com/organisations/tenants/customizations). + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/integrations/clerk.mdx b/apps/docs/pages/guides/integrations/clerk.mdx similarity index 95% rename from apps/docs/docs/guides/integrations/clerk.mdx rename to apps/docs/pages/guides/integrations/clerk.mdx index e766660c74f..8a7b50e1744 100644 --- a/apps/docs/docs/guides/integrations/clerk.mdx +++ b/apps/docs/pages/guides/integrations/clerk.mdx @@ -1,8 +1,11 @@ ---- -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.' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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. @@ -182,3 +185,7 @@ If you would like the requesting user ID from the JWT to automatically populate - [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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/integrations/dashibase.mdx b/apps/docs/pages/guides/integrations/dashibase.mdx similarity index 95% rename from apps/docs/docs/guides/integrations/dashibase.mdx rename to apps/docs/pages/guides/integrations/dashibase.mdx index fb96230bcd9..962f1397b29 100644 --- a/apps/docs/docs/guides/integrations/dashibase.mdx +++ b/apps/docs/pages/guides/integrations/dashibase.mdx @@ -1,8 +1,10 @@ ---- -id: dashibase -title: 'Dashibase' -description: 'Create an internal CRUD dashboard with Supabase and Dashibase in 15 mins.' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'dashibase', + title: 'Dashibase', + description: 'Create an internal CRUD dashboard with Supabase and Dashibase in 15 mins.', +} Are you tired of building admin panels? [Dashibase](https://dashibase.com/) is a super fast way to build internal CRUD dashboards with a Notion-like UI. @@ -97,3 +99,7 @@ P.S. How long did we take? :) - [Dashibase open-source repo](https://github.com/dashibase) - [Dashibase Twitter](https://twitter.com/dashibase) - [Dashibase Discord](https://discord.gg/crhDFYvbbq) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/integrations/dhiwise.mdx b/apps/docs/pages/guides/integrations/dhiwise.mdx similarity index 94% rename from apps/docs/docs/guides/integrations/dhiwise.mdx rename to apps/docs/pages/guides/integrations/dhiwise.mdx index 87fbf20e938..68e57e41ceb 100644 --- a/apps/docs/docs/guides/integrations/dhiwise.mdx +++ b/apps/docs/pages/guides/integrations/dhiwise.mdx @@ -1,11 +1,11 @@ ---- -id: dhiwise -title: 'DhiWise' -description: 'Get started with Supabase and DhiWise. Convert your Figma designs into Flutter apps, store data, and authenticate your users' ---- +import Layout from '~/layouts/DefaultGuideLayout' -import select from '/docs/img/guides/integrations/dhiwise/select.png' -import create from '/docs/img/guides/integrations/dhiwise/create.png' +export const meta = { + id: 'dhiwise', + title: 'DhiWise', + description: + 'Get started with Supabase and DhiWise. Convert your Figma designs into Flutter apps, store data, and authenticate your users', +} This guide explains how to connect Supabase backend to DhiWise Flutter application quickly. @@ -64,7 +64,9 @@ After downloading the application source code, When you first integrate Supabase in your DhiWise Flutter application, You will be asked to add [Supabase auth key and URL](##step-3-find-the-api-key-and-url). When you add them, all the tables available in your Supabase project will be synced in DhiWise. You can integrate Select and Create queries on your Flutter screen for a particular table in DhiWise. -

Select records

+### Select records + +![Create](/docs/img/guides/integrations/dhiwise/select.png) #### **Step 1:** @@ -195,3 +197,7 @@ Finally, you have added Supabase to your application to create records from your - [DhiWise Official Website](https://dhiwise.com) - [DhiWise Documentation](https://docs.dhiwise.com) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/integrations/directus.mdx b/apps/docs/pages/guides/integrations/directus.mdx similarity index 95% rename from apps/docs/docs/guides/integrations/directus.mdx rename to apps/docs/pages/guides/integrations/directus.mdx index 4a327340d1d..ba6e59e46cd 100644 --- a/apps/docs/docs/guides/integrations/directus.mdx +++ b/apps/docs/pages/guides/integrations/directus.mdx @@ -1,8 +1,11 @@ ---- -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.' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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. @@ -16,8 +19,7 @@ In this guide, we will demonstrate how to create a new Supabase project, install [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. @@ -129,3 +131,7 @@ Below are some additional resources to dive in and start exploring these two pla - Explore the [Supabase documentation](https://supabase.com/docs) - Join the Supabase community on [Discord](https://discord.supabase.com/) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/integrations/draftbit.mdx b/apps/docs/pages/guides/integrations/draftbit.mdx similarity index 97% rename from apps/docs/docs/guides/integrations/draftbit.mdx rename to apps/docs/pages/guides/integrations/draftbit.mdx index adaae47333b..357a2ef3eea 100644 --- a/apps/docs/docs/guides/integrations/draftbit.mdx +++ b/apps/docs/pages/guides/integrations/draftbit.mdx @@ -1,8 +1,10 @@ ---- -id: draftbit -title: 'Draftbit' -description: 'Connect your Supabase postgres database to your Low-code mobile app.' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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. @@ -229,3 +231,7 @@ In the API Request action: - [Draftbit](https://draftb.it/3Fkbask) official website. - [Draftbit Community](https://community.draftbit.com/home). - [Draftbit](https://docs.draftbit.com/) documentation. + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/integrations/fezto.mdx b/apps/docs/pages/guides/integrations/fezto.mdx similarity index 75% rename from apps/docs/docs/guides/integrations/fezto.mdx rename to apps/docs/pages/guides/integrations/fezto.mdx index 1eb93afc4b7..17d48db27f4 100644 --- a/apps/docs/docs/guides/integrations/fezto.mdx +++ b/apps/docs/pages/guides/integrations/fezto.mdx @@ -1,8 +1,10 @@ ---- -id: fezto -title: 'Frontend Zero to One' -description: 'Create an app automatically from your Supabase Postgres using OpenAPI' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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. @@ -25,3 +27,7 @@ You will need: 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. + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/integrations/integrations.mdx b/apps/docs/pages/guides/integrations/integrations.mdx similarity index 83% rename from apps/docs/docs/guides/integrations/integrations.mdx rename to apps/docs/pages/guides/integrations/integrations.mdx index 9fdf5c6fa2d..de7a444ec58 100644 --- a/apps/docs/docs/guides/integrations/integrations.mdx +++ b/apps/docs/pages/guides/integrations/integrations.mdx @@ -1,8 +1,10 @@ ---- -id: integrations -title: 'Supabase Marketplace' -description: 'Integrations and Partners' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'integrations', + title: 'Supabase Marketplace', + description: 'Integrations and Partners', +} The Supabase Marketplace brings together all the tools you need to extend your Supabase project. This includes: @@ -24,11 +26,15 @@ Supabase provides several integration points: Integrations are assessed on the following criteria: -- **Business viability** +- **Business viability** While we welcome everyone to built an integration, we only list companies that are deemed to be long-term viable. This includes an official business registration and bank account, meaningful revenue, or Venture Capital backing. We require this criteria to ensure the health of the marketplace. -- **Compliance** +- **Compliance** Integrations should not infringe on the Supabase brand/trademark. In short, you cannot use "Supabase" in the name. As the listing appears on the Supabase domain, we don't want to mislead developers into thinking that an integration is an official product. -- **Service Level Agreements** +- **Service Level Agreements** All listings are required to have their own Terms and Conditions, Privacy Policy, and Acceptable Use Policy, and the company must have resources to meet their SLAs. -- **Maintainability** +- **Maintainability** All integrations are required to be maintained and functional with Supabase, and the company may be assessed on your ability to remain functional over a long time horizon. + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/integrations/keyri.mdx b/apps/docs/pages/guides/integrations/keyri.mdx similarity index 94% rename from apps/docs/docs/guides/integrations/keyri.mdx rename to apps/docs/pages/guides/integrations/keyri.mdx index d0b44ce49b3..fdbf231660c 100644 --- a/apps/docs/docs/guides/integrations/keyri.mdx +++ b/apps/docs/pages/guides/integrations/keyri.mdx @@ -1,8 +1,11 @@ ---- -id: keyri -title: 'Keyri' -description: 'QR authentication for an easy and flexible biometric solution across all platforms.' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'keyri', + title: 'Keyri', + description: + 'QR authentication for an easy and flexible biometric solution across all platforms.', +} Keyri can be used to incorporate sign-in-with-QR functionality into your Supabase app, allowing users to scan a QR code on your web app with your mobile app and be instantly logged into the web app without having to input any credentials. @@ -138,3 +141,7 @@ if (response.error != null) { .catchError((error, stackTrace) => _onError(error)); } ``` + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/integrations/pgmustard.mdx b/apps/docs/pages/guides/integrations/pgmustard.mdx similarity index 89% rename from apps/docs/docs/guides/integrations/pgmustard.mdx rename to apps/docs/pages/guides/integrations/pgmustard.mdx index 4a463c11f07..078181c6f2c 100644 --- a/apps/docs/docs/guides/integrations/pgmustard.mdx +++ b/apps/docs/pages/guides/integrations/pgmustard.mdx @@ -1,8 +1,11 @@ ---- -id: pgmustard -title: 'pgMustard' -description: 'Troubleshoot slow queries on Supabase with pgMustard, a visualization tool that also gives advice.' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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. @@ -64,3 +67,7 @@ We could look into why Postgres isn’t choosing to do an index-only scan here, - [pgMustard](https://www.pgmustard.com) official website. - [pgMustard explain glossary](https://www.pgmustard.com/docs/explain). + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/integrations/plasmic.mdx b/apps/docs/pages/guides/integrations/plasmic.mdx similarity index 97% rename from apps/docs/docs/guides/integrations/plasmic.mdx rename to apps/docs/pages/guides/integrations/plasmic.mdx index a3396c73be8..2ca62ccabcb 100644 --- a/apps/docs/docs/guides/integrations/plasmic.mdx +++ b/apps/docs/pages/guides/integrations/plasmic.mdx @@ -1,8 +1,11 @@ ---- -id: plasmic -title: 'Plasmic' -description: 'Get started with Supabase and Plasmic, an open-source framework for building internal tools.' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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. @@ -310,3 +313,7 @@ export function SupabaseTextField({ name, className }: { name?: string; classNam ``` 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. + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/integrations/polyscale.mdx b/apps/docs/pages/guides/integrations/polyscale.mdx similarity index 86% rename from apps/docs/docs/guides/integrations/polyscale.mdx rename to apps/docs/pages/guides/integrations/polyscale.mdx index 613ba1d5ba2..801b9eff4ec 100644 --- a/apps/docs/docs/guides/integrations/polyscale.mdx +++ b/apps/docs/pages/guides/integrations/polyscale.mdx @@ -1,8 +1,11 @@ ---- -id: polyscale -title: 'PolyScale' -description: 'The easiest way to get low-latency reads from your Supabase database for multi-region applications is by using PolyScale, a code-free global caching service.' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'polyscale', + title: 'PolyScale', + description: + 'The easiest way to get low-latency reads from your Supabase database for multi-region applications is by using PolyScale, a code-free global caching service.', +} [PolyScale](https://polyscale.ai) is an intelligent, serverless database caching engine which allows low-latency reads from Supabase globally, no coding required. Supabase can be connected to PolyScale in minutes, providing you fast access to your Supabase data around the globe. @@ -61,3 +64,7 @@ That's it. ## All done! You can read more about PolyScale [here](https://www.polyscale.ai/) or check out our [documentation](https://docs.polyscale.ai/). + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/integrations/prisma.mdx b/apps/docs/pages/guides/integrations/prisma.mdx similarity index 96% rename from apps/docs/docs/guides/integrations/prisma.mdx rename to apps/docs/pages/guides/integrations/prisma.mdx index e3d366fa1c5..7334621d910 100644 --- a/apps/docs/docs/guides/integrations/prisma.mdx +++ b/apps/docs/pages/guides/integrations/prisma.mdx @@ -1,8 +1,10 @@ ---- -id: prisma -title: 'Prisma' -description: 'Connect your Supabase postgres database to your Prisma project.' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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. @@ -160,3 +162,7 @@ alter default privileges in schema public grant all on sequences to postgres, an - [Prisma](https://prisma.io) official website. - [Prisma GitHub](https://github.com/prisma/prisma). - [Prisma](https://www.prisma.io/docs/) documentation. + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/integrations/sequin.mdx b/apps/docs/pages/guides/integrations/sequin.mdx similarity index 92% rename from apps/docs/docs/guides/integrations/sequin.mdx rename to apps/docs/pages/guides/integrations/sequin.mdx index a5600c862d1..54f62b477c4 100644 --- a/apps/docs/docs/guides/integrations/sequin.mdx +++ b/apps/docs/pages/guides/integrations/sequin.mdx @@ -1,8 +1,11 @@ ---- -id: sequin -title: 'Sequin' -description: 'Sync platforms like Stripe and Salesforce with your Supabase database in real-time using Sequin.' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'sequin', + title: 'Sequin', + description: + 'Sync platforms like Stripe and Salesforce with your Supabase database in real-time using Sequin.', +} This guide explains how to quickly setup a sync between Sequin and a Supabase Postgres database. @@ -82,3 +85,7 @@ You'll use this client to query for data in your synced schema. - [Sequin Console](https://app.sequin.io*). - [Sequin](https://docs.sequin.io/welcome) documentation. - [Sequin + Supabase + Stripe Tutorial](https://github.com/sequin-io/build-a-saas-with-next-js-supabase-stripe-and-sequin) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/integrations/snaplet.mdx b/apps/docs/pages/guides/integrations/snaplet.mdx similarity index 95% rename from apps/docs/docs/guides/integrations/snaplet.mdx rename to apps/docs/pages/guides/integrations/snaplet.mdx index 440579a4c7d..b3513fcaa7e 100644 --- a/apps/docs/docs/guides/integrations/snaplet.mdx +++ b/apps/docs/pages/guides/integrations/snaplet.mdx @@ -1,8 +1,11 @@ ---- -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' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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. @@ -114,3 +117,7 @@ Once completed, you will be presented with a list of databases that are connecte 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). + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/integrations/stytch.mdx b/apps/docs/pages/guides/integrations/stytch.mdx similarity index 98% rename from apps/docs/docs/guides/integrations/stytch.mdx rename to apps/docs/pages/guides/integrations/stytch.mdx index 3929087f0d9..0b6ceee6c4f 100644 --- a/apps/docs/docs/guides/integrations/stytch.mdx +++ b/apps/docs/pages/guides/integrations/stytch.mdx @@ -1,8 +1,11 @@ ---- -id: stytch -title: 'Stytch' -description: "Build a Next.js application powered by password-less authentication from Stytch, and Supabase's Row Level Security (RLS)." ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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. @@ -654,3 +657,7 @@ With these two changes you will now have a working Google One Tap authentication - [Stytch blog](https://stytch.com/blog?utm_source=supabase&utm_medium=guide) - [Stytch documentation](https://stytch.com/docs?utm_source=supabase&utm_medium=guide) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/integrations/supertokens.mdx b/apps/docs/pages/guides/integrations/supertokens.mdx similarity index 98% rename from apps/docs/docs/guides/integrations/supertokens.mdx rename to apps/docs/pages/guides/integrations/supertokens.mdx index d83f13b267d..add7a43d02f 100644 --- a/apps/docs/docs/guides/integrations/supertokens.mdx +++ b/apps/docs/pages/guides/integrations/supertokens.mdx @@ -1,8 +1,11 @@ ---- -id: supertokens -title: 'SuperTokens' -description: 'Create a Next.js application secured by SuperTokens and PostgreSQL Row Level Security.' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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. @@ -397,3 +400,7 @@ If you navigate to your table you should see a new row with the user's `user_id` - [SuperTokens](https://supertokens.com/) official website. - [SuperTokens community](https://supertokens.com/discord). - [SuperTokens documentation](https://supertokens.com/docs/guides). + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/integrations/vercel.mdx b/apps/docs/pages/guides/integrations/vercel.mdx similarity index 95% rename from apps/docs/docs/guides/integrations/vercel.mdx rename to apps/docs/pages/guides/integrations/vercel.mdx index dd2ec91417b..dc147aa119e 100644 --- a/apps/docs/docs/guides/integrations/vercel.mdx +++ b/apps/docs/pages/guides/integrations/vercel.mdx @@ -1,8 +1,11 @@ ---- -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. ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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! @@ -239,3 +242,7 @@ export default function Home() { - [Vercel blog](https://vercel.com/blog). - [Vercel docs](https://vercel.com/docs). - [Vercel Integration docs](https://vercel.com/docs/integrations) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/integrations/weweb.mdx b/apps/docs/pages/guides/integrations/weweb.mdx similarity index 92% rename from apps/docs/docs/guides/integrations/weweb.mdx rename to apps/docs/pages/guides/integrations/weweb.mdx index 38a1d869bc4..93ddbd5f2bc 100644 --- a/apps/docs/docs/guides/integrations/weweb.mdx +++ b/apps/docs/pages/guides/integrations/weweb.mdx @@ -1,54 +1,50 @@ ---- -id: weweb -title: 'WeWeb' -description: 'Build user interfaces on top of existing databases.' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'weweb', + title: 'WeWeb', + description: 'Build user interfaces on top of existing databases.', +} This guide explains how to connect a Supabase back-end to a WeWeb front-end and then configure all the CRUD operations necessary to build an Admin Portal with user authentication, roles, and permissions. -[WeWeb](https://dashboard.weweb.io/sign-up) is a low-code front-end builder that allies the short learning curve of no-code with the freedom of code. +[WeWeb](https://dashboard.weweb.io/sign-up) is a low-code front-end builder that allies the short learning curve of no-code with the freedom of code. It connects to Supabase via two native integrations: -- one for data manipulation, and + +- one for data manipulation, and - another for user authentication. -If you don’t have an WeWeb account, you can create one [here](https://dashboard.weweb.io/sign-up). +If you don't have an WeWeb account, you can create one [here](https://dashboard.weweb.io/sign-up). -Let’s get started! +Let's get started! - -## Step 1: Add the Supabase Data Source Plugin in WeWeb +## Step 1: Add the Supabase Data Source Plugin in WeWeb In order to read Supabase data in WeWeb, you'll first need to add the Supabase Data Source Plugin: ![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-09-at-11.38.44@2x.png) - Once you've added it, you will be invited to share your Supabase project URL and public API key: ![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-09-at-11.39.33@2x.png) - -In Supabase, you can find both your project URL and public key in the `Settings` > `API` menu: +In Supabase, you can find both your project URL and public key in the `Settings` > `API` menu: ![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-09-at-11.45.46@2x.png) - Once you have added both to WeWeb, you will have the option to enable realtime tables if you wish to do so: ![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-18-at-12.22.43@2x.png) - **🚨 Warning 🚨** > Realtime is disabled by default in Supabase for better database performance and security. Learn more about [realtime functionalities](https://supabase.com/docs/guides/database#realtime) in our documentation. -Member -@awalias awalias 16 days ago -might just wanna change these ones to be relative but otherwise looks great 👍 - -@EWMAs Reply... - +> Member +> @awalias awalias 16 days ago +> might just wanna change these ones to be relative but otherwise looks great 👍 +@EWMAs Reply... ## Step 2: GET Data from Supabase @@ -56,19 +52,15 @@ Once you click on `Add a Collection`, you will be invited to give your Collectio ![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-09-at-11.55.15@2x.png) - You will then be able to select the Table from which you want to pull data: ![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-09-at-11.57.09.gif) - - Notice that this gives you access to 2 separate modes to access the fields in the table: 1. a "Guided" mode, and 2. an "Advanced" mode. - ### Guided mode By default, the "Guided" mode returns the data from all the fields. @@ -77,12 +69,10 @@ In the example below, we decide to exclude the data from the `created_at` field _![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-09-at-12.04.37@2x.png)_ - As a result, WeWeb does not fetch the `created_at` field. This is helpful because we can exclude data that we don't want to load in the frontend, either because we don't need it or because it's confidential. - ### Advanced mode In our database, we created 2 separate tables for vehicles and locations. @@ -101,23 +91,19 @@ By [making custom queries to Supabase](https://supabase.com/docs/reference/javas _![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-18-at-12.06.17.gif)_ - In the example above, we are telling Supabase: -- from the table selected in the Collection – in this case the `vehicles` table – please send me the data in the `id`, `model`, and `mileage` fields -- look for the `location_id` in the `vehicles` table in the `locations` table and send me the data in the corresponding `name` field +- from the table selected in the Collection – in this case the `vehicles` table – please send me the data in the `id`, `model`, and `mileage` fields +- look for the `location_id` in the `vehicles` table in the `locations` table and send me the data in the corresponding `name` field If we only ask for the data from the `location` field of the `vehicles` table, Supabase will only return the `id`: ![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-09-at-12.39.12@2x.png) - **🚨 Warning 🚨** > If you have enabled Row-Level Security in Supabase, make sure you have also [added a Policy](https://supabase.com/docs/learn/auth-deep-dive/auth-policies) that allows users to read the data in the table. Otherwise, WeWeb won't be able to get the data. - - ## Step 3: Display Supabase Data in WeWeb Assuming you were able to fetch data from Supabase in a WeWeb Collection, you'll be able to bind the data from that Collection on your WeWeb pages. @@ -128,13 +114,10 @@ In the example below, we chose to display the car model and mileage in the [Data We chose this element because it includes a built-in inline editing mode we'll want to use later for our CRUD operations. - #### 🔥 Pro Tip 🔥 > In WeWeb, you can [bind arrays of data to any Container](https://docs.weweb.io/display-collection-list/). Just bear in mind that the first child of the Container you bind the Collection to will be the repeated item. With that in mind, you might want the first child Element to be another Container with a number of items inside like a title, description, button or image. - - ## Step 4: Update a record in Supabase Once you've added a Supabase Collection of data to WeWeb, you might want to allow users to manipulate the data in that Collection. @@ -146,6 +129,7 @@ In the example below, we are using the "Update row" Workflow that comes by defau The trigger is `On Row update`. Since we added the Supabase Data Source Plugin above, we have access to all the CRUD actions available in Supabase: + - Select - Insert - Update @@ -156,12 +140,10 @@ In this case, we choose the "Update" action: ![](https://weweb-changelog.ghost.io/content/images/2022/10/CleanShot-2022-10-13-at-15.27.20@2x.png) - Then, in our "Update" action, we select the `vehicles` table and map the `id` to the id of the Workflow Event: ![](https://weweb-changelog.ghost.io/content/images/2022/10/CleanShot-2022-10-13-at-17.16.51@2x.png) - Finally, we tell WeWeb we want to update the `mileage` field in our Supabase table, and send the value in the `mileage` column of our Data Grid: ![](https://weweb-changelog.ghost.io/content/images/2022/10/CleanShot-2022-10-13-at-17.20.24@2x.png) @@ -172,14 +154,12 @@ If you switch to Preview mode, you will be update your Supabase table from your ![](https://weweb-changelog.ghost.io/content/images/2022/10/CleanShot-2022-10-13-at-17.35.20.gif) - **🔥 Pro Tip 🔥** > By default, the fields in the Data Grid Element are Text fields but you can change the input type to Number if you need to send numerical data to your database: ![](https://weweb-changelog.ghost.io/content/images/2022/10/CleanShot-2022-10-13-at-17.22.58@2x.png) - ## Restrict who can modify a record in Supabase By default, all the data in the tables that are in the `public` schema of your Supabase project can be read, updated, or deleted. @@ -188,18 +168,15 @@ Supabase allows you to [enable Row-Level Security](https://supabase.com/docs/lea ![](https://weweb-changelog.ghost.io/content/images/2022/10/CleanShot-2022-10-13-at-16.10.39@2x.png) - If you want to restrict certain actions to specific users or roles, you'll need to: -- add Supabase authentication to your WeWeb project, and -- [write SQL policies in Supabase](https://supabase.com/docs/learn/auth-deep-dive/auth-policies). - +- add Supabase authentication to your WeWeb project, and +- [write SQL policies in Supabase](https://supabase.com/docs/learn/auth-deep-dive/auth-policies). We provide a number of policy templates to get you started: ![](https://weweb-changelog.ghost.io/content/images/2022/10/CleanShot-2022-10-13-at-16.17.32@2x.png) - In the example below, we say that users can: 1. update a record @@ -208,22 +185,18 @@ In the example below, we say that users can: ![](https://weweb-changelog.ghost.io/content/images/2022/10/CleanShot-2022-10-13-at-16.19.28@2x.png) - **🔥 Pro Tip 🔥** > Once you enable RLS on a Supabase table, you won't be able to access the data in a WeWeb Collection unless you've added a policy. ![](https://weweb-changelog.ghost.io/content/images/2022/10/CleanShot-2022-10-13-at-16.28.51.gif) - - - ## Step 4: Add User Authentication + Once you are able to display Supabase data in WeWeb, you might want to restrict access to certain users or display specific data based on a user's role. In order to do that, you'll need to add WeWeb's Supabase Auth Plugin. - ### Add Supabase Auth Plugin in WeWeb Supabase comes with an in-built authentication system which you can use in WeWeb. @@ -232,17 +205,14 @@ To add the Supabase Auth Plugin in WeWeb, go to `Plugins` > `Authentication`: ![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-09-at-15.00.47@2x.png) - Assuming you have already provided your Supabase project URL and public API key when setting up the Supabase Data source, the only thing left to do will be to add your private API key: ![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-09-at-15.04.04@2x.png) - In Supabase, you can find your private API key in `Settings` > `API`: ![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-09-at-15.05.40@2x.png) - **🚨 Warning 🚨** > As the name suggests, you'll want to keep this API key secret! Assuming you copy it properly in the "Private API key" field of the Supabase Auth Plugin and don't use it anywhere else in your Weweb project, Weweb will never make it public. @@ -251,31 +221,26 @@ You will then be invited to choose a page to redirect _unauthenticated_ users, i ![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-09-at-15.17.43@2x.png) - **🚨 Warning 🚨** > When you setup your Login Workflow, make sure you don't redirect unauthenticated users to a page that is only accessible to authenticated users. Otherwise, you'll be creating an **infinite loop** and your app will crash. - ### Create User Sign Up and Sign In Workflows In the `Add` > `UI kit` menu of WeWeb, you can find ready-made Sign in and Sign up Forms: ![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-19-at-11.45.02@2x.png) - Once you've added a Form to the Canvas, you'll be able to style it whichever way you want. In the example below, we added an image with the logo of our project to a Sign up Form and changed the background color of the `Create Form` Container: ![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-19-at-11.49.24@2x.png) - To allow users to sign up, you'll need to create a Sign up Workflow on the Form Container: ![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-19-at-11.50.42@2x.png) - **🔥 Pro Tip 🔥** > It's important that the Workflow is on the Form Container and not the Sign up Button because we want to validate the fields of the Form when users submit it. @@ -284,12 +249,10 @@ In the Workflow, you will choose the `On submit` trigger and add the Supabase `S ![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-19-at-11.58.23.gif) - Then, you'll want to map the email, password, and metadata information in the Form to the email, password, and metadata in Supabase before choosing what page the new user should be redirected to: ![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-19-at-12.02.32.gif) - In the example above, we made sure to add the user's name as an item in that user's metadata. In Supabase, you can find the user's metadata in JSON format in a dedicated field of the `users` table, named `raw_user_meta_data`: @@ -298,7 +261,6 @@ In Supabase, you can find the user's metadata in JSON format in a dedicated fiel The same logic will apply to any Supabase Action you want to trigger. - ## Adding User Roles & Permissions Now let's say we want to gate content and set different permissions based on a user's role. @@ -311,31 +273,26 @@ First, let's create a `roles` table with three roles and make sure that each rol ![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-19-at-18.39.08@2x.png) - **🚨 Warning 🚨** > In order for the integration to work with the Users tab in WeWeb, it is crucial that the role title is a text field named `name`. - ### Joining Roles and Users in Supabase Second, let's create a `userRoles` join table: ![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-19-at-18.45.10@2x.png) - In the join table above, you can see we have an `id` field that is uniquely identifiable thanks to a UUID. This unique `id` is linked to a `userId`, which is also a UUID, more specifically, it is the UUID we find in the `id` field of the `users` table in the `auth` schema: ![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-19-at-18.51.00@2x.png) - Each row in our `userRoles` table is also linked to a `roleId` which is the UUID we find in the `id` field of the `roles` table in the `public` schema: ![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-19-at-18.52.57.gif) - ### Linking Users in WeWeb to Roles and Users in Supabase Once we've added our list of roles in Supabase and created an empty join table to link our roles with users, it's time to go to WeWeb. @@ -344,19 +301,17 @@ In `Plugins` > `Supabase Auth` > `3. Roles table`, we'll click `refresh` and sel ![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-19-at-19.00.54@2x.png) - Once you've told WeWeb where to find the `roles` and the join table in Supabase, you'll be able to easily view and maintain user roles in the `Users` tab in WeWeb: ![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-19-at-19.03.13.gif) When you make a change to a User in WeWeb, it will automatically be updated in Supabase. - ## Users vs Profiles So far, we've showed you how to work with the default `users` table that Supabase generates in the `auth` schema when you create a new project. -Note that, for security purposes, the information in that `users` table is not exposed on the auto-generated API. +Note that, for security purposes, the information in that `users` table is not exposed on the auto-generated API. How does this affect your project in WeWeb? @@ -368,7 +323,6 @@ You could simply create a user profile page in WeWeb and display their informati ![](https://weweb-changelog.ghost.io/content/images/2022/08/CleanShot-2022-08-19-at-19.16.17@2x.png) - ### Display other users' information In some use cases, you might want to display _other_ users' information. @@ -382,3 +336,7 @@ For such a use case, we recommend creating a `profiles` table in the `public` sc In WeWeb, you would then be able to create a Collection to get data from the `profiles` table. Learn more about [managing user data in Supabase](https://supabase.com/docs/guides/auth/managing-user-data). + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/migrations/firebase-auth.mdx b/apps/docs/pages/guides/migrations/firebase-auth.mdx similarity index 92% rename from apps/docs/docs/guides/migrations/firebase-auth.mdx rename to apps/docs/pages/guides/migrations/firebase-auth.mdx index 02bd71ee25f..a054f68de51 100644 --- a/apps/docs/docs/guides/migrations/firebase-auth.mdx +++ b/apps/docs/pages/guides/migrations/firebase-auth.mdx @@ -1,12 +1,11 @@ ---- -id: firebase-auth -title: 'Firebase Auth Migration' -description: 'Migrate Firebase auth users to a Supabase project.' -sidebar_label: Firebase Auth ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'firebase-auth', + title: 'Firebase Auth Migration', + description: 'Migrate Firebase auth users to a Supabase project.', + sidebar_label: 'Firebase Auth', +} Supabase provides several [tools](https://github.com/supabase-community/firebase-to-supabase/tree/main/auth) to help migrate auth users from a Firebase project to a Supabase project. There are two parts to the migration process: @@ -88,3 +87,7 @@ For more advanced migrations, including the use of a middleware server component - [Supabase vs Firebase](https://supabase.com/alternatives/supabase-vs-firebase) - [Firestore Data Migration](/docs/guides/migrations/firestore-data) - [Firestore Storage Migration](/docs/guides/migrations/firebase-storage) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/migrations/firebase-storage.mdx b/apps/docs/pages/guides/migrations/firebase-storage.mdx similarity index 90% rename from apps/docs/docs/guides/migrations/firebase-storage.mdx rename to apps/docs/pages/guides/migrations/firebase-storage.mdx index 7e5ff192e47..df644481f42 100644 --- a/apps/docs/docs/guides/migrations/firebase-storage.mdx +++ b/apps/docs/pages/guides/migrations/firebase-storage.mdx @@ -1,9 +1,11 @@ ---- -id: firebase-storage -title: 'Firebase Storage Migration' -description: 'Migrate Firebase Storage files to Supabase Storage.' -sidebar_label: Firebase Storage ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'firebase-storage', + title: 'Firebase Storage Migration', + description: 'Migrate Firebase Storage files to Supabase Storage.', + sidebar_label: 'Firebase Storage', +} Supabase provides several [tools](https://github.com/supabase-community/firebase-to-supabase/tree/main/storage) to convert storage files from Firebase Storage to Supabase Storage. Conversion is a two-step process: @@ -64,3 +66,7 @@ If the bucket doesn't exist, it's created as a `non-public` bucket. You must set - [Supabase vs Firebase](https://supabase.com/alternatives/supabase-vs-firebase) - [Firestore Data Migration](/docs/guides/migrations/firestore-data) - [Firebase Auth Migration](/docs/guides/migrations/firebase-auth) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/migrations/firestore-data.mdx b/apps/docs/pages/guides/migrations/firestore-data.mdx similarity index 95% rename from apps/docs/docs/guides/migrations/firestore-data.mdx rename to apps/docs/pages/guides/migrations/firestore-data.mdx index 4f270329a4d..936c8753758 100644 --- a/apps/docs/docs/guides/migrations/firestore-data.mdx +++ b/apps/docs/pages/guides/migrations/firestore-data.mdx @@ -1,9 +1,11 @@ ---- -id: firestore-data -title: 'Firestore Data Migration' -description: 'Migrate your Firebase Firestore database to a Supabase Postgres database.' -sidebar_label: Firestore Data ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'firestore-data', + title: 'Firestore Data Migration', + description: 'Migrate your Firebase Firestore database to a Supabase Postgres database.', + sidebar_label: 'Firestore Data', +} Supabase provides several [tools](https://github.com/supabase-community/firebase-to-supabase/tree/main/firestore) to convert data from a Firebase Firestore database to a Supabase PostgreSQL database. The process copies the entire contents of a single Firestore `collection` to a single PostgreSQL `table`. @@ -208,3 +210,7 @@ The result is two separate JSON files: - [Supabase vs Firebase](https://supabase.com/alternatives/supabase-vs-firebase) - [Firestore Storage Migration](/docs/guides/migrations/firebase-storage) - [Firebase Auth Migration](/docs/guides/migrations/firebase-auth) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/migrations/heroku.mdx b/apps/docs/pages/guides/migrations/heroku.mdx similarity index 88% rename from apps/docs/docs/guides/migrations/heroku.mdx rename to apps/docs/pages/guides/migrations/heroku.mdx index 0e8b7eb2bf0..9ab54a1ce4a 100644 --- a/apps/docs/docs/guides/migrations/heroku.mdx +++ b/apps/docs/pages/guides/migrations/heroku.mdx @@ -1,9 +1,11 @@ ---- -id: heroku -title: 'Migrate from Heroku to Supabase' -description: 'Migrate your Heroku Postgres database to Supabase.' -sidebar_label: Heroku ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'heroku', + title: 'Migrate from Heroku to Supabase', + description: 'Migrate your Heroku Postgres database to Supabase.', + sidebar_label: 'Heroku', +} Supabase is one of the best [free alternatives to Heroku Postgres](https://supabase.com/alternatives/supabase-vs-heroku-postgres). This guide shows how to migrate your Heroku Postgres database to Supabase. This migration requires the [pg_dump](https://www.postgresql.org/docs/current/app-pgdump.html) and [psql](https://www.postgresql.org/docs/current/app-psql.html) CLI tools, which are installed automatically as part of the complete PostgreSQL installation package. @@ -63,3 +65,7 @@ psql -h $SUPABASE_HOST -U postgres -f heroku_dump.sql - To exclude a table: `--exclude-table=PATTERN`. Run `pg_dump --help` for a full list of options. + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/platform/custom-domains.mdx b/apps/docs/pages/guides/platform/custom-domains.mdx similarity index 92% rename from apps/docs/docs/guides/platform/custom-domains.mdx rename to apps/docs/pages/guides/platform/custom-domains.mdx index 9ac85d2254f..36565487f59 100644 --- a/apps/docs/docs/guides/platform/custom-domains.mdx +++ b/apps/docs/pages/guides/platform/custom-domains.mdx @@ -1,11 +1,10 @@ ---- -id: custom-domains -title: Custom Domains -description: Configuring a Custom Domain for your Supabase project. ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'custom-domains', + title: 'Custom Domains', + description: 'Configuring a Custom Domain for your Supabase project.', +} @@ -26,7 +25,7 @@ To get started: This example assumes your Supabase project is `foobar` with a corresponding API URL `foobarbaz.supabase.co` and configures a custom domain at `api.example.com`. -### Configure a CNAME +### Configure a CNAME Set up a CNAME record for `api.example.com`, resolving to `foobarbaz.supabase.co.`, with as low a TTL as possible. @@ -89,3 +88,7 @@ As with the final activation stage of the process for setting up a custom domain ## Limitations Edge functions do not honor the custom domain setting and they still have to be invoked via the `foobarbaz.supabase.co` domain. + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/platform/database-usage.mdx b/apps/docs/pages/guides/platform/database-usage.mdx similarity index 90% rename from apps/docs/docs/guides/platform/database-usage.mdx rename to apps/docs/pages/guides/platform/database-usage.mdx index d12d3e84791..2a4f1def28e 100644 --- a/apps/docs/docs/guides/platform/database-usage.mdx +++ b/apps/docs/pages/guides/platform/database-usage.mdx @@ -1,8 +1,10 @@ ---- -id: database-usage -title: Database usage -description: Understanding how database usage applies to your subscription. ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'database-usage', + title: 'Database usage', + description: 'Understanding how database usage applies to your subscription.', +} Database storage refers to the _monthly average storage usage_, as reported by Postgres. This metric is reported in your project's [billing usage](https://app.supabase.com/project/_/settings/billing/usage) and is updated daily. @@ -55,3 +57,7 @@ However, it can be necessary to either [fine-tune](https://www.percona.com/blog/ the [autovacuum parameters](https://www.enterprisedb.com/blog/postgresql-vacuum-and-analyze-best-practice-tips), or [manually initiate](https://www.postgresql.org/docs/current/sql-vacuum.html) vacuum operations. For example, running a manual vacuum after deleting large amounts of data from your DB could help reduce the reported disk usage by Postgres. + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/platform/going-into-prod.mdx b/apps/docs/pages/guides/platform/going-into-prod.mdx similarity index 93% rename from apps/docs/docs/guides/platform/going-into-prod.mdx rename to apps/docs/pages/guides/platform/going-into-prod.mdx index 9d803b2a123..cfb579ce518 100644 --- a/apps/docs/docs/guides/platform/going-into-prod.mdx +++ b/apps/docs/pages/guides/platform/going-into-prod.mdx @@ -1,8 +1,10 @@ ---- -id: going-into-prod -title: 'Production Readiness' -description: 'Things to do before making your app publicly available' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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 Production Ready, you should run through this checklist to ensure that your project: @@ -55,3 +57,7 @@ After developing your project and deciding it's Production Ready, you should run ## 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). + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/platform/logs.mdx b/apps/docs/pages/guides/platform/logs.mdx similarity index 93% rename from apps/docs/docs/guides/platform/logs.mdx rename to apps/docs/pages/guides/platform/logs.mdx index 9e05023420d..268f78240c8 100644 --- a/apps/docs/docs/guides/platform/logs.mdx +++ b/apps/docs/pages/guides/platform/logs.mdx @@ -1,12 +1,10 @@ ---- -id: logs -title: Logging -description: Getting started with Supabase Platform Log Browser ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' -import ThemedImage from '@theme/ThemedImage' +export const meta = { + id: 'logs', + title: 'Logging', + description: 'Getting started with Supabase Platform Log Browser', +} The Supabase Platform includes a Logs Explorer that allows log tracing and debugging. Log retention is based on your [project's pricing plan](https://supabase.com/pricing). @@ -160,14 +158,7 @@ The resulting `metadata` key is rendered as an array of objects in the Logs Expl - +![Without Unnesting](/docs/img/unnesting-none.png) Perform a `cross join unnest()` to work with the keys nested in the `metadata` key. @@ -182,15 +173,7 @@ cross join unnest(request.headers) as header ``` This surfaces the following columns available for selection: - - +![With Two Level Unnesting](/docs/img/unnesting-2.png) This allows you to select the `method` and `cf_ipcountry` columns. In JS dot notation, the full paths for each selected column are: @@ -244,3 +227,7 @@ from edge_logs cross join unnest(r.headers) AS h where h.x_real_ip is not null and r.method = "GET" ``` + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/platform/metrics.mdx b/apps/docs/pages/guides/platform/metrics.mdx similarity index 84% rename from apps/docs/docs/guides/platform/metrics.mdx rename to apps/docs/pages/guides/platform/metrics.mdx index 1ba60fc4c26..5f5bb6e1e90 100644 --- a/apps/docs/docs/guides/platform/metrics.mdx +++ b/apps/docs/pages/guides/platform/metrics.mdx @@ -1,8 +1,10 @@ ---- -id: metrics -title: Metrics -description: Observability for your Supabase project ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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. @@ -29,3 +31,7 @@ Your project's metrics endpoint is accessible at `https://.supabase ``` 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. + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/platform/migrating-and-upgrading-projects.mdx b/apps/docs/pages/guides/platform/migrating-and-upgrading-projects.mdx similarity index 83% rename from apps/docs/docs/guides/platform/migrating-and-upgrading-projects.mdx rename to apps/docs/pages/guides/platform/migrating-and-upgrading-projects.mdx index b8e34c012c4..a82793c9559 100644 --- a/apps/docs/docs/guides/platform/migrating-and-upgrading-projects.mdx +++ b/apps/docs/pages/guides/platform/migrating-and-upgrading-projects.mdx @@ -1,11 +1,13 @@ ---- -id: migrating-and-upgrading-projects -title: 'Migrating and Upgrading Projects' -description: Upgrade your project to the latest version of Supabase. -sidebar_label: 'Migrating and upgrading' ---- +import Layout from '~/layouts/DefaultGuideLayout' -Supabase ships fast and we endeavor to add all new features to existing projects wherever possible. +export const meta = { + id: 'migrating-and-upgrading-projects', + title: 'Migrating and Upgrading Projects', + description: 'Upgrade your project to the latest version of Supabase.', + sidebar_label: 'Migrating and upgrading', +} + +Supabase ships fast and we endeavor to add all new features to existing projects wherever possible. In some cases, access to new features require upgrading or migrating your Supabase project. ## Upgrade your project @@ -75,27 +77,15 @@ 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 - ) + 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() + const { data: oldObjects, error } = await oldSupabaseRestClient.from('objects').select() if (error) { console.log('error getting objects from old bucket') throw error @@ -104,10 +94,9 @@ const NEW_PROJECT_SERVICE_KEY = 'new-project-service-key-yyy' 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) + const { data, error: downloadObjectError } = await oldSupabaseClient.storage + .from(objectData.bucket_id) + .download(objectData.name) if (downloadObjectError) { throw downloadObjectError } @@ -129,3 +118,7 @@ const NEW_PROJECT_SERVICE_KEY = 'new-project-service-key-yyy' } })() ``` + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/platform/performance.mdx b/apps/docs/pages/guides/platform/performance.mdx similarity index 94% rename from apps/docs/docs/guides/platform/performance.mdx rename to apps/docs/pages/guides/platform/performance.mdx index 07dfa92dc61..8d7ae48e422 100644 --- a/apps/docs/docs/guides/platform/performance.mdx +++ b/apps/docs/pages/guides/platform/performance.mdx @@ -1,8 +1,10 @@ ---- -id: performance -title: Performance Tuning -description: Getting the best results out of your Supabase project ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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. @@ -88,3 +90,7 @@ Using the query plan analyzer to optimize your queries is a large topic, with a - [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](../platform/metrics) to better understand the behavior of your DB and the queries you're executing against it. + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/platform/permissions.mdx b/apps/docs/pages/guides/platform/permissions.mdx similarity index 72% rename from apps/docs/docs/guides/platform/permissions.mdx rename to apps/docs/pages/guides/platform/permissions.mdx index c3fbf719d23..1efb9f3228c 100644 --- a/apps/docs/docs/guides/platform/permissions.mdx +++ b/apps/docs/pages/guides/platform/permissions.mdx @@ -1,8 +1,10 @@ ---- -id: permissions -title: Permissions -description: Permissions requirements for the Supabase Cloud hosting environment ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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. @@ -12,3 +14,7 @@ However, these services assume a base level of access to their data, in order to - 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. + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/realtime.mdx b/apps/docs/pages/guides/realtime.mdx similarity index 91% rename from apps/docs/docs/guides/realtime.mdx rename to apps/docs/pages/guides/realtime.mdx index 12cc7c97fac..f2142bc69dd 100644 --- a/apps/docs/docs/guides/realtime.mdx +++ b/apps/docs/pages/guides/realtime.mdx @@ -1,9 +1,11 @@ ---- -id: realtime -title: Realtime -description: Supabase Realtime with Broadcast, Presence, and Postgres CDC. -sidebar_label: Overview ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'realtime', + title: 'Realtime', + description: 'Supabase Realtime with Broadcast, Presence, and Postgres CDC.', + sidebar_label: 'Overview', +} Supabase provides a globally distributed cluster of [Realtime](https://github.com/supabase/realtime) servers that enable the following functionality: @@ -49,3 +51,7 @@ We strongly encourage you to enable RLS on your database tables and have RLS pol - [Realtime quickstart](/docs/guides/realtime/quickstart) - [Realtime: Multiplayer Edition](https://supabase.com/blog/supabase-realtime-multiplayer-general-availability) blog post + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/realtime/postgres-cdc.mdx b/apps/docs/pages/guides/realtime/postgres-cdc.mdx similarity index 92% rename from apps/docs/docs/guides/realtime/postgres-cdc.mdx rename to apps/docs/pages/guides/realtime/postgres-cdc.mdx index f14fc3f58a0..c8d20133f3a 100644 --- a/apps/docs/docs/guides/realtime/postgres-cdc.mdx +++ b/apps/docs/pages/guides/realtime/postgres-cdc.mdx @@ -1,8 +1,10 @@ ---- -id: postgres-cdc -title: Postgres CDC -description: Getting started with Realtime's Postgres CDC feature ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'postgres-cdc', + title: 'Postgres CDC', + description: "Getting started with Realtime's Postgres CDC feature", +} Realtime's Postgres Change Data Capture (CDC) feature listens for database changes and sends them to clients. Clients are required to subscribe with a JWT dictating which changes they are allowed to receive based on the database's [Row Level Security](/docs/guides/auth/row-level-security). @@ -115,3 +117,7 @@ const channel = supabase ) .subscribe() ``` + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/realtime/quickstart.mdx b/apps/docs/pages/guides/realtime/quickstart.mdx similarity index 95% rename from apps/docs/docs/guides/realtime/quickstart.mdx rename to apps/docs/pages/guides/realtime/quickstart.mdx index 957d1bed20a..02bc5b9177b 100644 --- a/apps/docs/docs/guides/realtime/quickstart.mdx +++ b/apps/docs/pages/guides/realtime/quickstart.mdx @@ -1,9 +1,11 @@ ---- -id: quickstart -title: Realtime Quickstart -description: Getting started with Realtime's Features -sidebar_label: Quickstart ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'quickstart', + title: 'Realtime Quickstart', + description: "Getting started with Realtime's Features", + sidebar_label: 'Quickstart', +} Learn how to build [multiplayer.dev](https://multiplayer.dev), a collaborative app that demonstrates Broadcast, Presence, and Postgres CDC using [Realtime](/docs/guides/realtime). @@ -256,3 +258,7 @@ channel.subscribe(async (status) => { } }) ``` + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/realtime/rate-limits.mdx b/apps/docs/pages/guides/realtime/rate-limits.mdx similarity index 89% rename from apps/docs/docs/guides/realtime/rate-limits.mdx rename to apps/docs/pages/guides/realtime/rate-limits.mdx index 6b35583687f..f1673752944 100644 --- a/apps/docs/docs/guides/realtime/rate-limits.mdx +++ b/apps/docs/pages/guides/realtime/rate-limits.mdx @@ -1,9 +1,11 @@ ---- -id: rate-limits -title: Realtime Rate Limits -description: Understanding Realtime rate limiting -sidebar_label: Rate Limits ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'rate-limits', + title: 'Realtime Rate Limits', + description: 'Understanding Realtime rate limiting', + sidebar_label: 'Rate Limits', +} Supabase Realtime is a global cluster. We've implemented some rate limits to help ensure high availability for all customers. @@ -76,3 +78,7 @@ The following limits apply to Presence messages: - 10 keys per object - Message rate limit is 10% of your Realtime message rate limit + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/storage-cdn.mdx b/apps/docs/pages/guides/storage-cdn.mdx similarity index 91% rename from apps/docs/docs/guides/storage-cdn.mdx rename to apps/docs/pages/guides/storage-cdn.mdx index 7e3fdbd7b7e..4c11ca8fe64 100644 --- a/apps/docs/docs/guides/storage-cdn.mdx +++ b/apps/docs/pages/guides/storage-cdn.mdx @@ -1,9 +1,11 @@ ---- -id: storage-cdn -title: Storage CDN -description: How Supabase Storage caches objects with a CDN -sidebar_label: CDN ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'storage-cdn', + title: 'Storage CDN', + description: 'How Supabase Storage caches objects with a CDN', + sidebar_label: 'CDN', +} ## CDN basics @@ -32,3 +34,7 @@ The cache status of a particular request is sent in the `cf-cache-status` header ## Public vs Private Buckets Objects in public buckets do not require any Authorization to access objects. This leads to a better cache hit rate compared to private buckets. For private buckets, permissions for accessing each object is checked on a per user level. For example, if two different users access the same object in a private bucket from the same region, it results in a cache miss for both the users since they might have different security policies attached to them. On the other hand, if two different users access the same object in a public bucket from the same region, it results in a cache hit for the second user. + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/storage.mdx b/apps/docs/pages/guides/storage.mdx similarity index 97% rename from apps/docs/docs/guides/storage.mdx rename to apps/docs/pages/guides/storage.mdx index 8ed01eabbe9..33893ccd413 100644 --- a/apps/docs/docs/guides/storage.mdx +++ b/apps/docs/pages/guides/storage.mdx @@ -1,12 +1,11 @@ ---- -id: storage -title: Storage -description: Use Supabase to store and serve files. -sidebar_label: Overview ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'storage', + title: 'Storage', + description: 'Use Supabase to store and serve files.', + sidebar_label: 'Overview', +} Supabase Storage makes it simple to store and serve large files. @@ -369,3 +368,7 @@ using ( auth.uid() = owner ); - [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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/pages/guides/storage/storage-sample.mdx b/apps/docs/pages/guides/storage/storage-sample.mdx new file mode 100644 index 00000000000..0c0e277b3fc --- /dev/null +++ b/apps/docs/pages/guides/storage/storage-sample.mdx @@ -0,0 +1,11 @@ +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'storage-sample', + title: 'Storage Sample Doc', + description: 'Storage Sample Doc', +} + +## Description + +Sample... diff --git a/apps/docs/docs/guides/with-angular.mdx b/apps/docs/pages/guides/with-angular.mdx similarity index 97% rename from apps/docs/docs/guides/with-angular.mdx rename to apps/docs/pages/guides/with-angular.mdx index 5bb2b471908..b0d5fc21c93 100644 --- a/apps/docs/docs/guides/with-angular.mdx +++ b/apps/docs/pages/guides/with-angular.mdx @@ -1,14 +1,11 @@ ---- -id: with-angular -title: 'Quickstart: Angular' -description: Learn how to use Supabase in your Angular App. -sidebar_label: Angular ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' -import QuickstartIntro from './_partials/quickstart_intro.md' -import ProjectSetup from './_partials/project_setup.mdx' +export const meta = { + id: 'with-angular', + title: 'Quickstart: Angular', + description: 'Learn how to use Supabase in your Angular App.', + sidebar_label: 'Angular', +} @@ -539,3 +536,7 @@ 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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/with-expo.mdx b/apps/docs/pages/guides/with-expo.mdx similarity index 97% rename from apps/docs/docs/guides/with-expo.mdx rename to apps/docs/pages/guides/with-expo.mdx index 23fb04818de..b60db313a51 100644 --- a/apps/docs/docs/guides/with-expo.mdx +++ b/apps/docs/pages/guides/with-expo.mdx @@ -1,9 +1,12 @@ ---- -id: with-expo -title: 'Quickstart: Expo' -description: Learn how to use Supabase in your React Native App. -sidebar_label: Expo ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'with-expo', + title: 'Quickstart: Expo', + description: 'Learn how to use Supabase in your React Native App.', + sidebar_label: 'Expo', + hide_table_of_contents: false, +} @@ -503,3 +506,7 @@ 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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/with-flutter.mdx b/apps/docs/pages/guides/with-flutter.mdx similarity index 98% rename from apps/docs/docs/guides/with-flutter.mdx rename to apps/docs/pages/guides/with-flutter.mdx index 1bbc019615b..dab40d95197 100644 --- a/apps/docs/docs/guides/with-flutter.mdx +++ b/apps/docs/pages/guides/with-flutter.mdx @@ -1,9 +1,11 @@ ---- -id: with-flutter -title: 'Quickstart: Flutter' -description: Learn how to use Supabase in your Flutter App. -sidebar_label: Flutter ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'with-flutter', + title: 'Quickstart: Flutter', + description: 'Learn how to use Supabase in your Flutter App.', + sidebar_label: 'Flutter', +} @@ -792,3 +794,7 @@ Congratulations, that is it! You have now built a fully functional user manageme ## See also - [Flutter Tutorial: building a Flutter chat app](https://supabase.com/blog/flutter-tutorial-building-a-chat-app) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/with-ionic-angular.mdx b/apps/docs/pages/guides/with-ionic-angular.mdx similarity index 97% rename from apps/docs/docs/guides/with-ionic-angular.mdx rename to apps/docs/pages/guides/with-ionic-angular.mdx index e22f1c2b98e..88c1d9e6433 100644 --- a/apps/docs/docs/guides/with-ionic-angular.mdx +++ b/apps/docs/pages/guides/with-ionic-angular.mdx @@ -1,9 +1,11 @@ ---- -id: with-ionic-angular -title: 'Quickstart: Ionic Angular' -description: Learn how to use Supabase in your Ionic Angular App. -sidebar_label: Ionic Angular ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'with-ionic-angular', + title: 'Quickstart: Ionic Angular', + description: 'Learn how to use Supabase in your Ionic Angular App.', + sidebar_label: 'Ionic Angular', +} @@ -530,3 +532,7 @@ At this stage you have a fully functional application! ## Resources - [Authentication in Ionic Angular with Supabase](https://supabase.com/blog/authentication-in-ionic-angular) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/with-ionic-react.mdx b/apps/docs/pages/guides/with-ionic-react.mdx similarity index 97% rename from apps/docs/docs/guides/with-ionic-react.mdx rename to apps/docs/pages/guides/with-ionic-react.mdx index eba8eea7953..c14bb343ed3 100644 --- a/apps/docs/docs/guides/with-ionic-react.mdx +++ b/apps/docs/pages/guides/with-ionic-react.mdx @@ -1,9 +1,11 @@ ---- -id: with-ionic-react -title: 'Quickstart: Ionic React' -description: Learn how to use Supabase in your Ionic React App. -sidebar_label: Ionic React ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'with-ionic-react', + title: 'Quickstart: Ionic React', + description: 'Learn how to use Supabase in your Ionic React App.', + sidebar_label: 'Ionic React', +} @@ -499,3 +501,7 @@ 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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/with-ionic-vue.mdx b/apps/docs/pages/guides/with-ionic-vue.mdx similarity index 97% rename from apps/docs/docs/guides/with-ionic-vue.mdx rename to apps/docs/pages/guides/with-ionic-vue.mdx index b00a505b820..2f368771b78 100644 --- a/apps/docs/docs/guides/with-ionic-vue.mdx +++ b/apps/docs/pages/guides/with-ionic-vue.mdx @@ -1,14 +1,11 @@ ---- -id: with-ionic-vue -title: 'Quickstart: Ionic Vue' -description: Learn how to use Supabase in your Ionic Vue App. -sidebar_label: Ionic Vue ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' -import QuickstartIntro from './_partials/quickstart_intro.md' -import ProjectSetup from './_partials/project_setup.mdx' +export const meta = { + id: 'with-ionic-vue', + title: 'Quickstart: Ionic Vue', + description: 'Learn how to use Supabase in your Ionic Vue App.', + sidebar_label: 'Ionic Vue', +} @@ -564,3 +561,7 @@ 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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/with-nextjs.mdx b/apps/docs/pages/guides/with-nextjs.mdx similarity index 98% rename from apps/docs/docs/guides/with-nextjs.mdx rename to apps/docs/pages/guides/with-nextjs.mdx index ac78dbd7cbd..35883c7ffcf 100644 --- a/apps/docs/docs/guides/with-nextjs.mdx +++ b/apps/docs/pages/guides/with-nextjs.mdx @@ -1,13 +1,11 @@ ---- -id: with-nextjs -title: 'Quickstart: Next.js' -description: Learn how to use Supabase in your Next App. -sidebar_label: 'Next.js' ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' -import ProjectSetup from './_partials/project_setup.mdx' +export const meta = { + id: 'with-nextjs', + title: 'Quickstart: Next.js', + description: 'Learn how to use Supabase in your Next App.', + sidebar_label: 'Next.js', +} @@ -734,3 +732,7 @@ At this stage you have a fully functional application! - See the [Next.js Subscription Payments Starter](https://github.com/vercel/nextjs-subscription-payments) template on GitHub. - Got a question? [Ask here](https://github.com/supabase/supabase/discussions). - Sign in: [app.supabase.com](https://app.supabase.com) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/with-nuxt-3.mdx b/apps/docs/pages/guides/with-nuxt-3.mdx similarity index 97% rename from apps/docs/docs/guides/with-nuxt-3.mdx rename to apps/docs/pages/guides/with-nuxt-3.mdx index e6306df94c4..b4f5af0a1a3 100644 --- a/apps/docs/docs/guides/with-nuxt-3.mdx +++ b/apps/docs/pages/guides/with-nuxt-3.mdx @@ -1,14 +1,11 @@ ---- -id: with-nuxt-3 -title: 'Quickstart: Nuxt 3' -description: Learn how to use Supabase in your Nuxt 3 App. -sidebar_label: Nuxt 3 ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' -import QuickstartIntro from './_partials/quickstart_intro.md' -import ProjectSetup from './_partials/project_setup.mdx' +export const meta = { + id: 'with-nuxt-3', + title: 'Quickstart: Nuxt 3', + description: 'Learn how to use Supabase in your Nuxt 3 App.', + sidebar_label: 'Nuxt 3', +} @@ -429,3 +426,7 @@ 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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/with-react.mdx b/apps/docs/pages/guides/with-react.mdx similarity index 97% rename from apps/docs/docs/guides/with-react.mdx rename to apps/docs/pages/guides/with-react.mdx index 35285b79462..1f7804f15ab 100644 --- a/apps/docs/docs/guides/with-react.mdx +++ b/apps/docs/pages/guides/with-react.mdx @@ -1,14 +1,11 @@ ---- -id: with-react -title: 'Quickstart: React' -description: Learn how to use Supabase in your React App. -sidebar_label: React ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' -import QuickstartIntro from './_partials/quickstart_intro.md' -import ProjectSetup from './_partials/project_setup.mdx' +export const meta = { + id: 'with-react', + title: 'Quickstart: React', + description: 'Learn how to use Supabase in your React App.', + sidebar_label: 'React', +} @@ -400,3 +397,7 @@ 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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/with-redwoodjs.mdx b/apps/docs/pages/guides/with-redwoodjs.mdx similarity index 98% rename from apps/docs/docs/guides/with-redwoodjs.mdx rename to apps/docs/pages/guides/with-redwoodjs.mdx index d0c813bc597..163972e5a9f 100644 --- a/apps/docs/docs/guides/with-redwoodjs.mdx +++ b/apps/docs/pages/guides/with-redwoodjs.mdx @@ -1,12 +1,11 @@ ---- -id: with-redwoodjs -title: 'Quickstart: RedwoodJS' -description: Learn how to use Supabase in your RedwoodJS App. -sidebar_label: RedwoodJS ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +export const meta = { + id: 'with-redwoodjs', + title: 'Quickstart: RedwoodJS', + description: 'Learn how to use Supabase in your RedwoodJS App.', + sidebar_label: 'RedwoodJS', +} ## Intro @@ -780,3 +779,7 @@ At this stage you have a fully functional application! - 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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/with-solidjs.mdx b/apps/docs/pages/guides/with-solidjs.mdx similarity index 97% rename from apps/docs/docs/guides/with-solidjs.mdx rename to apps/docs/pages/guides/with-solidjs.mdx index 979eaa0705b..f5a65665f3f 100644 --- a/apps/docs/docs/guides/with-solidjs.mdx +++ b/apps/docs/pages/guides/with-solidjs.mdx @@ -1,14 +1,11 @@ ---- -id: with-solidjs -title: 'Quickstart: SolidJS' -description: Learn how to use Supabase in your SolidJS App. -sidebar_label: SolidJS ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' -import QuickstartIntro from './_partials/quickstart_intro.md' -import ProjectSetup from './_partials/project_setup.mdx' +export const meta = { + id: 'with-solidjs', + title: 'Quickstart: SolidJS', + description: 'Learn how to use Supabase in your SolidJS App.', + sidebar_label: 'SolidJS', +} @@ -424,3 +421,7 @@ 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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/with-svelte.mdx b/apps/docs/pages/guides/with-svelte.mdx similarity index 96% rename from apps/docs/docs/guides/with-svelte.mdx rename to apps/docs/pages/guides/with-svelte.mdx index 221580d6dec..69cdea17b87 100644 --- a/apps/docs/docs/guides/with-svelte.mdx +++ b/apps/docs/pages/guides/with-svelte.mdx @@ -1,14 +1,11 @@ ---- -id: with-svelte -title: 'Quickstart: Svelte' -description: Learn how to use Supabase in your Svelte App. -sidebar_label: Svelte ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' -import QuickstartIntro from './_partials/quickstart_intro.md' -import ProjectSetup from './_partials/project_setup.mdx' +export const meta = { + id: 'with-svelte', + title: 'Quickstart: Svelte', + description: 'Learn how to use Supabase in your Svelte App.', + sidebar_label: 'Svelte', +} @@ -377,3 +374,7 @@ 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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/with-sveltekit.mdx b/apps/docs/pages/guides/with-sveltekit.mdx similarity index 97% rename from apps/docs/docs/guides/with-sveltekit.mdx rename to apps/docs/pages/guides/with-sveltekit.mdx index 15d50d704ef..d8af92de291 100644 --- a/apps/docs/docs/guides/with-sveltekit.mdx +++ b/apps/docs/pages/guides/with-sveltekit.mdx @@ -1,14 +1,11 @@ ---- -id: with-sveltekit -title: 'Quickstart: SvelteKit' -description: Learn how to use Supabase in your SvelteKit App. -sidebar_label: SvelteKit ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' -import QuickstartIntro from './_partials/quickstart_intro.md' -import ProjectSetup from './_partials/project_setup.mdx' +export const meta = { + id: 'with-sveltekit', + title: 'Quickstart: SvelteKit', + description: 'Learn how to use Supabase in your SvelteKit App.', + sidebar_label: 'SvelteKit', +} @@ -443,3 +440,7 @@ 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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/guides/with-vue-3.mdx b/apps/docs/pages/guides/with-vue-3.mdx similarity index 96% rename from apps/docs/docs/guides/with-vue-3.mdx rename to apps/docs/pages/guides/with-vue-3.mdx index 60f566882c7..a1ec84a8c92 100644 --- a/apps/docs/docs/guides/with-vue-3.mdx +++ b/apps/docs/pages/guides/with-vue-3.mdx @@ -1,14 +1,11 @@ ---- -id: with-vue-3 -title: 'Quickstart: Vue 3' -description: Learn how to use Supabase in your Vue 3 App. -sidebar_label: 'Vue 3' ---- +import Layout from '~/layouts/DefaultGuideLayout' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' -import QuickstartIntro from './_partials/quickstart_intro.md' -import ProjectSetup from './_partials/project_setup.mdx' +export const meta = { + id: 'with-vue-3', + title: 'Quickstart: Vue 3', + description: 'Learn how to use Supabase in your Vue 3 App.', + sidebar_label: 'Vue 3', +} @@ -388,3 +385,7 @@ 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) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/handbook/contributing.mdx b/apps/docs/pages/handbook/contributing.mdx similarity index 82% rename from apps/docs/docs/handbook/contributing.mdx rename to apps/docs/pages/handbook/contributing.mdx index eb57cf52e3e..8edd779cef3 100644 --- a/apps/docs/docs/handbook/contributing.mdx +++ b/apps/docs/pages/handbook/contributing.mdx @@ -1,8 +1,10 @@ ---- -id: contributing -title: Contributing -description: Want to help? ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'contributing', + title: 'Contributing', + description: 'Want to help?', +} ## How to contribute @@ -25,3 +27,6 @@ Want to contribute? Why not jump into our GitHub repo and: - Try our products and give feedback. - Spread the word if you like what we are doing. +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/handbook/introduction.mdx b/apps/docs/pages/handbook/introduction.mdx similarity index 53% rename from apps/docs/docs/handbook/introduction.mdx rename to apps/docs/pages/handbook/introduction.mdx index 091ad734753..f6f2fc2c162 100644 --- a/apps/docs/docs/handbook/introduction.mdx +++ b/apps/docs/pages/handbook/introduction.mdx @@ -1,8 +1,10 @@ ---- -id: introduction -title: Supabase Handbook -description: 'The Supabase public handbook and manifesto' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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. @@ -13,3 +15,7 @@ This is our public handbook and manifesto. We are completely opensource and this ## Opensource Wherever we can we will support existing opensource tools and libraries. + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/handbook/supasquad.mdx b/apps/docs/pages/handbook/supasquad.mdx similarity index 79% rename from apps/docs/docs/handbook/supasquad.mdx rename to apps/docs/pages/handbook/supasquad.mdx index d77d81af301..e6ec7e336ac 100644 --- a/apps/docs/docs/handbook/supasquad.mdx +++ b/apps/docs/pages/handbook/supasquad.mdx @@ -1,8 +1,10 @@ ---- -id: supasquad -title: SupaSquad -description: Supabase Advocate program ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + 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. @@ -66,24 +68,27 @@ Apply to join the program using [this form](https://airtable.com/shr0FtLqLfhpuEy 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. + 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. + 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 worries! The program isn't a job. It's just an opportunity to build your skillset and audience within + the Supabase ecosystem.
+ +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/introduction.mdx b/apps/docs/pages/index.mdx similarity index 88% rename from apps/docs/docs/introduction.mdx rename to apps/docs/pages/index.mdx index 234ee5b1990..bac042df9d9 100644 --- a/apps/docs/docs/introduction.mdx +++ b/apps/docs/pages/index.mdx @@ -1,9 +1,11 @@ ---- -id: 'introduction' -title: 'Introduction' -description: 'Introduction to Supabase' -hide_table_of_contents: false ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'introduction', + title: 'Introduction', + description: 'Introduction to Supabase', + hide_table_of_contents: false, +} 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. @@ -83,3 +85,7 @@ You can use it completely, or just the features you need. Supabase is just Postgres, which makes it compatible with a large number of tools and frameworks. + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/learn/auth-deep-dive/auth-deep-dive-jwts.mdx b/apps/docs/pages/learn/auth-deep-dive/auth-deep-dive-jwts.mdx similarity index 94% rename from apps/docs/docs/learn/auth-deep-dive/auth-deep-dive-jwts.mdx rename to apps/docs/pages/learn/auth-deep-dive/auth-deep-dive-jwts.mdx index e1d0cebc6de..942fe23e7bb 100644 --- a/apps/docs/docs/learn/auth-deep-dive/auth-deep-dive-jwts.mdx +++ b/apps/docs/pages/learn/auth-deep-dive/auth-deep-dive-jwts.mdx @@ -1,8 +1,10 @@ ---- -id: auth-deep-dive-jwts -title: 'Part One: JWTs' -description: Supabase Auth Deep Dive Part 1 - JWTs ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'auth-deep-dive-jwts', + title: 'Part One: JWTs', + description: 'Supabase Auth Deep Dive Part 1 - JWTs', +} ### About @@ -11,7 +13,12 @@ An introduction to JWTs and how they are used in Supabase Auth ### Watch
- +
### What are JSON Web Tokens (JWTs)? @@ -184,3 +191,7 @@ Now that you understand what JWTs are and where they're used in Supabase, you ca - [Part Four: GoTrue](../../learn/auth-deep-dive/auth-gotrue) - [Part Five: Google Oauth](../../learn/auth-deep-dive/auth-google-oauth) - Sign up for Supabase: [app.supabase.com](https://app.supabase.com) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/learn/auth-deep-dive/auth-google-oauth.mdx b/apps/docs/pages/learn/auth-deep-dive/auth-google-oauth.mdx similarity index 93% rename from apps/docs/docs/learn/auth-deep-dive/auth-google-oauth.mdx rename to apps/docs/pages/learn/auth-deep-dive/auth-google-oauth.mdx index 33c93f82e5a..f53759eea9d 100644 --- a/apps/docs/docs/learn/auth-deep-dive/auth-google-oauth.mdx +++ b/apps/docs/pages/learn/auth-deep-dive/auth-google-oauth.mdx @@ -1,8 +1,10 @@ ---- -id: auth-google-oauth -title: 'Part Five: Google Oauth' -description: 'Supabase Deep Dive Part 5: Google OAuth Provider' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'auth-google-oauth', + title: 'Part Five: Google Oauth', + description: 'Supabase Deep Dive Part 5: Google OAuth Provider', +} ### About @@ -95,3 +97,7 @@ For any support please get in touch at beta at [supabase.com](https://supabase.c - Watch [Part Four: GoTrue](../../learn/auth-deep-dive/auth-gotrue) - Sign up for Supabase: [app.supabase.com](https://app.supabase.com) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/learn/auth-deep-dive/auth-gotrue.mdx b/apps/docs/pages/learn/auth-deep-dive/auth-gotrue.mdx similarity index 87% rename from apps/docs/docs/learn/auth-deep-dive/auth-gotrue.mdx rename to apps/docs/pages/learn/auth-deep-dive/auth-gotrue.mdx index e73941687c4..22c50cc66c3 100644 --- a/apps/docs/docs/learn/auth-deep-dive/auth-gotrue.mdx +++ b/apps/docs/pages/learn/auth-deep-dive/auth-gotrue.mdx @@ -1,8 +1,10 @@ ---- -id: auth-gotrue -title: 'Part Four: GoTrue' -description: 'Supabase Deep Dive Part 4: Gotrue Overview' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'auth-gotrue', + title: 'Part Four: GoTrue', + description: 'Supabase Deep Dive Part 4: Gotrue Overview', +} ### About @@ -11,7 +13,12 @@ How to restrict table access to authenticated users, row level policies, and ema ### Watch
- +
### Gotrue Server @@ -72,3 +79,7 @@ In the next guide we'll be looking at how to setup external OAuth providers: Wat - Watch [Part Five: Google Oauth](../../learn/auth-deep-dive/auth-google-oauth) - Sign up for Supabase: [app.supabase.com](https://app.supabase.com) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/learn/auth-deep-dive/auth-policies.mdx b/apps/docs/pages/learn/auth-deep-dive/auth-policies.mdx similarity index 92% rename from apps/docs/docs/learn/auth-deep-dive/auth-policies.mdx rename to apps/docs/pages/learn/auth-deep-dive/auth-policies.mdx index 08635dcabfc..34a749de16d 100644 --- a/apps/docs/docs/learn/auth-deep-dive/auth-policies.mdx +++ b/apps/docs/pages/learn/auth-deep-dive/auth-policies.mdx @@ -1,8 +1,10 @@ ---- -id: auth-policies -title: 'Part Three: Policies' -description: 'Supabase Auth Deep Dive Part 3: User Based Access Policies' ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'auth-policies', + title: 'Part Three: Policies', + description: 'Supabase Auth Deep Dive Part 3: User Based Access Policies', +} ### About @@ -11,7 +13,12 @@ How to restrict table access to authenticated users, row level policies, and ema ### Watch
- +
### User based row level policies @@ -165,3 +172,7 @@ You can get as creative as you like with these policies. - Watch [Part Four: GoTrue](../../learn/auth-deep-dive/auth-gotrue) - Watch [Part Five: Google Oauth](../../learn/auth-deep-dive/auth-google-oauth) - Sign up for Supabase: [app.supabase.com](https://app.supabase.com) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/learn/auth-deep-dive/auth-row-level-security.mdx b/apps/docs/pages/learn/auth-deep-dive/auth-row-level-security.mdx similarity index 94% rename from apps/docs/docs/learn/auth-deep-dive/auth-row-level-security.mdx rename to apps/docs/pages/learn/auth-deep-dive/auth-row-level-security.mdx index 1004047a0ce..53fd711ce06 100644 --- a/apps/docs/docs/learn/auth-deep-dive/auth-row-level-security.mdx +++ b/apps/docs/pages/learn/auth-deep-dive/auth-row-level-security.mdx @@ -1,8 +1,10 @@ ---- -id: auth-row-level-security -title: 'Part Two: Row Level Security' -description: Supabase Auth Deep Dive Part Two - Row Level Security ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'auth-row-level-security', + title: 'Part Two: Row Level Security', + description: 'Supabase Auth Deep Dive Part Two - Row Level Security', +} ### About @@ -122,3 +124,7 @@ In the next guide we will look at using Policies in combination with User Accoun - Watch [Part Four: GoTrue](../../learn/auth-deep-dive/auth-gotrue) - Watch [Part Five: Google Oauth](../../learn/auth-deep-dive/auth-google-oauth) - Sign up for Supabase: [app.supabase.com](https://app.supabase.com) + +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/reference.mdx b/apps/docs/pages/reference.mdx similarity index 82% rename from apps/docs/docs/reference.mdx rename to apps/docs/pages/reference.mdx index 64807c6ec3f..994b1d4bc48 100644 --- a/apps/docs/docs/reference.mdx +++ b/apps/docs/pages/reference.mdx @@ -1,15 +1,17 @@ ---- -id: reference -title: Reference Documentation -sidebar_label: Reference Documentation -hide_table_of_contents: true ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'reference', + title: 'Reference Documentation', + sidebar_label: 'Reference Documentation', + hide_table_of_contents: true, +} Reference documentation for the official Supabase client libraries, APIs, and tools.
-
+
-
+
-
+
-
+
-
+
-
+
+ +export const Page = ({ children }) => + +export default Page diff --git a/apps/docs/docs/support.mdx b/apps/docs/pages/support.mdx similarity index 80% rename from apps/docs/docs/support.mdx rename to apps/docs/pages/support.mdx index 2a0bf4f01dd..175fb0d0c9b 100644 --- a/apps/docs/docs/support.mdx +++ b/apps/docs/pages/support.mdx @@ -1,8 +1,10 @@ ---- -id: support -title: Support -description: Supabase Support ---- +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'support', + title: 'Support', + description: 'Supabase Support', +} How can we help? diff --git a/apps/docs/public/img/logs-api.png b/apps/docs/public/img/logs-api.png new file mode 100644 index 00000000000..798abee5f73 Binary files /dev/null and b/apps/docs/public/img/logs-api.png differ diff --git a/apps/docs/public/img/logs-auth.png b/apps/docs/public/img/logs-auth.png new file mode 100644 index 00000000000..a020bb86430 Binary files /dev/null and b/apps/docs/public/img/logs-auth.png differ diff --git a/apps/docs/public/img/logs-database.png b/apps/docs/public/img/logs-database.png new file mode 100644 index 00000000000..78f9036eeaa Binary files /dev/null and b/apps/docs/public/img/logs-database.png differ diff --git a/apps/docs/public/img/logs-explorer.png b/apps/docs/public/img/logs-explorer.png new file mode 100644 index 00000000000..3d21fb0569c Binary files /dev/null and b/apps/docs/public/img/logs-explorer.png differ diff --git a/apps/docs/public/img/logs-functions-edge.png b/apps/docs/public/img/logs-functions-edge.png new file mode 100644 index 00000000000..2d0d699cac1 Binary files /dev/null and b/apps/docs/public/img/logs-functions-edge.png differ diff --git a/apps/docs/public/img/logs-functions.png b/apps/docs/public/img/logs-functions.png new file mode 100644 index 00000000000..efd455955c9 Binary files /dev/null and b/apps/docs/public/img/logs-functions.png differ diff --git a/apps/docs/public/img/logs-realtime.png b/apps/docs/public/img/logs-realtime.png new file mode 100644 index 00000000000..4b93e87e990 Binary files /dev/null and b/apps/docs/public/img/logs-realtime.png differ diff --git a/apps/docs/public/img/logs-storage.png b/apps/docs/public/img/logs-storage.png new file mode 100644 index 00000000000..d0f98ea43cc Binary files /dev/null and b/apps/docs/public/img/logs-storage.png differ diff --git a/apps/docs/public/img/unnesting-2.png b/apps/docs/public/img/unnesting-2.png new file mode 100644 index 00000000000..ba51f56f0fe Binary files /dev/null and b/apps/docs/public/img/unnesting-2.png differ diff --git a/apps/docs/public/img/unnesting-none-dark.png b/apps/docs/public/img/unnesting-none-dark.png new file mode 100644 index 00000000000..3d2b0ccc1d7 Binary files /dev/null and b/apps/docs/public/img/unnesting-none-dark.png differ diff --git a/apps/docs/public/img/unnesting-none.png b/apps/docs/public/img/unnesting-none.png new file mode 100644 index 00000000000..d7dc3d77add Binary files /dev/null and b/apps/docs/public/img/unnesting-none.png differ diff --git a/apps/docs/public/sitemap.xml b/apps/docs/public/sitemap.xml index 1d8fa71c062..db23ee9c311 100644 --- a/apps/docs/public/sitemap.xml +++ b/apps/docs/public/sitemap.xml @@ -12,786 +12,6 @@ 0.5 - - https://supabase.com/docs/architecture - weekly - 0.5 - - - - https://supabase.com/docs/faq - weekly - 0.5 - - - - https://supabase.com/docs/features - weekly - 0.5 - - - - https://supabase.com/docs/introduction - weekly - 0.5 - - - - https://supabase.com/docs/reference - weekly - 0.5 - - - - https://supabase.com/docs/support - weekly - 0.5 - - - - https://supabase.com/docs/guides/api - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth - weekly - 0.5 - - - - https://supabase.com/docs/guides/cli - weekly - 0.5 - - - - https://supabase.com/docs/guides/database - weekly - 0.5 - - - - https://supabase.com/docs/guides/examples - weekly - 0.5 - - - - https://supabase.com/docs/guides/features - weekly - 0.5 - - - - https://supabase.com/docs/guides/functions - weekly - 0.5 - - - - https://supabase.com/docs/guides/realtime - weekly - 0.5 - - - - https://supabase.com/docs/guides/storage-cdn - weekly - 0.5 - - - - https://supabase.com/docs/guides/storage - weekly - 0.5 - - - - https://supabase.com/docs/guides/with-angular - weekly - 0.5 - - - - https://supabase.com/docs/guides/with-expo - weekly - 0.5 - - - - https://supabase.com/docs/guides/with-flutter - weekly - 0.5 - - - - https://supabase.com/docs/guides/with-ionic-angular - weekly - 0.5 - - - - https://supabase.com/docs/guides/with-ionic-react - weekly - 0.5 - - - - https://supabase.com/docs/guides/with-ionic-vue - weekly - 0.5 - - - - https://supabase.com/docs/guides/with-nextjs - weekly - 0.5 - - - - https://supabase.com/docs/guides/with-nuxt-3 - weekly - 0.5 - - - - https://supabase.com/docs/guides/with-react - weekly - 0.5 - - - - https://supabase.com/docs/guides/with-redwoodjs - weekly - 0.5 - - - - https://supabase.com/docs/guides/with-solidjs - weekly - 0.5 - - - - https://supabase.com/docs/guides/with-svelte - weekly - 0.5 - - - - https://supabase.com/docs/guides/with-sveltekit - weekly - 0.5 - - - - https://supabase.com/docs/guides/with-vue-3 - weekly - 0.5 - - - - https://supabase.com/docs/guides/api/generating-types - weekly - 0.5 - - - - https://supabase.com/docs/guides/cli/local-development - weekly - 0.5 - - - - https://supabase.com/docs/guides/cli/managing-environments - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/arrays - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/connecting-to-postgres - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/database-webhooks - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/extensions - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/full-text-search - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/functions - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/json - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/managing-passwords - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/managing-timezones - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/replication - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/sql-to-api - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/tables - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/testing - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/timeouts - weekly - 0.5 - - - - https://supabase.com/docs/guides/functions/auth - weekly - 0.5 - - - - https://supabase.com/docs/guides/functions/cicd-workflow - weekly - 0.5 - - - - https://supabase.com/docs/guides/functions/examples - weekly - 0.5 - - - - https://supabase.com/docs/guides/hosting/docker - weekly - 0.5 - - - - https://supabase.com/docs/guides/hosting/overview - weekly - 0.5 - - - - https://supabase.com/docs/guides/hosting/platform - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-apple - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-azure - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-bitbucket - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-captcha - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-discord - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-email - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-facebook - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-github - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-gitlab - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-google - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-helpers - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-keycloak - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-linkedin - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-magic-link - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-messagebird - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-mfa - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-notion - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-slack - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-spotify - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-twilio - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-twitch - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-twitter - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-vonage - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-workos - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-zoom - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/managing-user-data - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/row-level-security - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/server-side-rendering - weekly - 0.5 - - - - https://supabase.com/docs/guides/integrations/appsmith - weekly - 0.5 - - - - https://supabase.com/docs/guides/integrations/auth0 - weekly - 0.5 - - - - https://supabase.com/docs/guides/integrations/authsignal - weekly - 0.5 - - - - https://supabase.com/docs/guides/integrations/clerk - weekly - 0.5 - - - - https://supabase.com/docs/guides/integrations/dashibase - weekly - 0.5 - - - - https://supabase.com/docs/guides/integrations/dhiwise - weekly - 0.5 - - - - https://supabase.com/docs/guides/integrations/directus - weekly - 0.5 - - - - https://supabase.com/docs/guides/integrations/draftbit - weekly - 0.5 - - - - https://supabase.com/docs/guides/integrations/fezto - weekly - 0.5 - - - - https://supabase.com/docs/guides/integrations/integrations - weekly - 0.5 - - - - https://supabase.com/docs/guides/integrations/keyri - weekly - 0.5 - - - - https://supabase.com/docs/guides/integrations/pgmustard - weekly - 0.5 - - - - https://supabase.com/docs/guides/integrations/plasmic - weekly - 0.5 - - - - https://supabase.com/docs/guides/integrations/polyscale - weekly - 0.5 - - - - https://supabase.com/docs/guides/integrations/prisma - weekly - 0.5 - - - - https://supabase.com/docs/guides/integrations/sequin - weekly - 0.5 - - - - https://supabase.com/docs/guides/integrations/snaplet - weekly - 0.5 - - - - https://supabase.com/docs/guides/integrations/stytch - weekly - 0.5 - - - - https://supabase.com/docs/guides/integrations/supertokens - weekly - 0.5 - - - - https://supabase.com/docs/guides/integrations/vercel - weekly - 0.5 - - - - https://supabase.com/docs/guides/realtime/postgres-cdc - weekly - 0.5 - - - - https://supabase.com/docs/guides/realtime/quickstart - weekly - 0.5 - - - - https://supabase.com/docs/guides/realtime/rate-limits - weekly - 0.5 - - - - https://supabase.com/docs/guides/migrations/firebase-auth - weekly - 0.5 - - - - https://supabase.com/docs/guides/migrations/firebase-storage - weekly - 0.5 - - - - https://supabase.com/docs/guides/migrations/firestore-data - weekly - 0.5 - - - - https://supabase.com/docs/guides/migrations/heroku - weekly - 0.5 - - - - https://supabase.com/docs/guides/platform/custom-domains - weekly - 0.5 - - - - https://supabase.com/docs/guides/platform/database-usage - weekly - 0.5 - - - - https://supabase.com/docs/guides/platform/going-into-prod - weekly - 0.5 - - - - https://supabase.com/docs/guides/platform/logs - weekly - 0.5 - - - - https://supabase.com/docs/guides/platform/metrics - weekly - 0.5 - - - - https://supabase.com/docs/guides/platform/migrating-and-upgrading-projects - weekly - 0.5 - - - - https://supabase.com/docs/guides/platform/performance - weekly - 0.5 - - - - https://supabase.com/docs/guides/platform/permissions - weekly - 0.5 - - - - https://supabase.com/docs/guides/storage/storage-sample - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/extensions/http - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/extensions/pgcron - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/extensions/pgnet - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/extensions/pgtap - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/extensions/plv8 - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/extensions/uuid-ossp - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-helpers/auth-ui - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-helpers/nextjs - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-helpers/remix - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-helpers/sveltekit - weekly - 0.5 - - - - https://supabase.com/docs/handbook/contributing - weekly - 0.5 - - - - https://supabase.com/docs/handbook/introduction - weekly - 0.5 - - - - https://supabase.com/docs/handbook/supasquad - weekly - 0.5 - - https://supabase.com/docs/reference/api weekly diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json index 53c59dc60b8..ce8de4c02e1 100644 --- a/apps/docs/tsconfig.json +++ b/apps/docs/tsconfig.json @@ -20,6 +20,6 @@ "jsx": "preserve", "module": "esnext" }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "pages/guides/append-test.js"], "exclude": ["node_modules"] } diff --git a/apps/www/_blog/2021-02-02-supabase-beta-january-2021.mdx b/apps/www/_blog/2021-02-02-supabase-beta-january-2021.mdx index 0f275e43ef2..d549beff71a 100644 --- a/apps/www/_blog/2021-02-02-supabase-beta-january-2021.mdx +++ b/apps/www/_blog/2021-02-02-supabase-beta-january-2021.mdx @@ -49,7 +49,7 @@ We have exposed the audit trail directly in the dashboard, as well as the GoTrue ### Auth UI widget -In case our Auth endpoints aren't easy enough already, we've built a React [Auth Widget](http://ui.supabase.com/?path=/story/auth-auth--default) for you to drop into your app and to get up-and-running in minutes. +In case our Auth endpoints aren't easy enough already, we've built a React [Auth Widget](https://ui.supabase.com/?path=/story/auth-auth--default) for you to drop into your app and to get up-and-running in minutes. ![Supabase has released a React Auth widget](/images/blog/blog/auth-widget.png) diff --git a/apps/www/_blog/2021-11-30-supabase-studio.mdx b/apps/www/_blog/2021-11-30-supabase-studio.mdx index 0156764d1e5..a51cf705d29 100644 --- a/apps/www/_blog/2021-11-30-supabase-studio.mdx +++ b/apps/www/_blog/2021-11-30-supabase-studio.mdx @@ -32,7 +32,7 @@ Then time went on, and we started gaining traction - a lot faster than expected. The nice thing about building for developers is that they are very vocal about the features they want to see next. And so we kept shipping - a SQL editor, a Table view, User management, auto-generated Docs, and everything else you can find on the Dashboard today. -We've been planning to make the Dashboard public for a long time now, starting with [Supabase UI](http://ui.supabase.com/), +We've been planning to make the Dashboard public for a long time now, starting with [Supabase UI](https://ui.supabase.com/), [`supabase/grid`](https://github.com/supabase/grid), and a standalone [PR](https://github.com/supabase/supabase/pull/2281) for Supabase Studio. But as feature requests kept rolling in it became a Sisyphean task to maintain separate code bases. diff --git a/apps/www/_blog/2022-06-15-loading-data-supabase-python.mdx b/apps/www/_blog/2022-06-15-loading-data-supabase-python.mdx index d01a2f1631b..b20f1dd5369 100644 --- a/apps/www/_blog/2022-06-15-loading-data-supabase-python.mdx +++ b/apps/www/_blog/2022-06-15-loading-data-supabase-python.mdx @@ -179,7 +179,7 @@ If you have any questions please reach out via [Twitter](https://twitter.com/sup ## 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](/blog/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-19-launch-week-5-community-day.mdx b/apps/www/_blog/2022-08-19-launch-week-5-community-day.mdx index 2c1e609a500..d7a63f6595e 100644 --- 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 @@ -56,7 +56,7 @@ _Our limited edition swag is approved by professional swag testers like Peanut!_ allowfullscreen > -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 now have a shiny new [Launch Week page](https://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. 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 index 0c86354bfd1..2072a1f6e70 100644 --- 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 @@ -63,7 +63,7 @@ We're making some changes to the way the Dashboard interacts with your database. ![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. +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](https://migrate.supabase.com/) to our free tier. ## Made with Supabase diff --git a/apps/www/_blog/2022-11-17-fetching-and-caching-supabase-data-in-next-js-server-components.mdx b/apps/www/_blog/2022-11-17-fetching-and-caching-supabase-data-in-next-js-server-components.mdx new file mode 100644 index 00000000000..91f7c558d7e --- /dev/null +++ b/apps/www/_blog/2022-11-17-fetching-and-caching-supabase-data-in-next-js-server-components.mdx @@ -0,0 +1,451 @@ +--- +title: 'Fetching and caching Supabase data in Next.js 13 Server Components' +description: 'Next.js 13 introduces new data fetching and caching methods to enable React Server Components and Suspense.' +author: jonmeyers_io +image: 2022-11-17-supabase-nextjs-13/nextjs-supabase.jpg +thumb: 2022-11-17-supabase-nextjs-13/nextjs-supabase.jpg +tags: + - Next.js +date: '2022-11-17' +toc_depth: 3 +--- + +The biggest announcement from Next.js Conf 2022 was the [release of Next.js 13](https://nextjs.org/blog/next-13), which introduces a collection of improvements, most exciting of which is Server Components. The combination of Server Components and Suspense allow for a more streamlined, reimagined way to fetch and cache data in Next.js applications. This provides excellent DX improvements — such as async components — and aligns the Next framework even closer with the future of React. + +This article is going to look at how we can use these brand new async components to simplify fetching and caching data from Supabase. We will look all things auth in a separate article. Check out the [Server Components example in the Auth Helpers repo](https://github.com/supabase/auth-helpers/tree/main/examples/nextjs-server-components) if you just can't wait! + +> To learn more about any of the concepts covered in this article, check out the [Next.js beta docs](https://beta.nextjs.org/docs). + +A good distinction to understand at this point, is that Next.js 13 is stable and ready for production, however, the `app` directory is still in beta and likely to change. This article will be focusing on the app directory, Server Components and Suspense so let's get experimental! + +> For an example of the code covered in this tutorial, check out [this repo](https://github.com/dijonmusters/fetching-and-caching-supabase-data-in-next-js-13-server-components). + +If you prefer video, check out our recent live stream where we stepped through a similar example. + +
+ +
+ +Let’s get started by creating a brand new Next.js 13 app using the `create-next-app` package: + +```bash +npx create-next-app@latest --experimental-app next13 +``` + +Now we can run our app in development mode: + +```bash +npm run dev +``` + +And navigate to [http://localhost:3000](http://localhost:3000). + +This should look pretty familiar, and scanning the folder structure for the app, it should look almost identical to Next.js 12, but with a new folder called `app`. This is where the new data fetching and caching magic takes place. 🪄 + +Each folder within the `app` directory represents a route in our application. Each folder must have a `page` component, which is rendered when the user navigates to the route, and optional `layout`, `loading` and `error` components. + +> Learn more about [Page](https://beta.nextjs.org/docs/api-reference/file-conventions/page), [Layout](https://beta.nextjs.org/docs/api-reference/file-conventions/layout), [Loading](https://beta.nextjs.org/docs/api-reference/file-conventions/loading) and [Error](https://beta.nextjs.org/docs/api-reference/file-conventions/error) components in the [Next.js beta docs](https://beta.nextjs.org/docs). + +Before we jump into fetching data, we need some data to fetch. Let’s [create a new Supabase project](https://app.supabase.com). + +Once your instance is up and running, head over to the [SQL Editor](https://app.supabase.com/project/_/sql), paste in the following snippet and click `RUN`. + +```sql +create table if not exists posts ( + id uuid default uuid_generate_v4() primary key, + created_at timestamp with time zone default timezone('utc'::text, now()) not null, + title text, + content text +); + +insert into posts(title, content) +values + ('My first post', 'Wow! What a great post.'), + ('My second post', 'This one needs a little work!'); +``` + +This will create a table called `posts`, and populate it with some example data. + +Let’s install the [supabase-js library](https://www.npmjs.com/package/@supabase/supabase-js) to fetch our `posts`. + +```bash +npm install @supabase/supabase-js +``` + +And add a `.env.local` file with the following environment variables: + +```title=".env.local" +NEXT_PUBLIC_SUPABASE_URL=your-supabase-url +NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key +``` + +> The values for these can be found in [your project’s API settings](https://app.supabase.com/project/_/settings/api). + +Lastly, we need to create a Supabase client. Create a file at `utils/supabase.ts` with the following content: + +```tsx title="utils/supabase.ts" +import { createClient } from '@supabase/supabase-js' + +export default createClient( + process.env.NEXT_PUBLIC_SUPABASE_URL!, + process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY! +) +``` + +> For automatically adding types to the Supabase client, check out [how to generate types](https://supabase.com/docs/reference/javascript/typescript-support). + +Okay, let’s look at some different data fetching and caching strategies. + +# Static + +By default any page component in the `app` folder is a Server Component, and its data is fetched and cached by Next.js every time we build a new version of our application. This is equivalent to exporting a `getStaticProps` function from a component in the `pages` directory. + +Let’s create a new file at `app/static/page.tsx` and populate with the following: + +```jsx title="app/static/page.tsx" +import supabase from '../../utils/supabase' + +export default async function Posts() { + const { data: posts } = await supabase.from('posts').select() + return
{JSON.stringify(posts, null, 2)}
+} +``` + +Server Components support async/await by default, and suspend the rendering of the component until the data has been fetched. This means we don’t need to handle error or loading states in our component, keeping our rendering logic clean. + +> To learn more about displaying `loading` and `error` states, check out [the documentation](https://beta.nextjs.org/docs/api-reference/file-conventions/loading). + +Let’s modify this component to render out a collection of `` components, that navigate to a dedicated page for each post. + +```tsx title="app/static/page.tsx" +import Link from 'next/link' +import supabase from '../../utils/supabase' + +export default async function Posts() { + const { data: posts } = await supabase.from('posts').select('id, title') + + if (!posts) { + return

No posts found.

+ } + + return posts.map((post) => ( +

+ {post.title} +

+ )) +} +``` + +> Since we are only using `id` and `title` in our component, we can scope our query down to only return these two columns for each post. + +Let’s create a dynamic route to handle displaying an individual post. Create a new file at `app/static/[id]/page.tsx` and populate with the following: + +```tsx title="app/static/[id]/page.tsx" +import supabase from '../../../utils/supabase' +import { notFound } from 'next/navigation' + +export default async function Post({ params: { id } }: { params: { id: string } }) { + const { data } = await supabase.from('posts').select().match({ id }).single() + + if (!data) { + notFound() + } + + return
{JSON.stringify(data, null, 2)}
+} +``` + +Currently, this page is generated on-demand and then cached. This means the first person who visits the page will need to wait for the server to get the post data from Supabase. This won’t take long at all, because Supabase is Supa awesome! But, we can still make this _slightly_ more efficient by telling Next.js a finite collection of paths that we want to generate at build time. + +We do this by exporting out a `generateStaticParams` function from our dynamic page. + +```tsx title="app/static/[id]/page.tsx" +export async function generateStaticParams() { + const { data: posts } = await supabase.from('posts').select('id') + + return posts?.map(({ id }) => ({ + id, + })) +} +``` + +> This is similar to `getStaticPaths` in a pages component. Learn more [here](https://beta.nextjs.org/docs/data-fetching/generating-static-params). + +The full component should look something like this: + +```tsx title="app/static/[id]/page.tsx" +import supabase from '../../../utils/supabase' +import { notFound } from 'next/navigation' + +export async function generateStaticParams() { + const { data: posts } = await supabase.from('posts').select('id') + + return posts?.map(({ id }) => ({ + id, + })) +} + +export default async function Post({ params: { id } }: { params: { id: string } }) { + const { data: post } = await supabase.from('posts').select().match({ id }).single() + + if (!post) { + notFound() + } + + return
{JSON.stringify(post, null, 2)}
+} +``` + +Awesome! We now have a Supa snappy blog! The user never needs to wait for data to be fetched. All pages are statically generated at build time, and cached at CDN nodes close to our users! 🎉 + +Unfortunately, this means any changes we make in Supabase — adding, updating or deleting posts etc — will not be reflected in our blog. If we want to refresh this data on a regular basis, we need to tell Next.js when to _revalidate_. + +# Static with Revalidation + +By exporting a `revalidate` variable from our component, we can specify how many seconds we consider this data to be “fresh”. + +```tsx +export const revalidate = 60 +``` + +> This is similar to returning a `revalidate` key from the `getStaticProps` function in a component from the `pages` directory. + +So, for 60 seconds Next.js will continue to respond with the static version of our page. After 60 seconds, it will fetch fresh data from Supabase and generate a new static page. However, there is no downtime while this happens, as the previous static page will continue to be served until the “fresh” one has been successfully generated. + +The `Posts` component should now look like this: + +```tsx title="app/static-with-revalidate/page.tsx" +import Link from 'next/link' +import supabase from '../../utils/supabase' + +export const revalidate = 60 + +export default async function Posts() { + const { data: posts } = await supabase.from('posts').select('id, title') + + if (!posts) { + return

No posts found.

+ } + + return posts.map((post) => ( +

+ {post.title} +

+ )) +} +``` + +And the `Post` component should look like this: + +```tsx title="app/static-with-revalidate/[id]/page.tsx" +import supabase from '../../../utils/supabase' +import { notFound } from 'next/navigation' + +export const revalidate = 60 + +export async function generateStaticParams() { + const { data: posts } = await supabase.from('posts').select('id') + + return posts?.map(({ id }) => ({ + id, + })) +} + +export default async function Post({ params: { id } }: { params: { id: string } }) { + const { data: post } = await supabase.from('posts').select().match({ id }).single() + + if (!post) { + notFound() + } + + return
{JSON.stringify(post, null, 2)}
+} +``` + +We now get all the benefits of static — users not waiting around while data is fetched at request time — but we also get the benefits of dynamic data, as it is being refreshed on a regular basis. + +Very cool! 😎 + +# Dynamic + +If we want fresh data to be fetched on every single request, we can simply set our `revalidate` value to `0`. + +**Posts Component** + +```tsx title="app/server-rendered/page.tsx" +import Link from 'next/link' +import supabase from '../../utils/supabase' + +export const revalidate = 0 + +export default async function Posts() { + const { data: posts } = await supabase.from('posts').select('id, title') + + if (!posts) { + return

No posts found.

+ } + + return posts.map((post) => ( +

+ {post.title} +

+ )) +} +``` + +**Single Post Component** + +```tsx title="app/server-rendered/[id]/page.tsx" +import supabase from '../../../utils/supabase' +import { notFound } from 'next/navigation' + +export const revalidate = 0 + +export async function generateStaticParams() { + const { data: posts } = await supabase.from('posts').select('id') + + return posts?.map(({ id }) => ({ + id, + })) +} + +export default async function Post({ params: { id } }: { params: { id: string } }) { + const { data: post } = await supabase.from('posts').select().match({ id }).single() + + if (!post) { + notFound() + } + + return
{JSON.stringify(post, null, 2)}
+} +``` + +This is similar to exporting a `getServerSideProps` function from a component in the `pages` directory. + +All this server stuff is great, but what if you want to use Supabase client-side? 🤔 + +# Client-side + +There are many use-cases where you need to use Supabase client-side: + +1. Authentication + + Supabase Auth does a bunch of stuff behind the scenes — handling 3rd party OAuth flows, for example. This will break if you try to sign users in and out on the server. + +2. Realtime + + Supabase manages the awesome power of websockets on your behalf — something that is not yet solved in this serverless world. + +3. You prefer it + + There is nothing wrong with this! You do you! + +To use Supabase client-side, we need to tell Next.js that this is a [Client Component](https://beta.nextjs.org/docs/rendering/server-and-client-components#client-components). We do this by specifying the `use client` directive at the top of our component. This opts into a similar flow to the `pages` directory — the component is rendered on the server and hydrated client-side. + +> The React team is [working on an awesome new hook called "use"](https://github.com/acdlite/rfcs/blob/first-class-promises/text/0000-first-class-support-for-promises.md#example-use-in-client-components-and-hooks), which will drastically simplify fetching data client-side, but for now, we still need to rely on the combination of `useState` and `useEffect`. + +Let’s implement client-side data fetching. + +```tsx title="app/client-side/page.tsx" +'use client' + +import { useEffect, useState } from 'react' +import supabase from '../../utils/supabase' + +export default function ClientPosts() { + const [isLoading, setIsLoading] = useState(true) + const [posts, setPosts] = useState([]) + + useEffect(() => { + const fetchPosts = async () => { + const { data } = await supabase.from('posts').select() + setPosts(data) + setIsLoading(false) + } + + fetchPosts() + }, []) + + return isLoading ?

Loading

:
{JSON.stringify(posts, null, 2)}
+} +``` + +> Again, check out [how to generate types](https://supabase.com/docs/reference/javascript/typescript-support) to add proper typing for Post. + +But now we have loading spinners! Yuck! + +# Realtime + +Realtime allows us to subscribe to changes in Supabase — inserted, updated or deleted posts — and update our UI dynamically. In order to receive realtime events, we need to [enable replication](https://app.supabase.com/project/_/database/replication) on the posts table. + +Let’s merge the two previous concepts and fetch the initial state of our posts in a Server Component, and then render a Client Component to do client-y things — like subscribe to changes in the DB and update the UI dynamically: + +**Server Component** + +```tsx title="app/realtime/page.tsx" +import supabase from '../../utils/supabase' +import RealtimePosts from './realtime-posts' + +export const revalidate = 0 + +export default async function Realtime() { + const { data } = await supabase.from('posts').select('*') + return +} +``` + +**Client Component** + +```tsx title="app/realtime/realtime-posts.tsx" +'use client' + +import { useEffect, useState } from 'react' +import supabase from '../../utils/supabase' + +export default function RealtimePosts({ serverPosts }: { serverPosts: any }) { + const [posts, setPosts] = useState(serverPosts) + + useEffect(() => { + setPosts(serverPosts) + }, [serverPosts]) + + useEffect(() => { + const channel = supabase + .channel('*') + .on('postgres_changes', { event: 'INSERT', schema: 'public', table: 'posts' }, (payload) => + setPosts((posts: any) => [...posts, payload.new]) + ) + .subscribe() + + return () => { + supabase.removeChannel(channel) + } + }, [serverPosts]) + + return
{JSON.stringify(posts, null, 2)}
+} +``` + +> `useEffect` is used to subscribe to changes to the `serverPosts` prop. Without this, our component would not display fresh server-side results when the parent component is re-rendered, only on the first render. + +This is a great pattern for fetching initial data server-side and subscribing to realtime changes client-side. This will likely be replaced by the `use` hook once it is stable with Next.js — it also uses suspense to _suspend_ the rendering of a component while fetching data, and cleans up those loading and error states. + +# Conclusion + +Next.js 13 Server Components are awesome! Suspense is awesome! Async components are awesome! + +The combination of these concepts allow us to think about data fetching and caching as separate concerns, rather than specifying completely different data fetching functions like `getStaticProps` and `getServerSideProps`. If our caching requirements for a component change, we simply update the caching value, rather than refactoring our data fetching logic. + +Additionally, by allowing any component in the tree to be either a server or client component — that is responsible for its own data and suspends rendering until it is ready — drastically simplifies our code, and provides much more flexible patterns for creating maintainable applications as complexity grows. + +# More Next.js 13 Resources + +- [Next.js Quickstart](https://supabase.com/docs/guides/with-nextjs) +- [Next.js 13 Beta Docs](https://beta.nextjs.org/docs) +- [Creating an authenticated Supabase client in Next.js 13 Server Component](https://github.com/supabase/auth-helpers/tree/main/examples/nextjs-server-components) +- [Data fetching and caching with Next.js 13 - Supabase Happy Hour #26](https://www.youtube.com/watch?v=QH0P5xZt5wY) diff --git a/apps/www/public/images/blog/2022-11-17-supabase-nextjs-13/nextjs-supabase.jpg b/apps/www/public/images/blog/2022-11-17-supabase-nextjs-13/nextjs-supabase.jpg new file mode 100644 index 00000000000..f672a908d28 Binary files /dev/null and b/apps/www/public/images/blog/2022-11-17-supabase-nextjs-13/nextjs-supabase.jpg differ diff --git a/apps/www/public/rss.xml b/apps/www/public/rss.xml index a2a75b11e2f..87e2cd3af9a 100644 --- a/apps/www/public/rss.xml +++ b/apps/www/public/rss.xml @@ -19,196 +19,196 @@ Supabase Beta October 2022 https://supabase.com/blog/supabase-beta-update-october-2022 New SDKs, quickstarts, Functions tricks, and more. But, more importantly, Launch Week 6️ has a date! - Tue, 01 Nov 2022 16:04:00 +0000 + Tue, 01 Nov 2022 02:02:30 +0000 https://supabase.com/blog/postgresql-commitfest What is PostgreSQL commitfest and how to contribute https://supabase.com/blog/postgresql-commitfest A time-tested method for contributing to the core Postgres code - Wed, 26 Oct 2022 16:04:00 +0000 + Wed, 26 Oct 2022 02:02:30 +0000 https://supabase.com/blog/supabase-flutter-sdk-v1-released supabase-flutter v1 Released https://supabase.com/blog/supabase-flutter-sdk-v1-released We've released supabase-flutter v1. More intuitive way of accessing Supabase from your Flutter application. - Thu, 20 Oct 2022 16:04:00 +0000 + Thu, 20 Oct 2022 02:02:30 +0000 https://supabase.com/blog/supabase-js-v2-released supabase-js v2 Released https://supabase.com/blog/supabase-js-v2-released We've released supabase-js v2. Updated examples, quickstarts, and an improved experience. - Wed, 19 Oct 2022 16:04:00 +0000 + Wed, 19 Oct 2022 02:02:30 +0000 https://supabase.com/blog/postgres-full-text-search-vs-the-rest Postgres Full Text Search vs the rest https://supabase.com/blog/postgres-full-text-search-vs-the-rest Comparing one of the most popular Postgres features against alternatives - Thu, 13 Oct 2022 16:04:00 +0000 + Thu, 13 Oct 2022 02:02:30 +0000 https://supabase.com/blog/supabase-beta-update-september-2022 Supabase Beta September 2022 https://supabase.com/blog/supabase-beta-update-september-2022 We were too focused on clearing out the backlog so we didn't ship anything new last month... or did we?! - Tue, 04 Oct 2022 16:04:00 +0000 + Tue, 04 Oct 2022 02:02:30 +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 + Sun, 02 Oct 2022 02:02:30 +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 + Wed, 07 Sep 2022 02:02:30 +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 + Tue, 06 Sep 2022 02:02:30 +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 + Wed, 24 Aug 2022 02:02:30 +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 + Tue, 23 Aug 2022 02:02:30 +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 + Thu, 18 Aug 2022 02:02:30 +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 + Thu, 18 Aug 2022 02:02:30 +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 + Thu, 18 Aug 2022 02:02:30 +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 + Thu, 18 Aug 2022 02:02:30 +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 + Thu, 18 Aug 2022 02:02:30 +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 + Wed, 17 Aug 2022 02:02:30 +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 + Tue, 16 Aug 2022 02:02:30 +0000 https://supabase.com/blog/supabase-js-v2 supabase-js v2 https://supabase.com/blog/supabase-js-v2 A look at supabase-js v2, which brings type support and focuses on quality-of-life improvements for developers. - Mon, 15 Aug 2022 16:04:00 +0000 + Mon, 15 Aug 2022 02:02:30 +0000 https://supabase.com/blog/supabase-cli-v1-and-admin-api-beta Supabase CLI v1 and Management API Beta https://supabase.com/blog/supabase-cli-v1-and-admin-api-beta We are moving Supabase CLI v1 out of beta, and releasing Management API beta. - Sun, 14 Aug 2022 16:04:00 +0000 + Sun, 14 Aug 2022 02:02:30 +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 16:04:00 +0000 + Thu, 11 Aug 2022 02:02:30 +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 16:04:00 +0000 + Tue, 09 Aug 2022 02:02:30 +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 16:04:00 +0000 + Mon, 08 Aug 2022 02:02:30 +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 16:04:00 +0000 + Tue, 02 Aug 2022 02:02:30 +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 16:04:00 +0000 + Mon, 01 Aug 2022 02:02:30 +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 16:04:00 +0000 + Sun, 17 Jul 2022 02:02:30 +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 16:04:00 +0000 + Tue, 12 Jul 2022 02:02:30 +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 16:04:00 +0000 + Tue, 05 Jul 2022 02:02:30 +0000 https://supabase.com/blog/flutter-tutorial-building-a-chat-app @@ -222,700 +222,700 @@ 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 16:04:00 +0000 + Tue, 28 Jun 2022 02:02:30 +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 16:04:00 +0000 + Mon, 27 Jun 2022 02:02:30 +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 16:04:00 +0000 + Thu, 16 Jun 2022 02:02:30 +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 16:04:00 +0000 + Tue, 31 May 2022 02:02:30 +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 16:04:00 +0000 + Wed, 25 May 2022 02:02:30 +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 16:04:00 +0000 + Tue, 19 Apr 2022 02:02:30 +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 16:04:00 +0000 + Sun, 17 Apr 2022 02:02:30 +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 16:04:00 +0000 + Thu, 14 Apr 2022 02:02:30 +0000 https://supabase.com/blog/supabrew Supabrew - Never Code Thirsty https://supabase.com/blog/supabrew A light and refreshing non-alcoholic beer for devs. - Thu, 31 Mar 2022 16:04:00 +0000 + Fri, 01 Apr 2022 02:02:30 +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. - Thu, 31 Mar 2022 16:04:00 +0000 + Fri, 01 Apr 2022 02:02:30 +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! - Thu, 31 Mar 2022 16:04:00 +0000 + Fri, 01 Apr 2022 02:02:30 +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 16:04:00 +0000 + Wed, 30 Mar 2022 02:02:30 +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 16:04:00 +0000 + Tue, 29 Mar 2022 02:02:30 +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 16:04:00 +0000 + Mon, 28 Mar 2022 02:02:30 +0000 https://supabase.com/blog/community-day-lw4 Community Day https://supabase.com/blog/community-day-lw4 Kicking off Launch Week 4 with contributors, partners, and friends. - Sun, 27 Mar 2022 16:04:00 +0000 + Sun, 27 Mar 2022 02:02:30 +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 16:04:00 +0000 + Thu, 24 Mar 2022 02:02:30 +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 16:04:00 +0000 + Thu, 24 Mar 2022 02:02:30 +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 16:04:00 +0000 + Mon, 07 Mar 2022 03:03:30 +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 16:04:00 +0000 + Mon, 21 Feb 2022 03:03:30 +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 16:04:00 +0000 + Wed, 19 Jan 2022 03:03:30 +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 16:04:00 +0000 + Wed, 19 Jan 2022 03:03:30 +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 16:04:00 +0000 + Thu, 16 Dec 2021 03:03:30 +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 16:04:00 +0000 + Tue, 14 Dec 2021 03:03:30 +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 16:04:00 +0000 + Thu, 02 Dec 2021 03:03:30 +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 16:04:00 +0000 + Thu, 02 Dec 2021 03:03:30 +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 16:04:00 +0000 + Thu, 02 Dec 2021 03:03:30 +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 16:04:00 +0000 + Wed, 01 Dec 2021 03:03:30 +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 16:04:00 +0000 + Tue, 30 Nov 2021 03:03:30 +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 16:04:00 +0000 + Mon, 29 Nov 2021 03:03:30 +0000 https://supabase.com/blog/community-day-lw3 Community Day https://supabase.com/blog/community-day-lw3 Kicking off launch week by highlighting the communities around Supabase. - Sun, 28 Nov 2021 16:04:00 +0000 + Sun, 28 Nov 2021 03:03:30 +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 16:04:00 +0000 + Sat, 27 Nov 2021 03:03:30 +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 16:04:00 +0000 + Fri, 26 Nov 2021 03:03:30 +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 16:04:00 +0000 + Thu, 25 Nov 2021 03:03:30 +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 16:04:00 +0000 + Thu, 25 Nov 2021 03:03:30 +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 16:04:00 +0000 + Sat, 06 Nov 2021 02:02:30 +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 16:04:00 +0000 + Wed, 27 Oct 2021 02:02:30 +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 16:04:00 +0000 + Mon, 18 Oct 2021 02:02:30 +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 16:04:00 +0000 + Wed, 13 Oct 2021 02:02:30 +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 16:04:00 +0000 + Sun, 03 Oct 2021 02:02:30 +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 16:04:00 +0000 + Mon, 27 Sep 2021 02:02:30 +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 16:04:00 +0000 + Thu, 09 Sep 2021 02:02:30 +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 16:04:00 +0000 + Wed, 11 Aug 2021 02:02:30 +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 16:04:00 +0000 + Sun, 08 Aug 2021 02:02:30 +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 16:04:00 +0000 + Thu, 29 Jul 2021 02:02:30 +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 16:04:00 +0000 + Thu, 29 Jul 2021 02:02:30 +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 16:04:00 +0000 + Thu, 29 Jul 2021 02:02:30 +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 16:04:00 +0000 + Wed, 28 Jul 2021 02:02:30 +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 16:04:00 +0000 + Tue, 27 Jul 2021 02:02:30 +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 16:04:00 +0000 + Tue, 27 Jul 2021 02:02:30 +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 16:04:00 +0000 + Mon, 26 Jul 2021 02:02:30 +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 16:04:00 +0000 + Mon, 26 Jul 2021 02:02:30 +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 16:04:00 +0000 + Sun, 25 Jul 2021 02:02:30 +0000 https://supabase.com/blog/supabase-community-day Supabase Community Day https://supabase.com/blog/supabase-community-day Community Day - Sun, 25 Jul 2021 16:04:00 +0000 + Sun, 25 Jul 2021 02:02:30 +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 16:04:00 +0000 + Sun, 25 Jul 2021 02:02:30 +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 16:04:00 +0000 + Wed, 21 Jul 2021 02:02:30 +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 16:04:00 +0000 + Thu, 01 Jul 2021 02:02:30 +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 16:04:00 +0000 + Tue, 01 Jun 2021 02:02:30 +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 16:04:00 +0000 + Tue, 01 Jun 2021 02:02:30 +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 16:04:00 +0000 + Tue, 04 May 2021 02:02:30 +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 16:04:00 +0000 + Mon, 05 Apr 2021 02:02:30 +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 16:04:00 +0000 + Thu, 01 Apr 2021 02:02:30 +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 16:04:00 +0000 + Thu, 01 Apr 2021 02:02:30 +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 16:04:00 +0000 + Thu, 01 Apr 2021 02:02:30 +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 - Wed, 31 Mar 2021 16:04:00 +0000 + Thu, 01 Apr 2021 02:02:30 +0000 https://supabase.com/blog/supabase-cli Supabase CLI https://supabase.com/blog/supabase-cli Local development, database migrations, and self-hosting. - Tue, 30 Mar 2021 16:04:00 +0000 + Wed, 31 Mar 2021 02:02:30 +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 - Mon, 29 Mar 2021 16:04:00 +0000 + Tue, 30 Mar 2021 02:02:30 +0000 https://supabase.com/blog/pricing Supabase Beta Pricing https://supabase.com/blog/pricing Supabase launches Beta pricing structure - Sun, 28 Mar 2021 16:04:00 +0000 + Mon, 29 Mar 2021 02:02:30 +0000 https://supabase.com/blog/launch-week Launch week https://supabase.com/blog/launch-week Five days of Supabase. - Wed, 24 Mar 2021 16:04:00 +0000 + Wed, 24 Mar 2021 02:02:30 +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 16:04:00 +0000 + Wed, 24 Mar 2021 02:02:30 +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 - Sun, 21 Mar 2021 16:04:00 +0000 + Mon, 22 Mar 2021 02:02:30 +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 - Wed, 10 Mar 2021 16:04:00 +0000 + Thu, 11 Mar 2021 03:03:30 +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 - Sun, 07 Mar 2021 16:04:00 +0000 + Mon, 08 Mar 2021 03:03:30 +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. - Thu, 04 Mar 2021 16:04:00 +0000 + Fri, 05 Mar 2021 03:03:30 +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. - Mon, 01 Mar 2021 16:04:00 +0000 + Tue, 02 Mar 2021 03:03:30 +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 - Fri, 26 Feb 2021 16:04:00 +0000 + Sat, 27 Feb 2021 03:03:30 +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 - Mon, 08 Feb 2021 16:04:00 +0000 + Tue, 09 Feb 2021 03:03:30 +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. - Mon, 01 Feb 2021 16:04:00 +0000 + Tue, 02 Feb 2021 03:03:30 +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. - Fri, 01 Jan 2021 16:04:00 +0000 + Sat, 02 Jan 2021 03:03:30 +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 - Sat, 12 Dec 2020 16:04:00 +0000 + Sun, 13 Dec 2020 03:03:30 +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 - Tue, 01 Dec 2020 16:04:00 +0000 + Wed, 02 Dec 2020 03:03:30 +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. - Tue, 01 Dec 2020 16:04:00 +0000 + Wed, 02 Dec 2020 03:03:30 +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. - Tue, 01 Dec 2020 16:04:00 +0000 + Wed, 02 Dec 2020 03:03:30 +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. - Tue, 01 Dec 2020 16:04:00 +0000 + Wed, 02 Dec 2020 03:03:30 +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. - Mon, 30 Nov 2020 16:04:00 +0000 + Tue, 01 Dec 2020 03:03:30 +0000 https://supabase.com/blog/postgresql-views Postgres Views https://supabase.com/blog/postgresql-views Creating and using a view in PostgreSQL. - Tue, 17 Nov 2020 16:04:00 +0000 + Wed, 18 Nov 2020 03:03:30 +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. - Sun, 01 Nov 2020 16:04:00 +0000 + Mon, 02 Nov 2020 03:03:30 +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. - Thu, 29 Oct 2020 16:04:00 +0000 + Fri, 30 Oct 2020 02:02:30 +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. - Fri, 02 Oct 2020 16:04:00 +0000 + Sat, 03 Oct 2020 02:02:30 +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. - Thu, 10 Sep 2020 16:04:00 +0000 + Fri, 11 Sep 2020 02:02:30 +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 - Wed, 02 Sep 2020 16:04:00 +0000 + Thu, 03 Sep 2020 02:02:30 +0000 https://supabase.com/blog/supabase-auth Supabase Auth https://supabase.com/blog/supabase-auth Authenticate and authorize your users with Supabase Auth - Tue, 04 Aug 2020 16:04:00 +0000 + Wed, 05 Aug 2020 02:02:30 +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 - Sat, 01 Aug 2020 16:04:00 +0000 + Sun, 02 Aug 2020 02:02:30 +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. - Sat, 01 Aug 2020 16:04:00 +0000 + Sun, 02 Aug 2020 02:02:30 +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 - Thu, 09 Jul 2020 16:04:00 +0000 + Fri, 10 Jul 2020 02:02:30 +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? - Wed, 08 Jul 2020 16:04:00 +0000 + Thu, 09 Jul 2020 02:02:30 +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? - Mon, 06 Jul 2020 16:04:00 +0000 + Tue, 07 Jul 2020 02:02:30 +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 - Tue, 30 Jun 2020 16:04:00 +0000 + Wed, 01 Jul 2020 02:02:30 +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. - Sun, 14 Jun 2020 16:04:00 +0000 + Mon, 15 Jun 2020 02:02:30 +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 - Sun, 31 May 2020 16:04:00 +0000 + Mon, 01 Jun 2020 02:02:30 +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 - Sun, 31 May 2020 16:04:00 +0000 + Mon, 01 Jun 2020 02:02:30 +0000 diff --git a/docker/.env.example b/docker/.env.example index aa0ee2f2148..2469e01fa6b 100644 --- a/docker/.env.example +++ b/docker/.env.example @@ -74,4 +74,4 @@ STUDIO_DEFAULT_ORGANIZATION=Default Organization STUDIO_DEFAULT_PROJECT=Default Project STUDIO_PORT=3000 -PUBLIC_REST_URL=http://localhost:8000/rest/v1/ # replace if you intend to use Studio outside of localhost +SUPABASE_PUBLIC_URL=https://localhost:8443 # replace if you intend to use Studio outside of localhost diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 96fbeb101b5..82e500c45ed 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -21,7 +21,9 @@ services: DEFAULT_PROJECT: ${STUDIO_DEFAULT_PROJECT} SUPABASE_URL: http://kong:8000 - SUPABASE_REST_URL: ${PUBLIC_REST_URL} + SUPABASE_PUBLIC_URL: ${SUPABASE_PUBLIC_URL} + # Kept for backwards compatibility with studio:0.22.08 + SUPABASE_REST_URL: ${API_EXTERNAL_URL}/rest/v1/ SUPABASE_ANON_KEY: ${ANON_KEY} SUPABASE_SERVICE_KEY: ${SERVICE_ROLE_KEY} @@ -169,7 +171,7 @@ services: # Comment out everything below this point if you are using an external Postgres database db: container_name: supabase-db - image: supabase/postgres:14.1.0.82 + image: supabase/postgres:14.1.0.89 healthcheck: test: pg_isready -U postgres -h localhost interval: 5s diff --git a/examples/user-management/flutter-user-management/README.md b/examples/user-management/flutter-user-management/README.md index 13d06cbf26e..38f7169d129 100644 --- a/examples/user-management/flutter-user-management/README.md +++ b/examples/user-management/flutter-user-management/README.md @@ -7,7 +7,7 @@ This repo will demonstrate how to: - store and retrieve data with [Supabase database](https://supabase.io/docs/guides/database) - store image files in [Supabase storage](https://supabase.io/docs/guides/storage) -Supabase User Management example +Supabase User Management example ## Getting Started diff --git a/package-lock.json b/package-lock.json index f8562b0fccf..99d6bba56ea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,6 +19,8 @@ "dependencies": { "@code-hike/mdx": "^0.7.4", "@mdx-js/react": "^2.1.1", + "mdx-mermaid": "^1.3.2", + "mermaid": "^9.2.2", "mini-svg-data-uri": "^1.4.4" }, "devDependencies": { @@ -58,11 +60,17 @@ "jsrsasign": "^10.5.26", "lodash": "^4.17.21", "markdown-toc": "^1.2.0", + "mdx-mermaid": "2.0.0-rc3", "next": "12.1.0", "next-compose-plugins": "^2.2.1", +<<<<<<< HEAD "next-mdx-remote": "^4.1.0", "next-mdx-toc": "^0.1.3", "next-plugin-yaml": "^1.0.1", +======= + "next-mdx-remote": "^3.0.8", + "next-seo": "^5.14.1", +>>>>>>> @{-1} "next-themes": "0.0.15", "next-transpile-modules": "^9.0.0", "octokit": "^2.0.10", @@ -295,6 +303,88 @@ "url": "https://opencollective.com/unified" } }, +<<<<<<< HEAD +======= + "apps/docs/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "apps/docs/node_modules/mdx-mermaid": { + "version": "2.0.0-rc3", + "resolved": "https://registry.npmjs.org/mdx-mermaid/-/mdx-mermaid-2.0.0-rc3.tgz", + "integrity": "sha512-zshJVTyepNE8Sjrj7Hv1UyDq3UwJVnwKsHGuDBYM4jixsofrC2j9wj2sXQ3PnlryFxLm9pU9ctqiGQgbxYXLjg==", + "peerDependencies": { + "estree-util-to-js": "^1.1.0", + "estree-util-visit": "^1.2.0", + "hast-util-to-estree": "^2.1.0", + "mdast-util-from-markdown": "^1.2.0", + "mdast-util-mdx": "^2.0.0", + "mermaid": ">=8.11.0", + "micromark-extension-mdxjs": "^1.0.0", + "puppeteer": "^16.1.1", + "react": "^16.8.4 || ^17.0.0 || ^18.0.0", + "unist-util-visit": "^4.1.0" + } + }, + "apps/docs/node_modules/next-mdx-remote": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/next-mdx-remote/-/next-mdx-remote-3.0.8.tgz", + "integrity": "sha512-WFSxt0crxG5PN/0WvaunzxzqV3wh3dPBZyhkclxwyQfLSRKzsNSArzot/4gYTOOZ/GtyRfNjbI/HtDsW2S4fqQ==", + "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/docs/node_modules/next-seo": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/next-seo/-/next-seo-5.14.1.tgz", + "integrity": "sha512-NiJeQbxYP3z+EMp52q8k3Q+OfX2+Yv2WehERDj98r2wjXxL+woKpRBdsSVYolTD0Hm8IWs42SzaISE93RoQdOw==", + "peerDependencies": { + "next": "^8.1.1-canary.54 || >=9.0.0", + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "apps/docs/node_modules/openapi-types": { + "version": "12.0.2", + "dev": true, + "license": "MIT" + }, + "apps/docs/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" + } + }, + "apps/docs/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, +>>>>>>> @{-1} "apps/www": { "version": "0.0.3", "license": "MIT", @@ -592,7 +682,55 @@ "version": "9.0.0", "license": "MIT", "dependencies": { +<<<<<<< HEAD "mdast-util-from-markdown": "^0.8.0" +======= + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "apps/www/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" + } + }, + "apps/www/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" + } + }, + "apps/www/node_modules/unist-util-visit": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", + "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", + "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" + } + }, + "apps/www/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" +>>>>>>> @{-1} }, "funding": { "type": "opencollective", @@ -784,6 +922,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -845,17 +984,31 @@ } }, "node_modules/@babel/compat-data": { +<<<<<<< HEAD "version": "7.20.1", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", +======= + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz", + "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==", + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { +<<<<<<< HEAD "version": "7.20.2", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz", "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==", +======= + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz", + "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==", + "dev": true, +>>>>>>> @{-1} "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", @@ -931,9 +1084,16 @@ } }, "node_modules/@babel/helper-compilation-targets": { +<<<<<<< HEAD "version": "7.20.0", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", +======= + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz", + "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==", + "dev": true, +>>>>>>> @{-1} "dependencies": { "@babel/compat-data": "^7.20.0", "@babel/helper-validator-option": "^7.18.6", @@ -1184,6 +1344,7 @@ "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==", + "dev": true, "engines": { "node": ">=6.9.0" } @@ -2714,6 +2875,11 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "node_modules/@braintree/sanitize-url": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.2.tgz", + "integrity": "sha512-Tbsj02wXCbqGmzdnXNk0SOF19ChhRU70BsroIi4Pm6Ehp56in6vch94mfbdQ17DozxkL3BAVjbZ4Qc1a0HFRAg==" + }, "node_modules/@cnakazawa/watch": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", @@ -2766,7 +2932,7 @@ "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==", - "devOptional": true, + "dev": true, "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -2778,7 +2944,7 @@ "version": "0.3.9", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "devOptional": true, + "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -2929,9 +3095,15 @@ } }, "node_modules/@eslint/eslintrc": { +<<<<<<< HEAD "version": "1.3.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", +======= + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", +>>>>>>> @{-1} "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -2967,6 +3139,30 @@ "url": "https://github.com/sponsors/epoberezkin" } }, +<<<<<<< HEAD +======= + "node_modules/@eslint/eslintrc/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==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/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 + }, +>>>>>>> @{-1} "node_modules/@faker-js/faker": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-6.3.1.tgz", @@ -3037,9 +3233,15 @@ } }, "node_modules/@humanwhocodes/config-array": { +<<<<<<< HEAD "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", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", +>>>>>>> @{-1} "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -3053,7 +3255,8 @@ "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==" + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", @@ -3915,6 +4118,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -4157,6 +4361,7 @@ "url": "https://opencollective.com/unified" } }, +<<<<<<< HEAD "node_modules/@mdx-js/mdx/node_modules/unist-util-visit-parents": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz", @@ -4164,16 +4369,38 @@ "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" +======= + "node_modules/@mdx-js/mdx/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" +>>>>>>> @{-1} }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, +<<<<<<< HEAD "node_modules/@mdx-js/mdx/node_modules/zwitch": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.2.tgz", "integrity": "sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==", +======= + "node_modules/@mdx-js/mdx/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" + }, +>>>>>>> @{-1} "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -9469,25 +9696,25 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "devOptional": true + "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==", - "devOptional": true + "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==", - "devOptional": true + "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==", - "devOptional": true + "dev": true }, "node_modules/@types/acorn": { "version": "4.0.6", @@ -10473,6 +10700,10 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "@webassemblyjs/helper-module-context": "1.9.0", "@webassemblyjs/helper-wasm-bytecode": "1.9.0", @@ -10482,22 +10713,41 @@ "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", +<<<<<<< HEAD "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" +======= + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true +>>>>>>> @{-1} }, "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", +<<<<<<< HEAD "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" +======= + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true +>>>>>>> @{-1} }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", +<<<<<<< HEAD "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" +======= + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true +>>>>>>> @{-1} }, "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "@webassemblyjs/wast-printer": "1.9.0" } @@ -10505,12 +10755,21 @@ "node_modules/@webassemblyjs/helper-fsm": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", +<<<<<<< HEAD "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" +======= + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true +>>>>>>> @{-1} }, "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "@webassemblyjs/ast": "1.9.0" } @@ -10518,12 +10777,21 @@ "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", +<<<<<<< HEAD "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" +======= + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true +>>>>>>> @{-1} }, "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -10535,6 +10803,10 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "@xtuc/ieee754": "^1.2.0" } @@ -10543,6 +10815,10 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "@xtuc/long": "4.2.2" } @@ -10550,12 +10826,21 @@ "node_modules/@webassemblyjs/utf8": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", +<<<<<<< HEAD "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" +======= + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true +>>>>>>> @{-1} }, "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -10571,6 +10856,10 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-wasm-bytecode": "1.9.0", @@ -10583,6 +10872,10 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -10594,6 +10887,10 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-api-error": "1.9.0", @@ -10607,6 +10904,10 @@ "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/floating-point-hex-parser": "1.9.0", @@ -10620,6 +10921,10 @@ "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/wast-parser": "1.9.0", @@ -10662,12 +10967,22 @@ "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", +<<<<<<< HEAD "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" +======= + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true +>>>>>>> @{-1} }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", +<<<<<<< HEAD "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" +======= + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true +>>>>>>> @{-1} }, "node_modules/abab": { "version": "2.0.6", @@ -10809,6 +11124,10 @@ "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "peerDependencies": { "ajv": ">=5.0.0" } @@ -10919,6 +11238,7 @@ "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, "engines": { "node": ">=6" } @@ -11093,6 +11413,10 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.10.0" } @@ -11101,6 +11425,10 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.10.0" } @@ -11109,6 +11437,10 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.10.0" } @@ -11171,6 +11503,10 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.10.0" } @@ -11260,6 +11596,10 @@ "version": "5.4.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "bn.js": "^4.0.0", "inherits": "^2.0.1", @@ -11270,12 +11610,21 @@ "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", +<<<<<<< HEAD "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" +======= + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true +>>>>>>> @{-1} }, "node_modules/assert": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "object-assign": "^4.1.1", "util": "0.10.3" @@ -11284,12 +11633,21 @@ "node_modules/assert/node_modules/inherits": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", +<<<<<<< HEAD "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==" +======= + "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", + "dev": true +>>>>>>> @{-1} }, "node_modules/assert/node_modules/util": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "inherits": "2.0.1" } @@ -11298,6 +11656,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.10.0" } @@ -11323,6 +11685,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, "engines": { "node": ">=8" } @@ -11365,6 +11728,10 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "bin": { "atob": "bin/atob.js" }, @@ -11991,6 +12358,10 @@ "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -12008,6 +12379,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-descriptor": "^1.0.0" }, @@ -12019,6 +12394,10 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "funding": [ { "type": "github", @@ -12105,12 +12484,22 @@ "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", +<<<<<<< HEAD "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" +======= + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true +>>>>>>> @{-1} }, "node_modules/bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", +<<<<<<< HEAD "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" +======= + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true +>>>>>>> @{-1} }, "node_modules/body-parser": { "version": "1.20.1", @@ -12238,7 +12627,12 @@ "node_modules/brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", +<<<<<<< HEAD "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" +======= + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true +>>>>>>> @{-1} }, "node_modules/browser-process-hrtime": { "version": "1.0.0", @@ -12249,6 +12643,10 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", @@ -12262,6 +12660,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", @@ -12272,6 +12674,10 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", @@ -12283,6 +12689,10 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "bn.js": "^5.0.0", "randombytes": "^2.0.1" @@ -12292,6 +12702,10 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "bn.js": "^5.1.1", "browserify-rsa": "^4.0.1", @@ -12308,6 +12722,10 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -12321,6 +12739,10 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "funding": [ { "type": "github", @@ -12340,6 +12762,10 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "pako": "~1.0.5" } @@ -12401,6 +12827,10 @@ "version": "4.9.2", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "base64-js": "^1.0.2", "ieee754": "^1.1.4", @@ -12428,12 +12858,22 @@ "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", +<<<<<<< HEAD "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" +======= + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true +>>>>>>> @{-1} }, "node_modules/buffer/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", +<<<<<<< HEAD "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" +======= + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true +>>>>>>> @{-1} }, "node_modules/bufferutil": { "version": "4.0.7", @@ -12450,7 +12890,12 @@ "node_modules/builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", +<<<<<<< HEAD "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==" +======= + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true +>>>>>>> @{-1} }, "node_modules/bytes": { "version": "3.0.0", @@ -12561,6 +13006,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -12598,6 +13047,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, "engines": { "node": ">=6" } @@ -12816,6 +13266,10 @@ "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=6.0" } @@ -12830,6 +13284,10 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -12845,6 +13303,10 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -12859,6 +13321,10 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-descriptor": "^0.1.0" }, @@ -12870,6 +13336,10 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "kind-of": "^3.0.2" }, @@ -12881,6 +13351,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-buffer": "^1.1.5" }, @@ -12892,6 +13366,10 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "kind-of": "^3.0.2" }, @@ -12903,6 +13381,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-buffer": "^1.1.5" }, @@ -12914,6 +13396,10 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -12927,6 +13413,10 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.10.0" } @@ -13099,6 +13589,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" @@ -13173,12 +13667,22 @@ "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", +<<<<<<< HEAD "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" +======= + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true +>>>>>>> @{-1} }, "node_modules/component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", +<<<<<<< HEAD "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" +======= + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true +>>>>>>> @{-1} }, "node_modules/component-type": { "version": "1.2.1", @@ -13286,7 +13790,12 @@ "node_modules/console-browserify": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", +<<<<<<< HEAD "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" +======= + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true +>>>>>>> @{-1} }, "node_modules/console-control-strings": { "version": "1.1.0", @@ -13296,7 +13805,12 @@ "node_modules/constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", +<<<<<<< HEAD "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==" +======= + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true +>>>>>>> @{-1} }, "node_modules/content-disposition": { "version": "0.5.4", @@ -13362,6 +13876,10 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "aproba": "^1.1.1", "fs-write-stream-atomic": "^1.0.8", @@ -13375,6 +13893,10 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "glob": "^7.1.3" }, @@ -13386,6 +13908,10 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.10.0" } @@ -13771,6 +14297,10 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "bn.js": "^4.1.0", "elliptic": "^6.5.3" @@ -13779,12 +14309,21 @@ "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", +<<<<<<< HEAD "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" +======= + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true +>>>>>>> @{-1} }, "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -13797,6 +14336,10 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", @@ -13810,7 +14353,7 @@ "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 + "dev": true }, "node_modules/cross-fetch": { "version": "3.1.5", @@ -13824,6 +14367,7 @@ "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", @@ -13845,6 +14389,10 @@ "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "browserify-cipher": "^1.0.0", "browserify-sign": "^4.0.0", @@ -14269,7 +14817,12 @@ "node_modules/cyclist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", +<<<<<<< HEAD "integrity": "sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A==" +======= + "integrity": "sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A==", + "dev": true +>>>>>>> @{-1} }, "node_modules/d": { "version": "1.0.1", @@ -14280,6 +14833,46 @@ "type": "^1.0.1" } }, + "node_modules/d3": { + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.6.1.tgz", + "integrity": "sha512-txMTdIHFbcpLx+8a0IFhZsbp+PfBBPt8yfbmukZTQFroKuFqIwqswF0qE5JXWefylaAVpSXFoKm3yP+jpNLFLw==", + "dependencies": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "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": "2.12.1", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", @@ -14288,16 +14881,202 @@ "internmap": "^1.0.0" } }, + "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": "2.0.0", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" }, + "node_modules/d3-contour": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.0.tgz", + "integrity": "sha512-7aQo0QHUTu/Ko3cP9YK9yUTxtoDEiDGwnBHyLxG5M4vqlBkO/uixMRele3nfsfj6UXOcuReVpVXzAboGraYIJw==", + "dependencies": { + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-contour/node_modules/d3-array": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", + "dependencies": { + "internmap": "1 - 2" + }, + "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-dsv/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/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": "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-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": "2.0.1", "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", @@ -14311,6 +15090,30 @@ "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" }, + "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": "3.3.0", "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", @@ -14323,6 +15126,26 @@ "d3-time-format": "2 - 3" } }, + "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": "2.1.0", "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", @@ -14347,6 +15170,436 @@ "d3-time": "1 - 2" } }, + "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/d3/node_modules/d3-array": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3/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/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/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/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/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/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/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/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/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/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -14446,6 +15699,10 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.10" } @@ -14541,6 +15798,10 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -14557,6 +15818,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -14601,6 +15870,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" @@ -14701,7 +15974,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.3.1" } @@ -14719,6 +15992,10 @@ "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", @@ -14728,7 +16005,12 @@ "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", +<<<<<<< HEAD "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" +======= + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true +>>>>>>> @{-1} }, "node_modules/dir-glob": { "version": "3.0.1", @@ -14764,6 +16046,7 @@ "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" }, @@ -14827,6 +16110,10 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.4", "npm": ">=1.2" @@ -14878,6 +16165,11 @@ "url": "https://github.com/fb55/domhandler?sponsor=1" } }, + "node_modules/dompurify": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.0.tgz", + "integrity": "sha512-Be9tbQMZds4a3C6xTmz68NlMfeONA//4dOavl/1rNw50E+/QO0KVpbcU0PcaW0nsQxurXls9ZocqFxk8R2mWEA==" + }, "node_modules/domutils": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", @@ -14925,6 +16217,10 @@ "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", @@ -14970,6 +16266,10 @@ "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -14983,7 +16283,12 @@ "node_modules/elliptic/node_modules/bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", +<<<<<<< HEAD "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" +======= + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true +>>>>>>> @{-1} }, "node_modules/emittery": { "version": "0.8.1", @@ -15023,6 +16328,10 @@ "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "once": "^1.4.0" } @@ -15062,6 +16371,7 @@ "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, "dependencies": { "ansi-colors": "^4.1.1" }, @@ -15082,6 +16392,10 @@ "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "prr": "~1.0.1" }, @@ -15346,6 +16660,7 @@ "version": "7.32.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, "dependencies": { "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.4.3", @@ -15713,15 +17028,22 @@ } }, "node_modules/eslint-scope": { +<<<<<<< HEAD "version": "7.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", +======= + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", +>>>>>>> @{-1} "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { +<<<<<<< HEAD "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, @@ -15729,6 +17051,24 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", +======= + "node": ">=8.0.0" + } + }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "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==", +>>>>>>> @{-1} "dev": true, "dependencies": { "eslint-visitor-keys": "^2.0.0" @@ -15744,6 +17084,18 @@ } }, "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { +<<<<<<< HEAD +======= + "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": { +>>>>>>> @{-1} "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==", @@ -15764,6 +17116,7 @@ "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, "dependencies": { "@babel/highlight": "^7.10.4" } @@ -15804,6 +17157,7 @@ "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", @@ -15815,10 +17169,18 @@ "url": "https://github.com/sponsors/epoberezkin" } }, +<<<<<<< HEAD "node_modules/eslint/node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", +======= + "node_modules/eslint/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, +>>>>>>> @{-1} "dependencies": { "sprintf-js": "~1.0.2" } @@ -15835,10 +17197,18 @@ "node": ">=8.0.0" } }, +<<<<<<< HEAD "node_modules/eslint/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==", +======= + "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==", + "dev": true, +>>>>>>> @{-1} "dependencies": { "eslint-visitor-keys": "^1.1.0" }, @@ -15849,26 +17219,59 @@ "url": "https://github.com/sponsors/mysticatea" } }, +<<<<<<< HEAD "node_modules/eslint/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==", +======= + "node_modules/eslint/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" + }, +>>>>>>> @{-1} "engines": { "node": ">=4" } }, +<<<<<<< HEAD "node_modules/eslint/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==", +======= + "node_modules/eslint/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/eslint/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==", + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=10" } }, +<<<<<<< HEAD "node_modules/eslint/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==", +======= + "node_modules/eslint/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==", + "dev": true, +>>>>>>> @{-1} "dependencies": { "acorn": "^7.4.0", "acorn-jsx": "^5.3.1", @@ -15878,14 +17281,23 @@ "node": "^10.12.0 || >=12.0.0" } }, +<<<<<<< HEAD "node_modules/eslint/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==", +======= + "node_modules/eslint/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, +>>>>>>> @{-1} "engines": { "node": ">=4" } }, +<<<<<<< HEAD "node_modules/eslint/node_modules/estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", @@ -15898,6 +17310,19 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", +======= + "node_modules/eslint/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/eslint/node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-glob": "^4.0.1" }, @@ -15929,6 +17354,7 @@ "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -15939,10 +17365,29 @@ "node": ">=10" } }, +<<<<<<< HEAD "node_modules/espree": { "version": "9.4.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", +======= + "node_modules/eslint/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/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", +>>>>>>> @{-1} "dev": true, "dependencies": { "acorn": "^8.8.0", @@ -15956,6 +17401,7 @@ "url": "https://opencollective.com/eslint" } }, +<<<<<<< HEAD "node_modules/espree/node_modules/acorn": { "version": "8.8.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", @@ -15964,6 +17410,13 @@ "bin": { "acorn": "bin/acorn" }, +======= + "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, +>>>>>>> @{-1} "engines": { "node": ">=0.4.0" } @@ -15984,6 +17437,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, "dependencies": { "estraverse": "^5.1.0" }, @@ -15995,6 +17449,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -16114,6 +17569,10 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.8.x" } @@ -16122,6 +17581,10 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" @@ -16174,6 +17637,10 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -16191,6 +17658,10 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "ms": "2.0.0" } @@ -16199,6 +17670,10 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-descriptor": "^0.1.0" }, @@ -16210,6 +17685,10 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "kind-of": "^3.0.2" }, @@ -16221,6 +17700,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-buffer": "^1.1.5" }, @@ -16232,6 +17715,10 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "kind-of": "^3.0.2" }, @@ -16243,6 +17730,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-buffer": "^1.1.5" }, @@ -16254,6 +17745,10 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -16267,6 +17762,10 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.10.0" } @@ -16274,7 +17773,12 @@ "node_modules/expand-brackets/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", +<<<<<<< HEAD "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" +======= + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true +>>>>>>> @{-1} }, "node_modules/expand-range": { "version": "1.8.2", @@ -16483,6 +17987,10 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -16501,6 +18009,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-descriptor": "^1.0.0" }, @@ -16508,6 +18020,11 @@ "node": ">=0.10.0" } }, + "node_modules/fast-clone": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/fast-clone/-/fast-clone-1.5.13.tgz", + "integrity": "sha512-0ez7coyFBQFjZtId+RJqJ+EQs61w9xARfqjqK0AD9vIUkSxWD4HvPt80+5evebZ1tTnv1GYKrPTipx7kOW5ipA==" + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -16553,7 +18070,8 @@ "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==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -16598,12 +18116,18 @@ "node_modules/figgy-pudding": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", +<<<<<<< HEAD "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" +======= + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true +>>>>>>> @{-1} }, "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==", + "dev": true, "dependencies": { "flat-cache": "^3.0.4" }, @@ -16744,6 +18268,10 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "commondir": "^1.0.1", "make-dir": "^2.0.0", @@ -16757,6 +18285,10 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "locate-path": "^3.0.0" }, @@ -16768,6 +18300,10 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -16780,6 +18316,10 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "p-try": "^2.0.0" }, @@ -16794,6 +18334,10 @@ "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "p-limit": "^2.0.0" }, @@ -16805,6 +18349,10 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=4" } @@ -16813,6 +18361,10 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "find-up": "^3.0.0" }, @@ -16840,6 +18392,7 @@ "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" @@ -16851,7 +18404,8 @@ "node_modules/flatted": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true }, "node_modules/flatten": { "version": "1.0.3", @@ -16864,6 +18418,10 @@ "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "inherits": "^2.0.3", "readable-stream": "^2.3.6" @@ -17122,6 +18680,10 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "map-cache": "^0.2.2" }, @@ -17142,6 +18704,10 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" @@ -17203,6 +18769,10 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "graceful-fs": "^4.1.2", "iferr": "^0.1.5", @@ -17253,7 +18823,8 @@ "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==" + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true }, "node_modules/functions-have-names": { "version": "1.2.3", @@ -17414,6 +18985,10 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.10.0" } @@ -17576,6 +19151,23 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, +<<<<<<< HEAD +======= + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "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" + } + }, +>>>>>>> @{-1} "node_modules/graphql": { "version": "16.6.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", @@ -17783,6 +19375,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "get-value": "^2.0.6", "has-values": "^1.0.0", @@ -17796,6 +19392,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-number": "^3.0.0", "kind-of": "^4.0.0" @@ -17808,6 +19408,10 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "kind-of": "^3.0.2" }, @@ -17819,6 +19423,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-buffer": "^1.1.5" }, @@ -17830,6 +19438,10 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-buffer": "^1.1.5" }, @@ -17841,6 +19453,10 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "inherits": "^2.0.4", "readable-stream": "^3.6.0", @@ -17854,6 +19470,10 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -17867,6 +19487,10 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "funding": [ { "type": "github", @@ -17886,6 +19510,10 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" @@ -18449,6 +20077,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -18653,7 +20285,12 @@ "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", +<<<<<<< HEAD "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==" +======= + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true +>>>>>>> @{-1} }, "node_modules/https-proxy-agent": { "version": "5.0.1", @@ -18735,6 +20372,10 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "funding": [ { "type": "github", @@ -18753,12 +20394,23 @@ "node_modules/iferr": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", +<<<<<<< HEAD "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==" }, "node_modules/ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", +======= + "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", + "dev": true + }, + "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, +>>>>>>> @{-1} "engines": { "node": ">= 4" } @@ -18782,6 +20434,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -18797,6 +20450,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, "engines": { "node": ">=4" } @@ -18888,6 +20542,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, "engines": { "node": ">=0.8.19" } @@ -18909,7 +20564,12 @@ "node_modules/infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", +<<<<<<< HEAD "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" +======= + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true +>>>>>>> @{-1} }, "node_modules/inflight": { "version": "1.0.6", @@ -18993,6 +20653,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "kind-of": "^6.0.0" }, @@ -19130,6 +20794,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "kind-of": "^6.0.0" }, @@ -19164,6 +20832,10 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -19538,6 +21210,10 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.10.0" } @@ -21530,7 +23206,12 @@ "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", +<<<<<<< HEAD "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" +======= + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true +>>>>>>> @{-1} }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", @@ -21546,7 +23227,8 @@ "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==" + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true }, "node_modules/json-stringify-safe": { "version": "5.0.1", @@ -21659,6 +23341,11 @@ "safe-buffer": "^5.0.1" } }, + "node_modules/khroma": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.0.0.tgz", + "integrity": "sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g==" + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -21749,6 +23436,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -21843,6 +23531,10 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=4.3.0 <5.0.0 || >=5.10" } @@ -21980,7 +23672,8 @@ "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==" + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true }, "node_modules/lodash.uniq": { "version": "4.5.0", @@ -22089,6 +23782,10 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -22101,6 +23798,10 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "bin": { "semver": "bin/semver" } @@ -22109,7 +23810,7 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "devOptional": true + "dev": true }, "node_modules/makeerror": { "version": "1.0.12", @@ -22124,6 +23825,10 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.10.0" } @@ -22148,6 +23853,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "object-visit": "^1.0.0" }, @@ -22282,6 +23991,10 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -22314,6 +24027,7 @@ "url": "https://opencollective.com/unified" } }, +<<<<<<< HEAD "node_modules/mdast-util-definitions/node_modules/unist-util-visit": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", @@ -22341,6 +24055,8 @@ "url": "https://opencollective.com/unified" } }, +======= +>>>>>>> @{-1} "node_modules/mdast-util-find-and-replace": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.1.tgz", @@ -23210,15 +24926,32 @@ "url": "https://opencollective.com/unified" } }, +<<<<<<< HEAD "node_modules/mdast-util-mdxjs-esm/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-to-markdown": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.3.0.tgz", + "integrity": "sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA==", + "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" + }, +>>>>>>> @{-1} "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, +<<<<<<< HEAD "node_modules/mdast-util-mdxjs-esm/node_modules/unist-util-visit": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", @@ -23228,11 +24961,18 @@ "unist-util-is": "^5.0.0", "unist-util-visit-parents": "^5.1.1" }, +======= + "node_modules/mdast-util-to-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==", +>>>>>>> @{-1} "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, +<<<<<<< HEAD "node_modules/mdast-util-mdxjs-esm/node_modules/unist-util-visit-parents": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz", @@ -23240,6 +24980,16 @@ "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" +======= + "node_modules/mdast-util-to-markdown/node_modules/unist-util-visit": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", + "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" +>>>>>>> @{-1} }, "funding": { "type": "opencollective", @@ -23365,6 +25115,16 @@ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" }, + "node_modules/mdx-mermaid": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mdx-mermaid/-/mdx-mermaid-1.3.2.tgz", + "integrity": "sha512-8kw0tg3isKKBFzFwoe2DhIaEgKYtVeJXQtxZCCrdTPO0CTpXHnTHT0atDqsp7YkXi5iUCp/zAZPZu1cmr68T3w==", + "peerDependencies": { + "mermaid": ">=8.11.0", + "react": "^16.8.4 || ^17.0.0 || ^18.0.0", + "unist-util-visit": "^2.0.0" + } + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -23404,6 +25164,10 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -23584,6 +25348,34 @@ "node": ">= 8" } }, + "node_modules/mermaid": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-9.2.2.tgz", + "integrity": "sha512-6s7eKMqFJGS+0MYjmx8f6ZigqKBJVoSx5ql2gw6a4Aa+WJ49QiEJg7gPwywaBg3DZMs79UP7trESp4+jmaQccw==", + "dependencies": { + "@braintree/sanitize-url": "^6.0.0", + "d3": "^7.0.0", + "dagre": "^0.8.5", + "dagre-d3": "^0.6.4", + "dompurify": "2.4.0", + "fast-clone": "^1.5.13", + "graphlib": "^2.1.8", + "khroma": "^2.0.0", + "lodash": "^4.17.21", + "moment-mini": "^2.24.0", + "non-layered-tidy-tree-layout": "^2.0.2", + "stylis": "^4.1.2", + "uuid": "^9.0.0" + } + }, + "node_modules/mermaid/node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -24864,10 +26656,18 @@ "url": "https://opencollective.com/unified" } }, +<<<<<<< HEAD "node_modules/next-mdx-toc/node_modules/remark-parse": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", +======= + "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==", + "dev": true, +>>>>>>> @{-1} "dependencies": { "mdast-util-from-markdown": "^0.8.0" }, @@ -24876,12 +26676,28 @@ "url": "https://opencollective.com/unified" } }, +<<<<<<< HEAD "node_modules/next-mdx-toc/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" +======= + "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==", + "dev": true + }, + "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" +>>>>>>> @{-1} }, "funding": { "type": "opencollective", @@ -24935,10 +26751,29 @@ "url": "https://opencollective.com/unified" } }, +<<<<<<< HEAD "node_modules/next-mdx/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==", +======= + "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==", + "dev": 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": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "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==", +>>>>>>> @{-1} "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/generator": "^7.12.5", @@ -25030,10 +26865,18 @@ "url": "https://opencollective.com/unified" } }, +<<<<<<< HEAD "node_modules/next-mdx/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==", +======= + "node_modules/mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, +>>>>>>> @{-1} "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -25128,10 +26971,23 @@ "@babel/core": "^7.0.0-0" } }, +<<<<<<< HEAD "node_modules/next-mdx/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==", +======= + "node_modules/moment-mini": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment-mini/-/moment-mini-2.29.4.tgz", + "integrity": "sha512-uhXpYwHFeiTbY9KSgPPRoo1nt8OxNVdMVoTBYHfSEKeRkIkwGpO+gERmhuhBtzfaeOyTkykSrm2+noJBgqt3Hg==" + }, + "node_modules/moo-color": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/moo-color/-/moo-color-1.0.3.tgz", + "integrity": "sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ==", + "dev": true, +>>>>>>> @{-1} "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -25139,10 +26995,24 @@ "@babel/core": "^7.0.0-0" } }, +<<<<<<< HEAD "node_modules/next-mdx/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==", +======= + "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": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", + "dev": true, +>>>>>>> @{-1} "dependencies": { "ccount": "^1.0.0", "collapse-white-space": "^1.0.2", @@ -25166,10 +27036,21 @@ "url": "https://opencollective.com/unified" } }, +<<<<<<< HEAD "node_modules/next-mdx/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", +======= + "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==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, +>>>>>>> @{-1} "bin": { "semver": "bin/semver" } @@ -25226,10 +27107,18 @@ "url": "https://opencollective.com/unified" } }, +<<<<<<< HEAD "node_modules/next-mdx/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==", +======= + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, +>>>>>>> @{-1} "dependencies": { "unist-util-visit": "^2.0.0" }, @@ -25238,10 +27127,18 @@ "url": "https://opencollective.com/unified" } }, +<<<<<<< HEAD "node_modules/next-mdx/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==", +======= + "node_modules/nanomatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, +>>>>>>> @{-1} "dependencies": { "@types/unist": "^2.0.2" }, @@ -25250,10 +27147,18 @@ "url": "https://opencollective.com/unified" } }, +<<<<<<< HEAD "node_modules/next-mdx/node_modules/vfile": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", +======= + "node_modules/nanomatch/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==", + "dev": true, +>>>>>>> @{-1} "dependencies": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", @@ -25265,6 +27170,7 @@ "url": "https://opencollective.com/unified" } }, +<<<<<<< HEAD "node_modules/next-mdx/node_modules/vfile-location": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", @@ -25278,6 +27184,39 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", +======= + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "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==", + "dev": true + }, + "node_modules/nested-error-stacks": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz", + "integrity": "sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==", + "dev": true + }, + "node_modules/next": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/next/-/next-12.1.0.tgz", + "integrity": "sha512-s885kWvnIlxsUFHq9UGyIyLiuD0G3BUC/xrH0CEnH5lHEWkwQcHOORgbDF0hbrW9vr/7am4ETfX4A7M6DjrE7Q==", +>>>>>>> @{-1} "dependencies": { "@types/unist": "^2.0.0", "unist-util-stringify-position": "^2.0.0" @@ -25443,6 +27382,10 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "assert": "^1.1.1", "browserify-zlib": "^0.2.0", @@ -25472,7 +27415,12 @@ "node_modules/node-libs-browser/node_modules/punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", +<<<<<<< HEAD "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" +======= + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true +>>>>>>> @{-1} }, "node_modules/node-releases": { "version": "2.0.6", @@ -25487,6 +27435,11 @@ "node": ">=6.0.0" } }, + "node_modules/non-layered-tidy-tree-layout": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz", + "integrity": "sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==" + }, "node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -25753,6 +27706,10 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -25766,6 +27723,10 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-descriptor": "^0.1.0" }, @@ -25777,6 +27738,10 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "kind-of": "^3.0.2" }, @@ -25788,6 +27753,10 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "kind-of": "^3.0.2" }, @@ -25799,6 +27768,10 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -25812,6 +27785,10 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.10.0" } @@ -25820,6 +27797,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-buffer": "^1.1.5" }, @@ -25871,6 +27852,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "isobject": "^3.0.0" }, @@ -26119,7 +28104,12 @@ "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", +<<<<<<< HEAD "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==" +======= + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true +>>>>>>> @{-1} }, "node_modules/os-homedir": { "version": "1.0.2", @@ -26268,6 +28258,10 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=6" } @@ -26280,7 +28274,12 @@ "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", +<<<<<<< HEAD "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" +======= + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true +>>>>>>> @{-1} }, "node_modules/papaparse": { "version": "5.3.2", @@ -26291,6 +28290,10 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "cyclist": "^1.0.1", "inherits": "^2.0.3", @@ -26311,6 +28314,7 @@ "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==", + "dev": true, "dependencies": { "callsites": "^3.0.0" }, @@ -26322,6 +28326,10 @@ "version": "5.1.6", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "asn1.js": "^5.2.0", "browserify-aes": "^1.0.0", @@ -26406,6 +28414,10 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.10.0" } @@ -26413,7 +28425,12 @@ "node_modules/path-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", +<<<<<<< HEAD "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" +======= + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true +>>>>>>> @{-1} }, "node_modules/path-dirname": { "version": "1.0.2", @@ -26442,6 +28459,7 @@ "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" } @@ -26468,6 +28486,10 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -26602,6 +28624,10 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=6" } @@ -26678,6 +28704,10 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.10.0" } @@ -28587,6 +30617,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, "engines": { "node": ">= 0.8.0" } @@ -28677,6 +30708,10 @@ "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">= 0.6.0" } @@ -28697,7 +30732,12 @@ "node_modules/promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", +<<<<<<< HEAD "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" +======= + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true +>>>>>>> @{-1} }, "node_modules/promise.allsettled": { "version": "1.0.6", @@ -28808,7 +30848,12 @@ "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", +<<<<<<< HEAD "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==" +======= + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true +>>>>>>> @{-1} }, "node_modules/psl": { "version": "1.9.0", @@ -28819,6 +30864,10 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", @@ -28831,12 +30880,21 @@ "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", +<<<<<<< HEAD "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" +======= + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true +>>>>>>> @{-1} }, "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -28846,6 +30904,10 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "duplexify": "^3.6.0", "inherits": "^2.0.3", @@ -28856,6 +30918,10 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -28889,6 +30955,10 @@ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.4.x" } @@ -28897,6 +30967,10 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.4.x" } @@ -28976,6 +31050,10 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "safe-buffer": "^5.1.0" } @@ -28984,6 +31062,10 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" @@ -29474,6 +31556,7 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" }, +<<<<<<< HEAD "node_modules/react-markdown/node_modules/remark-rehype": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", @@ -29511,6 +31594,12 @@ "trough": "^2.0.0", "vfile": "^5.0.0" }, +======= + "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==", +>>>>>>> @{-1} "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -29530,6 +31619,7 @@ "url": "https://opencollective.com/unified" } }, +<<<<<<< HEAD "node_modules/react-markdown/node_modules/unist-util-visit-parents": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz", @@ -29543,6 +31633,8 @@ "url": "https://opencollective.com/unified" } }, +======= +>>>>>>> @{-1} "node_modules/react-merge-refs": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/react-merge-refs/-/react-merge-refs-1.1.0.tgz", @@ -30218,6 +32310,10 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" @@ -30230,6 +32326,10 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -30242,6 +32342,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-plain-object": "^2.0.4" }, @@ -30269,6 +32373,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, "engines": { "node": ">=8" }, @@ -30449,6 +32554,29 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/rehype-slug/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/rehype-slug/node_modules/unist-util-visit": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", + "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", + "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/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", @@ -30545,6 +32673,7 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", +<<<<<<< HEAD "dependencies": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", @@ -30640,6 +32769,8 @@ "version": "10.1.2", "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", +======= +>>>>>>> @{-1} "dependencies": { "@types/unist": "^2.0.0", "bail": "^2.0.0", @@ -30796,6 +32927,7 @@ "url": "https://github.com/sponsors/wooorm" } }, +<<<<<<< HEAD "node_modules/remark-gfm/node_modules/unified": { "version": "10.1.2", "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", @@ -30808,6 +32940,26 @@ "is-plain-obj": "^4.0.0", "trough": "^2.0.0", "vfile": "^5.0.0" +======= + "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": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", + "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-gfm": "^2.0.0", + "micromark-extension-gfm": "^2.0.0", + "unified": "^10.0.0" +>>>>>>> @{-1} }, "funding": { "type": "opencollective", @@ -30881,10 +33033,26 @@ "url": "https://github.com/sponsors/wooorm" } }, +<<<<<<< HEAD "node_modules/remark-html/node_modules/unified": { "version": "10.1.2", "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", +======= + "node_modules/remark-html/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-html/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==", +>>>>>>> @{-1} "dependencies": { "@types/unist": "^2.0.0", "bail": "^2.0.0", @@ -30899,6 +33067,20 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/remark-html/node_modules/unist-util-visit": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", + "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", + "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/remark-mdx": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-2.1.5.tgz", @@ -31072,6 +33254,15 @@ "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": "3.1.0", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", @@ -31081,6 +33272,20 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/remark-rehype/node_modules/unist-util-visit": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", + "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", + "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/remark-slug": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/remark-slug/-/remark-slug-6.1.0.tgz", @@ -31116,6 +33321,7 @@ "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==", +<<<<<<< HEAD "dependencies": { "mdast-squeeze-paragraphs": "^4.0.0" }, @@ -31193,6 +33399,8 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.3.0.tgz", "integrity": "sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA==", +======= +>>>>>>> @{-1} "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -31513,7 +33721,12 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", +<<<<<<< HEAD "deprecated": "https://github.com/lydell/resolve-url#deprecated" +======= + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true +>>>>>>> @{-1} }, "node_modules/resolve.exports": { "version": "1.1.0", @@ -31536,6 +33749,10 @@ "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.12" } @@ -31553,6 +33770,7 @@ "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" }, @@ -31567,11 +33785,20 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1" } }, + "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/rsvp": { "version": "4.8.5", "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", @@ -31607,10 +33834,19 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "aproba": "^1.1.1" } }, + "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/sade": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", @@ -31631,6 +33867,10 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "ret": "~0.1.10" } @@ -32145,6 +34385,10 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -32158,7 +34402,12 @@ "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", +<<<<<<< HEAD "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" +======= + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true +>>>>>>> @{-1} }, "node_modules/setprototypeof": { "version": "1.2.0", @@ -32170,6 +34419,10 @@ "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -32198,6 +34451,7 @@ "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" }, @@ -32209,6 +34463,7 @@ "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" } @@ -32281,6 +34536,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -32293,10 +34549,50 @@ "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, +<<<<<<< HEAD +======= + "node_modules/slice-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/slice-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/slice-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 + }, +>>>>>>> @{-1} "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "base": "^0.11.1", "debug": "^2.2.0", @@ -32315,6 +34611,10 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -32328,6 +34628,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-descriptor": "^1.0.0" }, @@ -32339,6 +34643,10 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "kind-of": "^3.2.0" }, @@ -32350,6 +34658,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-buffer": "^1.1.5" }, @@ -32361,6 +34673,10 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "ms": "2.0.0" } @@ -32369,6 +34685,10 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-descriptor": "^0.1.0" }, @@ -32380,6 +34700,10 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "kind-of": "^3.0.2" }, @@ -32391,6 +34715,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-buffer": "^1.1.5" }, @@ -32402,6 +34730,10 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "kind-of": "^3.0.2" }, @@ -32413,6 +34745,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-buffer": "^1.1.5" }, @@ -32424,6 +34760,10 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -32437,6 +34777,10 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.10.0" } @@ -32444,12 +34788,21 @@ "node_modules/snapdragon/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", +<<<<<<< HEAD "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" +======= + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true +>>>>>>> @{-1} }, "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": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.10.0" } @@ -32457,7 +34810,12 @@ "node_modules/source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", +<<<<<<< HEAD "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" +======= + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true +>>>>>>> @{-1} }, "node_modules/source-map": { "version": "0.7.4", @@ -32480,6 +34838,10 @@ "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", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0", @@ -32492,6 +34854,10 @@ "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -32509,7 +34875,12 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", +<<<<<<< HEAD "deprecated": "See https://github.com/lydell/source-map-url#deprecated" +======= + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true +>>>>>>> @{-1} }, "node_modules/space-separated-tokens": { "version": "2.0.1", @@ -32556,6 +34927,10 @@ "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "extend-shallow": "^3.0.0" }, @@ -32567,6 +34942,10 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -32579,6 +34958,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-plain-object": "^2.0.4" }, @@ -32681,6 +35064,10 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -32693,6 +35080,10 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-descriptor": "^0.1.0" }, @@ -32704,6 +35095,10 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "kind-of": "^3.0.2" }, @@ -32715,6 +35110,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-buffer": "^1.1.5" }, @@ -32726,6 +35125,10 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "kind-of": "^3.0.2" }, @@ -32737,6 +35140,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-buffer": "^1.1.5" }, @@ -32748,6 +35155,10 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -32761,6 +35172,10 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.10.0" } @@ -32812,6 +35227,10 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "inherits": "~2.0.1", "readable-stream": "^2.0.2" @@ -32821,6 +35240,10 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "end-of-stream": "^1.1.0", "stream-shift": "^1.0.0" @@ -32830,6 +35253,10 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "builtin-status-codes": "^3.0.0", "inherits": "^2.0.1", @@ -32841,7 +35268,12 @@ "node_modules/stream-shift": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", +<<<<<<< HEAD "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" +======= + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true +>>>>>>> @{-1} }, "node_modules/string_decoder": { "version": "1.1.1", @@ -33052,6 +35484,7 @@ "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==", + "dev": true, "engines": { "node": ">=8" }, @@ -33144,6 +35577,11 @@ } } }, + "node_modules/stylis": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz", + "integrity": "sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==" + }, "node_modules/supabase-tests": { "resolved": "tests", "link": true @@ -33255,9 +35693,16 @@ "dev": true }, "node_modules/table": { +<<<<<<< HEAD "version": "6.8.1", "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", +======= + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "dev": true, +>>>>>>> @{-1} "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -33318,6 +35763,10 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=6" } @@ -33396,6 +35845,10 @@ "version": "4.8.1", "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "commander": "^2.20.0", "source-map": "~0.6.1", @@ -33593,6 +36046,7 @@ "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", +<<<<<<< HEAD "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "node_modules/terser/node_modules/source-map": { @@ -33602,6 +36056,10 @@ "engines": { "node": ">=0.10.0" } +======= + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true +>>>>>>> @{-1} }, "node_modules/test-exclude": { "version": "6.0.0", @@ -33620,7 +36078,8 @@ "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==" + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true }, "node_modules/throat": { "version": "6.0.1", @@ -33641,6 +36100,10 @@ "version": "2.0.12", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "setimmediate": "^1.0.4" }, @@ -33672,7 +36135,12 @@ "node_modules/to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", +<<<<<<< HEAD "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==" +======= + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", + "dev": true +>>>>>>> @{-1} }, "node_modules/to-fast-properties": { "version": "2.0.0", @@ -33708,6 +36176,10 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -33741,6 +36213,10 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -33753,6 +36229,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-plain-object": "^2.0.4" }, @@ -33991,7 +36471,7 @@ "version": "10.9.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "devOptional": true, + "dev": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -34034,7 +36514,7 @@ "version": "8.8.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "devOptional": true, + "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -34046,7 +36526,7 @@ "version": "8.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.4.0" } @@ -34055,7 +36535,7 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "devOptional": true + "dev": true }, "node_modules/ts-pnp": { "version": "1.2.0", @@ -34132,7 +36612,12 @@ "node_modules/tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", +<<<<<<< HEAD "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==" +======= + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", + "dev": true +>>>>>>> @{-1} }, "node_modules/turbo": { "version": "1.4.7", @@ -34351,6 +36836,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, "dependencies": { "prelude-ls": "^1.2.1" }, @@ -34371,6 +36857,7 @@ "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" }, @@ -34647,6 +37134,10 @@ "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -34667,6 +37158,10 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "unique-slug": "^2.0.0" } @@ -34675,6 +37170,10 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "imurmurhash": "^0.1.4" } @@ -34771,6 +37270,18 @@ "url": "https://opencollective.com/unified" } }, +<<<<<<< HEAD +======= + "node_modules/unist-util-remove-position/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" + } + }, +>>>>>>> @{-1} "node_modules/unist-util-remove-position/node_modules/unist-util-visit": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", @@ -34785,6 +37296,7 @@ "url": "https://opencollective.com/unified" } }, +<<<<<<< HEAD "node_modules/unist-util-remove-position/node_modules/unist-util-visit-parents": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz", @@ -34807,6 +37319,8 @@ "url": "https://opencollective.com/unified" } }, +======= +>>>>>>> @{-1} "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", @@ -34855,10 +37369,21 @@ "url": "https://opencollective.com/unified" } }, +<<<<<<< HEAD "node_modules/unist-util-visit/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==", +======= + "node_modules/unist-util-visit/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" + }, +>>>>>>> @{-1} "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -34900,6 +37425,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -34912,6 +37441,10 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -34925,6 +37458,10 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "isarray": "1.0.0" }, @@ -34936,6 +37473,10 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.10.0" } @@ -34943,7 +37484,12 @@ "node_modules/unset-value/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", +<<<<<<< HEAD "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" +======= + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true +>>>>>>> @{-1} }, "node_modules/untildify": { "version": "2.1.0", @@ -35005,12 +37551,21 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", +<<<<<<< HEAD "deprecated": "Please see https://github.com/lydell/urix#deprecated" +======= + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true +>>>>>>> @{-1} }, "node_modules/url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "punycode": "1.3.2", "querystring": "0.2.0" @@ -35055,12 +37610,21 @@ "node_modules/url/node_modules/punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", +<<<<<<< HEAD "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==" +======= + "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", + "dev": true +>>>>>>> @{-1} }, "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=0.10.0" } @@ -35171,6 +37735,10 @@ "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "inherits": "2.0.3" } @@ -35193,7 +37761,12 @@ "node_modules/util/node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", +<<<<<<< HEAD "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" +======= + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true +>>>>>>> @{-1} }, "node_modules/utila": { "version": "0.4.0", @@ -35270,13 +37843,14 @@ "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==" + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true }, "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==", - "devOptional": true + "dev": true }, "node_modules/v8-to-istanbul": { "version": "8.1.1", @@ -35413,6 +37987,7 @@ "node_modules/vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", +<<<<<<< HEAD "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" }, "node_modules/vscode-oniguruma": { @@ -35424,6 +37999,10 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==" +======= + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true +>>>>>>> @{-1} }, "node_modules/w3c-hr-time": { "version": "1.0.2", @@ -35747,6 +38326,10 @@ "version": "4.46.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-module-context": "1.9.0", @@ -35942,6 +38525,10 @@ "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" @@ -35977,6 +38564,10 @@ "version": "6.4.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "bin": { "acorn": "bin/acorn" }, @@ -35988,6 +38579,10 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -35999,10 +38594,26 @@ "url": "https://github.com/sponsors/epoberezkin" } }, +<<<<<<< HEAD +======= + "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==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, +>>>>>>> @{-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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -36023,6 +38634,10 @@ "version": "12.0.4", "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "bluebird": "^3.5.5", "chownr": "^1.1.1", @@ -36044,12 +38659,21 @@ "node_modules/webpack/node_modules/chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", +<<<<<<< HEAD "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" +======= + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true +>>>>>>> @{-1} }, "node_modules/webpack/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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "graceful-fs": "^4.1.2", "memory-fs": "^0.5.0", @@ -36063,6 +38687,10 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -36075,6 +38703,10 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" @@ -36087,6 +38719,10 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=4.0" } @@ -36095,6 +38731,10 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -36109,6 +38749,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-plain-object": "^2.0.4" }, @@ -36120,6 +38764,10 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "kind-of": "^3.0.2" }, @@ -36131,6 +38779,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-buffer": "^1.1.5" }, @@ -36142,14 +38794,31 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "engines": { "node": ">=4" } }, +<<<<<<< HEAD +======= + "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==", + "dev": true + }, +>>>>>>> @{-1} "node_modules/webpack/node_modules/json5": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "minimist": "^1.2.0" }, @@ -36158,9 +38827,16 @@ } }, "node_modules/webpack/node_modules/loader-utils": { +<<<<<<< HEAD "version": "1.4.1", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.1.tgz", "integrity": "sha512-1Qo97Y2oKaU+Ro2xnDMR26g1BwMT29jNbem1EvcujW2jqt+j5COXyscjM7bLQkM9HaxI7pkWeW7gnI072yMI9Q==", +======= + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, +>>>>>>> @{-1} "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -36174,6 +38850,10 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "yallist": "^3.0.2" } @@ -36182,6 +38862,10 @@ "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -36205,6 +38889,10 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -36217,6 +38905,10 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "glob": "^7.1.3" }, @@ -36228,6 +38920,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "ajv": "^6.1.0", "ajv-errors": "^1.0.0", @@ -36241,6 +38937,10 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "randombytes": "^2.1.0" } @@ -36257,6 +38957,10 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "figgy-pudding": "^3.5.1" } @@ -36265,6 +38969,10 @@ "version": "1.4.5", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", @@ -36287,6 +38995,10 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -36299,6 +39011,10 @@ "version": "1.7.5", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "graceful-fs": "^4.1.2", "neo-async": "^2.5.0" @@ -36311,12 +39027,22 @@ "node_modules/webpack/node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", +<<<<<<< HEAD "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" +======= + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true +>>>>>>> @{-1} }, "node_modules/webpack/node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", +<<<<<<< HEAD "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" +======= + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true +>>>>>>> @{-1} }, "node_modules/websocket": { "version": "1.0.34", @@ -36475,6 +39201,10 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "dependencies": { "errno": "~0.1.7" } @@ -36638,7 +39368,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "devOptional": true, + "dev": true, "engines": { "node": ">=6" } @@ -37678,6 +40408,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, "requires": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -37712,6 +40443,7 @@ } }, "@babel/compat-data": { +<<<<<<< HEAD "version": "7.20.1", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==" @@ -37720,6 +40452,18 @@ "version": "7.20.2", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz", "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==", +======= + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz", + "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==", + "dev": true + }, + "@babel/core": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz", + "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==", + "dev": true, +>>>>>>> @{-1} "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", @@ -37778,9 +40522,16 @@ } }, "@babel/helper-compilation-targets": { +<<<<<<< HEAD "version": "7.20.0", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", +======= + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz", + "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==", + "dev": true, +>>>>>>> @{-1} "requires": { "@babel/compat-data": "^7.20.0", "@babel/helper-validator-option": "^7.18.6", @@ -37958,7 +40709,8 @@ "@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==" + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true }, "@babel/helper-wrap-function": { "version": "7.19.0", @@ -38973,6 +41725,11 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "@braintree/sanitize-url": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.2.tgz", + "integrity": "sha512-Tbsj02wXCbqGmzdnXNk0SOF19ChhRU70BsroIi4Pm6Ehp56in6vch94mfbdQ17DozxkL3BAVjbZ4Qc1a0HFRAg==" + }, "@cnakazawa/watch": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", @@ -39009,7 +41766,7 @@ "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==", - "devOptional": true, + "dev": true, "requires": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -39018,7 +41775,7 @@ "version": "0.3.9", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "devOptional": true, + "dev": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -39155,9 +41912,15 @@ } }, "@eslint/eslintrc": { +<<<<<<< HEAD "version": "1.3.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", +======= + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", +>>>>>>> @{-1} "dev": true, "requires": { "ajv": "^6.12.4", @@ -39182,6 +41945,24 @@ "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } +<<<<<<< HEAD +======= + }, + "globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "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 +>>>>>>> @{-1} } } }, @@ -39210,8 +41991,7 @@ "@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": {} + "integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==" }, "@hcaptcha/react-hcaptcha": { "version": "1.4.4", @@ -39222,23 +42002,34 @@ } }, "@headlessui/react": { +<<<<<<< HEAD "version": "1.7.4", "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.4.tgz", "integrity": "sha512-D8n5yGCF3WIkPsjEYeM8knn9jQ70bigGGb5aUvN6y4BGxcT3OcOQOKcM3zRGllRCZCFxCZyQvYJF6ZE7bQUOyQ==", "requires": { "client-only": "^0.0.1" } +======= + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.3.tgz", + "integrity": "sha512-LGp06SrGv7BMaIQlTs8s2G06moqkI0cb0b8stgq7KZ3xcHdH3qMP+cRyV7qe5x4XEW/IGY48BW4fLesD6NQLng==" +>>>>>>> @{-1} }, "@heroicons/react": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-1.0.6.tgz", - "integrity": "sha512-JJCXydOFWMDpCP4q13iEplA503MQO3xLoZiKum+955ZCtHINWnx26CUxVxxFQu/uLb4LW3ge15ZpzIkXKkJ8oQ==", - "requires": {} + "integrity": "sha512-JJCXydOFWMDpCP4q13iEplA503MQO3xLoZiKum+955ZCtHINWnx26CUxVxxFQu/uLb4LW3ge15ZpzIkXKkJ8oQ==" }, "@humanwhocodes/config-array": { +<<<<<<< HEAD "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", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", +>>>>>>> @{-1} "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -39249,7 +42040,8 @@ "@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==" + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", @@ -39970,6 +42762,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, "requires": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -40027,8 +42820,21 @@ "resolved": "https://registry.npmjs.org/@mdx-js/loader/-/loader-2.1.5.tgz", "integrity": "sha512-oXjfTa/iAcMmW8DdQ+hQFodPCLqw5VKT2yoZkLwrZfPVVpUgKrI+5/ZePYq328xxtAUStZmR3ed0PWJrwd5Pkg==", "requires": { +<<<<<<< HEAD "@mdx-js/mdx": "^2.0.0", "source-map": "^0.7.0" +======= + "@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==" + } +>>>>>>> @{-1} } }, "@mdx-js/mdx": { @@ -40130,6 +42936,7 @@ "vfile": "^5.0.0" } }, +<<<<<<< HEAD "unist-util-visit": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", @@ -40144,6 +42951,12 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz", "integrity": "sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw==", +======= + "vfile": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", + "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", +>>>>>>> @{-1} "requires": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" @@ -40250,10 +43063,16 @@ } }, "@next/mdx": { +<<<<<<< HEAD "version": "12.3.2", "resolved": "https://registry.npmjs.org/@next/mdx/-/mdx-12.3.2.tgz", "integrity": "sha512-oFOEfMLTXGzThstNd5ptxa2e024hw7QndBGPrmuCotBgWNxVn70B6tGxpHkfdP0prc3IH6+5dPBpaVIpt1EWvg==", "requires": {} +======= + "version": "12.3.1", + "resolved": "https://registry.npmjs.org/@next/mdx/-/mdx-12.3.1.tgz", + "integrity": "sha512-b7G3CsAwyD/8Eo6uDjCCqNwEi68LTyo/JYPC0N2Yu3yl/iveMDCi03ME+9JsnFPr3DcjmGSKc1ioiYM4dJUkTg==" +>>>>>>> @{-1} }, "@next/swc-android-arm64": { "version": "12.1.0", @@ -42184,8 +45003,7 @@ "@stitches/react": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@stitches/react/-/react-1.2.8.tgz", - "integrity": "sha512-9g9dWI4gsSVe8bNLlb+lMkBYsnIKCZTmvqvDG+Avnn69XfmHZKiaMrx7cgTaddq7aTPPmXiTsbFcUy0xgI4+wA==", - "requires": {} + "integrity": "sha512-9g9dWI4gsSVe8bNLlb+lMkBYsnIKCZTmvqvDG+Avnn69XfmHZKiaMrx7cgTaddq7aTPPmXiTsbFcUy0xgI4+wA==" }, "@storybook/addon-actions": { "version": "6.5.13", @@ -42295,8 +45113,7 @@ "version": "1.6.22", "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz", "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==", - "dev": true, - "requires": {} + "dev": true } } }, @@ -44066,25 +46883,25 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "devOptional": true + "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==", - "devOptional": true + "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==", - "devOptional": true + "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==", - "devOptional": true + "dev": true }, "@types/acorn": { "version": "4.0.6", @@ -44951,6 +47768,10 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "@webassemblyjs/helper-module-context": "1.9.0", "@webassemblyjs/helper-wasm-bytecode": "1.9.0", @@ -44960,22 +47781,41 @@ "@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", +<<<<<<< HEAD "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" +======= + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true +>>>>>>> @{-1} }, "@webassemblyjs/helper-api-error": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", +<<<<<<< HEAD "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" +======= + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true +>>>>>>> @{-1} }, "@webassemblyjs/helper-buffer": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", +<<<<<<< HEAD "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" +======= + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true +>>>>>>> @{-1} }, "@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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "@webassemblyjs/wast-printer": "1.9.0" } @@ -44983,12 +47823,21 @@ "@webassemblyjs/helper-fsm": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", +<<<<<<< HEAD "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" +======= + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true +>>>>>>> @{-1} }, "@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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "@webassemblyjs/ast": "1.9.0" } @@ -44996,12 +47845,21 @@ "@webassemblyjs/helper-wasm-bytecode": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", +<<<<<<< HEAD "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" +======= + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true +>>>>>>> @{-1} }, "@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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -45013,6 +47871,10 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "@xtuc/ieee754": "^1.2.0" } @@ -45021,6 +47883,10 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "@xtuc/long": "4.2.2" } @@ -45028,12 +47894,21 @@ "@webassemblyjs/utf8": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", +<<<<<<< HEAD "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" +======= + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true +>>>>>>> @{-1} }, "@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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -45049,6 +47924,10 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-wasm-bytecode": "1.9.0", @@ -45061,6 +47940,10 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -45072,6 +47955,10 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-api-error": "1.9.0", @@ -45085,6 +47972,10 @@ "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/floating-point-hex-parser": "1.9.0", @@ -45098,6 +47989,10 @@ "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/wast-parser": "1.9.0", @@ -45131,12 +48026,22 @@ "@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", +<<<<<<< HEAD "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" +======= + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true +>>>>>>> @{-1} }, "@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", +<<<<<<< HEAD "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" +======= + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true +>>>>>>> @{-1} }, "abab": { "version": "2.0.6", @@ -45170,8 +48075,7 @@ "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "requires": {} + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==" }, "acorn-node": { "version": "1.8.2", @@ -45258,6 +48162,7 @@ "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==", +<<<<<<< HEAD "requires": {} }, "ajv-keywords": { @@ -45265,6 +48170,9 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "requires": {} +======= + "dev": true +>>>>>>> @{-1} }, "algoliasearch": { "version": "4.14.2", @@ -45346,7 +48254,8 @@ "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==" + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true }, "ansi-escapes": { "version": "4.3.2", @@ -45465,17 +48374,32 @@ "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", +<<<<<<< HEAD "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==" +======= + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true +>>>>>>> @{-1} }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", +<<<<<<< HEAD "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" +======= + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true +>>>>>>> @{-1} }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", +<<<<<<< HEAD "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==" +======= + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true +>>>>>>> @{-1} }, "array-find-index": { "version": "1.0.2", @@ -45516,7 +48440,12 @@ "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", +<<<<<<< HEAD "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==" +======= + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true +>>>>>>> @{-1} }, "array.prototype.flat": { "version": "1.3.1", @@ -45576,6 +48505,10 @@ "version": "5.4.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "bn.js": "^4.0.0", "inherits": "^2.0.1", @@ -45586,7 +48519,12 @@ "bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", +<<<<<<< HEAD "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" +======= + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true +>>>>>>> @{-1} } } }, @@ -45594,6 +48532,10 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "object-assign": "^4.1.1", "util": "0.10.3" @@ -45602,12 +48544,21 @@ "inherits": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", +<<<<<<< HEAD "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==" +======= + "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", + "dev": true +>>>>>>> @{-1} }, "util": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "inherits": "2.0.1" } @@ -45617,7 +48568,12 @@ "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", +<<<<<<< HEAD "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==" +======= + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true +>>>>>>> @{-1} }, "ast-types": { "version": "0.14.2", @@ -45636,7 +48592,8 @@ "astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true }, "astring": { "version": "1.8.3", @@ -45669,7 +48626,12 @@ "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", +<<<<<<< HEAD "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" +======= + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true +>>>>>>> @{-1} }, "autolinker": { "version": "0.28.1", @@ -45898,6 +48860,15 @@ "uri-js": "^4.2.2" } }, +<<<<<<< HEAD +======= + "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 + }, +>>>>>>> @{-1} "find-cache-dir": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", @@ -46132,6 +49103,10 @@ "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -46146,6 +49121,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-descriptor": "^1.0.0" } @@ -46155,7 +49134,12 @@ "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", +<<<<<<< HEAD "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" +======= + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true +>>>>>>> @{-1} }, "before-after-hook": { "version": "2.2.3", @@ -46212,12 +49196,22 @@ "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", +<<<<<<< HEAD "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" +======= + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true +>>>>>>> @{-1} }, "bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", +<<<<<<< HEAD "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" +======= + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true +>>>>>>> @{-1} }, "body-parser": { "version": "1.20.1", @@ -46327,7 +49321,12 @@ "brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", +<<<<<<< HEAD "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" +======= + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true +>>>>>>> @{-1} }, "browser-process-hrtime": { "version": "1.0.0", @@ -46338,6 +49337,10 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", @@ -46351,6 +49354,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", @@ -46361,6 +49368,10 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", @@ -46372,6 +49383,10 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "bn.js": "^5.0.0", "randombytes": "^2.0.1" @@ -46381,6 +49396,10 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "bn.js": "^5.1.1", "browserify-rsa": "^4.0.1", @@ -46397,6 +49416,10 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -46406,7 +49429,12 @@ "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", +<<<<<<< HEAD "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" +======= + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true +>>>>>>> @{-1} } } }, @@ -46414,6 +49442,10 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "pako": "~1.0.5" } @@ -46456,6 +49488,10 @@ "version": "4.9.2", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "base64-js": "^1.0.2", "ieee754": "^1.1.4", @@ -46465,7 +49501,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", +<<<<<<< HEAD "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" +======= + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true +>>>>>>> @{-1} } } }, @@ -46487,7 +49528,12 @@ "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", +<<<<<<< HEAD "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" +======= + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true +>>>>>>> @{-1} }, "bufferutil": { "version": "4.0.7", @@ -46500,7 +49546,12 @@ "builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", +<<<<<<< HEAD "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==" +======= + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true +>>>>>>> @{-1} }, "bytes": { "version": "3.0.0", @@ -46588,6 +49639,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -46618,7 +49673,8 @@ "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true }, "camel-case": { "version": "4.1.2", @@ -46760,7 +49816,12 @@ "chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", +<<<<<<< HEAD "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" +======= + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true +>>>>>>> @{-1} }, "ci-info": { "version": "3.5.0", @@ -46772,6 +49833,10 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -46787,6 +49852,10 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -46798,6 +49867,10 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-descriptor": "^0.1.0" } @@ -46806,6 +49879,10 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "kind-of": "^3.0.2" }, @@ -46814,6 +49891,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-buffer": "^1.1.5" } @@ -46824,6 +49905,10 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "kind-of": "^3.0.2" }, @@ -46832,6 +49917,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-buffer": "^1.1.5" } @@ -46842,6 +49931,10 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -46851,7 +49944,12 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", +<<<<<<< HEAD "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" +======= + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true +>>>>>>> @{-1} } } }, @@ -46977,6 +50075,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" @@ -47051,12 +50153,22 @@ "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", +<<<<<<< HEAD "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" +======= + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true +>>>>>>> @{-1} }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", +<<<<<<< HEAD "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" +======= + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true +>>>>>>> @{-1} }, "component-type": { "version": "1.2.1", @@ -47186,7 +50298,12 @@ "console-browserify": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", +<<<<<<< HEAD "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" +======= + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true +>>>>>>> @{-1} }, "console-control-strings": { "version": "1.1.0", @@ -47196,7 +50313,12 @@ "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", +<<<<<<< HEAD "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==" +======= + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true +>>>>>>> @{-1} }, "content-disposition": { "version": "0.5.4", @@ -47241,6 +50363,10 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "aproba": "^1.1.1", "fs-write-stream-atomic": "^1.0.8", @@ -47254,6 +50380,10 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "glob": "^7.1.3" } @@ -47263,7 +50393,12 @@ "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", +<<<<<<< HEAD "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==" +======= + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true +>>>>>>> @{-1} }, "copy-to-clipboard": { "version": "3.3.2", @@ -47572,6 +50707,10 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "bn.js": "^4.1.0", "elliptic": "^6.5.3" @@ -47580,7 +50719,12 @@ "bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", +<<<<<<< HEAD "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" +======= + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true +>>>>>>> @{-1} } } }, @@ -47588,6 +50732,10 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -47600,6 +50748,10 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", @@ -47613,7 +50765,7 @@ "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 + "dev": true }, "cross-fetch": { "version": "3.1.5", @@ -47627,6 +50779,7 @@ "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", @@ -47642,6 +50795,10 @@ "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "browserify-cipher": "^1.0.0", "browserify-sign": "^4.0.0", @@ -47786,6 +50943,21 @@ "uri-js": "^4.2.2" } }, +<<<<<<< HEAD +======= + "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 + }, + "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 + }, +>>>>>>> @{-1} "json5": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", @@ -47958,7 +51130,12 @@ "cyclist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", +<<<<<<< HEAD "integrity": "sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A==" +======= + "integrity": "sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A==", + "dev": true +>>>>>>> @{-1} }, "d": { "version": "1.0.1", @@ -47969,6 +51146,112 @@ "type": "^1.0.1" } }, + "d3": { + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.6.1.tgz", + "integrity": "sha512-txMTdIHFbcpLx+8a0IFhZsbp+PfBBPt8yfbmukZTQFroKuFqIwqswF0qE5JXWefylaAVpSXFoKm3yP+jpNLFLw==", + "requires": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "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" + }, + "dependencies": { + "d3-array": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", + "requires": { + "internmap": "1 - 2" + } + }, + "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-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-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-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-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-array": { "version": "2.12.1", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", @@ -47977,16 +51260,147 @@ "internmap": "^1.0.0" } }, + "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": "2.0.0", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" }, + "d3-contour": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.0.tgz", + "integrity": "sha512-7aQo0QHUTu/Ko3cP9YK9yUTxtoDEiDGwnBHyLxG5M4vqlBkO/uixMRele3nfsfj6UXOcuReVpVXzAboGraYIJw==", + "requires": { + "d3-array": "^3.2.0" + }, + "dependencies": { + "d3-array": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", + "requires": { + "internmap": "1 - 2" + } + } + } + }, + "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==" + }, + "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" + } + } + } + }, + "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": "2.0.0", "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" }, + "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": "2.0.1", "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", @@ -48000,6 +51414,21 @@ "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" }, + "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": "3.3.0", "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", @@ -48012,6 +51441,20 @@ "d3-time-format": "2 - 3" } }, + "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": "2.1.0", "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", @@ -48036,6 +51479,321 @@ "d3-time": "1 - 2" } }, + "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" + } + } + } + }, "damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -48116,7 +51874,12 @@ "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", +<<<<<<< HEAD "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==" +======= + "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", + "dev": true +>>>>>>> @{-1} }, "dedent": { "version": "0.7.0", @@ -48188,6 +51951,10 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -48198,6 +51965,14 @@ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==" }, + "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" + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -48233,6 +52008,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" @@ -48306,7 +52085,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "devOptional": true + "dev": true }, "diff-sequences": { "version": "27.5.1", @@ -48318,6 +52097,10 @@ "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", @@ -48327,7 +52110,12 @@ "bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", +<<<<<<< HEAD "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" +======= + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true +>>>>>>> @{-1} } } }, @@ -48382,12 +52170,18 @@ "jsrsasign": "^10.5.26", "lodash": "^4.17.21", "markdown-toc": "^1.2.0", + "mdx-mermaid": "2.0.0-rc3", "minimist": "^1.2.6", "next": "12.1.0", "next-compose-plugins": "^2.2.1", +<<<<<<< HEAD "next-mdx-remote": "^4.1.0", "next-mdx-toc": "^0.1.3", "next-plugin-yaml": "^1.0.1", +======= + "next-mdx-remote": "^3.0.8", + "next-seo": "*", +>>>>>>> @{-1} "next-themes": "0.0.15", "next-transpile-modules": "9.0.0", "npm-run-all": "^4.1.5", @@ -48415,6 +52209,225 @@ "ui": "*" }, "dependencies": { +<<<<<<< HEAD +======= + "@apollo/client": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.0.tgz", + "integrity": "sha512-hp4OvrH1ZIQACRYcIrh/C0WFnY7IM7G6nlTpC8DSTEWxfZQ2kvpvDY0I/hYmCs0oAVrg26g3ANEdOzGWTcYbPg==", + "requires": { + "@graphql-typed-document-node/core": "^3.1.1", + "@wry/context": "^0.7.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", + "response-iterator": "^0.2.6", + "symbol-observable": "^4.0.0", + "ts-invariant": "^0.10.3", + "tslib": "^2.3.0", + "zen-observable-ts": "^1.2.5" + } + }, + "@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "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" + } + }, + "@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==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@mdx-js/react": { + "version": "1.6.22" + }, + "@radix-ui/primitive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.0.tgz", + "integrity": "sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-accordion": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.0.1.tgz", + "integrity": "sha512-Ka7BQoyRRPwsOb0YEv0fQU8V8aCXCxAzNVI5BRN7WmPG2E1zQKKxmb86NVDqIj6uSnaahJ1E5S6bX5Lk9hTK+g==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.0", + "@radix-ui/react-collapsible": "1.0.1", + "@radix-ui/react-collection": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.0", + "@radix-ui/react-context": "1.0.0", + "@radix-ui/react-id": "1.0.0", + "@radix-ui/react-primitive": "1.0.1", + "@radix-ui/react-use-controllable-state": "1.0.0" + }, + "dependencies": { + "@radix-ui/react-collapsible": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.0.1.tgz", + "integrity": "sha512-0maX4q91iYa4gjt3PsNf7dq/yqSR+HGAE8I5p54dQ6gnveS+ETWlMoijxrhmgV1k8svxpm34mQAtqIrJt4XZmA==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.0", + "@radix-ui/react-compose-refs": "1.0.0", + "@radix-ui/react-context": "1.0.0", + "@radix-ui/react-id": "1.0.0", + "@radix-ui/react-presence": "1.0.0", + "@radix-ui/react-primitive": "1.0.1", + "@radix-ui/react-use-controllable-state": "1.0.0", + "@radix-ui/react-use-layout-effect": "1.0.0" + }, + "dependencies": { + "@radix-ui/react-presence": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.0.tgz", + "integrity": "sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.0", + "@radix-ui/react-use-layout-effect": "1.0.0" + } + }, + "@radix-ui/react-use-layout-effect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.0.tgz", + "integrity": "sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==", + "requires": { + "@babel/runtime": "^7.13.10" + } + } + } + }, + "@radix-ui/react-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.0.1.tgz", + "integrity": "sha512-uuiFbs+YCKjn3X1DTSx9G7BHApu4GHbi3kgiwsnFUbOKCrwejAJv4eE4Vc8C0Oaxt9T0aV4ox0WCOdx+39Xo+g==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.0", + "@radix-ui/react-context": "1.0.0", + "@radix-ui/react-primitive": "1.0.1", + "@radix-ui/react-slot": "1.0.1" + }, + "dependencies": { + "@radix-ui/react-slot": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.1.tgz", + "integrity": "sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.0" + } + } + } + }, + "@radix-ui/react-compose-refs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.0.tgz", + "integrity": "sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-context": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.0.tgz", + "integrity": "sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.0.tgz", + "integrity": "sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-layout-effect": "1.0.0" + }, + "dependencies": { + "@radix-ui/react-use-layout-effect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.0.tgz", + "integrity": "sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==", + "requires": { + "@babel/runtime": "^7.13.10" + } + } + } + }, + "@radix-ui/react-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.1.tgz", + "integrity": "sha512-fHbmislWVkZaIdeF6GZxF0A/NH/3BjrGIYj+Ae6eTmTCr7EB0RQAAVEiqsXK6p3/JcRqVSBQoceZroj30Jj3XA==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "1.0.1" + }, + "dependencies": { + "@radix-ui/react-slot": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.1.tgz", + "integrity": "sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.0" + } + } + } + }, + "@radix-ui/react-use-controllable-state": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.0.tgz", + "integrity": "sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.0" + }, + "dependencies": { + "@radix-ui/react-use-callback-ref": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.0.tgz", + "integrity": "sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==", + "requires": { + "@babel/runtime": "^7.13.10" + } + } + } + } + } + }, + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true + }, +>>>>>>> @{-1} "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -48513,10 +52526,22 @@ "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==" }, +<<<<<<< HEAD "unified": { "version": "10.1.2", "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", +======= + "mdx-mermaid": { + "version": "2.0.0-rc3", + "resolved": "https://registry.npmjs.org/mdx-mermaid/-/mdx-mermaid-2.0.0-rc3.tgz", + "integrity": "sha512-zshJVTyepNE8Sjrj7Hv1UyDq3UwJVnwKsHGuDBYM4jixsofrC2j9wj2sXQ3PnlryFxLm9pU9ctqiGQgbxYXLjg==" + }, + "next-mdx-remote": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/next-mdx-remote/-/next-mdx-remote-3.0.8.tgz", + "integrity": "sha512-WFSxt0crxG5PN/0WvaunzxzqV3wh3dPBZyhkclxwyQfLSRKzsNSArzot/4gYTOOZ/GtyRfNjbI/HtDsW2S4fqQ==", +>>>>>>> @{-1} "requires": { "@types/unist": "^2.0.0", "bail": "^2.0.0", @@ -48527,10 +52552,25 @@ "vfile": "^5.0.0" } }, +<<<<<<< HEAD "unist-util-visit": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", +======= + "next-seo": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/next-seo/-/next-seo-5.14.1.tgz", + "integrity": "sha512-NiJeQbxYP3z+EMp52q8k3Q+OfX2+Yv2WehERDj98r2wjXxL+woKpRBdsSVYolTD0Hm8IWs42SzaISE93RoQdOw==" + }, + "openapi-types": { + "version": "12.0.2", + "dev": true + }, + "optionator": { + "version": "0.9.1", + "dev": true, +>>>>>>> @{-1} "requires": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0", @@ -48552,6 +52592,7 @@ "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" } @@ -48608,7 +52649,12 @@ "domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", +<<<<<<< HEAD "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" +======= + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true +>>>>>>> @{-1} }, "domelementtype": { "version": "2.3.0", @@ -48640,6 +52686,11 @@ "domelementtype": "^2.2.0" } }, + "dompurify": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.0.tgz", + "integrity": "sha512-Be9tbQMZds4a3C6xTmz68NlMfeONA//4dOavl/1rNw50E+/QO0KVpbcU0PcaW0nsQxurXls9ZocqFxk8R2mWEA==" + }, "domutils": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", @@ -48681,6 +52732,10 @@ "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", @@ -48720,6 +52775,10 @@ "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -48733,7 +52792,12 @@ "bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", +<<<<<<< HEAD "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" +======= + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true +>>>>>>> @{-1} } } }, @@ -48763,6 +52827,10 @@ "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "once": "^1.4.0" } @@ -48798,6 +52866,7 @@ "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" } @@ -48812,6 +52881,10 @@ "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "prr": "~1.0.1" } @@ -49020,6 +53093,7 @@ "version": "7.32.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, "requires": { "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.4.3", @@ -49067,6 +53141,7 @@ "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, "requires": { "@babel/highlight": "^7.10.4" } @@ -49101,6 +53176,7 @@ "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", @@ -49108,27 +53184,51 @@ "uri-js": "^4.2.2" } }, +<<<<<<< HEAD "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", +======= + "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, +>>>>>>> @{-1} "requires": { "sprintf-js": "~1.0.2" } }, +<<<<<<< HEAD "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==", +======= + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, +>>>>>>> @{-1} "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, +<<<<<<< HEAD "eslint-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", +======= + "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, +>>>>>>> @{-1} "requires": { "eslint-visitor-keys": "^1.1.0" }, @@ -49140,6 +53240,7 @@ } } }, +<<<<<<< HEAD "eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", @@ -49149,6 +53250,25 @@ "version": "7.3.1", "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", +======= + "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 + }, + "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==", + "dev": true + }, + "globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, +>>>>>>> @{-1} "requires": { "acorn": "^7.4.0", "acorn-jsx": "^5.3.1", @@ -49162,6 +53282,7 @@ } } }, +<<<<<<< HEAD "estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", @@ -49184,6 +53305,25 @@ "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", +======= + "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 + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, +>>>>>>> @{-1} "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -49193,9 +53333,22 @@ "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, "requires": { "lru-cache": "^6.0.0" } +<<<<<<< HEAD +======= + }, + "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" + } +>>>>>>> @{-1} } } }, @@ -49270,8 +53423,7 @@ "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": {} + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==" }, "eslint-import-resolver-node": { "version": "0.3.6", @@ -49440,10 +53592,10 @@ "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": {} + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==" }, "eslint-scope": { +<<<<<<< HEAD "version": "7.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", @@ -49457,20 +53609,50 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", +======= + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "dependencies": { + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + } + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", +>>>>>>> @{-1} "dev": true, "requires": { "eslint-visitor-keys": "^2.0.0" }, "dependencies": { "eslint-visitor-keys": { +<<<<<<< HEAD "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", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", +>>>>>>> @{-1} "dev": true } } }, "eslint-visitor-keys": { +<<<<<<< HEAD "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==" @@ -49479,6 +53661,17 @@ "version": "9.4.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", +======= + "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 + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", +>>>>>>> @{-1} "dev": true, "requires": { "acorn": "^8.8.0", @@ -49486,10 +53679,17 @@ "eslint-visitor-keys": "^3.3.0" }, "dependencies": { +<<<<<<< HEAD "acorn": { "version": "8.8.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", +======= + "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==", +>>>>>>> @{-1} "dev": true } } @@ -49503,6 +53703,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, "requires": { "estraverse": "^5.1.0" } @@ -49511,6 +53712,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, "requires": { "estraverse": "^5.2.0" } @@ -49594,12 +53796,21 @@ "events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", +<<<<<<< HEAD "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" +======= + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true +>>>>>>> @{-1} }, "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" @@ -49643,6 +53854,10 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -49657,6 +53872,10 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "ms": "2.0.0" } @@ -49665,6 +53884,10 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-descriptor": "^0.1.0" } @@ -49673,6 +53896,10 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "kind-of": "^3.0.2" }, @@ -49681,6 +53908,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-buffer": "^1.1.5" } @@ -49691,6 +53922,10 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "kind-of": "^3.0.2" }, @@ -49699,6 +53934,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-buffer": "^1.1.5" } @@ -49709,6 +53948,10 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -49718,12 +53961,22 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", +<<<<<<< HEAD "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" +======= + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true +>>>>>>> @{-1} }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", +<<<<<<< HEAD "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" +======= + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true +>>>>>>> @{-1} } } }, @@ -49904,6 +54157,10 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -49919,12 +54176,21 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-descriptor": "^1.0.0" } } } }, + "fast-clone": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/fast-clone/-/fast-clone-1.5.13.tgz", + "integrity": "sha512-0ez7coyFBQFjZtId+RJqJ+EQs61w9xARfqjqK0AD9vIUkSxWD4HvPt80+5evebZ1tTnv1GYKrPTipx7kOW5ipA==" + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -49966,7 +54232,8 @@ "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==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "fast-levenshtein": { "version": "2.0.6", @@ -50007,12 +54274,18 @@ "figgy-pudding": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", +<<<<<<< HEAD "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" +======= + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true +>>>>>>> @{-1} }, "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==", + "dev": true, "requires": { "flat-cache": "^3.0.4" } @@ -50134,6 +54407,10 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "commondir": "^1.0.1", "make-dir": "^2.0.0", @@ -50144,6 +54421,10 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "locate-path": "^3.0.0" } @@ -50152,6 +54433,10 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -50161,6 +54446,10 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "p-try": "^2.0.0" } @@ -50169,6 +54458,10 @@ "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "p-limit": "^2.0.0" } @@ -50176,12 +54469,21 @@ "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", +<<<<<<< HEAD "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" +======= + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true +>>>>>>> @{-1} }, "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "find-up": "^3.0.0" } @@ -50202,6 +54504,7 @@ "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" @@ -50210,7 +54513,8 @@ "flatted": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true }, "flatten": { "version": "1.0.3", @@ -50222,6 +54526,10 @@ "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "inherits": "^2.0.3", "readable-stream": "^2.3.6" @@ -50306,6 +54614,49 @@ "uri-js": "^4.2.2" } }, +<<<<<<< HEAD +======= + "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 + }, + "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 + }, +>>>>>>> @{-1} "cosmiconfig": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", @@ -50397,6 +54748,10 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "map-cache": "^0.2.2" } @@ -50411,6 +54766,10 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" @@ -50452,6 +54811,10 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "graceful-fs": "^4.1.2", "iferr": "^0.1.5", @@ -50489,7 +54852,8 @@ "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==" + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true }, "functions-have-names": { "version": "1.2.3", @@ -50606,7 +54970,12 @@ "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", +<<<<<<< HEAD "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==" +======= + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true +>>>>>>> @{-1} }, "github-slugger": { "version": "2.0.0", @@ -50699,8 +55068,7 @@ "goober": { "version": "2.1.11", "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.11.tgz", - "integrity": "sha512-5SS2lmxbhqH0u9ABEWq7WPU69a4i2pYcHeCxqaNq6Cw3mnrF0ghWNM4tEGid4dKy8XNIAUbuThuozDHHKJVh3A==", - "requires": {} + "integrity": "sha512-5SS2lmxbhqH0u9ABEWq7WPU69a4i2pYcHeCxqaNq6Cw3mnrF0ghWNM4tEGid4dKy8XNIAUbuThuozDHHKJVh3A==" }, "good-listener": { "version": "1.2.2", @@ -50724,6 +55092,23 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, +<<<<<<< HEAD +======= + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "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" + } + }, +>>>>>>> @{-1} "graphql": { "version": "16.6.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", @@ -50874,6 +55259,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "get-value": "^2.0.6", "has-values": "^1.0.0", @@ -50884,6 +55273,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" @@ -50893,6 +55286,10 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "kind-of": "^3.0.2" }, @@ -50901,6 +55298,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-buffer": "^1.1.5" } @@ -50911,6 +55312,10 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-buffer": "^1.1.5" } @@ -50921,6 +55326,10 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "inherits": "^2.0.4", "readable-stream": "^3.6.0", @@ -50931,6 +55340,10 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -50940,7 +55353,12 @@ "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", +<<<<<<< HEAD "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" +======= + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true +>>>>>>> @{-1} } } }, @@ -50948,6 +55366,10 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" @@ -51331,6 +55753,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -51492,7 +55918,12 @@ "https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", +<<<<<<< HEAD "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==" +======= + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true +>>>>>>> @{-1} }, "https-proxy-agent": { "version": "5.0.1", @@ -51553,17 +55984,33 @@ "ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", +<<<<<<< HEAD "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" +======= + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true +>>>>>>> @{-1} }, "iferr": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", +<<<<<<< HEAD "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==" }, "ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" +======= + "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", + "dev": 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 +>>>>>>> @{-1} }, "immediate": { "version": "3.0.6", @@ -51584,6 +56031,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -51592,7 +56040,8 @@ "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==" + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true } } }, @@ -51657,7 +56106,8 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true }, "indent-string": { "version": "4.0.0", @@ -51673,7 +56123,12 @@ "infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", +<<<<<<< HEAD "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" +======= + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true +>>>>>>> @{-1} }, "inflight": { "version": "1.0.6", @@ -51745,6 +56200,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "kind-of": "^6.0.0" } @@ -51843,6 +56302,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "kind-of": "^6.0.0" } @@ -51864,6 +56327,10 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -52114,7 +56581,12 @@ "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", +<<<<<<< HEAD "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" +======= + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true +>>>>>>> @{-1} }, "is-word-character": { "version": "1.0.4", @@ -52913,8 +57385,7 @@ "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": {} + "dev": true }, "jest-regex-util": { "version": "26.0.0", @@ -53734,8 +58205,7 @@ "ws": { "version": "7.5.9", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "requires": {} + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==" } } }, @@ -53752,7 +58222,12 @@ "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", +<<<<<<< HEAD "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" +======= + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true +>>>>>>> @{-1} }, "json-parse-even-better-errors": { "version": "2.3.1", @@ -53768,7 +58243,8 @@ "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==" + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true }, "json-stringify-safe": { "version": "5.0.1", @@ -53859,6 +58335,11 @@ "safe-buffer": "^5.0.1" } }, + "khroma": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.0.0.tgz", + "integrity": "sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g==" + }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -53928,6 +58409,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, "requires": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -54002,7 +58484,12 @@ "loader-runner": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", +<<<<<<< HEAD "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" +======= + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true +>>>>>>> @{-1} }, "loader-utils": { "version": "2.0.0", @@ -54128,7 +58615,8 @@ "lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==" + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true }, "lodash.uniq": { "version": "4.5.0", @@ -54213,6 +58701,10 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -54221,7 +58713,12 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", +<<<<<<< HEAD "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" +======= + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true +>>>>>>> @{-1} } } }, @@ -54229,7 +58726,7 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "devOptional": true + "dev": true }, "makeerror": { "version": "1.0.12", @@ -54243,7 +58740,12 @@ "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", +<<<<<<< HEAD "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==" +======= + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true +>>>>>>> @{-1} }, "map-obj": { "version": "1.0.1", @@ -54262,6 +58764,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "object-visit": "^1.0.0" } @@ -54363,6 +58869,10 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -54382,6 +58892,7 @@ "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.1.tgz", "integrity": "sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ==", "requires": { +<<<<<<< HEAD "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", "unist-util-visit": "^4.0.0" @@ -54406,6 +58917,9 @@ "unist-util-is": "^5.0.0" } } +======= + "unist-util-visit": "^2.0.0" +>>>>>>> @{-1} } }, "mdast-util-find-and-replace": { @@ -55053,6 +59567,7 @@ "requires": { "@types/hast": "^2.0.0", "@types/mdast": "^3.0.0", +<<<<<<< HEAD "mdast-util-definitions": "^5.0.0", "micromark-util-sanitize-uri": "^1.1.0", "trim-lines": "^3.0.0", @@ -55081,6 +59596,15 @@ "unist-util-is": "^5.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" +>>>>>>> @{-1} } }, "mdast-util-to-markdown": { @@ -55115,6 +59639,7 @@ "unist-util-visit": "^2.0.0" }, "dependencies": { +<<<<<<< HEAD "github-slugger": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", @@ -55124,6 +59649,27 @@ "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-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-visit": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", + "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + } + }, + "zwitch": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.2.tgz", + "integrity": "sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==" +>>>>>>> @{-1} } } }, @@ -55132,6 +59678,11 @@ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" }, + "mdx-mermaid": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mdx-mermaid/-/mdx-mermaid-1.3.2.tgz", + "integrity": "sha512-8kw0tg3isKKBFzFwoe2DhIaEgKYtVeJXQtxZCCrdTPO0CTpXHnTHT0atDqsp7YkXi5iUCp/zAZPZu1cmr68T3w==" + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -55165,6 +59716,10 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -55311,6 +59866,33 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, + "mermaid": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-9.2.2.tgz", + "integrity": "sha512-6s7eKMqFJGS+0MYjmx8f6ZigqKBJVoSx5ql2gw6a4Aa+WJ49QiEJg7gPwywaBg3DZMs79UP7trESp4+jmaQccw==", + "requires": { + "@braintree/sanitize-url": "^6.0.0", + "d3": "^7.0.0", + "dagre": "^0.8.5", + "dagre-d3": "^0.6.4", + "dompurify": "2.4.0", + "fast-clone": "^1.5.13", + "graphlib": "^2.1.8", + "khroma": "^2.0.0", + "lodash": "^4.17.21", + "moment-mini": "^2.24.0", + "non-layered-tidy-tree-layout": "^2.0.2", + "stylis": "^4.1.2", + "uuid": "^9.0.0" + }, + "dependencies": { + "uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" + } + } + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -55739,6 +60321,10 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "bn.js": "^4.0.0", "brorand": "^1.0.1" @@ -55747,7 +60333,12 @@ "bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", +<<<<<<< HEAD "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" +======= + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true +>>>>>>> @{-1} } } }, @@ -55799,12 +60390,22 @@ "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", +<<<<<<< HEAD "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" +======= + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true +>>>>>>> @{-1} }, "minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", +<<<<<<< HEAD "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" +======= + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true +>>>>>>> @{-1} }, "minimatch": { "version": "3.1.2", @@ -55869,6 +60470,10 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "concat-stream": "^1.5.0", "duplexify": "^3.4.2", @@ -55917,8 +60522,12 @@ "mobx-react-lite": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-3.4.0.tgz", - "integrity": "sha512-bRuZp3C0itgLKHu/VNxi66DN/XVkQG7xtoBVWxpvC5FhAqbOCP21+nPhULjnzEqd7xBMybp6KwytdUpZKEgpIQ==", - "requires": {} + "integrity": "sha512-bRuZp3C0itgLKHu/VNxi66DN/XVkQG7xtoBVWxpvC5FhAqbOCP21+nPhULjnzEqd7xBMybp6KwytdUpZKEgpIQ==" + }, + "moment-mini": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment-mini/-/moment-mini-2.29.4.tgz", + "integrity": "sha512-uhXpYwHFeiTbY9KSgPPRoo1nt8OxNVdMVoTBYHfSEKeRkIkwGpO+gERmhuhBtzfaeOyTkykSrm2+noJBgqt3Hg==" }, "moo-color": { "version": "1.0.3", @@ -55933,6 +60542,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "aproba": "^1.1.1", "copy-concurrently": "^1.0.0", @@ -55946,6 +60559,10 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "glob": "^7.1.3" } @@ -55987,6 +60604,10 @@ "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -56005,6 +60626,10 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -56014,6 +60639,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-plain-object": "^2.0.4" } @@ -56023,7 +60652,8 @@ "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true }, "natural-compare-lite": { "version": "1.4.0", @@ -56040,7 +60670,12 @@ "neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", +<<<<<<< HEAD "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" +======= + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true +>>>>>>> @{-1} }, "nested-error-stacks": { "version": "2.1.1", @@ -56469,14 +61104,12 @@ "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": {} + "integrity": "sha512-xmwzcz4uHaYJ8glbuhs6FSBQ7z3irmdPYdJJ5saWm72Uy3o+mPKGaPCXQetTCE6/xxVnpoDV4yFtFlEjUcljSg==" }, "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": {} + "integrity": "sha512-LTmtqYi03c4gMTJmWwVK9XkHL7h0/+XrtR970Ujvtu3s0kZNeJN24aJsi4rkZOI8i19+qq6f8j+8Duwy5jqcrQ==" }, "next-tick": { "version": "1.1.0", @@ -56569,6 +61202,10 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "assert": "^1.1.1", "browserify-zlib": "^0.2.0", @@ -56598,7 +61235,12 @@ "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", +<<<<<<< HEAD "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" +======= + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true +>>>>>>> @{-1} } } }, @@ -56612,6 +61254,11 @@ "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.8.0.tgz", "integrity": "sha512-EjYvSmHzekz6VNkNd12aUqAco+bOkRe3Of5jVhltqKhEsjw/y0PYPJfp83+s9Wzh1dspYAkUW/YNQ350NATbSQ==" }, + "non-layered-tidy-tree-layout": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz", + "integrity": "sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==" + }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -56820,6 +61467,10 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -56830,6 +61481,10 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-descriptor": "^0.1.0" } @@ -56838,6 +61493,10 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "kind-of": "^3.0.2" } @@ -56846,6 +61505,10 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "kind-of": "^3.0.2" } @@ -56854,6 +61517,10 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -56863,7 +61530,12 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", +<<<<<<< HEAD "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" +======= + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true +>>>>>>> @{-1} } } }, @@ -56871,6 +61543,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-buffer": "^1.1.5" } @@ -56906,6 +61582,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "isobject": "^3.0.0" } @@ -57090,7 +61770,12 @@ "os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", +<<<<<<< HEAD "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==" +======= + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true +>>>>>>> @{-1} }, "os-homedir": { "version": "1.0.2", @@ -57194,7 +61879,12 @@ "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", +<<<<<<< HEAD "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" +======= + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true +>>>>>>> @{-1} }, "packet-reader": { "version": "1.0.0", @@ -57204,7 +61894,12 @@ "pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", +<<<<<<< HEAD "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" +======= + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true +>>>>>>> @{-1} }, "papaparse": { "version": "5.3.2", @@ -57215,6 +61910,10 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "cyclist": "^1.0.1", "inherits": "^2.0.3", @@ -57235,6 +61934,7 @@ "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==", + "dev": true, "requires": { "callsites": "^3.0.0" } @@ -57243,6 +61943,10 @@ "version": "5.1.6", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "asn1.js": "^5.2.0", "browserify-aes": "^1.0.0", @@ -57313,12 +62017,22 @@ "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", +<<<<<<< HEAD "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==" +======= + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "dev": true +>>>>>>> @{-1} }, "path-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", +<<<<<<< HEAD "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" +======= + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true +>>>>>>> @{-1} }, "path-dirname": { "version": "1.0.2", @@ -57340,7 +62054,8 @@ "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true }, "path-parse": { "version": "1.0.7", @@ -57361,6 +62076,10 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -57410,8 +62129,7 @@ "pg-pool": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.2.tgz", - "integrity": "sha512-His3Fh17Z4eg7oANLob6ZvH8xIVen3phEZh2QuyrIl4dQSDVEabNducv6ysROKpDNPSD+12tONZVWfSgMvDD9w==", - "requires": {} + "integrity": "sha512-His3Fh17Z4eg7oANLob6ZvH8xIVen3phEZh2QuyrIl4dQSDVEabNducv6ysROKpDNPSD+12tONZVWfSgMvDD9w==" }, "pg-protocol": { "version": "1.5.0", @@ -57457,7 +62175,12 @@ "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", +<<<<<<< HEAD "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" +======= + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true +>>>>>>> @{-1} }, "pinkie": { "version": "2.0.4", @@ -57512,7 +62235,12 @@ "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", +<<<<<<< HEAD "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==" +======= + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "dev": true +>>>>>>> @{-1} }, "postcss": { "version": "8.4.18", @@ -58927,7 +63655,8 @@ "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true }, "prettier": { "version": "2.7.1", @@ -58979,8 +63708,7 @@ "prism-react-renderer": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.3.5.tgz", - "integrity": "sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==", - "requires": {} + "integrity": "sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==" }, "prismjs": { "version": "1.29.0", @@ -58990,7 +63718,12 @@ "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", +<<<<<<< HEAD "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" +======= + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true +>>>>>>> @{-1} }, "process-nextick-args": { "version": "2.0.1", @@ -59005,7 +63738,12 @@ "promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", +<<<<<<< HEAD "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" +======= + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true +>>>>>>> @{-1} }, "promise.allsettled": { "version": "1.0.6", @@ -59091,7 +63829,12 @@ "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", +<<<<<<< HEAD "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==" +======= + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true +>>>>>>> @{-1} }, "psl": { "version": "1.9.0", @@ -59102,6 +63845,10 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", @@ -59114,7 +63861,12 @@ "bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", +<<<<<<< HEAD "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" +======= + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true +>>>>>>> @{-1} } } }, @@ -59122,6 +63874,10 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -59131,6 +63887,10 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "duplexify": "^3.6.0", "inherits": "^2.0.3", @@ -59141,6 +63901,10 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -59165,12 +63929,22 @@ "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", +<<<<<<< HEAD "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==" +======= + "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", + "dev": true +>>>>>>> @{-1} }, "querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", +<<<<<<< HEAD "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==" +======= + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "dev": true +>>>>>>> @{-1} }, "querystringify": { "version": "2.2.0", @@ -59219,6 +63993,10 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "safe-buffer": "^5.1.0" } @@ -59227,6 +64005,10 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" @@ -59390,8 +64172,7 @@ "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": {} + "dev": true }, "react-dom": { "version": "17.0.2", @@ -59460,14 +64241,12 @@ "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": {} + "integrity": "sha512-qvWWTL/4xw4k/Dywd41RBpLQUSq97csuv15qrxN+izNeLYlD9wn5W8LspbfYe5CWbaSdkZ72BsaYBPQf2x4VbQ==" }, "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": {} + "integrity": "sha512-4Vc0W5EvXAXUN/wWyxvsAKDLLgtJ3oLmhYYssx+YzphJpejtOst6cbIHCIyF50Fdxuf5DDKqRYny24yJ2y7GFQ==" }, "react-grid-layout": { "version": "1.3.4", @@ -59519,8 +64298,7 @@ "react-intersection-observer": { "version": "9.4.0", "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.4.0.tgz", - "integrity": "sha512-v0403CmomOVlzhqFXlzOxg0ziLcVq8mfbP0AwAcEQWgZmR2OulOT79Ikznw4UlB3N+jlUYqLMe4SDHUOyp0t2A==", - "requires": {} + "integrity": "sha512-v0403CmomOVlzhqFXlzOxg0ziLcVq8mfbP0AwAcEQWgZmR2OulOT79Ikznw4UlB3N+jlUYqLMe4SDHUOyp0t2A==" }, "react-is": { "version": "16.13.1", @@ -59574,6 +64352,7 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" }, +<<<<<<< HEAD "remark-rehype": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", @@ -59603,6 +64382,12 @@ "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==" +>>>>>>> @{-1} }, "unist-util-visit": { "version": "4.1.1", @@ -59613,6 +64398,7 @@ "unist-util-is": "^5.0.0", "unist-util-visit-parents": "^5.1.1" } +<<<<<<< HEAD }, "unist-util-visit-parents": { "version": "5.1.1", @@ -59622,6 +64408,8 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } +======= +>>>>>>> @{-1} } } }, @@ -59634,8 +64422,7 @@ "react-onclickoutside": { "version": "6.12.2", "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.12.2.tgz", - "integrity": "sha512-NMXGa223OnsrGVp5dJHkuKxQ4czdLmXSp5jSV9OqiCky9LOpPATn3vLldc+q5fK3gKbEHvr7J1u0yhBh/xYkpA==", - "requires": {} + "integrity": "sha512-NMXGa223OnsrGVp5dJHkuKxQ4czdLmXSp5jSV9OqiCky9LOpPATn3vLldc+q5fK3gKbEHvr7J1u0yhBh/xYkpA==" }, "react-popper": { "version": "2.3.0", @@ -59803,6 +64590,16 @@ "requires": { "proxy-compare": "2.0.2", "use-context-selector": "1.3.9" +<<<<<<< HEAD +======= + }, + "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==" + } +>>>>>>> @{-1} } }, "react-transition-group": { @@ -59819,8 +64616,7 @@ "react-virtualized-auto-sizer": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.7.tgz", - "integrity": "sha512-Mxi6lwOmjwIjC1X4gABXMJcKHsOo0xWl3E3ugOgufB8GJU+MqrtY35aBuvCYv/razQ1Vbp7h1gWJjGjoNN5pmA==", - "requires": {} + "integrity": "sha512-Mxi6lwOmjwIjC1X4gABXMJcKHsOo0xWl3E3ugOgufB8GJU+MqrtY35aBuvCYv/razQ1Vbp7h1gWJjGjoNN5pmA==" }, "react-window": { "version": "1.8.8", @@ -59834,8 +64630,7 @@ "react-window-infinite-loader": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/react-window-infinite-loader/-/react-window-infinite-loader-1.0.8.tgz", - "integrity": "sha512-907ZLAiZZfBHuZyiY0V7uiSL4P/rI6UQyCF9wES1cDWTeyNLgGLaxu+BZkcUW3R5tSCQcbCcWBl0jVIpYzrKGQ==", - "requires": {} + "integrity": "sha512-907ZLAiZZfBHuZyiY0V7uiSL4P/rI6UQyCF9wES1cDWTeyNLgGLaxu+BZkcUW3R5tSCQcbCcWBl0jVIpYzrKGQ==" }, "read-cache": { "version": "1.0.0", @@ -60118,6 +64913,10 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" @@ -60127,6 +64926,10 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -60136,6 +64939,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-plain-object": "^2.0.4" } @@ -60155,7 +64962,8 @@ "regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true }, "regexpu-core": { "version": "5.2.1", @@ -60221,6 +65029,7 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { +<<<<<<< HEAD "bail": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", @@ -60254,6 +65063,12 @@ "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==" +>>>>>>> @{-1} }, "unist-util-visit": { "version": "4.1.1", @@ -60264,6 +65079,7 @@ "unist-util-is": "^5.0.0", "unist-util-visit-parents": "^5.1.1" } +<<<<<<< HEAD }, "unist-util-visit-parents": { "version": "5.1.1", @@ -60273,6 +65089,8 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } +======= +>>>>>>> @{-1} } } }, @@ -60572,10 +65390,22 @@ "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==" }, +<<<<<<< HEAD "unified": { "version": "10.1.2", "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", +======= + "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==", +>>>>>>> @{-1} "requires": { "@types/unist": "^2.0.0", "bail": "^2.0.0", @@ -60585,6 +65415,16 @@ "trough": "^2.0.0", "vfile": "^5.0.0" } + }, + "unist-util-visit": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", + "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + } } } }, @@ -60700,10 +65540,34 @@ "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": "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": { +<<<<<<< HEAD "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", + "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-visit": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", + "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + } +>>>>>>> @{-1} } } }, @@ -60963,7 +65827,12 @@ "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", +<<<<<<< HEAD "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==" +======= + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "dev": true +>>>>>>> @{-1} }, "resolve.exports": { "version": "1.1.0", @@ -60979,7 +65848,12 @@ "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", +<<<<<<< HEAD "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" +======= + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true +>>>>>>> @{-1} }, "reusify": { "version": "1.0.4", @@ -60990,6 +65864,7 @@ "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" } @@ -60998,11 +65873,20 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1" } }, + "robust-predicates": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", + "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==" + }, "rsvp": { "version": "4.8.5", "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", @@ -61021,10 +65905,19 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "aproba": "^1.1.1" } }, + "rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + }, "sade": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", @@ -61042,6 +65935,10 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "ret": "~0.1.10" } @@ -61338,6 +66235,21 @@ "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } +<<<<<<< HEAD +======= + }, + "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 + }, + "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 +>>>>>>> @{-1} } } }, @@ -61465,6 +66377,10 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -61475,7 +66391,12 @@ "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", +<<<<<<< HEAD "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" +======= + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true +>>>>>>> @{-1} }, "setprototypeof": { "version": "1.2.0", @@ -61487,6 +66408,10 @@ "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -61508,6 +66433,7 @@ "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" } @@ -61515,7 +66441,8 @@ "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true }, "shell-quote": { "version": "1.7.4", @@ -61573,16 +66500,50 @@ "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" +<<<<<<< HEAD +======= + }, + "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 + } +>>>>>>> @{-1} } }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "base": "^0.11.1", "debug": "^2.2.0", @@ -61598,6 +66559,10 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "ms": "2.0.0" } @@ -61606,6 +66571,10 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-descriptor": "^0.1.0" } @@ -61614,6 +66583,10 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "kind-of": "^3.0.2" }, @@ -61622,6 +66595,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-buffer": "^1.1.5" } @@ -61632,6 +66609,10 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "kind-of": "^3.0.2" }, @@ -61640,6 +66621,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-buffer": "^1.1.5" } @@ -61650,6 +66635,10 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -61659,17 +66648,32 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", +<<<<<<< HEAD "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" +======= + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true +>>>>>>> @{-1} }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", +<<<<<<< HEAD "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" +======= + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true +>>>>>>> @{-1} }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", +<<<<<<< HEAD "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" +======= + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true +>>>>>>> @{-1} } } }, @@ -61677,6 +66681,10 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -61687,6 +66695,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-descriptor": "^1.0.0" } @@ -61697,6 +66709,10 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "kind-of": "^3.2.0" }, @@ -61705,6 +66721,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-buffer": "^1.1.5" } @@ -61714,7 +66734,12 @@ "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", +<<<<<<< HEAD "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" +======= + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true +>>>>>>> @{-1} }, "source-map": { "version": "0.7.4", @@ -61730,6 +66755,10 @@ "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0", @@ -61742,6 +66771,10 @@ "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -61757,7 +66790,12 @@ "source-map-url": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", +<<<<<<< HEAD "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" +======= + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true +>>>>>>> @{-1} }, "space-separated-tokens": { "version": "2.0.1", @@ -61800,6 +66838,10 @@ "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "extend-shallow": "^3.0.0" }, @@ -61808,6 +66850,10 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -61817,6 +66863,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-plain-object": "^2.0.4" } @@ -61900,6 +66950,10 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -61909,6 +66963,10 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-descriptor": "^0.1.0" } @@ -61917,6 +66975,10 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "kind-of": "^3.0.2" }, @@ -61925,6 +66987,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-buffer": "^1.1.5" } @@ -61935,6 +67001,10 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "kind-of": "^3.0.2" }, @@ -61943,6 +67013,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-buffer": "^1.1.5" } @@ -61953,6 +67027,10 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -61962,7 +67040,12 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", +<<<<<<< HEAD "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" +======= + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true +>>>>>>> @{-1} } } }, @@ -61998,6 +67081,10 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "inherits": "~2.0.1", "readable-stream": "^2.0.2" @@ -62007,6 +67094,10 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "end-of-stream": "^1.1.0", "stream-shift": "^1.0.0" @@ -62016,6 +67107,10 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "builtin-status-codes": "^3.0.0", "inherits": "^2.0.1", @@ -62027,7 +67122,12 @@ "stream-shift": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", +<<<<<<< HEAD "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" +======= + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true +>>>>>>> @{-1} }, "string_decoder": { "version": "1.1.1", @@ -62185,7 +67285,8 @@ "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==" + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true }, "studio": { "version": "file:studio", @@ -62442,8 +67543,7 @@ "integrity": "sha512-/Yvsd2D7miYB4HLJ3hOOS0+vnowQpaT75FsHzr/y5M9P4q9bwa7RcbW2YdH6KZBn8ceLbKGnHxMZ1CHliGHUFw==" }, "swr": { - "version": "1.3.0", - "requires": {} + "version": "1.3.0" }, "typescript": { "version": "4.3.4", @@ -62473,6 +67573,21 @@ "uri-js": "^4.2.2" } }, +<<<<<<< HEAD +======= + "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 + }, + "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 + }, +>>>>>>> @{-1} "schema-utils": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", @@ -62497,8 +67612,12 @@ "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": {} + "integrity": "sha512-qUqsWoBquEdERe10EW8vLp3jT25s/ssG1/qX5gZ4wu15OZpmSMFI2v+fWlRhLfykA5rFtlJ1ME8A8pm/peV4WA==" + }, + "stylis": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz", + "integrity": "sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==" }, "supabase-tests": { "version": "file:tests", @@ -62673,9 +67792,16 @@ "dev": true }, "table": { +<<<<<<< HEAD "version": "6.8.1", "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", +======= + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "dev": true, +>>>>>>> @{-1} "requires": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -62722,7 +67848,12 @@ "tapable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", +<<<<<<< HEAD "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" +======= + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true +>>>>>>> @{-1} }, "tar": { "version": "6.1.12", @@ -62784,6 +67915,10 @@ "version": "4.8.1", "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "commander": "^2.20.0", "source-map": "~0.6.1", @@ -62793,12 +67928,17 @@ "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", +<<<<<<< HEAD "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" +======= + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true +>>>>>>> @{-1} } } }, @@ -62944,7 +68084,8 @@ "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==" + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true }, "throat": { "version": "6.0.1", @@ -62965,6 +68106,10 @@ "version": "2.0.12", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "setimmediate": "^1.0.4" } @@ -62993,7 +68138,12 @@ "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", +<<<<<<< HEAD "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==" +======= + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", + "dev": true +>>>>>>> @{-1} }, "to-fast-properties": { "version": "2.0.0", @@ -63022,6 +68172,10 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -63033,6 +68187,10 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -63042,6 +68200,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-plain-object": "^2.0.4" } @@ -63223,7 +68385,7 @@ "version": "10.9.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "devOptional": true, + "dev": true, "requires": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -63244,19 +68406,19 @@ "version": "8.8.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "devOptional": true + "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==", - "devOptional": true + "dev": true }, "arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "devOptional": true + "dev": true } } }, @@ -63318,7 +68480,12 @@ "tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", +<<<<<<< HEAD "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==" +======= + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", + "dev": true +>>>>>>> @{-1} }, "turbo": { "version": "1.4.7", @@ -63449,6 +68616,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, "requires": { "prelude-ls": "^1.2.1" } @@ -63462,7 +68630,8 @@ "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==" + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true }, "type-is": { "version": "1.6.18", @@ -63778,6 +68947,10 @@ "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -63795,6 +68968,10 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "unique-slug": "^2.0.0" } @@ -63803,6 +68980,10 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "imurmurhash": "^0.1.4" } @@ -63874,6 +69055,14 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { +<<<<<<< HEAD +======= + "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==" + }, +>>>>>>> @{-1} "unist-util-visit": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", @@ -63883,6 +69072,7 @@ "unist-util-is": "^5.0.0", "unist-util-visit-parents": "^5.1.1" } +<<<<<<< HEAD }, "unist-util-visit-parents": { "version": "5.1.1", @@ -63892,6 +69082,8 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } +======= +>>>>>>> @{-1} } } }, @@ -63913,10 +69105,21 @@ "unist-util-visit-parents": "^3.0.0" }, "dependencies": { +<<<<<<< HEAD "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-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" + } +>>>>>>> @{-1} } } }, @@ -63966,6 +69169,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -63975,6 +69182,10 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -63985,6 +69196,10 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "isarray": "1.0.0" } @@ -63994,12 +69209,22 @@ "has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", +<<<<<<< HEAD "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==" +======= + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true +>>>>>>> @{-1} }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", +<<<<<<< HEAD "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" +======= + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true +>>>>>>> @{-1} } } }, @@ -64039,12 +69264,21 @@ "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", +<<<<<<< HEAD "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==" +======= + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "dev": true +>>>>>>> @{-1} }, "url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "punycode": "1.3.2", "querystring": "0.2.0" @@ -64053,7 +69287,12 @@ "punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", +<<<<<<< HEAD "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==" +======= + "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", + "dev": true +>>>>>>> @{-1} } } }, @@ -64080,7 +69319,12 @@ "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", +<<<<<<< HEAD "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" +======= + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true +>>>>>>> @{-1} }, "use-callback-ref": { "version": "1.3.0", @@ -64099,14 +69343,12 @@ "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": {} + "integrity": "sha512-fOrzIw2wstbAJuv8PC9Vg4XgwyTLEOdq4y/Z3IhVl8DAE4svRcgyEUvrEXu+BMNgMoc3YND6qLT61kkgEKXh7Q==" }, "use-memo-one": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz", - "integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==", - "requires": {} + "integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==" }, "use-sidecar": { "version": "1.1.2", @@ -64137,6 +69379,10 @@ "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "inherits": "2.0.3" }, @@ -64144,7 +69390,12 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", +<<<<<<< HEAD "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" +======= + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true +>>>>>>> @{-1} } } }, @@ -64222,13 +69473,14 @@ "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==" + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true }, "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==", - "devOptional": true + "dev": true }, "v8-to-istanbul": { "version": "8.1.1", @@ -64313,6 +69565,7 @@ "vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", +<<<<<<< HEAD "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" }, "vscode-oniguruma": { @@ -64324,6 +69577,10 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==" +======= + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true +>>>>>>> @{-1} }, "w3c-hr-time": { "version": "1.0.2", @@ -64593,6 +69850,10 @@ "version": "4.46.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-module-context": "1.9.0", @@ -64622,12 +69883,21 @@ "acorn": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", +<<<<<<< HEAD "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" +======= + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true +>>>>>>> @{-1} }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -64635,10 +69905,23 @@ "uri-js": "^4.2.2" } }, +<<<<<<< HEAD +======= + "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 + }, +>>>>>>> @{-1} "braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -64656,6 +69939,10 @@ "version": "12.0.4", "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "bluebird": "^3.5.5", "chownr": "^1.1.1", @@ -64677,12 +69964,21 @@ "chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", +<<<<<<< HEAD "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" +======= + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true +>>>>>>> @{-1} }, "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==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "graceful-fs": "^4.1.2", "memory-fs": "^0.5.0", @@ -64693,6 +69989,10 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -64704,6 +70004,10 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" @@ -64712,12 +70016,21 @@ "estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", +<<<<<<< HEAD "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" +======= + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true +>>>>>>> @{-1} }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -64729,6 +70042,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-plain-object": "^2.0.4" } @@ -64737,6 +70054,10 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "kind-of": "^3.0.2" }, @@ -64745,6 +70066,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-buffer": "^1.1.5" } @@ -64754,20 +70079,42 @@ "is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", +<<<<<<< HEAD "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==" +======= + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "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 +>>>>>>> @{-1} }, "json5": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "minimist": "^1.2.0" } }, "loader-utils": { +<<<<<<< HEAD "version": "1.4.1", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.1.tgz", "integrity": "sha512-1Qo97Y2oKaU+Ro2xnDMR26g1BwMT29jNbem1EvcujW2jqt+j5COXyscjM7bLQkM9HaxI7pkWeW7gnI072yMI9Q==", +======= + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, +>>>>>>> @{-1} "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -64778,6 +70125,10 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "yallist": "^3.0.2" } @@ -64786,6 +70137,10 @@ "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -64806,6 +70161,10 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -64817,6 +70176,10 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "glob": "^7.1.3" } @@ -64825,6 +70188,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "ajv": "^6.1.0", "ajv-errors": "^1.0.0", @@ -64835,6 +70202,10 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "randombytes": "^2.1.0" } @@ -64848,6 +70219,10 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "figgy-pudding": "^3.5.1" } @@ -64856,6 +70231,10 @@ "version": "1.4.5", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", @@ -64872,6 +70251,10 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -64881,6 +70264,10 @@ "version": "1.7.5", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "chokidar": "^3.4.1", "graceful-fs": "^4.1.2", @@ -64891,12 +70278,22 @@ "y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", +<<<<<<< HEAD "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" +======= + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true +>>>>>>> @{-1} }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", +<<<<<<< HEAD "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" +======= + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true +>>>>>>> @{-1} } } }, @@ -64929,8 +70326,7 @@ "ws": { "version": "7.5.9", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "requires": {} + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==" } } }, @@ -64959,8 +70355,7 @@ "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": {} + "dev": true }, "webpack-hot-middleware": { "version": "2.25.2", @@ -65001,6 +70396,10 @@ "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" @@ -65162,6 +70561,10 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", +<<<<<<< HEAD +======= + "dev": true, +>>>>>>> @{-1} "requires": { "errno": "~0.1.7" } @@ -65204,11 +70607,18 @@ } }, "ws": { +<<<<<<< HEAD "version": "8.11.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "dev": true, "requires": {} +======= + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.10.0.tgz", + "integrity": "sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==", + "dev": true +>>>>>>> @{-1} }, "www": { "version": "file:apps/www", @@ -65287,12 +70697,48 @@ "chalk": "^3.0.0" } }, +<<<<<<< HEAD +======= + "@mdx-js/mdx": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-2.1.5.tgz", + "integrity": "sha512-zEG0lt+Bl/r5U6e0TOS7qDbsXICtemfAPquxWFsMbdzrvlWaqMGemLl+sjVpqlyaaiCiGVQBSGdCk0t1qXjkQg==", + "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" + } + }, + "@mdx-js/react": { + "version": "1.6.22" + }, +>>>>>>> @{-1} "@next/bundle-analyzer": { "version": "13.0.0", "requires": { "webpack-bundle-analyzer": "4.3.0" } }, +<<<<<<< HEAD +======= + "@next/mdx": { + "version": "10.2.3" + }, +>>>>>>> @{-1} "@tailwindcss/typography": { "version": "0.5.7", "dev": true, @@ -65438,10 +70884,37 @@ "mdast-util-to-markdown": "^0.6.0" } }, +<<<<<<< HEAD "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==", +======= + "trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" + }, + "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-visit": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", + "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + } + }, + "vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", +>>>>>>> @{-1} "requires": { "@types/unist": "^2.0.2" } @@ -65518,7 +70991,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "devOptional": true + "dev": true }, "yocto-queue": { "version": "0.1.0", diff --git a/package.json b/package.json index 9f813d617e7..451ee97b436 100644 --- a/package.json +++ b/package.json @@ -59,6 +59,8 @@ "dependencies": { "@code-hike/mdx": "^0.7.4", "@mdx-js/react": "^2.1.1", + "mdx-mermaid": "^1.3.2", + "mermaid": "^9.2.2", "mini-svg-data-uri": "^1.4.4" } } diff --git a/spec/supabase_js_v2.yml b/spec/supabase_js_v2.yml index c3ee9260119..070741bb0b8 100644 --- a/spec/supabase_js_v2.yml +++ b/spec/supabase_js_v2.yml @@ -333,18 +333,18 @@ pages: title: 'setSession()' $ref: '@supabase/gotrue-js.GoTrueClient.setSession' notes: | - - `setSession()` takes in a refresh token and uses it to get a new session. + - `setSession()` takes in a refresh token and access token and uses it to get a new session. - The refresh token can only be used once to obtain a new session. - [Refresh token rotation](/docs/reference/auth/config#refresh_token_rotation_enabled) is enabled by default on all projects to guard against replay attacks. - You can configure the [`REFRESH_TOKEN_REUSE_INTERVAL`](https://supabase.com/docs/reference/auth/config#refresh_token_reuse_interval) which provides a short window in which the same refresh token can be used multiple times in the event of concurrency or offline issues. - If you are using React Native, you will need to install a Buffer polyfill via a library such as [rn-nodeify](https://github.com/tradle/rn-nodeify) to properly use the library. examples: - - name: Refresh the session - description: Sets the session data from refresh_token and returns current session or an error if the refresh_token is invalid. + - name: Set the session + description: Sets the session data from a refresh_token and access_token and returns current session or an error if the tokens are invalid. isSpotlight: true js: | ```js - const { data, error } = supabase.auth.setSession(refresh_token) + const { data, error } = supabase.auth.setSession({refresh_token, access_token}) ``` auth.refreshSession(): title: 'refreshSession()' diff --git a/spec/supabase_js_v2_temp.yml b/spec/supabase_js_v2_temp.yml index 0a42193dfd8..40d534300f0 100644 --- a/spec/supabase_js_v2_temp.yml +++ b/spec/supabase_js_v2_temp.yml @@ -333,17 +333,18 @@ pages: title: 'setSession()' $ref: '@supabase/gotrue-js.GoTrueClient.setSession' notes: | - - `setSession()` takes in a refresh token and uses it to get a new session. + - `setSession()` takes in a refresh token and access token to get a new session. - The refresh token can only be used once to obtain a new session. - [Refresh token rotation](/docs/reference/auth/config#refresh_token_rotation_enabled) is enabled by default on all projects to guard against replay attacks. - You can configure the [`REFRESH_TOKEN_REUSE_INTERVAL`](https://supabase.com/docs/reference/auth/config#refresh_token_reuse_interval) which provides a short window in which the same refresh token can be used multiple times in the event of concurrency or offline issues. + - If you are using React Native, you will need to install a Buffer polyfill via a library such as [rn-nodeify](https://github.com/tradle/rn-nodeify) to properly use the library. examples: - - name: Refresh the session - description: Sets the session data from refresh_token and returns current session or an error if the refresh_token is invalid. + - name: Set the session + description: Sets the session data from a `refresh_token` and `access_token` and returns the current session or an error if the tokens are invalid. isSpotlight: true js: | ```js - const { data, error } = supabase.auth.setSession(refresh_token) + const { data, error } = supabase.auth.setSession({refresh_token, access_token}) ``` auth.refreshSession(): title: 'refreshSession()' diff --git a/studio/.env b/studio/.env index 478baf5dc20..d872e21ab40 100644 --- a/studio/.env +++ b/studio/.env @@ -5,7 +5,12 @@ DEFAULT_ORGANIZATION_NAME=Default Organization DEFAULT_PROJECT_NAME=Default Project SUPABASE_URL=http://localhost:8000 -SUPABASE_REST_URL=http://localhost:8000/rest/v1/ +SUPABASE_PUBLIC_URL=https://localhost:8443 SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJhbm9uIiwKICAgICJpc3MiOiAic3VwYWJhc2UtZGVtbyIsCiAgICAiaWF0IjogMTY0MTc2OTIwMCwKICAgICJleHAiOiAxNzk5NTM1NjAwCn0.dc_X5iR_VP_qT0zsiyj_I_OZ2T9FtRU2BBNWN8Bu4GE SUPABASE_SERVICE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJzZXJ2aWNlX3JvbGUiLAogICAgImlzcyI6ICJzdXBhYmFzZS1kZW1vIiwKICAgICJpYXQiOiAxNjQxNzY5MjAwLAogICAgImV4cCI6IDE3OTk1MzU2MDAKfQ.DaYlNEoUrrEn2Ig7tqibS-PHK5vgusbcbo7X36XVt4Q +# TODO: evaluate these variables at runtime instead +# https://nextjs.org/docs/basic-features/environment-variables#loading-environment-variables +NEXT_PUBLIC_SITE_URL=http://localhost:3000 +NEXT_PUBLIC_GOTRUE_URL=$SUPABASE_URL/auth/v1 +NEXT_PUBLIC_HCAPTCHA_SITE_KEY=10000000-ffff-ffff-ffff-000000000001 diff --git a/studio/components/grid/components/header/filter/FilterRow.tsx b/studio/components/grid/components/header/filter/FilterRow.tsx index d4d74d4dc49..6e16d1f8864 100644 --- a/studio/components/grid/components/header/filter/FilterRow.tsx +++ b/studio/components/grid/components/header/filter/FilterRow.tsx @@ -16,7 +16,7 @@ interface Props { // [Area of improvement] Input field loses focus after the debounce (because of useUrlState?) const FilterRow: FC = ({ filter, filterIdx }) => { const state = useTrackedState() - const [_, setParams] = useUrlState({ arrayKeys: ['filter'] }) + const [{ filter: filters }, setParams] = useUrlState({ arrayKeys: ['filter'] }) const column = state.table?.columns.find((x) => x.name === filter.column) const columnOptions = @@ -107,7 +107,7 @@ const FilterRow: FC = ({ filter, filterIdx }) => { } }) } - const debounceHandler = useCallback(debounce(updateFilterValue, 600), []) + const debounceHandler = useCallback(debounce(updateFilterValue, 600), [filters]) const placeholder = column?.format === 'timestamptz' diff --git a/studio/components/interfaces/Auth/AutoSchemaForm.tsx b/studio/components/interfaces/Auth/AutoSchemaForm.tsx index 36fc149755d..d553fcf588d 100644 --- a/studio/components/interfaces/Auth/AutoSchemaForm.tsx +++ b/studio/components/interfaces/Auth/AutoSchemaForm.tsx @@ -4,7 +4,7 @@ import { boolean, number, object, string } from 'yup' import { PermissionAction } from '@supabase/shared-types/out/constants' import { Button, Form, Input, IconEye, IconEyeOff, InputNumber, Toggle } from 'ui' -import { useStore, checkPermissions } from 'hooks' +import { useStore, checkPermissions, useFlag } from 'hooks' import { FormActions, FormHeader, @@ -21,6 +21,7 @@ const AutoSchemaForm = observer(() => { const formId = 'auth-config-general-form' const [hidden, setHidden] = useState(true) + const showMfaSso = useFlag('mfaSso') const canUpdateConfig = checkPermissions(PermissionAction.UPDATE, 'custom_config_gotrue') const INITIAL_VALUES = { @@ -187,18 +188,20 @@ const AutoSchemaForm = observer(() => { )} - Multi Factor Authentication (MFA)} - > - - - - + {showMfaSso && ( + Multi Factor Authentication (MFA)} + > + + + + + )} ) diff --git a/studio/components/interfaces/SignIn/PasswordConditionsHelper.tsx b/studio/components/interfaces/SignIn/PasswordConditionsHelper.tsx index 98df3524fd0..a2436717341 100644 --- a/studio/components/interfaces/SignIn/PasswordConditionsHelper.tsx +++ b/studio/components/interfaces/SignIn/PasswordConditionsHelper.tsx @@ -11,11 +11,11 @@ const PasswordConditionsHelper = ({ password }: PasswordConditionsHelperProps) = return (
- - - - - + + + + +
) } @@ -31,7 +31,7 @@ const PasswordCondition = ({ title, isMet }: PasswordConditionProps) => { return (
diff --git a/studio/components/interfaces/SignIn/SignInForm.tsx b/studio/components/interfaces/SignIn/SignInForm.tsx index bf4874b23f1..6498075f943 100644 --- a/studio/components/interfaces/SignIn/SignInForm.tsx +++ b/studio/components/interfaces/SignIn/SignInForm.tsx @@ -61,7 +61,7 @@ const SignInForm = () => { return ui.setNotification({ id: toastId, category: 'error', - message: 'Please click the link sent to your email to confirm your account', + message: 'Account has not been verified, please check the link sent to your email', }) } diff --git a/studio/components/interfaces/SignIn/SignUpForm.tsx b/studio/components/interfaces/SignIn/SignUpForm.tsx index 88c5883a3bc..e7777da7377 100644 --- a/studio/components/interfaces/SignIn/SignUpForm.tsx +++ b/studio/components/interfaces/SignIn/SignUpForm.tsx @@ -16,6 +16,7 @@ const signUpSchema = passwordSchema.shape({ const SignUpForm = () => { const { ui } = useStore() const captchaRef = useRef(null) + const [showConditions, setShowConditions] = useState(false) const [isSubmitted, setIsSubmitted] = useState(false) const [passwordHidden, setPasswordHidden] = useState(true) const [captchaToken, setCaptchaToken] = useState(null) @@ -107,16 +108,24 @@ const SignUpForm = () => { placeholder="••••••••" disabled={isSubmitting} autoComplete="new-password" + onFocus={() => setShowConditions(true)} actions={ + + +
+
+ )}
diff --git a/studio/pages/api/constants.ts b/studio/pages/api/constants.ts new file mode 100644 index 00000000000..3531bad779e --- /dev/null +++ b/studio/pages/api/constants.ts @@ -0,0 +1,4 @@ +const PUBLIC_URL = new URL(process.env.SUPABASE_PUBLIC_URL || 'https://localhost:8443') + +export const PROJECT_REST_URL = `${PUBLIC_URL.origin}/rest/v1/` +export const PROJECT_ENDPOINT = PUBLIC_URL.host diff --git a/studio/pages/api/projects/[ref]/index.ts b/studio/pages/api/projects/[ref]/index.ts index 44f61bec1e7..7ae98b66a38 100644 --- a/studio/pages/api/projects/[ref]/index.ts +++ b/studio/pages/api/projects/[ref]/index.ts @@ -1,6 +1,7 @@ import { NextApiRequest, NextApiResponse } from 'next' import apiWrapper from 'lib/api/apiWrapper' +import { PROJECT_REST_URL } from 'pages/api/constants' export default (req: NextApiRequest, res: NextApiResponse) => apiWrapper(req, res, handler) @@ -35,7 +36,7 @@ const handleGet = async (req: NextApiRequest, res: NextApiResponse) => { db_ssl: false, }), kpsVersion: 'kps-v1.0.0', - restUrl: process.env.SUPABASE_REST_URL || 'http://localhost:8000/rest/v1/', + restUrl: PROJECT_REST_URL, } return res.status(200).json(response) diff --git a/studio/pages/api/props/project/[ref]/api.ts b/studio/pages/api/props/project/[ref]/api.ts index 5851e330242..9e6cb871c40 100644 --- a/studio/pages/api/props/project/[ref]/api.ts +++ b/studio/pages/api/props/project/[ref]/api.ts @@ -1,6 +1,7 @@ import { NextApiRequest, NextApiResponse } from 'next' import apiWrapper from 'lib/api/apiWrapper' +import { PROJECT_ENDPOINT, PROJECT_REST_URL } from 'pages/api/constants' export default (req: NextApiRequest, res: NextApiResponse) => apiWrapper(req, res, handler) @@ -39,11 +40,11 @@ const handleGetAll = async (req: NextApiRequest, res: NextApiResponse) => { app: { id: 1, name: 'Auto API' }, app_config: { db_schema: 'public', - endpoint: process.env.SUPABASE_URL, + endpoint: PROJECT_ENDPOINT, realtime_enabled: true, }, - endpoint: process.env.SUPABASE_URL || 'http://localhost:8000', - restUrl: process.env.SUPABASE_REST_URL || 'http://localhost:8000/rest/v1/', + endpoint: PROJECT_ENDPOINT, + restUrl: PROJECT_REST_URL, defaultApiKey: process.env.SUPABASE_ANON_KEY, serviceApiKey: process.env.SUPABASE_SERVICE_KEY, service_api_keys: [ @@ -68,11 +69,11 @@ const handleGetAll = async (req: NextApiRequest, res: NextApiResponse) => { app: { id: 1, name: 'Auto API' }, app_config: { db_schema: 'public', - endpoint: process.env.SUPABASE_URL, + endpoint: PROJECT_ENDPOINT, realtime_enabled: true, }, - endpoint: process.env.SUPABASE_URL, - restUrl: process.env.SUPABASE_REST_URL, + endpoint: PROJECT_ENDPOINT, + restUrl: PROJECT_REST_URL, defaultApiKey: process.env.SUPABASE_ANON_KEY, serviceApiKey: process.env.SUPABASE_SERVICE_KEY, service_api_keys: [ diff --git a/studio/pages/api/props/project/[ref]/settings.ts b/studio/pages/api/props/project/[ref]/settings.ts index 5677414b23a..433ee7f95c8 100644 --- a/studio/pages/api/props/project/[ref]/settings.ts +++ b/studio/pages/api/props/project/[ref]/settings.ts @@ -1,6 +1,7 @@ import { NextApiRequest, NextApiResponse } from 'next' import apiWrapper from 'lib/api/apiWrapper' +import { PROJECT_ENDPOINT } from 'pages/api/constants' export default (req: NextApiRequest, res: NextApiResponse) => apiWrapper(req, res, handler) @@ -56,7 +57,7 @@ const handleGetAll = async (req: NextApiRequest, res: NextApiResponse) => { app: { id: 1, name: 'Auto API' }, app_config: { db_schema: 'public', - endpoint: process.env.SUPABASE_URL, + endpoint: PROJECT_ENDPOINT, realtime_enabled: true, }, }, diff --git a/studio/pages/join/index.tsx b/studio/pages/join/index.tsx index 3381295990b..be1c151a700 100644 --- a/studio/pages/join/index.tsx +++ b/studio/pages/join/index.tsx @@ -32,7 +32,7 @@ const JoinOrganizationPage = () => { const { token_does_not_exist, email_match, expired_token, organization_name, invite_id } = tokenValidationInfo || {} - const loginRedirectLink = `/?next=${encodeURIComponent(`/join?token=${token}&slug=${slug}`)}` + const loginRedirectLink = `/?returnTo=${encodeURIComponent(`/join?token=${token}&slug=${slug}`)}` useEffect(() => { const fetchTokenInfo = async () => { diff --git a/studio/pages/sign-in.tsx b/studio/pages/sign-in.tsx index 8f102539391..a1ef0ac8163 100644 --- a/studio/pages/sign-in.tsx +++ b/studio/pages/sign-in.tsx @@ -1,42 +1,11 @@ import SignInForm from 'components/interfaces/SignIn/SignInForm' import SignInWithGitHub from 'components/interfaces/SignIn/SignInWithGitHub' import { SignInLayout } from 'components/layouts' -import Connecting from 'components/ui/Loading' -import { auth } from 'lib/gotrue' import Link from 'next/link' -import { NextRouter, useRouter } from 'next/router' -import { useEffect } from 'react' import { NextPageWithLayout } from 'types' -// detect for redirect from 3rd party service like vercel, aws... -const isRedirectFromThirdPartyService = (router: NextRouter) => router.query.next !== undefined - const SignInPage: NextPageWithLayout = () => { - const router = useRouter() - const autoSignIn = isRedirectFromThirdPartyService(router) - - useEffect(() => { - if (autoSignIn) { - const queryParams = (router.query as any) || {} - const params = new URLSearchParams(queryParams) - - // trigger github signIn - auth.signInWithOAuth({ - provider: 'github', - options: { - redirectTo: `${ - process.env.NEXT_PUBLIC_VERCEL_ENV === 'preview' - ? process.env.NEXT_PUBLIC_VERCEL_URL - : process.env.NEXT_PUBLIC_SITE_URL - }?${params.toString()}`, - }, - }) - } - }, []) - - return autoSignIn ? ( - - ) : ( + return ( <>