From acf2564c7347ad1f6393f2b21a7c070598c8dcb6 Mon Sep 17 00:00:00 2001 From: Richard van Heuven van Staereling Date: Wed, 7 Jun 2023 23:36:51 +0200 Subject: [PATCH 01/78] chore: adds test to check totalDocs count when querying with pagination=false --- test/collections-rest/int.spec.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/test/collections-rest/int.spec.ts b/test/collections-rest/int.spec.ts index 0715c105fc..47a3aa2dd8 100644 --- a/test/collections-rest/int.spec.ts +++ b/test/collections-rest/int.spec.ts @@ -62,6 +62,22 @@ describe('collections-rest', () => { expect(result.docs[0].id).toEqual(post1.id); }); + it('should find with pagination false', async () => { + const post1 = await createPost(); + const post2 = await createPost(); + + const { docs, totalDocs } = await payload.find({ + collection: slug, + pagination: false, + }); + + const expectedDocs = [post1, post2]; + expect(docs).toHaveLength(expectedDocs.length); + expect(docs).toEqual(expect.arrayContaining(expectedDocs)); + + expect(totalDocs).toEqual(2); + }); + it('should update existing', async () => { const { id, From 2e7393853447d2da41ddef79f73e9026719a674b Mon Sep 17 00:00:00 2001 From: Richard van Heuven van Staereling Date: Wed, 7 Jun 2023 23:36:59 +0200 Subject: [PATCH 02/78] fix: incorrectly return totalDocs=1 instead of the correct count when pagination=false --- src/collections/operations/find.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/collections/operations/find.ts b/src/collections/operations/find.ts index 6a119fbcca..a504836c0b 100644 --- a/src/collections/operations/find.ts +++ b/src/collections/operations/find.ts @@ -134,7 +134,6 @@ async function find>( leanWithId: true, useEstimatedCount, pagination: usePagination, - useCustomCountFn: pagination ? undefined : () => Promise.resolve(1), options: { // limit must also be set here, it's ignored when pagination is false limit: limitToUse, From 2aea4150a0d707c4e4926ac4a7fdbbaf0e2dfd0b Mon Sep 17 00:00:00 2001 From: Alessio Gravili Date: Sat, 10 Jun 2023 21:53:30 +0200 Subject: [PATCH 03/78] improve error message --- src/bin/build.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/bin/build.ts b/src/bin/build.ts index 7271485757..87508fa089 100755 --- a/src/bin/build.ts +++ b/src/bin/build.ts @@ -2,15 +2,12 @@ /* eslint-disable global-require */ import webpack from 'webpack'; import getWebpackProdConfig from '../webpack/getProdConfig'; -import findConfig from '../config/find'; import loadConfig from '../config/load'; -const rawConfigPath = findConfig(); - export const build = async (): Promise => { - try { - const config = await loadConfig(); + const config = await loadConfig(); // Will throw its own error if it fails + try { const webpackProdConfig = getWebpackProdConfig(config); webpack(webpackProdConfig, (err, stats) => { // Stats Object @@ -29,7 +26,7 @@ export const build = async (): Promise => { }); } catch (err) { console.error(err); - throw new Error(`Error: can't find the configuration file located at ${rawConfigPath}.`); + throw new Error('Error: there was an error building the webpack config.'); } }; From f7cacbe9326f5f6680513c34bf595cac50b9a753 Mon Sep 17 00:00:00 2001 From: Jessica Boezwinkle Date: Mon, 12 Jun 2023 17:27:18 +0100 Subject: [PATCH 04/78] docs: fix blocks table --- docs/fields/blocks.mdx | 58 +++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/docs/fields/blocks.mdx b/docs/fields/blocks.mdx index 80333b41a9..64cb66e89d 100644 --- a/docs/fields/blocks.mdx +++ b/docs/fields/blocks.mdx @@ -24,22 +24,22 @@ _Admin panel screenshot of a Blocks field type with Call to Action and Number bl ### Field config -| Option | Description | -| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | -------------- | ----------------------------------- | -| **`name`** \* | To be used as the property name when stored and retrieved from the database. [More](/docs/fields/overview#field-names) | -| **`label`** | Text used as the heading in the Admin panel or an object with keys for each language. Auto-generated from name if not defined. | -| **`blocks`** \* | Array of [block configs](/docs/fields/blocks#block-configs) to be made available to this field. | -| **`validate`** | Provide a custom validation function that will be executed on both the Admin panel and the backend. [More](/docs/fields/overview#validation) | -| **`saveToJWT`** | If this field is top-level and nested in a config supporting [Authentication](/docs/authentication/config), include its data in the user JWT. | -| **`hooks`** | Provide field-level hooks to control logic for this field. [More](/docs/fields/overview#field-level-hooks) | -| **`access`** | Provide field-level access control to denote what users can see and do with this field's data. [More](/docs/fields/overview#field-level-access-control) | -| **`hidden`** | Restrict this field's visibility from all APIs entirely. Will still be saved to the database, but will not appear in any API response or the Admin panel. | -| **`defaultValue`** | Provide an array of block data to be used for this field's default value. [More](/docs/fields/overview#default-values) | -| **`localized`** | Enable localization for this field. Requires [localization to be enabled](/docs/configuration/localization) in the Base config. If enabled, a separate, localized set of all data within this field will be kept, so there is no need to specify each nested field as `localized`. | | **`required`** | Require this field to have a value. | -| **`unique`** | Enforce that each entry in the Collection has a unique value for this field. | -| **`labels`** | Customize the block row labels appearing in the Admin dashboard. | -| **`admin`** | Admin-specific configuration. See below for [more detail](#admin-config). | -| **`custom`** | Extension point for adding custom data (e.g. for plugins) | +| Option | Description | +|-------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **`name`** * | To be used as the property name when stored and retrieved from the database. [More](/docs/fields/overview#field-names) | +| **`label`** | Text used as the heading in the Admin panel or an object with keys for each language. Auto-generated from name if not defined. | +| **`blocks`** * | Array of [block configs](/docs/fields/blocks#block-configs) to be made available to this field. | +| **`validate`** | Provide a custom validation function that will be executed on both the Admin panel and the backend. [More](/docs/fields/overview#validation) | +| **`saveToJWT`** | If this field is top-level and nested in a config supporting [Authentication](/docs/authentication/config), include its data in the user JWT. | +| **`hooks`** | Provide field-level hooks to control logic for this field. [More](/docs/fields/overview#field-level-hooks) | +| **`access`** | Provide field-level access control to denote what users can see and do with this field's data. [More](/docs/fields/overview#field-level-access-control) | +| **`hidden`** | Restrict this field's visibility from all APIs entirely. Will still be saved to the database, but will not appear in any API response or the Admin panel. | +| **`defaultValue`** | Provide an array of block data to be used for this field's default value. [More](/docs/fields/overview#default-values) | +| **`localized`** | Enable localization for this field. Requires [localization to be enabled](/docs/configuration/localization) in the Base config. If enabled, a separate, localized set of all data within this field will be kept, so there is no need to specify each nested field as `localized`. | +| **`unique`** | Enforce that each entry in the Collection has a unique value for this field. | +| **`labels`** | Customize the block row labels appearing in the Admin dashboard. | +| **`admin`** | Admin-specific configuration. See below for [more detail](#admin-config). | +| **`custom`** | Extension point for adding custom data (e.g. for plugins) | _\* An asterisk denotes that a property is required._ @@ -93,33 +93,33 @@ The Admin panel provides each block with a `blockName` field which optionally al `collections/ExampleCollection.js` ```ts -import { Block, CollectionConfig } from "payload/types"; +import { Block, CollectionConfig } from 'payload/types'; const QuoteBlock: Block = { - slug: "Quote", // required - imageURL: "https://google.com/path/to/image.jpg", - imageAltText: "A nice thumbnail image to show what this block looks like", - interfaceName: "QuoteBlock", // optional + slug: 'Quote', // required + imageURL: 'https://google.com/path/to/image.jpg', + imageAltText: 'A nice thumbnail image to show what this block looks like', + interfaceName: 'QuoteBlock', // optional fields: [ // required { - name: "quoteHeader", - type: "text", + name: 'quoteHeader', + type: 'text', required: true, }, { - name: "quoteText", - type: "text", + name: 'quoteText', + type: 'text', }, ], }; export const ExampleCollection: CollectionConfig = { - slug: "example-collection", + slug: 'example-collection', fields: [ { - name: "layout", // required - type: "blocks", // required + name: 'layout', // required + type: 'blocks', // required minRows: 1, maxRows: 20, blocks: [ @@ -136,5 +136,5 @@ export const ExampleCollection: CollectionConfig = { As you build your own Block configs, you might want to store them in separate files but retain typing accordingly. To do so, you can import and use Payload's `Block` type: ```ts -import type { Block } from "payload/types"; +import type { Block } from 'payload/types'; ``` From d601cdd29ee04ba6a2f6882eacdb3e2337bf1312 Mon Sep 17 00:00:00 2001 From: Jessica Boezwinkle Date: Tue, 13 Jun 2023 17:01:55 +0100 Subject: [PATCH 05/78] fix: adds async await to payload.init example --- docs/authentication/using-middleware.mdx | 38 +++++++++++++----------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/docs/authentication/using-middleware.mdx b/docs/authentication/using-middleware.mdx index a2061f442f..945c0a7355 100644 --- a/docs/authentication/using-middleware.mdx +++ b/docs/authentication/using-middleware.mdx @@ -29,28 +29,30 @@ import payload from "payload"; const app = express(); -payload.init({ - secret: "PAYLOAD_SECRET_KEY", - mongoURL: "mongodb://localhost/payload", - express: app, -}); +const start = async () => { + await payload.init({ + secret: "PAYLOAD_SECRET_KEY", + mongoURL: "mongodb://localhost/payload", + express: app, + }); -const router = express.Router(); + const router = express.Router(); -// Note: Payload must be initialized before the `payload.authenticate` middleware can be used -router.use(payload.authenticate); // highlight-line + // Note: Payload must be initialized before the `payload.authenticate` middleware can be used + router.use(payload.authenticate); // highlight-line -router.get("/", (req, res) => { - if (req.user) { - return res.send(`Authenticated successfully as ${req.user.email}.`); - } + router.get("/", (req, res) => { + if (req.user) { + return res.send(`Authenticated successfully as ${req.user.email}.`); + } - return res.send("Not authenticated"); -}); + return res.send("Not authenticated"); + }); -app.use("/some-route-here", router); + app.use("/some-route-here", router); -app.listen(3000, async () => { - payload.logger.info(`listening on ${3000}...`); -}); + app.listen(3000); +}; + +start(); ``` From 25e9c1a50a8b8012c377de56533046f8915dfe07 Mon Sep 17 00:00:00 2001 From: Jessica Boezwinkle Date: Tue, 13 Jun 2023 17:01:55 +0100 Subject: [PATCH 06/78] fix: adds async await to payload.init example --- docs/authentication/using-middleware.mdx | 38 +++++++++++++----------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/docs/authentication/using-middleware.mdx b/docs/authentication/using-middleware.mdx index a2061f442f..945c0a7355 100644 --- a/docs/authentication/using-middleware.mdx +++ b/docs/authentication/using-middleware.mdx @@ -29,28 +29,30 @@ import payload from "payload"; const app = express(); -payload.init({ - secret: "PAYLOAD_SECRET_KEY", - mongoURL: "mongodb://localhost/payload", - express: app, -}); +const start = async () => { + await payload.init({ + secret: "PAYLOAD_SECRET_KEY", + mongoURL: "mongodb://localhost/payload", + express: app, + }); -const router = express.Router(); + const router = express.Router(); -// Note: Payload must be initialized before the `payload.authenticate` middleware can be used -router.use(payload.authenticate); // highlight-line + // Note: Payload must be initialized before the `payload.authenticate` middleware can be used + router.use(payload.authenticate); // highlight-line -router.get("/", (req, res) => { - if (req.user) { - return res.send(`Authenticated successfully as ${req.user.email}.`); - } + router.get("/", (req, res) => { + if (req.user) { + return res.send(`Authenticated successfully as ${req.user.email}.`); + } - return res.send("Not authenticated"); -}); + return res.send("Not authenticated"); + }); -app.use("/some-route-here", router); + app.use("/some-route-here", router); -app.listen(3000, async () => { - payload.logger.info(`listening on ${3000}...`); -}); + app.listen(3000); +}; + +start(); ``` From 465d8b02453873c432498e6f12c9b859459b39ae Mon Sep 17 00:00:00 2001 From: PatrikKozak Date: Tue, 13 Jun 2023 12:25:02 -0400 Subject: [PATCH 07/78] chore: updates authentication/api-keys docs --- docs/authentication/config.mdx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/authentication/config.mdx b/docs/authentication/config.mdx index 0aa9d59b67..8d97c87795 100644 --- a/docs/authentication/config.mdx +++ b/docs/authentication/config.mdx @@ -17,7 +17,7 @@ To enable Authentication on a collection, define an `auth` property and set it t | **`useAPIKey`** | Payload Authentication provides for API keys to be set on each user within an Authentication-enabled Collection. [More](/docs/authentication/config#api-keys) | | **`tokenExpiration`** | How long (in seconds) to keep the user logged in. JWTs and HTTP-only cookies will both expire at the same time. | | **`maxLoginAttempts`** | Only allow a user to attempt logging in X amount of times. Automatically locks out a user from authenticating if this limit is passed. Set to `0` to disable. | -| **`lockTime`** | Set the time (in milliseconds) that a user should be locked out if they fail authentication more times than `maxLoginAttempts` allows for. | +| **`lockTime`** | Set the time (in milliseconds) that a user should be locked out if they fail authentication more times than `maxLoginAttempts` allows for. | | **`depth`** | How many levels deep a `user` document should be populated when creating the JWT and binding the `user` to the express `req`. Defaults to `0` and should only be modified if absolutely necessary, as this will affect performance. | | **`cookies`** | Set cookie options, including `secure`, `sameSite`, and `domain`. For advanced users. | | **`forgotPassword`** | Customize the way that the `forgotPassword` operation functions. [More](/docs/authentication/config#forgot-password) | @@ -29,10 +29,12 @@ To enable Authentication on a collection, define an `auth` property and set it t To integrate with third-party APIs or services, you might need the ability to generate API keys that can be used to identify as a certain user within Payload. +In Payload, users are essentially documents within a collection. Just like you can authenticate as a user with an email and password, which is considered as our default local auth strategy, you can also authenticate as a user with an API key. API keys are generated on a user-by-user basis, similar to email and passwords, and are meant to represent a single user. + For example, if you have a third-party service or external app that needs to be able to perform protected actions at its discretion, you have two options: 1. Create a user for the third-party app, and log in each time to receive a token before you attempt to access any protected actions -1. Enable API key support for the Collection, where you can generate a non-expiring API key per user in the collection +1. Enable API key support for the Collection, where you can generate a non-expiring API key per user in the collection. This is particularly useful as you can create a "user" that reflects an integration with a specific external service and assign a "role" or specific access only needed by that service/integration. Alternatively, you could create a "super admin" user and assign an API key to that user so that any requests made with that API key are considered as being made by that super user. Technically, both of these options will work for third-party integrations but the second option with API key is simpler, because it reduces the amount of work that your integrations need to do to be authenticated properly. @@ -45,7 +47,7 @@ To enable API keys on a collection, set the `useAPIKey` auth option to `true`. F #### Authenticating via API Key -To authenticate REST or GraphQL API requests using an API key, set the `Authorization` header. The header is case-sensitive and needs the slug of the `auth.useAPIKey` enabled collection, then " API-Key ", followed by the `apiKey` that has been assigned. Payload's built-in middleware will then assign the user document to `req.user` and handle requests with the proper access control. +To authenticate REST or GraphQL API requests using an API key, set the `Authorization` header. The header is case-sensitive and needs the slug of the `auth.useAPIKey` enabled collection, then " API-Key ", followed by the `apiKey` that has been assigned. Payload's built-in middleware will then assign the user document to `req.user` and handle requests with the proper access control. By doing this, Payload recognizes the request being made as a request by the user associated with that API key. **For example, using Fetch:** @@ -59,6 +61,8 @@ const response = await fetch("http://localhost:3000/api/pages", { }); ``` +Our authentication strategies ensure uniform access control across all strategies. This enables you to utilize your existing access control configurations with both API keys and the standard email/password authentication. This consistency can aid in maintaining granular control over your API keys. + ### Forgot Password You can customize how the Forgot Password workflow operates with the following options on the `auth.forgotPassword` property: From 74d6156e8da4c54cabf025603b45ef9ff5301051 Mon Sep 17 00:00:00 2001 From: Jessica Boezwinkle Date: Tue, 13 Jun 2023 17:35:39 +0100 Subject: [PATCH 08/78] chore: adds credentials to rest api examples --- docs/rest-api/overview.mdx | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/docs/rest-api/overview.mdx b/docs/rest-api/overview.mdx index 92e072b7a8..f0a3da7d48 100644 --- a/docs/rest-api/overview.mdx +++ b/docs/rest-api/overview.mdx @@ -99,6 +99,7 @@ Note: Collection slugs must be formatted in kebab-case example: { slug: "createDocument", req: { + credentials: true, headers: true, body: { title: "New page", @@ -126,6 +127,7 @@ Note: Collection slugs must be formatted in kebab-case example: { slug: "updateDocument", req: { + credentials: true, query: true, headers: true, body: { @@ -155,6 +157,7 @@ Note: Collection slugs must be formatted in kebab-case example: { slug: "updateDocumentByID", req: { + credentials: true, headers: true, body: { title: "I have been updated by ID!", @@ -199,6 +202,7 @@ Note: Collection slugs must be formatted in kebab-case example: { slug: "deleteDocuments", req: { + credentials: true, query: true, headers: true, }, @@ -225,6 +229,7 @@ Note: Collection slugs must be formatted in kebab-case example: { slug: "deleteByID", req: { + credentials: true, headers: true, }, res: { @@ -255,6 +260,7 @@ Auth enabled collections are also given the following endpoints: example: { slug: "login", req: { + credentials: true, headers: true, body: { email: "dev@payloadcms.com", @@ -284,6 +290,7 @@ Auth enabled collections are also given the following endpoints: slug: "logout", req: { headers: true, + credentials: true, }, res: { message: "You have been logged out successfully.", @@ -298,6 +305,7 @@ Auth enabled collections are also given the following endpoints: example: { slug: "unlockCollection", req: { + credentials: true, headers: true, body: { email: "dev@payloadcms.com", @@ -316,6 +324,7 @@ Auth enabled collections are also given the following endpoints: example: { slug: "refreshToken", req: { + credentials: true, headers: true, }, res: { @@ -338,7 +347,7 @@ Auth enabled collections are also given the following endpoints: example: { slug: "verifyUser", req: { - prop: "token: string, user-collection: string", + credentials: true, headers: true, }, res: { @@ -354,6 +363,7 @@ Auth enabled collections are also given the following endpoints: example: { slug: "currentUser", req: { + credentials: true, headers: true, }, res: { @@ -380,6 +390,7 @@ Auth enabled collections are also given the following endpoints: slug: "forgotPassword", req: { headers: true, + credentials: true, body: { email: "dev@payloadcms.com", }, @@ -397,6 +408,7 @@ Auth enabled collections are also given the following endpoints: example: { slug: "resetPassword", req: { + credentials: true, headers: true, body: { token: "7eac3830ffcfc7f9f66c00315dabeb11575dba91", @@ -434,6 +446,7 @@ Globals cannot be created or deleted, so there are only two REST endpoints opene example: { slug: "getGlobal", req: { + credentials: true, headers: true, }, res: { @@ -454,6 +467,7 @@ Globals cannot be created or deleted, so there are only two REST endpoints opene slug: "updateGlobal", req: { headers: true, + credentials: true, body: { announcement: "Paging Doctor Scrunt", }, @@ -485,6 +499,7 @@ In addition to the dynamically generated endpoints above Payload also has REST e slug: "getPreference", req: { headers: true, + credentials: true, }, res: { _id: "644bb7a8307b3d363c6edf2c", @@ -507,6 +522,7 @@ In addition to the dynamically generated endpoints above Payload also has REST e slug: "createPreference", req: { headers: true, + credentials: true, body: { value: "Europe/London", }, From 346a48f871e09a3d5e25b7ff9e45689a104b0f9f Mon Sep 17 00:00:00 2001 From: Tylan Davis <89618855+tylandavis@users.noreply.github.com> Date: Wed, 14 Jun 2023 08:29:13 -0400 Subject: [PATCH 09/78] fix: adds missing dark-mode styles for version differences view (#2812) Co-authored-by: Tylan Davis --- .../views/Version/RenderFieldsToDiff/fields/styles.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/admin/components/views/Version/RenderFieldsToDiff/fields/styles.ts b/src/admin/components/views/Version/RenderFieldsToDiff/fields/styles.ts index d20e43f6a0..89f3782461 100644 --- a/src/admin/components/views/Version/RenderFieldsToDiff/fields/styles.ts +++ b/src/admin/components/views/Version/RenderFieldsToDiff/fields/styles.ts @@ -10,5 +10,15 @@ export const diffStyles = { wordRemovedBackground: 'var(--theme-error-200)', emptyLineBackground: 'var(--theme-elevation-50)', }, + dark: { + diffViewerBackground: 'transparent', + addedBackground: 'var(--theme-success-900)', + addedColor: 'var(--theme-success-100)', + removedBackground: 'var(--theme-error-900)', + removedColor: 'var(--theme-error-100)', + wordAddedBackground: 'var(--theme-success-800)', + wordRemovedBackground: 'var(--theme-error-800)', + emptyLineBackground: 'var(--theme-elevation-50)', + }, }, }; From 63cd7fbd0c91bbf5120e95fd33388a38e593b341 Mon Sep 17 00:00:00 2001 From: Dan Ribbens Date: Wed, 14 Jun 2023 08:39:45 -0400 Subject: [PATCH 10/78] fix: #2821 i18n ui field label (#2823) --- src/fields/config/schema.ts | 5 ++++- test/admin/config.ts | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/fields/config/schema.ts b/src/fields/config/schema.ts index 2cdb928e0a..f3f7fd673d 100644 --- a/src/fields/config/schema.ts +++ b/src/fields/config/schema.ts @@ -455,7 +455,10 @@ export const date = baseField.keys({ export const ui = joi.object().keys({ name: joi.string().required(), - label: joi.string(), + label: joi.alternatives().try( + joi.string(), + joi.object().pattern(joi.string(), [joi.string()]), + ), type: joi.string().valid('ui').required(), admin: joi.object().keys({ position: joi.string().valid('sidebar'), diff --git a/test/admin/config.ts b/test/admin/config.ts index 22d2f01114..b0c84184b3 100644 --- a/test/admin/config.ts +++ b/test/admin/config.ts @@ -128,7 +128,7 @@ export default buildConfig({ { type: 'ui', name: 'demoUIField', - label: 'Demo UI Field', + label: { en: 'Demo UI Field', de: 'Demo UI Field de' }, admin: { components: { Field: DemoUIFieldField, From 9664e4b96f4bce3e329a350922a79b531c2b62d4 Mon Sep 17 00:00:00 2001 From: Tylan Davis <89618855+tylandavis@users.noreply.github.com> Date: Wed, 14 Jun 2023 10:21:23 -0400 Subject: [PATCH 11/78] chore: version diff styles (#2824) Co-authored-by: Tylan Davis --- .../views/Version/RenderFieldsToDiff/fields/styles.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/admin/components/views/Version/RenderFieldsToDiff/fields/styles.ts b/src/admin/components/views/Version/RenderFieldsToDiff/fields/styles.ts index 89f3782461..f6cab44c79 100644 --- a/src/admin/components/views/Version/RenderFieldsToDiff/fields/styles.ts +++ b/src/admin/components/views/Version/RenderFieldsToDiff/fields/styles.ts @@ -2,6 +2,7 @@ export const diffStyles = { variables: { light: { diffViewerBackground: 'transparent', + diffViewerColor: 'var(--theme-text)', addedBackground: 'var(--theme-success-100)', addedColor: 'var(--theme-success-900)', removedBackground: 'var(--theme-error-100)', @@ -12,6 +13,7 @@ export const diffStyles = { }, dark: { diffViewerBackground: 'transparent', + diffViewerColor: 'var(--theme-text)', addedBackground: 'var(--theme-success-900)', addedColor: 'var(--theme-success-100)', removedBackground: 'var(--theme-error-900)', From 884f7991c499b285cdb7c0015fdc0653d9664cf9 Mon Sep 17 00:00:00 2001 From: Alessio Gravili <70709113+AlessioGr@users.noreply.github.com> Date: Wed, 14 Jun 2023 16:23:48 +0200 Subject: [PATCH 12/78] chore: remove --legacy-peer-deps from gh actions workflow (#2814) --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 82ebcaf04f..1363f638c5 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -83,6 +83,6 @@ jobs: ${{ runner.os }}-npm-${{ env.cache-name }}- ${{ runner.os }}-npm- ${{ runner.os }}- - - run: npm install --legacy-peer-deps + - run: npm install env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} From 120e2936fec95cb8283b0a3e2a551291eae7615e Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Wed, 14 Jun 2023 10:31:29 -0400 Subject: [PATCH 13/78] chore: removes cms text from instances of payload name (#2793) --- .github/ISSUE_TEMPLATE/1.bug_report.yml | 2 +- README.md | 4 +- contributing.md | 4 +- docs/getting-started/what-is-payload.mdx | 2 +- examples/auth/cms/package.json | 2 +- examples/auth/cms/src/payload-types.ts | 2 +- examples/auth/nextjs/payload-types.ts | 2 +- examples/email/src/payload-types.ts | 2 +- .../form-builder/cms/src/payload-types.ts | 2 +- examples/form-builder/nextjs/payload-types.ts | 2 +- examples/multi-tenant/src/payload-types.ts | 2 +- examples/preview/cms/package.json | 2 +- examples/preview/cms/src/payload-types.ts | 2 +- examples/preview/nextjs/payload-types.ts | 74 +++++++++---------- examples/redirects/cms/src/payload-types.ts | 2 +- examples/redirects/nextjs/payload-types.ts | 2 +- package.json | 4 +- .../components/templates/Default/index.tsx | 4 +- src/bin/generateTypes.ts | 2 +- src/email/defaults.ts | 2 +- test/_community/payload-types.ts | 2 +- test/access-control/payload-types.ts | 2 +- test/admin/payload-types.ts | 2 +- test/array-update/payload-types.ts | 2 +- test/auth/payload-types.ts | 2 +- test/collections-graphql/payload-types.ts | 2 +- test/collections-rest/payload-types.ts | 2 +- test/dataloader/payload-types.ts | 2 +- test/endpoints/payload-types.ts | 2 +- test/fields-relationship/payload-types.ts | 2 +- test/fields/payload-types.ts | 2 +- test/globals/payload-types.ts | 2 +- test/hooks/payload-types.ts | 2 +- test/localization/payload-types.ts | 2 +- test/relationships/payload-types.ts | 2 +- test/uploads/payload-types.ts | 2 +- test/versions/payload-types.ts | 2 +- 37 files changed, 77 insertions(+), 77 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/1.bug_report.yml b/.github/ISSUE_TEMPLATE/1.bug_report.yml index 6063bc5375..4aa924616b 100644 --- a/.github/ISSUE_TEMPLATE/1.bug_report.yml +++ b/.github/ISSUE_TEMPLATE/1.bug_report.yml @@ -1,5 +1,5 @@ name: Bug Report -description: Create a bug report for the Payload CMS +description: Create a bug report for Payload labels: ["possible-bug"] body: - type: markdown diff --git a/README.md b/README.md index 6c16475062..19950fcfdc 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ - payload cms logo + Payload Logo

@@ -41,7 +41,7 @@   - Payload CMS Twitter + Payload Twitter

diff --git a/contributing.md b/contributing.md index 34d1aa0de0..a07ea3b596 100644 --- a/contributing.md +++ b/contributing.md @@ -1,6 +1,6 @@ -# Contributing to Payload CMS +# Contributing to Payload -Below you'll find a set of guidelines for how to contribute to Payload CMS. +Below you'll find a set of guidelines for how to contribute to Payload. ## Opening issues diff --git a/docs/getting-started/what-is-payload.mdx b/docs/getting-started/what-is-payload.mdx index a6fe0d787f..3a2f4ea07a 100644 --- a/docs/getting-started/what-is-payload.mdx +++ b/docs/getting-started/what-is-payload.mdx @@ -8,7 +8,7 @@ keywords: documentation, getting started, guide, Content Management System, cms, diff --git a/examples/auth/cms/package.json b/examples/auth/cms/package.json index edebfb7b51..91e6148d69 100644 --- a/examples/auth/cms/package.json +++ b/examples/auth/cms/package.json @@ -1,6 +1,6 @@ { "name": "payload-example-auth", - "description": "Payload CMS authentication example.", + "description": "Payload authentication example.", "version": "1.0.0", "main": "dist/server.js", "license": "MIT", diff --git a/examples/auth/cms/src/payload-types.ts b/examples/auth/cms/src/payload-types.ts index 5396e1ab4c..0af85b65f1 100644 --- a/examples/auth/cms/src/payload-types.ts +++ b/examples/auth/cms/src/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/examples/auth/nextjs/payload-types.ts b/examples/auth/nextjs/payload-types.ts index 5eede4b683..29edd0377d 100644 --- a/examples/auth/nextjs/payload-types.ts +++ b/examples/auth/nextjs/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/examples/email/src/payload-types.ts b/examples/email/src/payload-types.ts index d600d53b68..95dee33a71 100644 --- a/examples/email/src/payload-types.ts +++ b/examples/email/src/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/examples/form-builder/cms/src/payload-types.ts b/examples/form-builder/cms/src/payload-types.ts index 893187f858..3addd97794 100644 --- a/examples/form-builder/cms/src/payload-types.ts +++ b/examples/form-builder/cms/src/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/examples/form-builder/nextjs/payload-types.ts b/examples/form-builder/nextjs/payload-types.ts index 893187f858..3addd97794 100644 --- a/examples/form-builder/nextjs/payload-types.ts +++ b/examples/form-builder/nextjs/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/examples/multi-tenant/src/payload-types.ts b/examples/multi-tenant/src/payload-types.ts index e79efafe6e..2a2360b66a 100644 --- a/examples/multi-tenant/src/payload-types.ts +++ b/examples/multi-tenant/src/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/examples/preview/cms/package.json b/examples/preview/cms/package.json index fc7be8ebd4..82979dfcfc 100644 --- a/examples/preview/cms/package.json +++ b/examples/preview/cms/package.json @@ -1,6 +1,6 @@ { "name": "payload-example-preview", - "description": "Payload CMS preview example.", + "description": "Payload preview example.", "version": "1.0.0", "main": "dist/server.js", "license": "MIT", diff --git a/examples/preview/cms/src/payload-types.ts b/examples/preview/cms/src/payload-types.ts index 3477b83ccf..6e1e2bf5ed 100644 --- a/examples/preview/cms/src/payload-types.ts +++ b/examples/preview/cms/src/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/examples/preview/nextjs/payload-types.ts b/examples/preview/nextjs/payload-types.ts index 1222aa6652..6e1e2bf5ed 100644 --- a/examples/preview/nextjs/payload-types.ts +++ b/examples/preview/nextjs/payload-types.ts @@ -1,55 +1,55 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ export interface Config { collections: { - pages: Page; - users: User; - }; + pages: Page + users: User + } globals: { - 'main-menu': MainMenu; - }; + 'main-menu': MainMenu + } } export interface Page { - id: string; - title: string; - slug?: string; - richText: { - [k: string]: unknown; - }[]; - _status?: 'draft' | 'published'; - createdAt: string; - updatedAt: string; - password?: string; + id: string + title: string + slug?: string + richText: Array<{ + [k: string]: unknown + }> + _status?: 'draft' | 'published' + createdAt: string + updatedAt: string + password?: string } export interface User { - id: string; - email?: string; - resetPasswordToken?: string; - resetPasswordExpiration?: string; - loginAttempts?: number; - lockUntil?: string; - createdAt: string; - updatedAt: string; - password?: string; + id: string + email?: string + resetPasswordToken?: string + resetPasswordExpiration?: string + loginAttempts?: number + lockUntil?: string + createdAt: string + updatedAt: string + password?: string } export interface MainMenu { - id: string; - navItems: { + id: string + navItems: Array<{ link: { - type?: 'reference' | 'custom'; - newTab?: boolean; + type?: 'reference' | 'custom' + newTab?: boolean reference: { - value: string | Page; - relationTo: 'pages'; - }; - url: string; - label: string; - }; - id?: string; - }[]; + value: string | Page + relationTo: 'pages' + } + url: string + label: string + } + id?: string + }> } diff --git a/examples/redirects/cms/src/payload-types.ts b/examples/redirects/cms/src/payload-types.ts index 792f4aa362..04ae8acac9 100644 --- a/examples/redirects/cms/src/payload-types.ts +++ b/examples/redirects/cms/src/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/examples/redirects/nextjs/payload-types.ts b/examples/redirects/nextjs/payload-types.ts index 9ee62e5a6d..190bb6a519 100644 --- a/examples/redirects/nextjs/payload-types.ts +++ b/examples/redirects/nextjs/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/package.json b/package.json index 3e9fa8d4fb..10cf2b0800 100644 --- a/package.json +++ b/package.json @@ -9,12 +9,12 @@ }, "author": { "email": "info@payloadcms.com", - "name": "Payload CMS", + "name": "Payload", "url": "https://payloadcms.com" }, "maintainers": [ { - "name": "Payload CMS", + "name": "Payload", "email": "info@payloadcms.com", "url": "https://payloadcms.com" } diff --git a/src/admin/components/templates/Default/index.tsx b/src/admin/components/templates/Default/index.tsx index a5d32da903..7060af12e8 100644 --- a/src/admin/components/templates/Default/index.tsx +++ b/src/admin/components/templates/Default/index.tsx @@ -31,8 +31,8 @@ const Default: React.FC = ({ children, className }) => {
{ const jsonSchema = configToJsonSchema(config); compile(jsonSchema, 'Config', { - bannerComment: '/* tslint:disable */\n/**\n* This file was automatically generated by Payload CMS.\n* DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,\n* and re-run `payload generate:types` to regenerate this file.\n*/', + bannerComment: '/* tslint:disable */\n/**\n* This file was automatically generated by Payload.\n* DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,\n* and re-run `payload generate:types` to regenerate this file.\n*/', style: { singleQuote: true, }, diff --git a/src/email/defaults.ts b/src/email/defaults.ts index f88a57a8c6..225c6463f6 100644 --- a/src/email/defaults.ts +++ b/src/email/defaults.ts @@ -1,6 +1,6 @@ import { EmailOptions } from '../config/types'; export const defaults: EmailOptions = { - fromName: 'Payload CMS', + fromName: 'Payload', fromAddress: 'info@payloadcms.com', }; diff --git a/test/_community/payload-types.ts b/test/_community/payload-types.ts index 3e4dd3acd6..f6aac91776 100644 --- a/test/_community/payload-types.ts +++ b/test/_community/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/test/access-control/payload-types.ts b/test/access-control/payload-types.ts index b4df1d4b89..9a2d667d1d 100644 --- a/test/access-control/payload-types.ts +++ b/test/access-control/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/test/admin/payload-types.ts b/test/admin/payload-types.ts index 5d9d139568..07353901ba 100644 --- a/test/admin/payload-types.ts +++ b/test/admin/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/test/array-update/payload-types.ts b/test/array-update/payload-types.ts index 4e850b84c3..3d8633ab94 100644 --- a/test/array-update/payload-types.ts +++ b/test/array-update/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/test/auth/payload-types.ts b/test/auth/payload-types.ts index 197be73123..5f1feda915 100644 --- a/test/auth/payload-types.ts +++ b/test/auth/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/test/collections-graphql/payload-types.ts b/test/collections-graphql/payload-types.ts index 433926f087..1e14ed8bf0 100644 --- a/test/collections-graphql/payload-types.ts +++ b/test/collections-graphql/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/test/collections-rest/payload-types.ts b/test/collections-rest/payload-types.ts index 05006dc269..a1507d02f0 100644 --- a/test/collections-rest/payload-types.ts +++ b/test/collections-rest/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/test/dataloader/payload-types.ts b/test/dataloader/payload-types.ts index 6a77cff1be..53e3df12ba 100644 --- a/test/dataloader/payload-types.ts +++ b/test/dataloader/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/test/endpoints/payload-types.ts b/test/endpoints/payload-types.ts index cfed8f71c2..dbd2df8ea1 100644 --- a/test/endpoints/payload-types.ts +++ b/test/endpoints/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/test/fields-relationship/payload-types.ts b/test/fields-relationship/payload-types.ts index bc8c33f262..995055a7da 100644 --- a/test/fields-relationship/payload-types.ts +++ b/test/fields-relationship/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/test/fields/payload-types.ts b/test/fields/payload-types.ts index b02d199d0d..4df5b37699 100644 --- a/test/fields/payload-types.ts +++ b/test/fields/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/test/globals/payload-types.ts b/test/globals/payload-types.ts index a73ed769e2..09e2fd95af 100644 --- a/test/globals/payload-types.ts +++ b/test/globals/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/test/hooks/payload-types.ts b/test/hooks/payload-types.ts index ff64fea78b..f5582c89f3 100644 --- a/test/hooks/payload-types.ts +++ b/test/hooks/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/test/localization/payload-types.ts b/test/localization/payload-types.ts index 79bf29fb83..a130086440 100644 --- a/test/localization/payload-types.ts +++ b/test/localization/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/test/relationships/payload-types.ts b/test/relationships/payload-types.ts index 7ae6fd8c60..de4c1310a6 100644 --- a/test/relationships/payload-types.ts +++ b/test/relationships/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/test/uploads/payload-types.ts b/test/uploads/payload-types.ts index 2e413ee2ea..29c6976298 100644 --- a/test/uploads/payload-types.ts +++ b/test/uploads/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ diff --git a/test/versions/payload-types.ts b/test/versions/payload-types.ts index 685365debb..fcaabc48a2 100644 --- a/test/versions/payload-types.ts +++ b/test/versions/payload-types.ts @@ -1,6 +1,6 @@ /* tslint:disable */ /** - * This file was automatically generated by Payload CMS. + * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ From 8310950f7b68da7d20e7cdc8b5e0ed92dab64bf2 Mon Sep 17 00:00:00 2001 From: Dan Ribbens Date: Wed, 14 Jun 2023 11:32:14 -0400 Subject: [PATCH 14/78] chore(release): v1.9.2 --- CHANGELOG.md | 12 ++++++++++++ package.json | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a5afa7f35b..223eb0d3d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ +## [1.9.2](https://github.com/payloadcms/payload/compare/v1.9.1...v1.9.2) (2023-06-14) + + +### Bug Fixes + +* [#2821](https://github.com/payloadcms/payload/issues/2821) i18n ui field label ([#2823](https://github.com/payloadcms/payload/issues/2823)) ([63cd7fb](https://github.com/payloadcms/payload/commit/63cd7fbd0c91bbf5120e95fd33388a38e593b341)) +* adds async await to payload.init example ([25e9c1a](https://github.com/payloadcms/payload/commit/25e9c1a50a8b8012c377de56533046f8915dfe07)) +* adds async await to payload.init example ([d601cdd](https://github.com/payloadcms/payload/commit/d601cdd29ee04ba6a2f6882eacdb3e2337bf1312)) +* adds missing dark-mode styles for version differences view ([#2812](https://github.com/payloadcms/payload/issues/2812)) ([346a48f](https://github.com/payloadcms/payload/commit/346a48f871e09a3d5e25b7ff9e45689a104b0f9f)) +* sanitize reset password result - [#2805](https://github.com/payloadcms/payload/issues/2805) ([#2808](https://github.com/payloadcms/payload/issues/2808)) ([46a5f41](https://github.com/payloadcms/payload/commit/46a5f417217313b049f4b412abb3319634f27262)) +* user can be created without having to specify an email - [#2801](https://github.com/payloadcms/payload/issues/2801) ([abe3852](https://github.com/payloadcms/payload/commit/abe38520aaaefdfaea4c47130eea04a42a82627b)) + ## [1.9.1](https://github.com/payloadcms/payload/compare/v1.9.0...v1.9.1) (2023-06-09) diff --git a/package.json b/package.json index 10cf2b0800..228655035f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "payload", - "version": "1.9.1", + "version": "1.9.2", "description": "Node, React and MongoDB Headless CMS and Application Framework", "license": "MIT", "engines": { From 0d035a9c233fb70374dce4b87f2b54448be39175 Mon Sep 17 00:00:00 2001 From: Dan Ribbens Date: Wed, 14 Jun 2023 11:33:07 -0400 Subject: [PATCH 15/78] chore: update changelog release notes v1.9.2 --- CHANGELOG.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 223eb0d3d1..e6ed397f15 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,8 +6,6 @@ ### Bug Fixes * [#2821](https://github.com/payloadcms/payload/issues/2821) i18n ui field label ([#2823](https://github.com/payloadcms/payload/issues/2823)) ([63cd7fb](https://github.com/payloadcms/payload/commit/63cd7fbd0c91bbf5120e95fd33388a38e593b341)) -* adds async await to payload.init example ([25e9c1a](https://github.com/payloadcms/payload/commit/25e9c1a50a8b8012c377de56533046f8915dfe07)) -* adds async await to payload.init example ([d601cdd](https://github.com/payloadcms/payload/commit/d601cdd29ee04ba6a2f6882eacdb3e2337bf1312)) * adds missing dark-mode styles for version differences view ([#2812](https://github.com/payloadcms/payload/issues/2812)) ([346a48f](https://github.com/payloadcms/payload/commit/346a48f871e09a3d5e25b7ff9e45689a104b0f9f)) * sanitize reset password result - [#2805](https://github.com/payloadcms/payload/issues/2805) ([#2808](https://github.com/payloadcms/payload/issues/2808)) ([46a5f41](https://github.com/payloadcms/payload/commit/46a5f417217313b049f4b412abb3319634f27262)) * user can be created without having to specify an email - [#2801](https://github.com/payloadcms/payload/issues/2801) ([abe3852](https://github.com/payloadcms/payload/commit/abe38520aaaefdfaea4c47130eea04a42a82627b)) @@ -3268,4 +3266,4 @@ If none of your collections or globals should be publicly exposed, you don't nee - add blind index for encrypting API Keys ([9a1c1f6](https://github.com/payloadcms/payload/commit/9a1c1f64c0ea0066b679195f50e6cb1ac4bf3552)) - add license key to access routej ([2565005](https://github.com/payloadcms/payload/commit/2565005cc099797a6e3b8995e0984c28b7837e82)) -## [0.0.137](https://github.com/payloadcms/payload/commit/5c1e2846a2694a80cc8707703406c2ac1bb6af8a) (2020-11-12) \ No newline at end of file +## [0.0.137](https://github.com/payloadcms/payload/commit/5c1e2846a2694a80cc8707703406c2ac1bb6af8a) (2020-11-12) From b682c76dc7e431f4bb8dd2887240956479ae74a4 Mon Sep 17 00:00:00 2001 From: Jarrod Flesch Date: Thu, 15 Jun 2023 09:54:53 -0400 Subject: [PATCH 16/78] chore: cleans up graphql-schema-gen test folder --- .../generated-schema.graphql | 1852 ----------------- test/graphql-schema-gen/schema.graphql | 5 +- 2 files changed, 2 insertions(+), 1855 deletions(-) delete mode 100644 test/graphql-schema-gen/generated-schema.graphql diff --git a/test/graphql-schema-gen/generated-schema.graphql b/test/graphql-schema-gen/generated-schema.graphql deleted file mode 100644 index 75267a107d..0000000000 --- a/test/graphql-schema-gen/generated-schema.graphql +++ /dev/null @@ -1,1852 +0,0 @@ -type Query { - Post(id: String!, draft: Boolean): Post - Posts(where: Post_where, draft: Boolean, page: Int, limit: Int, sort: String): Posts - docAccessPost(id: String!): postsDocAccess - Relation(id: String!, draft: Boolean): Relation - Relations(where: Relation_where, draft: Boolean, page: Int, limit: Int, sort: String): Relations - docAccessRelation(id: String!): relationDocAccess - Dummy(id: String!, draft: Boolean): Dummy - Dummies(where: Dummy_where, draft: Boolean, page: Int, limit: Int, sort: String): Dummies - docAccessDummy(id: String!): dummyDocAccess - User(id: String!, draft: Boolean): User - Users(where: User_where, draft: Boolean, page: Int, limit: Int, sort: String): Users - docAccessUser(id: String!): usersDocAccess - meUser: usersMe - initializedUser: Boolean - Preference(key: String): Preference - Access: Access -} - -type Post { - id: String - title: String - description: String - number: Float - relationField: Relation - relationHasManyField: [Relation!] - relationMultiRelationTo: Post_RelationMultiRelationTo_Relationship - relationMultiRelationToHasMany: [Post_RelationMultiRelationToHasMany_Relationship!] - updatedAt: DateTime - createdAt: DateTime -} - -type Relation { - id: String - name: String - updatedAt: DateTime - createdAt: DateTime -} - -""" -A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the `date-time` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. -""" -scalar DateTime - -type Post_RelationMultiRelationTo_Relationship { - relationTo: Post_RelationMultiRelationTo_RelationTo - value: Post_RelationMultiRelationTo -} - -enum Post_RelationMultiRelationTo_RelationTo { - relation - dummy -} - -union Post_RelationMultiRelationTo = Relation | Dummy - -type Dummy { - id: String - name: String - updatedAt: DateTime - createdAt: DateTime -} - -type Post_RelationMultiRelationToHasMany_Relationship { - relationTo: Post_RelationMultiRelationToHasMany_RelationTo - value: Post_RelationMultiRelationToHasMany -} - -enum Post_RelationMultiRelationToHasMany_RelationTo { - relation - dummy -} - -union Post_RelationMultiRelationToHasMany = Relation | Dummy - -type Posts { - docs: [Post] - totalDocs: Int - offset: Int - limit: Int - totalPages: Int - page: Int - pagingCounter: Int - hasPrevPage: Boolean - hasNextPage: Boolean - prevPage: Int - nextPage: Int -} - -input Post_where { - title: Post_title_operator - description: Post_description_operator - number: Post_number_operator - relationField: Post_relationField_operator - relationHasManyField: Post_relationHasManyField_operator - relationMultiRelationTo: Post_relationMultiRelationTo_Relation - relationMultiRelationToHasMany: Post_relationMultiRelationToHasMany_Relation - updatedAt: Post_updatedAt_operator - createdAt: Post_createdAt_operator - id: Post_id_operator - OR: [Post_where_or] - AND: [Post_where_and] -} - -input Post_title_operator { - equals: String - not_equals: String - like: String - contains: String - in: [String] - not_in: [String] - all: [String] - exists: Boolean -} - -input Post_description_operator { - equals: String - not_equals: String - like: String - contains: String - in: [String] - not_in: [String] - all: [String] - exists: Boolean -} - -input Post_number_operator { - equals: Float - not_equals: Float - greater_than_equal: Float - greater_than: Float - less_than_equal: Float - less_than: Float - exists: Boolean -} - -input Post_relationField_operator { - equals: String - not_equals: String - in: [String] - not_in: [String] - all: [String] - exists: Boolean -} - -input Post_relationHasManyField_operator { - equals: String - not_equals: String - in: [String] - not_in: [String] - all: [String] - exists: Boolean -} - -input Post_relationMultiRelationTo_Relation { - relationTo: Post_relationMultiRelationTo_Relation_RelationTo - value: String -} - -enum Post_relationMultiRelationTo_Relation_RelationTo { - relation - dummy -} - -input Post_relationMultiRelationToHasMany_Relation { - relationTo: Post_relationMultiRelationToHasMany_Relation_RelationTo - value: String -} - -enum Post_relationMultiRelationToHasMany_Relation_RelationTo { - relation - dummy -} - -input Post_updatedAt_operator { - equals: DateTime - not_equals: DateTime - greater_than_equal: DateTime - greater_than: DateTime - less_than_equal: DateTime - less_than: DateTime - like: DateTime - exists: Boolean -} - -input Post_createdAt_operator { - equals: DateTime - not_equals: DateTime - greater_than_equal: DateTime - greater_than: DateTime - less_than_equal: DateTime - less_than: DateTime - like: DateTime - exists: Boolean -} - -input Post_id_operator { - equals: String - not_equals: String - like: String - contains: String - in: [String] - not_in: [String] - all: [String] - exists: Boolean -} - -input Post_where_or { - title: Post_title_operator - description: Post_description_operator - number: Post_number_operator - relationField: Post_relationField_operator - relationHasManyField: Post_relationHasManyField_operator - relationMultiRelationTo: Post_relationMultiRelationTo_Relation - relationMultiRelationToHasMany: Post_relationMultiRelationToHasMany_Relation - updatedAt: Post_updatedAt_operator - createdAt: Post_createdAt_operator - id: Post_id_operator -} - -input Post_where_and { - title: Post_title_operator - description: Post_description_operator - number: Post_number_operator - relationField: Post_relationField_operator - relationHasManyField: Post_relationHasManyField_operator - relationMultiRelationTo: Post_relationMultiRelationTo_Relation - relationMultiRelationToHasMany: Post_relationMultiRelationToHasMany_Relation - updatedAt: Post_updatedAt_operator - createdAt: Post_createdAt_operator - id: Post_id_operator -} - -type postsDocAccess { - fields: PostsDocAccessFields - create: PostsCreateDocAccess - read: PostsReadDocAccess - update: PostsUpdateDocAccess - delete: PostsDeleteDocAccess -} - -type PostsDocAccessFields { - title: PostsDocAccessFields_title - description: PostsDocAccessFields_description - number: PostsDocAccessFields_number - relationField: PostsDocAccessFields_relationField - relationHasManyField: PostsDocAccessFields_relationHasManyField - relationMultiRelationTo: PostsDocAccessFields_relationMultiRelationTo - relationMultiRelationToHasMany: PostsDocAccessFields_relationMultiRelationToHasMany - updatedAt: PostsDocAccessFields_updatedAt - createdAt: PostsDocAccessFields_createdAt -} - -type PostsDocAccessFields_title { - create: PostsDocAccessFields_title_Create - read: PostsDocAccessFields_title_Read - update: PostsDocAccessFields_title_Update - delete: PostsDocAccessFields_title_Delete -} - -type PostsDocAccessFields_title_Create { - permission: Boolean! -} - -type PostsDocAccessFields_title_Read { - permission: Boolean! -} - -type PostsDocAccessFields_title_Update { - permission: Boolean! -} - -type PostsDocAccessFields_title_Delete { - permission: Boolean! -} - -type PostsDocAccessFields_description { - create: PostsDocAccessFields_description_Create - read: PostsDocAccessFields_description_Read - update: PostsDocAccessFields_description_Update - delete: PostsDocAccessFields_description_Delete -} - -type PostsDocAccessFields_description_Create { - permission: Boolean! -} - -type PostsDocAccessFields_description_Read { - permission: Boolean! -} - -type PostsDocAccessFields_description_Update { - permission: Boolean! -} - -type PostsDocAccessFields_description_Delete { - permission: Boolean! -} - -type PostsDocAccessFields_number { - create: PostsDocAccessFields_number_Create - read: PostsDocAccessFields_number_Read - update: PostsDocAccessFields_number_Update - delete: PostsDocAccessFields_number_Delete -} - -type PostsDocAccessFields_number_Create { - permission: Boolean! -} - -type PostsDocAccessFields_number_Read { - permission: Boolean! -} - -type PostsDocAccessFields_number_Update { - permission: Boolean! -} - -type PostsDocAccessFields_number_Delete { - permission: Boolean! -} - -type PostsDocAccessFields_relationField { - create: PostsDocAccessFields_relationField_Create - read: PostsDocAccessFields_relationField_Read - update: PostsDocAccessFields_relationField_Update - delete: PostsDocAccessFields_relationField_Delete -} - -type PostsDocAccessFields_relationField_Create { - permission: Boolean! -} - -type PostsDocAccessFields_relationField_Read { - permission: Boolean! -} - -type PostsDocAccessFields_relationField_Update { - permission: Boolean! -} - -type PostsDocAccessFields_relationField_Delete { - permission: Boolean! -} - -type PostsDocAccessFields_relationHasManyField { - create: PostsDocAccessFields_relationHasManyField_Create - read: PostsDocAccessFields_relationHasManyField_Read - update: PostsDocAccessFields_relationHasManyField_Update - delete: PostsDocAccessFields_relationHasManyField_Delete -} - -type PostsDocAccessFields_relationHasManyField_Create { - permission: Boolean! -} - -type PostsDocAccessFields_relationHasManyField_Read { - permission: Boolean! -} - -type PostsDocAccessFields_relationHasManyField_Update { - permission: Boolean! -} - -type PostsDocAccessFields_relationHasManyField_Delete { - permission: Boolean! -} - -type PostsDocAccessFields_relationMultiRelationTo { - create: PostsDocAccessFields_relationMultiRelationTo_Create - read: PostsDocAccessFields_relationMultiRelationTo_Read - update: PostsDocAccessFields_relationMultiRelationTo_Update - delete: PostsDocAccessFields_relationMultiRelationTo_Delete -} - -type PostsDocAccessFields_relationMultiRelationTo_Create { - permission: Boolean! -} - -type PostsDocAccessFields_relationMultiRelationTo_Read { - permission: Boolean! -} - -type PostsDocAccessFields_relationMultiRelationTo_Update { - permission: Boolean! -} - -type PostsDocAccessFields_relationMultiRelationTo_Delete { - permission: Boolean! -} - -type PostsDocAccessFields_relationMultiRelationToHasMany { - create: PostsDocAccessFields_relationMultiRelationToHasMany_Create - read: PostsDocAccessFields_relationMultiRelationToHasMany_Read - update: PostsDocAccessFields_relationMultiRelationToHasMany_Update - delete: PostsDocAccessFields_relationMultiRelationToHasMany_Delete -} - -type PostsDocAccessFields_relationMultiRelationToHasMany_Create { - permission: Boolean! -} - -type PostsDocAccessFields_relationMultiRelationToHasMany_Read { - permission: Boolean! -} - -type PostsDocAccessFields_relationMultiRelationToHasMany_Update { - permission: Boolean! -} - -type PostsDocAccessFields_relationMultiRelationToHasMany_Delete { - permission: Boolean! -} - -type PostsDocAccessFields_updatedAt { - create: PostsDocAccessFields_updatedAt_Create - read: PostsDocAccessFields_updatedAt_Read - update: PostsDocAccessFields_updatedAt_Update - delete: PostsDocAccessFields_updatedAt_Delete -} - -type PostsDocAccessFields_updatedAt_Create { - permission: Boolean! -} - -type PostsDocAccessFields_updatedAt_Read { - permission: Boolean! -} - -type PostsDocAccessFields_updatedAt_Update { - permission: Boolean! -} - -type PostsDocAccessFields_updatedAt_Delete { - permission: Boolean! -} - -type PostsDocAccessFields_createdAt { - create: PostsDocAccessFields_createdAt_Create - read: PostsDocAccessFields_createdAt_Read - update: PostsDocAccessFields_createdAt_Update - delete: PostsDocAccessFields_createdAt_Delete -} - -type PostsDocAccessFields_createdAt_Create { - permission: Boolean! -} - -type PostsDocAccessFields_createdAt_Read { - permission: Boolean! -} - -type PostsDocAccessFields_createdAt_Update { - permission: Boolean! -} - -type PostsDocAccessFields_createdAt_Delete { - permission: Boolean! -} - -type PostsCreateDocAccess { - permission: Boolean! - where: JSONObject -} - -""" -The `JSONObject` scalar type represents JSON objects as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). -""" -scalar JSONObject - -type PostsReadDocAccess { - permission: Boolean! - where: JSONObject -} - -type PostsUpdateDocAccess { - permission: Boolean! - where: JSONObject -} - -type PostsDeleteDocAccess { - permission: Boolean! - where: JSONObject -} - -type Relations { - docs: [Relation] - totalDocs: Int - offset: Int - limit: Int - totalPages: Int - page: Int - pagingCounter: Int - hasPrevPage: Boolean - hasNextPage: Boolean - prevPage: Int - nextPage: Int -} - -input Relation_where { - name: Relation_name_operator - updatedAt: Relation_updatedAt_operator - createdAt: Relation_createdAt_operator - id: Relation_id_operator - OR: [Relation_where_or] - AND: [Relation_where_and] -} - -input Relation_name_operator { - equals: String - not_equals: String - like: String - contains: String - in: [String] - not_in: [String] - all: [String] - exists: Boolean -} - -input Relation_updatedAt_operator { - equals: DateTime - not_equals: DateTime - greater_than_equal: DateTime - greater_than: DateTime - less_than_equal: DateTime - less_than: DateTime - like: DateTime - exists: Boolean -} - -input Relation_createdAt_operator { - equals: DateTime - not_equals: DateTime - greater_than_equal: DateTime - greater_than: DateTime - less_than_equal: DateTime - less_than: DateTime - like: DateTime - exists: Boolean -} - -input Relation_id_operator { - equals: String - not_equals: String - like: String - contains: String - in: [String] - not_in: [String] - all: [String] - exists: Boolean -} - -input Relation_where_or { - name: Relation_name_operator - updatedAt: Relation_updatedAt_operator - createdAt: Relation_createdAt_operator - id: Relation_id_operator -} - -input Relation_where_and { - name: Relation_name_operator - updatedAt: Relation_updatedAt_operator - createdAt: Relation_createdAt_operator - id: Relation_id_operator -} - -type relationDocAccess { - fields: RelationDocAccessFields - create: RelationCreateDocAccess - read: RelationReadDocAccess - update: RelationUpdateDocAccess - delete: RelationDeleteDocAccess -} - -type RelationDocAccessFields { - name: RelationDocAccessFields_name - updatedAt: RelationDocAccessFields_updatedAt - createdAt: RelationDocAccessFields_createdAt -} - -type RelationDocAccessFields_name { - create: RelationDocAccessFields_name_Create - read: RelationDocAccessFields_name_Read - update: RelationDocAccessFields_name_Update - delete: RelationDocAccessFields_name_Delete -} - -type RelationDocAccessFields_name_Create { - permission: Boolean! -} - -type RelationDocAccessFields_name_Read { - permission: Boolean! -} - -type RelationDocAccessFields_name_Update { - permission: Boolean! -} - -type RelationDocAccessFields_name_Delete { - permission: Boolean! -} - -type RelationDocAccessFields_updatedAt { - create: RelationDocAccessFields_updatedAt_Create - read: RelationDocAccessFields_updatedAt_Read - update: RelationDocAccessFields_updatedAt_Update - delete: RelationDocAccessFields_updatedAt_Delete -} - -type RelationDocAccessFields_updatedAt_Create { - permission: Boolean! -} - -type RelationDocAccessFields_updatedAt_Read { - permission: Boolean! -} - -type RelationDocAccessFields_updatedAt_Update { - permission: Boolean! -} - -type RelationDocAccessFields_updatedAt_Delete { - permission: Boolean! -} - -type RelationDocAccessFields_createdAt { - create: RelationDocAccessFields_createdAt_Create - read: RelationDocAccessFields_createdAt_Read - update: RelationDocAccessFields_createdAt_Update - delete: RelationDocAccessFields_createdAt_Delete -} - -type RelationDocAccessFields_createdAt_Create { - permission: Boolean! -} - -type RelationDocAccessFields_createdAt_Read { - permission: Boolean! -} - -type RelationDocAccessFields_createdAt_Update { - permission: Boolean! -} - -type RelationDocAccessFields_createdAt_Delete { - permission: Boolean! -} - -type RelationCreateDocAccess { - permission: Boolean! - where: JSONObject -} - -type RelationReadDocAccess { - permission: Boolean! - where: JSONObject -} - -type RelationUpdateDocAccess { - permission: Boolean! - where: JSONObject -} - -type RelationDeleteDocAccess { - permission: Boolean! - where: JSONObject -} - -type Dummies { - docs: [Dummy] - totalDocs: Int - offset: Int - limit: Int - totalPages: Int - page: Int - pagingCounter: Int - hasPrevPage: Boolean - hasNextPage: Boolean - prevPage: Int - nextPage: Int -} - -input Dummy_where { - name: Dummy_name_operator - updatedAt: Dummy_updatedAt_operator - createdAt: Dummy_createdAt_operator - id: Dummy_id_operator - OR: [Dummy_where_or] - AND: [Dummy_where_and] -} - -input Dummy_name_operator { - equals: String - not_equals: String - like: String - contains: String - in: [String] - not_in: [String] - all: [String] - exists: Boolean -} - -input Dummy_updatedAt_operator { - equals: DateTime - not_equals: DateTime - greater_than_equal: DateTime - greater_than: DateTime - less_than_equal: DateTime - less_than: DateTime - like: DateTime - exists: Boolean -} - -input Dummy_createdAt_operator { - equals: DateTime - not_equals: DateTime - greater_than_equal: DateTime - greater_than: DateTime - less_than_equal: DateTime - less_than: DateTime - like: DateTime - exists: Boolean -} - -input Dummy_id_operator { - equals: String - not_equals: String - like: String - contains: String - in: [String] - not_in: [String] - all: [String] - exists: Boolean -} - -input Dummy_where_or { - name: Dummy_name_operator - updatedAt: Dummy_updatedAt_operator - createdAt: Dummy_createdAt_operator - id: Dummy_id_operator -} - -input Dummy_where_and { - name: Dummy_name_operator - updatedAt: Dummy_updatedAt_operator - createdAt: Dummy_createdAt_operator - id: Dummy_id_operator -} - -type dummyDocAccess { - fields: DummyDocAccessFields - create: DummyCreateDocAccess - read: DummyReadDocAccess - update: DummyUpdateDocAccess - delete: DummyDeleteDocAccess -} - -type DummyDocAccessFields { - name: DummyDocAccessFields_name - updatedAt: DummyDocAccessFields_updatedAt - createdAt: DummyDocAccessFields_createdAt -} - -type DummyDocAccessFields_name { - create: DummyDocAccessFields_name_Create - read: DummyDocAccessFields_name_Read - update: DummyDocAccessFields_name_Update - delete: DummyDocAccessFields_name_Delete -} - -type DummyDocAccessFields_name_Create { - permission: Boolean! -} - -type DummyDocAccessFields_name_Read { - permission: Boolean! -} - -type DummyDocAccessFields_name_Update { - permission: Boolean! -} - -type DummyDocAccessFields_name_Delete { - permission: Boolean! -} - -type DummyDocAccessFields_updatedAt { - create: DummyDocAccessFields_updatedAt_Create - read: DummyDocAccessFields_updatedAt_Read - update: DummyDocAccessFields_updatedAt_Update - delete: DummyDocAccessFields_updatedAt_Delete -} - -type DummyDocAccessFields_updatedAt_Create { - permission: Boolean! -} - -type DummyDocAccessFields_updatedAt_Read { - permission: Boolean! -} - -type DummyDocAccessFields_updatedAt_Update { - permission: Boolean! -} - -type DummyDocAccessFields_updatedAt_Delete { - permission: Boolean! -} - -type DummyDocAccessFields_createdAt { - create: DummyDocAccessFields_createdAt_Create - read: DummyDocAccessFields_createdAt_Read - update: DummyDocAccessFields_createdAt_Update - delete: DummyDocAccessFields_createdAt_Delete -} - -type DummyDocAccessFields_createdAt_Create { - permission: Boolean! -} - -type DummyDocAccessFields_createdAt_Read { - permission: Boolean! -} - -type DummyDocAccessFields_createdAt_Update { - permission: Boolean! -} - -type DummyDocAccessFields_createdAt_Delete { - permission: Boolean! -} - -type DummyCreateDocAccess { - permission: Boolean! - where: JSONObject -} - -type DummyReadDocAccess { - permission: Boolean! - where: JSONObject -} - -type DummyUpdateDocAccess { - permission: Boolean! - where: JSONObject -} - -type DummyDeleteDocAccess { - permission: Boolean! - where: JSONObject -} - -type User { - id: String - updatedAt: DateTime - createdAt: DateTime - email: EmailAddress - resetPasswordToken: String - resetPasswordExpiration: DateTime - loginAttempts: Float - lockUntil: DateTime - password: String! -} - -""" -A field whose value conforms to the standard internet email address format as specified in HTML Spec: https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address. -""" -scalar EmailAddress @specifiedBy(url: "https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address") - -type Users { - docs: [User] - totalDocs: Int - offset: Int - limit: Int - totalPages: Int - page: Int - pagingCounter: Int - hasPrevPage: Boolean - hasNextPage: Boolean - prevPage: Int - nextPage: Int -} - -input User_where { - updatedAt: User_updatedAt_operator - createdAt: User_createdAt_operator - email: User_email_operator - id: User_id_operator - OR: [User_where_or] - AND: [User_where_and] -} - -input User_updatedAt_operator { - equals: DateTime - not_equals: DateTime - greater_than_equal: DateTime - greater_than: DateTime - less_than_equal: DateTime - less_than: DateTime - like: DateTime - exists: Boolean -} - -input User_createdAt_operator { - equals: DateTime - not_equals: DateTime - greater_than_equal: DateTime - greater_than: DateTime - less_than_equal: DateTime - less_than: DateTime - like: DateTime - exists: Boolean -} - -input User_email_operator { - equals: EmailAddress - not_equals: EmailAddress - like: EmailAddress - contains: EmailAddress - in: [EmailAddress] - not_in: [EmailAddress] - all: [EmailAddress] - exists: Boolean -} - -input User_id_operator { - equals: String - not_equals: String - like: String - contains: String - in: [String] - not_in: [String] - all: [String] - exists: Boolean -} - -input User_where_or { - updatedAt: User_updatedAt_operator - createdAt: User_createdAt_operator - email: User_email_operator - id: User_id_operator -} - -input User_where_and { - updatedAt: User_updatedAt_operator - createdAt: User_createdAt_operator - email: User_email_operator - id: User_id_operator -} - -type usersDocAccess { - fields: UsersDocAccessFields - create: UsersCreateDocAccess - read: UsersReadDocAccess - update: UsersUpdateDocAccess - delete: UsersDeleteDocAccess - unlock: UsersUnlockDocAccess -} - -type UsersDocAccessFields { - updatedAt: UsersDocAccessFields_updatedAt - createdAt: UsersDocAccessFields_createdAt - email: UsersDocAccessFields_email - password: UsersDocAccessFields_password -} - -type UsersDocAccessFields_updatedAt { - create: UsersDocAccessFields_updatedAt_Create - read: UsersDocAccessFields_updatedAt_Read - update: UsersDocAccessFields_updatedAt_Update - delete: UsersDocAccessFields_updatedAt_Delete -} - -type UsersDocAccessFields_updatedAt_Create { - permission: Boolean! -} - -type UsersDocAccessFields_updatedAt_Read { - permission: Boolean! -} - -type UsersDocAccessFields_updatedAt_Update { - permission: Boolean! -} - -type UsersDocAccessFields_updatedAt_Delete { - permission: Boolean! -} - -type UsersDocAccessFields_createdAt { - create: UsersDocAccessFields_createdAt_Create - read: UsersDocAccessFields_createdAt_Read - update: UsersDocAccessFields_createdAt_Update - delete: UsersDocAccessFields_createdAt_Delete -} - -type UsersDocAccessFields_createdAt_Create { - permission: Boolean! -} - -type UsersDocAccessFields_createdAt_Read { - permission: Boolean! -} - -type UsersDocAccessFields_createdAt_Update { - permission: Boolean! -} - -type UsersDocAccessFields_createdAt_Delete { - permission: Boolean! -} - -type UsersDocAccessFields_email { - create: UsersDocAccessFields_email_Create - read: UsersDocAccessFields_email_Read - update: UsersDocAccessFields_email_Update - delete: UsersDocAccessFields_email_Delete -} - -type UsersDocAccessFields_email_Create { - permission: Boolean! -} - -type UsersDocAccessFields_email_Read { - permission: Boolean! -} - -type UsersDocAccessFields_email_Update { - permission: Boolean! -} - -type UsersDocAccessFields_email_Delete { - permission: Boolean! -} - -type UsersDocAccessFields_password { - create: UsersDocAccessFields_password_Create - read: UsersDocAccessFields_password_Read - update: UsersDocAccessFields_password_Update - delete: UsersDocAccessFields_password_Delete -} - -type UsersDocAccessFields_password_Create { - permission: Boolean! -} - -type UsersDocAccessFields_password_Read { - permission: Boolean! -} - -type UsersDocAccessFields_password_Update { - permission: Boolean! -} - -type UsersDocAccessFields_password_Delete { - permission: Boolean! -} - -type UsersCreateDocAccess { - permission: Boolean! - where: JSONObject -} - -type UsersReadDocAccess { - permission: Boolean! - where: JSONObject -} - -type UsersUpdateDocAccess { - permission: Boolean! - where: JSONObject -} - -type UsersDeleteDocAccess { - permission: Boolean! - where: JSONObject -} - -type UsersUnlockDocAccess { - permission: Boolean! - where: JSONObject -} - -type usersMe { - token: String - user: User - exp: Int - collection: String -} - -type Preference { - key: String! - value: JSON - createdAt: DateTime! - updatedAt: DateTime! -} - -""" -The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). -""" -scalar JSON - -type Access { - canAccessAdmin: Boolean! - posts: postsAccess - relation: relationAccess - dummy: dummyAccess - users: usersAccess -} - -type postsAccess { - fields: PostsFields - create: PostsCreateAccess - read: PostsReadAccess - update: PostsUpdateAccess - delete: PostsDeleteAccess -} - -type PostsFields { - title: PostsFields_title - description: PostsFields_description - number: PostsFields_number - relationField: PostsFields_relationField - relationHasManyField: PostsFields_relationHasManyField - relationMultiRelationTo: PostsFields_relationMultiRelationTo - relationMultiRelationToHasMany: PostsFields_relationMultiRelationToHasMany - updatedAt: PostsFields_updatedAt - createdAt: PostsFields_createdAt -} - -type PostsFields_title { - create: PostsFields_title_Create - read: PostsFields_title_Read - update: PostsFields_title_Update - delete: PostsFields_title_Delete -} - -type PostsFields_title_Create { - permission: Boolean! -} - -type PostsFields_title_Read { - permission: Boolean! -} - -type PostsFields_title_Update { - permission: Boolean! -} - -type PostsFields_title_Delete { - permission: Boolean! -} - -type PostsFields_description { - create: PostsFields_description_Create - read: PostsFields_description_Read - update: PostsFields_description_Update - delete: PostsFields_description_Delete -} - -type PostsFields_description_Create { - permission: Boolean! -} - -type PostsFields_description_Read { - permission: Boolean! -} - -type PostsFields_description_Update { - permission: Boolean! -} - -type PostsFields_description_Delete { - permission: Boolean! -} - -type PostsFields_number { - create: PostsFields_number_Create - read: PostsFields_number_Read - update: PostsFields_number_Update - delete: PostsFields_number_Delete -} - -type PostsFields_number_Create { - permission: Boolean! -} - -type PostsFields_number_Read { - permission: Boolean! -} - -type PostsFields_number_Update { - permission: Boolean! -} - -type PostsFields_number_Delete { - permission: Boolean! -} - -type PostsFields_relationField { - create: PostsFields_relationField_Create - read: PostsFields_relationField_Read - update: PostsFields_relationField_Update - delete: PostsFields_relationField_Delete -} - -type PostsFields_relationField_Create { - permission: Boolean! -} - -type PostsFields_relationField_Read { - permission: Boolean! -} - -type PostsFields_relationField_Update { - permission: Boolean! -} - -type PostsFields_relationField_Delete { - permission: Boolean! -} - -type PostsFields_relationHasManyField { - create: PostsFields_relationHasManyField_Create - read: PostsFields_relationHasManyField_Read - update: PostsFields_relationHasManyField_Update - delete: PostsFields_relationHasManyField_Delete -} - -type PostsFields_relationHasManyField_Create { - permission: Boolean! -} - -type PostsFields_relationHasManyField_Read { - permission: Boolean! -} - -type PostsFields_relationHasManyField_Update { - permission: Boolean! -} - -type PostsFields_relationHasManyField_Delete { - permission: Boolean! -} - -type PostsFields_relationMultiRelationTo { - create: PostsFields_relationMultiRelationTo_Create - read: PostsFields_relationMultiRelationTo_Read - update: PostsFields_relationMultiRelationTo_Update - delete: PostsFields_relationMultiRelationTo_Delete -} - -type PostsFields_relationMultiRelationTo_Create { - permission: Boolean! -} - -type PostsFields_relationMultiRelationTo_Read { - permission: Boolean! -} - -type PostsFields_relationMultiRelationTo_Update { - permission: Boolean! -} - -type PostsFields_relationMultiRelationTo_Delete { - permission: Boolean! -} - -type PostsFields_relationMultiRelationToHasMany { - create: PostsFields_relationMultiRelationToHasMany_Create - read: PostsFields_relationMultiRelationToHasMany_Read - update: PostsFields_relationMultiRelationToHasMany_Update - delete: PostsFields_relationMultiRelationToHasMany_Delete -} - -type PostsFields_relationMultiRelationToHasMany_Create { - permission: Boolean! -} - -type PostsFields_relationMultiRelationToHasMany_Read { - permission: Boolean! -} - -type PostsFields_relationMultiRelationToHasMany_Update { - permission: Boolean! -} - -type PostsFields_relationMultiRelationToHasMany_Delete { - permission: Boolean! -} - -type PostsFields_updatedAt { - create: PostsFields_updatedAt_Create - read: PostsFields_updatedAt_Read - update: PostsFields_updatedAt_Update - delete: PostsFields_updatedAt_Delete -} - -type PostsFields_updatedAt_Create { - permission: Boolean! -} - -type PostsFields_updatedAt_Read { - permission: Boolean! -} - -type PostsFields_updatedAt_Update { - permission: Boolean! -} - -type PostsFields_updatedAt_Delete { - permission: Boolean! -} - -type PostsFields_createdAt { - create: PostsFields_createdAt_Create - read: PostsFields_createdAt_Read - update: PostsFields_createdAt_Update - delete: PostsFields_createdAt_Delete -} - -type PostsFields_createdAt_Create { - permission: Boolean! -} - -type PostsFields_createdAt_Read { - permission: Boolean! -} - -type PostsFields_createdAt_Update { - permission: Boolean! -} - -type PostsFields_createdAt_Delete { - permission: Boolean! -} - -type PostsCreateAccess { - permission: Boolean! - where: JSONObject -} - -type PostsReadAccess { - permission: Boolean! - where: JSONObject -} - -type PostsUpdateAccess { - permission: Boolean! - where: JSONObject -} - -type PostsDeleteAccess { - permission: Boolean! - where: JSONObject -} - -type relationAccess { - fields: RelationFields - create: RelationCreateAccess - read: RelationReadAccess - update: RelationUpdateAccess - delete: RelationDeleteAccess -} - -type RelationFields { - name: RelationFields_name - updatedAt: RelationFields_updatedAt - createdAt: RelationFields_createdAt -} - -type RelationFields_name { - create: RelationFields_name_Create - read: RelationFields_name_Read - update: RelationFields_name_Update - delete: RelationFields_name_Delete -} - -type RelationFields_name_Create { - permission: Boolean! -} - -type RelationFields_name_Read { - permission: Boolean! -} - -type RelationFields_name_Update { - permission: Boolean! -} - -type RelationFields_name_Delete { - permission: Boolean! -} - -type RelationFields_updatedAt { - create: RelationFields_updatedAt_Create - read: RelationFields_updatedAt_Read - update: RelationFields_updatedAt_Update - delete: RelationFields_updatedAt_Delete -} - -type RelationFields_updatedAt_Create { - permission: Boolean! -} - -type RelationFields_updatedAt_Read { - permission: Boolean! -} - -type RelationFields_updatedAt_Update { - permission: Boolean! -} - -type RelationFields_updatedAt_Delete { - permission: Boolean! -} - -type RelationFields_createdAt { - create: RelationFields_createdAt_Create - read: RelationFields_createdAt_Read - update: RelationFields_createdAt_Update - delete: RelationFields_createdAt_Delete -} - -type RelationFields_createdAt_Create { - permission: Boolean! -} - -type RelationFields_createdAt_Read { - permission: Boolean! -} - -type RelationFields_createdAt_Update { - permission: Boolean! -} - -type RelationFields_createdAt_Delete { - permission: Boolean! -} - -type RelationCreateAccess { - permission: Boolean! - where: JSONObject -} - -type RelationReadAccess { - permission: Boolean! - where: JSONObject -} - -type RelationUpdateAccess { - permission: Boolean! - where: JSONObject -} - -type RelationDeleteAccess { - permission: Boolean! - where: JSONObject -} - -type dummyAccess { - fields: DummyFields - create: DummyCreateAccess - read: DummyReadAccess - update: DummyUpdateAccess - delete: DummyDeleteAccess -} - -type DummyFields { - name: DummyFields_name - updatedAt: DummyFields_updatedAt - createdAt: DummyFields_createdAt -} - -type DummyFields_name { - create: DummyFields_name_Create - read: DummyFields_name_Read - update: DummyFields_name_Update - delete: DummyFields_name_Delete -} - -type DummyFields_name_Create { - permission: Boolean! -} - -type DummyFields_name_Read { - permission: Boolean! -} - -type DummyFields_name_Update { - permission: Boolean! -} - -type DummyFields_name_Delete { - permission: Boolean! -} - -type DummyFields_updatedAt { - create: DummyFields_updatedAt_Create - read: DummyFields_updatedAt_Read - update: DummyFields_updatedAt_Update - delete: DummyFields_updatedAt_Delete -} - -type DummyFields_updatedAt_Create { - permission: Boolean! -} - -type DummyFields_updatedAt_Read { - permission: Boolean! -} - -type DummyFields_updatedAt_Update { - permission: Boolean! -} - -type DummyFields_updatedAt_Delete { - permission: Boolean! -} - -type DummyFields_createdAt { - create: DummyFields_createdAt_Create - read: DummyFields_createdAt_Read - update: DummyFields_createdAt_Update - delete: DummyFields_createdAt_Delete -} - -type DummyFields_createdAt_Create { - permission: Boolean! -} - -type DummyFields_createdAt_Read { - permission: Boolean! -} - -type DummyFields_createdAt_Update { - permission: Boolean! -} - -type DummyFields_createdAt_Delete { - permission: Boolean! -} - -type DummyCreateAccess { - permission: Boolean! - where: JSONObject -} - -type DummyReadAccess { - permission: Boolean! - where: JSONObject -} - -type DummyUpdateAccess { - permission: Boolean! - where: JSONObject -} - -type DummyDeleteAccess { - permission: Boolean! - where: JSONObject -} - -type usersAccess { - fields: UsersFields - create: UsersCreateAccess - read: UsersReadAccess - update: UsersUpdateAccess - delete: UsersDeleteAccess - unlock: UsersUnlockAccess -} - -type UsersFields { - updatedAt: UsersFields_updatedAt - createdAt: UsersFields_createdAt - email: UsersFields_email - password: UsersFields_password -} - -type UsersFields_updatedAt { - create: UsersFields_updatedAt_Create - read: UsersFields_updatedAt_Read - update: UsersFields_updatedAt_Update - delete: UsersFields_updatedAt_Delete -} - -type UsersFields_updatedAt_Create { - permission: Boolean! -} - -type UsersFields_updatedAt_Read { - permission: Boolean! -} - -type UsersFields_updatedAt_Update { - permission: Boolean! -} - -type UsersFields_updatedAt_Delete { - permission: Boolean! -} - -type UsersFields_createdAt { - create: UsersFields_createdAt_Create - read: UsersFields_createdAt_Read - update: UsersFields_createdAt_Update - delete: UsersFields_createdAt_Delete -} - -type UsersFields_createdAt_Create { - permission: Boolean! -} - -type UsersFields_createdAt_Read { - permission: Boolean! -} - -type UsersFields_createdAt_Update { - permission: Boolean! -} - -type UsersFields_createdAt_Delete { - permission: Boolean! -} - -type UsersFields_email { - create: UsersFields_email_Create - read: UsersFields_email_Read - update: UsersFields_email_Update - delete: UsersFields_email_Delete -} - -type UsersFields_email_Create { - permission: Boolean! -} - -type UsersFields_email_Read { - permission: Boolean! -} - -type UsersFields_email_Update { - permission: Boolean! -} - -type UsersFields_email_Delete { - permission: Boolean! -} - -type UsersFields_password { - create: UsersFields_password_Create - read: UsersFields_password_Read - update: UsersFields_password_Update - delete: UsersFields_password_Delete -} - -type UsersFields_password_Create { - permission: Boolean! -} - -type UsersFields_password_Read { - permission: Boolean! -} - -type UsersFields_password_Update { - permission: Boolean! -} - -type UsersFields_password_Delete { - permission: Boolean! -} - -type UsersCreateAccess { - permission: Boolean! - where: JSONObject -} - -type UsersReadAccess { - permission: Boolean! - where: JSONObject -} - -type UsersUpdateAccess { - permission: Boolean! - where: JSONObject -} - -type UsersDeleteAccess { - permission: Boolean! - where: JSONObject -} - -type UsersUnlockAccess { - permission: Boolean! - where: JSONObject -} - -type Mutation { - createPost(data: mutationPostInput!, draft: Boolean): Post - updatePost(id: String!, data: mutationPostUpdateInput!, draft: Boolean, autosave: Boolean): Post - deletePost(id: String!): Post - createRelation(data: mutationRelationInput!, draft: Boolean): Relation - updateRelation(id: String!, data: mutationRelationUpdateInput!, draft: Boolean, autosave: Boolean): Relation - deleteRelation(id: String!): Relation - createDummy(data: mutationDummyInput!, draft: Boolean): Dummy - updateDummy(id: String!, data: mutationDummyUpdateInput!, draft: Boolean, autosave: Boolean): Dummy - deleteDummy(id: String!): Dummy - createUser(data: mutationUserInput!, draft: Boolean): User - updateUser(id: String!, data: mutationUserUpdateInput!, draft: Boolean, autosave: Boolean): User - deleteUser(id: String!): User - refreshTokenUser(token: String): usersRefreshedUser - logoutUser: String - unlockUser(email: String!): Boolean! - loginUser(email: String, password: String): usersLoginResult - forgotPasswordUser(email: String!, disableEmail: Boolean, expiration: Int): Boolean! - resetPasswordUser(token: String, password: String): usersResetPassword - verifyEmailUser(token: String): Boolean - updatePreference(key: String!, value: JSON): Preference - deletePreference(key: String!): Preference -} - -input mutationPostInput { - title: String - description: String - number: Float - relationField: String - relationHasManyField: [String] - relationMultiRelationTo: Post_RelationMultiRelationToRelationshipInput - relationMultiRelationToHasMany: [Post_RelationMultiRelationToHasManyRelationshipInput] - updatedAt: String - createdAt: String -} - -input Post_RelationMultiRelationToRelationshipInput { - relationTo: Post_RelationMultiRelationToRelationshipInputRelationTo - value: JSON -} - -enum Post_RelationMultiRelationToRelationshipInputRelationTo { - relation - dummy -} - -input Post_RelationMultiRelationToHasManyRelationshipInput { - relationTo: Post_RelationMultiRelationToHasManyRelationshipInputRelationTo - value: JSON -} - -enum Post_RelationMultiRelationToHasManyRelationshipInputRelationTo { - relation - dummy -} - -input mutationPostUpdateInput { - title: String - description: String - number: Float - relationField: String - relationHasManyField: [String] - relationMultiRelationTo: PostUpdate_RelationMultiRelationToRelationshipInput - relationMultiRelationToHasMany: [PostUpdate_RelationMultiRelationToHasManyRelationshipInput] - updatedAt: String - createdAt: String -} - -input PostUpdate_RelationMultiRelationToRelationshipInput { - relationTo: PostUpdate_RelationMultiRelationToRelationshipInputRelationTo - value: JSON -} - -enum PostUpdate_RelationMultiRelationToRelationshipInputRelationTo { - relation - dummy -} - -input PostUpdate_RelationMultiRelationToHasManyRelationshipInput { - relationTo: PostUpdate_RelationMultiRelationToHasManyRelationshipInputRelationTo - value: JSON -} - -enum PostUpdate_RelationMultiRelationToHasManyRelationshipInputRelationTo { - relation - dummy -} - -input mutationRelationInput { - name: String - updatedAt: String - createdAt: String -} - -input mutationRelationUpdateInput { - name: String - updatedAt: String - createdAt: String -} - -input mutationDummyInput { - name: String - updatedAt: String - createdAt: String -} - -input mutationDummyUpdateInput { - name: String - updatedAt: String - createdAt: String -} - -input mutationUserInput { - updatedAt: String - createdAt: String - email: String - resetPasswordToken: String - resetPasswordExpiration: String - loginAttempts: Float - lockUntil: String - password: String! -} - -input mutationUserUpdateInput { - updatedAt: String - createdAt: String - email: String - resetPasswordToken: String - resetPasswordExpiration: String - loginAttempts: Float - lockUntil: String - password: String -} - -type usersRefreshedUser { - user: usersJWT - refreshedToken: String - exp: Int -} - -type usersJWT { - email: EmailAddress! - collection: String! -} - -type usersLoginResult { - token: String - user: User - exp: Int -} - -type usersResetPassword { - token: String - user: User -} \ No newline at end of file diff --git a/test/graphql-schema-gen/schema.graphql b/test/graphql-schema-gen/schema.graphql index dbb6689389..149edd2b6d 100644 --- a/test/graphql-schema-gen/schema.graphql +++ b/test/graphql-schema-gen/schema.graphql @@ -861,7 +861,7 @@ type User { id: String updatedAt: DateTime createdAt: DateTime - email: EmailAddress + email: EmailAddress! resetPasswordToken: String resetPasswordExpiration: DateTime salt: String @@ -929,7 +929,6 @@ input User_email_operator { in: [EmailAddress] not_in: [EmailAddress] all: [EmailAddress] - exists: Boolean } input User_id_operator { @@ -1855,7 +1854,7 @@ input mutationCollection2Update_NestedGroup_MetaInput { input mutationUserInput { updatedAt: String createdAt: String - email: String + email: String! resetPasswordToken: String resetPasswordExpiration: String salt: String From ee1c7db9152592164755f5107d93724fb046c884 Mon Sep 17 00:00:00 2001 From: PatrikKozak Date: Thu, 15 Jun 2023 16:59:27 -0400 Subject: [PATCH 17/78] chore: updates depth docs with N + 1 concept --- docs/getting-started/concepts.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started/concepts.mdx b/docs/getting-started/concepts.mdx index 129f5908dc..ef88409bcc 100644 --- a/docs/getting-started/concepts.mdx +++ b/docs/getting-started/concepts.mdx @@ -117,7 +117,7 @@ It is also possible to limit the depth for specific `relation` and `upload` fiel } ``` -If you were to query the Posts endpoint at, say, `http://localhost:3000/api/posts?depth=1`, you will retrieve Posts with populations one level deep. A returned result may look like the following: +If you were to query the Posts endpoint at, say, `http://localhost:3000/api/posts?depth=1`, you will retrieve Posts with populations one level deep. This depth parameter can be thought of as N, where N is the number of levels you want to populate. To populate one level further, you would simply specify N+1 as the depth. A returned result may look like the following: ``` // ?depth=1 From 56d7745139e31c5d42c5191477f409f12589a952 Mon Sep 17 00:00:00 2001 From: Jarrod Flesch <30633324+JarrodMFlesch@users.noreply.github.com> Date: Fri, 16 Jun 2023 09:09:31 -0400 Subject: [PATCH 18/78] fix: adds custom property to ui field in joi validation (#2835) --- src/fields/config/schema.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/fields/config/schema.ts b/src/fields/config/schema.ts index f3f7fd673d..e909593ed7 100644 --- a/src/fields/config/schema.ts +++ b/src/fields/config/schema.ts @@ -469,6 +469,7 @@ export const ui = joi.object().keys({ Field: componentSchema, }).default({}), }).default(), + custom: joi.object().pattern(joi.string(), joi.any()), }); const fieldSchema = joi.alternatives() From 6580f43e53d614afb717b69c9e56779c9a6e30e2 Mon Sep 17 00:00:00 2001 From: Jarrod Flesch <30633324+JarrodMFlesch@users.noreply.github.com> Date: Fri, 16 Jun 2023 12:42:59 -0400 Subject: [PATCH 19/78] chore: relocates configToJSON alongside entityToJSON and fieldsToJSON (#2827) --- src/bin/generateTypes.ts | 28 +-- ...ema.spec.ts => configToJSONSchema.spec.ts} | 9 +- ...yToJSONSchema.ts => configToJSONSchema.ts} | 169 ++++++++++-------- 3 files changed, 96 insertions(+), 110 deletions(-) rename src/utilities/{entityToJSONSchema.spec.ts => configToJSONSchema.spec.ts} (85%) rename src/utilities/{entityToJSONSchema.ts => configToJSONSchema.ts} (74%) diff --git a/src/bin/generateTypes.ts b/src/bin/generateTypes.ts index 9dc44124e2..aa9ab6e852 100644 --- a/src/bin/generateTypes.ts +++ b/src/bin/generateTypes.ts @@ -1,33 +1,9 @@ /* eslint-disable no-nested-ternary */ import fs from 'fs'; -import type { JSONSchema4 } from 'json-schema'; import { compile } from 'json-schema-to-typescript'; import Logger from '../utilities/logger'; -import { SanitizedConfig } from '../config/types'; import loadConfig from '../config/load'; -import { entityToJSONSchema, generateEntitySchemas } from '../utilities/entityToJSONSchema'; - -type DefinitionsType = { [k: string]: JSONSchema4 }; - -function configToJsonSchema(config: SanitizedConfig): JSONSchema4 { - const fieldDefinitionsMap: Map = new Map(); // mutable - const entityDefinitions: DefinitionsType = [...config.globals, ...config.collections].reduce((acc, entity) => { - acc[entity.slug] = entityToJSONSchema(config, entity, fieldDefinitionsMap); - return acc; - }, {}); - - return { - title: 'Config', - type: 'object', - additionalProperties: false, - properties: { - collections: generateEntitySchemas(config.collections), - globals: generateEntitySchemas(config.globals), - }, - required: ['collections', 'globals'], - definitions: { ...entityDefinitions, ...Object.fromEntries(fieldDefinitionsMap) }, - }; -} +import { configToJSONSchema } from '../utilities/configToJSONSchema'; export async function generateTypes(): Promise { const logger = Logger(); @@ -36,7 +12,7 @@ export async function generateTypes(): Promise { logger.info('Compiling TS types for Collections and Globals...'); - const jsonSchema = configToJsonSchema(config); + const jsonSchema = configToJSONSchema(config); compile(jsonSchema, 'Config', { bannerComment: '/* tslint:disable */\n/**\n* This file was automatically generated by Payload.\n* DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,\n* and re-run `payload generate:types` to regenerate this file.\n*/', diff --git a/src/utilities/entityToJSONSchema.spec.ts b/src/utilities/configToJSONSchema.spec.ts similarity index 85% rename from src/utilities/entityToJSONSchema.spec.ts rename to src/utilities/configToJSONSchema.spec.ts index 3ef3e4f5c7..6362a3694d 100644 --- a/src/utilities/entityToJSONSchema.spec.ts +++ b/src/utilities/configToJSONSchema.spec.ts @@ -1,8 +1,8 @@ import sanitizeConfig from '../config/sanitize'; import { Config } from '../config/types'; -import { entityToJSONSchema } from './entityToJSONSchema'; +import { configToJSONSchema } from './configToJSONSchema'; -describe('entityToJSONSchema', () => { +describe('configToJSONSchema', () => { it('should handle optional arrays with required fields', () => { const config: Config = { collections: [ @@ -27,9 +27,8 @@ describe('entityToJSONSchema', () => { }; const sanitizedConfig = sanitizeConfig(config); - const schema = entityToJSONSchema(sanitizedConfig, sanitizedConfig.collections[0]); - - expect(schema).toStrictEqual({ + const schema = configToJSONSchema(sanitizedConfig); + expect(schema?.definitions?.test).toStrictEqual({ title: 'Test', type: 'object', additionalProperties: false, diff --git a/src/utilities/entityToJSONSchema.ts b/src/utilities/configToJSONSchema.ts similarity index 74% rename from src/utilities/entityToJSONSchema.ts rename to src/utilities/configToJSONSchema.ts index 6e0cf73fe8..e7f489595f 100644 --- a/src/utilities/entityToJSONSchema.ts +++ b/src/utilities/configToJSONSchema.ts @@ -22,17 +22,6 @@ const propertyIsRequired = (field: Field) => { return false; }; -function getCollectionIDType(collections: SanitizedCollectionConfig[], slug: string): 'string' | 'number' { - const matchedCollection = collections.find((collection) => collection.slug === slug); - const customIdField = matchedCollection.fields.find((field) => 'name' in field && field.name === 'id'); - - if (customIdField && customIdField.type === 'number') { - return 'number'; - } - - return 'string'; -} - function returnOptionEnums(options: Option[]): string[] { return options.map((option) => { if (typeof option === 'object' && 'value' in option) { @@ -43,7 +32,24 @@ function returnOptionEnums(options: Option[]): string[] { }); } -function entityFieldsToJSONSchema(config: SanitizedConfig, fields: Field[], fieldDefinitionsMap: Map): { +export function generateEntitySchemas(entities: (SanitizedCollectionConfig | SanitizedGlobalConfig)[]): JSONSchema4 { + const properties = [...entities].reduce((acc, { slug }) => { + acc[slug] = { + $ref: `#/definitions/${slug}`, + }; + + return acc; + }, {}); + + return { + type: 'object', + properties, + required: Object.keys(properties), + additionalProperties: false, + }; +} + +function fieldsToJSONSchema(collectionIDFieldTypes: { [key: string]: 'string' | 'number' }, fields: Field[], interfaceNameDefinitions: Map): { properties: { [k: string]: JSONSchema4; } @@ -53,7 +59,7 @@ function entityFieldsToJSONSchema(config: SanitizedConfig, fields: Field[], fiel const requiredFields = new Set(fields.filter(propertyIsRequired).map((field) => (fieldAffectsData(field) ? field.name : ''))); return { - properties: Object.fromEntries(fields.reduce((acc, field) => { + properties: Object.fromEntries(fields.reduce((fieldSchemas, field) => { let fieldSchema: JSONSchema4; switch (field.type) { case 'text': @@ -154,14 +160,12 @@ function entityFieldsToJSONSchema(config: SanitizedConfig, fields: Field[], fiel type: 'array', items: { oneOf: field.relationTo.map((relation) => { - const idFieldType = getCollectionIDType(config.collections, relation); - return { type: 'object', additionalProperties: false, properties: { value: { - type: idFieldType, + type: collectionIDFieldTypes[relation], }, relationTo: { const: relation, @@ -197,8 +201,6 @@ function entityFieldsToJSONSchema(config: SanitizedConfig, fields: Field[], fiel } else { fieldSchema = { oneOf: field.relationTo.map((relation) => { - const idFieldType = getCollectionIDType(config.collections, relation); - return { type: 'object', additionalProperties: false, @@ -206,7 +208,7 @@ function entityFieldsToJSONSchema(config: SanitizedConfig, fields: Field[], fiel value: { oneOf: [ { - type: idFieldType, + type: collectionIDFieldTypes[relation], }, { $ref: `#/definitions/${relation}`, @@ -222,50 +224,44 @@ function entityFieldsToJSONSchema(config: SanitizedConfig, fields: Field[], fiel }), }; } - } else { - const idFieldType = getCollectionIDType(config.collections, field.relationTo); - - if (field.hasMany) { - fieldSchema = { - oneOf: [ - { - type: 'array', - items: { - type: idFieldType, - }, + } else if (field.hasMany) { + fieldSchema = { + oneOf: [ + { + type: 'array', + items: { + type: collectionIDFieldTypes[field.relationTo], }, - { - type: 'array', - items: { - $ref: `#/definitions/${field.relationTo}`, - }, - }, - ], - }; - } else { - fieldSchema = { - oneOf: [ - { - type: idFieldType, - }, - { + }, + { + type: 'array', + items: { $ref: `#/definitions/${field.relationTo}`, }, - ], - }; - } + }, + ], + }; + } else { + fieldSchema = { + oneOf: [ + { + type: collectionIDFieldTypes[field.relationTo], + }, + { + $ref: `#/definitions/${field.relationTo}`, + }, + ], + }; } break; } case 'upload': { - const idFieldType = getCollectionIDType(config.collections, field.relationTo); - fieldSchema = { oneOf: [ { - type: idFieldType, + type: collectionIDFieldTypes[field.relationTo], }, { $ref: `#/definitions/${field.relationTo}`, @@ -280,7 +276,7 @@ function entityFieldsToJSONSchema(config: SanitizedConfig, fields: Field[], fiel type: 'array', items: { oneOf: field.blocks.map((block) => { - const blockFieldSchemas = entityFieldsToJSONSchema(config, block.fields, fieldDefinitionsMap); + const blockFieldSchemas = fieldsToJSONSchema(collectionIDFieldTypes, block.fields, interfaceNameDefinitions); const blockSchema: JSONSchema4 = { type: 'object', @@ -298,7 +294,7 @@ function entityFieldsToJSONSchema(config: SanitizedConfig, fields: Field[], fiel }; if (block.interfaceName) { - fieldDefinitionsMap.set(block.interfaceName, blockSchema); + interfaceNameDefinitions.set(block.interfaceName, blockSchema); return { $ref: `#/definitions/${block.interfaceName}`, @@ -318,12 +314,12 @@ function entityFieldsToJSONSchema(config: SanitizedConfig, fields: Field[], fiel items: { type: 'object', additionalProperties: false, - ...entityFieldsToJSONSchema(config, field.fields, fieldDefinitionsMap), + ...fieldsToJSONSchema(collectionIDFieldTypes, field.fields, interfaceNameDefinitions), }, }; if (field.interfaceName) { - fieldDefinitionsMap.set(field.interfaceName, fieldSchema); + interfaceNameDefinitions.set(field.interfaceName, fieldSchema); fieldSchema = { $ref: `#/definitions/${field.interfaceName}`, @@ -334,9 +330,9 @@ function entityFieldsToJSONSchema(config: SanitizedConfig, fields: Field[], fiel case 'row': case 'collapsible': { - const childSchema = entityFieldsToJSONSchema(config, field.fields, fieldDefinitionsMap); + const childSchema = fieldsToJSONSchema(collectionIDFieldTypes, field.fields, interfaceNameDefinitions); Object.entries(childSchema.properties).forEach(([propName, propSchema]) => { - acc.set(propName, propSchema); + fieldSchemas.set(propName, propSchema); }); childSchema.required.forEach((propName) => { requiredFields.add(propName); @@ -346,10 +342,10 @@ function entityFieldsToJSONSchema(config: SanitizedConfig, fields: Field[], fiel case 'tabs': { field.tabs.forEach((tab) => { - const childSchema = entityFieldsToJSONSchema(config, tab.fields, fieldDefinitionsMap); + const childSchema = fieldsToJSONSchema(collectionIDFieldTypes, tab.fields, interfaceNameDefinitions); if (tabHasName(tab)) { // could have interface - acc.set(tab.name, { + fieldSchemas.set(tab.name, { type: 'object', additionalProperties: false, ...childSchema, @@ -357,7 +353,7 @@ function entityFieldsToJSONSchema(config: SanitizedConfig, fields: Field[], fiel requiredFields.add(tab.name); } else { Object.entries(childSchema.properties).forEach(([propName, propSchema]) => { - acc.set(propName, propSchema); + fieldSchemas.set(propName, propSchema); }); childSchema.required.forEach((propName) => { requiredFields.add(propName); @@ -371,11 +367,11 @@ function entityFieldsToJSONSchema(config: SanitizedConfig, fields: Field[], fiel fieldSchema = { type: 'object', additionalProperties: false, - ...entityFieldsToJSONSchema(config, field.fields, fieldDefinitionsMap), + ...fieldsToJSONSchema(collectionIDFieldTypes, field.fields, interfaceNameDefinitions), }; if (field.interfaceName) { - fieldDefinitionsMap.set(field.interfaceName, fieldSchema); + interfaceNameDefinitions.set(field.interfaceName, fieldSchema); fieldSchema = { $ref: `#/definitions/${field.interfaceName}`, @@ -390,16 +386,16 @@ function entityFieldsToJSONSchema(config: SanitizedConfig, fields: Field[], fiel } if (fieldSchema && fieldAffectsData(field)) { - acc.set(field.name, fieldSchema); + fieldSchemas.set(field.name, fieldSchema); } - return acc; + return fieldSchemas; }, new Map())), required: Array.from(requiredFields), }; } -export function entityToJSONSchema(config: SanitizedConfig, incomingEntity: SanitizedCollectionConfig | SanitizedGlobalConfig, fieldDefinitionsMap: Map): JSONSchema4 { +function entityToJSONSchema(config: SanitizedConfig, incomingEntity: SanitizedCollectionConfig | SanitizedGlobalConfig, interfaceNameDefinitions: Map): JSONSchema4 { const entity: SanitizedCollectionConfig | SanitizedGlobalConfig = deepCopyObject(incomingEntity); const title = entity.typescript?.interface ? entity.typescript.interface : singular(toWords(entity.slug, true)); @@ -432,27 +428,42 @@ export function entityToJSONSchema(config: SanitizedConfig, incomingEntity: Sani }); } - return { - title, - type: 'object', - additionalProperties: false, - ...entityFieldsToJSONSchema(config, entity.fields, fieldDefinitionsMap), - }; -} + // used for relationship fields, to determine whether to use a string or number type for the ID + const collectionIDFieldTypes: { [key: string]: 'string' | 'number' } = config.collections.reduce((acc, collection) => { + const customCollectionIdField = collection.fields.find((field) => 'name' in field && field.name === 'id'); -export function generateEntitySchemas(entities: (SanitizedCollectionConfig | SanitizedGlobalConfig)[]): JSONSchema4 { - const properties = [...entities].reduce((acc, { slug }) => { - acc[slug] = { - $ref: `#/definitions/${slug}`, - }; + acc[collection.slug] = customCollectionIdField?.type === 'number' + ? 'number' + : 'string'; return acc; }, {}); return { + title, type: 'object', - properties, - required: Object.keys(properties), additionalProperties: false, + ...fieldsToJSONSchema(collectionIDFieldTypes, entity.fields, interfaceNameDefinitions), + }; +} + +export function configToJSONSchema(config: SanitizedConfig): JSONSchema4 { + // a mutable Map to store custom top-level `interfaceName` types + const interfaceNameDefinitions: Map = new Map(); + const entityDefinitions: { [k: string]: JSONSchema4 } = [...config.globals, ...config.collections].reduce((acc, entity) => { + acc[entity.slug] = entityToJSONSchema(config, entity, interfaceNameDefinitions); + return acc; + }, {}); + + return { + title: 'Config', + type: 'object', + additionalProperties: false, + properties: { + collections: generateEntitySchemas(config.collections), + globals: generateEntitySchemas(config.globals), + }, + required: ['collections', 'globals'], + definitions: { ...entityDefinitions, ...Object.fromEntries(interfaceNameDefinitions) }, }; } From c3d6e1b490a69f0aadb00e54e46a8774732e6658 Mon Sep 17 00:00:00 2001 From: James Date: Fri, 16 Jun 2023 15:50:09 -0400 Subject: [PATCH 20/78] fix: ensures relations to object ids can be queried on --- src/mongoose/buildQuery.ts | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/src/mongoose/buildQuery.ts b/src/mongoose/buildQuery.ts index 450cb34207..960de97ace 100644 --- a/src/mongoose/buildQuery.ts +++ b/src/mongoose/buildQuery.ts @@ -2,7 +2,8 @@ /* eslint-disable no-await-in-loop */ /* eslint-disable no-restricted-syntax */ import deepmerge from 'deepmerge'; -import { FilterQuery } from 'mongoose'; +import objectID from 'bson-objectid'; +import mongoose, { FilterQuery } from 'mongoose'; import { combineMerge } from '../utilities/combineMerge'; import { operatorMap } from './operatorMap'; import { sanitizeQueryValue } from './sanitizeQueryValue'; @@ -328,6 +329,40 @@ export class ParamParser { if (operator && validOperators.includes(operator)) { const operatorKey = operatorMap[operator]; + if (field.type === 'relationship' || field.type === 'upload') { + let hasNumberIDRelation; + + const result = { + value: { + $or: [ + { [path]: { [operatorKey]: formattedValue } }, + ], + }, + }; + + if (typeof formattedValue === 'string') { + if (mongoose.Types.ObjectId.isValid(formattedValue)) { + result.value.$or.push({ [path]: { [operatorKey]: objectID(formattedValue) } }); + } else { + (Array.isArray(field.relationTo) ? field.relationTo : [field.relationTo]).forEach((relationTo) => { + const isRelatedToCustomNumberID = this.req.payload.collections[relationTo]?.config?.fields.find((relatedField) => { + return fieldAffectsData(relatedField) && relatedField.name === 'id' && relatedField.type === 'number'; + }); + + if (isRelatedToCustomNumberID) { + if (isRelatedToCustomNumberID.type === 'number') hasNumberIDRelation = true; + } + }); + + if (hasNumberIDRelation) result.value.$or.push({ [path]: { [operatorKey]: parseFloat(formattedValue) } }); + } + } + + if (result.value.$or.length > 1) { + return result; + } + } + // Some operators like 'near' need to define a full query // so if there is no operator key, just return the value if (!operatorKey) { From 70cf8487e741b75b1cfe52f5bcf2c443a0114e94 Mon Sep 17 00:00:00 2001 From: James Date: Fri, 16 Jun 2023 16:17:34 -0400 Subject: [PATCH 21/78] chore(release): v1.9.3 --- CHANGELOG.md | 10 +++++++++- package.json | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e6ed397f15..14f0054a92 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ +## [1.9.3](https://github.com/payloadcms/payload/compare/v1.9.2...v1.9.3) (2023-06-16) + + +### Bug Fixes + +* adds custom property to ui field in joi validation ([#2835](https://github.com/payloadcms/payload/issues/2835)) ([56d7745](https://github.com/payloadcms/payload/commit/56d7745139e31c5d42c5191477f409f12589a952)) +* ensures relations to object ids can be queried on ([c3d6e1b](https://github.com/payloadcms/payload/commit/c3d6e1b490a69f0aadb00e54e46a8774732e6658)) + ## [1.9.2](https://github.com/payloadcms/payload/compare/v1.9.1...v1.9.2) (2023-06-14) @@ -3266,4 +3274,4 @@ If none of your collections or globals should be publicly exposed, you don't nee - add blind index for encrypting API Keys ([9a1c1f6](https://github.com/payloadcms/payload/commit/9a1c1f64c0ea0066b679195f50e6cb1ac4bf3552)) - add license key to access routej ([2565005](https://github.com/payloadcms/payload/commit/2565005cc099797a6e3b8995e0984c28b7837e82)) -## [0.0.137](https://github.com/payloadcms/payload/commit/5c1e2846a2694a80cc8707703406c2ac1bb6af8a) (2020-11-12) +## [0.0.137](https://github.com/payloadcms/payload/commit/5c1e2846a2694a80cc8707703406c2ac1bb6af8a) (2020-11-12) \ No newline at end of file diff --git a/package.json b/package.json index 228655035f..e1b7cc0c6f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "payload", - "version": "1.9.2", + "version": "1.9.3", "description": "Node, React and MongoDB Headless CMS and Application Framework", "license": "MIT", "engines": { From 451c8c7548f7fc07cac06d65d6242e4628855a4d Mon Sep 17 00:00:00 2001 From: James Date: Fri, 16 Jun 2023 16:43:40 -0400 Subject: [PATCH 22/78] chore(release): v1.9.4 --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 14f0054a92..339d7cd58e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ +## [1.9.4](https://github.com/payloadcms/payload/compare/v1.9.3...v1.9.4) (2023-06-16) + + +### Bug Fixes + +* incorrectly return totalDocs=1 instead of the correct count when pagination=false ([2e73938](https://github.com/payloadcms/payload/commit/2e7393853447d2da41ddef79f73e9026719a674b)) + ## [1.9.3](https://github.com/payloadcms/payload/compare/v1.9.2...v1.9.3) (2023-06-16) diff --git a/package.json b/package.json index e1b7cc0c6f..4a8a70962c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "payload", - "version": "1.9.3", + "version": "1.9.4", "description": "Node, React and MongoDB Headless CMS and Application Framework", "license": "MIT", "engines": { From a88f86cc3fbcfa6b3046e99f99e50529a52b437a Mon Sep 17 00:00:00 2001 From: James Date: Fri, 16 Jun 2023 17:37:15 -0400 Subject: [PATCH 23/78] chore: ensures objectid within works properly --- src/mongoose/buildQuery.ts | 11 ++++++++++- src/mongoose/sanitizeQueryValue.ts | 8 ++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/mongoose/buildQuery.ts b/src/mongoose/buildQuery.ts index 960de97ace..3e09feab23 100644 --- a/src/mongoose/buildQuery.ts +++ b/src/mongoose/buildQuery.ts @@ -294,7 +294,16 @@ export class ParamParser { const result = await SubModel.find(subQuery, subQueryOptions); - const $in = result.map((doc) => doc._id.toString()); + const $in: unknown[] = []; + + result.forEach((doc) => { + const stringID = doc._id.toString(); + $in.push(stringID); + + if (mongoose.Types.ObjectId.isValid(stringID)) { + $in.push(doc._id); + } + }); if (pathsToQuery.length === 1) return { path, value: { $in } }; diff --git a/src/mongoose/sanitizeQueryValue.ts b/src/mongoose/sanitizeQueryValue.ts index de77e66951..4934e25a7a 100644 --- a/src/mongoose/sanitizeQueryValue.ts +++ b/src/mongoose/sanitizeQueryValue.ts @@ -50,6 +50,10 @@ export const sanitizeQueryValue = ({ field, path, operator, val, hasCustomID }: } } + if (['all', 'not_in', 'in'].includes(operator) && typeof formattedValue === 'string') { + formattedValue = createArrayFromCommaDelineated(formattedValue); + } + if (['relationship', 'upload'].includes(field.type)) { if (val === 'null') { formattedValue = null; @@ -99,10 +103,6 @@ export const sanitizeQueryValue = ({ field, path, operator, val, hasCustomID }: } } - if (['all', 'not_in', 'in'].includes(operator) && typeof formattedValue === 'string') { - formattedValue = createArrayFromCommaDelineated(formattedValue); - } - if (path !== '_id' || (path === '_id' && hasCustomID && field.type === 'text')) { if (operator === 'contains') { formattedValue = { $regex: formattedValue, $options: 'i' }; From 51c2ab16728fc40c26be20ba861a6992c90da5f9 Mon Sep 17 00:00:00 2001 From: James Date: Fri, 16 Jun 2023 17:41:40 -0400 Subject: [PATCH 24/78] chore(release): v1.9.5 --- CHANGELOG.md | 2 ++ package.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 339d7cd58e..923a9bf39b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ +## [1.9.5](https://github.com/payloadcms/payload/compare/v1.9.4...v1.9.5) (2023-06-16) + ## [1.9.4](https://github.com/payloadcms/payload/compare/v1.9.3...v1.9.4) (2023-06-16) diff --git a/package.json b/package.json index 4a8a70962c..6a65e42c01 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "payload", - "version": "1.9.4", + "version": "1.9.5", "description": "Node, React and MongoDB Headless CMS and Application Framework", "license": "MIT", "engines": { From 0d8d7f358d390184f6f888d77858b4a145e94214 Mon Sep 17 00:00:00 2001 From: Alessio Gravili <70709113+AlessioGr@users.noreply.github.com> Date: Sun, 18 Jun 2023 02:09:30 +0200 Subject: [PATCH 25/78] fix: deprecate min/max in exchange for minRows and maxRows for relationship field (#2826) * fix: deprecate min/max in exchange for minRows and maxRows for relationship * fix: update validations unit tests with minRows and maxRows * fix: incorrect types * move to sanitize --- docs/fields/relationship.mdx | 4 ++-- src/fields/config/sanitize.ts | 11 +++++++++++ src/fields/config/schema.ts | 8 +++++++- src/fields/config/types.ts | 18 +++++++++++++++++- src/fields/validations.spec.ts | 4 ++-- src/fields/validations.ts | 12 ++++++------ test/fields/collections/Relationship/index.ts | 4 ++-- 7 files changed, 47 insertions(+), 14 deletions(-) diff --git a/docs/fields/relationship.mdx b/docs/fields/relationship.mdx index f42f848935..bb7975e385 100644 --- a/docs/fields/relationship.mdx +++ b/docs/fields/relationship.mdx @@ -25,8 +25,8 @@ keywords: relationship, fields, config, configuration, documentation, Content Ma | **`relationTo`** \* | Provide one or many collection `slug`s to be able to assign relationships to. | | **`filterOptions`** | A query to filter which options appear in the UI and validate against. [More](#filtering-relationship-options). | | **`hasMany`** | Boolean when, if set to `true`, allows this field to have many relations instead of only one. | -| **`min`** | A number for the fewest allowed items during validation when a value is present. Used with `hasMany`. | -| **`max`** | A number for the most allowed items during validation when a value is present. Used with `hasMany`. | +| **`minRows`** | A number for the fewest allowed items during validation when a value is present. Used with `hasMany`. | +| **`maxRows`** | A number for the most allowed items during validation when a value is present. Used with `hasMany`. | | **`maxDepth`** | Sets a number limit on iterations of related documents to populate when queried. [Depth](/docs/getting-started/concepts#depth) | | **`label`** | Text used as a field label in the Admin panel or an object with keys for each language. | | **`unique`** | Enforce that each entry in the Collection has a unique value for this field. | diff --git a/src/fields/config/sanitize.ts b/src/fields/config/sanitize.ts index 4709d2b05c..56a23de91e 100644 --- a/src/fields/config/sanitize.ts +++ b/src/fields/config/sanitize.ts @@ -35,6 +35,17 @@ const sanitizeFields = (fields: Field[], validRelationships: string[]): Field[] throw new InvalidFieldRelationship(field, relationship); } }); + + if (field.type === 'relationship') { + if (field.min && !field.minRows) { + console.warn(`(payload): The "min" property is deprecated for the Relationship field "${field.name}" and will be removed in a future version. Please use "minRows" instead.`); + } + if (field.max && !field.maxRows) { + console.warn(`(payload): The "max" property is deprecated for the Relationship field "${field.name}" and will be removed in a future version. Please use "maxRows" instead.`); + } + field.minRows = field.minRows || field.min; + field.maxRows = field.maxRows || field.max; + } } if (field.type === 'blocks' && field.blocks) { diff --git a/src/fields/config/schema.ts b/src/fields/config/schema.ts index e909593ed7..50b268e2d2 100644 --- a/src/fields/config/schema.ts +++ b/src/fields/config/schema.ts @@ -336,8 +336,14 @@ export const relationship = baseField.keys({ allowCreate: joi.boolean().default(true), }), min: joi.number() - .when('hasMany', { is: joi.not(true), then: joi.forbidden() }), + .when('hasMany', { is: joi.not(true), then: joi.forbidden() }) + .warning('deprecated', { message: 'Use minRows instead.' }), max: joi.number() + .when('hasMany', { is: joi.not(true), then: joi.forbidden() }) + .warning('deprecated', { message: 'Use maxRows instead.' }), + minRows: joi.number() + .when('hasMany', { is: joi.not(true), then: joi.forbidden() }), + maxRows: joi.number() .when('hasMany', { is: joi.not(true), then: joi.forbidden() }), }); diff --git a/src/fields/config/types.ts b/src/fields/config/types.ts index 7247322fe6..fbb1727e7c 100644 --- a/src/fields/config/types.ts +++ b/src/fields/config/types.ts @@ -312,15 +312,31 @@ export type RelationshipField = FieldBase & { admin?: Admin & { isSortable?: boolean; allowCreate?: boolean; - } + }, } & ({ hasMany: true + /** + * @deprecated Use 'minRows' instead + */ min?: number + /** + * @deprecated Use 'maxRows' instead + */ max?: number + minRows?: number + maxRows?: number } | { hasMany?: false | undefined + /** + * @deprecated Use 'minRows' instead + */ min?: undefined + /** + * @deprecated Use 'maxRows' instead + */ max?: undefined + minRows?: undefined + maxRows?: undefined }) export type ValueWithRelation = { diff --git a/src/fields/validations.spec.ts b/src/fields/validations.spec.ts index edfd95d190..cc2cfda722 100644 --- a/src/fields/validations.spec.ts +++ b/src/fields/validations.spec.ts @@ -223,7 +223,7 @@ describe('Field Validations', () => { const minOptions = { ...relationshipOptions, hasMany: true, - min: 2, + minRows: 2, }; const val = ['a']; @@ -237,7 +237,7 @@ describe('Field Validations', () => { it('should enforce hasMany max', async () => { const maxOptions = { ...relationshipOptions, - max: 2, + maxRows: 2, hasMany: true, }; let val = ['a', 'b', 'c']; diff --git a/src/fields/validations.ts b/src/fields/validations.ts index 7da22d442b..19fbf04284 100644 --- a/src/fields/validations.ts +++ b/src/fields/validations.ts @@ -277,8 +277,8 @@ export const upload: Validate = (value: string, o export const relationship: Validate = async (value: RelationshipValue, options) => { const { required, - min, - max, + minRows, + maxRows, relationTo, payload, t, @@ -289,12 +289,12 @@ export const relationship: Validate = async } if (Array.isArray(value)) { - if (min && value.length < min) { - return t('validation:lessThanMin', { count: min, label: t('rows') }); + if (minRows && value.length < minRows) { + return t('validation:lessThanMin', { count: minRows, label: t('rows') }); } - if (max && value.length > max) { - return t('validation:greaterThanMax', { count: max, label: t('rows') }); + if (maxRows && value.length > maxRows) { + return t('validation:greaterThanMax', { count: maxRows, label: t('rows') }); } } diff --git a/test/fields/collections/Relationship/index.ts b/test/fields/collections/Relationship/index.ts index 2a58ddcb71..bfa788a188 100644 --- a/test/fields/collections/Relationship/index.ts +++ b/test/fields/collections/Relationship/index.ts @@ -44,14 +44,14 @@ const RelationshipFields: CollectionConfig = { type: 'relationship', relationTo: 'text-fields', hasMany: true, - min: 2, + minRows: 2, }, { name: 'relationshipWithMax', type: 'relationship', relationTo: 'text-fields', hasMany: true, - max: 2, + maxRows: 2, }, ], }; From 6ca371cb8bb72e6a4db8a523504fa4612056517f Mon Sep 17 00:00:00 2001 From: Derk Nolte Date: Sun, 18 Jun 2023 10:14:21 +0200 Subject: [PATCH 26/78] chore: disable eslint on generated types --- src/bin/generateTypes.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/generateTypes.ts b/src/bin/generateTypes.ts index aa9ab6e852..10551e3d27 100644 --- a/src/bin/generateTypes.ts +++ b/src/bin/generateTypes.ts @@ -15,7 +15,7 @@ export async function generateTypes(): Promise { const jsonSchema = configToJSONSchema(config); compile(jsonSchema, 'Config', { - bannerComment: '/* tslint:disable */\n/**\n* This file was automatically generated by Payload.\n* DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,\n* and re-run `payload generate:types` to regenerate this file.\n*/', + bannerComment: '/* tslint:disable */\n/* eslint-disable */\n/**\n* This file was automatically generated by Payload.\n* DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,\n* and re-run `payload generate:types` to regenerate this file.\n*/', style: { singleQuote: true, }, From 762b572c51e3dbb96b815ff50d05710896f4a911 Mon Sep 17 00:00:00 2001 From: Alessio Gravili Date: Sun, 18 Jun 2023 17:24:58 +0200 Subject: [PATCH 27/78] configToJSONSchema --- utilities.d.ts | 2 +- utilities.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/utilities.d.ts b/utilities.d.ts index 4ea60412d6..1249f3c4bd 100644 --- a/utilities.d.ts +++ b/utilities.d.ts @@ -1 +1 @@ -export * from './dist/utilities/entityToJSONSchema'; +export * from './dist/utilities/configToJSONSchema'; diff --git a/utilities.js b/utilities.js index 40e9b88650..0e6fcd443b 100644 --- a/utilities.js +++ b/utilities.js @@ -1,4 +1,4 @@ -const { entityToJSONSchema } = require('./dist/utilities/entityToJSONSchema'); +const { entityToJSONSchema } = require('./dist/utilities/configToJSONSchema'); module.exports = { entityToJSONSchema, From 4dd703a6bff0ab7d06af234baa975553bd62f176 Mon Sep 17 00:00:00 2001 From: James Date: Mon, 19 Jun 2023 10:13:47 -0400 Subject: [PATCH 28/78] fix: slow like queries with lots of records --- src/mongoose/buildQuery.ts | 17 +++++++++++++++++ src/mongoose/sanitizeQueryValue.ts | 6 ------ test/collections-rest/int.spec.ts | 16 ++++++++++++++++ 3 files changed, 33 insertions(+), 6 deletions(-) diff --git a/src/mongoose/buildQuery.ts b/src/mongoose/buildQuery.ts index 3e09feab23..c88c885ad3 100644 --- a/src/mongoose/buildQuery.ts +++ b/src/mongoose/buildQuery.ts @@ -372,6 +372,23 @@ export class ParamParser { } } + if (operator === 'like' && typeof formattedValue === 'string') { + const words = formattedValue.split(' '); + + const result = { + value: { + $and: words.map((word) => ({ + [path]: { + $regex: word.replace(/[\\^$*+?\\.()|[\]{}]/g, '\\$&'), + $options: 'i', + }, + })), + }, + }; + + return result; + } + // Some operators like 'near' need to define a full query // so if there is no operator key, just return the value if (!operatorKey) { diff --git a/src/mongoose/sanitizeQueryValue.ts b/src/mongoose/sanitizeQueryValue.ts index 4934e25a7a..00eedc8f30 100644 --- a/src/mongoose/sanitizeQueryValue.ts +++ b/src/mongoose/sanitizeQueryValue.ts @@ -1,6 +1,5 @@ import mongoose from 'mongoose'; import { createArrayFromCommaDelineated } from './createArrayFromCommaDelineated'; -import wordBoundariesRegex from '../utilities/wordBoundariesRegex'; import { Field, TabAsField } from '../fields/config/types'; type SanitizeQueryValueArgs = { @@ -107,11 +106,6 @@ export const sanitizeQueryValue = ({ field, path, operator, val, hasCustomID }: if (operator === 'contains') { formattedValue = { $regex: formattedValue, $options: 'i' }; } - - if (operator === 'like' && typeof formattedValue === 'string') { - const $regex = wordBoundariesRegex(formattedValue); - formattedValue = { $regex }; - } } if (operator === 'exists') { diff --git a/test/collections-rest/int.spec.ts b/test/collections-rest/int.spec.ts index 47a3aa2dd8..6d402a3f5d 100644 --- a/test/collections-rest/int.spec.ts +++ b/test/collections-rest/int.spec.ts @@ -648,6 +648,22 @@ describe('collections-rest', () => { expect(result.totalDocs).toEqual(1); }); + it('like - cyrillic characters in multiple words', async () => { + const post1 = await createPost({ title: 'привет, это тест полезной нагрузки' }); + + const { status, result } = await client.find({ + query: { + title: { + like: 'привет нагрузки', + }, + }, + }); + + expect(status).toEqual(200); + expect(result.docs).toEqual([post1]); + expect(result.totalDocs).toEqual(1); + }); + it('like - partial word match', async () => { const post = await createPost({ title: 'separate words should partially match' }); From 967f21734600de1fec8c1227a354ef5a417e54c5 Mon Sep 17 00:00:00 2001 From: James Date: Mon, 19 Jun 2023 10:48:17 -0400 Subject: [PATCH 29/78] feat: optimizes conditional logic performance --- .../forms/withCondition/WatchCondition.tsx | 50 +++++++++++++++ .../components/forms/withCondition/index.tsx | 62 +++++++------------ 2 files changed, 73 insertions(+), 39 deletions(-) create mode 100644 src/admin/components/forms/withCondition/WatchCondition.tsx diff --git a/src/admin/components/forms/withCondition/WatchCondition.tsx b/src/admin/components/forms/withCondition/WatchCondition.tsx new file mode 100644 index 0000000000..a0b6ca9c6f --- /dev/null +++ b/src/admin/components/forms/withCondition/WatchCondition.tsx @@ -0,0 +1,50 @@ +import React, { useEffect } from 'react'; +import { useAuth } from '../../utilities/Auth'; +import { useAllFormFields } from '../Form/context'; +import { useDocumentInfo } from '../../utilities/DocumentInfo'; +import reduceFieldsToValues from '../Form/reduceFieldsToValues'; +import getSiblingData from '../Form/getSiblingData'; +import { Condition } from '../../../../fields/config/types'; + +type Props = { + path?: string + name: string + condition: Condition +} + +export const WatchCondition: React.FC = ({ + path: pathFromProps, + name, + condition, +}) => { + const path = typeof pathFromProps === 'string' ? pathFromProps : name; + + const { user } = useAuth(); + const [fields, dispatchFields] = useAllFormFields(); + const { id } = useDocumentInfo(); + + const data = reduceFieldsToValues(fields, true); + const siblingData = getSiblingData(fields, path); + + // Manually provide ID to `data` + data.id = id; + + const hasCondition = Boolean(condition); + const currentlyPassesCondition = hasCondition ? condition(data, siblingData, { user }) : true; + const field = fields[path]; + const existingConditionPasses = field?.passesCondition; + + useEffect(() => { + if (hasCondition) { + if (!existingConditionPasses && currentlyPassesCondition) { + dispatchFields({ type: 'MODIFY_CONDITION', path, result: true, user }); + } + + if (!currentlyPassesCondition && (existingConditionPasses || typeof existingConditionPasses === 'undefined')) { + dispatchFields({ type: 'MODIFY_CONDITION', path, result: false, user }); + } + } + }, [currentlyPassesCondition, existingConditionPasses, dispatchFields, path, hasCondition, user]); + + return null; +}; diff --git a/src/admin/components/forms/withCondition/index.tsx b/src/admin/components/forms/withCondition/index.tsx index 490cbe4b68..f9270872dc 100644 --- a/src/admin/components/forms/withCondition/index.tsx +++ b/src/admin/components/forms/withCondition/index.tsx @@ -1,12 +1,9 @@ 'use client'; -import React, { useEffect } from 'react'; +import React from 'react'; import { FieldBase } from '../../../../fields/config/types'; -import { useAllFormFields } from '../Form/context'; -import getSiblingData from '../Form/getSiblingData'; -import reduceFieldsToValues from '../Form/reduceFieldsToValues'; -import { useDocumentInfo } from '../../utilities/DocumentInfo'; -import { useAuth } from '../../utilities/Auth'; +import { WatchCondition } from './WatchCondition'; +import { useFormFields } from '../Form/context'; const withCondition =

>(Field: React.ComponentType

): React.FC

=> { const CheckForCondition: React.FC

= (props) => { @@ -26,7 +23,7 @@ const withCondition =

>(Field: React.Component const WithCondition: React.FC

= (props) => { const { name, - path: pathFromProps, + path, admin: { condition, } = {}, @@ -34,41 +31,28 @@ const withCondition =

>(Field: React.Component path?: string }; - const path = typeof pathFromProps === 'string' ? pathFromProps : name; + const passesCondition = useFormFields(([fields]) => fields[path]?.passesCondition); - const { user } = useAuth(); - const [fields, dispatchFields] = useAllFormFields(); - const { id } = useDocumentInfo(); - - const data = reduceFieldsToValues(fields, true); - const siblingData = getSiblingData(fields, path); - - // Manually provide ID to `data` - data.id = id; - - const hasCondition = Boolean(condition); - const currentlyPassesCondition = hasCondition ? condition(data, siblingData, { user }) : true; - const field = fields[path]; - const existingConditionPasses = field?.passesCondition; - - - useEffect(() => { - if (hasCondition) { - if (!existingConditionPasses && currentlyPassesCondition) { - dispatchFields({ type: 'MODIFY_CONDITION', path, result: true, user }); - } - - if (!currentlyPassesCondition && (existingConditionPasses || typeof existingConditionPasses === 'undefined')) { - dispatchFields({ type: 'MODIFY_CONDITION', path, result: false, user }); - } - } - }, [currentlyPassesCondition, existingConditionPasses, dispatchFields, path, hasCondition, user]); - - if (currentlyPassesCondition) { - return ; + if (passesCondition) { + return ( + + + + + ); } - return null; + return ( + + ); }; return CheckForCondition; From 116e9ffe81f44c4b40fa578b4a8fe4bb70fd110c Mon Sep 17 00:00:00 2001 From: James Date: Mon, 19 Jun 2023 11:02:30 -0400 Subject: [PATCH 30/78] fix: #2842, querying number custom ids with in --- src/mongoose/sanitizeQueryValue.ts | 13 +++++++++---- test/collections-rest/int.spec.ts | 16 ++++++++++++++++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/mongoose/sanitizeQueryValue.ts b/src/mongoose/sanitizeQueryValue.ts index 00eedc8f30..3b48086c0d 100644 --- a/src/mongoose/sanitizeQueryValue.ts +++ b/src/mongoose/sanitizeQueryValue.ts @@ -38,7 +38,15 @@ export const sanitizeQueryValue = ({ field, path, operator, val, hasCustomID }: if (val.toLowerCase() === 'false') formattedValue = false; } - if (field.type === 'number' && typeof val === 'string') { + if (['all', 'not_in', 'in'].includes(operator) && typeof formattedValue === 'string') { + formattedValue = createArrayFromCommaDelineated(formattedValue); + + if (field.type === 'number') { + formattedValue = formattedValue.map((arrayVal) => parseFloat(arrayVal)); + } + } + + if (field.type === 'number' && typeof formattedValue === 'string') { formattedValue = Number(val); } @@ -49,9 +57,6 @@ export const sanitizeQueryValue = ({ field, path, operator, val, hasCustomID }: } } - if (['all', 'not_in', 'in'].includes(operator) && typeof formattedValue === 'string') { - formattedValue = createArrayFromCommaDelineated(formattedValue); - } if (['relationship', 'upload'].includes(field.type)) { if (val === 'null') { diff --git a/test/collections-rest/int.spec.ts b/test/collections-rest/int.spec.ts index 6d402a3f5d..37b20cfb6f 100644 --- a/test/collections-rest/int.spec.ts +++ b/test/collections-rest/int.spec.ts @@ -326,6 +326,22 @@ describe('collections-rest', () => { const { doc: updatedDoc } = await client.update({ slug: customIdNumberSlug, id: doc.id, data: { name: 'updated' } }); expect(updatedDoc.name).toEqual('updated'); }); + + it('should allow querying by in', async () => { + const id = 98234698237; + await client.create({ slug: customIdNumberSlug, data: { id, name: 'query using in operator' } }); + + const { result: { docs } } = await client.find({ + slug: customIdNumberSlug, + query: { + id: { + in: `${id}, ${2349856723948764}`, + }, + }, + }); + + expect(docs).toHaveLength(1); + }); }); }); From e9106882f721d43bcc05a1690bda7754b450404e Mon Sep 17 00:00:00 2001 From: Alessio Gravili <70709113+AlessioGr@users.noreply.github.com> Date: Mon, 19 Jun 2023 17:15:58 +0200 Subject: [PATCH 31/78] feat: automatically redirect a user back to their originally requested URL after login (#2838) --- src/admin/components/Routes.tsx | 2 +- src/admin/components/utilities/Auth/index.tsx | 4 ++-- src/admin/components/views/Login/index.tsx | 10 ++++++++-- src/admin/components/views/Logout/index.tsx | 7 ++++++- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/admin/components/Routes.tsx b/src/admin/components/Routes.tsx index 422ec3a67a..9bab1d07f4 100644 --- a/src/admin/components/Routes.tsx +++ b/src/admin/components/Routes.tsx @@ -315,7 +315,7 @@ const Routes: React.FC = () => { )} - ) : } + ) : } diff --git a/src/admin/components/utilities/Auth/index.tsx b/src/admin/components/utilities/Auth/index.tsx index a9ef2d1674..910520be24 100644 --- a/src/admin/components/utilities/Auth/index.tsx +++ b/src/admin/components/utilities/Auth/index.tsx @@ -61,7 +61,7 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ children setUser(json.user); } else { setUser(null); - push(`${admin}${logoutInactivityRoute}`); + push(`${admin}${logoutInactivityRoute}?redirect=${encodeURIComponent(window.location.pathname)}`); } }, 1000); } @@ -159,7 +159,7 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ children if (remainingTime > 0) { forceLogOut = setTimeout(() => { setUser(null); - push(`${admin}${logoutInactivityRoute}`); + push(`${admin}${logoutInactivityRoute}?redirect=${encodeURIComponent(window.location.pathname)}`); closeAllModals(); }, Math.min(remainingTime * 1000, maxTimeoutTime)); } diff --git a/src/admin/components/views/Login/index.tsx b/src/admin/components/views/Login/index.tsx index f0c7db151a..02bb399e37 100644 --- a/src/admin/components/views/Login/index.tsx +++ b/src/admin/components/views/Login/index.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { Link, useHistory } from 'react-router-dom'; +import { Link, useHistory, useLocation } from 'react-router-dom'; import { Trans, useTranslation } from 'react-i18next'; import { useConfig } from '../../utilities/Config'; import { useAuth } from '../../utilities/Auth'; @@ -41,10 +41,16 @@ const Login: React.FC = () => { const collection = collections.find(({ slug }) => slug === userSlug); + // Fetch 'redirect' from the query string which denotes the URL the user originally tried to visit. This is set in the Routes.tsx file when a user tries to access a protected route and is redirected to the login screen. + const query = new URLSearchParams(useLocation().search); + const redirect = query.get('redirect'); + + const onSuccess = (data) => { if (data.token) { setToken(data.token); - history.push(admin); + + history.push(redirect || admin); } }; diff --git a/src/admin/components/views/Logout/index.tsx b/src/admin/components/views/Logout/index.tsx index 58c3bafe40..8ae0cdc9d1 100644 --- a/src/admin/components/views/Logout/index.tsx +++ b/src/admin/components/views/Logout/index.tsx @@ -1,5 +1,6 @@ import React, { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; +import { useLocation } from 'react-router-dom'; import { useConfig } from '../../utilities/Config'; import { useAuth } from '../../utilities/Auth'; import Minimal from '../../templates/Minimal'; @@ -17,6 +18,10 @@ const Logout: React.FC<{inactivity?: boolean}> = (props) => { const { routes: { admin } } = useConfig(); const { t } = useTranslation('authentication'); + // Fetch 'redirect' from the query string which denotes the URL the user originally tried to visit. This is set in the Routes.tsx file when a user tries to access a protected route and is redirected to the login screen. + const query = new URLSearchParams(useLocation().search); + const redirect = query.get('redirect'); + useEffect(() => { logOut(); }, [logOut]); @@ -39,7 +44,7 @@ const Logout: React.FC<{inactivity?: boolean}> = (props) => { From 2c5a737715050c25c176a380c13f1739721c9846 Mon Sep 17 00:00:00 2001 From: James Date: Mon, 19 Jun 2023 13:39:11 -0400 Subject: [PATCH 32/78] chore: fixes initial state for url field --- .../RichText/elements/link/LinkDrawer/baseFields.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/admin/components/forms/field-types/RichText/elements/link/LinkDrawer/baseFields.ts b/src/admin/components/forms/field-types/RichText/elements/link/LinkDrawer/baseFields.ts index 7bba95f8f1..0d2c0080d7 100644 --- a/src/admin/components/forms/field-types/RichText/elements/link/LinkDrawer/baseFields.ts +++ b/src/admin/components/forms/field-types/RichText/elements/link/LinkDrawer/baseFields.ts @@ -46,8 +46,8 @@ export const getBaseFields = (config: Config): Field[] => [ type: 'text', required: true, admin: { - condition: ({ linkType, url }) => { - return (typeof linkType === 'undefined' && url) || linkType === 'custom'; + condition: ({ linkType }) => { + return typeof linkType === 'undefined' || linkType === 'custom'; }, }, }, From 16118960aa6d63f7a429f168ff4305f336b1b1e6 Mon Sep 17 00:00:00 2001 From: digitaledge-git <85825212+digitaledge-git@users.noreply.github.com> Date: Mon, 19 Jun 2023 20:54:40 +0200 Subject: [PATCH 33/78] fix: near query sorting by distance and pagination (#2861) --- src/collections/operations/find.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/collections/operations/find.ts b/src/collections/operations/find.ts index a504836c0b..dc9030c96b 100644 --- a/src/collections/operations/find.ts +++ b/src/collections/operations/find.ts @@ -126,7 +126,7 @@ async function find>( const paginationOptions = { page: page || 1, - sort: { + sort: useEstimatedCount ? undefined :{ [sortProperty]: sortOrder, }, limit: limitToUse, @@ -134,6 +134,7 @@ async function find>( leanWithId: true, useEstimatedCount, pagination: usePagination, + forceCountFn: useEstimatedCount, options: { // limit must also be set here, it's ignored when pagination is false limit: limitToUse, From 4af8d564790cffb79da8377358a7c8664f475ddb Mon Sep 17 00:00:00 2001 From: James Date: Mon, 19 Jun 2023 15:03:34 -0400 Subject: [PATCH 34/78] chore: ensures conditions are run in all appropriate cases --- .../RichText/elements/link/LinkDrawer/baseFields.ts | 4 ++-- src/admin/components/forms/withCondition/WatchCondition.tsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/admin/components/forms/field-types/RichText/elements/link/LinkDrawer/baseFields.ts b/src/admin/components/forms/field-types/RichText/elements/link/LinkDrawer/baseFields.ts index 0d2c0080d7..7bba95f8f1 100644 --- a/src/admin/components/forms/field-types/RichText/elements/link/LinkDrawer/baseFields.ts +++ b/src/admin/components/forms/field-types/RichText/elements/link/LinkDrawer/baseFields.ts @@ -46,8 +46,8 @@ export const getBaseFields = (config: Config): Field[] => [ type: 'text', required: true, admin: { - condition: ({ linkType }) => { - return typeof linkType === 'undefined' || linkType === 'custom'; + condition: ({ linkType, url }) => { + return (typeof linkType === 'undefined' && url) || linkType === 'custom'; }, }, }, diff --git a/src/admin/components/forms/withCondition/WatchCondition.tsx b/src/admin/components/forms/withCondition/WatchCondition.tsx index a0b6ca9c6f..8dfd646185 100644 --- a/src/admin/components/forms/withCondition/WatchCondition.tsx +++ b/src/admin/components/forms/withCondition/WatchCondition.tsx @@ -44,7 +44,7 @@ export const WatchCondition: React.FC = ({ dispatchFields({ type: 'MODIFY_CONDITION', path, result: false, user }); } } - }, [currentlyPassesCondition, existingConditionPasses, dispatchFields, path, hasCondition, user]); + }, [currentlyPassesCondition, existingConditionPasses, dispatchFields, path, hasCondition, user, fields]); return null; }; From 99f38098dd4a386437c469becc975ca86c54601f Mon Sep 17 00:00:00 2001 From: Dan Ribbens Date: Mon, 19 Jun 2023 15:17:22 -0400 Subject: [PATCH 35/78] fix: default sort with near operator (#2862) --- src/collections/operations/find.ts | 32 ++++++++++++---------- src/collections/operations/findVersions.ts | 31 ++++++++++++--------- src/globals/operations/findVersions.ts | 31 ++++++++++++--------- test/collections-rest/int.spec.ts | 32 ++++++++++++++++++++++ 4 files changed, 86 insertions(+), 40 deletions(-) diff --git a/src/collections/operations/find.ts b/src/collections/operations/find.ts index dc9030c96b..e17b979d06 100644 --- a/src/collections/operations/find.ts +++ b/src/collections/operations/find.ts @@ -71,11 +71,11 @@ async function find>( // Access // ///////////////////////////////////// - let useEstimatedCount = false; + let hasNearConstraint = false; if (where) { const constraints = flattenWhereConstraints(where); - useEstimatedCount = constraints.some((prop) => Object.keys(prop).some((key) => key === 'near')); + hasNearConstraint = constraints.some((prop) => Object.keys(prop).some((key) => key === 'near')); } let accessResult: AccessResult; @@ -111,13 +111,19 @@ async function find>( // Find // ///////////////////////////////////// - const [sortProperty, sortOrder] = buildSortParam({ - sort: args.sort ?? collectionConfig.defaultSort, - config: payload.config, - fields: collectionConfig.fields, - timestamps: collectionConfig.timestamps, - locale, - }); + let sort; + if (!hasNearConstraint) { + const [sortProperty, sortOrder] = buildSortParam({ + sort: args.sort ?? collectionConfig.defaultSort, + config: payload.config, + fields: collectionConfig.fields, + timestamps: collectionConfig.timestamps, + locale, + }); + sort = { + [sortProperty]: sortOrder, + }; + } const usePagination = pagination && limit !== 0; const limitToUse = limit ?? (usePagination ? 10 : 0); @@ -126,15 +132,13 @@ async function find>( const paginationOptions = { page: page || 1, - sort: useEstimatedCount ? undefined :{ - [sortProperty]: sortOrder, - }, + sort, limit: limitToUse, lean: true, leanWithId: true, - useEstimatedCount, pagination: usePagination, - forceCountFn: useEstimatedCount, + useEstimatedCount: hasNearConstraint, + forceCountFn: hasNearConstraint, options: { // limit must also be set here, it's ignored when pagination is false limit: limitToUse, diff --git a/src/collections/operations/findVersions.ts b/src/collections/operations/findVersions.ts index 72d43b5490..91cc88554c 100644 --- a/src/collections/operations/findVersions.ts +++ b/src/collections/operations/findVersions.ts @@ -48,12 +48,12 @@ async function findVersions>( // Access // ///////////////////////////////////// - let useEstimatedCount = false; + let hasNearConstraint = false; if (where) { const constraints = flattenWhereConstraints(where); - useEstimatedCount = constraints.some((prop) => Object.keys(prop).some((key) => key === 'near')); + hasNearConstraint = constraints.some((prop) => Object.keys(prop).some((key) => key === 'near')); } let accessResults; @@ -73,23 +73,28 @@ async function findVersions>( // Find // ///////////////////////////////////// - const [sortProperty, sortOrder] = buildSortParam({ - sort: args.sort || '-updatedAt', - fields: buildVersionCollectionFields(collectionConfig), - timestamps: true, - config: payload.config, - locale, - }); + let sort; + if (!hasNearConstraint) { + const [sortProperty, sortOrder] = buildSortParam({ + sort: args.sort || '-updatedAt', + fields: buildVersionCollectionFields(collectionConfig), + timestamps: true, + config: payload.config, + locale, + }); + sort = { + [sortProperty]: sortOrder, + }; + } const paginatedDocs = await VersionsModel.paginate(query, { page: page || 1, limit: limit ?? 10, - sort: { - [sortProperty]: sortOrder, - }, + sort, lean: true, leanWithId: true, - useEstimatedCount, + useEstimatedCount: hasNearConstraint, + forceCountFn: hasNearConstraint, }); // ///////////////////////////////////// diff --git a/src/globals/operations/findVersions.ts b/src/globals/operations/findVersions.ts index de43de4991..08fb440270 100644 --- a/src/globals/operations/findVersions.ts +++ b/src/globals/operations/findVersions.ts @@ -46,11 +46,11 @@ async function findVersions>( // Access // ///////////////////////////////////// - let useEstimatedCount = false; + let hasNearConstraint = false; if (where) { const constraints = flattenWhereConstraints(where); - useEstimatedCount = constraints.some((prop) => Object.keys(prop).some((key) => key === 'near')); + hasNearConstraint = constraints.some((prop) => Object.keys(prop).some((key) => key === 'near')); } const accessResults = !overrideAccess ? await executeAccess({ req }, globalConfig.access.readVersions) : true; @@ -67,23 +67,28 @@ async function findVersions>( // Find // ///////////////////////////////////// - const [sortProperty, sortOrder] = buildSortParam({ - sort: args.sort || '-updatedAt', - fields: buildVersionGlobalFields(globalConfig), - timestamps: true, - config: payload.config, - locale, - }); + let sort; + if (!hasNearConstraint) { + const [sortProperty, sortOrder] = buildSortParam({ + sort: args.sort || '-updatedAt', + fields: buildVersionGlobalFields(globalConfig), + timestamps: true, + config: payload.config, + locale, + }); + sort = { + [sortProperty]: sortOrder, + }; + } const paginatedDocs = await VersionsModel.paginate(query, { page: page || 1, limit: limit ?? 10, - sort: { - [sortProperty]: sortOrder, - }, + sort, lean: true, leanWithId: true, - useEstimatedCount, + useEstimatedCount: hasNearConstraint, + forceCountFn: hasNearConstraint, }); // ///////////////////////////////////// diff --git a/test/collections-rest/int.spec.ts b/test/collections-rest/int.spec.ts index 37b20cfb6f..30304c7f35 100644 --- a/test/collections-rest/int.spec.ts +++ b/test/collections-rest/int.spec.ts @@ -829,6 +829,38 @@ describe('collections-rest', () => { expect(status).toEqual(200); expect(result.docs).toHaveLength(0); }); + + it('should sort find results by nearest distance', async () => { + // creating twice as many records as we are querying to get a random sample + await mapAsync([...Array(10)], async () => { + // setTimeout used to randomize the creation timestamp + setTimeout(async () => { + await payload.create({ + collection: pointSlug, + data: { + // only randomize longitude to make distance comparison easy + point: [Math.random(), 0], + }, + }); + }, Math.random()); + }); + + const { result } = await client.find({ + slug: pointSlug, + query: { + // querying large enough range to include all docs + point: { near: '0, 0, 100000, 0' }, + }, + limit: 5, + }); + const { docs } = result; + let previous = 0; + docs.forEach((({ point: coordinates }) => { + // the next document point should always be greater than the one before + expect(previous).toBeLessThanOrEqual(coordinates[0]); + [previous] = coordinates; + })); + }); }); it('or', async () => { From 85d2467d73582a372ee34e3ce93403847a1f0689 Mon Sep 17 00:00:00 2001 From: James Date: Mon, 19 Jun 2023 15:57:04 -0400 Subject: [PATCH 36/78] fix: #2831, persists payloadAPI through local operations that accept req --- src/auth/operations/local/forgotPassword.ts | 2 +- src/auth/operations/local/login.ts | 2 +- src/auth/operations/local/resetPassword.ts | 2 +- src/auth/operations/local/unlock.ts | 2 +- src/collections/operations/local/create.ts | 2 +- src/collections/operations/local/find.ts | 2 +- src/collections/operations/local/findByID.ts | 2 +- .../operations/local/findVersionByID.ts | 2 +- test/collections-graphql/config.ts | 51 +++++++++++++++++++ test/collections-graphql/int.spec.ts | 20 ++++++++ 10 files changed, 79 insertions(+), 8 deletions(-) diff --git a/src/auth/operations/local/forgotPassword.ts b/src/auth/operations/local/forgotPassword.ts index dc43ad7826..6a6ff74554 100644 --- a/src/auth/operations/local/forgotPassword.ts +++ b/src/auth/operations/local/forgotPassword.ts @@ -34,7 +34,7 @@ async function localForgotPassword( throw new APIError(`The collection with slug ${String(collectionSlug)} can't be found.`); } - req.payloadAPI = 'local'; + req.payloadAPI = req.payloadAPI || 'local'; req.payload = payload; req.i18n = i18n(payload.config.i18n); req.locale = undefined; diff --git a/src/auth/operations/local/resetPassword.ts b/src/auth/operations/local/resetPassword.ts index 1f6466ca28..7e061caa5f 100644 --- a/src/auth/operations/local/resetPassword.ts +++ b/src/auth/operations/local/resetPassword.ts @@ -34,7 +34,7 @@ async function localResetPassword } req.payload = payload; - req.payloadAPI = 'local'; + req.payloadAPI = req.payloadAPI || 'local'; req.i18n = i18n(payload.config.i18n); if (!req.t) req.t = req.i18n.t; diff --git a/src/auth/operations/local/unlock.ts b/src/auth/operations/local/unlock.ts index 70c448cab9..1080c546e7 100644 --- a/src/auth/operations/local/unlock.ts +++ b/src/auth/operations/local/unlock.ts @@ -33,7 +33,7 @@ async function localUnlock( } req.payload = payload; - req.payloadAPI = 'local'; + req.payloadAPI = req.payloadAPI || 'local'; req.i18n = i18n(payload.config.i18n); if (!req.t) req.t = req.i18n.t; diff --git a/src/collections/operations/local/create.ts b/src/collections/operations/local/create.ts index 9f0f740570..e1fcd4abc6 100644 --- a/src/collections/operations/local/create.ts +++ b/src/collections/operations/local/create.ts @@ -56,7 +56,7 @@ export default async function createLocal true, + }, + fields: [ + { + name: 'payloadAPI', + type: 'text', + hooks: { + afterRead: [ + ({ req }) => req.payloadAPI, + ], + }, + }, + ], + }, + { + slug: 'payload-api-test-twos', + access: { + read: () => true, + }, + fields: [ + { + name: 'payloadAPI', + type: 'text', + hooks: { + afterRead: [ + ({ req }) => req.payloadAPI, + ], + }, + }, + { + name: 'relation', + type: 'relationship', + relationTo: 'payload-api-test-ones', + }, + ], + }, ], onInit: async (payload) => { await payload.create({ @@ -363,5 +402,17 @@ export default buildConfig({ ], }, }); + + const payloadAPITest1 = await payload.create({ + collection: 'payload-api-test-ones', + data: {}, + }); + + await payload.create({ + collection: 'payload-api-test-twos', + data: { + relation: payloadAPITest1.id, + }, + }); }, }); diff --git a/test/collections-graphql/int.spec.ts b/test/collections-graphql/int.spec.ts index 09759e79c3..0230f64e99 100644 --- a/test/collections-graphql/int.spec.ts +++ b/test/collections-graphql/int.spec.ts @@ -86,6 +86,26 @@ describe('collections-graphql', () => { expect(docs).toContainEqual(expect.objectContaining({ id: existingDoc.id })); }); + it('should retain payload api', async () => { + const query = ` + query { + PayloadApiTestTwos { + docs { + payloadAPI + relation { + payloadAPI + } + } + } + } + `; + + const response = await client.request(query); + const res = response.PayloadApiTestTwos; + + expect(res.docs[0].relation.payloadAPI).toStrictEqual('GraphQL'); + }); + it('should update existing', async () => { const updatedTitle = 'updated title'; From a110ba2dc09cd0824a9b1eb8e011604388277bd8 Mon Sep 17 00:00:00 2001 From: Alessio Gravili <70709113+AlessioGr@users.noreply.github.com> Date: Tue, 20 Jun 2023 16:10:29 +0200 Subject: [PATCH 37/78] fix: drawer close on backspace (#2869) --- src/admin/components/elements/ReactSelect/index.tsx | 2 ++ src/admin/components/elements/ReactSelect/types.ts | 1 + .../forms/field-types/Relationship/index.tsx | 1 + .../select-components/SingleValue/index.tsx | 12 ++++++++---- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/admin/components/elements/ReactSelect/index.tsx b/src/admin/components/elements/ReactSelect/index.tsx index 1bc314e1b9..bc755fb05c 100644 --- a/src/admin/components/elements/ReactSelect/index.tsx +++ b/src/admin/components/elements/ReactSelect/index.tsx @@ -33,6 +33,7 @@ const SelectAdapter: React.FC = (props) => { isLoading, onMenuOpen, components, + selectProps, } = props; const classes = [ @@ -47,6 +48,7 @@ const SelectAdapter: React.FC = (props) => { placeholder={getTranslation(placeholder, i18n)} captureMenuScroll {...props} + customProps={selectProps} value={value} onChange={onChange} isDisabled={disabled} diff --git a/src/admin/components/elements/ReactSelect/types.ts b/src/admin/components/elements/ReactSelect/types.ts index bd234c5100..d8d6692c7c 100644 --- a/src/admin/components/elements/ReactSelect/types.ts +++ b/src/admin/components/elements/ReactSelect/types.ts @@ -65,4 +65,5 @@ export type Props = { [key: string]: React.FC } selectProps?: CustomSelectProps + backspaceRemovesValue?: boolean } diff --git a/src/admin/components/forms/field-types/Relationship/index.tsx b/src/admin/components/forms/field-types/Relationship/index.tsx index 2c146cb737..ce4e3bb6da 100644 --- a/src/admin/components/forms/field-types/Relationship/index.tsx +++ b/src/admin/components/forms/field-types/Relationship/index.tsx @@ -375,6 +375,7 @@ const Relationship: React.FC = (props) => { {!errorLoading && (

handleInputChange(newSearch, value)} onChange={!readOnly ? (selected) => { diff --git a/src/admin/components/forms/field-types/Relationship/select-components/SingleValue/index.tsx b/src/admin/components/forms/field-types/Relationship/select-components/SingleValue/index.tsx index 17ef16cab3..53c8cee6bf 100644 --- a/src/admin/components/forms/field-types/Relationship/select-components/SingleValue/index.tsx +++ b/src/admin/components/forms/field-types/Relationship/select-components/SingleValue/index.tsx @@ -18,9 +18,11 @@ export const SingleValue: React.FC> = (props) => { label, }, children, - customProps: { - setDrawerIsOpen, - onSave, + selectProps: { + customProps: { + setDrawerIsOpen, + onSave, + } = {}, } = {}, } = props; @@ -35,7 +37,9 @@ export const SingleValue: React.FC> = (props) => { }); useEffect(() => { - if (typeof setDrawerIsOpen === 'function') setDrawerIsOpen(isDrawerOpen); + if (typeof setDrawerIsOpen === 'function') { + setDrawerIsOpen(isDrawerOpen); + } }, [isDrawerOpen, setDrawerIsOpen]); return ( From 8626dc6b1a926143e7ba505f3edd924432168675 Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Tue, 20 Jun 2023 11:21:23 -0400 Subject: [PATCH 38/78] fix: fields in relationship drawer not usable #2815 (#2870) --- .../components/elements/ReactSelect/Control/index.tsx | 8 +++++--- .../elements/ReactSelect/MultiValue/index.tsx | 6 ++++-- .../elements/ReactSelect/MultiValueLabel/index.tsx | 6 ++++-- .../elements/ReactSelect/ValueContainer/index.tsx | 4 +++- .../select-components/MultiValueLabel/index.tsx | 10 ++++++---- 5 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/admin/components/elements/ReactSelect/Control/index.tsx b/src/admin/components/elements/ReactSelect/Control/index.tsx index a1f9da0470..c5329d3658 100644 --- a/src/admin/components/elements/ReactSelect/Control/index.tsx +++ b/src/admin/components/elements/ReactSelect/Control/index.tsx @@ -6,9 +6,11 @@ export const Control: React.FC> = (props) => { const { children, innerProps, - customProps: { - disableMouseDown, - disableKeyDown, + selectProps: { + customProps: { + disableMouseDown, + disableKeyDown, + } = {}, } = {}, } = props; diff --git a/src/admin/components/elements/ReactSelect/MultiValue/index.tsx b/src/admin/components/elements/ReactSelect/MultiValue/index.tsx index d3f22800db..297ab39450 100644 --- a/src/admin/components/elements/ReactSelect/MultiValue/index.tsx +++ b/src/admin/components/elements/ReactSelect/MultiValue/index.tsx @@ -17,8 +17,10 @@ export const MultiValue: React.FC> = (props) => { data: { value, }, - customProps: { - disableMouseDown, + selectProps: { + customProps: { + disableMouseDown, + } = {}, } = {}, } = props; diff --git a/src/admin/components/elements/ReactSelect/MultiValueLabel/index.tsx b/src/admin/components/elements/ReactSelect/MultiValueLabel/index.tsx index 65f6ae0422..ad5a4a852a 100644 --- a/src/admin/components/elements/ReactSelect/MultiValueLabel/index.tsx +++ b/src/admin/components/elements/ReactSelect/MultiValueLabel/index.tsx @@ -7,8 +7,10 @@ const baseClass = 'multi-value-label'; export const MultiValueLabel: React.FC> = (props) => { const { - customProps: { - draggableProps, + selectProps: { + customProps: { + draggableProps, + } = {}, } = {}, } = props; diff --git a/src/admin/components/elements/ReactSelect/ValueContainer/index.tsx b/src/admin/components/elements/ReactSelect/ValueContainer/index.tsx index cccd786519..aaf4703476 100644 --- a/src/admin/components/elements/ReactSelect/ValueContainer/index.tsx +++ b/src/admin/components/elements/ReactSelect/ValueContainer/index.tsx @@ -8,7 +8,9 @@ const baseClass = 'value-container'; export const ValueContainer: React.FC> = (props) => { const { - customProps, + selectProps: { + customProps, + } = {}, } = props; return ( diff --git a/src/admin/components/forms/field-types/Relationship/select-components/MultiValueLabel/index.tsx b/src/admin/components/forms/field-types/Relationship/select-components/MultiValueLabel/index.tsx index ad02713458..27d3af21a7 100644 --- a/src/admin/components/forms/field-types/Relationship/select-components/MultiValueLabel/index.tsx +++ b/src/admin/components/forms/field-types/Relationship/select-components/MultiValueLabel/index.tsx @@ -17,10 +17,12 @@ export const MultiValueLabel: React.FC> = (props) => { relationTo, label, }, - customProps: { - setDrawerIsOpen, - draggableProps, - onSave, + selectProps: { + customProps: { + setDrawerIsOpen, + draggableProps, + onSave, + } = {}, } = {}, } = props; From 542b5362d3ec8741aff6b1672fab7d2250e7b854 Mon Sep 17 00:00:00 2001 From: Alessio Gravili <70709113+AlessioGr@users.noreply.github.com> Date: Tue, 20 Jun 2023 17:22:49 +0200 Subject: [PATCH 39/78] fix: drawer fields are read-only if opened from a hasMany relationship (#2843) --- package.json | 4 +- playwright.config.ts | 2 +- test/fields/collections/Relationship/index.ts | 6 ++ test/fields/e2e.spec.ts | 64 +++++++++++++++++++ yarn.lock | 10 +-- 5 files changed, 78 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 6a65e42c01..a6d28fc08d 100644 --- a/package.json +++ b/package.json @@ -194,7 +194,7 @@ "webpack-hot-middleware": "^2.25.3" }, "devDependencies": { - "@playwright/test": "^1.32.3", + "@playwright/test": "1.33.0", "@release-it/conventional-changelog": "^5.1.1", "@swc/jest": "^0.2.24", "@testing-library/jest-dom": "^5.16.5", @@ -262,7 +262,7 @@ "eslint-plugin-jest-dom": "^4.0.3", "eslint-plugin-jsx-a11y": "^6.7.1", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-playwright": "^0.11.2", + "eslint-plugin-playwright": "^0.12.0", "eslint-plugin-react": "^7.32.2", "eslint-plugin-react-hooks": "^4.6.0", "form-data": "^3.0.1", diff --git a/playwright.config.ts b/playwright.config.ts index 73cd5b7dfc..655d8f6c64 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -1,7 +1,7 @@ import type { PlaywrightTestConfig } from '@playwright/test'; const config: PlaywrightTestConfig = { - // Look for test files in the "tests" directory, relative to this configuration file + // Look for test files in the "test" directory, relative to this configuration file testDir: 'test', testMatch: '*e2e.spec.ts', workers: 999, diff --git a/test/fields/collections/Relationship/index.ts b/test/fields/collections/Relationship/index.ts index bfa788a188..686b61d9d4 100644 --- a/test/fields/collections/Relationship/index.ts +++ b/test/fields/collections/Relationship/index.ts @@ -53,6 +53,12 @@ const RelationshipFields: CollectionConfig = { hasMany: true, maxRows: 2, }, + { + name: 'relationshipHasMany', + type: 'relationship', + relationTo: 'text-fields', + hasMany: true, + }, ], }; diff --git a/test/fields/e2e.spec.ts b/test/fields/e2e.spec.ts index 65f1031455..f6d2e7f340 100644 --- a/test/fields/e2e.spec.ts +++ b/test/fields/e2e.spec.ts @@ -838,6 +838,70 @@ describe('fields', () => { await page.locator('.rs__option:has-text("Seeded text document")').click(); await saveDocAndAssert(page); }); + + + // Related issue: https://github.com/payloadcms/payload/issues/2815 + test("should create hasMany relationship, open the drawer and modify a relation document's field", async () => { + await page.goto(url.create); + + // First fill out the relationship field, as it's required + { + const button = page.locator('#relationship-add-new .relationship-add-new__add-button'); + await button.click(); + await page.locator('#field-relationship .relationship-add-new__relation-button--text-fields').click(); + + const textField = page.locator('#field-text'); + const textValue = 'hello'; + + await textField.fill(textValue); + + await page.locator('[id^=doc-drawer_text-fields_1_] #action-save').click(); + await expect(page.locator('.Toastify')).toContainText('successfully'); + await page.locator('[id^=close-drawer__doc-drawer_text-fields_1_]').click(); + await page.locator('#action-save').click(); + await expect(page.locator('.Toastify')).toContainText('successfully'); + } + + // Now the relationshipHasMany field + { + const button = page.locator('#relationshipHasMany-add-new').getByRole('button', { name: 'Add new Text Field' }); + await button.click(); + + const textField = page.getByLabel('Text*'); + const textValue = 'hello'; + + await textField.fill(textValue); + + await page.locator('[id^=doc-drawer_text-fields_1_] #action-save').click(); + await expect(page.locator('.Toastify')).toContainText('successfully'); + await page.locator('[id^=close-drawer__doc-drawer_text-fields_1_]').click(); + await page.locator('#action-save').click(); + await expect(page.locator('.Toastify')).toContainText('successfully'); + } + + await page.reload(); + + // Now edit it + const textValue2 = '123'; + { + const hasManyField = await page.locator('#field-relationshipHasMany > .relationship__wrap > .react-select-container > .react-select > .rs__control'); + const editButton = await hasManyField.getByText('Edit Edit'); + await editButton.click(); + const textField2 = page.getByLabel('Text*'); + await textField2.click(); + await page.keyboard.down('1'); + await page.keyboard.down('2'); + await page.keyboard.down('3'); + await page.locator('[id^=doc-drawer_text-fields_1_] #action-save').click(); + await expect(page.locator('.Toastify')).toContainText('successfully'); + await page.locator('[id^=close-drawer__doc-drawer_text-fields_1_]').click(); + await page.locator('#action-save').click(); + await expect(page.locator('.Toastify')).toContainText('successfully'); + } + + await page.reload(); + await expect(page.locator('#field-relationshipHasMany .relationship--multi-value-label__text')).toContainText(textValue2); + }); }); describe('upload', () => { diff --git a/yarn.lock b/yarn.lock index 749dfce44c..e1ad30aac5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1855,7 +1855,7 @@ dependencies: "@octokit/openapi-types" "^17.1.2" -"@playwright/test@^1.32.3": +"@playwright/test@1.33.0": version "1.33.0" resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.33.0.tgz#669ef859efb81b143dfc624eef99d1dd92a81b67" integrity sha512-YunBa2mE7Hq4CfPkGzQRK916a4tuZoVx/EpLjeWlTVOnD4S2+fdaQZE0LJkbfhN5FTSKNLdcl7MoT5XB37bTkg== @@ -5413,10 +5413,10 @@ eslint-plugin-node@^11.1.0: resolve "^1.10.1" semver "^6.1.0" -eslint-plugin-playwright@^0.11.2: - version "0.11.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-playwright/-/eslint-plugin-playwright-0.11.2.tgz#876057d4ab19d00b44bf004e27d5ace2c8bffada" - integrity sha512-uRLRLk7uTzc8NE6t4wBU8dijQwHvC66R/h7xwdM779jsJjMUtSmeaB8ayRkkpfwi+UU5BEfwvDANwmE+ccMVDw== +eslint-plugin-playwright@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-playwright/-/eslint-plugin-playwright-0.12.0.tgz#0c728e07c217b5ea48acef46c52eefba9cf8ebd3" + integrity sha512-KXuzQjVzca5irMT/7rvzJKsVDGbQr43oQPc8i+SLEBqmfrTxlwMwRqfv9vtZqh4hpU0jmrnA/EOfwtls+5QC1w== eslint-plugin-react-hooks@^4.6.0: version "4.6.0" From 8f086e315cb30be9d399fd3022c16952fb81cb2e Mon Sep 17 00:00:00 2001 From: Alessio Gravili <70709113+AlessioGr@users.noreply.github.com> Date: Tue, 20 Jun 2023 20:21:27 +0200 Subject: [PATCH 40/78] feat: hasMany for number field (#2517) * added custom config extension points * Added custom field to documentation * fix: not building due to incorrect typings * Upload dist * point to number array test * feat: hasMany for number field * fix: types * Fix: incorrectly styles input for hasMany * Revert "point to number array test" This reverts commit 5a5162a80302e974eef15c88a1bc32cbecd457e8. * Revert "Merge branch 'production-with-custom' into number-hasmany-v2" This reverts commit dfc3ac523efc8cae70c9f0ccd48cd517b098a5e2, reversing changes made to a3b1b7dd678809c239f8042362eaeada17035af0. * test: adds test for numbers with hasMany * test: add number field e2e * Fix updated index.tsx * Fix updated index.tsx * chore: add jsDocs for hasMany property * chore: rename isMultiText to isCreatable, as it makes more sense * fix: incorrect double space in comments * chore: rename onMultiTextChange to handleHasManyChange * chore: improve ordering * docs: add documentation for hasMany * docs: add more jsdocs for number field * fix: new value not transformed to number * improve types * fix: only allow numbers as input using filterOption * fix: Option / value type breaking sortable selects * fix: typings and add id for sorting * add animation to react select * undo transitions due to glitches * fix: keyboard handler for select for empty input values * fix: validation for hasMany numbers * feat: perform validation in the filter as well * attempt to fix duplicate key issue * add todo * remove console logs * fix: stupid key warning * fix: validation tests * feat: add filterOption to keydown listener * feat: numberOnly for react-select * chore: improve variable naming * fix: allow numbers for relationship value by stringifying those for sortable react-selects * feat: generated types for hasMany number field * graphql typings part 1 * graphql defaults type * better typing for number in buildObjectType * fix: default graphql type disregarding hasMany for relationship field * feat: minRows and maxRows for hasMany numbers * simplify joi schema * working minRows and maxRows validation! * jesus christ: fix incorrect translations for number & relationship fields for greaterThanMax and lessThanMin * fix weird type error * move validation tests to validations.spec.ts and fix them * fix: make sure filterOption only passes a number array to validate function * fix: adds missing dark-mode styles for version differences view (#2812) Co-authored-by: Tylan Davis * fix: #2821 i18n ui field label (#2823) * chore: version diff styles (#2824) Co-authored-by: Tylan Davis * chore: remove --legacy-peer-deps from gh actions workflow (#2814) * chore: removes cms text from instances of payload name (#2793) * chore(release): v1.9.2 * chore: update changelog release notes v1.9.2 * chore: cleans up graphql-schema-gen test folder * fix: adds custom property to ui field in joi validation (#2835) * adjust validation * improve isnumber function * Update number.mdx --------- Co-authored-by: Teun Mooij Co-authored-by: Dan Ribbens Co-authored-by: Tylan Davis <89618855+tylandavis@users.noreply.github.com> Co-authored-by: Tylan Davis Co-authored-by: Dan Ribbens Co-authored-by: Jacob Fletcher Co-authored-by: Jarrod Flesch Co-authored-by: Jarrod Flesch <30633324+JarrodMFlesch@users.noreply.github.com> --- docs/fields/number.mdx | 3 + .../useDraggableSortable/index.tsx | 2 +- .../elements/ReactSelect/Control/index.tsx | 2 +- .../elements/ReactSelect/MultiValue/index.tsx | 4 +- .../ReactSelect/MultiValueLabel/index.tsx | 2 +- .../components/elements/ReactSelect/index.tsx | 83 ++- .../components/elements/ReactSelect/types.ts | 6 + .../forms/field-types/Number/index.scss | 6 +- .../forms/field-types/Number/index.tsx | 102 ++- src/collections/config/types.ts | 2 +- src/config/types.ts | 4 +- src/fields/config/schema.ts | 5 + src/fields/config/types.ts | 26 +- src/fields/validations.spec.ts | 25 + src/fields/validations.ts | 50 +- src/globals/config/types.ts | 2 +- src/graphql/schema/buildMutationInputType.ts | 2 +- src/graphql/schema/buildObjectType.ts | 11 +- src/graphql/schema/withOperators.ts | 13 +- src/mongoose/buildQuery.ts | 3 +- src/mongoose/buildSchema.ts | 2 +- src/translations/ar.json | 5 +- src/translations/bg.json | 5 +- src/translations/cs.json | 5 +- src/translations/de.json | 5 +- src/translations/en.json | 5 +- src/translations/es.json | 5 +- src/translations/fa.json | 5 +- src/translations/fr.json | 5 +- src/translations/hr.json | 7 +- src/translations/hu.json | 689 +++++++++--------- src/translations/it.json | 5 +- src/translations/ja.json | 5 +- src/translations/my.json | 5 +- src/translations/nb.json | 5 +- src/translations/nl.json | 5 +- src/translations/pl.json | 5 +- src/translations/pt.json | 5 +- src/translations/ro.json | 5 +- src/translations/ru.json | 5 +- src/translations/sv.json | 5 +- src/translations/th.json | 5 +- src/translations/tr.json | 5 +- src/translations/translation-schema.json | 15 +- src/translations/ua.json | 5 +- src/translations/vi.json | 5 +- src/translations/zh.json | 5 +- src/utilities/configToJSONSchema.ts | 11 +- src/utilities/isNumber.ts | 6 +- test/fields/collections/Number/index.ts | 27 + test/fields/e2e.spec.ts | 37 + test/fields/int.spec.ts | 19 + test/fields/payload-types.ts | 77 +- 53 files changed, 867 insertions(+), 491 deletions(-) diff --git a/docs/fields/number.mdx b/docs/fields/number.mdx index 263c88cbcb..b446c0d18e 100644 --- a/docs/fields/number.mdx +++ b/docs/fields/number.mdx @@ -18,6 +18,9 @@ keywords: number, fields, config, configuration, documentation, Content Manageme | **`label`** | Text used as a field label in the Admin panel or an object with keys for each language. | | **`min`** | Minimum value accepted. Used in the default `validation` function. | | **`max`** | Maximum value accepted. Used in the default `validation` function. | +| **`hasMany`** | Makes this field an ordered array of numbers instead of just a single number. | +| **`minRows`** | Minimum number of numbers in the numbers array, if `hasMany` is set to true. | +| **`maxRows`** | Maximum number of numbers in the numbers array, if `hasMany` is set to true. | | **`unique`** | Enforce that each entry in the Collection has a unique value for this field. | | **`index`** | Build a [MongoDB index](https://docs.mongodb.com/manual/indexes/) for this field to produce faster queries. Set this field to `true` if your users will perform queries on this field's data often. | | **`validate`** | Provide a custom validation function that will be executed on both the Admin panel and the backend. [More](/docs/fields/overview#validation) | diff --git a/src/admin/components/elements/DraggableSortable/useDraggableSortable/index.tsx b/src/admin/components/elements/DraggableSortable/useDraggableSortable/index.tsx index c54b756039..49e644eac5 100644 --- a/src/admin/components/elements/DraggableSortable/useDraggableSortable/index.tsx +++ b/src/admin/components/elements/DraggableSortable/useDraggableSortable/index.tsx @@ -23,6 +23,6 @@ export const useDraggableSortable = (props: UseDraggableArguments): UseDraggable isDragging, listeners, setNodeRef, - transform: transform && `translate3d(${transform.x}px, ${transform.y}px, 0)`, + transform: transform && `translate3d(${transform.x}px, ${transform.y}px, 0)`, // translate3d is faster than translate in most browsers }; }; diff --git a/src/admin/components/elements/ReactSelect/Control/index.tsx b/src/admin/components/elements/ReactSelect/Control/index.tsx index c5329d3658..fe45d832ae 100644 --- a/src/admin/components/elements/ReactSelect/Control/index.tsx +++ b/src/admin/components/elements/ReactSelect/Control/index.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { components as SelectComponents, ControlProps } from 'react-select'; -import { Option } from '../../../forms/field-types/Relationship/types'; +import type { Option } from '../types'; export const Control: React.FC> = (props) => { const { diff --git a/src/admin/components/elements/ReactSelect/MultiValue/index.tsx b/src/admin/components/elements/ReactSelect/MultiValue/index.tsx index 297ab39450..67360037dd 100644 --- a/src/admin/components/elements/ReactSelect/MultiValue/index.tsx +++ b/src/admin/components/elements/ReactSelect/MultiValue/index.tsx @@ -4,12 +4,12 @@ import { components as SelectComponents, } from 'react-select'; import { useDraggableSortable } from '../../DraggableSortable/useDraggableSortable'; -import { Option as OptionType } from '../types'; +import type { Option } from '../types'; import './index.scss'; const baseClass = 'multi-value'; -export const MultiValue: React.FC> = (props) => { +export const MultiValue: React.FC> = (props) => { const { className, isDisabled, diff --git a/src/admin/components/elements/ReactSelect/MultiValueLabel/index.tsx b/src/admin/components/elements/ReactSelect/MultiValueLabel/index.tsx index ad5a4a852a..4feafc164e 100644 --- a/src/admin/components/elements/ReactSelect/MultiValueLabel/index.tsx +++ b/src/admin/components/elements/ReactSelect/MultiValueLabel/index.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { components as SelectComponents, MultiValueProps } from 'react-select'; -import { Option } from '../../../forms/field-types/Relationship/types'; +import type { Option } from '../types'; import './index.scss'; const baseClass = 'multi-value-label'; diff --git a/src/admin/components/elements/ReactSelect/index.tsx b/src/admin/components/elements/ReactSelect/index.tsx index bc755fb05c..5a9f989177 100644 --- a/src/admin/components/elements/ReactSelect/index.tsx +++ b/src/admin/components/elements/ReactSelect/index.tsx @@ -1,5 +1,6 @@ -import React from 'react'; +import React, { KeyboardEventHandler } from 'react'; import Select from 'react-select'; +import CreatableSelect from 'react-select/creatable'; import { useTranslation } from 'react-i18next'; import { arrayMove } from '@dnd-kit/sortable'; import { Props as ReactSelectAdapterProps } from './types'; @@ -13,11 +14,20 @@ import { ClearIndicator } from './ClearIndicator'; import { MultiValueRemove } from './MultiValueRemove'; import { Control } from './Control'; import DraggableSortable from '../DraggableSortable'; +import type { Option } from './types'; import './index.scss'; + +const createOption = (label: string) => ({ + label, + value: label, +}); + + const SelectAdapter: React.FC = (props) => { const { t, i18n } = useTranslation(); + const [inputValue, setInputValue] = React.useState(''); // for creatable select const { className, @@ -30,9 +40,11 @@ const SelectAdapter: React.FC = (props) => { isSearchable = true, isClearable = true, filterOption = undefined, + numberOnly = false, isLoading, onMenuOpen, components, + isCreatable, selectProps, } = props; @@ -42,8 +54,68 @@ const SelectAdapter: React.FC = (props) => { showError && 'react-select--error', ].filter(Boolean).join(' '); + if (!isCreatable) { + return ( + = (props) => { filterOption={filterOption} onMenuOpen={onMenuOpen} menuPlacement="auto" + inputValue={inputValue} + onInputChange={(newValue) => setInputValue(newValue)} + onKeyDown={handleKeyDown} components={{ ValueContainer, SingleValue, @@ -81,8 +156,10 @@ const SortableSelect: React.FC = (props) => { value, } = props; + let ids: string[] = []; - if (value) ids = Array.isArray(value) ? value.map((item) => item?.value as string) : [value?.value as string]; // TODO: fix these types + if (value) ids = Array.isArray(value) ? value.map((item) => item?.id ?? `${item?.value}` as string) : [value?.id || `${value?.value}` as string]; + return ( boolean) | undefined, + numberOnly?: boolean, components?: { [key: string]: React.FC } diff --git a/src/admin/components/forms/field-types/Number/index.scss b/src/admin/components/forms/field-types/Number/index.scss index 2f29ff77b8..054b853bd8 100644 --- a/src/admin/components/forms/field-types/Number/index.scss +++ b/src/admin/components/forms/field-types/Number/index.scss @@ -4,8 +4,10 @@ position: relative; margin-bottom: $baseline; - input { - @include formInput; + &:not(.has-many) { + input { + @include formInput; + } } &.error { diff --git a/src/admin/components/forms/field-types/Number/index.tsx b/src/admin/components/forms/field-types/Number/index.tsx index 10fb897601..27837a1168 100644 --- a/src/admin/components/forms/field-types/Number/index.tsx +++ b/src/admin/components/forms/field-types/Number/index.tsx @@ -1,4 +1,4 @@ -import React, { useCallback } from 'react'; +import React, { useCallback, useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import useField from '../../useField'; import Label from '../../Label'; @@ -8,8 +8,11 @@ import withCondition from '../../withCondition'; import { number } from '../../../../../fields/validations'; import { Props } from './types'; import { getTranslation } from '../../../../../utilities/getTranslation'; +import { Option } from '../../../elements/ReactSelect/types'; +import ReactSelect from '../../../elements/ReactSelect'; import './index.scss'; +import { isNumber } from '../../../../../utilities/isNumber'; const NumberField: React.FC = (props) => { const { @@ -20,6 +23,9 @@ const NumberField: React.FC = (props) => { label, max, min, + hasMany, + minRows, + maxRows, admin: { readOnly, style, @@ -32,7 +38,7 @@ const NumberField: React.FC = (props) => { } = {}, } = props; - const { i18n } = useTranslation(); + const { t, i18n } = useTranslation(); const path = pathFromProps || name; @@ -45,7 +51,7 @@ const NumberField: React.FC = (props) => { showError, setValue, errorMessage, - } = useField({ + } = useField({ path, validate: memoizedValidate, condition, @@ -67,8 +73,46 @@ const NumberField: React.FC = (props) => { className, showError && 'error', readOnly && 'read-only', + hasMany && 'has-many', ].filter(Boolean).join(' '); + const [valueToRender, setValueToRender] = useState<{label: string, value: {value: number}, id: string}[]>([]); // Only for hasMany + + const handleHasManyChange = useCallback((selectedOption) => { + if (!readOnly) { + let newValue; + if (!selectedOption) { + newValue = []; + } else if (Array.isArray(selectedOption)) { + newValue = selectedOption.map((option) => Number(option.value?.value || option.value)); + } else { + newValue = [Number(selectedOption.value?.value || selectedOption.value)]; + } + + setValue(newValue); + } + }, [ + readOnly, + setValue, + ]); + + // useeffect update valueToRender: + useEffect(() => { + if (hasMany && Array.isArray(value)) { + setValueToRender(value.map((val, index) => { + return { + label: `${val}`, + value: { + value: (val as any)?.value || val, + toString: () => `${val}${index}`, + }, // You're probably wondering, why the hell is this done that way? Well, React-select automatically uses "label-value" as a key, so we will get that react duplicate key warning if we just pass in the value as multiple values can be the same. So we need to append the index to the toString() of the value to avoid that warning, as it uses that as the key. + id: `${val}${index}`, // append index to avoid duplicate keys but allow duplicate numbers + }; + })); + } + }, [value, hasMany]); + + return (
= (props) => { label={label} required={required} /> - { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - e.target.blur(); - }} - /> + {hasMany ? ( + { + // eslint-disable-next-line no-restricted-globals + return isNumber(rawInput) + }} + numberOnly + /> + ) : ( + { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + e.target.blur(); + }} + /> + )} + ; }; diff --git a/src/config/types.ts b/src/config/types.ts index 0720666988..84b9937861 100644 --- a/src/config/types.ts +++ b/src/config/types.ts @@ -194,7 +194,7 @@ export type Endpoint = { * @default false */ root?: boolean; - /** Extension point to add your custom data. */ + /** Extension point to add your custom data. */ custom?: Record; }; @@ -528,7 +528,7 @@ export type Config = { telemetry?: boolean; /** A function that is called immediately following startup that receives the Payload instance as its only argument. */ onInit?: (payload: Payload) => Promise | void; - /** Extension point to add your custom data. */ + /** Extension point to add your custom data. */ custom?: Record; }; diff --git a/src/fields/config/schema.ts b/src/fields/config/schema.ts index 50b268e2d2..2d1f2dd732 100644 --- a/src/fields/config/schema.ts +++ b/src/fields/config/schema.ts @@ -94,6 +94,11 @@ export const number = baseField.keys({ autoComplete: joi.string(), step: joi.number(), }), + hasMany: joi.boolean().default(false), + minRows: joi.number() + .when('hasMany', { is: joi.not(true), then: joi.forbidden() }), + maxRows: joi.number() + .when('hasMany', { is: joi.not(true), then: joi.forbidden() }), }); export const textarea = baseField.keys({ diff --git a/src/fields/config/types.ts b/src/fields/config/types.ts index fbb1727e7c..80e9bcd278 100644 --- a/src/fields/config/types.ts +++ b/src/fields/config/types.ts @@ -122,20 +122,40 @@ export interface FieldBase { read?: FieldAccess; update?: FieldAccess; }; - /** Extension point to add your custom data. */ + /** Extension point to add your custom data. */ custom?: Record; } export type NumberField = FieldBase & { type: 'number'; admin?: Admin & { + /** Set this property to a string that will be used for browser autocomplete. */ autoComplete?: string + /** Set this property to define a placeholder string for the field. */ placeholder?: Record | string + /** Set a value for the number field to increment / decrement using browser controls. */ step?: number } + /** Minimum value accepted. Used in the default `validation` function. */ min?: number + /** Maximum value accepted. Used in the default `validation` function. */ max?: number -} +} & ({ + /** Makes this field an ordered array of numbers instead of just a single number. */ + hasMany: true + /** Minimum number of numbers in the numbers array, if `hasMany` is set to true. */ + minRows?: number + /** Maximum number of numbers in the numbers array, if `hasMany` is set to true. */ + maxRows?: number +} | { + /** Makes this field an ordered array of numbers instead of just a single number. */ + hasMany?: false | undefined + /** Minimum number of numbers in the numbers array, if `hasMany` is set to true. */ + minRows?: undefined + /** Maximum number of numbers in the numbers array, if `hasMany` is set to true. */ + maxRows?: undefined +}) + export type TextField = FieldBase & { type: 'text'; @@ -261,7 +281,7 @@ export type UIField = { } } type: 'ui'; - /** Extension point to add your custom data. */ + /** Extension point to add your custom data. */ custom?: Record; } diff --git a/src/fields/validations.spec.ts b/src/fields/validations.spec.ts index cc2cfda722..36753b16dc 100644 --- a/src/fields/validations.spec.ts +++ b/src/fields/validations.spec.ts @@ -424,5 +424,30 @@ describe('Field Validations', () => { const result = number(val, { ...numberOptions, max: 1 }); expect(result).toBe('validation:greaterThanMax'); }); + it('should validate an array of numbers', async () => { + const val = [1.25, 2.5]; + const result = number(val, { ...numberOptions, hasMany: true }); + expect(result).toBe(true); + }); + it('should validate an array of numbers using min', async () => { + const val = [1.25, 2.5]; + const result = number(val, { ...numberOptions, hasMany: true, min: 3 }); + expect(result).toBe('validation:lessThanMin'); + }); + it('should validate an array of numbers using max', async () => { + const val = [1.25, 2.5]; + const result = number(val, { ...numberOptions, hasMany: true, max: 1 }); + expect(result).toBe('validation:greaterThanMax'); + }); + it('should validate an array of numbers using minRows', async () => { + const val = [1.25, 2.5]; + const result = number(val, { ...numberOptions, hasMany: true, minRows: 4 }); + expect(result).toBe('validation:lessThanMin'); + }); + it('should validate an array of numbers using maxRows', async () => { + const val = [1.25, 2.5, 3.5]; + const result = number(val, { ...numberOptions, hasMany: true, maxRows: 2 }); + expect(result).toBe('validation:greaterThanMax'); + }); }); }); diff --git a/src/fields/validations.ts b/src/fields/validations.ts index 19fbf04284..961eb2ba2e 100644 --- a/src/fields/validations.ts +++ b/src/fields/validations.ts @@ -24,25 +24,45 @@ import canUseDOM from '../utilities/canUseDOM'; import { isValidID } from '../utilities/isValidID'; import { getIDType } from '../utilities/getIDType'; -export const number: Validate = (value: string, { t, required, min, max }) => { - const parsedValue = parseFloat(value); +export const number: Validate = (value: number | number[], { t, required, min, max, minRows, maxRows, hasMany }) => { + const toValidate: number[] = Array.isArray(value) ? value : [value]; - if ((value && typeof parsedValue !== 'number') || (required && Number.isNaN(parsedValue)) || (value && Number.isNaN(parsedValue))) { - return t('validation:enterNumber'); + // eslint-disable-next-line no-restricted-syntax + for (const valueToValidate of toValidate) { + const floatValue = parseFloat(valueToValidate as unknown as string); + if ((value && typeof floatValue !== 'number') || (required && Number.isNaN(floatValue)) || (value && Number.isNaN(floatValue))) { + return t('validation:enterNumber'); + } + + if (typeof max === 'number' && floatValue > max) { + return t('validation:greaterThanMax', { value, max, label: t('value') }); + } + + if (typeof min === 'number' && floatValue < min) { + return t('validation:lessThanMin', { value, min, label: t('value') }); + } + + if (required && typeof floatValue !== 'number') { + return t('validation:required'); + } } - if (typeof max === 'number' && parsedValue > max) { - return t('validation:greaterThanMax', { value, max }); - } - - if (typeof min === 'number' && parsedValue < min) { - return t('validation:lessThanMin', { value, min }); - } - - if (required && typeof parsedValue !== 'number') { + if (required && toValidate.length === 0) { return t('validation:required'); } + + if (hasMany === true) { + if (minRows && toValidate.length < minRows) { + return t('validation:lessThanMin', { value: toValidate.length, min: minRows, label: t('rows') }); + } + + if (maxRows && toValidate.length > maxRows) { + return t('validation:greaterThanMax', { value: toValidate.length, max: maxRows, label: t('rows') }); + } + } + + return true; }; @@ -290,11 +310,11 @@ export const relationship: Validate = async if (Array.isArray(value)) { if (minRows && value.length < minRows) { - return t('validation:lessThanMin', { count: minRows, label: t('rows') }); + return t('validation:lessThanMin', { value: value.length, min: minRows, label: t('rows') }); } if (maxRows && value.length > maxRows) { - return t('validation:greaterThanMax', { count: maxRows, label: t('rows') }); + return t('validation:greaterThanMax', { value: value.length, max: maxRows, label: t('rows') }); } } diff --git a/src/globals/config/types.ts b/src/globals/config/types.ts index b3d22b45c3..5e97a6b335 100644 --- a/src/globals/config/types.ts +++ b/src/globals/config/types.ts @@ -132,7 +132,7 @@ export type GlobalConfig = { } fields: Field[]; admin?: GlobalAdminOptions - /** Extension point to add your custom data. */ + /** Extension point to add your custom data. */ custom?: Record; } diff --git a/src/graphql/schema/buildMutationInputType.ts b/src/graphql/schema/buildMutationInputType.ts index 3e0cab49ba..464c1334b4 100644 --- a/src/graphql/schema/buildMutationInputType.ts +++ b/src/graphql/schema/buildMutationInputType.ts @@ -43,7 +43,7 @@ function buildMutationInputType(payload: Payload, name: string, fields: Field[], const type = field.name === 'id' ? GraphQLInt : GraphQLFloat; return { ...inputObjectTypeConfig, - [field.name]: { type: withNullableType(field, type, forceNullable) }, + [field.name]: { type: withNullableType(field, field.hasMany === true ? new GraphQLList(type) : type, forceNullable) }, }; }, text: (inputObjectTypeConfig: InputObjectTypeConfig, field: TextField) => ({ diff --git a/src/graphql/schema/buildObjectType.ts b/src/graphql/schema/buildObjectType.ts index de24ebeb42..892f3d0b9e 100644 --- a/src/graphql/schema/buildObjectType.ts +++ b/src/graphql/schema/buildObjectType.ts @@ -84,10 +84,13 @@ function buildObjectType({ forceNullable, }: Args): GraphQLObjectType { const fieldToSchemaMap = { - number: (objectTypeConfig: ObjectTypeConfig, field: NumberField) => ({ - ...objectTypeConfig, - [field.name]: { type: withNullableType(field, GraphQLFloat, forceNullable) }, - }), + number: (objectTypeConfig: ObjectTypeConfig, field: NumberField) => { + const type = field?.name === 'id' ? GraphQLInt : GraphQLFloat; + return ({ + ...objectTypeConfig, + [field.name]: { type: withNullableType(field, field?.hasMany === true ? new GraphQLList(type) : type, forceNullable) }, + }); + }, text: (objectTypeConfig: ObjectTypeConfig, field: TextField) => ({ ...objectTypeConfig, [field.name]: { type: withNullableType(field, GraphQLString, forceNullable) }, diff --git a/src/graphql/schema/withOperators.ts b/src/graphql/schema/withOperators.ts index 9ae2c5c781..91243e1193 100644 --- a/src/graphql/schema/withOperators.ts +++ b/src/graphql/schema/withOperators.ts @@ -1,8 +1,8 @@ -import { GraphQLBoolean, GraphQLInputObjectType, GraphQLString, GraphQLList, GraphQLFloat, GraphQLEnumType } from 'graphql'; +import { GraphQLBoolean, GraphQLInputObjectType, GraphQLString, GraphQLList, GraphQLFloat, GraphQLEnumType, GraphQLInt } from 'graphql'; import type { GraphQLType } from 'graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { DateTimeResolver, EmailAddressResolver } from 'graphql-scalars'; -import { FieldAffectingData, RadioField, SelectField, optionIsObject } from '../../fields/config/types'; +import { FieldAffectingData, NumberField, RadioField, RelationshipField, SelectField, optionIsObject } from '../../fields/config/types'; import combineParentName from '../utilities/combineParentName'; import formatName from '../utilities/formatName'; import operators from './operators'; @@ -27,7 +27,10 @@ type DefaultsType = { const defaults: DefaultsType = { number: { - type: GraphQLFloat, + type: (field: NumberField): GraphQLType => { + const type = field?.name === 'id' ? GraphQLInt : GraphQLFloat; + return field?.hasMany === true ? new GraphQLList(type) : type; + }, operators: [...operators.equality, ...operators.comparison], }, text: { @@ -86,7 +89,9 @@ const defaults: DefaultsType = { operators: [...operators.equality, ...operators.comparison, ...operators.geo], }, relationship: { - type: GraphQLString, + type: (field: RelationshipField): GraphQLType => { + return field?.hasMany === true ? new GraphQLList(GraphQLString) : GraphQLString; + }, operators: [...operators.equality, ...operators.contains], }, upload: { diff --git a/src/mongoose/buildQuery.ts b/src/mongoose/buildQuery.ts index c88c885ad3..9df3f3ffd7 100644 --- a/src/mongoose/buildQuery.ts +++ b/src/mongoose/buildQuery.ts @@ -233,12 +233,13 @@ export class ParamParser { hasCustomID = true; } + paths.push({ path: '_id', field: { name: 'id', type: idFieldType, - }, + } as Field, // With the hasMany union type stuff for the number field, typescript gets confused if we remove the `as Field` here complete: true, collectionSlug: this.collectionSlug, }); diff --git a/src/mongoose/buildSchema.ts b/src/mongoose/buildSchema.ts index 1ea200e8e6..f28a2c50a6 100644 --- a/src/mongoose/buildSchema.ts +++ b/src/mongoose/buildSchema.ts @@ -114,7 +114,7 @@ const buildSchema = (config: SanitizedConfig, configFields: Field[], buildSchema const fieldToSchemaMap: Record = { number: (field: NumberField, schema: Schema, config: SanitizedConfig, buildSchemaOptions: BuildSchemaOptions): void => { - const baseSchema = { ...formatBaseSchema(field, buildSchemaOptions), type: Number }; + const baseSchema = { ...formatBaseSchema(field, buildSchemaOptions), type: field.hasMany ? [Number] : Number }; schema.add({ [field.name]: localizeSchema(field, baseSchema, config.localization), diff --git a/src/translations/ar.json b/src/translations/ar.json index add5fa0666..640fdf34b7 100644 --- a/src/translations/ar.json +++ b/src/translations/ar.json @@ -241,6 +241,7 @@ "uploading": "جار الرفع", "user": "المستخدم", "users": "المستخدمين", + "value": "القيمة", "welcome": "مرحبًا" }, "operators": { @@ -274,11 +275,11 @@ "emailAddress": "يرجى إدخال عنوان بريد إلكتروني صحيح.", "enterNumber": "يرجى إدخال رقم صحيح.", "fieldHasNo": "هذا الحقل ليس لديه {{label}}", - "greaterThanMax": "\"{{value}}\" أكبر من الحد الأقصى المسموح به {{max}}.", + "greaterThanMax": "{{value}} أكبر من الحد الأقصى المسموح به {{label}} الذي يبلغ {{max}}.", "invalidInput": "هذا الحقل لديه إدخال غير صالح.", "invalidSelection": "هذا الحقل لديه اختيار غير صالح.", "invalidSelections": "هذا الحقل لديه الاختيارات الغير صالحة التالية:", - "lessThanMin": "\"{{value}}\" أقل من الحد الأدنى المسموح به {{min}}.", + "lessThanMin": "{{value}} أقل من الحد الأدنى المسموح به {{label}} الذي يبلغ {{min}}.", "longerThanMin": "يجب أن يكون هذا القيمة أطول من الحد الأدنى للطول الذي هو {{minLength}} أحرف.", "notValidDate": "\"{{value}}\" ليس تاريخا صالحا.", "required": "هذا الحقل مطلوب.", diff --git a/src/translations/bg.json b/src/translations/bg.json index ec841d6b2d..03703d643b 100644 --- a/src/translations/bg.json +++ b/src/translations/bg.json @@ -241,6 +241,7 @@ "uploading": "Качва се", "user": "Потребител", "users": "Потребители", + "value": "Стойност", "welcome": "Добре дошъл" }, "operators": { @@ -274,11 +275,11 @@ "emailAddress": "Моля, въведи валиден имейл адрес.", "enterNumber": "Моля, въведи валиден номер.", "fieldHasNo": "Това поле няма {{label}}", - "greaterThanMax": "\"{{value}}\" е по-голямо от максималната позволена големина {{max}}.", + "greaterThanMax": "{{value}} е по-голямо от максимално допустимото {{label}} от {{max}}.", "invalidInput": "Това поле има невалиден вход.", "invalidSelection": "Това поле има невалидна селекция.", "invalidSelections": "Това поле има следните невалидни селекции:", - "lessThanMin": "\"{{value}}\" е по-малко от минималната позволена големина {{min}}.", + "lessThanMin": "{{value}} е по-малко от минимално допустимото {{label}} от {{min}}.", "longerThanMin": "Тази стойност трябва да е по-голяма от минималната стойност от {{minLength}} символа.", "notValidDate": "\"{{value}}\" не е валидна дата.", "required": "Това поле е задължително.", diff --git a/src/translations/cs.json b/src/translations/cs.json index fe2fd818ae..b4922e6c56 100644 --- a/src/translations/cs.json +++ b/src/translations/cs.json @@ -238,6 +238,7 @@ "uploading": "Nahrávání", "user": "Uživatel", "users": "Uživatelé", + "value": "Hodnota", "welcome": "Vítejte" }, "operators": { @@ -271,11 +272,11 @@ "emailAddress": "Zadejte prosím platnou e-mailovou adresu.", "enterNumber": "Zadejte prosím platné číslo.", "fieldHasNo": "Toto pole nemá {{label}}", - "greaterThanMax": "\"{{value}}\" je větší než maximální povolená hodnota {{max}}.", + "greaterThanMax": "{{value}} je vyšší než maximálně povolená {{label}} {{max}}.", "invalidInput": "Toto pole má neplatný vstup.", "invalidSelection": "Toto pole má neplatný výběr.", "invalidSelections": "Toto pole má následující neplatné výběry:", - "lessThanMin": "\"{{value}}\" je menší než minimální povolená hodnota {{min}}.", + "lessThanMin": "{{value}} je nižší než minimálně povolená {{label}} {{min}}.", "longerThanMin": "Tato hodnota musí být delší než minimální délka {{minLength}} znaků.", "notValidDate": "\"{{value}}\" není platné datum.", "required": "Toto pole je povinné.", diff --git a/src/translations/de.json b/src/translations/de.json index b86c47b367..a52b321055 100644 --- a/src/translations/de.json +++ b/src/translations/de.json @@ -241,6 +241,7 @@ "uploading": "Hochladen", "user": "Benutzer", "users": "Benutzer", + "value": "Wert", "welcome": "Willkommen" }, "operators": { @@ -274,11 +275,11 @@ "emailAddress": "Bitte gib eine korrekte E-Mail-Adresse an.", "enterNumber": "Bitte gib eine gültige Nummer an,", "fieldHasNo": "Dieses Feld hat kein {{label}}", - "greaterThanMax": "\"{{value}}\" ist größer als der maximal erlaubte Wert von {{max}}.", + "greaterThanMax": "{{value}} ist größer als der maximal erlaubte {{label}} von {{max}}.", "invalidInput": "Dieses Feld hat einen inkorrekten Wert.", "invalidSelection": "Dieses Feld hat eine inkorrekte Auswahl.", "invalidSelections": "'Dieses Feld enthält die folgenden inkorrekten Auswahlen:'", - "lessThanMin": "\"{{value}}\" ist weniger als der minimale erlaubte Wert von {{min}}.", + "lessThanMin": "{{value}} ist kleiner als der minimal erlaubte {{label}} von {{min}}.", "longerThanMin": "Dieser Wert muss länger als die minimale Länge von {{minLength}} Zeichen sein.", "notValidDate": "\"{{value}}\" ist kein gültiges Datum.", "required": "Pflichtfeld", diff --git a/src/translations/en.json b/src/translations/en.json index c447aa242d..33b8f00aec 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -241,6 +241,7 @@ "uploading": "Uploading", "user": "User", "users": "Users", + "value": "Value", "welcome": "Welcome" }, "operators": { @@ -274,11 +275,11 @@ "emailAddress": "Please enter a valid email address.", "enterNumber": "Please enter a valid number.", "fieldHasNo": "This field has no {{label}}", - "greaterThanMax": "\"{{value}}\" is greater than the max allowed value of {{max}}.", + "greaterThanMax": "{{value}} is greater than the max allowed {{label}} of {{max}}.", "invalidInput": "This field has an invalid input.", "invalidSelection": "This field has an invalid selection.", "invalidSelections": "This field has the following invalid selections:", - "lessThanMin": "\"{{value}}\" is less than the min allowed value of {{min}}.", + "lessThanMin": "{{value}} is less than the min allowed {{label}} of {{min}}.", "longerThanMin": "This value must be longer than the minimum length of {{minLength}} characters.", "notValidDate": "\"{{value}}\" is not a valid date.", "required": "This field is required.", diff --git a/src/translations/es.json b/src/translations/es.json index bf427cd180..d3e14c67c8 100644 --- a/src/translations/es.json +++ b/src/translations/es.json @@ -241,6 +241,7 @@ "uploading": "Subiendo", "user": "Usuario", "users": "Usuarios", + "value": "Valor", "welcome": "Bienvenido" }, "operators": { @@ -274,11 +275,11 @@ "emailAddress": "Por favor introduce un correo electrónico válido.", "enterNumber": "Por favor introduce un número válido.", "fieldHasNo": "Este campo no tiene {{label}}", - "greaterThanMax": "\"{{value}}\" es mayor que el valor máximo permitido de {{max}}.", + "greaterThanMax": "{{value}} es mayor que el {{label}} máximo permitido de {{max}}.", "invalidInput": "La información en este campo es inválida.", "invalidSelection": "La selección en este campo es inválida.", "invalidSelections": "Este campo tiene las siguientes selecciones inválidas:", - "lessThanMin": "\"{{value}}\" es menor que el valor mínimo permitido de {{min}}.", + "lessThanMin": "{{value}} es menor que el {{label}} mínimo permitido de {{min}}.", "longerThanMin": "Este dato debe ser más largo que el mínimo de {{minLength}} caracteres.", "notValidDate": "\"{{value}}\" es una fecha inválida.", "required": "Este campo es obligatorio.", diff --git a/src/translations/fa.json b/src/translations/fa.json index f907fa1e2b..b812611b32 100644 --- a/src/translations/fa.json +++ b/src/translations/fa.json @@ -241,6 +241,7 @@ "uploading": "در حال بارگذاری", "user": "کاربر", "users": "کاربران", + "value": "مقدار", "welcome": "خوش‌آمدید" }, "operators": { @@ -274,11 +275,11 @@ "emailAddress": "لطفاً یک نشانی رایانامه معتبر وارد کنید.", "enterNumber": "لطفاً یک شماره درست وارد کنید.", "fieldHasNo": "این کادر شامل هیچ {{label}} نمی‌شود", - "greaterThanMax": "\"{{value}}\" بیش‌تر از حد مجاز است {{max}}.", + "greaterThanMax": "{{value}} بیشتر از حداکثر مجاز برای {{label}} است که {{max}} است.", "invalidInput": "این کادر دارای ورودی نامعتبر است.", "invalidSelection": "این کادر دارای یک انتخاب نامعتبر است.", "invalidSelections": "این کادر دارای انتخاب‌های نامعتبر زیر است:", - "lessThanMin": "\"{{value}}\" کم‌تر از مقدار مجاز است {{min}}.", + "lessThanMin": "{{value}} کمتر از حداقل مجاز برای {{label}} است که {{min}} است.", "longerThanMin": "ورودی باید بیش از حداقل {{minLength}} واژه باشد.", "notValidDate": "\"{{value}}\" یک تاریخ معتبر نیست.", "required": "این کادر اجباری است.", diff --git a/src/translations/fr.json b/src/translations/fr.json index 0bcd4d2eca..3ce3e01301 100644 --- a/src/translations/fr.json +++ b/src/translations/fr.json @@ -241,6 +241,7 @@ "uploading": "Téléchargement", "user": "Utilisateur", "users": "Utilisateurs", + "value": "Valeur", "welcome": "Bienvenu(e)" }, "operators": { @@ -274,11 +275,11 @@ "emailAddress": "S'il vous plaît, veuillez entrer une adresse e-mail valide.", "enterNumber": "S'il vous plait, veuillez entrer un nombre valide.", "fieldHasNo": "Ce champ n'a pas de {{label}}", - "greaterThanMax": "\"{{value}}\" est supérieur à la valeur maximale autorisée de {{max}}.", + "greaterThanMax": "{{value}} est supérieur au max autorisé {{label}} de {{max}}.", "invalidInput": "Ce champ a une entrée invalide.", "invalidSelection": "Ce champ a une sélection invalide.", "invalidSelections": "Ce champ contient des sélections invalides suivantes :", - "lessThanMin": "\"{{value}}\" est inférieur à la valeur minimale autorisée de {{min}}.", + "lessThanMin": "{{value}} est inférieur au min autorisé {{label}} de {{min}}.", "longerThanMin": "Cette valeur doit être supérieure à la longueur minimale de {{minLength}} caractères.", "notValidDate": "\"{{value}}\" n'est pas une date valide.", "required": "Ce champ est requis.", diff --git a/src/translations/hr.json b/src/translations/hr.json index d381a34b8c..4dcc98c811 100644 --- a/src/translations/hr.json +++ b/src/translations/hr.json @@ -241,6 +241,7 @@ "uploading": "Prijenos", "user": "Korisnik", "users": "Korisnici", + "value": "Attribute", "welcome": "Dobrodošli" }, "operators": { @@ -274,11 +275,11 @@ "emailAddress": "Molim unestie valjanu email adresu.", "enterNumber": "Molim unesite valjani broj.", "fieldHasNo": "Ovo polje nema {{label}}", - "greaterThanMax": "\"{{value}}\" je veće od maksimalne dopuštene vrijednosti od {{max}}.", + "greaterThanMax": "{{value}} exceeds the maximum allowable {{label}} limit of {{max}}.", "invalidInput": "Ovo polje ima nevaljan unos.", "invalidSelection": "Ovo polje ima nevaljan odabir.", "invalidSelections": "Ovo polje ima sljedeće nevaljane odabire:", - "lessThanMin": "\"{{value}}\" je manja od minimalne dopuštene vrijednost od {{min}}.", + "lessThanMin": "{{value}} is below the minimum allowable {{label}} limit of {{min}}.", "longerThanMin": "Ova vrijednost mora biti duža od minimalne dužine od {{minLength}} znakova", "notValidDate": "\"{{value}}\" nije valjan datum.", "required": "Ovo polje je obvezno.", @@ -343,4 +344,4 @@ "viewingVersions": "Pregled verzija za {{entityLabel}} {{documentTitle}}", "viewingVersionsGlobal": "Pregled verzije za globalni {{entityLabel}}" } -} +} \ No newline at end of file diff --git a/src/translations/hu.json b/src/translations/hu.json index c205cda4db..2618644364 100644 --- a/src/translations/hu.json +++ b/src/translations/hu.json @@ -1,346 +1,347 @@ { - "$schema": "./translation-schema.json", - "authentication": { - "account": "Fiók", - "accountOfCurrentUser": "Az aktuális felhasználó fiókja", - "alreadyActivated": "Már aktiválva van", - "alreadyLoggedIn": "Már bejelentkezett", - "apiKey": "API-kulcs", - "backToLogin": "Vissza a bejelentkezéshez", - "beginCreateFirstUser": "Kezdésként hozza létre az első felhasználót.", - "changePassword": "Jelszó módosítása", - "checkYourEmailForPasswordReset": "Ellenőrizze az e-mailjét, a linkért, amellyel biztonságosan visszaállíthatja jelszavát.", - "confirmGeneration": "Generálás megerősítése", - "confirmPassword": "Jelszó megerősítése", - "createFirstUser": "Első felhasználó létrehozása", - "emailNotValid": "A megadott e-mail cím érvénytelen", - "emailSent": "E-mail elküldve", - "enableAPIKey": "API-kulcs engedélyezése", - "failedToUnlock": "Nem sikerült feloldani", - "forceUnlock": "Kényszerített feloldás", - "forgotPassword": "Elfelejtett jelszó", - "forgotPasswordEmailInstructions": "Kérjük, adja meg e-mail címét alább. Kapni fog egy e-mail üzenetet a jelszó visszaállításához szükséges utasításokkal.", - "forgotPasswordQuestion": "Elfelejtette jelszavát?", - "generate": "Generálás", - "generateNewAPIKey": "Új API-kulcs generálása", - "generatingNewAPIKeyWillInvalidate": "Az új API-kulcs generálása <1>érvényteleníti az előző kulcsot. Biztos, hogy folytatni szeretné?", - "lockUntil": "Zárolás eddig", - "logBackIn": "Jelentkezzen be újra", - "logOut": "Kijelentkezés", - "loggedIn": "Ha egy másik felhasználóval szeretne bejelentkezni, először <0>ki kell jelentkeznie.", - "loggedInChangePassword": "Jelszavának megváltoztatásához lépjen be <0>fiókjába, és ott szerkessze jelszavát.", - "loggedOutInactivity": "Inaktivitás miatt kijelentkeztünk.", - "loggedOutSuccessfully": "Sikeresen kijelentkezett.", - "login": "Bejelentkezés", - "loginAttempts": "Bejelentkezési kísérletek", - "loginUser": "Bejelentkezés felhasználó", - "loginWithAnotherUser": "Ha egy másik felhasználóval szeretne bejelentkezni, először <0>ki kell jelentkeznie.", - "logout": "Kijelentkezés", - "logoutUser": "Felhasználó kijelentkezése", - "newAPIKeyGenerated": "Új API-kulcs generálva.", - "newAccountCreated": "Létrehoztunk egy új fiókot, amellyel hozzáférhet a következőhöz {{serverURL}} Kérjük, kattintson a következő linkre, vagy illessze be az alábbi URL-t a böngészőbe az e-mail-cím ellenőrzéséhez : {{verificationURL}}
Az e-mail-cím ellenőrzése után sikeresen be tud majd jelentkezni.", - "newPassword": "Új jelszó", - "resetPassword": "Jelszó visszaállítása", - "resetPasswordExpiration": "Jelszóvisszaállítás lejárata", - "resetPasswordToken": "Jelszóvisszaállító token", - "resetYourPassword": "Jelszó visszaállítása", - "stayLoggedIn": "Maradjon bejelentkezve", - "successfullyUnlocked": "Sikeresen feloldva", - "unableToVerify": "Sikertelen megerősítés", - "verified": "Megerősítve", - "verifiedSuccessfully": "Sikeresen megerősítve", - "verify": "Megerősítés", - "verifyUser": "Felhasználó megerősítése", - "verifyYourEmail": "Erősítse meg az e-mail címét", - "youAreInactive": "Már egy ideje nem volt aktív, és hamarosan automatikusan kijelentkeztetjük saját biztonsága érdekében. Szeretne bejelentkezve maradni?", - "youAreReceivingResetPassword": "Ezt azért kapja, mert Ön (vagy valaki más) kérte fiókja jelszavának visszaállítását. A folyamat befejezéséhez kattintson a következő linkre, vagy illessze be böngészőjébe:", - "youDidNotRequestPassword": "Ha nem Ön kérte ezt, kérjük, hagyja figyelmen kívül ezt az e-mailt, és jelszava változatlan marad." - }, - "error": { - "accountAlreadyActivated": "Ez a fiók már aktiválva van.", - "autosaving": "Hiba történt a dokumentum automatikus mentése közben.", - "correctInvalidFields": "Kérjük, javítsa ki az érvénytelen mezőket.", - "deletingFile": "Hiba történt a fájl törlésekor.", - "deletingTitle": "Hiba történt a {{title}} törlése közben. Kérjük, ellenőrizze a kapcsolatot, és próbálja meg újra.", - "emailOrPasswordIncorrect": "A megadott e-mail-cím vagy jelszó helytelen.", - "followingFieldsInvalid_many": "A következő mezők érvénytelenek:", - "followingFieldsInvalid_one": "A következő mező érvénytelen:", - "incorrectCollection": "Helytelen gyűjtemény", - "invalidFileType": "Érvénytelen fájltípus", - "invalidFileTypeValue": "Érvénytelen fájltípus: {{value}}", - "loadingDocument": "Hiba történt a {{id}} azonosítójú dokumentum betöltésekor.", - "missingEmail": "Hiányzó e-mail.", - "missingIDOfDocument": "Hiányzik a frissítendő dokumentum azonosítója.", - "missingIDOfVersion": "A verzió azonosítója hiányzik.", - "missingRequiredData": "Hiányoznak kötelező adatok.", - "noFilesUploaded": "Nem került fájl feltöltésre.", - "noMatchedField": "Nem található egyező mező a következőhöz: \"{{label}}\"", - "noUser": "Nincs felhasználó", - "notAllowedToAccessPage": "Ehhez az oldalhoz nem férhet hozzá.", - "notAllowedToPerformAction": "Ezt a műveletet nem hajthatja végre.", - "notFound": "A kért erőforrás nem található.", - "previewing": "Hiba történt a dokumentum előnézetének megtekintése közben.", - "problemUploadingFile": "Hiba történt a fájl feltöltése közben.", - "tokenInvalidOrExpired": "A token érvénytelen vagy lejárt.", - "unPublishingDocument": "Hiba történt a dokumentum közzétételének visszavonása közben.", - "unableToDeleteCount": "Nem sikerült törölni {{count}}/{{total}} {{label}}.", - "unableToUpdateCount": "Nem sikerült frissíteni {{count}}/{{total}} {{label}}.", - "unauthorized": "Jogosulatlan, a kéréshez be kell jelentkeznie.", - "unknown": "Ismeretlen hiba történt.", - "unspecific": "Hiba történt.", - "userLocked": "Ez a felhasználó túl sok sikertelen bejelentkezési kísérlet miatt zárolva van.", - "valueMustBeUnique": "Az értéknek egyedinek kell lennie", - "verificationTokenInvalid": "Az ellenőrző token érvénytelen." - }, - "fields": { - "addLabel": "{{label}} hozzáadása", - "addLink": "Link hozzáadása", - "addNew": "Új hozzáadása", - "addNewLabel": "Új {{label}} hozzáadása", - "addRelationship": "Kapcsolat hozzáadása", - "addUpload": "Feltöltés hozzáadása", - "block": "blokk", - "blockType": "Blokk típusa", - "blocks": "blokkok", - "chooseBetweenCustomTextOrDocument": "Válasszon egy egyéni szöveges URL-cím megadása vagy egy másik dokumentumra való hivatkozás között.", - "chooseDocumentToLink": "Válassza ki a dokumentumot, amelyre hivatkozni kíván", - "chooseFromExisting": "Válasszon a meglévők közül", - "chooseLabel": "Válassza ki a {{label}}", - "collapseAll": "Mindet összecsuk", - "customURL": "Egyéni URL", - "editLabelData": "{{label}} adatok szerkesztése", - "editLink": "Link szerkesztése", - "editRelationship": "Kapcsolat hozzáadása", - "enterURL": "Adjon meg egy URL-t", - "internalLink": "Belső link", - "itemsAndMore": "{{items}} és további {{count}}", - "labelRelationship": "{{label}} Kapcsolat", - "latitude": "Szélesség", - "linkType": "Link típusa", - "linkedTo": "Kapcsolódik a <0>{{label}}", - "longitude": "Hosszúság", - "newLabel": "Új {{label}}", - "openInNewTab": "Megnyitás új lapon", - "passwordsDoNotMatch": "A jelszavak nem egyeznek.", - "relatedDocument": "Kapcsolódó dokumentum", - "relationTo": "Kapcsolat a következővel:", - "removeRelationship": "Kapcsolat eltávolítása", - "removeUpload": "Feltöltés eltávolítása", - "saveChanges": "Módosítások mentése", - "searchForBlock": "Blokk keresése", - "selectExistingLabel": "Meglévő {{label}} kiválasztása", - "selectFieldsToEdit": "Válassza ki a szerkeszteni kívánt mezőket", - "showAll": "Az összes megjelenítése", - "swapRelationship": "Kapcsolat csere", - "swapUpload": "Feltöltés csere", - "textToDisplay": "Megjelenítendő szöveg", - "toggleBlock": "Blokk kinyitása", - "uploadNewLabel": "Új {{label}} feltöltése" - }, - "general": { - "aboutToDelete": "A {{label}} <1>{{title}} törlésére készül. Biztos benne?", - "aboutToDeleteCount_many": "Törölni készül {{count}} {{label}}", - "aboutToDeleteCount_one": "Törölni készül {{count}} {{label}}", - "aboutToDeleteCount_other": "Törölni készül {{count}} {{label}}", - "addBelow": "Hozzáadás lent", - "addFilter": "Szűrő hozzáadása", - "adminTheme": "Admin téma", - "and": "És", - "ascending": "Növekvő", - "automatic": "Automatikus", - "backToDashboard": "Vissza az irányítópultra", - "cancel": "Mégsem", - "changesNotSaved": "A módosítások nem lettek mentve. Ha most távozik, elveszíti a változtatásokat.", - "close": "Bezárás", - "collections": "Gyűjtemények", - "columnToSort": "Rendezendő oszlop", - "columns": "Oszlopok", - "confirm": "Megerősítés", - "confirmDeletion": "Törlés megerősítése", - "confirmDuplication": "Duplikáció megerősítése", - "copied": "Másolva", - "copy": "Másolás", - "create": "Létrehozás", - "createNew": "Új létrehozása", - "createNewLabel": "Új {{label}} létrehozása", - "created": "Létrehozva", - "createdAt": "Létrehozva:", - "creating": "Létrehozás", - "dark": "Sötét", - "dashboard": "Irányítópult", - "delete": "Törlés", - "deletedCountSuccessfully": "{{count}} {{label}} sikeresen törölve.", - "deletedSuccessfully": "Sikeresen törölve.", - "deleting": "Törlés...", - "descending": "Csökkenő", - "duplicate": "Duplikálás", - "duplicateWithoutSaving": "Duplikálás a módosítások mentése nélkül", - "edit": "Szerkesztés", - "editLabel": "{{label}} szerkesztése", - "editing": "Szerkesztés", - "editingLabel_many": "{{count}} {{label}} szerkesztése", - "editingLabel_one": "{{count}} {{label}} szerkesztése", - "editingLabel_other": "{{count}} {{label}} szerkesztése", - "email": "E-mail", - "emailAddress": "E-mail cím", - "enterAValue": "Adjon meg egy értéket", - "fallbackToDefaultLocale": "Visszatérés az alapértelmezett nyelvhez", - "filter": "Szűrő", - "filterWhere": "Szűrő {{label}} ahol", - "filters": "Szűrők", - "globals": "Globálisok", - "language": "Nyelv", - "lastModified": "Utoljára módosítva", - "leaveAnyway": "Távozás mindenképp", - "leaveWithoutSaving": "Távozás mentés nélkül", - "light": "Világos", - "loading": "Betöltés", - "locales": "Nyelvek", - "moveDown": "Mozgatás lefelé", - "moveUp": "Mozgatás felfelé", - "newPassword": "Új jelszó", - "noFiltersSet": "Nincs beállítva szűrő", - "noLabel": "", - "noResults": "Nem találtunk {{label}}. Vagy még nem létezik {{label}}, vagy egyik sem felel meg a fent megadott szűrőknek.", - "noValue": "Nincs érték", - "none": "Semmi", - "notFound": "Nem található", - "nothingFound": "Nincs találat", - "of": "a", - "or": "Vagy", - "order": "Sorrend", - "pageNotFound": "Az oldal nem található", - "password": "Jelszó", - "payloadSettings": "Payload beállítások", - "perPage": "Oldalanként: {{limit}}", - "remove": "Törlés", - "row": "Sor", - "rows": "Sorok", - "save": "Mentés", - "saving": "Mentés...", - "searchBy": "Keresés a következő szerint: {{label}}", - "selectAll": "Az összes kijelölése: {{count}} {{label}}", - "selectValue": "Válasszon ki egy értéket", - "selectedCount": "{{count}} {{label}} kiválasztva", - "sorryNotFound": "Sajnáljuk – nincs semmi, ami megfelelne a kérésének.", - "sort": "Rendezés", - "stayOnThisPage": "Maradjon ezen az oldalon", - "submissionSuccessful": "Beküldés sikeres.", - "submit": "Beküldés", - "successfullyCreated": "{{label}} sikeresen létrehozva.", - "successfullyDuplicated": "{{label}} sikeresen duplikálódott.", - "thisLanguage": "Magyar", - "titleDeleted": "{{label}} \"{{title}}\" sikeresen törölve.", - "unauthorized": "Jogosulatlan", - "unsavedChangesDuplicate": "Nem mentett módosításai vannak. Szeretné folytatni a duplikációt?", - "untitled": "Névtelen", - "updatedAt": "Frissítve:", - "updatedCountSuccessfully": "{{count}} {{label}} sikeresen frissítve.", - "updatedSuccessfully": "Sikeresen frissítve.", - "updating": "Frissítés", - "uploading": "Feltöltés", - "user": "Felhasználó", - "users": "Felhasználók", - "welcome": "Üdvözöljük" - }, - "operators": { - "equals": "egyenlő", - "isNotEqualTo": "nem egyenlő", - "isIn": "benne van", - "isNotIn": "nincs benne", - "exists": "létezik", - "isGreaterThan": "nagyobb, mint", - "isLessThan": "kisebb, mint", - "isLessThanOrEqualTo": "kisebb vagy egyenlő, mint", - "isGreaterThanOrEqualTo": "nagyobb vagy egyenlő, mint", - "near": "közel", - "isLike": "olyan, mint", - "contains": "tartalmaz" - }, - "upload": { - "dragAndDropHere": "vagy húzzon ide egy fájlt", - "fileName": "Fájlnév", - "fileSize": "Fájl mérete", - "height": "Magasság", - "lessInfo": "Kevesebb információ", - "moreInfo": "További információ", - "selectCollectionToBrowse": "Válassza ki a böngészni kívánt gyűjteményt", - "selectFile": "Válasszon ki egy fájlt", - "dragAndDrop": "Húzzon ide egy fájlt", - "sizes": "Méretek", - "width": "Szélesség" - }, - "validation": { - "emailAddress": "Kérjük, adjon meg egy érvényes e-mail címet.", - "enterNumber": "Kérjük, adjon meg egy érvényes számot.", - "fieldHasNo": "Ennek a mezőnek nincs {{label}}", - "greaterThanMax": "\"{{value}}\" nagyobb, mint a megengedett maximális érték {{max}}.", - "invalidInput": "Ez a mező érvénytelen értéket tartalmaz.", - "invalidSelection": "Ez a mező érvénytelen kijelöléssel rendelkezik.", - "invalidSelections": "Ez a mező a következő érvénytelen kijelöléseket tartalmazza:", - "lessThanMin": "\"{{value}}\" kisebb, mint a megengedett minimális érték {{min}}.", - "longerThanMin": "Ennek az értéknek hosszabbnak kell lennie, mint a minimális {{minLength}} karakter hosszúság.", - "notValidDate": "\" {{value}} \" nem érvényes dátum.", - "required": "Ez a mező kötelező.", - "requiresAtLeast": "Ehhez a mezőhöz legalább {{count}} {{label}} szükséges.", - "requiresNoMoreThan": "Ehhez a mezőhöz legfeljebb {{count}} {{label}} szükséges.", - "requiresTwoNumbers": "Ehhez a mezőhöz két szám szükséges.", - "shorterThanMax": "Ennek az értéknek rövidebbnek kell lennie, mint a maximálisan megengedett {{maxLength}} karakter.", - "trueOrFalse": "Ez a mező csak igaz vagy hamis lehet.", - "validUploadID": "Ez a mező nem érvényes feltöltési azonosító." - }, - "version": { - "aboutToPublishSelection": "Arra készül, hogy az összes {{label}} elemet közzétegye a kijelölésben. biztos vagy ebben?", - "aboutToRestore": "Arra készül, hogy visszaállítsa ezt a {{label}} dokumentumot arra az állapotra, amelyben {{versionDate}} napon volt.", - "aboutToRestoreGlobal": "Arra készül, hogy visszaállítsa a {{label}} arra az állapotra, amelyben {{versionDate}} napon volt.", - "aboutToRevertToPublished": "Arra készül, hogy visszaállítsa a dokumentum módosításait a közzétett állapotába. Biztos benne?", - "aboutToUnpublish": "A dokumentum közzétételének visszavonására készül. Biztos benne?", - "aboutToUnpublishSelection": "Arra készül, hogy visszavonja a kijelölésben szereplő összes {{label}} közzétételét. biztos vagy ebben?", - "autosave": "Automatikus mentés", - "autosavedSuccessfully": "Automatikus mentés sikeres.", - "autosavedVersion": "Automatikusan mentett verzió", - "changed": "Megváltozott", - "compareVersion": "Hasonlítsa össze a verziót a következőkkel:", - "confirmPublish": "A közzététel megerősítése", - "confirmRevertToSaved": "Erősítse meg a mentett verzióra való visszatérést", - "confirmUnpublish": "A közzététel visszavonásának megerősítése", - "confirmVersionRestoration": "Verzió-visszaállítás megerősítése", - "currentDocumentStatus": "Jelenlegi {{docStatus}} dokumentum", - "draft": "Piszkozat", - "draftSavedSuccessfully": "A piszkozat sikeresen mentve.", - "lastSavedAgo": "Utoljára mentve {{distance, relativetime(minutes)}}", - "noFurtherVersionsFound": "További verziók nem találhatók", - "noRowsFound": "Nem található {{label}}", - "preview": "Előnézet", - "problemRestoringVersion": "Hiba történt a verzió visszaállításakor", - "publish": "Közzététel", - "publishChanges": "Módosítások közzététele", - "published": "Közzétett", - "restoreThisVersion": "A verzió visszaállítása", - "restoredSuccessfully": "Sikeresen visszaállítva.", - "restoring": "Visszaállítás...", - "revertToPublished": "Visszatérés a közzétetthez", - "reverting": "Visszaállítás...", - "saveDraft": "Piszkozat mentése", - "selectLocales": "Megjelenítendő nyelvek kiválasztása", - "selectVersionToCompare": "Válassza ki az összehasonlítani kívánt verziót", - "showLocales": "Nyelvek megjelenítése:", - "showingVersionsFor": "Verziók megjelenítése a következőkhöz:", - "status": "Állapot", - "type": "Típus", - "unpublish": "Közzététel visszavonása", - "unpublishing": "Közzététel visszavonása...", - "version": "Verzió", - "versionCount_many": "{{count}} verzió található", - "versionCount_none": "Nem található verzió", - "versionCount_one": "{{count}} verzió található", - "versionCount_other": "{{count}} verzió található", - "versionCreatedOn": "{{version}} létrehozva:", - "versionID": "Verzióazonosító", - "versions": "Verziók", - "viewingVersion": "A(z) {{entityLabel}} {{documentTitle}} verziójának megtekintése", - "viewingVersionGlobal": "A globális {{entityLabel}} verziójának megtekintése", - "viewingVersions": "A {{entityLabel}} {{documentTitle}} verzióinak megtekintése", - "viewingVersionsGlobal": "A globális {{entityLabel}} verzióinak megtekintése" - } + "$schema": "./translation-schema.json", + "authentication": { + "account": "Fiók", + "accountOfCurrentUser": "Az aktuális felhasználó fiókja", + "alreadyActivated": "Már aktiválva van", + "alreadyLoggedIn": "Már bejelentkezett", + "apiKey": "API-kulcs", + "backToLogin": "Vissza a bejelentkezéshez", + "beginCreateFirstUser": "Kezdésként hozza létre az első felhasználót.", + "changePassword": "Jelszó módosítása", + "checkYourEmailForPasswordReset": "Ellenőrizze az e-mailjét, a linkért, amellyel biztonságosan visszaállíthatja jelszavát.", + "confirmGeneration": "Generálás megerősítése", + "confirmPassword": "Jelszó megerősítése", + "createFirstUser": "Első felhasználó létrehozása", + "emailNotValid": "A megadott e-mail cím érvénytelen", + "emailSent": "E-mail elküldve", + "enableAPIKey": "API-kulcs engedélyezése", + "failedToUnlock": "Nem sikerült feloldani", + "forceUnlock": "Kényszerített feloldás", + "forgotPassword": "Elfelejtett jelszó", + "forgotPasswordEmailInstructions": "Kérjük, adja meg e-mail címét alább. Kapni fog egy e-mail üzenetet a jelszó visszaállításához szükséges utasításokkal.", + "forgotPasswordQuestion": "Elfelejtette jelszavát?", + "generate": "Generálás", + "generateNewAPIKey": "Új API-kulcs generálása", + "generatingNewAPIKeyWillInvalidate": "Az új API-kulcs generálása <1>érvényteleníti az előző kulcsot. Biztos, hogy folytatni szeretné?", + "lockUntil": "Zárolás eddig", + "logBackIn": "Jelentkezzen be újra", + "logOut": "Kijelentkezés", + "loggedIn": "Ha egy másik felhasználóval szeretne bejelentkezni, először <0>ki kell jelentkeznie.", + "loggedInChangePassword": "Jelszavának megváltoztatásához lépjen be <0>fiókjába, és ott szerkessze jelszavát.", + "loggedOutInactivity": "Inaktivitás miatt kijelentkeztünk.", + "loggedOutSuccessfully": "Sikeresen kijelentkezett.", + "login": "Bejelentkezés", + "loginAttempts": "Bejelentkezési kísérletek", + "loginUser": "Bejelentkezés felhasználó", + "loginWithAnotherUser": "Ha egy másik felhasználóval szeretne bejelentkezni, először <0>ki kell jelentkeznie.", + "logout": "Kijelentkezés", + "logoutUser": "Felhasználó kijelentkezése", + "newAPIKeyGenerated": "Új API-kulcs generálva.", + "newAccountCreated": "Létrehoztunk egy új fiókot, amellyel hozzáférhet a következőhöz {{serverURL}} Kérjük, kattintson a következő linkre, vagy illessze be az alábbi URL-t a böngészőbe az e-mail-cím ellenőrzéséhez : {{verificationURL}}
Az e-mail-cím ellenőrzése után sikeresen be tud majd jelentkezni.", + "newPassword": "Új jelszó", + "resetPassword": "Jelszó visszaállítása", + "resetPasswordExpiration": "Jelszóvisszaállítás lejárata", + "resetPasswordToken": "Jelszóvisszaállító token", + "resetYourPassword": "Jelszó visszaállítása", + "stayLoggedIn": "Maradjon bejelentkezve", + "successfullyUnlocked": "Sikeresen feloldva", + "unableToVerify": "Sikertelen megerősítés", + "verified": "Megerősítve", + "verifiedSuccessfully": "Sikeresen megerősítve", + "verify": "Megerősítés", + "verifyUser": "Felhasználó megerősítése", + "verifyYourEmail": "Erősítse meg az e-mail címét", + "youAreInactive": "Már egy ideje nem volt aktív, és hamarosan automatikusan kijelentkeztetjük saját biztonsága érdekében. Szeretne bejelentkezve maradni?", + "youAreReceivingResetPassword": "Ezt azért kapja, mert Ön (vagy valaki más) kérte fiókja jelszavának visszaállítását. A folyamat befejezéséhez kattintson a következő linkre, vagy illessze be böngészőjébe:", + "youDidNotRequestPassword": "Ha nem Ön kérte ezt, kérjük, hagyja figyelmen kívül ezt az e-mailt, és jelszava változatlan marad." + }, + "error": { + "accountAlreadyActivated": "Ez a fiók már aktiválva van.", + "autosaving": "Hiba történt a dokumentum automatikus mentése közben.", + "correctInvalidFields": "Kérjük, javítsa ki az érvénytelen mezőket.", + "deletingFile": "Hiba történt a fájl törlésekor.", + "deletingTitle": "Hiba történt a {{title}} törlése közben. Kérjük, ellenőrizze a kapcsolatot, és próbálja meg újra.", + "emailOrPasswordIncorrect": "A megadott e-mail-cím vagy jelszó helytelen.", + "followingFieldsInvalid_many": "A következő mezők érvénytelenek:", + "followingFieldsInvalid_one": "A következő mező érvénytelen:", + "incorrectCollection": "Helytelen gyűjtemény", + "invalidFileType": "Érvénytelen fájltípus", + "invalidFileTypeValue": "Érvénytelen fájltípus: {{value}}", + "loadingDocument": "Hiba történt a {{id}} azonosítójú dokumentum betöltésekor.", + "missingEmail": "Hiányzó e-mail.", + "missingIDOfDocument": "Hiányzik a frissítendő dokumentum azonosítója.", + "missingIDOfVersion": "A verzió azonosítója hiányzik.", + "missingRequiredData": "Hiányoznak kötelező adatok.", + "noFilesUploaded": "Nem került fájl feltöltésre.", + "noMatchedField": "Nem található egyező mező a következőhöz: \"{{label}}\"", + "noUser": "Nincs felhasználó", + "notAllowedToAccessPage": "Ehhez az oldalhoz nem férhet hozzá.", + "notAllowedToPerformAction": "Ezt a műveletet nem hajthatja végre.", + "notFound": "A kért erőforrás nem található.", + "previewing": "Hiba történt a dokumentum előnézetének megtekintése közben.", + "problemUploadingFile": "Hiba történt a fájl feltöltése közben.", + "tokenInvalidOrExpired": "A token érvénytelen vagy lejárt.", + "unPublishingDocument": "Hiba történt a dokumentum közzétételének visszavonása közben.", + "unableToDeleteCount": "Nem sikerült törölni {{count}}/{{total}} {{label}}.", + "unableToUpdateCount": "Nem sikerült frissíteni {{count}}/{{total}} {{label}}.", + "unauthorized": "Jogosulatlan, a kéréshez be kell jelentkeznie.", + "unknown": "Ismeretlen hiba történt.", + "unspecific": "Hiba történt.", + "userLocked": "Ez a felhasználó túl sok sikertelen bejelentkezési kísérlet miatt zárolva van.", + "valueMustBeUnique": "Az értéknek egyedinek kell lennie", + "verificationTokenInvalid": "Az ellenőrző token érvénytelen." + }, + "fields": { + "addLabel": "{{label}} hozzáadása", + "addLink": "Link hozzáadása", + "addNew": "Új hozzáadása", + "addNewLabel": "Új {{label}} hozzáadása", + "addRelationship": "Kapcsolat hozzáadása", + "addUpload": "Feltöltés hozzáadása", + "block": "blokk", + "blockType": "Blokk típusa", + "blocks": "blokkok", + "chooseBetweenCustomTextOrDocument": "Válasszon egy egyéni szöveges URL-cím megadása vagy egy másik dokumentumra való hivatkozás között.", + "chooseDocumentToLink": "Válassza ki a dokumentumot, amelyre hivatkozni kíván", + "chooseFromExisting": "Válasszon a meglévők közül", + "chooseLabel": "Válassza ki a {{label}}", + "collapseAll": "Mindet összecsuk", + "customURL": "Egyéni URL", + "editLabelData": "{{label}} adatok szerkesztése", + "editLink": "Link szerkesztése", + "editRelationship": "Kapcsolat hozzáadása", + "enterURL": "Adjon meg egy URL-t", + "internalLink": "Belső link", + "itemsAndMore": "{{items}} és további {{count}}", + "labelRelationship": "{{label}} Kapcsolat", + "latitude": "Szélesség", + "linkType": "Link típusa", + "linkedTo": "Kapcsolódik a <0>{{label}}", + "longitude": "Hosszúság", + "newLabel": "Új {{label}}", + "openInNewTab": "Megnyitás új lapon", + "passwordsDoNotMatch": "A jelszavak nem egyeznek.", + "relatedDocument": "Kapcsolódó dokumentum", + "relationTo": "Kapcsolat a következővel:", + "removeRelationship": "Kapcsolat eltávolítása", + "removeUpload": "Feltöltés eltávolítása", + "saveChanges": "Módosítások mentése", + "searchForBlock": "Blokk keresése", + "selectExistingLabel": "Meglévő {{label}} kiválasztása", + "selectFieldsToEdit": "Válassza ki a szerkeszteni kívánt mezőket", + "showAll": "Az összes megjelenítése", + "swapRelationship": "Kapcsolat csere", + "swapUpload": "Feltöltés csere", + "textToDisplay": "Megjelenítendő szöveg", + "toggleBlock": "Blokk kinyitása", + "uploadNewLabel": "Új {{label}} feltöltése" + }, + "general": { + "aboutToDelete": "A {{label}} <1>{{title}} törlésére készül. Biztos benne?", + "aboutToDeleteCount_many": "Törölni készül {{count}} {{label}}", + "aboutToDeleteCount_one": "Törölni készül {{count}} {{label}}", + "aboutToDeleteCount_other": "Törölni készül {{count}} {{label}}", + "addBelow": "Hozzáadás lent", + "addFilter": "Szűrő hozzáadása", + "adminTheme": "Admin téma", + "and": "És", + "ascending": "Növekvő", + "automatic": "Automatikus", + "backToDashboard": "Vissza az irányítópultra", + "cancel": "Mégsem", + "changesNotSaved": "A módosítások nem lettek mentve. Ha most távozik, elveszíti a változtatásokat.", + "close": "Bezárás", + "collections": "Gyűjtemények", + "columnToSort": "Rendezendő oszlop", + "columns": "Oszlopok", + "confirm": "Megerősítés", + "confirmDeletion": "Törlés megerősítése", + "confirmDuplication": "Duplikáció megerősítése", + "copied": "Másolva", + "copy": "Másolás", + "create": "Létrehozás", + "createNew": "Új létrehozása", + "createNewLabel": "Új {{label}} létrehozása", + "created": "Létrehozva", + "createdAt": "Létrehozva:", + "creating": "Létrehozás", + "dark": "Sötét", + "dashboard": "Irányítópult", + "delete": "Törlés", + "deletedCountSuccessfully": "{{count}} {{label}} sikeresen törölve.", + "deletedSuccessfully": "Sikeresen törölve.", + "deleting": "Törlés...", + "descending": "Csökkenő", + "duplicate": "Duplikálás", + "duplicateWithoutSaving": "Duplikálás a módosítások mentése nélkül", + "edit": "Szerkesztés", + "editLabel": "{{label}} szerkesztése", + "editing": "Szerkesztés", + "editingLabel_many": "{{count}} {{label}} szerkesztése", + "editingLabel_one": "{{count}} {{label}} szerkesztése", + "editingLabel_other": "{{count}} {{label}} szerkesztése", + "email": "E-mail", + "emailAddress": "E-mail cím", + "enterAValue": "Adjon meg egy értéket", + "fallbackToDefaultLocale": "Visszatérés az alapértelmezett nyelvhez", + "filter": "Szűrő", + "filterWhere": "Szűrő {{label}} ahol", + "filters": "Szűrők", + "globals": "Globálisok", + "language": "Nyelv", + "lastModified": "Utoljára módosítva", + "leaveAnyway": "Távozás mindenképp", + "leaveWithoutSaving": "Távozás mentés nélkül", + "light": "Világos", + "loading": "Betöltés", + "locales": "Nyelvek", + "moveDown": "Mozgatás lefelé", + "moveUp": "Mozgatás felfelé", + "newPassword": "Új jelszó", + "noFiltersSet": "Nincs beállítva szűrő", + "noLabel": "", + "noResults": "Nem találtunk {{label}}. Vagy még nem létezik {{label}}, vagy egyik sem felel meg a fent megadott szűrőknek.", + "noValue": "Nincs érték", + "none": "Semmi", + "notFound": "Nem található", + "nothingFound": "Nincs találat", + "of": "a", + "or": "Vagy", + "order": "Sorrend", + "pageNotFound": "Az oldal nem található", + "password": "Jelszó", + "payloadSettings": "Payload beállítások", + "perPage": "Oldalanként: {{limit}}", + "remove": "Törlés", + "row": "Sor", + "rows": "Sorok", + "save": "Mentés", + "saving": "Mentés...", + "searchBy": "Keresés a következő szerint: {{label}}", + "selectAll": "Az összes kijelölése: {{count}} {{label}}", + "selectValue": "Válasszon ki egy értéket", + "selectedCount": "{{count}} {{label}} kiválasztva", + "sorryNotFound": "Sajnáljuk – nincs semmi, ami megfelelne a kérésének.", + "sort": "Rendezés", + "stayOnThisPage": "Maradjon ezen az oldalon", + "submissionSuccessful": "Beküldés sikeres.", + "submit": "Beküldés", + "successfullyCreated": "{{label}} sikeresen létrehozva.", + "successfullyDuplicated": "{{label}} sikeresen duplikálódott.", + "thisLanguage": "Magyar", + "titleDeleted": "{{label}} \"{{title}}\" sikeresen törölve.", + "unauthorized": "Jogosulatlan", + "unsavedChangesDuplicate": "Nem mentett módosításai vannak. Szeretné folytatni a duplikációt?", + "untitled": "Névtelen", + "updatedAt": "Frissítve:", + "updatedCountSuccessfully": "{{count}} {{label}} sikeresen frissítve.", + "updatedSuccessfully": "Sikeresen frissítve.", + "updating": "Frissítés", + "uploading": "Feltöltés", + "user": "Felhasználó", + "users": "Felhasználók", + "value": "Érték", + "welcome": "Üdvözöljük" + }, + "operators": { + "equals": "egyenlő", + "isNotEqualTo": "nem egyenlő", + "isIn": "benne van", + "isNotIn": "nincs benne", + "exists": "létezik", + "isGreaterThan": "nagyobb, mint", + "isLessThan": "kisebb, mint", + "isLessThanOrEqualTo": "kisebb vagy egyenlő, mint", + "isGreaterThanOrEqualTo": "nagyobb vagy egyenlő, mint", + "near": "közel", + "isLike": "olyan, mint", + "contains": "tartalmaz" + }, + "upload": { + "dragAndDropHere": "vagy húzzon ide egy fájlt", + "fileName": "Fájlnév", + "fileSize": "Fájl mérete", + "height": "Magasság", + "lessInfo": "Kevesebb információ", + "moreInfo": "További információ", + "selectCollectionToBrowse": "Válassza ki a böngészni kívánt gyűjteményt", + "selectFile": "Válasszon ki egy fájlt", + "dragAndDrop": "Húzzon ide egy fájlt", + "sizes": "Méretek", + "width": "Szélesség" + }, + "validation": { + "emailAddress": "Kérjük, adjon meg egy érvényes e-mail címet.", + "enterNumber": "Kérjük, adjon meg egy érvényes számot.", + "fieldHasNo": "Ennek a mezőnek nincs {{label}}", + "greaterThanMax": "{{value}} nagyobb, mint a megengedett maximum {{label}} érték, ami {{max}}.", + "invalidInput": "Ez a mező érvénytelen értéket tartalmaz.", + "invalidSelection": "Ez a mező érvénytelen kijelöléssel rendelkezik.", + "invalidSelections": "Ez a mező a következő érvénytelen kijelöléseket tartalmazza:", + "lessThanMin": "{{value}} kisebb, mint a megengedett minimum {{label}} érték, ami {{min}}.", + "longerThanMin": "Ennek az értéknek hosszabbnak kell lennie, mint a minimális {{minLength}} karakter hosszúság.", + "notValidDate": "\" {{value}} \" nem érvényes dátum.", + "required": "Ez a mező kötelező.", + "requiresAtLeast": "Ehhez a mezőhöz legalább {{count}} {{label}} szükséges.", + "requiresNoMoreThan": "Ehhez a mezőhöz legfeljebb {{count}} {{label}} szükséges.", + "requiresTwoNumbers": "Ehhez a mezőhöz két szám szükséges.", + "shorterThanMax": "Ennek az értéknek rövidebbnek kell lennie, mint a maximálisan megengedett {{maxLength}} karakter.", + "trueOrFalse": "Ez a mező csak igaz vagy hamis lehet.", + "validUploadID": "Ez a mező nem érvényes feltöltési azonosító." + }, + "version": { + "aboutToPublishSelection": "Arra készül, hogy az összes {{label}} elemet közzétegye a kijelölésben. biztos vagy ebben?", + "aboutToRestore": "Arra készül, hogy visszaállítsa ezt a {{label}} dokumentumot arra az állapotra, amelyben {{versionDate}} napon volt.", + "aboutToRestoreGlobal": "Arra készül, hogy visszaállítsa a {{label}} arra az állapotra, amelyben {{versionDate}} napon volt.", + "aboutToRevertToPublished": "Arra készül, hogy visszaállítsa a dokumentum módosításait a közzétett állapotába. Biztos benne?", + "aboutToUnpublish": "A dokumentum közzétételének visszavonására készül. Biztos benne?", + "aboutToUnpublishSelection": "Arra készül, hogy visszavonja a kijelölésben szereplő összes {{label}} közzétételét. biztos vagy ebben?", + "autosave": "Automatikus mentés", + "autosavedSuccessfully": "Automatikus mentés sikeres.", + "autosavedVersion": "Automatikusan mentett verzió", + "changed": "Megváltozott", + "compareVersion": "Hasonlítsa össze a verziót a következőkkel:", + "confirmPublish": "A közzététel megerősítése", + "confirmRevertToSaved": "Erősítse meg a mentett verzióra való visszatérést", + "confirmUnpublish": "A közzététel visszavonásának megerősítése", + "confirmVersionRestoration": "Verzió-visszaállítás megerősítése", + "currentDocumentStatus": "Jelenlegi {{docStatus}} dokumentum", + "draft": "Piszkozat", + "draftSavedSuccessfully": "A piszkozat sikeresen mentve.", + "lastSavedAgo": "Utoljára mentve {{distance, relativetime(minutes)}}", + "noFurtherVersionsFound": "További verziók nem találhatók", + "noRowsFound": "Nem található {{label}}", + "preview": "Előnézet", + "problemRestoringVersion": "Hiba történt a verzió visszaállításakor", + "publish": "Közzététel", + "publishChanges": "Módosítások közzététele", + "published": "Közzétett", + "restoreThisVersion": "A verzió visszaállítása", + "restoredSuccessfully": "Sikeresen visszaállítva.", + "restoring": "Visszaállítás...", + "revertToPublished": "Visszatérés a közzétetthez", + "reverting": "Visszaállítás...", + "saveDraft": "Piszkozat mentése", + "selectLocales": "Megjelenítendő nyelvek kiválasztása", + "selectVersionToCompare": "Válassza ki az összehasonlítani kívánt verziót", + "showLocales": "Nyelvek megjelenítése:", + "showingVersionsFor": "Verziók megjelenítése a következőkhöz:", + "status": "Állapot", + "type": "Típus", + "unpublish": "Közzététel visszavonása", + "unpublishing": "Közzététel visszavonása...", + "version": "Verzió", + "versionCount_many": "{{count}} verzió található", + "versionCount_none": "Nem található verzió", + "versionCount_one": "{{count}} verzió található", + "versionCount_other": "{{count}} verzió található", + "versionCreatedOn": "{{version}} létrehozva:", + "versionID": "Verzióazonosító", + "versions": "Verziók", + "viewingVersion": "A(z) {{entityLabel}} {{documentTitle}} verziójának megtekintése", + "viewingVersionGlobal": "A globális {{entityLabel}} verziójának megtekintése", + "viewingVersions": "A {{entityLabel}} {{documentTitle}} verzióinak megtekintése", + "viewingVersionsGlobal": "A globális {{entityLabel}} verzióinak megtekintése" + } } diff --git a/src/translations/it.json b/src/translations/it.json index 6e4e2ac6e0..eb7ba272b5 100644 --- a/src/translations/it.json +++ b/src/translations/it.json @@ -241,6 +241,7 @@ "uploading": "Caricamento", "user": "Utente", "users": "Utenti", + "value": "Valore", "welcome": "Benvenuto" }, "operators": { @@ -274,11 +275,11 @@ "emailAddress": "Si prega di inserire un indirizzo email valido.", "enterNumber": "Si prega di inserire un numero valido.", "fieldHasNo": "Questo campo non ha {{label}}", - "greaterThanMax": "\"{{value}}\" è maggiore del valore massimo consentito di {{max}}.", + "greaterThanMax": "{{value}} è superiore al massimo consentito {{label}} di {{max}}.", "invalidInput": "Questo campo ha un input non valido.", "invalidSelection": "Questo campo ha una selezione non valida.", "invalidSelections": "'In questo campo sono presenti le seguenti selezioni non valide:'", - "lessThanMin": "\"{{value}}\" è inferiore al valore minimo consentito di {{min}}.", + "lessThanMin": "{{value}} è inferiore al minimo consentito {{label}} di {{min}}.", "longerThanMin": "Questo valore deve essere più lungo della lunghezza minima di {{minLength}} caratteri.", "notValidDate": "\"{{value}}\" non è una data valida.", "required": "Questo campo è obbligatorio.", diff --git a/src/translations/ja.json b/src/translations/ja.json index f1f9e9fe1e..b902324479 100644 --- a/src/translations/ja.json +++ b/src/translations/ja.json @@ -230,6 +230,7 @@ "uploading": "アップロード中", "user": "ユーザー", "users": "ユーザー", + "value": "値", "welcome": "ようこそ" }, "operators": { @@ -263,11 +264,11 @@ "emailAddress": "有効なメールアドレスを入力してください。", "enterNumber": "有効な数値を入力してください。", "fieldHasNo": "{{label}} が必要です。", - "greaterThanMax": "\"{{value}}\" ではなく、{{max}} 以下の値にする必要があります。", + "greaterThanMax": "{{value}}は許容最大{{label}}の{{max}}を超えています。", "invalidInput": "無効な入力値です。", "invalidSelection": "無効な選択です。", "invalidSelections": "次の無効な選択があります: ", - "lessThanMin": "\"{{value}}\" ではなく、{{min}} 以上の値にする必要があります。", + "lessThanMin": "{{value}}は許容最小{{label}}の{{min}}未満です。", "longerThanMin": "{{minLength}} 文字以上にする必要があります。", "notValidDate": "\"{{value}}\" は有効な日付ではありません。", "required": "必須フィールドです。", diff --git a/src/translations/my.json b/src/translations/my.json index a1c88cd206..572fa72067 100644 --- a/src/translations/my.json +++ b/src/translations/my.json @@ -241,6 +241,7 @@ "uploading": "တင်ပေးနေသည်", "user": "အသုံးပြုသူ", "users": "အသုံးပြုသူများ", + "value": "တန်ဖိုး", "welcome": "ကြိုဆိုပါတယ်။" }, "operators": { @@ -274,11 +275,11 @@ "emailAddress": "မှန်ကန်သော အီးမေးလ်လိပ်စာကို ထည့်သွင်းပါ။", "enterNumber": "မှန်ကန်သောနံပါတ်တစ်ခုထည့်ပါ။", "fieldHasNo": "ဤအကွက်တွင် {{label}} မရှိပါ။", - "greaterThanMax": "\"{{value}}\" သည် {{max}} ၏ အများဆုံးခွင့်ပြုထားသော တန်ဖိုးထက် ကြီးသည်။", + "greaterThanMax": "{{value}} သည် {{max}} ထက် ပိုမိုကြီးသည်။ ဤသည်ဖြင့် {{label}} အများဆုံးခွင့်ပြုထားသော တန်ဖိုးထက် ကြီးသည်။", "invalidInput": "ဤအကွက်တွင် မမှန်ကန်သော ထည့်သွင်းမှုတစ်ခုရှိသည်။", "invalidSelection": "ဤအကွက်တွင် မမှန်ကန်သော ရွေးချယ်မှုတစ်ခုရှိသည်။", "invalidSelections": "ဤအကွက်တွင် အောက်ပါ မမှန်ကန်သော ရွေးချယ်မှုများ ရှိသည်", - "lessThanMin": "\"{{value}}\" သည် {{min}} ၏ အနည်းဆုံးခွင့်ပြုထားသော တန်ဖိုးထက်နည်းသည်။", + "lessThanMin": "{{value}} သည် {{min}} ထက် ပိုမိုနိမ့်သည်။ ဤသည်ဖြင့် {{label}} အနည်းဆုံးခွင့်ပြုထားသော တန်ဖိုးထက် နိမ့်သည်။", "longerThanMin": "ဤတန်ဖိုးသည် အနိမ့်ဆုံးအရှည် {{minLength}} စာလုံးထက် ပိုရှည်ရမည်။", "notValidDate": "\"{{value}}\" သည် တရားဝင်ရက်စွဲမဟုတ်ပါ။", "required": "ဤအကွက်ကို လိုအပ်သည်။", diff --git a/src/translations/nb.json b/src/translations/nb.json index aa6745758e..c1f174ee0f 100644 --- a/src/translations/nb.json +++ b/src/translations/nb.json @@ -241,6 +241,7 @@ "uploading": "Opplasting", "user": "Bruker", "users": "Brukere", + "value": "Verdi", "welcome": "Velkommen" }, "operators": { @@ -274,11 +275,11 @@ "emailAddress": "Vennligst skriv inn en gyldig e-postadresse.", "enterNumber": "Vennligst skriv inn et gyldig tall.", "fieldHasNo": "Dette feltet har ingen {{label}}", - "greaterThanMax": "\"{{value}}\" er større enn det maksimale tillatte verdien av {{max}}.", + "greaterThanMax": "{{value}} er større enn den tillatte maksimale {{label}} på {{max}}.", "invalidInput": "Dette feltet har en ugyldig inndata.", "invalidSelection": "Dette feltet har en ugyldig utvalg.", "invalidSelections": "Dette feltet har følgende ugyldige utvalg:", - "lessThanMin": "\"{{value}}\" er mindre enn det minste tillatte verdien av {{min}}.", + "lessThanMin": "{{value}} er mindre enn den tillatte minimale {{label}} på {{min}}.", "longerThanMin": "Denne verdien må være lengre enn minimumslengden på {{minLength}} tegn.", "notValidDate": "\"{{value}}\" er ikke en gyldig dato.", "required": "Dette feltet er påkrevd.", diff --git a/src/translations/nl.json b/src/translations/nl.json index 2b175cad2f..870cf345c8 100644 --- a/src/translations/nl.json +++ b/src/translations/nl.json @@ -241,6 +241,7 @@ "uploading": "Uploaden", "user": "Gebruiker", "users": "Gebruikers", + "value": "Waarde", "welcome": "Welkom" }, "operators": { @@ -274,11 +275,11 @@ "emailAddress": "Voer een geldig e-mailadres in.", "enterNumber": "Voer een geldig nummer in.", "fieldHasNo": "Dit veld heeft geen {{label}}", - "greaterThanMax": "\"{{value}}\" is groter dan de maximaal toegestane waarde van {{max}}.", + "greaterThanMax": "{{value}} is groter dan de maximaal toegestane {{label}} van {{max}}.", "invalidInput": "Dit veld heeft een ongeldige invoer.", "invalidSelection": "Dit veld heeft een ongeldige selectie.", "invalidSelections": "Dit veld heeft de volgende ongeldige selecties:", - "lessThanMin": "\"{{value}}\" is kleiner dan de minimaal toegestande waarde van {{min}}.", + "lessThanMin": "{{value}} is kleiner dan de minimaal toegestane {{label}} van {{min}}.", "longerThanMin": "Deze waarde moet langer zijn dan de minimale lengte van {{minLength}} tekens.", "notValidDate": "\"{{value}}\" is geen geldige datum.", "required": "Dit veld is verplicht.", diff --git a/src/translations/pl.json b/src/translations/pl.json index ca1110e9a6..9de0569aab 100644 --- a/src/translations/pl.json +++ b/src/translations/pl.json @@ -241,6 +241,7 @@ "uploading": "Wgrywanie", "user": "użytkownik", "users": "użytkownicy", + "value": "Wartość", "welcome": "Witaj" }, "operators": { @@ -274,11 +275,11 @@ "emailAddress": "Wprowadź poprawny adres email.", "enterNumber": "Wprowadź poprawny numer telefonu.", "fieldHasNo": "To pole nie posiada {{label}}", - "greaterThanMax": "Wartość \"{{value}}\" przekracza maksymalną, dozwoloną liczbę {{max}} znaków.", + "greaterThanMax": "{{value}} jest większe niż maksymalnie dozwolony {{label}} wynoszący {{max}}.", "invalidInput": "To pole zawiera nieprawidłowe dane.", "invalidSelection": "To pole ma nieprawidłowy wybór.", "invalidSelections": "To pole zawiera następujące, nieprawidłowe wybory:", - "lessThanMin": "Wartość \"{{value}}\" jest mniejsza niż dozwolona, minimalna wartość: {{min}}.", + "lessThanMin": "{{value}} jest mniejsze niż minimalnie dozwolony {{label}} wynoszący {{min}}.", "longerThanMin": "Ta wartość musi być dłuższa niż minimalna długość znaków: {{minLength}}.", "notValidDate": "\"{{value}}\" nie jest prawidłową datą.", "required": "To pole jest wymagane.", diff --git a/src/translations/pt.json b/src/translations/pt.json index 7de5ab5cb5..3fda7fdb75 100644 --- a/src/translations/pt.json +++ b/src/translations/pt.json @@ -241,6 +241,7 @@ "uploading": "Fazendo upload", "user": "usuário", "users": "usuários", + "value": "Valor", "welcome": "Boas vindas" }, "operators": { @@ -274,11 +275,11 @@ "emailAddress": "Por favor, insira um endereço de email válido.", "enterNumber": "Por favor, insira um número válido.", "fieldHasNo": "Esse campo não contém {{label}}", - "greaterThanMax": "\"{{value}}\" é maior do que o valor máximo permitido de {{max}}.", + "greaterThanMax": "{{value}} é maior que o máximo permitido de {{label}} que é {{max}}.", "invalidInput": "Esse campo tem um conteúdo inválido.", "invalidSelection": "Esse campo tem uma seleção inválida.", "invalidSelections": "'Esse campo tem as seguintes seleções inválidas:'", - "lessThanMin": "\"{{value}}\" é menor do que o valor mínimo permitido de {{min}}.", + "lessThanMin": "{{value}} é menor que o mínimo permitido de {{label}} que é {{min}}.", "longerThanMin": "Esse valor deve ser maior do que o mínimo de {{minLength}} characters.", "notValidDate": "\"{{value}}\" não é uma data válida.", "required": "Esse campo é obrigatório.", diff --git a/src/translations/ro.json b/src/translations/ro.json index 075a4974f6..5aa1eb00b7 100644 --- a/src/translations/ro.json +++ b/src/translations/ro.json @@ -241,6 +241,7 @@ "uploading": "Încărcare", "user": "Utilizator", "users": "Utilizatori", + "value": "Valoare", "welcome": "Bine ați venit" }, "operators": { @@ -274,11 +275,11 @@ "emailAddress": "Vă rugăm să introduceți o adresă de email validă.", "enterNumber": "Vă rugăm să introduceți un număr valid.", "fieldHasNo": "Acest câmp nu are un {{label}}", - "greaterThanMax": "\"{{value}}\" este mai mare decât valoarea maximă permisă de {{max}}.", + "greaterThanMax": "{{value}} este mai mare decât valoarea maximă permisă pentru {{label}} de {{max}}.", "invalidInput": "Acest câmp are o intrare invalidă.", "invalidSelection": "Acest câmp are o selecție invalidă.", "invalidSelections": "Acest câmp are următoarele selecții invalide:", - "lessThanMin": "\"{{value}}\" este mai mică decât valoarea minimă permisă de {{min}}.", + "lessThanMin": "{{value}} este mai mic decât valoarea minimă permisă pentru {{label}} de {{min}}.", "longerThanMin": "Această valoare trebuie să fie mai mare decât lungimea minimă de {{minLength}} caractere.", "notValidDate": "\"{{value}}\" nu este o dată valabilă.", "required": "Acest câmp este obligatoriu.", diff --git a/src/translations/ru.json b/src/translations/ru.json index b941893cc9..b12e5f492f 100644 --- a/src/translations/ru.json +++ b/src/translations/ru.json @@ -241,6 +241,7 @@ "uploading": "Загрузка", "user": "пользователь", "users": "пользователи", + "value": "Значение", "welcome": "Добро пожаловать" }, "operators": { @@ -274,11 +275,11 @@ "emailAddress": "Пожалуйста, введите корректный адрес email.", "enterNumber": "Пожалуйста, введите корректный номер.", "fieldHasNo": "У этого поля нет {{label}}", - "greaterThanMax": "\"{{value}}\" больше максимально допустимого значения {{max}}.", + "greaterThanMax": "{{value}} больше максимально допустимого значения {{label}} {{max}}.", "invalidInput": "Это поле имеет недопустимое значение.", "invalidSelection": "В этом поле выбран недопустимый вариант.", "invalidSelections": "'Это поле содержит следующие неправильные варианты:'", - "lessThanMin": "\"{{value}}\" меньше минимально допустимого значения {{min}}.", + "lessThanMin": "{{value}} меньше минимально допустимого значения {{label}} {{min}}.", "longerThanMin": "Это значение должно быть больше минимальной длины символов: {{minLength}}.", "notValidDate": "\"{{value}}\" это не действительная дата.", "required": "Это обязательное поле.", diff --git a/src/translations/sv.json b/src/translations/sv.json index 1f2122a632..f43674212a 100644 --- a/src/translations/sv.json +++ b/src/translations/sv.json @@ -241,6 +241,7 @@ "uploading": "Uppladdning", "user": "Användare", "users": "Användare", + "value": "Värde", "welcome": "Välkommen" }, "operators": { @@ -274,11 +275,11 @@ "emailAddress": "Vänligen ange en giltig e-postadress.", "enterNumber": "Vänligen skriv in ett giltigt nummer.", "fieldHasNo": "Detta fält har ingen {{label}}", - "greaterThanMax": "\"{{value}}\" är större än det högsta tillåtna värdet på {{max}}.", + "greaterThanMax": "{{value}} är större än den maximalt tillåtna {{label}} av {{max}}.", "invalidInput": "Det här fältet har en ogiltig inmatning.", "invalidSelection": "Det här fältet har ett ogiltigt urval.", "invalidSelections": "Det här fältet har följande ogiltiga val:", - "lessThanMin": "\"{{value}}\" är mindre än det lägsta tillåtna värdet på {{min}}.", + "lessThanMin": "{{value}} är mindre än den minst tillåtna {{label}} av {{min}}.", "longerThanMin": "Detta värde måste vara längre än minimilängden på {{minLength}} tecken.", "notValidDate": "\"{{value}}\" är inte ett giltigt datum.", "required": "Detta fält är obligatoriskt.", diff --git a/src/translations/th.json b/src/translations/th.json index d8c58ec501..83c2f02fb4 100644 --- a/src/translations/th.json +++ b/src/translations/th.json @@ -241,6 +241,7 @@ "uploading": "กำลังอัปโหลด", "user": "ผู้ใช้", "users": "ผู้ใช้", + "value": "ค่า", "welcome": "ยินดีต้อนรับ" }, "operators": { @@ -274,11 +275,11 @@ "emailAddress": "กรุณาระบุอีเมลที่ถูกต้อง", "enterNumber": "กรุณาระบุตัวเลขที่ถูกต้อง", "fieldHasNo": "ช่องนี้ไม่มี {{label}}", - "greaterThanMax": "\"{{value}}\" มีค่ามากกว่าค่าสูงสุดที่กำหนดคือ {{max}}", + "greaterThanMax": "{{value}} มากกว่าค่าสูงสุดที่อนุญาตของ {{label}} ซึ่งคือ {{max}}.", "invalidInput": "ข้อมูลไม่ถูกต้อง", "invalidSelection": "ค่าที่เลือกไม่ถูกต้อง", "invalidSelections": "ค่าที่เลือกไม่ถูกต้องดังนี้:", - "lessThanMin": "\"{{value}}\" มีค่าน้อยกว่าค่าต่ำสุดที่กำหนดคือ {{min}}", + "lessThanMin": "{{value}} น้อยกว่าค่าต่ำสุดที่อนุญาตของ {{label}} ซึ่งคือ {{min}}.", "longerThanMin": "ค่าต้องมีความยาวมากกว่า {{minLength}} ตัวอักษร", "notValidDate": "วันที่ \"{{value}}\" ไม่ถูกต้อง", "required": "จำเป็นต้องระบุค่า", diff --git a/src/translations/tr.json b/src/translations/tr.json index d972486ac5..7b23909d21 100644 --- a/src/translations/tr.json +++ b/src/translations/tr.json @@ -241,6 +241,7 @@ "uploading": "Yükleniyor", "user": "kullanıcı", "users": "kullanıcı", + "value": "Değer", "welcome": "Hoşgeldiniz" }, "operators": { @@ -274,11 +275,11 @@ "emailAddress": "Lütfen geçerli bir e-posta adresi girin.", "enterNumber": "Lütfen geçerli bir sayı girin.", "fieldHasNo": "Bu alanda {{label}} girili değil.", - "greaterThanMax": "\"{{value}}\", izin verilen maksimum değerden ({{max}}) fazla.", + "greaterThanMax": "{{value}} izin verilen maksimum {{label}} değerinden daha büyük.", "invalidInput": "Bu alanda geçersiz bir giriş mevcut.", "invalidSelection": "Bu alanda geçersiz bir seçim mevcut.", "invalidSelections": "'Bu alan şu geçersiz seçimlere sahip:'", - "lessThanMin": "\"{{value}}\", belirlenen minimum değerden ({{min}}) az.", + "lessThanMin": "{{value}} izin verilen minimum {{label}} değerinden daha küçük.", "longerThanMin": "Bu değer minimum {{minLength}} karakterden uzun olmalıdır.", "notValidDate": "\"{{value}}\" geçerli bir tarih değil.", "required": "Bu alan gereklidir.", diff --git a/src/translations/translation-schema.json b/src/translations/translation-schema.json index e7f9a64709..e79c1a0421 100644 --- a/src/translations/translation-schema.json +++ b/src/translations/translation-schema.json @@ -863,6 +863,9 @@ "users": { "type": "string" }, + "value": { + "type": "string" + }, "welcome": { "type": "string" } @@ -976,37 +979,37 @@ "equals": { "type": "string" }, - "isNotEqualTo":{ + "isNotEqualTo": { "type": "string" }, "isIn": { "type": "string" }, - "isNotIn":{ + "isNotIn": { "type": "string" }, "exists": { "type": "string" }, - "isGreaterThan":{ + "isGreaterThan": { "type": "string" }, "isLessThan": { "type": "string" }, - "isLessThanOrEqualTo":{ + "isLessThanOrEqualTo": { "type": "string" }, "isGreaterThanOrEqualTo": { "type": "string" }, - "near":{ + "near": { "type": "string" }, "isLike": { "type": "string" }, - "contains":{ + "contains": { "type": "string" } }, diff --git a/src/translations/ua.json b/src/translations/ua.json index 613f63e757..dbb8d48cdd 100644 --- a/src/translations/ua.json +++ b/src/translations/ua.json @@ -237,6 +237,7 @@ "uploading": "завантаження", "user": "Користувач", "users": "Користувачі", + "value": "Значення", "welcome": "Вітаю" }, "operators": { @@ -270,11 +271,11 @@ "emailAddress": "Будь ласка, введіть валідну email адресу.", "enterNumber": "Будь ласка, введіть валідний номер.", "fieldHasNo": "В цього поля немає {{label}}", - "greaterThanMax": "\"{{value}}\" більше максимального значення {{max}}.", + "greaterThanMax": "{{value}} більше, ніж дозволено максимуму {{label}} в {{max}}.", "invalidInput": "У цьому полі введено некоректне значення.", "invalidSelection": "Це поле має некоректний вибір.", "invalidSelections": "Це поле має наступні невірні варіанти вибору:", - "lessThanMin": "\"{{value}}\" менше мінімально допустимого значення {{min}}.", + "lessThanMin": "{{value}} менше, ніж дозволено мінімуму {{label}} в {{min}}.", "longerThanMin": "Це значення має бути більше, ніж мінімальна довжина {{minLength}} characters.", "notValidDate": "\"{{value}}\" - некоректна дата.", "required": "Це поле є обов'язковим.", diff --git a/src/translations/vi.json b/src/translations/vi.json index 0526325a2a..d38462eabf 100644 --- a/src/translations/vi.json +++ b/src/translations/vi.json @@ -240,6 +240,7 @@ "uploading": "Đang tải lên", "user": "Người dùng", "users": "Người dùng", + "value": "Giá trị", "welcome": "Xin chào" }, "operators": { @@ -273,11 +274,11 @@ "emailAddress": "Địa chỉ email không hợp lệ.", "enterNumber": "Vui lòng nhập số.", "fieldHasNo": "Field này không có: {{label}}", - "greaterThanMax": "\"{{value}}\" đã vượt quá giá trị tối đa: {{max}}.", + "greaterThanMax": "{{value}} lớn hơn giá trị tối đa cho phép của {{label}} là {{max}}.", "invalidInput": "Dữ liệu nhập vào không hợp lệ.", "invalidSelection": "Lựa chọn ở field này không hợp lệ.", "invalidSelections": "'Field này có những lựa chọn không hợp lệ sau:'", - "lessThanMin": "\"{{value}}\" đang thấp hơn giá trị tối thiểu: {{min}}.", + "lessThanMin": "{{value}} nhỏ hơn giá trị tối thiểu cho phép của {{label}} là {{min}}.", "longerThanMin": "Giá trị này cần có độ dài tối thiểu {{minLength}} ký tự.", "notValidDate": "\"{{value}}\" không phải là một ngày (date) hợp lệ.", "required": "Field này cần được diền.", diff --git a/src/translations/zh.json b/src/translations/zh.json index c5fe340c64..04e1e6cc18 100644 --- a/src/translations/zh.json +++ b/src/translations/zh.json @@ -239,6 +239,7 @@ "updatedSuccessfully": "更新成功。", "user": "用户", "users": "用户", + "value": "值", "welcome": "欢迎" }, "operators": { @@ -272,11 +273,11 @@ "emailAddress": "请输入一个有效的电子邮件地址。", "enterNumber": "请输入一个有效的号码。", "fieldHasNo": "这个字段没有{{label}}", - "greaterThanMax": "\"{{value}}\"大于{{max}}的最大允许值", + "greaterThanMax": "{{value}}超过了允许的最大{{label}},该最大值为{{max}}。", "invalidInput": "这个字段有一个无效的输入。", "invalidSelection": "这个字段有一个无效的选择。", "invalidSelections": "这个字段有以下无效的选择:", - "lessThanMin": "{{value}}小于{{min}}的最小允许值", + "lessThanMin": "{{value}}小于允许的最小{{label}},该最小值为{{min}}。", "longerThanMin": "该值必须大于{{minLength}}字符的最小长度", "notValidDate": "\"{{value}}\"不是一个有效的日期。", "required": "该字段为必填项目。", diff --git a/src/utilities/configToJSONSchema.ts b/src/utilities/configToJSONSchema.ts index e7f489595f..253ff2e479 100644 --- a/src/utilities/configToJSONSchema.ts +++ b/src/utilities/configToJSONSchema.ts @@ -32,7 +32,10 @@ function returnOptionEnums(options: Option[]): string[] { }); } -export function generateEntitySchemas(entities: (SanitizedCollectionConfig | SanitizedGlobalConfig)[]): JSONSchema4 { +/** + * This is used for generating the TypeScript types (payload-types.ts) with the payload generate:types command. + */ +function generateEntitySchemas(entities: (SanitizedCollectionConfig | SanitizedGlobalConfig)[]): JSONSchema4 { const properties = [...entities].reduce((acc, { slug }) => { acc[slug] = { $ref: `#/definitions/${slug}`, @@ -72,7 +75,11 @@ function fieldsToJSONSchema(collectionIDFieldTypes: { [key: string]: 'string' | } case 'number': { - fieldSchema = { type: 'number' }; + if (field.hasMany === true) { + fieldSchema = { type: 'array', items: { type: 'number' } }; + } else { + fieldSchema = { type: 'number' }; + } break; } diff --git a/src/utilities/isNumber.ts b/src/utilities/isNumber.ts index 1604de7ff2..051e9251c6 100644 --- a/src/utilities/isNumber.ts +++ b/src/utilities/isNumber.ts @@ -1,3 +1,7 @@ export function isNumber(value: unknown): boolean { + if (typeof value === 'string' && value.trim() === ''){ + return false + } + return !Number.isNaN(Number(value)); -} +} \ No newline at end of file diff --git a/test/fields/collections/Number/index.ts b/test/fields/collections/Number/index.ts index 34bc86a3a2..f15ba3d2a7 100644 --- a/test/fields/collections/Number/index.ts +++ b/test/fields/collections/Number/index.ts @@ -47,6 +47,30 @@ const NumberFields: CollectionConfig = { type: 'number', defaultValue: defaultNumber, }, + { + name: 'hasMany', + type: 'number', + hasMany: true, + min: 5, + max: 100, + }, + { + name: 'validatesHasMany', + type: 'number', + hasMany: true, + validate: (value: number[]) => { + if (value && !Array.isArray(value)) { + return 'value should be an array'; + } + return true; + }, + }, + { + name: 'localizedHasMany', + type: 'number', + hasMany: true, + localized: true, + }, ], }; @@ -58,6 +82,9 @@ export const numberDoc = { negativeNumber: -5, decimalMin: 1.25, decimalMax: 0.25, + hasMany: [5, 10, 15], + validatesHasMany: [5], + localizedHasMany: [10], }; export default NumberFields; diff --git a/test/fields/e2e.spec.ts b/test/fields/e2e.spec.ts index f6d2e7f340..fa8fbc3537 100644 --- a/test/fields/e2e.spec.ts +++ b/test/fields/e2e.spec.ts @@ -12,6 +12,7 @@ import { tabsSlug } from './collections/Tabs'; import { collapsibleFieldsSlug } from './collections/Collapsible'; import wait from '../../src/utilities/wait'; import { jsonDoc } from './collections/JSON'; +import { numberDoc } from './collections/Number'; const { beforeAll, describe } = test; @@ -67,6 +68,42 @@ describe('fields', () => { }); }); + describe('number', () => { + let url: AdminUrlUtil; + beforeAll(() => { + url = new AdminUrlUtil(serverURL, 'number-fields'); + }); + + test('should display field in list view', async () => { + await page.goto(url.list); + const textCell = page.locator('.row-1 .cell-number'); + await expect(textCell) + .toHaveText(String(numberDoc.number)); + }); + + test('should create', async () => { + const input = 5; + + await page.goto(url.create); + const field = page.locator('#field-number'); + await field.fill(String(input)); + await saveDocAndAssert(page); + await expect(await field.inputValue()).toEqual(String(input)); + }); + + test('should create hasMany', async () => { + const input = 5; + + await page.goto(url.create); + const field = page.locator('.field-hasMany'); + await field.click(); + await page.keyboard.type(String(input)); + await page.keyboard.press('Enter'); + await saveDocAndAssert(page); + await expect(field.locator('.rs__value-container')).toContainText(String(input)); + }); + }); + describe('json', () => { let url: AdminUrlUtil; beforeAll(() => { diff --git a/test/fields/int.spec.ts b/test/fields/int.spec.ts index 21351d4e63..854fde7f2c 100644 --- a/test/fields/int.spec.ts +++ b/test/fields/int.spec.ts @@ -194,6 +194,25 @@ describe('Fields', () => { }, })).rejects.toThrow('The following field is invalid: decimalMax'); }); + it('should localize an array of numbers using hasMany', async () => { + const localizedHasMany = [5, 10]; + const { id } = await payload.create({ + collection: 'number-fields', + locale: 'en', + data: { + localizedHasMany, + }, + }); + const localizedDoc = await payload.findByID({ + collection: 'number-fields', + locale: 'all', + id, + }); + + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + expect(localizedDoc.localizedHasMany.en).toEqual(localizedHasMany); + }); }); describe('indexes', () => { diff --git a/test/fields/payload-types.ts b/test/fields/payload-types.ts index 4df5b37699..a94f8e40b6 100644 --- a/test/fields/payload-types.ts +++ b/test/fields/payload-types.ts @@ -35,13 +35,15 @@ export interface Config { export interface User { id: string; canViewConditionalField?: boolean; - email?: string; + updatedAt: string; + createdAt: string; + email: string; resetPasswordToken?: string; resetPasswordExpiration?: string; + salt?: string; + hash?: string; loginAttempts?: number; lockUntil?: string; - createdAt: string; - updatedAt: string; password?: string; } export interface ArrayField { @@ -50,7 +52,7 @@ export interface ArrayField { text: string; id?: string; }[]; - collapsedArray: { + collapsedArray?: { text: string; id?: string; }[]; @@ -74,8 +76,8 @@ export interface ArrayField { title?: string; id?: string; }[]; - createdAt: string; updatedAt: string; + createdAt: string; } export interface BlockField { id: string; @@ -214,8 +216,8 @@ export interface BlockField { blockName?: string; blockType: 'text'; }[]; - createdAt: string; updatedAt: string; + createdAt: string; } export interface CodeField { id: string; @@ -224,8 +226,8 @@ export interface CodeField { json?: string; html?: string; css?: string; - createdAt: string; updatedAt: string; + createdAt: string; } export interface CollapsibleField { id: string; @@ -244,8 +246,8 @@ export interface CollapsibleField { innerCollapsible?: string; id?: string; }[]; - createdAt: string; updatedAt: string; + createdAt: string; } export interface ConditionalLogic { id: string; @@ -253,8 +255,8 @@ export interface ConditionalLogic { toggleField?: boolean; fieldToToggle: string; userConditional?: string; - createdAt: string; updatedAt: string; + createdAt: string; } export interface DateField { id: string; @@ -263,14 +265,14 @@ export interface DateField { dayOnly?: string; dayAndTime?: string; monthOnly?: string; - createdAt: string; updatedAt: string; + createdAt: string; } export interface RadioField { id: string; radio?: 'one' | 'two' | 'three'; - createdAt: string; updatedAt: string; + createdAt: string; } export interface GroupField { id: string; @@ -300,14 +302,27 @@ export interface GroupField { nestedField?: string; }; }; - createdAt: string; + groups: { + groupInRow?: { + field?: string; + secondField?: string; + thirdField?: string; + }; + secondGroupInRow?: { + field?: string; + nestedGroup?: { + nestedField?: string; + }; + }; + }; updatedAt: string; + createdAt: string; } export interface RowField { id: string; title: string; - createdAt: string; updatedAt: string; + createdAt: string; } export interface IndexedField { id: string; @@ -330,8 +345,8 @@ export interface IndexedField { collapsibleTextUnique?: string; partOne?: string; partTwo?: string; - createdAt: string; updatedAt: string; + createdAt: string; } export interface JsonField { id: string; @@ -344,8 +359,8 @@ export interface JsonField { | number | boolean | null; - createdAt: string; updatedAt: string; + createdAt: string; } export interface NumberField { id: string; @@ -357,8 +372,11 @@ export interface NumberField { decimalMin?: number; decimalMax?: number; defaultNumber?: number; - createdAt: string; + hasMany?: number[]; + validatesHasMany?: number[]; + localizedHasMany?: number[]; updatedAt: string; + createdAt: string; } export interface PointField { id: string; @@ -379,8 +397,8 @@ export interface PointField { */ point?: [number, number]; }; - createdAt: string; updatedAt: string; + createdAt: string; } export interface RelationshipField { id: string; @@ -402,8 +420,8 @@ export interface RelationshipField { }; relationshipWithMin?: string[] | TextField[]; relationshipWithMax?: string[] | TextField[]; - createdAt: string; updatedAt: string; + createdAt: string; } export interface TextField { id: string; @@ -413,8 +431,8 @@ export interface TextField { defaultFunction?: string; defaultAsync?: string; overrideLength?: string; - createdAt: string; updatedAt: string; + createdAt: string; } export interface RichTextField { id: string; @@ -423,11 +441,14 @@ export interface RichTextField { richText: { [k: string]: unknown; }[]; + richTextCustomFields?: { + [k: string]: unknown; + }[]; richTextReadOnly?: { [k: string]: unknown; }[]; - createdAt: string; updatedAt: string; + createdAt: string; } export interface SelectField { id: string; @@ -437,8 +458,8 @@ export interface SelectField { selectHasManyLocalized?: ('one' | 'two')[]; selectI18n?: 'one' | 'two' | 'three'; simple?: 'One' | 'Two' | 'Three'; - createdAt: string; updatedAt: string; + createdAt: string; } export interface TabsField { id: string; @@ -522,8 +543,8 @@ export interface TabsField { nestedTab: { text?: string; }; - createdAt: string; updatedAt: string; + createdAt: string; } export interface Upload { id: string; @@ -532,27 +553,27 @@ export interface Upload { richText?: { [k: string]: unknown; }[]; + updatedAt: string; + createdAt: string; url?: string; filename?: string; mimeType?: string; filesize?: number; width?: number; height?: number; - createdAt: string; - updatedAt: string; } export interface Uploads2 { id: string; text?: string; media?: string | Uploads2; + updatedAt: string; + createdAt: string; url?: string; filename?: string; mimeType?: string; filesize?: number; width?: number; height?: number; - createdAt: string; - updatedAt: string; } export interface Uploads3 { id: string; @@ -560,12 +581,12 @@ export interface Uploads3 { richText?: { [k: string]: unknown; }[]; + updatedAt: string; + createdAt: string; url?: string; filename?: string; mimeType?: string; filesize?: number; width?: number; height?: number; - createdAt: string; - updatedAt: string; } From e90c2c4cb79d8e59f81268e2d6d5e7e329b35f4a Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Tue, 20 Jun 2023 16:04:54 -0400 Subject: [PATCH 41/78] chore: simplifies relationship drawer field test (#2872) --- test/fields/e2e.spec.ts | 80 ++++++++++++----------------------------- 1 file changed, 23 insertions(+), 57 deletions(-) diff --git a/test/fields/e2e.spec.ts b/test/fields/e2e.spec.ts index fa8fbc3537..3aa6909e15 100644 --- a/test/fields/e2e.spec.ts +++ b/test/fields/e2e.spec.ts @@ -876,68 +876,34 @@ describe('fields', () => { await saveDocAndAssert(page); }); - // Related issue: https://github.com/payloadcms/payload/issues/2815 - test("should create hasMany relationship, open the drawer and modify a relation document's field", async () => { + test('should modify fields in relationship drawer', async () => { await page.goto(url.create); - // First fill out the relationship field, as it's required - { - const button = page.locator('#relationship-add-new .relationship-add-new__add-button'); - await button.click(); - await page.locator('#field-relationship .relationship-add-new__relation-button--text-fields').click(); + // Create a new doc for the `relationshipHasMany` field + await page.locator('#field-relationshipHasMany button.relationship-add-new__add-button').click(); + const textField2 = page.locator('[id^=doc-drawer_text-fields_1_] #field-text'); + const value = 'Hello, world!'; + await textField2.fill(value); - const textField = page.locator('#field-text'); - const textValue = 'hello'; + // Save and close the drawer + await page.locator('[id^=doc-drawer_text-fields_1_] #action-save').click(); + await expect(page.locator('.Toastify')).toContainText('successfully'); + await page.locator('[id^=close-drawer__doc-drawer_text-fields_1_]').click(); - await textField.fill(textValue); - - await page.locator('[id^=doc-drawer_text-fields_1_] #action-save').click(); - await expect(page.locator('.Toastify')).toContainText('successfully'); - await page.locator('[id^=close-drawer__doc-drawer_text-fields_1_]').click(); - await page.locator('#action-save').click(); - await expect(page.locator('.Toastify')).toContainText('successfully'); - } - - // Now the relationshipHasMany field - { - const button = page.locator('#relationshipHasMany-add-new').getByRole('button', { name: 'Add new Text Field' }); - await button.click(); - - const textField = page.getByLabel('Text*'); - const textValue = 'hello'; - - await textField.fill(textValue); - - await page.locator('[id^=doc-drawer_text-fields_1_] #action-save').click(); - await expect(page.locator('.Toastify')).toContainText('successfully'); - await page.locator('[id^=close-drawer__doc-drawer_text-fields_1_]').click(); - await page.locator('#action-save').click(); - await expect(page.locator('.Toastify')).toContainText('successfully'); - } - - await page.reload(); - - // Now edit it - const textValue2 = '123'; - { - const hasManyField = await page.locator('#field-relationshipHasMany > .relationship__wrap > .react-select-container > .react-select > .rs__control'); - const editButton = await hasManyField.getByText('Edit Edit'); - await editButton.click(); - const textField2 = page.getByLabel('Text*'); - await textField2.click(); - await page.keyboard.down('1'); - await page.keyboard.down('2'); - await page.keyboard.down('3'); - await page.locator('[id^=doc-drawer_text-fields_1_] #action-save').click(); - await expect(page.locator('.Toastify')).toContainText('successfully'); - await page.locator('[id^=close-drawer__doc-drawer_text-fields_1_]').click(); - await page.locator('#action-save').click(); - await expect(page.locator('.Toastify')).toContainText('successfully'); - } - - await page.reload(); - await expect(page.locator('#field-relationshipHasMany .relationship--multi-value-label__text')).toContainText(textValue2); + // Now open the drawer again to edit the `text` field _using the keyboard_ + await page.locator('#field-relationshipHasMany button.relationship--multi-value-label__drawer-toggler').click(); + const textField3 = page.locator('[id^=doc-drawer_text-fields_1_] #field-text'); + await textField3.click(); + await page.keyboard.down('1'); + await page.keyboard.down('2'); + await page.keyboard.down('3'); + await page.locator('[id^=doc-drawer_text-fields_1_] #action-save').click(); + await expect(page.locator('.Toastify')).toContainText('successfully'); + // TODO: uncomment this when the drawer is fixed + // await page.locator('[id^=close-drawer__doc-drawer_text-fields_1_]').click(); + // await expect(page.locator('#field-relationshipHasMany .relationship--multi-value-label__text')).toContainText(`${value}123`); + await expect(page.locator('#field-relationshipHasMany .relationship--multi-value-label__text')).toContainText(value); }); }); From ba9d6336acc779cfec0db312c8e2da912ce58cd4 Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Tue, 20 Jun 2023 16:05:48 -0400 Subject: [PATCH 42/78] fix: mobile loading overlay width #2866 (#2867) --- src/admin/scss/app.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/admin/scss/app.scss b/src/admin/scss/app.scss index ebdf23015f..1d48f0b858 100644 --- a/src/admin/scss/app.scss +++ b/src/admin/scss/app.scss @@ -34,7 +34,7 @@ @include mid-break { --gutter-h: #{base(2)}; - --nav-width: 0; + --nav-width: 0px; } @include small-break { From ce84174554d9d828cbaaaa9548e5defc0feb4e2b Mon Sep 17 00:00:00 2001 From: Dan Ribbens Date: Tue, 20 Jun 2023 17:03:40 -0400 Subject: [PATCH 43/78] fix: relationship field query pagination (#2871) --- .../forms/field-types/Relationship/index.tsx | 238 ++++++++++-------- 1 file changed, 129 insertions(+), 109 deletions(-) diff --git a/src/admin/components/forms/field-types/Relationship/index.tsx b/src/admin/components/forms/field-types/Relationship/index.tsx index ce4e3bb6da..e80a009c20 100644 --- a/src/admin/components/forms/field-types/Relationship/index.tsx +++ b/src/admin/components/forms/field-types/Relationship/index.tsx @@ -99,142 +99,162 @@ const Relationship: React.FC = (props) => { const [drawerIsOpen, setDrawerIsOpen] = useState(false); - const getResults: GetResults = useCallback(async ({ - lastFullyLoadedRelation: lastFullyLoadedRelationArg, - search: searchArg, - value: valueArg, - sort, - onSuccess, - }) => { - if (!permissions) { - return; - } - const lastFullyLoadedRelationToUse = typeof lastFullyLoadedRelationArg !== 'undefined' ? lastFullyLoadedRelationArg : -1; - - const relations = Array.isArray(relationTo) ? relationTo : [relationTo]; - const relationsToFetch = lastFullyLoadedRelationToUse === -1 ? relations : relations.slice(lastFullyLoadedRelationToUse + 1); - - let resultsFetched = 0; - const relationMap = createRelationMap({ - hasMany, - relationTo, + const getResults: GetResults = useCallback( + async ({ + lastFullyLoadedRelation: lastFullyLoadedRelationArg, + search: searchArg, value: valueArg, - }); + sort, + onSuccess, + }) => { + if (!permissions) { + return; + } + const lastFullyLoadedRelationToUse = typeof lastFullyLoadedRelationArg !== 'undefined' + ? lastFullyLoadedRelationArg + : -1; - if (!errorLoading) { - relationsToFetch.reduce(async (priorRelation, relation) => { - const lastLoadedPageToUse = (lastLoadedPage[relation] + 1) || 1; - await priorRelation; + const relations = Array.isArray(relationTo) ? relationTo : [relationTo]; + const relationsToFetch = lastFullyLoadedRelationToUse === -1 + ? relations + : relations.slice(lastFullyLoadedRelationToUse + 1); - if (resultsFetched < 10) { - const collection = collections.find((coll) => coll.slug === relation); - const fieldToSearch = collection?.admin?.useAsTitle || 'id'; + let resultsFetched = 0; + const relationMap = createRelationMap({ + hasMany, + relationTo, + value: valueArg, + }); - const query: { - [key: string]: unknown - where: Where - } = { - where: { - and: [ - { - id: { - not_in: relationMap[relation], + if (!errorLoading) { + relationsToFetch.reduce(async (priorRelation, relation) => { + let lastLoadedPageToUse; + if (search !== searchArg) { + lastLoadedPageToUse = 1; + } else { + lastLoadedPageToUse = lastLoadedPage[relation] + 1; + } + await priorRelation; + + if (resultsFetched < 10) { + const collection = collections.find( + (coll) => coll.slug === relation, + ); + const fieldToSearch = collection?.admin?.useAsTitle || 'id'; + + const query: { + [key: string]: unknown; + where: Where; + } = { + where: { + and: [ + { + id: { + not_in: relationMap[relation], + }, }, - }, - ], - }, - limit: maxResultsPerRequest, - page: lastLoadedPageToUse, - sort: fieldToSearch, - locale, - depth: 0, - }; - - if (searchArg) { - query.where.and.push({ - [fieldToSearch]: { - like: searchArg, + ], }, - }); - } + limit: maxResultsPerRequest, + page: lastLoadedPageToUse, + sort: fieldToSearch, + locale, + depth: 0, + }; - if (filterOptionsResult?.[relation]) { - query.where.and.push(filterOptionsResult[relation]); - } - - const response = await fetch(`${serverURL}${api}/${relation}?${qs.stringify(query)}`, { - credentials: 'include', - headers: { - 'Accept-Language': i18n.language, - }, - }); - - if (response.ok) { - const data: PaginatedDocs = await response.json(); - - setLastLoadedPage((prevState) => ({ - ...prevState, - [relation]: lastLoadedPageToUse, - })); - - if (!data.nextPage) { - setLastFullyLoadedRelation(relations.indexOf(relation)); + if (searchArg) { + query.where.and.push({ + [fieldToSearch]: { + like: searchArg, + }, + }); } - if (data.docs.length > 0) { - resultsFetched += data.docs.length; + if (filterOptionsResult?.[relation]) { + query.where.and.push(filterOptionsResult[relation]); + } + const response = await fetch( + `${serverURL}${api}/${relation}?${qs.stringify(query)}`, + { + credentials: 'include', + headers: { + 'Accept-Language': i18n.language, + }, + }, + ); + + if (response.ok) { + const data: PaginatedDocs = await response.json(); + setLastLoadedPage((prevState) => { + return { + ...prevState, + [relation]: lastLoadedPageToUse, + }; + }); + + if (!data.nextPage) { + setLastFullyLoadedRelation(relations.indexOf(relation)); + } + + if (data.docs.length > 0) { + resultsFetched += data.docs.length; + + dispatchOptions({ + type: 'ADD', + docs: data.docs, + collection, + sort, + i18n, + config, + }); + } + } else if (response.status === 403) { + setLastFullyLoadedRelation(relations.indexOf(relation)); dispatchOptions({ type: 'ADD', - docs: data.docs, + docs: [], collection, sort, + ids: relationMap[relation], i18n, config, }); + } else { + setErrorLoading(t('error:unspecific')); } - } else if (response.status === 403) { - setLastFullyLoadedRelation(relations.indexOf(relation)); - dispatchOptions({ - type: 'ADD', - docs: [], - collection, - sort, - ids: relationMap[relation], - i18n, - config, - }); - } else { - setErrorLoading(t('error:unspecific')); } - } - }, Promise.resolve()); + }, Promise.resolve()); - if (typeof onSuccess === 'function') onSuccess(); - } - }, [ - lastLoadedPage, - permissions, - relationTo, - hasMany, - errorLoading, - collections, - filterOptionsResult, - serverURL, - api, - t, - i18n, - locale, - config, - ]); + if (typeof onSuccess === 'function') onSuccess(); + } + }, + [ + permissions, + relationTo, + hasMany, + errorLoading, + search, + lastLoadedPage, + collections, + locale, + filterOptionsResult, + serverURL, + api, + i18n, + config, + t, + ], + ); const updateSearch = useDebouncedCallback((searchArg: string, valueArg: Value | Value[]) => { getResults({ search: searchArg, value: valueArg, sort: true }); setSearch(searchArg); - }, [getResults]); + }, 300); const handleInputChange = useCallback((searchArg: string, valueArg: Value | Value[]) => { if (search !== searchArg) { + setLastLoadedPage({}); updateSearch(searchArg, valueArg); } }, [search, updateSearch]); From e4df1293d23ca71efe632ed2b1bc7ae629f75ca4 Mon Sep 17 00:00:00 2001 From: Dan Ribbens Date: Tue, 20 Jun 2023 17:19:31 -0400 Subject: [PATCH 44/78] chore(release): v1.10.0 --- CHANGELOG.md | 24 ++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 923a9bf39b..9861fed566 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,29 @@ +# [1.10.0](https://github.com/payloadcms/payload/compare/v1.9.5...v1.10.0) (2023-06-20) + + +### Bug Fixes + +* [#2831](https://github.com/payloadcms/payload/issues/2831), persists payloadAPI through local operations that accept req ([85d2467](https://github.com/payloadcms/payload/commit/85d2467d73582a372ee34e3ce93403847a1f0689)) +* [#2842](https://github.com/payloadcms/payload/issues/2842), querying number custom ids with in ([116e9ff](https://github.com/payloadcms/payload/commit/116e9ffe81f44c4b40fa578b4a8fe4bb70fd110c)) +* default sort with near operator ([#2862](https://github.com/payloadcms/payload/issues/2862)) ([99f3809](https://github.com/payloadcms/payload/commit/99f38098dd4a386437c469becc975ca86c54601f)) +* deprecate min/max in exchange for minRows and maxRows for relationship field ([#2826](https://github.com/payloadcms/payload/issues/2826)) ([0d8d7f3](https://github.com/payloadcms/payload/commit/0d8d7f358d390184f6f888d77858b4a145e94214)) +* drawer close on backspace ([#2869](https://github.com/payloadcms/payload/issues/2869)) ([a110ba2](https://github.com/payloadcms/payload/commit/a110ba2dc09cd0824a9b1eb8e011604388277bd8)) +* drawer fields are read-only if opened from a hasMany relationship ([#2843](https://github.com/payloadcms/payload/issues/2843)) ([542b536](https://github.com/payloadcms/payload/commit/542b5362d3ec8741aff6b1672fab7d2250e7b854)) +* fields in relationship drawer not usable [#2815](https://github.com/payloadcms/payload/issues/2815) ([#2870](https://github.com/payloadcms/payload/issues/2870)) ([8626dc6](https://github.com/payloadcms/payload/commit/8626dc6b1a926143e7ba505f3edd924432168675)) +* mobile loading overlay width [#2866](https://github.com/payloadcms/payload/issues/2866) ([#2867](https://github.com/payloadcms/payload/issues/2867)) ([ba9d633](https://github.com/payloadcms/payload/commit/ba9d6336acc779cfec0db312c8e2da912ce58cd4)) +* near query sorting by distance and pagination ([#2861](https://github.com/payloadcms/payload/issues/2861)) ([1611896](https://github.com/payloadcms/payload/commit/16118960aa6d63f7a429f168ff4305f336b1b1e6)) +* relationship field query pagination ([#2871](https://github.com/payloadcms/payload/issues/2871)) ([ce84174](https://github.com/payloadcms/payload/commit/ce84174554d9d828cbaaaa9548e5defc0feb4e2b)) +* slow like queries with lots of records ([4dd703a](https://github.com/payloadcms/payload/commit/4dd703a6bff0ab7d06af234baa975553bd62f176)) + + +### Features + +* automatically redirect a user back to their originally requested URL after login ([#2838](https://github.com/payloadcms/payload/issues/2838)) ([e910688](https://github.com/payloadcms/payload/commit/e9106882f721d43bcc05a1690bda7754b450404e)) +* hasMany for number field ([#2517](https://github.com/payloadcms/payload/issues/2517)) ([8f086e3](https://github.com/payloadcms/payload/commit/8f086e315cb30be9d399fd3022c16952fb81cb2e)), closes [#2812](https://github.com/payloadcms/payload/issues/2812) [#2821](https://github.com/payloadcms/payload/issues/2821) [#2823](https://github.com/payloadcms/payload/issues/2823) [#2824](https://github.com/payloadcms/payload/issues/2824) [#2814](https://github.com/payloadcms/payload/issues/2814) [#2793](https://github.com/payloadcms/payload/issues/2793) [#2835](https://github.com/payloadcms/payload/issues/2835) +* optimizes conditional logic performance ([967f217](https://github.com/payloadcms/payload/commit/967f21734600de1fec8c1227a354ef5a417e54c5)) + ## [1.9.5](https://github.com/payloadcms/payload/compare/v1.9.4...v1.9.5) (2023-06-16) ## [1.9.4](https://github.com/payloadcms/payload/compare/v1.9.3...v1.9.4) (2023-06-16) diff --git a/package.json b/package.json index a6d28fc08d..6f02c60d72 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "payload", - "version": "1.9.5", + "version": "1.10.0", "description": "Node, React and MongoDB Headless CMS and Application Framework", "license": "MIT", "engines": { From 09c6cad3e8462dc3d8b1b6424aafd336c1d7828c Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Tue, 20 Jun 2023 17:49:18 -0400 Subject: [PATCH 45/78] fix: cutoff tooltips in relationship field (#2873) --- .../elements/ReactSelect/ValueContainer/index.scss | 1 + .../components/forms/field-types/Relationship/index.scss | 5 +++-- .../Relationship/select-components/SingleValue/index.scss | 5 +++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/admin/components/elements/ReactSelect/ValueContainer/index.scss b/src/admin/components/elements/ReactSelect/ValueContainer/index.scss index d2ac7a5d65..3202c44741 100644 --- a/src/admin/components/elements/ReactSelect/ValueContainer/index.scss +++ b/src/admin/components/elements/ReactSelect/ValueContainer/index.scss @@ -2,6 +2,7 @@ .value-container { flex-grow: 1; + min-width: 0; .rs__value-container { padding: base(.25) 0; diff --git a/src/admin/components/forms/field-types/Relationship/index.scss b/src/admin/components/forms/field-types/Relationship/index.scss index d5ce3d7589..7fb44413fa 100644 --- a/src/admin/components/forms/field-types/Relationship/index.scss +++ b/src/admin/components/forms/field-types/Relationship/index.scss @@ -11,7 +11,8 @@ width: 100%; div.react-select { - flex-grow: 1; + width: 100%; + min-width: 0; } } @@ -22,4 +23,4 @@ background-color: var(--theme-error-500); color: var(--theme-elevation-0); } -} \ No newline at end of file +} diff --git a/src/admin/components/forms/field-types/Relationship/select-components/SingleValue/index.scss b/src/admin/components/forms/field-types/Relationship/select-components/SingleValue/index.scss index c5aff998c9..fc4e162e42 100644 --- a/src/admin/components/forms/field-types/Relationship/select-components/SingleValue/index.scss +++ b/src/admin/components/forms/field-types/Relationship/select-components/SingleValue/index.scss @@ -2,6 +2,11 @@ .relationship--single-value { + &.rs__single-value { + overflow: visible; + min-width: 0; + } + &__label-text { max-width: unset; display: flex; From 10b8d492b321bf6b11fcf7eb7534dbc901c71231 Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Wed, 21 Jun 2023 17:56:54 -0400 Subject: [PATCH 46/78] docs: vercel visual editing (#2883) --- docs/integrations/vercel-visual-editing.mdx | 104 ++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 docs/integrations/vercel-visual-editing.mdx diff --git a/docs/integrations/vercel-visual-editing.mdx b/docs/integrations/vercel-visual-editing.mdx new file mode 100644 index 0000000000..101b0100b9 --- /dev/null +++ b/docs/integrations/vercel-visual-editing.mdx @@ -0,0 +1,104 @@ +--- +title: Vercel Visual Editing +label: Vercel Visual Editing +order: 10 +desc: Payload + Vercel Visual Editing allows yours editors to navigate directly from the content rendered on your front-end to the fields in Payload that control it. +keywords: vercel, vercel visual editing, visual editing, content source maps, Content Management System, cms, headless, javascript, node, react, express +--- + +[Vercel Visual Editing](https://vercel.com/docs/workflow-collaboration/visual-editing) will allow your editors to navigate directly from the content rendered on your front-end to the fields in Payload that control it. This requires no changes to your front-end code and very few changes to your Payload config. + +![Versions](/images/docs/vercel-visual-editing.jpg) + + + Vercel Visual Editing is an enterprise-only feature and only available for + deployments hosted on Vercel. If you are an existing enterprise customer, + [contact our sales team](https://payloadcms.com/for-enterprise) for help with + your integration. + + +### How it works + +To power Vercel Visual Editing, Payload embeds Content Source Maps into its API responses. Content Source Maps are invisible, encoded JSON values that include a link back to the field in the CMS that generated the content. When rendered on the page, Vercel detects and decodes these values to display the Visual Editing interface. + +For full details on how the encoding and decoding algorithm works, check out [`@vercel/stega`](https://www.npmjs.com/package/@vercel/stega). + +### Getting Started + +Setting up Payload with Vercel Visual Editing is easy. First, install the `@payloadcms/plugin-csm` plugin into your project. This plugin requires an API key to install, [contact our sales team](https://payloadcms.com/for-enterprise) if you don't already have one. + +```bash +npm i @payloadcms/plugin-csm +``` + +Then in the `plugins` array of your Payload config, call the plugin and enable any collections that require Content Source Maps. + +```ts +import { buildConfig } from "payload/config" +import contentSourceMaps from "@payloadcms/plugin-csm" + +const config = buildConfig({ + collections: [ + { + slug: "pages", + fields: [ + { + name: 'slug', + type: 'text', + }, + { + name: 'title,' + type: 'text', + }, + ], + }, + ], + plugins: [ + contentSourceMaps({ + collections: ["pages"], + }), + ], +}) + +export default config +``` + +Now in your Next.js app, include the `?encodeSourceMaps=true` parameter in any of your API requests. For performance reasons, this should only be done when in draft mode or on preview deployments. + +```ts +if (isDraftMode || process.env.VERCEL_ENV === "preview") { + const res = await fetch( + `${process.env.NEXT_PUBLIC_PAYLOAD_CMS_URL}/api/pages?where[slug][equals]=${slug}&encodeSourceMaps=true` + ); +} +``` + +And that's it! You are now ready to enter Edit Mode and begin visually editing your content. + +##### Edit Mode + +To see Visual Editing on your site, you first need to visit any preview deployment on Vercel and login using the Vercel Toolbar. When Content Source Maps are detected on the page, a pencil icon will appear in the toolbar. Clicking this icon will enable Edit Mode, highlighting all editable fields on the page in blue. + +![Versions](/images/docs/vercel-toolbar.jpg) + +### Troubleshooting + +##### Dates + +The plugin does not encode `date` fields by default, but for some cases like text that uses negative CSS letter-spacing, it may be necessary to split the encoded data out from the rendered text. This way you can safely use the cleaned data as expected. + +```ts +import { vercelStegaSplit } from "@vercel/stega"; +const { cleaned, encoded } = vercelStegaSplit(text); +``` + +##### Blocks + +All `blocks` fields by definition do not have plain text strings to encode. For this reason, blocks are given an additional `encodedSourceMap` key, which you can use to enable Visual Editing on entire sections of your site. You can then specify the editing container by adding the `data-vercel-edit-target` HTML attribute to any top-level element of your block. + +```ts +
+ {encodedSourceMap} + {children} +
+``` From 5de3515fc8313abc2dc201ce61d6251d5c268efa Mon Sep 17 00:00:00 2001 From: PatrikKozak Date: Thu, 22 Jun 2023 10:43:53 -0400 Subject: [PATCH 47/78] chore: re-words portion of api key docs --- docs/authentication/config.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/authentication/config.mdx b/docs/authentication/config.mdx index 8d97c87795..5fc2e6b790 100644 --- a/docs/authentication/config.mdx +++ b/docs/authentication/config.mdx @@ -61,7 +61,7 @@ const response = await fetch("http://localhost:3000/api/pages", { }); ``` -Our authentication strategies ensure uniform access control across all strategies. This enables you to utilize your existing access control configurations with both API keys and the standard email/password authentication. This consistency can aid in maintaining granular control over your API keys. +Payload ensures that the same, uniform access control is used across all authentication strategies. This enables you to utilize your existing access control configurations with both API keys and the standard email/password authentication. This consistency can aid in maintaining granular control over your API keys. ### Forgot Password From b83d788d3cfe12f87dcd63a9df20b939a6f4681e Mon Sep 17 00:00:00 2001 From: Jarrod Flesch <30633324+JarrodMFlesch@users.noreply.github.com> Date: Thu, 22 Jun 2023 13:51:24 -0400 Subject: [PATCH 48/78] fix: conditional fields perf bug - #2886 (#2890) --- .../components/forms/Form/fieldReducer.ts | 2 +- .../forms/withCondition/WatchCondition.tsx | 17 ++++-- .../components/forms/withCondition/index.tsx | 7 ++- .../collections/ConditionalLogic/index.ts | 61 +++++++++++++++++++ test/fields/e2e.spec.ts | 26 +++++++- 5 files changed, 103 insertions(+), 10 deletions(-) diff --git a/src/admin/components/forms/Form/fieldReducer.ts b/src/admin/components/forms/Form/fieldReducer.ts index d268b36d4a..f6ff5a1010 100644 --- a/src/admin/components/forms/Form/fieldReducer.ts +++ b/src/admin/components/forms/Form/fieldReducer.ts @@ -49,7 +49,7 @@ export function fieldReducer(state: Fields, action: FieldAction): Fields { // Besides those who still fail their own conditions if (passesCondition && field.condition) { - passesCondition = field.condition(reduceFieldsToValues(state), getSiblingData(state, path), { user }); + passesCondition = field.condition(reduceFieldsToValues(state, true), getSiblingData(state, path), { user }); } return { diff --git a/src/admin/components/forms/withCondition/WatchCondition.tsx b/src/admin/components/forms/withCondition/WatchCondition.tsx index 8dfd646185..d9deb0fb5a 100644 --- a/src/admin/components/forms/withCondition/WatchCondition.tsx +++ b/src/admin/components/forms/withCondition/WatchCondition.tsx @@ -10,12 +10,14 @@ type Props = { path?: string name: string condition: Condition + setShowField: (isVisible: boolean) => void } export const WatchCondition: React.FC = ({ path: pathFromProps, name, condition, + setShowField, }) => { const path = typeof pathFromProps === 'string' ? pathFromProps : name; @@ -30,21 +32,26 @@ export const WatchCondition: React.FC = ({ data.id = id; const hasCondition = Boolean(condition); - const currentlyPassesCondition = hasCondition ? condition(data, siblingData, { user }) : true; + const isPassingCondition = hasCondition ? condition(data, siblingData, { user }) : true; const field = fields[path]; - const existingConditionPasses = field?.passesCondition; + + const wasPassingCondition = field?.passesCondition; useEffect(() => { if (hasCondition) { - if (!existingConditionPasses && currentlyPassesCondition) { + if (isPassingCondition && !wasPassingCondition) { dispatchFields({ type: 'MODIFY_CONDITION', path, result: true, user }); } - if (!currentlyPassesCondition && (existingConditionPasses || typeof existingConditionPasses === 'undefined')) { + if (!isPassingCondition && (wasPassingCondition || typeof wasPassingCondition === 'undefined')) { dispatchFields({ type: 'MODIFY_CONDITION', path, result: false, user }); } } - }, [currentlyPassesCondition, existingConditionPasses, dispatchFields, path, hasCondition, user, fields]); + }, [isPassingCondition, wasPassingCondition, dispatchFields, path, hasCondition, user, setShowField]); + + useEffect(() => { + setShowField(isPassingCondition); + }, [setShowField, isPassingCondition]); return null; }; diff --git a/src/admin/components/forms/withCondition/index.tsx b/src/admin/components/forms/withCondition/index.tsx index f9270872dc..5b7b6875b6 100644 --- a/src/admin/components/forms/withCondition/index.tsx +++ b/src/admin/components/forms/withCondition/index.tsx @@ -3,7 +3,6 @@ import React from 'react'; import { FieldBase } from '../../../../fields/config/types'; import { WatchCondition } from './WatchCondition'; -import { useFormFields } from '../Form/context'; const withCondition =

>(Field: React.ComponentType

): React.FC

=> { const CheckForCondition: React.FC

= (props) => { @@ -31,15 +30,16 @@ const withCondition =

>(Field: React.Component path?: string }; - const passesCondition = useFormFields(([fields]) => fields[path]?.passesCondition); + const [showField, setShowField] = React.useState(false); - if (passesCondition) { + if (showField) { return ( @@ -51,6 +51,7 @@ const withCondition =

>(Field: React.Component path={path} name={name} condition={condition} + setShowField={setShowField} /> ); }; diff --git a/test/fields/collections/ConditionalLogic/index.ts b/test/fields/collections/ConditionalLogic/index.ts index ce0cf80be4..2f64ba1a28 100644 --- a/test/fields/collections/ConditionalLogic/index.ts +++ b/test/fields/collections/ConditionalLogic/index.ts @@ -32,6 +32,67 @@ const ConditionalLogic: CollectionConfig = { }, }, }, + { + name: 'parentGroup', + type: 'group', + fields: [ + { + name: 'enableParentGroupFields', + type: 'checkbox', + defaultValue: false, + }, + { + name: 'siblingField', + type: 'text', + admin: { + description: 'Ensures we can rely on nested fields within `data`.', + condition: ({ parentGroup }) => Boolean(parentGroup?.enableParentGroupFields), + }, + }, + ], + }, + { + name: 'reliesOnParentGroup', + type: 'text', + admin: { + description: 'Ensures we can rely on nested fields within `siblingsData`.', + condition: (_, { parentGroup }) => Boolean(parentGroup?.enableParentGroupFields), + }, + }, + { + name: 'groupSelection', + type: 'select', + options: [ + 'group1', + 'group2', + ], + }, + { + name: 'group1', + type: 'group', + fields: [ + { + name: 'group1Field', + type: 'text', + }, + ], + admin: { + condition: ({ groupSelection }) => groupSelection === 'group1', + }, + }, + { + name: 'group2', + type: 'group', + fields: [ + { + name: 'group2Field', + type: 'text', + }, + ], + admin: { + condition: ({ groupSelection }) => groupSelection === 'group2', + }, + }, ], }; diff --git a/test/fields/e2e.spec.ts b/test/fields/e2e.spec.ts index 3aa6909e15..292d0afecf 100644 --- a/test/fields/e2e.spec.ts +++ b/test/fields/e2e.spec.ts @@ -1039,10 +1039,34 @@ describe('fields', () => { await expect(fieldToToggle).toBeVisible(); }); - test('should show conditionl field based on user data', async () => { + test('should show conditional field based on user data', async () => { await page.goto(url.create); const userConditional = page.locator('input#field-userConditional'); await expect(userConditional).toBeVisible(); }); + + test('should show conditional field based on fields nested within data', async () => { + await page.goto(url.create); + + const parentGroupFields = page.locator('div#field-parentGroup > .group-field__wrap > .render-fields'); + await expect(parentGroupFields).toHaveCount(1); + + const toggle = page.locator('label[for=field-parentGroup__enableParentGroupFields]'); + await toggle.click(); + + const toggledField = page.locator('input#field-parentGroup__siblingField'); + + await expect(toggledField).toBeVisible(); + }); + + test('should show conditional field based on fields nested within siblingData', async () => { + await page.goto(url.create); + + const toggle = page.locator('label[for=field-parentGroup__enableParentGroupFields]'); + await toggle.click(); + + const fieldRelyingOnSiblingData = page.locator('input#field-reliesOnParentGroup'); + await expect(fieldRelyingOnSiblingData).toBeVisible(); + }); }); }); From 8128de64dff98fdbcf053faef9de3c3f9a733071 Mon Sep 17 00:00:00 2001 From: Dan Ribbens Date: Thu, 22 Jun 2023 14:28:03 -0400 Subject: [PATCH 49/78] fix: Relationship hasMany and filterOptions fails above 10 items (#2891) --- src/fields/validations.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/fields/validations.ts b/src/fields/validations.ts index 961eb2ba2e..bd73b2c4fe 100644 --- a/src/fields/validations.ts +++ b/src/fields/validations.ts @@ -234,6 +234,7 @@ const validateFilterOptions: Validate = async (value, { t, filterOptions, id, us const result = await payload.find({ collection, depth: 0, + limit: 0, where: { and: [ { id: { in: valueIDs } }, From 3e05598b56ed335bd225e522c1c1b031899396d7 Mon Sep 17 00:00:00 2001 From: Dan Ribbens Date: Thu, 22 Jun 2023 14:38:28 -0400 Subject: [PATCH 50/78] chore(release): v1.10.1 --- CHANGELOG.md | 9 +++++++++ package.json | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9861fed566..6357991bdf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ +## [1.10.1](https://github.com/payloadcms/payload/compare/v1.10.0...v1.10.1) (2023-06-22) + + +### Bug Fixes + +* conditional fields perf bug - [#2886](https://github.com/payloadcms/payload/issues/2886) ([#2890](https://github.com/payloadcms/payload/issues/2890)) ([b83d788](https://github.com/payloadcms/payload/commit/b83d788d3cfe12f87dcd63a9df20b939a6f4681e)) +* cutoff tooltips in relationship field ([#2873](https://github.com/payloadcms/payload/issues/2873)) ([09c6cad](https://github.com/payloadcms/payload/commit/09c6cad3e8462dc3d8b1b6424aafd336c1d7828c)) +* Relationship hasMany and filterOptions fails above 10 items ([#2891](https://github.com/payloadcms/payload/issues/2891)) ([8128de6](https://github.com/payloadcms/payload/commit/8128de64dff98fdbcf053faef9de3c3f9a733071)) + # [1.10.0](https://github.com/payloadcms/payload/compare/v1.9.5...v1.10.0) (2023-06-20) diff --git a/package.json b/package.json index 6f02c60d72..883de28c28 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "payload", - "version": "1.10.0", + "version": "1.10.1", "description": "Node, React and MongoDB Headless CMS and Application Framework", "license": "MIT", "engines": { From 837dcccefeffe7bb6e674713b4184c4eb92db8dc Mon Sep 17 00:00:00 2001 From: Teun Mooij Date: Thu, 22 Jun 2023 22:21:37 +0200 Subject: [PATCH 51/78] fix: broken export of entityToJSONSchema (#2894) --- src/utilities/configToJSONSchema.ts | 3 ++- utilities.d.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/utilities/configToJSONSchema.ts b/src/utilities/configToJSONSchema.ts index 253ff2e479..4ef85feb01 100644 --- a/src/utilities/configToJSONSchema.ts +++ b/src/utilities/configToJSONSchema.ts @@ -402,7 +402,8 @@ function fieldsToJSONSchema(collectionIDFieldTypes: { [key: string]: 'string' | }; } -function entityToJSONSchema(config: SanitizedConfig, incomingEntity: SanitizedCollectionConfig | SanitizedGlobalConfig, interfaceNameDefinitions: Map): JSONSchema4 { +// This function is part of the public API and is exported through payload/utilities +export function entityToJSONSchema(config: SanitizedConfig, incomingEntity: SanitizedCollectionConfig | SanitizedGlobalConfig, interfaceNameDefinitions: Map): JSONSchema4 { const entity: SanitizedCollectionConfig | SanitizedGlobalConfig = deepCopyObject(incomingEntity); const title = entity.typescript?.interface ? entity.typescript.interface : singular(toWords(entity.slug, true)); diff --git a/utilities.d.ts b/utilities.d.ts index 1249f3c4bd..97def71f70 100644 --- a/utilities.d.ts +++ b/utilities.d.ts @@ -1 +1 @@ -export * from './dist/utilities/configToJSONSchema'; +export { entityToJSONSchema } from './dist/utilities/configToJSONSchema'; From 8206c0fe8be78a5e0f7c8e64996d73d135b1fcc2 Mon Sep 17 00:00:00 2001 From: Elliot DeNolf Date: Fri, 23 Jun 2023 15:35:12 -0400 Subject: [PATCH 52/78] fix: safely check for tempFilePath when updating media document (#2899) --- src/uploads/unlinkTempFiles.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/uploads/unlinkTempFiles.ts b/src/uploads/unlinkTempFiles.ts index 8a1444cdc0..d16ae73e8b 100644 --- a/src/uploads/unlinkTempFiles.ts +++ b/src/uploads/unlinkTempFiles.ts @@ -25,7 +25,7 @@ export const unlinkTempFiles: (args: Args) => Promise = async ({ const fileArray = Array.isArray(files) ? files : [files]; await mapAsync(fileArray, async ({ file }) => { // Still need this check because this will not be populated if using local API - if (file.tempFilePath) { + if (file?.tempFilePath) { await unlinkFile(file.tempFilePath); } }); From 6893231f85f702189089a6d78d3f3af63aaa0d82 Mon Sep 17 00:00:00 2001 From: Jessica Boezwinkle Date: Mon, 26 Jun 2023 15:27:30 +0100 Subject: [PATCH 53/78] fix: autosave on localized fields, adds test --- .../components/elements/Autosave/index.tsx | 7 +-- test/versions/e2e.spec.ts | 53 ++++++++++++++++++- 2 files changed, 56 insertions(+), 4 deletions(-) diff --git a/src/admin/components/elements/Autosave/index.tsx b/src/admin/components/elements/Autosave/index.tsx index 71706806e4..d9c387a848 100644 --- a/src/admin/components/elements/Autosave/index.tsx +++ b/src/admin/components/elements/Autosave/index.tsx @@ -32,6 +32,7 @@ const Autosave: React.FC = ({ collection, global, id, publishedDocUpdated const debouncedFields = useDebounce(fields, interval); const fieldRef = useRef(fields); const modifiedRef = useRef(modified); + const localeRef = useRef(locale); // Store fields in ref so the autosave func // can always retrieve the most to date copies @@ -85,12 +86,12 @@ const Autosave: React.FC = ({ collection, global, id, publishedDocUpdated let method: string; if (collection && id) { - url = `${serverURL}${api}/${collection.slug}/${id}?draft=true&autosave=true&locale=${locale}`; + url = `${serverURL}${api}/${collection.slug}/${id}?draft=true&autosave=true&locale=${localeRef.current}`; method = 'PATCH'; } if (global) { - url = `${serverURL}${api}/globals/${global.slug}?draft=true&autosave=true&locale=${locale}`; + url = `${serverURL}${api}/globals/${global.slug}?draft=true&autosave=true&locale=${localeRef.current}`; method = 'POST'; } @@ -125,7 +126,7 @@ const Autosave: React.FC = ({ collection, global, id, publishedDocUpdated }; autosave(); - }, [i18n, debouncedFields, modified, serverURL, api, collection, global, id, getVersions, locale, modifiedRef]); + }, [i18n, debouncedFields, modified, serverURL, api, collection, global, id, getVersions, localeRef, modifiedRef]); useEffect(() => { if (versions?.docs?.[0]) { diff --git a/test/versions/e2e.spec.ts b/test/versions/e2e.spec.ts index 90974ce627..03455363c0 100644 --- a/test/versions/e2e.spec.ts +++ b/test/versions/e2e.spec.ts @@ -29,7 +29,8 @@ import { expect, test } from '@playwright/test'; import { initPayloadE2E } from '../helpers/configHelpers'; import { AdminUrlUtil } from '../helpers/adminUrlUtil'; import { login } from '../helpers'; -import { draftSlug } from './shared'; +import { draftSlug, autosaveSlug } from './shared'; +import wait from '../../src/utilities/wait'; const { beforeAll, describe } = test; @@ -112,5 +113,55 @@ describe('versions', () => { await expect(page.locator('.row-1 .cell-_status')).toContainText('Draft'); await expect(page.locator('.row-2 .cell-_status')).toContainText('Draft'); }); + + test('should retain localized data during autosave', async () => { + const autosaveURL = new AdminUrlUtil(serverURL, autosaveSlug); + // .fill localized and non localized fields + // wait however long you need for it to autosave, using the wait utility + // click locale selector and change locale (harvest from localize test suite) + // fill localized and non localized fields again + // wait again for autosave + // click locale selector and change locale back to original + // .fill non localized field + // switch locales + // figure out how to force a page reload + + const locale = 'en'; + const spanishLocale = 'es'; + const title = 'english title'; + const spanishTitle = 'spanish title'; + const description = 'description'; + const newDescription = 'new description'; + + await page.goto(autosaveURL.create); + await page.locator('#field-title').fill(title); + await page.locator('#field-description').fill(description); + await wait(500); + + await changeLocale(spanishLocale); + await page.locator('#field-title').fill(spanishTitle); + await wait(500); + + await changeLocale(locale); + await page.locator('#field-description').fill(newDescription); + await wait(500); + + await changeLocale(spanishLocale); + await wait(500); + await page.reload(); + await expect(page.locator('#field-title')).toHaveValue(spanishTitle); + await expect(page.locator('#field-description')).toHaveValue(newDescription); + + // await changeLocale(locale); + // await wait(500); + // await expect(page.locator('#field-title')).toHaveValue(title); + // await expect(page.locator('#field-description')).toHaveValue(description); + }); }); + + async function changeLocale(newLocale: string) { + await page.locator('.localizer >> button').first().click(); + await page.locator(`.localizer >> a:has-text("${newLocale}")`).click(); + expect(page.url()).toContain(`locale=${newLocale}`); + } }); From 7e98cf94f3f275fd0d4955dd3b10852587f55273 Mon Sep 17 00:00:00 2001 From: Jessica Boezwinkle Date: Mon, 26 Jun 2023 16:00:21 +0100 Subject: [PATCH 54/78] chore: remove comments from test --- test/versions/e2e.spec.ts | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/test/versions/e2e.spec.ts b/test/versions/e2e.spec.ts index 03455363c0..6ca33fe2b7 100644 --- a/test/versions/e2e.spec.ts +++ b/test/versions/e2e.spec.ts @@ -116,16 +116,6 @@ describe('versions', () => { test('should retain localized data during autosave', async () => { const autosaveURL = new AdminUrlUtil(serverURL, autosaveSlug); - // .fill localized and non localized fields - // wait however long you need for it to autosave, using the wait utility - // click locale selector and change locale (harvest from localize test suite) - // fill localized and non localized fields again - // wait again for autosave - // click locale selector and change locale back to original - // .fill non localized field - // switch locales - // figure out how to force a page reload - const locale = 'en'; const spanishLocale = 'es'; const title = 'english title'; @@ -151,11 +141,6 @@ describe('versions', () => { await page.reload(); await expect(page.locator('#field-title')).toHaveValue(spanishTitle); await expect(page.locator('#field-description')).toHaveValue(newDescription); - - // await changeLocale(locale); - // await wait(500); - // await expect(page.locator('#field-title')).toHaveValue(title); - // await expect(page.locator('#field-description')).toHaveValue(description); }); }); From f627277479e6a4a847e79f54c545712a7186abb9 Mon Sep 17 00:00:00 2001 From: Jarrod Flesch <30633324+JarrodMFlesch@users.noreply.github.com> Date: Mon, 26 Jun 2023 11:56:53 -0400 Subject: [PATCH 55/78] fix: correctly scopes data variable within bulk update - #2901 (#2904) --- src/collections/operations/update.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/collections/operations/update.ts b/src/collections/operations/update.ts index c9b81b94b9..935f804e27 100644 --- a/src/collections/operations/update.ts +++ b/src/collections/operations/update.ts @@ -60,7 +60,6 @@ async function update( req, req: { t, - locale, payload, payload: { config, @@ -76,7 +75,7 @@ async function update( throw new APIError('Missing \'where\' query of documents to update.', httpStatus.BAD_REQUEST); } - let { data } = args; + const { data: bulkUpdateData } = args; const shouldSaveDraft = Boolean(draftArg && collectionConfig.versions.drafts); // ///////////////////////////////////// @@ -125,16 +124,18 @@ async function update( config, collection, req, - data, + data: bulkUpdateData, throwOnMissingFile: false, overwriteExistingFiles, }); - data = newFileData; - const errors = []; const promises = docs.map(async (doc) => { + let data = { + ...newFileData, + ...bulkUpdateData, + }; let docWithLocales: Document = JSON.stringify(doc); docWithLocales = JSON.parse(docWithLocales); From 9fbd7476fbf9e21e65a5cfe898128448a0dfd594 Mon Sep 17 00:00:00 2001 From: Jessica Boezwinkle Date: Mon, 26 Jun 2023 18:39:46 +0100 Subject: [PATCH 56/78] chore: improves error messaging in unlock/reset/forgot-password --- src/auth/operations/forgotPassword.ts | 4 ++++ src/auth/operations/resetPassword.ts | 2 +- src/auth/operations/unlock.ts | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/auth/operations/forgotPassword.ts b/src/auth/operations/forgotPassword.ts index 535e7dc5ff..f2445566a2 100644 --- a/src/auth/operations/forgotPassword.ts +++ b/src/auth/operations/forgotPassword.ts @@ -68,6 +68,10 @@ async function forgotPassword(incomingArgs: Arguments): Promise { resetPasswordExpiration?: number | Date, } + if (!data.email) { + throw new APIError('Missing email.'); + } + const user: UserDoc = await Model.findOne({ email: (data.email as string).toLowerCase() }); if (!user) return null; diff --git a/src/auth/operations/resetPassword.ts b/src/auth/operations/resetPassword.ts index 693c3fdccb..678e356257 100644 --- a/src/auth/operations/resetPassword.ts +++ b/src/auth/operations/resetPassword.ts @@ -57,7 +57,7 @@ async function resetPassword(args: Arguments): Promise { }).lean(); user = JSON.parse(JSON.stringify(user)); - user = sanitizeInternalFields(user); + user = user ? sanitizeInternalFields(user) : null; if (!user) throw new APIError('Token is either invalid or has expired.'); diff --git a/src/auth/operations/unlock.ts b/src/auth/operations/unlock.ts index f532c5018d..9c38fbadb0 100644 --- a/src/auth/operations/unlock.ts +++ b/src/auth/operations/unlock.ts @@ -43,6 +43,10 @@ async function unlock(args: Args): Promise { // Unlock // ///////////////////////////////////// + if (!data.email) { + throw new APIError('Missing email.'); + } + const user = await Model.findOne({ email: data.email.toLowerCase() }); if (!user) return null; From a2d9ef3ca618934df58102a7e02e86dbe0ed63da Mon Sep 17 00:00:00 2001 From: Jarrod Flesch <30633324+JarrodMFlesch@users.noreply.github.com> Date: Mon, 26 Jun 2023 13:53:08 -0400 Subject: [PATCH 57/78] fix: adjusts swc loader to only exclude non ts/tsx files - #2888 (#2907) --- src/webpack/getBaseConfig.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/webpack/getBaseConfig.ts b/src/webpack/getBaseConfig.ts index 987d9bab7d..49f25e53f8 100644 --- a/src/webpack/getBaseConfig.ts +++ b/src/webpack/getBaseConfig.ts @@ -19,7 +19,7 @@ export default (config: SanitizedConfig): Configuration => ({ rules: [ { test: /\.(t|j)sx?$/, - exclude: /node_modules/, + exclude: /\/node_modules\/(?!.+\.tsx?$).*$/, use: [ { loader: require.resolve('swc-loader'), From 1aa38f8fdd9218857c98cd5ccb21faea8222906a Mon Sep 17 00:00:00 2001 From: James Date: Mon, 26 Jun 2023 17:58:23 -0400 Subject: [PATCH 58/78] chore(release): v1.10.2 --- CHANGELOG.md | 11 +++++++++++ package.json | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6357991bdf..c717d013e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ +## [1.10.2](https://github.com/payloadcms/payload/compare/v1.10.1...v1.10.2) (2023-06-26) + + +### Bug Fixes + +* adjusts swc loader to only exclude non ts/tsx files - [#2888](https://github.com/payloadcms/payload/issues/2888) ([#2907](https://github.com/payloadcms/payload/issues/2907)) ([a2d9ef3](https://github.com/payloadcms/payload/commit/a2d9ef3ca618934df58102a7e02e86dbe0ed63da)) +* autosave on localized fields, adds test ([6893231](https://github.com/payloadcms/payload/commit/6893231f85f702189089a6d78d3f3af63aaa0d82)) +* broken export of entityToJSONSchema ([#2894](https://github.com/payloadcms/payload/issues/2894)) ([837dccc](https://github.com/payloadcms/payload/commit/837dcccefeffe7bb6e674713b4184c4eb92db8dc)) +* correctly scopes data variable within bulk update - [#2901](https://github.com/payloadcms/payload/issues/2901) ([#2904](https://github.com/payloadcms/payload/issues/2904)) ([f627277](https://github.com/payloadcms/payload/commit/f627277479e6a4a847e79f54c545712a7186abb9)) +* safely check for tempFilePath when updating media document ([#2899](https://github.com/payloadcms/payload/issues/2899)) ([8206c0f](https://github.com/payloadcms/payload/commit/8206c0fe8be78a5e0f7c8e64996d73d135b1fcc2)) + ## [1.10.1](https://github.com/payloadcms/payload/compare/v1.10.0...v1.10.1) (2023-06-22) diff --git a/package.json b/package.json index 883de28c28..8d67a46f0f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "payload", - "version": "1.10.1", + "version": "1.10.2", "description": "Node, React and MongoDB Headless CMS and Application Framework", "license": "MIT", "engines": { From 3c9dab3b9d5302d8bdf5792f0384cd5aeeb13839 Mon Sep 17 00:00:00 2001 From: Tylan Davis Date: Wed, 28 Jun 2023 10:47:41 -0400 Subject: [PATCH 59/78] fix: shows updatedAt date when selecting a version to compare from dropdown --- src/admin/components/views/Version/Compare/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/admin/components/views/Version/Compare/index.tsx b/src/admin/components/views/Version/Compare/index.tsx index 8052db6c9e..60cbca0b2c 100644 --- a/src/admin/components/views/Version/Compare/index.tsx +++ b/src/admin/components/views/Version/Compare/index.tsx @@ -76,7 +76,7 @@ const CompareVersion: React.FC = (props) => { setOptions((existingOptions) => [ ...existingOptions, ...data.docs.map((doc) => ({ - label: formatDate(doc.createdAt, dateFormat, i18n?.language), + label: formatDate(doc.updatedAt, dateFormat, i18n?.language), value: doc.id, })), ]); From 766b1b528640d47b409fff6e6689c1cc0c93f309 Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Wed, 28 Jun 2023 11:20:59 -0400 Subject: [PATCH 60/78] chore: creates templates directory (#2921) --- templates/blank/.env.example | 2 + templates/blank/.gitignore | 6 + templates/blank/Dockerfile | 26 + templates/blank/README.md | 42 + templates/blank/docker-compose.yml | 32 + templates/blank/nodemon.json | 4 + templates/blank/package.json | 31 + templates/blank/src/collections/Users.ts | 18 + templates/blank/src/payload.config.ts | 22 + templates/blank/src/server.ts | 28 + templates/blank/tsconfig.json | 34 + templates/blank/yarn.lock | 7491 ++++++++++++++++++++++ 12 files changed, 7736 insertions(+) create mode 100644 templates/blank/.env.example create mode 100644 templates/blank/.gitignore create mode 100644 templates/blank/Dockerfile create mode 100644 templates/blank/README.md create mode 100644 templates/blank/docker-compose.yml create mode 100644 templates/blank/nodemon.json create mode 100644 templates/blank/package.json create mode 100644 templates/blank/src/collections/Users.ts create mode 100644 templates/blank/src/payload.config.ts create mode 100644 templates/blank/src/server.ts create mode 100644 templates/blank/tsconfig.json create mode 100644 templates/blank/yarn.lock diff --git a/templates/blank/.env.example b/templates/blank/.env.example new file mode 100644 index 0000000000..0ce32f8b16 --- /dev/null +++ b/templates/blank/.env.example @@ -0,0 +1,2 @@ +MONGODB_URI=mongodb://127.0.0.1/payload-template-blank +PAYLOAD_SECRET=YOUR_SECRET_HERE diff --git a/templates/blank/.gitignore b/templates/blank/.gitignore new file mode 100644 index 0000000000..9353310c2c --- /dev/null +++ b/templates/blank/.gitignore @@ -0,0 +1,6 @@ +build +dist +/media +node_modules +.DS_Store +.env diff --git a/templates/blank/Dockerfile b/templates/blank/Dockerfile new file mode 100644 index 0000000000..2544c839bb --- /dev/null +++ b/templates/blank/Dockerfile @@ -0,0 +1,26 @@ +FROM node:18.8-alpine as base + +FROM base as builder + +WORKDIR /home/node/app +COPY package*.json ./ + +COPY . . +RUN yarn install +RUN yarn build + +FROM base as runtime + +ENV NODE_ENV=production +ENV PAYLOAD_CONFIG_PATH=dist/payload.config.js + +WORKDIR /home/node/app +COPY package*.json ./ + +RUN yarn install --production +COPY --from=builder /home/node/app/dist ./dist +COPY --from=builder /home/node/app/build ./build + +EXPOSE 3000 + +CMD ["node", "dist/server.js"] diff --git a/templates/blank/README.md b/templates/blank/README.md new file mode 100644 index 0000000000..b1ef01c96d --- /dev/null +++ b/templates/blank/README.md @@ -0,0 +1,42 @@ +# Payload Blank Template + +A blank template for [Payload](https://github.com/payloadcms/payload) to help you get up and running quickly. This repo may have been created by running `npx create-payload-app` and selecting the "blank" template or by cloning this template on [Payload Cloud](https://payloadcms.com/new/clone/blank). + +See the official [Examples Directory](https://github.com/payloadcms/payload/tree/master/examples) for details on how to use Payload in a variety of different ways. + +## Development + +To spin up the project locally, follow these steps: + +1. First clone the repo +1. Then `cd YOUR_PROJECT_REPO && cp .env.example .env` +1. Next `yarn && yarn dev` (or `docker-compose up`, see [Docker](#docker)) +1. Now `open http://localhost:8000/admin` to access the admin panel +1. Create your first admin user using the form on the page + +That's it! Changes made in `./src` will be reflected in your app. + +### Docker + +Alternatively, you can use [Docker](https://www.docker.com) to spin up this project locally. To do so, follow these steps: + +1. Follow [steps 1 and 2 from above](#development), the docker-compose file will automatically use the `.env` file in your project root +1. Next run `docker-compose up` +1. Follow [steps 4 and 5 from above](#development) to login and create your first admin user + +That's it! The Docker instance will help you get up and running quickly while also standardizing the development environment across your teams. + +## Production + +To run Payload in production, you need to build and serve the Admin panel. To do so, follow these steps: + +1. First invoke the `payload build` script by running `yarn build` or `npm run build` in your project root. This creates a `./build` directory with a production-ready admin bundle. +1. Then run `yarn serve` or `npm run serve` to run Node in production and serve Payload from the `./build` directory. + +### Deployment + +The easiest way to deploy your project is to use [Payload Cloud](https://payloadcms.com/new/import), a one-click hosting solution to deploy production-ready instances of your Payload apps directly from your GitHub repo. You can also deploy your app manually, check out the [deployment documentation](https://payloadcms.com/docs/production/deployment) for full details. + +## Questions + +If you have any issues or questions, reach out to us on [Discord](https://discord.com/invite/payload) or start a [GitHub discussion](https://github.com/payloadcms/payload/discussions). diff --git a/templates/blank/docker-compose.yml b/templates/blank/docker-compose.yml new file mode 100644 index 0000000000..4846251925 --- /dev/null +++ b/templates/blank/docker-compose.yml @@ -0,0 +1,32 @@ +version: '3' + +services: + + payload: + image: node:18-alpine + ports: + - "3000:3000" + volumes: + - .:/home/node/app + - node_modules:/home/node/app/node_modules + working_dir: /home/node/app/ + command: sh -c "yarn install && yarn dev" + depends_on: + - mongo + env_file: + - .env + + mongo: + image: mongo:latest + ports: + - "27017:27017" + command: + - --storageEngine=wiredTiger + volumes: + - data:/data/db + logging: + driver: none + +volumes: + data: + node_modules: diff --git a/templates/blank/nodemon.json b/templates/blank/nodemon.json new file mode 100644 index 0000000000..ed1a1850d3 --- /dev/null +++ b/templates/blank/nodemon.json @@ -0,0 +1,4 @@ +{ + "ext": "ts", + "exec": "ts-node src/server.ts" +} diff --git a/templates/blank/package.json b/templates/blank/package.json new file mode 100644 index 0000000000..25a53962b2 --- /dev/null +++ b/templates/blank/package.json @@ -0,0 +1,31 @@ +{ + "name": "template-blank", + "description": "A blank template to get started with Payload", + "version": "1.0.0", + "main": "dist/server.js", + "license": "MIT", + "scripts": { + "dev": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts nodemon", + "build:payload": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts payload build", + "build:server": "tsc", + "build": "yarn copyfiles && yarn build:payload && yarn build:server", + "serve": "cross-env PAYLOAD_CONFIG_PATH=dist/payload.config.js NODE_ENV=production node dist/server.js", + "copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png}\" dist/", + "generate:types": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts payload generate:types", + "generate:graphQLSchema": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts payload generate:graphQLSchema" + }, + "dependencies": { + "@payloadcms/plugin-cloud": "^0.0.10", + "dotenv": "^8.2.0", + "express": "^4.17.1", + "payload": "^1.7.2" + }, + "devDependencies": { + "@types/express": "^4.17.9", + "copyfiles": "^2.4.1", + "cross-env": "^7.0.3", + "nodemon": "^2.0.6", + "ts-node": "^9.1.1", + "typescript": "^4.8.4" + } +} diff --git a/templates/blank/src/collections/Users.ts b/templates/blank/src/collections/Users.ts new file mode 100644 index 0000000000..e5d661c9ae --- /dev/null +++ b/templates/blank/src/collections/Users.ts @@ -0,0 +1,18 @@ +import { CollectionConfig } from 'payload/types'; + +const Users: CollectionConfig = { + slug: 'users', + auth: true, + admin: { + useAsTitle: 'email', + }, + access: { + read: () => true, + }, + fields: [ + // Email added by default + // Add more fields as needed + ], +}; + +export default Users; \ No newline at end of file diff --git a/templates/blank/src/payload.config.ts b/templates/blank/src/payload.config.ts new file mode 100644 index 0000000000..e44f1e70b1 --- /dev/null +++ b/templates/blank/src/payload.config.ts @@ -0,0 +1,22 @@ +import { buildConfig } from 'payload/config'; +import path from 'path'; +import Users from './collections/Users'; +import { payloadCloud } from '@payloadcms/plugin-cloud'; + +export default buildConfig({ + admin: { + user: Users.slug, + }, + collections: [ + Users, + ], + typescript: { + outputFile: path.resolve(__dirname, 'payload-types.ts'), + }, + graphQL: { + schemaOutputFile: path.resolve(__dirname, 'generated-schema.graphql'), + }, + plugins: [ + payloadCloud() + ] +}); diff --git a/templates/blank/src/server.ts b/templates/blank/src/server.ts new file mode 100644 index 0000000000..e6d29f1881 --- /dev/null +++ b/templates/blank/src/server.ts @@ -0,0 +1,28 @@ +import express from 'express'; +import payload from 'payload'; + +require('dotenv').config(); +const app = express(); + +// Redirect root to Admin panel +app.get('/', (_, res) => { + res.redirect('/admin'); +}); + +const start = async () => { + // Initialize Payload + await payload.init({ + secret: process.env.PAYLOAD_SECRET, + mongoURL: process.env.MONGODB_URI, + express: app, + onInit: async () => { + payload.logger.info(`Payload Admin URL: ${payload.getAdminURL()}`) + }, + }) + + // Add your own express routes here + + app.listen(3000); +} + +start(); diff --git a/templates/blank/tsconfig.json b/templates/blank/tsconfig.json new file mode 100644 index 0000000000..7bf8e87d0c --- /dev/null +++ b/templates/blank/tsconfig.json @@ -0,0 +1,34 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "strict": false, + "esModuleInterop": true, + "skipLibCheck": true, + "outDir": "./dist", + "rootDir": "./src", + "jsx": "react", + "paths": { + "payload/generated-types": [ + "./src/payload-types.ts", + ], + } + }, + "include": [ + "src" + ], + "exclude": [ + "node_modules", + "dist", + "build", + ], + "ts-node": { + "transpileOnly": true, + "swc": true, + } +} diff --git a/templates/blank/yarn.lock b/templates/blank/yarn.lock new file mode 100644 index 0000000000..0786fff3af --- /dev/null +++ b/templates/blank/yarn.lock @@ -0,0 +1,7491 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@aws-crypto/crc32@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-3.0.0.tgz#07300eca214409c33e3ff769cd5697b57fdd38fa" + integrity sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA== + dependencies: + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + tslib "^1.11.1" + +"@aws-crypto/crc32c@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32c/-/crc32c-3.0.0.tgz#016c92da559ef638a84a245eecb75c3e97cb664f" + integrity sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w== + dependencies: + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + tslib "^1.11.1" + +"@aws-crypto/ie11-detection@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz#640ae66b4ec3395cee6a8e94ebcd9f80c24cd688" + integrity sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/sha1-browser@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha1-browser/-/sha1-browser-3.0.0.tgz#f9083c00782b24714f528b1a1fef2174002266a3" + integrity sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw== + dependencies: + "@aws-crypto/ie11-detection" "^3.0.0" + "@aws-crypto/supports-web-crypto" "^3.0.0" + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-browser@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz#05f160138ab893f1c6ba5be57cfd108f05827766" + integrity sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ== + dependencies: + "@aws-crypto/ie11-detection" "^3.0.0" + "@aws-crypto/sha256-js" "^3.0.0" + "@aws-crypto/supports-web-crypto" "^3.0.0" + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-js@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-1.2.2.tgz#02acd1a1fda92896fc5a28ec7c6e164644ea32fc" + integrity sha512-Nr1QJIbW/afYYGzYvrF70LtaHrIRtd4TNAglX8BvlfxJLZ45SAmueIKYl5tWoNBPzp65ymXGFK0Bb1vZUpuc9g== + dependencies: + "@aws-crypto/util" "^1.2.2" + "@aws-sdk/types" "^3.1.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-js@3.0.0", "@aws-crypto/sha256-js@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz#f06b84d550d25521e60d2a0e2a90139341e007c2" + integrity sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ== + dependencies: + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + tslib "^1.11.1" + +"@aws-crypto/supports-web-crypto@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz#5d1bf825afa8072af2717c3e455f35cda0103ec2" + integrity sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/util@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-1.2.2.tgz#b28f7897730eb6538b21c18bd4de22d0ea09003c" + integrity sha512-H8PjG5WJ4wz0UXAFXeJjWCW1vkvIJ3qUUD+rGRwJ2/hj+xT58Qle2MTql/2MGzkU+1JLAFuR6aJpLAjHwhmwwg== + dependencies: + "@aws-sdk/types" "^3.1.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/util@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-3.0.0.tgz#1c7ca90c29293f0883468ad48117937f0fe5bfb0" + integrity sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w== + dependencies: + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-sdk/abort-controller@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.357.0.tgz#5c5336d18b97781d0b940700375d825f9e20d9be" + integrity sha512-nQYDJon87quPwt2JZJwUN2GFKJnvE5kWb6tZP4xb5biSGUKBqDQo06oYed7yokatCuCMouIXV462aN0fWODtOw== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/chunked-blob-reader@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/chunked-blob-reader/-/chunked-blob-reader-3.310.0.tgz#2ada1b024a2745c2fe7e869606fab781325f981e" + integrity sha512-CrJS3exo4mWaLnWxfCH+w88Ou0IcAZSIkk4QbmxiHl/5Dq705OLoxf4385MVyExpqpeVJYOYQ2WaD8i/pQZ2fg== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/client-cognito-identity@3.360.0", "@aws-sdk/client-cognito-identity@^3.289.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.360.0.tgz#c7d904d3b03e03f0530edd4704326c9a7991014b" + integrity sha512-9ZORXlW52GTUqM0M0a+49yH4a1kxk5HKyvzXHKttQEiml1EKrteVsvU5zDvcY6v6y3QwDeT4nDuXbb7NVB7glQ== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.360.0" + "@aws-sdk/config-resolver" "3.357.0" + "@aws-sdk/credential-provider-node" "3.360.0" + "@aws-sdk/fetch-http-handler" "3.357.0" + "@aws-sdk/hash-node" "3.357.0" + "@aws-sdk/invalid-dependency" "3.357.0" + "@aws-sdk/middleware-content-length" "3.357.0" + "@aws-sdk/middleware-endpoint" "3.357.0" + "@aws-sdk/middleware-host-header" "3.357.0" + "@aws-sdk/middleware-logger" "3.357.0" + "@aws-sdk/middleware-recursion-detection" "3.357.0" + "@aws-sdk/middleware-retry" "3.357.0" + "@aws-sdk/middleware-serde" "3.357.0" + "@aws-sdk/middleware-signing" "3.357.0" + "@aws-sdk/middleware-stack" "3.357.0" + "@aws-sdk/middleware-user-agent" "3.357.0" + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/node-http-handler" "3.360.0" + "@aws-sdk/smithy-client" "3.360.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/url-parser" "3.357.0" + "@aws-sdk/util-base64" "3.310.0" + "@aws-sdk/util-body-length-browser" "3.310.0" + "@aws-sdk/util-body-length-node" "3.310.0" + "@aws-sdk/util-defaults-mode-browser" "3.360.0" + "@aws-sdk/util-defaults-mode-node" "3.360.0" + "@aws-sdk/util-endpoints" "3.357.0" + "@aws-sdk/util-retry" "3.357.0" + "@aws-sdk/util-user-agent-browser" "3.357.0" + "@aws-sdk/util-user-agent-node" "3.357.0" + "@aws-sdk/util-utf8" "3.310.0" + "@smithy/protocol-http" "^1.0.1" + "@smithy/types" "^1.0.0" + tslib "^2.5.0" + +"@aws-sdk/client-s3@^3.142.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.360.0.tgz#07bfcbcd6c46f221552941bf32742b8c7a669baa" + integrity sha512-6URI0ZWk5ar0atJ8xTxD2u/oLWwBlosLTyqNpsMe7DKvZQ5DgUfLw3BHeC2d4FQID1I74rkGCdHLtRe4MOiIfA== + dependencies: + "@aws-crypto/sha1-browser" "3.0.0" + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.360.0" + "@aws-sdk/config-resolver" "3.357.0" + "@aws-sdk/credential-provider-node" "3.360.0" + "@aws-sdk/eventstream-serde-browser" "3.357.0" + "@aws-sdk/eventstream-serde-config-resolver" "3.357.0" + "@aws-sdk/eventstream-serde-node" "3.357.0" + "@aws-sdk/fetch-http-handler" "3.357.0" + "@aws-sdk/hash-blob-browser" "3.357.0" + "@aws-sdk/hash-node" "3.357.0" + "@aws-sdk/hash-stream-node" "3.357.0" + "@aws-sdk/invalid-dependency" "3.357.0" + "@aws-sdk/md5-js" "3.357.0" + "@aws-sdk/middleware-bucket-endpoint" "3.357.0" + "@aws-sdk/middleware-content-length" "3.357.0" + "@aws-sdk/middleware-endpoint" "3.357.0" + "@aws-sdk/middleware-expect-continue" "3.357.0" + "@aws-sdk/middleware-flexible-checksums" "3.357.0" + "@aws-sdk/middleware-host-header" "3.357.0" + "@aws-sdk/middleware-location-constraint" "3.357.0" + "@aws-sdk/middleware-logger" "3.357.0" + "@aws-sdk/middleware-recursion-detection" "3.357.0" + "@aws-sdk/middleware-retry" "3.357.0" + "@aws-sdk/middleware-sdk-s3" "3.357.0" + "@aws-sdk/middleware-serde" "3.357.0" + "@aws-sdk/middleware-signing" "3.357.0" + "@aws-sdk/middleware-ssec" "3.357.0" + "@aws-sdk/middleware-stack" "3.357.0" + "@aws-sdk/middleware-user-agent" "3.357.0" + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/node-http-handler" "3.360.0" + "@aws-sdk/signature-v4-multi-region" "3.357.0" + "@aws-sdk/smithy-client" "3.360.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/url-parser" "3.357.0" + "@aws-sdk/util-base64" "3.310.0" + "@aws-sdk/util-body-length-browser" "3.310.0" + "@aws-sdk/util-body-length-node" "3.310.0" + "@aws-sdk/util-defaults-mode-browser" "3.360.0" + "@aws-sdk/util-defaults-mode-node" "3.360.0" + "@aws-sdk/util-endpoints" "3.357.0" + "@aws-sdk/util-retry" "3.357.0" + "@aws-sdk/util-stream" "3.360.0" + "@aws-sdk/util-user-agent-browser" "3.357.0" + "@aws-sdk/util-user-agent-node" "3.357.0" + "@aws-sdk/util-utf8" "3.310.0" + "@aws-sdk/util-waiter" "3.357.0" + "@aws-sdk/xml-builder" "3.310.0" + "@smithy/protocol-http" "^1.0.1" + "@smithy/types" "^1.0.0" + fast-xml-parser "4.2.5" + tslib "^2.5.0" + +"@aws-sdk/client-sso-oidc@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.360.0.tgz#7964cc6334822b955dd0ba3b749f62feb55cebcc" + integrity sha512-czIpPt75fS3gH3vgFz76+WTaKcvPxC/DnPuqVyHdihMmP0UuwGPU9jn+Xx9RdUw7Yay3+rJRe3AYgBn4Xb220g== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/config-resolver" "3.357.0" + "@aws-sdk/fetch-http-handler" "3.357.0" + "@aws-sdk/hash-node" "3.357.0" + "@aws-sdk/invalid-dependency" "3.357.0" + "@aws-sdk/middleware-content-length" "3.357.0" + "@aws-sdk/middleware-endpoint" "3.357.0" + "@aws-sdk/middleware-host-header" "3.357.0" + "@aws-sdk/middleware-logger" "3.357.0" + "@aws-sdk/middleware-recursion-detection" "3.357.0" + "@aws-sdk/middleware-retry" "3.357.0" + "@aws-sdk/middleware-serde" "3.357.0" + "@aws-sdk/middleware-stack" "3.357.0" + "@aws-sdk/middleware-user-agent" "3.357.0" + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/node-http-handler" "3.360.0" + "@aws-sdk/smithy-client" "3.360.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/url-parser" "3.357.0" + "@aws-sdk/util-base64" "3.310.0" + "@aws-sdk/util-body-length-browser" "3.310.0" + "@aws-sdk/util-body-length-node" "3.310.0" + "@aws-sdk/util-defaults-mode-browser" "3.360.0" + "@aws-sdk/util-defaults-mode-node" "3.360.0" + "@aws-sdk/util-endpoints" "3.357.0" + "@aws-sdk/util-retry" "3.357.0" + "@aws-sdk/util-user-agent-browser" "3.357.0" + "@aws-sdk/util-user-agent-node" "3.357.0" + "@aws-sdk/util-utf8" "3.310.0" + "@smithy/protocol-http" "^1.0.1" + "@smithy/types" "^1.0.0" + tslib "^2.5.0" + +"@aws-sdk/client-sso@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.360.0.tgz#8238f6adfac0977c9321efca3a82ca696cbf7753" + integrity sha512-0f6eG+6XFbDxrma5xxNGg/FJxh/OHC6h8AkfNms9Lv1gBoQSagpcTor+ax0z9F6lypOjaelX6k4DpeKAp4PZeA== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/config-resolver" "3.357.0" + "@aws-sdk/fetch-http-handler" "3.357.0" + "@aws-sdk/hash-node" "3.357.0" + "@aws-sdk/invalid-dependency" "3.357.0" + "@aws-sdk/middleware-content-length" "3.357.0" + "@aws-sdk/middleware-endpoint" "3.357.0" + "@aws-sdk/middleware-host-header" "3.357.0" + "@aws-sdk/middleware-logger" "3.357.0" + "@aws-sdk/middleware-recursion-detection" "3.357.0" + "@aws-sdk/middleware-retry" "3.357.0" + "@aws-sdk/middleware-serde" "3.357.0" + "@aws-sdk/middleware-stack" "3.357.0" + "@aws-sdk/middleware-user-agent" "3.357.0" + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/node-http-handler" "3.360.0" + "@aws-sdk/smithy-client" "3.360.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/url-parser" "3.357.0" + "@aws-sdk/util-base64" "3.310.0" + "@aws-sdk/util-body-length-browser" "3.310.0" + "@aws-sdk/util-body-length-node" "3.310.0" + "@aws-sdk/util-defaults-mode-browser" "3.360.0" + "@aws-sdk/util-defaults-mode-node" "3.360.0" + "@aws-sdk/util-endpoints" "3.357.0" + "@aws-sdk/util-retry" "3.357.0" + "@aws-sdk/util-user-agent-browser" "3.357.0" + "@aws-sdk/util-user-agent-node" "3.357.0" + "@aws-sdk/util-utf8" "3.310.0" + "@smithy/protocol-http" "^1.0.1" + "@smithy/types" "^1.0.0" + tslib "^2.5.0" + +"@aws-sdk/client-sts@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.360.0.tgz#a505cbac3af8753e445723a8a9deeba105f3dcd0" + integrity sha512-ORRwSdwlSYGHfhQCXKtr1eJeTjI14l5IZRJbRDgXs46y4/GQj/rt/2Q6WGjVMfM1ZRRiEII2/vK7mU7IJcWkFw== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/config-resolver" "3.357.0" + "@aws-sdk/credential-provider-node" "3.360.0" + "@aws-sdk/fetch-http-handler" "3.357.0" + "@aws-sdk/hash-node" "3.357.0" + "@aws-sdk/invalid-dependency" "3.357.0" + "@aws-sdk/middleware-content-length" "3.357.0" + "@aws-sdk/middleware-endpoint" "3.357.0" + "@aws-sdk/middleware-host-header" "3.357.0" + "@aws-sdk/middleware-logger" "3.357.0" + "@aws-sdk/middleware-recursion-detection" "3.357.0" + "@aws-sdk/middleware-retry" "3.357.0" + "@aws-sdk/middleware-sdk-sts" "3.357.0" + "@aws-sdk/middleware-serde" "3.357.0" + "@aws-sdk/middleware-signing" "3.357.0" + "@aws-sdk/middleware-stack" "3.357.0" + "@aws-sdk/middleware-user-agent" "3.357.0" + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/node-http-handler" "3.360.0" + "@aws-sdk/smithy-client" "3.360.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/url-parser" "3.357.0" + "@aws-sdk/util-base64" "3.310.0" + "@aws-sdk/util-body-length-browser" "3.310.0" + "@aws-sdk/util-body-length-node" "3.310.0" + "@aws-sdk/util-defaults-mode-browser" "3.360.0" + "@aws-sdk/util-defaults-mode-node" "3.360.0" + "@aws-sdk/util-endpoints" "3.357.0" + "@aws-sdk/util-retry" "3.357.0" + "@aws-sdk/util-user-agent-browser" "3.357.0" + "@aws-sdk/util-user-agent-node" "3.357.0" + "@aws-sdk/util-utf8" "3.310.0" + "@smithy/protocol-http" "^1.0.1" + "@smithy/types" "^1.0.0" + fast-xml-parser "4.2.5" + tslib "^2.5.0" + +"@aws-sdk/config-resolver@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.357.0.tgz#7672b3f446ed64025d1763efea0289f7f49833a1" + integrity sha512-cukfg0nX7Tzx/xFyH5F4Eyb8DA1ITCGtSQv4vnEjgUop+bkzckuGLKEeBcBhyZY+aw+2C9CVwIHwIMhRm0ul5w== + dependencies: + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-config-provider" "3.310.0" + "@aws-sdk/util-middleware" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-cognito-identity@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.360.0.tgz#699502e18b7457dda12a5402ce6700037cfce218" + integrity sha512-84710lUaDBc7jujf8WnvBAcFt7gmOPQXkwNe6M4STMDG6HTvbOc2jRzjIu0iOTz8lNCt5A4+mdOl31JgfBF/LA== + dependencies: + "@aws-sdk/client-cognito-identity" "3.360.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-env@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.357.0.tgz#9746b9f958f490db5b1502d36cba7da43da460cb" + integrity sha512-UOecwfqvXgJVqhfWSZ2S44v2Nq2oceW0PQVQp0JAa9opc2rxSVIfyOhPr0yMoPmpyNcP22rgeg6ce70KULYwiA== + dependencies: + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-imds@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.357.0.tgz#6b5317c79e15a059a2f71623ec673bea03af04f6" + integrity sha512-upw/bfsl7/WydT6gM0lBuR4Ipp4fzYm/E3ObFr0Mg5OkgVPt5ZJE+eeFTvwCpDdBSTKs4JfrK6/iEK8A23Q1jQ== + dependencies: + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/url-parser" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-ini@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.360.0.tgz#1d984cfa414dcbfc8ae1a252a1b87b5f2f4b1707" + integrity sha512-pWuLTq+yjSFssPGhDJ8oxvZsu7/F1KissGRt65G4qrfxHhoiMRcLF1GtFJueDQpitZ1i3mZXHVn/OSv4LPQ1Lw== + dependencies: + "@aws-sdk/credential-provider-env" "3.357.0" + "@aws-sdk/credential-provider-imds" "3.357.0" + "@aws-sdk/credential-provider-process" "3.357.0" + "@aws-sdk/credential-provider-sso" "3.360.0" + "@aws-sdk/credential-provider-web-identity" "3.357.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/shared-ini-file-loader" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-node@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.360.0.tgz#aa5fbb0f47fdb9c0e069760f8a18eebd2d6e47e1" + integrity sha512-j4Lu5vXkdzz/L6fGKKxnL0vcwAGHlwFHjTg9nRagMn1lvaVjtktXeM30duHTBQq9i+ejdFxpVNWYrmHGaWPNdg== + dependencies: + "@aws-sdk/credential-provider-env" "3.357.0" + "@aws-sdk/credential-provider-imds" "3.357.0" + "@aws-sdk/credential-provider-ini" "3.360.0" + "@aws-sdk/credential-provider-process" "3.357.0" + "@aws-sdk/credential-provider-sso" "3.360.0" + "@aws-sdk/credential-provider-web-identity" "3.357.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/shared-ini-file-loader" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-process@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.357.0.tgz#5e661bd4431a171ee862bb60ff0054d11dea150a" + integrity sha512-qFWWilFPsc2hR7O0KIhwcE78w+pVIK+uQR6MQMfdRyxUndgiuCorJwVjedc3yZtmnoELHF34j+m8whTBXv9E7Q== + dependencies: + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/shared-ini-file-loader" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-sso@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.360.0.tgz#7db96614bb2dcd630412e991ce25257a8f42b0e7" + integrity sha512-kW0FR8AbMQrJxADxIqYSjHVN2RXwHmA5DzogYm1AjOkYRMN9JHDVOMQP2K2M6FCynZqTYsKW5lzjPOjS0fu8Dw== + dependencies: + "@aws-sdk/client-sso" "3.360.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/shared-ini-file-loader" "3.357.0" + "@aws-sdk/token-providers" "3.360.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-web-identity@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.357.0.tgz#32765fc53779d84c078d20e4e1585b8fedfcf61f" + integrity sha512-0KRRAFrXy5HJe2vqnCWCoCS+fQw7IoIj3KQsuURJMW4F+ifisxCgEsh3brJ2LQlN4ElWTRJhlrDHNZ/pd61D4w== + dependencies: + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/credential-providers@^3.289.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.360.0.tgz#32f3d21f50fbbfd8fac9b184f757c8e751d29223" + integrity sha512-Bw7EmOAy30c/zspotzmQG4oJMQyRdNrsDyI99bb7GALwZhXgqh90hYw+HCz0Rq8W5H5BT3pBjby68PoYW4Av7w== + dependencies: + "@aws-sdk/client-cognito-identity" "3.360.0" + "@aws-sdk/client-sso" "3.360.0" + "@aws-sdk/client-sts" "3.360.0" + "@aws-sdk/credential-provider-cognito-identity" "3.360.0" + "@aws-sdk/credential-provider-env" "3.357.0" + "@aws-sdk/credential-provider-imds" "3.357.0" + "@aws-sdk/credential-provider-ini" "3.360.0" + "@aws-sdk/credential-provider-node" "3.360.0" + "@aws-sdk/credential-provider-process" "3.357.0" + "@aws-sdk/credential-provider-sso" "3.360.0" + "@aws-sdk/credential-provider-web-identity" "3.357.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/eventstream-codec@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-codec/-/eventstream-codec-3.357.0.tgz#32b6f0d97f3ea6e479e0d59c0a9b625faf3f887b" + integrity sha512-bqenTHG6GH6aCk/Il+ooWXVVAZuc8lOgVEy9bE2hI49oVqT8zSuXxQB+w1WWyZoAOPcelsjayB1wfPub8VDBxQ== + dependencies: + "@aws-crypto/crc32" "3.0.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-hex-encoding" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/eventstream-serde-browser@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.357.0.tgz#fc2074bb7a9d8a358b9e0fb601924094af33c133" + integrity sha512-hBabtmwuspVHGSKnUccDiSIbg+IVoBThx6wYt6i4edbWAITHF3ADVKXy7icV400CAyG0XTZgxjE6FKpiDxj9rQ== + dependencies: + "@aws-sdk/eventstream-serde-universal" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/eventstream-serde-config-resolver@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.357.0.tgz#d5db248a17fb22bc95d3088b7d840a065f015251" + integrity sha512-E6rwk+1KFXhKmJ+v7JW5Uyyda1yN5XRVupCnCrtFsHFmhVGQxFacoUZIee3bfuCpC58dLSyESggxGpUd3XOSsw== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/eventstream-serde-node@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.357.0.tgz#4fc79eea9eb85c173f44ad8e37550231e81cf144" + integrity sha512-boXDy+JWcPfHc9OIKV6I4Bh2XrLcg+eac+/LldNZFcDIB33/gHIM2CJw8u565Iebdz1NKEkP/QPPZbk2y+abPA== + dependencies: + "@aws-sdk/eventstream-serde-universal" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/eventstream-serde-universal@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.357.0.tgz#b83fb0bbc9623eb3e5a698cb3bfd1b8c502fd351" + integrity sha512-9/Wcdxx38XQAturqOAGYNCaLOzFVnW+xwxd4af9eNOfZfZ5PP5PRKBIpvKDsN26e3l4f3GodHx7MS1WB7BBc2w== + dependencies: + "@aws-sdk/eventstream-codec" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/fetch-http-handler@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.357.0.tgz#8b33b8cefe036fd932b694242893ef3db1a74f02" + integrity sha512-5sPloTO8y8fAnS/6/Sfp/aVoL9zuhzkLdWBORNzMazdynVNEzWKWCPZ27RQpgkaCDHiXjqUY4kfuFXAGkvFfDQ== + dependencies: + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/querystring-builder" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-base64" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/hash-blob-browser@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.357.0.tgz#e507929499fe0fe128664b67cd26f63f16ed4d25" + integrity sha512-RDd6UgrGHDmleTnXM9LRSSVa69euSAG2mlNhZMEDWk3OFseXVYqBDaqroVbQ01rM2UAe8MeBFchlV9OmxuVgvw== + dependencies: + "@aws-sdk/chunked-blob-reader" "3.310.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/hash-node@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.357.0.tgz#70666b0d6a49191cf33ef32b235c33b242de36ce" + integrity sha512-fq3LS9AxHKb7dTZkm6iM1TrGk6XOTZz96iEZPME1+vjiSEXGWuebHt87q92n+KozVGRypn9MId3lHOPBBjygNQ== + dependencies: + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-buffer-from" "3.310.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/hash-stream-node@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-stream-node/-/hash-stream-node-3.357.0.tgz#a78c6d1ae1c78cb52854311bad50988e8fc12142" + integrity sha512-KZjN1VAw1KHNp+xKVOWBGS+MpaYQTjZFD5f+7QQqW4TfbAkFFwIAEYIHq5Q8Gw+jVh0h61OrV/LyW3J2PVzc+w== + dependencies: + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/invalid-dependency@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.357.0.tgz#4e86c689a6b0c4d0fe43ba335218d67e9aa652a6" + integrity sha512-HnCYZczf0VdyxMVMMxmA3QJAyyPSFbcMtZzgKbxVTWTG7GKpQe0psWZu/7O2Nk31mKg6vEUdiP1FylqLBsgMOA== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/is-array-buffer@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/is-array-buffer/-/is-array-buffer-3.310.0.tgz#f87a79f1b858c88744f07e8d8d0a791df204017e" + integrity sha512-urnbcCR+h9NWUnmOtet/s4ghvzsidFmspfhYaHAmSRdy9yDjdjBJMFjjsn85A1ODUktztm+cVncXjQ38WCMjMQ== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/lib-storage@^3.267.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/lib-storage/-/lib-storage-3.360.0.tgz#56d29aedd10d49fcc7e6c032cf766cabad45fddc" + integrity sha512-3x3glxHaXj9C/pq8hHNafnhSibdCgud6/7NI7A/CcyarHg6OIj1FVuYWzGMtN028wyOkoDfnfceaaMJdQJQ3WA== + dependencies: + "@aws-sdk/middleware-endpoint" "3.357.0" + "@aws-sdk/smithy-client" "3.360.0" + buffer "5.6.0" + events "3.3.0" + stream-browserify "3.0.0" + tslib "^2.5.0" + +"@aws-sdk/md5-js@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/md5-js/-/md5-js-3.357.0.tgz#61853f562e71af0ec58aeede7883de122177ed55" + integrity sha512-to42sFAL7KgV/X9X40LLfEaNMHMGQL6/7mPMVCL/W2BZf3zw5OTl3lAaNyjXA+gO5Uo4lFEiQKAQVKNbr8b8Nw== + dependencies: + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-bucket-endpoint@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.357.0.tgz#9d19ba4a7971c5302e32d024e477755a1f6185ff" + integrity sha512-ep2T0FJXRDl6nffLqiVZUYfDocZ3B72wvHeozckkLVRX0TK91WEpzv4Zz2vdeBp6CGkM3g8oGjbb6ZqllUZ6TA== + dependencies: + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-arn-parser" "3.310.0" + "@aws-sdk/util-config-provider" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-content-length@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.357.0.tgz#eafad2db1816cb5d91cd1e090211f040f29bbdaa" + integrity sha512-zQOFEyzOXAgN4M54tYNWGxKxnyzY0WwYDTFzh9riJRmxN1hTEKHUKmze4nILIf5rkQmOG4kTf1qmfazjkvZAhw== + dependencies: + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-endpoint@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.357.0.tgz#bc94bbf55339aa5220011f4ae8e03a7966ce28be" + integrity sha512-ScJi0SL8X/Lyi0Fp5blg0QN/Z6PoRwV/ZJXd8dQkXSznkbSvJHfqPP0xk/w3GcQ1TKsu5YEPfeYy8ejcq+7Pgg== + dependencies: + "@aws-sdk/middleware-serde" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/url-parser" "3.357.0" + "@aws-sdk/util-middleware" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-expect-continue@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.357.0.tgz#c392c4f31300695158070223f1e337c7503aca92" + integrity sha512-KeizuiiDmdLeAbiNsJt/rZENY5iJo4wCTl7h81htDC60wSwVwFG03IdgvZlFH6jktYRh4mUDD/6Oljme6yPNxw== + dependencies: + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-flexible-checksums@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.357.0.tgz#957a383dc66942e63493d2ba182ee775e8139507" + integrity sha512-NNQ/iPN6YyzqgVaV8AeYQMZ8y1OmUW27vmt0R66UUw5H5THGc6X9QXoKfie7OHn80Qv1S8P5jw8z5MpvDtjSnQ== + dependencies: + "@aws-crypto/crc32" "3.0.0" + "@aws-crypto/crc32c" "3.0.0" + "@aws-sdk/is-array-buffer" "3.310.0" + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-host-header@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.357.0.tgz#9d4f803fc7d9b1f5582a62844b1d841b3c849fe0" + integrity sha512-HuGLcP7JP1qJ5wGT9GSlEknDaTSnOzHY4T6IPFuvFjAy3PvY5siQNm6+VRqdVS+n6/kzpL3JP5sAVM3aoxHT6Q== + dependencies: + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-location-constraint@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.357.0.tgz#b147973f70c82cf06d3bafcf32b6b826203bcb69" + integrity sha512-4IsIHhwZ2/o7yjLI1XtGMkJ442cbIN5/NtI/Ml0G5UHYviUm8sqvH2vldFBMK5bPuVdk6GpqXpy6wYc9rLJj2w== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-logger@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.357.0.tgz#851a44a934ad8f33465ae4665a6c07ac967a8bbb" + integrity sha512-dncT3tr+lZ9+duZo52rASgO6AKVwRcsc2/T93gmaYVrJqI6WWAwQ7yML5s72l9ZjQ5LZ+4jjrgtlufavAS0eCg== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-recursion-detection@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.357.0.tgz#2d7a8cf43f1299c1ff1e113988bd801e7f527401" + integrity sha512-AXC54IeDS3jC1dbbkYHML4STvBPcKZ4IJTWdjEK1RCOgqXd0Ze1cE1e21wyj1tM6prF03zLyvpBd+3TS++nqfA== + dependencies: + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-retry@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.357.0.tgz#6dfbd4ddc62c415b6b6de16d3a37ad4d69c8a10c" + integrity sha512-ZCbXCYv3nglQqwREYxxpclrnR9MYPAnHlLcC8e9PbApqxGnaZdhoywxoqbgqT3hf/RM7kput4vEHDl1fyymcRQ== + dependencies: + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/service-error-classification" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-middleware" "3.357.0" + "@aws-sdk/util-retry" "3.357.0" + tslib "^2.5.0" + uuid "^8.3.2" + +"@aws-sdk/middleware-sdk-s3@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.357.0.tgz#3962e60183930b497599357f42f531578544eb18" + integrity sha512-EFQaPD8SoXcK7RiEOZz0zIX9owQW6txu8vrOOVva9xMts36z/3E7b4FVsgEJ53Ixa1x38ddPJxp4U8EIaf+pvQ== + dependencies: + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-arn-parser" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-sdk-sts@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.357.0.tgz#8f9be3db8f4fd8563baf66925ee326f579b6ae4d" + integrity sha512-Ng2VjLrPiL02QOcs1qs9jG2boO4Gn+v3VIbOJLG4zXcfbSq55iIWtlmr2ljfw9vP5aLhWtcODfmKHS5Bp+019Q== + dependencies: + "@aws-sdk/middleware-signing" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-serde@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.357.0.tgz#2614031c81981580bce4bee502985e28e51dadb2" + integrity sha512-bGI4kYuuEsFjlANbyJLyy4AovETnyf/SukgLOG7Qjbua+ZGuzvRhMsk21mBKKGrnsTO4PmtieJo6xClThGAN8g== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-signing@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.357.0.tgz#9aee1ad571b092ad0bbd63e0b551ffb575220688" + integrity sha512-yB9ewEqI6Fw1OrmKFrUypbCqN5ijk06UGPochybamMuPxxkwMT3bnrm7eezsCA+TZbJyKhpffpyobwuv+xGNrA== + dependencies: + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/signature-v4" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-middleware" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-ssec@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.357.0.tgz#c99b9b457cfaee32796110b324d2d5056c86b4df" + integrity sha512-uE3nNvJclcY7SgGoOgDCUgfc7ElXQmWVpks8AZzAjJj7bG5j6Bv3FOOYtGtvtxUzTHaOdn+yQwjssV1cZ6GTQw== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-stack@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.357.0.tgz#51f181691e8c76694b6583561ba0a0a14472506c" + integrity sha512-nNV+jfwGwmbOGZujAY/U8AW3EbVlxa9DJDLz3TPp/39o6Vu5KEzHJyDDNreo2k9V/TMvV+nOzHafufgPdagv7w== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/middleware-user-agent@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.357.0.tgz#d4d27549bbcfdc03f5a8db74435a345b05b40373" + integrity sha512-M/CsAXjGblZS4rEbMb0Dn9IXbfq4EjVaTHBfvuILU/dKRppWvjnm2lRtqCZ+LIT3ATbAjA3/dY7dWsjxQWwijA== + dependencies: + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-endpoints" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/node-config-provider@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.357.0.tgz#2e47aa36e5efae89b65c79b8c27180d3d8a2d901" + integrity sha512-kwBIzKCaW3UWqLdELhy7TcN8itNMOjbzga530nalFILMvn2IxrkdKQhNgxGBXy6QK6kCOtH6OmcrG3/oZkLwig== + dependencies: + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/shared-ini-file-loader" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/node-http-handler@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.360.0.tgz#6f762b57f98887b5173886f890669e6a60bf792c" + integrity sha512-oMsXdMmNwHpUbebETO44bq0N4SocEMGfPjYNUTRs8md7ita5fuFd2qFuvf+ZRt6iVcGWluIqmF8DidD+b7d+TA== + dependencies: + "@aws-sdk/abort-controller" "3.357.0" + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/querystring-builder" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/property-provider@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.357.0.tgz#4c1639c2d52aefab4040c2247c126c11b19d8be9" + integrity sha512-im4W0u8WaYxG7J7ko4Xl3OEzK3Mrm1Rz6/txTGe6hTIHlyUISu1ekOQJXK6XYPqNMn8v1G3BiQREoRXUEJFbHg== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/protocol-http@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.357.0.tgz#cd47413d6c1ed2d27bc30c7e9da3b262c8804cf4" + integrity sha512-w1JHiI50VEea7duDeAspUiKJmmdIQblvRyjVMOqWA6FIQAyDVuEiPX7/MdQr0ScxhtRQxHbP0I4MFyl7ctRQvA== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/querystring-builder@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.357.0.tgz#0d4627620eba4d3cc523c2e1da88dfa561617599" + integrity sha512-aQcicqB6Y2cNaXPPwunz612a01SMiQQPsdz632F/3Lzn0ua82BJKobHOtaiTUlmVJ5Q4/EAeNfwZgL7tTUNtDQ== + dependencies: + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-uri-escape" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/querystring-parser@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.357.0.tgz#6dfeb42930b2241cda43646d7c1d16ca886c78af" + integrity sha512-Svvq+atRNP9s2VxiklcUNgCzmt3T5kfs7X2C+yjmxHvOQTPjLNaNGbfC/vhjOK7aoXw0h+lBac48r5ymx1PbQA== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/service-error-classification@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.357.0.tgz#1c6f6e436997a1886d55cfec6d4796129b789076" + integrity sha512-VuXeL4g5vKO9HjgCZlxmH8Uv1FcqUSjmbPpQkbNtYIDck6u0qzM0rG+n0/1EjyQbPSr3MhW/pkWs5nx2Nljlyg== + +"@aws-sdk/shared-ini-file-loader@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.357.0.tgz#af503df79e05bb9ee0e5d689319c9b52cefe1801" + integrity sha512-ceyqM4XxQe0Plb/oQAD2t1UOV2Iy4PFe1oAGM8dfJzYrRKu7zvMwru7/WaB3NYq+/mIY6RU+jjhRmjQ3GySVqA== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/signature-v4-multi-region@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.357.0.tgz#100c573029e2b30a65634090e55be4beb50e16a1" + integrity sha512-eyO3GibYLNCPZ/YxM/ZVDh1fTMKvIUj4fpVo0bxQTKNlqNkVumAIOVLoH5um1A9FN7nDdz+40a7jwYSPlkxW6A== + dependencies: + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/signature-v4" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/signature-v4@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.357.0.tgz#31093e87fda10bee92b6b2784cdba9af9af89e7d" + integrity sha512-itt4/Jh9FqnzK30qIjXFBvM4J7zN4S/AAqsRMnaX7U4f/MV+1YxQHmzimpdMnsCXXs2jqFqKVRu6DewxJ3nbxg== + dependencies: + "@aws-sdk/eventstream-codec" "3.357.0" + "@aws-sdk/is-array-buffer" "3.310.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-hex-encoding" "3.310.0" + "@aws-sdk/util-middleware" "3.357.0" + "@aws-sdk/util-uri-escape" "3.310.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/smithy-client@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.360.0.tgz#59d55eb41eccc22ca2d3d32c11b60135f882e66d" + integrity sha512-R7wbT2SkgWNEAxMekOTNcPcvBszabW2+qHjrcelbbVJNjx/2yK+MbpZI4WRSncByQMeeoW+aSUP+JgsbpiOWfw== + dependencies: + "@aws-sdk/middleware-stack" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-stream" "3.360.0" + "@smithy/types" "^1.0.0" + tslib "^2.5.0" + +"@aws-sdk/token-providers@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.360.0.tgz#f4343caef536a96e39d4e79fff604868036247a0" + integrity sha512-gtnCmn2NL7uSwadqQPeU74Wo7Wf1NMJtui+KSWPYpc3joRZqIYj0kL5w0IT2S9tPQwCFerWVfhkvRkSGJ4nZ/g== + dependencies: + "@aws-sdk/client-sso-oidc" "3.360.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/shared-ini-file-loader" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/types@3.357.0", "@aws-sdk/types@^3.1.0", "@aws-sdk/types@^3.222.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.357.0.tgz#8491da71a4291cc2661c26a75089e86532b6a3b5" + integrity sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/url-parser@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.357.0.tgz#1b197f252d008e201d1e301c8024bed770ef0b2c" + integrity sha512-fAaU6cFsaAba01lCRsRJiYR/LfXvX2wudyEyutBVglE4dWSoSeu3QJNxImIzTBULfbiFhz59++NQ1JUVx88IVg== + dependencies: + "@aws-sdk/querystring-parser" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/util-arn-parser@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.310.0.tgz#861ff8810851be52a320ec9e4786f15b5fc74fba" + integrity sha512-jL8509owp/xB9+Or0pvn3Fe+b94qfklc2yPowZZIFAkFcCSIdkIglz18cPDWnYAcy9JGewpMS1COXKIUhZkJsA== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-base64@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64/-/util-base64-3.310.0.tgz#d0fd49aff358c5a6e771d0001c63b1f97acbe34c" + integrity sha512-v3+HBKQvqgdzcbL+pFswlx5HQsd9L6ZTlyPVL2LS9nNXnCcR3XgGz9jRskikRUuUvUXtkSG1J88GAOnJ/apTPg== + dependencies: + "@aws-sdk/util-buffer-from" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/util-body-length-browser@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.310.0.tgz#3fca9d2f73c058edf1907e4a1d99a392fdd23eca" + integrity sha512-sxsC3lPBGfpHtNTUoGXMQXLwjmR0zVpx0rSvzTPAuoVILVsp5AU/w5FphNPxD5OVIjNbZv9KsKTuvNTiZjDp9g== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-body-length-node@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-node/-/util-body-length-node-3.310.0.tgz#4846ae72834ab0636f29f89fc1878520f6543fed" + integrity sha512-2tqGXdyKhyA6w4zz7UPoS8Ip+7sayOg9BwHNidiGm2ikbDxm1YrCfYXvCBdwaJxa4hJfRVz+aL9e+d3GqPI9pQ== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-buffer-from@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-buffer-from/-/util-buffer-from-3.310.0.tgz#7a72cb965984d3c6a7e256ae6cf1621f52e54a57" + integrity sha512-i6LVeXFtGih5Zs8enLrt+ExXY92QV25jtEnTKHsmlFqFAuL3VBeod6boeMXkN2p9lbSVVQ1sAOOYZOHYbYkntw== + dependencies: + "@aws-sdk/is-array-buffer" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/util-config-provider@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-config-provider/-/util-config-provider-3.310.0.tgz#ff21f73d4774cfd7bd16ae56f905828600dda95f" + integrity sha512-xIBaYo8dwiojCw8vnUcIL4Z5tyfb1v3yjqyJKJWV/dqKUFOOS0U591plmXbM+M/QkXyML3ypon1f8+BoaDExrg== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-defaults-mode-browser@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.360.0.tgz#fced018e4990220dc31881a5b2b3e425fe08e970" + integrity sha512-/GR8VlK9xo1Q5WbVYuNaZ+XfoCFdWNb4z4mpoEgvEgBH4R0GjqiAqLftUA8Ykq1tJuDAKPYVzUNzK8DC0pt7/g== + dependencies: + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" + bowser "^2.11.0" + tslib "^2.5.0" + +"@aws-sdk/util-defaults-mode-node@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.360.0.tgz#83e2812474d8807d6d220c5064576e63e4ea8306" + integrity sha512-gR3Ctqpyl7SgStDJ1Jlq6qQDuw/rS9AgbAXx+s3wsmm3fm8lHKkXkDPYVvNDqd6dVXRO6q8MRx00lwkGI4qrpQ== + dependencies: + "@aws-sdk/config-resolver" "3.357.0" + "@aws-sdk/credential-provider-imds" "3.357.0" + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/util-endpoints@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.357.0.tgz#eaa7b4481bbd9fc8f13412b308ba4129d8fa2004" + integrity sha512-XHKyS5JClT9su9hDif715jpZiWHQF9gKZXER8tW0gOizU3R9cyWc9EsJ2BRhFNhi7nt/JF/CLUEc5qDx3ETbUw== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/util-hex-encoding@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.310.0.tgz#19294c78986c90ae33f04491487863dc1d33bd87" + integrity sha512-sVN7mcCCDSJ67pI1ZMtk84SKGqyix6/0A1Ab163YKn+lFBQRMKexleZzpYzNGxYzmQS6VanP/cfU7NiLQOaSfA== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-locate-window@^3.0.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.310.0.tgz#b071baf050301adee89051032bd4139bba32cc40" + integrity sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-middleware@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.357.0.tgz#1ba478dde5df4e53b231ec6651b8d44c9187f66d" + integrity sha512-pV1krjZs7BdahZBfsCJMatE8kcor7GFsBOWrQgQDm9T0We5b5xPpOO2vxAD0RytBpY8Ky2ELs/+qXMv7l5fWIA== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-retry@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-retry/-/util-retry-3.357.0.tgz#25e12e2882b2bbc5a6531c1d9344cb0c93103b3b" + integrity sha512-SUqYJE9msbuOVq+vnUy+t0LH7XuYNFz66dSF8q6tedsbJK4j8tgya0I1Ct3m06ynGrXDJMaj39I7AXCyW9bjtw== + dependencies: + "@aws-sdk/service-error-classification" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/util-stream@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-stream/-/util-stream-3.360.0.tgz#a6cf43cf594540e9d1a4e19b9acbc5c34b3a1225" + integrity sha512-t3naBfNesXwLis29pzSfLx2ifCn2180GiPjRaIsQP14IiVCBOeT1xaU6Dpyk7WeR/jW4cu7wGl+kbeyfNF6QmQ== + dependencies: + "@aws-sdk/fetch-http-handler" "3.357.0" + "@aws-sdk/node-http-handler" "3.360.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-base64" "3.310.0" + "@aws-sdk/util-buffer-from" "3.310.0" + "@aws-sdk/util-hex-encoding" "3.310.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/util-uri-escape@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-uri-escape/-/util-uri-escape-3.310.0.tgz#9f942f09a715d8278875013a416295746b6085ba" + integrity sha512-drzt+aB2qo2LgtDoiy/3sVG8w63cgLkqFIa2NFlGpUgHFWTXkqtbgf4L5QdjRGKWhmZsnqkbtL7vkSWEcYDJ4Q== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-user-agent-browser@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.357.0.tgz#21c3e6c1a3d610dd279952d3ce00909775019be5" + integrity sha512-JHaWlNIUkPNvXkqeDOrqFzAlAgdwZK5mZw7FQnCRvf8tdSogpGZSkuyb9Z6rLD9gC40Srbc2nepO1cFpeMsDkA== + dependencies: + "@aws-sdk/types" "3.357.0" + bowser "^2.11.0" + tslib "^2.5.0" + +"@aws-sdk/util-user-agent-node@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.357.0.tgz#a656cebce558b602e753e45a3b8174dc7c0f1fcf" + integrity sha512-RdpQoaJWQvcS99TVgSbT451iGrlH4qpWUWFA9U1IRhxOSsmC1hz8ME7xc8nci9SREx/ZlfT3ai6LpoAzAtIEMA== + dependencies: + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/util-utf8-browser@^3.0.0": + version "3.259.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz#3275a6f5eb334f96ca76635b961d3c50259fd9ff" + integrity sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-utf8@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8/-/util-utf8-3.310.0.tgz#4a7b9dcebb88e830d3811aeb21e9a6df4273afb4" + integrity sha512-DnLfFT8uCO22uOJc0pt0DsSNau1GTisngBCDw8jQuWT5CqogMJu4b/uXmwEqfj8B3GX6Xsz8zOd6JpRlPftQoA== + dependencies: + "@aws-sdk/util-buffer-from" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/util-waiter@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-waiter/-/util-waiter-3.357.0.tgz#31fdaf289ed60a633178b39e3b258f9b42a1cbe3" + integrity sha512-jQQGA5G8bm0JP5C4U85VzMpkFHdeeT7fOSUncXLG9Sh8Ambzi4XTud8m5/dA7aNJkvPwZeIF9QdgWCOzpkp1xA== + dependencies: + "@aws-sdk/abort-controller" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/xml-builder@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.310.0.tgz#f0236f2103b438d16117e0939a6305ad69b7ff76" + integrity sha512-TqELu4mOuSIKQCqj63fGVs86Yh+vBx5nHRpWKNUNhB2nPTpfbziTs5c1X358be3peVWA4wPxW7Nt53KIg1tnNw== + dependencies: + tslib "^2.5.0" + +"@babel/code-frame@^7.0.0": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" + integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== + dependencies: + "@babel/highlight" "^7.22.5" + +"@babel/helper-module-imports@^7.16.7": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" + integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + +"@babel/helper-validator-identifier@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" + integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== + +"@babel/highlight@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" + integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== + dependencies: + "@babel/helper-validator-identifier" "^7.22.5" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.19.0", "@babel/runtime@^7.20.6", "@babel/runtime@^7.21.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.5.tgz#8564dd588182ce0047d55d7a75e93921107b57ec" + integrity sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA== + dependencies: + regenerator-runtime "^0.13.11" + +"@babel/types@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" + integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" + to-fast-properties "^2.0.0" + +"@bcherny/json-schema-ref-parser@9.0.9": + version "9.0.9" + resolved "https://registry.yarnpkg.com/@bcherny/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz#09899d405bc708c0acac0066ae8db5b94d465ca4" + integrity sha512-vmEmnJCfpkLdas++9OYg6riIezTYqTHpqUTODJzHLzs5UnXujbOJW9VwcVCnyo1mVRt32FRr23iXBx/sX8YbeQ== + dependencies: + "@jsdevtools/ono" "^7.1.3" + "@types/json-schema" "^7.0.6" + call-me-maybe "^1.0.1" + js-yaml "^4.1.0" + +"@csstools/postcss-cascade-layers@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz#8a997edf97d34071dd2e37ea6022447dd9e795ad" + integrity sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA== + dependencies: + "@csstools/selector-specificity" "^2.0.2" + postcss-selector-parser "^6.0.10" + +"@csstools/postcss-color-function@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz#2bd36ab34f82d0497cfacdc9b18d34b5e6f64b6b" + integrity sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-font-format-keywords@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz#677b34e9e88ae997a67283311657973150e8b16a" + integrity sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-hwb-function@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz#ab54a9fce0ac102c754854769962f2422ae8aa8b" + integrity sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-ic-unit@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz#28237d812a124d1a16a5acc5c3832b040b303e58" + integrity sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-is-pseudo-class@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz#846ae6c0d5a1eaa878fce352c544f9c295509cd1" + integrity sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA== + dependencies: + "@csstools/selector-specificity" "^2.0.0" + postcss-selector-parser "^6.0.10" + +"@csstools/postcss-nested-calc@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz#d7e9d1d0d3d15cf5ac891b16028af2a1044d0c26" + integrity sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-normalize-display-values@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz#15da54a36e867b3ac5163ee12c1d7f82d4d612c3" + integrity sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-oklab-function@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz#88cee0fbc8d6df27079ebd2fa016ee261eecf844" + integrity sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-progressive-custom-properties@^1.1.0", "@csstools/postcss-progressive-custom-properties@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz#542292558384361776b45c85226b9a3a34f276fa" + integrity sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-stepped-value-functions@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz#f8772c3681cc2befed695e2b0b1d68e22f08c4f4" + integrity sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-text-decoration-shorthand@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz#ea96cfbc87d921eca914d3ad29340d9bcc4c953f" + integrity sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-trigonometric-functions@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz#94d3e4774c36d35dcdc88ce091336cb770d32756" + integrity sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-unset-value@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz#c99bb70e2cdc7312948d1eb41df2412330b81f77" + integrity sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g== + +"@csstools/selector-specificity@^2.0.0", "@csstools/selector-specificity@^2.0.2": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz#2cbcf822bf3764c9658c4d2e568bd0c0cb748016" + integrity sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw== + +"@date-io/core@^2.16.0": + version "2.16.0" + resolved "https://registry.yarnpkg.com/@date-io/core/-/core-2.16.0.tgz#7871bfc1d9bca9aa35ad444a239505589d0f22f6" + integrity sha512-DYmSzkr+jToahwWrsiRA2/pzMEtz9Bq1euJwoOuYwuwIYXnZFtHajY2E6a1VNVDc9jP8YUXK1BvnZH9mmT19Zg== + +"@date-io/date-fns@^2.16.0": + version "2.16.0" + resolved "https://registry.yarnpkg.com/@date-io/date-fns/-/date-fns-2.16.0.tgz#bd5e09b6ecb47ee55e593fc3a87e7b2caaa3da40" + integrity sha512-bfm5FJjucqlrnQcXDVU5RD+nlGmL3iWgkHTq3uAZWVIuBu6dDmGa3m8a6zo2VQQpu8ambq9H22UyUpn7590joA== + dependencies: + "@date-io/core" "^2.16.0" + +"@discoveryjs/json-ext@0.5.7", "@discoveryjs/json-ext@^0.5.0": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== + +"@dnd-kit/accessibility@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@dnd-kit/accessibility/-/accessibility-3.0.1.tgz#3ccbefdfca595b0a23a5dc57d3de96bc6935641c" + integrity sha512-HXRrwS9YUYQO9lFRc/49uO/VICbM+O+ZRpFDe9Pd1rwVv2PCNkRiTZRdxrDgng/UkvdC3Re9r2vwPpXXrWeFzg== + dependencies: + tslib "^2.0.0" + +"@dnd-kit/core@^6.0.7": + version "6.0.8" + resolved "https://registry.yarnpkg.com/@dnd-kit/core/-/core-6.0.8.tgz#040ae13fea9787ee078e5f0361f3b49b07f3f005" + integrity sha512-lYaoP8yHTQSLlZe6Rr9qogouGUz9oRUj4AHhDQGQzq/hqaJRpFo65X+JKsdHf8oUFBzx5A+SJPUvxAwTF2OabA== + dependencies: + "@dnd-kit/accessibility" "^3.0.0" + "@dnd-kit/utilities" "^3.2.1" + tslib "^2.0.0" + +"@dnd-kit/sortable@^7.0.2": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@dnd-kit/sortable/-/sortable-7.0.2.tgz#791d550872457f3f3c843e00d159b640f982011c" + integrity sha512-wDkBHHf9iCi1veM834Gbk1429bd4lHX4RpAwT0y2cHLf246GAvU2sVw/oxWNpPKQNQRQaeGXhAVgrOl1IT+iyA== + dependencies: + "@dnd-kit/utilities" "^3.2.0" + tslib "^2.0.0" + +"@dnd-kit/utilities@^3.2.0", "@dnd-kit/utilities@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@dnd-kit/utilities/-/utilities-3.2.1.tgz#53f9e2016fd2506ec49e404c289392cfff30332a" + integrity sha512-OOXqISfvBw/1REtkSK2N3Fi2EQiLMlWUlqnOK/UpOISqBZPWpE6TqL+jcPtMOkE8TqYGiURvRdPSI9hltNUjEA== + dependencies: + tslib "^2.0.0" + +"@emotion/babel-plugin@^11.11.0": + version "11.11.0" + resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz#c2d872b6a7767a9d176d007f5b31f7d504bb5d6c" + integrity sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/runtime" "^7.18.3" + "@emotion/hash" "^0.9.1" + "@emotion/memoize" "^0.8.1" + "@emotion/serialize" "^1.1.2" + babel-plugin-macros "^3.1.0" + convert-source-map "^1.5.0" + escape-string-regexp "^4.0.0" + find-root "^1.1.0" + source-map "^0.5.7" + stylis "4.2.0" + +"@emotion/cache@^11.11.0", "@emotion/cache@^11.4.0": + version "11.11.0" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.11.0.tgz#809b33ee6b1cb1a625fef7a45bc568ccd9b8f3ff" + integrity sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ== + dependencies: + "@emotion/memoize" "^0.8.1" + "@emotion/sheet" "^1.2.2" + "@emotion/utils" "^1.2.1" + "@emotion/weak-memoize" "^0.3.1" + stylis "4.2.0" + +"@emotion/css@^11.10.5": + version "11.11.2" + resolved "https://registry.yarnpkg.com/@emotion/css/-/css-11.11.2.tgz#e5fa081d0c6e335352e1bc2b05953b61832dca5a" + integrity sha512-VJxe1ucoMYMS7DkiMdC2T7PWNbrEI0a39YRiyDvK2qq4lXwjRbVP/z4lpG+odCsRzadlR+1ywwrTzhdm5HNdew== + dependencies: + "@emotion/babel-plugin" "^11.11.0" + "@emotion/cache" "^11.11.0" + "@emotion/serialize" "^1.1.2" + "@emotion/sheet" "^1.2.2" + "@emotion/utils" "^1.2.1" + +"@emotion/hash@^0.9.1": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.1.tgz#4ffb0055f7ef676ebc3a5a91fb621393294e2f43" + integrity sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ== + +"@emotion/memoize@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" + integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== + +"@emotion/react@^11.8.1": + version "11.11.1" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.11.1.tgz#b2c36afac95b184f73b08da8c214fdf861fa4157" + integrity sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA== + dependencies: + "@babel/runtime" "^7.18.3" + "@emotion/babel-plugin" "^11.11.0" + "@emotion/cache" "^11.11.0" + "@emotion/serialize" "^1.1.2" + "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1" + "@emotion/utils" "^1.2.1" + "@emotion/weak-memoize" "^0.3.1" + hoist-non-react-statics "^3.3.1" + +"@emotion/serialize@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.2.tgz#017a6e4c9b8a803bd576ff3d52a0ea6fa5a62b51" + integrity sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA== + dependencies: + "@emotion/hash" "^0.9.1" + "@emotion/memoize" "^0.8.1" + "@emotion/unitless" "^0.8.1" + "@emotion/utils" "^1.2.1" + csstype "^3.0.2" + +"@emotion/sheet@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.2.tgz#d58e788ee27267a14342303e1abb3d508b6d0fec" + integrity sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA== + +"@emotion/unitless@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3" + integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== + +"@emotion/use-insertion-effect-with-fallbacks@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz#08de79f54eb3406f9daaf77c76e35313da963963" + integrity sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw== + +"@emotion/utils@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.2.1.tgz#bbab58465738d31ae4cb3dbb6fc00a5991f755e4" + integrity sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg== + +"@emotion/weak-memoize@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6" + integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww== + +"@faceless-ui/modal@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@faceless-ui/modal/-/modal-2.0.1.tgz#8a47299442eff450c09432cfaef35c5471becad6" + integrity sha512-z1PaaLxwuX+1In4vhUxODZndGKdCY+WIqzvtnas3CaYGGCVJBSJ4jfv9UEEGZzcahmSy+71bEL89cUT6d36j1Q== + dependencies: + body-scroll-lock "^3.1.5" + focus-trap "^6.9.2" + qs "^6.9.1" + react-transition-group "^4.4.2" + +"@faceless-ui/scroll-info@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@faceless-ui/scroll-info/-/scroll-info-1.3.0.tgz#4d9f76afa4c004018697424f77f8bc362ccaae08" + integrity sha512-X+doJMzQqyVGpwV/YgXUAalNWepP2W8ThgZspKZLFG43zTYLVTU17BYCjjY+ggKuA3b0W3JyXZ2M8f247AdmHw== + +"@faceless-ui/window-info@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@faceless-ui/window-info/-/window-info-2.1.1.tgz#ed1474a60ab794295bca4c29e295b1e11a584d22" + integrity sha512-gMAgda7beR4CNpBIXjgRVn97ek0LG3PAj9lxmoYdg574IEzLFZAh3eAYtTaS2XLKgb4+IHhsuBzlGmHbeOo2Aw== + +"@floating-ui/core@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.3.1.tgz#4d795b649cc3b1cbb760d191c80dcb4353c9a366" + integrity sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g== + +"@floating-ui/dom@^1.0.1": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.4.2.tgz#eb3a37f7506c4f95ef735967dc3496b5012e11cb" + integrity sha512-VKmvHVatWnewmGGy+7Mdy4cTJX71Pli6v/Wjb5RQBuq5wjUYx+Ef+kRThi8qggZqDgD8CogCpqhRoVp3+yQk+g== + dependencies: + "@floating-ui/core" "^1.3.1" + +"@hapi/hoek@^9.0.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" + integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== + +"@hapi/topo@^5.0.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@jest/schemas@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" + integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg== + dependencies: + "@sinclair/typebox" "^0.25.16" + +"@jest/types@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593" + integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog== + dependencies: + "@jest/schemas" "^29.4.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.3.0": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/source-map@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.3.tgz#8108265659d4c33e72ffe14e33d6cc5eb59f2fda" + integrity sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/sourcemap-codec@1.4.14": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.18" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" + integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + +"@jsdevtools/ono@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" + integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== + +"@juggle/resize-observer@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz#08d6c5e20cf7e4cc02fd181c4b0c225cd31dbb60" + integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== + +"@monaco-editor/loader@^1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@monaco-editor/loader/-/loader-1.3.3.tgz#7f1742bd3cc21c0362a46a4056317f6e5215cfca" + integrity sha512-6KKF4CTzcJiS8BJwtxtfyYt9shBiEv32ateQ9T4UVogwn4HM/uPo9iJd2Dmbkpz8CM6Y0PDUpjnZzCwC+eYo2Q== + dependencies: + state-local "^1.0.6" + +"@monaco-editor/react@^4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@monaco-editor/react/-/react-4.5.1.tgz#fbc76c692aee9a33b9ab24ae0c5f219b8f002fdb" + integrity sha512-NNDFdP+2HojtNhCkRfE6/D6ro6pBNihaOzMbGK84lNWzRu+CfBjwzGt4jmnqimLuqp5yE5viHS2vi+QOAnD5FQ== + dependencies: + "@monaco-editor/loader" "^1.3.3" + +"@payloadcms/plugin-cloud@^0.0.10": + version "0.0.10" + resolved "https://registry.yarnpkg.com/@payloadcms/plugin-cloud/-/plugin-cloud-0.0.10.tgz#410e31db7457681e262be2873efdeb4c704b4293" + integrity sha512-ektfntigEImbLrRQszrB5fHI5AFx7W9hcqEwQ89lCliiV5YJyFDAhHjaqUnKjPWpNaOnhiOMTV84rjHgdds5hA== + dependencies: + "@aws-sdk/client-cognito-identity" "^3.289.0" + "@aws-sdk/client-s3" "^3.142.0" + "@aws-sdk/credential-providers" "^3.289.0" + "@aws-sdk/lib-storage" "^3.267.0" + amazon-cognito-identity-js "^6.1.2" + resend "^0.12.0" + +"@polka/url@^1.0.0-next.20": + version "1.0.0-next.21" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" + integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== + +"@popperjs/core@^2.9.2": + version "2.11.8" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" + integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== + +"@react-email/render@0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@react-email/render/-/render-0.0.6.tgz#4e47ee6df226c86d548c38f96e34844acb944160" + integrity sha512-6zs7WZbd37TcPT1OmMPH/kcBpv0QSi+k3om7LyDnbdIcrbwOO/OstVwUaa/6zgvDvnq9Y2wOosbru7j5kUrW9A== + dependencies: + html-to-text "9.0.3" + pretty "2.0.0" + react "18.2.0" + react-dom "18.2.0" + +"@selderee/plugin-htmlparser2@^0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.10.0.tgz#8a304d18df907e086f3cfc71ea0ced52d6524430" + integrity sha512-gW69MEamZ4wk1OsOq1nG1jcyhXIQcnrsX5JwixVw/9xaiav8TCyjESAruu1Rz9yyInhgBXxkNwMeygKnN2uxNA== + dependencies: + domhandler "^5.0.3" + selderee "^0.10.0" + +"@sideway/address@^4.1.3": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" + integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f" + integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + +"@sinclair/typebox@^0.25.16": + version "0.25.24" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718" + integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== + +"@smithy/protocol-http@^1.0.1": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-1.1.0.tgz#caf22e01cb825d7490a4915e03d6fa64954ff535" + integrity sha512-H5y/kZOqfJSqRkwtcAoVbqONmhdXwSgYNJ1Glk5Ry8qlhVVy5qUzD9EklaCH8/XLnoCsLO/F/Giee8MIvaBRkg== + dependencies: + "@smithy/types" "^1.1.0" + tslib "^2.5.0" + +"@smithy/types@^1.0.0", "@smithy/types@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-1.1.0.tgz#f30a23202c97634cca5c1ac955a9bf149c955226" + integrity sha512-KzmvisMmuwD2jZXuC9e65JrgsZM97y5NpDU7g347oB+Q+xQLU6hQZ5zFNNbEfwwOJHoOvEVTna+dk1h/lW7alw== + dependencies: + tslib "^2.5.0" + +"@swc/core-darwin-arm64@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.66.tgz#b34a396479ca8fc82876d6dfb28c78a51010e6ce" + integrity sha512-UijJsvuLy73vxeVYEy7urIHksXS+3BdvJ9s9AY+bRMSQW483NO7RLp8g4FdTyJbRaN0BH15SQnY0dcjQBkVuHw== + +"@swc/core-darwin-x64@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.66.tgz#b778e434d29652eae6da6ee7ed335605f7cfd866" + integrity sha512-xGsHKvViQnwTNLF30Y/5OqWdnN6RsiyUI8awZXfz1sHcXCEaLe+v+WLQ+/E8sgw0YUkYVHzzfV/sAN2CezJK5Q== + +"@swc/core-linux-arm-gnueabihf@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.66.tgz#a7ab556dc9fc770069fea292ff5551161df83a70" + integrity sha512-gNbLcSIV2pq90BkMSpzvK4xPXOl8GEF3YR4NaqF0CYSzQsVXXTTqMuX/r26xNYudBKzH0345S1MpoRk2qricnA== + +"@swc/core-linux-arm64-gnu@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.66.tgz#00591f5fd0d9f1d1ed565329936451eb6d0d5433" + integrity sha512-cJSQ0oplyWbJqy4rzVcnBYLAi6z1QT3QCcR7iAey0aAmCvfRBZJfXlyjggMjn4iosuadkauwCZR1xYNhBDRn7w== + +"@swc/core-linux-arm64-musl@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.66.tgz#dd8e5e7b1154b5a42a32d57914e0de2cef6686ff" + integrity sha512-GDQZpcB9aGxG9PTA2shdIkoMZlGK5omJ8NR49uoBTtLBVYiGeXAwV0U1Uaw8kXEZj9i7wZDkvjzjSaNH3evRsg== + +"@swc/core-linux-x64-gnu@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.66.tgz#35de4b88e3f256e7923503a8031569c733859b68" + integrity sha512-lg8E4O/Pd9KfK0lajdinVMuGME8dSv7V9arhEpmlfGE2eXSDCWqDn5Htk5QVBstt9lt1lsRhWHJ/YYc2eQY30Q== + +"@swc/core-linux-x64-musl@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.66.tgz#623de62c638a31cda5d44014b981290e3f79f6de" + integrity sha512-lo8ZcAO/zL2pZWH+LZIyge8u2MklaeuT6+FpVVpBFktMVdYXbaVtzpvWbgRFBZHvL3SRDF+u8jxjtkXhvGUpTw== + +"@swc/core-win32-arm64-msvc@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.66.tgz#49a432f43a314666e681a98801d7b2d303e5ef75" + integrity sha512-cQoVwBuJY5WkHbfpCOlndNwYr1ZThatRjQQvKy540NUIeAEk9Fa6ozlDBtU75UdaWKtUG6YQ/bWz+KTemheVxw== + +"@swc/core-win32-ia32-msvc@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.66.tgz#80c8af627b46de67fbac05908025e764194669ad" + integrity sha512-y/FrAIINK4UBeUQQknGlWXEyjo+MBvjF7WkUf2KP7sNr9EHHy8+dXohAGd5Anz0eJrqOM1ZXR/GEjxRp7bGQ1Q== + +"@swc/core-win32-x64-msvc@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.66.tgz#7984da6bf1f1a5410c2e6514dc2814abb2e6c91a" + integrity sha512-yI64ACzS14qFLrfyO12qW+f/UROTotzDeEbuyJAaPD2IZexoT1cICznI3sBmIfrSt33mVuW8eF5m3AG/NUImzw== + +"@swc/core@^1.3.26": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.66.tgz#d07e4c9cd49205881171ee1ffd04f824ecea2f25" + integrity sha512-Hpf91kH5ly7fHkWnApwryTQryT+TO4kMMPH3WyciUSQOWLE3UuQz1PtETHQQk7PZ/b1QF0qQurJrgfBr5bSKUA== + optionalDependencies: + "@swc/core-darwin-arm64" "1.3.66" + "@swc/core-darwin-x64" "1.3.66" + "@swc/core-linux-arm-gnueabihf" "1.3.66" + "@swc/core-linux-arm64-gnu" "1.3.66" + "@swc/core-linux-arm64-musl" "1.3.66" + "@swc/core-linux-x64-gnu" "1.3.66" + "@swc/core-linux-x64-musl" "1.3.66" + "@swc/core-win32-arm64-msvc" "1.3.66" + "@swc/core-win32-ia32-msvc" "1.3.66" + "@swc/core-win32-x64-msvc" "1.3.66" + +"@swc/register@^0.1.10": + version "0.1.10" + resolved "https://registry.yarnpkg.com/@swc/register/-/register-0.1.10.tgz#74a20b7559669e03479b05e9e5c6d1524d4d92a2" + integrity sha512-6STwH/q4dc3pitXLVkV7sP0Hiy+zBsU2wOF1aXpXR95pnH3RYHKIsDC+gvesfyB7jxNT9OOZgcqOp9RPxVTx9A== + dependencies: + lodash.clonedeep "^4.5.0" + pirates "^4.0.1" + source-map-support "^0.5.13" + +"@tokenizer/token@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276" + integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@types/body-parser@*": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/eslint-scope@^3.7.3": + version "3.7.4" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" + integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "8.40.2" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.40.2.tgz#2833bc112d809677864a4b0e7d1de4f04d7dac2d" + integrity sha512-PRVjQ4Eh9z9pmmtaq8nTjZjQwKFk7YIHIud3lRoKRBgUQjgjRmoGxxGEPXQkF+lH7QkHJRNr5F4aBgYCW0lqpQ== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" + integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== + +"@types/express-serve-static-core@^4.17.33": + version "4.17.35" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz#c95dd4424f0d32e525d23812aa8ab8e4d3906c4f" + integrity sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express@^4.17.9": + version "4.17.17" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" + integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/glob@^7.1.3": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/html-minifier-terser@^6.0.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" + integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== + +"@types/http-errors@*": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.1.tgz#20172f9578b225f6c7da63446f56d4ce108d5a65" + integrity sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ== + +"@types/is-hotkey@^0.1.1": + version "0.1.7" + resolved "https://registry.yarnpkg.com/@types/is-hotkey/-/is-hotkey-0.1.7.tgz#30ec6d4234895230b576728ef77e70a52962f3b3" + integrity sha512-yB5C7zcOM7idwYZZ1wKQ3pTfjA9BbvFqRWvKB46GFddxnJtHwi/b9y84ykQtxQPg5qhdpg4Q/kWU3EGoCTmLzQ== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/json-schema@*", "@types/json-schema@^7.0.11", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.12" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" + integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== + +"@types/lodash@^4.14.149", "@types/lodash@^4.14.182": + version "4.14.195" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.195.tgz#bafc975b252eb6cea78882ce8a7b6bf22a6de632" + integrity sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg== + +"@types/mime@*": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== + +"@types/mime@^1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" + integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== + +"@types/minimatch@*": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + +"@types/node@*": + version "20.3.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.2.tgz#fa6a90f2600e052a03c18b8cb3fd83dd4e599898" + integrity sha512-vOBLVQeCQfIcF/2Y7eKFTqrMnizK5lRNQ7ykML/5RuwVXVWxYkgwS7xbt4B6fKCUPgbSL5FSsjHQpaGQP/dQmw== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/prettier@^2.6.1": + version "2.7.3" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" + integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== + +"@types/prop-types@*": + version "15.7.5" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" + integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + +"@types/qs@*": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + +"@types/react-transition-group@^4.4.0": + version "4.4.6" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.6.tgz#18187bcda5281f8e10dfc48f0943e2fdf4f75e2e" + integrity sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew== + dependencies: + "@types/react" "*" + +"@types/react@*": + version "18.2.14" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.14.tgz#fa7a6fecf1ce35ca94e74874f70c56ce88f7a127" + integrity sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/scheduler@*": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" + integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== + +"@types/send@*": + version "0.17.1" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.1.tgz#ed4932b8a2a805f1fe362a70f4e62d0ac994e301" + integrity sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-static@*": + version "1.15.2" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.2.tgz#3e5419ecd1e40e7405d34093f10befb43f63381a" + integrity sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw== + dependencies: + "@types/http-errors" "*" + "@types/mime" "*" + "@types/node" "*" + +"@types/sharp@^0.31.1": + version "0.31.1" + resolved "https://registry.yarnpkg.com/@types/sharp/-/sharp-0.31.1.tgz#db768461455dbcf9ff11d69277fd70564483c4df" + integrity sha512-5nWwamN9ZFHXaYEincMSuza8nNfOof8nmO+mcI+Agx1uMUk4/pQnNIcix+9rLPXzKrm1pS34+6WRDbDV0Jn7ag== + dependencies: + "@types/node" "*" + +"@types/webidl-conversions@*": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz#2b8e60e33906459219aa587e9d1a612ae994cfe7" + integrity sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog== + +"@types/whatwg-url@^8.2.1": + version "8.2.2" + resolved "https://registry.yarnpkg.com/@types/whatwg-url/-/whatwg-url-8.2.2.tgz#749d5b3873e845897ada99be4448041d4cc39e63" + integrity sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA== + dependencies: + "@types/node" "*" + "@types/webidl-conversions" "*" + +"@types/yargs-parser@*": + version "21.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + +"@types/yargs@^17.0.8": + version "17.0.24" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.24.tgz#b3ef8d50ad4aa6aecf6ddc97c580a00f5aa11902" + integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw== + dependencies: + "@types/yargs-parser" "*" + +"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" + integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== + +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== + +"@webassemblyjs/helper-buffer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" + integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== + +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== + +"@webassemblyjs/helper-wasm-section@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" + integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/wasm-edit@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" + integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-opt" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + "@webassemblyjs/wast-printer" "1.11.6" + +"@webassemblyjs/wasm-gen@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" + integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wasm-opt@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" + integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + +"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" + integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wast-printer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" + integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@xtuc/long" "4.2.2" + +"@webpack-cli/configtest@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.2.0.tgz#7b20ce1c12533912c3b217ea68262365fa29a6f5" + integrity sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg== + +"@webpack-cli/info@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.5.0.tgz#6c78c13c5874852d6e2dd17f08a41f3fe4c261b1" + integrity sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ== + dependencies: + envinfo "^7.7.3" + +"@webpack-cli/serve@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1" + integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q== + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abbrev@1, abbrev@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +accepts@~1.3.5, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== + +acorn-walk@^8.0.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.0.4, acorn@^8.7.1, acorn@^8.8.2: + version "8.9.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.9.0.tgz#78a16e3b2bcc198c10822786fa6679e245db5b59" + integrity sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ== + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.0, ajv@^8.6.3, ajv@^8.9.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +amazon-cognito-identity-js@^6.1.2: + version "6.3.1" + resolved "https://registry.yarnpkg.com/amazon-cognito-identity-js/-/amazon-cognito-identity-js-6.3.1.tgz#d9a4c1a92f4b059330df8ea075f65106d2605409" + integrity sha512-PxBdufgS8uZShrcIFAsRjmqNXsh/4fXOWUGQOUhKLHWWK1pcp/y+VeFF48avXIWefM8XwsT3JlN6m9J2eHt4LA== + dependencies: + "@aws-crypto/sha256-js" "1.2.2" + buffer "4.9.2" + fast-base64-decode "^1.0.0" + isomorphic-unfetch "^3.0.0" + js-cookie "^2.2.1" + +ansi-html-community@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +atomic-sleep@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" + integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== + +atomically@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/atomically/-/atomically-1.7.0.tgz#c07a0458432ea6dbc9a3506fffa424b48bccaafe" + integrity sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w== + +autoprefixer@^10.4.13: + version "10.4.14" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d" + integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ== + dependencies: + browserslist "^4.21.5" + caniuse-lite "^1.0.30001464" + fraction.js "^4.2.0" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +axios@1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.4.tgz#f5760cefd9cfb51fd2481acf88c05f67c4523024" + integrity sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ== + dependencies: + follow-redirects "^1.15.0" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +babel-plugin-macros@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" + integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== + dependencies: + "@babel/runtime" "^7.12.5" + cosmiconfig "^7.0.0" + resolve "^1.19.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.0.2, base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + +body-parser@^1.20.1: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +body-scroll-lock@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/body-scroll-lock/-/body-scroll-lock-3.1.5.tgz#c1392d9217ed2c3e237fee1e910f6cdd80b7aaec" + integrity sha512-Yi1Xaml0EvNA0OYWxXiYNqY24AfWkbA6w5vxE7GWxtKfzIbZM+Qw+aSmkgsbWzbHiy/RCSkUZBplVxTA+E4jJg== + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +bowser@^2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" + integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.21.4, browserslist@^4.21.5: + version "4.21.9" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" + integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== + dependencies: + caniuse-lite "^1.0.30001503" + electron-to-chromium "^1.4.431" + node-releases "^2.0.12" + update-browserslist-db "^1.0.11" + +bson-objectid@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/bson-objectid/-/bson-objectid-2.0.4.tgz#339211572ef97dc98f2d68eaee7b99b7be59a089" + integrity sha512-vgnKAUzcDoa+AeyYwXCoHyF2q6u/8H46dxu5JN+4/TZeq/Dlinn0K6GvxsCLb3LHUJl0m/TLiEK31kUwtgocMQ== + +bson@^4.6.5: + version "4.7.2" + resolved "https://registry.yarnpkg.com/bson/-/bson-4.7.2.tgz#320f4ad0eaf5312dd9b45dc369cc48945e2a5f2e" + integrity sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ== + dependencies: + buffer "^5.6.0" + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@4.9.2: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +buffer@5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" + integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +buffer@^5.5.0, buffer@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +busboy@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +call-me-maybe@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" + integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001503: + version "1.0.30001508" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001508.tgz#4461bbc895c692a96da399639cc1e146e7302a33" + integrity sha512-sdQZOJdmt3GJs1UMNpCCCyeuS2IEGLXnHyAo9yIO5JJDjbjoVRij4M1qep6P6gFpptD1PqIYgzM+gwJbOi92mw== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +charenc@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== + +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.2: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +ci-info@^3.2.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" + integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== + +classnames@^2.2.5, classnames@^2.2.6, classnames@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" + integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== + +clean-css@^5.2.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.2.tgz#70ecc7d4d4114921f5d298349ff86a31a9975224" + integrity sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww== + dependencies: + source-map "~0.6.0" + +cli-color@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-2.0.3.tgz#73769ba969080629670f3f2ef69a4bf4e7cc1879" + integrity sha512-OkoZnxyC4ERN3zLzZaY9Emb7f/MhBOIpePv0Ycok0fJYT+Ouo00UBEIwsVsr0yoow++n5YWlSUgST9GKhNHiRQ== + dependencies: + d "^1.0.1" + es5-ext "^0.10.61" + es6-iterator "^2.0.3" + memoizee "^0.4.15" + timers-ext "^0.1.7" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clsx@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" + integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== + dependencies: + color-convert "^2.0.1" + color-string "^1.9.0" + +colord@^2.9.1: + version "2.9.3" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== + +colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.7: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.19.0, commander@^2.20.0, commander@^2.20.3: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^7.0.0, commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +compute-scroll-into-view@^1.0.20: + version "1.0.20" + resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz#1768b5522d1172754f5d0c9b02de3af6be506a43" + integrity sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +condense-newlines@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f" + integrity sha512-P7X+QL9Hb9B/c8HI5BFFKmjgBu2XpQuF98WZ9XkO+dBGgk5XgwiQz7o1SmpglNWId3581UcS0SFAWfoIhMHPfg== + dependencies: + extend-shallow "^2.0.1" + is-whitespace "^0.3.0" + kind-of "^3.0.2" + +conf@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/conf/-/conf-10.2.0.tgz#838e757be963f1a2386dfe048a98f8f69f7b55d6" + integrity sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg== + dependencies: + ajv "^8.6.3" + ajv-formats "^2.1.1" + atomically "^1.7.0" + debounce-fn "^4.0.0" + dot-prop "^6.0.1" + env-paths "^2.2.1" + json-schema-typed "^7.0.3" + onetime "^5.1.2" + pkg-up "^3.1.0" + semver "^7.3.5" + +config-chain@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +convert-source-map@^1.5.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +copyfiles@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.4.1.tgz#d2dcff60aaad1015f09d0b66e7f0f1c5cd3c5da5" + integrity sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg== + dependencies: + glob "^7.0.5" + minimatch "^3.0.3" + mkdirp "^1.0.4" + noms "0.0.0" + through2 "^2.0.1" + untildify "^4.0.0" + yargs "^16.1.0" + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-env@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" + integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== + dependencies: + cross-spawn "^7.0.1" + +cross-spawn@^7.0.1, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypt@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== + +css-blank-pseudo@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz#36523b01c12a25d812df343a32c322d2a2324561" + integrity sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ== + dependencies: + postcss-selector-parser "^6.0.9" + +css-declaration-sorter@^6.3.1: + version "6.4.0" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz#630618adc21724484b3e9505bce812def44000ad" + integrity sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew== + +css-has-pseudo@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz#57f6be91ca242d5c9020ee3e51bbb5b89fc7af73" + integrity sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw== + dependencies: + postcss-selector-parser "^6.0.9" + +css-loader@^5.2.7: + version "5.2.7" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.7.tgz#9b9f111edf6fb2be5dc62525644cbc9c232064ae" + integrity sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg== + dependencies: + icss-utils "^5.1.0" + loader-utils "^2.0.0" + postcss "^8.2.15" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^3.0.0" + semver "^7.3.5" + +css-minimizer-webpack-plugin@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz#33effe662edb1a0bf08ad633c32fa75d0f7ec565" + integrity sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.18" + cssnano "^6.0.1" + jest-worker "^29.4.3" + postcss "^8.4.24" + schema-utils "^4.0.1" + serialize-javascript "^6.0.1" + +css-prefers-color-scheme@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz#ca8a22e5992c10a5b9d315155e7caee625903349" + integrity sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA== + +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-tree@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== + dependencies: + mdn-data "2.0.28" + source-map-js "^1.0.1" + +css-what@^6.0.1, css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +cssdb@^7.1.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.6.0.tgz#beac8f7a5f676db62d3c33da517ef4c9eb008f8b" + integrity sha512-Nna7rph8V0jC6+JBY4Vk4ndErUmfJfV6NJCaZdurL0omggabiy+QB2HCQtu5c/ACLZ0I7REv7A4QyPIoYzZx0w== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssfilter@0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" + integrity sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw== + +cssnano-preset-default@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.0.1.tgz#2a93247140d214ddb9f46bc6a3562fa9177fe301" + integrity sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ== + dependencies: + css-declaration-sorter "^6.3.1" + cssnano-utils "^4.0.0" + postcss-calc "^9.0.0" + postcss-colormin "^6.0.0" + postcss-convert-values "^6.0.0" + postcss-discard-comments "^6.0.0" + postcss-discard-duplicates "^6.0.0" + postcss-discard-empty "^6.0.0" + postcss-discard-overridden "^6.0.0" + postcss-merge-longhand "^6.0.0" + postcss-merge-rules "^6.0.1" + postcss-minify-font-values "^6.0.0" + postcss-minify-gradients "^6.0.0" + postcss-minify-params "^6.0.0" + postcss-minify-selectors "^6.0.0" + postcss-normalize-charset "^6.0.0" + postcss-normalize-display-values "^6.0.0" + postcss-normalize-positions "^6.0.0" + postcss-normalize-repeat-style "^6.0.0" + postcss-normalize-string "^6.0.0" + postcss-normalize-timing-functions "^6.0.0" + postcss-normalize-unicode "^6.0.0" + postcss-normalize-url "^6.0.0" + postcss-normalize-whitespace "^6.0.0" + postcss-ordered-values "^6.0.0" + postcss-reduce-initial "^6.0.0" + postcss-reduce-transforms "^6.0.0" + postcss-svgo "^6.0.0" + postcss-unique-selectors "^6.0.0" + +cssnano-utils@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-4.0.0.tgz#d1da885ec04003ab19505ff0e62e029708d36b08" + integrity sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw== + +cssnano@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.0.1.tgz#87c38c4cd47049c735ab756d7e77ac3ca855c008" + integrity sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg== + dependencies: + cssnano-preset-default "^6.0.1" + lilconfig "^2.1.0" + +csso@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== + dependencies: + css-tree "~2.2.0" + +csstype@^3.0.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +dataloader@^2.1.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.2.2.tgz#216dc509b5abe39d43a9b9d97e6e5e473dfbe3e0" + integrity sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g== + +date-fns@^2.24.0, date-fns@^2.29.3: + version "2.30.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" + integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== + dependencies: + "@babel/runtime" "^7.21.0" + +dateformat@^4.6.3: + version "4.6.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" + integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== + +debounce-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-4.0.0.tgz#ed76d206d8a50e60de0dd66d494d82835ffe61c7" + integrity sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ== + dependencies: + mimic-fn "^3.0.0" + +debug@2, debug@2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@4.x: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@^3.2.6, debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-equal@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.1.tgz#c72ab22f3a7d3503a4ca87dde976fe9978816739" + integrity sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + es-get-iterator "^1.1.3" + get-intrinsic "^1.2.0" + is-arguments "^1.1.1" + is-array-buffer "^3.0.2" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.0" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deepmerge@^4.0.0, deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" + integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +denque@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" + integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-libc@^2.0.0, detect-libc@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +diff@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + +direction@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/direction/-/direction-1.0.4.tgz#2b86fb686967e987088caf8b89059370d4837442" + integrity sha512-GYqKi1aH7PJXxdhTeZBFrg8vUBeKXi+cNprXsC1kpJcbcVnV9wBsrOu1cQEdG0WeQwlfHiy3XvnKfIrJ2R0NzQ== + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-helpers@^5.0.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + +dom-serializer@^1.0.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^2.5.2, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +domutils@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" + integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dot-prop@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" + integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== + dependencies: + is-obj "^2.0.0" + +dotenv@^8.2.0, dotenv@^8.6.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" + integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== + +duplexer@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +editorconfig@^0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" + integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== + dependencies: + commander "^2.19.0" + lru-cache "^4.1.5" + semver "^5.6.0" + sigmund "^1.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +electron-to-chromium@^1.4.431: + version "1.4.442" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.442.tgz#455f4c5bd6ae73afb634dcffee6f356c26c8e294" + integrity sha512-RkrZF//Ya+0aJq2NM3OdisNh5ZodZq1rdXOS96G8DdDgpDKqKE81yTbbQ3F/4CKm1JBPsGu1Lp/akkna2xO06Q== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^5.15.0: + version "5.15.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" + integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entities@^4.2.0, entities@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +env-paths@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +envinfo@^7.7.3: + version "7.10.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.10.0.tgz#55146e3909cc5fe63c22da63fb15b05aeac35b13" + integrity sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-get-iterator@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + +es-module-lexer@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.0.tgz#6be9c9e0b4543a60cd166ff6f8b4e9dae0b0c16f" + integrity sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA== + +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@^0.10.61, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: + version "0.10.62" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" + integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + next-tick "^1.1.0" + +es6-iterator@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +es6-weak-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-scope@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +events@3.3.0, events@^3.2.0, events@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + +express-fileupload@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/express-fileupload/-/express-fileupload-1.4.0.tgz#be9d70a881d6c2b1ce668df86e4f89ddbf238ec7" + integrity sha512-RjzLCHxkv3umDeZKeFeMg8w7qe0V09w3B7oGZprr/oO2H/ISCgNzuqzn7gV3HRWb37GjRk429CCpSLS2KNTqMQ== + dependencies: + busboy "^1.6.0" + +express-rate-limit@^5.5.1: + version "5.5.1" + resolved "https://registry.yarnpkg.com/express-rate-limit/-/express-rate-limit-5.5.1.tgz#110c23f6a65dfa96ab468eda95e71697bc6987a2" + integrity sha512-MTjE2eIbHv5DyfuFz4zLYWxpqVhEhkTiwFGuB74Q9CSou2WHO52nlE5y3Zlg6SIsiYUIPj6ifFxnkPz6O3sIUg== + +express@^4.17.1, express@^4.18.2: + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.1" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.5.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.1.2: + version "1.7.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== + dependencies: + type "^2.7.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + dependencies: + is-extendable "^0.1.0" + +fast-base64-decode@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz#b434a0dd7d92b12b43f26819300d2dafb83ee418" + integrity sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q== + +fast-copy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fast-copy/-/fast-copy-3.0.1.tgz#9e89ef498b8c04c1cd76b33b8e14271658a732aa" + integrity sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-redact@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.2.0.tgz#b1e2d39bc731376d28bde844454fa23e26919987" + integrity sha512-zaTadChr+NekyzallAMXATXLOR8MNx3zqpZ0MUF2aGf4EathnG0f32VLODNlY8IuGY3HoRO2L6/6fSzNsLaHIw== + +fast-safe-stringify@^2.0.8, fast-safe-stringify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + +fast-xml-parser@4.2.5: + version "4.2.5" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz#a6747a09296a6cb34f2ae634019bf1738f3b421f" + integrity sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g== + dependencies: + strnum "^1.0.5" + +fastest-levenshtein@^1.0.12: + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + +file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +file-type@16.5.4: + version "16.5.4" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.5.4.tgz#474fb4f704bee427681f98dd390058a172a6c2fd" + integrity sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw== + dependencies: + readable-web-to-node-stream "^3.0.0" + strtok3 "^6.2.4" + token-types "^4.1.1" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-root@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +find-up@4.1.0, find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +flatley@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/flatley/-/flatley-5.2.0.tgz#3a645837c669be8d978335e37ae3afffcfbdedb7" + integrity sha512-vsb0/03uIHu7/3jRqABweblFUJMLokz1uMrcgFlvx6OAr6V3FiSic2iXeiJCj+cciTiQeumSDsIFAAnN1yvu4w== + dependencies: + is-buffer "^1.1.6" + +flatstr@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/flatstr/-/flatstr-1.0.12.tgz#c2ba6a08173edbb6c9640e3055b95e287ceb5931" + integrity sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw== + +focus-trap@^6.9.2: + version "6.9.4" + resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-6.9.4.tgz#436da1a1d935c48b97da63cd8f361c6f3aa16444" + integrity sha512-v2NTsZe2FF59Y+sDykKY+XjqZ0cPfhq/hikWVL88BqLivnNiEffAsac6rP6H45ff9wG9LL5ToiDqrLEP9GX9mw== + dependencies: + tabbable "^5.3.3" + +follow-redirects@^1.15.0: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fraction.js@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" + integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-monkey@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.4.tgz#ee8c1b53d3fe8bb7e5d2c5c5dfc0168afdd2f747" + integrity sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-proto "^1.0.1" + has-symbols "^1.0.3" + +get-stdin@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" + integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== + +get-tsconfig@^4.4.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.6.2.tgz#831879a5e6c2aa24fe79b60340e2233a1e0f472e" + integrity sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg== + dependencies: + resolve-pkg-maps "^1.0.0" + +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-promise@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/glob-promise/-/glob-promise-4.2.2.tgz#15f44bcba0e14219cd93af36da6bb905ff007877" + integrity sha512-xcUzJ8NWN5bktoTIX7eOclO1Npxd/dyVqUJxlLIDasT4C7KZyqlPIwkdJ0Ypiy3p2ZKahTjK4M9uC3sNSfNMzw== + dependencies: + "@types/glob" "^7.1.3" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^7.0.5, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^8.0.0, glob@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphql-http@^1.17.1: + version "1.19.0" + resolved "https://registry.yarnpkg.com/graphql-http/-/graphql-http-1.19.0.tgz#6f0fff0dbd9a8e797c99b5ac0ca160566e7927da" + integrity sha512-fOD3hfp/G+Lhx2FWW5HsfmtJSsw6CikcpOboG7/mFo/pPUzn3yOwKdTFRnJ8MVY4ru69MT1nSPr/1gI/iuGNlw== + +graphql-playground-html@^1.6.30: + version "1.6.30" + resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.6.30.tgz#14c2a8eb7fc17bfeb1a746bbb28a11e34bf0b391" + integrity sha512-tpCujhsJMva4aqE8ULnF7/l3xw4sNRZcSHu+R00VV+W0mfp+Q20Plvcrp+5UXD+2yS6oyCXncA+zoQJQqhGCEw== + dependencies: + xss "^1.0.6" + +graphql-playground-middleware-express@^1.7.23: + version "1.7.23" + resolved "https://registry.yarnpkg.com/graphql-playground-middleware-express/-/graphql-playground-middleware-express-1.7.23.tgz#95aba44d801ff3c08b2246917d2901d2e7c35d3d" + integrity sha512-M/zbTyC1rkgiQjFSgmzAv6umMHOphYLNWZp6Ye5QrD77WfGOOoSqDsVmGUczc2pDkEPEzzGB/bvBO5rdzaTRgw== + dependencies: + graphql-playground-html "^1.6.30" + +graphql-query-complexity@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/graphql-query-complexity/-/graphql-query-complexity-0.12.0.tgz#5f636ccc54da82225f31e898e7f27192fe074b4c" + integrity sha512-fWEyuSL6g/+nSiIRgIipfI6UXTI7bAxrpPlCY1c0+V3pAEUo1ybaKmSBgNr1ed2r+agm1plJww8Loig9y6s2dw== + dependencies: + lodash.get "^4.4.2" + +graphql-scalars@^1.20.1: + version "1.22.2" + resolved "https://registry.yarnpkg.com/graphql-scalars/-/graphql-scalars-1.22.2.tgz#6326e6fe2d0ad4228a9fea72a977e2bf26b86362" + integrity sha512-my9FB4GtghqXqi/lWSVAOPiTzTnnEzdOXCsAC2bb5V7EFNQjVjwy3cSSbUvgYOtDuDibd+ZsCDhz+4eykYOlhQ== + dependencies: + tslib "^2.5.0" + +graphql-type-json@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/graphql-type-json/-/graphql-type-json-0.3.2.tgz#f53a851dbfe07bd1c8157d24150064baab41e115" + integrity sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg== + +graphql@^16.6.0: + version "16.7.1" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.7.1.tgz#11475b74a7bff2aefd4691df52a0eca0abd9b642" + integrity sha512-DRYR9tf+UGU0KOsMcKAlXeFfX89UiiIZ0dRU3mR0yJfu6OjZqUcp68NnFLnqQU5RexygFoDy1EW+ccOYcPfmHg== + +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== + dependencies: + duplexer "^0.1.2" + +has-bigints@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +help-me@^4.0.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/help-me/-/help-me-4.2.0.tgz#50712bfd799ff1854ae1d312c36eafcea85b0563" + integrity sha512-TAOnTB8Tz5Dw8penUuzHVrKNKlCIbwwbHnXraNJxPwf8LRtE2HlM84RYuezMFcwOJmoYOCWVDyJ8TQGxn9PgxA== + dependencies: + glob "^8.0.0" + readable-stream "^3.6.0" + +history@^4.9.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^3.0.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^1.0.1" + +hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +html-entities@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.4.0.tgz#edd0cee70402584c8c76cc2c0556db09d1f45061" + integrity sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ== + +html-minifier-terser@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" + integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== + dependencies: + camel-case "^4.1.2" + clean-css "^5.2.2" + commander "^8.3.0" + he "^1.2.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.10.0" + +html-parse-stringify@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz#dfc1017347ce9f77c8141a507f233040c59c55d2" + integrity sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg== + dependencies: + void-elements "3.1.0" + +html-to-text@9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/html-to-text/-/html-to-text-9.0.3.tgz#331368f32fcb270c59dbd3a7fdb32813d2a490bc" + integrity sha512-hxDF1kVCF2uw4VUJ3vr2doc91pXf2D5ngKcNviSitNkhP9OMOaJkDrFIFL6RMvko7NisWTEiqGpQ9LAxcVok1w== + dependencies: + "@selderee/plugin-htmlparser2" "^0.10.0" + deepmerge "^4.2.2" + dom-serializer "^2.0.0" + htmlparser2 "^8.0.1" + selderee "^0.10.0" + +html-webpack-plugin@^5.5.0: + version "5.5.3" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz#72270f4a78e222b5825b296e5e3e1328ad525a3e" + integrity sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg== + dependencies: + "@types/html-minifier-terser" "^6.0.0" + html-minifier-terser "^6.0.2" + lodash "^4.17.21" + pretty-error "^4.0.0" + tapable "^2.0.0" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +htmlparser2@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" + integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + entities "^4.4.0" + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-status@^1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/http-status/-/http-status-1.6.2.tgz#6dc05188a9856d67d96e48e8b4fd645c719ce82a" + integrity sha512-oUExvfNckrpTpDazph7kNG8sQi5au3BeTo0idaZFXEhTaJKu7GNJCLHI0rYY2wljm548MSTM+Ljj/c6anqu2zQ== + +i18next-browser-languagedetector@^6.1.8: + version "6.1.8" + resolved "https://registry.yarnpkg.com/i18next-browser-languagedetector/-/i18next-browser-languagedetector-6.1.8.tgz#8e9c61b32a4dfe9b959b38bc9d2a8b95f799b27c" + integrity sha512-Svm+MduCElO0Meqpj1kJAriTC6OhI41VhlT/A0UPjGoPZBhAHIaGE5EfsHlTpgdH09UVX7rcc72pSDDBeKSQQA== + dependencies: + "@babel/runtime" "^7.19.0" + +i18next-http-middleware@^3.2.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/i18next-http-middleware/-/i18next-http-middleware-3.3.2.tgz#6a24fee6bde44952a5af24364d43fa32f6c1b9b6" + integrity sha512-PSeLXQXr9Qiv9Q3GCWCoIJenKVbxCcVsXb7VMp/mOprV4gu+AMJT7VHw4+QEf6oYW6GU31QSLnfDpLNoSMtx3g== + +i18next@^22.4.9: + version "22.5.1" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-22.5.1.tgz#99df0b318741a506000c243429a7352e5f44d424" + integrity sha512-8TGPgM3pAD+VRsMtUMNknRz3kzqwp/gPALrWMsDnmC1mKqJwpWyooQRLMcbTwq8z8YwSmuj+ZYvc+xCuEpkssA== + dependencies: + "@babel/runtime" "^7.20.6" + +iconv-lite@0.4.24, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore-by-default@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== + +immer@^9.0.6: + version "9.0.21" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" + integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== + +immutable@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be" + integrity sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg== + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@^1.3.4, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +internal-slot@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== + dependencies: + get-intrinsic "^1.2.0" + has "^1.0.3" + side-channel "^1.0.4" + +interpret@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" + integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== + +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@^1.1.5, is-buffer@^1.1.6, is-buffer@~1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.3: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.11.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-extendable@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hotkey@^0.1.6: + version "0.1.8" + resolved "https://registry.yarnpkg.com/is-hotkey/-/is-hotkey-0.1.8.tgz#6b1f4b2d0e5639934e20c05ed24d623a21d36d25" + integrity sha512-qs3NZ1INIS+H+yeo7cD9pDfwYV/jqRh1JG9S9zYrNudkoUQg7OL7ziXqRKu+InFjUIDoP2o6HIkLYMh1pcWgyQ== + +is-hotkey@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/is-hotkey/-/is-hotkey-0.2.0.tgz#1835a68171a91e5c9460869d96336947c8340cef" + integrity sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw== + +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-promise@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.10: + version "1.1.10" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +is-whitespace@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" + integrity sha512-RydPhl4S6JwAyj0JJjshWJEFG6hNye3pZFBRZaTUfZFwGHxzppNaNOVgQuS/E/SlhrApuMXrpnK1EEIXfdo3Dg== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +isomorphic-fetch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz#0267b005049046d2421207215d45d6a262b8b8b4" + integrity sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA== + dependencies: + node-fetch "^2.6.1" + whatwg-fetch "^3.4.1" + +isomorphic-unfetch@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz#87341d5f4f7b63843d468438128cb087b7c3e98f" + integrity sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q== + dependencies: + node-fetch "^2.6.1" + unfetch "^4.2.0" + +jest-util@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" + integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ== + dependencies: + "@jest/types" "^29.5.0" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest-worker@^29.4.3: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d" + integrity sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA== + dependencies: + "@types/node" "*" + jest-util "^29.5.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +joi@^17.7.0: + version "17.9.2" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.9.2.tgz#8b2e4724188369f55451aebd1d0b1d9482470690" + integrity sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw== + dependencies: + "@hapi/hoek" "^9.0.0" + "@hapi/topo" "^5.0.0" + "@sideway/address" "^4.1.3" + "@sideway/formula" "^3.0.1" + "@sideway/pinpoint" "^2.0.0" + +joycon@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" + integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== + +js-beautify@^1.6.12: + version "1.14.8" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.14.8.tgz#e0c570c15b5445b006de6d9a3e70fb62f9e408e9" + integrity sha512-4S7HFeI9YfRvRgKnEweohs0tgJj28InHVIj4Nl8Htf96Y6pHg3+tJrmo4ucAM9f7l4SHbFI3IvFAZ2a1eQPbyg== + dependencies: + config-chain "^1.1.13" + editorconfig "^0.15.3" + glob "^8.1.0" + nopt "^6.0.0" + +js-cookie@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" + integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-to-typescript@11.0.3: + version "11.0.3" + resolved "https://registry.yarnpkg.com/json-schema-to-typescript/-/json-schema-to-typescript-11.0.3.tgz#9b401c2b78329959f1c4c4e0639a6bdcf6a6ed77" + integrity sha512-EaEE9Y4VZ8b9jW5zce5a9L3+p4C9AqgIRHbNVDJahfMnoKzcd4sDb98BLxLdQhJEuRAXyKLg4H66NKm80W8ilg== + dependencies: + "@bcherny/json-schema-ref-parser" "9.0.9" + "@types/json-schema" "^7.0.11" + "@types/lodash" "^4.14.182" + "@types/prettier" "^2.6.1" + cli-color "^2.0.2" + get-stdin "^8.0.0" + glob "^7.1.6" + glob-promise "^4.2.2" + is-glob "^4.0.3" + lodash "^4.17.21" + minimist "^1.2.6" + mkdirp "^1.0.4" + mz "^2.7.0" + prettier "^2.6.2" + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema-typed@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz#23ff481b8b4eebcd2ca123b4fa0409e66469a2d9" + integrity sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A== + +json5@^2.1.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonwebtoken@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz#d0faf9ba1cc3a56255fe49c0961a67e520c1926d" + integrity sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw== + dependencies: + jws "^3.2.2" + lodash "^4.17.21" + ms "^2.1.1" + semver "^7.3.8" + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +jwt-decode@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-3.1.2.tgz#3fb319f3675a2df0c2895c8f5e9fa4b67b04ed59" + integrity sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A== + +kareem@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.4.1.tgz#7d81ec518204a48c1cb16554af126806c3cd82b0" + integrity sha512-aJ9opVoXroQUPfovYP5kaj2lM7Jn02Gw13bL0lg9v0V7SaUc0qavPs0Eue7d2DcC3NjqI6QAUElXNsuZSeM+EA== + +kind-of@^3.0.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== + dependencies: + is-buffer "^1.1.5" + +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +klona@^2.0.4, klona@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" + integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== + +leac@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/leac/-/leac-0.6.0.tgz#dcf136e382e666bd2475f44a1096061b70dc0912" + integrity sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg== + +lilconfig@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +loader-utils@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lru-cache@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lru-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" + integrity sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ== + dependencies: + es5-ext "~0.10.2" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +md5@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" + integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== + dependencies: + charenc "0.0.2" + crypt "0.0.2" + is-buffer "~1.1.6" + +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memfs@^3.4.12: + version "3.6.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" + integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== + dependencies: + fs-monkey "^1.0.4" + +memoize-one@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-6.0.0.tgz#b2591b871ed82948aee4727dc6abceeeac8c1045" + integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw== + +memoizee@^0.4.15: + version "0.4.15" + resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72" + integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ== + dependencies: + d "^1.0.1" + es5-ext "^0.10.53" + es6-weak-map "^2.0.3" + event-emitter "^0.3.5" + is-promise "^2.2.2" + lru-queue "^0.1.0" + next-tick "^1.1.0" + timers-ext "^0.1.7" + +memory-pager@^1.0.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5" + integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +method-override@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/method-override/-/method-override-3.0.0.tgz#6ab0d5d574e3208f15b0c9cf45ab52000468d7a2" + integrity sha512-IJ2NNN/mSl9w3kzWB92rcdHpz+HjkxhDJWNDBqSlas+zQdP8wBiJzITPg08M/k2uVvMow7Sk41atndNtt/PHSA== + dependencies: + debug "3.1.0" + methods "~1.1.2" + parseurl "~1.3.2" + vary "~1.1.2" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micro-memoize@^4.0.14: + version "4.1.2" + resolved "https://registry.yarnpkg.com/micro-memoize/-/micro-memoize-4.1.2.tgz#ce719c1ba1e41592f1cd91c64c5f41dcbf135f36" + integrity sha512-+HzcV2H+rbSJzApgkj0NdTakkC+bnyeiUxgT6/m7mjcz1CmM22KYFKp+EVj1sWe4UYcnriJr5uqHQD/gMHLD+g== + +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-fn@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" + integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +mini-css-extract-plugin@1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.2.tgz#83172b4fd812f8fc4a09d6f6d16f924f53990ca8" + integrity sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + webpack-sources "^1.1.0" + +minimatch@^3.0.3, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6, minimist@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +monaco-editor@^0.38.0: + version "0.38.0" + resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.38.0.tgz#7b3cd16f89b1b8867fcd3c96e67fccee791ff05c" + integrity sha512-11Fkh6yzEmwx7O0YoLxeae0qEGFwmyPRlVxpg7oF9czOOCB/iCjdJrG5I67da5WiXK3YJCxoz9TJFE8Tfq/v9A== + +mongodb-connection-string-url@^2.5.2: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz#57901bf352372abdde812c81be47b75c6b2ec5cf" + integrity sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ== + dependencies: + "@types/whatwg-url" "^8.2.1" + whatwg-url "^11.0.0" + +mongodb@4.8.1: + version "4.8.1" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-4.8.1.tgz#596de88ff4519128266d9254dbe5b781c4005796" + integrity sha512-/NyiM3Ox9AwP5zrfT9TXjRKDJbXlLaUDQ9Rg//2lbg8D2A8GXV0VidYYnA/gfdK6uwbnL4FnAflH7FbGw3TS7w== + dependencies: + bson "^4.6.5" + denque "^2.0.1" + mongodb-connection-string-url "^2.5.2" + socks "^2.6.2" + optionalDependencies: + saslprep "^1.0.3" + +mongoose-aggregate-paginate-v2@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/mongoose-aggregate-paginate-v2/-/mongoose-aggregate-paginate-v2-1.0.6.tgz#fd2f2564d1bbf52f49a196f0b7b03675913dacca" + integrity sha512-UuALu+mjhQa1K9lMQvjLL3vm3iALvNw8PQNIh2gp1b+tO5hUa0NC0Wf6/8QrT9PSJVTihXaD8hQVy3J4e0jO0Q== + +mongoose-paginate-v2@^1.6.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/mongoose-paginate-v2/-/mongoose-paginate-v2-1.7.1.tgz#0b390f5eb8e5dca55ffcb1fd7b4d8078636cb8f1" + integrity sha512-J8DJw3zRXcXOKoZv+RvO9tt5HotRnbo2iCR3lke+TtsQsYwQvbY3EgUkPqZXw6qCX2IByvXrW5SGNdAB0od/Cw== + +mongoose@6.5.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-6.5.0.tgz#5c71aa8d4027e50bfe8d29d6e955e378e010d174" + integrity sha512-swOX8ZEbmCeJaEs29B1j67StBIhuOccNNkipbVhsnLYYCDpNE7heM9W54MFGwN5es9tGGoxINHSzOhJ9kTOZGg== + dependencies: + bson "^4.6.5" + kareem "2.4.1" + mongodb "4.8.1" + mpath "0.9.0" + mquery "4.0.3" + ms "2.1.3" + sift "16.0.0" + +mpath@0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.9.0.tgz#0c122fe107846e31fc58c75b09c35514b3871904" + integrity sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew== + +mquery@4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/mquery/-/mquery-4.0.3.tgz#4d15f938e6247d773a942c912d9748bd1965f89d" + integrity sha512-J5heI+P08I6VJ2Ky3+33IpCdAvlYGTSUjwTPxkAr8i8EoduPMBX2OY/wa3IKZIQl7MU4SbFk8ndgSKyB/cl1zA== + dependencies: + debug "4.x" + +mrmime@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" + integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nanoid@^3.3.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== + +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + +needle@^2.5.2: + version "2.9.1" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.9.1.tgz#22d1dffbe3490c2b83e301f7709b6736cd8f2684" + integrity sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +next-tick@1, next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-abi@^3.3.0: + version "3.45.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.45.0.tgz#f568f163a3bfca5aacfce1fbeee1fa2cc98441f5" + integrity sha512-iwXuFrMAcFVi/ZoZiqq8BzAdsLw9kxDfTC0HMyjXfSL/6CSDAGD5UmR7azrAgWV1zKYq7dUUMj4owusBWKLsiQ== + dependencies: + semver "^7.3.5" + +node-addon-api@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" + integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== + +node-fetch@^2.6.1: + version "2.6.11" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25" + integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w== + dependencies: + whatwg-url "^5.0.0" + +node-releases@^2.0.12: + version "2.0.12" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" + integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== + +nodemailer@^6.9.0: + version "6.9.3" + resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.9.3.tgz#e4425b85f05d83c43c5cd81bf84ab968f8ef5cbe" + integrity sha512-fy9v3NgTzBngrMFkDsKEj0r02U7jm6XfC3b52eoNV+GCrGj+s8pt5OqhiJdWKuw51zCTdiNR/IUD1z33LIIGpg== + +nodemon@^2.0.6: + version "2.0.22" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.22.tgz#182c45c3a78da486f673d6c1702e00728daf5258" + integrity sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ== + dependencies: + chokidar "^3.5.2" + debug "^3.2.7" + ignore-by-default "^1.0.1" + minimatch "^3.1.2" + pstree.remy "^1.1.8" + semver "^5.7.1" + simple-update-notifier "^1.0.7" + supports-color "^5.5.0" + touch "^3.1.0" + undefsafe "^2.0.5" + +noms@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/noms/-/noms-0.0.0.tgz#da8ebd9f3af9d6760919b27d9cdc8092a7332859" + integrity sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow== + dependencies: + inherits "^2.0.1" + readable-stream "~1.0.31" + +nopt@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" + integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== + dependencies: + abbrev "^1.0.0" + +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg== + dependencies: + abbrev "1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +object-assign@^4.0.1, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + +object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-to-formdata@^4.4.2: + version "4.5.1" + resolved "https://registry.yarnpkg.com/object-to-formdata/-/object-to-formdata-4.5.1.tgz#b6955a9c505b58df15852fee5f844b418b3eb6fe" + integrity sha512-QiM9D0NiU5jV6J6tjE1g7b4Z2tcUnKs1OPUi4iMb2zH+7jwlcUrASghgkFk9GtzqNNq8rTQJtT8AzjBAvLoNMw== + +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +on-exit-leak-free@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz#5c703c968f7e7f851885f6459bf8a8a57edc9cc4" + integrity sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +opener@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parseley@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/parseley/-/parseley-0.11.0.tgz#1ff817c829a02fcc214c9cc0d96b126d772ee814" + integrity sha512-VfcwXlBWgTF+unPcr7yu3HSSA6QUdDaDnrHcytVfj5Z8azAyKBDrYnSIfeSxlrEayndNcLmrXzg+Vxbo6DWRXQ== + dependencies: + leac "^0.6.0" + peberminta "^0.8.0" + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +passport-anonymous@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/passport-anonymous/-/passport-anonymous-1.0.1.tgz#241e37274ec44dfb7f6cad234b41c438386bc117" + integrity sha512-Mk2dls97nLTzHpsWCYQ54IVGucWaiWSHHr3+IhWYAebg4dRgRQIfyoeYrixoxB2z2z4+EM7p9yjC+a3yMB5z5A== + dependencies: + passport-strategy "1.x.x" + +passport-headerapikey@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/passport-headerapikey/-/passport-headerapikey-1.2.2.tgz#b71960523999c9864151b8535c919e3ff5ba75ce" + integrity sha512-4BvVJRrWsNJPrd3UoZfcnnl4zvUWYKEtfYkoDsaOKBsrWHYmzTApCjs7qUbncOLexE9ul0IRiYBFfBG0y9IVQA== + dependencies: + lodash "^4.17.15" + passport-strategy "^1.0.0" + +passport-jwt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/passport-jwt/-/passport-jwt-4.0.1.tgz#c443795eff322c38d173faa0a3c481479646ec3d" + integrity sha512-UCKMDYhNuGOBE9/9Ycuoyh7vP6jpeTp/+sfMJl7nLff/t6dps+iaeE0hhNkKN8/HZHcJ7lCdOyDxHdDoxoSvdQ== + dependencies: + jsonwebtoken "^9.0.0" + passport-strategy "^1.0.0" + +passport-local@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/passport-local/-/passport-local-1.0.0.tgz#1fe63268c92e75606626437e3b906662c15ba6ee" + integrity sha512-9wCE6qKznvf9mQYYbgJ3sVOHmCWoUNMVFoZzNoznmISbhnNNPhN9xfY3sLmScHMetEJeoY7CXwfhCe7argfQow== + dependencies: + passport-strategy "1.x.x" + +passport-strategy@1.x.x, passport-strategy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4" + integrity sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA== + +passport@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/passport/-/passport-0.6.0.tgz#e869579fab465b5c0b291e841e6cc95c005fac9d" + integrity sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug== + dependencies: + passport-strategy "1.x.x" + pause "0.0.1" + utils-merge "^1.0.1" + +path-browserify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pause@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" + integrity sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg== + +payload@^1.7.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/payload/-/payload-1.10.2.tgz#13f9fbc9d98b59a81d6b225ac21ad3da34066fbe" + integrity sha512-7Ie8WlcfDDKRVSAK4NGnMtEt8lNuCboYSHbERJMLYbtYNOyHXCmHiRgW3dWZeF+vTtpd8gRPyjwDWr+4hQQayQ== + dependencies: + "@date-io/date-fns" "^2.16.0" + "@dnd-kit/core" "^6.0.7" + "@dnd-kit/sortable" "^7.0.2" + "@faceless-ui/modal" "^2.0.1" + "@faceless-ui/scroll-info" "^1.3.0" + "@faceless-ui/window-info" "^2.1.1" + "@monaco-editor/react" "^4.5.1" + "@swc/core" "^1.3.26" + "@swc/register" "^0.1.10" + "@types/sharp" "^0.31.1" + body-parser "^1.20.1" + bson-objectid "^2.0.4" + compression "^1.7.4" + conf "^10.2.0" + connect-history-api-fallback "^1.6.0" + css-loader "^5.2.7" + css-minimizer-webpack-plugin "^5.0.0" + dataloader "^2.1.0" + date-fns "^2.29.3" + deep-equal "^2.2.0" + deepmerge "^4.2.2" + dotenv "^8.6.0" + express "^4.18.2" + express-fileupload "1.4.0" + express-rate-limit "^5.5.1" + file-loader "^6.2.0" + file-type "16.5.4" + find-up "4.1.0" + flatley "^5.2.0" + fs-extra "^10.1.0" + get-tsconfig "^4.4.0" + graphql "^16.6.0" + graphql-http "^1.17.1" + graphql-playground-middleware-express "^1.7.23" + graphql-query-complexity "^0.12.0" + graphql-scalars "^1.20.1" + graphql-type-json "^0.3.2" + html-webpack-plugin "^5.5.0" + http-status "^1.6.2" + i18next "^22.4.9" + i18next-browser-languagedetector "^6.1.8" + i18next-http-middleware "^3.2.2" + is-hotkey "^0.2.0" + is-plain-object "^5.0.0" + isomorphic-fetch "^3.0.0" + joi "^17.7.0" + json-schema-to-typescript "11.0.3" + jsonwebtoken "^9.0.0" + jwt-decode "^3.1.2" + md5 "^2.3.0" + method-override "^3.0.0" + micro-memoize "^4.0.14" + mini-css-extract-plugin "1.6.2" + minimist "^1.2.7" + mkdirp "^1.0.4" + monaco-editor "^0.38.0" + mongoose "6.5.0" + mongoose-aggregate-paginate-v2 "^1.0.6" + mongoose-paginate-v2 "^1.6.1" + nodemailer "^6.9.0" + object-to-formdata "^4.4.2" + passport "^0.6.0" + passport-anonymous "^1.0.1" + passport-headerapikey "^1.2.2" + passport-jwt "^4.0.1" + passport-local "^1.0.0" + path-browserify "^1.0.1" + pino "^6.4.1" + pino-pretty "^9.1.1" + pluralize "^8.0.0" + postcss "^8.4.21" + postcss-loader "^6.2.1" + postcss-preset-env "^7.8.3" + probe-image-size "^6.0.0" + process "^0.11.10" + qs "^6.11.0" + qs-middleware "^1.0.3" + react "^18.2.0" + react-animate-height "^2.1.2" + react-datepicker "^4.10.0" + react-diff-viewer-continued "^3.2.6" + react-dom "^18.2.0" + react-helmet "^6.1.0" + react-i18next "^11.18.6" + react-router-dom "^5.3.4" + react-router-navigation-prompt "^1.9.6" + react-select "^5.7.3" + react-toastify "^8.2.0" + sanitize-filename "^1.6.3" + sass "^1.57.1" + sass-loader "^12.6.0" + scheduler "^0.23.0" + scmp "^2.1.0" + sharp "^0.31.3" + slate "^0.91.4" + slate-history "^0.86.0" + slate-hyperscript "^0.81.3" + slate-react "^0.92.0" + style-loader "^2.0.0" + swc-loader "^0.2.3" + swc-minify-webpack-plugin "^2.1.0" + terser-webpack-plugin "^5.3.6" + ts-essentials "^7.0.3" + url-loader "^4.1.1" + use-context-selector "^1.4.1" + uuid "^8.3.2" + webpack "^5.78.0" + webpack-bundle-analyzer "^4.8.0" + webpack-cli "^4.10.0" + webpack-dev-middleware "6.0.1" + webpack-hot-middleware "^2.25.3" + +peberminta@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/peberminta/-/peberminta-0.8.0.tgz#acf7b105f3d13c8ac28cad81f2f5fe4698507590" + integrity sha512-YYEs+eauIjDH5nUEGi18EohWE0nV2QbGTqmxQcqgZ/0g+laPCQmuIqq7EBLVi9uim9zMgfJv0QBZEnQ3uHw/Tw== + +peek-readable@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-4.1.0.tgz#4ece1111bf5c2ad8867c314c81356847e8a62e72" + integrity sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pino-abstract-transport@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz#cc0d6955fffcadb91b7b49ef220a6cc111d48bb3" + integrity sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA== + dependencies: + readable-stream "^4.0.0" + split2 "^4.0.0" + +pino-pretty@^9.1.1: + version "9.4.0" + resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-9.4.0.tgz#fc4026e83c87272cbdfb7afed121770e6000940c" + integrity sha512-NIudkNLxnl7MGj1XkvsqVyRgo6meFP82ECXF2PlOI+9ghmbGuBUUqKJ7IZPIxpJw4vhhSva0IuiDSAuGh6TV9g== + dependencies: + colorette "^2.0.7" + dateformat "^4.6.3" + fast-copy "^3.0.0" + fast-safe-stringify "^2.1.1" + help-me "^4.0.1" + joycon "^3.1.1" + minimist "^1.2.6" + on-exit-leak-free "^2.1.0" + pino-abstract-transport "^1.0.0" + pump "^3.0.0" + readable-stream "^4.0.0" + secure-json-parse "^2.4.0" + sonic-boom "^3.0.0" + strip-json-comments "^3.1.1" + +pino-std-serializers@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz#b56487c402d882eb96cd67c257868016b61ad671" + integrity sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg== + +pino@^6.4.1: + version "6.14.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-6.14.0.tgz#b745ea87a99a6c4c9b374e4f29ca7910d4c69f78" + integrity sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg== + dependencies: + fast-redact "^3.0.0" + fast-safe-stringify "^2.0.8" + flatstr "^1.0.12" + pino-std-serializers "^3.1.0" + process-warning "^1.0.0" + quick-format-unescaped "^4.0.3" + sonic-boom "^1.0.2" + +pirates@^4.0.1: + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-up@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + +postcss-attribute-case-insensitive@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz#03d761b24afc04c09e757e92ff53716ae8ea2741" + integrity sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-calc@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-9.0.1.tgz#a744fd592438a93d6de0f1434c572670361eb6c6" + integrity sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ== + dependencies: + postcss-selector-parser "^6.0.11" + postcss-value-parser "^4.2.0" + +postcss-clamp@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz#7263e95abadd8c2ba1bd911b0b5a5c9c93e02363" + integrity sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-functional-notation@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz#21a909e8d7454d3612d1659e471ce4696f28caec" + integrity sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-hex-alpha@^8.0.4: + version "8.0.4" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz#c66e2980f2fbc1a63f5b079663340ce8b55f25a5" + integrity sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-rebeccapurple@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz#63fdab91d878ebc4dd4b7c02619a0c3d6a56ced0" + integrity sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-colormin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-6.0.0.tgz#d4250652e952e1c0aca70c66942da93d3cdeaafe" + integrity sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + colord "^2.9.1" + postcss-value-parser "^4.2.0" + +postcss-convert-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-6.0.0.tgz#ec94a954957e5c3f78f0e8f65dfcda95280b8996" + integrity sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw== + dependencies: + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" + +postcss-custom-media@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz#c8f9637edf45fef761b014c024cee013f80529ea" + integrity sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-custom-properties@^12.1.10: + version "12.1.11" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz#d14bb9b3989ac4d40aaa0e110b43be67ac7845cf" + integrity sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-custom-selectors@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz#1ab4684d65f30fed175520f82d223db0337239d9" + integrity sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-dir-pseudo-class@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz#2bf31de5de76added44e0a25ecf60ae9f7c7c26c" + integrity sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-discard-comments@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-6.0.0.tgz#9ca335e8b68919f301b24ba47dde226a42e535fe" + integrity sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw== + +postcss-discard-duplicates@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.0.tgz#c26177a6c33070922e67e9a92c0fd23d443d1355" + integrity sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA== + +postcss-discard-empty@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-6.0.0.tgz#06c1c4fce09e22d2a99e667c8550eb8a3a1b9aee" + integrity sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ== + +postcss-discard-overridden@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-6.0.0.tgz#49c5262db14e975e349692d9024442de7cd8e234" + integrity sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw== + +postcss-double-position-gradients@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz#b96318fdb477be95997e86edd29c6e3557a49b91" + integrity sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +postcss-env-function@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-4.0.6.tgz#7b2d24c812f540ed6eda4c81f6090416722a8e7a" + integrity sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-focus-visible@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz#50c9ea9afa0ee657fb75635fabad25e18d76bf9e" + integrity sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw== + dependencies: + postcss-selector-parser "^6.0.9" + +postcss-focus-within@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz#5b1d2ec603195f3344b716c0b75f61e44e8d2e20" + integrity sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ== + dependencies: + postcss-selector-parser "^6.0.9" + +postcss-font-variant@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz#efd59b4b7ea8bb06127f2d031bfbb7f24d32fa66" + integrity sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA== + +postcss-gap-properties@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz#f7e3cddcf73ee19e94ccf7cb77773f9560aa2fff" + integrity sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg== + +postcss-image-set-function@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz#08353bd756f1cbfb3b6e93182c7829879114481f" + integrity sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-initial@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-4.0.1.tgz#529f735f72c5724a0fb30527df6fb7ac54d7de42" + integrity sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ== + +postcss-lab-function@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz#6fe4c015102ff7cd27d1bd5385582f67ebdbdc98" + integrity sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +postcss-loader@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-6.2.1.tgz#0895f7346b1702103d30fdc66e4d494a93c008ef" + integrity sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q== + dependencies: + cosmiconfig "^7.0.0" + klona "^2.0.5" + semver "^7.3.5" + +postcss-logical@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-5.0.4.tgz#ec75b1ee54421acc04d5921576b7d8db6b0e6f73" + integrity sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g== + +postcss-media-minmax@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz#7140bddec173e2d6d657edbd8554a55794e2a5b5" + integrity sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ== + +postcss-merge-longhand@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.0.tgz#6f627b27db939bce316eaa97e22400267e798d69" + integrity sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg== + dependencies: + postcss-value-parser "^4.2.0" + stylehacks "^6.0.0" + +postcss-merge-rules@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-6.0.1.tgz#39f165746404e646c0f5c510222ccde4824a86aa" + integrity sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + cssnano-utils "^4.0.0" + postcss-selector-parser "^6.0.5" + +postcss-minify-font-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-6.0.0.tgz#68d4a028f9fa5f61701974724b2cc9445d8e6070" + integrity sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-minify-gradients@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-6.0.0.tgz#22b5c88cc63091dadbad34e31ff958404d51d679" + integrity sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA== + dependencies: + colord "^2.9.1" + cssnano-utils "^4.0.0" + postcss-value-parser "^4.2.0" + +postcss-minify-params@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-6.0.0.tgz#2b3a85a9e3b990d7a16866f430f5fd1d5961b539" + integrity sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ== + dependencies: + browserslist "^4.21.4" + cssnano-utils "^4.0.0" + postcss-value-parser "^4.2.0" + +postcss-minify-selectors@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.0.tgz#5046c5e8680a586e5a0cad52cc9aa36d6be5bda2" + integrity sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== + +postcss-modules-local-by-default@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz#b08eb4f083050708998ba2c6061b50c2870ca524" + integrity sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-nesting@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.2.0.tgz#0b12ce0db8edfd2d8ae0aaf86427370b898890be" + integrity sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA== + dependencies: + "@csstools/selector-specificity" "^2.0.0" + postcss-selector-parser "^6.0.10" + +postcss-normalize-charset@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-6.0.0.tgz#36cc12457259064969fb96f84df491652a4b0975" + integrity sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ== + +postcss-normalize-display-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.0.tgz#8d2961415078644d8c6bbbdaf9a2fdd60f546cd4" + integrity sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-positions@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-6.0.0.tgz#25b96df99a69f8925f730eaee0be74416865e301" + integrity sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-repeat-style@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.0.tgz#ddf30ad8762feb5b1eb97f39f251acd7b8353299" + integrity sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-string@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-6.0.0.tgz#948282647a51e409d69dde7910f0ac2ff97cb5d8" + integrity sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-timing-functions@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.0.tgz#5f13e650b8c43351989fc5de694525cc2539841c" + integrity sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-unicode@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.0.tgz#741b3310f874616bdcf07764f5503695d3604730" + integrity sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg== + dependencies: + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" + +postcss-normalize-url@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-6.0.0.tgz#d0a31e962a16401fb7deb7754b397a323fb650b4" + integrity sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-whitespace@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.0.tgz#accb961caa42e25ca4179b60855b79b1f7129d4d" + integrity sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-opacity-percentage@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz#5b89b35551a556e20c5d23eb5260fbfcf5245da6" + integrity sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A== + +postcss-ordered-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-6.0.0.tgz#374704cdff25560d44061d17ba3c6308837a3218" + integrity sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg== + dependencies: + cssnano-utils "^4.0.0" + postcss-value-parser "^4.2.0" + +postcss-overflow-shorthand@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz#7ed6486fec44b76f0eab15aa4866cda5d55d893e" + integrity sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-page-break@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz#7fbf741c233621622b68d435babfb70dd8c1ee5f" + integrity sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ== + +postcss-place@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-7.0.5.tgz#95dbf85fd9656a3a6e60e832b5809914236986c4" + integrity sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-preset-env@^7.8.3: + version "7.8.3" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz#2a50f5e612c3149cc7af75634e202a5b2ad4f1e2" + integrity sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag== + dependencies: + "@csstools/postcss-cascade-layers" "^1.1.1" + "@csstools/postcss-color-function" "^1.1.1" + "@csstools/postcss-font-format-keywords" "^1.0.1" + "@csstools/postcss-hwb-function" "^1.0.2" + "@csstools/postcss-ic-unit" "^1.0.1" + "@csstools/postcss-is-pseudo-class" "^2.0.7" + "@csstools/postcss-nested-calc" "^1.0.0" + "@csstools/postcss-normalize-display-values" "^1.0.1" + "@csstools/postcss-oklab-function" "^1.1.1" + "@csstools/postcss-progressive-custom-properties" "^1.3.0" + "@csstools/postcss-stepped-value-functions" "^1.0.1" + "@csstools/postcss-text-decoration-shorthand" "^1.0.0" + "@csstools/postcss-trigonometric-functions" "^1.0.2" + "@csstools/postcss-unset-value" "^1.0.2" + autoprefixer "^10.4.13" + browserslist "^4.21.4" + css-blank-pseudo "^3.0.3" + css-has-pseudo "^3.0.4" + css-prefers-color-scheme "^6.0.3" + cssdb "^7.1.0" + postcss-attribute-case-insensitive "^5.0.2" + postcss-clamp "^4.1.0" + postcss-color-functional-notation "^4.2.4" + postcss-color-hex-alpha "^8.0.4" + postcss-color-rebeccapurple "^7.1.1" + postcss-custom-media "^8.0.2" + postcss-custom-properties "^12.1.10" + postcss-custom-selectors "^6.0.3" + postcss-dir-pseudo-class "^6.0.5" + postcss-double-position-gradients "^3.1.2" + postcss-env-function "^4.0.6" + postcss-focus-visible "^6.0.4" + postcss-focus-within "^5.0.4" + postcss-font-variant "^5.0.0" + postcss-gap-properties "^3.0.5" + postcss-image-set-function "^4.0.7" + postcss-initial "^4.0.1" + postcss-lab-function "^4.2.1" + postcss-logical "^5.0.4" + postcss-media-minmax "^5.0.0" + postcss-nesting "^10.2.0" + postcss-opacity-percentage "^1.1.2" + postcss-overflow-shorthand "^3.0.4" + postcss-page-break "^3.0.4" + postcss-place "^7.0.5" + postcss-pseudo-class-any-link "^7.1.6" + postcss-replace-overflow-wrap "^4.0.0" + postcss-selector-not "^6.0.1" + postcss-value-parser "^4.2.0" + +postcss-pseudo-class-any-link@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz#2693b221902da772c278def85a4d9a64b6e617ab" + integrity sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-reduce-initial@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-6.0.0.tgz#7d16e83e60e27e2fa42f56ec0b426f1da332eca7" + integrity sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.0.tgz#28ff2601a6d9b96a2f039b3501526e1f4d584a46" + integrity sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-replace-overflow-wrap@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz#d2df6bed10b477bf9c52fab28c568b4b29ca4319" + integrity sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw== + +postcss-selector-not@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz#8f0a709bf7d4b45222793fc34409be407537556d" + integrity sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: + version "6.0.13" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" + integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-6.0.0.tgz#7b18742d38d4505a0455bbe70d52b49f00eaf69d" + integrity sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw== + dependencies: + postcss-value-parser "^4.2.0" + svgo "^3.0.2" + +postcss-unique-selectors@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.0.tgz#c94e9b0f7bffb1203894e42294b5a1b3fb34fbe1" + integrity sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@^8.2.15, postcss@^8.4.21, postcss@^8.4.24: + version "8.4.24" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.24.tgz#f714dba9b2284be3cc07dbd2fc57ee4dc972d2df" + integrity sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +prebuild-install@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45" + integrity sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw== + dependencies: + detect-libc "^2.0.0" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^3.3.0" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^4.0.0" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + +prettier@^2.6.2: + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + +pretty-error@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" + integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== + dependencies: + lodash "^4.17.20" + renderkid "^3.0.0" + +pretty@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pretty/-/pretty-2.0.0.tgz#adbc7960b7bbfe289a557dc5f737619a220d06a5" + integrity sha512-G9xUchgTEiNpormdYBl+Pha50gOUovT18IvAe7EYMZ1/f9W/WWMPRn+xI68yXNMUk3QXHDwo/1wV/4NejVNe1w== + dependencies: + condense-newlines "^0.2.1" + extend-shallow "^2.0.1" + js-beautify "^1.6.12" + +probe-image-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/probe-image-size/-/probe-image-size-6.0.0.tgz#4a85b19d5af4e29a8de7d53a9aa036f6fd02f5f4" + integrity sha512-99PZ5+RU4gqiTfK5ZDMDkZtn6eL4WlKfFyVJV7lFQvH3iGmQ85DqMTOdxorERO26LHkevR2qsxnHp0x/2UDJPA== + dependencies: + deepmerge "^4.0.0" + needle "^2.5.2" + stream-parser "~0.3.1" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process-warning@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" + integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + +pstree.remy@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" + integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^2.1.0, punycode@^2.1.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + +qs-middleware@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/qs-middleware/-/qs-middleware-1.0.3.tgz#84f3535275ba20fd00c2122efacce6ab01092c19" + integrity sha512-ymlixxD/0Bj3BMY9x1z8ENdQdhkmsIbDNyVvfM8soHn5p/CRFlLPrmtxmE5aG//q1PzHHSGuLi+6QlHezivseg== + dependencies: + qs "~6.4.0" + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +qs@^6.11.0, qs@^6.9.1: + version "6.11.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" + integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== + dependencies: + side-channel "^1.0.4" + +qs@~6.4.0: + version "6.4.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.1.tgz#2bad97710a5b661c366b378b1e3a44a592ff45e6" + integrity sha512-LQy1Q1fcva/UsnP/6Iaa4lVeM49WiOitu2T4hZCyA/elLKu37L99qcBJk4VCCk+rdLvnMzfKyiN3SZTqdAZGSQ== + +quick-format-unescaped@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" + integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-animate-height@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/react-animate-height/-/react-animate-height-2.1.2.tgz#9b450fc64d46f10f5e07da8d0d5e2c47b9f15030" + integrity sha512-A9jfz/4CTdsIsE7WCQtO9UkOpMBcBRh8LxyHl2eoZz1ki02jpyUL5xt58gabd0CyeLQ8fRyQ+s2lyV2Ufu8Owg== + dependencies: + classnames "^2.2.5" + prop-types "^15.6.1" + +react-datepicker@^4.10.0: + version "4.14.1" + resolved "https://registry.yarnpkg.com/react-datepicker/-/react-datepicker-4.14.1.tgz#f9f7925d0a40e3195048bbd22a5faa635765163d" + integrity sha512-uiPfjD+25KI5WOfCAXlzQgSLyksTagk3wwKn1KGBdF19YtybFDregRmcoNNGveQHAbT10SJZdCvk/8pbc7zxJg== + dependencies: + "@popperjs/core" "^2.9.2" + classnames "^2.2.6" + date-fns "^2.24.0" + prop-types "^15.7.2" + react-onclickoutside "^6.12.2" + react-popper "^2.3.0" + +react-diff-viewer-continued@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/react-diff-viewer-continued/-/react-diff-viewer-continued-3.2.6.tgz#96382463b5de6838d95323c407442349b1c3a26e" + integrity sha512-GrzyqQnjIMoej+jMjWvtVSsQqhXgzEGqpXlJ2dAGfOk7Q26qcm8Gu6xtI430PBUyZsERe8BJSQf+7VZZo8IBNQ== + dependencies: + "@emotion/css" "^11.10.5" + classnames "^2.3.1" + diff "^5.1.0" + memoize-one "^6.0.0" + prop-types "^15.8.1" + +react-dom@18.2.0, react-dom@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.0" + +react-fast-compare@^3.0.1, react-fast-compare@^3.1.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz#929a97a532304ce9fee4bcae44234f1ce2c21d49" + integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ== + +react-helmet@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/react-helmet/-/react-helmet-6.1.0.tgz#a750d5165cb13cf213e44747502652e794468726" + integrity sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw== + dependencies: + object-assign "^4.1.1" + prop-types "^15.7.2" + react-fast-compare "^3.1.1" + react-side-effect "^2.1.0" + +react-i18next@^11.18.6: + version "11.18.6" + resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-11.18.6.tgz#e159c2960c718c1314f1e8fcaa282d1c8b167887" + integrity sha512-yHb2F9BiT0lqoQDt8loZ5gWP331GwctHz9tYQ8A2EIEUu+CcEdjBLQWli1USG3RdWQt3W+jqQLg/d4rrQR96LA== + dependencies: + "@babel/runtime" "^7.14.5" + html-parse-stringify "^3.0.1" + +react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-onclickoutside@^6.12.2: + version "6.13.0" + resolved "https://registry.yarnpkg.com/react-onclickoutside/-/react-onclickoutside-6.13.0.tgz#e165ea4e5157f3da94f4376a3ab3e22a565f4ffc" + integrity sha512-ty8So6tcUpIb+ZE+1HAhbLROvAIJYyJe/1vRrrcmW+jLsaM+/powDRqxzo6hSh9CuRZGSL1Q8mvcF5WRD93a0A== + +react-popper@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-2.3.0.tgz#17891c620e1320dce318bad9fede46a5f71c70ba" + integrity sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q== + dependencies: + react-fast-compare "^3.0.1" + warning "^4.0.2" + +react-router-dom@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.4.tgz#2ed62ffd88cae6db134445f4a0c0ae8b91d2e5e6" + integrity sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + loose-envify "^1.3.1" + prop-types "^15.6.2" + react-router "5.3.4" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router-navigation-prompt@^1.9.6: + version "1.9.6" + resolved "https://registry.yarnpkg.com/react-router-navigation-prompt/-/react-router-navigation-prompt-1.9.6.tgz#a949252dfbae8c40508671beb6d5995f0b089ac4" + integrity sha512-l0sAtbroHK8i1/Eyy29XcrMpBEt0R08BaScgMUt8r5vWWbLz7G0ChOikayTCQm7QgDFsHw8gVnxDJb7TBZCAKg== + +react-router@5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.3.4.tgz#8ca252d70fcc37841e31473c7a151cf777887bb5" + integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" + loose-envify "^1.3.1" + path-to-regexp "^1.7.0" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-select@^5.7.3: + version "5.7.3" + resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.7.3.tgz#fa0dc9a23cad6ff3871ad3829f6083a4b54961a2" + integrity sha512-z8i3NCuFFWL3w27xq92rBkVI2onT0jzIIPe480HlBjXJ3b5o6Q+Clp4ydyeKrj9DZZ3lrjawwLC5NGl0FSvUDg== + dependencies: + "@babel/runtime" "^7.12.0" + "@emotion/cache" "^11.4.0" + "@emotion/react" "^11.8.1" + "@floating-ui/dom" "^1.0.1" + "@types/react-transition-group" "^4.4.0" + memoize-one "^6.0.0" + prop-types "^15.6.0" + react-transition-group "^4.3.0" + use-isomorphic-layout-effect "^1.1.2" + +react-side-effect@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-2.1.2.tgz#dc6345b9e8f9906dc2eeb68700b615e0b4fe752a" + integrity sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw== + +react-toastify@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/react-toastify/-/react-toastify-8.2.0.tgz#ef7d56bdfdc6272ca6b228368ab564721c3a3244" + integrity sha512-Pg2Ju7NngAamarFvLwqrFomJ57u/Ay6i6zfLurt/qPynWkAkOthu6vxfqYpJCyNhHRhR4hu7+bySSeWWJu6PAg== + dependencies: + clsx "^1.1.1" + +react-transition-group@^4.3.0, react-transition-group@^4.4.2: + version "4.4.5" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" + integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + +react@18.2.0, react@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== + dependencies: + loose-envify "^1.1.0" + +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@^4.0.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.4.0.tgz#55ce132d60a988c460d75c631e9ccf6a7229b468" + integrity sha512-kDMOq0qLtxV9f/SQv522h8cxZBqNZXuXNyjyezmfAAuribMyVXziljpQ/uQhfE1XLg2/TLTW2DsnoE4VAi/krg== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + +readable-stream@~1.0.31: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@~2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-web-to-node-stream@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz#5d52bb5df7b54861fd48d015e93a2cb87b3ee0bb" + integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw== + dependencies: + readable-stream "^3.6.0" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +rechoir@^0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" + integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== + dependencies: + resolve "^1.9.0" + +regenerator-runtime@^0.13.11: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + +regexp.prototype.flags@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" + integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + functions-have-names "^1.2.3" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== + +renderkid@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" + integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^6.0.1" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +resend@^0.12.0: + version "0.12.2" + resolved "https://registry.yarnpkg.com/resend/-/resend-0.12.2.tgz#32f61299aabdeae00d21c347f0ee856e8e839e16" + integrity sha512-T4+n1DgsmyQ+S2omb5xIyhoG0ppGEqq5itRsBrssrUTLI6xiEg0IuZJ3RbnPjnU3HR2jrVaOOvQIDuZXTm1bCg== + dependencies: + "@react-email/render" "0.0.6" + axios "1.3.4" + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + +resolve-pkg-maps@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== + +resolve@^1.19.0, resolve@^1.9.0: + version "1.22.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== + dependencies: + is-core-module "^2.11.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sanitize-filename@^1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" + integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== + dependencies: + truncate-utf8-bytes "^1.0.0" + +saslprep@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226" + integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag== + dependencies: + sparse-bitfield "^3.0.3" + +sass-loader@^12.6.0: + version "12.6.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-12.6.0.tgz#5148362c8e2cdd4b950f3c63ac5d16dbfed37bcb" + integrity sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA== + dependencies: + klona "^2.0.4" + neo-async "^2.6.2" + +sass@^1.57.1: + version "1.63.6" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.63.6.tgz#481610e612902e0c31c46b46cf2dad66943283ea" + integrity sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + +sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== + dependencies: + loose-envify "^1.1.0" + +schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0, schema-utils@^4.0.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" + integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + +scmp@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/scmp/-/scmp-2.1.0.tgz#37b8e197c425bdeb570ab91cc356b311a11f9c9a" + integrity sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q== + +scroll-into-view-if-needed@^2.2.20: + version "2.2.31" + resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz#d3c482959dc483e37962d1521254e3295d0d1587" + integrity sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA== + dependencies: + compute-scroll-into-view "^1.0.20" + +secure-json-parse@^2.4.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.7.0.tgz#5a5f9cd6ae47df23dba3151edd06855d47e09862" + integrity sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw== + +selderee@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/selderee/-/selderee-0.10.0.tgz#ec83d6044d9026668dc9bd2561acfde99a4e3a1c" + integrity sha512-DEL/RW/f4qLw/NrVg97xKaEBC8IpzIG2fvxnzCp3Z4yk4jQ3MXom+Imav9wApjxX2dfS3eW7x0DXafJr85i39A== + dependencies: + parseley "^0.11.0" + +semver@^5.6.0, semver@^5.7.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^7.3.5, semver@^7.3.8: + version "7.5.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e" + integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ== + dependencies: + lru-cache "^6.0.0" + +semver@~7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-javascript@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" + integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== + dependencies: + randombytes "^2.1.0" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +sharp@^0.31.3: + version "0.31.3" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.31.3.tgz#60227edc5c2be90e7378a210466c99aefcf32688" + integrity sha512-XcR4+FCLBFKw1bdB+GEhnUNXNXvnt0tDo4WsBsraKymuo/IAuPuCBVAL2wIkUw2r/dwFW5Q5+g66Kwl2dgDFVg== + dependencies: + color "^4.2.3" + detect-libc "^2.0.1" + node-addon-api "^5.0.0" + prebuild-install "^7.1.1" + semver "^7.3.8" + simple-get "^4.0.1" + tar-fs "^2.1.1" + tunnel-agent "^0.6.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +sift@16.0.0: + version "16.0.0" + resolved "https://registry.yarnpkg.com/sift/-/sift-16.0.0.tgz#447991577db61f1a8fab727a8a98a6db57a23eb8" + integrity sha512-ILTjdP2Mv9V1kIxWMXeMTIRbOBrqKc4JAXmFMnFq3fKeyQ2Qwa3Dw1ubcye3vR+Y6ofA0b9gNDr/y2t6eUeIzQ== + +sigmund@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + integrity sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g== + +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^4.0.0, simple-get@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +simple-update-notifier@^1.0.7: + version "1.1.0" + resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz#67694c121de354af592b347cdba798463ed49c82" + integrity sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg== + dependencies: + semver "~7.0.0" + +sirv@^1.0.7: + version "1.0.19" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.19.tgz#1d73979b38c7fe91fcba49c85280daa9c2363b49" + integrity sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ== + dependencies: + "@polka/url" "^1.0.0-next.20" + mrmime "^1.0.0" + totalist "^1.0.0" + +slate-history@^0.86.0: + version "0.86.0" + resolved "https://registry.yarnpkg.com/slate-history/-/slate-history-0.86.0.tgz#5554612271d2fc1018a7918be3961bb66e620c58" + integrity sha512-OxObL9tbhgwvSlnKSCpGIh7wnuaqvOj5jRExGjEyCU2Ke8ctf22HjT+jw7GEi9ttLzNTUmTEU3YIzqKGeqN+og== + dependencies: + is-plain-object "^5.0.0" + +slate-hyperscript@^0.81.3: + version "0.81.3" + resolved "https://registry.yarnpkg.com/slate-hyperscript/-/slate-hyperscript-0.81.3.tgz#0c8f446d6bef717d2fe855239fb86a000ba2d0d2" + integrity sha512-A/jvoLTAgeRcJaUPQCYOikCJxSws6+/jkL7mM+QuZljNd7EA5YqafGA7sVBJRFpcoSsDRUIah1yNiC/7vxZPYg== + dependencies: + is-plain-object "^5.0.0" + +slate-react@^0.92.0: + version "0.92.0" + resolved "https://registry.yarnpkg.com/slate-react/-/slate-react-0.92.0.tgz#eb158ac2a33d962f48c466c4c8cc7bc14c1c6633" + integrity sha512-xEDKu5RKw5f0N95l1UeNQnrB0Pxh4JPjpIZR/BVsMo0ININnLAknR99gLo46bl/Ffql4mr7LeaxQRoXxbFtJOQ== + dependencies: + "@juggle/resize-observer" "^3.4.0" + "@types/is-hotkey" "^0.1.1" + "@types/lodash" "^4.14.149" + direction "^1.0.3" + is-hotkey "^0.1.6" + is-plain-object "^5.0.0" + lodash "^4.17.4" + scroll-into-view-if-needed "^2.2.20" + tiny-invariant "1.0.6" + +slate@^0.91.4: + version "0.91.4" + resolved "https://registry.yarnpkg.com/slate/-/slate-0.91.4.tgz#759764d63c8a8a7aff29a29e598e593ed80277f9" + integrity sha512-aUJ3rpjrdi5SbJ5G1Qjr3arytfRkEStTmHjBfWq2A2Q8MybacIzkScSvGJjQkdTk3djCK9C9SEOt39sSeZFwTw== + dependencies: + immer "^9.0.6" + is-plain-object "^5.0.0" + tiny-warning "^1.0.3" + +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +socks@^2.6.2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== + dependencies: + ip "^2.0.0" + smart-buffer "^4.2.0" + +sonic-boom@^1.0.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-1.4.1.tgz#d35d6a74076624f12e6f917ade7b9d75e918f53e" + integrity sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg== + dependencies: + atomic-sleep "^1.0.0" + flatstr "^1.0.12" + +sonic-boom@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.3.0.tgz#cffab6dafee3b2bcb88d08d589394198bee1838c" + integrity sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g== + dependencies: + atomic-sleep "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-support@^0.5.13, source-map-support@^0.5.17, source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.6.0, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sparse-bitfield@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" + integrity sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ== + dependencies: + memory-pager "^1.0.2" + +split2@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + +state-local@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/state-local/-/state-local-1.0.7.tgz#da50211d07f05748d53009bee46307a37db386d5" + integrity sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + +stream-browserify@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" + integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== + dependencies: + inherits "~2.0.4" + readable-stream "^3.5.0" + +stream-parser@~0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/stream-parser/-/stream-parser-0.3.1.tgz#1618548694420021a1182ff0af1911c129761773" + integrity sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ== + dependencies: + debug "2" + +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +strnum@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" + integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== + +strtok3@^6.2.4: + version "6.3.0" + resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-6.3.0.tgz#358b80ffe6d5d5620e19a073aa78ce947a90f9a0" + integrity sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw== + dependencies: + "@tokenizer/token" "^0.3.0" + peek-readable "^4.1.0" + +style-loader@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-2.0.0.tgz#9669602fd4690740eaaec137799a03addbbc393c" + integrity sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +stylehacks@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.0.0.tgz#9fdd7c217660dae0f62e14d51c89f6c01b3cb738" + integrity sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw== + dependencies: + browserslist "^4.21.4" + postcss-selector-parser "^6.0.4" + +stylis@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51" + integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== + +supports-color@^5.3.0, supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svgo@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.0.2.tgz#5e99eeea42c68ee0dc46aa16da093838c262fe0a" + integrity sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^5.1.0" + css-tree "^2.2.1" + csso "^5.0.5" + picocolors "^1.0.0" + +swc-loader@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/swc-loader/-/swc-loader-0.2.3.tgz#6792f1c2e4c9ae9bf9b933b3e010210e270c186d" + integrity sha512-D1p6XXURfSPleZZA/Lipb3A8pZ17fP4NObZvFCDjK/OKljroqDpPmsBdTraWhVBqUNpcWBQY1imWdoPScRlQ7A== + +swc-minify-webpack-plugin@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/swc-minify-webpack-plugin/-/swc-minify-webpack-plugin-2.1.1.tgz#2c63fe592d49541733d7557b3af8f97c7ffa78b9" + integrity sha512-/9ud/libNWUC5p71vXWhW/O2Nc0essW8D9pY4P4ol0ceM8OcFbNr41R9YFqTkmktqUL2t0WwXau+FkR4T1+PJA== + +tabbable@^5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-5.3.3.tgz#aac0ff88c73b22d6c3c5a50b1586310006b47fbf" + integrity sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA== + +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +tar-fs@^2.0.0, tar-fs@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +terser-webpack-plugin@^5.3.6, terser-webpack-plugin@^5.3.7: + version "5.3.9" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" + integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.17" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.1" + terser "^5.16.8" + +terser@^5.10.0, terser@^5.16.8: + version "5.18.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.18.2.tgz#ff3072a0faf21ffd38f99acc9a0ddf7b5f07b948" + integrity sha512-Ah19JS86ypbJzTzvUCX7KOsEIhDaRONungA4aYBjEP3JZRf4ocuDzTg4QWZnPn9DEMiMYGJPiSOy7aykoCc70w== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +through2@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +timers-ext@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" + integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== + dependencies: + es5-ext "~0.10.46" + next-tick "1" + +tiny-invariant@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.6.tgz#b3f9b38835e36a41c843a3b0907a5a7b3755de73" + integrity sha512-FOyLWWVjG+aC0UqG76V53yAWdXfH8bO6FNmyZOuUrzDzK8DI3/JRY25UD7+g49JWM1LXwymsKERB+DzI0dTEQA== + +tiny-invariant@^1.0.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" + integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw== + +tiny-warning@^1.0.0, tiny-warning@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +token-types@^4.1.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/token-types/-/token-types-4.2.1.tgz#0f897f03665846982806e138977dbe72d44df753" + integrity sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ== + dependencies: + "@tokenizer/token" "^0.3.0" + ieee754 "^1.2.1" + +totalist@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" + integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== + +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" + integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== + dependencies: + nopt "~1.0.10" + +tr46@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" + integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== + dependencies: + punycode "^2.1.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +truncate-utf8-bytes@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" + integrity sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ== + dependencies: + utf8-byte-length "^1.0.1" + +ts-essentials@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-7.0.3.tgz#686fd155a02133eedcc5362dc8b5056cde3e5a38" + integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== + +ts-node@^9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" + integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== + dependencies: + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.17" + yn "3.1.1" + +tslib@^1.11.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.3.1, tslib@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" + integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== + +typescript@^4.8.4: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +undefsafe@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" + integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== + +unfetch@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.2.0.tgz#7e21b0ef7d363d8d9af0fb929a5555f6ef97a3be" + integrity sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +untildify@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== + +update-browserslist-db@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" + integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-loader@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" + integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== + dependencies: + loader-utils "^2.0.0" + mime-types "^2.1.27" + schema-utils "^3.0.0" + +use-context-selector@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/use-context-selector/-/use-context-selector-1.4.1.tgz#eb96279965846b72915d7f899b8e6ef1d768b0ae" + integrity sha512-Io2ArvcRO+6MWIhkdfMFt+WKQX+Vb++W8DS2l03z/Vw/rz3BclKpM0ynr4LYGyU85Eke+Yx5oIhTY++QR0ZDoA== + +use-isomorphic-layout-effect@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" + integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== + +utf8-byte-length@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" + integrity sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + +utils-merge@1.0.1, utils-merge@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +void-elements@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" + integrity sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w== + +warning@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + +watchpack@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" + integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== + +webpack-bundle-analyzer@^4.8.0: + version "4.9.0" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.9.0.tgz#fc093c4ab174fd3dcbd1c30b763f56d10141209d" + integrity sha512-+bXGmO1LyiNx0i9enBu3H8mv42sj/BJWhZNFwjz92tVnBa9J3JMGo2an2IXlEleoDOPn/Hofl5hr/xCpObUDtw== + dependencies: + "@discoveryjs/json-ext" "0.5.7" + acorn "^8.0.4" + acorn-walk "^8.0.0" + chalk "^4.1.0" + commander "^7.2.0" + gzip-size "^6.0.0" + lodash "^4.17.20" + opener "^1.5.2" + sirv "^1.0.7" + ws "^7.3.1" + +webpack-cli@^4.10.0: + version "4.10.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.10.0.tgz#37c1d69c8d85214c5a65e589378f53aec64dab31" + integrity sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w== + dependencies: + "@discoveryjs/json-ext" "^0.5.0" + "@webpack-cli/configtest" "^1.2.0" + "@webpack-cli/info" "^1.5.0" + "@webpack-cli/serve" "^1.7.0" + colorette "^2.0.14" + commander "^7.0.0" + cross-spawn "^7.0.3" + fastest-levenshtein "^1.0.12" + import-local "^3.0.2" + interpret "^2.2.0" + rechoir "^0.7.0" + webpack-merge "^5.7.3" + +webpack-dev-middleware@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-6.0.1.tgz#fd585127ed44dab3f253daf0d98f4d58a5088cc2" + integrity sha512-PZPZ6jFinmqVPJZbisfggDiC+2EeGZ1ZByyMP5sOFJcPPWSexalISz+cvm+j+oYPT7FIJyxT76esjnw9DhE5sw== + dependencies: + colorette "^2.0.10" + memfs "^3.4.12" + mime-types "^2.1.31" + range-parser "^1.2.1" + schema-utils "^4.0.0" + +webpack-hot-middleware@^2.25.3: + version "2.25.4" + resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.25.4.tgz#d8bc9e9cb664fc3105c8e83d2b9ed436bee4e193" + integrity sha512-IRmTspuHM06aZh98OhBJtqLpeWFM8FXJS5UYpKYxCJzyFoyWj1w6VGFfomZU7OPA55dMLrQK0pRT1eQ3PACr4w== + dependencies: + ansi-html-community "0.0.8" + html-entities "^2.1.0" + strip-ansi "^6.0.0" + +webpack-merge@^5.7.3: + version "5.9.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.9.0.tgz#dc160a1c4cf512ceca515cc231669e9ddb133826" + integrity sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg== + dependencies: + clone-deep "^4.0.1" + wildcard "^2.0.0" + +webpack-sources@^1.1.0: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack@^5.78.0: + version "5.88.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.88.0.tgz#a07aa2f8e7a64a8f1cec0c6c2e180e3cb34440c8" + integrity sha512-O3jDhG5e44qIBSi/P6KpcCcH7HD+nYIHVBhdWFxcLOcIGN8zGo5nqF3BjyNCxIh4p1vFdNnreZv2h2KkoAw3lw== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^1.0.0" + "@webassemblyjs/ast" "^1.11.5" + "@webassemblyjs/wasm-edit" "^1.11.5" + "@webassemblyjs/wasm-parser" "^1.11.5" + acorn "^8.7.1" + acorn-import-assertions "^1.9.0" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.15.0" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.9" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.2.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.7" + watchpack "^2.4.0" + webpack-sources "^3.2.3" + +whatwg-fetch@^3.4.1: + version "3.6.2" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" + integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== + +whatwg-url@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" + integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== + dependencies: + tr46 "^3.0.0" + webidl-conversions "^7.0.0" + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wildcard@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@^7.3.1: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +xss@^1.0.6: + version "1.0.14" + resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.14.tgz#4f3efbde75ad0d82e9921cc3c95e6590dd336694" + integrity sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw== + dependencies: + commander "^2.20.3" + cssfilter "0.0.10" + +xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs@^16.1.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== From 49f117e220318701004b686a28b4b9c8ab9b8516 Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Wed, 28 Jun 2023 12:48:08 -0400 Subject: [PATCH 61/78] chore: adds website template (#2928) --- templates/website/.editorconfig | 10 + templates/website/.env.example | 5 + templates/website/.eslintrc.js | 5 + templates/website/.gitignore | 6 + templates/website/.prettierignore | 1 + templates/website/.prettierrc.js | 8 + templates/website/Dockerfile | 26 + templates/website/README.md | 152 + templates/website/docker-compose.yml | 32 + templates/website/nodemon.json | 4 + templates/website/package.json | 51 + templates/website/src/access/admins.ts | 10 + .../website/src/access/adminsOrPublished.ts | 15 + templates/website/src/access/anyone.ts | 3 + templates/website/src/blocks/Archive/index.ts | 100 + .../website/src/blocks/CallToAction/index.ts | 23 + templates/website/src/blocks/Content/index.ts | 55 + templates/website/src/blocks/Form/index.ts | 34 + templates/website/src/blocks/Media/index.ts | 36 + .../website/src/collections/Categories.ts | 19 + templates/website/src/collections/Media.ts | 26 + .../website/src/collections/Pages/index.ts | 73 + .../website/src/collections/Posts/index.ts | 73 + .../collections/Users/access/adminsAndUser.ts | 19 + .../src/collections/Users/checkRole.ts | 16 + .../Users/hooks/ensureFirstUserIsAdmin.ts | 22 + .../website/src/collections/Users/index.ts | 59 + .../src/components/BeforeDashboard/index.scss | 24 + .../src/components/BeforeDashboard/index.tsx | 64 + templates/website/src/emptyModuleMock.js | 4 + .../website/src/fields/backgroundColor.ts | 27 + templates/website/src/fields/hero.ts | 59 + templates/website/src/fields/link.ts | 145 + templates/website/src/fields/linkGroup.ts | 27 + .../website/src/fields/richText/elements.ts | 18 + .../website/src/fields/richText/index.ts | 86 + .../fields/richText/label/Button/index.tsx | 18 + .../fields/richText/label/Element/index.scss | 9 + .../fields/richText/label/Element/index.tsx | 20 + .../src/fields/richText/label/Icon/index.tsx | 13 + .../src/fields/richText/label/index.ts | 14 + .../src/fields/richText/label/plugin.ts | 16 + .../richText/largeBody/Button/index.tsx | 18 + .../richText/largeBody/Element/index.scss | 5 + .../richText/largeBody/Element/index.tsx | 20 + .../fields/richText/largeBody/Icon/index.tsx | 21 + .../src/fields/richText/largeBody/index.ts | 14 + .../src/fields/richText/largeBody/plugin.ts | 16 + .../website/src/fields/richText/leaves.ts | 5 + .../website/src/fields/slug/formatSlug.ts | 27 + templates/website/src/fields/slug/index.ts | 23 + templates/website/src/globals/Footer.ts | 22 + templates/website/src/globals/Header.ts | 22 + templates/website/src/hooks/formatSlug.ts | 27 + .../website/src/hooks/populateArchiveBlock.ts | 59 + .../src/hooks/populatePublishedDate.ts | 15 + templates/website/src/hooks/revalidatePage.ts | 35 + templates/website/src/payload-types.ts | 604 ++ templates/website/src/payload.config.ts | 78 + templates/website/src/seed/course.jpg | Bin 0 -> 248185 bytes templates/website/src/seed/course.ts | 40 + templates/website/src/seed/home.ts | 200 + templates/website/src/seed/index.ts | 82 + templates/website/src/seed/post-1.ts | 57 + templates/website/src/seed/post-2.ts | 57 + templates/website/src/seed/posts-page.ts | 68 + templates/website/src/seed/shirt-image.ts | 40 + templates/website/src/seed/shirts.jpg | Bin 0 -> 93586 bytes templates/website/src/server.ts | 35 + templates/website/src/utilities/deepMerge.ts | 33 + templates/website/tsconfig.json | 28 + templates/website/yarn.lock | 8366 +++++++++++++++++ 72 files changed, 11444 insertions(+) create mode 100644 templates/website/.editorconfig create mode 100644 templates/website/.env.example create mode 100644 templates/website/.eslintrc.js create mode 100644 templates/website/.gitignore create mode 100644 templates/website/.prettierignore create mode 100644 templates/website/.prettierrc.js create mode 100644 templates/website/Dockerfile create mode 100644 templates/website/README.md create mode 100644 templates/website/docker-compose.yml create mode 100644 templates/website/nodemon.json create mode 100644 templates/website/package.json create mode 100644 templates/website/src/access/admins.ts create mode 100644 templates/website/src/access/adminsOrPublished.ts create mode 100644 templates/website/src/access/anyone.ts create mode 100644 templates/website/src/blocks/Archive/index.ts create mode 100644 templates/website/src/blocks/CallToAction/index.ts create mode 100644 templates/website/src/blocks/Content/index.ts create mode 100644 templates/website/src/blocks/Form/index.ts create mode 100644 templates/website/src/blocks/Media/index.ts create mode 100644 templates/website/src/collections/Categories.ts create mode 100644 templates/website/src/collections/Media.ts create mode 100644 templates/website/src/collections/Pages/index.ts create mode 100644 templates/website/src/collections/Posts/index.ts create mode 100644 templates/website/src/collections/Users/access/adminsAndUser.ts create mode 100644 templates/website/src/collections/Users/checkRole.ts create mode 100644 templates/website/src/collections/Users/hooks/ensureFirstUserIsAdmin.ts create mode 100644 templates/website/src/collections/Users/index.ts create mode 100644 templates/website/src/components/BeforeDashboard/index.scss create mode 100644 templates/website/src/components/BeforeDashboard/index.tsx create mode 100644 templates/website/src/emptyModuleMock.js create mode 100644 templates/website/src/fields/backgroundColor.ts create mode 100644 templates/website/src/fields/hero.ts create mode 100644 templates/website/src/fields/link.ts create mode 100644 templates/website/src/fields/linkGroup.ts create mode 100644 templates/website/src/fields/richText/elements.ts create mode 100644 templates/website/src/fields/richText/index.ts create mode 100644 templates/website/src/fields/richText/label/Button/index.tsx create mode 100644 templates/website/src/fields/richText/label/Element/index.scss create mode 100644 templates/website/src/fields/richText/label/Element/index.tsx create mode 100644 templates/website/src/fields/richText/label/Icon/index.tsx create mode 100644 templates/website/src/fields/richText/label/index.ts create mode 100644 templates/website/src/fields/richText/label/plugin.ts create mode 100644 templates/website/src/fields/richText/largeBody/Button/index.tsx create mode 100644 templates/website/src/fields/richText/largeBody/Element/index.scss create mode 100644 templates/website/src/fields/richText/largeBody/Element/index.tsx create mode 100644 templates/website/src/fields/richText/largeBody/Icon/index.tsx create mode 100644 templates/website/src/fields/richText/largeBody/index.ts create mode 100644 templates/website/src/fields/richText/largeBody/plugin.ts create mode 100644 templates/website/src/fields/richText/leaves.ts create mode 100644 templates/website/src/fields/slug/formatSlug.ts create mode 100644 templates/website/src/fields/slug/index.ts create mode 100644 templates/website/src/globals/Footer.ts create mode 100644 templates/website/src/globals/Header.ts create mode 100644 templates/website/src/hooks/formatSlug.ts create mode 100644 templates/website/src/hooks/populateArchiveBlock.ts create mode 100644 templates/website/src/hooks/populatePublishedDate.ts create mode 100644 templates/website/src/hooks/revalidatePage.ts create mode 100644 templates/website/src/payload-types.ts create mode 100644 templates/website/src/payload.config.ts create mode 100644 templates/website/src/seed/course.jpg create mode 100644 templates/website/src/seed/course.ts create mode 100644 templates/website/src/seed/home.ts create mode 100644 templates/website/src/seed/index.ts create mode 100644 templates/website/src/seed/post-1.ts create mode 100644 templates/website/src/seed/post-2.ts create mode 100644 templates/website/src/seed/posts-page.ts create mode 100644 templates/website/src/seed/shirt-image.ts create mode 100644 templates/website/src/seed/shirts.jpg create mode 100644 templates/website/src/server.ts create mode 100644 templates/website/src/utilities/deepMerge.ts create mode 100644 templates/website/tsconfig.json create mode 100644 templates/website/yarn.lock diff --git a/templates/website/.editorconfig b/templates/website/.editorconfig new file mode 100644 index 0000000000..d8e085abcb --- /dev/null +++ b/templates/website/.editorconfig @@ -0,0 +1,10 @@ +root = true + +[*] +indent_style = space +indent_size = 2 +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +end_of_line = lf +max_line_length = null diff --git a/templates/website/.env.example b/templates/website/.env.example new file mode 100644 index 0000000000..2c5ec6b3b8 --- /dev/null +++ b/templates/website/.env.example @@ -0,0 +1,5 @@ +PORT=8000 +MONGODB_URI=mongodb://localhost/payload-template-website +PAYLOAD_SECRET=3c543dbf662b4d12d8e30854 +PAYLOAD_PUBLIC_SERVER_URL=http://localhost:8000 +PAYLOAD_PUBLIC_SITE_URL=http://localhost:3000 diff --git a/templates/website/.eslintrc.js b/templates/website/.eslintrc.js new file mode 100644 index 0000000000..19b786c125 --- /dev/null +++ b/templates/website/.eslintrc.js @@ -0,0 +1,5 @@ +module.exports = { + root: true, + extends: ['@payloadcms'], + ignorePatterns: ['**/payload-types.ts'], +} diff --git a/templates/website/.gitignore b/templates/website/.gitignore new file mode 100644 index 0000000000..4776c16e0b --- /dev/null +++ b/templates/website/.gitignore @@ -0,0 +1,6 @@ +build +dist +/media +node_modules +.DS_Store +.env \ No newline at end of file diff --git a/templates/website/.prettierignore b/templates/website/.prettierignore new file mode 100644 index 0000000000..e732bb4ea2 --- /dev/null +++ b/templates/website/.prettierignore @@ -0,0 +1 @@ +**/payload-types.ts diff --git a/templates/website/.prettierrc.js b/templates/website/.prettierrc.js new file mode 100644 index 0000000000..70c17c995f --- /dev/null +++ b/templates/website/.prettierrc.js @@ -0,0 +1,8 @@ +module.exports = { + printWidth: 100, + parser: "typescript", + semi: false, + singleQuote: true, + trailingComma: "all", + arrowParens: "avoid", +}; diff --git a/templates/website/Dockerfile b/templates/website/Dockerfile new file mode 100644 index 0000000000..2544c839bb --- /dev/null +++ b/templates/website/Dockerfile @@ -0,0 +1,26 @@ +FROM node:18.8-alpine as base + +FROM base as builder + +WORKDIR /home/node/app +COPY package*.json ./ + +COPY . . +RUN yarn install +RUN yarn build + +FROM base as runtime + +ENV NODE_ENV=production +ENV PAYLOAD_CONFIG_PATH=dist/payload.config.js + +WORKDIR /home/node/app +COPY package*.json ./ + +RUN yarn install --production +COPY --from=builder /home/node/app/dist ./dist +COPY --from=builder /home/node/app/build ./build + +EXPOSE 3000 + +CMD ["node", "dist/server.js"] diff --git a/templates/website/README.md b/templates/website/README.md new file mode 100644 index 0000000000..f9c52580a0 --- /dev/null +++ b/templates/website/README.md @@ -0,0 +1,152 @@ +# Payload Website Template + +A template for [Payload](https://github.com/payloadcms/payload) to power websites from small to enterprise. This repo may have been created by running `npx create-payload-app` and selecting the "website" template or by cloning this template on [Payload Cloud](https://payloadcms.com/new/clone/blank). + +Core features: + +- [Pre-configured Payload Config](#how-it-works) +- [Access Control](#access-control) +- [Preview](#preview) +- [ISR](#isr) +- [Nested Docs](#nested-docs) +- [Layout Builder](#layout-builder) +- [SEO](#seo) +- [Redirects](#redirects) + +For details on how to get this template up and running locally, see the [development](#development) section. + +## How it works + +The Payload config is tailored specifically to the needs of most websites. It is pre-configured in the following ways: + +### Collections + +See the [collections documentation](https://payloadcms.com/docs/configuration/collections) for details on how to extend this functionality. + +- #### Users + + Users are auth-enabled and encompass both admins and public users based on the value of their `roles` field. Only `admin` users can access your admin panel to manage your website's content whereas `user` has limited access to the platform, see [Access Control](#access-control) for more details. + + For additional help, see the official [Auth Example](https://github.com/payloadcms/payload/tree/master/examples/auth/cms#readme) or the [authentication docs](https://payloadcms.com/docs/authentication/overview#authentication-overview). + +- #### Pages + + All pages are layout-builder enabled so you can generate unique layouts for each page using layout-building blocks, see [Layout Builder](#layout-builder) for more details. They can also be nested inside of one another, for example "About > Team". See [Nested Docs](#nested-docs) for more details. + +- #### Posts + + All posts are layout-builder enabled so you can generate unique layouts for each post using layout-building blocks, see [Layout Builder](#layout-builder) for more details. They can also be nested inside of one another, for example "News > World". See [Nested Docs](#nested-docs) for more details. + +- #### Media + + This is the uploads-enabled collection used by pages and products to contain media, etc. + +- #### Categories + + A taxonomy used to group posts together. Categories can be nested inside of one another, for example "News > World". See the official [Payload Nested Docs Plugin](https://github.com/payloadcms/plugin-nested-docs) for more details. + +### Globals + +See the [globals documentation](https://payloadcms.com/docs/configuration/globals) for details on how to extend this functionality. + +- `Header` + + The data required by the header on your front-end, i.e. nav links, etc. + +- `Footer` + + Same as above but for the footer of your site. + +## Access Control + +Basic role-based access control is setup to determine what users can and cannot do based on their roles, which are: + +- `admin`: They can access the Payload admin panel to manage your website. They can see all data and make all operations. +- `user`: They cannot access the Payload admin panel and have a limited access to operations based on their user (see below). + +This applies to each collection in the following ways: + +- `users`: Only admins and the user themselves can access their profile. Only admins can create and delete users. +- `pages`: Everyone can see published pages but only admins can see drafts and create, update, and delete pages. +- `posts`: Same as pages. + +For more details on how to extend this functionality, see the [Payload Access Control](https://payloadcms.com/docs/access-control/overview#access-control) docs. + +## Preview + +To enter preview mode we format a custom URL using a [preview function](https://payloadcms.com/docs/configuration/collections#preview) in the collection config. When a user clicks the "Preview" button, they are routed to this URL along with their http-only cookies and revalidation key. Your front-end can then use the `payload-token` and revalidation key to verify the request and enter into its own preview mode. + +For more information, see the official [Preview Example](https://github.com/payloadcms/payload/tree/master/examples/preview/cms#readme). + +## ISR + +If your front-end is statically generated then you may also want to regenerate the HTML for each page as they are published, sometimes referred to as Incremental Static Regeneration. To do this, we add an `afterChange` hook to the collection that fires a request to your front-end in the background each time the document is updated. You can handle this request on your front-end and regenerate the HTML for your page however needed. + +For more information, see the official [Preview Example](https://github.com/payloadcms/payload/tree/master/examples/preview/cms#isr) which includes ISR. + +## Nested Docs + +This template comes pre-configured with the official [Payload Nested Docs Plugin](https://github.com/payloadcms/plugin-nested-docs) so you can easily create hierarchies of pages, posts, and categories. + +## Layout Builder + +Pages and posts can be built using a powerful layout builder. This allows you to create unique layouts for each page or post. This template comes pre-configured with the following layout building blocks: + +- Hero +- Content +- Media +- Call To Action +- Archive + +## SEO + +This template comes pre-configured with the official [Payload SEO Plugin](https://github.com/payloadcms/plugin-seo) so you can easily manage metadata for each page of your website. + +## Redirects + +This template comes pre-configured with the official [Payload Redirects Plugin](https://github.com/payloadcms/plugin-redirects) so you can properly redirect content as your website scales. + +For additional help, see the official [Redirects Example](https://github.com/payloadcms/payload/tree/master/examples/preview/cms#readme). + +## Development + +To spin up the template locally, follow these steps: + +1. First clone the repo +1. Then `cd YOUR_PROJECT_REPO && cp .env.example .env` +1. Next `yarn && yarn dev` (or `docker-compose up`, see [Docker](#docker)) +1. Now `open http://localhost:8000/admin` to access the admin panel +1. Create your first admin user using the form on the page + +That's it! Changes made in `./src` will be reflected in your app—but your database is blank. You can optionally seed the database with a few pages and posts, more details on that [here](#seed). + +### Docker + +Alternatively, you can use [Docker](https://www.docker.com) to spin up this template locally. To do so, follow these steps: + +1. Follow [steps 1 and 2 from above](#development), the docker-compose file will automatically use the `.env` file in your project root +1. Next run `docker-compose up` +1. Follow [steps 4 and 5 from above](#development) to login and create your first admin user + +That's it! The Docker instance will help you get up and running quickly while also standardizing the development environment across your teams. + +### Seed + +To seed the database with a few pages and posts you can run `yarn seed`. + +> NOTICE: seeding the database is destructive because it drops your current database to populate a fresh one from the seed template. Only run this command if you are starting a new project or can afford to lose your current data. + +## Production + +To run Payload in production, you need to build and serve the Admin panel. To do so, follow these steps: + +1. First invoke the `payload build` script by running `yarn build` or `npm run build` in your project root. This creates a `./build` directory with a production-ready admin bundle. +1. Then run `yarn serve` or `npm run serve` to run Node in production and serve Payload from the `./build` directory. + +### Deployment + +The easiest way to deploy your project is to use [Payload Cloud](https://payloadcms.com/new/import), a one-click hosting solution to deploy production-ready instances of your Payload apps directly from your GitHub repo. You can also deploy your app manually, check out the [deployment documentation](https://payloadcms.com/docs/production/deployment) for full details. + +## Questions + +If you have any issues or questions, reach out to us on [Discord](https://discord.com/invite/payload) or start a [GitHub discussion](https://github.com/payloadcms/payload/discussions). diff --git a/templates/website/docker-compose.yml b/templates/website/docker-compose.yml new file mode 100644 index 0000000000..4846251925 --- /dev/null +++ b/templates/website/docker-compose.yml @@ -0,0 +1,32 @@ +version: '3' + +services: + + payload: + image: node:18-alpine + ports: + - "3000:3000" + volumes: + - .:/home/node/app + - node_modules:/home/node/app/node_modules + working_dir: /home/node/app/ + command: sh -c "yarn install && yarn dev" + depends_on: + - mongo + env_file: + - .env + + mongo: + image: mongo:latest + ports: + - "27017:27017" + command: + - --storageEngine=wiredTiger + volumes: + - data:/data/db + logging: + driver: none + +volumes: + data: + node_modules: diff --git a/templates/website/nodemon.json b/templates/website/nodemon.json new file mode 100644 index 0000000000..ed1a1850d3 --- /dev/null +++ b/templates/website/nodemon.json @@ -0,0 +1,4 @@ +{ + "ext": "ts", + "exec": "ts-node src/server.ts" +} diff --git a/templates/website/package.json b/templates/website/package.json new file mode 100644 index 0000000000..13a360fd34 --- /dev/null +++ b/templates/website/package.json @@ -0,0 +1,51 @@ +{ + "name": "@payloadcms/template-website", + "description": "Website template for Payload CMS", + "version": "1.0.0", + "main": "dist/server.js", + "license": "MIT", + "scripts": { + "dev": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts nodemon", + "seed": "rm -rf media && cross-env PAYLOAD_SEED=true PAYLOAD_DROP_DATABASE=true PAYLOAD_CONFIG_PATH=src/payload.config.ts ts-node src/server.ts", + "build:payload": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts payload build", + "build:server": "tsc", + "build": "yarn copyfiles && yarn build:payload && yarn build:server", + "serve": "cross-env PAYLOAD_CONFIG_PATH=dist/payload.config.js NODE_ENV=production node dist/server.js", + "copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png}\" dist/", + "generate:types": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts payload generate:types", + "generate:graphQLSchema": "PAYLOAD_CONFIG_PATH=src/payload.config.ts payload generate:graphQLSchema", + "lint": "eslint src", + "lint:fix": "eslint --fix --ext .ts,.tsx src" + }, + "dependencies": { + "@payloadcms/plugin-cloud": "^1.0.0", + "@payloadcms/plugin-form-builder": "^1.0.13", + "@payloadcms/plugin-nested-docs": "^1.0.4", + "@payloadcms/plugin-redirects": "^1.0.0", + "@payloadcms/plugin-seo": "^1.0.10", + "dotenv": "^8.2.0", + "express": "^4.17.1", + "payload": "^1.7.2" + }, + "devDependencies": { + "@payloadcms/eslint-config": "^0.0.1", + "@types/express": "^4.17.9", + "@types/node": "18.11.3", + "@types/react": "18.0.21", + "@typescript-eslint/eslint-plugin": "^5.51.0", + "@typescript-eslint/parser": "^5.51.0", + "copyfiles": "^2.4.1", + "cross-env": "^7.0.3", + "eslint": "^8.19.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-filenames": "^1.3.2", + "eslint-plugin-import": "2.25.4", + "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-simple-import-sort": "^10.0.0", + "nodemon": "^2.0.6", + "prettier": "^2.7.1", + "ts-node": "^9.1.1", + "typescript": "^4.8.4" + } +} diff --git a/templates/website/src/access/admins.ts b/templates/website/src/access/admins.ts new file mode 100644 index 0000000000..ef4c16d2a1 --- /dev/null +++ b/templates/website/src/access/admins.ts @@ -0,0 +1,10 @@ +import type { AccessArgs } from 'payload/config' + +import { checkRole } from '../collections/Users/checkRole' +import type { User } from '../payload-types' + +type isAdmin = (args: AccessArgs) => boolean + +export const admins: isAdmin = ({ req: { user } }) => { + return checkRole(['admin'], user) +} diff --git a/templates/website/src/access/adminsOrPublished.ts b/templates/website/src/access/adminsOrPublished.ts new file mode 100644 index 0000000000..d1dded4d19 --- /dev/null +++ b/templates/website/src/access/adminsOrPublished.ts @@ -0,0 +1,15 @@ +import type { Access } from 'payload/config' + +import { checkRole } from '../collections/Users/checkRole' + +export const adminsOrPublished: Access = ({ req: { user } }) => { + if (user && checkRole(['admin'], user)) { + return true + } + + return { + _status: { + equals: 'published', + }, + } +} diff --git a/templates/website/src/access/anyone.ts b/templates/website/src/access/anyone.ts new file mode 100644 index 0000000000..c098600337 --- /dev/null +++ b/templates/website/src/access/anyone.ts @@ -0,0 +1,3 @@ +import type { Access } from 'payload/config' + +export const anyone: Access = () => true diff --git a/templates/website/src/blocks/Archive/index.ts b/templates/website/src/blocks/Archive/index.ts new file mode 100644 index 0000000000..12e0d6c934 --- /dev/null +++ b/templates/website/src/blocks/Archive/index.ts @@ -0,0 +1,100 @@ +import type { Block } from 'payload/types' + +import richText from '../../fields/richText' + +export const Archive: Block = { + slug: 'archive', + labels: { + singular: 'Archive', + plural: 'Archives', + }, + fields: [ + richText({ + name: 'introContent', + label: 'Intro Content', + }), + { + name: 'populateBy', + type: 'select', + defaultValue: 'collection', + options: [ + { + label: 'Collection', + value: 'collection', + }, + { + label: 'Individual Selection', + value: 'selection', + }, + ], + }, + { + type: 'select', + name: 'relationTo', + label: 'Collections To Show', + defaultValue: 'pages', + admin: { + condition: (_, siblingData) => siblingData.populateBy === 'collection', + }, + options: [ + { + label: 'Pages', + value: 'pages', + }, + ], + }, + { + type: 'relationship', + name: 'categories', + label: 'Categories To Show', + relationTo: 'categories', + hasMany: true, + admin: { + condition: (_, siblingData) => siblingData.populateBy === 'collection', + }, + }, + { + type: 'number', + name: 'limit', + label: 'Limit', + defaultValue: 10, + admin: { + condition: (_, siblingData) => siblingData.populateBy === 'collection', + step: 1, + }, + }, + { + type: 'relationship', + name: 'selectedDocs', + label: 'Selection', + relationTo: ['pages', 'posts'], + hasMany: true, + admin: { + condition: (_, siblingData) => siblingData.populateBy === 'selection', + }, + }, + { + type: 'relationship', + name: 'populatedDocs', + label: 'Populated Docs', + relationTo: ['pages', 'posts'], + hasMany: true, + admin: { + disabled: true, + description: 'This field is auto-populated after-read', + condition: (_, siblingData) => siblingData.populateBy === 'collection', + }, + }, + { + type: 'number', + name: 'populatedDocsTotal', + label: 'Populated Docs Total', + admin: { + step: 1, + disabled: true, + description: 'This field is auto-populated after-read', + condition: (_, siblingData) => siblingData.populateBy === 'collection', + }, + }, + ], +} diff --git a/templates/website/src/blocks/CallToAction/index.ts b/templates/website/src/blocks/CallToAction/index.ts new file mode 100644 index 0000000000..0b6f38404b --- /dev/null +++ b/templates/website/src/blocks/CallToAction/index.ts @@ -0,0 +1,23 @@ +import type { Block } from 'payload/types' + +import { backgroundColor } from '../../fields/backgroundColor' +import linkGroup from '../../fields/linkGroup' +import richText from '../../fields/richText' + +export const CallToAction: Block = { + slug: 'cta', + labels: { + singular: 'Call to Action', + plural: 'Calls to Action', + }, + fields: [ + backgroundColor({ overrides: { name: 'ctaBackgroundColor' } }), + richText(), + linkGroup({ + appearances: ['primary', 'secondary'], + overrides: { + maxRows: 2, + }, + }), + ], +} diff --git a/templates/website/src/blocks/Content/index.ts b/templates/website/src/blocks/Content/index.ts new file mode 100644 index 0000000000..0e8e7d8344 --- /dev/null +++ b/templates/website/src/blocks/Content/index.ts @@ -0,0 +1,55 @@ +import type { Block, Field } from 'payload/types' + +import { backgroundColor } from '../../fields/backgroundColor' +import link from '../../fields/link' +import richText from '../../fields/richText' + +const columnFields: Field[] = [ + { + name: 'size', + type: 'select', + defaultValue: 'oneThird', + options: [ + { + value: 'oneThird', + label: 'One Third', + }, + { + value: 'half', + label: 'Half', + }, + { + value: 'twoThirds', + label: 'Two Thirds', + }, + { + value: 'full', + label: 'Full', + }, + ], + }, + richText(), + { + name: 'enableLink', + type: 'checkbox', + }, + link({ + overrides: { + admin: { + condition: (_, { enableLink }) => Boolean(enableLink), + }, + }, + }), +] + +export const Content: Block = { + slug: 'content', + fields: [ + backgroundColor({}), + { + name: 'columns', + type: 'array', + fields: columnFields, + }, + ], +} diff --git a/templates/website/src/blocks/Form/index.ts b/templates/website/src/blocks/Form/index.ts new file mode 100644 index 0000000000..6f13c970b1 --- /dev/null +++ b/templates/website/src/blocks/Form/index.ts @@ -0,0 +1,34 @@ +import type { Block } from 'payload/types' + +import richText from '../../fields/richText' + +export const FormBlock: Block = { + slug: 'formBlock', + labels: { + singular: 'Form Block', + plural: 'Form Blocks', + }, + graphQL: { + singularName: 'FormBlock', + }, + fields: [ + { + name: 'form', + type: 'relationship', + relationTo: 'forms', + required: true, + }, + { + name: 'enableIntro', + label: 'Enable Intro Content', + type: 'checkbox', + }, + richText({ + name: 'introContent', + label: 'Intro Content', + admin: { + condition: (_, { enableIntro }) => Boolean(enableIntro), + }, + }), + ], +} diff --git a/templates/website/src/blocks/Media/index.ts b/templates/website/src/blocks/Media/index.ts new file mode 100644 index 0000000000..c38db9ce70 --- /dev/null +++ b/templates/website/src/blocks/Media/index.ts @@ -0,0 +1,36 @@ +import type { Block } from 'payload/types' + +import { backgroundColor } from '../../fields/backgroundColor' + +export const MediaBlock: Block = { + slug: 'mediaBlock', + fields: [ + { + type: 'row', + fields: [ + backgroundColor({ overrides: { name: 'mediaBlockBackgroundColor' } }), + { + name: 'position', + type: 'select', + defaultValue: 'default', + options: [ + { + label: 'Default', + value: 'default', + }, + { + label: 'Fullscreen', + value: 'fullscreen', + }, + ], + }, + ], + }, + { + name: 'media', + type: 'upload', + relationTo: 'media', + required: true, + }, + ], +} diff --git a/templates/website/src/collections/Categories.ts b/templates/website/src/collections/Categories.ts new file mode 100644 index 0000000000..479dae86a1 --- /dev/null +++ b/templates/website/src/collections/Categories.ts @@ -0,0 +1,19 @@ +import type { CollectionConfig } from 'payload/types' + +const Categories: CollectionConfig = { + slug: 'categories', + admin: { + useAsTitle: 'title', + }, + access: { + read: () => true, + }, + fields: [ + { + name: 'title', + type: 'text', + }, + ], +} + +export default Categories diff --git a/templates/website/src/collections/Media.ts b/templates/website/src/collections/Media.ts new file mode 100644 index 0000000000..d37f48953f --- /dev/null +++ b/templates/website/src/collections/Media.ts @@ -0,0 +1,26 @@ +import path from 'path' +import type { CollectionConfig } from 'payload/types' + +export const Media: CollectionConfig = { + slug: 'media', + upload: { + staticDir: path.resolve(__dirname, '../../media'), + }, + access: { + read: () => true, + }, + fields: [ + { + name: 'alt', + type: 'text', + required: true, + }, + { + name: 'caption', + type: 'richText', + admin: { + elements: ['link'], + }, + }, + ], +} diff --git a/templates/website/src/collections/Pages/index.ts b/templates/website/src/collections/Pages/index.ts new file mode 100644 index 0000000000..6efbc708d9 --- /dev/null +++ b/templates/website/src/collections/Pages/index.ts @@ -0,0 +1,73 @@ +import type { CollectionConfig } from 'payload/types' + +import { admins } from '../../access/admins' +import { adminsOrPublished } from '../../access/adminsOrPublished' +import { Archive } from '../../blocks/Archive' +import { CallToAction } from '../../blocks/CallToAction' +import { Content } from '../../blocks/Content' +import { FormBlock } from '../../blocks/Form' +import { MediaBlock } from '../../blocks/Media' +import { hero } from '../../fields/hero' +import { slugField } from '../../fields/slug' +import { populateArchiveBlock } from '../../hooks/populateArchiveBlock' +import { populatePublishedDate } from '../../hooks/populatePublishedDate' +import { formatAppURL, revalidatePage } from '../../hooks/revalidatePage' + +export const Pages: CollectionConfig = { + slug: 'pages', + admin: { + useAsTitle: 'title', + defaultColumns: ['title', 'slug', 'updatedAt'], + preview: doc => + `${process.env.PAYLOAD_PUBLIC_SITE_URL}/api/preview?url=${formatAppURL({ doc })}`, + }, + hooks: { + beforeChange: [populatePublishedDate], + afterRead: [populateArchiveBlock], + afterChange: [revalidatePage], + }, + versions: { + drafts: true, + }, + access: { + read: adminsOrPublished, + update: admins, + create: admins, + delete: admins, + }, + fields: [ + { + name: 'title', + type: 'text', + required: true, + }, + { + name: 'publishedDate', + type: 'date', + admin: { + position: 'sidebar', + }, + }, + { + type: 'tabs', + tabs: [ + { + label: 'Hero', + fields: [hero], + }, + { + label: 'Content', + fields: [ + { + name: 'layout', + type: 'blocks', + required: true, + blocks: [CallToAction, Content, FormBlock, MediaBlock, Archive], + }, + ], + }, + ], + }, + slugField(), + ], +} diff --git a/templates/website/src/collections/Posts/index.ts b/templates/website/src/collections/Posts/index.ts new file mode 100644 index 0000000000..67d8eaef52 --- /dev/null +++ b/templates/website/src/collections/Posts/index.ts @@ -0,0 +1,73 @@ +import type { CollectionConfig } from 'payload/types' + +import { admins } from '../../access/admins' +import { adminsOrPublished } from '../../access/adminsOrPublished' +import { Archive } from '../../blocks/Archive' +import { CallToAction } from '../../blocks/CallToAction' +import { Content } from '../../blocks/Content' +import { FormBlock } from '../../blocks/Form' +import { MediaBlock } from '../../blocks/Media' +import { hero } from '../../fields/hero' +import { slugField } from '../../fields/slug' +import { populateArchiveBlock } from '../../hooks/populateArchiveBlock' +import { populatePublishedDate } from '../../hooks/populatePublishedDate' +import { formatAppURL, revalidatePage } from '../../hooks/revalidatePage' + +export const Posts: CollectionConfig = { + slug: 'posts', + admin: { + useAsTitle: 'title', + defaultColumns: ['title', 'slug', 'updatedAt'], + preview: doc => + `${process.env.PAYLOAD_PUBLIC_SITE_URL}/api/preview?url=${formatAppURL({ doc })}`, + }, + hooks: { + beforeChange: [populatePublishedDate], + afterRead: [populateArchiveBlock], + afterChange: [revalidatePage], + }, + versions: { + drafts: true, + }, + access: { + read: adminsOrPublished, + update: admins, + create: admins, + delete: admins, + }, + fields: [ + { + name: 'title', + type: 'text', + required: true, + }, + { + name: 'publishedDate', + type: 'date', + admin: { + position: 'sidebar', + }, + }, + { + type: 'tabs', + tabs: [ + { + label: 'Hero', + fields: [hero], + }, + { + label: 'Content', + fields: [ + { + name: 'layout', + type: 'blocks', + required: true, + blocks: [CallToAction, Content, FormBlock, MediaBlock, Archive], + }, + ], + }, + ], + }, + slugField(), + ], +} diff --git a/templates/website/src/collections/Users/access/adminsAndUser.ts b/templates/website/src/collections/Users/access/adminsAndUser.ts new file mode 100644 index 0000000000..797b06f1d9 --- /dev/null +++ b/templates/website/src/collections/Users/access/adminsAndUser.ts @@ -0,0 +1,19 @@ +import type { Access } from 'payload/types' + +import { checkRole } from '../checkRole' + +const adminsAndUser: Access = ({ req: { user } }) => { + if (user) { + if (checkRole(['admin'], user)) { + return true + } + + return { + id: user.id, + } + } + + return false +} + +export default adminsAndUser diff --git a/templates/website/src/collections/Users/checkRole.ts b/templates/website/src/collections/Users/checkRole.ts new file mode 100644 index 0000000000..fcc87c8fa9 --- /dev/null +++ b/templates/website/src/collections/Users/checkRole.ts @@ -0,0 +1,16 @@ +import type { User } from '../../payload-types' + +export const checkRole = (allRoles: User['roles'] = [], user?: User): boolean => { + if (user) { + if ( + allRoles?.some(role => { + return user?.roles?.some(individualRole => { + return individualRole === role + }) + }) + ) + return true + } + + return false +} diff --git a/templates/website/src/collections/Users/hooks/ensureFirstUserIsAdmin.ts b/templates/website/src/collections/Users/hooks/ensureFirstUserIsAdmin.ts new file mode 100644 index 0000000000..9cddbd66e3 --- /dev/null +++ b/templates/website/src/collections/Users/hooks/ensureFirstUserIsAdmin.ts @@ -0,0 +1,22 @@ +import type { FieldHook } from 'payload/types' + +import type { User } from '../../../payload-types' + +// ensure the first user created is an admin +// 1. lookup a single user on create as succinctly as possible +// 2. if there are no users found, append `admin` to the roles array +// access control is already handled by this fields `access` property +// it ensures that only admins can create and update the `roles` field +export const ensureFirstUserIsAdmin: FieldHook = async ({ req, operation, value }) => { + if (operation === 'create') { + const users = await req.payload.find({ collection: 'users', limit: 0, depth: 0 }) + if (users.totalDocs === 0) { + // if `admin` not in array of values, add it + if (!(value || []).includes('admin')) { + return [...(value || []), 'admin'] + } + } + } + + return value +} diff --git a/templates/website/src/collections/Users/index.ts b/templates/website/src/collections/Users/index.ts new file mode 100644 index 0000000000..ddececd72c --- /dev/null +++ b/templates/website/src/collections/Users/index.ts @@ -0,0 +1,59 @@ +import type { CollectionConfig } from 'payload/types' + +import { admins } from '../../access/admins' +import { anyone } from '../../access/anyone' +import adminsAndUser from './access/adminsAndUser' +import { checkRole } from './checkRole' +import { ensureFirstUserIsAdmin } from './hooks/ensureFirstUserIsAdmin' + +export const UserFields: CollectionConfig['fields'] = [ + { + name: 'name', + type: 'text', + }, + { + name: 'roles', + type: 'select', + hasMany: true, + saveToJWT: true, + hooks: { + beforeChange: [ensureFirstUserIsAdmin], + }, + defaultValue: ['user'], + options: [ + { + label: 'admin', + value: 'admin', + }, + { + label: 'user', + value: 'user', + }, + ], + access: { + read: admins, + create: admins, + update: admins, + }, + }, +] + +const Users: CollectionConfig = { + slug: 'users', + admin: { + useAsTitle: 'name', + defaultColumns: ['name', 'email'], + }, + access: { + read: adminsAndUser, + create: anyone, + update: adminsAndUser, + delete: admins, + admin: ({ req: { user } }) => checkRole(['admin'], user), + }, + auth: true, + fields: UserFields, + timestamps: true, +} + +export default Users diff --git a/templates/website/src/components/BeforeDashboard/index.scss b/templates/website/src/components/BeforeDashboard/index.scss new file mode 100644 index 0000000000..da97c95222 --- /dev/null +++ b/templates/website/src/components/BeforeDashboard/index.scss @@ -0,0 +1,24 @@ +@import '~payload/scss'; + +.dashboard .before-dashboard { + margin-bottom: base(1.5); + + &__banner { + & h4 { + margin: 0; + } + } + + &__instructions { + list-style: decimal; + margin-bottom: base(0.5); + + & li { + width: 100%; + } + } + + & a:hover { + opacity: 0.85; + } +} diff --git a/templates/website/src/components/BeforeDashboard/index.tsx b/templates/website/src/components/BeforeDashboard/index.tsx new file mode 100644 index 0000000000..12bea9c38b --- /dev/null +++ b/templates/website/src/components/BeforeDashboard/index.tsx @@ -0,0 +1,64 @@ +import React from 'react' +import { Banner } from 'payload/components' + +import './index.scss' + +const baseClass = 'before-dashboard' + +const BeforeDashboard: React.FC = () => { + return ( +

+ +

Welcome to your dashboard!

+
+ Here's what to do next: +
    +
  • + Head over to GitHub and clone the new repository to your local machine (it will be under + the GitHub Scope that you selected when creating this project). +
  • +
  • + Build out your{' '} + + collections + {' '} + and add more{' '} + + fields + {' '} + as needed. If you are new to Payload, we also recommend you check out the{' '} + + Getting Started + {' '} + docs. +
  • +
  • + Commit and push your changes to the repository to trigger a redeployment of your project. +
  • +
+ Pro Tip: This block is a{' '} + + custom component + + , you can remove it at any time by updating your payload.config. +
+ ) +} + +export default BeforeDashboard diff --git a/templates/website/src/emptyModuleMock.js b/templates/website/src/emptyModuleMock.js new file mode 100644 index 0000000000..dfc9125dee --- /dev/null +++ b/templates/website/src/emptyModuleMock.js @@ -0,0 +1,4 @@ +module.exports = { + url: () => {}, + raw: () => {}, +} diff --git a/templates/website/src/fields/backgroundColor.ts b/templates/website/src/fields/backgroundColor.ts new file mode 100644 index 0000000000..cd3bf2cfe9 --- /dev/null +++ b/templates/website/src/fields/backgroundColor.ts @@ -0,0 +1,27 @@ +import type { Field, SelectField } from 'payload/types' + +import deepMerge from '../utilities/deepMerge' + +interface Args { + overrides?: Partial +} + +export const backgroundColor = ({ overrides = {} }: Args): Field => + deepMerge( + { + name: 'backgroundColor', + type: 'select', + defaultValue: 'white', + options: [ + { + label: 'White', + value: 'white', + }, + { + label: 'Black', + value: 'black', + }, + ], + }, + overrides, + ) diff --git a/templates/website/src/fields/hero.ts b/templates/website/src/fields/hero.ts new file mode 100644 index 0000000000..d8769b9480 --- /dev/null +++ b/templates/website/src/fields/hero.ts @@ -0,0 +1,59 @@ +import type { Field } from 'payload/types' + +import linkGroup from './linkGroup' +import richText from './richText' +import label from './richText/label' +import largeBody from './richText/largeBody' + +export const hero: Field = { + name: 'hero', + label: false, + type: 'group', + fields: [ + { + type: 'select', + name: 'type', + label: 'Type', + required: true, + defaultValue: 'lowImpact', + options: [ + { + label: 'None', + value: 'none', + }, + { + label: 'High Impact', + value: 'highImpact', + }, + { + label: 'Medium Impact', + value: 'mediumImpact', + }, + { + label: 'Low Impact', + value: 'lowImpact', + }, + ], + }, + richText({ + admin: { + elements: ['h1', largeBody, label, 'link'], + leaves: [], + }, + }), + linkGroup({ + overrides: { + maxRows: 2, + }, + }), + { + name: 'media', + type: 'upload', + relationTo: 'media', + required: true, + admin: { + condition: (_, { type } = {}) => ['highImpact', 'mediumImpact'].includes(type), + }, + }, + ], +} diff --git a/templates/website/src/fields/link.ts b/templates/website/src/fields/link.ts new file mode 100644 index 0000000000..a9abc3a9da --- /dev/null +++ b/templates/website/src/fields/link.ts @@ -0,0 +1,145 @@ +import type { Field } from 'payload/types' + +import deepMerge from '../utilities/deepMerge' + +export const appearanceOptions = { + primary: { + label: 'Primary Button', + value: 'primary', + }, + secondary: { + label: 'Secondary Button', + value: 'secondary', + }, + default: { + label: 'Default', + value: 'default', + }, +} + +export type LinkAppearances = 'primary' | 'secondary' | 'default' + +type LinkType = (options?: { + appearances?: LinkAppearances[] | false + disableLabel?: boolean + overrides?: Record +}) => Field + +const link: LinkType = ({ appearances, disableLabel = false, overrides = {} } = {}) => { + const linkResult: Field = { + name: 'link', + type: 'group', + admin: { + hideGutter: true, + }, + fields: [ + { + type: 'row', + fields: [ + { + name: 'type', + type: 'radio', + options: [ + { + label: 'Internal link', + value: 'reference', + }, + { + label: 'Custom URL', + value: 'custom', + }, + ], + defaultValue: 'reference', + admin: { + layout: 'horizontal', + width: '50%', + }, + }, + { + name: 'newTab', + label: 'Open in new tab', + type: 'checkbox', + admin: { + width: '50%', + style: { + alignSelf: 'flex-end', + }, + }, + }, + ], + }, + ], + } + + const linkTypes: Field[] = [ + { + name: 'reference', + label: 'Document to link to', + type: 'relationship', + relationTo: ['pages'], + required: true, + maxDepth: 1, + admin: { + condition: (_, siblingData) => siblingData?.type === 'reference', + }, + }, + { + name: 'url', + label: 'Custom URL', + type: 'text', + required: true, + admin: { + condition: (_, siblingData) => siblingData?.type === 'custom', + }, + }, + ] + + if (!disableLabel) { + linkTypes[0].admin.width = '50%' + linkTypes[1].admin.width = '50%' + + linkResult.fields.push({ + type: 'row', + fields: [ + ...linkTypes, + { + name: 'label', + label: 'Label', + type: 'text', + required: true, + admin: { + width: '50%', + }, + }, + ], + }) + } else { + linkResult.fields = [...linkResult.fields, ...linkTypes] + } + + if (appearances !== false) { + let appearanceOptionsToUse = [ + appearanceOptions.default, + appearanceOptions.primary, + appearanceOptions.secondary, + ] + + if (appearances) { + appearanceOptionsToUse = appearances.map(appearance => appearanceOptions[appearance]) + } + + linkResult.fields.push({ + name: 'appearance', + type: 'select', + defaultValue: 'default', + options: appearanceOptionsToUse, + admin: { + description: 'Choose how the link should be rendered.', + }, + }) + } + + return deepMerge(linkResult, overrides) +} + +export default link diff --git a/templates/website/src/fields/linkGroup.ts b/templates/website/src/fields/linkGroup.ts new file mode 100644 index 0000000000..630c903f34 --- /dev/null +++ b/templates/website/src/fields/linkGroup.ts @@ -0,0 +1,27 @@ +import type { ArrayField } from 'payload/dist/fields/config/types' +import type { Field } from 'payload/types' + +import deepMerge from '../utilities/deepMerge' +import type { LinkAppearances } from './link' +import link from './link' + +type LinkGroupType = (options?: { + overrides?: Partial + appearances?: LinkAppearances[] | false +}) => Field + +const linkGroup: LinkGroupType = ({ overrides = {}, appearances } = {}) => { + const generatedLinkGroup: Field = { + name: 'links', + type: 'array', + fields: [ + link({ + appearances, + }), + ], + } + + return deepMerge(generatedLinkGroup, overrides) +} + +export default linkGroup diff --git a/templates/website/src/fields/richText/elements.ts b/templates/website/src/fields/richText/elements.ts new file mode 100644 index 0000000000..3796ed1f11 --- /dev/null +++ b/templates/website/src/fields/richText/elements.ts @@ -0,0 +1,18 @@ +import type { RichTextElement } from 'payload/dist/fields/config/types' + +import label from './label' +import largeBody from './largeBody' + +const elements: RichTextElement[] = [ + 'blockquote', + 'h2', + 'h3', + 'h4', + 'h5', + 'h6', + 'link', + largeBody, + label, +] + +export default elements diff --git a/templates/website/src/fields/richText/index.ts b/templates/website/src/fields/richText/index.ts new file mode 100644 index 0000000000..b000334c17 --- /dev/null +++ b/templates/website/src/fields/richText/index.ts @@ -0,0 +1,86 @@ +import type { RichTextElement, RichTextField, RichTextLeaf } from 'payload/dist/fields/config/types' + +import deepMerge from '../../utilities/deepMerge' +import link from '../link' +import elements from './elements' +import leaves from './leaves' + +type RichText = ( + overrides?: Partial, + additions?: { + elements?: RichTextElement[] + leaves?: RichTextLeaf[] + }, +) => RichTextField + +const richText: RichText = ( + overrides, + additions = { + elements: [], + leaves: [], + }, +) => + deepMerge>( + { + name: 'richText', + type: 'richText', + required: true, + admin: { + upload: { + collections: { + media: { + fields: [ + { + type: 'richText', + name: 'caption', + label: 'Caption', + admin: { + elements: [...elements], + leaves: [...leaves], + }, + }, + { + type: 'radio', + name: 'alignment', + label: 'Alignment', + options: [ + { + label: 'Left', + value: 'left', + }, + { + label: 'Center', + value: 'center', + }, + { + label: 'Right', + value: 'right', + }, + ], + }, + { + name: 'enableLink', + type: 'checkbox', + label: 'Enable Link', + }, + link({ + appearances: false, + disableLabel: true, + overrides: { + admin: { + condition: (_, data) => Boolean(data?.enableLink), + }, + }, + }), + ], + }, + }, + }, + elements: [...elements, ...(additions.elements || [])], + leaves: [...leaves, ...(additions.leaves || [])], + }, + }, + overrides, + ) + +export default richText diff --git a/templates/website/src/fields/richText/label/Button/index.tsx b/templates/website/src/fields/richText/label/Button/index.tsx new file mode 100644 index 0000000000..5d26159bad --- /dev/null +++ b/templates/website/src/fields/richText/label/Button/index.tsx @@ -0,0 +1,18 @@ +/* eslint-disable import/no-extraneous-dependencies */ +// eslint-disable-next-line no-use-before-define +import React from 'react'; +import { ElementButton } from 'payload/components/rich-text'; +import Icon from '../Icon'; + +const baseClass = 'rich-text-label-button'; + +const ToolbarButton: React.FC<{ path: string }> = () => ( + + + +); + +export default ToolbarButton; diff --git a/templates/website/src/fields/richText/label/Element/index.scss b/templates/website/src/fields/richText/label/Element/index.scss new file mode 100644 index 0000000000..0ea4134026 --- /dev/null +++ b/templates/website/src/fields/richText/label/Element/index.scss @@ -0,0 +1,9 @@ +@import "~payload/scss"; + +.rich-text-label { + text-transform: uppercase; + font-family: 'Roboto Mono', monospace; + letter-spacing: 2px; + font-size: base(.5); + margin: 0 0 base(1); +} \ No newline at end of file diff --git a/templates/website/src/fields/richText/label/Element/index.tsx b/templates/website/src/fields/richText/label/Element/index.tsx new file mode 100644 index 0000000000..889be64b16 --- /dev/null +++ b/templates/website/src/fields/richText/label/Element/index.tsx @@ -0,0 +1,20 @@ +import React from 'react'; + +import './index.scss'; + +const baseClass = 'rich-text-label'; + +const LabelElement: React.FC<{ + attributes: any + element: any + children: React.ReactNode +}> = ({ attributes, children }) => ( +
+ + {children} + +
+); +export default LabelElement; diff --git a/templates/website/src/fields/richText/label/Icon/index.tsx b/templates/website/src/fields/richText/label/Icon/index.tsx new file mode 100644 index 0000000000..e49b865d61 --- /dev/null +++ b/templates/website/src/fields/richText/label/Icon/index.tsx @@ -0,0 +1,13 @@ +/* eslint-disable no-use-before-define */ +// eslint-disable-next-line import/no-extraneous-dependencies +import React from 'react'; + +const Icon = () => ( + + + + + +); + +export default Icon; diff --git a/templates/website/src/fields/richText/label/index.ts b/templates/website/src/fields/richText/label/index.ts new file mode 100644 index 0000000000..17237219b3 --- /dev/null +++ b/templates/website/src/fields/richText/label/index.ts @@ -0,0 +1,14 @@ +import type { RichTextCustomElement } from 'payload/types' + +import Button from './Button' +import Element from './Element' +import withLabel from './plugin' + +const richTextLabel: RichTextCustomElement = { + name: 'label', + Button, + Element, + plugins: [withLabel], +} + +export default richTextLabel diff --git a/templates/website/src/fields/richText/label/plugin.ts b/templates/website/src/fields/richText/label/plugin.ts new file mode 100644 index 0000000000..af9c8e5c08 --- /dev/null +++ b/templates/website/src/fields/richText/label/plugin.ts @@ -0,0 +1,16 @@ +import type { RichTextCustomElement } from 'payload/types' + +const withLabel: RichTextCustomElement['plugins'][0] = incomingEditor => { + const editor = incomingEditor + + // @ts-expect-error + const { shouldBreakOutOnEnter } = editor + + // @ts-expect-error + editor.shouldBreakOutOnEnter = element => + element.type === 'label' ? true : shouldBreakOutOnEnter(element) + + return editor +} + +export default withLabel diff --git a/templates/website/src/fields/richText/largeBody/Button/index.tsx b/templates/website/src/fields/richText/largeBody/Button/index.tsx new file mode 100644 index 0000000000..280cc94a49 --- /dev/null +++ b/templates/website/src/fields/richText/largeBody/Button/index.tsx @@ -0,0 +1,18 @@ +/* eslint-disable import/no-extraneous-dependencies */ +// eslint-disable-next-line no-use-before-define +import React from 'react'; +import { ElementButton } from 'payload/components/rich-text'; +import Icon from '../Icon'; + +const baseClass = 'rich-text-large-body-button'; + +const ToolbarButton: React.FC<{ path: string }> = () => ( + + + +); + +export default ToolbarButton; diff --git a/templates/website/src/fields/richText/largeBody/Element/index.scss b/templates/website/src/fields/richText/largeBody/Element/index.scss new file mode 100644 index 0000000000..d56f7d94ab --- /dev/null +++ b/templates/website/src/fields/richText/largeBody/Element/index.scss @@ -0,0 +1,5 @@ +@import "~payload/scss"; + +.rich-text-large-body { + font-size: base(.8); +} diff --git a/templates/website/src/fields/richText/largeBody/Element/index.tsx b/templates/website/src/fields/richText/largeBody/Element/index.tsx new file mode 100644 index 0000000000..a6738365e4 --- /dev/null +++ b/templates/website/src/fields/richText/largeBody/Element/index.tsx @@ -0,0 +1,20 @@ +import React from 'react'; + +import './index.scss'; + +const baseClass = 'rich-text-large-body'; + +const LargeBodyElement: React.FC<{ + attributes: any + element: any + children: React.ReactNode +}> = ({ attributes, children }) => ( +
+ + {children} + +
+); +export default LargeBodyElement; diff --git a/templates/website/src/fields/richText/largeBody/Icon/index.tsx b/templates/website/src/fields/richText/largeBody/Icon/index.tsx new file mode 100644 index 0000000000..14d597a550 --- /dev/null +++ b/templates/website/src/fields/richText/largeBody/Icon/index.tsx @@ -0,0 +1,21 @@ +/* eslint-disable no-use-before-define */ +// eslint-disable-next-line import/no-extraneous-dependencies +import React from 'react'; + +const Icon = () => ( + + + + +); + +export default Icon; diff --git a/templates/website/src/fields/richText/largeBody/index.ts b/templates/website/src/fields/richText/largeBody/index.ts new file mode 100644 index 0000000000..f6722133d8 --- /dev/null +++ b/templates/website/src/fields/richText/largeBody/index.ts @@ -0,0 +1,14 @@ +import type { RichTextCustomElement } from 'payload/types' + +import Button from './Button' +import Element from './Element' +import withLargeBody from './plugin' + +const richTextLargeBody: RichTextCustomElement = { + name: 'large-body', + Button, + Element, + plugins: [withLargeBody], +} + +export default richTextLargeBody diff --git a/templates/website/src/fields/richText/largeBody/plugin.ts b/templates/website/src/fields/richText/largeBody/plugin.ts new file mode 100644 index 0000000000..8c3b46d5de --- /dev/null +++ b/templates/website/src/fields/richText/largeBody/plugin.ts @@ -0,0 +1,16 @@ +import type { RichTextCustomElement } from 'payload/types' + +const withLargeBody: RichTextCustomElement['plugins'][0] = incomingEditor => { + const editor = incomingEditor + + // @ts-expect-error + const { shouldBreakOutOnEnter } = editor + + // @ts-expect-error + editor.shouldBreakOutOnEnter = element => + element.type === 'large-body' ? true : shouldBreakOutOnEnter(element) + + return editor +} + +export default withLargeBody diff --git a/templates/website/src/fields/richText/leaves.ts b/templates/website/src/fields/richText/leaves.ts new file mode 100644 index 0000000000..ed53cba185 --- /dev/null +++ b/templates/website/src/fields/richText/leaves.ts @@ -0,0 +1,5 @@ +import type { RichTextLeaf } from 'payload/dist/fields/config/types' + +const defaultLeaves: RichTextLeaf[] = ['bold', 'italic', 'underline'] + +export default defaultLeaves diff --git a/templates/website/src/fields/slug/formatSlug.ts b/templates/website/src/fields/slug/formatSlug.ts new file mode 100644 index 0000000000..bb33fc1f54 --- /dev/null +++ b/templates/website/src/fields/slug/formatSlug.ts @@ -0,0 +1,27 @@ +import type { FieldHook } from 'payload/types' + +const format = (val: string): string => + val + .replace(/ /g, '-') + .replace(/[^\w-]+/g, '') + .toLowerCase() + +const formatSlug = + (fallback: string): FieldHook => + ({ operation, value, originalDoc, data }) => { + if (typeof value === 'string') { + return format(value) + } + + if (operation === 'create') { + const fallbackData = data?.[fallback] || originalDoc?.[fallback] + + if (fallbackData && typeof fallbackData === 'string') { + return format(fallbackData) + } + } + + return value + } + +export default formatSlug diff --git a/templates/website/src/fields/slug/index.ts b/templates/website/src/fields/slug/index.ts new file mode 100644 index 0000000000..0e02a12ebb --- /dev/null +++ b/templates/website/src/fields/slug/index.ts @@ -0,0 +1,23 @@ +import type { Field } from 'payload/types' + +import formatSlug from '../../hooks/formatSlug' +import deepMerge from '../../utilities/deepMerge' + +type Slug = (fieldToUse?: string, overrides?: Partial) => Field + +export const slugField: Slug = (fieldToUse = 'title', overrides = {}) => + deepMerge>( + { + name: 'slug', + label: 'Slug', + type: 'text', + index: true, + admin: { + position: 'sidebar', + }, + hooks: { + beforeValidate: [formatSlug(fieldToUse)], + }, + }, + overrides, + ) diff --git a/templates/website/src/globals/Footer.ts b/templates/website/src/globals/Footer.ts new file mode 100644 index 0000000000..44102c672b --- /dev/null +++ b/templates/website/src/globals/Footer.ts @@ -0,0 +1,22 @@ +import type { GlobalConfig } from 'payload/types' + +import link from '../fields/link' + +export const Footer: GlobalConfig = { + slug: 'footer', + access: { + read: () => true, + }, + fields: [ + { + name: 'navItems', + type: 'array', + maxRows: 6, + fields: [ + link({ + appearances: false, + }), + ], + }, + ], +} diff --git a/templates/website/src/globals/Header.ts b/templates/website/src/globals/Header.ts new file mode 100644 index 0000000000..570678cfd4 --- /dev/null +++ b/templates/website/src/globals/Header.ts @@ -0,0 +1,22 @@ +import type { GlobalConfig } from 'payload/types' + +import link from '../fields/link' + +export const Header: GlobalConfig = { + slug: 'header', + access: { + read: () => true, + }, + fields: [ + { + name: 'navItems', + type: 'array', + maxRows: 6, + fields: [ + link({ + appearances: false, + }), + ], + }, + ], +} diff --git a/templates/website/src/hooks/formatSlug.ts b/templates/website/src/hooks/formatSlug.ts new file mode 100644 index 0000000000..bb33fc1f54 --- /dev/null +++ b/templates/website/src/hooks/formatSlug.ts @@ -0,0 +1,27 @@ +import type { FieldHook } from 'payload/types' + +const format = (val: string): string => + val + .replace(/ /g, '-') + .replace(/[^\w-]+/g, '') + .toLowerCase() + +const formatSlug = + (fallback: string): FieldHook => + ({ operation, value, originalDoc, data }) => { + if (typeof value === 'string') { + return format(value) + } + + if (operation === 'create') { + const fallbackData = data?.[fallback] || originalDoc?.[fallback] + + if (fallbackData && typeof fallbackData === 'string') { + return format(fallbackData) + } + } + + return value + } + +export default formatSlug diff --git a/templates/website/src/hooks/populateArchiveBlock.ts b/templates/website/src/hooks/populateArchiveBlock.ts new file mode 100644 index 0000000000..5bbb63be78 --- /dev/null +++ b/templates/website/src/hooks/populateArchiveBlock.ts @@ -0,0 +1,59 @@ +import type { AfterReadHook } from 'payload/dist/globals/config/types' + +import type { Page, Post } from '../payload-types' + +export const populateArchiveBlock: AfterReadHook = async ({ doc, req: { payload } }) => { + // pre-populate the archive block if `populateBy` is `collection` + // then hydrate it on your front-end + + const layoutWithArchive = await Promise.all( + doc.layout.map(async block => { + if (block.blockType === 'archive') { + const archiveBlock = block as Extract & { + populatedDocs: Array<{ + relationTo: 'pages' | 'posts' + value: string + }> + } + + if (archiveBlock.populateBy === 'collection') { + const res: { totalDocs: number; docs: Post[] } = await payload.find({ + collection: archiveBlock.relationTo, + limit: archiveBlock.limit || 10, + where: { + ...(archiveBlock?.categories?.length > 0 + ? { + categories: { + in: archiveBlock.categories + .map(cat => { + if (typeof cat === 'string') return cat + return cat.id + }) + .join(','), + }, + } + : {}), + }, + sort: '-publishedDate', + }) + + return { + ...block, + populatedDocsTotal: res.totalDocs, + populatedDocs: res.docs.map((thisDoc: Post) => ({ + relationTo: archiveBlock.relationTo, + value: thisDoc.id, + })), + } + } + } + + return block + }), + ) + + return { + ...doc, + layout: layoutWithArchive, + } +} diff --git a/templates/website/src/hooks/populatePublishedDate.ts b/templates/website/src/hooks/populatePublishedDate.ts new file mode 100644 index 0000000000..43fa82d6e9 --- /dev/null +++ b/templates/website/src/hooks/populatePublishedDate.ts @@ -0,0 +1,15 @@ +import type { BeforeChangeHook } from 'payload/dist/collections/config/types' + +export const populatePublishedDate: BeforeChangeHook = ({ data, req, operation }) => { + if (operation === 'create' || operation === 'update') { + if (req.body && !req.body.publishedDate) { + const now = new Date() + return { + ...data, + publishedDate: now, + } + } + } + + return data +} diff --git a/templates/website/src/hooks/revalidatePage.ts b/templates/website/src/hooks/revalidatePage.ts new file mode 100644 index 0000000000..0b042d81a4 --- /dev/null +++ b/templates/website/src/hooks/revalidatePage.ts @@ -0,0 +1,35 @@ +import type { AfterChangeHook } from 'payload/dist/collections/config/types' + +// ensure that the home page is revalidated at '/' instead of '/home' +export const formatAppURL = ({ doc }): string => { + const pathToUse = doc.slug === 'home' ? '' : doc.slug + const { pathname } = new URL(`${process.env.PAYLOAD_PUBLIC_SITE_URL}/${pathToUse}`) + return pathname +} + +// Revalidate the page in the background, so the user doesn't have to wait +// Notice that the hook itself is not async and we are not awaiting `revalidate` +export const revalidatePage: AfterChangeHook = ({ doc, req }) => { + const revalidate = async (): Promise => { + let url + + try { + url = formatAppURL({ doc }) + const res = await fetch( + `${process.env.PAYLOAD_PUBLIC_SITE_URL}/api/revalidate?secret=${process.env.REVALIDATION_KEY}&revalidatePath=${url}`, + ) + + if (res.ok) { + req.payload.logger.info(`Revalidated path ${url}`) + } else { + req.payload.logger.error(`Error revalidating path ${url}`) + } + } catch (err: unknown) { + req.payload.logger.error(`Error hitting revalidate route for ${url}`) + } + } + + revalidate() + + return doc +} diff --git a/templates/website/src/payload-types.ts b/templates/website/src/payload-types.ts new file mode 100644 index 0000000000..b703856788 --- /dev/null +++ b/templates/website/src/payload-types.ts @@ -0,0 +1,604 @@ +/* tslint:disable */ +/** + * This file was automatically generated by Payload CMS. + * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, + * and re-run `payload generate:types` to regenerate this file. + */ + +export interface Config { + collections: { + users: User; + categories: Category; + pages: Page; + posts: Post; + media: Media; + forms: Form; + 'form-submissions': FormSubmission; + redirects: Redirect; + }; + globals: { + header: Header; + footer: Footer; + }; +} +export interface User { + id: string; + name?: string; + roles?: ('admin' | 'user')[]; + email?: string; + resetPasswordToken?: string; + resetPasswordExpiration?: string; + loginAttempts?: number; + lockUntil?: string; + createdAt: string; + updatedAt: string; + password?: string; +} +export interface Category { + id: string; + title?: string; + parent?: string | Category; + breadcrumbs: { + doc?: string | Category; + url?: string; + label?: string; + id?: string; + }[]; + createdAt: string; + updatedAt: string; +} +export interface Page { + id: string; + title: string; + publishedDate?: string; + hero: { + type: 'none' | 'highImpact' | 'mediumImpact' | 'lowImpact'; + richText: { + [k: string]: unknown; + }[]; + links: { + link: { + type?: 'reference' | 'custom'; + newTab?: boolean; + reference: { + value: string | Page; + relationTo: 'pages'; + }; + url: string; + label: string; + appearance?: 'default' | 'primary' | 'secondary'; + }; + id?: string; + }[]; + media: string | Media; + }; + layout: ( + | { + ctaBackgroundColor?: 'white' | 'black'; + richText: { + [k: string]: unknown; + }[]; + links: { + link: { + type?: 'reference' | 'custom'; + newTab?: boolean; + reference: { + value: string | Page; + relationTo: 'pages'; + }; + url: string; + label: string; + appearance?: 'primary' | 'secondary'; + }; + id?: string; + }[]; + id?: string; + blockName?: string; + blockType: 'cta'; + } + | { + backgroundColor?: 'white' | 'black'; + columns: { + size?: 'oneThird' | 'half' | 'twoThirds' | 'full'; + richText: { + [k: string]: unknown; + }[]; + enableLink?: boolean; + link: { + type?: 'reference' | 'custom'; + newTab?: boolean; + reference: { + value: string | Page; + relationTo: 'pages'; + }; + url: string; + label: string; + appearance?: 'default' | 'primary' | 'secondary'; + }; + id?: string; + }[]; + id?: string; + blockName?: string; + blockType: 'content'; + } + | { + form: string | Form; + enableIntro?: boolean; + introContent: { + [k: string]: unknown; + }[]; + id?: string; + blockName?: string; + blockType: 'formBlock'; + } + | { + mediaBlockBackgroundColor?: 'white' | 'black'; + position?: 'default' | 'fullscreen'; + media: string | Media; + id?: string; + blockName?: string; + blockType: 'mediaBlock'; + } + | { + introContent: { + [k: string]: unknown; + }[]; + populateBy?: 'collection' | 'selection'; + relationTo?: 'pages'; + categories?: string[] | Category[]; + limit?: number; + selectedDocs?: + | ( + | { + value: string; + relationTo: 'pages'; + } + | { + value: string; + relationTo: 'posts'; + } + )[] + | ( + | { + value: Page; + relationTo: 'pages'; + } + | { + value: Post; + relationTo: 'posts'; + } + )[]; + populatedDocs?: + | ( + | { + value: string; + relationTo: 'pages'; + } + | { + value: string; + relationTo: 'posts'; + } + )[] + | ( + | { + value: Page; + relationTo: 'pages'; + } + | { + value: Post; + relationTo: 'posts'; + } + )[]; + populatedDocsTotal?: number; + id?: string; + blockName?: string; + blockType: 'archive'; + } + )[]; + slug?: string; + parent?: string | Page; + breadcrumbs: { + doc?: string | Page; + url?: string; + label?: string; + id?: string; + }[]; + meta: { + title?: string; + description?: string; + image?: string | Media; + }; + _status?: 'draft' | 'published'; + createdAt: string; + updatedAt: string; +} +export interface Media { + id: string; + alt: string; + caption?: { + [k: string]: unknown; + }[]; + url?: string; + filename?: string; + mimeType?: string; + filesize?: number; + width?: number; + height?: number; + createdAt: string; + updatedAt: string; +} +export interface Form { + id: string; + title: string; + fields: ( + | { + name: string; + label?: string; + width?: number; + defaultValue?: string; + required?: boolean; + id?: string; + blockName?: string; + blockType: 'text'; + } + | { + name: string; + label?: string; + width?: number; + defaultValue?: string; + required?: boolean; + id?: string; + blockName?: string; + blockType: 'textarea'; + } + | { + name: string; + label?: string; + width?: number; + defaultValue?: string; + options: { + label: string; + value: string; + id?: string; + }[]; + required?: boolean; + id?: string; + blockName?: string; + blockType: 'select'; + } + | { + name: string; + label?: string; + width?: number; + required?: boolean; + id?: string; + blockName?: string; + blockType: 'email'; + } + | { + name: string; + label?: string; + width?: number; + required?: boolean; + id?: string; + blockName?: string; + blockType: 'state'; + } + | { + name: string; + label?: string; + width?: number; + required?: boolean; + id?: string; + blockName?: string; + blockType: 'country'; + } + | { + name: string; + label?: string; + width?: number; + defaultValue?: number; + required?: boolean; + id?: string; + blockName?: string; + blockType: 'number'; + } + | { + name: string; + label?: string; + width?: number; + required?: boolean; + defaultValue?: boolean; + id?: string; + blockName?: string; + blockType: 'checkbox'; + } + | { + message?: { + [k: string]: unknown; + }[]; + id?: string; + blockName?: string; + blockType: 'message'; + } + | { + name: string; + label?: string; + width?: number; + basePrice?: number; + priceConditions: { + fieldToUse?: string; + condition?: 'hasValue' | 'equals' | 'notEquals'; + valueForCondition?: string; + operator?: 'add' | 'subtract' | 'multiply' | 'divide'; + valueType?: 'static' | 'valueOfField'; + valueForOperator?: string; + id?: string; + }[]; + required?: boolean; + id?: string; + blockName?: string; + blockType: 'payment'; + } + )[]; + submitButtonLabel?: string; + confirmationType?: 'message' | 'redirect'; + confirmationMessage: { + [k: string]: unknown; + }[]; + redirect: { + url: string; + }; + emails: { + emailTo?: string; + cc?: string; + bcc?: string; + replyTo?: string; + emailFrom?: string; + subject: string; + message?: { + [k: string]: unknown; + }[]; + id?: string; + }[]; + createdAt: string; + updatedAt: string; +} +export interface Post { + id: string; + title: string; + publishedDate?: string; + hero: { + type: 'none' | 'highImpact' | 'mediumImpact' | 'lowImpact'; + richText: { + [k: string]: unknown; + }[]; + links: { + link: { + type?: 'reference' | 'custom'; + newTab?: boolean; + reference: { + value: string | Page; + relationTo: 'pages'; + }; + url: string; + label: string; + appearance?: 'default' | 'primary' | 'secondary'; + }; + id?: string; + }[]; + media: string | Media; + }; + layout: ( + | { + ctaBackgroundColor?: 'white' | 'black'; + richText: { + [k: string]: unknown; + }[]; + links: { + link: { + type?: 'reference' | 'custom'; + newTab?: boolean; + reference: { + value: string | Page; + relationTo: 'pages'; + }; + url: string; + label: string; + appearance?: 'primary' | 'secondary'; + }; + id?: string; + }[]; + id?: string; + blockName?: string; + blockType: 'cta'; + } + | { + backgroundColor?: 'white' | 'black'; + columns: { + size?: 'oneThird' | 'half' | 'twoThirds' | 'full'; + richText: { + [k: string]: unknown; + }[]; + enableLink?: boolean; + link: { + type?: 'reference' | 'custom'; + newTab?: boolean; + reference: { + value: string | Page; + relationTo: 'pages'; + }; + url: string; + label: string; + appearance?: 'default' | 'primary' | 'secondary'; + }; + id?: string; + }[]; + id?: string; + blockName?: string; + blockType: 'content'; + } + | { + form: string | Form; + enableIntro?: boolean; + introContent: { + [k: string]: unknown; + }[]; + id?: string; + blockName?: string; + blockType: 'formBlock'; + } + | { + mediaBlockBackgroundColor?: 'white' | 'black'; + position?: 'default' | 'fullscreen'; + media: string | Media; + id?: string; + blockName?: string; + blockType: 'mediaBlock'; + } + | { + introContent: { + [k: string]: unknown; + }[]; + populateBy?: 'collection' | 'selection'; + relationTo?: 'pages'; + categories?: string[] | Category[]; + limit?: number; + selectedDocs?: + | ( + | { + value: string; + relationTo: 'pages'; + } + | { + value: string; + relationTo: 'posts'; + } + )[] + | ( + | { + value: Page; + relationTo: 'pages'; + } + | { + value: Post; + relationTo: 'posts'; + } + )[]; + populatedDocs?: + | ( + | { + value: string; + relationTo: 'pages'; + } + | { + value: string; + relationTo: 'posts'; + } + )[] + | ( + | { + value: Page; + relationTo: 'pages'; + } + | { + value: Post; + relationTo: 'posts'; + } + )[]; + populatedDocsTotal?: number; + id?: string; + blockName?: string; + blockType: 'archive'; + } + )[]; + slug?: string; + parent?: string | Post; + breadcrumbs: { + doc?: string | Post; + url?: string; + label?: string; + id?: string; + }[]; + meta: { + title?: string; + description?: string; + image?: string | Media; + }; + _status?: 'draft' | 'published'; + createdAt: string; + updatedAt: string; +} +export interface FormSubmission { + id: string; + form: string | Form; + submissionData: { + field: string; + value: string; + id?: string; + }[]; + payment: { + field?: string; + status?: string; + amount?: number; + paymentProcessor?: string; + creditCard: { + token?: string; + brand?: string; + number?: string; + }; + }; + createdAt: string; + updatedAt: string; +} +export interface Redirect { + id: string; + from: string; + to: { + type?: 'reference' | 'custom'; + reference: + | { + value: string | Page; + relationTo: 'pages'; + } + | { + value: string | Post; + relationTo: 'posts'; + }; + url: string; + }; + createdAt: string; + updatedAt: string; +} +export interface Header { + id: string; + navItems: { + link: { + type?: 'reference' | 'custom'; + newTab?: boolean; + reference: { + value: string | Page; + relationTo: 'pages'; + }; + url: string; + label: string; + }; + id?: string; + }[]; +} +export interface Footer { + id: string; + navItems: { + link: { + type?: 'reference' | 'custom'; + newTab?: boolean; + reference: { + value: string | Page; + relationTo: 'pages'; + }; + url: string; + label: string; + }; + id?: string; + }[]; +} diff --git a/templates/website/src/payload.config.ts b/templates/website/src/payload.config.ts new file mode 100644 index 0000000000..2134b13a89 --- /dev/null +++ b/templates/website/src/payload.config.ts @@ -0,0 +1,78 @@ +import { payloadCloud } from '@payloadcms/plugin-cloud' +import FormBuilder from '@payloadcms/plugin-form-builder' +import nestedDocs from '@payloadcms/plugin-nested-docs' +import redirects from '@payloadcms/plugin-redirects' +import seo from '@payloadcms/plugin-seo' +import type { GenerateTitle } from '@payloadcms/plugin-seo/types' +import path from 'path' +import { buildConfig } from 'payload/config' + +import Categories from './collections/Categories' +import { Media } from './collections/Media' +import { Pages } from './collections/Pages' +import { Posts } from './collections/Posts' +import Users from './collections/Users' +import BeforeDashboard from './components/BeforeDashboard' +import { Footer } from './globals/Footer' +import { Header } from './globals/Header' + +const generateTitle: GenerateTitle = () => { + return 'My Website' +} + +const mockModulePath = path.resolve(__dirname, './emptyModuleMock.js') + +export default buildConfig({ + admin: { + user: Users.slug, + components: { + // The BeforeDashboard component renders the 'welcome' block that you see after logging into your admin panel. + // Feel free to delete this at any time. Simply remove the line below and the import BeforeDashboard statement on line 15. + beforeDashboard: [BeforeDashboard], + }, + webpack: config => ({ + ...config, + resolve: { + ...config.resolve, + alias: { + ...config.resolve?.alias, + express: mockModulePath, + }, + }, + }), + }, + serverURL: process.env.PAYLOAD_PUBLIC_SERVER_URL, + collections: [Users, Categories, Pages, Posts, Media], + globals: [Header, Footer], + typescript: { + outputFile: path.resolve(__dirname, 'payload-types.ts'), + }, + graphQL: { + schemaOutputFile: path.resolve(__dirname, 'generated-schema.graphql'), + }, + ...(process.env.PAYLOAD_PUBLIC_SITE_URL + ? { + cors: [process.env.PAYLOAD_PUBLIC_SITE_URL].filter(Boolean), + csrf: [process.env.PAYLOAD_PUBLIC_SITE_URL].filter(Boolean), + } + : {}), + plugins: [ + FormBuilder({ + fields: { + payment: true, + }, + }), + nestedDocs({ + collections: ['pages', 'posts', 'categories'], + }), + redirects({ + collections: ['pages', 'posts'], + }), + seo({ + collections: ['pages', 'posts'], + generateTitle, + uploadsCollection: 'media', + }), + payloadCloud(), + ], +}) diff --git a/templates/website/src/seed/course.jpg b/templates/website/src/seed/course.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b692efa9f9f1b86d1bcb465512a37b998a9e07e9 GIT binary patch literal 248185 zcmb@tWn5cL*FG8wl;RYJBE^flOH0t;1b26Lr=_?P ztIC3uWS$!UfEQSf7ET^7@BjcOXHR#q9Pq8Kp8i|34FD2=41f$^1_+y3c(_WcsVM>e zkL7OZx%YFKXa8rc|6{lR_XZ40D-Vn3rl;p>Y~kwe2>>7&K4VNDPuG92?K37cclZ|v z{)640C-^K+`Ul(m2bcca=Rdgp-#(gPspmdZ&-jDQ|H9_~3;)k`pSu8%EqMMp{r_7$ zt$d&74*-C40f2w*>3>H5@4fo344L?O3cSzHqV&Hqmtp`w==NEj^k12I768x|4gip@ z{Z~d`2ms)Q0RXKC3om!?|6Bt={(PQ98b`K3g}idWyu*7>r2dAF=8`#yhg1|Ii>mHp zbmrjdj~d;W9awAE7c@V3#P#>@-*rG3-~}==G72&ZDk{p$f6A*@XlSoqVWVR_AJ_y~ zI9Sggg4cwvai1#{DG?DV6&)o7B^?U`0}DS7zl@9_(*M^1{tf_Mzd{9|eL_Z}1-y8T zg!~%m?+`%f`C+0U|D(wNcR_uDjPeqIg!T#@0||hH`oEh1F91l-Kj9_XtG{aiEMz3W z3q0g!{RTX^Zl{rmRd}{4dUfE4y5VB1rB$F~S;1FQum|_q1(L2WZGzHnX?AvV}}FSj3-wx!;jUNocuJ5gQ!O z3#tGIE#;|Pt?M%pm8D3WsB*jHcp9T?{{G<)tR1v{mTNS~$5>$|TR|0ylb|ZEw`mxf%vV0*U6B2JKdq75|~GGwAk#ubd`v`U_?omW3fn zm8a6pPfpz!k$kmsQw3+bZ~<2outL$15 zJA_K4Kg;KOEd!-RtCbq!*aeffT+p>0sVqukXD>mi%NyIL$@;4@pOnQqqPm1K`+4y3 z(oz2z#mD*fHuGE@*XwlYq9&c0 zlOF z-iD+L?9*>q)2FtFC1vnI@VX@*)Pgda9u6p^YF*eXbSb=WM8%sYnUTL}CE>&xh+XWUYl2N%b-;77ma5Ym8?nb2h$1;7L&o2n z{$evX#@I#6QQWL*D#if2{bf^2z(>DJ!H+v4U**HgJylq13p~_vb27;DK2Iz@C7^XI z2-04KIEPR}4|IaR>#+U$9a(+td@y#d^)!E4AhHR6s59*m-RN#x?!A5h-5`$zG1YqG zXnFQGTQ-e`H>X;&jqzY}exZ7J=p^_l)pD6AC$~&=to`dAGVuJn%cQD@v&sc zRs0iOkr`si{o?YE&wRC?L16zGUEvWw%ev$tkCe!~CbL#2VHSRVg`|OBMeYfT84@NK z^9v_I_tGhmW0GoDS8gfmPm8-d=R8j(zWF)E@ zaI-0qRb}(a#3+M%!{S7ol7#4XwQlY;0hVk(q>`a_C|y)wqqPJF-?_y7fXnb5YSu8n zbO?7!{Q1a>bIl5>Q0u;Y+7Y~|OD-kNqwOdOc?@q9EjHK`lvM2QVQOtzu;})!!OXn# zZH{H5;xP;-B+>j~_TfUVfbAevJZR?(;}12fI%}W#qL}2yFBdY5>LGzkFbNxRpWK|2 zkRUXuGh_|A)2G-r%P}ux3I?->6f|SCH~UzVj?|R9%-wn|r+B%zUPtnk!iAyR`cl~- zvdm|FgUGso{-c7)Wo7h5LktfZ`Xm{M?q8g;8MLBsmY_DZ_B6W`f4>s!v3Q07&rC>W z`81^%<-LUjJoSuY+-a!WKUnNDI-@iJ2`dlbOg``?S&(TkH8Xbwl5KlgD#vn)n}Z|I zYo{msE4jceshmndYIf7}SFH$wVFf`8x$)5$(_pot%iroi1`W3N$?RqISiG_!IYl0ply^7?bMFP$pv=9))}^gy~6{lE;|TaZd4K{AN#l$y#65e1MZ1td?b@aaC{d~ z2+=5>ywOT*Ge!|QulOmeGydGmAB+9o;mb(_3Q2r?usN(iAZ)I;if(xKKUTU5_Iy*! zzWvB|)JebfaX|!&Np>vOn(E`#uOqqfuK1wNh<~%?rGB9wJ|r&=X<%qU3DkRtUNhJ{G;s_dE5q9% zH{P0DR{0Qo&j8ZvGFiAIL$e8&OnQY&<4Yi$hQ1TN2+Z(#DnJ&WeLmm|lbeR*{@@NNYv$Qi9$rmK@^r40J^{KkP2laQ1Jx zfUN&9Z>cF+(dHzj$yw2MI1Kbj@S7n%2e);ZqkPU(JV;=o5&FmC|366HyvO_03lmQ4eqi-9JU(_m= zEJJpwEO+&=z@fTmNR1MNyJdFY)uxv?pMWRu^ZQ9Aykm-wy5zCv3QJyFl1B+xE&_i6 zMbi9s2YeVAHB~?^A34YM7|lAiNvFCvwkhtEra2MT<*WPY_bq)~0e?)A0!Y3Dw{1oC z1P~k)bav0ziZ9w%uG`u*z0EfU- z-S>wQUnmd6X;#K4Kazz92;TMA*3A~`w6De1xppRwG1L%K6X*>fTvD-ctwim~aG!j; z9NFmbBGL`nFTFG&1b*H{Ci2m;Rt~$WfwD;BT00Vjt$q#&cAB~+x~v@5Xq2TY!caMFLeP&aytSuCmR@fZJZcQF6D-{C1@t! zafk=U1FhxvedyOe<<2668Cz7fV`H)yH&~2Ij^<8`L$4~T#7)AOvvL-=F%>{lL(RPS zvgxU?tY`)fJ9_J9ik(TP@y*y13|Nvyo|H;}ORP_^dXX#rVRBvrLb61{uewmso}#SnzAYHaPFOZbY4k)!Ko0_f2FTFv>^C(B1_GNq@$xXy)1}EfzWy z($4D)$QWfs08{K~(e(2Ti2_gqGF}|({-V4a@Avk=pFY4Z*@EePpY%q8$}A+o!9rf1p? zji#}##K8Wy31^_^+$#co0?y3eJ@sXjl=Je3@UXxCO<2h2!}ACG>d~e zqM_od1)loE*5U3&-nIOH)IT1K^0Vd&YaMwe=t$MP);tryc=)9Wr33L6sb#ts8wr`3 z*~#VMifQnCWo>yTR~rIrA`^xhZCZ(b4*et5 zqfWn6j!5P9l@Nxo@eYieZGsP|cF=|Vbc`?5)UpxegVG5_%uL=QAdq+K`nAlO3o&JK!l-G`%rW$#-cE!&IY}L>!-E6WDw7$g2MAy2H|T`enla=n3SmxjhSqLx#9o8y$U zli89;b(l7evdQ3I07r1?)5wM2R_I!XoC)HT?a$QpUqETQqF3D@sCoB+q%c%5ecE#i6qqXM2aT!a~)pY1TVqjiNgO>6ar zYd0UNOa3T#(VCvNcQsHcqiKl3tq~Wa?2JtD3k+ybf7_*m=|RHKeJVCs1Cm7q)ZSnl z3h&FMt--&UybF#B+^1CAFA{I23BZ<^1rF7SnRzNM{?5o-7uKuGd+`?gNy18hqt~X0 z!FPWXf0Lh-)cTg}#7)1&toOtnM<9bKIymdv#OUlHQK1XNrP7@&E84m(nt@e8e`=@^ zb54Hxh;8YT@e-u?#*H~xgHrbLhoK*ax7QuDWgEF0@AL_XrtIyP z&Q5%LfnN`yypxj%a1D%}5-|;wyeo}v|HX^?HG66)`9XOaeXe3*YM^|l$V~xPhz6J~ zVV^J-vu#r*tr53u)*F3V`ge|R~Jf_t z$$pSpbkVqbJ=t=hnV)o;?AGO#&R~F#I@qO1>CQhFcCz0W_b2sf{YJuNg{u4qNz2n; zz|5I(+@AJ^ynmpEl%QK6@Ab#SQFy`*a@CDKcAIGJjhxNS=0^nV+^7pdd7=uy{v>sd z?oQuCM&!=*X}#F+*we}VXL>f4K3@6`F?y(14h`zfSCXSf$$(ZZcJJmC9x(Ka1C@P8 znf$czDF!dK1oF%TUeqsoD+C8J!;pq`ij6{c>_C>73;W@m>^5;opuSrw(h%(ziKMmu zNM067(AN>yq{cFbmV;ztXLeBzDN|1Z`On5V*s($6zV4#VS^1Zv$;2z4t6ZV_))C6p zFpouenEh+Tw0$58qi-gAoU9`z%NUVDvvp{S=c^jPajWpB-cRp1WKX*jF5NSvI=^uC z#M0_68drV4C@}dT5inkFE#GlpYJY?BTR6cpyG?(;#qqaKuD>-5zni-J!F zWb5|t_LU>~lhJ=D$T9B0_$-4RcuLYO(=AcX+c&~E&2wa4qFlN!e-<$vKa!|~cY`x1 zN9|Mxyi(gNI%9x4B0KCW^-RzQ+|?~rXyXw2fT&5iK)V|686n}qUDmHnRj7r-wLuB;GdLQH+`B$F_O~MPNe)RQ zKAQK*AzNaLNuLpQES)5VS}{&^EUh$=Q8nn5(q+0+TZ&zkav6!h3Zbw2*BD6)tdM$^*`yPMaKv}sT9L@5 z^sd({t3Jug-HiTm-XrgDS#=@dz<@;J3`>?%$@>CO>BY)=>!4I4Ar>+{; zqDN@&?wvAL$L`97wtt(>wznvWOc;qv_FmwML-${RtY(%TcdT}M{TiIzv_5yH?CmFy z`{VHdp5MOHrJ?ipSr*6)g8g1_C#kO3~9eDAlrWERO^s-%!1w0} zVf(X3TpT;r6}8j1v3$!ElvwK}+mB&Y5`KB$K|&))WhAg9=rECidF(_% zW9F+WgX1u<<=GpV*|g(Xvo@gaLw5amJru4EsQF>aiD_0?&s`DSEv`q3ow)Om6GJfq5& zWRU9HrC{N=uWWQ@Tu%4B8AFe9NIh%y3!*ue1$9kXX8bRRlG(A+iPk;}9py&!X173zg=8BEk$QT8bWu1rUN60}9QDOQql3=QI zoF=nc??O$`52mOM&&mi(n>Wgss^bL2S)u(&T&4DNk($#oTr`jY8w32esaWe~I&z-{}~ImXh1>p?STk28w@Q57ZGldJ^&NHNUI@Bs6506Z^Aj z!^72&yYn}5Rw#VBtPb>q8I}>?;n8|Y&WC`#GxazLJ=@{(L$z@G+Er&A?JW;rGh9GG z&5Mp{dHx$H%n|<+C_Klf@h+fe3)jblpz;05YRoM0 zRjN|EM<~&md0*d$%61bnKcLE#a_cf? zKM5nzkD7tNiowWJ72?=Gn4_%b)nBTRdqpN>yqu=*B9p^f9P&yX{oX#zzH;K7`ozoz z)*@R*d03yx_o--}vQUJX-b)qgt-_b8bWQbVS3$$<)1DPsee(^ir<(GE92zgxC?hRs z^F_tu|>@wyZJxz2L%u_BO)1!v|qlcsl%IA=$6hHJ{{oQG?9=Sx-IvXrx9}mSo^`T zS-KrUp3jVHF~rV1N*O7ZirIyu0dTWGkh~t6v((P7((cyw;NTManQ2+B-pMW~spK3)ph@qi=e4mmpXsnSdDJiJGr|0kt~4|3 z1nr#$3rB9$zuAZSOIf{QG)xLKQ3XMPV44fH*oFt-e zn+_}JWrMN~-Wc$nkAj626Ha(9hFpye8gEj|(=c0*Z;35U|JVwG)foM?z zq;X*)M-QV<*TQH;Lixd&8s&0*fD_3OTK<@L4$*q7NK%cKHVctqhM%zt2A77a%#K|2 z)Kfhb(+@o+GN+n2&;tqRutEVfo7rogMr+I%^w&itj@2u})`x|9&f^3R^+k+h7U;i* z4LCttUR#A6se_}|jaVS#O8!Lbt`J{gK7l7|S z$}kHh!ju-x5B2YJ`7WX|;p#{sFB(MU68k(tHkwMf% zn{e>|LY}Yk%+}hLKUtE$Pz3ZQPIsbK(h*>r!I0eIWb;{LxhB>_UMrxgjB6^;kUMG) z&A&y&zf%I2QJ7C)LnhTN>9O;K3VmI1Vqyraa@>ng6BK|6$UpY5KS+#jEHXZ3()BmTjx{@Fqwr@i5H@ zHL;)55woHdDBoRlT;x;-b-$Wpb(e2l=8dDJof)_U+F!(t5+OxD^g71eKH`vYnMMd9 ze0e3Sml&Uv8Dm~05ZU)qmll|eVSnV$T91`cER?U&xS>q*)43?O9Zb3#!ol$-5I0@- zgzR@@VG!p5)$iT>j$zAn5Wx?wA>-o?kAOCH4=+s0>a7~(7YE=oVG%FI9|q-&P&KGx zA(D0{uJCbMY1?(eXIu$~zW}0}GF_y6#iL+wV(t$Uzbny_>)xCTIO^By7viw%mOVR( zBrg+IpO2zPU6OE%8Gi|j^LivqyW#%)=Ns3 z`t(`St8+Go2a0`FQW^|TDjts5(-f^ZNFOV=yW#e2YqM*gK(+^zOnKcQv5GmohAA;UxT5v@QtusdW=!$u4ZXU7)mmIab{Nw`)1pQ8PA?% zrljx)37;OZ1FhOFuLQCJ<8Ja`)Q#=#mr~ZtadmXdl5h6i7<>vk*nrRw=J?2np|Wu4W7;Z)L0=x?>XUI zC+91k-0LA?t65BWQDZ2HJTI?8p6Whg#sp$!la3$ZQ`S5iBz#b>;CG?ue)gF`XJj|n z+(cwi;sj@7M510M!~$D|qxhJjE2|5zIuBH5O?2)FA4;9A9D;T6IXZF0S?1u&d9W^w z_Unq*BY1hqtgXq1YW~Nx{XaHNHvQRo>r%LE%+;q*Y9n{mn6z^|@1Pvw(H@xZ-oaF+ zQG)W;Sb-Eayvp6;`MxdqSY%pEiEK-MYI+g(8V|^PP|f<;JvXMMypHvg`|bxXZlVuC zI7QW1jkE;G3?T+)1JU>2d#5?wHdWaV&&wEARGTO2(+{*R9)2bnXfyd7zA4~1`D1pp zotl2E`~7?U!k@u3n0&#D@Lx)|dY7>F$g=h#J-Q|np*@7?2OFau9b5X3)$Y`q)(G8R zl%^TEK|@wvokNPgS`BAyW<-~=QEb-LUx50RV~;BL&%xu-v`&^k>UY$cHNRCjm(Me< z5lhBCGk1~SY8)`b1M7aFUwJ6FsQc6*AJ!2xP zhItQ;cm@Tt3;U*vqi}sv!1JuLv91(aiBzh}F}7zss!O=(q``k#rrBxniPf-D)zGQ6 z#QW`Qw}T*_O*e1y+lV2Yu>}2Fe`p-@;e=x&e%%t+Mtk$n&?Z5WZ1=(qcXswlcO+@r zTYCjfw<-l_l>1v8dH#bFMn89fa_d8M1?J-X@nA+PkMyFaUEQdkj>rn83AQYvXL+YgbB>q zU3!0Dmit1sP^q=D-lY@&^!c&qs;Iuvt7aW~V$kC;67+HCYnR_n>C^8v2zizl^d|IV z@RL6$TDu-A$BjuwG4B#5H>a(}I+GWjkR@LYEP6x<9q7Tmk_Mb7zqHc{i+bqIE z8#Z(xobJ`8h_PszJTbwVAKm9MX^Reb`8G40lmV$;RA^nLnB5DO zQ9&=)5k3uFP>EIewP$BJPUQ0nja1z(g-z=sXC2n9?{b2LPqzO-;$3y)br;m3`V}wU zneh}Qd7Ewh*K$X_weQRe!KoZ%_F~t~8txZAKaQDbcH7KgqivZm1idc8U0B!23Bn%T zpt+7cEQq{iUFsqE{uf~R?dFn29P`sB-==bT+&(`v*Ekjz?sa3A+}?G>v1jEz0o?8` z=1_mh{uIe_8MT(5Os&EpBpWu-txe@*iQ>k1Ce?wo)gm!#!&7Aj)rUm;kl!AgpPI5= zy;^6mUbn`3`32A0aitkQB%~QtzfQ9d1R13n5!hiOZn9DapDu5e@{5Til*+vOnK*!G z?Wg^2nhQAk%;Wj)R`k`Wc#%5ed<;0P!zK4u0hYc)Z%L{aD2>#vxOy#I7l#=&GP&mi z_q(gjF=|YSJv%^cT3AA{eZ`B=7NBnjESGn6NkJ(LxWR>-|K>HY@$K$lF*nnpMgh5( z_mqVA!|KUj06C({^Z0pTXi2E+PU1m!`Q1}M|L?vS|M#4S^7n^N%b-OzSim`1-3-rH zc0zHyg6Yg$8g~xOAj>td2Q6E4rcAilZ5d!F(~%98 zS_CN5s5fF>E_}h+sVYHZkb(>-7z(>(p}Ur%)c2u}_`ONkwo{dIW6p`W0+V1btWvwF zP|E4!2y8f5atc!(L?~X;H_Cgnj+gcjePKz&I5E^ zWAEJNgj$nmS!wK_;PuB)qeW$O9w1et@MSS{x`!R{Jvf|km$=yRJW3VYrAXc7>XY81 z?M}DGX`%BHY-wtQ``z2jm(ni@J?RgOO>gg6$Ce&Qb!s1S7CI8ksp5b91vCVP_8oPj zb+}>bNeJE4W1Vrr0LZrtb*+_Ot6&8YT4;YGB&a}*@C|L;YmK^}C+H9uZUHH4OqfjBA zcZ-3#q26yHUtVd9tcF;v&T`{3eb%?Cz7=da4REE2q}9xS!x{?QO$L9LVMFSA4V)(m zwP?EV=oj!eHg3;O{VBknFG1RXLQ|9=k1GE`07-1merRzm4{$oeHcfbQni%Bq8oy8LO~Wg%3c-PtrLX+&$xGsxeT;}UjmEV)D zF>R8bd^99(d?1k428M01iE;g@v)Z1>1aAqAMkJe(_u9iZW*hq;R3LYJ1w@xYHkRL~CZMICRZ_JT>;8LF4G?w3t+|}vc7koX{ZbFLK z%;XrnCtg4)nYLV!q5Z=oasdB|`di?kW<~7=w=EF$ESS3I2DjjsVAi$A&kCEJ9yDu& z$<;-LSQOFIfPI_!T_SfI$t%U|)4J<{tp))$TKaU3YarD1c8Ee4^R(eG|R ziLIkZX+8Cp96En7cWKLaAk(BNGiPg;$mp}ehjgUA@S54gmzZM*59-5PaS{U$^d8f& z6_D6}fAuZU{0jS(l8 z>NgXT4W^(M*o!WG`#d=@aB4_+U$_H1JP zLT7u1Q8MvPVd?J*9bx-?9XvX%%U0Tq^>a0s2a04>u$^Yh0&W2G(1#+&5f`1!jm9m;U-E z6GMwxD*N-mbf{t-M*FP&Z8b4}a1CJPw^&O59g%pU8sL)=j}{GB)^-zRFg`02&v9@T zTZ6qTt99$PUzDWUHBUyVXXQK7KPw*3%=yfjp8rV$d0ubZN=@x!JYH(J%F}S})L%7V zYFSHRS9Ze8T+7QFS%NI&+JI-n$v2jUmwTWhhVzw#+lJC7@n@oN+2=SSp_Ipa4xH0I zsbIWwlsc8z!b7(si{U~plo8*4dOd5ROtS(nPu;;#W)nNkC8w|p5KUZhX~w+>eD9*r zq$AEd?)6gmFTj*(>eLTWzicLNM4oI{zEIHP7K{7FYxB6(euzQtaG3eKnNe^S>hXI0 z#@uttM>hWbRA*r0=U5I9>gSvQN^_F1)xpeN%rOh3HCi@$o=gav%w9o`3Aoq7v1hc_ zqj1I(uO|0b$*ovHg|$@3K2@UrHMQGyeeuIjQ6u-+c}qPT)QpgMUCS0#flD_HS}j(h z;!NYzFb?Ic@uu@g=NIhD-Lr=*+ZZP*hlFV!)z_?-Is_I6n_k~)jcxO?_eA2;dmMU{ zt4@hJ05w9fNu~x!whtichTuwm=Px>w-4Z2cxH*Ni$u{zvd-E&KyHM#iDH>kS%B}A;hFn6QFiHlUR`Kbk?Oq`= z36IGV@dH}?&Txo=tO;}Yv2|-?T$VsIDtNra4zJ}ykz^&Ifm=0$ z63)L8M<4PiMnkVzy&awwt$)9PLx~CB?ENx`lswpsOkS_>;ZR+^CWPR`6nDm(nj%A& zi>~zZGP_9OlJt%@H-%2%o=NDLw0e|nk_aKjP!8XtiONo1TSY(bV#j;Q8#rqRD4KJ| zFYE~PkLCJ@HN%<>MwRz((w`GQPV5w~>`Sc$q}H8GkKKe)s+Q=x=aTCEhjORZRGcss z1!I8wH>E0Pte`1{r1l*S9-r57`5Fc^Zf=Jk7DYXokS_-(MP@;YKhzI0-OGg151Yd=#D)% zFCvFV?GRF8m{zX6u9Kll2hTeNrfg!GDbXI3B5{v+k6FY%NlT}sc3+Et{Hc2*xfbep zls+?~C758)AmB}nSsX+R7ttpq5&3kr9CU3t+qLC9y5iSnJh^$p??0-2jdP#u_p8aR zPxl%P3cy`SH<%L7tG8^NtJptWryb5y0dhw18UuYW_~$unoHTnAfx$BC9cMo+Slz0< zHp;74kaZ(kAK$SCms^q4s$KZ7gs`U6erPhEHuxkSChSgP!B5zqD-ATKuY}Vkl$XfL zkn~LB@Ar?Iizal?c~$Jh4v_1M@qVZ;2vM1KPxD4i@egOwRGKE21}`Re@(~qVLgp*p zbiC(2~Q3B#&kEw;25#*?CWFP&P+e)j{hl(lG8Q zdKR9Pv2_gKAKn&xqSwo+MLj|w1$N|orXtvYvg0C(1F@_ z(YfA&9ZI^SLx;T3*!6et*hq}g;26QUTRIWfonjk~1whbToL55QU?*>KOdojLUFs+% z%WW-{mGXU_F0JU>C?c@)1`EYBxg<0-Cr*WN7Tm5MhB7kN`RR*fZ6Pijd08Uu6Z|d% z{^tOL?|5&yeZNyjwsigJdcKEJyFmZjV}XSGdJw^?7zA$09JB6W1LVxB9w&aK*(yiR ztDwPPCN66?Qk9_(AvoMPge%92-)DO(EfFj|xM(C~8i%U&8BgH`?B_}B60SoTZ`t0~ zdKQoC#%f0&Y6fd59VWZsqY;R-nW2*_`DsXJ63}77=b>Xf{IF(=nvKRY45w6YLwjK} zOb!ur2dyr4pEt6-OKb2B#q#y4276V5Yfy=9^__M?Ov$VQ@Q^kf@GkOb!off_S7g?% zRdROh!3>kp{yW0|wG3gDJDUJcVXR@P(a$B(v~Bv9Sg+lV4uNlYhOFEBZg{8th?L)N zcDj2^n6E;g>SuV&$V0qW3T1Z;dfoFhmd|ykiCeXW3*+Iz7iybLzcH})w$i{m0s(0` zF(=ac9KT73gM(~ggfZkd+i;M9hqYXrKHXAnhpqw}m}6Nc(@tC;v*9IoU-A)t(Ud;| zx1|Qeq%ilK%JCm+9Ad|LUdRxT2yzqL(*jM24OfYRhFe=srk!{*(->eUc8kv{CGbp< zPEeeM_|knQyYv%QrQ>V`RR?{gyO~t@j&ArKe@otw)9NN2p4hGr0kd*tmV@k^{>(8N zrMYR>Njy$@euzTNw_6+e#kjrmN0sD&?;9UY&g$?CAXZ2Iikcje1@6VdbyajkHAEkI zzMAhVq##G1bhA96v1!_OYdlir8SJ!H-z$Dh7R6Nb|4P`goKx?9?>A+2l+p1QAetcY zYgT9-fB97KLclvOx4YXd0qUM>_c?x}9;aQm+Js%g=TF!l8&5wfg2P(}gk9Exqe6pU zL1lj3ROMU-+^a)9C}5mziG2JixG?8(*V;*mUcgFGdMq|sVKF-Ds#-x|M#9>$#F?mz zkmY*r=U4f`v_B^Y2^rXmMhQvw{>UO37$-cV#z&rX1Rqx6UbCS1L21!Nnzgs`-s~?$ z=i-*L;@=U`zKXkiPtFV2BYaoV($lcfn4Bbhjm9^m&WtyUkFL#Qt1v%YO;o>gs1pXM z+qZM%nqnnqp}F@X*v7JMl9FN*kXr!_%?#pT#y85ff^Y>g6$~1P+2ZB+2`XkD31=n} z9YXD6(7*T&eb#5Kz&sRRLmRU1z)g2B%m?xuaVk#e*_O>kaMzcDA&y(mBmaMrzOBul zsj-n|mfpb*RA)6SmV)v0Xl<=xpBl~xhLmPxuX$Cms`RwAOy~gx>*aXlukno;SNrAP9xr?J8@9VE*D!%Xa#A0(%`qVC?lpf zwLwWCN2gvwT8dl28T!SH0whwi)0e@sX;t-#zN2$LJNf=(X+%o_M|cfv1_qrqeiw&oyKWZ%N%*4Cv2zTxri_=H*Ig&Ht2Gk|W8dST27k zi^>&Vp|l)tP&{x@pd}8Xr2SFWY;0pQ;LUVYR^xphJfq0|VJxdR2QC5^%N?zl?KCoH zup-rF;mhwqI9id7FJhv=WKCG<_hV)NKTmFP*jw4YFcU;Hl6~5(+Hp-`X+~izFl3@= zAK%A0^5b)<=Nfj~Z5XrQ+0o9UNsNlnuVhWCt!bgjFy(WaIX2qPU$P%KzcI}XSJ~46 z8{l-lR<1xHtb^Jk73Y@hpLrra5QGtq1bKdyO|G5C_0#W5tH;X8JyZo zs>t&XThWuvUphEqYsm^d6M}E5y5&;s_WcJTe(g4ji2Ein-nq+31D~px;pNveXAt*V z(iF|+Mf~0BJK2Z>&h!mFTTj7vOY!z-oZS=Nf8=V<|47|b)Vm5SxcJ|A=KW`L9o@PW z0s^keGmU?&qAn223cPQrrhr};0J~LYg-Y247NHf!G`8NQ+gAIn>FjSn2Echv+o6nT zFwu^0)*=(Whtm;ntczW~f@j{aKnu$nahCs*ka%mZ<^J4rChV5bl$2PI{{X=eBC}vsk^45b)Xu;M=i;4lr`^4}fW%^jS3zm`QQ=L(j@eb|E`@=1x zfA7mhx~7|nkGvJE6_D1&$b?(U8?xgWBgP+bouiu2mADt3$faUqd8MC7nCT7UMU{s) zTQ_aZnKJSPjC|A9I+M2ap_mi-?b}|pfq(FURU{f{h#=KSpImX%hPfacA>XJ0p*-&9 zGq(mjjiByp8ra`oJ6`~!(#f2dLlSr;-Qq=Al0ArAHXkwut{jpBD>VaL~n zOJJ`?jC2Qfg^!Y4*Bl5p|=&7aQ2f&nC56*`381gIPa3K)vw#D z6>}5OG5Z(F+8GwO zd_9a?H!T5cnvwQP^!wIX3*~p;pcQs)txH(}vP}9(rEjJbRLs4@r(0Vxvh{V#7a{{x z=Dgmyv4P#bOqV%NYB%T&x3<}M5RQ9__R&BawG9=6RKf_r%Y?tl=s3F%q@Mq?f#RXd ztd;!-&Rl&O!GAqYNoAi_@#rKtBZiRDzqs%x2swEuOVGN&xIFh;JshM4x{irsXrA{R z7{}*%79m7#ia8pU2!F?HTE9}*d-VCtuZWdgZpn%o1yoTAD;9n4Si*ce`Nma~Ki@_i zreVKwNsWHq>zd+|a>W|YyCRlv=N6v73Y3c4x#6+tFObt#Hyvrd$+wrbWoo8rT3|1q z!x=8%UccvTwm_^zFyz9>SC!kou#d?5HGuiNp_ch6>R7Q5)*Y#-L-j;6N)g}0_V}au zF))_`I^U$5y$9Pk#gvbG7=KlxpK!PLM#L^dth-d0VN%#y2-mx@vFXGbu}*eK8*q|u zoydk)ssJB&aul8Q#yvKqjLp)WzNm6jjB*!+`5q&8_5-0_G<@Wx=}(3lB5H>YJoD|S z0oilIgF;QoS^#x~qVOxUnDpoDte3H2`DTKjyb~D?2fx8RY|4K91*FKoZeL5q^XghO zknh7to4AX(LlMLG{NSc2hkS=T$OF6Z-V$VbqksC$BH3N7TkNx?2|@G8DW9Fg@k=o1 zZg4t21x{`?G`VGSSmqbr+=unN_n|8xxXvi`a&I?MoO=r8_&Iq`a|GM%U9F--t~=nM z3cvCx>v0HeDhW7jn*S#)NMvLwR9XG(Phfm6hadT-^xlmVhX53d$of*^z7|-!l+w}S zgc;*N(4Bh5le#vuKU12~nwm9zVt4Hq#XYobpwG=)<6yU3Y94=9V%u8E{vy|IsC8Q) zeDsaJ;t&+Gj<1!bTch^Uz6T`$FFMV;A_r9@zDumA#MV~1Sf%DDgGL;UMqe3D|{`y9VM_2`pFZ0}3#LOa+! z21(^`R}ESHB>R2kHyV&uD{J*;2Yqadf8OUf8waj0k|-^aA$^L9>9jg!!D=2rBo{Z;DnNiLk>V__FIIU%)SPo_=JUzHZ&vh5iM$a`Fui$Tn zyEod!I@Kkxud66VG?j4;`9(&3z-JqXLVSqYkZx3J2x~&1ghSVF*&uK6=1X~iR5k`l zmIMSqlXS6lkW}|tX09K&G`@;c#EkN{w9*Zhsj4}BLY4K~Ig1nBFhHsZG4e8pSGD&c zoHSPd8>y9Pmd+SDjfkn?<4)c&-a)ajR}QsU?yGT9f9cHG-H^pIFC?AnTM$u--d*U; zA6G|=bJ89KKsyC84_EJGb#{I#vza;tMC{EOqQJr4*_Cf3b@-_8vK zJx_>vYgC-$n~;*k?mu{b@PjOcNI>q=9cvg~uBam&5pF?M{A+`=vX-lqb@MIa1n6~) z+7grs2W{ql_l;S*-UewM{RLp%i?w$RpCE#+eF}E95~VJ)Q*OGT3Zs2V^)h~c0kc~v zBWqe^-n#GpF=yxuuqJuVsrnM?msf}}ehARRajQ`j7T;3=;iJ(7flPT3Z*g44w_&OzAHJhY#D?Za7Pk1i~#M zDKS#DRT}{{SDisTj!3T-7uEF!m^V_9S<{cls39%PZ)chsCLBs)a}dY(itN-I5)OyP z>i2SazZFA^4yZ0T3#_(|0>%FV*tTNQ07bpajQu`&w{b=sMebE!J94!B_<}DOSoZ2r zau!+)&+PZy&k3mQU%`6gk~luN6zNnN2x;VQI4!km!$;Sqw#^@zsQ10ka=0E<4!3hkaHU=$H(I@gGJ|!}2F#7>ZPuYx2uteFY)Q3Ckf6=*iOdy;Fkf zMU$mERYG5QO^wqduclzM-X_dWIsfS0SrNfytr_yyk!PX^Z0}PWFWiQR3frNLz;K;% zl6w`k|75zyqJ8s*-eUKkRS3CtW7pf?*`)B)-euJzqx;^pW{fWs)oqxY4OoF$`#h^J6Mn_O@x27<(t+?hLX%9@f;BR5k z2vCg$&O6DkSvg@S!yNFS@@qjCy5Un!b{Q>I1eLP%cMMAD<#*f1+4@AClU2EHY2`u6 zm5TWu&e4dYo3ktw1L{aN>DejeJmqCf;-zKwc}#U)a7q=^`Af^T-p?pwVFeUMkMATN!-M3IDoDy(vEShZAoQq?L$T6)8JOc!i;RZ90>iX-Hq&ZZo}& zsgIpddPg{=(&m_m*CfE)Y3s*lGRzaK!tNROGpFQPAav+e4ByXM+{L$>_8%*$>aSrTf?^C2n8%9`>JPf%9NlJ!@Y)XZi zuP!0Th?deD0z*yi83v_qR+)!T>SqOz7M@f&jK)>x$4jST5L3b7kZ=nyh^z(&WCr#q za0-LGPPq+o1UDJULS;(dRFD{^maps4d}V}O!(p=puw~xB(_D?_8X8Wd#V!2y*+R?g z4O1clUZh%w&0b#Z9An+QUkS4#L|mHDDtAjQ188WT4H4;TM8A&pUOt64(}g-WnRe{k z==1XB8E4_0_@9LI+Rt;EA1hiqe3?P+OX!O0!fK7zI9W&N%f}nI?d4rquithv#0|EC zA?My6`c=$vb^dRI^;e&>dIWk~$sNkAk6HGQGk0F6iuNfAg}dLpvw4{8jb51 zYJCm(OPpRYtrH8GV4=~|s@R*h*QbEJqiJnu#LCvvg<8x`y`@PnN!m)p;%6}qC7Vtp ztlpB|Vor+cljxwYUDZQrKjVT0$GNeu|r684&-AY5TT@$NvZrR7` z^a7e@Fyidki6*W2Qlp)teP&$VUW%+>h}5ywgg(B0{yU;Et4Rv=gECu-G6K|( zsW)F!Q|P6}nzf$|=&B%S8Kcucxl32T%~I5W<;9{p-{w{^@=Gh#KMuw&=Pc9(hC}($f+bk@EnHT zrjL|>k1Xgsr%yAn$&{k-1UqW*3qIIdgYn1d$RdiRJS>=bIGMHM_tyJ4|>kwC}{bHI2v*D*YxJm+7 zcOj@2Xp#>E^B=qX)5G#hy(PTXCUH$|CovmNyh76}Xxb%h z7=e3EAzrnl?q-sm-M5LH#?+b2YiXXwbcN+Jv=6C`rJ5MXWoY56>=`S zK&`RPVon&f*kV+B5aoasiXyU#oomR@HR>-IdJm23`lDSllknZG=93EO=gz8Uxc>l6 z&(G;K-nT72W_tO?>RRYgxaW0G!u?xGivjvpz0132DZU4#L-YJ)>%MV@A{KAnU$9sM zHrQ0x4$WES-imO6YUhRPwboBM={BpAmtGTYwXEO<<&MiZ9J`Q0^7pM5D11HRU!ac+ z^jW_+<#cKe={!yp>iSS6u`n!3vervx-@Y=`j9q63OM*jouv3rZ-7#UV-14R{L6Uie zHd^iV0A#C`zUEaj#x{A^M3ELLVi9K^M${TQAobeBv2AHnldWQRW3L=u#Wq6hMjrAkk!?R+*^sBgR7+J_T&^+|++CPA5?n__YxXhji9;m@SdBh1 zeuYLkCt@8|e-Crs_r?6z(98N0&Ha{2-OtuuFZDmQ`EO6wx9D7|GcnT?dv^*=@wdYr z3z>6vq8k`xNdEwS;l7%VFEcH@U&?h&sWZ6R(PEK^7m37|n#9V@Vkb4Nrru%`IHYMZ z^qfqsqZ6+h+lz{64y0stCVO$5N!>M~jz-!_QWX`{PbxZ)$lP2_HE`czb!(o(92Mn? z_q^^F^GAz%15;w!j!Dp_AeP75IMet#-OBOGy-&gRyt}DXc|LZX?um1(U#A#Qx@O)* z(wTfGECnuJXggYEo#~HNvhSz-N8kDVif31vjlO05&$$XBk2EktPtbg3659%Z;yG+w2T zoBZ+mxT^#3uCexu%2zG;x);;FFIxWqie%bi>KkQ5ORHvXM}8A2Wu@3@Pu$7ZEqs2V zLaf z)1bPI9rkO>3OZodl*^HpV$@~Cf?c$fLn`FM#}^09iwv162AG!@T8M|T`;baCsjRXX zwP+*>U9^A;00r8@$b9S#_zmy^R4X%pO6`n3l|iD(jnSk&$6B)!7MSS_%T7#-Dzx$r z*5^d&ij}+SWCC)+k2ZS4fNkM<(%&bdZ|B#!kD)k3bMxCk{;jc}Wa`7M{%7ctIvk7s z4VjjjkDn%?>T1`Q+MN2=Z~1}ixfNHgc`97;c9Z;ig3Ibp0;*JVPu82`T+l<`cb_;} z_j&Hhd&@n`TQ=bWrF6edQH~6`ScH8!C`wxruUF%qVfROxI4-x5^+1LB?T)?LJm=m0 zJB9R`y&IaWMr7 z+oDPjiHmLo;Wf*XVgxAR>kLxXOxcaaJx)c*=;reW1NI-3n)O){8MPzjU=xIhraY>% z+kGA7iyuF^>sUT{>)e-D#BFP$^qlSHkzSu}tOF&v{g^wT3gz=7QjzFR7SwWjcDY3D ze78t8@#kt~ivGIuHJ*_?MDA36&~fsAOmhk)J3iNk!Mzj8?(-|{qnyTf*7>6_%h>tP zQl^|FN_pUofbD0i-HryTbw4U}G`jf?Ab!PLep2ocm4Q*Mcd6BHFyl%oC1w|LuQBFc ztA^5i-t)KHE=YHNNV(`91vaE<^BQ?C*Xmu*mDj)7Ddw@p70Q8eK_JKtsBD-$*((qx zEu)I)NHI&)?PSH5+0B^*gj+F4Qwt%HA(!QiaV5k`9BDAB*cdRlx^uqk3rxdER8m3P z8?7;oX%=AAd2GidG4h1fnoQBeT_YtnKry_@Soe2|Um)~HGMcBH z`aG*~SfTlE+P+BDr%>+n4%l{&cPi@m9-jBixczHFy^4wwM@^T^JsIYUhUOq%=gc|j zhjQjYIj#DB<>6eyv?cTpmwEmccBj<8DS`vdbe_{Yz~ANf{S)aw81*Q!Z`}vZU5eI6 zp~`uWsrEd#OorRt21J>xJ$kbEFMFoYx8z&HPWh*4(K`Z_V+|(S-R$@Aw5NX<+G!aV6HU}ScAL0Zo^GI} zB3l=<#Plz2#1J=06K)G=i6CokiZneb5^Qdh62W?OQ6o~Eo(;!hD1z!zNV8>)^CA!%SlBc1YFhzCM_0_a!;Amlvk<`^mr$ zsGa3GdR<$$d3&q#y#zZUF3X*3%O0BXy{6@FS@22IvhQ&uwSC zok+6;Y|Lkt<4ceg8E6ND)9k}A;Y9}1oi0Lp6CUdg!78Odkeq~g`yrK)l9OYnHCkb1 zV!SR%$kJ`W8*ehmWFnB_I{3pu>)99p{AQY>7UCviq}MGqT^OrXn>BN1I=1?!U#MW{ zqj|TUvsW(kq^QVryR9@r01Gpum>1R1Roz#1ht+w>N6l6V2HDC!dfK>_bCw5gkBEVj6?DX}Jk(&+0zYzJ|8x z%xOvXoNd{}w%ShPIPB`9Z9I)Jw4YLmijG!k_{t^5RpPvmuB9whZ3r_x4075Z1=RK< z$7h{f8B=-YQfE`-4s%H9G%>J=tU41%nI99Afvf{bu*?a{eQb-8wT;$&!nLsLo)!(M z@{aRabvb&oZk*y+CWTL*Zjml|+vU*Et@f`c^y;>I$DF!t?+nFqaKbkz*#)c#9m zE5*W7k#PthNg~eEjakSEw!8?^VF+0&^nc<)tfaJdomd?CNI-1Zs*+&g}HXRd7S$yJyNyCon~1`(GtW6 zMjGe<`Zk_jc7fMu>8MtR4P|Kn^UtchrgPLeonw{s%EM727qaAS6RAVav>K~LI$mNg zYv`V)<2@IhdS-WE;(Jnk5)JFA9u_Bj=o}(IYW-zGHY}?{5^s z-uNwM_8*J4`Tqb~Tz-7?{zJ6(M`!a_V)MSs(bGJs*=OZ_e0$AZ2e{$72R-P6^eMva zd|%N0P95`j-=XrresO#E;pTaGPP$B9eDX^~KN0#Pu!pY%9%|+#!0A+R$I@`OwISB@ zgrw%<>Dlx)ly7Z}NfWX}<8avC znnRXJjFgt!avk>i83K^-mAjY{ml$n!S}BbCcUoPjmVN3O5cTam;>2O}c$I6ma3|>K zdMcmIdPYv2HpSEF!d9+{FI4jvUwGm~IYzBC(2*{7^Z=LZR&KK^pINMX-pKQ>2=}+k`qFg26?tX* zob8|J---U1ZRdK+rFi?;JsvFb28wItgRS%hMqWbTA5W`(ec1fY59*IT`2PT;fTv$6 znEK>zG+QbQMc#?guVbDx8h++n=Nfi+nQ3Yli9R%;ea2L0W~00|ywHG>ftzYN_Z|tf z;MpKWbs8k0CU|*lii({G#sM*tqa_m)E?_AU*XM=TkmS(|8d5cRLk&JA2}Fq}0vk24 zHUUFsng--H+Tju8rbI^(t{r`07DQ7GdqZatz}lJB5y z-4-BPM^ENam}9l`7#jTh!~JK=7xe|w$-wkZMjUm5)xt$dBKNuDKCk88+~Pel$<(V| zH_iPT-P8u%dTunmq;-R|sIi%us?X{-GH>B&tVp+D7l#2{YoN3!?t~H&jO3v1ugUz}!NLcog zKJ|5DIcnf~;Z9@#+U%}+fGWK`H9~30VR(#kK{}mYqLQ96&swQ*q`KOXXpq`bT|-3D zp~;GqY-Xm7WyDR4v|J?6krx`_8q$)e%79VqvcO0kM9(g@4X(&0 zx6`&HGjOZB(B<6GPlal|?vc;_A#GuHZVk^3_nu*KCrBwKb^F;q0QwI@N9o5w^XGH7 zcJgYqanqkGj;*be8VmonTI&(h-t;=Q}i8P~FwTg;r7TfzCM zYG0{yO^j|QOUg#7%>}oClgC_UkJet2<6X1D{*>xn!mE88bJm)DkEZ6XR$6ttsOJvK zfir6&PS}+!O(o4Uah%(DWolBhrk9hT=r9a+8ou9VIC-5Sm`0r992T z(o;1LN#`aKlg>0cTeZ7cOGcTnjmD^olMrm$lNPqQe+-fltE&F(j1PT6I$ zSSVbKID|+HyIQqXp0?G-JG={}FbqfPiWfGr|p+2j?#7>y9U;uSs71^$IM|Ug}_eR_$Te zc`R8T!Qyd{K@!CTj07jTd;8|c(P|bw-|IgqdLVA~gmL2DMQhjk zSno!0y+ocN?mPW+`J;9AbbHD(zP>Y5g#tyISsX=2T!weSq|K0_+J{<`VjNADhI?0-PLJK+BS zPH@fcFAe&q3Bud7p5HF&ozw9)Uv2mPA#RFh583VrX_3xNLMLNj&&p3 z1j>-OAma*I!lMI}3jiMiNTxEG1TmSJ5TeO2$~djLuAvf%Ot`J+%4e0OE(z-pt#$nU z*ez{gVkqNrOkqZvi9kf=)gVZII^sR4C{E)^Nd!rwNXP_XL@^AFk%tr{xkssyuOndZ zHObvedReEW5;MsTYoE8XU)JJVc8Wyw8r&w4*Cx7nz{EijLmgLCPUdQ1MIL`F4X1fPzh&0>C8T4gO>0Wk+vF^To@tjtE zlzH#L0%RNCy?JLLj&}W>57FGl)mx|0xcnOzng}yo_Qz7`PgC^s`n7t6VLBq}{Tj22 zbP}OGhodSc)`lB89bRWeP7_MY10%+vW$13R4Dg= zt&hmewD9vKi&Djqb}(cGlR})voofAPV~s$7gvgZ4XJ4mWYgFvff!k}b-mB7jH$A@< zJW-K*S>hguUd%m8&s9Co>D+Dn`=r)smzs6<-g(1Ajc???YYcyDFb9@>W98~LyjSEu zRQWR2$Y==>-|z!PI>x>(wY^Oa`yU+Z8Jj-r^q-%-IpM!T^jlqW&ArE(vWTLhH&8~L_*%4D3-S9uR<<$U)40OwoI{JpTZ=@wcq{r=76( zebD~^ojn1?^dbCd>CX&xx%V>kN&N)Zwa}Fr+~d>-TA^U`E&GpkJTE!n;M7ZeH)^T#h>)kM#cliTAa1^sc;ijG8Zu-WV=O{$pBDf&lBx z0y}ZDFP6dVJI8`JNLoHtq;s9-|k5Qkn$(34^_F4U`*+SFG8^RBzjZ9hJbVvnm*hiHd(m86~vW6ZNR zvhzN)smry&u<2!xF$~7ubfbe!>t_Y?AEWKTJ`UdFW;|)I0v`l!X?dVWjCi# z;-5u%+ua=JS?b>RN9f*5>(*O{i=R=*kvKTVNq|atX*cN`jHax?Anj(&JQ9|@-KD89 zq>~{886bj6G?0@yCuQJR+P@FDkEH872cuQ0o{XbXyUWP--gPTid%OMnoYE)lZeiRu zcz+`NO8d)9^llsCy{qi$YYXHzq5a_G6Zof^eHaZC{{TI#-qV5>eBtaGB#PF)4(`gX z&(A9^SsZ7rs>>i=vhAVpI->25vZ+Y9NC%}V^ysQP*N4RDZ(Zbp(OtgFWzSd9T?sk7 z4v|@!xC@Z;Gtr*>R@sQMBwNf>SWz;8aS-t0l_9xq4@!(wQdaHGGpyLXV{xN@=NMmX z`PS7=Yd0gNepb~su%Nhkx}>>l6c-3htnO_^E-SM0)!ZoxIQ1?wl0w$x zM@_QA9%uCptH}3C6P+i?eJ;qHnkUk3dv@pLOK*qrIx*hQ7! z-8P|fYIeIAV>{U8O$M>*QkZH1UEHeokv)Iny!#$>@ISeHn6-HDqapnlh!&Yl-Jrr; zOo6Ye-#vc4dFQ2EdU&h%J-sHu6t_{$N-q?iu41Q&5=18g& z_jy8esW-R6N<@x;sAi(dy1p{eox8e%l`7oZfCx4k?15LW+5za~i`JoCr!-K3#*73T z8bE!vWSnc7%#{<;T6j@TnM3NeZ1x`aUi4;XKt8Y7P*(T_Bh@sxqwz1DzNYd?vwm*9 z>@Ej;Hl}<@>lI(gNfU|~;GmQ^vI1p=xao-`4@w$TPE*8e`MWeAz1fPIK6+yBTN%Wz zLoVfOcS6nmL4dUr2Q~g1%k;i@X`b_uZz4CC(aJ=nFk#nbfZXEDnwM z!X*bAf^ckGZDN)kU~+7=OJK%k%|pCBLJZ_`g1I(|Bht9;0}s&=uTb;adwkOm zNqg3{+x)NAWZNR0=sEX|LNT$J?ESl=Lr8uhgm*V0DW#NzO8qMaGX9QbdP*Wu(6G*k z{oMB?$8Jc-{J#2u^1l;f<#D@kUVCqz^*BxeUIni2PW0~0PUsmu6`J2!vQJ1u#KT*r z5u*`gfW%m1m0OEX(aa(qFng7VgN_nVkTtZ)8;&8@6-sI49GP(>ijwnB ziY3{&5!mGVH`)GwckGUj*!8a^lt=69WgDwmk**ckDZ*T?qv}fZ1L6-oeH`+H*tM=*lagq3=q5Pa_eewbK2Cy)f2utF>&zaD z$3F1yoL>{7^Y5JctQ~AGQ+BH_%YI9;cj-TpKG$pEmvo!ddMqWkbSOMdAv^ROnW;CZ zrPXd|T*!;VP&k0vHoz#*#SIqre>P_u4h$)^SpePS(#nX zjH6^*D9Vh$UM9mC(+=l;?7F>GYTR$ZZO}W-l(A zD_QwXj7v@qA)!V>E9Iy*E32P5#cj~nsH)!R%hYn`9?PLc1fH9*l^B}mU98*AuEl5& zOag{j^Fx`fY|#Nkb#lr}9`(9%1Qm`FPIe^OVRIu*FxScNt6p^H`X7rK zo=Q|htX?MD*yNXz`Q}=I4b<_Kz$rJR^`=IH8ZlIX9q5j#7NXqVroc2ggopVy*bjr=0BA zv81+Lw7?ICx-r;7-`mI1@BV)5{!GW}{k`g+o?f!Zx5vD@?H=i|k>7j#D@J!kxp?lT zekBaJPbFE>d(8TD?Hv0`!pyf$Y;82+)LBuWowYNlW|25s@`|BPEDZZPIOx3$R(GnI8Shu%&XHw*`aY)OnVzX zIT~PbJ#`uMA>lYyA64s1 zha0+s2yvGA&h&Sh3NlU!G#UXakutE1FrPqzaofGm*4Q78R@5 zSeEMH&0YM(Ch$j={=a;;^KVh-V!8!;H%W`F7S462Hzm-J^YxPUsa~r`R`H1zLH1aP zn|2sl7{VJ^aV2Ar1%>gfemIscS3$s>j?%>0hawR~hZ3}IOoJp&T$oamNJ}_^FD>ev zvdwNY21RdoBGA=g%McTZm_ZdX*iog%7Udyqy3Hm;Cs4~%E}?TYl>0{8NR9iNT_S%) zblwtQCu62_UW3fSPG}FIP&BdRdUJu_V4L4HeGTZyO zq8~ldyfg1@{c_Sf-c6weM0Fvpgbq-R5mm`QIn#oQdH1 z@Mqo)%O8+q_12S8$4e3&ASJf`mY@FccA=T9^b3G2adX)ZilLF zethZryvK93^9#>m$XwnMM{6DrE$P*Kje7xUvNf^;qEMkdY&cB)4xCGu+%M2{qfN~n zy{0GM${#J4Qb(0NTMmu?0F-cg6?@CQSDekTGiIiA4qt4mXpMgUCf<0ihtG{m6QgZN z1Ftt?3hg8mg3i@~lg1=hL98HuJ*N(l(Rul4B3u%e2}x(ujv+eVj)o%2g|rg#8b~Eq zNkWo7G0J-HIoQgopxE1xvg0b0XC!;Y4D_)j;!gFXpImh?N_qm=i0TuGr8d?kamdO_ z*LLM);FG8p)%m$6Q$7E^=-S(H&t`F zjpO}xVTwDgR^^Mu{4?4dG73I?qTz!4}rZ;=7-7pDe8_{bmKdIy=vlC{=1aF*W%Z1QL<{TXb}P8 zBqO)-0?q&+oY`vXLzWhGr&dY?_Q+)uoELrWN`SVuuY=KhQ~yf3e~TNT;g7xW;6NB z2i}z4bAQK{k55gSpO;DcT~@03@Q-#?+BCk81zQ<1nN+Ev8r_ORs;aGPLsi|QZq=N# zY1M6K^vo6c=yejOb#5}FeCPCU74u(G?iX1^ia!tdXWrj5DRn*0?ar*2{by+IK2PiP zAoX?c$``F(XVg{>2YTvxZj9|N#i2u@xe%83ItsUMpwYfExsh-;lWDCOW3v*h%+RUS z4pyvP7cY2VG(IB%v+1AUQyi4>IRn zKc8%54thItCn1)3Nm+?w9C5;s(=$UcP#idk>O6!PowUN{;_cjnkl$u{OlhpnH1ZN< z#Nu;y{%ayK^eAp=Dy-dSqIu)8*R|Gp-Nm|hxt+4u7FvXYh8A%8gVWzUx@cbaBOZOd z$!lENDTu4s#dMerd&pcT)ZTuV7Kd2vb(=Lfy)ygHj_4=j$cs$F&>MnjBbpgvrVhkk z&RmpEo{KZI+-Ur0B{TJ*x`@zPw)M|B*z)wd%=#iZ?b>Y{vGXpMoeN|X?b^K_%gs7> zHPel>bQ-1yRm-_Iwhr9N@DWbCz&oBA;>Bd0%9Xg6fHo?EmNrz;Snl-g=il^arhGrx zcpp`&di%ki$IR(Ch1ZMv*yi>vZo^RIFSC8;qQS)Q)r2f>z5?DDlhc8#jq8_MrDk&mLLtW_q$$ zo~$}qov~cx?v`zmBw2I9s~}rFn2ODCp5_1nw)hP6(Kf&t+O>ExL}2t+i`OQ(YUK23 zmD3#;EcHs{#Fgj^BsyxVS{!l3>twgRZPJpwNh-~_?ONJwPWG8PR+4QhLP|4{QWR17736|;}!Mlam&(^Aw`UuYeu~xO$YHdM72?Z-s#oCp|YpngZvUtzG$3L@1 z@{Vg?QW%=wSeGz3ews&af^zvOlX2*uV)NQmMv3h zD@jI&8^aPLE14Ns!Zzw`oFhjcS2xOSxtbyUGv)5PQs{4be9-q#GuwLdtw#sMdPi7a zD_*`YW;4W&9bU}mJCJnlarw3)>O+MsnV=`D%^>pZ5@UkE@WW!}f0bF|Hb^JGNJvO(E79M)~#ZuOs>QqxvVK((bd2uy!%Jxt>q>)As}8k15`H zW73{8Ozz|5<;EW!sXr~`aQw& z@A-Y;g*blbWTcD(Xqj62Mn(}DQ3k|HcC-o&wnfs2Y0H9|b~!u^kP*^()Z|8z$;Vod z#+-Gh7Gpmh#SE$`EL=4wb8M(4+YTimq0dB`3N2@=*6!5i(9emxRw)R~r!N{QD9jk! zd=mD#;JDW49_Q4LuibrKN4*6> zt{Hl~I^j4ccAR#)Kq~9apOP+f!A+DFmto5EZ zb>OzTI{u|+krL+nj<83P6J^(?ax(FkYa_)9K_@{MLS-*N-Tdj&DPHPNg}GLo3NFE( zK4H!~KMS2I!OjcKA4NaT$=9`ar#k_WPK(DnJZE?Vd||8bY8QIvQg1_8dH@QyX~c`~%Y*AC>F;`*!0ue>C-;z0kbz zcIr6aLfN?mSE9)I^oLKJF%Xd}F&V3JQW!F9>{i^s8%6cW2tNF{&d{?LUuH)w3#$2bN zZye*H_ug@KJ6f=GT+^Ou^pB6ZuBV_JsMzV~bPIZ_O!V;@jL3;E zAY`Twx`>)EG8R5~kIt!0c&(7(J|My-I6^xP5RPiI_oA>{=CXRps=7QnPkfVJ?+BgT zq}9^n1^R&+n!M&+@Kt-1nTMqlH2i#qAu2jbtO&o31bICp1WD+^Vc?g8Yb-lt*|kI*V;Lk> z$R}29OowU>YJhO6;@3Lhu! z{P~ZI1L-uogQNAE2*~t#@I->yXoBP~W%Mou>AG)Qs`>@Hlst(~_Ek={myd?}wyhqQ zD(sbWS=+tep?T||TE_H`MDv$Y?YKUxBC2nu=4WrSwlo z^A}L-I6nPm;++$-;xE$cg?8`~F2@Guc&)2b)ztON$+h%Q)`nc5ipeTAW~Vy&qwNoyypL|*B)o{!!{a`r=O?4m>)rFu-HVL$ zPhECjJ@<}_&iZAlt!M5yLXR^2{OT9yL-bYowB@_~di%is!ouynG1<6BVdk#-GWX5; zr+?*^du?d{08h(F@c#g~zJBuEpHaGSzMqA)(XE{3=hyLHQ zGwKA<<`9Pv8!UQpiA-~ziu_aUNmDy`yeOLiV+v!;`R7jN+LT5R4%MivjR%&PtiVpD zD(ey1QR2*T#hlXG zR7-M17b6WmwqXf3Aq8nxK;;VwFBORq$q!;GsKsh&S7KU++{%RfvjZpz6PcE)OqiDi z%He&r6_Qeht3PfEV9B|h0wmG8SXmiyW~TG{mtR0tdgWK1gc0`ebJVV|RyFK_igmB0dTxdU14s&zF-3F;@%~=O2Yw^oPHh|ow z37CIPli$zsD-}DPCEEP@S7$ys@tMU#k_Jxk&QI34=pNnVp1Xn4dgjH#I-Y%^bjyf# zT+)fv`KilWvIeu5vsW)gH_B|l_iA;IX86myEGm zbS@WV3O=Ig9&GC!mzwum4>P#-+%>{=c&4U1W2_@?=8xX>Jx!@QO`6svn%0uat)I=* zw7hF8hF&~3>yL1Cj}v!oP7l(>INhVT^P8Bu-7r;~lh*vN&GlR}#-f9D-g9giA1~y* zbVI5Aqt|#ZY4Z=E{a5IJGkQkXE7vUa+edrnXXcJ0qnAYd;C_@o2V(SoSoIGw^_4vi zgVZElxbEkqb)I?CyI(i49j}?_FbsI(*c?|sPs)9UhtYW6=GStiTsn?6=6caHM#X`tPB?80sD1)i;|A% zq7=NuXHW$y=TPn8q##Hq7DtAO4HA)SrDzYR%jcH5ItL~Rn_kHY5FLiaj{C^ZRlDg< zz2v^XhrjApD7IYtk$GQ6=H^MZ)-6g-T|wy_uJszw_yBbBy(!u}gVynSe`WXo00Z}Y z?N4Z1co$adxO>Y^65r?Oyra;3;~!(pgJuEqk5e#at1UN8y78Nat~YbG@r&16$MmVy zBi#=+6Tsg{s`)(!$U84)^M93n1=f1!nQvi}><*3QF4^4qXId*tKi2X#nRT+av)hbZ zZiYiz#LZJ_R+7>-l#$8$w0JChMPIGFJ>;KI_iokZ4z-gnq3s-McBduMxjH$ux;0On zUZ5A!@cuz9?Mp7tE#e7Y`#TwUB(J+p0^xn*qjXMl(FAsow`-ZUqaw@i^Tf%Aoo1{L zncqyjokDLYb?dFdtB$hHCmxv#oml>ceT=Pgb-MOCiIHeL=VxMePN5^U+4f+(6s1qQ zO7gmFi6TT+YsXl<;=CG!(5DwuQl>iF+6P^x;`a3+Za39ZyC8s*9Z6-S! z*AXtIWGPPB4cLw-gCUn@oYKa1wBi_?TNuRi8-#H#D%+L{XFcfL`u$4O5-=_UC{jsi z^Q7XMNU)KdT$(On8$r(kk{eG_<9&xaUPWTpTL9)h((%`$Y3%k;*5KT)dkBEtS&Hi_pR7)t+}`h8ZXF!+ik_(SX@OjcD;kjAlv!#d{}93h885D@(e>g>mksLBw5lZ?$^F!X00- zYFgh=eoI7@`_0nCj=EgC1h$e$smJr9igc4}O8!{m2Zx^W^bYjt8a>v@nA>iz4gPrr z{84t!Wwf-lBeNEI`CYcjDYp5=hlQ@_HwO!`j+bGTqodJ3pHaq3Z|I$=_-)2Ne~?&O zmvulZ^O1e@cqMgsp*)Az@0lN6_$U^cq_Qim=i=Fy_>R?kNX*ZPfvXo^zK8M7DJ zbOEz}i>wT67e?%b?AbUUe4k?J9G<0_FAY>!7Gk?4ocxCGxE|pju1Yg-_}xe-k4ieR z0DVsc4)g_2{_t?U9#=KrH;VPQS^srUDap3IlY%Ar^pSPt#OI3 zm4Ms5vU+X*@izs{%P77-f5I$S83QNBoSJ1{Ncj?Gqh0A0p7s?g%qOO>e4ly{D1>oN z({p3L0jovFDT92990K26nlQJA-q&;#14q{8t~L~_zgxHz%^GO2{#2wwg#4?FL^)8j zAKqOq`3GsZ%CxO5Y|PRWIPSdsB)#6&^%wE!T}0Rh5$e=_kHge+BIFP0d4~uZQ$FbF z>7~fyXR=lKFU2jD%iFf~m8JP+#PUYIwAp~eKft_3_R>Jr&qA}xx+W#%hSZ@y*o?^9 z&Z$!NOByCO5RFXu;C$-`dV`nmy)V~j5%~)F#RI|(J6_xbwa@@vwEgnYRy&3$Ximd$ z&^YqJ{~+`F8c{IDx+@)WL7nh&c+2>C8Ix;G%}XiDm++ZFX+771_}ho*d=0@ z{rx?+OLMxV^jmCS+tvzr>qvDe1UG!-^|utGe(>j3fk)(mQ@hplTDzeN^#}X4r$daTxMAhE8881QkTZ}K--GlqtK?8LKAgWCgnZNGvG)iVWZM(B zx~Ccg!`oWF5kn}SZ^cq$+}VT_KS==VmXt8t<{SBZMH!*M08iZVs5Yk(qI0KJUs3Jee?AGb^m52Q8&E* ztmlPV^Tk}RV4&3w%O?ZtW5@4FwATUI3VcYjCI;MFk8ymW?{kNXnYN0`-bdu0v-E?? z@3-BU6-JI3jQ$XKiCugFsLB(^x6ee;3GJhUi2HE+zI=1phK+r!hvkCZUQx~8W>;!AWfCq_9<)s>tqVd-gt#I}j~{fT5H zMJfiv85J|vyHrS7+Ab={5P-ulF^OXV|5Q-I!D=B;whWRNeoRw+HI6H>sWkZ(EDFDxeOf*l)L9 zp6dT)eNkEeHD=*U^G-(133XDjl={mtct*te=0cEV&wcPgvQ4XnpD1~E0?0Zsdf+Aw zHs~LjR{N~?b8^${UZe&9*APVGcx%gzHLIyMW610D*3X|`9IHi{;>p*yUmQM(9=gwv zOulY#*6AkItzL*3!BJXpGWC3DRCtJ;2{YNZVH%e8)Heuz`X+-q*DpADH&~2J$ew#h z*Oqrt^fq0Ocjyg=QzGLZK2u@tLr{x658wB<~e>bWRFs-%94@{u3z7&&32Pu{RtL^($Cx z((s8R!iD(j*`f12_Z@a4S$#5F2Oc=((&>8c(2W@|158>ay+Nu)g)Sw`^7>PhHl5~? z_ms8iYNF~_t8_2f?h+U`FD>QRcmFbakQ%BL7(Og5?^a@bbMJxc`eH95Qv`PBTNi6e zyZ&5#I7TDiz>dWctzePzP$A#l|0R1903F+IvDnO>U$@u1dUUPLIc@CB^~q0qU$tN%>kr9iy)2dlc=O~7EX*m`a`pl!w$1Fy8%ORz)uH^-$9`7==uAb0Qc|B1LJJ;?O3pMy~Na&EvmW^zgu1TT`z z4{s=KE(Us0EoSzA20c*Hb*Gv}vO&sg6faX;-{&4uIVkyEsrQw!77KnuMSN9rdYyJ~ z7#n>Je4{Rw9jpgGiCvv zUR>vHYI9=!5khq3tm%H>Gou=@m7@7=bL`R1w5yIUj-`V?_8vze_m{WlPJLrn50(`% zgeN_WLTT@&>Zn{5eluzBWN3UnN&YtCayvaqMRHRoJ0yLxUQr!k!993X28y_QSB8$AXN3(jzKS;1xYh+qF5$;F6+=liAHVmk)`oZg$1-gFcKP%5HfJ;#G8bVlDJ(Mp`wM*cSP zi)kj%R)y5A`cbz?#Qz(Vuoxh-pz=sqM`tA1qob2X^<}inSynSd#A5S`3KDiyd1%JK z1nzCndK`RFK~>C@I07YY4lD6xECvKYIdy+S@!@;Qj8vb-Q@rx)z-GdA-Nn}>kVVuO zWN=q*Qnc6&D8~iv^5XJ6@2#niK7<R(%r!I;7?F<;G^`^ z-e;%>Tp_5o%8rNPi~>w=gzO>;9UP&xv0mhC>|d0d&z#!L0Gn2rkA$uLAE_^Y7r(3T zU6AIMZc4K%m({VKm1Fg5)vw#|%=jpZaHsxYTZWPGP@^d@AsLb45F@5q;9cgyq#ydS^DRnIWavjYBd)eF& zW!%ywKfXfzEANov#KPD~EqA8G={r9c-~Iy7d4!y>Xa~)s$yGHwzJ@G_$ydEUs}hU&ixzhyO^l52EQF8_fLi-g~91LFNe4HEqfu9b8Hy<7F?D|XIZ}YWfuJNAcLliGIY(v>YFDz!_Jr>sD$_8g_sm|HKuvt;cc~`aih%LqEpDDz*{)o!f3jfXgodeF5vc{ z`O@I^qsFr5-Db8bu)C9=$VIrq0w?Jzrj_1EF0I$p1w8TajG_7Sw^kwf8=m88|iw{+w4zX(1?vQRsVw|auALqhq9krIoyzj=NXRb@6~-zz8$9X)jW$^+|Y z@}7RE{K3lq>TmxoMv2$Ka@AZd1?_;3hDtQw z50$(eydXD=BqcBfk~Y=$J~F`;-U2Reyy*f@@$ST5eE?a8QSu<0nHG($ScTQ-j6+cmv}&eCA@U`7p53 zSW*PGZfJy+hfhKzy89>D4TNbGidWXX6ZY}Ov6zAl2MAR#ioc7EA+Ogm5=@$`U*-^C z6f)2O?@BSESjP%4ilF6H57h8Q++Z=VZJK~MvZgm4*wdx&>EM*BkRn-E96}uk!jFdK zV5lxKALF~Pn<28)0iXs@=O$B$Leo7Zq5gZ&)EP6HG0sSNd%0~VZp;P2|+Y%W@AR3Gbhup;phThl5vI?^89AVzjiRz{1H#Te#Ao3UJS)#UX+W3Qu+ z`~G&8t9hG`m;u_}zHp81m5b9@gg`~SD6gl_#ogDKC5$E`U%Cs{?)bL~BWkJrtHB+$ ze^N_zhB4H9FKV7$yw)f#Xjm+Vsk@c6Pmx4P`#p{2dLyS}S4HDiBnYDo@^S2COk#aq znU5pl=?=SRpUtU#QX+Jx_9JZ<$8S=;zRId}xRB-y;uUnE=g*a#)KM9ysG)u~xCtv1 zzqL`SwXYV|R>Q4Hvj56VjQsgt2-{&xv2fa~n%cbyLjg)1Y3+`4x#fee)>#4q;=GHy z-2Ak{*T2Ug!9ND13DUG-6=pcitWYzKNWP%o0qSbar8z%;9XxNWlplJyelpQfs_9^B zVN>wOfOtUV0hyEuAkj0-3{T{gItpxke5ert&YYOMKq;CIYJKx2(6_ z6q+*N2&5VaR@7(8pU9LKKf2idi&Y9yl_77q6xxMtnRybxT3&Y9YVTmV5R#8Dg3@|pP0+@BFaa@M5P*;i3ZA`onieId3 z(ar?f0pHA3I8Bs_ANh|)Fjag&%^{qV^8mn5qXYO{~R z#8TzEo2j_eXo1vjQTs8T1rl~JErz(-kRl>h*SF+kk4YRy08B#M5^g6fx(z1@UtCK5q5?;fYHh+gdSVb^TghgQRL>_vdFQ4 zaH)3R`C{gPtNn*`jb?P1|Kq+N1H)5~0Q;o>k*E-%#k)qw;n(inzyCCK?HHQzk7uPA z+20K-sGEF|-JOXn&fWyr=ddIKzVw#p8{k0aQu7lIPrD}_^x6uFRx7Lxv@Mlsfw%=O z6PyJ{ml-0yH#-q6iW%K-+K3j7kU+>EdPvPFEtmEi;>kC|1(|TpF zJ+pjn6Olte3&`Bzl8rYCh;p^>vkMU$7?YosO<5TglT++BsRbPmSY}`Q8%I`3ds;n; z^ajiu>ka2n(a7_sUMJ|3X^uRD>%%H}{0+-g-1W;GIsZ=f`YRjsQfeWLLHUGAg&)b1 zSHnA#Xa8W%E-p(Ui*gFTe6;AD$t4&zlQ&D?f<7wcDGL+?AKp|X;W<+b+8qtz@N`Ig znQHP7ESslkI`B=Xj~+z0JJz`~^6 zW&08NhHZh!(kZrI{J)!@XM~ph_6zXm>eS~>dTK`Opnaj~GV^Sj)-A}ZCkAt*;%s27f)LGk04@9aPi1K=%C|WCSY1ofL{cMP24kkmV<^XF;Yjc?#nd8Ik0Sw(MrD0G>rO&@1gbZwZH6_!^rkEO7ju^fmk^~9hIzJv% z$kUOog5uO^%Pwd5W@j9WTgjC~35zo2A^L&ps>#?*E5w7pB5hrq?tV)~-O0Y7n!eTo zt8cQVnj%d=*+<9~X#~H-k)3s#0`d;!d1l`f>glfF4EZX2-B&lwGHJ?HbF{5vJZ}6+ z$vZ%jByo1|g&D;?c8l_(mtiQ+3O&e9c{VA7h7+&ga-!tUZ77M$w7jBwiTBGwYCZzDN1#z><_cmo=^}S65p?{{41v)-Xa zjbmyf|5gnAG(lL#YnxAg>c%61b&rAO8d(#j$3)W&CR(M6}2dX2AK%O+S%a3 zu7^PRb*mGnitsr%_U(TqIH12KF1p}MvNJ=(sYF{8ge$ujk5J1_gxPx=#nlIx9N}cw zu*xX`Hh6o0LJ~7_CcjB1Q5XY9qT!PO_Rv?RE_dfMRO(gYA8Lb6_Lbv_1fO0IQ{D>c z@`PgSrDv6Qi^NK~J0~AO#t8P0FEOa*6SLrbLuS17keBu7D!f5`SbVL^TyOs`AVJ~f z!>&-o>3-`}#&nzRGh1%UfRB9?EQh&Iu*u)LyN_5z4$oy^2Ee`OdmUTJe09?^710a> zZuaHZkGk@&=^tH-qO^`Gn@v49axL*0nvM{5G|fkK^`0 z`y6!EckNe;#fQLd5#7tOjN_BX*h=`aUos5D zZ;R;XBN`u?L@=7{Osh>SD`Co@2|~x|_41Qoqw;lolk@7+r40E@xc|d7HKdXYzlkfD zIxD>*BttEX6HCk*^1rh%bC3jqFjH{x^}2EU>Iy7El0Z%HGEys;FZR}F0$FCRV?PuB z&@gBoh7i7$-C~C`27q9=JP{~n+fN&$-Fb-*;|kDS*S0l53h41wEJ=i@t_C{&FJ2TS zZk8{yZ(qyD7bat;v_U14DH2NpoxO_jtUa=eR1z`YN9@*5a>Ue4F6^+S9zWycN-fEx z$GLwCw8c%cs?~Vj)55C0f4-+~rCYTxk(q~wsj9fxt$fzuzca+u)FTntkwTiwaVg3b zf>@33#Z@tl91^V7uSlPfcHRh1ysO?B;87wWM$XeATDpl(^(J60?>TCn{rRX#zG# zx!rJyqTD;ENBpo&-uQmfki+TSqhCe)EP+BF@}tBZQ4nw5#t@0N#?eOGG7#0qCVRG@ zcF`B_A$_q>J%&{Xf-Ndf`8FADnq1#)%}KjG+$-8p)QHZj2oRrAJGh-fGt2lW$^@1C4j-58zPA z`y#3|yWt2;;13zSSA0S=ixep3PWXb=(}l%2y}X^qzY3k(Vu6GKq*D%Ds!Gi$Qa`sl zUMMa+ugzMRY<5SYHiV{XB+}Q=5yzBUw3VZVmzBen3&CrQmKGr*A&k|`!1>GU>EzXI zh|J`)Q?{nPSj%8EX+7?aGRixNWed0E39}21r&G>A9)3UBzBst;?Jz_-mzGCGkl8Yo zT%BSqnoKV2K7s~n!lt0htc%2VOj*exImzE~B^i^yDW!4s=2;IFzpS(~NjQsnOQ6Zp zm7r?_W;CN^hFm=Z@>zmZo;=A{+B*r0)~ZBM@!LbUmX!*{%N1qQWjBAK1^JUps#r0G zo@FajRR-%eCZqh^XFteSze1i;{N7zI_s^{U8J8kD+dH28``PVe2A1=(mQo^y>%4Z7 zCmof|Yi_DS@eH%eqRg&uOC}sDlp=T2Z;Ki0`*LLqc4&Oab)o$*P$K4T+fL%_W#CjJ zeCUQmxEc;$oz~~8+pQi_oZI-`K5-53>>;bGJE#h3?wL_ioqaU-n_m9-&v})cyj^#t zsb<1U_nQN4;$X&+9*iqmfTgq)M~S`pQTwO=*TQzTi>{Pd!Nky5`)t@jTohUSAI|%) zQokLHmycq6iBoD~v*~-I?=niS`1&omvlRwRnMU}SYU=r~d1J#07E{!aE3lOxmUl=&G7;f?vmp2O;Kn5{q&Niqg^H@dKW+#>cwCw>vH=Bf+b~s43%;aAQc1|oo zs6!Sri{Jzv*$^S;RidDH2K9_8QS){Gf_R0```LLwVfNxk9B50S%WuZ*9wvE~el(40 zE7&lbIX8Bl3?WmL#64OAUK)_+bJEx|Qpx+;8E1z#3{uR*PebIBah3sK>?B0YY;%O2 zvc%j)bFF`yR7hsBl)~KbMz)Z)s+Ln1G9!e)%%u=CO#ZwDi_3JyLsL$)EFE+Jqxzd~=xTYn~(|zUG(I6>^<ujL>Sy#`zDQk~+fo;L zK3gz_-iP)i6QL4=9QHAQd5Mr?n!vt#2A{PTR(00mrpaHtv=G8r57wIC(>vKmB)h_` z=X&n(+9n2uY%VDX!`nszUu}*B$MgcLUx#y?gkVw^4dwI!l)Klg_@1gNq=q?B_~Ug%ZgHB;K`g&^O<} zk8c0rdyDWBg=Tfz3e6hhI;|o@>&^S(gZ#HBLe&zk>*#69T&w)voOROtwZ#ff*1kQ? zQ0G9Ib|);4L76rJz|xRyR#d)7nCa=}w6FVYv(o1OzDaO0DmK0+aQ|kld)1|ilyC2H$4OHda8A3k~K=Z3hDIK{F38~_T zmsBau=ayTSAta6V2VoDZ?0f!o^;q15l|?CQ2HKQjBuU5hYT<)WM1@i!56P^unfxmu zs6|^QSHvwdx8T`fEH@?aW7hnFC@3bzBq0&i^ zzI)0!x_1{h`bmutTwiri_OZ_5hVF6t$AI8>jmb$z^wOUYNncUFr+MM^5AQ?P5ts+k{{>?3tt*%D1yBE~7SY6_G6BMoEF4nGIM zjd1{%I=u(JlMx)`g=Yx(Q7&2-#T5!Qsh8_25eWj%_o7t@HW@17T#N0gZs77!*vYj# zTv~WQEhl|PesyJ2H3P9Y>BUj8Zf`U~6o#&=d)bw01FKYEX!erXWnA|YMZ6J*W|RL|q&?l3X(PuwQ^JE``o z7_M5Bhu2@=JC4+56=j0umY9~{d5A`4M-fNoO%|h%&l97K?Z45mLJCDY2Hxn6G`&GU zw4>~-XXD3l?Bj)*Rmea`x(P_0g*Y4MpSW?c0lGIRkccPJi#kb)%=D+Oj}wE?ciUqT z2M*7f?(%8}Dl|6_p{%d!X-^D;ZP~zV0Q+*-GwNl>w3)v(u~!IdptXe8r9#!8Ot{YX z{2-a1T^8g;(7llkt+H%2z;$eXA6?8=sW8((3QnM%W{(G}<&kFNy4*b8WDh2k=!Rkf z>D~z~M+NS70}{??R(%5pT{Dx!ZFRmE+)Lwc%OT>gp16Kt%c!bg%+)!47R$a`nm1T)g)=bjIj`k+~J$Lkm zB!pnfT;RPvjul}~u}c5bYj^%7S%Nw!_?r(vbES(yYfX#&92l@1;r}kYf2*l2HC1Rt zrL~$>3V!Q*EjI^aWeJ-iM)nb}j*))fLerV)ik!rT6Rgs#f8nabLEjHLR18s~C5`nvG3x_&hY#|m@OM;42X0ZvaU$RZF0RdDuxRVeT$ zsaw(L$P2_tl|hjzc_+0&Y5CjJ$T7zfG>2eQdi^VAW2Y(Q-+IJySYzccRCBU)YS^EVYqxGJ}3RiGBPv_Levkhz=8~M ztf+E_X3 zhD~l2V~-;5{7{Trdggc4s0(9q7=_-1R9n*9$jeu6PNom{RkXL6*FjjJh2SmAwYuHM zzVLNC^N$CW|nmiq>NzpufqTaDhF;EFU zyA2ga^#k`snZ?1_F3dInIA3tquQMPfHMs(Vq1A+%R`|9cQtKdDqQwM;9;gN3v6Gen zV}&xK@Nzh+%19iH^OEflC9Vj(tQfIO0XgP^;-MnM{6TjGhr?Z&@S%CD<%E?B*@CX7 z&=Ii7;nsEefLfvZv9}IJnBpO%Gy7dZY4DD>Q6?U%0(oGBat%(3#ENb~sJ(POZ)u^ix4>DKdOuvl`zN9QALdHPKkFGB6CW~HLI%i@f zvHBwVM1`=`M7NcBuD7pUOkTJ>n@quG>=P~`8s)Zy+u`Q6G@#UeANVgVW8txJ|IMt@&5)2mpBT4&Y2R2(_Eyb{JTOF36NB6P@x0r9v z&PV(CDl)r|EJ!#1tC)8oMV1FyStY zz_zvaK&4`$Ky!9SO?SUYr+ubMO5K;?1lbAm17ft`Vwlx*qg0EOQ0r2h2SLnaz*DrF zw{eZH#VwM80A>&&!)3ZjVTQJ$`(e-hjj?4RbtgXFABO@hWF}@#r^#9#iLMhcOqEHLA*@lCzx)CNLeBq1ytBKb5h%{pe_EfK!rlvKx;_3Y1 zq1}_RHp9so+HCIFCShtbiCr6x9$uQZ;U`yDLfTswuEqo`n1fX2q0q( zQ}Za@b?zeI8)(>Wi?ghwav@qt2ROgTPVCA3^{tQO&6C(T>Jf>A(L%dv$^(DH+CIh` zT(@R8y4?C9D%&53^=pE=f4UX9wMQO|DAW(O4c zN(FkC>L*wKPtCBHS|8U7seq5aD*hw6Kf}*WKOf{sf2=%OS=}*5m~J>NvBu#}V!yO{ znDG5syeU3_2IPrfG6F8U{r)4-TdU3;k^0>mRG2=H*)jMcZ00#A277VoF{*$Y^@K zO}W%0eFnL;kg^Ql2CUl$_v;IN6&`g*vBR#nipl^=N#J$=^%?I1QHZ)&hcJbp%?`@d zaT$Jk7Y(m|WpTNEV+#O+IYWurrJ&qZvR0v#8ID|!(o$N-6USu`N_e~@CP6_94w1sI zv?fK)h*&RnMn#P8i|h8BJ+F_Rpm{eGBrwkAu`9V#_M1*!>S4A>A=mh6jzdV?gol_Z zN-~K``a{9Qp?fGZbW8p4pE^2cicyUhp{thATV^BcjTD;fu$wp3<+E+*v2gF}-0^kY z;5g$Jxoi$vX}>bUN+}iOlaoF1-nj`p9gnQ#Ah?s*#mPKrTRK?)OG?SJ=5Jpwd>G?I z8wibsixi!NiQ^wUAv^jgWaz4rkJU?n8=gFuGqdc zdWsf}bO>al2pnKkSCjZs)Uf8yILMs;kPd1o)I`RLrA@BCb;=idwx&r_!u;JrtstK3 z(TilB=6csR=D)mS5}ZB_9)$e9Qhv^qHXG?7XkWf_m9{C5+^LQ%og9$!`2_tkQxUZRM?j&iNx`s z#TFz_se<=&Qa)lJ1=s0N>qYo6G+zX2azbUd0<#tc`?3`Bc)HN#qJ%M3RC$SO{9z_< z6E=K_m~XIp3UD#N4toR?rgMc#9xGIWw}j!YJh>>Lbx1vC9cNzZy^`+RT(_Pl`lvUl-US5beOIB*W*PX1+O!<5!CcOQY(C)ZiluYV~ z!gPvwAZGT7G?}rb9$O}uOn{|H+p4@+)5L-zLxAoXB3aLMg&9~UIhz%wk@7~g!RGE| zGO6p*AuRZS4KM&|Iau%wll}c?>_PpNntty|bue9;)Ag z#W^vo{YgB@W-Lxx7Y0-BF_qFj&Eal&4V;h26hSQ3w3Y>&JO$?YgLV6tZ-pTpBG&D? z>UOf_V8CWq$$A@F&C5v%3BVF?o%mvLyLE&h(+Tl~J*DG-L)OB#)}$eB?RYTVtT3k# z@$>bJdbu-B(T(=eS#JwOQ*10gbQaf{Elg8SnY&#on zl4Hy25dx1$F4t$G_V@|$h42ZN{b3t5>hp){Z~;eO6x7YO6?Y#|Rm8}D5lV9F71=Mr zhwWmEs$z7c5;CYBjGK;j|3?zGV;`P(Li}>sh8Fx0En~UX-xoaNr%35r32D8S-W6c5 zDa)!hjU!;pv}Zeb8_dI$6D0Di`sLhVlT*dz(f-9I1mwTo1;iDWj}s`>IZZCtU4upM z^qG{htc%^c`G{zi`rISO>F~hn1r3s`scJ;_$Gtye4;^nY@ih|qM>{6P7tgz((vpW zk(&oRYWXJgEUXG6bBs~#sk;A>@G3^t3~Q^voP9R91-C^V*W@Il_A|I@^>!eQ16 zT>#4{lL0|+8CFd5GK1eq@PCkg;cckqg-wD@nXzeo7qKF6f~o;NoB>M`*pDMnBA{%{ zBq%gR9ZTFlQk9K@w*S>^gVC0ZOO{BtH^vjakGg(~e1yrsL*g<%T!`qx7U`i+-(w8qk8_8qIpcL_B8H=iLpW ztrqkkEL3?kGuN`nhH8y|-$zS$#84HXID_jA8`b40!f#PZQv5Zamk0TfuUK_YC(%N!dJ-J{a#r*9U&q6q80cK@5A~(N9Yy;+@%nAo$o7f90H04U ze!of`NFzfO_V+PWdW^YMO|TR^rjPhUkj|0!x}X&PrXeWzLz+t?a1lCM?rP0%6aWUW z5>!qQ%9uj*0=<9 zV0KR@2qG*Yr#Q(h-g)%U#B#`Cg9AdN+%=xB;zA+^ay3jGZiIZ#4M3+Pt0_Int9`3h z)R*l(8o1@9Bazn$w;%1S7FBRjnA7Oc_nDbYouN$oF?+wJeAI=7?R|O=qf;>CXW+5@ z6Wp-P7{sWeKZ9Um+Pj`2H(dn3_ceb~4QQbKk{`W{GFM||KP}NjJ~C_j9@DDd9Ikt5 zJlJKni18nDXkru`nC0y(Ao?|@PQvRArs~Gd`El-(HhiA!cZL!+N+#SX) zcG65Xjb9m){NH$thyj05>-k+#$LpK%&Zp&)AnMYD+6YBY0qOVd2%9NrbLP^y&l*H} z*9^nUYNf!b07D5=Kbnf1}n7B9~zZG}l^Ynf^kdFr<TCskU^PS$56aA58-QMTlfz+Fd`p7B)*tv?%WPVBQ@KzcxObIv$+>?1GJe|BZ zl_a9NfoEZoRP%fD@r&V$iq222f$n0TEtN(MG!hi%r-WsBJSzb2^z^*5h4MTvPJP7r zes;as>GFB;Hq>WK=S@dvTM)B;c8iDG{vd~Q=Z>|wQ4IInLZHHS=(cG*l=ZNTXh<{w zooqcSZ!`)uFD;I#?hTwp4@TlBD_$?$d3Q0DjPIhWNOwx+Tda{jxU)3c>@}WWAL3W- z{Nr<{lZjX`#*tNxy8~n{+fJ4HrLVmD1k{TCg3uFAq&ZNa7iv|mF4#oJf7W`YDN*IN zI_APY1s-g@X!TUNo9y>8<5oR`#FHv=XS*goF!UoK$v;S044^=UuvhY|QP=;|ql46w zAD&G&pFiAG%I!%qL~PZoJNyto81RgnKP%gam@f_IF*~LleN`jFwnUnzndZ*v&?TYA zdN5W?zGG(gvyaVk=&}?7c$d18fcEsnO>YUOVBcc*lb>~78~K8t9Ago%%kn;HW=uXt zWo{sV`I{Yf60cB31*H&c7gJsk z260X;g@lpS`i7(`RftZewi&s?iJi1v06-2GuaP;Ywz~oE5qE>24aeB_-Q`#=pglFRrttA5*#I zcDmDMfPZS^M6zBwe0hkb@KqP=;{Lrmpk8QKKh~hE=Kqh=sw^j&mBvZzBZd2m0$i-4{cj`Cl!_L({gU{Z z$$+G{>}KYGF=kJG=mO|2kQEoFYdUX4qxvhf{sNkPWy> zWXRSe015M|2inZdAj;``Cm?6=9CHqfiiDKS5Qyx0S2x{Y2rm-0o$YTUu9HDJk9<^Y z>d?rutDz&{9sHLTgg{yrEB3W2HW-HsFH$I%%<9UE`Br{Sq5&o%<>Mo+^6kHQ(v+Z~2#O+)LowG5KPp*Pf7G-1&goq0pw5H*uNHp*bV~4(8aE%i=l@|zL>NeJ-@Z*s zLVVsLK1fJNZrvs!C1WIKV4`5=W085nYEF6YKRn4D;739V9G!J*NJWa~c8bn))Q^RT{ z#rjgFuqDGUbJAxkY$25oRORnBD>#L7zTCFhz4B}INJ2KKDt$=of7W>-H?xl}mYssJ zcuaa~JM#jYsCm3O(&7bm6IHc*Bt0>-RyN0b)_V$Z$-m*QxmSm!gc4vcVm3e?*wJ>j=lp$Rz0 znlGeTOg32+z&Wz}@Z3@?9NP_T!?#-0ss?@NO#Pgnk3KR<*NDox?-<0l_`LW~+XP!w z`)B9-W3EFj%7YjG?%jFJM?$H8fBZ1?G4fcoahz$$s>#?k=bkKfYHWPx@W!s;D{}6$ z=SPoc+xBT$o*b-hmSeWXUJ}K5U%D7Q>5Lb%ASsp@kN+d-yTjT1zxTCOwOTtuZ8c-X z-b&Hds+EY?BKB6BQhV>%rKlBqZ)%2wDr%MTCRWkfN=y68=ljba&y_3xVU0FULy_gPsK|Pe-vBx&TwaL$cClMO*{N=vOO zb*x~f8JdFo_PFWGx{SE!exern14kL+BQ*z(K}1s5+;id!?t1qW1u zdcYmBDdtA9pKFyx>jS9gbnk^@G+_x$hcQUg6d(I1Ym(yOn^3Y=l0a9gcjN&Rh0a@| zj2d&PDQ}>-dk9V0q02go69V-KAG1$<*dKM)F7-$(^(;=MO7+3BaZc2 zFVeR?H3b_7nau=~X@bv#z)aCmEt-tYE4yH^G4D;a&M|^RI7pj&+BBM1=L@dTqDvxK z#w0H1Rkp;_dnMAr2#Bw=Fs#i*@Tk3ll+n#v+0e^X1uMUfxM;dVt-A1gT}=qaao}ZL zAa)+c-DthX)tX&S}h0?)<#0c~COqur8@@ez}?E>vnUR_o=MYxXMF!$5Bf4 z_YRBd}tfE59xIM35YaKx6Qk*~8ubN`8k4QupwXRibBKboieq^*3MzyENBOmeF zwF~*Fnvc`hNG!}Ol(}^#TVoitY+{7OqNzwp4~!*(ywSPpV!&uX_N$VH^K5T5_ynQA5h7H;y-so|4#8y+R z5mSK@?p*Htvc`TD@Fk2}d?4e$&E;r6ij(E97(iu1+VTVo{ji0XiJdeO~RBCdUHn=DmootFw7dZ{K{U63iESZJo>}giy-8M*?fwMzxf}zqWUD zY6w`==rhbl2))>EtQo7@J~I)~8Scg>EhgQcm&h!P4E-1Klry4sfoXQ4smjM_k4B^e)35yQ(PozyA zr$3UqLFl+{A>x>~2Of=l>?;|=7IX5vk(HCbQUFIRwHR; zR^d_is9=VvH=M-OVXEP^)T&G2DM@1gh@Re1jcrfizK-!Pq=zs&f3UHNk50_fcnLO> zP>AfbLm=@YmNI;pjc>69c)_&4LZz+MEdtjM*fXu}=cKJtAaDyg%^}qdvOX-_Cl_n0 zu70N(+pziVa^LNY@U3qcsTRsDO6DKVHULVmkm`C-Q-FvNCjuL*4P@&x1xT(<*s_cX zF7tLY&O12>iI<{HO`9Q51tLaUSFNc`_=J_5JJ-Ce*U$*2N{|2>QTEJKsmjZpO-%w9vD@>l3;o!+R_AnG{5&541f5 zC*@wt%EF4zjN&n4TS8YCnhO&ZJ;%*g-OZU?hgv9MW9Lxs>Q6?aebV?8`5oY*`G7D2 z%;S?fTH3Qh(gB8Fn>%ITG>sRU86T~;P};RWT;vhc%u0;5{c;jwWPF)1p<~Mt!&F)) zQxX20c?G+pMRa7YHma$P0f;CzBZffo35}zVRvML(x*QEr&DNUc@S&<*w+YX2U&8>* z#O8r;LOV-u8B#AjohXK^OgedVO$Dpcs7knNPb0|s&gH3fX&Rn5o~t0v-pR3jzVjas zL#-r43p9tZ-qMqZopR@+6D+K`x}0*C^QsvTkLh_VK>=8#$G31R1%3%Bk-fz0=Jv`N zUI4Bg??#sgIM#vZciU0{?)#yqqNd}#-A<}0-Z^B;)zTwz;ye!n>l!rc%N$F7xH=Ar z>eY}2mIE}tSL92Y26J?y7n*D;R!|JtWjiJ2U~Vn^v%8&Qlc)+L6pHHZm##xZ2`iiW zXg;+#c`V?y{}H7uWgd-IZq52?*~wU!TV@Wa3OiP(eyw6l$~!{+TAuabQ%P(Sq2lAy zT+ika+5r6`=-1l5t1R5a$D!uc7r9+?jDUQJx((1c(pj~~)ZF*wO)9&V@{8*?B24&Z z@R4@oY2BTED;n_Jj}5#E6OiGwahSr&xo}QS4Q&Ia;_xT=fkDmfxea$CTiEU1@~U@l@|tnAe^e|JMb}rRGz)*b7a%!2p9Ma z_1GTar#-fo9p~J*wtc1VNa$^RX87e+O@#+f`tXLdA94x!_L?j*wNQ)(znGM*GVlJ- z4|Hovaq8?^NwNlJXHPI>Rfbtbrr}FeyW*BskBT?G<&3Kik-In_FD^qp?@KFdVO*q!=A=oEXz* z&nqnFGL%vJq^}=pzOYjJV63WvHBmz@XU&BnVY;oAieH|C?3u01?+54MMC@NUB8Ygi zA4Sor0};=p<=Nj}Pg-hqrkgjvldKbXD2uxW1=O6vKdGf?*6xe*=b2`4^hof<*YE~E zOuI@eK*J4j4-}HeD?nb1P_O3s`mnqN5`nf(1#v3o20`rStfQ-Um@rh4vYqA|&if||E%N^}r`@K|9@N;6K&?#enh^gt>T&kt+8|HGR#8lnkFvlsK zzanPu^1>+cVsqYTQnsCBQO1_k2kFN04&+#GQp%0WQ3!>hczhUK3xnt|INevl2u%-d z5i0QvR5#l2N$m=F|H5c1$z)s-AlTi`agNj!lJKPaoJ6`DTOoo(TQ|Ad*oH#M7rw(f zja%!}#9olRZOh8`=fEV3F`)mr*`p5L74jqY7S*%C#vVarfw(>fN&OcMYmDGfHj%%N}@VB-Zb{&2Gm>DzOzGm6?@ z(mO$5@l2-ufw&HuQ(jq|t0t$0I`+^W4HGD`Z5vNiT$D^Z=OCtT943ve0ZbT=Q_V(a z3qKQf%wB|BW?>QJ@Ifn$VN+tBn5De^krHzQVXfc0>>@(-&}v!docd>iJv&_3qLwx; zjC1%a`9!g8_AU0A`nCsKel~|1iNscWtb{s2WqVKN!S*!o1tdK=(NYW6>xIoF{gOY` zww&#$r>FdgojX|=2F+6a;mhz3G*C*MR zDQ)eKd8$O3yL_wk?LID7C$$#_qEh44Dxw_GNUw6$xCljklNXfFTJEem@=o%y6~fyn z@HJJawi4Zn^u|yg*#qk;MNQkCcE_Lqjh6WYq`{aF^2OYi|EhXD6bwFgEH!nILZu2Y zn37iI)JB~~HUVt4RK``fe+`WNS&nT>FplF;pbK6q5F3jDA9-Fh`pcxdBbPvKl8FW` z6rRJ_7E#*6^D;WFUgy(C_XFugsE*fSMhEDwa%>QtTe3HYl(FL6N&z_f=C(9;d!& z^d>ys(zfUXgE^oXgs3V!!#au#lRxl9p3s9IN1g`L*p3PYude-Se#uiJ5te?1D0b;! zw^+JZ%oE@|%ne9QPBrSM^*;A9K85wZ#@3|NhoVV{*Q4(X*_uvLmLd-tXsbWtX3~PMq z-{?=g#4)5}8?>a7K9jRDz7?|}Gy!Fr-)s>GavuPt*2ou0uV#I$A=rME$sR8)qc*wA zuL7>RI-M}5ozKZK}JRu21h~vOO6FJQ81t5$ZdE&%W<# zyT<7$Po`_!uWp`55e}afQ8&rm*(yl_BSygGp)L+hQe{##_CEv<*KKjk1)?pi4UhCq zsQ+N{XiG;~iz{w~8YLmtnX`iR%`4l1PijAY5K(fG`=tGtqg)`aLz)r`EGZStC7#o5 z8qWPkw8NhMht-v-Z&>DYA~CB+FrkD1X9gZ0_=K)WOuR}#Ah&Ghu;m8O-(D``dYmny zA2E|153d>UhvRSL{}iN_?KPvFrnF81h3@0!*o2!ryWB-lHPX4!+|#)bOpy`@Gd3XA z{}Sn)k$Fe7(AvlRxNRNj{!FpU3w(-vbeK?4wO4I^S-PBZ$xI)|J<9ADd2E7xE4c-h zk-%*(!B+(3Bv`%mKvvFLkaA?j<89{TY^ZC&ibjzwF8{q_<3hP0vqWZChGp9#^bX#H zie2!NKL{}SS|F*5B2rZLj}R?XyPoVH^Pra4 zLf}+QQekh2tH*1(hR1Bzk@o6$7YF4IB9lX98NLn*FlEi_g-Y2t*w~+R<>s0eTJgoB zei^ZaL^K8jv)T5Wg}kfI8kGI>&8zOOu3myj?;W#mv^aJei5*s`ai%Y5*_`}tBD8ZX z!!$^cnA<8`@p^yU>PJ`Z7EHb$VH#MqMIK%8;RVw9AWl^Fz?p*v1^D=(g(0Uxl51Iw z$x72l7@N;U8PpjhGwHDUMdq~;ID@kJ;wCTPrivNK%NY(jRDYhZ=W$-~- z$Na@t39klxpduyZPl?Ro2{aQ9e<~Xyn3gFxovtJvMHUnDweCGW(be#9fx^{BId$io zAH_NV2HuY8YQ$P{SSPm?gumu}AM+@FSy(8lM=6iT%Aa1;?f%zF8*?AsDp%*noF}^J zl)~ywzU`<24gHqFfQ=xhX^Si;^+G>o9=T<63|FFsqS~rhiu#xtAdQ=t_-L_iG*N8& z3Ui)%9LF^%v+$e5!=9ulP+H%x(L9^HxV;&_xg3% zQU`FDviGG;d7hvN5|tzMJP`mS;~yDZV*cW2BjhUI3%7dzOUi!G2zYmz$Ay7nOtPR~=VXA{rQl9ON4{SnaV7d&ptl*M{<_gNrFPppo#>al-USHb2 z$BE=(KhqL(+Utfv-Pskwr$)9B%`SEqbEkX{a6A2n3xMU06q)RMoU6rYD*1{YG zcUp*6v%P@HnH@$O&~mp1bxc{Cn_ljD+1Q}znqA=JU}B1J`t-v&^NAt!ZW>!n4ngI{ zKk}-^xBkYwK<^7fH7Sh5D5QnQo)rf3<+Xe@es*F)QrO*DmT7rEkg$)yAXVF5(;V?Y z8$dHcP>Jvpyaou9%X;vh?%|M*l1E=ktm*V61>7r>x0eqmqZ8bK9c6?-fU9u)9L5HL zpGy~e#$&^?%TQR>0)=yQM)&vovuBNLig)(z*U{xSurm^`t!8=)n^&VwxRu3enLFF_ zoDq{BhVq`%BYA~rgq`9R1uI5gw%UgWzJ>F_$pOw_3A?7tNqcqcDc^Xz_jXzb-#kob zL0UrNCxx+RN$ZR^uMqRomu0K>Gr<*yd90>_zgX&kc7 z?u2+ENZ1Bq%l*VLdabR?YbUohpy^|gJ3Xznn%4v*>P*`ES!x+=twFKBT%HDkJq}^3 zZN5bU14fDJ@{Tt>%xEU%@|p=d#+VfxzE)U2rN!1B)_lui`^n3S5%G*3K`14L%0s zc^Z?DkQpEGb~xT}VRLn-aVOKRszu1ux(@1O98E!LS_&JBEu)aM)~K^x$|0IYIw*O? ze)#^hs1#+UO9LNPZ!*q)lyRcZD>navGVoK|xea0iGqEH0*d4z)HzwR%8=IYfKQUxN~9Im@wV=4sfd!LAG=SU4n0~&`o|fij&2z}AQ}CLo^RiF zH{woF6$o}4khxz!K8DkNSM6F;<>5kkwsUbUFNw!6|0D8HN<(eH&I;{OBL{4b3d{)D zkEG_t6OeJem6$yw;I+9I@_VYqm(TqnWiXJ1kiOcZsO2Ydx4@Z-+aM>qVBrFvlxyCE zuZFmL51uE?k0lJ)Rd~Qr+MCbgCaa~0`?_%B2G7=Wu=b_aBQ2@zc#Br0i~n%@W4f-n zFKnj;i{6?((+@i%ruLIxT}NDU+>r7#;@Uf@A2LB+j&@*}wjIbdh}iN{Ud^$@!o%5inrZZNq)@ z%V|sd6FQ()w<=!^C9P139#+%O20PUfq-W%W#m&6@d~-N1BW=btkqZV;X))I z)ANAS^3=Zd7R?20Bva$K?u2l<9qhWFE^fKqUJ4<5)oe*8fGFIR~Jclu3{VWE(vy;ts{#oJf4PmHnk)oGnP zLnBPI`SlRCVY*YT{9fmp@ohO4vN&NA#Y_`g6D1SLrf9?VZX2H2Tp=`0Q`UuFIzOtk zU9y^kn7pafw=F8?9Qce_DHkzhsc3t$z5jv=zL-#K{*@(Ozgd4l%H4*3X$HoSFQGH> zSwfqh>658rg;jb%1|3_44%6!j{q{OQQ6|@F@pc$LyuB=@6~B5}vnj7$7-)5?H1#)i z%eTKH$F8*1lIN6>Jp4*(7k~V#b{Ny$?epfK;GiqZEPZUPHq{s#;w)tDY(7hVWlcR= z%(>q_f$d(slPtl!IOQDicK%7qo)^Ro88aE|Oj`xvu(8mf9n?S8Ks=>uO{H&gOm0)j zoQvJxIo~&3mx;D*Zo0yFz2*ri+zdU4AK+dMwKBc!)0p~dX`Si&}K#M1m zB%r=l&Q6ml+rHn-{vQ!nPxY(EmxpmFQ)3zwvX@pTKRs^lohz&#gnEQ6BJ5W5%O0mx zK2B|65bQfX+7iZydeC3XDc%nxbsKAMvg4emx(#1(=sZ#xp|u+ z!8_&?uJJI-s1Gqbs;J`rY^qI!-8EXs0Kx{UzC%vmTuTD9ZRuuIppfai{5)hX)}`Z= zR$dRSV}~6-tv9Q?o1-vKbA&q2sJ5%OU_c9@V4iMSyzSO)! zt4qZt6Ll48NQuk6z1|GGowleWh(_a#X$szT52yQSbeA?+@T0zf#wT!!?{3NinX8t* zG%Tj3Uf^SD4uX0&%W)B0k{XZNUzElL+BndIMSON_MdFr50I z^u{jRZuDsxF}DE_5I6f}qc1)tBx4Z)Hs28>$;u|7*V3j>D{Q15@bC1`-sMXtzN0Nn zixUtK45&`2p%#{U#_&{lzj@cn;C3r1Cu}Z)VFleblTKsdreCiw97&vg8gf;eB@F4a+eJ?ios{n)`nG}?^~Ii zXbRf)(VHyL*W5_6#r{g&TU|dt`UCtb3Bn6ZDe}k#!jk=rb_Y0whTXNvzT<^;Las8D1WIwmRBj2{e%^y9%D>KB@i*voM&L7 zj&8o_pB)t9tj>mgV2$AnX1y!Vo;i~&oXlPue()0c!gT&Ft)!Yfg)MjeObxSvdZU5j z)xEkzB{23)&}vVu^B0q+#*FQ{9RW2=o|*t&X0MC?@OVh-e}dtNwui4vaXdag0HePw z1gohr_Ak6YY>)=0;PPu&USTEo$T})>JjqdT)8vVRt=Gd#2NhN%CS!cV2fn6t!}5=) zA2)T0-019i%rV{E<@)rD=gq4zD-D;VRuhZY$}T(I>WQBd7tzD&ac|W%hg?WFX?ujE zrVWHz7Xg;eMZ-)@SB_K%cA4$cL+)G)(mbBU9J!HLis!|38mAwEu(Ju(x+o)3V>Ose zh0xkTOGtF#4iu7+)<@Cc-<&WiWdxNSE$x0j2S>MnK-u-{Ei7C4%)iPBN{@cwvOkks z?gXarm(0~F`%2&18d|`TWs8s9fhTojr2wvD&f{)vjkGgw{qx6zY6|Hc5a{P%l^5&L z&0xj5&ui&HJ@m!S9|XMmGO9Z1~!;v6x8^^sTGbJabn% zC>rhfGl{7j8o)$uwn;Vm;h4zFLQGDVjCmY=k4 z(6vtX3d;z*mI;#vf)%j;-Ar`sd3){;eIApHkJo(nlX8!v3p1Bo;yAd3SbuhunrGqc z>AnhvZnSH(rWwQ3K%8BB!a(RJ!k+0AsRH%+=U;?Zk-0-yl!JP0lH48o_Rl zqKgOHd+NG`F0=mxgRDRKH?DOB2ST09S5|%nYueWvSOhHn&}lb5$V9z!5Rxm$HlKGF zb~o32`ZKzxfj&Y~P9=}q+DG2no3Gz$XZ|CaqE;0S7HQsbg(624Gmf*jhm(`XP5gO6 z{g->XMFG=Ud3;fY&J8@KORS|v>Uw~%9-mzsM!U!MMxpLKASwLfoazawsJQCTWT|%kh>bCF^?kA`w(k7=koF;Nc5) z_FLY|ETfvedJ=bk%CIMt#rGsz%G%z!f4<~aI(78ukWlYxCvnOi#ebFl`riiM#!;}; z^gR=FUbXo31^h_ceBrG4LU^*mgdu*=g&&O;qhh>q4ROGfDoY@eUTr3*B>Ldd=*2eT z_eety0-7K_^Z+g=UFlHZRhJ{{XPLtW(?HrXB2-xFz}*I4bf5 zf=1(mvw9uujAcJ;9AA}ho`Bu7Krdz!tXMYIW6y7E?pGs}jHm=F|5mE-Zi%}Q`qJOJ zzfud@Ux&ai=4Yp%CkMd=>Em0h)x@?UYMZmYZyqqEj{YO!yYJq1;#jfxL41qywJ%X3 z|4DgW1g8cwuMdOWqKk!}E`dAeni?c7U9lA(1VJ0vnNN%jQDRl5)Mf%EaJKP;d(mR* zV!6zYAH#?O1%nzD|A@0;vatocqrLD;bz00hWvdxDe&&sK3=CQB1y&dhptIl*gn08>VD~sTN9ao zMEYAlRJIncF`CHb7AaG${3`zTKN7ATJ}k^9nO6aY))@R$3y2QT-jJkx#tww->#rbP zb`SWeN7U$noCTj)P^L!mQ?)PxsY+u*t_spw6IzhN(l_Mi52s8s5IlT@sWn&~U$=NB zy90@s7sACdnF0O5eYJ_AD5aK{B9gB)BF9OOgr&3}>cBLRK?g`u4nbGN`PClR7A6bG z{EN%%f@K4J{4x?RxUwkv15np)2g$r?#f=Vd%Ov*KBp+!)<>LJ$pUL9V{t>C>K|_wx zTmSz0vwlJKlf5FZmM^?cPdJfP2-`mEcaK**!Lw=%_+^L1QUzy(m!5<&DW>?b`90@M zPV;8ue$3fWzB=_(-ofD_d$sM_Z+nSr@WHe4cuE=|mM4;J*pH_xlOD^O|CU}1;|&1_ z&Fl$*05XUs;+Z`hRi#2l4YCAr?i!(31z2IX1%S(amr&Tr*Y=n|bEI0u;%>vI7G$~a zyh&=9{j4B_fV5qMjzsEHeOtG_UJ$k_yDjpHhX_7(oDwIs?Y%cz<G@BhlM@p|fwJ@3UY?b6$26mx4xYs*sc{ak)EIEQ4}?GBc<=_I*owSO+vEMxM;n<6IL#-LzlUjtd! z8E>IYaT^Y?fc@m};Gaik*MtrrrD4?+5aAB$6(3WKWgw+Y=@!o{klI9B>e6z$2}HkXyBUoa-0}=qxgkI3YZ2N$+UZFBn3^Pd|81;2 z1MGhue@a(T_yZ|ec7Y*Kqv^+=XFDnq4xFyAChN$O&k-QfN)}VWr(n#NaBT6E6o67g ztL4S}^QYf!BG|s%S-=6nWxjS!mC*Yv+P1^Qj@bf^3&E*(n%+zXAKHLgW`g3p9F~qO z@&8K1!K4L=rUV``NTK;SUX0V-EE#|JGQ(r*eu9F-y} zt)SD>g%jRyY?(o-SMwxgw-sCW98}(W98(rs8Epv;7{>e~!YXP$zvpoWMfeK9TjctO zfnr;(Wdj+FOH0)7sVhanGBP~au>YtIS$8hbOV3ka5qD6Ou12!Kf|ZZRYjbmUy+exm zA~ia5f8o93QTc_h)gau0GSx803nenaqLIn>n4Wi2(-Th!Ocu4q;WK~%= zZqdz?!MX=Ocm5H5@2yMHefEz?A?-V?%E8{xhUR|2#eY?J&zj-l(UImqV^FtU<^r$s zE2#D6O1ubWRB8z#F$6tyY${{`82@DMa-6D>;maPM2q2KCMAWLpt94Floj+Y)>Rf#1 zAewa{0@Hkw^s9}tjuHB7CC}=b@p6@KVdKU%+vNH8-_{>v6NQrR@XhbEQ!);cy9QY# z4Aa~yoH6e9>T@PkoBv^oY{gVQrlUy0jMT6?R=c9)Nl@j@AM9ywLi!(PZ$4zGlWR4L zeWMI9`g9-kM?!G=Z}fzMy4AuzqLZ`k*?|uG@3vaQguM*qq(U8MkDAmx;dh1N26cMM zgX7CS)?WTnrTQkE;~Z_+1q+LW&4cvpo?&mYi7oFg9czM;F0QXuEd}1mD^C1ycb+GQ zP3RmCr3^$E5nFS{J*A)&E7pjQEdxgOT?T>iF>Elp*V;f#43W0>lK8sr`yP-5zuQm9 zJ=p5hwMdgXEUt9?r5*iDJjTWvfd~y~;r;C$DDs?67Ku2O?UGq}(T+}EcG(sa@2uU{ z@~o?0lizn6%i{Ynt&lfv*ZN}MdSr(%@dJ4IHB2pFWKpd%nANeJEuYgeVHuOKIaFez zp9oakEUq1rlbG&CWW8kpLzTcWIi$?#;=AKJZnvadZ$C$na)gs|sozBm^pT-K`~U*< zuK3ilGm4u^AGp8)$jd0?eNX-d*fjdU&WEQ6hXw1IGYfg#kSXoihxjB zXSBFhDXQrj+({r}r6oA&>E01Lw>GT`a!+zZXi@>;TtlD5f=yR-os2cDQTGHqU0c@9 zYPW^ONK2lk-eXEk9zFSDo0})+5e3cnGGfg9IP!6FWcZ^bWr(Wp7g?T%u3fT<*(91= zeC%)N5X;eFdy_RPzxnu_P^mXwzgg`-Q@J+a`!@FSP*0q#t=(cK;WJ^^S7&rv1okRm z5@AVY$u`LCb+^{Z_Y!y2sVEctjn0;zZd6(R>3zdKp{#hZrxAI~J94*)7*m8`cIbXa z{xafzy@g=X1*qIhZ?Qq6FtP<0$xe`Y0y*=Ofv-{7+GAYN|&J*A(7=k*pkCa5q*tuR}}m!wzz znA~C*uA&z>`RTbZRs(oJVE=xecq-A&KUHr@suVggVN`Drm1;&fl;StdBJJ7PZBJoW zU5YNsVBFwl4!gpFhU|5ob600bqEfv$DoUH{m3b`F=|EB#?J6XKY8-`L;H~y@uECb+ zAZ)7IvS8)N=BnA;&l=I{YqxAs;LVS&k(Gz%D#T+PWBHBLr}J|FaJ;Y(N<6_drNc~u zx=G%C`>|yB`zOnHdv!!4NKFu%?NAjuwQ{aZLDvI8z@$H>=|O=rnGKpG%F2o}*-u&V z`JgKWNTs0QA5pn?HXVpAso@_HUFgwC53g2Hs+ut;P%cYa6Tk*l^Y$$)0G_m3TVz^E zK{e*TuIdGMa3~78k+wOW(BxWxM7<6WBxil^&Is2mhv_^!#u%gdnUs&#zww^m0AW3B}j9jajm-9^7a3!pzpwNOdl ze}tWhu@~h+^>d841~;)E+e3v`J+u>#8d+WC3@rJ}VnqwObJ}aO|tC8}og4b4H;NEPbHM2uQ zc3!K~LqeOcGiEvVD>Rd!0`=s3x)2%{EoXX$`@9*{35{=_#<+%9Q@7=jmsQtZz(yN_nG&Uc%b-Gkbi~3k|6a4q~ugtM!Fi-UV)VvKehyos|rm`$G~Sx$oBms+GGJ_bZ;f?}-UC7s?jU zZ=8w?Vg&|Ccn;4b189RTI&Yo+V+Kc;;S%Z5*>VzwV}?A>wC|jgB}+z(ZauBfhu5Zq z4@O5vlVvZ)N@w%TbA(f;+WqvbXo|6BBd2*x6mQrpp^iP*Qd^`rq%(l}9nFO8imtIO zkH@I&4Ph4M&T4Gc>)e-GB4Cc+Yk$`Mtgf3ai9Jn(n;@B97qzBo*$kxO%xXu1H7#|p zRoi%_&Wriv94))qGYaMX)7gIAma`mMTl)jSNlSQdWs6Au8QLe)UfTYRwC~(r#ZLHb z{U(mr|GvXeQ^2EF5gm+IzhN^rS<1qnu4V^~FLbk&+`WV(1z}$A%bqtyCsY z3Kvz>ZeLChWXS1AE_Y@woghu3vc6{gvrE3cfh{oIu-F?gWQcRA!c7v}ZHHywag^*IA5=zj3Lrc1=e?*w+|AeoK1x_@F1?5eXLJ_$93NTML^wT_hb0-%AL7eSI2`+utl(b@* zPig}qrF%sb1)Pb@-k*^Q4m!_B|B%gWTqcarYpXGNr)8kQ^m@0R^);`wvJzP))*E%I zxI8xg&}rkE&C9d-=S1mTo+ZRo$|5yA4`*io@O=Gky1SMf1vBY$fmaFDn8EdQ*MEGIOQKE3vUdHJfnJ zjk2uonz@cOWBWtLV@X2$<1-v^RH-(Sisb`DYR1$Y`?v7*C#H#bsED$lg9F>M^q`-% z=Nr2_V-p>ykaR3zl#{!YUwF$@=x4UO@oi$)8fm-k?k+Xq434bD))~0-<2U_%!p_|d zXJ_O$z1nbAw<}8u=X$puc1LgeJQnMIU-VVMXFs63Gs+41u>1mNshLf~t(7pXii4nT zu=P_TXxSBm_?%0;5=uCCISM`kd=f7qx~>;7spWSX$@0GmBdu(q=S5OJwT@WI92B)N|~DSBJ5 zf`Jt16}~>{ZkBI`0nLD|j*(MdS!=KHTJ?BPIE8E?OK()M~9{`9(Vdwdw{dKfI|McgG(U7v&; z6qwT?zzP{2n|Kh5y$ZKGq@aM13xp?Pz_MdNoe+$p#RjvrU;Q7Awe|@yiBhlP6wq8FvV?btT@(vdg}F$Kb#RQ)5%rr!;{{mKxs8 z$6>o04v@U$^mk)B{fwf+D>wPF=oa8sh2nH`!4W)vyt&3z#e{DZX_P`b`VeGBRFpju z)(A^BhxN5u&1vqTV%XX%fE4FYA)2wMfX}f-$d5SPw^8+OylGy=F3fl}%G{P35-ur;_5qTfDMp>=5EVUYV11z$X>HsO^5%i4dFW;jOE`&$w>P z6Ws7EB(U}xw5D z-#`P$J8C5z@M^TE*~%!#@XGU|Bm8X6k#Gy+~#|%_wtN)64y$zHHM* z1_pr!=9*dTsPSTsZkxSb{~HKONqTKj!U7_zsQiEebMnQ&0)noxVq>lWw*;hEZLa2E za{oJ3^fNhY^zOt-_=p7xHq>wnX!tfTKQQU|N2I2QZvGdU zfhF=p_&mgT#)7}d&uU@0wjXD4*nPF%0@v5!$e)nHC6fPujO$Rqw{wgaZKZh~IHTrG z#zkzm?YyM_3;W_)Hg2k^N5aP?JUYHD+qLTHlZpw>1kRHf%6zPKaw@=PZCq5bnmcJ zBHO=r)Q)2uVY1i|k*2d~YSASYW;!x$Ec@UgYC=@JX{k4HJ@pp|(%g?#Sjl zyCa_D4OsSh+!Ar|IO$43v`S0E*WM-lLXNGtc5vZtHL^(_)Lrxuz2sK+OZW8~yvPdO!eQEcF#pdL~xaG}H z+_lv|BCXfxPZH$CX`ZH%vx!HC7qzvIwDIh^cx@00OaEFyi4+0U&i(A$2#cX=`F!9Q zB&I8$h8X$)EAj!%n1gwAGN%M+_^VA0G^*XrbiMz`_1;tf9-H@NHx_ELu`-CT(wD2+ zsuC^Y;er?2HaD3OTgNaPd;BSca3Bj^(C*1E13#%|!us@HVR`M0H4D;IdI$b0DF60| zP&Uu+`+_bV|YA7py)<4>Ta%htN+uS1yk8$L@S z^ylvk_P2D!qo=)03=HrcIXbI!O0kUTIo5q4oAU5nHC@GLSB^u9PTSez_I8a=gzjP^ z>bPHk;9t1vY_GGfe&BW-wxxdRG`3|#Z|s%Y8tM9u^1DRVP3cZKCW5xa{z69WN_ET= zB)raKKWQEI-qEvS2$b_9v`^hh(}dh=>^GaE;8g-gx$jbU6ny?rt*x2{1bHewqSE5l z(bIMmnnPGd>5)wd91>hAhlRvTx#dF(P+jfp^{t{I~rsq&5iVieb+bn^LNgl z6YFzxVkmEhZn?YuJGXQ5A5rH@9@d9lX`^4x>d_nj8<5KNZ5W-oF~dk?iKNZmSX9QD zz2yCbqI|Lz>Rel3BP$Fj#H}No0<=u2uX$ih`FdUeox@5^n#tu&r~K&^-^vO?q3IwR z?!ai_#TA_uRY3eSjObh=aT;=Ze_5e^U*d$Y-Z;ea#$Ngr!Tw_V5J5}!)}kT%(+uD8 zWiTPLFS`DJFN}-GD(!aBCslYd*1Gh`t@&45s-+5+D2@`sq9R?V?pvfj*$KB{_Eu&P!}- za1u)iKQ*z60dPDhTX{>ou!BluGN#G=d7lE}C)?ap1j}Rb-byl%z=&qK$2BH(7!M&FihU6ipr!<3#wFMs2*NCHf7Z?n>uI|A^!# zAA9=t4Kp)!DDZSU0yV>%>IfXLyE}vy_&NM;V^2l)uxK)~WYvf24y|hRlX@s9Pa>mm zwCmxIL;oAk%#?;lh6y0jD#nve-fn6&p!dP)m(_(V+eb=Oiq>6!Un1`EKJ-mdJIHtW zk42BrwQii-c%)|0{z^eE`D6Be-e*>CC7;_q%9Xz;m7LRmM&&k3q^iFsQo62_L_3F+ zwzu(OYDpMSi61s+Ik*m)Ot6Kuhc2vni?@h$1Lc<#2(u5vo_E_#hf2|=<95Hs@Nt$X z>)6iOq^P?L{_o@Mc+Zp^IW=w(jM}$t~#{ClUconwGDa#C=>mH;;ObWI}J& zUb@F_IE+5v&R@lF7DVfL2n?NE)ud|r3tK{kjZc_ZD%|a*^%#ML{(NVOmiE1Wj(HCY zXcufNgWKlkm-~WiGcrDNq!|1c4*;rv&ejg%S~_qR@6H;lO&GnKhC*NKzvX?pwL9+G z3_Sk(Ml^K{VN7paMSZufh35T{x}$n_ie|`uua24QSI^qP8uqK)fEz&@!pkSsEoNTf z5KTUem$F>g=;0OoMzA5u&*1n}FYc2O16t7jhJrZUk)k$Dwpv|NFZx z6^>k^1=gy>&iDQwOKEvx#1NR+Xs4lUeF-A@K5`u7^2 znMNqNMjCTw{*Vk8+PD64yvLpq%$hQNewX3l_02X|z3S~ozz-JJG3mkqs}P>YgxjI* z20zDp`KaF~TF;IXfgN>dduO+|3L>h)Ub2)1H2%4V^Fu-gw`v#yf#x`BZ{L}m(EjOxw!_1)$dauH zReZ$AMZRnP3`4MZzQK8v(%{E6RG_prglVggR?_cc7furQTwi_sFl=tH$Uzb$t+jCN zr&oc|+t4Xtyqpz^AW@fm-@4n6g75uPF)(93cEaFoHE$@M2BP2_8XpWpE-4ZNrH%xr z8p(VYxns9Bs;ty8rQ4HskAoR4MowWO(|I>h$)!D>Z9RQc6J?4^ytJUd2)H}J@Ow;` zT~X>Jg>=MV+4E)+-Tj95CFx!Pem!aj=VKAD@ZTx0eW87y4~$<?8i$SgTGP?-);wJ5g!i|~8K?o}~!!ytK+XY=dq4}g9%wA4-U z7#5)&u$Gw>Pvi8$xHFThLXSf~W1=_;for^wAxzhRprtSJ|<&*4$N42(bM@<|)d2dIfSvF3=ry$6)= zs@oVLuYAc;^a6_CMDuzpQ>jim;b#(3sG&Bg&DRtj63I(Rj;-X#i#9J^ovI4`h(=O` z6w3td7%Pgu2rJA!=3@!@E{2!=PzP0LNwVSw_a{F!bi#?Dhv34JBjO;&e?}0esAj%& z9r-W-JlOetxRwR8c#qM=X{^;PhiaAkhhXviTXEw*Jp87TIFD6O$CHLqRbn|6D%m>; zAL2eTMABwb)E-t?N=EEtQ3=NHp-Dt!UAkDUpwOIIobe4*`z{)kIttbnuk?*fPV|p- zcyyI=UIer5OEc94>h3bnm)3x)8fc=osvYm~`rL>|$mEO-)ms?WGBSle6*XnE-0D?- zVZ?1x?C&!b;;3}ks4KunR(K0VdT|8#ovX@ukIJ_b@(6%ZpCn204X6g)+lUt{Dni-J zKCA-iHREQ2Rrp_oGO(?Lb%OqASx0qol_`=~QZU`k{dV#!Gyd$p7XmjOx6$JRCyV06rzjp}z834(PRL*mChPDi1_?Fzf^=I-H=gh?)aYt?PxO@U!VPDmMITHHQ z;Kta@<&9i!-GrPj*ijC^FA0;&jy)P0FHCIkAd?UHC<>}sYP?QmTc5p)OEDuT0#o2K z>1q0HVqPA2V}T_cqbL+Tk$h^@Yt6huWaC);)pyrhl6Nk_zG5i@7hN;9F6Ki$(jStM z901W5a;?ul`c7Ie#ONqHBgckpnl&5{%&IvFjqr_@D~UDG%Y!Iv-Zw5kbsAPDxe+A; zyKKe_fRw0ZNX-UK`>#BIu8jeeaJG>BN6(1SvKAHk6LiHCtKs-Net-Py%O1jY9Hh_b z5gO{u?j+%PntkWcT^4z)j!RO4)o{eR^-DR*D%f30PaX*cNtq0 zoi9RT9fe1Pn?rFJXMHRfdcJno1sG2UG3LD+`C`q(Hu{jjdLm{%9r*3{%$rH4Odkle zI>05sdFRgm$9{ZOJB<;ZGfgJ199|zIJ_dY0kX@;K+ETyD5XXlvla8S1LtsnLJ1KUQ zE6we2yus#`SGo`?@=hv@tzBcfs^y$yd24WVmTq41M9AjA*Fk9gffyKuMwKg%Bbq-PB@QY5n+#FXLaE>0~Il37p4W2R#~`dM3fNzao;ult={{Y|b_Jv@$=4D&%` zl8OTJ&R+Pg>| zv~d^5=^ikpEU!anoE|8kP|4&NsKm5TckE67^|cEv0H~P2)$w8cN@qME>VN6cmis<0 zI5}}{2C_Xju(L!~54JyVYjy=MpS5nd+|d0Z3o07)2NY&r2bcE;Q*NSeqF=y`!bh56 zxSk&Jsn6PDH;xZ5he|@HXf4pfi6H^>FT#E~(rcbVlD`P&*MS_pAO0frQ)>pT4({FT z*!%W@Dq&$0?RRPA5$NNn$3xUPJAIc`YZeTyixj&R z46&udP>@@4;_X?37tf5(JVT1u0s~JRYo~lW>PsDlyW6K`)Xhg`M0Jfy)9$q5gI{Ul zx?ogyzZ;B+lSf`&o9@3B?zZ~Y81dm>?m7IEt3^0^luLD!J}xiHg)UDIGFpB%Jkfxq z7p1>gPp|P0X$*7nssQ0ddJgBu*7zX%@~o(+c#pNSt%l8~KiJY5`q|t=y)QygHv;su ztBYz(?a@@L%&6T+9=!sc0xg5ZyD%>t6F3*SZ}OA(s&g(~4B|_bCkiRoT}Q`DcxjJo zYL_CL3{)9FIMh!Wdj_th!cFwv-X>-E)o_loYNq-Xy@k)2%$mr0aQTfthIqvR__Avf zWAz+)M7p!g>2TAt2H#l+*LpFoXGptb-~$y&wXuLZA6=~fC91xKas(MGnKb63?uTH} zUs14Ca)D33az}i?oDDJfNbYsT4{)N)ILh9NFRL8=VVpi9dfb2}f<8afBLArwD^cOV zmq%&b%&MV=PCn+Ik$?}vo33OFA6vL5-P%kKtMzo%5QzddZz#;SdV{* zkS8wP?nVg_Rh`3eD2Y4JPNFe$q|hN5NC;E!Nbw24a(p;hgj-C(Z;$w$MhjWntMBUQ zCU{3jcB}qyjH|_ePg9cDlFi>!^1n1-7a-ymP^|TvuK%b$mjaiSbTkhok@NeFEja&O zKhD}9Z8Ued_%A|h@atp%4neoXwlpX_xtG5XCD!}BFOPdX(IdEPZl+=6Wm8&wY}QC= z(`aler?I$1fXzn{WOSGDQ4;w}gVbgA{=wp*$g*|-4c^EQO+lR)|F$@rUQ!G0pUrJS z>vKj^O??sD{W%E2;@vy5*P2Qi?*jvN_d@vdI0!)8S009$pw%;)+9RuMqnzYzJ}%Z8 zka~y5C916isJObK8S13BeHqN}j2Q9Y|Epv}i80R)-ea0c_XGLW*W@1^hK?EEZbc1E zTE5qbFszth#3E{-V{7j8zX;h= z8+qk49}br81@>AY< zEDl%Px~72)d-9$x<&`?i_{X|PBq~Krf>{X~y0M6oJCJ&POSRjj;sv8KJbAkY;(b9^Ha%1R=}QCRGvp(oL+^I{{es(27Ual-q!Hs#?8 znRILX-b4<|gt?u4wbi#9^^gzb>B@UO;Ls#)$ff)Td39zP>xhKg5?|lerf)#_J2<%| zzpBx3&tcCXrC!n&yU>v{R!Bc1bGXG{xpXcpp~c{tX|0fZ@2)^R4#|dB+FZ~KRiEdx zYMH=pT&X~8x8zUP@tOXyQCJIMa}90*`4=_#{@u1Vmr6hP&8c;>Z-!FKOO~!wX>rTS z?kh`D17{pC7Y?ixGb1z{o9P@qrrW!zC4R(K>gwR>mucmX)^f3X%Q1^RYj9p(PKudm z)rQHGQ`~l*)lfELKZ3p`3WVR(wBY0u&~rj|>e+hj9-EuAiD|x<%*VOE?Xl|eHJPpA zUj)C7&fy~m(_1OPN)-f!&_SeNov&6v!jws``S9E0*9YOt>)*tet7}Vu3Qxmfv;jDC zrS7<dxDcr z>Nu8-8Z?#tLtc1~R2t5@U%pc_{U`r1FdQE{vE(W#DQw7 z=1yw@xDx9veDhX6rv>TjYt{^(w-Y8QAAuYYPiMjH7zNUn7A5-Ji3nCz=dW+;9+`b_ zS`3F1Co_~>DKZo@z={>K1Jow%^VJ+3dDT!8@(K9!Yiq%z(GkU5==7-q1%G>2$ z){@QJIoxFVA{1wHMGDO66QPw)4o);@mpBGkDR8L2+wbobnI6hKoo#S}lU@Ov$o(6(=X+oR!NS zT!1b0wMu#BO|h}yR+J&tGz?6wW+zG-tE}jJagoFP#*oG=*gIvkSrFsGsmy>gTxe>% zGNaOl#im?%w5Zrdza_ejX*r&Jw$@;+SEgUeM``@Jw?F!QGuNA1G;F;R27LU@tP(sh zaBYx71+#a%{xSVjo|>^+>$S(@__Gmkj@I0-ITN5}lOOCrFFQ?E@^a^_rPqh69u%EQ z)%jur&Xv!Wc~sK7edAw*&jB(Ce{!$=U5X!0YWy5v)nnDuPEnT7SSPhqBmFCIqK}|; zt~)NO?JNCPyIZEAgIt=%_1^1Q+G!f&4sHAk=HJ^VE=3242&=j%Z1z}13rA)~c3|@p zT>VahdR1IB5W4K|qvmgh0}V!mb0;R5Q(KL6K?e@U?fGwi`Gi9J!%KaacM$aICSIxb z`J&khN#R~obwWN~_wqYMQBVlsm3mtN72MF}@LJBeHqK~%KyY@HIKkbpjy3`GEHh>h zAccifs*nC#nRZn!res_LH$iaxh0vH%NyKa>gIq`Ma`UW1&1e&!+aXXz&}9=8?_nD6 zBDjJA>E@fh|AS5WBaGVm=4A3a_uQ!q? z#Y5gp*5ix>I&=uBP3EPvru#~!S!09Qvb7=?CyM*Aze+Q8qCQHnIVp`WYLiM%z+&X0 zTXa}-Al9Y{a$281>uceeUko$WOM{+}=-~lt(d6h7kHx6x~nNLca^T0EpYz_XEP#z-_k}$mat7#rU*X$Cnq=~*{Fv81#K^Ci7@$# zOa1h^Y!NRkc3}aM<>tD6HHR*Kiy*S=6C?fX$}@9eqFpui>`sn+ zHGP3td?E2VpsR1m-XaDT&Z}K#)Kgrf)>|6arW$emCFM8f>0%F;QeUnN^JxFHKW@}y zjC5k%dF@%NEAlupg+X<4i1yp1^$2nvSvjj$3?ioN_!3+uLdu}yDRY2C4O~~MF zY1Om1?!F_MqZD$RKhQwC=pKI(Rp$MXxtrvy#ju96j@8O2FKss5Pz#B?)L+=9Tx_(o!i&`!q#TWD{nUk!GTB|Jk_M?}mM z)8I0cW9NOiUBk}k;eBxy{Qkey8T(SK*^!WKWTvVH1af~UA;GFqT3p9zA*H3^ec!o$ za0yHC>MlA6HLE8?sXQ`gY*Gtk)3Za!c5STonG=>L_XTIvp(n7;hWg?St|_OgTKT=w z=6wTK+0=>Js`XlBP>x~OEkZ)QrV@{))RJKWg)!fAk}uY)DwpAwgxorlJdexE#(Pa& zVfQQyzq5PCp?bVwcfZGAQeh0kw+-rH6Yhg?yKbqu$CYnuP-x%iG-2Uaqv9H`9dEX1 zJ_QxptvfkttRox4g9vA@(BRIznS*z;5RZs5IC+t^eI>LAA*QhegD(2RlBfQp)o7kQ zvwKF_Es7!XlH?kJbH$ZiMjrkW#OA#eyT$SGkwt^|#bYvRS<%I2bZM0XZB|8*sbj~P z0Se9Zk~7&4n}v|-+%*+e4pZ&|XnhGU6)%VzWf1E|n0S&27I4F7E7 z8@szF&oR6O9RmtLcx!aL+dcX3)W0;JrR1dKC7L6fzc5G7XWOa%p-d7J1riosu0%xh zRi6sk)qSgoL0pLke|adQpZT=`d<(YwcGH=su@zuL9g(`G%ymHh-N8RH)snw+#fqZ4 zsmFwpZrHELwOQN+n!`YbN-a+k^}LyDU&HzaTcrU@8*F`Hu*&JqvWPi6WADei+K zTpJLh~(emoG zq5)OuvyH`pwVmb9-OXgK`s`gJc%#Eo_bXjzAEpxZF0+tG12uOKHyB5=lYs$< zKKc8ShdJqAgxIzMa$&nkx8neNN*l#k^HJr^pNAPJKcwH@Sv)__ z`EETH?o&6Wds1=3W-O#lEEHq9o>+UG!%Zho!yikmSc3 z<-PcM^nfd&{(2(7%~x>*L#7n(hP?L2!{zBFg9`!n-qLd;I+C#}pS&X@@O+Nf9~uF<#{>aOeh za=;qgMi$He5x03Rrn9tRa7oRQg*|>@B1w$lK<4i0Blkxfa*|M<4n7jUNYUt~Og4J* z##NpQGcYH_D&C~w{ZYnDCcbJFd)-=vQk-~-)kb%q9s657{PHy2d3%5EvJ=OPT42WF zgn8PXMBd+`KAH{oNj3l6mBLH5l^UC)&3iWnRGUlSiO{ih>KF9rMvnJaEq&k=rYu!d z;S%G*Y8x7=%8gP~iPJ6tn2T#K+hKgbRB0vO{|3l6Maxgzg?8U=rKT+#fBl*M`Es9n zFxL|-)|dx;L=W-@Q$27-wjfVgw*axttUF-Ke^H9|x-Qw495R1sd4xqfrCEc)Zv?4! z+x=BqU<7pf{4ovP(3SF1$>i4dm(!Q)V@{D_B&mCUVZr}1g^=PiF{epSU<2!P_4Q^B z7IuFpZeLg+@x!z;*Z=}rN>NghY8LpYEVE=Gg&Q{9(G?Hgy%$#Ba0IOV(J8l1n z!iq5s?UJJ)mE~%ddDy0YT1a6_4pGP z$`h;;F!UQ8W5RJgLac><-QeWF)bPaUSk)p7C_teOVrff-CDc$YpMsB&<=8=>7v>9v z!A}7^CeXY*Zum-X!>Y3g)y$i5r^Z~*Bu_i)h1|6mwmqtz1-s%+U^d{DdYeDj|81Y^ zoK=vkO)7YnQ}UjE5YIpN@G79gEI?%|BhHK>;jN_K?^t(?^+qj))JBLpA|eS1KE7+A z6%-L907FPvSno*f2zcEf`Q0p`w%NXlAsVKoiUH+*Ra?C>EC_P^noO&DlrcZllUFrX zygnu!{D^c9z{C9KUMwfYq~A9IFc>hq{}=~~ z-Tt@mPmxyJQ@sw9cIz0heQ0y_)(hyc~CT zQEFH!PUKsxP!ORk{OWNtw}y>fceR4cw2g)B3a%5$Z3OkM=c&ok4f17(cE5Gc`cUhD zKXwR*_>?Z0f)qgvC_Xqo(VI7=bcCC%oP<{eT;(5!4){(HQsNENK;j+lWU++=`q`C3-ye@FX2#1?7 zFUZKT&AQt7t?@0Wbm5kHW$}`sr0+7~l10hO!*tyqY=KiYq=gyE+GX!EQtow5+dZ-|yTAew17!Lrl= zL;X$6=59h*4rz$}(f)%=*TTqucPiab(V~GX*I@(y0^X3WjQJ>})ZJdP#P|9X+NO+_AsIsV0=uI_q_ zf;~H@GG8#-7s&Azc+U9#mQMG0eb)F7K7F_aCSukK^e_3}oWNVPXDgNe&e6k`!WpEs z`}E&jSX{f$E*eN=@cYr}6N8nvuWS{@9+BrBar0`dfTmvyNwrv^j9z>wbK(S@|toD~?e<=AIsk4xl z96{FeH1}R47Yf-bia?k)Z&wZ6 z+eLjBEM6^LnhCPfW>?@xgJcQ0biRmu{>P5~$C>)~*FT%;e!%(11r4}{2e*p+Bg_GZ zf))7l^3$2;@{KJp{8PXU1i(ElPEo(fW59uS0*_7OVsuf5NkcSEUv@LIu#}0f`-MR0 z6VM--Qs|1>#a?ogq?wjQ2#Ck}@>cYQsEZ%>@e?|t{y5`qC+mL^kr<01{y`0GoX6% zlBKP6znmH5{RmXD^qAORB6rU3wQ~`c-Pw9vDI3qdFfpmiH1GiHUz>s}X=0&_iois) z;!{TVEo`g}Qy1^0$(O3L=RUlwA+k903=RWUfAa?S27B|#_1{uYp8%^Iu(1`eCc)|n zq!%=SvCrkfL(-lQUT)A(RKiOhq?*Qa=o<0l$i@9w*iqNqMn&gKiW}q_Qn1%kuxSjq zjMV@wT@c?jIJ06s@s*0d^+yLTOp^}Pjh8qygovJZHo2IJ@g94V>DL$P>(s$oN&>41 zbuG+*$6fMv`r-wcJtw0LV>8IYd~_?qTT6`EEC2yPsIPxE+y%M8!WkIeza`!RZ-M_a zj_YFzz(D@lcze%ncR}kD6+EQ2s^SvC?AvW`f1&`3)}HJ_a9)i8LDY^G4TOb!Te_T9 zT}sdLkn#kkH%-j<on|QWsZXQMUjZ^EB`QZlUlX;NO7++P9t?#{RXKlG!J`N$QledzEex>qhKR z;XwgpP1;pTLoaN;?12^_nvp7ozKfDAdf|(3aWH0)zUBlbIBA9ysYM$X!Bxx*D=EJy zaok8v+O#_X)?ns$awB^*$XUW%>Ff)PcERfXIfse=1?NarM##ZWTjq3de8#A)#h$Kj zom^p>yQ5ZAXskF;*>x-OkE@9Wu+am~7Po2v&$ne)dj<^q%61%B@CVjEzIT{tHrbk^ z{t>krSGIcNXcs1C1++1?6tdOT!zHoMQgy5vB(Zs=L&_3l(sveC``JZ;%d1?r-#9;K z$mG^^+!6F;Ru$S0AXjT!{;Ixkuvu}~D6fw@*p>EQWa=-ulfDeu3Ar!1$h=!t#``1) zJDm_SpL~WGWdfoLy!X<+P5vjNoye?76Qezy&V}@Y(}v> zFM^P^8P=-j$-(J80PnvVzrWskUA}KJD&^v7So|0qCY?fX+=%%sEl4Ct$NFoJtYBys zK(_$tVPLucoxJ}U_9;=XE?_FPXKtT>ihuxCpxCUv&3_Z9gr^b=csetEI17nDGeTyg z>-#_{v`FJ3^d=Fd$&CLS>L5E;L=m=2CLwP6G8cwOGY&GUA4^w_Pb9NJsYj zq7#jE3&@W*EXc>tmNr`z<|jsMo(jqP8A z&%mz%c?BB@AtI7YBOWAoAHE6^`Ld+V^fjU)PLW}2>^e~*Q!adE z8AhsuQm#I-0t7zp&#J2oAWj}VN*IF;l)Ik8IIA)|&|HLa@J@Ha`lt1E>Gmg;qV-nj zCFMYXygfWP3{-h>HZ(Cbr4Il7`|?vSegBh09^4b~6$iK7K-9Zu4RQr+`FHQXeSdWI z44FmGI~njrxdtr4h=@&kUrS^5(CfRk09lq&zGA^U76@BXPDY8>M?dXW-JCgV&sGDb71I=}{!A%&B8xfU987Wb&S1#OP) z`Bvz2U#=KQ=|TbM)Kuy1RHp#ENgDa0=eE6f<_3G?8qoa{x!*iE_yc?${E-IsyZ5}h z+NpoD_j7Pv4&&De1r|Uam)usYj=*D0w3;&0P7>Cm8b;YAbA>^E%NH& zwapk=u+B?+OMn%ks)55pnm{@P-B%wj;;@!Su}`4w6u)EyZpm>a#=@l>*w{GT?Aq6e zG%YC^VWB5NDkuB-TD744W*7DJCfXj}yeKD{n(6ZV!RYr7(fB{yMfpd6x;c;Z2v!#K zeC<3Xwcay(ZeiiJU_c95mJR^ku|SWLJRm+jow|kqMi}E6aPr)`p8Fl0Kf!~Z{z`p= zE}2I_=i*MTVGvKgXhA{r0L()yO}iYY<~1i9O;K6Pb=yGeugq_)$nXKo!BdP6tv(_r z6;|UUNym>ylC0z6fLq;x*5gZ4FFZCASgCwRJ^msfz4#d{2GpF#5M2eGjeVQ!750_# zWwiwx8$MSCWPRqFQUO>z51R)MfHeic0jD11deOW2Af5OZ!TsOm<$2#>4Vykfc=nOD zMH2en~_$ zkqHga{Im5lVCxF-;9x*-5Rh`e?YRl*blQxUefq&r+Y0larJOtLQ{TK@+GPfxOYmKZ z)6hb5uqGoknfvV%t5L3oV!vE9M3ZFFR@+AF)0Hu@^T~qs_m>??nr!(5l@4PgM>3Q& zjEUck<}ELcslEMhkuZf7`^#1?un>y|dM}v-ngKJhx&g8d$xAp6u|p9E zl8~+5&D*EF>61p|!Au9^_mQ%x&_A6429yUBU9A9T@NVmhTyqk5Z9=VQIiK?2 z<41U(Ee_@HHeLed3rjKdCU`rTBhhr@(K_}lCfwv&u@^?P19RBHz%@PhG9_!+G6m6^ z9K9+HplF#D7$7EOERQLE=ig*+W7UM!== zd7C?Vn}aSyZe4T(3W?}^KH~38Mu4~P=WRpia&cdxb9upHrJ>wNIFk6czEYGjLqc+} z&C09V!&g(6Bp-6W3DEdm8ca_fDraFww!5I!Cmgu1P}F4_7xML?l}LtAJ=^buY!_f( zXhmN0DKwGdw#3Lags428J=_9~yMBf&he$l78bVzat^!aI&~8aA6wD%NPM(v&bn%Ki zy(Ghl*e<|@Hl9D5G%HMWq)xPEgodKMkuy&z4+V$50b!ycSvXo7!@kBMCD(>ode-w67Rw9B?N26129TY z4;9hz+329pjJ7~50%9cix%=67b0@NsY)#@<--+xqY9gL|>7mk@X+Z*Ap5l-Gby;k_ zD~4YkqwLrnLc3-y_Lz;&m<6-LNJ2VgTz({h-f{34@l61z-de_O^`n z(Mdh%&CZ$F8BhrK1=o5my7(KXpPpOU6e$%Z*jKZxY;Qw@Z-FZ)5N)Ob z?-Viz$bM6;@qAkgM@M;ISsL-X_xNgW8gB%U7a@3f_mPLDUWwcv|Hl9GqI!#w=*>t0 zSDcT(q8CHtcN-ZqXUu+@^!vqm`OVN5NvT{72#DHPP?niiJ!X{z=J;0w*WP2K5h!=8%dUrXz1@EOF)=Z*mi_z)Bg%dp3FpK2=BDg)dUI2C#AF{_cVryj)(;Q9P zj6%1)xs70tn|$)2*0GT{D{0h*+~PzYyJ8lSx)#04#iCLZYdhP;{~4Dv^rWBoCF)oL ztgkdq>~-XeI4$vcih8a{!a21;WWDk)yp%*11f}!+{w4{m6uu*uquYx4H?)d!EA9F1 zg2wdWr7B-4T1xei@Xib8^8PtR&|idwmPC}r<)+WKpF03-(Orn1@+7Hw4KAbM>((V= zh5m_;FIc_KI>(~zt=}JlOCucj9k$H`DRLZTGnw_C8`8Gj1z3Z)>`rDIMlO+?JmtGA zCHxm|av#YOv@~c9Gwb9Gu}hzsKgs(rPIdHXM+hl(9fp^xX0Yk;P)vnCHI6Kpr!Zq>g+E93SiK00P5kvZ4)}up)4%{ z+IDcvPlKrst~(O^5C3Pwl6`?b0!u2W;h~nfM;4*kUsQ`^=(7~;i)_=?m|1-UQtg^o!E)1z za>*9b8|3=3gV=y2bC8CN0sSkFJ98 zz2{InUO~?p`|(k+wwf<)Yn1yJ>hJVh*MWi%>7QHA!G94dgl$o;+hos7dHt80CGWGQ zBJ8%k#QiKD$swN9ADr5(^I5*-7+4AM4JgY2`9aGwP5jK84dFCQMs#R;s3c?`+t zB5T8>FshkTN|ZAbqS~ZQOt)wzbys6OkMB{bi3tDjc2LAUnr_@s#Y8q2-v4?2^%o&4 z0EnDD?NFfGMYjgJgrKgjf{l9YRu~G65D)e$@D1gu$)nH;=B5#V=Rm5#Vk(Ui1;gEXlSuQ`uW#q`Vq<+g=vw z!ZwqUyPp`6I3TuVN|br){doH64Of6=7ak62-0N^@9~WR z%ar^i4+5`vgDH3pY;`|}Tk&T4$a&(@1BSPEn0suJxYWm&V@$f^yU^1UmwW&RZV zv0h}z=)(9}%p9ppXD5icxA4>C&%IUUKetbV4z}ft=n+Jei)JNs=p$cVp1;7v{ucF? zhFX%J@l%5ln8;s1fDd>Z5H9g+jSAd#j_z2gNA1Inr=;dE5OvJ@kc{0^XC!XAWAANbs9vM0Uiw!b9xYjo} z3U~_E0Tn$Ny_cu1e-S9i#__$#HNw$dkAR2n&_vnsSL@QForp^->Hv8PxBLJDlokw= zidwD5NaDfxgzX-r1_AdfcK*q;Ed7ImSTqr>I+>WSKPam%xl|yd;2nu&n zZWe|uIUe?^mzR=h9MFIrJ*0Ecc-S@t8p&oY1`t5BS~7%1-F15C7wNq{D0UXR$K}h z1tC#(^$DGxMs%D)zB!^S=7Cd)B$#Ip6VR;7U>AbmW!cmsdbhUWzlV- z0e>is95+`|(4l`aH3dDBdECwK$C|$(_DD#)?N0BG|Nce0Nf6Y>Bjl=8~Lg*j> z%K)J6^22i19R?x_ZH&wf+BVP#EEIi$LguDBd#jP~t&U_H!|s}GjW$OV<_kC5QGY~) zTKJN?OoC-tS~p{;gblso(P!L_1Y>-Q*MM*1q;XN3o0}i*<^f>_OJxn4l|z9S($r({ z41lw+QVu_di98F04ECO%x;_9HEFetsFB`aJ{CoFnq4-LnxS&PE?4c}*J^dpt0LJ`I zZI|sdn{tWS8%|f<$-)>Fc2hP|R!6b;exiZSIC|XE@}0KI6|54!HyzDafr;R47WZ*- zue!!81^tblz;HJgHa7*QpSx&hk64D94=A` z?~W$Z24?&&7Gi1M`xK7;1T+ehK`ePipS$v2EtA?y96w_9k(`;Zy;@!!ttia?GCU=c zFI-5jU-HNrnKLi~$N9jsYoG{=y$? z*{*jwxL)@!R%|-^{~{!4?E#R9aFXHRo`q4u1OElx$*)vmg`X|>Q zfNd63iSI?9!^8$&4M(>;`Om#J81sE2zM9WYDIy4?oYfDNA?JJ3oJ&7q&VeG+sE%I4 z(IDuE{jQOe@MJ$JQr-w(@pY@sm;ng9LT^mTaCd4>@-YUAI6=oY(hG>2MD^ad0<5b! zSF?Ek>-PHBl78o$7kjLsMXDKaW4O}$l~0bJ6@dMK-T`%Bo^B-ZcVju6eus+TczU+cxI6B7JLC65Fjhq%+77<7MD{}IY z9jmUkO>P6CxZd40ucqZ@0lGaw;gJ5`^E2SSMf(qcTXO|UsIK8ap(_eW}IX+CvupY{u>N7KMu1cY23_Qbq>UVO#+qMP8(5+R!Q3dL+NxCsG8 zBciu2ZsO1PQ5KtLq7rQBM$)%$Cl&f&p;JYZPsO?(d5_OKV=Xr>zZrr!(DOD&_he@y02_|EXm-^Z8OxE5 zIvM=KrwR!&qO_F4O|YJr5CU`?Em%ZU6;^T=Swm}jWL63?(Z92=B@Db=P=YYxpARm_ zIO2b>akpCM!fh>`7;rbDqnRFcUue25g@={lC71l(oD+#L7UF5vd z-<)sgnOObuAS@v?Z1{EQ595lHcqt0w>M)f^ z+_3fL<*DA92Y6{*k<9)Zmw#5wi8pxf(1@`rFsuCXjrupL)vnmnmvas^-K-C|C+USy ze;?cRl+;_s?Wiu*7xR=+Ig6I|O-hQ*nJz!hr!rO4o03vqt0^)r^yP8YnU!TKZ^*wL z=Or|{W_20C5G`Jzxzfl?>b`19Zt~u6Fzw8W?W9or@f0P-R<~E#_J^w1S%7!vr>9^D z^T!hEKQ!4lsi)#zA-eU9dgq$1NRe+;%dMRydbOFnE=t?EzP1yUhNyqt6TIg-3S*H8O55%l+i5jl{*gav?FR--Sffn<953 zTz1an-&%R|AFAqoOnH`1j30wByZ;ieEmL>+Ri?(cUs7(()gE@*lH+fbS0}o~axAaA z6daj- ztU9XgCAD@Urhm2?H+d2TQqeTHIWc<^QWW^7#D!56)E>5$IX}o>I;lZ}_0T9mz7#Ca zw5Q6vX9MG{TR`10QA62Dx31_4Mh|A;{xjZ@)gy%o9a$lc(@_W^--dC) zFD+fs8}2SP@_ndc^hz*!wFzqyJfx!OYn34W_EAlMFpNZ-@x1??VQ|#0$AXGOp(m3) zh-)s|xn^=+(8iikDkh! z(urrDWbWnUSYP@~7zGb!j=1uM(H*nxA42V?NqH9izX;ak+|7YBOy^TVeu2a>r!Ny% ziS<*NY?xKYaWoj5S}XSTsoojteoOihscrx14Q&Sl>B*}rxLk(t6Z^B`ea_{p;#u4K z9+MBT?#!O`%&cJ|Uiv!n30!lOpEfbQtCL*?(8A*!rp`}h_A86$Y|JrFr;cp1 zH`T=g(^BFyXyh)s6X#)6sm|{A`+0XWL z$dcK`tw|yNJT~%+2_pCUrIBVS`In~`-aZ`cRNF%5Ql&Ze{4S?v$~yKi^P-N9n;wN! z@kw3z?r|5XnFvvyOSM6pqPKrQB1@x1LJcm^<=75CR?PU-BT_h)Wy%*d%Z~EXpvIab z!f+z{s9|mai({T9Xrg#hG&fwcg!PTHxK~pGg*aL}mIKKLC10LTLkr@Jk}RAxWEnB; zm1LCi=?RWrzEWRXBiNdif?B}ttuUUf_S<45ZMh9EJo^VLFq+l8($(mTCS9MlhLrbz z5jNJ|uw_s$^LjcF*vIiToT{3YaHXUq9@%>F9#Sm4b_9sgY7(E60^@=Hr;PbeIO9zQ zk>9hdXG-S4k!FGuN96`hQ^azh~_6dKj*l9hSHYvja6<(ERxfU_|Gw%Zl^#(3z=SSyPGR8coEIL)kXj;M_YohQF3 zzd4VtjV%~Gow&{Y7X9c$x_F5?JBCf z5n=Q?29;u0^W+=8%0NuR!0D9t5j1xQNlASN4=&i+{@=ff$s4<$W687}+QvK3NSApH z2|PwKbV*}l;o0F!(@kPt6$tsfo>^mSFK-fp474W=+csv!njZl{(Q(4qPeYAYTbgr2 zq~#iJJ#zWZ^Ed5oxaMe$RY5KmL6E?&DL;@07lST+5Sp%${SHD@N`_lMe!lKU%E6v}; zO_$DgD_z$ndZ1g=T?z6|FQYJk1$tZ=m_PJU+j+RTl@E==VyIt9Dw7#K(o>Nge#zW| zWN=czqh4sZ3>=Pxik%|xtwiA%wu-7qyjpd}dSw_H;H7ov&`>lPO-8KuKzr^io96er zU|jWljk&=$ASj~z=;T{6TlFF`(j7K>i-@Fpm$L${u<+u`7q@3?ld@1osY}epe*4^C zB6G2J&9gXVo6tx0nZ*kq&j}*Re3j0pDQd)~z-FC|x&wx#zcAHkPl|fiWd+z6DVM3jdA( zGnut+-av;D16_wZ1MFM3VW0`MFUuyaU832|$(w1rIgC@jPAGLtyx5v0U@{BY7%ih8 z$D$KJPs=piOqP+1Z4tU{Qhuf$P>Fx>mLQw~yavcGs?(V&h2-NQ*Z&>=^A>jx@zuE} zoR(t$Z0MAS>9BaD+e`peX9SpOBGz#azhof(Zq)tnU-tfr%c2^vn8jW(*^Y#b(cD=;xG zpGuA-G|ZeRJoWsrgifwDIr+ULVI_rVVc9*mE_TX%0@|}5-lT_f0*Z;|=iHrDAEuH` zC?Li8WvE9%x`iJJ->@b1UD@=AyFJ!W;5#^lVVBYD`KfU1-!3aC*3H$!$w6irJ+5E~ z(gH3M`C8Q^RZ%)CZ;+VL{!V44A=jK~#ez&d(qc?42x2BlB0tDCSEu~}Dpssyh*f38 zmjQMp1`CNpF99Pqp2UN;Jqd~-TBm&d>T@||f;d5EJ)2LMj4eo!LnX?L-%`{sLw*cW z@be~ot69e5RjF3;uePcb%WtOwGyWUDrFzS*nIh!sP9(T>VZg3%-BJ1RV43FHnicJwfPOPODg+g?SWy9y!vyn1|E7l< zMMe;4TBFRaR{B~--$OCqPknqnO7^-8b%2K9SNwUaf+8kMsw*IFAU+Uiflh#!dMR-q zs_uBn780hgN?Hf#TTGUjRjHQO7t{7WbCEc}mAn@H4&PPHc!3W)46u`TV=5I@7-lpK zv~;~xdy>dcv;l&zR7R|9WQCD0S|B$P!yC{8DgSx5;k>c@r`#UP(Yoz#GzBqpEbeCc z9_M>vSBFakc8bP~`D!t46eVLGW~HDPC)nVgyHCF%j%ck|5Wq@6A-AE3;SkrwO@o0Z z0b;3Ezami)+dwvcv2*WSh$a8L{-(fRUqoI3Z__EwAnsekhcJc=K|mss6N084-|hd#Cn+iZ040>>vvyExxn*$ z-LU{SpT4QIZvZjX*%@6_k9fe9ebhjN6^nry&8e!U)23Yss;J87FD_G^oFIIbbl7f< z*lc}N7~p^sQmFvNw2_1(87?X3;bN*8QsOng)a{^Uz1A#z-I11EDKS_Jh}Si>Z#tG5 z{dx^>V0MAV@DlkmW$=TxguhkRRr*Ia`NP{CV}56)QP4b-ZYl#;th~B1`ztZR>aV<= z(*WX0;UTVJ6LGQ0Mo>tLQ*&hkLmy)<`aG%I$Z-zLx4J{W8YlkzyXExiZ%~{K)yg->*J_n6Fa%eQVCe|0%cSo-mriHxDpIW6M!+UsdMP%|V>V_vgtYl=($yQ@*9_ zl`h{#@;=z=tJIKe#Nc8af$O;hHZTV0hO89#=u)#PE{mV4xiXp2`c)m-@KxiwUX)81 zS&D7rsTEshG>pC1C-Kih@1MzX&kW_zjSdI5r^WyM!^ccea|z#A%urHklNg;*Fl-O6 z_cPpy6Nm?O!>8kS+|7)%UpxoaAN#*H$VX(xv9K;wyf*5()cRc%Auzy9DGB#N<@jp7 z)JRC5TURJ9!{T9Nh+#GbNlzfpq)LFMa!|yQ_Zf%Q;DPB-eByA_sNyHXM-0T+FGDd6qO` zPU&uwnl*sjMHM{jG6XouJ)3!NU=OlhIFzK5w&W7g_vs*q<$ufH(21?Q>u$kTmCq~H ziv6+fap`j`b(*p7`Ke z*0lvXjEZoETp^tE)P6ovx*2su>Yuj{SrE;vHn5hsQ*+)cI+;ydPL!4toDi*+eA;AY zxXoDex_rzRNkxv2Jw51yTYgQYT5C5));{DuBD*V8b+yhV^kWI|k0kpMTRRp=ir;-c z{hKn*xyz4$FpMtdQVx}Uw#&XlcH>RV zc`CPJx*B$hCK)vQ7rx`?FRW@ez($3$dxEx|z)VuSD?lERI`SUVe2pS%N9~t+p0#*d z@H!IrT_F2|Z!tFY2ZXn#md1$9|Exnx1AVwY7Oq_fZ+lguCU-$<}z$tlqg|=$8&n zv$I&b3x&cr6ff7E)Afz0Kj$p_DK`mRjpOO zO;_`{JfJ031TQry)#>IlMc^uno)#~o$E*3YPZib8lN{EFNT42U>!Ckn)w$~NkxK#k}~g2gBwccC*+V6mA{MTDJQg1y32xq_U589xTdKc}dy7zTjUR5Le(h$czqFV$5qIMxdKlZSDWpVQiSo0Q*nMOi z5zm%uw`&YNl&p`EJ!2>en2?bPe$;8CuH&Y19Fd}u{~(k;^=hO{$pu}2Y-qo_DI=HY z(H>FKu6Aql=|O_yxi^0VmQ^Ezt_B*B~dak?PYEmQsR#l zyYx%_K`s}oxCs?e7uJaK0@ZqP)fp0GnXaPPXzI4eq^i%m61+Iml6BOaOkQ&s0ba1q zQ1RFTt@&)3+fJicTCTaH@Zr{Sft+A~xd~)n0m_4*#+&ihkcyMb{$`yFzqVh8FOcnC z>_v1MisbW?OB-hk%TIae5zC{eRy-GtXS^-DCh*OyKb%?Vr99O=%dRS@*cF18Y%Dj- zIeeHpAVv?y)+g~mH}cJqyPEgMvBGk_8{ySf8jfSlX**-}{J8xk+J3TAi#?bX`9LeAIv3=lNm zVG?6$#VE=Vry4u}oE^y{nA;vwDQF*dY)R3d&TBDHmy}P4p@&u8h>Rm=8LcIG_i&n3>xGdt`NfH(-0K z7pI}aa=b=DVpw4nDMAF=q*_&&r)i;Kc{S8rmS8r8Z?b08A|%}&x3;J>UJhcO!+Z~G zGXx;_WP6(;S7wJ1@W(o1q89wfuVws zyi1?Y8I}Tm($db~C%q^EQt}AKcU9kYPWb*^JRN|bYV6PKz2!{S=<2tgfwSYq~Thh5#Gqdqfh<1Po-_!-lruQefFN-6^SV8SD&s-&9?JjE4#<@;oG*CzASm+UIOs^g0xVEMb7&q?pY?H^2A+B}Zqa=OJs3o{ty9hhgKxoqd8iUL{C0VkzfCvOVyk%g{`1AbbGr zzq^2A8rZq&-TY$dr2iwTTT@j_OUy-O) ziHAUYH%?IM`J10Ct=i9Rs06XSWGVM@KO^uU^w+eT2(F|u0W?Jnz%^A-p5eEzl?QMM zToNktf5aTguTh9;tRa@tgAZl@7h*c^0-}h8$slWXjq4W0+fvrvy<)1rG zxdCw5B{oPWeTJE28;=%EJe)nxU+6}Li2maLu>g=Yj?TUL-q0n2>~xbhiwuXK6xX#{ zuWh=F(r``7`S`Kukjh3?-QEKK9mPdmbuKwybz8Tc{6T>i>hAn^247uRtKWC~?-yqZ zmrZL4O7DRHQR{9|E%hF}p(wB<)i$syb*G*0DCUJXvqLMY`Ma;az>*4ISo=Uob{|gx zU>qYVo@vu(%YV-&B;d*hB~8JS(|J8Y zBZ0N;Wq1*(^}4r7+4H|Olx}1Pi~2W|NipQz#vG@rb|DjQI7~xcQ2uA=Dvt$iw(hb$ z1V{hO8eY0KA{d=TS{?Agh?NLNitcOU!hO#fzs%GQ;m0Mk**D=Fi$_s)OfVInmzIkg;lYO`i(qlp4i4fp8EEtk%!w`7Kx|L3TB z8iFmVw?%P|$g|@RITHLW)U@xuR~D8s`b#daq)eSf)fuc-=0!F~ZuyKFH{=U3j^n!I zV(Mv{Od5=E29hvSJ0aL|z!_#lQHFR>_ae>K=94@8ZHUoS^`2yze?8(H@dpi~hV*d3eZW@Z*!{LxlS+meIsRpRCDMzKmEBi-v)`@h9H^%Tnotau5^zbl&fk+{M*v^ zjLl<-?w-oVdG}&&7;(%$ZvM`HYc60J(Hy>Ga}8~UP;d@co8r8q+lF5W5pF?S-VDv( z9w9%SI8;xLZZcVu^7=zJYq&q|ILB6KA!tEsT5vKKn`@mjrF#H!()|VcWA)GL=w{z& zqT9(s^NY;9%>a3vX%Y!i<1q0-!?UqRoiraR5 zkwcU~+m{?G{Yzfd`+a7}agdPZoCS>IL0=VENhbfiY(lwzt=G7o4#88zOeZJuwR+Ug z%%KN2YYl^^<4~hz8i7_~Kh$efQD4Q?Vl^ADOis8s2Smh{A@{KHZfC-IfER4(ait$Z z0&K``W46KC5bt8f=g2j=zvihwInb!OSy3fPO7hya(_&@AM%H>fL?qYTiC|)@(O#(8~CpHk} zGU99}wp>j>gxP{_Nz^aZWzRAZhNVTqx3n0w@aM_Zv+5S^WT*+(hNqkg(>5Qf(zLtRmb zc(8z4ih^0m0PgdZ{ZH?TQb%>D%@f)e{HWo1E?Vth1I>y#=OtU&;O6#k?AY8z1;OTc z_4?>7r)-Mu00AtfxAap)Zl*9CgL&r{$b^1E>+E9G&^jFSFTYr~#VO%itaC~3%4eEVb$Mz5j zxb^J8U(1-+R5w-ka&<@P@XNrx-IUv-as+t(9g_2K?~YQ3Q1)yt1s+%xJRbk%d7=-Z zj;9a&if8wwuc}B!HQJ80l^fO3OA6NrZ-ekm_G=jmFg@BY$jg`3$h(mwOnV?uaVuD( zU~R_)Bj5r?{LS2LeE~bcy14n=Ix{=bOiM?LWg+tfKRwmlD8B=KiFuABh5Nj9B4x(C_^+;YSBTKtIhYEk_mIm2xsjAxe?i>m>IHJ{qtcv^bRxt#yOW zv|AG{Fr{V|%04u+{#Hd!7-@JlX(SKT2IDBo*?ES9Oa9ia1-+7B`Ed8w)CyvMll*NJ z+4A*O=>RWoAPU!AZ~P@gNh@YOLEcqXgXoW|b^6?k+gq_5@9RqB53+9{n}<+w7VVrG ze$iS4V)0znOB?dI(8*#)cCUX5H|cQ_82w{b-2bZ0v}r{zdhj&swOo9H9<}}Qd%=vH zduanAAXzPQrz;}y>Sy#c=P4j2jqc^fk$q-wdbWQfPCyB7d1U8o>0b9Wqkg5*unUB@ zu6cbpjks&#Wj$wYtkCzv#hA2vrBWNd!Ku?CD{B=qbWBrsrzNuphVe#F=g~K+?wPK7 z&M#X7%wc-GpVc_DWf{s%Hd;9Ui&K9P>u+wy*yFtWgg?EvOPcB|`XruSP|i?ParyrD z+3OCWs%whJ{3U|IVMUJD)55Am+4e=k#}a|EMG*$wEh82#MG-RQ8w6!bO|x?^dzPoL z4uroJ&!HhL?*~Xv0kScTJ-;N8QByApQfZ;7J1o$j8_kvsL)2gb_&obwQGP0&N&pH# zGU{|%cf5=-nlNKa!4;pc6eW0fKUCUIK)Ol}wFQ|l-3ANnkU5H79v@!*%J1d3Id8TT zeVncAvMY)S(3f>{HBMUk42?KVNC2YHU%Lq!A6w?O{4|rdMtl)ibRXEdr&t%;SH2k| zo>=C+r8IkrjsoP!wM>vLT_Qkbog#p@u9u^*+U#q9ynPOR*!Cx%H#2z>wV`PDQFFXy zKEdC`D(z{^#THEk@t@UcMo< zg{NLMXY7O?kDv^T1H|qZ|94}OMBP-qOuWoPXN2DqCP>3f zcQY(=OTv6rs2N3KECiKfI~5U%Ar=D(_}XnT=E&6O^{HZ_>`&C+*kG5%97H6XC&%Pw zCLM9^?gGbWI-}U`rQk&Hf4q3-4gOb-`$mSooDo4Gv+D+Fp|_;ri+c1; z$y$TS&NzMobT7Fb{hy4fo#k86qdUMbbERgCSZ9eujm$61gW>~8874klUQeYHTp#6T zZvWwY>^2wx7Ccw!yCiQZr!JJ66_ac{GcMlzVm_T!Tt?TEozeDPLf|=4`%LM^R1>Xd zmJ2gIQ}26oG&($NSx_8lx~Aii=wsD>_m-^=T5Dh9pa+uGJwOMFqiD!o*ve2`3RqOFrFrnOU5q%5}Cod;lfc}UkN>5C=eb67012Q1hqqb<)0o;`JqR@a6ckjAb0 z_RSP?iK>Dn0?M&I(?l`3+hzgF`y>T3=OgjH0_mK>FAD;;ku$=|-zDsN`b%prdpOD! zQ5Bm2@n(z3{d~OnUN&9F7$|AHb?E{enH`}(l=MuaY;#b+Ck(Y*zBU_mB=Q|ao} z-OcVEzay=-mc$=F0n7Q=$rViyASz(Tx8;_R0>v-xy-U=*}c)*0DG(n~5B>K{Fk4oaFziv|n%^9@5T_g4$@`%w}=oh}q*+A3!qe;6q!241#f8@oUGCudWKsDCZVZhEY_@!|~UaolvQG|*d}II8`@>e6PlS1`wMx6KUElUmi!)%pzzs{$B6IBZ9E zXa48QoOtFp-+pruXOd&8myiufT%vfQ3qrw8D|x`Ryksl6s~$nfNTqYYmS#OCl0fV! z0>`LLUN9^+W05~!5!0Bi(y>1h!0XBz#4E_?Uye&(18*#ASsp4AQ&IJP!+mgkf*cV~ z@_)Ik`S%gPq(n}a@AlnHbiYgfmzI6pUhfkx>Bs)=G7WM4WEzuxTPSW zN;0mfrPkJ-T7QpD#w@kk6^N>Cz|J(~!~>MVmr|9LhvmqMy{5eoF%^!4q~TghKlWJ| zdB^IJr{ zL2F)&->{+;Xo_@q1>@yieGM-M^%9)K{Wohpo@lD%E12b6JjuLFriP6cL`}Q&=ZW|q zkRdi*K-Ecfzh{0m|4(2-fa|Mj>t2hn1nEY3-4U4xaq$DSTb@@dtAw}IeIrymIviqO zQrE{HQ2rd=Z|*3Xa6pqvYv1wpuE*m(~Za*L_DXjkxI1<5WC@^QMyxK`D20cT`iZbh^0J>xpQCZnLvOnnZ z=Q`REFUs@C->l-r1DDvbZR+K+8gU{TUdElJgMeA!YQAHVPZBSAT7+Y>I`R96eCD3j z1@&dmp0^U&pcUwDMAmdq;h(jckYd53@QE|jIe3*mLE%|TT<{SumT;D7$cm;KL*hn@ zbLji7s6kzPk1C#>S6%@S3R`Dw*myvytudAB2b{(ml+TtnVUzDfa_`@g~X&$ARe+cF`P$>`o z6cNhw5@Ud~m^bI=kk1fimqksMTOMR>uDi>wMIlpZsi*l9(C*G+N(_mfm8J*DlfKK+ z(8;@W+!Q)n)BTNzS65OYKqqw6MrpDWmM*>2W-t|<`;X%B#Y3PNKm}Bn=i#g&-)a_j z%Xq`P5!t#EcMURKkpd*=eH`1={JkV9j27swxAn++#7r4pxVm>|-8}&r_pG$_L$wU- zN2AKPXT~M&iCz$*_UgK&19}IZv$_uSS5kL^VZeJJCtNR$v_RH)d8tG{IVbTcFm&4C z>)&RC5lue=WiO$@b?hTio}BN0yvXmb;o@0k198L-0$2 zI050Ae$dZ<%C){CjyYOB;9aL8DNJovH2s!fH$hX^4YW;=%gdfB(?CtVw7TykRU&SZ z6BjB9EkeugOHkgsa)gdWFm>R)q3GjIk-#PEoDo1fE#JAl`{hd$&^jC#M#IYJUf+(G z0oLMi5O~!BAit84XNYxb18%vC^23(dx6Lh{hfZVOdMw}kVm;Emr4>dft?T=9Ipf$y z(C{$r4|>03b0-rjD7Lqvoz-raS`zIrvOO+8fE@kMBn{U2v#M4f9#^&v7{0I;TTo7+A?=&L2x z?0ENt_ZDgGJ$yP(wl#dLaeK0EZAOjlD#|u~p`;>MwO-|h|6D3GLJ2EHL%-3Ag1J25lR9MV)`!`TixWTV%KHX znp4VI*kGKh&t!VF$3Qe8B(jzu-ruTNJ<7G^$@JJQ`vCehA_g!*Q@zCA$BKx|F7Rra zbkFBusv^K=8(5oT*r!%sqlzhW^OR0Mi<3N-)JgFp6u7$e=}nz&h+#<>4%6adT}tUO zj)LSRh~bN z6!Y(Bp`k(SbQOZJ8KTOC+F7>2`jfB25@^Uk%98M8*~x4tv&&jjn-k0dtgcT;6SM~R zBWx?t9Z@|Y>yLf9Hhcc!;Dwk62VPmrZ;hM@~!ZwYXh_@yOu6 zH`~^7t=SA55OL0F4Q#f&kjhQm_ELx*<&qE2QG%_c=IS8^p%YTXyh{%AbFL4G*dUU@ zE%`-nPyxO+yn3e?z%i;lE;rV$i>1lZDQWUt&nX48Pwi6#$b@!hUNH}KfFc6T@uslj zhTn8~kODx0(G&*SrHwKZYgphnQ>Ni_VinQ`{Rlp2eOwW39<{HOAh;8LYQ9X)3trij z*dU%a8$43YP`YN({vvvpTWuqN4wN&WuJDi6$f5=NqeJu%n^{TajW5;DuLwv&Qoj3F z&ZOKK@MrdAqHDsaj9hW^ntw)YE*55v#fXEcgbyUAe*e^ImmB(>$#gH#ZCiqysiOpN z0G&*O%z=~=P)R~E;hRR~IEbxs$9`)#C+jGBiXXFno7k5YeR~#qS6Il-N%DYzJJ~&by}0?-FSH07p68kFAuAa@NxNd9{=9 zu3e$VR{R53BdO3mJ?C@ zw)o_5WBKRh5zmw(6&Z6p)77QJWX2k=VIf{CveUgly?V`zkfmUuy?h? zCHcj$Xrs&n3M2MP`SbjY)Vy1^u(Cr3BdZnc*>j5!bGdo;(7iT#!y zND4h8p?WF$-IczGTS8lA@4a6~&kO|a8}(21wGGwfoM8H@rzt%>P*%0}s|%8~H(Zv4 zbf@s)4iTyQcg-_CsW2kv%huZ!u@nE5KsSWvN^=NfbEgx#LyL)!KSO`wFbW`E&Pb5FK zB;Yc&cx@#uVifTLEPD)ACt~sEudq_akzUoCHFY{KcOh!r4c%L~DGnYD7MIAnY=@Hhr6u$zOq%ox2O z@_R@To0f6$k}xFLVBO)Y`9(Ik?y^J;ajd)IM7E~HuL-l`_}cH~VbRM_pT?D8nu6nR zRkGRMo_`eUNU)w!8Ow8t&w=${G-1X*AzUxVKafw(xD?H_uR;*bPTI29^m78wRvgj_ zKScT(bmkVyS{m;Pef>{cpScYWcQr!6f7|tPM>c%A%dgp0e&5tC;EKrO^v6{&tKMSk z+5H#P_O^e9bzJZeEJg!Z4+m?2#i0wSi|bRP-Jb(uX&A%OK+F3gI5jj`m#rc~LN)uN zXo=Y)S$#|VjXe2d7Ic9}@qtfvoCU<88H(lp1dv`j!df)+obI7aTaSg_&$E+(?tH00m#F^@~`wD~P{$N!e8LE_gwAg5x0Luh)dhqJgSqK;$)L z1+2=&?&j-;moz2u&TrTg`>*BSxr=i2Qqf1j1-|%aoZhL)?A2_!^0iV=a(<(2R>2wc zAz9U*MZti*{a6xqdOUyxvHQWeNijk4YzW&cTOJ z);870<>t0&vSD9mHkNe*OGsTdo@%?ds@em`& z^tS-$dX#)@iTIT;b-fzd$u8*l%1!toCpTfsK>kOnd&={^Fe#w}X z8e0f%RxykWiKS)wmXv=ctGPSNdyTw66E2^#2e#))Cj<2H!GQ`3Y_B$InN73^{X0l- z+RE`Ceci)?INY@wlxJM%pc@f(Bhpu=3L}TDad~AVjz1h^@oGf8 zu;!beV{8AVcIBTQMEx6&EB4{xv!}dTg~UI@bAOJ&k<4lau9?EWCh zd72&tC1tT5*7Kq|+!AiL8S?aC=5;XBupAy?XN9MN}T4wNHy z6i0m0p%=Lst#evLFNH{&p;mn^_Lsfclq7zQr;u&=U6GXwIX4y)R7-`GznODlnDc%G zl?4jR;2dq#F9qI};x_lW=D2ngn3bPrx zN2W%W?4n-5v1jF`;e}AM?jO{XLQ@HfrYOTODcjV8VlVjLV z{R=Cf?3TJBY6c(9`-oH*(XFzVaH8}$>FSKwJ$VS_G?tsBRfSymsaLo5=`CXMgJ0%$ zg3rq!NrYBv&t0#zx+Bx?g4=C}3gK;_q5cWdrD-QN^bRLvg7QE+9Pc@<#;tCL>2Y;+ zNRkNTH@3s<=SpXK5yi2~q5R+X3wV1Mz_rhbmpAg1j<)?>9PPfvUk{0J*1K_Np1!ue zO*P9UPpAhU7YxzFB!bIajMPw8c2Hh5-tQFWOneAHuKM@)@t@=BXXP(+$Gb{k)0zjh z6gUGC6Y25LUVNQ8`m}<>3iv-Q2@omMtZ7~6FTrcq-@gAE2qd80&-q$yn-;0y2>X$% zuaV)dJ}3U&Sfng7yXo?v$RGmR7z#R_w7H-szZ-J0~8Xh!=>Se@e2}#1jn)Bp+*} z`8zDQIF|J^%m@-oZ6|Bj-9-hlv;1q^JO+>ow)hLq*GK0+Rtb@_hm-C`-q*7Wc+Yk# zJ1V2oQUqM_j#w4o&cl($a=geF;&wr_p$Md-&-H#E-|#OPuG9sJ(xi`V1G*(l>H_@> zO#QmovUc5NM!^?p!ygccLcYlJ%%r`($SI!GxM`N%2efwg=g@t!7t) zqWwRGKQ(3XY9SYIT{Bx;ehVD7ta8^~5Y`^d`jKhR9#QW3aLh@DlD?*@Q_NKY3U$>}I!w9Cmhk7n4K02L<M0{Moa zjpoz1Wo5w2nA{qrUyp;;qv-+Wy{|zTEr^j(oddR)n-ah6EU`?pC6-jFaMR0xV^9i? zMp2Eu39YY%~)?e&1bvB8rya;4c1DnP_D_C8Z;v+ybA- z{F~<{XB@~-+PobW0p=&oMU4~;Ta82T^q-fnX?dw`-xHXS&fdvF-P~M_@Zhf+WRxf4 zr3FWwn?J6XCkDdbE?KA8_|F9VE}AjEM-g+fJ-ETeZ9X6SW#xmSVR9)wgfjGfsj%o6_6m}g&ks+p?*!QWd^n=V z{h+YRJcP9B)E1wMg*D4{p_&|bG4Cx0iy&A}uZHF=qn5W>fB-%A|YYm;NT^T1v?@*|~q@=0?95_`SM3 z93g?OUhh(nwq!JrTb$|@dQ_A4U;BkC$?ZFSk6%)3-`z2aBBIHvOIR&hn^A_}Tb9}s zUVgqLrF>|Uv&?WM7^9x7I{aIcID>EKEYtA(nzq}f+Lu3gNA+!aZF)aX4KwqDuhP{= zT&kM%f@t3Ack#&u^UpU8l7zkty*9fS$9$Po68~`HR{E)}UHXw8GxHjU#!Gj|>NEg~ zhistC%)>c;2k}pR?rQVv^9kDm=FVz-XIU}zqI353MN<}gtcM?GBU^Z0{P4N^luKy{ z1X&V&L$K7zm(3FV>UX{0!oZj3wxytVc7|KXrczzLe1>!Tl0qNR4&C^0=p{LHak#O+ zv%Ljk6T?>C%jl#thi z$J(!l@|yD}iHTSnWLjQ7tWY_U{Q{q{)@WvzQLZw*M4n8lb`;j{n7?a%q&PR^6y~sU zY$;e{!~N3C75x0jG%*4C5~m5fTWn3nX2#I zov%j}I0!0FH#rfx?px~N`l|_s7LCHcI75`3Ccd@@{O<@2|7&h4Vj6)Szg=c;%+KCL z=y1%fu}&Y3n$zukIIfS_0qbibi=5IgSa7ZcS8|2Dtj+P%z;mTbBbn~f;!Y?K1G zL=ZD+Duz$>xPJH=JIctNlq;yN;t9MX-Ax`14GT$9M#5J-aI3%+Jd0(`JjwlMgRCgNXNdH3NylJ1l*}&hwBX%jOl;(8e!80cC(IubqRf$ zEa+ggL>u}p843HPpKDm*ADg)~HvH6n=gx~^hu$e(DPq8Byg>R&l0ain60YiEy@brK zUO_fBMR@hwAJ1I-wSPYD_j(YAy_%ie^`Be*!t6qCtuFqhM-lIvN9#L-zds%Qi%`x} zP^Bg1Iuf_&5)I2IZeMstp>jJ@${Oj7lduWWs4=d{MM!zn*5(#S&tHb#hS*B~r)4)K zI{%B1{xWEO8KzdJCu}&Tyqv?%T{tc;dZKLq zl%cTiuV=G|^hHv!`I5+bZ5t%K#vk3Ug|xb_KYP;#(LF0k3ADsFlQpY3wBIaR;^mG_j9+jh|nZRjc^;Gc4HHyw%A)#R0XwT z)C}TxJ^$q2ysmMc*LfVr=kxxgS3ut#KQARSY`A~cMe!$3s3t03v3UJ}O0+^Ldx3+s z`#CLE2>pB*D;%Ba>pYWyqFo>hp!rs|a-E==WFP$P{euc!EyrG?Cx-oRCmtJNC5KKm zRY6k`64p2`4V8^Rv-k`RC4XHr-14*)UO&vV1TyPx8?gVws^^-?1!0S-x`){cyCzTz&fboS zeJqo(E6&EkWr4UsC6?EA#)rXK@+F!nFhDCMKZHER%C!ftdh$|7lz*^ivXg?-RROsRkYJ-4{y zT#nKRwa?u6*%Vkfzfswr^zz`tCZz6XN;dJRnyjs)+w$(IL?o8Zh@xKmd6f1oP0_I^BWjn(}ix7u`^I z5Y%7uwr@-bGV+7gf1}qAk@3R@nmMO0Ya|jrs&ZmjGhV6%kM++CxD1i##Q7+}5+EEe zZBAnQ`MazP#e7K&oQfrhR7{Tx^7YFKqYe0$shxoFozs={I6jDg;b;mGgYTQ6dYw(A zxUzr$H8Qn$I53m!|97y&P!X{zl_YJu>SY;U#9aELhj-P=gam9df>&nCLyZ0fOiNDs zR@Wqm(+r~3ZqPMfJv%!}_v2eG2HK;J9){DeM?bIkW&I*e{oe!5;ga9Ra-}9VW_h@B zK5@EfI32n9z7$fR9QyD`Jx?)~o4b5umQ8^C{UY^cH-A)4A&n&V&zC}lv_R0Qn2&vW zmTe4LHM=Ufwrw~36Ifn+VIO&9@Q``efLH&_gT32Pp*=}*PU6&GScel1q z5{eL!reHqQ{R0wiH~5>f$PEW~BCN&a##5l$Tk=(fWBglzg?SPc#3f`)k+14ci;cSI zr6bN&R|}DqOy*ig%0e|!HMKV>q_}MfeQ|~N8 zX`VSTlSZx+F)Gq)6kqzA(qwNzhulxH{O@i{e~WE=U1-9cZCE1=dLW_CsvCbYvRHGG z9uDtv8et{=(KqdfHq;Qz`yORY0o}A5T(H$U1<_#e_EGK>NWez6YIz8kSzMVc7cc^z zBY@Ps#79TaWMJ=)Xcb z5&nGOO$4w_ey{KftML`wsUMVKU58}xbq#E3`215;^mWnMTrXPcuE{E_wI#IQge6_; z^QXNJ5O>2`oPO&Imjl&Eui*5R4Fhr-{^o{x+~CXXm|HkAl}Bz>Ac7t>JPuYR;Rd&c z)@eqCoJd*bx@u4C7@RpYHQwpaG737{(T{S;s!f`rv_26X3Y|P`L0Izf73b`HKI>3# z_qhBWohRbvo3shrJFGES>u~J*v))SD?OdMHRE^P(*ijN>w3;Y{X*m^eEBXzbvYP3Y zPa8S*SlTR5=Ku4gxV>M^uPLwv#J)M1GS&ZeMSAfbTM<-Y;IxKybdyIb5{A`~-~ru1 znxGE6jzgpt>tgI^*70$}rRvI5ucNlYgvf<5OMvZ~xjx-&!1nub$%0<9*Fx0Q9j7jb zI2DgWNM;;c=qlZxb%C6o-PsGRm}~;Y$*Z@Ch?5wP!z9ZUdDY9>7p**?#JwY!@`MZUC$SB@n?tXZL-Or;tk%fs8Pw7G3kADKRoV?T^rv z5L%$phRuo4^8Q)ff=j!4j*6d2n09{uD7FlzW1jeP^{3;;U0$(Y|$!Qgi|Tb=}=-ezDTvA|K>*^ zT%1L`w=0xzf{(i`_l{OY#Y^kJSXV?ZO{&d!#48B~_fL2sl9hA5WL0;ysj?el8v#cv zlfBPIEsLa7u1f!>M>eazJ@4M#$xZCOT0aAa7H{7>=bSmJ@l{qx|~?5mixO3T(| zRU-?|;_?_$9IBHsb1+tepcdyJPHs3c-fz$3opxE5{nlt=lwN?eDboLTm{#dZH84!e z_P5L5`}|N7i7t8Vg%t!WK^Tq4>;2lAskjnF5<L*-?F*w^lKnqFLJyJqp1SptzzW&jdH@sy?J(-n{bosW14>Z8D@ACaIhIHc^&u zjNmT!9~liJ@#VApJFgtnbP>E0LqwN$uCmbs5hys6wUcYqJD2!(ARSrttgBdIc4Gg^ zV#^;6S%0wEfd7eA&d@V74G~*JV(u*~wN!8QK6Wg<)3_o|^|XV9COuF7chM%KPfH?h zmFi)HvCX7a@Mzh3vs5w}Oli3ak)(xYp4V3Cj(1du<>K z)g5y0XeOIj;9&X|ySU&kw^B5BS-i*&!7g6pnkcqu+MDNX{<@mi*Frw)n@skYY_6v` zFOU5Yo6*kRjXBz*{8YWeEv9u$JX@jA=lBh~@>w^gu9;R!P8Op(ehoeA70l-}J?oI! zEnp{TfB9K-zoENak+@dUI2d;vEzmLLbL0UKt6*~Hpq+q*IR_}wJl!pRgp?|>zvD1rF{nKw>XoD3tHN#o*`pJhraM-97fL-g|)qE($cJ@@a9BuhzD z0aTgNxa3O!$yo$OM_Fn<9+Wz;s(>>RKgO=I@ID4E_^)zv;|k`%k5I-EG$03}>_h3C zDZ&GLW13WxMn^M1Yr>Zpd!cz6T}bbX@#AhguW7CTU#d&v(Ns&QKHJc;mb3%hI7@}} z+AO&f^}899f4lU3Te<M z;@7W%i%YhOF0)*#xqYjG&uc6nY=?FNU_S+GTE^}=&R*S_-u5ly?v*c4&P!IsuBo^2xQ0kO9fKaJLbK1)NZo@~e*xs~69KM(bgOw+?UZ=n z)Su$+KAkiewzwTA!W)D7a`n6Q+Sh>PzvYm|OzsorR(mBp2JS|ox z25Q*-S$@E_F797@Rdi@L=^)AWv+7Y%(59#R09^0?EvtSxey+XF-o4oC|MA5p)-I-VY3ng0q(I< z+;0}F$}9*a!_4c1iq++S8*iNZmIUhu*9sszmNGmEGFz`8s;;_A|GY?NR?K&G+q<2< z-Mkm-#>2C`$O9cr!XKYX%(TraKv+yWURb?r&mi?0nK6LcWY1as$@UiUDxs$x{b~C3 z=C8RH#{~Uc{y2+(jMMN*JAz7_uEiFlQY0peu;==L8jJ0~X-$S&tJ40H5ZOR+H(4Y^ z^1sa8v`7%%G(Sey;fWs(_@=L!oM5~}^-U!ojKTR0rZbz(oEDbhHZx&D*N*#7Czw-tBm=PC&U z@d0@HU2?Kud=!C4>^}EQ)uS3rW{l8>Gzzt>dznBy)N9V@NV{!oan00T1-~*h!YfB_*R487XsU|ZMwJa(FX333-{rMF03Ki%%GmLBhY)LbS6a$GnfuHs>dnrMJW90xShK~rt>!?SuD7mxQtNQKBWJ#TlesfsMrt;X z-01-zB-e7CX3o}aE9za7Ev^LkuP*R+eS{@6cy2NujsB-zfI9nr$!d(ngetd6^*Mtg zb{)e~pA^0Y{Io3)v4Kixk$%t*{L(d(!ECv8#SJABC$`OtxEZ0VFZ7;Eo1rsr)AR3R zyFpg~XT+m*8{ALTj$OTG8miT<>kEw1&OiD*nj7U9=6~$NqFvA*qh*j(y)lE@+UIR# zq_m%0StpN?j`KJf{L`*bop~rfU9~k}8|ObIKBgVOz`nL!Gf)asOhtb*5|Oi=JDN z#O4u(6{jlu6JsvgY(kvKvrx3oN4ooqJ_qwn`z&c>V-i~3@%dwcl<1+uX1>fx`Xz$C zaY+a&q_-=`6xlkw@)1Ov`TPt-LW-f`(rCRxvG;Ear-&_(Y91q5U*HrVh?9H2h{`E_ z!!XmWSD0bM3{rT#ksTcOSaDo3mf%p~{LWr0Do!;}i;ak(;B5S?d@f?r%KEn+roYCj zo>=4Ux^mNH#ODq9d%K*Xf%E>uHpUSGjyH*Q1pZ@@l<0fK`Nd}5 zBtx$(T32iSV25k{{Z*r?g|Lra5&srgy8!flyv=#HmhP}>#rrQeC z=X@PVFF7horGI>Q$v?RXDEY3L!Y*+#3(enaYh-CGtsjAKlb0nK>cJU`c(>#k%gMNw zZm3get-&M)h(JlJ7k!!2CIpmGx;X9afqrdpRZ!s+;6XxjEpGyN8!vQm%dAXgtAaFu z41M$IH_*g%i5rI2j5d2;x4S@50%Mb5WHS{G@%J8Qk zQ~N|8A^^MUPTmybKno^Jt_Y?tv+W3{mk}Y|h!_2o#?ZtlLUHTCppi2&~0a4gNN*Df2kij8uW_YF9=U9^{m=0Uuu0n5;{#bUU-Wi}{Bu zs))lFg3wohh#p9Pecr`h%(#~ud7}K1aR)s-M>$Jt`a}zy{xZ?An_=5#UG9RpZ6wRb zW5L>lH)8IH+ksyAnWy|0yDoNsN^mMsJ4?;D9Sp$uwG6JAjI?o#@xZIF(ymF&w*S=t zkgX~AO+SIlYi41}Ff8uaB;Vnh$+J13C$Pamoqv$v%1F3oLMJRs^eK9N`BKSa89LJ* zl@FqWw2pt_bo^-R)7#W^Yi95d8!VBYZr2VGG>=;pyJn&%!*(pnzWU6)dKU#z$8+8r~;K}2l9ej?Xy&%-R_p@*KxbE z9GRr9WO1Q*=zlTpt>rL5HMiIr8FU(?LDD{)MMgCl{Z8t7iIeE#mLytTGmTTl&C0hy z`cs!qH~;g+FD1Rz&R3{^#e4b)*2PNE9|NqHHnAm9Kii;Tc=4%No-m6ri{)UTRqr%j zW>s0L5+=PgkUy<@X3lW@9ZLeDsMCue*%5oYO^>eb@s-}NDt=SN&M=rc^PFiAH_A_5 zqYlk2N9TG>7pS*^4DRu2UNd<+E$~M?O#_})Ebd0Oy^>Nx+{Aq#S;kz|v>@OsJ#6YH zu18-|dn+GU^k(WA`Rsj7R`q$?V72peg-TmKnF!x^k`{2>w_e?R4*+WYGdPlBzXfhL zbT5MChEl=AAOzK|hTCp#f*(ZJxlc^2xwSA0>9yUW+`lPypJ9~m&A*))1FiNxNY-In z_CL<(+dcKx0pd)6*ekW)GO4fn&REg` z_mNCPT^HRwLhglvk|ZG#u^I75pUjDVTC=|dDUy&alOhglyRQPp{JD&_aVAINb2x`t z%BN2&V$NkDEa}w=Z!y3t=rNhLQ$uG7pw%&M2mt!{FTr#PzsDzZ(1DgOeLyT&XNw1ML72Yz`7YBsr z-Dj8JvErCfvDCURCs2kh7@#qsjzEr*-jXT?e|+oip$gY*Bu~NjQAMVUxpD_A7e-Yt zD$dYHSNBBQjUm@ezz`U3y%SJxxn&G6&13V`%q#lG%^g;vhAxpu)qVP&49Kt%oTv4hCX=>RGcBSkVm}arblu@U$%4` zMkdu2Nt3SjyrZS`bCuk!s8DGDfn2HKdgxfX@aCGS?6n_Ru&mJ$2e;gLHv1iXmWqB` z6bCh{@PB^u<577!b!P1yFsIJy$Tp9|A4`NTmjcVdL+(uZ3Zg!EV!)zw&BS?id#K%z znNeaed*fF9PDWBdfLUyw>+jmo_4A2FZOg&>e)LktZ&$k#-_97`sw$e{BVPEgzP_nr zO^LGSH$!G^T3h0FfWbP6VAWrBV4aFG26L$vbZ*WgYdI_<7$H)4N@`T_^7 z_Zo-#%yb-LDufuLS8|=D*G#|fiSh!=YWe*&)4<9$W--@dyNeBt_9L-rr+w?IiY-5U z^^pV#p)_ZcW-y+S&p5-3Yx<{mrmaH*h^FzL6GoP{+<9A5OXdsY3Z3)Mu^-v{J9Rk? zhsxua$LStZUZvV)?83R8RTUKav}%W7m7j7c%k2g4@OcKvNXMZ(N8Zr}D_HI11IO*TQ|*l7xm( z17_=L=YKXOJ zDM?-A^60FYJK?+fXQfV56$6mF-07~D?@n|%o2!*cD(4m6=T4eip?cpXCu6`leEOPj z*b-PlI*_d%C6AtA0R%@6xdz%^_*>!c$YLX5e)C{5Rq8;oJm7a|c`a@uMmxl|s#}N4 z?08qup4TWt@KQy(c;2i(crPwRFsMd@4*uF7>x7)HXae4UT0ls+DJ#~Y!S!qtJooGV z+|lGVihGvUqg|vV`SfKmemX|(L)w1ZQ%h02dI$VSHBu2MhO}2zJudB6S^*`^`cO+>$!?{dkj7+QYiO6-TJ!72nXcw5r=k!L#F}}oI z@c54tzxz{F)fYsx8}1v*y<&X4eM~HQo>JU6I$L&s7j^U|;>qxKP|N$9X8-&SemwOT zAe8YztGj}qatVp*6*yBo3fz4aJkU2v64b>g(WjpK&FU(S?|~SHzTh!QVwU+woMhmh z+{GOW+V6k*!epy<{7b&us8mgL+;qC@mhMuin{Dmp@|Dy?ITxZyWjaj6L5+P`CugPo zF5BxHGbdyoo#O;SMw8YcATFL|N8&kNcrm#?AKD}}Q{`AOXuIm(SKo)YJup<s40i z1OMJ@RO`s)@%U(~4kEK-6FVnw=vB;(br=P&P^Ya7 zgY~e6>Du|XqbLWYk1;{``_$%ZI@N$V(UW38l7U=%K3XJMY}E569iC_5^f zT+XJH6r<0yi;nnf0w$@RqkQ*SxCzcRc2TFC>_;6BQ$AjnH(r%!^KX5{sRaju-G~=8 zT_YL4S~P&U@cSSDkyPBOZoG*WWl1&8dg5xlksI7TWb7yMUER0}@V2%*QOtQ>rWcSC zeMn^#87X%SUBUGwBJXGsB@1lRiLKHlYmI9X`f~ytGXtd4_CbqLE(Kb$;sLkeg;3I$ zE2L$=n&d0ATYFCy?E7oq=#+u^rkoY0w5KZ&#`9l`LK3fv9O9<+;U+!F2H$cuSZqAu zh(y{rH^91V@rtvR99J4ThEBQ~q0UHhna zgg}Cc%f`xv1w+u!Qq!0O?BG@1GxN;Bi>!X5T3P?})&c(B$?@7_xr{}YvLxpVRGOrF zMCZs+|6&e*REjS$#levA=u`yy>MHSo;*YS2$+n3T_GlfQ_M%EHW`rl#qCGf|A?nyi zp~tZUKReRC=_YW?RLEU3NmIi~kPLN#C;ggfHju}fh06lqM)m?LIG43d5gQ>3Z19Cu zK&ZnCIsBZpGY?cc#i;2rLPYv7vLY+ky<(VCi=>warK`Fu;wS6NMj$#2H6dFzAK4j! z$8p(n>g3p8#+yKwU*Fj0eetG(!y^D}g@D;$MTWDUoGS!t@`6xP_=%DC1xT~7SAr$O z9UkEK8DaOzvBYOd!t&&PG(vjlx61Q>nofxq>}8Nm_F_D&9hjRzRm-totf7iE_aNQZ1w30mrNB+|#lCEVDy1rrZW>5~L<84WA&+;g@tM;Q zg(ySNccZQe4!I>#b0eh*8LTM!H7coH+QGh+-zVqO&)GZ4*|3DA5~Hb_N8JZQ=Qh31 zlTuXttinLrl6Up5esf&#=-dTO;w;tc5QrJ!h4sz|Mq*tnyKzkqLc&Pq&3N!IdJODv5X5#3f}kXCK6y=N9iEpKodkR$2Phh~%fm zL;QfazB7@9X5@CE{dDFG~hY4Id- z=UYD9%;$PzurWs8P}e40x~T{HAYRr!;?V@N>a6D8Kz;mbqVDY_A+*3Ph5Xv3m31=Y_I;PJn~GLvwEy5Px3$w zGo&_o#F*8?F!xoK$G)>NpzBkfGpLpD$OegNoKhrgL7W)e-#VQ3N9WASR)0ljF$#`Vg#oio!03huNEYyF^zJMMC;6rMUft zpeU`UVo2B}Sz(VA#n3Z9`ET~7U^`-TV#wnk=7#CtqQY?RqfSK72yF7#7Y4y$sLpHw z*RE(iIo$U*Mz;eaE%r~@z2VG>f)@*uJ=iJ1A)DY_Xu~Rbb ztv?+V@-RKEF|pY7uXBgw#e^LR^H{);2E&{b`SkmRR0BfY^=Qm zAdg;wzsJI{gskAhbT5znX+q04i2M>S?MJV~zM*-0&F*{UlhwVUNR+gI{K?)x6$OtD zfshUE9^bFHl12Ej#?n^4pcISY~1{yy#Q<8kcC9j#htepNFd-no^e;Gz|ZLUu;j4Vt( zmPnrkdAzee5ff(!#?)HmSeEx!O#MWt3d=crewDRno#N9EvG>1A?Ti_WI}y2)DieuG zbB5c$s(YeL5*1BwvsvVxZ8m`7y$VivX|5PPs6FCPWnHc9giYgh^~H%0BorS}ssc++ z;zDh@Fy1_;z&itl#RU934ByDtKzulkAEzl{CIOf7a35F}L&?A2rK^y(a%pf^mMc5J zYj?Br4!1cxH~*aF<83Re1wyTioahYymZL4cgMM_vt!xl>&c}bBo>4Zl^w(^pO&l&7ssuyQH?{|TDHJF@^o@k{nsloLvMls(_^oOU#!_2C4GXOvn|1WYH1k{} ze#HNI@j&lEGI+Xx1{De-mqnq!TLeUiu4i!^3rTS%42ZarKcAIv;XvcH$%+z{ub}9G zgF_vMz`?fFndEez@UL-x{!MiWSD04mU~J!aG{Rl#ZMFg85|-)E-jyP|`YM&n=WqfKqBCCw!K) z_%KK2T^+X2B5ttvZIN56A!se=DVIm)&?KqAD^L z*Bp1xVnw;iefKb6T2dGFad>UZq5|*W>vwWk1+}loP$N!cX`nW&U!UPj&8=wkvY4cG zTc*x9;6vDzhysAs+{w$3V#R#Y7b;j4;6KJ z^C2e?DpCOk<0n7lySVFH;LRzSKUOiJQV&}Gqb$Lr=~STGD+y~c?lfDv5tZRKc+#!f zYuQr~yt)@8s&6#QTN%bh(5qJLIe?9x$`b4|A_tYdqR6N^A6)FCJkI|S%`;2Lqk5hL z=L4W0qq6Gm<3cy5HhWE>T0Qgc_6%Z)%(AI#g<3_Ke}U^{hsj&594lX1eA$OgUK1$r zA|LnR2%9-BtucGfLyR&g*vVUn+o1wOi_iQk?@of@i?KlcykEU08fnQ?-n?6))f14H z^+G6|0oi&`h@E^UBFB)qDgb4>(!Z0T52LTM%yOL)$|;l2ql1s+G{ zqKd#b_Bp#8fzWWA*aiPfjQ8L4;%lZgGCdbdL-weCw`74hCD*BnpXTP%ViZ_ArZ#`n zBahDH&g8`dd7>;{r%N2IOn)c3ESZ$iSrU}!oDYv5=h+E`nDd;0W^Yr>n^ZQRIyj5@%Y} zqK+nnx!(!il^!BzSPk^4$vt(^RDs1bv3qb-!HUW#`eu)x*(1K%LnGJ;%&I(v`@R_G z(p9?wJtraf!$ARfv3V{Xb!C!w*VDYpx*-jCd-P$w!La*^sHDejQjj=koT#8H3Iwj(xkE!{J!XRdwH)! z;7lPd7)L?)e}UA!`sk{@0x1#jqz#`wjoLhn-fDSu&Gg?y9o_WyJ8#p9+?Q?$>-3Yz9r$y4rR4r+j4dkl>UCgLD(L9(kEyqga&c%NUeNTb#0Y($% z^Ox=Qj;lH?Y{X_9P2V9eziU61$9>M6(MxUbcdouubf)e~=M^$A4PsUgo!!`yAMz-d zJ}rbM(p>>=${dennVGAVZLu|YRO&}V^cA+G74(gxaRT5KE*>x z+^^$7b6ly|+mX!3Q|Y5HnzF+kd1=*-b?050l;^RoOQbv^VncUAA$QId*NjT#LlNIt zqpq1gi~^a-gC1PhOrNMrQ9RH0%-B@DbFP`#stQkmu?9$vCUKcJjP_>D6(w z1|~RS+h*{K`4>f3IFU=7&hGQ%C2;GJL#Iej{qg*{e}0IPjT7$>bIaQl-3Olvq>!PWP(yBSn@{Ob z0T)ldTV4y}7np}8I`XjK&9Fh>Zn$W#q83>9AiY0sO%|>zU=2dxpHc$UdQ)>NheTZJ zGx=`mtI_o3X+{;D!NTzqneaw?L~R1c?mwj^iha%NjY);Sq$3ryizQVX&%N`{)$3m`TJGTr2@lMYk7XS*CWSCt z8b326lN9Fvffm)L7C)1vsvxaZMhEJnSYqEdr@Z!Q{hiI$peLYN!B}U8PUI@I8?2CQ z6bbevo3>XU&rkf3FHVoJAXj&AMhxi!bt-%Xmi`2*btCn}Qcnf1UPK|?^yJhjNrlWB*1rHF<%}e8 z4Fpk14$4^Y2l9UaNlrMX;AuB?jh?ge#|@;*2`Q`)9|e0|$9|E6iG=`JvqdZYtu(*R z`Ny8${fzquN;*sqyimz_RBWk{XIpjD{kwM+2S$ab3EsOyX#!-wm5I%`AtT|cHy}oTTDf_h<~E>=iRyaZqUNxEqq~&_FgxdXndhGCKFB${0&pI_W>)& z)5IWmSiq||6`%?newjd6ydN6HQQ_QI$fG=*>w;s0Qp=<&Gs3MyL|m{+-VOhat3CE# zu>yJxz`z~mmtadQe2+H-7oMDRU>*+Z!_)eV<_KR`tbFECA*(f)DF_JjCXJC|-RhCh z6$p$cd=V8C)5P5NPe@9qC;3<*8qjJ1lW_BcE(yT^L}mmXd;tHI07F=ei^F7eZf2ofUCG4T`SM*C1dsNrgV zkKJaDEh~!I{KBw`XpqU|^$JWl$z!iSY^eg{7!~LvO zjNW(@jfhNpG1NRhbgCSfo==M9?~d7={?u>q{!7i-mlq$~(;93+V^|LAp*kU71YcSZ ze#(KMSaYb!+IVr;pG@{3#nFz%?Ifp`xL+!EB1c56tURC0%PMqikI$8El{a=xbf&ja zRIxKsL8j+L;HT1C6({Oo&MRj6y+yc?R)6)~Tytw)h#+JQj%m_1-oArRx9t||I=H8x zju=|?SKbkOFSyWvZ2T)h2Ws}Ik^EiGEEFGJ~h<83%%{UQL0JT)`JPg@=wfaxVCU^#ceiqq3$E%8v)!EcefidWg-AO{(Eb z!4Td!Nr@ku_9&t){GDe!Uq3yS4nwuuhJuZPL=nXa(5G z&NCm?_Di*+C(E6JbPsjN)Ca#X<33hV(0^gOHZmE?{&~%8p55v2X>#1as0>|@KqE!f z=9jzcFqB_94FsHCD&xERuDBCdc8W#j*>MPf>#N)v2P=(QI1vTr(4peW3uy&LcWrDK z2^T61y-Gan$GezyhVG6NCAOO%+bR*|MU9bdll$DDSikT3FyQLd9t99^Yakm2GQ(v3 zZ2h=q`v>}@l3#p(3X?AlOhF3wWe=3Hmly{Hw+D^9TS6a%f0?o|lSYOEUapud{z%Xi zk7Vozy8J**g(p!CtPH#uaQEU+Z;UQrcrO!(nIV629MePebtcv zr785==hIhpa@@C_=}Ej+J_f7b8BmryeX)V_06DcP8RxO)i9lh86tv_8d(mYIRp9%r z718{~l)&AflrGDfYbL67PE(So-ySogvXuYD&*DXtbajn0(e$^*31^{;)hWkbpQeJZ zc4XdH5^xeBmM(v3{6*PX~2*PC4 zI^DHN-sShYlyBZRicRT{5%J~ukQE0#nDJi6(&27(mNG{^i9$xa6D{4d4j7#OZVw1I-dCH(vVixo!}I-k=kH(EH2ywq;B;Ypv%f$} z3T^&sM`FF{8%066H};JTXU5W?=^^SwlDO&~c9{^iVda<*Oc2BoS%rVN8QkEu>vB4m zaM~x1za!K>^y`UIdvF>iE@wdg7rjH&MfuIM?x48i{^36ov`a&`HHm(rU~{gLYcWRX z*tK9Fs-W81rhnUo5SLhG9uyRQDtC{n+YLx$?lJ_$9TN(B3CFy{+o@nLY$PUUF)Gt) z?k~m8cWbzR@&(-+Xd#cK`$V0ITo#6;uifSrhBu_}2QE^30EN^5qZqNE3YtojyV zc7M6qYQMeH+hRUZ#VNGfJa2gdmm;o7>9`ceK!vV`KQ;_%H;Q-Hn*qJ6H5NjY*%W0I zv?a~Tn3fCH*BK_d@Kf}=PUQW1+ND$K*YjQYkZ%{GMVw0;L}E`Lw$Hg-Gd)uG-4YYW zMTd#pT{@P#KqjXdM%Wv1kUy0ycrKdNJonk7L>L)oT)?Mp{yTLwOvvlWr>T<1q|7Ir za>SCJMgQHDK0d|P9+BmoHMQDGa|Lgsg=TU*DA2Fjy0St)&tx|2#yx%VHi*#YsY+vO z5>V@Ol&YcSckJLjRoUL5f6NOPNi*p0mYGiHs4qJNwvE1H;Uapj_JwX?TtT|6Cqyde zY7$sHR(4y!NZYJT)W4*D#~JoIgTHKv(lw=-^Y6qP$#Dt>%D0{Qt?vC#hw+*PJ$ss= z(2Dii`e;Yl#&}jtnD&~E)hL%XMqEOv;Q_doJ)gLtHFWi&e;hrnVBgTYG%ZLa4qvA^9#FbqXlA zn;Z2E>y_d1MUuAm_z?0Ie-!@)kV8Srvuy9AS6iuyt#x_uMRES(N9RO9zRTArd zpP{x#$3xzhU7b0TT1w`l_@f~fUxy*j{^6t8*of@ez87Ruzp~SB>H9L9PSRHA3Q7KW z${-&NkRbeiCsXmsOlU`#aOWzq!N-dm`02l9vZ|i zukKA>2!?DM!NUB(h1>d{7sXk>9gIXiyt*^CW!YXmh!Otcu>=nCUj|nF?0TCb6mC2( z+Ti#`O+hB`mj{ZHDfcejvqgL5R8B|=k{QJs?VxdiNxu5a<4E=+i*m2)oE`Xha=25N z=Kgudz!^gaB7KcRfwrxgMxk<8EUsAb$KQF`p$hFE;wW_@>}jyUb8T{8(!^Plrdsc|89ghaB^#>39!L=(e~wV8Vy70^gG)%H^KvhRjcHRn)?)OPPGj}kXo`1_X7NcH!ZwDmpRC?zbcK=DL+48v;57) zTkYo#ouM*@4s4}jl5wk6K=X`g<+2jLZ-FGV@VjXD#3aJWx+jONHj&w`0~;=cHQVUq zG4*J;DOOuAI$vzys(oYN?&1-2gIW_PmbJrXaz& zRYy8-Eu_Qfl-QL=hw^C{!9xv(?%~>KiwwXlsPTs#I(9uRbscXXsnOR8^p$=y+?x`r zpfA4BfdLV2S8Rqa@;>)9#3pRLPFXnw$u16u$vuk25qO6)6^Q0HLA|b}AhK=}LcwvP zvzG6}nzIkOn>y{}jeHTi!j}>YbY$Z) zzFwwmrQFMZ$UnWv#!w8O@Ooq405AFifMgdtr`eiv*>JRY6g}5AKGlZIPtrxrt2nYnp0((OHKBvWqB-Iw z9>fFXD4gPWnXj$`(<4QtQO+mwwZq2J+d2SkD+w!)D=!#KVcraURS(YMm{>4gfE4a5 z2)vbJb6iqalU+f8?`kG*>s9)_JyIUsu~EMn#qk8><{j3^-2W%)19+X>sS(44>snqWlDeOov&S#=$JEb`%wJxZ)zM7XCK#g#@d6-F zqBuS)cUTwoK`3R&T*sS6xVemAn{%7rnTfg&;sv7MOHRl%3R2-Ye~ohVSiZ`tJt?AD z}X#7^i zD-BP;ra)Ap?nZO`6yS`g9RqJVm!$StK`2QD5b5CcHBlSJGnhcsMtd(!ASz#MG{x;B zO(&3H&OdQ5;uWC=_$l6t1xx*(WSbe>?$85Bf6B;SbvIw;#zH>QlQ#C8SL->DCPm`- zEq#%7dh%nSF>SO${>UrGk5!O)uOc|uTdnlhRe~y|ws|km?QNU6Y~g5WNl5Vav&&@S zZHVJG_W!f=-GOYb?f>U=993EsYL6olqcxgPTJtR;wo;{bC9!JN-n^}vL7E_uDvp?~ z(#EP#95o^+g4SrXO4L>*wK>1%yuYtMo+87_#sG!enfhih>Py^%CW`D|n;7>d-z$ zU$xk8+YcSi3Xm;Z)?U7Hmk;zTl5H6xD@zM*f>G;P)KDn%llF3MpBinV5*;U?HTg=H z5i367p(JXNfml($Pfe0pw;W9`SaorrfY7C+W$7@nWBZP2iZjv#`#^uyWF^?e-|)N zCtu!zWs+#BA#U@#Y9DYb=i;We+*L%sl6d-o26EYi!Irn04yxsi^~`ng{|-{Kfr>X_ zsi)z&_oQWn5XX(zLHoRNTo&Sp=y#Tc+UYx}b+Vdc7J%-F&>CkXWK}m#w{jZ+i=kKSBPX^D2L$D)R-) z1>ifG`{H*-2OF@&XUqj5Zu&lZPS}gW~vJ8B1Mo?i{Hbm)7U>Z^2+JJ~fiFNKCIS6+X{ z=vANYC9+CDB5hpVc+wzL(6#MCU%Tkc`R{?QOHV2%XMSI=mvBdY)ceD!ha9?2M0}#@ zsHli)BJ^>}OKVE|L#kF~arvVQBQI@;T*mcoz}x(C@*dtldUleUcvTPmar;P=89HAe z7gtMJbt&{l{ZuO*)56rNsQqzfZUEM#TWLEc?`6z(x;)e~=hBH<{Uv7N)0{_+-T~L% zYe5?(8;rL6QY&pwThr&oIx2&YpRO0Gq@u&;0_cCe8mX_YbW>&j+`FOuRcw(lpnLHo zfHOUCuQ7W{+c!*c%saK)bds}ulBl@lO-{UPPLh7w$r@IPdzH^_#6(=veczsc&84rw zSbbnj?qbhexNy3cT-pojy=ARHx%}MBjN7B{i98U^71w)>-7}dL_pR@GG(I*~w{&sP z7+2Aj)UO~})T1Z-N6OD~sj8itXeV#gV$IFfbtJJhsseEmgf*@3bBzO$12{FV1dBwo zChXRaJig)O#rIqF6}-L=s%E+>?zfZ2&eGs6LsczeTD&6AkWI)maNr0nwaB{n_pZBD zokc{ac4i+7xgzIDRtkKyd7ahvOetj{WM$66R{8ddCqh547(WenR*`gv3dO~4Q;^CRk>Td8E zWsB})C=N_oZwnt~M~7C#RUTjPp#^_nxw)Hf17C{CGS!#6ER4)X0tVEh-=)aL{3{X4 zrFYL@hS4L`vGQ8ad{9h;)cbi!dP83mzyq1}M#if=aio@MU$jw~N zb(CKXT_knji{<66*K3W!;;*>_+;kYreyj;=G=WX%x)PhG%Q(a#%U{J6%kfauo)o6vc?BrF z-leit<)w-4#q@$~*5u+4c?%%V`!>DQ1loZEqOG*+;3{-LvyYOO)2j5^t>9G@n0rsb&OuMjzB!%z&?D_^#%J-NdwAZ+!A9j&x12 zllXEbHQt@Amsq9?=;!u(b$oi)OVtMVHzU6@J}zK7lf;}Ts<$K&gWIe+c5}{U4kHN+ zJP7kxmBAe$rVwo$yaV){3y|DUZjl=hW_~sTNCQ%HKi?3uznjleiQeXxl2>$S8g+4+ zTsP@0NXfhXV>gx)2fc+=w!MMA3FJKKZP2c0Q+f87p&wNrWs<{26jATq@l+f$mDO_U z+SSJFtF9=&2Imd6yBEtZ9ti2b_=+r*CVkx!1+Li*y~|nos#3;{Lx8DKK&eG1Vf}(h zjN1)%pdn&kt-N>2!wQNY#nfMOHmU22gb{QHs(Fxc`Fe9>THY2#l3}$$rNRSAz27RO z!}O#xtN99@Baq{s$nMQosX}980Y*LD4;^+cYs?3TFEFCEbVHoz{>5_Ih0qN*_dM@m z&R{}(^pqN-$VFDljn{WP#xF?=upbsx!G_%TX&I9{#bhkExLh4$8Hb1(0%%JHwyHZT=o@6I_u-9D8B z&XsWdHqq9)O28#=GopmzUXiF?_d2uZ6UzVj?b=as@rvX2_Tamr@6iv@{fs28P-sQg z_=h^x;Q-MvXMBasg)H8NOrnZ5p^0P|cil*+|@JB{mTXcT}ocA-jz%NaQntYLLxE2 z;AorajAWznSgRabaUUS+Y9~I^n+Dic#^@pzncd!&>5Dg4=nOP(Q~J=~Q$$j7^{D}@ zQPBos`G*B~FE?l}IV_UBxtGTNsestNlItYR^NYLMgUVxuYk;00FRP4Wf`?CRdiGxK zI4b`0+l3}u1;wVa+qf596aojVEJ6=G{Y5v@rKwoIC`NztA|Jjze1TIqxV1Pil>cc= z)iPwUxY~s$`0;R#yy;BH=aJ5$z(OhWOzJ3RsCK$;@m6Dcnz6Ysdvn$3?v1GJKqOyJ zHACWp=JR3;K+>9mt2EpPKZLDO9u72SnC&1kXbgL|vac`XSJ_U+s(pEb%eaBK{izdL z0RJOrmj{EXf}LPW$bV|6Fg zQ99swTcb^m`QPaGggRlb)XD{Sc-dF2)ACk~SJ)rNP^Js~Ny|@<2E_kzTn$>m9VCSH z=JOZ#p|_^snW92Gls*RPKsU5}P-MY#R7s8&xX+(d6``lzI(jgVEH$KsR+?8hlCF8* zEerv`l#naAHbt)E`AfmI_Fc;Ao5t6oH!^`7rgxGM4fj5{bMk870ZA@wkL_lqKCHqU z?Fg#`))ThJFAENw*Jg})m*e4RWX<4m)-`WCNJHc`Z@h2l+5Doyp3u`{V!IQbKJ2>+ z$Y)DGZ$v`s`AafmI)DQcX!t<(XnSF}xOi}Wuw_iA8Mc6NAy#3>oSY2&@Xo;h>rg?k z-n?>5+x^s~l9`XRe~WHP`k@g57W5%2lo95b4|kRRBaHFcVr$ar zYQBo&a=aVK(1kcAk*~d4_bwzV7Y_`|RNd>0%n(zc7~MY34z2?{gMweb^LO~=vr7i_ zlOnlz5N~EUI&r)`QLXqx&E1CGqwJe?|C{YmmHWLUw}kMwKr_Gu3pFi`NJ%;)!B0(W z-n_P_4AYyQ&z`c^uX=eqJ9@rnb1N&OVS${R_{@J6JtJ`@ktok4#Y}%spZqqLVg9Be zVLqW0EjjRdGlDmNLTho$A`a)U&+A)cK?aT?*H@I$XPLg|I`D;h|Nc&tJ$zO45m21r z_D!mGZc`qJS9__1bN2m87(;r7h6#LkJ~#3rD7c-@uSXYT3k`6DV8@c>ZXA(DG=ZyZ`IxJ zZSywMve*Lt-e=?cUi^=zF)mZEYFJ-#k<0e|ru;FnYG2e*!BwNLW;bDj)wiGRNlJl( z_r=6T=c<0FJ zV1472E5c|wTnT=blK2*$f_RN69eehhqqTfp^ThwS&w6j53-oh_<#gUH1Gm1@fR1<@ z*p!7vdzeK=`$~gC3!T~ak$N{_HRL3n!hN{^Yk_d+hp3ElZnGJzX>GI~Bd^%!f4CqF zV54*&WJTi7<$hD?(FQ2AvzZAoYjglqk;ziqm+%{pxaL9h;twC>3^g-(+*tX5MN21M z9ZMX8jtqv>DCs`*wtmDN;_k9s_sWt3FqCw@C@ZRl1=~fDorE23FcJs6#Z?W{64SB! zWe*3&fvr9DT=6XO{KPjTpCwA6M99|d$%P+h{^~t8Ke37CJ8%+S%&Q0I>Zhl`%x4?HmmcGnywGa#SIqHw3wrr+?3&*d5bMQ z&(J@@H*|Y%+Bb_&$WF)s{;bO7oS}S4dcf_v`#);Pbq$uB(hraJK-3!(gw_o^Po&Cx zZfsU{N$q#bM%0yDef0a7*)qiVaBqbmED_I zt-o?_JD7bxB4&{!Fj13Cg zvmaVc<;iOc#b84IJIkrpma)R>T-kCbBz~)8e0524T0~H`so&?_N)_HuRJAv4tz8wK z07CS37)q{wtNe=&olv=WM3(R~nlaOvylkfCe!9H-L)lb}v~fzutqm4_ zCc0@m_(UKsZJ4cHIJoWo@1$Xt4X$}J;$HVfZYi%^4T)RM5py1hL@bi53I?hTLOOC+kf$Z1I*_CadU^T{5&ebNOD__ciAniPfWkB-+RQK;UrBWc4GW^uXJq z;0hg_cO(D1z2a!#0<7+Z%|V{7Bg8JL>x#au^@KZaKviCU_E$w5TiGA@PVhhtyUfGq z6^4P+{KF!8A7IH9x@&a=`Y(O6zo}`PZC)El2*&zUefJRjm|>dRH))%r*5A?n_6Yku z=Bs&vp-!6<+5)Jss@43W>+UCn$2GI*IYn*7j4^wLIGT|)HkE?{DS1OvEdV_kfUOtmu(=5yrw zshW4vvjaxFQyp6qGjBH}5}Qa)-di^&ppZjCjbd9)I`+Ez$O@KP2 zBD-(q@`tdXa;1w|(f0uoj=`J36QmZ}tz@>B#_Uj?bu(X}Lx05;OYEq9Na9Ka4^G+2 zt=v|j<&JflHM~X@Y9C!PFsc9Nw@doE3GUP^ZSwXuuxr3GeUo%%-evk0#ijLDGl1oQ zW6+_EKNxis&CzUNMV*@N52o>JlM-i-qAe0fgsKOARJhCO3<9{0xjNeDQ|s7e-wQf8*lUkzog~pZ#goKL3_ZDdBg|Ca(A_1Se z@AElTfmd^&%ju>cYuPfcj~#DcUMZ2!3*F_Jx0@IZEx^3!ET$r14#sLtsRw~5gA7ukzIYnZM2 znt7lOQy5%nGufNJ$Os6o*$*ylYTgRkH(v(wXHLMqf)}L{`CgMcq#RY%Re!YfVsTFK zfHR{1T{dv+?PvGHYVrp|OQMC3-j8)?Gef2d_nYj}Dy?p+kiZT~&;E5-dfz0Rm!-@` zlm6-cO^5%tQ>T7EefrdCuG7Gi>$l&2`~4LE=}R)OGoV|4f(76ljw4<6?IPx)KO;w(t6(!4%GSZTU=!HOLP{!6o zh%8O-tQ|x*xe+({1V=n&q%l_U8GJ0~G}TD3AOKqOO5P5Id4f(!T8ir^vd1zILtii{ zi0|dLH*${wUUJ#5XoEI3AF7^7zbj=Lk}l6m-Ok1Jrw(DgOaIg* zRXF&Nz@yzTQf1OsT4p4FEH4SnevC=w2l`-pDN3oT&1A=w#k9khQPV(DF{a3v*^Mb(y zuP)5Qnbh|JGcy1D7Ir|QN}mnF#N`3_@}|mlPuT#eqCbv#vOuu9tfglnG|*1nS6=~P zg7i#`Bf4U(H;2`CcprS~>Cpfu#Em!b%868?~ zOV0INZ{b?(g)v;5bf+Z6jm~L@tG$dP7xz^;Gko@-VcPXe*F%ijLxUg2b8Vl072L$3 zOA40`HJQX+cwVwRZvr*C{&a*UbHyU=Qu-OR+dj{dx>q~5S&6ZL&hfZ%kHP5BqvL{O z$?Z}MStplasjl>4{hRcPdm>e<~T^3LjcN4PTHW30_k<@BPFyFacHDH+|J3cqv8~66rT@ zhg<-C%<`S3&t|Y(B=td8$Qn~bH{OR$UZgD0rJ6LPr3wpwEQxcedkMeZG>@B}Qh&bo zA*tnBN!SX^f1PDp%Nsi!D!Y4eDVr%F5MiEl;74Ofh6U(Px;RD(l>GDCSRx^Km+UYN z*8%NY_htCtXJZuz7@Gc{&Em6hGTUWQI>O5_Ze6i4%u`J|K8(8(_-cKaP=b9Jvq}Kk zaBpAut;jx;Uv?<1)AgsYbXr20stX_=&j}ZJL0HE^p|`bPl}~05mXk-RKfU8M3Q{=D)o0CuZNmujyRDBm=C@_AGw139;|K zfGyGRuw?My=&H?lMTF^jw{1u}19u3)JojVph6|Y=`eLuF)k_6=@V+UQrDp?o9>gZ2 z=Y3e@AznVr^3Vz-UvC+uMP}VUDYdlTzu}FLK5&-H%W}z2(LV(VnAYRksu4aT&cgA! z2wiW+OWzsw*|eYgq^_`W%U|V8WT37H2M2a0>&R|Vylu40(l+gHN zzo>;qC(OV|7iOz}^N}XTPFqwbTZDP@i%5OznzJmKF7BmNTj1aMF*Yq6J9n3agJhQ; z#I5%$^9QQ2qE$@!I+b^XJIYTkFs4Q{Px7C!iKD1}>}1=M$(iEZqZXC0luzIt;nVDr z2aRY$X)$G#a$1M4aH%-h^g^J+86)$>)GgCOqhO;u99O(zTJs)s;s3p2wxqLp@7Jm04g&kL7u7`1NTOT^?jPZyZR;#TO0Y zPv~k6fp83CF9_b^7MX|$KLq)#DEDPlP4Px%QDGsfxj3#7r`eOW#A0R{qn-D2I2Taa zGB%s?qt@B(gm}8{-8m3Q+6(rwYel_cbl;|lL24DA>z0*%Mw*T{yOMtz>gg?QMVgDR zqhckmM`GOVtPcq~g?cmU7Pt_1?b5e+AL6vK82CR~m#O@^AWpQRFRZWNQX4lmX$!!x zrL06forKS5q86=+4|BYbG(!9+1-3_^T(?Coq6}tTE;nNZU`I@0X$m`5)YI3d;IK># z@H=fsaqn2X_U7s*c=>jgr4PZMo`mpxF^y$JLCh2Z)mx#ojjfHh^Qe29n#5#RrzBF8Oen|XDlBDw6YCidU;N#SN=3X zu8Yflo?MIeIF~3pye4J;V|-3+um} z$3}`U;WoQ4Id(S58z;5uLNZJli#C3QX2BKqf9= z7d&w>M|Ou;@<^cId3J$t0)itqNAiWrP2$gT1SXTf0Ecl3w^XNgw3I8(uSCMj zLN+jkxa7(RdNg-$8oQ~lpKWF~ppY9V&)GQ<#DD5hN`bJL1z}<4>o)qiB*+e49wD1moV>U)a5B>d@Cpd5(UmS13xrfnPl*~2snd}i*QhGCfl>_xO^=nO&L!1nl3>! zh2;w=B{GT*8AsjomVAHX-|QPj>y^1)@;3P)y_AWW50THAUUJl}%gb;84i4yTzD}(s zO!#z%$7VyO^Odv`#Slb0Lbh|Hg$_L|d=L?qKck`9uO*_Nfx*zE2enx*Esm1z3Urz` zZ2rd`Cf;^gt--{g1WvEUZT}(gx=QpF=st?as z>P~R#nC4`o~NbO=LkPHT<5-i=zzCSZAz|u5h^&-ugSBbDs_MXdMhTTUpaROk2M--@w&c~qAMhc`q+x*Ce^B4c9(Z7)kwwLOeL zrInx66AeNrwskJ~qzF@yVESAG1EKUPu*AsqFri|_sJ&usy?Erg6Q=crT7I1x2Cj}8 z@Cy~(=wW;)l)gK82tDDg+sVmkLgS|Kch6X$MQ3yTiytRm`?7FoVorcpgV(e0DjY); zM+0u*8H0C{={cAFMNZG8>3(X2&6V`)-tX(KWMs+*KD&M&Yk5m~?ERUp}6bL#%T4kVb zA4kiw+Mks7kR{8agwINV#f@4FW~+^~Qc6C{wy?vP@18V6O#F~`W{2sjA@Cyr&nIJC z`NG`j#Ri-{A0L(h=%XK-YI0}NRB-k3p=J@uJ z^s@DuQ=4Z2_#}eV73r=6z84Rt zM71*OCIj89za+!e{#(Kgj(Tp=pT;QEbNC~_uW7`=$WouGL z=3Auto^sIQkYn}&jUBgy1wX-^n&{27e}#rFA^4@wUerh_%-p8L^5jq)$lRbjPyiJH z4iyf4T5?BEYR5`pK*2%2J2@oMn5ON3zBX6J_!emI{AB8JWQ1pr6%(8Em$Ug8dEMa1 zkd2Qp<~l78nHsm8?;rfo?_%GTGue|q{C4T)ExnJ_oO!wBsR34|KjMx;)V$0$-!%jO zutB`+B@*EetH`C>>hRFl1j>aDUV9^V@^50e)@buSu~W0_w*bD_^@ zSr*Wv7F!`hPq^rFBHeF65X(Y~@~o|JfgkG$#yhZEgO77B3*f>6LW~{%#MlI=_cWw2 zV4ATTZtscjDYx6tnH7CEdZwjg`GE&x^0ZgoJSkRMDG2|dc~pWFWT&ju7KAJnX>f`8 z^R0vu%iQC2V6N<6bQ@^dcc`a7Wa%%}8ogSZgBX@NL-97tOUcnKsH&bTXxD9@w-fBX% z%>nM{;Vn>0C&4CD!ZVXQ7Pf+YR`(VF;uICDIJ~6p$^((Bs8UvrE1Hl?&a1p(cH%#OCQtGs= zV_;wUjbLAXqDX!f0OXpJYn|1m?oDsWHQ#$)eBQ5f)8oe1GljM#^WmtM5f1|@v9j`P z1A?qvyMw`s(?01qdAy_KOEtc<^ZGh8@?}xan%u24)Fn<3vOJTz=}-<&+XOo`zP4H> z!}C4;2h{N-`B3z1azDX2LsU=RZ*m}cZk8xK6{h5n-chnq#P*c;TQbydtQWprrZ``i zts_l7w+g#cCx1(|$?1E-G=TJ9@Fd=Ai1F&K*p+{LoA`d6Kt%^fTzNJVsQyh&<@$9F zq%y0#U)oZ%rvWJcB}otm8Pl!4{$@AoYSMe7*#1+S3mCt?pC2AZ0asm3!F|Dsy~|(b z8Y6%;)F|^_zFoh$EdNWdb^expl@XG{#Enn3`QX5iD4iJa((|=tPue(J;yD?|v*Fqe zQ?OLiP+>nu;^yXG!oo)P;$QVJZ@d8Oo_6ik%YkUGOP_xb6nM_E*GS&hIsc&AzhPQf z{?5fE9(nsNK#M?ac;dAa^iV6mY-O<_#|?*AN$1~$y9hUBro#t8)oP~w z#!|#*XgcUxP_E$xP>}@YU|An8{Y&7xcjsVpfu8&wzEWAznSzZh4a`ZQj&8ingI~V9cU4>!*vL4P*U0ww$qzLO5ZCcc1w`A2 zag&7?b`$$*-x`~C3><^EHxM2lx+*!cI5|BH*_@y_je`=-a>b{`4)JyeX0f-%Tk{=g za6yHcGQ9&I+tfxDjp&%AU!h;w>bqH`TD4^w>-w6N61ZXtFacUNtt&%a2uo^vfavFO zR7mIHU!ST?cyM+_a|wAhd?VzGT%CG<=!?yz=bejVCY3jD7${!RyWD4LtX+t7b_OqM zGO+w2xi@6xt%YaZ#RWcx8Olj8D;Wg`ewG6{U_YodD3~OtQZ*p8KD_*MrcF&hfamU> z&;X~*p7857UZLYupzO)iBQS(G(Fo9@#@Cobi64rt!*)T8UKZDk)J$G1!PZcWx^UJL$ z4IP$EWkYyT92*64>E@Oq7``K`YAumAJXStiDMUWj*50e$Wd}Y@r5v43czM-n)O_Qn z&V~51u=i>PJqqU2OPM+03OIp-V&SITY>ISa1yaKz@&Y;j^@{O=E`FLIptSsEKz;Q+ zJJSwDn0I-8De=y`(4fbzcn3MmN$I?V{($VodT?v0J~ED-Oz53GDT`t*F=Bq)%WKNj z{j+cB3;xe$SfK+Kk|z(JAtR}UTQ@0&oXh7pm6TTFrs^;5l^k&k&_$!Po?rHoSBmyY z@m8{-K4?GgKnOb2l++0P(z|#biFU>(+RW=RzmZ8{+NBJgDVVl(P{}j1(2WD^jD6pn zjXTW%E1T7Hzf0oYsQV(5V7Fwe8DV_|pqsqE5)B0`KlgCyyphwb#UD2RPV7wFy}1UJZ|9#c)J0&i|>#aYI_>{(iGni3JfYqqb2ChyHta=4YzesVdV`WD| zhdACtUmKQUd>Nl%tRN5e313E>FQ3wIy86CS-GFxXeDlV?4{Ild8vjt)>#IJwVI5|l zvMmT}tl=qw)I`U~vxkWWm!5y8p^_0-w5^y%kIfV>B%Gvj{em2#F!3)3AO48gQ(MTe zLrQ#YG2c_Ulm&EL>n0)(FQw}h&5eekp3G<5CMhk0H@s$x8z)(;8j(#sA37kb zuWu_Hw)(%of#~PDmHn8qgp3l?5=;F%kc^K$ZSWUYw4N(FJKLzHx9#g!c2;Rj{45tl zyRECb_AX01nz+swn;%s~(*;3W_q)HgyU!K{09~jeXxbQ*k%jMd8mT;2nI2VWzwdld z21~2SkgCF%`1GbOwWWX|`~o+zhgFWUzl84Llx+PYNmp~W49?spR$G5~ZFh{_7wes2 z-k2vXXnRQUtC%du=<<6WzfTv*TlJ|R`==`pjlxw&zE%wU!eD&{w?FSnY8T|n&h>~H zB7AXoYZF7(f3jD-cIeVN`G>*Z-Zm-^!bmoGL+*-2u{)|;5$XH}2%$*Pm^jgB=VObG z(eiz$mldum^_sVz+nF7aUR{qqVx3gO$zyuXQXFrwfv!$ZHVSJzpAnbAZy@MMa6K8{ z*+M@-@Eet+IqAmqncZ7YaP1*r#T8y##`hciw{%x2L_@J4y~v2kN>Ngpz% zB-^D2?#gAUI^f=^zx?p1UjA4UC;_!dRURiTZ>#pvMdL4iGKL>;TQ!65n_tKG^l2wW zkcV>zlFjX@Zb{xaX=C*j>l z?jk1agr&a~R%88wAs6nb3dfD~?uZLm;D7pLdw3yZVge%@lpd2=jy_0#_eZmU*iuo2 zpeJ%*dW;-n8)6ZH%7XGL0>akh6Jr&U=7_7DwX*cm*TZBc{g{4W;ojWhf3iV_Cl zCl`|=W+V1ldxcZt$AgaCmfX`y1g2TC+T87y+{pJx6o_MF?<|2!GbZa?BLGe1jeaa5 z51=PM!|t8Da+OmpmA!n~RJzvFGw27249LSiFCTh=ht*`Wd>v%$ zPepCnzd0*E$6v4R2_l^jUuv7m2+4+UFh=y32F#Mq8u(n>@RN{>ugT$3U+gz`+rC}sg&N=dKZB9a!!#yvN>buu_1SlF$-HhPD_>`eX?t?Vl=n_agJMhD{J|3BdcRX|{pbfA{$U*IdBTc_sYzbl(Z6$Rp&4KV{#P>=Az$z|rqaq<)pLtlQC)OkdNG zGadO%X~3Q3O_G(bm_wnYPkEA-A6|6?Km5pR0NoaO=Cfu&6p*_zDo`q916+y23Hmgh z5Nt(SKRH!~J3aj%WZA?*Q^p!fZL-6^Pa z(?7p)+3?lNCg-EyWLHQ|l6mdW2BX2YNRR1=TnCoEMZEGk62xZwWp3D)<8#g+HcrVv z&e#x)(Gi}_B%KkRH@_Srr*}pUvGnhztZJVs=?Qws8-E`7F;)QJW-X{L}nm3NXUPE*DHoztvqa*$Xu0y_Rxf#f~gw|74MIlH9)6 zTO|B%8#tLKHJBg@yRk~ZmigmdcGK-{i}a7L>+3*bPCrVWbJB_y3q@lK4|(uqBk!_e zaSB)+U(YcC#8R5Bd<{{N`#|iI4U}IQEO#9<8%r6yIi}%#ck~3KZGgwhaO1u2jJ>F# zNoi!d_8Z@XISR=yJ(pE6^~fsbUDvi6YgpGd`?%^^*i%T4{t{W(bG$XGRbI;f6eow6 z$y%PJ!Z`#nF(r3JZ#)hkSJouLR^bKO58V3k3WL}{KKi+0VQv4)&#~JCm-|pLJxieX z4))rjU=Gq|R537p?zz+wT?myf3IAptjFJ_*l)Qw#I^iA60tltRL&*JGX{k`A3t`q^ zw(q4y+NXmWY1z>Wo9exe5&t2K>ZGq3#Nq&q`Jzaf8bj#TvU2eYn66V@LrFJrOsu{! zfAUjKR`%TBO_QO)Jv*jESRYuc!GSU~-~7MB)4LzqL-RDE`@F|$oUcGtvNjk7A5ijn zro+>zth5D02Wl7|L~Qi*HH!(KicQ}bGQRaR#xiD1sOEC1@jVgt-D0J*RwH6ga_*SS z(-d19iwu5GqT|287cNEvZ!ic@YK>A^<^;L$hnJXt<7Acai{=fEavJ7O6k{!LNxRxj zvdVn|%J)WL_!tC}iz>yf+~$Mj=z3*lkTdM9gfc^F(kiADz^SLdWq>__;s19;mPZcL zDM|xdeBPzZtTjg!ZlL5Fip0~cW-=3Ou9SAhKBX*m`0RM*vyu3^U05BT@!MZA+y_!L z6gm&C!c-W~`FK*#=LF|xKig6JvxpcaE#}q*oo!>RX*kPXo%}`+`Lvjo+#=Hg2TMqq zmahG9GtHcVf={SiCbCuuvQCVvX8YX6E_)0;Ic3#Cb& zYX}9sm1kV03R6K&dPYu^G`C(2a7@X-QucDuj~Aa0Gp@Fd{KCvyT~L#9O&j=nFn&GZ zMNOZi!44>a$(zP>=0k6T3};<@m1UKmARqgo2`XuIN~F^bu!kz9VAUjXnNFyW%L5wo zZCUav0gjf^9ejBF;1oyM<|&rdSIb*7#dh&&c*cq&!b~i@x~q(wrBBsxOj=N4ZQyB7 z;YNM{auz89-fzYMf^loj=1@$6j|0KKN@b+1&#Ysh4E`;oF`Wj95>p7fJw`o;p+gOF zN?ZDtWh6gKqz58%1fN*1zSR6Ccv3EdIDd5mAc{E~g`+s;Neror6um7M{@6@IX3@E< zK+{8`bwPC#%OY-gTDOUljmo(?Fk%CZxwj`Qwr_}t?_#5mBebY7(x=&v#=9vmip~zz zBZ`n^m&hvI-26tw1@S3RU#@Nz7Q8bi4r{wXZ0D28YA>e@D50fSsUHt28K<>&icBeb z=^zCZ+d3ZFn=UTv(KY~n)q;9T*1Mi0dRl-#hhEautb*KESO>YK=rbq2&G$7VV#x%gN< zj^^%D`^`gHGtAt>;5>IKhELjw^S zFco%*(IBl3JEnlv&N4Ju7|LU;D_@TH%vyH7plXJ3^zn=LP=3+}=d*&YY?rcs9#kLp zFfO>iM8Q=(*y+%Y@>K|2!iUr5hGz<@gS|8$|LN_vaB6HmOeim<#s4wz^_Ro$o0vA? z(yQQ5kXadG!+M0{X9`ZPx!}`?z+)VhAxJM{6y_#a?_A8)U!+|s#&wC~mR|-K_5YTo_4RV*+;C99I%A~yYe|gA{-5DzaY;j1WVNA^VTbug zUrERl;7ey2Yk*Pnj=YK0?qBCWV#nZIx7%8fk6nmJXK^qi7i?~P93cZw(S`L{JW0#) zH)LusgE+^)cBTX*$=`AIs#XSah=*dVbP^usGdbBu&9rDsF){oF)-t!dwT9TZwcOn% zz)mb%`(J()Uheq&Zzouccj>dJN&X#=A#b}2=sMtrivT=)ggNcS!LpMBKLTg!4lMMC_4 zNxaKD*z@4^$ApgmV=w{)#?zpKW_KXtyD^eIY7XuG`7*{l zr;p<#7cKP)Q3ney6^G{P^3NWXrTz0;h6={&9=J}M755z1xeX8Ef~%OD?I#_@?%9=2 z;nn3Pc$ZgRgL9>Gay{WTmQp#^XK(IJI|j(-t3#WpW5Z#}964$Y@|e4W%Dnn6tK|Fq zrPsj^kqq$w??-Qgx2yY^0viU>50t>uCP8*aMkDPZ<}Ai0VoN@0i?kygY-DTl0(=hb zWO+aC=%-T@oA-ejb_Vt^xB!qRii$?uu5z0bXH)GgRa(VU@iXXuuwNSS2 zi)CxNsndKk_>D=7`Qt>jBeV6yKc0sm&<>R&fZO$D#fBW{7&O22Qn(PLqdiOf9XHsB z*7@mHf8o&Mgb8W62-TO+N|%3rt2`5S+gHwPUy@^z&L6Ejp#SFppL4N+>FYFN6-mpK z@DaxI=v|F`CoHZi(O~*&Ri5~tZ%r^*UQf>lI8KZ?)o5}}LH859?Dl@2-OQbUJyFqP zq_0{k9u$c@(>6XeGS|HEGGX4qGrJYA8kE$DFK>?wp3{=KXAhQNN9`Ny#R`mCBfom^ z;AK-(j9`So`A^_co3<3jApRo%uIewvW8}6=l})y|$e~u=kE8hZvyvzSVWazFx`L#c z;(?mt6;G`zm--o2&r!{c!GZ&En`rkx{`rmfXPB-mMBm%tc)<0tO8(I6>mG-KLOk~i z{{Hj=58B7`kxV^yFfJE_q;;2^&Rn5*tQ|zWk zvMFC0&c)Tf-?zC_D23<$rLX9*{W7L*e$6$F8X)v4ZbwE`#ZFwO*sxO^e6AXv89xEh zIP|OTJo)e8(h{!3Sh!V@&UY$tjLK^;4820k1)NSpOu9y>yIqCf>Po}J+RbO7_#7XD+Y^B5X zE_#`nb?sVYG#K~7Rvi`+)192DxON-_{RqteZs?h6SekrvhK4}w)QXe!sTI(sL0yi$ zs$|`p*#+?|Cy4!7Vze+cF`R2hOHntic+eD60}#17P**1ttk+;Nlx_riwUqr#hd4T? zqW7`9`>M~APnj5UynULXcqdrmIpFFjn2~(LH7koG^{VRl_0Ov`TziIMXLEf}-NKF6 zcX^IN%tkvNhwk!!uy5}wJ2og+jn?{q00BY%zEh6^sa6Z@QtMxoG^DPHQ?x{g^Q1hZ zqmCrLGTF zRiSiGrS>*$oj8>G$Vn))?oJpsSzkm^dwPfdqN+rBI+T}F{fO|6Q6z22Y>g|COjyy6 zNoir}ardDJU6Ml@8r2L!E-{hekVPeOt_UM2k$jJl_H_&TZ}ezeaRq~=#SEUG^rX&X z5vHmnQ~v-PB`Dsknj)6=MgIU%o>;Icp-D;Pc9LkV(%LsgE}_EFnI(ARf>9Y9br64I zsFq6k>KPA|eOfqf8-rLtJD6iJO1$zsCnzLI6mAV%aZ7_qyu z_L3f-n0>W>!+(ii7L;!yk|_TG%cDMlD7~@zmVTsB82j>yO~SKY85vrnm-`TJbe)9x zWS_K5PR)^?NKWmQsVaz}R#a!QTob06x-F7T`x!q4vWlPcGX2VbD=q9-9|&Sr(!`MP zi`Ogib~Dk zqy7;%wM?k~Qg+_~;(UwT?oy1CY>nd)ziB7!7s??DRv{v_H7Gaa>1*y@n?+iCSsoaj z>84-W%(~C_KPs^o?aBE^r;=nxogS}8qguD3(GerYzE2|==SD8(^jw}wYXtJjuJcKF z9DS%`RdOZycidPx)Ay;$_;Ij^v(d&LBcUeD-W@-OZt za{+Op6S5%5e@m&sHFzdNk`~)ye%LZOsK{Q%?`j?*iFh9)c|+DrdDZCjdS6AVLKhk{ z&W}d3qt%O6w1UY9w=zp?O0wBaza%2?%i$kE#FEkLB1KP~{)mcP6h1~qX(B{v+7}@U zL|D`EiYCHQcO?rAU`qwGPbXBDsRmQc6NJimvDCX#WiObI1Xr}1_M%)N{K%ImW8}E) zZ5v&U>2c{5s?iZVi<8L5r;Q%A*U2ZPC6bgal7CXQPg1AsQnt+(2Z6m_jFKxaf9R0p zr@>BkL}0foj-A|9yq`g35lZaxuz&U}AvBQXV|B?pj>AZ3@>W-=AK0M%g=tz)MZBG4 zm!wfdct0tNM0}(3oXBQIOz=G!arRhRp$QRMC+=hA_Smq-yBPGQxFYa%mF?|CDBy%% z!apiJG4NclqF8Y(O&vnx@sHqBML!2kMLDaGf^{!$3)r>a?u%qmjm@s+EItQvTpyHD zu#MW!mdO}R2t~;D zz7GOJI3BNp<;GK2X6>k{Cpi?U+9XxtLkp61V;7UxPFODPhVqBXA13V^Dsop}(|@5@ zrB37^bn)9xUveuEL(y<&>w?xKupwU~jnT7`%`#k)(Fp2l*^tbNSlU$iN|L+8IU70S+vP`Z18~q9pxlS8M@Kkn$O0trtbVc3>OWkrx%HmioZB`G>A)S>e}S8Q;aN8+w>AhkkdAs4TjvCM-p`InK(GS{(zB5 z7Zzekze#C6|!Aj zmnE`3OXO7VJE1E?>ZfX4kmQF1NQ_*If-ek(_MQ(UvRG>RTRpF}35r6IbHO-a1xoObB)Y`iqKZ zER|`vOTIk*5%xi3ipG@HnYqNI_GF(`43g?9PF$2PDZ8=|w5(E1PwXyTiAr}REFK8S zo}{jNj^^wQm$2TDc`u8dWYe(%Bt#~DVRBf;RtuSWhA%ZlRBn{rsNkhmH=qsioI z?6D}8B8v0fQI1wac_~G*j1na^7J8|l)IXI{%!p8>9|qr{wT=vNk-AYMQ8G~)D$`O= zzAGPyq=lq5$$ibrJd>)~pH?o_Al9T{vwgGf+gQcQQba{9$&oR-3J z-7*9Sku9AU$}4R=AD2lhX`7GYSc($T#q{y3Es=Ag(&HPnTO}`ZB+69WnNB-NR5Kw{ z+hJ7pk*jniZZp{NP10iVc?tE#$M>SrqHTil2H}W2Xt|hsHwU{NRc8$OvR7Lctb`B zXvfEW^|xXWgm}})@*%q;n3utPYSx`>y^S77VH=wv1!2ipRXhpGwKS4#aX|!=C1vO?)oTDoVG{}fT zLcNjY4Dxx>%z8e{d^M`mz{kMLi;WXJXjo%tu~$A&^`X_VBd z-S{sVBs*f_PoD#|(>#(-ls%(ZEv2+{mw`p1HW3${8GMVA$k^)SzKxCJ;d$&@uE}yU z78e52Ezw0(b&<+_sFTm) zA%mR}32n(mLQ#KH)b!P#7bk9F$<@WAhaJl61wNsusL1rN+GQ#DX5FUf{ZCd=cI4+J z*8{p}c{8IL8DsYnPlD0EB0^$$6ZZ&gV}?r>BtMF|>_zmr`53ghaThD)6zP>CWK)A| zrv(_H$Z_)c8iw1Eaj9WRJ1dQ?>3vAkQNif0Nm2J$ofd}~#JS^6nx}$CR==k8ipb9& zgtnFvHkKpVN~?mw3h|tBHz>-(p5!~h^MN?Z1u3{Ze4Tk>}AXcSLIa zc_YJ;{{Umxy0pHfH}B5{rw4vhDNQ)M-|R*U@{p-zX)(qUT$`&$pK=tS(4%j-+IS~? zTj)ve`FwJ4(QkVDmbA^bXVisBMHH&3A$+>{9*mcA_-nF9ofjvaX2@wZxgwNoiPw#q zJx6iQ*-V{#kfUC$utWHKBlF1r0EUMY&svk_nmsO-em0JeQ3RYPbc$cZzF5>&`;XJ9 z6(q{EZxmFcVpQ3~Av?h8n%MR5Bgpyu6^jXW-0|JO<@FMFWz&MW8Od-vIS!I>ykGVx z)weh&8g)3sFIJa}p~{^8L5;`DCACCO+g_;Gt`566EqOL@y_e zDl(fS%1Y&G`(6pRbjMXCW@b{s(|-=d<~@*BNUKnki;8TgUQzNtMzZ%T{YlcVLP}A1 zD1Q@#_Qp!gl{F|6>C%Z(feBj&R`^;WoFj$!I~LU~FQiv;7@9Vwm4@09x_K$papfDS zPWMBnIL7gJMJmzRmaa7h?4Ht2aOeHcQZrjw6;=}e05Tyh!k^pCij?QLOBwne*u`D& zPpOi4L#TyJFEqE(qTHeW==GL?T1 zgRAMb`{TjVb@PO_$>5CX)Q$?YmdP@u3q-Gd+DA!v8~iF-U~F0^@Dmm|B+Q~RUQM6n z;Eh(FHXNZYVmrr%LaLHIJnn}D8n=8{w-z>YoD`#o{f4%UHhN`x(4@Yy`V}1KE4OmR zC+;QAsWwIxW0ixY>)W(v{^+?rvB3vl3KDuCQ$i` z(zFpdGNiQWRr-j2=YnL3==EY}NiXUmzAI1nCdzf^2ZnUD_r)DV6r#$Iw3+05YTc86 zgKXSix-5%d0duBJ$>5Uu3TL)O7q)w3dNk&^$pvb58kAlTo!*V2Q%M~~c~+|A{{XjS z6~>FCQ>T2f&lZZZ{{YFcyD7cD>0FWYpuSZUN^_t1bn*UYgl(?BI{w5ZKRMM4v(Ig` zdfbkTd>(XUhD@W$)iP3J)1-g#5dFznM4KlfU6;|FGybGbtv}{!CG|ZiGBhU6jY=tC z>SydK=`CM{_#7AQU9piFCbfOnFkPIB1sF!8bIK@2aCvt`mfWYGB&U;c>JqATb?<0y zx7W7#9Eh(aI7)sAN;Gh@Kd;mFAsUjFIU}>wNy~J$5r!>!ctVAGoX=<5$f-kp zNPDibvL`6b#x3FS$WHfGvs|GF@K{KEmKe0~GF^*Cuvk&aTFs*Z#-ypLQ;i zm;V5mx@rr-=~1`I+hWCw7A$Qg+kVK>Y?K;$F4Zd#sJ7$?OCzE zJe!9yb0;gwu`%nr>@2d39OaZ&t?4b0w(l?L_BwhEyTAVceaf}7>C^uI0CJrf$>aOT zRO3x!l5!)|B=W9G&T4VWYR~LSGL&4uG*!q-@lQl9)OZ-lb}d+#ypkCrL<;$WC9m+f zSx$f0t5B00E+Tw(^grW2*o@Sv;gOn>9FmQR&CB*B6ub`q07E5(1!HO~Z8nRytGq3XI!I*ZbMNU7M_dZz;32AL3*>3xec_lA^nHsUNblJd;N{~pkwMbDCv2s5K45X>z$gI}c zKe4z>xpKS0)#&1#zQ<0~9{&J7E_4)QcUF8NtCfDE8N0z+ap~wNN9JcuOB>m7vP^8b zV__P#A;Au^K2?ZUr7k3e!1)nv5q%~-S7Jrcf!Nr-ro?(t6jV*jZ|+K>MK!nF)_fD2 z9ES9dB!{BWofP95+5FfgO8f~}NVxlMUt9LKVpANx3gl1|X_2VBo3}F7B_uTLS({k2 z+-@N)ZQTWSQK$a^gQ=WjMp!N>7t*&2wlTZ0C`;5({>NJ{N|Y%tq5L`tLDZHKL%&nh zUGe__!6uO9qln;JMSU4zN^#;%5$igL`MDqB68z93*3tW)%+dbaszHqpOLi}TK0YFr5+>IJA%;5GBJRz%LW(4jDsizU^->`#p)%$M*JU-sxeeTK zb-yZC^R3I0$~@?iW2C3Lx9oH@B|fRSc*{EG=hVNp5!S)c=xM=u zPfV2|(q`6+mqx_LOxkTMSZ3)jEL}xq`Pm+_eo(r~e?fIL-;(z((R^y^Q;#hVs-nLz z`pQ36KCT`S{Nw)sDEhhm5&YF}sQQY}^Bd>&DaNH*k&5M$N)b?A4xbSx3zaFdaT+MJ zlN_=kLgeW*WyZ&yDAjc8C;sKsk!u&hFOK;wrM?d0JeF1zOEkq(2IZy6MD)v8u?=oX zidGbp(k{%SDL?+srZ^JAw=|vrifRZJddu8zC-!<{!#VS ze#7ePKO>WF?ff6%)RZZ@kIw|>d6AvA2%Ij7^y!nJI9U&p8DvvLjjF_!L^O1DZymou z>i!+{V=twP7Wg}`LFAR0w0w%96^>Ym@-#zM$vqT^)K5xvT2?((w$~~paW=e^swasf z(t^8`RO9~ug0Dr=HF#E0`$?4{vHbCu?CxC+X-cDqgQn{5LZklxDbrR{!50}y_WO^5 zrbUhiqAn+<)p5xp@N0w8ru-7=Q2Kcel|*}yCxNj@iy^^Q178=WrRvp;f86RP6%`fW zi^*5~2*07yR#SlZ9g3DJ;Ace*)htejw3=w#OOY1A3Aj$^gw&&SU*JE1D2;1k#fy9x z$%;k>Ze=%;Q$oueQ5CBg&9i(aMum6z844BOF&9Zx{!XG_GC!9808>2zQESNW_3XZ| zouei7I$E-)QujZHSCs2*e?p{^9JGAumu3qY6q)J@QGN;1i;e6~kx~|VMV&Ldv09N* zn9%+o@XCJLlYg=*@-9!CrDsc5)2_aQ;H&bn%&j4x!q@dB{{TrPc$MNzWjNkLg^6L5 zYHXL;iT2;N`rKWOX?-oNz76z{l)i$eRsL2(rRqP(&*iH5A<@-*5$Gl6LjE5M*|tC7 z^iSlvXsoeQqaGk9j#52Nednu9eqnVH`d{}SRD0OW%aQ7y zsp=k}rE=xRAxOD>UCfkZRHK`nMG{fAogBZb615_&5~VSruY(A=NhQk~jT#Y$*p%`t zvX}h4ky19v($`feqN2kpt1_e0_;w>z{gDjBuMSF_k~#>c=Ewz%Ej9E)g&(mQQ%k`r zv2w8LCE*{;NntPh52%&AvDcIT0Q!5s&U#B9)OkG#U*>=AKAIo7wQ*v?jhP{d792;$ zk`wK@8Hz>C#^Mvw{jruw<06=)5)wx1qHrtG9Be{PGEAXTHK|3Cq*tMmtt$>AUG(~T zwLVz3QB$WorIc5%R;%|hA`oZENqxyC&XQi7?S4-OQ5=)grT+kxpZ!Sa>fZ4y#|2z6 ze4oOSbtfOOUXx9gB0LWchsVy{q{T3H#<)%5y^vaNL@q=^iSoLRiwZZ2HE zdhLCv@P9$(m6jLqk;J1==-IFTCSn`CB z;`|a$)+Z7v?j*2DGHXj`;3g?+36Y;_}+jz22eoGBtmnB5BdRVb; z=)GYp5tYPV&cw!u%EdaS*hv-ocA1pUgRPIrG1ElgRi;h^mQIJPl^OkoRuhfWI+(%4 zoKj=4G&R{utx9j&#nx4Pj=YC9{Fg3VxTIgPc38<{X|&jFMT={Hg!^0345IQ)V4*Fw zqWHOQ5p1z4vHXqh@> zqk>C1+e>KIVq$v2Vr5QK6`DhW9BeC;>Wbuuo- z^i)EzVw~*8w<5J7bk3Wol_`CR)!eRBW7SBxeOfG7v0}#4VX)Y2HkK^DHT&Ot(p>1f zJQ3u45?MMLw_8etNh=8!RvJi)MK;eQmD5ayG`0oul8?2N>_NrEwc(O$2x|n@q(Vbi zcO@2<2`1pKe5_f)Rw$~pUkx!b;$;ems{-~Q_bU=jNQ=@HY)aBZ=@XbvFM%1oNU)BNYn0>aWHSGaL0{MI4l+mY~?{!vRN zP2S?Cf)}{CJQKNVvfko3jg6&PV4upaMl83quM(oscQRe8M0E4YD#HY$W>cNw;!69O zViIU_FZ#EFU5{2#Ca_U<@IlA-MzfMP<%l1!HJrK%o zBj8w>MqC!ao=I_~@-7SHjMc@7=^t#1G%K9MaIlj_Ka`E`G*rta92DM1lth~M6%~c< zjm@}aX!1>DUjg=^X+n7_Lv#v|vm=<;+FSJtiT15!svfM5I#1?0cX~_gLERHx;yewW z2uX@JLRl@54%>#y5b`@*nkh`Pxt4~Hu+^qT+)BivG^`=+D?ycG@Gc_!!T))6XMf%(9L+pnqf_$AM{{W;@`H8P+u1PW{k!0bM6Tt=UB&^NCmB{c| zSYk!VGUFJT9!80BH)7t>yl_bivGD#HBEMaF#C@JfycG_PVrJ{3$u0|NP3deAMiVMA zqAMgu#>mSB%n}hUNlL_WJC-HM;H71&qQTO?dEln- zPqGY)E<|HkE=QdkEZP;z2@=E6#BnL%k4lI|LcDa3V^=J++>7=iB!5MEHTXxYxYc&D ziBO{LGMsM{iP(G)%_CLw7dp_7SP zIn&2v`>e>KC|{wkj=m!vsC|^)N5L*mmREsM6y)}fC9pA&(&EY@PlCvdL`Xu`S~P6P zwVK9_Ti^j*(^>bqG? zlEFdRXM$Xm-Qr7C!55Rju0@EM;6=-4wdlsg#zdIeP^}S>?C@=OHnV9IDBxeJM@tsf zc0DXkIWA4LNbpoyIyN|w!#rs%6VZzdLPHgcX>Av48zRQU##F&3Rzo7ksvjg# z75b%%3*kLcQ&c|MZv{kjkK9<7Bo*Q~9F&p%i4D{98BO?!N5ph-;9@cbSIX z9TpuY$1Lu9^(%HJ{{VK+2-b2!2Fb$6=9va8ZpVo^;Q@!$t(@35Kg@79BdhJOJ$KY* zc=LO3Y(L$d%)KKpw6&y3`)ZUN;szdlNVC6ao%gfw2HG^Mts{E!?#syCxJ{pa@B>Inh!9!`eC32lV zU@_CS_>X9Rxzjq5OnbA)pQvX$rtXe!O4{C?j_`e@Qz0NHuuQh z0r4spC_biAhmnmh?yv;NN9b}NTLM63j^SwVi6iVh`EJA1cgLuCSP^68v_m=2xL2tO z!Bw6-WM}AnNC5Mi$dY%=V7&1fa`HZ+SuSmZoSmLrJ$1E=-|>R40Pz{}c$kMsWXFfZ znLHRc7q3^Zr++V@hd*qYoJ3~tV?1~W?zG0`z!lqCzE;#hz7{hbSJW@k7(~X4u!rCI zZHI>S^W$gcO*4hg^&7?w$pQ6w7qEus<&^U8n|XPP`Hcd}4cOYeClAuuXg+iPDgOXG z_Wx$30|U zd+fBrTv9iBXSj|{AH0?}OljC(@Gy!l*x_%(#gjSNdQ2f~JRv}xd2I(?f(F{XtIlWbdeQ-dWG!vh2Al*6|;9ULmEZF{c|{R~ofXaEE?)xWVJ(;1C0(yddzP~R;`mslB6?ji@58Qa>{lejK_QCRb z?fP^GeO-VZ&vV0^eOfPYM}0jrOb&aSgZvSZ`{w0(o#Er%$FEkfp~I7B;@t+Xk{;V4Kg%U2#vA0_5)#CY@u$Z`T{o4!8TJ&&# zn;vmL+{YLhtabCn&|KT}qJF+IGJZ+Bz%YYqpg2KoH~ zBaWV-X?Vbq4bztMpZ#nA4-%C3$npN<PPF`hW%RcuyQbE&vMEC0Jwm^yOZU@U-K{I$@7r%6#Dgh9&G*`hIKYH81JG; zJ)%X=J)a-{03|y8$QP8l-noL?^%<`ITf@Ggp$aMZ~_iu@@x^7#;o}lD& z`Cf))qoHWS>7ScBgKefn>wW=^>*{oAFEas=V_(&suk^>K&PMQYmPEip-3P%rSRES) z{2_2>U%Oq`S!>`NXLdIRw;MYLo}|HpJ;G_@<{9xrm+VCA``>b~@say==PldrMo#@D zx6=r2d_=I14D}ceXSm18LAINStEcMHe`KK0PCyrqKg@u)%HvLXY+U$m2#Nb9xtW)) zZ2qU}$6+#D4^oaSW?hi(J7O=0bUp!F9v6e+cF@LpTLc_j*e2_f?B47I+$Jk9eZr-f z1PmM3vpRIM+3v}r*^i4u4t~TF${H7pjRE3JG5hkQxPyt$BwK9U^>BSG+s~`m%0#@k z#0E0QS?T=1`MV3i{GYF)#|iISP~UTKEh)#$l*!l_#{L#08?GK~=*$T_cbAOii_K@( zu0jTO$luAJuyOTdWu|UiJUKJK_X0(EuO3jufwTDiln7a%TmJxko2n(D6HCCEv4Gy# z;pwptulYaxFV1{tz?*)g3}Xk6*xmR!k?{Hc?bbd%DepJb4jTl72fu(8twY2VLERTH*kpUvp{V?5ec@4NXMQsK~Hgi zkH(iVcG#&7OBNS<>!CVt4T+>Jiw?c{jKKzVX$gHLfG(RJmwDn5URmcRWlg~f?H|75Tf_&gdow4@X$o~KqA0Fe!kBlt%@{8&9YweHh zy7TMIWKV(H!2F9W_-b!&6G+YFj2-wMc)yGsRd`$wz7$d9eG59`c0_Za&2 zw>!+(@@1tt=GT1oJ$*yo-%my4BX#u8H}C2Y<1uteFJ&$fhQ`2r-Hy!66Ox|N2K$Ve zZf5TozQ05AB!oKhSdS$42UOu32sU^-W{;!HpyP-U_;%_ZJd@%Mueb-f_il|%kuQaW<@3;m%`MiPQo|D2hR&-d-Nj09K7w*vs{g}fbAIpW)>i53vAbGqRw>j+M7SCL@ zJKpvX2diE`=0U-N;jnt-il_4;;osZ9&p1hy&;FtTXt!ndhj;j#;dgd%!})Hj$mr^# zsuyZXJdwB&+U{@_iTS+d!2dr*v21I3v+}P66OW!ZO*%N$Lvl=Mjxwa2!s|8NeKE8 z>3qmc@WxIXHmhu3_joppdp$wuur0k(92V@R^ZgUFA1tm$eQl6EAlLZFB5ww31H^~V zb7t?Km)@{6BGK8sKqSHM(HR~#HsA!_-LII-hVOM=LobV^H0$a&CvpnEcj_0H9LE0u ze(wT?LUSi^U?Itg3Kx&V{{R>MIr5(={{R4<*#7{eKasGV^J8K+BdAIn(xhe|sOlcbxg-v(9@Z-~07rf@JTX z_2S$)Ytr3^c`V-ibmRs;cHiOYFZBt@2iDx?%aJ#sk$(Wmz8DjaC0A|Rb(fa*DcBhp zD<<#tF#$Lq8)5)u(B@9c>&?{obH+ulobze1;F?Ylae~sFGr(A1Gt4Lx^Jn>c^$~XN z*r0yw96kJ8cN4^)eTh82;s%+so#Bs(rLl7+1IEYZ^d^*m>-(~CcP++mA*?*HRJ90& zW__$@1Ho(*VZp#T;P=a^Deaey>(d!OJ~~a&oj{Kkh{D) zpC594f7}m4Tx}to9~tfs`x2TDvQU>-ZnK98qZw(J%vwx3Z|k=p(9?+=S1zSbTLOB| zZPTCT(t7jA2la;NJJ!V>U*Hxcc5D}_bDjne0k&giZ(s*!cLTBkU?=Q2QP0EygmFk^!>TsTbcE4M~FYMnFv64V-|*FY3k8;b{{?Q<{|Mg z{w5}D$@aUx2Rkm@N5YBHG#iVm7zXU3?u zc+WA|^PWpG;pf|71Yg&vUW<%{rYD=3vomwE#QxhGT||CNnfT7+MO`0r?7(!3)W*=C zaWV>HBNI72WKhqm1~6EtNl>CnY-&nwWke_xiH`fb3owh+8V>#wU z?>*aj;ykUqIvGT)eMmpWv_Ray4;vETaPo1FF9n%u-?iL49B&CGA~xIky-z*N#OJGZ z;(djKJY#iN)s5eFUc8Ll2QT#G?iYDxU>zI4S)I3p8wSb+>K>Bn{w)rc%;yF+bKn?u z=Y%4=e~Y({zmT{QWA0JI0u>$gFF#G)hjKKZ8{%h=cL{bxWBG$Vb^``40{N1C3ETX( z)9H`|V{ZAhZPoo^*V@?vSoSOlosZ1qG)}zXIi6`^KqxpoHbvt)*Z}Q?LhlHX;pAJd zUSha$rn1gdo-PCB>j*={8B7UuHJ)FquvgLL)nZ5T*&Mi=wg65f>mC$gT=;3gwA-j` zqyGShKjHm<@CQaeThw`hCrddl!dsiny{+sw-1#2@?(*`=Z;8tP0CN3HZ-Y0!u4T6E zdkAKibPtCI{{U0p2W{l^+b(#N=Z_J`57@)sm|g6=Z+jl0MY{EFXNY|Mz=5X2p6y4( zI>U53{Y+rzB-v{_Y%JmxY#)m-W_&FPVP&I12@gf3lyB6yt)2GJrDb} z$K>bGy942FJi9t{z$_@xr7U9cI zOC7{49s9GB(q7Z~jlw52yeu=h8(+Ds!%wKCfMlvMx*HNMa4ezqaT|2?!JGY7b+#5k zf!rL%Cu8kxBRoYs`mnU;_a`41d6)8uSe`tW9eA)j1E$N5Fgbc4v_}rhd-#O&d)QG> z9$j0Ud0}en^$0YN346-%DyJEw-uMIOWAn`I*T^LlxFW#Yf%jnVyA4-Z)Y~0{o0bi@ zfh^AZw*LTt`2PUnfA~H81CiT{%ov|n4fSu1&%0tqnH2sZ8y5G*<^KTh-PTV|mM=2! zEWW*w3qJm3i}=Ck-MZR4=iqA&aCX@L{)k9Ddn=#uGogAHf4RGwSQlIWLy-SJb)~ zH>VbVek=fU86%F_2mL~agK!a;Oc4mP`i|0h>ad+=d}DUSkSiXn{{R%MvCKBeWTx2g z`OCBM9LC5`Fmz?g7N=V>0sYK5<;h|ghmM{h$MVcyFNiWU)9=->bJGC^6@kyG$IHaY zrNI{28J;KUg#0e>tZuoznFCJ|!Tl`xzE=0cFulZ>bL(ay;fD#XdUl_>eRdsSd>oj( z0c`bvmxTCP3gCx73G6*Q1YCMM<6+<|vWtFtgagX#C0G0>@5~37mIH(Xgn@w{H&ce& z59pfz0L0Ju=loxk`SS!2ca}l-W!+$RhQ9e=7k>R+Y=wqKN4Kuu?mzbT*SX$yGu5Ab zydL~Z^7HAQE!YAc_=ms0?~*~EWzR70^(QdApX$@R_dm8dzqV(WXL1}o#9^J6i*50^ zMrFmkk2qW6$F4@>dxu6dbhs8=TEgI*Xv2lN5zO{|geyk)+ zE9Uo-AuqDfgoFdA?Ty5t>>QsyJ>`rYl*sH6-=SwXJhP7^gAX;dU(04N$2?!o=;Q4H zq9%N-HiBW>fKx7qY_uX<2K=PjQ|=p#$ZBHnIe&PdZDeD_g^zq*mE`TCP6UpNPfXSu z?%H_upI2-pew#-;LWhC!$S>?vgsf*WY@Q&N#HE1Dz95lLcs?Kurxxfwpu|1N*ZD69 zQp9%wEk|s~_P>PTY7yBj?a0WhK#gSPOdDWN%jyhWxM!vlx7DT|3ytU-1YXR>Jml0* zI~`7T<$Bo(=E6th+VUF^jk|f+SH590JkB8u(H6S{vN%qD%g?+v6AV|?;p1|?@?g7> z2+l4HGZ3A=T)v(ca~0L+r!SWf^}!b_P}t|?Bi0tPwYwl zLHf;b`s^Jz-?T*wV$BbO|HPGnZ;apC~Y)6L;IymEfr8_L=c ziu31RQzl*;Y&q)WraUf&%>IZ9KH-bvI47)|2IHN!Pphrz&+`i2^Ohv4$Te?!o!|tV>gU5zw3s0;?xFu z+pp_vPI!^!v3y4QfCkLWUmGIdk#2+td z96;*@9^=@7L4{tO^DWpL<$+HAZSHhG+bg1eFHk_WptxZpUk+@reJo~tKY0#--kpp~$E(2k^%rx-T_x1@Kspu-F(E2<{2yPIEvbCBoI!U!C>&zz8GXSd=IH{+LY^OleHDc>Jfwp{F;bJd_B?0bS1 z>yIfQ0JMHL!D$Ypzz1bYJ|a?eHT}e9`SA{!kU1rJC->FT{`H3#Z-{@BI>ax$#_TFFc+(WWwyO@@wS0_syaI0G@yF zzwkW0j`j}N{1<^AjCH&G&z~{9pFZQ?kB5)#uOFA9#n#*V{;o~}l6H6Ma(H=z#g9Z( z&+!I>zM$z3>m&2Q9-ey#_mID+A-u8m15?8&WcYE9UiW|M>+!YHO~0`|@)Tj`@%0FL zv*m#_{oONoTQ>4KNNgWCXm^loF^E&apj{v}~%UfU67_8NXn^O*z0 zBXh;`_FJ#5CC$AifRn~ML zIW9KEvE(Z8CX|wm$S#&~?`4BXkB+CGs{*X4yU#KdG{!2=(VU30>9K@d(cGCiu%I2} zOg4;M1?&aoz{7sT&wOV-HjVf=jA9n&?VKC^tVZ_wXTW(2w+uB|u1`l~3h{*Vu3YSw z%Id}vPK?4ACOl&PSt>|i2j?a!8gaXM?l3=IZSXVg&l7Owc-f|SYy&S3fJltXo}sH^ zAqmSBUs1_9g`7un6AUg!Ou}6JyswXlvOGlAPl<;B79Eef$WN1DV(`m?J)0c|9C87? z1~+K%k&|^_Ogk#@Sr^;3S>b4OyX;{HCvcWME z@VtIMxO@2<{yjnV#I$b*WE&5-F<{jr%g8mH&dwx#by!pV8#f&fF+vG}(eS7=J{vho z2@x=!pMZ3$bTeuqNJxxOLSi=hh_s_S1`e1?4L3G=l4Hy{X_m(q7P4Fb5-R8Rh8xlv%mrVA(a6%MuKKJY$W9zQV z0JZRl@^?Q5+;-f0qr2~n77X~qcC!J7fsoBe!=Fzqo)U21v$Ohe#v0-9+Yt%5S@?Sr z@r6=Nr@5RJeUlTC)*~XRJ1ndG@E&+GUl75zecjgE^*7q^{N6~_8dTV!@_y2m+WM5W z>i5dvd4#jZfn2(N?CzX!%W>PcLf)Bc7>Rcj0Wp!F1g!sIh{;iin|!4rX>JTxDPs4J zX(u$ZWLZ0n#PYpufm|nmKQ}?pKtYQT`NT!-_DRrB_Q2(FZ-J@N6y6aVccZGlp4jTd z_@Bb;s~`B>e@xWUBVbj{@iVc<-F%R|FkQBYgTM4A-~o>ZBXjjp{!`eBxHyFz(KySb zpSozNAtZO2P3dir$V^P8z>ME=rocc=?Omz@L~@O!ye$dKxXM^0IX zQajlM4NKiCV)E|g>?*d`*P3^9H!m=Tj>i|*?Ewz{5N3&2c=g+@HGAN z6xb@IjZzOhZnow|-1+>9=j{`5fckX^oWhhVIs8hH%ib zbYCRu!#t=zJln1J6xxOY&->sv(c5mTej;=w+-uTeQD77wG5&LbS!Gn+p1+1CiBBhT zY64I0p>XzgA2rETfhO+r5cg6DSE1rn<#&7QO4IuDvQD9V#{C5XL&)nU=(*&b`y;Vf z`NG!U9k~jG8$yNX>0{*Y(bEF(fB8jau`M~>35{$Cg%t3N=gE<1Jg=kU_zhMaY`XbP zmmMxm_o-Siw!S$r8}gpK(+G((ktwNdIko9HJj!x33|8)^1ia>LsBYWiKO6r&0c8aA z5bs|@NW=sU#c9{O$wU>i`y&dcTnCkUG`|})#xK_7R4%+~`PeXMebCVyY|@xFH#OAJ z6y_voYbB7&>x90RHL?{)xE!3i%!>1kcpTWgzDAE`Dl)4(a^TDRJn*9FLyv9tY|AaF z&l*{48INCd1fjkIWPVG}ZG8(n_G(=-U)I%L`!=IJTc2!{5+SSpAJHt%oYHuZSY(f3 zzhbH*aT=&kRS+39zw_UH15b5Ugfrk%lCb$d>6A>|KXVYFj=JA!F&@XAS+6n7;tLur z%yk0>Yj%x8k}HPm{$XLd*39LO(S}a zjQc87v`BeW_T4RZAkty%?efa`o{<6m#L`aY8aJt&Z=N+(UH_gW z2MY-+@rW-yM}B#t$s3LR`RLm>pYfqR^Z` zY72%Nz}U;4{yqQ&9dn zfUrkPR~RKWP1jQ(i^@(Oy>>!ygbkZobz#T4UH>{%^4E~Vy$)m!tJM^KnOake?0*!z z{iHU-4SuJ23N9^>)zemRoN6m=R=)<%xX)x6FGS>6F5?GS5TnFcXaB@V&*~{U0_P}o zW?lpAAF8(==B7317S9zExiJ5rXGf)V@S7-9uG3b~2J90ozVd#eeOD-|JmPf6?+@F~MPq3x&HZGvGQ{}2 zp-K3;FEwwD1;`WO36{EDCke{~8V%{S59imQ@iHRpFuh_;)3evZf!0{8jBXpjNTiTB+xZUxL{D=D%5Sfpbt%GF;;9vX3O zq=(Jm`P)wzgq~r0_m>55f@ZG#Zp%|>h_O`g{?#LG4*M+s6l<4lpK`NSD4fZ{U6=QD z;gKu6un!npL#&joh)A$}xJXh_4O7nyaqHDiqs~)eTp)U_X6M9yqTQ*&>}CxNByS9S zGev5LdoWtbAEO7xHY?9g<=r^_HBW6r)z>y^0HGdqe4?ez zX6{#=`Y6Gn#(3CWZ_`mu%#6cmyman#%tB*)0%4_jgj6&3adjaEJQamOEB*eF^o%ce zwTo@2Mnce8>-3PnI|uibcepm(pG=I{Zah9uQ;CTV!0zJNW~kX$X{YWNNSd$ zwD>pK^-8jjynA)3Q!=)85V-HTob_W0=ST{ZkmH$B2TyQ@_bN0PD*_|{bxP_=M<+d( z9zlA!Jf>oz#{1yfSD5@{WmKkw4-+SPTXb=^rR>T00ikgO;oLp#gHdlo2fWdOh^FW7 zR6y!p z(~#dwQ^A^jD-78z_y=2}^ukE{(ONlvH6isz7kO*68sG*kM`nt6!5ub+ zBCk+$3V%Yk#c0IPWaE^&s+?z0c4E8Xo;&dE)>Ke2KPjVs(Fz)Gn(?a_1Qhvb3#ebU5(vy{fX3U z!FV<#Y`WeAT$gPAz8P3y6BSU~&9%bV`1WAjy+umKL8caIK?jD}^g}hD3F~=KN9Ipm z4EKgao(qOQ&lxA)@a5f^cgPNHPJp-`ZAK>h3_@xZa2-yTkm$!KKfF?!P^iL+1L@G_iKBseM_`^un}sx(-#Wz!du{MC9p9{|*HM z#Ow9sWc`QRHPDKH&_S)!D)7vWl@n}Qw&Ju*yjhUWzfF(AeP%;nnkWYKn=MWm#0fju zLFwba`)(B;8S)_9%-FH!!gW7|fp_w4DgFmuu%!}1KLlsIwhoBeC=6YwbVs6ei$)K4 z!~%asnNCZi#&f8fLeyh7b@6eK4|XqQa(>DM5rtA|s45%}1E&M#@7FA6t#6>F-1+@0 zI|}ho2^{@l_-d#co`5hJBDv*0^e9^5g+;Mp;R< zn>RVio}ATIqX&`~1lk8ZLt0qdpwd!e4 zCmiMvBEpfzFpxc})-!-yvKQ`(Qa-N-!thJ2i`7-DIj^Oo}>_s}37vbNctVJ!1C#K*q zce{Q-`_Px$0)F7lvJ-8m#H3exLyXM-uyKDjEcDj>c>pY))=Xd`(ge$8EE`B zjX>8VF9x8*c&8?YdP*8~^G-Yj|5M$O`NV3kqP(6hnZfuAD)%^>20|DE1!t=N-Q>{C z~#)4X}ConF0*Bw)pVx|xI9jZR_s2W!CwWAalK6z#2OH^p5Bn1@z)sE8&1Z>OYwv4q(UjObm8zyc#!;^O zibjmj9mcVtYWKUs*b0Y#$g|djC6)&(ONT1CRN&!y9Pif+-#Ew{1Qz19jKhb#q_>BC zLKK0!ug-S2n+uM+-Gg=?HdPQ(F*69e)xBhpv|KfwRzh&z zG`M`cyioFk&z_D+#fkbAotB3+dhA%4&lo{C6BuiAqkt;opl=ZX{=>``VO&1t#!91^Rf1|rLeS=m@txm5BX(b%v zVA2KJ>|yZ-grhL#=cZSbn7%MS3V(-6ClHLnX{m6TLc94*eWG+FHg2It%q#yQK*X}{ z{p4e%*L)K`-{{v^Hofc*h{!s|X-MNZlI$fa}#J|M*n(Lyer2^I<{|vX+}kU=04MLi_e66CCWXB!tsfFGGqd zgid*%S?cz?qfj#9h`$LLg-b!b3$}*=tS?pU(m-I!?zsGLwVdtUYV`k(Wu~@ACQY1P zQhWXNIfQL_1y?f!^tbMQUBnJq9W`C6{hvBRpY&dTqPr-CaBrn+&ptX$o33MFlJ-JF zl?1~x^2_t4*X^&Blw{t$L1`pNP!dI1`RQ_%q=JQkre9=UEy2BroQ)S9aYO8T*PqJr zy7^T#GrqS=2yPDVt63-O1MTR0M%67XN`AUsm0ISy5vM#0Q#cWbv<7~9A}eGK&>ro= zFc>$XYX~RlcZf{x4Fc=}a^G!E4DU&+sW|km#KwBp0z{-L(}@zU;o`D~M>&^4fDZz2 zr&oK!{tk|wuZFng?|gWwNYke^js^n6KxnSECujLGZLV-zyWfK+A|p@lbNrKhtsDF^ zKHLw(L16h0h&G90C#w^iz8~0@)aWS#B1L15%(-8+y!7mPtlE$4!@*YJ$Bh5?>uWp5 z{i2j*1f4uH>u!4svO1iGz0I4_ZHU{9Wb#p@0{VItH;!mwGJC#EN#4G!$8s%&M`~uD z+6LA*u+r=K-F}n|1~%Sw`%)6dQHlkO=mnM0{7`s(JI~r^&=1;iIw?3b>ZYH8ws1F) zcGZea?a!)36tn*du6>Q28daVyd)9mogY>K(;wuLV03o|W5)0&sznmf8s8v+Ws}BQZ z0&EUa+64_$KlvvwLcc1Kz6$7E+Qe|JB#k}7lY?SY?v3_(8~!~dwB&Crw2>7bM{e7@ z3%zsF0+&u`5Ofm841M!qN{{nlB7q)`r7J`7~C;Sxud7t z_Tjgq4i_bCj>koqu-!%B+=`P2bA&<4`)>?v^!IOK@t?C4e0js>9ZrQM22$U@5DLDO z8d@Fjn7X(vHn`hc4#9LkdCxy$AelX}W6KJ@l!ocowYCSw&vA*Q)H3;ErY)^fM2MHc zPwIJYwUA0bmj)LL=D7xDt0yIDi>cebgi+1*1IB1T<@i;PCq})W<20=ICr^)XH4Qcp zuv;Gt6&6Ci(c?xcDW;zwO+CBmkcZgQQlKIuh)yEOVYF#y&3iPc@(1gvE^*i%^sR+xY zbr;PJ#;EeuB~WDickjy?wJaNFNlWwG~Cu?IyAzU?(0?5s)IITJ&l3J`l&@JA^c zRByR1p*xutc^~ITNnrm(xVABARY*5%i>DV*i&~vhL!;@a8EKSDQBPiH|Id^tC1=)y znWAQwyVI@2;(l71d6dApl*n3nG~O(BD#MtYm>6|UPeL;O^Ye}f|Iva51M|Fl`=A!!q+OYzLU||%cpM72+4YdUR-r|n?rga#9JEjHs1_9tm zxORuN2n(m+tksf=skGgFZN5m8MED zO$0cj%tUM$Nu;k})dp=%^3mv+JawCf6)%ix&KVBw(bq={?huwA4sYkBw9Q5P>~tkK zx>faj)TK9NG0^q53O)XjJuOy=x;&h;@rTVB8NM3&Fb0K?5#g;bT|I-c13rLS7xw-E zXr{|Wws-c39-={4YlK%tcMw|~9ph4rj8|>>p?A?09CmF_mQwD?B{wad!Zi_9ri`=J z)@^Zz6};MzkC!v(s!6ZOA?kHhO3~7?aoKE}6Z<9ceiJ0G;Sbz#$d?u0KWwIHI!?=~ zm19{we!E)H18UB1HZTx9^US@iYr|EHRlEaOm*p<{dYE(S=fk-1?Wcv$XX%DA5X@b( zCoNAS5u%14h7*#<_N@#m_V|v=1ZEzYDa6HG)5<_Yeewki&@S?i#E6-3T+b%JH@<|9 zC3YGx3hRfpA83yt2h#3FZU((4H{Z_Mu;R+{3=^L!468Z9rVtw|HFusC$cRp)d+jMQ zHOo!!?Ho|J171o#OmT_3aNE+yJ*R%$&vw&x)efBew7A;ixN=?@ef z?_aW2@ZsU2i0%lR=0`c2d4vr3P%qK8#3dC;*{&pX`BHxubRZ4lUE?{&!^-@I<_33WY=LIEDX zQ0cVv3t;o4R9Rp0j=G$r%M}~%Jo8o9Sjur{%4TkOdJ30@3#r~K6}i&|6v9)2h-!rY zVW5#B(P1-M@yJ15fELu--N2+dT*~AP;i|kNYWur?c>6&Aj*{<1AgE4(m7^IfWO8Sw>5IaKXh|3wJkK}nlXkg@wR}E z(ua`G-OztN=CFN7yEo6^12XPWwyuZ_%2`ZJ#I!puz8k10!u`dC8iIZ+b|~6|IPQ%- zR8Sr}yk6iYVOw-RXm-aB0D8ng+@#zW9HkJY1Kq@~?mQVkD%agmd1%fQuRR@b%H0E^ zebjP;YI3u!A!`rL+%I2#9u_|{abU9Z0Z#>S&4=IzzX5ysJ!yDEZCNRCQ!4Rm&V%`mk2kkvheAp`$4`^jDX2S^+lYTMKDNP@(-IZj0FWe`ka+6&lz2` zimG?R#^7w?M+m5SdiV^X@LjFmw5dl@A3jnyM{1vx12-%7w?#o3?1T2lpbhl!!u&P|T!S_&uVjaT5;$iSDh{vwi8F z+i{+FWNDKVox0%4kT6Jia!zQ6J;#OaYx2>Xdaw+R;`BK%FZjdOC((tdk{P?OpR=YK2sJydyazkvjy|}g&STbz+^k+cUua6Xc??B7NO1d1+gj4chWL( zV7WNpTPD2Zm>#01Lm<3|%`|fE3;8ejeG7U$1>3JZMP#j}@`CnkMlEo*sk@NlElDXq zP1hKl1G8&CdbMZ0yYybua3_b^o-D660GvW_fz6ma2|RSx^e30cP)|?8I&iO06Ns*3 z-EKgBDwFqEQPHk8SMv=PBr7HqSa3E<6OYq62Z|0xBxyX!#^4HtmquNLPtq<@kynjt zIEKLOLPNSR2lZ7<1V2Gm`Q7B)^(3ze- zY#xy>j`c5TSd{M&`^PKeOSRH6QKf``*;%Gm3td4>>HDm~pA7y>ZxgstKgIJty$lqm zCa;H-{dU$<+n)`1hCB+&Sz2E#rHynXEsPdKBextjp*D9)ewT2?Esz4-;a_I<+cLjGEykj_(Y5K^?E_r0BHV7(e{b4GA-ZPo?n1ISd0RsoOv|IG^gofdWG}({rkLM^ zvcYlaXJc)TkbA-*j7IHdf-Fb`y^8jExV9y_bWEzj=+1V=0z_9Y;34P0!?&Q0Q*G z?|v2W4;x6esVXa#b;ezzpM$YlP&DH-RT+Hpg=`|W{6k&?4lY3|q)ZsLObLcL2vQ%u zI!(1!7Gqx|&GaOL zSl~Sh;!9wzY4^Tiw#2*;7sUx*6R@S)rM26}yPXriQej08WX(x0K|?S{c?dV?t&Sl2 z6Ou`itFSEJGt34XD^#(BT$e?G$IG|Z_lB||gZ*}kBmWjkUPBr%8qWiO_*RL`T zopcNNE;uR{O}*6clR1{I<6w1@E;s3q4|Z&!Lo&k91x@A+DYqCNQRh{9|GVF>cM6rA@i%t+YsA`Ejl% zA$z_fmVvI;Dq5D7iqhBW!4`#pG|#GG6Onr&%>NCdlyY=e&;+i8qfdeU(yI zuUMLHxU4qC^@lAwd1Q-Xcxp9`){RlB`+dFO%D^3?!LKAGvai;X>&>KiMXTtPMgx0= zO@*5&?*h%}zT4b|HW^@BBwKg3>D_=)^oTsoY+RXkU?B+}{C(aN1 zk~gsYKl;ukQI{_d89S(WDcoRIVg3bnr7ldi)*^7Vgv@ zx8LeE&Y<{;_marA4(|eVP0&++*u3zD0&mUQ`gE(ulGhBIHcLip>KGyU&t${AdY*fa z4BeTXJbs++6`bdQ7QJ5`Xd-mbB=u{Dw=OcaJ$kYFWsOF zdFswp2IYQq!`<`3*6FbU(uB|g?IF?^-rT6z82T}TTVb{336dh9~>rK)EYB9l4MJ7fPu|MpgR{@pBPg3C@~`} z2yzHLyBqeizhncdnI2JI5Hci2?^T;$cG^7oaZAQ`NU|bS<|y|;;`ZOT;?UPNbtFJ` z#&NkcjQ|=9v1^Q|>7PvB_-@yw{*w@8|2ovqNAyB3cEn&)!|GtlFW2s9tmMBH>Y4R# zx5_j5qDRzF{o_I&SNZN|e!oPRUH9{4ACczq?7t)lTHq$>J?SUw#Hq5hj>7+JlS+8L zMm9BzVAsp4SD@q}=}I0BmS4|FA?t`5=GY6JIZTpUfzOhsy5}A>|!4j#l1X zl*$@!zvwu9)eYH6zg2Tc19`EY_5~f5>31?J*>|&Nz2|!)IcLMB^j@4-^cjAg`MYhR zGwz$^82UmKu>QD*Fwsqw>6mOme}fjIQuIcOgww0SPAXm%zck~Yh=z<7l#&* z9vn5^8u-4mPr%kG7swGe_)e_2o;QHjQxAC$Rh$p?PF|A5f6S-{nL{C7<0NB3OU#8)NxHPC!+Av$!kH zHB8*&2!cBGcQZ^(w3Qwd0u%Yq_GhAYba{w&j>&TE%!s}UMMzI!Gz1|oRs~7<`Rga& zRgapX52r7(n%O%%A(~AK)i5#6wND-tULW*fOZEAlD$cc;X4$2FSlK7o>=*(KjEEYJ z;b$0m=&3ho{uW)%GafGcD0!V4juwGqX;DzS+AlrRb)OAZzhymSITH;PuB=F=v8Jgj zu(f{w;M1XF8DSOWQ^}9aP+DV0Qa%o>O794)*cUzyHx5q)7#ve5)g6hso7y4aVWdh6 zGyEZu4qJiU?3;YKb`hq{il&T8iFdO(^kS!Pu|1KI-h>OLzDaD;vbL%%-f>O*a!L!X zwi$}>?w3{EZYbTa*D9*BuI>`x0xWavl2!J)WjNb)XgujNfAM6j&LY<6H7k+8sL{iH z^Rvs*xpVB8mG87P zn2x6j4pT3gX!F0ZzUP+?QX^}UsDLn@7f7Qq((~E*+T#+(ss9$&ABEF|wt@Ji1$%&d z&wq1fPR`Xp^)`GGpiFf*TrVhpwy@b^ilJp!9dr# zjOZ=?)BTxlQB(8$cKImT-&GZ>aR)zfj`${S!0dlDq&VW}$v#O(JxZZmL%_*+Jbx7z zQ&?NqVMgl{{$cpdSHYAR{oCYV&W6LMtLEu2S>1B~N_#3FT`DThl|GY9k5_d(A+9WZ z1brhn<}29pH*uA+V`5FTx-WuRY~7$Op|lGfNx+vmAce3`-)KawvUU89<*B(uR1oJruk zMy15Vx7@=@R-OH!E>yssRxonewhriJ=Ik|~ZIi~jmK&vM7#Kv4R@vF$CoMl8dF$mc zeroH@1l{0W@6>*`)9r$XAV7Zu6@+?~y^UI&q~x^w#HsqJa~6d(2;7(N%p~gQTCeK1ew>T@?kA&1cPfW=$*9%H2p$>76j4JBqqpp9)|5@BY#Fl!BG1#0 zN|HX+NLdmMRXpe>87D|7FY8HAY39Lj3SPdHQl+gx0*(nu%;bI+xKsD*+8WnAIR@fsHu!57S@!e#hUpH<$c{L31ndZmo`5jLWEK4NL!`eoUft~*R*P=qz(c^9 ztZkd<-r19u$v)@#(e6oXGu_|%%oDsi;7y1k(c9YR&9o$G`{2}9@tS6{eQ!VQ>7R-) zvcwzwY8dN9m+?uB+iMvZXTxCOu~eg4So>`gk1749H{I#5VcSEa9lknUvQHiztK}N zGUU>~lk=5r{ydWIUnAu8>HANLlyKWyis`D%LUwuvJzzz2V_G_Cd*lPDRM)Dke7wNj zNIHU!SQnw=`+Ma<sf^cPT<1J4XR)!h`d@7^*HbY$@Ne!H z(LAf?H{T-IR9$CjDQfy}=J>zr$bU!_Yqflosu3;s%>f{vK_nbF;;i^hippfnI~psK zE@CoW^Vj$D{NQ4%{<^i*G^Ny^kYvyYdyM>rMUm0RO1CJfZ`Yp8$0_e(bYp(Iju#%$ zCegW!(2tHD=kz=a5&zBz zh=fW(N9|0IwaNMCO4)+0tktu7bQ>G14h&v~YsfrSWTXNm4HH(E5lr6oqXh61RGzWS zF+l6ggEguFYe#mshos2$NF2jGU-n}6Y58zrebU}PD@@#1w3jaB^M5Ip$uO_ko`ap} zCSqv)Pyg5Vxch{b2%k?=EvoO8p+fol zWEG&GNn2d5c@gF$MKiP$)7_J;_*Z z!^3}+9z`f*j9G-;z8a0b56^piU=7cCnl{s3&$*e+j1+1ARJf=hA9%68 zQs1^!*?%oI*=jW$cG_;dNZ2hHkdN$I*=#{q`kUn zNnbL*=?E9NG8Eq~HrUtsP6_uNN0HrLe4$kOkU@79ETNrW#ozWyJ4AvR{`^nV8*q}{ z&`}_{>^Gr}k92^!`#A=4751Qr7k;ym2MNGt`=~CdK0a>Cwc||hRmmH)#Ex3}0n*sw zxZC_qk)9my$IEb1yHTB#A54vt;{16HKYePKYAVuGi8q^w)OZ4EbkrLvDDLT-WF^BS z9%cSvQ}5tt_>eD44SmZ-xUoi;fAAvd(UQ{02C1Ezyk1GvxkUQF3RYC!5=+)svPot4 zjEFk0Z2qyCKo>slNtQE8YbQRLn-Z#OD~&QByu;pt9%sP%Hz z?NzU6wkR-YP<2OQEv4Q*)S(7C-l9M1@1`LbwB`cPO91xzu!agDcR&N^f!|5TYB_J_ zRb&tHf>905g)lv}>CbSkVN&SdrdfNq8>D6wUh(2@ci$#-veN*^kmk8V!2hrALfEa{ z54a-IEMjDhC`w9QO%dsiGRVhk9q*PkfRopfqi;h5=a}mdvKMa(Xd?wLhJ%5%hJq9pg4{s8Bz8o7=qKKH^%_zgu!g!j$XPLTNB{~^8K4cWNWpTF=>@JVR zBj0#y%2J zvI!8T(vHn_lioWVgHnCapB{?t(y#c0$p=?zaZ0{9mRr3)5>evI4-R9C4yY%7{T2f) z+K41KL~nP8MLEmE#CgDk8#4pF%@)$GjbrxOLS^co1D3;<_tJl;x?ehC_mHTr@m?uC zA$L`op%smO_iIIKYf$Mv4<0yAe3K2T=&03;3Cc7ofp=M(YC0a#KqU|26@GYSh`p?; ztkU8vuozgKIWE(V#Qm%PR5?WW9_+wOXjKCKB&Z*^WmvTX22UI>!a+4t*zm>9BW7(@ za&j1|EyX-sW1XDW{<*O2fO$B7rP1BWdkXqxp!9oNmjD?T^2W3cz9O>T3oGBlt%mma z(ZdthNED|Qee!99S11oRzFrWUzauBRvSs5@rRwYnr91-S{!i{ixGEDzOs z`bHNdul-^B-GW^oUwtX7yq=(VKP*poC|ecHkT#x94=qR^9t_|1yY9zBMGxC1zZ95; z-aE-NOO$w-TzWhN3SO(6Y!&5dv1#rL9NU(`bX{4K=Xg+1rcSwg-zEP8Qk*FB36H%| zuDImDuQ!hnn;&35NZRJ$?MhpRvvpsN(L$>J1Z+hkY(DzZ1^T~qC&h-?0mGJp6auFA zq~PAh8xJh>2IXG753!YL%6=r*_$&KH?JbLk*8VNGa@8Vy@B0$4ZeQz%>Yj;E9LtZi$3ynPV zg{sj@Uu5Sv)O34%CPO_h4Lk7Kd0(u4p@a%FNhKWhTou|WjLT@L6anC36#XL`*vXc2^m}1M<|*$??(p> zn-Sbb*WW{r2v-06VS~vDko$;(V<}dcREQ9xt3Cx&bMRwfkq?^`96mc!HK;9Gs4wTK zUoi;_cV3R^GMGFHTiDp^cLG>shp@9$Mh86DL?`XAyTG(VSDwh`cKm*L$JT~>3?L-c z_86fq%T#5b4(vO0TTfNCLZnCao|4-SOkuO{^!H1CnQdJNk8+mfW(Hh*(w=ci_EFX& z_scOFT)s-%pTY?`6=>xmFyH+f-?%KK29`eIRC)KY&9aKfae zpj5a)DI!%*vg%;c1JI{4YK<@NPC|ORogD0SpE?XK#_aK> z=0ID1y0KDz@mtLT>w+vwa7^1@!I~Pfsx3D=H!NDOD*CmoT)6QSto(Ri?H|c>rnXc- z3sMX=NF`^-w7TAeyv^;)kkz!rOK_cem|^*eZhjsu>4!G%j9e`)xhzX;m|;NJ(bMG3 zpB5*L&eH-G`}df(he;~IG^s99z{eHcQu0pls0{`ERd1*658Jk7aV8&MdZ-R}9HL=%-Sx z7%>p93oC+Zura*dmSJ4v>sMhsc^+59vR#|)ti-3EUeR{D9in8DJqMP0wKn!r5T0#M z@V}l_tS)CKtoF$fzKCpc%2XlU!ynld!C^yLH&~P5Y{&->+4^V$V2OmVLQX;dM z@N6A>+}EU|_xeKU!(R;75K@;0sT4cp~>tJ?ug@NiYHzqwAzC>Lgf{Y@vMj}f__dX5M_P(cY6qb5fx z3f+-cWQq~D?;J%yMK3H+XTN6e;hXt#R`Z11lCE* zyLZ2$Xe2GRAptJN9t4HHYy@FPI=cFxQI9)8Z_t)83RCjvQrry!jAX7!d#uSbNnaf{D+I z^le;n3EFAoPGAsyg1g-^ruHA7W}ACjY$MU7yrPMoX2X_ht}iheE?K!~kv@|=>l#I{ zQ8FGieSh>J8fH_tMXGDE83xI7R1oiU5Jg!0$HbDkHDLh_@xk#emB>$L*en@um@SW= z-P5b32$3~Mn<{ANhNDmD%cl5`anzU$V+@iyVRy9eA0OudY04|?}s!~ zvWYL>insXPQs*BIx|YRT>8bcD^BhQJ=m>cYi_)wQ*q?CdUf4I3k4{O{0@qO)sj|>Q zCBsS$>SN5tN@jiE%(=6`A@WarQ)K50;%n`(`URH`osRpFTq>M1SJx|{e%D?YY%I#A zM}i#C0%2l_lZ#c=z6-RdiTRLh2~k#$Kh2$`EyY||Eb4K?uom*MpfxJ~(;6^b0Vja- zE^s92WF-qdVtbaOa~#-DRW|qSzQ^I%Ck9`R2u&Z)uM6QeDzV!v7};V zi5>DV*?ZM@0jJwitObso(vN6OKZyHP`p7J0?7M0+T7`M-)3_12OB{1ouy>~MDC#c! z_C6`sWOAsk*~-M%5xB{&v$10~_Si8&b+~tR-r=cxB^$)RJ(8lgBP=4yM0&X49g_p% zgaVUIut9ppZ|i*+No1jl;wiqRU)HgP8}h&uG@irRD5&O$YV?07It#ZZ+rN#|Au*6g zLSUn3&?q^WiULX*zXw6OMPf7qwjm7?Ba{%>Y~(>D-9S1Aj1WO;bm!QZgOR>_|AYIu z@9Vg)>pH*Z`8oNP^In_gq6?I12yuo<@DCcBA-2h*?Q27fw#>=00LT%;xj7g*qv%rd zq@5z}aD7N5Phmp)kD9U!iHT34xZPu@2=W~^c83EZkuwXC0og51Dri37Y&==F9v+~L z|C)FJz}lSfpU6*!@F$3S2CqRFj8&73xmf&?bG-72zoXHvWeFNu^?I*;CrAMrVJ*;m zF@`BWdN#zKk{-I=j*-;)?Pt$6ew=ghD94tOM1tQWKc&pXtl})BG(9(^v!BmflL@i{ zV(Ai9$;qD|G%K(mY=i)m?&I=269MeyDec`s{paCi_UigY52zAkq>e{g7vNpQF+wjnZt?Tm+~?$KQ5NwV5Uk1+Y#l` zw$>K&vjGDv(9zE-^agSdzFJ<)n$T`p?@iv#{_IaDX~ZNsIe$rxYD%?HAE8UK_v1ki z<@B38h8MuK!r$RJx)+`OK=k(wh)D_cQ<4f@gek5sDY`p6IOB~UTiXeE0w&mNOCt6l zC$I)dH-5%MQzTBUL3eMqD-U(z6Qhi#0l-4I6?%TkE;`O+g=`3`Bb%lk0K>`q*2LPt zQ13aFMBnU2aYybGYp+HNu!rAB|LdM&!&#vZMaijBh7YAK!eX6j!tC>7R0X6nE&&-n<}FbgzVH0=K;`MlLV}Cr*Oa)Ns#4OPzQlgz5^;){ zTE6ll*JO&}-?H2YVh=13{o_DB8WcByMk=kzk!OB%hBZp+boaBOjUdLD{jlQbxp2-Z z$e6c=pVi?WE{diG^o)J(5#LJ!%3ZIbL`Runlt!j|hG^{3t1hS6qx(bFzeyEFa?Y2w zZ+A$-@i#xt-|jVI(8WnW5Rm_{Fi)V5-%m2{e-B37GwqeM52C}{2p+<$bI2^|WC+#O z?HG6V30z~;m*a`q(G`k4oIJwk#?&R`6s`~PX$C|Xcoi;=B-Rod1jUe%B+c6+hk!DL z$$BGke?UFjZfx0gQCAaE?BWL;R6OhS-z{y77s+wQNXm%b3i()2)qM1_c%jmHC^g8q ztw@K8<(K3h9X`Ob(kHe$VmAGiesCBXe#xk^T)n3n))-=ey{CPesx9e#oHxW&V!Dbr zLjwKIq`kea&eMRUu<#OkC8=I=Er9p->Gyk&g|$`D~h zP2bia>`hosP}ROv_V{;b>i5^G{O^Af#L2e>+{4(b{+Cb9s;9jz`)~1VGIAc-Jx|wi z|I*%Cmpd+RSfb4WZ{W?`Gh*Dm_?Jb=yjGjkwj~pg{Lw9EXr*dliKH@;@g}zfld*(T z#|RnALh?szH!-EHA@=HdYq2<(6EWG>UDx8c;UfJ=e2s zR6Ty}c<}BXrKif!@zldY1oPgCRyiZOMtX`$(bFEv^&9JAp5^JhICHta{l}d~g!Eht zq|ZpDq?UM^BEBFa);9 z<*B(=8L*>)su9 z4?|5(poiu5LE&1|z}Zm7uk{-|ncHcayLzA0R;-zN4+OVFKCb*2zj~8AhkUUSDNv*U z+(!X=Lx0Dls686VJ`A`sEKTn(GQOUi^`~|UlC-r5a^f64j;?ef2;eJPgt>qJ!!6ET z*X);NXqoZ-%odu+eNs5zeM%3HI1(IK+16hM%kN6+u~wos0B*|Dc;xgkV`RF~A4hQS zm{78%ZOzw@{AH1!wy&IR-bn*3O4>~0ns6JPMKcE=!<&?2o1L<7vMgsiP<~-%$1YHN!OCH{T`t8jiumHx}p1Ms7Zb(SJ)A`hcxUd(LU zEbVqNpSGI6=dqno43qqP-4>mW7PTch>o9j_p#i9cK${#(Cn3!MCdchu(ArZ_Sb-Bs zvoYrU@o_HCOs9z7M)r-Ul?RO9e8LK+Gwr?jXLA&;< zDP;363&Fg@&S!U&UGn+9Hob;r4SWbx5RXZT=ZXC6Ci!ntG^2OZM@RnSO{rT#-e{fb zRYu~jnt%&jo3c)uL{8mw=^ZZPG97BAGDB^e@*jAhZJ{^8hyM8dx^;KSY5Td}m0gvk z;6YIa#L_Bg&m87<^QZ|TjGB?9!xW=ZotcV5TEuer z&@a~$krxwQCauwY@E)HsLVx+HN}U5bE71lHytjl6SGv&a(idaTeY3qwZt1C@sO8~$ zww9QHhu<0g80JyGib?~}4D$>x=LNJHT#!6Owoa~nh(+XZj~Qps*umaEID)hcx?SJt z!WA3*(b{}^Yb9x78iiZ`RBC(wTcT_)5ok~Rv!PO#9GF4sBzCp$EeRm{+x!F#s|dkn z$h!>n3e5XPtKz{YgKHtG_N@E3pWY9%;B;ux+sv7IX_o^~0!qfU(#x)A0?N%!(Y1F* z`&`1b=e$~>1kd7xS6&d?CpOu4;M!)mjs&0^LCqpm3ww4L7WenrcVbnB_)A>tee|=sS+C$KX~>nY=<;vKTg(CV zeZ{))b1N@I6%J*&{<2K5c$Wz*c*<@nm3~)FR|6Fsk~Z$7>gp1^#P_tcJY_szLtyry zpl^NGH}u7d^qBfen&gHT;1GAts}H)dQbZPrUdi=m8fgi%rIQmE9nH12wN8hYb?r$i z%t$Y4XClUXOtb~Koi-V9)7*V?&0{#F(BAxPUkAEB`@D-dHl@~%Z&__;3rcIZEBA@) z*9Obx*FRRz7G#Y{T&P1-w~BRzKixv@ORPv{jUV4k89Nxg618`n@PKKiAykmKv%Nkp z;zLLD-APbwzcULxQ9r#{XkOVn}6UD)5FKKN_mgbC?Gq*XBGRVEn<3g1#$E(*#D zf9M@=kh6$69I_!+3w|wvs}~dRa~rYCfs@mdn2hi=**RzofX@EKq}20b8&~y_GvB04JogNx3ApVetrK9~x8MQ_;wHT+pcpEqmPAK`2;)mM2CG z42w2n5T0$*AoC8h51GG#&y!6aEE>hPKoDSxekXoL&%v}r+Q??TEH`pNN0qE!S zy>IwDb^bLC$2ixQcglH3)Uz4h$WB*3MAn^?P<6l)-llPr-0rLY`bG|#tcc5K_9Wl6F&mC;q8Z}u%BQJ_1vA-LX`v;Desq(m2 zEmYT5DVzrq6r2CmYd)%Qewjp#xNw~3vh$-#v#WAtoY;#ze))#Gcw)WVf;(=$aSw>* zP%W9-n!EwHdo@}&b2Z%Yap5XzR(tNTN>Nwtv{q-Ia!hIlghMM`1H`|WjS=jxMMSl9 z?LBh-G;wR$TJz%0yW65SpPAKYn}M`%v$s@gd?d^8-yqv12jtI^9IA>o_ai59P25E+ z$9v$2ffT2&$rBh^6`n_>UMb;5r~*%=fPR9S3~NcOw+=Z51(YMoKr1;AT6>dMwc0_$ z;Hzg3_dK}w5^+pyHeooN^l`4q+dX`<3a~;3Pvb#0bSzi_-_K}KDFi*h+n2T()JLu? z9pbToZXcLpOiS#+VRXVy!oAuYpt5Sucafc@)t$@Niy?ib)WLf`yPcus1bP24Xa>co z)H}YfKMdpm@LarpOG#`mwDcb*-kMa78zYt>M~Uv-7nE*Xab%-#>!By!%mjK$Va^Ex zW_lmk-&fXlb%fnu>3lRirf&5GD)H&C`e={uPSUgz33A} zzFx#3u<%TcJNOwiT?ewq9;b_J?}x<`mFu+~C?ysgk6YE7m5S=~|FXPbW1!fSinWoR9Wsp{QUcB`9%W$QCYyRBPae&iyJ7)_5Vx)DQbSX8bT(hf zchFeWnfgq?0t6D3uD2+DGp4Yqy4zx~iumwPwz?vRq3wtt#4tUv{rtp4sQ0o?Y_ihZ zaSyA@OTku;+C?RYlSjq@F*XfziE%x28hMOP zZKCPrW>qYMr`M^BJv7)o06JIH;2SlQ>2c&=vs^?pR!=`xFffw(UNE;^3okJmyNCzg zdq)eay8Jw8rsmQ@L`Ai1NyiO~sUW%x5TF@`gTD$D6?5+NxOL!#sr67CH4wQ3S_#vA zZenDIJ;(aoF#!vru6(W)+`kga@D7ChD%Q#NJFFU5;HFr0cCEd_vD*Z4S5h3M@ho&T zd*g{R;8MAGH{dgsEBL3=Vd(%>g!~ml|Be%_^gfQgy2^Vj7iF1J;4P+H<=TFKsKKMP zYu)7+5jhpI=iX30zR*jN%1^|$mo=}6lCA4y1@f1p8soy2SOU)doO&xAxKxm!yydc& zX4=(fo3|a48t6=wX`0JDs1n^_mT0%a^x9i;rko1MqYYr$5jNya~7Yo#4P}*#1 zk@6YsVDzU&SMb9(5k!dDUMi??J#m(zG#xbBVp!L=-&LRAgnm1fz&;?G7I_ArC*N?QV_gzXWhm8oSzYI)}N|OPcwt} zC;=t@n@EZ{5;&2WT6gR8raT~R^#4iGo?H~!Q;~-)zsB>OCybIJ>jamLX#;EeckmU$ z`8pqmsMJmKA1jHc)*1LAoq1}^gA!6#FZF<$xV41MPl7;Hc3SGgw3jfNYkq4@uNcsx z`pJ^NECy_c2f(k((B}8OG`^Gh^U-PR-_eRq`5gMZ&Dj^C8vW7$bwkV~>6HNrGoJPX zw)~VLKOt>iI}spSdF(X=1K}pU_Sa(vH8v(*V-~6mc9BE_?yflf?BOFN%W^`B;DJf4fjU+@o_p*9rQ3K-hpetzGAdE=2ldOoJ6;Z z6K3&E!?MWuV>Ij18x**412_f|L=+A zLW!EFkdtIz$wW=G@=t=T27i_Eafl*c@OkZS0e^yJ&SeQ5f#VHyI)Yc)rSrAMQV0dAaiUbpwR#rCtPb((C%{fQ#o_p z)5h(bNSZ}QkU>HT+8cKGE?J$I#$U%fv!@RxuL~-;$~d_T3b| zG`;oHx={Jj+6?hluOpJUV`TSe%OX&<$svegso}tp6*4vvZe&5*x$66DMoBN&tXKF#Aj5_9H^@#%2Zoj zA$__g860lX^p_>|^UUPL5zp|!OtHDKw#b5p1(oY-Ozi6#SlXsCc=39Gu{y1Y*U-3w zd_I7?u4p!|&mF3hYvYEO*p(?&w@W753LZqd3_Q!P~s}UiPG&}z6(~O^ z|5l))^>lEk-~^@~kl)ZERp68reg;N003l8b?xw#7??tYx;P(PrPE73^Ylkw|zTm%T zcaV$?_s8Yc@H3x!^$9C&?W{08vo8=+fl9N>Y`>OeKe|_YY}(LilhyYs&(3nB@+={@t(_u?@}Z`JBa4$sZIK@yIo&=; z6EZsG&;eoS5Fw~s*xIBW0Sw9Nv4@Yg$z7k;-0sf4{H$TjTnRY@XrBF7m2cL`p7N_N z*d!wBHKw}%q;`eQ`lovbyLd0=Q!f`WtghR0!aTFbOz+%+hn-3Zf9khc(o^{~*}A)= zfCNp9|86G&%Z$)^Pb}aLqs(?!CShskhVm#=hF0ZLbK99W*pS(4ppZv>&OHY~^A6x@ zu0szw77MWZ+m+$pyOTG++ZPAl)?1ZNaxbQI?wy%^r&Ix{G=0x+fOq@keh^iuan*TR z5vT-|)1l&5DuTHa-m@BavTyWaK&yn(dKT|OhP7iBCQgLIf9|gHMW@U=go>;7Qtt~v zg8n5|w!gxy4q*wLX`2HYsqd)rjQ89s#|7uI9<|t@U%sj$C_6>wJyRb~4MqjoxN$>A z=U&b&MTW-|JbfrpoYiQ*-K8^Mn*_xsr;~AToepZ%tRFC%GONAs$ZUb3^`pLdXdl-_ z*R_Y>KL_D|H`dN2Zlr%OOTf?5rHzN6s^Yet6gwsMMSk__^THXCx=+$V&mlEZk#eSY zCP2g@bt-Sp+Ebt!E+;ehFUzxg`)79E($4+0|5067@2oU_m~9MiTQ=u8PcbChe>(5y zfM0vZsrr<5eCb3nkQT55X3t3ugTJjbB)#D`9H>0ZR1KMSKSDQ$z^()&!M%I&rEPy% zrUN=a%Z}f+K=fXjA@-+9=LG)PTHP0`#hG9Sh-KCe-t!~730EtCJM5SAFXGyFbKeU2 zg^DyB^BOuYQd{}XRB@zF{R97r9>e!ji4b~B`1fBwZore9i>rTb6i zpt90IRqTA1?liBIHVzET!GJ}O-{>soC% zqId6LY#tt=DMSvHm9v?gZ2bwDw=oQ*&TxoBtY@IIp5Y%)}943iZ zNuGCf*QU01%8v=m_bMnWU9NHu?1etGRVldQ{re@u%QwUt4zFJ3&x4ktTG z>-uNGB6@DlOAG)7KLk0R2Bh?@fJArr8o%NfHH zyS)Ea&YaonpXg~#Ft#0^`~B~?_&t^DbqkX&cgB|=#Si^55dhlj+P&l6LZP-AW0_{;9IeadD$S!vD}BdCu+Qj+7_Gd+;ieG6=a>@o$?S5vF$8K}3OX7;_7C)jE(Dc9$ zk5W(;xZDd%5aR|a7skk;yW1Jhs8W%R_E7p1(@+ga_Q$*N?ymm3%SEV9^_zWSin@XY zvd|T^W~UY;W3rHRXU*49;00GEy+oC~f%*`xPq4i%@zmrAnl-w=X_gPBqKJKT6^1UK zm>@cHr`U*$cN4p*xKmu#^#)b#ya|LoDeOBYpyKIbC&K#ShXwNEo&5cuOZe~Mls)3L z9ua{FfhFO3`5H0z)Cf^_4ZfsF_f5_vyZH868#a}PaTIg+1>xOs+tr&x6YAawy9f%1 z96~4pJ=%N+r=Jgq6$ai-JvQ5U*v2pr(*pY^8F+T^5%kUTFK##VigW38^tB-rTkh0q zw4VBOYyN3lALNJ{ym5IMHr(b-A+sLS&%Uf5ROEa9Kq-iKzlbapme~jS?z}i^-y-kn zmK+CM7Wp%+3TORw{0w^{>~ftOl{A}#i00Aa_Fa&+#9w){MmzsDQ6S-5&DnT_;}<_Kuiu*Q3{)+D?> zTpZn0F1QQqOOMO_Q^&j9Z?;RY=ZgbcDNAD`YUScD2IRfo)%BsTMcuD}{x zndo44^ILG6`!aC@c{WYK{c`@}Lw=cgZ3k*LX}qg_AzY1c_LEME3?u^SK%2?M-L<4f zN+)dK=JG77C`r8Q)<3=7z>5?qj}>;jz)M|bM!4H8;*1B(c5gvy>}BLox0ce`Q%215 zX~Wj=rPYI=m`cEBo&!BLiT65`!%O15OSxE4e$D{xSaXFXR=!cU%oE<6lu8d zCEHdC$_A@7fU9JOUK*6wQw?j^h4M8zfr?Eeo|j*J{Ut_+4<<-x5qW9Y)>YizAIje| zduvLQme)ygNM0I&jh6my!R^`L66?(UGrnj4x_K^a=miWlGt_yzcd{-Ix3`_W@w+o) z%pjP=zg8yQ5%`^=d6#IwrH+dyPX=NO2a3Kg8e12@Wau8kqdTj@!>(~3yeh$;it{2$ zwGXhJg8Mwh9&2JG_k>Z+!JrlNqnK5MkPa_0@W9h&kOy=|)>Ac8ziFd=U&V5Ma-uec4AwmA6sWmdx2gB8m zX|G~p5Moi*UT zVA172;d>R|ItY;l2cBGqKLjnCy#8QA_NkgM-b6mLXbGQ+Bwu(dUGMW+>nj>#BfCTP zdj3<_V6vB~>~yVND;6K8(b6^I$KqjaBdNuq0j##T9YOM2P4+GZf~z{-b8Hg`&9-n0 zz@M&|%QEL9_GU8Pj|7*v1Ry6~jsJ-*0M;u*Pu+*q!pSEpFZ~@hdJYib3)ly{ll%p~ zdF%w;&faQ(>Ojdz0YUYdACtm2s__E%HG1XUV?onMw@?z0NPQ%Q=#`7WtAk2^V+Qeb z_xyEqgD`b%OsMh!waF$@w@G_I|3dkkj^iKGXPLx>=Hu$C!&J{hSSS(tX%>{+l{NH= z!ptYue+|Han!OSB0*BmRek;k?Wo#93lP|JVRvm!z`&y1c5AwC? znLKi7`a|4|6}S{N2$(UTodC%YQz&Dl7wji1d%8}yk`*Y*=a z5no$wSiLBui$s1+ghlIyz*e=Ng#7-5E!%S8al1iRQn}V2d6<{HjhtQ#<)3x_1E@mHoU5Te@Diq`hAN4>CT4yi-MK zG_B;$I-pkr8qOEx9>^4}$%A&ZMh>~{S-P{qEub3is*cE5NN59MA>f%lB2kBGl@#f|b>kD}}$~_0UMpJE`DfAxRP;yOVxJClUtXhtDt4^%_{#46C;}3RgI^`7zfX|KTVRu z5I5F423Cv5&CaxnKlq&Wt>e7y0U0e{R>m)lNV0Ztx2Euph*Bjlw`B2%R=Zg=awG&O z!{49nQ(TYE25B9flN(3dnX^YTy_nTiJN-2^t%`U~Q33{b*&y#6M5B%ReB%BEl^hp*kp&OtCu0nxl?fit(LN>dO=v(<#!cNufgW;2gksjgd@cF% zf8;5_Zu#Hc*|bU>HuM4gY49=@YmgIk;(Q-bz;-@BJ<$I0`76L{akM_eG>yB!WZFgD z(E9^^Fh{+4=;%fBzvE)dhN*|g0;l`1mmwio|oiR zBt7oDT6@XP7TTGjrhY3JwEvQoV7DW%Qtj2@_j&>MTJLaIj$OFt`bpDrl>fTuMvcIN zn(~FdMkeBYfdmL29HccOqH8B3Vqz#{m0j-xv5gk77H!<9p0odSweid;Au&zD6O4^_ zwD-rIo$&iY<|I#@j6!iB3uew#>CVBH<~^FXe#`W{LHZZ1zbuW_v=fqpv5tTJMZ>+R zW0#ndkMorb@kkvr<#7H9UY_>Fdy&A8ti25u`L=@AIui3lT1x4556g&%yO@aJE%xb3 z<)B|{CBIrFRyk0t+s(Xf7h72wPtLK_#-1tO4 z&mx^%#Ku2#y#1^<_inF@b4F{^Rb74+b0BxHVubbLw4Mhs9E=ZAFx;zi-L)@8+M3fM zPH5B<(jUH&fr`F@F!-vommoB`|0G)d51#e;AZUr)L$pLza{c=SnCAYTNZ6Zt`RGlE zcl5;KEtM`W>qFB(Lb+B4WcIKiH?@_*5iG?Ua72LC2rVsv{urNBXFmd(uCa6TZuPb} z4J1$KVnL)wWcIR@daZ4X9s}fbxj4s~vXoKj{RNj2$Srk<(Z|GJ#tMQ6oqrkxPs9{e zagTT%N(>^K4v@jdyt1}2xZoEGrw5*ms+}SPI!=N$Fxi12E%aP$TR*Pi+dWI``|c!i zPS}|r;PK<0-TDQTNyPDGbltkbU9u-)k1Q{$7j(NG$39-3_#=zXLgjAEWzQQ4@h8Ur zxpgd4(=o61E$A6krAtgk$V-hwJY+SFdtRfe`JI$_3rJM@umm61?)<)4+bE0B-N)r_ z8VoI&Wjo5~ksgVbMZ&9nxc}W$;+zBSh?=IlibVWg9B6s{tkPH5l@@5Kw(A^+D6+(JAY7IVtwN?74`nGmB7$m z2t3BBwO;qQQfE8fhO6rb+a9aS>qa(?%!3dAdoJAm=A@Xr+wu549cll-a%uC|on5~V ze6|rPv6&eIz%Q=Ya#&#Ort0NIa2VdFsAxIa#mDdhLy@&UaxSO2kU;7Ufcp?B8Vqx0pvCCfU)pZ; z8!+w|1S%6rhx}{m93a=-pOLu`@E%$N>RBZnXrXbs{n>t9JU3={u5c`S-aVM-7tIH= zJfd;P>~N86EExKj(&Sj#{`AD5S?t@8*Bba9jn9+Q<;o;8Syl=n23Lq|0w>yme%3p1 zV%c$RP^P(tqw)z=I{w|{QSX7`&t{bg?z_8y=4$pfqIMuQe!KxTFA|#^v$zT?%B&PX zl0GT9<1W)LB85V42E{%|EA=-IeHw2iXq%NTPbV+i0m1F6IsOyqSBzGS3V(x$lU=dr zOt+m%Z!Gt~B*s+s)wjT-lBwOkC-v5Vz`}TrTGrj3DrFg-KIT|jXaVfVNLR_<%`$+l zHfZ8tS05H;pswRaP`tnBv;$b*T7%~yC_Ha!N^$ID_sfRr>)_6ixtVn_kTCV+9rbM2 ziORIgZT5VAk47b}OPw^D(oxpLh(@eCo!ns! z3Z4?u5#JR5`$EfXA}X^7`7C{W`;xVHWB=?HW-0v?JS{`$#^axukw49|R`=7qr{+>4 z72eMN>#u1*aN4J!R{#6@@ZaOdKoSarQ(!?q^6#){E7Ufh^4h-TtkJyY+sd5#Yxt zR=33`m~1Yy&&nQU>)mfw3Oa_$Iz~p#T)o2AluegE1SMp7eVUb`il{&7_`NpoHK^Gs zICvR8lTv3{1ezEB(J3);I-q2o&ZvC2Oa_qG8+(qkL#C#Nh(GHqv|k)X?y=?F=3Yn| ziVLJsKYql2#F2beYAC|~Ch%F! z;2f;#SpV0hx}k+QZbuv6LJE>YXX@r#$elN%>c5?BG&>wFEkRS%qD;{vW6%&^rM8Yq z-Ztyj-pq?{W`;!KhmD*~!IAxu*wx=Qri|F0t#QBCDV)g;sOZM+Q1R%9_%OrsNzceq z6asYY7UV7A=L~%4erea@1pxtT*|q&s;6(npM}_+>u=?Om!$FeKWZigWBRw4 z&n{(TMlc8sg_>6_RYE_X&t~IC+)Ga|EH3U14)*36L>lmQmgE(>_OiAIOvzzZh}U46 zj!NKo{D(Sw^?iNtU=O}6=Mv^HpL=rh#QZN>kp|M&YVAPR*knkD zEOvAvE03AKxvr|@;GQY-S_Nn5{Jr*-a9HC1((H8#(S`rM)FZ1pe_3he5B^^eF*&r? z&FQMu42OFsLSj)Sy^wL#4SO%pC$iyQcG=zPKn4V0Vv)1jPrAI{esO;jY+8(;8z;P4cz;1{EPRwgU%2ZQ5ik1ZO4LA1GV^#CDWKXRjZ4ajteJ?s?j0((}yh!v+I#Gstxx!;OU)NDK>RnnLV;6luSrDI1za!2f z)Dn~%++zk2RM324Q1Vn1$S^4X6!Unt@OCr1TL$@$bwy)ZPIO5yM-pKUsv?`)AQayc z^z*dQUuTpj!-i{q>lisd5Jz>iDIFMX@s8J3TXj`ZT<*Z=d-{d6= zcdu=KGiP6vPPPXx@oa@l>a2u;Zv-M8%1IZhFRIBO`cH#QI=CHfQ2t1ynlzHPlhTc5 zzp$Uf)yI60Qj!10$g~5bsd}Q%^B-TX^2hsoHsFh}5!ZK)P#n$tE2%Hm`u)jsZ6_5g zmk)fT{U7C{bK|qCh>zlhF>mRyweB<^1h|4;^qm?yUi2J;-eStXR-|M`-K2#zkA!$%LV?+ zQsBehAJ7yKe~@6v6lv<%wO0g`hz(vagFaL@kmx*_-Y`F>ouaoW_`Md<^ZelHP@4~C zM|g+Q{Yx)oA-j<^9Pi$#6qD^SfslutN4R_r&GI`&2yXNdsjtrsm5Tuj4S%4TM1-Yw zrF$Vf+Ert= zDG>uq`|9Y0AhA@dR{xos_HozPMtFt-7-sfD{#nh99mkZlF z?Y;#t(wBA*{AB7vQOzmR69ETY(QdGrTtY?+{haDHpf$2s*jvDY$E^bOoQ!L)`V^_8 zPraknYWU6M1`_ZpZvY^^c_b$bEQGe4Mjd5TSV}=}_MZSzi-zG0sI{+q3e^dU(qM#> z6IM4)ohrswv2*5(7p|uilWwuM^@}lz6-sbn<{g-RQ|49C+Vp6A!Vn;1!wAb48R4b0 z(}=w_L6rQ&CYI?mGN~`?*XP#BK9BJneBxPYy?9qFLhQdh&Hx928=^P(XHs+Nt9zJt zSG(_xR)TO@H@A9Bi^r(Ffkum{y9~z+xUaGEp1)TnhZWK=g`1W0d8BxorNVkpKE=+=bF;qJGV-{h5f0jR&T4X zHT(>@d~PlWsa(GL`{jJaVtu7*^;36yn9H1%^e4=zrmC$xuZ@jnixG|Nv7M;3(NAF8 z$?fDFNXp^OnHm-r%ueB_3@Sasyz3Tp;0x8wo9$E*C|OE7f9Reczcw?fleevae>u6W zVj1niOU3=NgyEHqm!&i6(~Tkoyf43jTsSJRdAk3{L$6lb#i;rsQ49CG*HR<(>KN_ZRoSZ1glcsqM+~*pk$ob&R=-AtR0G16$&!X=e~x(nw-gC_kE4#4W^- zqv@e-nR_AY{QM!EznY?~zblc&ua8e1J|=O9zHcd$Rb1Hl!(Ps?Mxh^9F+31K??kIqv{_wvFro^D=bfYuJ$IpjA49 zud-@sLXQ`p?|RL`0n9G3h_DZ~9W; zT|bVUq-UFw5>?vJrSC26(-I|>cPh$W6&`w>?JG9z&BfB#)8yrc`H;pv9v)fk3}KL_ zcLy$bqEM|D)gNZ4czUbE!&E!EatTRNus!|gY^876>28bpeoT4tga6h(fY@!+tR2eT zkyB>ms-*;7i)o`j8ylNr6fpBUF)O($3oD!O!zHe*QzP#oY&yar>N}TdD%-!77`_mT1&nG;5m7{oO#z`Z6GO0Af8=O z=;JWF?y}RT77ZnAr++>Ed`Y+LAh;r_G~ZkgB7IWw!J?~Aq%gZ4sWrO#6J$l+)<5zt zbG9orI?fSx{k6NODt8$Hl{iq;n&B9lT_ z$2sc7ZoO9(g*7?vbaO$O$-r&F5eg6*vU!+oKj%QQ<3Yhtut zsrm7?5g+)HEm>`3joiUMi-Ook?`tH_b33>EpyfYALeyg5Z!;*YB0{gr`;+bmLjJM< z{Ce8BT$n#x?gbCm8}8*EakRfIH+Sk(4KMv=Q7*!B4V<{1y_X#H9g{u&Sk0N-6yA4i zsCRbTv+*eU^mJB7tal+FJV`#WN|IQf4_D7k_ZiR2KKC=8ClR*s7 zZ*+U0+G8=m6CYmu=$VkAO2$@w$h_d2m7F_RId+k?v|AElcem!wzARBD6A!Mix}F6* z6S0AEw3X{rrewXP8sQ~NmyB)z{O84cg$ft73^S^Lkt>Dydbuax3x6=oglvD@K6bG! z3u%$e-LHzyLB01ii(U-<04!Y)3>EELST{#+ZFbr3YmMeyGrvS{D!e2N3VFsnMvVA> z>T)_a{Txhdq0BLgC?}#C9^4%a)74q~@0S^O+l^Hbqz^IN1)>r`VZ@e#!wJ3s5WDDw z`EHI+&1a9Q_j>Dx(ze7SSFQiDXb5yaND7|R^Y(A-CCahE8Y*-InD^jGWeIN3d0Q&9 z^AkJxQJI6^^M#ogAB=OJ-E?b?4_b9nH9sQPZ$@fFdZisbk>f<9ybSjZ!jSrz-^7r~ zm|^b;GXV4mV#mbPw~bhTa8xEpN*%{g@;`J8lQ-E$Wb`1(X=fjmur~uG$HKS`y=~Qd z*78j-w9(%668rNuHiJ6oaMpYgbF3+InP97It02xFj!?T0bZbS%Y1OsW_i6h84Hpyc zh~pO5T7>7mO&fM%Mk;!=d=1!{0@@7e?3Ond^(cvC}G5(FI5Z#qOJ!C*~wq zF;P%Lkj5uXH*tF(-|7;`BP#ahX?CvF4`f3_Y{P(VA95u7L_}X|2I8@c>k6!oMvFdg zyPlobj*fXCycCJuG=(3{tu0B7fBjMMIVPbG)xY-BiN8u)+&HKIK*nzMg1uQ0T&IMY z&G;6QqJS*)8!pgLe_{Md>IeJ~%{!^bwFu=;19ZHs)r9dIoM;Q|3=_1cEE+R2&50q9uw^gV-$RMc;R^i+VG#@4rU6RVhw4%c2zKa4 zE~g%gUT;A43xEFjU(E;>vmS3l9==Q{5+zbI(b_}0{51NB=qnvd5yzN3^|Uy^gmeA> zF?8PlY%XjVr_?w$tu3*2*eX^8rA2Ae);UG(-M&Q-TkKsUMr%~iR$Covw)T!$BULL1 zvA2jBkx1YC1Nq_kJh`8HT-W#F07>||)L6o}4va~v@5h|JRR>mc)%H6VM^jbA-WQ+n z^dT1E)veAJ)Zb+W9$pVheq;pN2whU;QjYkcp~}8r+260IUv>@Q%l+1QF#jJvQo(}V zUxxHkgN)N>O-K_9i_7SR@c1dc{}u8_D>lQ*aWR&re240GL+K?lE*t{DBOBvzA3VYu_X>~`#e ziY;4P660>l^r_xg1bB((^1?4S;bw|}tPgd5Rib3K_{_W3Gf7OTTqH~&w?M8L-E-4z zzaBE3#M;n(8C&Z!n10Dd;2+5-YxL(LPxrZ(t<=B+4QEPty&Ch7?YEB@9nHc;J)}aU>SYGOYsavZt4~sZ!-IMm z6Qx}xa(6|V12HTnD4uo+oiCbWbSe1#af0*6D{xQf;jHgP?(8ie_z|@9{0UiqfV?>VsuVvHhoom)6TQeVIJvcQ{YQXnZVv}si)** zLv%L5+o@<&=IkPyH{@#-Cza~>zkC|-LMXCDa|1=2=;vrd&1I0PWM7tsU|u_vPqz8A zRxT0+r8IW(HW?jG*bkHw$EYLlH(G*y!t>S#*NywvKJJ8cd;%vYPG}b{p`S02FMl!X zmcM`xi`M5JIw9<>M4{c-Hn$g<; zCLki_Oul^D+m9p0;JOiv7xrtyuUGx&I3@Z_lc`}U>{e9EI~VR{Z4nZdl#~eK5ES6E z;}g$n^J_2?V_kAMJCuH~d>4yNh6wNKx+zM$+E<8a75Bo@ z8YaJS9qd41yFcy6OUy6&7G#wC@PF8l-vc#J)HD&G;97l^?zx`HIwA8>;wFoK zKD~z=B{r3!)Ocvso+W@H&+FyKyXEhI{hJrw>!HdX(^U-w&K);jdeR&TR|F8zobfjU zpGT#AGwmdKbD}$IPH;aL;WD-2g?!-D`Zai1hf%#wuw!1~a(G0`?fSOYDec#J`S=}06HFZ9{#c6UUNpVlHrQK77Dkk2TM4nhz`gQ#_SpEMXJLT!1GBw5o=;J0 zyewBym)@iU7tU~AB3)Tr%b775pKeiQpU@X<5!y1hyo{X5?#X2L9{Y80TLLr8#2>zw zLM4g)5+xT5sw!Aqz$f1d-c=Ez8EFe8-DUQV|DHZlPfmq&TBODrU{jiue{<0k$Q$K8 zEdx$=axYsmpR>8&3M<|#(TS{EIoEgJsLr;8PazV|TO^XR%ih@J`PLVRIfno~vIabF znEWU(D5`HP3-}N=puEM7Fnt*P#EIFZ9bj{w-)9=7T%td_FN2kOA^K|6ow5uvV$F{( z3)vk7dmTuQG<)q0jpVG2tN>>MVU$84={f=BsF-#J!vqZJ(VWF`ptiYQWuk))Px%z0v z73Giq#aU-z*EGD1G~U>!jubhdX#qM{h<}3rBoDUJV^CD>h%QSq^1+|n#?M=!x0J=t zbJqgq=UV~}4^EiS9C|$vTI7YXc`vx-!tCehpg3$=Ke*Hb+0`Ni0Q#hvl6jVHBp>EQ znzU+o?W#sY-**uKJnyB(iq0Hwa|LzWBl!*?06PDK&Yw`Gq;vnk_BR*G0Q6Ot$`J59 z(|<0<$d0Ho{cyiy-uwDV&ck|?U{m^v~Py>bmB{ZaP2k3Z}jWLNvIzvYnntaX7oxZANyo9)f|nN9|%YL`~Y` z^wscuq}m(~g| z5@JCY56DRYdNx!MN#7Vi>1{!s9aoOR@t&pqE|-NnxOL;?6R8~i^EMq7)ema9oOnrA zbVB6u2KCPz*OpI=_m7r#Pri2oNI;8RP|aaTh`V-Xj=lwSgAj#Kyu0rX@)3(KE9kxf zZrU11*E(cdH|H&_>mIcnI>X0lt)9VGz}T>XvE`*V(|)g9CN=c6fLL@GL41p$bP0K< zBlQ9+wm+=5(O*`3XxA|;lopw3+rC7})FX^bxUtCzA?f(E2LU~dtGt(tzn#Bu1;`8K z&YDhb>lnz!mF7RVsYar3`(QcrFeaaa1P>MSS9TWVa&OTV&+SlmOFZwI`v>3SYD?zP za&Gex({p@OEdL(#B3G{ynh=moH*5P69`BOdi@! zZ3kQUVXs&~EP@v{>W|xMyvD*94{^rr^l`JKrzduHK`HYcTVVW?1=DYVQtBMXtG`Fu zqX-Kbt#Uc?JFqBE0R`=UAQcd3C;y^0T|s3S2a^N(N46QdC7s945u(Q`HdDuC64X5f zM_xKe4FrtHX4-un;NGGP-(2|Uo0EQNLbwn$R8}HK4DsbrmD0~;bh)x(#%UMxxF@7{ zNE4}Xf&Ja^#P%wA*@*7>4Ke3-uhWgznh2RQn5&2J4!s_D93F@SP1Fs``QkU~wIHQD zLQXr7B?kMU!R#Fh6J9AF>=1MofS6xvx3TU-FoSdk=Cdw>t@SCdM7xH(NdDaQSMMKt zhm4*44+O7X<-SBNxPfnn3Q*+LfmVK-rkjcezY8tJeVCU(OETV@j$(L*l9j@Grp09U z+Dk#N1V@@fbDZ=4eV}y*YRj_|R8mqd2HP|9}qzbKLi5JqaEZzBDB zyrqtFwqsA!Ir|W1-ttCL{cGc-L0KZDXz=D=h6RKc*NFlU4sLhv-5(S$&Zzoi-HU&$ z!QCM3>)h489P%!U?^$_DtDu3miIzZQSzYx&|5?T~DF=eHoylchW?t5M$yXO9#&_iI zhhxOdz0oG4#^$Vq9sPTBc9~ zQZ8Lz@(;|^Fm0hp^6E2ElpA~BBmu(?3f%Y6sn_Cv3P5u@qbSD5EMplYJ6CU4X3akiB{<|*_PFYWiViy zn(Xf-)g7K{0hbqmC(4rn59kMVn{0PUctb9bsmI1PzPbK773)^uHtv2Sa(gcM=vgU0 zqu;`f0YlekCDzx1_<=2b4=F!_I_`!=$?I?s#<%f{p}6^E(A7z%Vui6$#9t7Yoq^v_5E({9|DcI zZMwF-_%NJ?k@PY%0@AM`@`u$M@V~`qT`SA!TdHiDss>jwG}xIdAsmmP-$R%D8}5q`)N8nE4nc!-Dn_Q zbru}0if23t+^@@50*x6w<}~PC+Ao@&BQ7k*7YSY8ROcJ-2uQ9SRW``RxTjnnD)QCD zSdXLrI6j2uXuTmQh4g+dVx&4?wDTmmbUN+ppxd`39Kx zjA)cJY2d;wRPymGw}dde`xNfY!FYNkr?LYTvgjr@q+WbOs5$TG~#>4}#j7vxgAJ@qS52kOEu{yqea(y-uG40=SG3feG=zDG3-1lXd0qgvq zG5x^Yl>wTPC8po?%)^w|*p^o#0cXe~JNc3rRlQ3dyoiYX1_Fc~Ut|Mbl|q@0oRms; zSuY>D+=@iXPTO}IWO2)D3o`>Rr7;YLfR#6M-`wVCWRFaxZ%(GJ?qB-LaHf1+QGygn z{0!<@?yc^pTDZX8z2d5SzCI#yZs(vNM=gmoO;O*~yHP${`cw;I ziU45FqSAH+!XQkOd9JQCVM21@sO+A6EhoPcCLXI<_3Vr z*on3Z3CbG1Na=8(&tiJfWboIs5b=FgIYaAzg)IEscNGXKpUtMg%GrY6a)K%2U@+RyAm5VpS z%#Z_o8n{Y&=QNV||5=9wSeZ_aGfA2bY1=ZcqYBBgs7S4AFSdU(MaeN~g>N;;;L_lrzO zEd_DwjD+n#Sq83U&uwqC1pJ!$Aao@|m?ppJyp|k<5d(|kK&_hD1{Zl#KXE@<<_9Jk zn3^%E(@Ei_DosKkRz4PXEdMx;ss%meiSw&X!m^!hsQ2XJQ8`w=m2(GIgbL?d9}3^r zfax8`Ep#o_(6}~?+?K*0+fW$`6{CMS7n1};w07cz*V7qPX}_M>UlE(0p2B_Y;>DaY zP_HMuibes2%PGMN2#+4h&U_@Ais6 z@1&)OPf%*rev^(t!~-4^ic%}Pyx!{MuNikt2f4w&bLr$cCB(+)BEP=PTX(o+`v5)K zeW*nUuXZxs29Jp823_=;@4W{C{xV3lRbrFQ4@h#dapwm!D8Cl(N62mx=5;1- z?B!VU-h~f<$^V3ER-gZ|;mwOn99#8K?lC>oEY!@2YxmU)US$w(|FRyDy-tl?=Q)CT zpzOngJ70qzfjhFqALN9|@*YOsc{a9NlEvI+%!g?iS-yR-W7iJk%F<~qy#-fTvYTm* zo)9$l9@^#fq=~4Jr^x=X76ps;>IknXs{$)c5a{)(8h7O|Gc_%Md(cR3RZwN!vJTYv0r*m zU&zznc}~4K8?efI&bODe9yuVFp4M;H`~}m6-*@yIq{g8g>rR}|b<@rJR zWRheI37H3K5Kj7fd~CU+u(9W3$)JNHxxJ<>pX@f>M8&kbw>%ShK^w{!<0H5*Huq3c z5MAC7+kTwLo88m1OZxZV)Upt{eovsBxpg~rh(Y^tO3)}!Te2&AH4iuW?h z?W49=hzd8(;{N(@7e>I2i$hR!;YymGp%uFo{Bnd zasaUPKCv4*tRPLf(5g=O+=yy6=!)gpclH{kJyAJj)%)~kV$0! z=fejlaNQG{k{1G1ApDoX|DA?e>zw!Cej2!eQ~qr=w>M|3LTt&$Jr^Zq;lrr~H$T?t zPyVwi?X&MAYAOR3xu&Q444GVC+@k)N*TY^{OMS6^=RCTAjv%=qR@7h|d|w{~;!R#U zAj_}J0?K#-^pcT{v?-qCE)|l(>{GDQqcseDQ=!IuyoZ|#!(;sR_EOsSe%4>t?Ax2V z4PSXY4C{z@m17m zB4~Ei4m(-#QdAym_*$9wnY6P*(%sK?2YIb@0fID0hOgmPX4qMH9tQqiXqtRhTSkrr z36#ht7uUMpKFF>WUd``08-0qrQ&UaC@aNcDQtU2@ccw-bGz5~LcreE9pXB=Qd=BPz zH()A#ElUsbNX1SB{8>eC{^OYSGO1&$wy`Lgx^U??WclecNcM({z<3e0|G7TCn==%J z{{y=O*2`BYbLg}&fw1=L<5J#@V1o%EOI@|`ia!pv4ZkhEZpLouCl@_yVB|QK-ghx$ zuKpV_mwQv?2J!}>s&NN%q8BkY2&fV;Xc?O#-+$Ho}3Ul!zS=`A8B0Nc2 z>mB4XMgMp{-pYN|>+59XQrWO8uq6-bD2NWOPwT%#?Xz7LWR(&~4;Pu;em?`j% zZS_Cm{+@DLa|7;ZBQ6WzS4u8aTAni(WW!{%wxS1Ir21TGXsJ=-`QZI4N1o3Os@oy< ztogiJW1Rdx-+{i7!G`hq!%mQR_^=G5-s0mZ;!1nKpw(dbA#enJ93r66$S{D z4;NCa%HWExuV5%5k=?801`&p6^N-zBw1iRw}L z{o5$)iH-h_7SlxPmsJs_;G1)nyV1c0Y6mrmiLJG-LHD#9e5d9LJQ8`&#tht_UwfjQ zb6-oX!Sq8w;an>iZ|z=nAa-DSh#5xv88nSrEjXN9;aHr>K2#X~%Ww->aXv{Ein2Zd zk`l|~Xm+M=@B;>M3r_TdWC*^B#4`nEy4EM+w|lM%`DeQ7IcL*q;Ia4H-%A@UBD!JT zA-ilX_+v%4e@n~O@gI`EMBx)y1b;EH=8Wt@ZHo`FcePBdN6^D@??#JJoGI?S14Q>qCuT+LG4jZHn$G`qE)A4RKL@Y96c>qT?Siq}#9K zhr3tdt)(ulwc?P!DCW9`Pa^3HUH++a!{?Wc#}7enBS=FqSX{**FXThDihhLju^PcO zT=HpkK<3Ac#h9Ye;9rsR%HC+V(7Ku?9beo={bOw?`V#>e%siCf+X}vY@vHN01=F1R zk%e<<_kGshb)f>`*~drQ;m>E{WHAG5sf{?>XR)PW5Xi^SO(HNs8r4J{L`xY9Iz#yr z8&9p9D{`_2nw-O8(=7ugmxs~(u+|>hd%IzE@%&UZE6266aV*qm7(YX%4`YiDb9$h)rQO}W~T|(co+KWTWhJ%6USfxjxG$E z^!>EE63$dVyuNcYxk^p@V$m)#x}dG&OKV9m(>~G(okAAj@k$Y=Q1m-Fz{V?;-cr_@kYoFvv-5 zv;LWp#$ir>p&jD54KXa;4rI6f85o{Z;$K3j#~UNK*cAq=5nc(#$dd+Vjopl~Rg{D) z8xZR4%sy07;Cd_I_Seu%M1y9D7vI?euDb}{g7OCj{O`qc*#Dq#T$29P*^AT_S|C6A+h^}h@k$D z^M_2Si(A!;uFQOA;j@O&`9f1vEItO`pN411)#^_|u>X-xE46N;txh%?_5zgeuMBb` zT>O;YP5Ds0j-ns2&*_z@ya0Oh`|c832f3iU^GHsbTwGX3=)wIlyO2lG+nHvqCM@FeOccLpzuGsS zdFNom^*k%EA-cg9Hu>6_6;P%yl)OW*6z@1u@?#qlmqM-`v2Ca}qKuJEKY9Yt4d0p= z8Hn3Xd7ni>Zv@%}QIqTK$mC{IYB9b^@hEbjH}q`mTlT?jr0nc@8~iwIZC5l*TVZb1b8Acu{SMO6&_Bd&kjESIy)-(CYIWY0pku zBRZ1RHsW)q2&?z)8l%7Ui3ZHD6nYrPqBuO6^58b<7UEtz^W_B+xgQq$u0rG{vu{pN zzz`w#bXKTP7WqQmLFa$ZeBx3x+8V$cJsqzj2TaBy7(d-Q64#s=g!UZ#3xJOmRKl0*@SGF>?*^zF z@5u3KZQ;&H(Hx<--{HtB@B*e1DrtM?ZKU1zwY;$WnG{d6V*zq(v3TdVsmfG9CuR!q~$%ae@wt@_5` zORc#HJSnT9#SgGP`e*t0DW4y=Ao$dL;A80Ru7#}0XD^!S9YhjhT`cfR(D+Hjj}c6nIlc(X$x}%;i)2Rn79a~ZOGk~GbN@1=oMFk(Bu@qK z<>=3xd`RQ4K?c2?G3l|rMkupQX5@mubof#=>e%*B8BBNmdsk>yaNbe*X4Vt37@DUS zSfsg;*C|g7Sp*F+C$lMaOF27Jl^-=Q>l)mzv~4zUuSynadY;}lX5qX?ayPKyXcU}R zO(c4?lI-+HxA(s0n) zCP}VsUg5OgpHO~{e6M=u3J-hs)*66`roJ*R$!V&1pQ9*BjS|m>Z>h5; z8o3%L&$+2aw_+Vjmm8Te-(J6sAU)Ij5gP&+SZD2Q9;SNrJ1dMUd^R5Z2QGn)k8`TJ zyBQ7gr1gLJ1DKxo}1G-K|IXsgS*uQF=KuTbKZ_EQn~ z;18kqckK&{<4VAh4|Mewc!{k^-x*s;(p?GL&>Od3q~FBH-vJ+Zr;`(B-S>K@tNhB$ zRrlh8x%9-i(aYk#N`L0fOm^8qmah4vSahZsEFyp^bmr6Lde8XJe;M5DAJfH7Dbco9 z0-L4(>)`$$n*4`*Ms9gPsIuuQfTE3S%@}sgbi0|>KP`mqt~g@-VKf5!I1K_XY?qskhY?dN~WlS!f0^O?IXe{D|>NiaIM}+a6hfwQtqHy z;-0?T`Ow@436*KDbuBt6a&Kdyl~eX{{C=^U_KVbybHH*sgg5@AsGganb*n*IUld1b zbQIuJ)2O1WhRYLAT$#QJeRE?0Jp9WL7hF2omGc{IT}4NiQKogkEr8zae`WA%uRX6j zs)5%27?yZ?mBuQi8Z70ddsv?#+-Mo^_8Q!uHg16)rM4MtrGCqO+y(KYH2+t#bKJc< zL$?k85q`d|;0_2L4j%vBvl3i)PW|y5Nv_@2K%GE#zAPxEHHd^PRd(e2%qV(A0X}8< zlNjLlSB1nB@{amc!o|M33(LU8{?Yr#j)-kiPvu^xfUgT#4V*L2Jv9%FUJPe zw(x?J_F}EHe`zs=McJz~gU()ymbBEVJqWEu_4<6#mx6iV>LOPdQb2M#t^xcu)~@jy zqfnv(A%J@Bk?Slb94%(iV=)+n$ztq zi3~-tzCT>JYuu-mF4vZ2O@YaCl%FZ^@Yg@GSoI1>lJ&B?|Cb@b8#cS|#SU9GlYYua ze2VO14Sin7l{RUgsg^oI z4D-s)ksRsWp?#wXvy6b0gi7^}wKuq7Tw6Vi zo5Bf+-}^J&YR@5Bl%JRL`|10IY17hy7P{x2om~$LC$Q-~C6)eRS|z2qC8`@Rh9bK* z9B+?d#$k$67XcFpWJPH0E1J)@a>Z-SrW46{nym>48uq{FDECo>m?nz((AFah5s@x2 zPf6|n#nXp2P0o=xw~TJ^aZ2AV+VK$)TlwR1w9=Eu-0jp#7r=O`W)Ck!Kf%$8Bo!1B zLYma={_F2EkvxL+zG_u%v<*~*K8hS!TRiuO_ZIjzs^yzPFph57j7V?IxaqMjQ_r^7 zvm3hCM3l7Xa|WIHq}|>73c~5}OZ+$sF{||-n(&TBM=zD$R13Q@Ts^`VR5Ali5VVm= zUF?CmNOogb-q0^V+JO5-{u^mc$n&Mh_naCD?b&^!2!X7>3@lE+1{oZ4x3ur~A6?@N z1^$u};#rxGobN7`OCnfW3@!Z{LERb6qC79L`uu+t@vaDZywIKFHO?6zhJXdL=6o1wfN}$=` zXHJf>Gt$bq;oZA|F~9nlvqpS~cQS?Y^Q`dRK9)c>ug_;cVQ5!iG-rmFT&UBS^K!Jc zwM{FG*Oxx{3&$~@|7F0MWe5NPK8GQl@ZO5D1@a7VJ@)kQd)&wPH|d;B7qAJdSd5-0 zMg|V$HbbT-G|LQo z=g^^us2nyGmFbB~27}b6g5rOIhlwRxhy{mf0^#hy-D-TUYTGT@oXY%j#~svZsstl( zSXy+dAgt zjNgFLe<-r@{& z4_3&>@*${hRvtZ zHTa?&!o}9Rb^8;b04l!Kn1nmn__*=H@NP!{RQQu@%UsWWiGnXmQSui)-X?gtl zXbmmD>1-G$t_)!3yY_rTf9CZ>AK`Q}veiCW#bEnSap&B+wj;?4S}3r9X^ouqq^z#8 zr1@j~^Yrr_&u1A<>B zgu!@ERemLH{KJ_4iM5@urWYvel^l&s4F%Uxy95;*X){7$*L|h9>9X=V@o7Ey5gb!D?;It25|=1NEu)@~+)_54-Z#m$bZ>*F&oij&z#5k~$; zPbbcT6A09+XAO6D%h9WWpJaNh@6PM_Asn?$kh^JywJ&IYp0mceuH=2c|MM7Orr9q^ z2<#b4>f_X<_u#%mZ_%L#&e%SdfInd%gSpc^PMCs2wU#}`r*AfVkbJZ~G2LvAzMs+W z)@|N0$nCLKqtP>+OUYD48gRRQa;L3~UGoBW8%#VU9VnpIia+GOd`&bHrS+oHwGz_| z*u1?`c<%!%c%fWT`+REn%6TTDb!R2euyRjV)gGbpnheo(Cz6KAVm3fC`g&C&U? zHo%6FKOz93F_>+J2VN=u@Im)Ss0d-V{5uzQg^ToqY@?FKEz2Wm$^8q9S*@vOe;LFU zm0~o9Q{|oEOhceZ@nXHqw(3v%F$IT;$tdcs_(93r(6FJ91X6VsU4Wgj?b1yDC{*f& zNQFQrtZij3e5(!WGB;31TEOqQiZ_jia*WfFB12^5cAbbpUC(M*()dL0z3?+(RL*dE zl8lfT#&t8foGMuKm!VGic0g}EOH#0!=zv7HBtrwIdC$v58{*Vx?|up|I6z;6Qaexb ztA`+hyQ;#P-PZZu^2b0+%LQJ& zginJd&^bA|+Y8ZMbr-1(jD||_TQhG(_J$k7n(ttlD(nJp&c%<>Qkw_P8NGNT>CfSt z5$W z)b-QDqj_2wTW|8-_ZH8y=mK?py0d0M=~I7IN~#$?cuS3Ay=yD%S*M%tp;)dq0>U!a z;V0bIGJu5l?5x9Vz3bDE+wf$Qmg5j~P^N&(LRbycOlxR$zl|!0=|%72?8T_taT@pA zv`pjjJ-2uicT_YeMVI`V7#q6K8qKeGK7M+~>U4(ZlXvXOu-mx(&?7uSq10$4Y9q~^ zhMylwO5>wqI+`9HWg0Tnae12-EhFAo1Q+yG{YfQ7_&w14=hVkd+Jt$#}@ghQJ(O(4|1faftHEzUwV@u?-f1~)bt z@VvfI+6{JUAd7_I0ScPiUFr77A@;_uncNd;w{XMfd-Rd6*?g-NO1epV6w@t{lILVS zl_;z?Ab?3UyT@41)DU+NJo{%%dNEaIP%lV3@0~EtfTeKGklt}V$lsPhddE)vLI!THS0wUGBO`wa zh3hD{;uRFk7&5b+&9BRzoPuC)X8YKZc)%(pd*s{GQm+7T8w2B zw-Cng&1V4DqLT_YE2|bw(3bY7dDqFl(hqS0r0r1eLKBgg;e|gc%j50$-191b#wg7T9OvqEC zekqjl;#v0FyK6~=F$FG>`~n%ouJ}Hc&CixT7bq;bMi_ngpR`g_Mm5k{r-5IMM>sPDRi3Z zs;3>tD`X+Rsj$aLakiHj(cnGR?=M4C`Ab!)AwB&*&g>%@x9R$LXIK$tWC*8G%BtUz zRS@=uyhFM^9eKAiI<156LV?EW;N$KBtd-jAn~qXTSK(4qOG#9FI$DjCyms#P#f2l}Yt~tL_@_$XCle#O(c3 ziMX>#Z=FnZLwXj1Pv_oHqSCs;paIp~O?9FzRYu!F4wa1CP7`3d&AUh&9Q>eF=0fa5 z!qYuS=ZB=r?rwK;PC6UVim+1bZnOWb5FBI)+$iFRKFolCim zGk*KQDY8K)?7Kfi^*5wgy-G_*kTrz|(qPoQENa1~&W7rZ>ox{D0X_&WWHSucn6vB@ zhZ>5+j}FB}4!n;@7j7Ng?3dpePP)_YX-JY<$gM8Z(oN9=NdCDJrYy}dj_;f%D;CzU z>V@jP$VV>EH#o};SCqqbuIuUrZZm`|0h1%*=xty;v9%yhUC4AZiGjRZtGUq_QSf#^ z8OreDw5Po4?RK36q~t@%){1kzpc(-9p`8lW*`Aq|&C5HtAJGV*ReKYk?(j(g&J zQ@k;aBZG3Mi)P=BFsXqpaC$X~u;v*Npz|%9TQhs)j()N&{zlKOc6SBUMld~qF)JX9-?%qK5Qw%;SJpZy@h-$D4Oc!IOyVyCWX+il z>t9iPF1!0R6nPS)1G=lw@A2E(#C`E%mWxMKI7{ZBWJ%Zi>|ne_iFh#M_CV+YyVU;4 zzLSuX3ojWcxx}Co+q#xrt8o)3HuJb6?KRKNS!O0Pm1n?#n?ft+Tj4uczoJHKVK#JV zV-~0NR#Wt}x29xA)N;={fb*5zgOu$*;=kkK;ecTcClD19YO98byr7xASJ-u`KIG?F z992B3FB#rAz0JV%hvu6e8b*D}xKC@d=_JF4d-4>D(;x9+jYiiyatw(kyWa#7knbp9 zua#SF`c(f~rJ$iDCVrQ#t**(=IP4 zkaa~i5Al4wZ*rilJiVbriS~&#OkHnzarc?lw&94mBQO9`F#5nQ@MQ3g$ky)pVYs43 zrAeKpy96pdQ(iQ9il0M-tvFS7TM!6&Uv*aWU;!{l3Wcbet3m4Jx_tLJzOwpyBn2ja z71HxYwEyM+MK2Em|5f7`F?N`!sXA{mvqwB=ozOtNhC%n*;=PyLSW@!-p+{*8OR&H^#f*}h&8xOUkiLnN*vj7NalDn_ zv={lUNXQ_udUf-VB-Wrks22#kR?39XDw#doOQ3DUKF1A8)R9po2zg;@kj}zW9)g7v zNGuRx+ULFb^jxWHIQvgX@E{*+dIYFA&){{@D_&RH_}#ZrCl?k`l>hDDJ9>z6`j7tHj`;Ad zJDB-GF#G}w1U#BcdXaO>eK-CW^{AjMhH)3 zoyreB;g=nVBi!>}TCe7>z40!(t-P3x2^z`t58VT!vn&a;DOFTs$tcXJ+FFxmWBAs+88 zacCZA2+oP;PAyYU&Cq7FRl6KiETh)p$PueAKkOok^;3N;tjA=)KjP`}o{87ZC-8u{ zTHGp>+`+x{%uxEzCPvFb!6YiBEM!PU&cZLP&`;W2@8H9bcX`)Zed>Z>RSLlQ!tg|t z_|iZ%va98UX`6jpU~y1$bctZ56FlSOEvaaum<8$!%a$R)CDZCiMkTJ47_Wbo<2?pP z<0`hYBkFd|BO^VQcUMLox5qa|Qg>!f)gcrW!ioary6{?U+g|4pE&Wi%Ca z$mypa-BVOpsas;ZGhYl$@X#W5P3!DY8sM}_#uYn{D5d}k5_w*d!H0`iB0jS1qKzy?yqKd!OA6`t`w7; zm%|U(#A!}Lmo_8q<+&H`gAC!mEAoJ79j>*wL!nUv_S=Sc)_MHW)}PS!*+$;%rCk_I zu9U3a1o|htF6%nQgt=)UqhK<}^`_9pWPA525CB?WOa9AHv(oXXaB@X{hEpP4A~u)p zey5ar7CEL!h7fXVzp1qq$m{-IPoy}MN;d(M=~Ck5ZnPPI!ybE3^Aygv-Oj901ElGg*;WZvFtIp&iU$5CoS z0b#x{IEg}ea=~uXwcrh1k7x`m2`u5OBV5TQbyBf%7d7u+22p8T)3zuPNE70U(x$r<4 zlh7TSyIlc~C)bD=oPM#e56VqnL@S3L>2^TXJUbj^MMIBKbGgrRWY|;SEb6+xT}7EQ ztVb8PW7A4GN@*||hI+M|<}vqc-OE*T zRm_iO5<`<_10WbjHY!qi?OXfPQp560T_O(D3e^A-bt6e#QdlGGV?l1E`c#34CqxtX zBV~^zQu!e%Vj)JxP8^&nO)Y{>$L$ zzaJfpH$d`-56t1*@Rb6`cy)iQSNXrhBDXs7yf2U5^}h@gk-Ogmj$r3mjk*qQ`cdy_ zMcoG;eHNqYBGn;XweW*F6hTJ|r>HmAE6Z88Y+fRy5t83@5Y{CDVd(PDd7yk@f+hry zt-eblW|1QI=9IDtQxwR`Iiwculz(XLsUo?S18v9Tim8^)xF8#KBFTvq_<}hdtiR2r zNqiM{)G*O=xk7-=CCLr3BpIYbSaML+3u#qLG)0Qn-s&%1pXWggXr)cm4Z(fi5!LU9 zZslx8#~f$-RfIaPYABaq1{(vPS}Ay~^JiHcYm+bT(=iX1%C>xL@i& zH$QNFCGxgl*WlXf%hA(wdW@=exc9f-QgxHVBdBF5yXajep82xtwhjM!2+aQ1kv8sd zzz6$+0sTH)T?$9%mXq8+hz_B0?xG&dYMrZZO;!gJgV%#umHBcj>7?z@B)J`z{Jo>K z5RO^unVCrP@~*L8br#3^3u0qf>-g$ODteJ#?mOEjPrpBm>>@>;MO1gp%FF=#Yp_+E z^CMAar)R6ks0~&R3M#zA9N!eJ&?AV~qgwRKMQ*IVc>x}6YMT*TrGJ=pAa8QVD7jVe z@i`HAi-hmSmfq-o?>^?}Ik%oRX|tnwH2o*|*G}#Ek80D;oUOQvgA;?3wEXh{um$wd zr%u>$9{?t+L9VCJ^x(EVsdMMM?95ApYT@+SAyl$JRhK#%Jkx+#)eAoldtl9tL!E@K z@D}bJjLeW4*d03}M@uRvfeuJ*1XgJBn0sKnqbEIOsf8)IQQJLOBdWAs^)JJ<%Oy?1 z5bmdkp*NnYEZ1*+L>LO2gN%wVF#{pR4a&b+66G2Ts8OhH$vhN}qZAEaJ5f=T+ z;PYB2P3T$Zu65ShID}ndr(UpQh+!x4?i-$xJkH_*@XASu=J3*qz|AjW0fb~=<6EPC zw7APv+FOe^YMMplk~MW3aKw3rmAhti#~fj3g%Z;WR`p|jqyC~@xFy6b31OVZP@W8d zsH*&*qOX5sa{vEVDmiYJoRdUGlG7(loJeM?R4SoU=dIk6yPV8Knb~HE+#EM^(;>Op z=~kVT`we3&ccWpaC}wQfY`NQPYc_V%ci%r?`(f8!*X#Lw+^)AXq36@-+g^#@_Z(AC zwot-CSADRpAx^jFM{>A$(}W%0?K{xF)mppgL{JgM&X~!J%;;t4wShBxZKqSd$a^QI zpOJxzO5|#;o7KW-(4DY9XH&-Awb#r^NT*(dj#AC2?s(vdb%6g)$X=!P_D#>V^s?Zd z$&0e%GHZcP9lgg?Fa&61sU1}X?NkK{G((2(`9tCJVU0F80Z-SoS4@=N6j14OU7}?Fmgnhg4b-Sm_ z<#mwLe~KnByUdnhGYzS*Y4r3?sG>z3xifIC`v&%=F^*{2dER%KCwL5>j=#Fuh@dA> z^cy3$^BnLl9XavGB;}eaQaDT8Up;#ghINFkZmWNkSy{ z6=i5&Qp0yzR9w%uq6hZOn|>GVTb_8mIQyY|?ZV6UI(d};fFVLC1jRjje;$4ecMM%p zzF*UbB7;}62TPD{P4CW+Cx}4f5hqXE%*k%wbM6WF+U33vGMe?1e(3G4LB!k>^iJ9M zF?Lk?qfD-NhVK!I13$WMUNx)(f1%M>-R6Vo6Z@GB*?%Z6*x(JHoQw!PnLB=h4fS{+ z{G6qW&Pe{Q>I7bvS zYdOx61XKzu7{jVXhvNU?DrE`v5*@4O*SoVPNfnq2`H<_8!^pBU%$90!P?EQ4l>45OCvYfJ*TQ7aZg{8sJI* zh5XQRv&3C6aKMdC3(sBOnI0>i%B*p-9JniDm?YW$B<}=fKG%9~_3-_?pU%N8^PkLy zvSUh0B_5r(ISN9TI}h`xuY=Jtd%o9j(MH|(5AmhlhZClB-n0yN2$+vWjj~*jwjLe; znU(NASQu(uac`9He@HWBpI7bMp+(1#pNcN16M=dsuzP@}K$$K4dT25fb|RWKXhwfP zXcjbI?QuFkBzpSuuV~+$>0q4z)bW5qq4ibW#0MMke&@{m;*bCHR>xdkekc9hQ#URn zQm4%I5z@ero-myi2FM}qgeJlHQLAuxf`d~O?GpQfq$Sf5!awvUSgFGyOfP9U6NbSQt8BSztC^# z%Km8D#75a;=NC)#hby)%Ez}@iIwXp>A`*y4{f-p8^=9d8fGJxZ(s};au)Yp744zZ_ zA~H#79z$HiJ%Iqb+C3YTWz4Ok1YDTfhTW+CM{yECu3XV5+WKbYYw^I5m$2+4@aD=s z4_}#zjaezkJ((67PNZl9KFk>$l!IA(NJMy0(SJ}vufV`%_a*yU-u~i(c%1uwwCO0D zh#zuFn2SHlHLRqJ?>BO9=pc%nOo7~&xR6N)$o?%W<*o&GM2?g9ddZwBs_3LCuirP( z&VX~LwKEC0H!CcR_tQK^(ezIQr6y&^hZyd+Uu?(wIjgn9zjoJ#?z;Wc-2tvEIvkl6 z*m)<3$|mz){pVz!{yXtvo$t->D~qzGPYd@12KU)XfW?!&nU3QAC|WOM!U*6|5&2*} zBcXSCqht`79Q{ApO|(fB_=PW6UUL2710pcxNCjffcnv-KUqWf9c^Bl+KOUp!K+knv z<;8<3I^HEUHzMszdIj1!s(9)AQa=G{8xJ_L1wZF{;@-Z5{|d{5$+O*U| z|4R!PkjFKE3*8ez?ifj_A27HbL4FG{nmPFG!R&skO>I>a2d4`-ZT4%`v=b^V1z@TZ zW*SwrlXK(K;J>MU&n9M{teFMB?=uMBtC9BkC$N5Ql^(hh7Tn4_+UvHv{URKub2VX^ z{$gloyS($lnr9t#V5`r6sK1L1%6MObY)vDuMo;z`9W95sT5B(K*lt!YGyAw3$U_9& zicW>4VF%GVhECHqqg%kXiQl8w{a(pe`^>^6>V=8duuA#a< zbKhwYW@f=Wo1NKIY5GI!0gEKSrgZtqQ?FyOAU}(S1$wiRr4kXvZHlFV^dN=Z2?T1!?weu*lBD)!tv0*85pOr-&JPh(e!70oslFYTc%x`FT3_mhN zeS`chv`P*0X06V2@yXK-0X8EvVA4wH#!3hMQolFhBa+0><1s)68N6RbhV(@8Nb3(R zKjT_=wlVBOe)(Oki+@k893DlZHk`m!u*Gr{(lzASUaz( z9$C`VUPFfP96TWH$)O#AfmQ0}y|*`xt1tt1iRcuJ+wf*#PQ#?Ci}|N};zo(GHo?_) zy$tsBQ0l`2WDMpM{X5n2SE=m4t()f3pZw;vgR%OjEb3YmG$X|(=r?$>q>N^?XB^}- zhO1qu!$DqTd+_b$X@`bw>mKC{SA;WZ2nR27OtIBUKA9#?iV;@6>)Ned10EW4KUk?6 zM9s<)mirk5R!=Z8NN*gB_aCULwLINHUIE4=U5m9fU?$Ytu8R*pnA`WT(byC-9r>78 z{Sf!2@Q zST3$e5+t39YUCuo_{@dyWS`eel1aKeASJP&UuxkIU1w1Mny6i^RqQWy!%d5L7k)Ll?~i1t zso^86c=nNvpws@&irDN^*^>%<=tqSr9l*CNPyM@!vVEbf9=|k3kC*67iw2Nr3{%NO zq?y-L75w-@yM!9C(LBUD6R6&4aV0`$OLzKt?&rNvewP`V%uMoZ2QHaM&~fajQ`n^h@*~jGulP_D?_8@o z%0J;`HRb|ZcDpkt{U0V-d1@I=HNL-PS)TE30D1nak}FVGs>tU#E|8u2$Cd=E&B`hB{Mj9nKlYS{D33u=ILpG++rIBK9+ z?Y92F-j%LeB&et?V2qHNnnskxp?PdIj;T3NOW5B(C#3Y}Dp{JyZJCmw^Q9I-DT;1@ z7Qb|*??~%bGLN#iQKkFPgI!(g6NeUSFVzU*Wwx3k&|ncrfPi8Yl(nFY*vxfoMgH1q z0a|^5VJ;2-h`n2pxIy&lUoBWrG7bv4D%<7xbV7Zy>{q|8R@xujuq2msYMx0{H{nZ1 z984sVbi_hmZ*O^bcP@_P8ek_6zJQy(0P!Nj zljrw0?*cfi7?8|%ds9AooPc-GJXUjE(&8OMrDZLBm;JCrw$eD&GH5c@fV7~@I%B#k zt+dRf^3T}(qx%tW`vpmsPyOy>JNroozhht0iv6+###9H{fDaLMJGtkhy#+Cz@1Q&B z5tED7#M|BwK00^%dnj_I#-jH9`@en>X=z+>fErXnRc*fRiSdZIM_uly38EN0x@lC9+IYoCH`Quw7c&T`^%(Uq(|WhlYI~(2_*%&2%Y6MhaEsYN3fZOwKd(k6_b2&x5+waZvCy4&^@rBF4pzNBgEe`bq`8H^lS#3ONh{F% z;&eU#l<(TohxUQN^; zN7$W{;?unH{p~yK)dBcZakS|9a9Zj`J?QHl;$8BDG~#r(+X*{F0^)!9;2&B^bclUK z9|?$!mmXfUb%&@|`IYLVUX;!o?cztv0A|G!G7b=`;s4#|RDLy=*aJSj5dCSw{tZLV zcrMD0q-*zEkewSvD6+tLqh zHRrNClaAH_vnrG252r=bU6GqI?OQ3j|4T0xH`ryzoS*A%`r50jEY*c)uMsn`m6O)5 z4+L*UI>uM8?-Is_0_pR&O~&Zgq|dFc$-6HWUyC}-zNWS4GBEz359bvj8nH>*_+Hiz zt-S26I%kwYifTFF+MBRtxc!DfV{yR0`&(nDBi44|Q&?4s|?~bV?#% ziT|zOt|tGZa8A#oVk2G{No}ImLj5T;%{3oyD%A$mw_45cX6#3+Hj1$gnG8xHby{r~ z`Tcwg`?YXf1?%nqp>=w4k)DZ+tXld!)isLER_&)d_wy6(`F&gMQ0?g=N|yHNG(;`S zKATjpLHw)Dfh(PzpjZm>$cZo-+M7@5Yl(GP4`WodXAx>wl@f?S z`U2<>aEZM~HBBTr3TQijXgxlvT$8Hx^_APPa}ezpIaYmLoLsfV<`iA8YI7kZv?j!x2Zt4H2fX=QE0tF6TtC%p#c$$3EPY#A zFwcT9RhE>n%f7~=)2ozxCwJ-mO=xAtgq3q(HoJ#>;T^x6LkE>3<=68TG(C>8KCQr` zmBW=LmX3q>jn;H8^_pEBOK3Nl-e2~ij4K~9`kq?oj6SEF^s6*v8P!DnoIHaOoah z{koFuyE7?@Jn9(!k;BN@-Djh5YR>y^m=<_x*JW8Kr3 zIi}`BFoIAWh~5T50*fkaGJ3Vx{p& zUb5csiU8Ui^sQ#IRY>~y1${B?T+Btd3{^g^ww`b!JcYa8j!dI%V$oBEGfpAL=5Dro zqvcFmEnI|1277r{!MTVMZeX3>62NW z5NI&;`}Wqc-donAK~sKvK@(p$Tb3C|TGq$pW$e`_I`Pvn@&EFl(w@xR+voG}!1lX! zDcX5UCQrXt7o8zj9IQ=)tQ$;3)L)OTdlj*Er>sj6)wiH2MQrI)8BgR#4&~&Z{!k{F zHQ@7Be0@WTE=|{J)Zzj^Mh7;oxTwBpvS{$1T0WP~Oxi2ed9>rNQGyD&{Xb!s`Gd2PWcEb%hn*{T-)%{|j;wSX zfM)v?@|EoWJSu8u#RWT1lM(E83aNS9=|!kN_49vj)2&d!SS-1@FC_ZEP2k8U6RQrS z{KEe&6w1Y2CEKWw?%thA3LhLtdpIA zI>P^eXJdF??c2Qo7tyf~+Ep(ac|WwSMRVrEO87nRxq#6PQXI%KQKsW!N##M6_ATY) z(!`bYcfhFqMcsjJ(zi|21}BdfBIJ{|WXwlRO5qWi z@XJew`1LTFcl1MQDYLoCuD*N*&jI&f&|$U0M|2KsrowsL*5>xG-6^J1Jc7#AK`0q) zN4nGA>+JoLvqQjfkH2wyQH}_R=48L#NC@dW+9rAg3ezsE?5rC6T|P}f9XNP8dt>4G z8I;h@Yv~%zYxqgmniufR(t8w-I>BkG6C)GC0Dm`9sa0Z8wI~*!|1zx^e6bVt=P~Yq z-if>5A@RBP#x1-*bdsT|r;e@`1G-96FwD-_^aT~X-FE%L*ap6CybF69IC{B7!!+H@ zaY#hF`1ulY++NbVzWWtU9>?Yb8l=(f@27%)Xz_HozqQ-t6JF%_)pym1<^iC=`+22) zBoHq9+L|S9^$f7lZLP4&P6E>ZdmXMt`4B;0sqxMfBu+tSab^7v+KVq!%0+Es;lmLDLIO|(N-?c z(S9M1e5Mw-0u+U|qKfCK@jefVqCBF~yJYjW?!=s`eih|!YRP)CeeXv1>P%wSKPjP& zbDJg7W1x);YK*BnIJlwHLd1e?T?biaT}eO8EFPP;D+gbSj?q^iOJZijs z2Km3nBm~|RbrJx_3Tqc$eUS(PisA$V^?vo@kX(%vE@jB# z?q90WKJoR07wYCSh^1+zKBc3$Am{ns(E3PZgq4HYSEtwXqqf;jEZW~ZE2`9{axqFSQZ|BP??DmjCX4P{$Z^se zkI!0o{Lq>ydV6hjHOt-1B8(&tg@8xd!dbPsB4<_7yw;seyNeI{wcuSR3C@!oKTax zb#%f&*}sK(Lc#`VdubHuSWF}^OP+f09NhZ(Q(Mq^-gWWygRS*L5lG0d2bGVIiibO9 z@+hcV)j1V^@$FyJFF0OB(=QqJnzWCed1AY5gw~Fn^tu7?X!f%;%O1_f=AV+*+Peu# zTbqIA?H=o%23uWbk@wauY;r8vDQEZyy85)^_eTJ3BX5Cbp)5Wso9$$L4>_@(k|kxB zkz+&DFaK(W%)V{2vaUQ{Eg4oHvhdXfeUz5JB4YdWt`UedpanNddst~XbqEVf>`O0GNmLksNQfQ9|?L(7IgrW%^5T7P(z7p-GkwzkE+_GOn0_NR#XVfpzxCS-M@e1p4oOOL-=VJ^KjwI*Spx$VB1&!M{7+W7d_eiW0J z7uSy(kU*6o$>ZUTvYy*Ar&dUvg#Znz>I`CNFg-U=G+^~DIVMaRhfU7ll4xP3fM;;1 zDcKDnim?EN*12eyZWl${nJv4ZHF;S&$np=iZjAIHWXIW-516-Xc*K)6FPuWxR%P}9) zFsEZZHDyfG*d#L)%@zei=Zq%z9gx>QUO$!-Y3{N=A7pCf()-crkN3!=>-s0Af~Y>? z5~JMt3vTpmR+HCetmsqTF33^SnGR89=QdBEHkfkZ_Vkd6|K7@3I#%@zEEAkV2nkgR z>vy?5Whn*dK?@r7B$F!6c25(IXFm9xt@2cy zP!u&ORypyJC;9ou2hzJvu1^UTIymL(kE6i8Cvcn$j$kEy8445K8iOq~V|)=&#>?}pV7^k(sVMJe6@-f{zFqd@I*; z9uzJmAz-wZC|3};9`JGZ4q2R76A!h!Mv?h7V$V<7zs(MYxV-ZVFM``dLc=a~C2KgK zY$#TS^(cYXy?V`aI;==#N7d>q3uY=0Z|w(kSJX=}07Nlnplj=KQDrx0JWgFP0)wM)^aA5Z_D9EJx z)aN;onQit*u;{kuvmN{3HgNGB@S%zMpSBekAJ0ANQ2yy=uTeSs_cp^9TM}R~I!T^7 zf2*8eeV;7cC+FZb6`A%#$__kE<4AMYoA|Ogf6WSLlGQYv4cs&L69hLu$D7&t*O@gp z*r#WLFOSI<7r9Oyaf8#yAzuO>fq);{^d8-OXg|a6@HKDqb0-LrSfM~^`hHDnI&WIz zh`h3h)f0rhK{d1KjD>gN5X{tW9KfaF>s8d@D#(i2ZNVoSh!DypuiN|W77N_s;>tH_ zU2|rM>Mi9n+&__AxtBFIEoZD6qA|8qDwF&6d?P93<{2`fTzaunyg$lB<6qP~@nsuF4=$Kps{ zs8olDpHnBn7?*eQ#=eZg?!~2}qQ>n?JlvLY=Ft{ClRB5AxHrk}<Q{G<;@$OBw< z8*nbjeO_|J3p#!C*7LM&BvM+d<3<4+VylPZ5@j$_WJDV+dZ9CLk%`&B%@iJotvZc4 zU9FPtJV97L+iiWPjp^k)94`5KO=#Z*?3sZf6eHcj0-Hp&M zU1z=NNh;TAIle0y7Q;>R#q_IV`oVwg^z z2zha@QA-VXufqy^v{k*^+LB`KikNQZeON>bDDRoIN+X!xMzoXAz^;Hnz-5K+1RRoXRa$cw*ay# zijUN~5q|Zcy&Eu(aw=T-r(W(U^{d@GCl$-5UZs|3h#V9kp|{g7TKvAX^kLs)aQ zU|bfy8A-5t#6^js*R=Z@NGu-`DmovVgv9!vZ^6)0*R`GNtw{SG_XN?GCYDS<5<^YI z#fTb6d4t^R;o=vOLu@`Og3WcdnAAT#6EnrDDETI`Fw$V@n^V>9GWZXzTky^67}oPT z61KW!{hK}PQV&ah;HFzSw}Jg8d4__nXr~Q@viD4l*ydhpr86r}L{t3dI!+{{Pq)=5 zTAI5B&h{PiNR4C6MSOKBj4?hG63yEzVfY37d5B&P_I`C5Z&uCBB7SCV5X(Pa_&<9p z*zUvk(+%8)vz7twFJ6&$c)C%=Ye}vcKhqP!c=wxDx-$vj$>kb(z!Aa7u+rt+^K>H8{$$uFQ&0xGI>f+VUlTcC%5cQr?;-V4dtOb6W3fNCp1dI@FE%vNj=ZpSe94 zxZ7MahayguXNUv4Zm+Qte13Q78paW4EBa-}Q>{Ccr=+xV_qqFwk-A%hWxY-KVr7cf zy|-Wjb;+V7(nQau@-t+&4%@0ZvXP!U0zdvUX0p?kga%yT&FsTBh9=UtN%G~O-H-A< zJ+C%(|8sej_dlWWMgPf&oOuIn4!dtu8NF^bzyI{9uTcB0o!Am}G{kq!N zyPV-yR1nhbu`hD~C#FKegUnVJOsH3dGNyH>Cw`HbM1>z(dx(KOxV@gz z0-V->nrpaQOcffC5F`%_PP!^^S*s?n(13#jQ7cXWW^_1g)L^4SW5g zV`+l$4afwWb~>`6z~)t&+Nv82t^ukp7-6rrgdSp42saD%8K&H!=T0ISP24gZ{&rm% z#w+{%2y19we&2`5wNMI$o<>F&p~w1^uL72gBSWq$FPT1!Uupl{2QnDI?1)C1Q)DiyfaLl zzRQzatViAra8W&*4@T8J9Y_|?Nv^i4{P*3$Liz8jT_vf9reS0^3m+?vz{2wZ4U4+P zgQhgcX0IEqcH8QVH+Z1BSyvh}`5Q2e7>z(j#)`g%JY)tXCW+ne(29bjyj`u$uCrv= zjA;J*^6gRyex8*y(a#ZbVr2;x2r&<-exYpDWZ7 zqRA^I`ZA*hT>(wpB4c-zrSmZZD{q~CFK}{nMe3u2@O@2R^}C$c!3Q!%Q-B@FIZ}Sv z;5?mPLk1nRMm05SsP%1E}^EPwaRjOn=88_>%GHK%UOQ8)0)Kbs8jOc%DW!E z(A`R4PG32?D(V$zgG+GF+s@mAcEpEo9_QZD7X##wjoW8>%Fe#+QqWR0Kz^TBL1$KMzLn_95+MBMYp!-XfzG8bp znCL9ZFGeYtw)3JTv~vNc;_uF0K|n0!|Af?N6%mb$dK4>huPGQx8->4P4c;jH+>>}p zz%6XA@3?JxEK06oV3c|Vj~DlCwopZ_!IO8J6E{FV?`V(%?psXb4zBj!1mw*tT2DQ8 zSNXi@?il+%7bP}~O0-@}0L(LH)gFNfgK3rUO?4EF2rX5o+dO-6K!a)1z|Fb}8qkrGin- z!BU9OE%M-5I@{F(6R7Q;q@TGcb5|{_TM<7;0Fo8WneF}TX&s5J$Nfz<^YTLZTIE-Z z{*Pjq>)ww{u0znS#;)8oGWC3^t#3e?f@wzkzr$}d#d}%98@8r4mPw+1+cgi3+giX< z29Y1pGyNs?4ySv&75S-{(@et`9W%I)2Yds<&)2bJFOQ(f5Yl|udh#6c7%h3E{Q+>g z-Rf8d+@c(?=VN>w?uS-IL74wz^+&`5f`oGgQK8ZEOu|;W7-GDll{t#UV-1KFPxx;z zNIdWwIcjC%lY?B88cWG5OyVMM9iO}XF#hw>53SxCOr$+^f|lv{7u<5Z!1@rv9;3k> zDpK~sI@kA|S3q9SZ8~Bbobj(Oxx)5@*pMdYk7}a_n^T0`Wc9vaN3&yci^x7?_O+UV z_bKM`6ZL%%!IN(LIn5Q`)xYSl`YcS)^S@Wt)Om z)66(dm!X8M+J@)P`63;29$h>MeRRZG?3aH&X=i9eY}-e_4nr5+<;{}safvPEyG_b> z8N@_rR!_jUOgBYLcf>Aj>Z8m87Bz@R;|~l{9kB_IWR#5^i6XUC0e@kI-*IlRQW>~d zLyOddUBG2j+WL)e4VbjF9;tj=AL`^<49pB!805NpK-YZMu?>Zw9;Njn?q%%n_gZT5 z(Pwt`N@m5ZC&CY8`zGA&=^`-Jl?`ghI715-nVB1g!Uop7a`@g*|Jvqth2HP&K|Blb ze%P`ij!ntI`_E53)6cubeiJ}N3a~w_)Sz@Fts5>%urR|GO^pKgOs;exZ;9C&$NZzg zO`;|i_XFG^?CNWpQVB5gQ0g+{l{(ca7jj()22v40{CNU}H*d0lBWzacH}pLg-dN#{ zw4;;FcEfiJ*>5Tf$sUlD31wRO$FF@6u$&W9VYiamrJv$IMouy$^DF?@ryXiFk5=y9 z-J9G+#judjnz&{;F?S1oi@i2GnqA)^o6OF1p6@LqG{Wg$kA$oqzIM*#ov4vvmI6pt7yY)&BLjk?-{)JL9?_9D2 z`0_5V(FMFtf<>ej-xtTM6|a^Cdvy2Vli_>4DZg_I1{af|Z*gO>R`7GKDrH2ZYNku* z!F0Yy&vtR^l8eR6J)8fvGJTmd4@J2AH6Vu*I#V5z0yl+scL#k}A~Z-yg+tZx0#(q1 z4Om@O$ZC-W+)>CJM$4>F@y9V<;$Y@U;?7AP&0o_&e9Sf?X(7k=+y?2C!CdnQyU5LL zNy?e?7KW7vq2?p;E3L_q7ARB|963N zh&=po#ucNX!2Tjd!CZ$TRjsDjz7)ubwf}?-1P6qLWICVk#g7->cRaU!`z5K-C5Rtw z3;(Nz+{3Z2XvT9BZFa(*x%E*J6fDe=VVC8TZHxTjMfs$$-q0IP z%5Ejrvwp`xkC~zb`NO9J-zD=u&!8xhdX=c?xzm3BtDKAnDM6FNMVgoKVXEbW%Dr)_ z^W;y|#qvkR&S$oKVaEdxr-QzUtoQ5)x^A=CbM1Fs_1A~8vPS`vcZVh^I@xPVi3@c4 zG{4ZE@+!R-Z^qwf>-NTRB``H8<#{>;7VQyOmF&x8`?K_XBzJ;6IreBS(i`~w?>sUL zRb@Jx%}SNVtF0E5%x)SSG{E2J7Ex**N)8`M3rc79@FidIVg_H*{@2K=(wGvJaB->9a>zc<*>q3c z8}~J!;Ww=1^`)+Vlo{7_ZtEV+fiwTGWld`;Dz)vzRWtb}%kzu3W~ta=#ZA_6_Po}v zdvj~{d{Xkn8;ao5JkUi%#H)f&OZ2S-6LSPg;3n>Q7e~(+3Ac-0!0~SuzI!~?0p~h^ z%h@!nl>|^R(zP(R%1<)lb`xQnl$^@2J>;ZNR8^{Y3`2u=JhmUMBqh*Jd}js!E&neb zl$U)8N6FTKc-D}3=}k+| zT`9mJjV;3dq`~-+@leI8ikIi7~G>TolCv~Ptnv`rRsnrOD zIqWM^YxF6_7(Mr{a!}_(H&e66(QKWSQ+~TTjteO~$FP)+n)1rM8a!%Q6*7V7!9+5` zW6ii(9@R9Df&Q|A6T9xAI(JMhe#-bSoCFv-m-ZI2*2vr7#Rg}Ec41`FgvV>NkV zX5IA2{#G>&nFPifaY+?hjhS&ujR`ZU@-P_%@0EgiK~GE9F(0Gr+$R;AlsD|EKWIT= zr11_o{yr4BmI|@#OfuhT&}O=5$fGBrFSI-l>C)@UW=;8W31}2&DQM&cO(+;R@0ao} zy??^BBJ4J`9q7W@`Q?#j9N~g|aJ$ljF{nnN^F}*k$?x?$a7j&pbB4!V2Yjwzaz(jK zgxhuk({E-L$#L>8U9iL1Z{zGNa1V!8HnGpLIc{6rg_{Jt|D6IPVjXNi>(6O$6wZbk zG)_Sy?g(Hd+&P}02W*jIBiHV8ubAUXYFqYf^=tsq08uLwX@wIiDyYZ6q(c@lzuObg|ZeMF04OtzBpc37- ztc_7EE4nro*ghg7l>%gP;0T^F{+9uU%oBPnln&QVuT)8ChR=#mCC=>rW5)mI;mc6! z2V3=XToi=M$mREZEtGp76|X<9k8QWcare5|FR0U9gs{!rJ4EdCVObh!=r^?>LO8d= zNNZgNjCcQCm%cC1v-0cOT(V#cti+)SOmc%iL7u+vG+Z~mDlO&9z%s z6)v$>V zkqjilqXk@E^Ip5RqCM{e@0z|#weT#-GVR#f6_(-R4jj3seqULyxhq|oEtZPJt6+8 zKF>)9U{hAr@>3+65PRn3~PI< z8ded;Aa1t?m;+zPurIBhf!;kZq=$KH8w19P>nIn08iMmHJiM`2#BBcu9nBjtc8_QU zi|Hn!*o31Ck?7#fEYYrQF-kkfstTymhod(8|NYAl7y*?*+N#_&dU8DqnvYMn^c&C5 z*K@wHhMrN>Y||^2Ai=lG-p*-*o#trt$-7Er2N&=1{t_$@TzUZ|`^KA?O1D&`u-4Ta z>WWv@s%RH+eBA>RN}^%FSqmhMZ8}HH?e1D8I;2+bZ(Ci!hLAM`Bai+PS_Kp0e+Sy_ zZ$q;+{hur*UI#xvBi|&tCak_7$1wPK6GQT>*l^mh4(BFQ|q-FA00 zY&J<(S3g}pzgPaSf_RQHn%@SkYw2l&OHFv(a4c z%CCip+|+Lu1XpNa(9ZNTHr?4F(KR&Wyt+=_K~Sdb?0EZu@>(8JmJnzf|32tZfOY@Z z57nz*5zn2lt~T4NOj+ts@a`fn@|tAwj(+>~>p~Tr<|DDAHY87&t>B=o)@w2JCf%F8 z1jO8&kw_L}@59+&bj@O*nPrHS5FFMAOKmM#@y%;#E5{O8SavLB`=fT>xKgK(cI-^q zOm>X@Ay8G~r!3o=>;QE=46+WeEyLB^IG*kF6J^V3h@#2Y<2plax!>x_SbydGFPp1b z{|&t}(T}V=bW3R+whXmq@8SsIr&l9(9P-T4SK5qFH%Qlh+J{5d9$Han$(aWENZ$rV z>(M=s=L32N5D~YY|K(Vb+h8$xNjt$@+@BUeJL6FI_l)PCqM@AfH0g)dpJXtTjYGL> ztR!t!kRd1twF|eLOoy8d^4nQc@Lb4t-MTk-+c*hnZLLnig6c7~Sp_f$ugf|m6UW<;oHZuP`WM~@V`VxD!B6_vOt{ZD#r--gXx`fd2_XAuTSE}^U%18N!^&|Q_`se0(Gj>0;9`69OX_^W; zB8HyPK4elOKWNZ0Xa>Uo^z{9EQ%HsVFfm!>h+J*I@E)LkQj4!RXtfsTHsoD<>$EQTvFwx&GFLqO9yde*BTJ7$R??9MUNnKcEQ;ECVo{-5JC5W_jG%DxN zWr9ulxge)^%v*08VBN}i%JcjImmM3LACvk@#U$-GM-89eq-o!H{^v|=n4^>J)4O#m z8?rtXU$2Cszw!;4wBC5Z9bZ^QeCprJT`fsH7jW#vYJG}%Cn4x0Znoes`K`}%4WvMM za(QXy5>RayF=PfB7S4M;y8%%EwZG=N-=4rORFve`g zOa{<7k9ie);AVk)?aL#gE%nGH!*19IPA&QZeYw19bV?LUct^Dzd8eubH#S;!qmhBd zs;Jl_TQhGTDC!Gx@vV$!PoD7n;oBp<{e1v4*f@%K3M4t;>N5F>KAcCM9N^Qc42x5cWH7~ff?qlR0Mr@zF zoaxPsOJOWDHV=fAPqsO@8Kz}~cbDa~yEq`}h`LDN3!(bmoqHaZ7igG!qsHG+D+Z=9 zPh6XiLAUd5Oi~c@2?x@3*HYp7H$4#>S)UVs*1*k(fLqM5+s?q^IjQ1Cl@UG1&k9i@ z)#Nnp)L_aoCVdp60gl}WGnuSPeXj#^G-G>|9!gU!!->dBo#}loo8#~yUdo4`Ng(ZY!&H8B)n8U*jvqTOhT%|hLxNAV zWw_oy*8YwGi9&EXkQulTksh#LN-u=JNyw5rtw}rxnwVV0=$`KA%?ipm)Z#5;VVS@j z&@5o2d8q%}CjL>9%mUU@EXqp<97W-bnEniOFWe#NJA+1~kkZl!U;XS`)|!YES4z&z zypBLDfstr__dhb@DKJ7glLxCN@i_|lW)7jhSyaXiXLjD_eb76O5V&s+1sB-4VwB+n zWzOQA?XVTM#OA|)Nn5}R4PqHaN(ew;KbRF-(Nic z^2hUeJ+E`#=bW4Cg>&oNS2XayrawIIoa=I+8hq{X2(u(HHC&AO3o+5j@xd_2!;lJ!8~z1TXjU!i*ejznLt(>2s?h@c|xOKn?ee$ zN8DDUb22yJZDB!Pd4LaZ%DAJ2soyMd+)GvrM~xNqTvZ}d*Z_Bydzp-oBnsI!gK4%R z&%lCW#cbJ@)GmsZb7L3y-o%L_92Bb>uyUs4pIxQG?BAwO0A6)tq_wH@&0PI$CFrGc z=$iPv0v@~Ved1UnAYC6}wWVJ{!q%hvyJrh_*DgEXL0u|Y`kSrDClrrW))T{8c}(sH z;yoAJF|PCVJrg7$!oKyjn7zVZlhz~V6NkORTPdUbeLLRX675(=M=O8+w)zOz@7x^~ zjvu`{r@Gfp*7q{=^dBCWbz&>>Kq0p0c~7cs2h!XVaCmK8^6}KwJYwXDk1ij(*vw9h zk2TT0TSwNuDCa~|%j&eOtE^JUr|C*NDAkGMl_R_3$?R&oHSh01i(==1yE+%%l0J+R zM#*~!+%f>P-@wGw;R8sq7q!?0^-iRv=v3bf`m-Lm4VeM|nb0B`hN;{A9=EA4|W`n+AplNg3 z`nn;vGlQS9OfKDhm{GM(Glc=5{fo> zAQf?L?`@w|-Jr!yF3*w&DcP+AcFg2H&U4~HuRD7#7P4?4*(==yn(8toOa`AK!+~_8 z**GYvdU*yjMWYxRLhXCTVwHvrS;V{`I5VS|8~Wfh2Z7i1Q1kDGoLh*6m99j{Evo-? zHYqJ|QycbSHytPzxRwOp^JRg1 zmd@jixrQ>#V?G$I0}`mr&RsT?ftA&HKkzRHb-KjTB)nejouRLk#h2UdSVj1JG-j?= z(-j}>^3;ui(q-V(Y-=E0G9C-smex z?%h0euTqQI4YjBNDB4eq#C+AFxdMU}k1nV-fX>$TUJc3U7Faq|?_lVPCx~?J;vPoZ zl&+^a48w7_E!D5xvEEuBl*@uOnsGNnze zpp`bUJr0u;YcdxVMBZEjW^|~~Bm;7`dAIX=K9x>xd1kwf?F?+9&NA#rhGOUA(e=4I zlAAFNuXhRf>3|z@zrPIKeGaXOpy3{oZ^Z%%45y;K5{eBh@RB!_czM;TQwsd7#83wr zeM45@D@E-7VZ}C~DH0{eIC3|1XLeKgp`D1ib-8YgHO!O^jL*S@9Mw+Z@a`pTp8e!A zO8d44jEF)R(u%L~@BA8M7gQn~JWwMtD`BLYX=OVtrub-4VlnmtT7WzGnlDO8$SZH| z)3-VVSQMTk?=)iAxe#!h7m9@QIR zSHsYG3`<;Z8_{pW*}Loume{ngK*^SmmMMconv&$TkDxe$$m%sWfaN#C6)$E{cN*)myC`)el}8Ve&|S8W1V-h%lxJ0672h}33J->0P>-919vR02%hD=9x<8oQ8Iy0zPoEItQ`HQ zZ}ZVA#(&5!(`G!q9Obn+i^ab5O%?|afrA!~CZ;D>Qq^+i=+j4dWmyk`MlC{S@~?7!K-r7HX+{mK;Jjw zCqEaM>N;x8j&;p$N*4urN%i4TniBfU1VFvR%^!i|S@X6#+Hg7{g7*t{yRmx`}$`6VrzD95Lv_TePqh47R5_vqAI)0B>CX zg~lFL>4V}32cR$9I%iJ|0bZzgi;SYVH;6)S(LdARAtn8+H+N}A&@QG&37i8jWcqQ8 zs5iSa_ToBP$Sx>q(>iRR79Vjv&sDhKM__lNBqnr}?ig6ZiGJ_*t?s&&rYM-&L(adyzq{i; z<$AkqZ8NwDp^8}^xqFm^V-_A>p)DPJs(gjP5Y;0GQ48X|!x*(zO-Pq| zKDp&S4R<-ZD{HUi4-W-f@#T_bEs^}Qmvz?*i5$*6z8S;VB}K=r4Y90^2~59r(})quptl-6a((oD%ZQ> zA7_%Z!)I~=6SWz^LRe5+k1iiKS-KlbWd}aoXTxfidv|XxsWz0=LP%-`cq!_p-23r> znYXFe5g!H@@{WD6YarQJ>(GGR#RmtRc(=D;Rl<${SD{95VI~3~Cm0dq>UI0x*l~%k zu$2!}=_%gE+RrK)ef3Qns;5Vk%gG=mmm?R-`Q(7LKPad0`!$P0KBxeKA!Dmw*)*Wt zq~60Ww65Z9I+3!PXR-7b7yX!*#TcB@D{(#Ms#rdZqnEE%3$Weg$=RDnwtZRkG*FG_ z9YawJzRozZYcDO3V@at?D@vdXhSD_Y_!o!KFs8TJA0BbSGhjhiq8f^|H)yn8M~m5TQ`INe@J<*_gsB&U51sm>|+F zz!J)G+Y6mTAgLY=8lWRi;9%U0B1N>Se8-0f|L~aZaT#KWU6OluXjkF}h|S570dula zmfY6&N|ls)#~`|~D0n1&7CSw zDAsoE@Qu|IB4LG@J1x~e8zyw}+A{PZ(>K12pEKXp+0KnS+SH9RicL$+;zz<&^S_1qwCAaOwu(Kb zsj1HOi0z;1b!IFbLKOCox;Wjwln#uCwp!9ji1~!OE7BC6nUyf!siloQeyt0!k~~y} z7*9q!Qse^s)=Are=qBt@7Zqbc{@xn!%6D~iQ5H#_a)p?zQ8{XEa3aES`aL;NlkOAi z)mBJK-+)$UxR<~Q%%9B!D4Y$n2pWE*seACO*FOrMm|LCjF652=p-se+o|-JIApiCB9Fr zABk}ph=yWlHKAm7)PS|n3}??Vojn=`tQ=>OY|Hn+LNp8jCU)EMc(2gaq%M*ehYG+i zkt>O@C8eKFcB0K~d6K&Hto4z7(Op)}3w;qa!WfHwX4D!=&#}9uUwF=8f4&(K^mlR_ z;!g2u=3vf?G6J^akd#$HFS2u2@xe>l1v(d1I@caX6Ux7IJA~&3X-*n%hAcmrFV?F@ zLW$+CT{QH-2l*&epq0iq^JppGL(R?odMgWw<+5=2qEFk2ftH4;!#zs&)W^ws5NE2M zO-TyeRT7IcnoTqFJAxLov$$;DtDp|xLnSXxBNcWdVYRJ6OxFLPY)}vD{PuLgbWbx|E$y&dCjih@T2No-;C18qY+oJ!lD@RLJ!5ZM z)p9>R=(eCF7*iAbLEd@2gDMgFfzS}UdXCs&(7NVJBKugz-9p%|X_RtDzFZA;6Kc6V z6M}9uwh^U3$frA2KUS(Z_{+H3BKOdBNz05NzhUDDY9T4eXG{zs#+mlKLe$ZBx07vs^myD9mxbOG3 z2sQm-=&bNPP!U-{Pu&?Xo3z&7n0xAndhBe%=r@N{C78D89wAnabsP}z4lo-&*ZTHk z-%Z2C`dz&6dd7eHD53S-2IC0k(8Avd7+A|yTdkM|h!Bu-SlCc4?U7c>k%eXUw|LGC zlrGwi%@rakM7@Y6n_9vVVfhRVM>uwe?>=Y~6=5&W1rqK!`pj`X*zL1NG=mKeH;$Jg zi?jN})46*loGtOM>EIj#%qQ9A6KbCKvr}Ky2wFatMT+0U5?o7 z?bO=Tv^WgUdfU=`kr!3w-9{ybxY{RMvTEbQSdxA-+glxZ~acyRq9b6 zKj!oh8BwPtOovOf&5GC=QzRNFVE4n+$)cY@ljAwI`9edDBvhxGBm?80ipL%psD zh|sf%y>f}^pVgGi&xr>YW2gs6Rp^l{=gAkc(b$Z29lLB7LDQ!Nt)M?0v|J2m^83^f zGhr)PRP_I!JbQ2Pd5gE8<{T4I-)2kf%?CtU zO9MVv%$~v2`hMxJK$_lf@-n#xh5{D-&jicr#>BXE0y~*r1ve@N8a`CYaMmXrD zIl5qdIslArIGzhI44&m~C!8RKMD)`327I;p`M8Y=)&tzQR*>=+HDgZ=4yPUTTe+X) z-t2IDR!SF7elX5Qnm%^%QiaLXRC;gcl9dZ^QO$MG%-_dXAkBB4{Nd4dL47wGh7S!g zxAW(%tn}r}*vvzkXrT$`3q+!$bSFv(fmGH;(6_s42M(D6si6XOzATC(wenSzby8vZQ2r zPPI%(K{`aR%D&S82yrFN{V;1gEvuLI5hA2~DrRC87wg6xg)Zcx%;05!(K`ks+J{N% zuALa>WC9x27aJYL!J3n-Tw6gu)YjFLf2eFf=w~DO`!3d$3*kj~rWbElqYB*!+UCWp(F5CQoL)|&97CubFuv|N4no%95`(9-XKLyB+ll4fXJ%{KKs^(0> zSZ#6lQFx-_-ib`Q9$`3g`;b%Ubv-%t+n3)^?Dq?ORaL+}>D*$ZN8;o2(Z|f!qvCAL zB}No}Y@~^KP+R?8^;`8uWDVpwjZEqlrEZL`zBKdy2F0eyR@7%o%a;x9;URBq=PWR< z22=+smnP#r_63Dm5q7UHhF~Q66zZD3rCTU!aZOp?IWtW2%2z9oeXI+PyWtQOciRV! z+I>Wg+GdZ>Vgj4qf-=XqA<=^iK?)dFOQCDliUG@SdG^?^;aHqw8GUmjk4-nrymTl_ z;PQ0G20e#Bie+gx*ra5}J+@`pVGa)L zs4rf}dH@o!-fV4K?j_LB?srf$EvuC~DvYCfAq!4AMn^va-;Mm#fIFVF=53fEE>6SS z#9g1xSp(YOgZs6qozv1o`>DL8ZOL&B?XhpnYZ6+g7q{oJ0cm7jRX2(xpt3~Z-Wjvt zr`=^Ja?Z7NbvQXgdgA6zIQzd-_yS*LKYA8;y*+PLqX}a8r<>=r6fZ9?4<8>NKlk_l zANhHCq%;g9ZPc&p!$J}+hH7g`QF=Pvq7yw5M%emI(7DX(ixdN%vZK2fH2q*GAzx4Kstku$5)~zK z5uj98%i5EuKEZ+c$0Cks|2TS$8d9OL(0h58_fbmA5Y0DJWEh$RVqE>h6Eb$_+Rmc1 z=cKdma!hq1d@D~DuJs&1A&EnaKKEeRkgEJm|M~3`hzr|8Fr_o;IhCO~!Sh?=Qy-0X z!CLNVKm8*F(?VR~=?rDr69jERg}5q}YvMMQh58LR<#31rDAn!9)zy3$_>#VXMOkTN z?b46I(HWnBi2uS#$REn%*evYzVM$BZ(sjCmrRE==bI`z}E9W+cQ#yKn2GZ4>1Beu2Z*R{PNUEDXK$uc4*?WLiNITtHN#5qcuDcAch^S*8Lyr~<$ z!%mls5DL<6#^h0dKCAT#k~OuGtRO3nVqj-n1h7;?<)k%RlkwhDbVs3gK2(p1@i2zx zhnYsVf#`4k8lPOybUSfGU?$3Au>E7+wLps+Eh?HdZ>$t0?=&~E$VCD$=+yfOR@(CWe6_gWX>9IV3_f0MNd%H!U>F(82{&YL$HA3of?|On*y%YeHRH_Ml&& zmzKK9C}#;%XK9v8#z8U8Ek{*X1cRwzzxDt2iA_QZZ$vu&Gnp1*7<=iY_M9;{<-2C} z|CssBE}y@bQeQVBdQ0?;ir7{iz2tN|o=z~XE^Pd~OYnGrv6ht~dT74%jso&rjReBE z<)f5wQ!2gS098!gvim~r_o#Jg)KO#Ir4T@A_?t~twK?03hXE-$LfF|>FO8X;g4s|J zZxLP9`DaaecZ%VyvGcdi2NxBL%tuY%9FW;@zl$taqa*bhLSCo{HU*W&Ok1&g=CUn} z%&fCeSvk1f*qo+;dpISx7DUZ=9zJUMKs}#Rm0HuS@04O30h$dk>IyMCH{Nf2YB}(t ztKF1*>et}GaYs6a;pkR-rUD(%bnbZk;xr$;7{Wi<>Eic2FuX%XNq;_bNhUkc>@T6W z$NXJ0(JNGzrI@uiUZ@WOzNTY+T>m(9QoNu}&@|MCVp~~(8oi^x%XgD}`t62E@b&gN zIGxULM>zy)yJ$M>I1B3^r+Gx>#)xK+E|>lY49A z;^X9d(hp`!J@V*{8$T*xgzbkg1R=-irbZedip7Sf#EZlAiG-;sNtV9!^Y0;17e7ep=*KQg|qm>Jb|2rDk(KKnT zMs0n4r7I*_{T)u;7Y62l-x^1)Z%eFekE^bzjrcKa7Gi9AyMz477(E~Ri6&HbTK_I^ z)Ox#!zxQr1%@)Ffb^zC=-a1;@kQEK--hoPIAg{|`wTpz6b<89KxseU~9F;s!p**jK z5-zu&NO|w!HiD3lI)3in4xY7&;ON{F2iDkJ)432=_v?@r*s3Og4j{8+4@+Td3ndyk zpPxe_>Ygibu!6}y@K!%MmBN}=c}TMcjg@pRE)QI6Oi#p>03w?`Lw#S1)l}YvMTGiw>=dP^MsJ8XONBPH?sVdr@a^Q5zrM~ftRlR z2C$>}SMYoI8)(UIWs*Oai;=xE_S)g9ZA}wqg=fTj36f9fE{@YFLGkc5L8*#QxDLjc z*v^i#G0C(eSP~Y64Za*A^23*&lhE@kkPo)sbn4~KCMxCSJ(ld8ATx=WvuW>@*1*CG z&D)dt0((9&pT;x4Im8Y;-A>;tE81n>u-+jv&W-z*SK+I=svDCe^p~8o7i`P&x*GpQ zh<&Apfz4tjeb%gJAIFFI-ZffOd8}ew@2$FGDa{RMRtRP!8N2G(*%V0M7z<^luqKs8 zvOUxIHUE*c>v-Ou2+VmP9iOY4sq1_)>6er4^TmK|-JI3nxK=TNavcmraOnhE(5)(4*CBObv<~uaXcv_qqnUlTSr;#p390){yco_iw@twz7hS;G6j?eNI6>OxK4w>;uTdzrh_ z8$a4=oYk$&CW!)*IN`|J?!m;P`?UhJLZ`7Wv zhH5mtunZb2>eRm@Ns-g~=T?*NH9%T;MtFJ}9Hz-MMr1*-BlnO9E@9V_?fY zJ}u*&5J0BSQ6|Q-z8m)a%RMArDH_ktp~POwMFVtu+*ZcTU^>X>yF$SB1<6eERu|T4 z<<0rX-N>6|37yKkO~URMqH3$0N_?%Gi(eP=Ry+p4ll%tz!NCjg8??vvz{cfw&<;M+ zGV6CHYNBe_zfK#N$yJLta;X1i)R8SHndP$$V5p|S19}WutPw9H?*5jpo0Vin8={1K zjz6b8^k%fGn_d16+V+W4bAg* z$<`pTu0$zA$_h=nFu>ieDtY$Mb^oGe72g=)y0Xmf7mtr205^$czyO9 z+yJ{>dbjbj-x12S8rZU9#+za2{pkm46{{n-pw=c;_6*&SI$V_75sXE7_&*&ex*;8O zdX^>BYcuw8^I3=j`0?{M_pa*Fwexr++I=Ks zB~t{#^+b7$e;swNiXInLZ>h;pes>+GLes`Cb`8;cwmvI+uYITM=?m)FZaEm5vgjs> z8wGv8W9NG7jFhDS@>&wF?H?(uNg*-Ej&D=NSRcY6FS>S5akqPBL_+V~pF#aK1J_c> zEqPtQJI!yyb1Kbn%@nvfq!WeB+SQheGGDFt4R#c{UW@E+Q!)}9_e&ON^HVWgWOfRU ziakr31%@=!A8R5&k;##BSb{)}P1gF^oWZK(GtA$iSF z#muug_PXhqf zVhz44w%_;sO|5A0K+T`whY zk50bs^_&O%s!yhfsMH6hWVS2^pYIl!O|)Xi#@D2jWF^WC`**{9j>z}_LutDT6L+Z^tR1lMX+tkN54|h4+W7HKt=0NLH?Wvl5@RBeYVA-#qxy2 zlUdFAw(+Hl#zP;^)JB@zz8ctA|ADR3djX2N%aJS+sE73orY!Ba2FuFU{%o}2Rq)9K z+TR#VU7EOD#Lm{#nDI!-PX1w{QSic4vB%Q1P7@f}l=)(9EW|uPR32Gq>#a>YJ}ft~ z_P2~1;z$&}ek|sN$qfamEHs%)bV9gAtRYVnIu>ew$M;4hub3J{F)mB&*MWD}X3|IO zUjGl3>qIJkuB!7oW<0RwMkHdN{U~cz{-?p8{f?9b5JgQ#gMq1F@0O>zo!%Ao{;CdI^&Nfi-K1$ z1Nk1uw0U;JcIPa2XJ^TsRMDDzBd;r}_?1vv;i&y#p=hO#5Pe-fDocrXgrA5<p z?ZFRP?i!GV>2YrxuI+^;5edsT41j8{UDTGc`TN{5X8mnY=z!nPeJzH{Vv)tc| zeFW$=RYAN)Ix1N$(jp11>0W zH*`X2;tg@CS$qBzS_LS8S4D(%B*hpg2Yg6#k19;mGLNhUGx}6lvYJk0TzN$h4fJX7 zRO6l_P;f%^kx=^=`w5s!)aQ)1e@z-&#uhd4Gz2D`!z+qF?0>}z$qo;hsXNMB^d`L3ErhYeqeVxk;rCZ(@k4Uc8BE@dn&R?-Gq?1dI63IP1qc|?&Taf!+*2TwklUMNd|y=)7Ww_Cq0545fHY&Jq2$gkG266zcvTU%G6ASG&3 z7{$5JQH0(7Gv1USBy(Ew{9<@ml#*?%i~NytkmEzsORMF=na=G63R!1r^P(p;22AmS z`Gv$6Gcd&Ug#hC_4^-$zb?%~ViJOFA!i#`gA!=3$bN>yT$Q@Mt`gPjHMEi+5{CZ}0 zEP1_eJ|HR0CiK&Di=o#Ee|YZcGtD%_d?e`S)>f>WDAT0G?wFDf{Y{6(oIAY+n_?A< z%BL0et-6;5H7YZ^D$bh^6!>c{Yowk^e$CuUiA0-~e~|e(#Ayzwt>NTUzxgil*K{p# zv0-e-;LhVv#i~=C`Wgbkvpw`L`=2`^*C#(c=soV?j(3#iW$SGAl-dhtPPz0ceAVi- zqXFxJ$1xCw%p1JQ>Sam2Ab1;#P5`SV@g_AK2``J%rTJ;5eC)rtaSs zajz>g5`Wfa$i(#^^^(qgypyZafmMgL&i>-a8o=5Yz*9Q2!x29icb$k_hEyTjqEV~u zb5*3J?_;WOUv!n_uOEV4W7T3Ua~T?# zMmFWZ_YqIz{;8XzS(D?}@@%6Td+u&IEya#0<(1o;99c~seH%;s$2)ci5qiw6aG9nm z6U*-`OapU~QFr`3f$A$2+oEUdPS$5sWRF$sD%a2LwrlN2JViRJ((CU3-c_uSB4?db z9lL2DzK$+bk4ZlvM6H(}k=QDjd}}3<ek~zGYuamdGq((Z>^b#A9R{c#9a9~||aiyy0|GtxH z;!Qpx0tCH1C-zU`h#)<=sgA+lRes&^^+l~;!TDXicNQaL%*37m+=@Zxg6cq_Bc6J< zwPV9sdN^TA1^wZUpAFU8XsjzSN#L+bIV%6Z@~n0tx#q?@E@y}bnr1IAm92+Zu%pVN z%G5s8EQGx0rXx-Ps?j}I|Aj))iQe|Qr0;0sQRK1q5eug^XQ$*O9`2*7@dF-A(MrxU-s?O*x1N`wj+nX7gewL zuIJ^5Mg#-&4PD}o+cHjwKTkbBy)5eBvl^Tgv?&vJ2n5IPI41jZf>3?~Ews>F z%Jpt!69HP#uM3ga^6h6)6DPlm@*y4WXI)2d+Yk;vzVy28&XAXCHFv=%wS5oblxvkG zQ{<`jUpqWXHB#2ZVS9KP*-Mtmq*N{)!m|n9>k7OS@b>+PQmEO54P*a5JjsX_@HAbo z^x6FrO@~Dn-#-ZXKG5=%hrgr-JVs*;v>(xXeNrA50zzWXCp{YZm3*Jl`g)@JV;a)p zNa^jtDct*+-}6muT!F7>L|AQeGe8EQ&z7VY5MTaAMQ3ja4*94^q8v({1{!h$dD7N5 zlFWqU{&iJMr0~A3-uUEbm=+NVG<%(RUtyrA?5uu{*8kLk$Z$|C%gH$~?cyv%goQD- zVcD?sC$(JmQ_dB{no+*V}W}FLG?0G>#FUVwjpQ0ZGkjuH&peWZ$cDT&dwZOYSIYFU7uZzNjzH_9St;OKzs5uh5H;w-Iy3l zRg_h4(bWTud|CdcFnY`Cq1Vds!WOVCP`F&jS{dSqVwVf(pf3crrrSg0*{vr|Sqc-B zrc-o(c1^wbUTiH-< zzxV2a-<{>Q_3u3QtgHl1PHcOI=Ga!cGdz)z+f!VS|GPy(`tze0!-h}bhDY9vKzc28 zKB>q|L+2u|2Jlg2wi@pY4k9yx(qBG!ls(PMdZ@BfASgXk)J(!=Edq1Ih6Re27M7G@ z{TSV`CEBNI0$RK;D>KaDmzVKp_UA935fi<_TK$E=mAJdmvRSFf!VUo~>Se;$i!)up zLpU+T*-z>lmN69N>hOcc3NXnA$WiqFK7G6=5%>=QQN$7=gdL*q-g!Hnf z8HT=k%N5Bm;Q=xk=>i-@hu==apU997z_w+K-XkgHi*tU4ie%BUPJpcNa%7!yS$=dO zTJG``I%w_c_r#cDG)s{}9|C4Kn>s1?Za=)IsTJoho1H74W+DRrJ}&~BMH@xKTWz2j zoqVE}ttz_DOJAxJg5{)b(?%p6XE6DW`RY3IcJwuL*b^p$ZD@CffOj_>jPqjwhnz02hKk*dORA+`UX z9?1(H8MP0E5aULt(Yj3`C~S$@sj0tn?%R70SJKI}3o(5M9=zh)7L)bwS9jXQGSr1< z1HtfR$?+vKjhM>haoKP^r_jw9H#Y^di^3R@luGEu!aj_dudWL;!HnU z2id`LPd%MG{U+wfs3GtoL#TP4I%ZB0se;YhXC;qccNZ-`p>%wQMt?o9X?<8=lT)$$ zGNSP5?mbn5zUO`#=eEYJCgT6_(7CSQ@o$pGkuh(^(etRLt;xMVJh_e6kzu5Wh)>fl zfB&-McCM$4dk=^SO2#V(4Deot9s7Tx$c#H`?+j|$XvV&nFcUF@_610 zR?^X)6`2F@L*Lp^h9`S2v`g`hdETn9dKKUiaa^n4&B{5Y*+uVa6NVI@Kh0vHncb;T zJuSwt?}veU-DoPm|PsWjPjRk z-uqFinxIGf1tqJl3eWBxYocwG(v$2#&}KanO~DbyFHM_SOCe&qH0#{Hc0&t_l2elX z`2#ib0GZjZqxpj3e0ffem3p?63a-BHS+rV#k@7Az87t3oG=Cq1C@sEgb83sw<6#LY z@jKfJ&hmVJnDNUrVfAD(=@Ai2pSAAV75N62XF z`tRD<3_gBA?oP6N&d)m`ls z0KMkU^|w+@u{xVLbP2_Ev0I2LY5(F6Pfx#aW}x7SEWEzbjLt}9KBDbl zR#M6KTX#PJ1-6Wm0th2M!6fm{XsZIBaK&-*=UL8~4Wq^71r1kWN~Xh(dizkM#W#~N zty-zkI_3k7U4BR91MYSw8ar+lt5R+@qtOJ@$S@ss06F24%@QMJB~5THufs^bmk zz`4`>s!B8LZKo?BR~_`b4s!Mj8E;<{e=wL&`-`>2YqYe(Zvvp$%qqDUJkE#C43#1) zs8BD+(Q;$t_M{6EcqTf3n|oB$N0ivyvvi`48l7=sD@oHWfOl&ByBPM}s(uByafEFe z@v)At`9=NSl}C~*L=g=X;${zS{}TWL4y=euM%Py<5Fh?a%lm%Yem_My0sKxOB5HNji6(s!?Q4C^Rsuf+RLsOen@E10Q|Oan#y zv*65J`ZsfEJVa0`a99i$nVC_b-hH(vU5TLG_Y9A1Q-V0KH1EzTEMQHb8DQTF=7^*G zOZVMhy-)9`7n}!%-_uVN67f0kiI8WrO%!mPTzUp$unDg-k;C)SgtT zGmr}Wtg8U@44gOn`yBdHaV<|x=GUC9PdeY%8 zpL^a{M%6EPNvkLaO2{Vu%0AKQI7Z_d}A38;owaFu<;D=86)mloqU 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 = { + title: 'Home', + slug: 'home', + _status: 'published', + hero: { + type: 'highImpact', + richText: [ + { + children: [ + { + text: 'Next.js Website with Payload CMS', + }, + ], + type: 'h1', + }, + { + children: [ + { + text: 'The code for this website is completely open-source and can be found ', + }, + { + type: 'link', + linkType: 'custom', + url: 'https://github.com/payloadcms/template-website-nextjs', + newTab: true, + children: [ + { + text: 'here', + }, + ], + }, + { + text: '.', + }, + ], + type: 'large-body', + }, + ], + links: [ + { + link: { + type: 'custom', + appearance: 'secondary', + reference: null, + label: 'View on GitHub', + url: 'https://github.com/payloadcms/template-website', + newTab: true, + }, + }, + ], + media: '{{SHIRTS_IMAGE}}', + }, + layout: [ + { + blockName: 'Content Block', + blockType: 'content', + backgroundColor: 'white', + columns: [ + { + size: 'oneThird', + richText: [ + { + children: [ + { + text: 'Page builder', + }, + ], + type: 'h3', + }, + { + children: [ + { + text: 'Custom page builder allows you to create any page or product layout imaginable.', + }, + ], + }, + ], + enableLink: false, + link: { + reference: { + value: '', + relationTo: 'pages', + }, + url: '', + label: '', + }, + }, + { + size: 'oneThird', + richText: [ + { + children: [ + { + text: 'SEO', + }, + ], + type: 'h3', + }, + { + children: [ + { + text: 'Editors have complete control over SEO data directly from the CMS.', + }, + ], + }, + ], + enableLink: false, + link: { + reference: { + value: '', + relationTo: 'pages', + }, + url: '', + label: '', + }, + }, + { + size: 'oneThird', + richText: [ + { + children: [ + { + text: 'CMS', + }, + ], + type: 'h3', + }, + { + children: [ + { + text: 'Instant setup with ', + }, + { + type: 'link', + linkType: 'custom', + url: 'https://github.com/payloadcms/template-website-nextjs', + newTab: true, + children: [ + { + text: 'Payload CMS', + }, + ], + }, + { + text: ' tailored specifically for this front-end.', + }, + ], + }, + ], + enableLink: false, + link: { + reference: { + value: '', + relationTo: 'pages', + }, + url: '', + label: '', + }, + }, + ], + }, + { + mediaBlockBackgroundColor: 'white', + position: 'default', + media: '{{COURSE_IMAGE}}', + blockName: 'Media Block', + blockType: 'mediaBlock', + }, + { + ctaBackgroundColor: 'white', + richText: [ + { + children: [ + { + text: 'Shop now', + }, + ], + type: 'h4', + }, + { + children: [ + { + text: 'This is a custom layout building block configurable in the CMS.', + }, + ], + }, + ], + links: [], + blockName: 'CTA', + blockType: 'cta', + }, + ], + meta: { + title: 'Website ABC', + description: 'Next.js Website with Payload CMS', + image: '{{SHIRTS_IMAGE}}', + }, +} diff --git a/templates/website/src/seed/index.ts b/templates/website/src/seed/index.ts new file mode 100644 index 0000000000..6ee18e0d22 --- /dev/null +++ b/templates/website/src/seed/index.ts @@ -0,0 +1,82 @@ +import path from 'path' +import type { Payload } from 'payload' + +import { courseImage } from './course' +import { home } from './home' +import { post1 } from './post-1' +import { post2 } from './post-2' +import { posts } from './posts-page' +import { shirtImage } from './shirt-image' + +export const seed = async (payload: Payload): Promise => { + await payload.create({ + collection: 'users', + data: { + email: 'dev@payloadcms.com', + name: 'Payload Dev', + password: 'test', + roles: ['admin'], + }, + }) + + const { id: shirtDocID } = await payload.create({ + collection: 'media', + filePath: path.resolve(__dirname, 'shirts.jpg'), + data: shirtImage, + }) + + const { id: courseDocID } = await payload.create({ + collection: 'media', + filePath: path.resolve(__dirname, 'shirts.jpg'), + data: courseImage, + }) + + const postsPageJSON = JSON.parse(JSON.stringify(posts).replace(/{{SHIRTS_IMAGE}}/g, shirtDocID)) + + const { id: postsPageID } = await payload.create({ + collection: 'pages', + data: postsPageJSON, + }) + + const homePageJSON = JSON.parse( + JSON.stringify(home) + .replace(/{{SHIRTS_IMAGE}}/g, shirtDocID) + .replace(/{{COURSE_IMAGE}}/g, courseDocID), + ) + + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const { id: homePageID } = await payload.create({ + collection: 'pages', + data: homePageJSON, + }) + + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const { id: postOneID } = await payload.create({ + collection: 'posts', + data: JSON.parse(JSON.stringify(post1)), + }) + + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const { id: postTwoID } = await payload.create({ + collection: 'posts', + data: JSON.parse(JSON.stringify(post2)), + }) + + await payload.updateGlobal({ + slug: 'header', + data: { + navItems: [ + { + link: { + type: 'reference', + reference: { + relationTo: 'pages', + value: postsPageID, + }, + label: 'Posts', + }, + }, + ], + }, + }) +} diff --git a/templates/website/src/seed/post-1.ts b/templates/website/src/seed/post-1.ts new file mode 100644 index 0000000000..54f03457b5 --- /dev/null +++ b/templates/website/src/seed/post-1.ts @@ -0,0 +1,57 @@ +import type { Post } from '../payload-types' + +export const post1: Partial = { + title: 'Post 1', + slug: 'post-1', + _status: 'published', + hero: { + type: 'lowImpact', + richText: [ + { + children: [ + { + text: 'Post 1', + }, + ], + type: 'h1', + }, + ], + links: [], + media: '', + }, + layout: [ + { + blockName: 'Content Block', + blockType: 'content', + backgroundColor: 'white', + columns: [ + { + size: 'full', + richText: [ + { + children: [ + { + text: 'Add more layout building blocks for Post 1 below here', + }, + ], + }, + ], + enableLink: false, + link: { + reference: { + value: '', + relationTo: 'pages', + }, + url: '', + label: '', + }, + }, + ], + }, + ], + meta: { + title: 'Post 1', + description: 'Post 1', + image: '', + }, +} diff --git a/templates/website/src/seed/post-2.ts b/templates/website/src/seed/post-2.ts new file mode 100644 index 0000000000..a039af8a3f --- /dev/null +++ b/templates/website/src/seed/post-2.ts @@ -0,0 +1,57 @@ +import type { Post } from '../payload-types' + +export const post2: Partial = { + title: 'Post 2', + slug: 'post-2', + _status: 'published', + hero: { + type: 'lowImpact', + richText: [ + { + children: [ + { + text: 'Post 2', + }, + ], + type: 'h1', + }, + ], + links: [], + media: '', + }, + layout: [ + { + blockName: 'Content Block', + blockType: 'content', + backgroundColor: 'white', + columns: [ + { + size: 'full', + richText: [ + { + children: [ + { + text: 'Add more layout building blocks for Post 2 below here', + }, + ], + }, + ], + enableLink: false, + link: { + reference: { + value: '', + relationTo: 'pages', + }, + url: '', + label: '', + }, + }, + ], + }, + ], + meta: { + title: 'Post 2', + description: 'Post 2', + image: '', + }, +} diff --git a/templates/website/src/seed/posts-page.ts b/templates/website/src/seed/posts-page.ts new file mode 100644 index 0000000000..d07a4aaa33 --- /dev/null +++ b/templates/website/src/seed/posts-page.ts @@ -0,0 +1,68 @@ +import type { Page } from '../payload-types' + +export const posts: Partial = { + title: 'Posts', + slug: 'posts', + _status: 'published', + hero: { + type: 'highImpact', + richText: [ + { + children: [ + { + text: 'All Posts', + }, + ], + type: 'h1', + }, + ], + links: [ + { + link: { + type: 'custom', + appearance: 'secondary', + reference: null, + label: 'View on GitHub', + url: 'https://github.com/payloadcms/template-website', + newTab: true, + }, + }, + ], + media: '{{SHIRTS_IMAGE}}', + }, + layout: [ + { + blockName: 'Content Block', + blockType: 'content', + backgroundColor: 'white', + columns: [ + { + size: 'full', + richText: [ + { + children: [ + { + text: 'Here are all of your posts...', + }, + ], + }, + ], + enableLink: false, + link: { + reference: { + value: '', + relationTo: 'pages', + }, + url: '', + label: '', + }, + }, + ], + }, + ], + meta: { + title: 'Website ABC', + description: 'Next.js Website with Payload CMS', + image: '{{SHIRTS_IMAGE}}', + }, +} diff --git a/templates/website/src/seed/shirt-image.ts b/templates/website/src/seed/shirt-image.ts new file mode 100644 index 0000000000..2338fd1d54 --- /dev/null +++ b/templates/website/src/seed/shirt-image.ts @@ -0,0 +1,40 @@ +export const shirtImage = { + alt: 'Shirts', + caption: [ + { + children: [ + { + text: 'Photo by ', + }, + { + type: 'link', + linkType: 'custom', + url: 'https://unsplash.com/@henmankk?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText', + newTab: true, + children: [ + { + text: 'Keagan Henman', + }, + ], + }, + { + text: ' on ', + }, + { + type: 'link', + linkType: 'custom', + url: 'https://unsplash.com/photos/Won79_9oUEk?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText', + newTab: true, + children: [ + { + text: 'Unsplash', + }, + ], + }, + { + text: '.', + }, + ], + }, + ], +} diff --git a/templates/website/src/seed/shirts.jpg b/templates/website/src/seed/shirts.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ae614855dc6633efe9fe1ff7da0de732becc945b GIT binary patch literal 93586 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 literal 0 HcmV?d00001 diff --git a/templates/website/src/server.ts b/templates/website/src/server.ts new file mode 100644 index 0000000000..0afd8b93d1 --- /dev/null +++ b/templates/website/src/server.ts @@ -0,0 +1,35 @@ +import express from 'express' +import payload from 'payload' + +// eslint-disable-next-line +require('dotenv').config() + +import { seed } from './seed' + +const app = express() + +// Redirect root to Admin panel +app.get('/', (_, res) => { + res.redirect('/admin') +}) + +const start = async (): Promise => { + await payload.init({ + secret: process.env.PAYLOAD_SECRET, + mongoURL: process.env.MONGODB_URI, + express: app, + onInit: () => { + payload.logger.info(`Payload Admin URL: ${payload.getAdminURL()}`) + }, + }) + + if (process.env.PAYLOAD_SEED === 'true') { + payload.logger.info('Seeding Payload...') + await seed(payload) + payload.logger.info('Done.') + } + + app.listen(process.env.PORT) +} + +start() diff --git a/templates/website/src/utilities/deepMerge.ts b/templates/website/src/utilities/deepMerge.ts new file mode 100644 index 0000000000..a291fdfd4e --- /dev/null +++ b/templates/website/src/utilities/deepMerge.ts @@ -0,0 +1,33 @@ +/** + * Simple object check. + * @param item + * @returns {boolean} + */ +export function isObject(item: unknown): boolean { + return item && typeof item === 'object' && !Array.isArray(item) +} + +/** + * Deep merge two objects. + * @param target + * @param ...sources + */ +export default function deepMerge(target: T, source: R): T { + const output = { ...target } + if (isObject(target) && isObject(source)) { + Object.keys(source).forEach(key => { + if (isObject(source[key])) { + // @ts-expect-error + if (!(key in target)) { + Object.assign(output, { [key]: source[key] }) + } else { + output[key] = deepMerge(target[key], source[key]) + } + } else { + Object.assign(output, { [key]: source[key] }) + } + }) + } + + return output +} diff --git a/templates/website/tsconfig.json b/templates/website/tsconfig.json new file mode 100644 index 0000000000..b14be143cc --- /dev/null +++ b/templates/website/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "strict": false, + "esModuleInterop": true, + "skipLibCheck": true, + "outDir": "./dist", + "rootDir": "./src", + "jsx": "react", + }, + "include": [ + "src" + ], + "exclude": [ + "node_modules", + "dist", + "build", + ], + "ts-node": { + "transpileOnly": true + } +} diff --git a/templates/website/yarn.lock b/templates/website/yarn.lock new file mode 100644 index 0000000000..b3221f4803 --- /dev/null +++ b/templates/website/yarn.lock @@ -0,0 +1,8366 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + +"@aws-crypto/crc32@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-3.0.0.tgz#07300eca214409c33e3ff769cd5697b57fdd38fa" + integrity sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA== + dependencies: + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + tslib "^1.11.1" + +"@aws-crypto/crc32c@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32c/-/crc32c-3.0.0.tgz#016c92da559ef638a84a245eecb75c3e97cb664f" + integrity sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w== + dependencies: + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + tslib "^1.11.1" + +"@aws-crypto/ie11-detection@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz#640ae66b4ec3395cee6a8e94ebcd9f80c24cd688" + integrity sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/sha1-browser@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha1-browser/-/sha1-browser-3.0.0.tgz#f9083c00782b24714f528b1a1fef2174002266a3" + integrity sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw== + dependencies: + "@aws-crypto/ie11-detection" "^3.0.0" + "@aws-crypto/supports-web-crypto" "^3.0.0" + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-browser@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz#05f160138ab893f1c6ba5be57cfd108f05827766" + integrity sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ== + dependencies: + "@aws-crypto/ie11-detection" "^3.0.0" + "@aws-crypto/sha256-js" "^3.0.0" + "@aws-crypto/supports-web-crypto" "^3.0.0" + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-js@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-1.2.2.tgz#02acd1a1fda92896fc5a28ec7c6e164644ea32fc" + integrity sha512-Nr1QJIbW/afYYGzYvrF70LtaHrIRtd4TNAglX8BvlfxJLZ45SAmueIKYl5tWoNBPzp65ymXGFK0Bb1vZUpuc9g== + dependencies: + "@aws-crypto/util" "^1.2.2" + "@aws-sdk/types" "^3.1.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-js@3.0.0", "@aws-crypto/sha256-js@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz#f06b84d550d25521e60d2a0e2a90139341e007c2" + integrity sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ== + dependencies: + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + tslib "^1.11.1" + +"@aws-crypto/supports-web-crypto@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz#5d1bf825afa8072af2717c3e455f35cda0103ec2" + integrity sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/util@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-1.2.2.tgz#b28f7897730eb6538b21c18bd4de22d0ea09003c" + integrity sha512-H8PjG5WJ4wz0UXAFXeJjWCW1vkvIJ3qUUD+rGRwJ2/hj+xT58Qle2MTql/2MGzkU+1JLAFuR6aJpLAjHwhmwwg== + dependencies: + "@aws-sdk/types" "^3.1.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/util@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-3.0.0.tgz#1c7ca90c29293f0883468ad48117937f0fe5bfb0" + integrity sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w== + dependencies: + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-sdk/abort-controller@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.357.0.tgz#5c5336d18b97781d0b940700375d825f9e20d9be" + integrity sha512-nQYDJon87quPwt2JZJwUN2GFKJnvE5kWb6tZP4xb5biSGUKBqDQo06oYed7yokatCuCMouIXV462aN0fWODtOw== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/chunked-blob-reader@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/chunked-blob-reader/-/chunked-blob-reader-3.310.0.tgz#2ada1b024a2745c2fe7e869606fab781325f981e" + integrity sha512-CrJS3exo4mWaLnWxfCH+w88Ou0IcAZSIkk4QbmxiHl/5Dq705OLoxf4385MVyExpqpeVJYOYQ2WaD8i/pQZ2fg== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/client-cognito-identity@3.360.0", "@aws-sdk/client-cognito-identity@^3.289.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.360.0.tgz#c7d904d3b03e03f0530edd4704326c9a7991014b" + integrity sha512-9ZORXlW52GTUqM0M0a+49yH4a1kxk5HKyvzXHKttQEiml1EKrteVsvU5zDvcY6v6y3QwDeT4nDuXbb7NVB7glQ== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.360.0" + "@aws-sdk/config-resolver" "3.357.0" + "@aws-sdk/credential-provider-node" "3.360.0" + "@aws-sdk/fetch-http-handler" "3.357.0" + "@aws-sdk/hash-node" "3.357.0" + "@aws-sdk/invalid-dependency" "3.357.0" + "@aws-sdk/middleware-content-length" "3.357.0" + "@aws-sdk/middleware-endpoint" "3.357.0" + "@aws-sdk/middleware-host-header" "3.357.0" + "@aws-sdk/middleware-logger" "3.357.0" + "@aws-sdk/middleware-recursion-detection" "3.357.0" + "@aws-sdk/middleware-retry" "3.357.0" + "@aws-sdk/middleware-serde" "3.357.0" + "@aws-sdk/middleware-signing" "3.357.0" + "@aws-sdk/middleware-stack" "3.357.0" + "@aws-sdk/middleware-user-agent" "3.357.0" + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/node-http-handler" "3.360.0" + "@aws-sdk/smithy-client" "3.360.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/url-parser" "3.357.0" + "@aws-sdk/util-base64" "3.310.0" + "@aws-sdk/util-body-length-browser" "3.310.0" + "@aws-sdk/util-body-length-node" "3.310.0" + "@aws-sdk/util-defaults-mode-browser" "3.360.0" + "@aws-sdk/util-defaults-mode-node" "3.360.0" + "@aws-sdk/util-endpoints" "3.357.0" + "@aws-sdk/util-retry" "3.357.0" + "@aws-sdk/util-user-agent-browser" "3.357.0" + "@aws-sdk/util-user-agent-node" "3.357.0" + "@aws-sdk/util-utf8" "3.310.0" + "@smithy/protocol-http" "^1.0.1" + "@smithy/types" "^1.0.0" + tslib "^2.5.0" + +"@aws-sdk/client-s3@^3.142.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.360.0.tgz#07bfcbcd6c46f221552941bf32742b8c7a669baa" + integrity sha512-6URI0ZWk5ar0atJ8xTxD2u/oLWwBlosLTyqNpsMe7DKvZQ5DgUfLw3BHeC2d4FQID1I74rkGCdHLtRe4MOiIfA== + dependencies: + "@aws-crypto/sha1-browser" "3.0.0" + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.360.0" + "@aws-sdk/config-resolver" "3.357.0" + "@aws-sdk/credential-provider-node" "3.360.0" + "@aws-sdk/eventstream-serde-browser" "3.357.0" + "@aws-sdk/eventstream-serde-config-resolver" "3.357.0" + "@aws-sdk/eventstream-serde-node" "3.357.0" + "@aws-sdk/fetch-http-handler" "3.357.0" + "@aws-sdk/hash-blob-browser" "3.357.0" + "@aws-sdk/hash-node" "3.357.0" + "@aws-sdk/hash-stream-node" "3.357.0" + "@aws-sdk/invalid-dependency" "3.357.0" + "@aws-sdk/md5-js" "3.357.0" + "@aws-sdk/middleware-bucket-endpoint" "3.357.0" + "@aws-sdk/middleware-content-length" "3.357.0" + "@aws-sdk/middleware-endpoint" "3.357.0" + "@aws-sdk/middleware-expect-continue" "3.357.0" + "@aws-sdk/middleware-flexible-checksums" "3.357.0" + "@aws-sdk/middleware-host-header" "3.357.0" + "@aws-sdk/middleware-location-constraint" "3.357.0" + "@aws-sdk/middleware-logger" "3.357.0" + "@aws-sdk/middleware-recursion-detection" "3.357.0" + "@aws-sdk/middleware-retry" "3.357.0" + "@aws-sdk/middleware-sdk-s3" "3.357.0" + "@aws-sdk/middleware-serde" "3.357.0" + "@aws-sdk/middleware-signing" "3.357.0" + "@aws-sdk/middleware-ssec" "3.357.0" + "@aws-sdk/middleware-stack" "3.357.0" + "@aws-sdk/middleware-user-agent" "3.357.0" + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/node-http-handler" "3.360.0" + "@aws-sdk/signature-v4-multi-region" "3.357.0" + "@aws-sdk/smithy-client" "3.360.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/url-parser" "3.357.0" + "@aws-sdk/util-base64" "3.310.0" + "@aws-sdk/util-body-length-browser" "3.310.0" + "@aws-sdk/util-body-length-node" "3.310.0" + "@aws-sdk/util-defaults-mode-browser" "3.360.0" + "@aws-sdk/util-defaults-mode-node" "3.360.0" + "@aws-sdk/util-endpoints" "3.357.0" + "@aws-sdk/util-retry" "3.357.0" + "@aws-sdk/util-stream" "3.360.0" + "@aws-sdk/util-user-agent-browser" "3.357.0" + "@aws-sdk/util-user-agent-node" "3.357.0" + "@aws-sdk/util-utf8" "3.310.0" + "@aws-sdk/util-waiter" "3.357.0" + "@aws-sdk/xml-builder" "3.310.0" + "@smithy/protocol-http" "^1.0.1" + "@smithy/types" "^1.0.0" + fast-xml-parser "4.2.5" + tslib "^2.5.0" + +"@aws-sdk/client-sso-oidc@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.360.0.tgz#7964cc6334822b955dd0ba3b749f62feb55cebcc" + integrity sha512-czIpPt75fS3gH3vgFz76+WTaKcvPxC/DnPuqVyHdihMmP0UuwGPU9jn+Xx9RdUw7Yay3+rJRe3AYgBn4Xb220g== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/config-resolver" "3.357.0" + "@aws-sdk/fetch-http-handler" "3.357.0" + "@aws-sdk/hash-node" "3.357.0" + "@aws-sdk/invalid-dependency" "3.357.0" + "@aws-sdk/middleware-content-length" "3.357.0" + "@aws-sdk/middleware-endpoint" "3.357.0" + "@aws-sdk/middleware-host-header" "3.357.0" + "@aws-sdk/middleware-logger" "3.357.0" + "@aws-sdk/middleware-recursion-detection" "3.357.0" + "@aws-sdk/middleware-retry" "3.357.0" + "@aws-sdk/middleware-serde" "3.357.0" + "@aws-sdk/middleware-stack" "3.357.0" + "@aws-sdk/middleware-user-agent" "3.357.0" + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/node-http-handler" "3.360.0" + "@aws-sdk/smithy-client" "3.360.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/url-parser" "3.357.0" + "@aws-sdk/util-base64" "3.310.0" + "@aws-sdk/util-body-length-browser" "3.310.0" + "@aws-sdk/util-body-length-node" "3.310.0" + "@aws-sdk/util-defaults-mode-browser" "3.360.0" + "@aws-sdk/util-defaults-mode-node" "3.360.0" + "@aws-sdk/util-endpoints" "3.357.0" + "@aws-sdk/util-retry" "3.357.0" + "@aws-sdk/util-user-agent-browser" "3.357.0" + "@aws-sdk/util-user-agent-node" "3.357.0" + "@aws-sdk/util-utf8" "3.310.0" + "@smithy/protocol-http" "^1.0.1" + "@smithy/types" "^1.0.0" + tslib "^2.5.0" + +"@aws-sdk/client-sso@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.360.0.tgz#8238f6adfac0977c9321efca3a82ca696cbf7753" + integrity sha512-0f6eG+6XFbDxrma5xxNGg/FJxh/OHC6h8AkfNms9Lv1gBoQSagpcTor+ax0z9F6lypOjaelX6k4DpeKAp4PZeA== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/config-resolver" "3.357.0" + "@aws-sdk/fetch-http-handler" "3.357.0" + "@aws-sdk/hash-node" "3.357.0" + "@aws-sdk/invalid-dependency" "3.357.0" + "@aws-sdk/middleware-content-length" "3.357.0" + "@aws-sdk/middleware-endpoint" "3.357.0" + "@aws-sdk/middleware-host-header" "3.357.0" + "@aws-sdk/middleware-logger" "3.357.0" + "@aws-sdk/middleware-recursion-detection" "3.357.0" + "@aws-sdk/middleware-retry" "3.357.0" + "@aws-sdk/middleware-serde" "3.357.0" + "@aws-sdk/middleware-stack" "3.357.0" + "@aws-sdk/middleware-user-agent" "3.357.0" + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/node-http-handler" "3.360.0" + "@aws-sdk/smithy-client" "3.360.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/url-parser" "3.357.0" + "@aws-sdk/util-base64" "3.310.0" + "@aws-sdk/util-body-length-browser" "3.310.0" + "@aws-sdk/util-body-length-node" "3.310.0" + "@aws-sdk/util-defaults-mode-browser" "3.360.0" + "@aws-sdk/util-defaults-mode-node" "3.360.0" + "@aws-sdk/util-endpoints" "3.357.0" + "@aws-sdk/util-retry" "3.357.0" + "@aws-sdk/util-user-agent-browser" "3.357.0" + "@aws-sdk/util-user-agent-node" "3.357.0" + "@aws-sdk/util-utf8" "3.310.0" + "@smithy/protocol-http" "^1.0.1" + "@smithy/types" "^1.0.0" + tslib "^2.5.0" + +"@aws-sdk/client-sts@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.360.0.tgz#a505cbac3af8753e445723a8a9deeba105f3dcd0" + integrity sha512-ORRwSdwlSYGHfhQCXKtr1eJeTjI14l5IZRJbRDgXs46y4/GQj/rt/2Q6WGjVMfM1ZRRiEII2/vK7mU7IJcWkFw== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/config-resolver" "3.357.0" + "@aws-sdk/credential-provider-node" "3.360.0" + "@aws-sdk/fetch-http-handler" "3.357.0" + "@aws-sdk/hash-node" "3.357.0" + "@aws-sdk/invalid-dependency" "3.357.0" + "@aws-sdk/middleware-content-length" "3.357.0" + "@aws-sdk/middleware-endpoint" "3.357.0" + "@aws-sdk/middleware-host-header" "3.357.0" + "@aws-sdk/middleware-logger" "3.357.0" + "@aws-sdk/middleware-recursion-detection" "3.357.0" + "@aws-sdk/middleware-retry" "3.357.0" + "@aws-sdk/middleware-sdk-sts" "3.357.0" + "@aws-sdk/middleware-serde" "3.357.0" + "@aws-sdk/middleware-signing" "3.357.0" + "@aws-sdk/middleware-stack" "3.357.0" + "@aws-sdk/middleware-user-agent" "3.357.0" + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/node-http-handler" "3.360.0" + "@aws-sdk/smithy-client" "3.360.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/url-parser" "3.357.0" + "@aws-sdk/util-base64" "3.310.0" + "@aws-sdk/util-body-length-browser" "3.310.0" + "@aws-sdk/util-body-length-node" "3.310.0" + "@aws-sdk/util-defaults-mode-browser" "3.360.0" + "@aws-sdk/util-defaults-mode-node" "3.360.0" + "@aws-sdk/util-endpoints" "3.357.0" + "@aws-sdk/util-retry" "3.357.0" + "@aws-sdk/util-user-agent-browser" "3.357.0" + "@aws-sdk/util-user-agent-node" "3.357.0" + "@aws-sdk/util-utf8" "3.310.0" + "@smithy/protocol-http" "^1.0.1" + "@smithy/types" "^1.0.0" + fast-xml-parser "4.2.5" + tslib "^2.5.0" + +"@aws-sdk/config-resolver@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.357.0.tgz#7672b3f446ed64025d1763efea0289f7f49833a1" + integrity sha512-cukfg0nX7Tzx/xFyH5F4Eyb8DA1ITCGtSQv4vnEjgUop+bkzckuGLKEeBcBhyZY+aw+2C9CVwIHwIMhRm0ul5w== + dependencies: + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-config-provider" "3.310.0" + "@aws-sdk/util-middleware" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-cognito-identity@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.360.0.tgz#699502e18b7457dda12a5402ce6700037cfce218" + integrity sha512-84710lUaDBc7jujf8WnvBAcFt7gmOPQXkwNe6M4STMDG6HTvbOc2jRzjIu0iOTz8lNCt5A4+mdOl31JgfBF/LA== + dependencies: + "@aws-sdk/client-cognito-identity" "3.360.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-env@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.357.0.tgz#9746b9f958f490db5b1502d36cba7da43da460cb" + integrity sha512-UOecwfqvXgJVqhfWSZ2S44v2Nq2oceW0PQVQp0JAa9opc2rxSVIfyOhPr0yMoPmpyNcP22rgeg6ce70KULYwiA== + dependencies: + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-imds@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.357.0.tgz#6b5317c79e15a059a2f71623ec673bea03af04f6" + integrity sha512-upw/bfsl7/WydT6gM0lBuR4Ipp4fzYm/E3ObFr0Mg5OkgVPt5ZJE+eeFTvwCpDdBSTKs4JfrK6/iEK8A23Q1jQ== + dependencies: + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/url-parser" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-ini@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.360.0.tgz#1d984cfa414dcbfc8ae1a252a1b87b5f2f4b1707" + integrity sha512-pWuLTq+yjSFssPGhDJ8oxvZsu7/F1KissGRt65G4qrfxHhoiMRcLF1GtFJueDQpitZ1i3mZXHVn/OSv4LPQ1Lw== + dependencies: + "@aws-sdk/credential-provider-env" "3.357.0" + "@aws-sdk/credential-provider-imds" "3.357.0" + "@aws-sdk/credential-provider-process" "3.357.0" + "@aws-sdk/credential-provider-sso" "3.360.0" + "@aws-sdk/credential-provider-web-identity" "3.357.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/shared-ini-file-loader" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-node@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.360.0.tgz#aa5fbb0f47fdb9c0e069760f8a18eebd2d6e47e1" + integrity sha512-j4Lu5vXkdzz/L6fGKKxnL0vcwAGHlwFHjTg9nRagMn1lvaVjtktXeM30duHTBQq9i+ejdFxpVNWYrmHGaWPNdg== + dependencies: + "@aws-sdk/credential-provider-env" "3.357.0" + "@aws-sdk/credential-provider-imds" "3.357.0" + "@aws-sdk/credential-provider-ini" "3.360.0" + "@aws-sdk/credential-provider-process" "3.357.0" + "@aws-sdk/credential-provider-sso" "3.360.0" + "@aws-sdk/credential-provider-web-identity" "3.357.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/shared-ini-file-loader" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-process@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.357.0.tgz#5e661bd4431a171ee862bb60ff0054d11dea150a" + integrity sha512-qFWWilFPsc2hR7O0KIhwcE78w+pVIK+uQR6MQMfdRyxUndgiuCorJwVjedc3yZtmnoELHF34j+m8whTBXv9E7Q== + dependencies: + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/shared-ini-file-loader" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-sso@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.360.0.tgz#7db96614bb2dcd630412e991ce25257a8f42b0e7" + integrity sha512-kW0FR8AbMQrJxADxIqYSjHVN2RXwHmA5DzogYm1AjOkYRMN9JHDVOMQP2K2M6FCynZqTYsKW5lzjPOjS0fu8Dw== + dependencies: + "@aws-sdk/client-sso" "3.360.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/shared-ini-file-loader" "3.357.0" + "@aws-sdk/token-providers" "3.360.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-web-identity@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.357.0.tgz#32765fc53779d84c078d20e4e1585b8fedfcf61f" + integrity sha512-0KRRAFrXy5HJe2vqnCWCoCS+fQw7IoIj3KQsuURJMW4F+ifisxCgEsh3brJ2LQlN4ElWTRJhlrDHNZ/pd61D4w== + dependencies: + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/credential-providers@^3.289.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.360.0.tgz#32f3d21f50fbbfd8fac9b184f757c8e751d29223" + integrity sha512-Bw7EmOAy30c/zspotzmQG4oJMQyRdNrsDyI99bb7GALwZhXgqh90hYw+HCz0Rq8W5H5BT3pBjby68PoYW4Av7w== + dependencies: + "@aws-sdk/client-cognito-identity" "3.360.0" + "@aws-sdk/client-sso" "3.360.0" + "@aws-sdk/client-sts" "3.360.0" + "@aws-sdk/credential-provider-cognito-identity" "3.360.0" + "@aws-sdk/credential-provider-env" "3.357.0" + "@aws-sdk/credential-provider-imds" "3.357.0" + "@aws-sdk/credential-provider-ini" "3.360.0" + "@aws-sdk/credential-provider-node" "3.360.0" + "@aws-sdk/credential-provider-process" "3.357.0" + "@aws-sdk/credential-provider-sso" "3.360.0" + "@aws-sdk/credential-provider-web-identity" "3.357.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/eventstream-codec@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-codec/-/eventstream-codec-3.357.0.tgz#32b6f0d97f3ea6e479e0d59c0a9b625faf3f887b" + integrity sha512-bqenTHG6GH6aCk/Il+ooWXVVAZuc8lOgVEy9bE2hI49oVqT8zSuXxQB+w1WWyZoAOPcelsjayB1wfPub8VDBxQ== + dependencies: + "@aws-crypto/crc32" "3.0.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-hex-encoding" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/eventstream-serde-browser@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.357.0.tgz#fc2074bb7a9d8a358b9e0fb601924094af33c133" + integrity sha512-hBabtmwuspVHGSKnUccDiSIbg+IVoBThx6wYt6i4edbWAITHF3ADVKXy7icV400CAyG0XTZgxjE6FKpiDxj9rQ== + dependencies: + "@aws-sdk/eventstream-serde-universal" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/eventstream-serde-config-resolver@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.357.0.tgz#d5db248a17fb22bc95d3088b7d840a065f015251" + integrity sha512-E6rwk+1KFXhKmJ+v7JW5Uyyda1yN5XRVupCnCrtFsHFmhVGQxFacoUZIee3bfuCpC58dLSyESggxGpUd3XOSsw== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/eventstream-serde-node@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.357.0.tgz#4fc79eea9eb85c173f44ad8e37550231e81cf144" + integrity sha512-boXDy+JWcPfHc9OIKV6I4Bh2XrLcg+eac+/LldNZFcDIB33/gHIM2CJw8u565Iebdz1NKEkP/QPPZbk2y+abPA== + dependencies: + "@aws-sdk/eventstream-serde-universal" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/eventstream-serde-universal@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.357.0.tgz#b83fb0bbc9623eb3e5a698cb3bfd1b8c502fd351" + integrity sha512-9/Wcdxx38XQAturqOAGYNCaLOzFVnW+xwxd4af9eNOfZfZ5PP5PRKBIpvKDsN26e3l4f3GodHx7MS1WB7BBc2w== + dependencies: + "@aws-sdk/eventstream-codec" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/fetch-http-handler@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.357.0.tgz#8b33b8cefe036fd932b694242893ef3db1a74f02" + integrity sha512-5sPloTO8y8fAnS/6/Sfp/aVoL9zuhzkLdWBORNzMazdynVNEzWKWCPZ27RQpgkaCDHiXjqUY4kfuFXAGkvFfDQ== + dependencies: + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/querystring-builder" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-base64" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/hash-blob-browser@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.357.0.tgz#e507929499fe0fe128664b67cd26f63f16ed4d25" + integrity sha512-RDd6UgrGHDmleTnXM9LRSSVa69euSAG2mlNhZMEDWk3OFseXVYqBDaqroVbQ01rM2UAe8MeBFchlV9OmxuVgvw== + dependencies: + "@aws-sdk/chunked-blob-reader" "3.310.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/hash-node@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.357.0.tgz#70666b0d6a49191cf33ef32b235c33b242de36ce" + integrity sha512-fq3LS9AxHKb7dTZkm6iM1TrGk6XOTZz96iEZPME1+vjiSEXGWuebHt87q92n+KozVGRypn9MId3lHOPBBjygNQ== + dependencies: + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-buffer-from" "3.310.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/hash-stream-node@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-stream-node/-/hash-stream-node-3.357.0.tgz#a78c6d1ae1c78cb52854311bad50988e8fc12142" + integrity sha512-KZjN1VAw1KHNp+xKVOWBGS+MpaYQTjZFD5f+7QQqW4TfbAkFFwIAEYIHq5Q8Gw+jVh0h61OrV/LyW3J2PVzc+w== + dependencies: + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/invalid-dependency@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.357.0.tgz#4e86c689a6b0c4d0fe43ba335218d67e9aa652a6" + integrity sha512-HnCYZczf0VdyxMVMMxmA3QJAyyPSFbcMtZzgKbxVTWTG7GKpQe0psWZu/7O2Nk31mKg6vEUdiP1FylqLBsgMOA== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/is-array-buffer@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/is-array-buffer/-/is-array-buffer-3.310.0.tgz#f87a79f1b858c88744f07e8d8d0a791df204017e" + integrity sha512-urnbcCR+h9NWUnmOtet/s4ghvzsidFmspfhYaHAmSRdy9yDjdjBJMFjjsn85A1ODUktztm+cVncXjQ38WCMjMQ== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/lib-storage@^3.267.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/lib-storage/-/lib-storage-3.360.0.tgz#56d29aedd10d49fcc7e6c032cf766cabad45fddc" + integrity sha512-3x3glxHaXj9C/pq8hHNafnhSibdCgud6/7NI7A/CcyarHg6OIj1FVuYWzGMtN028wyOkoDfnfceaaMJdQJQ3WA== + dependencies: + "@aws-sdk/middleware-endpoint" "3.357.0" + "@aws-sdk/smithy-client" "3.360.0" + buffer "5.6.0" + events "3.3.0" + stream-browserify "3.0.0" + tslib "^2.5.0" + +"@aws-sdk/md5-js@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/md5-js/-/md5-js-3.357.0.tgz#61853f562e71af0ec58aeede7883de122177ed55" + integrity sha512-to42sFAL7KgV/X9X40LLfEaNMHMGQL6/7mPMVCL/W2BZf3zw5OTl3lAaNyjXA+gO5Uo4lFEiQKAQVKNbr8b8Nw== + dependencies: + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-bucket-endpoint@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.357.0.tgz#9d19ba4a7971c5302e32d024e477755a1f6185ff" + integrity sha512-ep2T0FJXRDl6nffLqiVZUYfDocZ3B72wvHeozckkLVRX0TK91WEpzv4Zz2vdeBp6CGkM3g8oGjbb6ZqllUZ6TA== + dependencies: + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-arn-parser" "3.310.0" + "@aws-sdk/util-config-provider" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-content-length@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.357.0.tgz#eafad2db1816cb5d91cd1e090211f040f29bbdaa" + integrity sha512-zQOFEyzOXAgN4M54tYNWGxKxnyzY0WwYDTFzh9riJRmxN1hTEKHUKmze4nILIf5rkQmOG4kTf1qmfazjkvZAhw== + dependencies: + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-endpoint@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.357.0.tgz#bc94bbf55339aa5220011f4ae8e03a7966ce28be" + integrity sha512-ScJi0SL8X/Lyi0Fp5blg0QN/Z6PoRwV/ZJXd8dQkXSznkbSvJHfqPP0xk/w3GcQ1TKsu5YEPfeYy8ejcq+7Pgg== + dependencies: + "@aws-sdk/middleware-serde" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/url-parser" "3.357.0" + "@aws-sdk/util-middleware" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-expect-continue@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.357.0.tgz#c392c4f31300695158070223f1e337c7503aca92" + integrity sha512-KeizuiiDmdLeAbiNsJt/rZENY5iJo4wCTl7h81htDC60wSwVwFG03IdgvZlFH6jktYRh4mUDD/6Oljme6yPNxw== + dependencies: + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-flexible-checksums@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.357.0.tgz#957a383dc66942e63493d2ba182ee775e8139507" + integrity sha512-NNQ/iPN6YyzqgVaV8AeYQMZ8y1OmUW27vmt0R66UUw5H5THGc6X9QXoKfie7OHn80Qv1S8P5jw8z5MpvDtjSnQ== + dependencies: + "@aws-crypto/crc32" "3.0.0" + "@aws-crypto/crc32c" "3.0.0" + "@aws-sdk/is-array-buffer" "3.310.0" + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-host-header@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.357.0.tgz#9d4f803fc7d9b1f5582a62844b1d841b3c849fe0" + integrity sha512-HuGLcP7JP1qJ5wGT9GSlEknDaTSnOzHY4T6IPFuvFjAy3PvY5siQNm6+VRqdVS+n6/kzpL3JP5sAVM3aoxHT6Q== + dependencies: + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-location-constraint@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.357.0.tgz#b147973f70c82cf06d3bafcf32b6b826203bcb69" + integrity sha512-4IsIHhwZ2/o7yjLI1XtGMkJ442cbIN5/NtI/Ml0G5UHYviUm8sqvH2vldFBMK5bPuVdk6GpqXpy6wYc9rLJj2w== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-logger@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.357.0.tgz#851a44a934ad8f33465ae4665a6c07ac967a8bbb" + integrity sha512-dncT3tr+lZ9+duZo52rASgO6AKVwRcsc2/T93gmaYVrJqI6WWAwQ7yML5s72l9ZjQ5LZ+4jjrgtlufavAS0eCg== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-recursion-detection@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.357.0.tgz#2d7a8cf43f1299c1ff1e113988bd801e7f527401" + integrity sha512-AXC54IeDS3jC1dbbkYHML4STvBPcKZ4IJTWdjEK1RCOgqXd0Ze1cE1e21wyj1tM6prF03zLyvpBd+3TS++nqfA== + dependencies: + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-retry@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.357.0.tgz#6dfbd4ddc62c415b6b6de16d3a37ad4d69c8a10c" + integrity sha512-ZCbXCYv3nglQqwREYxxpclrnR9MYPAnHlLcC8e9PbApqxGnaZdhoywxoqbgqT3hf/RM7kput4vEHDl1fyymcRQ== + dependencies: + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/service-error-classification" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-middleware" "3.357.0" + "@aws-sdk/util-retry" "3.357.0" + tslib "^2.5.0" + uuid "^8.3.2" + +"@aws-sdk/middleware-sdk-s3@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.357.0.tgz#3962e60183930b497599357f42f531578544eb18" + integrity sha512-EFQaPD8SoXcK7RiEOZz0zIX9owQW6txu8vrOOVva9xMts36z/3E7b4FVsgEJ53Ixa1x38ddPJxp4U8EIaf+pvQ== + dependencies: + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-arn-parser" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-sdk-sts@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.357.0.tgz#8f9be3db8f4fd8563baf66925ee326f579b6ae4d" + integrity sha512-Ng2VjLrPiL02QOcs1qs9jG2boO4Gn+v3VIbOJLG4zXcfbSq55iIWtlmr2ljfw9vP5aLhWtcODfmKHS5Bp+019Q== + dependencies: + "@aws-sdk/middleware-signing" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-serde@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.357.0.tgz#2614031c81981580bce4bee502985e28e51dadb2" + integrity sha512-bGI4kYuuEsFjlANbyJLyy4AovETnyf/SukgLOG7Qjbua+ZGuzvRhMsk21mBKKGrnsTO4PmtieJo6xClThGAN8g== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-signing@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.357.0.tgz#9aee1ad571b092ad0bbd63e0b551ffb575220688" + integrity sha512-yB9ewEqI6Fw1OrmKFrUypbCqN5ijk06UGPochybamMuPxxkwMT3bnrm7eezsCA+TZbJyKhpffpyobwuv+xGNrA== + dependencies: + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/signature-v4" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-middleware" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-ssec@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.357.0.tgz#c99b9b457cfaee32796110b324d2d5056c86b4df" + integrity sha512-uE3nNvJclcY7SgGoOgDCUgfc7ElXQmWVpks8AZzAjJj7bG5j6Bv3FOOYtGtvtxUzTHaOdn+yQwjssV1cZ6GTQw== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-stack@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.357.0.tgz#51f181691e8c76694b6583561ba0a0a14472506c" + integrity sha512-nNV+jfwGwmbOGZujAY/U8AW3EbVlxa9DJDLz3TPp/39o6Vu5KEzHJyDDNreo2k9V/TMvV+nOzHafufgPdagv7w== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/middleware-user-agent@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.357.0.tgz#d4d27549bbcfdc03f5a8db74435a345b05b40373" + integrity sha512-M/CsAXjGblZS4rEbMb0Dn9IXbfq4EjVaTHBfvuILU/dKRppWvjnm2lRtqCZ+LIT3ATbAjA3/dY7dWsjxQWwijA== + dependencies: + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-endpoints" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/node-config-provider@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.357.0.tgz#2e47aa36e5efae89b65c79b8c27180d3d8a2d901" + integrity sha512-kwBIzKCaW3UWqLdELhy7TcN8itNMOjbzga530nalFILMvn2IxrkdKQhNgxGBXy6QK6kCOtH6OmcrG3/oZkLwig== + dependencies: + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/shared-ini-file-loader" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/node-http-handler@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.360.0.tgz#6f762b57f98887b5173886f890669e6a60bf792c" + integrity sha512-oMsXdMmNwHpUbebETO44bq0N4SocEMGfPjYNUTRs8md7ita5fuFd2qFuvf+ZRt6iVcGWluIqmF8DidD+b7d+TA== + dependencies: + "@aws-sdk/abort-controller" "3.357.0" + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/querystring-builder" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/property-provider@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.357.0.tgz#4c1639c2d52aefab4040c2247c126c11b19d8be9" + integrity sha512-im4W0u8WaYxG7J7ko4Xl3OEzK3Mrm1Rz6/txTGe6hTIHlyUISu1ekOQJXK6XYPqNMn8v1G3BiQREoRXUEJFbHg== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/protocol-http@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.357.0.tgz#cd47413d6c1ed2d27bc30c7e9da3b262c8804cf4" + integrity sha512-w1JHiI50VEea7duDeAspUiKJmmdIQblvRyjVMOqWA6FIQAyDVuEiPX7/MdQr0ScxhtRQxHbP0I4MFyl7ctRQvA== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/querystring-builder@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.357.0.tgz#0d4627620eba4d3cc523c2e1da88dfa561617599" + integrity sha512-aQcicqB6Y2cNaXPPwunz612a01SMiQQPsdz632F/3Lzn0ua82BJKobHOtaiTUlmVJ5Q4/EAeNfwZgL7tTUNtDQ== + dependencies: + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-uri-escape" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/querystring-parser@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.357.0.tgz#6dfeb42930b2241cda43646d7c1d16ca886c78af" + integrity sha512-Svvq+atRNP9s2VxiklcUNgCzmt3T5kfs7X2C+yjmxHvOQTPjLNaNGbfC/vhjOK7aoXw0h+lBac48r5ymx1PbQA== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/service-error-classification@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.357.0.tgz#1c6f6e436997a1886d55cfec6d4796129b789076" + integrity sha512-VuXeL4g5vKO9HjgCZlxmH8Uv1FcqUSjmbPpQkbNtYIDck6u0qzM0rG+n0/1EjyQbPSr3MhW/pkWs5nx2Nljlyg== + +"@aws-sdk/shared-ini-file-loader@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.357.0.tgz#af503df79e05bb9ee0e5d689319c9b52cefe1801" + integrity sha512-ceyqM4XxQe0Plb/oQAD2t1UOV2Iy4PFe1oAGM8dfJzYrRKu7zvMwru7/WaB3NYq+/mIY6RU+jjhRmjQ3GySVqA== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/signature-v4-multi-region@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.357.0.tgz#100c573029e2b30a65634090e55be4beb50e16a1" + integrity sha512-eyO3GibYLNCPZ/YxM/ZVDh1fTMKvIUj4fpVo0bxQTKNlqNkVumAIOVLoH5um1A9FN7nDdz+40a7jwYSPlkxW6A== + dependencies: + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/signature-v4" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/signature-v4@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.357.0.tgz#31093e87fda10bee92b6b2784cdba9af9af89e7d" + integrity sha512-itt4/Jh9FqnzK30qIjXFBvM4J7zN4S/AAqsRMnaX7U4f/MV+1YxQHmzimpdMnsCXXs2jqFqKVRu6DewxJ3nbxg== + dependencies: + "@aws-sdk/eventstream-codec" "3.357.0" + "@aws-sdk/is-array-buffer" "3.310.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-hex-encoding" "3.310.0" + "@aws-sdk/util-middleware" "3.357.0" + "@aws-sdk/util-uri-escape" "3.310.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/smithy-client@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.360.0.tgz#59d55eb41eccc22ca2d3d32c11b60135f882e66d" + integrity sha512-R7wbT2SkgWNEAxMekOTNcPcvBszabW2+qHjrcelbbVJNjx/2yK+MbpZI4WRSncByQMeeoW+aSUP+JgsbpiOWfw== + dependencies: + "@aws-sdk/middleware-stack" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-stream" "3.360.0" + "@smithy/types" "^1.0.0" + tslib "^2.5.0" + +"@aws-sdk/token-providers@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.360.0.tgz#f4343caef536a96e39d4e79fff604868036247a0" + integrity sha512-gtnCmn2NL7uSwadqQPeU74Wo7Wf1NMJtui+KSWPYpc3joRZqIYj0kL5w0IT2S9tPQwCFerWVfhkvRkSGJ4nZ/g== + dependencies: + "@aws-sdk/client-sso-oidc" "3.360.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/shared-ini-file-loader" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/types@3.357.0", "@aws-sdk/types@^3.1.0", "@aws-sdk/types@^3.222.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.357.0.tgz#8491da71a4291cc2661c26a75089e86532b6a3b5" + integrity sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/url-parser@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.357.0.tgz#1b197f252d008e201d1e301c8024bed770ef0b2c" + integrity sha512-fAaU6cFsaAba01lCRsRJiYR/LfXvX2wudyEyutBVglE4dWSoSeu3QJNxImIzTBULfbiFhz59++NQ1JUVx88IVg== + dependencies: + "@aws-sdk/querystring-parser" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/util-arn-parser@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.310.0.tgz#861ff8810851be52a320ec9e4786f15b5fc74fba" + integrity sha512-jL8509owp/xB9+Or0pvn3Fe+b94qfklc2yPowZZIFAkFcCSIdkIglz18cPDWnYAcy9JGewpMS1COXKIUhZkJsA== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-base64@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64/-/util-base64-3.310.0.tgz#d0fd49aff358c5a6e771d0001c63b1f97acbe34c" + integrity sha512-v3+HBKQvqgdzcbL+pFswlx5HQsd9L6ZTlyPVL2LS9nNXnCcR3XgGz9jRskikRUuUvUXtkSG1J88GAOnJ/apTPg== + dependencies: + "@aws-sdk/util-buffer-from" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/util-body-length-browser@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.310.0.tgz#3fca9d2f73c058edf1907e4a1d99a392fdd23eca" + integrity sha512-sxsC3lPBGfpHtNTUoGXMQXLwjmR0zVpx0rSvzTPAuoVILVsp5AU/w5FphNPxD5OVIjNbZv9KsKTuvNTiZjDp9g== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-body-length-node@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-node/-/util-body-length-node-3.310.0.tgz#4846ae72834ab0636f29f89fc1878520f6543fed" + integrity sha512-2tqGXdyKhyA6w4zz7UPoS8Ip+7sayOg9BwHNidiGm2ikbDxm1YrCfYXvCBdwaJxa4hJfRVz+aL9e+d3GqPI9pQ== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-buffer-from@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-buffer-from/-/util-buffer-from-3.310.0.tgz#7a72cb965984d3c6a7e256ae6cf1621f52e54a57" + integrity sha512-i6LVeXFtGih5Zs8enLrt+ExXY92QV25jtEnTKHsmlFqFAuL3VBeod6boeMXkN2p9lbSVVQ1sAOOYZOHYbYkntw== + dependencies: + "@aws-sdk/is-array-buffer" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/util-config-provider@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-config-provider/-/util-config-provider-3.310.0.tgz#ff21f73d4774cfd7bd16ae56f905828600dda95f" + integrity sha512-xIBaYo8dwiojCw8vnUcIL4Z5tyfb1v3yjqyJKJWV/dqKUFOOS0U591plmXbM+M/QkXyML3ypon1f8+BoaDExrg== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-defaults-mode-browser@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.360.0.tgz#fced018e4990220dc31881a5b2b3e425fe08e970" + integrity sha512-/GR8VlK9xo1Q5WbVYuNaZ+XfoCFdWNb4z4mpoEgvEgBH4R0GjqiAqLftUA8Ykq1tJuDAKPYVzUNzK8DC0pt7/g== + dependencies: + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" + bowser "^2.11.0" + tslib "^2.5.0" + +"@aws-sdk/util-defaults-mode-node@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.360.0.tgz#83e2812474d8807d6d220c5064576e63e4ea8306" + integrity sha512-gR3Ctqpyl7SgStDJ1Jlq6qQDuw/rS9AgbAXx+s3wsmm3fm8lHKkXkDPYVvNDqd6dVXRO6q8MRx00lwkGI4qrpQ== + dependencies: + "@aws-sdk/config-resolver" "3.357.0" + "@aws-sdk/credential-provider-imds" "3.357.0" + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/util-endpoints@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.357.0.tgz#eaa7b4481bbd9fc8f13412b308ba4129d8fa2004" + integrity sha512-XHKyS5JClT9su9hDif715jpZiWHQF9gKZXER8tW0gOizU3R9cyWc9EsJ2BRhFNhi7nt/JF/CLUEc5qDx3ETbUw== + dependencies: + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/util-hex-encoding@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.310.0.tgz#19294c78986c90ae33f04491487863dc1d33bd87" + integrity sha512-sVN7mcCCDSJ67pI1ZMtk84SKGqyix6/0A1Ab163YKn+lFBQRMKexleZzpYzNGxYzmQS6VanP/cfU7NiLQOaSfA== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-locate-window@^3.0.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.310.0.tgz#b071baf050301adee89051032bd4139bba32cc40" + integrity sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-middleware@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.357.0.tgz#1ba478dde5df4e53b231ec6651b8d44c9187f66d" + integrity sha512-pV1krjZs7BdahZBfsCJMatE8kcor7GFsBOWrQgQDm9T0We5b5xPpOO2vxAD0RytBpY8Ky2ELs/+qXMv7l5fWIA== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-retry@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-retry/-/util-retry-3.357.0.tgz#25e12e2882b2bbc5a6531c1d9344cb0c93103b3b" + integrity sha512-SUqYJE9msbuOVq+vnUy+t0LH7XuYNFz66dSF8q6tedsbJK4j8tgya0I1Ct3m06ynGrXDJMaj39I7AXCyW9bjtw== + dependencies: + "@aws-sdk/service-error-classification" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/util-stream@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-stream/-/util-stream-3.360.0.tgz#a6cf43cf594540e9d1a4e19b9acbc5c34b3a1225" + integrity sha512-t3naBfNesXwLis29pzSfLx2ifCn2180GiPjRaIsQP14IiVCBOeT1xaU6Dpyk7WeR/jW4cu7wGl+kbeyfNF6QmQ== + dependencies: + "@aws-sdk/fetch-http-handler" "3.357.0" + "@aws-sdk/node-http-handler" "3.360.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-base64" "3.310.0" + "@aws-sdk/util-buffer-from" "3.310.0" + "@aws-sdk/util-hex-encoding" "3.310.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/util-uri-escape@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-uri-escape/-/util-uri-escape-3.310.0.tgz#9f942f09a715d8278875013a416295746b6085ba" + integrity sha512-drzt+aB2qo2LgtDoiy/3sVG8w63cgLkqFIa2NFlGpUgHFWTXkqtbgf4L5QdjRGKWhmZsnqkbtL7vkSWEcYDJ4Q== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-user-agent-browser@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.357.0.tgz#21c3e6c1a3d610dd279952d3ce00909775019be5" + integrity sha512-JHaWlNIUkPNvXkqeDOrqFzAlAgdwZK5mZw7FQnCRvf8tdSogpGZSkuyb9Z6rLD9gC40Srbc2nepO1cFpeMsDkA== + dependencies: + "@aws-sdk/types" "3.357.0" + bowser "^2.11.0" + tslib "^2.5.0" + +"@aws-sdk/util-user-agent-node@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.357.0.tgz#a656cebce558b602e753e45a3b8174dc7c0f1fcf" + integrity sha512-RdpQoaJWQvcS99TVgSbT451iGrlH4qpWUWFA9U1IRhxOSsmC1hz8ME7xc8nci9SREx/ZlfT3ai6LpoAzAtIEMA== + dependencies: + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/util-utf8-browser@^3.0.0": + version "3.259.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz#3275a6f5eb334f96ca76635b961d3c50259fd9ff" + integrity sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-utf8@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8/-/util-utf8-3.310.0.tgz#4a7b9dcebb88e830d3811aeb21e9a6df4273afb4" + integrity sha512-DnLfFT8uCO22uOJc0pt0DsSNau1GTisngBCDw8jQuWT5CqogMJu4b/uXmwEqfj8B3GX6Xsz8zOd6JpRlPftQoA== + dependencies: + "@aws-sdk/util-buffer-from" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/util-waiter@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-waiter/-/util-waiter-3.357.0.tgz#31fdaf289ed60a633178b39e3b258f9b42a1cbe3" + integrity sha512-jQQGA5G8bm0JP5C4U85VzMpkFHdeeT7fOSUncXLG9Sh8Ambzi4XTud8m5/dA7aNJkvPwZeIF9QdgWCOzpkp1xA== + dependencies: + "@aws-sdk/abort-controller" "3.357.0" + "@aws-sdk/types" "3.357.0" + tslib "^2.5.0" + +"@aws-sdk/xml-builder@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.310.0.tgz#f0236f2103b438d16117e0939a6305ad69b7ff76" + integrity sha512-TqELu4mOuSIKQCqj63fGVs86Yh+vBx5nHRpWKNUNhB2nPTpfbziTs5c1X358be3peVWA4wPxW7Nt53KIg1tnNw== + dependencies: + tslib "^2.5.0" + +"@babel/code-frame@^7.0.0": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" + integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== + dependencies: + "@babel/highlight" "^7.22.5" + +"@babel/helper-module-imports@^7.16.7": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" + integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + +"@babel/helper-validator-identifier@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" + integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== + +"@babel/highlight@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" + integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== + dependencies: + "@babel/helper-validator-identifier" "^7.22.5" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.19.0", "@babel/runtime@^7.20.6", "@babel/runtime@^7.21.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.5.tgz#8564dd588182ce0047d55d7a75e93921107b57ec" + integrity sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA== + dependencies: + regenerator-runtime "^0.13.11" + +"@babel/types@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" + integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" + to-fast-properties "^2.0.0" + +"@bcherny/json-schema-ref-parser@9.0.9": + version "9.0.9" + resolved "https://registry.yarnpkg.com/@bcherny/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz#09899d405bc708c0acac0066ae8db5b94d465ca4" + integrity sha512-vmEmnJCfpkLdas++9OYg6riIezTYqTHpqUTODJzHLzs5UnXujbOJW9VwcVCnyo1mVRt32FRr23iXBx/sX8YbeQ== + dependencies: + "@jsdevtools/ono" "^7.1.3" + "@types/json-schema" "^7.0.6" + call-me-maybe "^1.0.1" + js-yaml "^4.1.0" + +"@csstools/postcss-cascade-layers@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz#8a997edf97d34071dd2e37ea6022447dd9e795ad" + integrity sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA== + dependencies: + "@csstools/selector-specificity" "^2.0.2" + postcss-selector-parser "^6.0.10" + +"@csstools/postcss-color-function@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz#2bd36ab34f82d0497cfacdc9b18d34b5e6f64b6b" + integrity sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-font-format-keywords@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz#677b34e9e88ae997a67283311657973150e8b16a" + integrity sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-hwb-function@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz#ab54a9fce0ac102c754854769962f2422ae8aa8b" + integrity sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-ic-unit@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz#28237d812a124d1a16a5acc5c3832b040b303e58" + integrity sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-is-pseudo-class@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz#846ae6c0d5a1eaa878fce352c544f9c295509cd1" + integrity sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA== + dependencies: + "@csstools/selector-specificity" "^2.0.0" + postcss-selector-parser "^6.0.10" + +"@csstools/postcss-nested-calc@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz#d7e9d1d0d3d15cf5ac891b16028af2a1044d0c26" + integrity sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-normalize-display-values@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz#15da54a36e867b3ac5163ee12c1d7f82d4d612c3" + integrity sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-oklab-function@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz#88cee0fbc8d6df27079ebd2fa016ee261eecf844" + integrity sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-progressive-custom-properties@^1.1.0", "@csstools/postcss-progressive-custom-properties@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz#542292558384361776b45c85226b9a3a34f276fa" + integrity sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-stepped-value-functions@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz#f8772c3681cc2befed695e2b0b1d68e22f08c4f4" + integrity sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-text-decoration-shorthand@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz#ea96cfbc87d921eca914d3ad29340d9bcc4c953f" + integrity sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-trigonometric-functions@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz#94d3e4774c36d35dcdc88ce091336cb770d32756" + integrity sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-unset-value@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz#c99bb70e2cdc7312948d1eb41df2412330b81f77" + integrity sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g== + +"@csstools/selector-specificity@^2.0.0", "@csstools/selector-specificity@^2.0.2": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz#2cbcf822bf3764c9658c4d2e568bd0c0cb748016" + integrity sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw== + +"@date-io/core@^2.16.0": + version "2.16.0" + resolved "https://registry.yarnpkg.com/@date-io/core/-/core-2.16.0.tgz#7871bfc1d9bca9aa35ad444a239505589d0f22f6" + integrity sha512-DYmSzkr+jToahwWrsiRA2/pzMEtz9Bq1euJwoOuYwuwIYXnZFtHajY2E6a1VNVDc9jP8YUXK1BvnZH9mmT19Zg== + +"@date-io/date-fns@^2.16.0": + version "2.16.0" + resolved "https://registry.yarnpkg.com/@date-io/date-fns/-/date-fns-2.16.0.tgz#bd5e09b6ecb47ee55e593fc3a87e7b2caaa3da40" + integrity sha512-bfm5FJjucqlrnQcXDVU5RD+nlGmL3iWgkHTq3uAZWVIuBu6dDmGa3m8a6zo2VQQpu8ambq9H22UyUpn7590joA== + dependencies: + "@date-io/core" "^2.16.0" + +"@discoveryjs/json-ext@0.5.7", "@discoveryjs/json-ext@^0.5.0": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== + +"@dnd-kit/accessibility@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@dnd-kit/accessibility/-/accessibility-3.0.1.tgz#3ccbefdfca595b0a23a5dc57d3de96bc6935641c" + integrity sha512-HXRrwS9YUYQO9lFRc/49uO/VICbM+O+ZRpFDe9Pd1rwVv2PCNkRiTZRdxrDgng/UkvdC3Re9r2vwPpXXrWeFzg== + dependencies: + tslib "^2.0.0" + +"@dnd-kit/core@^6.0.7": + version "6.0.8" + resolved "https://registry.yarnpkg.com/@dnd-kit/core/-/core-6.0.8.tgz#040ae13fea9787ee078e5f0361f3b49b07f3f005" + integrity sha512-lYaoP8yHTQSLlZe6Rr9qogouGUz9oRUj4AHhDQGQzq/hqaJRpFo65X+JKsdHf8oUFBzx5A+SJPUvxAwTF2OabA== + dependencies: + "@dnd-kit/accessibility" "^3.0.0" + "@dnd-kit/utilities" "^3.2.1" + tslib "^2.0.0" + +"@dnd-kit/sortable@^7.0.2": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@dnd-kit/sortable/-/sortable-7.0.2.tgz#791d550872457f3f3c843e00d159b640f982011c" + integrity sha512-wDkBHHf9iCi1veM834Gbk1429bd4lHX4RpAwT0y2cHLf246GAvU2sVw/oxWNpPKQNQRQaeGXhAVgrOl1IT+iyA== + dependencies: + "@dnd-kit/utilities" "^3.2.0" + tslib "^2.0.0" + +"@dnd-kit/utilities@^3.2.0", "@dnd-kit/utilities@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@dnd-kit/utilities/-/utilities-3.2.1.tgz#53f9e2016fd2506ec49e404c289392cfff30332a" + integrity sha512-OOXqISfvBw/1REtkSK2N3Fi2EQiLMlWUlqnOK/UpOISqBZPWpE6TqL+jcPtMOkE8TqYGiURvRdPSI9hltNUjEA== + dependencies: + tslib "^2.0.0" + +"@emotion/babel-plugin@^11.11.0": + version "11.11.0" + resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz#c2d872b6a7767a9d176d007f5b31f7d504bb5d6c" + integrity sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/runtime" "^7.18.3" + "@emotion/hash" "^0.9.1" + "@emotion/memoize" "^0.8.1" + "@emotion/serialize" "^1.1.2" + babel-plugin-macros "^3.1.0" + convert-source-map "^1.5.0" + escape-string-regexp "^4.0.0" + find-root "^1.1.0" + source-map "^0.5.7" + stylis "4.2.0" + +"@emotion/cache@^11.11.0", "@emotion/cache@^11.4.0": + version "11.11.0" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.11.0.tgz#809b33ee6b1cb1a625fef7a45bc568ccd9b8f3ff" + integrity sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ== + dependencies: + "@emotion/memoize" "^0.8.1" + "@emotion/sheet" "^1.2.2" + "@emotion/utils" "^1.2.1" + "@emotion/weak-memoize" "^0.3.1" + stylis "4.2.0" + +"@emotion/css@^11.10.5": + version "11.11.2" + resolved "https://registry.yarnpkg.com/@emotion/css/-/css-11.11.2.tgz#e5fa081d0c6e335352e1bc2b05953b61832dca5a" + integrity sha512-VJxe1ucoMYMS7DkiMdC2T7PWNbrEI0a39YRiyDvK2qq4lXwjRbVP/z4lpG+odCsRzadlR+1ywwrTzhdm5HNdew== + dependencies: + "@emotion/babel-plugin" "^11.11.0" + "@emotion/cache" "^11.11.0" + "@emotion/serialize" "^1.1.2" + "@emotion/sheet" "^1.2.2" + "@emotion/utils" "^1.2.1" + +"@emotion/hash@^0.9.1": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.1.tgz#4ffb0055f7ef676ebc3a5a91fb621393294e2f43" + integrity sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ== + +"@emotion/memoize@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" + integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== + +"@emotion/react@^11.8.1": + version "11.11.1" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.11.1.tgz#b2c36afac95b184f73b08da8c214fdf861fa4157" + integrity sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA== + dependencies: + "@babel/runtime" "^7.18.3" + "@emotion/babel-plugin" "^11.11.0" + "@emotion/cache" "^11.11.0" + "@emotion/serialize" "^1.1.2" + "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1" + "@emotion/utils" "^1.2.1" + "@emotion/weak-memoize" "^0.3.1" + hoist-non-react-statics "^3.3.1" + +"@emotion/serialize@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.2.tgz#017a6e4c9b8a803bd576ff3d52a0ea6fa5a62b51" + integrity sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA== + dependencies: + "@emotion/hash" "^0.9.1" + "@emotion/memoize" "^0.8.1" + "@emotion/unitless" "^0.8.1" + "@emotion/utils" "^1.2.1" + csstype "^3.0.2" + +"@emotion/sheet@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.2.tgz#d58e788ee27267a14342303e1abb3d508b6d0fec" + integrity sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA== + +"@emotion/unitless@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3" + integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== + +"@emotion/use-insertion-effect-with-fallbacks@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz#08de79f54eb3406f9daaf77c76e35313da963963" + integrity sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw== + +"@emotion/utils@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.2.1.tgz#bbab58465738d31ae4cb3dbb6fc00a5991f755e4" + integrity sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg== + +"@emotion/weak-memoize@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6" + integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww== + +"@eslint-community/eslint-utils@^4.2.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.4.0": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" + integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== + +"@eslint/eslintrc@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" + integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.5.2" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.43.0": + version "8.43.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.43.0.tgz#559ca3d9ddbd6bf907ad524320a0d14b85586af0" + integrity sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg== + +"@faceless-ui/modal@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@faceless-ui/modal/-/modal-2.0.1.tgz#8a47299442eff450c09432cfaef35c5471becad6" + integrity sha512-z1PaaLxwuX+1In4vhUxODZndGKdCY+WIqzvtnas3CaYGGCVJBSJ4jfv9UEEGZzcahmSy+71bEL89cUT6d36j1Q== + dependencies: + body-scroll-lock "^3.1.5" + focus-trap "^6.9.2" + qs "^6.9.1" + react-transition-group "^4.4.2" + +"@faceless-ui/scroll-info@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@faceless-ui/scroll-info/-/scroll-info-1.3.0.tgz#4d9f76afa4c004018697424f77f8bc362ccaae08" + integrity sha512-X+doJMzQqyVGpwV/YgXUAalNWepP2W8ThgZspKZLFG43zTYLVTU17BYCjjY+ggKuA3b0W3JyXZ2M8f247AdmHw== + +"@faceless-ui/window-info@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@faceless-ui/window-info/-/window-info-2.1.1.tgz#ed1474a60ab794295bca4c29e295b1e11a584d22" + integrity sha512-gMAgda7beR4CNpBIXjgRVn97ek0LG3PAj9lxmoYdg574IEzLFZAh3eAYtTaS2XLKgb4+IHhsuBzlGmHbeOo2Aw== + +"@floating-ui/core@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.3.1.tgz#4d795b649cc3b1cbb760d191c80dcb4353c9a366" + integrity sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g== + +"@floating-ui/dom@^1.0.1": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.4.2.tgz#eb3a37f7506c4f95ef735967dc3496b5012e11cb" + integrity sha512-VKmvHVatWnewmGGy+7Mdy4cTJX71Pli6v/Wjb5RQBuq5wjUYx+Ef+kRThi8qggZqDgD8CogCpqhRoVp3+yQk+g== + dependencies: + "@floating-ui/core" "^1.3.1" + +"@hapi/hoek@^9.0.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" + integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== + +"@hapi/topo@^5.0.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@humanwhocodes/config-array@^0.11.10": + version "0.11.10" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" + integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + +"@jest/schemas@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" + integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg== + dependencies: + "@sinclair/typebox" "^0.25.16" + +"@jest/types@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593" + integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog== + dependencies: + "@jest/schemas" "^29.4.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.3.0": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/source-map@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.3.tgz#8108265659d4c33e72ffe14e33d6cc5eb59f2fda" + integrity sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/sourcemap-codec@1.4.14": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.18" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" + integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + +"@jsdevtools/ono@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" + integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== + +"@juggle/resize-observer@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz#08d6c5e20cf7e4cc02fd181c4b0c225cd31dbb60" + integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== + +"@monaco-editor/loader@^1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@monaco-editor/loader/-/loader-1.3.3.tgz#7f1742bd3cc21c0362a46a4056317f6e5215cfca" + integrity sha512-6KKF4CTzcJiS8BJwtxtfyYt9shBiEv32ateQ9T4UVogwn4HM/uPo9iJd2Dmbkpz8CM6Y0PDUpjnZzCwC+eYo2Q== + dependencies: + state-local "^1.0.6" + +"@monaco-editor/react@^4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@monaco-editor/react/-/react-4.5.1.tgz#fbc76c692aee9a33b9ab24ae0c5f219b8f002fdb" + integrity sha512-NNDFdP+2HojtNhCkRfE6/D6ro6pBNihaOzMbGK84lNWzRu+CfBjwzGt4jmnqimLuqp5yE5viHS2vi+QOAnD5FQ== + dependencies: + "@monaco-editor/loader" "^1.3.3" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@payloadcms/eslint-config@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@payloadcms/eslint-config/-/eslint-config-0.0.1.tgz#4324702ddef6c773b3f3033795a13e6b50c95a92" + integrity sha512-Il59+0C4E/bI6uM2hont3I+oABWkJZbfbItubje5SGMrXkymUq8jT/UZRk0eCt918bB7gihxDXx8guFnR/aNIw== + +"@payloadcms/plugin-cloud@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@payloadcms/plugin-cloud/-/plugin-cloud-1.0.1.tgz#932eea6dfcf844ebe6d5ea69092db885ebb0644b" + integrity sha512-+tfv/FW5z7FpUf+PmUN/ZCbc25OzNxGV34NvLxP86/KdN/MzhgRx0BvtEAY93yPNHj3YxhLLhgajpXMVMRnfHA== + dependencies: + "@aws-sdk/client-cognito-identity" "^3.289.0" + "@aws-sdk/client-s3" "^3.142.0" + "@aws-sdk/credential-providers" "^3.289.0" + "@aws-sdk/lib-storage" "^3.267.0" + amazon-cognito-identity-js "^6.1.2" + resend "^0.12.0" + +"@payloadcms/plugin-form-builder@^1.0.13": + version "1.0.15" + resolved "https://registry.yarnpkg.com/@payloadcms/plugin-form-builder/-/plugin-form-builder-1.0.15.tgz#55094658e7a0324915a0908b4952039bb2899106" + integrity sha512-lr6TnO95rbr3Zcjgc157pEJ5P2OpTdz13QKqSfESjdAGAinhfYtM903jgAfLVCV16o2MyyOjpEMMt9kuwx3LOQ== + dependencies: + deepmerge "^4.2.2" + escape-html "^1.0.3" + +"@payloadcms/plugin-nested-docs@^1.0.4": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@payloadcms/plugin-nested-docs/-/plugin-nested-docs-1.0.5.tgz#a4e63cf904c0923e02252c52765c1a5af38c08c6" + integrity sha512-FXNIr0xVO5uSmwLjckBTSA0t5UzgQBCWZVcAMAE+wzjelX3C29y0iUqBYsNPQK3DBua7ko92btV2cWuZVRMIqA== + +"@payloadcms/plugin-redirects@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@payloadcms/plugin-redirects/-/plugin-redirects-1.0.0.tgz#e03243cb0582b9305cac9cc3ef571a9c0beb1665" + integrity sha512-BAoNRSw6bT73wnxdKsR8HwaMeRwSshp4d7xfN1EfaW6IMoUYER/lHG/bwN61O2+hapvBd6fOfMuUdzy9sDazxw== + +"@payloadcms/plugin-seo@^1.0.10": + version "1.0.13" + resolved "https://registry.yarnpkg.com/@payloadcms/plugin-seo/-/plugin-seo-1.0.13.tgz#b1d2f24f5cabf14e8ab7db6815b6fb41ee718557" + integrity sha512-GPIyGTe6vU8GRFMYhNoUDrGWxm0uiqfIQQSsAuZjEM6YGFozo/AnpnjcT6VS/led/7HRFF8ijOy82l0VaLNC3w== + +"@polka/url@^1.0.0-next.20": + version "1.0.0-next.21" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" + integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== + +"@popperjs/core@^2.9.2": + version "2.11.8" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" + integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== + +"@react-email/render@0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@react-email/render/-/render-0.0.6.tgz#4e47ee6df226c86d548c38f96e34844acb944160" + integrity sha512-6zs7WZbd37TcPT1OmMPH/kcBpv0QSi+k3om7LyDnbdIcrbwOO/OstVwUaa/6zgvDvnq9Y2wOosbru7j5kUrW9A== + dependencies: + html-to-text "9.0.3" + pretty "2.0.0" + react "18.2.0" + react-dom "18.2.0" + +"@selderee/plugin-htmlparser2@^0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.10.0.tgz#8a304d18df907e086f3cfc71ea0ced52d6524430" + integrity sha512-gW69MEamZ4wk1OsOq1nG1jcyhXIQcnrsX5JwixVw/9xaiav8TCyjESAruu1Rz9yyInhgBXxkNwMeygKnN2uxNA== + dependencies: + domhandler "^5.0.3" + selderee "^0.10.0" + +"@sideway/address@^4.1.3": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" + integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f" + integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + +"@sinclair/typebox@^0.25.16": + version "0.25.24" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718" + integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== + +"@smithy/protocol-http@^1.0.1": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-1.1.0.tgz#caf22e01cb825d7490a4915e03d6fa64954ff535" + integrity sha512-H5y/kZOqfJSqRkwtcAoVbqONmhdXwSgYNJ1Glk5Ry8qlhVVy5qUzD9EklaCH8/XLnoCsLO/F/Giee8MIvaBRkg== + dependencies: + "@smithy/types" "^1.1.0" + tslib "^2.5.0" + +"@smithy/types@^1.0.0", "@smithy/types@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-1.1.0.tgz#f30a23202c97634cca5c1ac955a9bf149c955226" + integrity sha512-KzmvisMmuwD2jZXuC9e65JrgsZM97y5NpDU7g347oB+Q+xQLU6hQZ5zFNNbEfwwOJHoOvEVTna+dk1h/lW7alw== + dependencies: + tslib "^2.5.0" + +"@swc/core-darwin-arm64@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.66.tgz#b34a396479ca8fc82876d6dfb28c78a51010e6ce" + integrity sha512-UijJsvuLy73vxeVYEy7urIHksXS+3BdvJ9s9AY+bRMSQW483NO7RLp8g4FdTyJbRaN0BH15SQnY0dcjQBkVuHw== + +"@swc/core-darwin-x64@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.66.tgz#b778e434d29652eae6da6ee7ed335605f7cfd866" + integrity sha512-xGsHKvViQnwTNLF30Y/5OqWdnN6RsiyUI8awZXfz1sHcXCEaLe+v+WLQ+/E8sgw0YUkYVHzzfV/sAN2CezJK5Q== + +"@swc/core-linux-arm-gnueabihf@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.66.tgz#a7ab556dc9fc770069fea292ff5551161df83a70" + integrity sha512-gNbLcSIV2pq90BkMSpzvK4xPXOl8GEF3YR4NaqF0CYSzQsVXXTTqMuX/r26xNYudBKzH0345S1MpoRk2qricnA== + +"@swc/core-linux-arm64-gnu@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.66.tgz#00591f5fd0d9f1d1ed565329936451eb6d0d5433" + integrity sha512-cJSQ0oplyWbJqy4rzVcnBYLAi6z1QT3QCcR7iAey0aAmCvfRBZJfXlyjggMjn4iosuadkauwCZR1xYNhBDRn7w== + +"@swc/core-linux-arm64-musl@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.66.tgz#dd8e5e7b1154b5a42a32d57914e0de2cef6686ff" + integrity sha512-GDQZpcB9aGxG9PTA2shdIkoMZlGK5omJ8NR49uoBTtLBVYiGeXAwV0U1Uaw8kXEZj9i7wZDkvjzjSaNH3evRsg== + +"@swc/core-linux-x64-gnu@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.66.tgz#35de4b88e3f256e7923503a8031569c733859b68" + integrity sha512-lg8E4O/Pd9KfK0lajdinVMuGME8dSv7V9arhEpmlfGE2eXSDCWqDn5Htk5QVBstt9lt1lsRhWHJ/YYc2eQY30Q== + +"@swc/core-linux-x64-musl@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.66.tgz#623de62c638a31cda5d44014b981290e3f79f6de" + integrity sha512-lo8ZcAO/zL2pZWH+LZIyge8u2MklaeuT6+FpVVpBFktMVdYXbaVtzpvWbgRFBZHvL3SRDF+u8jxjtkXhvGUpTw== + +"@swc/core-win32-arm64-msvc@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.66.tgz#49a432f43a314666e681a98801d7b2d303e5ef75" + integrity sha512-cQoVwBuJY5WkHbfpCOlndNwYr1ZThatRjQQvKy540NUIeAEk9Fa6ozlDBtU75UdaWKtUG6YQ/bWz+KTemheVxw== + +"@swc/core-win32-ia32-msvc@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.66.tgz#80c8af627b46de67fbac05908025e764194669ad" + integrity sha512-y/FrAIINK4UBeUQQknGlWXEyjo+MBvjF7WkUf2KP7sNr9EHHy8+dXohAGd5Anz0eJrqOM1ZXR/GEjxRp7bGQ1Q== + +"@swc/core-win32-x64-msvc@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.66.tgz#7984da6bf1f1a5410c2e6514dc2814abb2e6c91a" + integrity sha512-yI64ACzS14qFLrfyO12qW+f/UROTotzDeEbuyJAaPD2IZexoT1cICznI3sBmIfrSt33mVuW8eF5m3AG/NUImzw== + +"@swc/core@^1.3.26": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.66.tgz#d07e4c9cd49205881171ee1ffd04f824ecea2f25" + integrity sha512-Hpf91kH5ly7fHkWnApwryTQryT+TO4kMMPH3WyciUSQOWLE3UuQz1PtETHQQk7PZ/b1QF0qQurJrgfBr5bSKUA== + optionalDependencies: + "@swc/core-darwin-arm64" "1.3.66" + "@swc/core-darwin-x64" "1.3.66" + "@swc/core-linux-arm-gnueabihf" "1.3.66" + "@swc/core-linux-arm64-gnu" "1.3.66" + "@swc/core-linux-arm64-musl" "1.3.66" + "@swc/core-linux-x64-gnu" "1.3.66" + "@swc/core-linux-x64-musl" "1.3.66" + "@swc/core-win32-arm64-msvc" "1.3.66" + "@swc/core-win32-ia32-msvc" "1.3.66" + "@swc/core-win32-x64-msvc" "1.3.66" + +"@swc/register@^0.1.10": + version "0.1.10" + resolved "https://registry.yarnpkg.com/@swc/register/-/register-0.1.10.tgz#74a20b7559669e03479b05e9e5c6d1524d4d92a2" + integrity sha512-6STwH/q4dc3pitXLVkV7sP0Hiy+zBsU2wOF1aXpXR95pnH3RYHKIsDC+gvesfyB7jxNT9OOZgcqOp9RPxVTx9A== + dependencies: + lodash.clonedeep "^4.5.0" + pirates "^4.0.1" + source-map-support "^0.5.13" + +"@tokenizer/token@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276" + integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@types/body-parser@*": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/eslint-scope@^3.7.3": + version "3.7.4" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" + integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "8.40.2" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.40.2.tgz#2833bc112d809677864a4b0e7d1de4f04d7dac2d" + integrity sha512-PRVjQ4Eh9z9pmmtaq8nTjZjQwKFk7YIHIud3lRoKRBgUQjgjRmoGxxGEPXQkF+lH7QkHJRNr5F4aBgYCW0lqpQ== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" + integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== + +"@types/express-serve-static-core@^4.17.33": + version "4.17.35" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz#c95dd4424f0d32e525d23812aa8ab8e4d3906c4f" + integrity sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express@^4.17.9": + version "4.17.17" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" + integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/glob@^7.1.3": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/html-minifier-terser@^6.0.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" + integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== + +"@types/http-errors@*": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.1.tgz#20172f9578b225f6c7da63446f56d4ce108d5a65" + integrity sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ== + +"@types/is-hotkey@^0.1.1": + version "0.1.7" + resolved "https://registry.yarnpkg.com/@types/is-hotkey/-/is-hotkey-0.1.7.tgz#30ec6d4234895230b576728ef77e70a52962f3b3" + integrity sha512-yB5C7zcOM7idwYZZ1wKQ3pTfjA9BbvFqRWvKB46GFddxnJtHwi/b9y84ykQtxQPg5qhdpg4Q/kWU3EGoCTmLzQ== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/json-schema@*", "@types/json-schema@^7.0.11", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.12" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" + integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/lodash@^4.14.149", "@types/lodash@^4.14.182": + version "4.14.195" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.195.tgz#bafc975b252eb6cea78882ce8a7b6bf22a6de632" + integrity sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg== + +"@types/mime@*": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== + +"@types/mime@^1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" + integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== + +"@types/minimatch@*": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + +"@types/node@*": + version "20.3.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.2.tgz#fa6a90f2600e052a03c18b8cb3fd83dd4e599898" + integrity sha512-vOBLVQeCQfIcF/2Y7eKFTqrMnizK5lRNQ7ykML/5RuwVXVWxYkgwS7xbt4B6fKCUPgbSL5FSsjHQpaGQP/dQmw== + +"@types/node@18.11.3": + version "18.11.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.3.tgz#78a6d7ec962b596fc2d2ec102c4dd3ef073fea6a" + integrity sha512-fNjDQzzOsZeKZu5NATgXUPsaFaTxeRgFXoosrHivTl8RGeV733OLawXsGfEk9a8/tySyZUyiZ6E8LcjPFZ2y1A== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/prettier@^2.6.1": + version "2.7.3" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" + integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== + +"@types/prop-types@*": + version "15.7.5" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" + integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + +"@types/qs@*": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + +"@types/react-transition-group@^4.4.0": + version "4.4.6" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.6.tgz#18187bcda5281f8e10dfc48f0943e2fdf4f75e2e" + integrity sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew== + dependencies: + "@types/react" "*" + +"@types/react@*": + version "18.2.14" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.14.tgz#fa7a6fecf1ce35ca94e74874f70c56ce88f7a127" + integrity sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/react@18.0.21": + version "18.0.21" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.21.tgz#b8209e9626bb00a34c76f55482697edd2b43cc67" + integrity sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/scheduler@*": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" + integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== + +"@types/semver@^7.3.12": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" + integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== + +"@types/send@*": + version "0.17.1" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.1.tgz#ed4932b8a2a805f1fe362a70f4e62d0ac994e301" + integrity sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-static@*": + version "1.15.2" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.2.tgz#3e5419ecd1e40e7405d34093f10befb43f63381a" + integrity sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw== + dependencies: + "@types/http-errors" "*" + "@types/mime" "*" + "@types/node" "*" + +"@types/sharp@^0.31.1": + version "0.31.1" + resolved "https://registry.yarnpkg.com/@types/sharp/-/sharp-0.31.1.tgz#db768461455dbcf9ff11d69277fd70564483c4df" + integrity sha512-5nWwamN9ZFHXaYEincMSuza8nNfOof8nmO+mcI+Agx1uMUk4/pQnNIcix+9rLPXzKrm1pS34+6WRDbDV0Jn7ag== + dependencies: + "@types/node" "*" + +"@types/webidl-conversions@*": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz#2b8e60e33906459219aa587e9d1a612ae994cfe7" + integrity sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog== + +"@types/whatwg-url@^8.2.1": + version "8.2.2" + resolved "https://registry.yarnpkg.com/@types/whatwg-url/-/whatwg-url-8.2.2.tgz#749d5b3873e845897ada99be4448041d4cc39e63" + integrity sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA== + dependencies: + "@types/node" "*" + "@types/webidl-conversions" "*" + +"@types/yargs-parser@*": + version "21.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + +"@types/yargs@^17.0.8": + version "17.0.24" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.24.tgz#b3ef8d50ad4aa6aecf6ddc97c580a00f5aa11902" + integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@^5.51.0": + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.60.1.tgz#81382d6ecb92b8dda70e91f9035611cb2fecd1c3" + integrity sha512-KSWsVvsJsLJv3c4e73y/Bzt7OpqMCADUO846bHcuWYSYM19bldbAeDv7dYyV0jwkbMfJ2XdlzwjhXtuD7OY6bw== + dependencies: + "@eslint-community/regexpp" "^4.4.0" + "@typescript-eslint/scope-manager" "5.60.1" + "@typescript-eslint/type-utils" "5.60.1" + "@typescript-eslint/utils" "5.60.1" + debug "^4.3.4" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + natural-compare-lite "^1.4.0" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/parser@^5.51.0": + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.60.1.tgz#0f2f58209c0862a73e3d5a56099abfdfa21d0fd3" + integrity sha512-pHWlc3alg2oSMGwsU/Is8hbm3XFbcrb6P5wIxcQW9NsYBfnrubl/GhVVD/Jm/t8HXhA2WncoIRfBtnCgRGV96Q== + dependencies: + "@typescript-eslint/scope-manager" "5.60.1" + "@typescript-eslint/types" "5.60.1" + "@typescript-eslint/typescript-estree" "5.60.1" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.60.1": + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.60.1.tgz#35abdb47f500c68c08f2f2b4f22c7c79472854bb" + integrity sha512-Dn/LnN7fEoRD+KspEOV0xDMynEmR3iSHdgNsarlXNLGGtcUok8L4N71dxUgt3YvlO8si7E+BJ5Fe3wb5yUw7DQ== + dependencies: + "@typescript-eslint/types" "5.60.1" + "@typescript-eslint/visitor-keys" "5.60.1" + +"@typescript-eslint/type-utils@5.60.1": + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.60.1.tgz#17770540e98d65ab4730c7aac618003f702893f4" + integrity sha512-vN6UztYqIu05nu7JqwQGzQKUJctzs3/Hg7E2Yx8rz9J+4LgtIDFWjjl1gm3pycH0P3mHAcEUBd23LVgfrsTR8A== + dependencies: + "@typescript-eslint/typescript-estree" "5.60.1" + "@typescript-eslint/utils" "5.60.1" + debug "^4.3.4" + tsutils "^3.21.0" + +"@typescript-eslint/types@5.60.1": + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.60.1.tgz#a17473910f6b8d388ea83c9d7051af89c4eb7561" + integrity sha512-zDcDx5fccU8BA0IDZc71bAtYIcG9PowaOwaD8rjYbqwK7dpe/UMQl3inJ4UtUK42nOCT41jTSCwg76E62JpMcg== + +"@typescript-eslint/typescript-estree@5.60.1": + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.60.1.tgz#8c71824b7165b64d5ebd7aa42968899525959834" + integrity sha512-hkX70J9+2M2ZT6fhti5Q2FoU9zb+GeZK2SLP1WZlvUDqdMbEKhexZODD1WodNRyO8eS+4nScvT0dts8IdaBzfw== + dependencies: + "@typescript-eslint/types" "5.60.1" + "@typescript-eslint/visitor-keys" "5.60.1" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.60.1": + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.60.1.tgz#6861ebedbefba1ac85482d2bdef6f2ff1eb65b80" + integrity sha512-tiJ7FFdFQOWssFa3gqb94Ilexyw0JVxj6vBzaSpfN/8IhoKkDuSAenUKvsSHw2A/TMpJb26izIszTXaqygkvpQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.60.1" + "@typescript-eslint/types" "5.60.1" + "@typescript-eslint/typescript-estree" "5.60.1" + eslint-scope "^5.1.1" + semver "^7.3.7" + +"@typescript-eslint/visitor-keys@5.60.1": + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.60.1.tgz#19a877358bf96318ec35d90bfe6bd1445cce9434" + integrity sha512-xEYIxKcultP6E/RMKqube11pGjXH1DCo60mQoWhVYyKfLkwbIVVjYxmOenNMxILx0TjCujPTjjnTIVzm09TXIw== + dependencies: + "@typescript-eslint/types" "5.60.1" + eslint-visitor-keys "^3.3.0" + +"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" + integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== + +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== + +"@webassemblyjs/helper-buffer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" + integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== + +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== + +"@webassemblyjs/helper-wasm-section@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" + integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/wasm-edit@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" + integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-opt" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + "@webassemblyjs/wast-printer" "1.11.6" + +"@webassemblyjs/wasm-gen@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" + integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wasm-opt@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" + integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + +"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" + integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wast-printer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" + integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@xtuc/long" "4.2.2" + +"@webpack-cli/configtest@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.2.0.tgz#7b20ce1c12533912c3b217ea68262365fa29a6f5" + integrity sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg== + +"@webpack-cli/info@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.5.0.tgz#6c78c13c5874852d6e2dd17f08a41f3fe4c261b1" + integrity sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ== + dependencies: + envinfo "^7.7.3" + +"@webpack-cli/serve@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1" + integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q== + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abbrev@1, abbrev@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +accepts@~1.3.5, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^8.0.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.0.4, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.2: + version "8.9.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.9.0.tgz#78a16e3b2bcc198c10822786fa6679e245db5b59" + integrity sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ== + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.0, ajv@^8.6.3, ajv@^8.9.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +amazon-cognito-identity-js@^6.1.2: + version "6.3.1" + resolved "https://registry.yarnpkg.com/amazon-cognito-identity-js/-/amazon-cognito-identity-js-6.3.1.tgz#d9a4c1a92f4b059330df8ea075f65106d2605409" + integrity sha512-PxBdufgS8uZShrcIFAsRjmqNXsh/4fXOWUGQOUhKLHWWK1pcp/y+VeFF48avXIWefM8XwsT3JlN6m9J2eHt4LA== + dependencies: + "@aws-crypto/sha256-js" "1.2.2" + buffer "4.9.2" + fast-base64-decode "^1.0.0" + isomorphic-unfetch "^3.0.0" + js-cookie "^2.2.1" + +ansi-html-community@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-includes@^3.1.4: + version "3.1.6" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" + integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + is-string "^1.0.7" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array.prototype.flat@^1.2.5: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" + integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +atomic-sleep@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" + integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== + +atomically@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/atomically/-/atomically-1.7.0.tgz#c07a0458432ea6dbc9a3506fffa424b48bccaafe" + integrity sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w== + +autoprefixer@^10.4.13: + version "10.4.14" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d" + integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ== + dependencies: + browserslist "^4.21.5" + caniuse-lite "^1.0.30001464" + fraction.js "^4.2.0" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +axios@1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.4.tgz#f5760cefd9cfb51fd2481acf88c05f67c4523024" + integrity sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ== + dependencies: + follow-redirects "^1.15.0" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +babel-plugin-macros@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" + integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== + dependencies: + "@babel/runtime" "^7.12.5" + cosmiconfig "^7.0.0" + resolve "^1.19.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.0.2, base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + +body-parser@^1.20.1: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +body-scroll-lock@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/body-scroll-lock/-/body-scroll-lock-3.1.5.tgz#c1392d9217ed2c3e237fee1e910f6cdd80b7aaec" + integrity sha512-Yi1Xaml0EvNA0OYWxXiYNqY24AfWkbA6w5vxE7GWxtKfzIbZM+Qw+aSmkgsbWzbHiy/RCSkUZBplVxTA+E4jJg== + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +bowser@^2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" + integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.21.4, browserslist@^4.21.5: + version "4.21.9" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" + integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== + dependencies: + caniuse-lite "^1.0.30001503" + electron-to-chromium "^1.4.431" + node-releases "^2.0.12" + update-browserslist-db "^1.0.11" + +bson-objectid@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/bson-objectid/-/bson-objectid-2.0.4.tgz#339211572ef97dc98f2d68eaee7b99b7be59a089" + integrity sha512-vgnKAUzcDoa+AeyYwXCoHyF2q6u/8H46dxu5JN+4/TZeq/Dlinn0K6GvxsCLb3LHUJl0m/TLiEK31kUwtgocMQ== + +bson@^4.6.5: + version "4.7.2" + resolved "https://registry.yarnpkg.com/bson/-/bson-4.7.2.tgz#320f4ad0eaf5312dd9b45dc369cc48945e2a5f2e" + integrity sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ== + dependencies: + buffer "^5.6.0" + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@4.9.2: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +buffer@5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" + integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +buffer@^5.5.0, buffer@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +busboy@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +call-me-maybe@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" + integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001503: + version "1.0.30001509" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001509.tgz#2b7ad5265392d6d2de25cd8776d1ab3899570d14" + integrity sha512-2uDDk+TRiTX5hMcUYT/7CSyzMZxjfGu0vAUjS2g0LSD8UoXOv0LtpH4LxGMemsiPq6LCVIUjNwVM0erkOkGCDA== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +charenc@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== + +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.2: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +ci-info@^3.2.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" + integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== + +classnames@^2.2.5, classnames@^2.2.6, classnames@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" + integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== + +clean-css@^5.2.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.2.tgz#70ecc7d4d4114921f5d298349ff86a31a9975224" + integrity sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww== + dependencies: + source-map "~0.6.0" + +cli-color@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-2.0.3.tgz#73769ba969080629670f3f2ef69a4bf4e7cc1879" + integrity sha512-OkoZnxyC4ERN3zLzZaY9Emb7f/MhBOIpePv0Ycok0fJYT+Ouo00UBEIwsVsr0yoow++n5YWlSUgST9GKhNHiRQ== + dependencies: + d "^1.0.1" + es5-ext "^0.10.61" + es6-iterator "^2.0.3" + memoizee "^0.4.15" + timers-ext "^0.1.7" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clsx@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" + integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== + dependencies: + color-convert "^2.0.1" + color-string "^1.9.0" + +colord@^2.9.1: + version "2.9.3" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== + +colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.7: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.19.0, commander@^2.20.0, commander@^2.20.3: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^7.0.0, commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +compute-scroll-into-view@^1.0.20: + version "1.0.20" + resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz#1768b5522d1172754f5d0c9b02de3af6be506a43" + integrity sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +condense-newlines@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f" + integrity sha512-P7X+QL9Hb9B/c8HI5BFFKmjgBu2XpQuF98WZ9XkO+dBGgk5XgwiQz7o1SmpglNWId3581UcS0SFAWfoIhMHPfg== + dependencies: + extend-shallow "^2.0.1" + is-whitespace "^0.3.0" + kind-of "^3.0.2" + +conf@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/conf/-/conf-10.2.0.tgz#838e757be963f1a2386dfe048a98f8f69f7b55d6" + integrity sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg== + dependencies: + ajv "^8.6.3" + ajv-formats "^2.1.1" + atomically "^1.7.0" + debounce-fn "^4.0.0" + dot-prop "^6.0.1" + env-paths "^2.2.1" + json-schema-typed "^7.0.3" + onetime "^5.1.2" + pkg-up "^3.1.0" + semver "^7.3.5" + +config-chain@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +convert-source-map@^1.5.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +copyfiles@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.4.1.tgz#d2dcff60aaad1015f09d0b66e7f0f1c5cd3c5da5" + integrity sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg== + dependencies: + glob "^7.0.5" + minimatch "^3.0.3" + mkdirp "^1.0.4" + noms "0.0.0" + through2 "^2.0.1" + untildify "^4.0.0" + yargs "^16.1.0" + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-env@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" + integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== + dependencies: + cross-spawn "^7.0.1" + +cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypt@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== + +css-blank-pseudo@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz#36523b01c12a25d812df343a32c322d2a2324561" + integrity sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ== + dependencies: + postcss-selector-parser "^6.0.9" + +css-declaration-sorter@^6.3.1: + version "6.4.0" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz#630618adc21724484b3e9505bce812def44000ad" + integrity sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew== + +css-has-pseudo@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz#57f6be91ca242d5c9020ee3e51bbb5b89fc7af73" + integrity sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw== + dependencies: + postcss-selector-parser "^6.0.9" + +css-loader@^5.2.7: + version "5.2.7" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.7.tgz#9b9f111edf6fb2be5dc62525644cbc9c232064ae" + integrity sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg== + dependencies: + icss-utils "^5.1.0" + loader-utils "^2.0.0" + postcss "^8.2.15" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^3.0.0" + semver "^7.3.5" + +css-minimizer-webpack-plugin@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz#33effe662edb1a0bf08ad633c32fa75d0f7ec565" + integrity sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.18" + cssnano "^6.0.1" + jest-worker "^29.4.3" + postcss "^8.4.24" + schema-utils "^4.0.1" + serialize-javascript "^6.0.1" + +css-prefers-color-scheme@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz#ca8a22e5992c10a5b9d315155e7caee625903349" + integrity sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA== + +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-tree@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== + dependencies: + mdn-data "2.0.28" + source-map-js "^1.0.1" + +css-what@^6.0.1, css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +cssdb@^7.1.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.6.0.tgz#beac8f7a5f676db62d3c33da517ef4c9eb008f8b" + integrity sha512-Nna7rph8V0jC6+JBY4Vk4ndErUmfJfV6NJCaZdurL0omggabiy+QB2HCQtu5c/ACLZ0I7REv7A4QyPIoYzZx0w== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssfilter@0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" + integrity sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw== + +cssnano-preset-default@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.0.1.tgz#2a93247140d214ddb9f46bc6a3562fa9177fe301" + integrity sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ== + dependencies: + css-declaration-sorter "^6.3.1" + cssnano-utils "^4.0.0" + postcss-calc "^9.0.0" + postcss-colormin "^6.0.0" + postcss-convert-values "^6.0.0" + postcss-discard-comments "^6.0.0" + postcss-discard-duplicates "^6.0.0" + postcss-discard-empty "^6.0.0" + postcss-discard-overridden "^6.0.0" + postcss-merge-longhand "^6.0.0" + postcss-merge-rules "^6.0.1" + postcss-minify-font-values "^6.0.0" + postcss-minify-gradients "^6.0.0" + postcss-minify-params "^6.0.0" + postcss-minify-selectors "^6.0.0" + postcss-normalize-charset "^6.0.0" + postcss-normalize-display-values "^6.0.0" + postcss-normalize-positions "^6.0.0" + postcss-normalize-repeat-style "^6.0.0" + postcss-normalize-string "^6.0.0" + postcss-normalize-timing-functions "^6.0.0" + postcss-normalize-unicode "^6.0.0" + postcss-normalize-url "^6.0.0" + postcss-normalize-whitespace "^6.0.0" + postcss-ordered-values "^6.0.0" + postcss-reduce-initial "^6.0.0" + postcss-reduce-transforms "^6.0.0" + postcss-svgo "^6.0.0" + postcss-unique-selectors "^6.0.0" + +cssnano-utils@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-4.0.0.tgz#d1da885ec04003ab19505ff0e62e029708d36b08" + integrity sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw== + +cssnano@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.0.1.tgz#87c38c4cd47049c735ab756d7e77ac3ca855c008" + integrity sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg== + dependencies: + cssnano-preset-default "^6.0.1" + lilconfig "^2.1.0" + +csso@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== + dependencies: + css-tree "~2.2.0" + +csstype@^3.0.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +dataloader@^2.1.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.2.2.tgz#216dc509b5abe39d43a9b9d97e6e5e473dfbe3e0" + integrity sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g== + +date-fns@^2.24.0, date-fns@^2.29.3: + version "2.30.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" + integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== + dependencies: + "@babel/runtime" "^7.21.0" + +dateformat@^4.6.3: + version "4.6.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" + integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== + +debounce-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-4.0.0.tgz#ed76d206d8a50e60de0dd66d494d82835ffe61c7" + integrity sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ== + dependencies: + mimic-fn "^3.0.0" + +debug@2, debug@2.6.9, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@4.x, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@^3.2.6, debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-equal@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.1.tgz#c72ab22f3a7d3503a4ca87dde976fe9978816739" + integrity sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + es-get-iterator "^1.1.3" + get-intrinsic "^1.2.0" + is-arguments "^1.1.1" + is-array-buffer "^3.0.2" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.0" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^4.0.0, deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" + integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +denque@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" + integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-libc@^2.0.0, detect-libc@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +diff@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +direction@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/direction/-/direction-1.0.4.tgz#2b86fb686967e987088caf8b89059370d4837442" + integrity sha512-GYqKi1aH7PJXxdhTeZBFrg8vUBeKXi+cNprXsC1kpJcbcVnV9wBsrOu1cQEdG0WeQwlfHiy3XvnKfIrJ2R0NzQ== + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-helpers@^5.0.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + +dom-serializer@^1.0.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^2.5.2, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +domutils@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" + integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dot-prop@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" + integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== + dependencies: + is-obj "^2.0.0" + +dotenv@^8.2.0, dotenv@^8.6.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" + integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== + +duplexer@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +editorconfig@^0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" + integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== + dependencies: + commander "^2.19.0" + lru-cache "^4.1.5" + semver "^5.6.0" + sigmund "^1.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +electron-to-chromium@^1.4.431: + version "1.4.442" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.442.tgz#455f4c5bd6ae73afb634dcffee6f356c26c8e294" + integrity sha512-RkrZF//Ya+0aJq2NM3OdisNh5ZodZq1rdXOS96G8DdDgpDKqKE81yTbbQ3F/4CKm1JBPsGu1Lp/akkna2xO06Q== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^5.15.0: + version "5.15.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" + integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entities@^4.2.0, entities@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +env-paths@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +envinfo@^7.7.3: + version "7.10.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.10.0.tgz#55146e3909cc5fe63c22da63fb15b05aeac35b13" + integrity sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.19.0, es-abstract@^1.20.4: + version "1.21.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" + integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== + dependencies: + array-buffer-byte-length "^1.0.0" + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.2.0" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.10" + is-weakref "^1.0.2" + object-inspect "^1.12.3" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.7" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.9" + +es-get-iterator@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + +es-module-lexer@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.0.tgz#6be9c9e0b4543a60cd166ff6f8b4e9dae0b0c16f" + integrity sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA== + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" + +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + dependencies: + has "^1.0.3" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@^0.10.61, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: + version "0.10.62" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" + integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + next-tick "^1.1.0" + +es6-iterator@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +es6-weak-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@^1.0.3, escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-config-prettier@^8.5.0: + version "8.8.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" + integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== + +eslint-import-resolver-node@^0.3.6: + version "0.3.7" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" + integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== + dependencies: + debug "^3.2.7" + is-core-module "^2.11.0" + resolve "^1.22.1" + +eslint-module-utils@^2.7.2: + version "2.8.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== + dependencies: + debug "^3.2.7" + +eslint-plugin-filenames@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-filenames/-/eslint-plugin-filenames-1.3.2.tgz#7094f00d7aefdd6999e3ac19f72cea058e590cf7" + integrity sha512-tqxJTiEM5a0JmRCUYQmxw23vtTxrb2+a3Q2mMOPhFxvt7ZQQJmdiuMby9B/vUAuVMghyP7oET+nIf6EO6CBd/w== + dependencies: + lodash.camelcase "4.3.0" + lodash.kebabcase "4.1.1" + lodash.snakecase "4.1.1" + lodash.upperfirst "4.3.1" + +eslint-plugin-import@2.25.4: + version "2.25.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz#322f3f916a4e9e991ac7af32032c25ce313209f1" + integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA== + dependencies: + array-includes "^3.1.4" + array.prototype.flat "^1.2.5" + debug "^2.6.9" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.6" + eslint-module-utils "^2.7.2" + has "^1.0.3" + is-core-module "^2.8.0" + is-glob "^4.0.3" + minimatch "^3.0.4" + object.values "^1.1.5" + resolve "^1.20.0" + tsconfig-paths "^3.12.0" + +eslint-plugin-prettier@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" + integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-plugin-react-hooks@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" + integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== + +eslint-plugin-simple-import-sort@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-10.0.0.tgz#cc4ceaa81ba73252427062705b64321946f61351" + integrity sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw== + +eslint-scope@5.1.1, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" + integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" + integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== + +eslint@^8.19.0: + version "8.43.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.43.0.tgz#3e8c6066a57097adfd9d390b8fc93075f257a094" + integrity sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.4.0" + "@eslint/eslintrc" "^2.0.3" + "@eslint/js" "8.43.0" + "@humanwhocodes/config-array" "^0.11.10" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.0" + eslint-visitor-keys "^3.4.1" + espree "^9.5.2" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.1" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + +espree@^9.5.2: + version "9.5.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" + integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== + dependencies: + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +events@3.3.0, events@^3.2.0, events@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + +express-fileupload@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/express-fileupload/-/express-fileupload-1.4.0.tgz#be9d70a881d6c2b1ce668df86e4f89ddbf238ec7" + integrity sha512-RjzLCHxkv3umDeZKeFeMg8w7qe0V09w3B7oGZprr/oO2H/ISCgNzuqzn7gV3HRWb37GjRk429CCpSLS2KNTqMQ== + dependencies: + busboy "^1.6.0" + +express-rate-limit@^5.5.1: + version "5.5.1" + resolved "https://registry.yarnpkg.com/express-rate-limit/-/express-rate-limit-5.5.1.tgz#110c23f6a65dfa96ab468eda95e71697bc6987a2" + integrity sha512-MTjE2eIbHv5DyfuFz4zLYWxpqVhEhkTiwFGuB74Q9CSou2WHO52nlE5y3Zlg6SIsiYUIPj6ifFxnkPz6O3sIUg== + +express@^4.17.1, express@^4.18.2: + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.1" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.5.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.1.2: + version "1.7.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== + dependencies: + type "^2.7.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + dependencies: + is-extendable "^0.1.0" + +fast-base64-decode@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz#b434a0dd7d92b12b43f26819300d2dafb83ee418" + integrity sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q== + +fast-copy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fast-copy/-/fast-copy-3.0.1.tgz#9e89ef498b8c04c1cd76b33b8e14271658a732aa" + integrity sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== + +fast-glob@^3.2.9: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-redact@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.2.0.tgz#b1e2d39bc731376d28bde844454fa23e26919987" + integrity sha512-zaTadChr+NekyzallAMXATXLOR8MNx3zqpZ0MUF2aGf4EathnG0f32VLODNlY8IuGY3HoRO2L6/6fSzNsLaHIw== + +fast-safe-stringify@^2.0.8, fast-safe-stringify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + +fast-xml-parser@4.2.5: + version "4.2.5" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz#a6747a09296a6cb34f2ae634019bf1738f3b421f" + integrity sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g== + dependencies: + strnum "^1.0.5" + +fastest-levenshtein@^1.0.12: + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +file-type@16.5.4: + version "16.5.4" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.5.4.tgz#474fb4f704bee427681f98dd390058a172a6c2fd" + integrity sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw== + dependencies: + readable-web-to-node-stream "^3.0.0" + strtok3 "^6.2.4" + token-types "^4.1.1" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-root@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +find-up@4.1.0, find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatley@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/flatley/-/flatley-5.2.0.tgz#3a645837c669be8d978335e37ae3afffcfbdedb7" + integrity sha512-vsb0/03uIHu7/3jRqABweblFUJMLokz1uMrcgFlvx6OAr6V3FiSic2iXeiJCj+cciTiQeumSDsIFAAnN1yvu4w== + dependencies: + is-buffer "^1.1.6" + +flatstr@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/flatstr/-/flatstr-1.0.12.tgz#c2ba6a08173edbb6c9640e3055b95e287ceb5931" + integrity sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw== + +flatted@^3.1.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== + +focus-trap@^6.9.2: + version "6.9.4" + resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-6.9.4.tgz#436da1a1d935c48b97da63cd8f361c6f3aa16444" + integrity sha512-v2NTsZe2FF59Y+sDykKY+XjqZ0cPfhq/hikWVL88BqLivnNiEffAsac6rP6H45ff9wG9LL5ToiDqrLEP9GX9mw== + dependencies: + tabbable "^5.3.3" + +follow-redirects@^1.15.0: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fraction.js@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" + integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-monkey@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.4.tgz#ee8c1b53d3fe8bb7e5d2c5c5dfc0168afdd2f747" + integrity sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functions-have-names@^1.2.2, functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-proto "^1.0.1" + has-symbols "^1.0.3" + +get-stdin@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" + integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +get-tsconfig@^4.4.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.6.2.tgz#831879a5e6c2aa24fe79b60340e2233a1e0f472e" + integrity sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg== + dependencies: + resolve-pkg-maps "^1.0.0" + +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-promise@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/glob-promise/-/glob-promise-4.2.2.tgz#15f44bcba0e14219cd93af36da6bb905ff007877" + integrity sha512-xcUzJ8NWN5bktoTIX7eOclO1Npxd/dyVqUJxlLIDasT4C7KZyqlPIwkdJ0Ypiy3p2ZKahTjK4M9uC3sNSfNMzw== + dependencies: + "@types/glob" "^7.1.3" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^7.0.5, glob@^7.1.3, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^8.0.0, glob@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +globals@^13.19.0: + version "13.20.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +graphql-http@^1.17.1: + version "1.19.0" + resolved "https://registry.yarnpkg.com/graphql-http/-/graphql-http-1.19.0.tgz#6f0fff0dbd9a8e797c99b5ac0ca160566e7927da" + integrity sha512-fOD3hfp/G+Lhx2FWW5HsfmtJSsw6CikcpOboG7/mFo/pPUzn3yOwKdTFRnJ8MVY4ru69MT1nSPr/1gI/iuGNlw== + +graphql-playground-html@^1.6.30: + version "1.6.30" + resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.6.30.tgz#14c2a8eb7fc17bfeb1a746bbb28a11e34bf0b391" + integrity sha512-tpCujhsJMva4aqE8ULnF7/l3xw4sNRZcSHu+R00VV+W0mfp+Q20Plvcrp+5UXD+2yS6oyCXncA+zoQJQqhGCEw== + dependencies: + xss "^1.0.6" + +graphql-playground-middleware-express@^1.7.23: + version "1.7.23" + resolved "https://registry.yarnpkg.com/graphql-playground-middleware-express/-/graphql-playground-middleware-express-1.7.23.tgz#95aba44d801ff3c08b2246917d2901d2e7c35d3d" + integrity sha512-M/zbTyC1rkgiQjFSgmzAv6umMHOphYLNWZp6Ye5QrD77WfGOOoSqDsVmGUczc2pDkEPEzzGB/bvBO5rdzaTRgw== + dependencies: + graphql-playground-html "^1.6.30" + +graphql-query-complexity@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/graphql-query-complexity/-/graphql-query-complexity-0.12.0.tgz#5f636ccc54da82225f31e898e7f27192fe074b4c" + integrity sha512-fWEyuSL6g/+nSiIRgIipfI6UXTI7bAxrpPlCY1c0+V3pAEUo1ybaKmSBgNr1ed2r+agm1plJww8Loig9y6s2dw== + dependencies: + lodash.get "^4.4.2" + +graphql-scalars@^1.20.1: + version "1.22.2" + resolved "https://registry.yarnpkg.com/graphql-scalars/-/graphql-scalars-1.22.2.tgz#6326e6fe2d0ad4228a9fea72a977e2bf26b86362" + integrity sha512-my9FB4GtghqXqi/lWSVAOPiTzTnnEzdOXCsAC2bb5V7EFNQjVjwy3cSSbUvgYOtDuDibd+ZsCDhz+4eykYOlhQ== + dependencies: + tslib "^2.5.0" + +graphql-type-json@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/graphql-type-json/-/graphql-type-json-0.3.2.tgz#f53a851dbfe07bd1c8157d24150064baab41e115" + integrity sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg== + +graphql@^16.6.0: + version "16.7.1" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.7.1.tgz#11475b74a7bff2aefd4691df52a0eca0abd9b642" + integrity sha512-DRYR9tf+UGU0KOsMcKAlXeFfX89UiiIZ0dRU3mR0yJfu6OjZqUcp68NnFLnqQU5RexygFoDy1EW+ccOYcPfmHg== + +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== + dependencies: + duplexer "^0.1.2" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +help-me@^4.0.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/help-me/-/help-me-4.2.0.tgz#50712bfd799ff1854ae1d312c36eafcea85b0563" + integrity sha512-TAOnTB8Tz5Dw8penUuzHVrKNKlCIbwwbHnXraNJxPwf8LRtE2HlM84RYuezMFcwOJmoYOCWVDyJ8TQGxn9PgxA== + dependencies: + glob "^8.0.0" + readable-stream "^3.6.0" + +history@^4.9.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^3.0.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^1.0.1" + +hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +html-entities@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.4.0.tgz#edd0cee70402584c8c76cc2c0556db09d1f45061" + integrity sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ== + +html-minifier-terser@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" + integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== + dependencies: + camel-case "^4.1.2" + clean-css "^5.2.2" + commander "^8.3.0" + he "^1.2.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.10.0" + +html-parse-stringify@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz#dfc1017347ce9f77c8141a507f233040c59c55d2" + integrity sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg== + dependencies: + void-elements "3.1.0" + +html-to-text@9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/html-to-text/-/html-to-text-9.0.3.tgz#331368f32fcb270c59dbd3a7fdb32813d2a490bc" + integrity sha512-hxDF1kVCF2uw4VUJ3vr2doc91pXf2D5ngKcNviSitNkhP9OMOaJkDrFIFL6RMvko7NisWTEiqGpQ9LAxcVok1w== + dependencies: + "@selderee/plugin-htmlparser2" "^0.10.0" + deepmerge "^4.2.2" + dom-serializer "^2.0.0" + htmlparser2 "^8.0.1" + selderee "^0.10.0" + +html-webpack-plugin@^5.5.0: + version "5.5.3" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz#72270f4a78e222b5825b296e5e3e1328ad525a3e" + integrity sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg== + dependencies: + "@types/html-minifier-terser" "^6.0.0" + html-minifier-terser "^6.0.2" + lodash "^4.17.21" + pretty-error "^4.0.0" + tapable "^2.0.0" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +htmlparser2@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" + integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + entities "^4.4.0" + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-status@^1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/http-status/-/http-status-1.6.2.tgz#6dc05188a9856d67d96e48e8b4fd645c719ce82a" + integrity sha512-oUExvfNckrpTpDazph7kNG8sQi5au3BeTo0idaZFXEhTaJKu7GNJCLHI0rYY2wljm548MSTM+Ljj/c6anqu2zQ== + +i18next-browser-languagedetector@^6.1.8: + version "6.1.8" + resolved "https://registry.yarnpkg.com/i18next-browser-languagedetector/-/i18next-browser-languagedetector-6.1.8.tgz#8e9c61b32a4dfe9b959b38bc9d2a8b95f799b27c" + integrity sha512-Svm+MduCElO0Meqpj1kJAriTC6OhI41VhlT/A0UPjGoPZBhAHIaGE5EfsHlTpgdH09UVX7rcc72pSDDBeKSQQA== + dependencies: + "@babel/runtime" "^7.19.0" + +i18next-http-middleware@^3.2.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/i18next-http-middleware/-/i18next-http-middleware-3.3.2.tgz#6a24fee6bde44952a5af24364d43fa32f6c1b9b6" + integrity sha512-PSeLXQXr9Qiv9Q3GCWCoIJenKVbxCcVsXb7VMp/mOprV4gu+AMJT7VHw4+QEf6oYW6GU31QSLnfDpLNoSMtx3g== + +i18next@^22.4.9: + version "22.5.1" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-22.5.1.tgz#99df0b318741a506000c243429a7352e5f44d424" + integrity sha512-8TGPgM3pAD+VRsMtUMNknRz3kzqwp/gPALrWMsDnmC1mKqJwpWyooQRLMcbTwq8z8YwSmuj+ZYvc+xCuEpkssA== + dependencies: + "@babel/runtime" "^7.20.6" + +iconv-lite@0.4.24, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore-by-default@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== + +ignore@^5.2.0: + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + +immer@^9.0.6: + version "9.0.21" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" + integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== + +immutable@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be" + integrity sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@^1.3.4, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +internal-slot@^1.0.4, internal-slot@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== + dependencies: + get-intrinsic "^1.2.0" + has "^1.0.3" + side-channel "^1.0.4" + +interpret@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" + integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== + +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@^1.1.5, is-buffer@^1.1.6, is-buffer@~1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.11.0, is-core-module@^2.8.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1, is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-extendable@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hotkey@^0.1.6: + version "0.1.8" + resolved "https://registry.yarnpkg.com/is-hotkey/-/is-hotkey-0.1.8.tgz#6b1f4b2d0e5639934e20c05ed24d623a21d36d25" + integrity sha512-qs3NZ1INIS+H+yeo7cD9pDfwYV/jqRh1JG9S9zYrNudkoUQg7OL7ziXqRKu+InFjUIDoP2o6HIkLYMh1pcWgyQ== + +is-hotkey@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/is-hotkey/-/is-hotkey-0.2.0.tgz#1835a68171a91e5c9460869d96336947c8340cef" + integrity sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw== + +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-promise@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.10, is-typed-array@^1.1.9: + version "1.1.10" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +is-whitespace@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" + integrity sha512-RydPhl4S6JwAyj0JJjshWJEFG6hNye3pZFBRZaTUfZFwGHxzppNaNOVgQuS/E/SlhrApuMXrpnK1EEIXfdo3Dg== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +isomorphic-fetch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz#0267b005049046d2421207215d45d6a262b8b8b4" + integrity sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA== + dependencies: + node-fetch "^2.6.1" + whatwg-fetch "^3.4.1" + +isomorphic-unfetch@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz#87341d5f4f7b63843d468438128cb087b7c3e98f" + integrity sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q== + dependencies: + node-fetch "^2.6.1" + unfetch "^4.2.0" + +jest-util@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" + integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ== + dependencies: + "@jest/types" "^29.5.0" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest-worker@^29.4.3: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d" + integrity sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA== + dependencies: + "@types/node" "*" + jest-util "^29.5.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +joi@^17.7.0: + version "17.9.2" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.9.2.tgz#8b2e4724188369f55451aebd1d0b1d9482470690" + integrity sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw== + dependencies: + "@hapi/hoek" "^9.0.0" + "@hapi/topo" "^5.0.0" + "@sideway/address" "^4.1.3" + "@sideway/formula" "^3.0.1" + "@sideway/pinpoint" "^2.0.0" + +joycon@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" + integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== + +js-beautify@^1.6.12: + version "1.14.8" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.14.8.tgz#e0c570c15b5445b006de6d9a3e70fb62f9e408e9" + integrity sha512-4S7HFeI9YfRvRgKnEweohs0tgJj28InHVIj4Nl8Htf96Y6pHg3+tJrmo4ucAM9f7l4SHbFI3IvFAZ2a1eQPbyg== + dependencies: + config-chain "^1.1.13" + editorconfig "^0.15.3" + glob "^8.1.0" + nopt "^6.0.0" + +js-cookie@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" + integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-to-typescript@11.0.3: + version "11.0.3" + resolved "https://registry.yarnpkg.com/json-schema-to-typescript/-/json-schema-to-typescript-11.0.3.tgz#9b401c2b78329959f1c4c4e0639a6bdcf6a6ed77" + integrity sha512-EaEE9Y4VZ8b9jW5zce5a9L3+p4C9AqgIRHbNVDJahfMnoKzcd4sDb98BLxLdQhJEuRAXyKLg4H66NKm80W8ilg== + dependencies: + "@bcherny/json-schema-ref-parser" "9.0.9" + "@types/json-schema" "^7.0.11" + "@types/lodash" "^4.14.182" + "@types/prettier" "^2.6.1" + cli-color "^2.0.2" + get-stdin "^8.0.0" + glob "^7.1.6" + glob-promise "^4.2.2" + is-glob "^4.0.3" + lodash "^4.17.21" + minimist "^1.2.6" + mkdirp "^1.0.4" + mz "^2.7.0" + prettier "^2.6.2" + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema-typed@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz#23ff481b8b4eebcd2ca123b4fa0409e66469a2d9" + integrity sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonwebtoken@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz#d0faf9ba1cc3a56255fe49c0961a67e520c1926d" + integrity sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw== + dependencies: + jws "^3.2.2" + lodash "^4.17.21" + ms "^2.1.1" + semver "^7.3.8" + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +jwt-decode@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-3.1.2.tgz#3fb319f3675a2df0c2895c8f5e9fa4b67b04ed59" + integrity sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A== + +kareem@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.4.1.tgz#7d81ec518204a48c1cb16554af126806c3cd82b0" + integrity sha512-aJ9opVoXroQUPfovYP5kaj2lM7Jn02Gw13bL0lg9v0V7SaUc0qavPs0Eue7d2DcC3NjqI6QAUElXNsuZSeM+EA== + +kind-of@^3.0.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== + dependencies: + is-buffer "^1.1.5" + +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +klona@^2.0.4, klona@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" + integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== + +leac@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/leac/-/leac-0.6.0.tgz#dcf136e382e666bd2475f44a1096061b70dc0912" + integrity sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lilconfig@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +loader-utils@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.camelcase@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + +lodash.kebabcase@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.snakecase@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" + integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash.upperfirst@4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" + integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== + +lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lru-cache@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lru-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" + integrity sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ== + dependencies: + es5-ext "~0.10.2" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +md5@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" + integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== + dependencies: + charenc "0.0.2" + crypt "0.0.2" + is-buffer "~1.1.6" + +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memfs@^3.4.12: + version "3.6.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" + integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== + dependencies: + fs-monkey "^1.0.4" + +memoize-one@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-6.0.0.tgz#b2591b871ed82948aee4727dc6abceeeac8c1045" + integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw== + +memoizee@^0.4.15: + version "0.4.15" + resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72" + integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ== + dependencies: + d "^1.0.1" + es5-ext "^0.10.53" + es6-weak-map "^2.0.3" + event-emitter "^0.3.5" + is-promise "^2.2.2" + lru-queue "^0.1.0" + next-tick "^1.1.0" + timers-ext "^0.1.7" + +memory-pager@^1.0.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5" + integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +method-override@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/method-override/-/method-override-3.0.0.tgz#6ab0d5d574e3208f15b0c9cf45ab52000468d7a2" + integrity sha512-IJ2NNN/mSl9w3kzWB92rcdHpz+HjkxhDJWNDBqSlas+zQdP8wBiJzITPg08M/k2uVvMow7Sk41atndNtt/PHSA== + dependencies: + debug "3.1.0" + methods "~1.1.2" + parseurl "~1.3.2" + vary "~1.1.2" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micro-memoize@^4.0.14: + version "4.1.2" + resolved "https://registry.yarnpkg.com/micro-memoize/-/micro-memoize-4.1.2.tgz#ce719c1ba1e41592f1cd91c64c5f41dcbf135f36" + integrity sha512-+HzcV2H+rbSJzApgkj0NdTakkC+bnyeiUxgT6/m7mjcz1CmM22KYFKp+EVj1sWe4UYcnriJr5uqHQD/gMHLD+g== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-fn@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" + integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +mini-css-extract-plugin@1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.2.tgz#83172b4fd812f8fc4a09d6f6d16f924f53990ca8" + integrity sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + webpack-sources "^1.1.0" + +minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6, minimist@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +monaco-editor@^0.38.0: + version "0.38.0" + resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.38.0.tgz#7b3cd16f89b1b8867fcd3c96e67fccee791ff05c" + integrity sha512-11Fkh6yzEmwx7O0YoLxeae0qEGFwmyPRlVxpg7oF9czOOCB/iCjdJrG5I67da5WiXK3YJCxoz9TJFE8Tfq/v9A== + +mongodb-connection-string-url@^2.5.2: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz#57901bf352372abdde812c81be47b75c6b2ec5cf" + integrity sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ== + dependencies: + "@types/whatwg-url" "^8.2.1" + whatwg-url "^11.0.0" + +mongodb@4.8.1: + version "4.8.1" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-4.8.1.tgz#596de88ff4519128266d9254dbe5b781c4005796" + integrity sha512-/NyiM3Ox9AwP5zrfT9TXjRKDJbXlLaUDQ9Rg//2lbg8D2A8GXV0VidYYnA/gfdK6uwbnL4FnAflH7FbGw3TS7w== + dependencies: + bson "^4.6.5" + denque "^2.0.1" + mongodb-connection-string-url "^2.5.2" + socks "^2.6.2" + optionalDependencies: + saslprep "^1.0.3" + +mongoose-aggregate-paginate-v2@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/mongoose-aggregate-paginate-v2/-/mongoose-aggregate-paginate-v2-1.0.6.tgz#fd2f2564d1bbf52f49a196f0b7b03675913dacca" + integrity sha512-UuALu+mjhQa1K9lMQvjLL3vm3iALvNw8PQNIh2gp1b+tO5hUa0NC0Wf6/8QrT9PSJVTihXaD8hQVy3J4e0jO0Q== + +mongoose-paginate-v2@^1.6.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/mongoose-paginate-v2/-/mongoose-paginate-v2-1.7.1.tgz#0b390f5eb8e5dca55ffcb1fd7b4d8078636cb8f1" + integrity sha512-J8DJw3zRXcXOKoZv+RvO9tt5HotRnbo2iCR3lke+TtsQsYwQvbY3EgUkPqZXw6qCX2IByvXrW5SGNdAB0od/Cw== + +mongoose@6.5.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-6.5.0.tgz#5c71aa8d4027e50bfe8d29d6e955e378e010d174" + integrity sha512-swOX8ZEbmCeJaEs29B1j67StBIhuOccNNkipbVhsnLYYCDpNE7heM9W54MFGwN5es9tGGoxINHSzOhJ9kTOZGg== + dependencies: + bson "^4.6.5" + kareem "2.4.1" + mongodb "4.8.1" + mpath "0.9.0" + mquery "4.0.3" + ms "2.1.3" + sift "16.0.0" + +mpath@0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.9.0.tgz#0c122fe107846e31fc58c75b09c35514b3871904" + integrity sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew== + +mquery@4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/mquery/-/mquery-4.0.3.tgz#4d15f938e6247d773a942c912d9748bd1965f89d" + integrity sha512-J5heI+P08I6VJ2Ky3+33IpCdAvlYGTSUjwTPxkAr8i8EoduPMBX2OY/wa3IKZIQl7MU4SbFk8ndgSKyB/cl1zA== + dependencies: + debug "4.x" + +mrmime@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" + integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nanoid@^3.3.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== + +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +needle@^2.5.2: + version "2.9.1" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.9.1.tgz#22d1dffbe3490c2b83e301f7709b6736cd8f2684" + integrity sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +next-tick@1, next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-abi@^3.3.0: + version "3.45.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.45.0.tgz#f568f163a3bfca5aacfce1fbeee1fa2cc98441f5" + integrity sha512-iwXuFrMAcFVi/ZoZiqq8BzAdsLw9kxDfTC0HMyjXfSL/6CSDAGD5UmR7azrAgWV1zKYq7dUUMj4owusBWKLsiQ== + dependencies: + semver "^7.3.5" + +node-addon-api@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" + integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== + +node-fetch@^2.6.1: + version "2.6.11" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25" + integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w== + dependencies: + whatwg-url "^5.0.0" + +node-releases@^2.0.12: + version "2.0.12" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" + integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== + +nodemailer@^6.9.0: + version "6.9.3" + resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.9.3.tgz#e4425b85f05d83c43c5cd81bf84ab968f8ef5cbe" + integrity sha512-fy9v3NgTzBngrMFkDsKEj0r02U7jm6XfC3b52eoNV+GCrGj+s8pt5OqhiJdWKuw51zCTdiNR/IUD1z33LIIGpg== + +nodemon@^2.0.6: + version "2.0.22" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.22.tgz#182c45c3a78da486f673d6c1702e00728daf5258" + integrity sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ== + dependencies: + chokidar "^3.5.2" + debug "^3.2.7" + ignore-by-default "^1.0.1" + minimatch "^3.1.2" + pstree.remy "^1.1.8" + semver "^5.7.1" + simple-update-notifier "^1.0.7" + supports-color "^5.5.0" + touch "^3.1.0" + undefsafe "^2.0.5" + +noms@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/noms/-/noms-0.0.0.tgz#da8ebd9f3af9d6760919b27d9cdc8092a7332859" + integrity sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow== + dependencies: + inherits "^2.0.1" + readable-stream "~1.0.31" + +nopt@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" + integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== + dependencies: + abbrev "^1.0.0" + +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg== + dependencies: + abbrev "1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +object-assign@^4.0.1, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.12.3, object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + +object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-to-formdata@^4.4.2: + version "4.5.1" + resolved "https://registry.yarnpkg.com/object-to-formdata/-/object-to-formdata-4.5.1.tgz#b6955a9c505b58df15852fee5f844b418b3eb6fe" + integrity sha512-QiM9D0NiU5jV6J6tjE1g7b4Z2tcUnKs1OPUi4iMb2zH+7jwlcUrASghgkFk9GtzqNNq8rTQJtT8AzjBAvLoNMw== + +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.values@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" + integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +on-exit-leak-free@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz#5c703c968f7e7f851885f6459bf8a8a57edc9cc4" + integrity sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +opener@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + +optionator@^0.9.1: + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== + dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parseley@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/parseley/-/parseley-0.11.0.tgz#1ff817c829a02fcc214c9cc0d96b126d772ee814" + integrity sha512-VfcwXlBWgTF+unPcr7yu3HSSA6QUdDaDnrHcytVfj5Z8azAyKBDrYnSIfeSxlrEayndNcLmrXzg+Vxbo6DWRXQ== + dependencies: + leac "^0.6.0" + peberminta "^0.8.0" + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +passport-anonymous@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/passport-anonymous/-/passport-anonymous-1.0.1.tgz#241e37274ec44dfb7f6cad234b41c438386bc117" + integrity sha512-Mk2dls97nLTzHpsWCYQ54IVGucWaiWSHHr3+IhWYAebg4dRgRQIfyoeYrixoxB2z2z4+EM7p9yjC+a3yMB5z5A== + dependencies: + passport-strategy "1.x.x" + +passport-headerapikey@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/passport-headerapikey/-/passport-headerapikey-1.2.2.tgz#b71960523999c9864151b8535c919e3ff5ba75ce" + integrity sha512-4BvVJRrWsNJPrd3UoZfcnnl4zvUWYKEtfYkoDsaOKBsrWHYmzTApCjs7qUbncOLexE9ul0IRiYBFfBG0y9IVQA== + dependencies: + lodash "^4.17.15" + passport-strategy "^1.0.0" + +passport-jwt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/passport-jwt/-/passport-jwt-4.0.1.tgz#c443795eff322c38d173faa0a3c481479646ec3d" + integrity sha512-UCKMDYhNuGOBE9/9Ycuoyh7vP6jpeTp/+sfMJl7nLff/t6dps+iaeE0hhNkKN8/HZHcJ7lCdOyDxHdDoxoSvdQ== + dependencies: + jsonwebtoken "^9.0.0" + passport-strategy "^1.0.0" + +passport-local@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/passport-local/-/passport-local-1.0.0.tgz#1fe63268c92e75606626437e3b906662c15ba6ee" + integrity sha512-9wCE6qKznvf9mQYYbgJ3sVOHmCWoUNMVFoZzNoznmISbhnNNPhN9xfY3sLmScHMetEJeoY7CXwfhCe7argfQow== + dependencies: + passport-strategy "1.x.x" + +passport-strategy@1.x.x, passport-strategy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4" + integrity sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA== + +passport@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/passport/-/passport-0.6.0.tgz#e869579fab465b5c0b291e841e6cc95c005fac9d" + integrity sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug== + dependencies: + passport-strategy "1.x.x" + pause "0.0.1" + utils-merge "^1.0.1" + +path-browserify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pause@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" + integrity sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg== + +payload@^1.7.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/payload/-/payload-1.10.2.tgz#13f9fbc9d98b59a81d6b225ac21ad3da34066fbe" + integrity sha512-7Ie8WlcfDDKRVSAK4NGnMtEt8lNuCboYSHbERJMLYbtYNOyHXCmHiRgW3dWZeF+vTtpd8gRPyjwDWr+4hQQayQ== + dependencies: + "@date-io/date-fns" "^2.16.0" + "@dnd-kit/core" "^6.0.7" + "@dnd-kit/sortable" "^7.0.2" + "@faceless-ui/modal" "^2.0.1" + "@faceless-ui/scroll-info" "^1.3.0" + "@faceless-ui/window-info" "^2.1.1" + "@monaco-editor/react" "^4.5.1" + "@swc/core" "^1.3.26" + "@swc/register" "^0.1.10" + "@types/sharp" "^0.31.1" + body-parser "^1.20.1" + bson-objectid "^2.0.4" + compression "^1.7.4" + conf "^10.2.0" + connect-history-api-fallback "^1.6.0" + css-loader "^5.2.7" + css-minimizer-webpack-plugin "^5.0.0" + dataloader "^2.1.0" + date-fns "^2.29.3" + deep-equal "^2.2.0" + deepmerge "^4.2.2" + dotenv "^8.6.0" + express "^4.18.2" + express-fileupload "1.4.0" + express-rate-limit "^5.5.1" + file-loader "^6.2.0" + file-type "16.5.4" + find-up "4.1.0" + flatley "^5.2.0" + fs-extra "^10.1.0" + get-tsconfig "^4.4.0" + graphql "^16.6.0" + graphql-http "^1.17.1" + graphql-playground-middleware-express "^1.7.23" + graphql-query-complexity "^0.12.0" + graphql-scalars "^1.20.1" + graphql-type-json "^0.3.2" + html-webpack-plugin "^5.5.0" + http-status "^1.6.2" + i18next "^22.4.9" + i18next-browser-languagedetector "^6.1.8" + i18next-http-middleware "^3.2.2" + is-hotkey "^0.2.0" + is-plain-object "^5.0.0" + isomorphic-fetch "^3.0.0" + joi "^17.7.0" + json-schema-to-typescript "11.0.3" + jsonwebtoken "^9.0.0" + jwt-decode "^3.1.2" + md5 "^2.3.0" + method-override "^3.0.0" + micro-memoize "^4.0.14" + mini-css-extract-plugin "1.6.2" + minimist "^1.2.7" + mkdirp "^1.0.4" + monaco-editor "^0.38.0" + mongoose "6.5.0" + mongoose-aggregate-paginate-v2 "^1.0.6" + mongoose-paginate-v2 "^1.6.1" + nodemailer "^6.9.0" + object-to-formdata "^4.4.2" + passport "^0.6.0" + passport-anonymous "^1.0.1" + passport-headerapikey "^1.2.2" + passport-jwt "^4.0.1" + passport-local "^1.0.0" + path-browserify "^1.0.1" + pino "^6.4.1" + pino-pretty "^9.1.1" + pluralize "^8.0.0" + postcss "^8.4.21" + postcss-loader "^6.2.1" + postcss-preset-env "^7.8.3" + probe-image-size "^6.0.0" + process "^0.11.10" + qs "^6.11.0" + qs-middleware "^1.0.3" + react "^18.2.0" + react-animate-height "^2.1.2" + react-datepicker "^4.10.0" + react-diff-viewer-continued "^3.2.6" + react-dom "^18.2.0" + react-helmet "^6.1.0" + react-i18next "^11.18.6" + react-router-dom "^5.3.4" + react-router-navigation-prompt "^1.9.6" + react-select "^5.7.3" + react-toastify "^8.2.0" + sanitize-filename "^1.6.3" + sass "^1.57.1" + sass-loader "^12.6.0" + scheduler "^0.23.0" + scmp "^2.1.0" + sharp "^0.31.3" + slate "^0.91.4" + slate-history "^0.86.0" + slate-hyperscript "^0.81.3" + slate-react "^0.92.0" + style-loader "^2.0.0" + swc-loader "^0.2.3" + swc-minify-webpack-plugin "^2.1.0" + terser-webpack-plugin "^5.3.6" + ts-essentials "^7.0.3" + url-loader "^4.1.1" + use-context-selector "^1.4.1" + uuid "^8.3.2" + webpack "^5.78.0" + webpack-bundle-analyzer "^4.8.0" + webpack-cli "^4.10.0" + webpack-dev-middleware "6.0.1" + webpack-hot-middleware "^2.25.3" + +peberminta@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/peberminta/-/peberminta-0.8.0.tgz#acf7b105f3d13c8ac28cad81f2f5fe4698507590" + integrity sha512-YYEs+eauIjDH5nUEGi18EohWE0nV2QbGTqmxQcqgZ/0g+laPCQmuIqq7EBLVi9uim9zMgfJv0QBZEnQ3uHw/Tw== + +peek-readable@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-4.1.0.tgz#4ece1111bf5c2ad8867c314c81356847e8a62e72" + integrity sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pino-abstract-transport@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz#cc0d6955fffcadb91b7b49ef220a6cc111d48bb3" + integrity sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA== + dependencies: + readable-stream "^4.0.0" + split2 "^4.0.0" + +pino-pretty@^9.1.1: + version "9.4.0" + resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-9.4.0.tgz#fc4026e83c87272cbdfb7afed121770e6000940c" + integrity sha512-NIudkNLxnl7MGj1XkvsqVyRgo6meFP82ECXF2PlOI+9ghmbGuBUUqKJ7IZPIxpJw4vhhSva0IuiDSAuGh6TV9g== + dependencies: + colorette "^2.0.7" + dateformat "^4.6.3" + fast-copy "^3.0.0" + fast-safe-stringify "^2.1.1" + help-me "^4.0.1" + joycon "^3.1.1" + minimist "^1.2.6" + on-exit-leak-free "^2.1.0" + pino-abstract-transport "^1.0.0" + pump "^3.0.0" + readable-stream "^4.0.0" + secure-json-parse "^2.4.0" + sonic-boom "^3.0.0" + strip-json-comments "^3.1.1" + +pino-std-serializers@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz#b56487c402d882eb96cd67c257868016b61ad671" + integrity sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg== + +pino@^6.4.1: + version "6.14.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-6.14.0.tgz#b745ea87a99a6c4c9b374e4f29ca7910d4c69f78" + integrity sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg== + dependencies: + fast-redact "^3.0.0" + fast-safe-stringify "^2.0.8" + flatstr "^1.0.12" + pino-std-serializers "^3.1.0" + process-warning "^1.0.0" + quick-format-unescaped "^4.0.3" + sonic-boom "^1.0.2" + +pirates@^4.0.1: + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-up@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + +postcss-attribute-case-insensitive@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz#03d761b24afc04c09e757e92ff53716ae8ea2741" + integrity sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-calc@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-9.0.1.tgz#a744fd592438a93d6de0f1434c572670361eb6c6" + integrity sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ== + dependencies: + postcss-selector-parser "^6.0.11" + postcss-value-parser "^4.2.0" + +postcss-clamp@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz#7263e95abadd8c2ba1bd911b0b5a5c9c93e02363" + integrity sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-functional-notation@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz#21a909e8d7454d3612d1659e471ce4696f28caec" + integrity sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-hex-alpha@^8.0.4: + version "8.0.4" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz#c66e2980f2fbc1a63f5b079663340ce8b55f25a5" + integrity sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-rebeccapurple@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz#63fdab91d878ebc4dd4b7c02619a0c3d6a56ced0" + integrity sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-colormin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-6.0.0.tgz#d4250652e952e1c0aca70c66942da93d3cdeaafe" + integrity sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + colord "^2.9.1" + postcss-value-parser "^4.2.0" + +postcss-convert-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-6.0.0.tgz#ec94a954957e5c3f78f0e8f65dfcda95280b8996" + integrity sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw== + dependencies: + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" + +postcss-custom-media@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz#c8f9637edf45fef761b014c024cee013f80529ea" + integrity sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-custom-properties@^12.1.10: + version "12.1.11" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz#d14bb9b3989ac4d40aaa0e110b43be67ac7845cf" + integrity sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-custom-selectors@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz#1ab4684d65f30fed175520f82d223db0337239d9" + integrity sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-dir-pseudo-class@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz#2bf31de5de76added44e0a25ecf60ae9f7c7c26c" + integrity sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-discard-comments@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-6.0.0.tgz#9ca335e8b68919f301b24ba47dde226a42e535fe" + integrity sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw== + +postcss-discard-duplicates@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.0.tgz#c26177a6c33070922e67e9a92c0fd23d443d1355" + integrity sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA== + +postcss-discard-empty@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-6.0.0.tgz#06c1c4fce09e22d2a99e667c8550eb8a3a1b9aee" + integrity sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ== + +postcss-discard-overridden@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-6.0.0.tgz#49c5262db14e975e349692d9024442de7cd8e234" + integrity sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw== + +postcss-double-position-gradients@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz#b96318fdb477be95997e86edd29c6e3557a49b91" + integrity sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +postcss-env-function@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-4.0.6.tgz#7b2d24c812f540ed6eda4c81f6090416722a8e7a" + integrity sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-focus-visible@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz#50c9ea9afa0ee657fb75635fabad25e18d76bf9e" + integrity sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw== + dependencies: + postcss-selector-parser "^6.0.9" + +postcss-focus-within@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz#5b1d2ec603195f3344b716c0b75f61e44e8d2e20" + integrity sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ== + dependencies: + postcss-selector-parser "^6.0.9" + +postcss-font-variant@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz#efd59b4b7ea8bb06127f2d031bfbb7f24d32fa66" + integrity sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA== + +postcss-gap-properties@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz#f7e3cddcf73ee19e94ccf7cb77773f9560aa2fff" + integrity sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg== + +postcss-image-set-function@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz#08353bd756f1cbfb3b6e93182c7829879114481f" + integrity sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-initial@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-4.0.1.tgz#529f735f72c5724a0fb30527df6fb7ac54d7de42" + integrity sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ== + +postcss-lab-function@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz#6fe4c015102ff7cd27d1bd5385582f67ebdbdc98" + integrity sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +postcss-loader@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-6.2.1.tgz#0895f7346b1702103d30fdc66e4d494a93c008ef" + integrity sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q== + dependencies: + cosmiconfig "^7.0.0" + klona "^2.0.5" + semver "^7.3.5" + +postcss-logical@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-5.0.4.tgz#ec75b1ee54421acc04d5921576b7d8db6b0e6f73" + integrity sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g== + +postcss-media-minmax@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz#7140bddec173e2d6d657edbd8554a55794e2a5b5" + integrity sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ== + +postcss-merge-longhand@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.0.tgz#6f627b27db939bce316eaa97e22400267e798d69" + integrity sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg== + dependencies: + postcss-value-parser "^4.2.0" + stylehacks "^6.0.0" + +postcss-merge-rules@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-6.0.1.tgz#39f165746404e646c0f5c510222ccde4824a86aa" + integrity sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + cssnano-utils "^4.0.0" + postcss-selector-parser "^6.0.5" + +postcss-minify-font-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-6.0.0.tgz#68d4a028f9fa5f61701974724b2cc9445d8e6070" + integrity sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-minify-gradients@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-6.0.0.tgz#22b5c88cc63091dadbad34e31ff958404d51d679" + integrity sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA== + dependencies: + colord "^2.9.1" + cssnano-utils "^4.0.0" + postcss-value-parser "^4.2.0" + +postcss-minify-params@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-6.0.0.tgz#2b3a85a9e3b990d7a16866f430f5fd1d5961b539" + integrity sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ== + dependencies: + browserslist "^4.21.4" + cssnano-utils "^4.0.0" + postcss-value-parser "^4.2.0" + +postcss-minify-selectors@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.0.tgz#5046c5e8680a586e5a0cad52cc9aa36d6be5bda2" + integrity sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== + +postcss-modules-local-by-default@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz#b08eb4f083050708998ba2c6061b50c2870ca524" + integrity sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-nesting@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.2.0.tgz#0b12ce0db8edfd2d8ae0aaf86427370b898890be" + integrity sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA== + dependencies: + "@csstools/selector-specificity" "^2.0.0" + postcss-selector-parser "^6.0.10" + +postcss-normalize-charset@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-6.0.0.tgz#36cc12457259064969fb96f84df491652a4b0975" + integrity sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ== + +postcss-normalize-display-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.0.tgz#8d2961415078644d8c6bbbdaf9a2fdd60f546cd4" + integrity sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-positions@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-6.0.0.tgz#25b96df99a69f8925f730eaee0be74416865e301" + integrity sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-repeat-style@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.0.tgz#ddf30ad8762feb5b1eb97f39f251acd7b8353299" + integrity sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-string@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-6.0.0.tgz#948282647a51e409d69dde7910f0ac2ff97cb5d8" + integrity sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-timing-functions@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.0.tgz#5f13e650b8c43351989fc5de694525cc2539841c" + integrity sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-unicode@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.0.tgz#741b3310f874616bdcf07764f5503695d3604730" + integrity sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg== + dependencies: + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" + +postcss-normalize-url@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-6.0.0.tgz#d0a31e962a16401fb7deb7754b397a323fb650b4" + integrity sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-whitespace@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.0.tgz#accb961caa42e25ca4179b60855b79b1f7129d4d" + integrity sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-opacity-percentage@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz#5b89b35551a556e20c5d23eb5260fbfcf5245da6" + integrity sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A== + +postcss-ordered-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-6.0.0.tgz#374704cdff25560d44061d17ba3c6308837a3218" + integrity sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg== + dependencies: + cssnano-utils "^4.0.0" + postcss-value-parser "^4.2.0" + +postcss-overflow-shorthand@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz#7ed6486fec44b76f0eab15aa4866cda5d55d893e" + integrity sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-page-break@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz#7fbf741c233621622b68d435babfb70dd8c1ee5f" + integrity sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ== + +postcss-place@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-7.0.5.tgz#95dbf85fd9656a3a6e60e832b5809914236986c4" + integrity sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-preset-env@^7.8.3: + version "7.8.3" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz#2a50f5e612c3149cc7af75634e202a5b2ad4f1e2" + integrity sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag== + dependencies: + "@csstools/postcss-cascade-layers" "^1.1.1" + "@csstools/postcss-color-function" "^1.1.1" + "@csstools/postcss-font-format-keywords" "^1.0.1" + "@csstools/postcss-hwb-function" "^1.0.2" + "@csstools/postcss-ic-unit" "^1.0.1" + "@csstools/postcss-is-pseudo-class" "^2.0.7" + "@csstools/postcss-nested-calc" "^1.0.0" + "@csstools/postcss-normalize-display-values" "^1.0.1" + "@csstools/postcss-oklab-function" "^1.1.1" + "@csstools/postcss-progressive-custom-properties" "^1.3.0" + "@csstools/postcss-stepped-value-functions" "^1.0.1" + "@csstools/postcss-text-decoration-shorthand" "^1.0.0" + "@csstools/postcss-trigonometric-functions" "^1.0.2" + "@csstools/postcss-unset-value" "^1.0.2" + autoprefixer "^10.4.13" + browserslist "^4.21.4" + css-blank-pseudo "^3.0.3" + css-has-pseudo "^3.0.4" + css-prefers-color-scheme "^6.0.3" + cssdb "^7.1.0" + postcss-attribute-case-insensitive "^5.0.2" + postcss-clamp "^4.1.0" + postcss-color-functional-notation "^4.2.4" + postcss-color-hex-alpha "^8.0.4" + postcss-color-rebeccapurple "^7.1.1" + postcss-custom-media "^8.0.2" + postcss-custom-properties "^12.1.10" + postcss-custom-selectors "^6.0.3" + postcss-dir-pseudo-class "^6.0.5" + postcss-double-position-gradients "^3.1.2" + postcss-env-function "^4.0.6" + postcss-focus-visible "^6.0.4" + postcss-focus-within "^5.0.4" + postcss-font-variant "^5.0.0" + postcss-gap-properties "^3.0.5" + postcss-image-set-function "^4.0.7" + postcss-initial "^4.0.1" + postcss-lab-function "^4.2.1" + postcss-logical "^5.0.4" + postcss-media-minmax "^5.0.0" + postcss-nesting "^10.2.0" + postcss-opacity-percentage "^1.1.2" + postcss-overflow-shorthand "^3.0.4" + postcss-page-break "^3.0.4" + postcss-place "^7.0.5" + postcss-pseudo-class-any-link "^7.1.6" + postcss-replace-overflow-wrap "^4.0.0" + postcss-selector-not "^6.0.1" + postcss-value-parser "^4.2.0" + +postcss-pseudo-class-any-link@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz#2693b221902da772c278def85a4d9a64b6e617ab" + integrity sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-reduce-initial@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-6.0.0.tgz#7d16e83e60e27e2fa42f56ec0b426f1da332eca7" + integrity sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.0.tgz#28ff2601a6d9b96a2f039b3501526e1f4d584a46" + integrity sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-replace-overflow-wrap@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz#d2df6bed10b477bf9c52fab28c568b4b29ca4319" + integrity sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw== + +postcss-selector-not@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz#8f0a709bf7d4b45222793fc34409be407537556d" + integrity sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: + version "6.0.13" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" + integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-6.0.0.tgz#7b18742d38d4505a0455bbe70d52b49f00eaf69d" + integrity sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw== + dependencies: + postcss-value-parser "^4.2.0" + svgo "^3.0.2" + +postcss-unique-selectors@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.0.tgz#c94e9b0f7bffb1203894e42294b5a1b3fb34fbe1" + integrity sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@^8.2.15, postcss@^8.4.21, postcss@^8.4.24: + version "8.4.24" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.24.tgz#f714dba9b2284be3cc07dbd2fc57ee4dc972d2df" + integrity sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +prebuild-install@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45" + integrity sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw== + dependencies: + detect-libc "^2.0.0" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^3.3.0" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^4.0.0" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@^2.6.2, prettier@^2.7.1: + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + +pretty-error@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" + integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== + dependencies: + lodash "^4.17.20" + renderkid "^3.0.0" + +pretty@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pretty/-/pretty-2.0.0.tgz#adbc7960b7bbfe289a557dc5f737619a220d06a5" + integrity sha512-G9xUchgTEiNpormdYBl+Pha50gOUovT18IvAe7EYMZ1/f9W/WWMPRn+xI68yXNMUk3QXHDwo/1wV/4NejVNe1w== + dependencies: + condense-newlines "^0.2.1" + extend-shallow "^2.0.1" + js-beautify "^1.6.12" + +probe-image-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/probe-image-size/-/probe-image-size-6.0.0.tgz#4a85b19d5af4e29a8de7d53a9aa036f6fd02f5f4" + integrity sha512-99PZ5+RU4gqiTfK5ZDMDkZtn6eL4WlKfFyVJV7lFQvH3iGmQ85DqMTOdxorERO26LHkevR2qsxnHp0x/2UDJPA== + dependencies: + deepmerge "^4.0.0" + needle "^2.5.2" + stream-parser "~0.3.1" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process-warning@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" + integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + +pstree.remy@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" + integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^2.1.0, punycode@^2.1.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + +qs-middleware@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/qs-middleware/-/qs-middleware-1.0.3.tgz#84f3535275ba20fd00c2122efacce6ab01092c19" + integrity sha512-ymlixxD/0Bj3BMY9x1z8ENdQdhkmsIbDNyVvfM8soHn5p/CRFlLPrmtxmE5aG//q1PzHHSGuLi+6QlHezivseg== + dependencies: + qs "~6.4.0" + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +qs@^6.11.0, qs@^6.9.1: + version "6.11.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" + integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== + dependencies: + side-channel "^1.0.4" + +qs@~6.4.0: + version "6.4.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.1.tgz#2bad97710a5b661c366b378b1e3a44a592ff45e6" + integrity sha512-LQy1Q1fcva/UsnP/6Iaa4lVeM49WiOitu2T4hZCyA/elLKu37L99qcBJk4VCCk+rdLvnMzfKyiN3SZTqdAZGSQ== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-format-unescaped@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" + integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-animate-height@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/react-animate-height/-/react-animate-height-2.1.2.tgz#9b450fc64d46f10f5e07da8d0d5e2c47b9f15030" + integrity sha512-A9jfz/4CTdsIsE7WCQtO9UkOpMBcBRh8LxyHl2eoZz1ki02jpyUL5xt58gabd0CyeLQ8fRyQ+s2lyV2Ufu8Owg== + dependencies: + classnames "^2.2.5" + prop-types "^15.6.1" + +react-datepicker@^4.10.0: + version "4.14.1" + resolved "https://registry.yarnpkg.com/react-datepicker/-/react-datepicker-4.14.1.tgz#f9f7925d0a40e3195048bbd22a5faa635765163d" + integrity sha512-uiPfjD+25KI5WOfCAXlzQgSLyksTagk3wwKn1KGBdF19YtybFDregRmcoNNGveQHAbT10SJZdCvk/8pbc7zxJg== + dependencies: + "@popperjs/core" "^2.9.2" + classnames "^2.2.6" + date-fns "^2.24.0" + prop-types "^15.7.2" + react-onclickoutside "^6.12.2" + react-popper "^2.3.0" + +react-diff-viewer-continued@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/react-diff-viewer-continued/-/react-diff-viewer-continued-3.2.6.tgz#96382463b5de6838d95323c407442349b1c3a26e" + integrity sha512-GrzyqQnjIMoej+jMjWvtVSsQqhXgzEGqpXlJ2dAGfOk7Q26qcm8Gu6xtI430PBUyZsERe8BJSQf+7VZZo8IBNQ== + dependencies: + "@emotion/css" "^11.10.5" + classnames "^2.3.1" + diff "^5.1.0" + memoize-one "^6.0.0" + prop-types "^15.8.1" + +react-dom@18.2.0, react-dom@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.0" + +react-fast-compare@^3.0.1, react-fast-compare@^3.1.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz#929a97a532304ce9fee4bcae44234f1ce2c21d49" + integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ== + +react-helmet@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/react-helmet/-/react-helmet-6.1.0.tgz#a750d5165cb13cf213e44747502652e794468726" + integrity sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw== + dependencies: + object-assign "^4.1.1" + prop-types "^15.7.2" + react-fast-compare "^3.1.1" + react-side-effect "^2.1.0" + +react-i18next@^11.18.6: + version "11.18.6" + resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-11.18.6.tgz#e159c2960c718c1314f1e8fcaa282d1c8b167887" + integrity sha512-yHb2F9BiT0lqoQDt8loZ5gWP331GwctHz9tYQ8A2EIEUu+CcEdjBLQWli1USG3RdWQt3W+jqQLg/d4rrQR96LA== + dependencies: + "@babel/runtime" "^7.14.5" + html-parse-stringify "^3.0.1" + +react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-onclickoutside@^6.12.2: + version "6.13.0" + resolved "https://registry.yarnpkg.com/react-onclickoutside/-/react-onclickoutside-6.13.0.tgz#e165ea4e5157f3da94f4376a3ab3e22a565f4ffc" + integrity sha512-ty8So6tcUpIb+ZE+1HAhbLROvAIJYyJe/1vRrrcmW+jLsaM+/powDRqxzo6hSh9CuRZGSL1Q8mvcF5WRD93a0A== + +react-popper@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-2.3.0.tgz#17891c620e1320dce318bad9fede46a5f71c70ba" + integrity sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q== + dependencies: + react-fast-compare "^3.0.1" + warning "^4.0.2" + +react-router-dom@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.4.tgz#2ed62ffd88cae6db134445f4a0c0ae8b91d2e5e6" + integrity sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + loose-envify "^1.3.1" + prop-types "^15.6.2" + react-router "5.3.4" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router-navigation-prompt@^1.9.6: + version "1.9.6" + resolved "https://registry.yarnpkg.com/react-router-navigation-prompt/-/react-router-navigation-prompt-1.9.6.tgz#a949252dfbae8c40508671beb6d5995f0b089ac4" + integrity sha512-l0sAtbroHK8i1/Eyy29XcrMpBEt0R08BaScgMUt8r5vWWbLz7G0ChOikayTCQm7QgDFsHw8gVnxDJb7TBZCAKg== + +react-router@5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.3.4.tgz#8ca252d70fcc37841e31473c7a151cf777887bb5" + integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" + loose-envify "^1.3.1" + path-to-regexp "^1.7.0" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-select@^5.7.3: + version "5.7.3" + resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.7.3.tgz#fa0dc9a23cad6ff3871ad3829f6083a4b54961a2" + integrity sha512-z8i3NCuFFWL3w27xq92rBkVI2onT0jzIIPe480HlBjXJ3b5o6Q+Clp4ydyeKrj9DZZ3lrjawwLC5NGl0FSvUDg== + dependencies: + "@babel/runtime" "^7.12.0" + "@emotion/cache" "^11.4.0" + "@emotion/react" "^11.8.1" + "@floating-ui/dom" "^1.0.1" + "@types/react-transition-group" "^4.4.0" + memoize-one "^6.0.0" + prop-types "^15.6.0" + react-transition-group "^4.3.0" + use-isomorphic-layout-effect "^1.1.2" + +react-side-effect@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-2.1.2.tgz#dc6345b9e8f9906dc2eeb68700b615e0b4fe752a" + integrity sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw== + +react-toastify@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/react-toastify/-/react-toastify-8.2.0.tgz#ef7d56bdfdc6272ca6b228368ab564721c3a3244" + integrity sha512-Pg2Ju7NngAamarFvLwqrFomJ57u/Ay6i6zfLurt/qPynWkAkOthu6vxfqYpJCyNhHRhR4hu7+bySSeWWJu6PAg== + dependencies: + clsx "^1.1.1" + +react-transition-group@^4.3.0, react-transition-group@^4.4.2: + version "4.4.5" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" + integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + +react@18.2.0, react@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== + dependencies: + loose-envify "^1.1.0" + +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@^4.0.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.4.0.tgz#55ce132d60a988c460d75c631e9ccf6a7229b468" + integrity sha512-kDMOq0qLtxV9f/SQv522h8cxZBqNZXuXNyjyezmfAAuribMyVXziljpQ/uQhfE1XLg2/TLTW2DsnoE4VAi/krg== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + +readable-stream@~1.0.31: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@~2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-web-to-node-stream@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz#5d52bb5df7b54861fd48d015e93a2cb87b3ee0bb" + integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw== + dependencies: + readable-stream "^3.6.0" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +rechoir@^0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" + integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== + dependencies: + resolve "^1.9.0" + +regenerator-runtime@^0.13.11: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + +regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" + integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + functions-have-names "^1.2.3" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== + +renderkid@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" + integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^6.0.1" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +resend@^0.12.0: + version "0.12.2" + resolved "https://registry.yarnpkg.com/resend/-/resend-0.12.2.tgz#32f61299aabdeae00d21c347f0ee856e8e839e16" + integrity sha512-T4+n1DgsmyQ+S2omb5xIyhoG0ppGEqq5itRsBrssrUTLI6xiEg0IuZJ3RbnPjnU3HR2jrVaOOvQIDuZXTm1bCg== + dependencies: + "@react-email/render" "0.0.6" + axios "1.3.4" + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + +resolve-pkg-maps@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== + +resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.9.0: + version "1.22.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== + dependencies: + is-core-module "^2.11.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sanitize-filename@^1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" + integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== + dependencies: + truncate-utf8-bytes "^1.0.0" + +saslprep@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226" + integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag== + dependencies: + sparse-bitfield "^3.0.3" + +sass-loader@^12.6.0: + version "12.6.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-12.6.0.tgz#5148362c8e2cdd4b950f3c63ac5d16dbfed37bcb" + integrity sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA== + dependencies: + klona "^2.0.4" + neo-async "^2.6.2" + +sass@^1.57.1: + version "1.63.6" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.63.6.tgz#481610e612902e0c31c46b46cf2dad66943283ea" + integrity sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + +sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== + dependencies: + loose-envify "^1.1.0" + +schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0, schema-utils@^4.0.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" + integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + +scmp@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/scmp/-/scmp-2.1.0.tgz#37b8e197c425bdeb570ab91cc356b311a11f9c9a" + integrity sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q== + +scroll-into-view-if-needed@^2.2.20: + version "2.2.31" + resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz#d3c482959dc483e37962d1521254e3295d0d1587" + integrity sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA== + dependencies: + compute-scroll-into-view "^1.0.20" + +secure-json-parse@^2.4.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.7.0.tgz#5a5f9cd6ae47df23dba3151edd06855d47e09862" + integrity sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw== + +selderee@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/selderee/-/selderee-0.10.0.tgz#ec83d6044d9026668dc9bd2561acfde99a4e3a1c" + integrity sha512-DEL/RW/f4qLw/NrVg97xKaEBC8IpzIG2fvxnzCp3Z4yk4jQ3MXom+Imav9wApjxX2dfS3eW7x0DXafJr85i39A== + dependencies: + parseley "^0.11.0" + +semver@^5.6.0, semver@^5.7.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: + version "7.5.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e" + integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ== + dependencies: + lru-cache "^6.0.0" + +semver@~7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-javascript@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" + integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== + dependencies: + randombytes "^2.1.0" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +sharp@^0.31.3: + version "0.31.3" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.31.3.tgz#60227edc5c2be90e7378a210466c99aefcf32688" + integrity sha512-XcR4+FCLBFKw1bdB+GEhnUNXNXvnt0tDo4WsBsraKymuo/IAuPuCBVAL2wIkUw2r/dwFW5Q5+g66Kwl2dgDFVg== + dependencies: + color "^4.2.3" + detect-libc "^2.0.1" + node-addon-api "^5.0.0" + prebuild-install "^7.1.1" + semver "^7.3.8" + simple-get "^4.0.1" + tar-fs "^2.1.1" + tunnel-agent "^0.6.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +sift@16.0.0: + version "16.0.0" + resolved "https://registry.yarnpkg.com/sift/-/sift-16.0.0.tgz#447991577db61f1a8fab727a8a98a6db57a23eb8" + integrity sha512-ILTjdP2Mv9V1kIxWMXeMTIRbOBrqKc4JAXmFMnFq3fKeyQ2Qwa3Dw1ubcye3vR+Y6ofA0b9gNDr/y2t6eUeIzQ== + +sigmund@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + integrity sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g== + +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^4.0.0, simple-get@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +simple-update-notifier@^1.0.7: + version "1.1.0" + resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz#67694c121de354af592b347cdba798463ed49c82" + integrity sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg== + dependencies: + semver "~7.0.0" + +sirv@^1.0.7: + version "1.0.19" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.19.tgz#1d73979b38c7fe91fcba49c85280daa9c2363b49" + integrity sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ== + dependencies: + "@polka/url" "^1.0.0-next.20" + mrmime "^1.0.0" + totalist "^1.0.0" + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slate-history@^0.86.0: + version "0.86.0" + resolved "https://registry.yarnpkg.com/slate-history/-/slate-history-0.86.0.tgz#5554612271d2fc1018a7918be3961bb66e620c58" + integrity sha512-OxObL9tbhgwvSlnKSCpGIh7wnuaqvOj5jRExGjEyCU2Ke8ctf22HjT+jw7GEi9ttLzNTUmTEU3YIzqKGeqN+og== + dependencies: + is-plain-object "^5.0.0" + +slate-hyperscript@^0.81.3: + version "0.81.3" + resolved "https://registry.yarnpkg.com/slate-hyperscript/-/slate-hyperscript-0.81.3.tgz#0c8f446d6bef717d2fe855239fb86a000ba2d0d2" + integrity sha512-A/jvoLTAgeRcJaUPQCYOikCJxSws6+/jkL7mM+QuZljNd7EA5YqafGA7sVBJRFpcoSsDRUIah1yNiC/7vxZPYg== + dependencies: + is-plain-object "^5.0.0" + +slate-react@^0.92.0: + version "0.92.0" + resolved "https://registry.yarnpkg.com/slate-react/-/slate-react-0.92.0.tgz#eb158ac2a33d962f48c466c4c8cc7bc14c1c6633" + integrity sha512-xEDKu5RKw5f0N95l1UeNQnrB0Pxh4JPjpIZR/BVsMo0ININnLAknR99gLo46bl/Ffql4mr7LeaxQRoXxbFtJOQ== + dependencies: + "@juggle/resize-observer" "^3.4.0" + "@types/is-hotkey" "^0.1.1" + "@types/lodash" "^4.14.149" + direction "^1.0.3" + is-hotkey "^0.1.6" + is-plain-object "^5.0.0" + lodash "^4.17.4" + scroll-into-view-if-needed "^2.2.20" + tiny-invariant "1.0.6" + +slate@^0.91.4: + version "0.91.4" + resolved "https://registry.yarnpkg.com/slate/-/slate-0.91.4.tgz#759764d63c8a8a7aff29a29e598e593ed80277f9" + integrity sha512-aUJ3rpjrdi5SbJ5G1Qjr3arytfRkEStTmHjBfWq2A2Q8MybacIzkScSvGJjQkdTk3djCK9C9SEOt39sSeZFwTw== + dependencies: + immer "^9.0.6" + is-plain-object "^5.0.0" + tiny-warning "^1.0.3" + +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +socks@^2.6.2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== + dependencies: + ip "^2.0.0" + smart-buffer "^4.2.0" + +sonic-boom@^1.0.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-1.4.1.tgz#d35d6a74076624f12e6f917ade7b9d75e918f53e" + integrity sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg== + dependencies: + atomic-sleep "^1.0.0" + flatstr "^1.0.12" + +sonic-boom@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.3.0.tgz#cffab6dafee3b2bcb88d08d589394198bee1838c" + integrity sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g== + dependencies: + atomic-sleep "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-support@^0.5.13, source-map-support@^0.5.17, source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.6.0, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sparse-bitfield@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" + integrity sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ== + dependencies: + memory-pager "^1.0.2" + +split2@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + +state-local@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/state-local/-/state-local-1.0.7.tgz#da50211d07f05748d53009bee46307a37db386d5" + integrity sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + +stream-browserify@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" + integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== + dependencies: + inherits "~2.0.4" + readable-stream "^3.5.0" + +stream-parser@~0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/stream-parser/-/stream-parser-0.3.1.tgz#1618548694420021a1182ff0af1911c129761773" + integrity sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ== + dependencies: + debug "2" + +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string.prototype.trim@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" + integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +strnum@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" + integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== + +strtok3@^6.2.4: + version "6.3.0" + resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-6.3.0.tgz#358b80ffe6d5d5620e19a073aa78ce947a90f9a0" + integrity sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw== + dependencies: + "@tokenizer/token" "^0.3.0" + peek-readable "^4.1.0" + +style-loader@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-2.0.0.tgz#9669602fd4690740eaaec137799a03addbbc393c" + integrity sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +stylehacks@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.0.0.tgz#9fdd7c217660dae0f62e14d51c89f6c01b3cb738" + integrity sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw== + dependencies: + browserslist "^4.21.4" + postcss-selector-parser "^6.0.4" + +stylis@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51" + integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== + +supports-color@^5.3.0, supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svgo@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.0.2.tgz#5e99eeea42c68ee0dc46aa16da093838c262fe0a" + integrity sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^5.1.0" + css-tree "^2.2.1" + csso "^5.0.5" + picocolors "^1.0.0" + +swc-loader@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/swc-loader/-/swc-loader-0.2.3.tgz#6792f1c2e4c9ae9bf9b933b3e010210e270c186d" + integrity sha512-D1p6XXURfSPleZZA/Lipb3A8pZ17fP4NObZvFCDjK/OKljroqDpPmsBdTraWhVBqUNpcWBQY1imWdoPScRlQ7A== + +swc-minify-webpack-plugin@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/swc-minify-webpack-plugin/-/swc-minify-webpack-plugin-2.1.1.tgz#2c63fe592d49541733d7557b3af8f97c7ffa78b9" + integrity sha512-/9ud/libNWUC5p71vXWhW/O2Nc0essW8D9pY4P4ol0ceM8OcFbNr41R9YFqTkmktqUL2t0WwXau+FkR4T1+PJA== + +tabbable@^5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-5.3.3.tgz#aac0ff88c73b22d6c3c5a50b1586310006b47fbf" + integrity sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA== + +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +tar-fs@^2.0.0, tar-fs@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +terser-webpack-plugin@^5.3.6, terser-webpack-plugin@^5.3.7: + version "5.3.9" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" + integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.17" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.1" + terser "^5.16.8" + +terser@^5.10.0, terser@^5.16.8: + version "5.18.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.18.2.tgz#ff3072a0faf21ffd38f99acc9a0ddf7b5f07b948" + integrity sha512-Ah19JS86ypbJzTzvUCX7KOsEIhDaRONungA4aYBjEP3JZRf4ocuDzTg4QWZnPn9DEMiMYGJPiSOy7aykoCc70w== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +through2@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +timers-ext@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" + integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== + dependencies: + es5-ext "~0.10.46" + next-tick "1" + +tiny-invariant@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.6.tgz#b3f9b38835e36a41c843a3b0907a5a7b3755de73" + integrity sha512-FOyLWWVjG+aC0UqG76V53yAWdXfH8bO6FNmyZOuUrzDzK8DI3/JRY25UD7+g49JWM1LXwymsKERB+DzI0dTEQA== + +tiny-invariant@^1.0.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" + integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw== + +tiny-warning@^1.0.0, tiny-warning@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +token-types@^4.1.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/token-types/-/token-types-4.2.1.tgz#0f897f03665846982806e138977dbe72d44df753" + integrity sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ== + dependencies: + "@tokenizer/token" "^0.3.0" + ieee754 "^1.2.1" + +totalist@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" + integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== + +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" + integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== + dependencies: + nopt "~1.0.10" + +tr46@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" + integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== + dependencies: + punycode "^2.1.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +truncate-utf8-bytes@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" + integrity sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ== + dependencies: + utf8-byte-length "^1.0.1" + +ts-essentials@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-7.0.3.tgz#686fd155a02133eedcc5362dc8b5056cde3e5a38" + integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== + +ts-node@^9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" + integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== + dependencies: + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.17" + yn "3.1.1" + +tsconfig-paths@^3.12.0: + version "3.14.2" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" + integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^1.11.1, tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.3.1, tslib@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" + integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + +typescript@^4.8.4: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +undefsafe@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" + integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== + +unfetch@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.2.0.tgz#7e21b0ef7d363d8d9af0fb929a5555f6ef97a3be" + integrity sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +untildify@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== + +update-browserslist-db@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" + integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-loader@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" + integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== + dependencies: + loader-utils "^2.0.0" + mime-types "^2.1.27" + schema-utils "^3.0.0" + +use-context-selector@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/use-context-selector/-/use-context-selector-1.4.1.tgz#eb96279965846b72915d7f899b8e6ef1d768b0ae" + integrity sha512-Io2ArvcRO+6MWIhkdfMFt+WKQX+Vb++W8DS2l03z/Vw/rz3BclKpM0ynr4LYGyU85Eke+Yx5oIhTY++QR0ZDoA== + +use-isomorphic-layout-effect@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" + integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== + +utf8-byte-length@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" + integrity sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + +utils-merge@1.0.1, utils-merge@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +void-elements@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" + integrity sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w== + +warning@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + +watchpack@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" + integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== + +webpack-bundle-analyzer@^4.8.0: + version "4.9.0" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.9.0.tgz#fc093c4ab174fd3dcbd1c30b763f56d10141209d" + integrity sha512-+bXGmO1LyiNx0i9enBu3H8mv42sj/BJWhZNFwjz92tVnBa9J3JMGo2an2IXlEleoDOPn/Hofl5hr/xCpObUDtw== + dependencies: + "@discoveryjs/json-ext" "0.5.7" + acorn "^8.0.4" + acorn-walk "^8.0.0" + chalk "^4.1.0" + commander "^7.2.0" + gzip-size "^6.0.0" + lodash "^4.17.20" + opener "^1.5.2" + sirv "^1.0.7" + ws "^7.3.1" + +webpack-cli@^4.10.0: + version "4.10.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.10.0.tgz#37c1d69c8d85214c5a65e589378f53aec64dab31" + integrity sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w== + dependencies: + "@discoveryjs/json-ext" "^0.5.0" + "@webpack-cli/configtest" "^1.2.0" + "@webpack-cli/info" "^1.5.0" + "@webpack-cli/serve" "^1.7.0" + colorette "^2.0.14" + commander "^7.0.0" + cross-spawn "^7.0.3" + fastest-levenshtein "^1.0.12" + import-local "^3.0.2" + interpret "^2.2.0" + rechoir "^0.7.0" + webpack-merge "^5.7.3" + +webpack-dev-middleware@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-6.0.1.tgz#fd585127ed44dab3f253daf0d98f4d58a5088cc2" + integrity sha512-PZPZ6jFinmqVPJZbisfggDiC+2EeGZ1ZByyMP5sOFJcPPWSexalISz+cvm+j+oYPT7FIJyxT76esjnw9DhE5sw== + dependencies: + colorette "^2.0.10" + memfs "^3.4.12" + mime-types "^2.1.31" + range-parser "^1.2.1" + schema-utils "^4.0.0" + +webpack-hot-middleware@^2.25.3: + version "2.25.4" + resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.25.4.tgz#d8bc9e9cb664fc3105c8e83d2b9ed436bee4e193" + integrity sha512-IRmTspuHM06aZh98OhBJtqLpeWFM8FXJS5UYpKYxCJzyFoyWj1w6VGFfomZU7OPA55dMLrQK0pRT1eQ3PACr4w== + dependencies: + ansi-html-community "0.0.8" + html-entities "^2.1.0" + strip-ansi "^6.0.0" + +webpack-merge@^5.7.3: + version "5.9.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.9.0.tgz#dc160a1c4cf512ceca515cc231669e9ddb133826" + integrity sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg== + dependencies: + clone-deep "^4.0.1" + wildcard "^2.0.0" + +webpack-sources@^1.1.0: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack@^5.78.0: + version "5.88.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.88.0.tgz#a07aa2f8e7a64a8f1cec0c6c2e180e3cb34440c8" + integrity sha512-O3jDhG5e44qIBSi/P6KpcCcH7HD+nYIHVBhdWFxcLOcIGN8zGo5nqF3BjyNCxIh4p1vFdNnreZv2h2KkoAw3lw== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^1.0.0" + "@webassemblyjs/ast" "^1.11.5" + "@webassemblyjs/wasm-edit" "^1.11.5" + "@webassemblyjs/wasm-parser" "^1.11.5" + acorn "^8.7.1" + acorn-import-assertions "^1.9.0" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.15.0" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.9" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.2.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.7" + watchpack "^2.4.0" + webpack-sources "^3.2.3" + +whatwg-fetch@^3.4.1: + version "3.6.2" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" + integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== + +whatwg-url@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" + integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== + dependencies: + tr46 "^3.0.0" + webidl-conversions "^7.0.0" + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wildcard@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@^7.3.1: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +xss@^1.0.6: + version "1.0.14" + resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.14.tgz#4f3efbde75ad0d82e9921cc3c95e6590dd336694" + integrity sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw== + dependencies: + commander "^2.20.3" + cssfilter "0.0.10" + +xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs@^16.1.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 66709153236484cee49eba67182f74bb8aacec33 Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Wed, 28 Jun 2023 12:51:17 -0400 Subject: [PATCH 62/78] chore: adds ecommerce template (#2929) --- templates/ecommerce/.editorconfig | 10 + templates/ecommerce/.env.example | 8 + templates/ecommerce/.eslintrc.js | 5 + templates/ecommerce/.gitignore | 6 + templates/ecommerce/.prettierignore | 1 + templates/ecommerce/.prettierrc.js | 8 + templates/ecommerce/Dockerfile | 26 + templates/ecommerce/README.md | 218 + templates/ecommerce/docker-compose.yml | 32 + templates/ecommerce/nodemon.json | 4 + templates/ecommerce/package.json | 53 + templates/ecommerce/src/access/admins.ts | 10 + templates/ecommerce/src/access/anyone.ts | 3 + .../ecommerce/src/blocks/Archive/index.ts | 100 + .../src/blocks/CallToAction/index.ts | 23 + .../ecommerce/src/blocks/Content/index.ts | 55 + templates/ecommerce/src/blocks/Media/index.ts | 36 + .../ecommerce/src/collections/Categories.ts | 19 + templates/ecommerce/src/collections/Media.ts | 26 + .../Orders/access/adminsAndOrderedBy.ts | 17 + .../src/collections/Orders/hooks/syncUser.ts | 51 + .../ecommerce/src/collections/Orders/index.ts | 109 + .../Pages/access/adminsOrPublished.ts | 13 + .../ecommerce/src/collections/Pages/index.ts | 68 + .../Products/access/checkUserPurchases.ts | 24 + .../Products/hooks/beforeChange.ts | 55 + .../Products/hooks/deleteProductFromCarts.ts | 34 + .../src/collections/Products/index.ts | 124 + .../collections/Products/ui/ProductSelect.tsx | 125 + .../collections/Users/access/adminsAndUser.ts | 19 + .../src/collections/Users/checkRole.ts | 16 + .../Users/hooks/createStripeCustomer.ts | 41 + .../Users/hooks/ensureFirstUserIsAdmin.ts | 22 + .../Users/hooks/loginAfterCreate.ts | 29 + .../ecommerce/src/collections/Users/index.ts | 142 + .../collections/Users/ui/CustomerSelect.tsx | 128 + .../src/components/BeforeDashboard/index.scss | 24 + .../src/components/BeforeDashboard/index.tsx | 64 + templates/ecommerce/src/emptyModuleMock.js | 4 + .../ecommerce/src/fields/backgroundColor.ts | 27 + templates/ecommerce/src/fields/hero.ts | 59 + templates/ecommerce/src/fields/link.ts | 145 + templates/ecommerce/src/fields/linkGroup.ts | 27 + .../ecommerce/src/fields/richText/elements.ts | 18 + .../ecommerce/src/fields/richText/index.ts | 86 + .../fields/richText/label/Button/index.tsx | 18 + .../fields/richText/label/Element/index.scss | 9 + .../fields/richText/label/Element/index.tsx | 20 + .../src/fields/richText/label/Icon/index.tsx | 13 + .../src/fields/richText/label/index.ts | 14 + .../src/fields/richText/label/plugin.ts | 16 + .../richText/largeBody/Button/index.tsx | 18 + .../richText/largeBody/Element/index.scss | 5 + .../richText/largeBody/Element/index.tsx | 20 + .../fields/richText/largeBody/Icon/index.tsx | 21 + .../src/fields/richText/largeBody/index.ts | 14 + .../src/fields/richText/largeBody/plugin.ts | 16 + .../ecommerce/src/fields/richText/leaves.ts | 5 + templates/ecommerce/src/fields/slug.ts | 23 + templates/ecommerce/src/globals/Footer.ts | 22 + templates/ecommerce/src/globals/Header.ts | 22 + templates/ecommerce/src/globals/Settings.ts | 22 + .../src/hooks/populateArchiveBlock.ts | 59 + .../src/hooks/populatePublishedDate.ts | 15 + templates/ecommerce/src/payload-types.ts | 471 + templates/ecommerce/src/payload.config.ts | 94 + templates/ecommerce/src/routes/checkout.ts | 109 + templates/ecommerce/src/seed/cart-page.ts | 99 + templates/ecommerce/src/seed/home.ts | 312 + templates/ecommerce/src/seed/image-1.jpg | Bin 0 -> 93586 bytes templates/ecommerce/src/seed/image-1.ts | 40 + templates/ecommerce/src/seed/image-2.jpg | Bin 0 -> 349328 bytes templates/ecommerce/src/seed/image-2.ts | 40 + templates/ecommerce/src/seed/image-3.jpg | Bin 0 -> 248185 bytes templates/ecommerce/src/seed/image-3.ts | 40 + templates/ecommerce/src/seed/index.ts | 139 + templates/ecommerce/src/seed/product-1.ts | 41 + templates/ecommerce/src/seed/product-2.ts | 80 + templates/ecommerce/src/seed/product-3.ts | 80 + templates/ecommerce/src/seed/shop-page.ts | 58 + templates/ecommerce/src/server.ts | 35 + .../webhooks/invoiceCreatedOrUpdated.ts | 128 + .../src/stripe/webhooks/priceUpdated.ts | 69 + .../src/stripe/webhooks/productUpdated.ts | 81 + .../ecommerce/src/utilities/deepMerge.ts | 33 + .../ecommerce/src/utilities/formatSlug.ts | 27 + templates/ecommerce/tsconfig.json | 33 + templates/ecommerce/yarn.lock | 8395 +++++++++++++++++ 88 files changed, 12870 insertions(+) create mode 100644 templates/ecommerce/.editorconfig create mode 100644 templates/ecommerce/.env.example create mode 100644 templates/ecommerce/.eslintrc.js create mode 100644 templates/ecommerce/.gitignore create mode 100644 templates/ecommerce/.prettierignore create mode 100644 templates/ecommerce/.prettierrc.js create mode 100644 templates/ecommerce/Dockerfile create mode 100644 templates/ecommerce/README.md create mode 100644 templates/ecommerce/docker-compose.yml create mode 100644 templates/ecommerce/nodemon.json create mode 100644 templates/ecommerce/package.json create mode 100644 templates/ecommerce/src/access/admins.ts create mode 100644 templates/ecommerce/src/access/anyone.ts create mode 100644 templates/ecommerce/src/blocks/Archive/index.ts create mode 100644 templates/ecommerce/src/blocks/CallToAction/index.ts create mode 100644 templates/ecommerce/src/blocks/Content/index.ts create mode 100644 templates/ecommerce/src/blocks/Media/index.ts create mode 100644 templates/ecommerce/src/collections/Categories.ts create mode 100644 templates/ecommerce/src/collections/Media.ts create mode 100644 templates/ecommerce/src/collections/Orders/access/adminsAndOrderedBy.ts create mode 100644 templates/ecommerce/src/collections/Orders/hooks/syncUser.ts create mode 100644 templates/ecommerce/src/collections/Orders/index.ts create mode 100644 templates/ecommerce/src/collections/Pages/access/adminsOrPublished.ts create mode 100644 templates/ecommerce/src/collections/Pages/index.ts create mode 100644 templates/ecommerce/src/collections/Products/access/checkUserPurchases.ts create mode 100644 templates/ecommerce/src/collections/Products/hooks/beforeChange.ts create mode 100644 templates/ecommerce/src/collections/Products/hooks/deleteProductFromCarts.ts create mode 100644 templates/ecommerce/src/collections/Products/index.ts create mode 100644 templates/ecommerce/src/collections/Products/ui/ProductSelect.tsx create mode 100644 templates/ecommerce/src/collections/Users/access/adminsAndUser.ts create mode 100644 templates/ecommerce/src/collections/Users/checkRole.ts create mode 100644 templates/ecommerce/src/collections/Users/hooks/createStripeCustomer.ts create mode 100644 templates/ecommerce/src/collections/Users/hooks/ensureFirstUserIsAdmin.ts create mode 100644 templates/ecommerce/src/collections/Users/hooks/loginAfterCreate.ts create mode 100644 templates/ecommerce/src/collections/Users/index.ts create mode 100644 templates/ecommerce/src/collections/Users/ui/CustomerSelect.tsx create mode 100644 templates/ecommerce/src/components/BeforeDashboard/index.scss create mode 100644 templates/ecommerce/src/components/BeforeDashboard/index.tsx create mode 100644 templates/ecommerce/src/emptyModuleMock.js create mode 100644 templates/ecommerce/src/fields/backgroundColor.ts create mode 100644 templates/ecommerce/src/fields/hero.ts create mode 100644 templates/ecommerce/src/fields/link.ts create mode 100644 templates/ecommerce/src/fields/linkGroup.ts create mode 100644 templates/ecommerce/src/fields/richText/elements.ts create mode 100644 templates/ecommerce/src/fields/richText/index.ts create mode 100644 templates/ecommerce/src/fields/richText/label/Button/index.tsx create mode 100644 templates/ecommerce/src/fields/richText/label/Element/index.scss create mode 100644 templates/ecommerce/src/fields/richText/label/Element/index.tsx create mode 100644 templates/ecommerce/src/fields/richText/label/Icon/index.tsx create mode 100644 templates/ecommerce/src/fields/richText/label/index.ts create mode 100644 templates/ecommerce/src/fields/richText/label/plugin.ts create mode 100644 templates/ecommerce/src/fields/richText/largeBody/Button/index.tsx create mode 100644 templates/ecommerce/src/fields/richText/largeBody/Element/index.scss create mode 100644 templates/ecommerce/src/fields/richText/largeBody/Element/index.tsx create mode 100644 templates/ecommerce/src/fields/richText/largeBody/Icon/index.tsx create mode 100644 templates/ecommerce/src/fields/richText/largeBody/index.ts create mode 100644 templates/ecommerce/src/fields/richText/largeBody/plugin.ts create mode 100644 templates/ecommerce/src/fields/richText/leaves.ts create mode 100644 templates/ecommerce/src/fields/slug.ts create mode 100644 templates/ecommerce/src/globals/Footer.ts create mode 100644 templates/ecommerce/src/globals/Header.ts create mode 100644 templates/ecommerce/src/globals/Settings.ts create mode 100644 templates/ecommerce/src/hooks/populateArchiveBlock.ts create mode 100644 templates/ecommerce/src/hooks/populatePublishedDate.ts create mode 100644 templates/ecommerce/src/payload-types.ts create mode 100644 templates/ecommerce/src/payload.config.ts create mode 100644 templates/ecommerce/src/routes/checkout.ts create mode 100644 templates/ecommerce/src/seed/cart-page.ts create mode 100644 templates/ecommerce/src/seed/home.ts create mode 100644 templates/ecommerce/src/seed/image-1.jpg create mode 100644 templates/ecommerce/src/seed/image-1.ts create mode 100644 templates/ecommerce/src/seed/image-2.jpg create mode 100644 templates/ecommerce/src/seed/image-2.ts create mode 100644 templates/ecommerce/src/seed/image-3.jpg create mode 100644 templates/ecommerce/src/seed/image-3.ts create mode 100644 templates/ecommerce/src/seed/index.ts create mode 100644 templates/ecommerce/src/seed/product-1.ts create mode 100644 templates/ecommerce/src/seed/product-2.ts create mode 100644 templates/ecommerce/src/seed/product-3.ts create mode 100644 templates/ecommerce/src/seed/shop-page.ts create mode 100644 templates/ecommerce/src/server.ts create mode 100644 templates/ecommerce/src/stripe/webhooks/invoiceCreatedOrUpdated.ts create mode 100644 templates/ecommerce/src/stripe/webhooks/priceUpdated.ts create mode 100644 templates/ecommerce/src/stripe/webhooks/productUpdated.ts create mode 100644 templates/ecommerce/src/utilities/deepMerge.ts create mode 100644 templates/ecommerce/src/utilities/formatSlug.ts create mode 100644 templates/ecommerce/tsconfig.json create mode 100644 templates/ecommerce/yarn.lock diff --git a/templates/ecommerce/.editorconfig b/templates/ecommerce/.editorconfig new file mode 100644 index 0000000000..d8e085abcb --- /dev/null +++ b/templates/ecommerce/.editorconfig @@ -0,0 +1,10 @@ +root = true + +[*] +indent_style = space +indent_size = 2 +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +end_of_line = lf +max_line_length = null diff --git a/templates/ecommerce/.env.example b/templates/ecommerce/.env.example new file mode 100644 index 0000000000..7503c579e2 --- /dev/null +++ b/templates/ecommerce/.env.example @@ -0,0 +1,8 @@ +PORT=8000 +MONGODB_URI=mongodb://localhost/template-ecommerce +PAYLOAD_SECRET=712kjbkuh87234sflj98713b +PAYLOAD_PUBLIC_SERVER_URL=http://localhost:8000 +PAYLOAD_PUBLIC_SITE_URL=http://localhost:3000 +STRIPE_SECRET_KEY= +PAYLOAD_PUBLIC_STRIPE_IS_TEST_KEY=true +STRIPE_WEBHOOKS_ENDPOINT_SECRET= diff --git a/templates/ecommerce/.eslintrc.js b/templates/ecommerce/.eslintrc.js new file mode 100644 index 0000000000..19b786c125 --- /dev/null +++ b/templates/ecommerce/.eslintrc.js @@ -0,0 +1,5 @@ +module.exports = { + root: true, + extends: ['@payloadcms'], + ignorePatterns: ['**/payload-types.ts'], +} diff --git a/templates/ecommerce/.gitignore b/templates/ecommerce/.gitignore new file mode 100644 index 0000000000..9353310c2c --- /dev/null +++ b/templates/ecommerce/.gitignore @@ -0,0 +1,6 @@ +build +dist +/media +node_modules +.DS_Store +.env diff --git a/templates/ecommerce/.prettierignore b/templates/ecommerce/.prettierignore new file mode 100644 index 0000000000..e732bb4ea2 --- /dev/null +++ b/templates/ecommerce/.prettierignore @@ -0,0 +1 @@ +**/payload-types.ts diff --git a/templates/ecommerce/.prettierrc.js b/templates/ecommerce/.prettierrc.js new file mode 100644 index 0000000000..70c17c995f --- /dev/null +++ b/templates/ecommerce/.prettierrc.js @@ -0,0 +1,8 @@ +module.exports = { + printWidth: 100, + parser: "typescript", + semi: false, + singleQuote: true, + trailingComma: "all", + arrowParens: "avoid", +}; diff --git a/templates/ecommerce/Dockerfile b/templates/ecommerce/Dockerfile new file mode 100644 index 0000000000..2544c839bb --- /dev/null +++ b/templates/ecommerce/Dockerfile @@ -0,0 +1,26 @@ +FROM node:18.8-alpine as base + +FROM base as builder + +WORKDIR /home/node/app +COPY package*.json ./ + +COPY . . +RUN yarn install +RUN yarn build + +FROM base as runtime + +ENV NODE_ENV=production +ENV PAYLOAD_CONFIG_PATH=dist/payload.config.js + +WORKDIR /home/node/app +COPY package*.json ./ + +RUN yarn install --production +COPY --from=builder /home/node/app/dist ./dist +COPY --from=builder /home/node/app/build ./build + +EXPOSE 3000 + +CMD ["node", "dist/server.js"] diff --git a/templates/ecommerce/README.md b/templates/ecommerce/README.md new file mode 100644 index 0000000000..e790191feb --- /dev/null +++ b/templates/ecommerce/README.md @@ -0,0 +1,218 @@ +# Payload E-Commerce Template + +A template for [Payload](https://github.com/payloadcms/payload) to power e-commerce businesses. This repo may have been created by running `npx create-payload-app` and selecting the "e-commerce" template or by cloning this template on [Payload Cloud](https://payloadcms.com/new/clone/blank). + +Core features: + +- [Pre-configured Payload Config](#how-it-works) +- [Authentication](#users-authentication) +- [Access Control](#access-control) +- [Shopping Cart](#shopping-cart) +- [Checkout](#checkout) +- [Paywall](#paywall) +- [Layout Builder](#layout-builder) +- [SEO](#seo) + +For details on how to get this template up and running locally, see the [development](#development) section. + +## How it works + +The Payload config is tailored specifically to the needs of an e-commerce business. It is pre-configured in the following ways: + +### Collections + +See the [collections documentation](https://payloadcms.com/docs/configuration/collections) for details on how to extend this functionality. + +- #### Users (Authentication) + + Users are auth-enabled and encompass both admins and customers based on the value of their `roles` field. Only `admin` users can access your admin panel to manage your store whereas `customer` can authenticate on your front-end to create [shopping carts](#shopping-cart) and place [orders](#orders) but have limited access to the platform. See [Access Control](#access-control) for more details. + + For additional help, see the official [Auth Example](https://github.com/payloadcms/payload/tree/master/examples/auth/cms#readme) or the [authentication docs](https://payloadcms.com/docs/authentication/overview#authentication-overview). + +- #### Products + + Each product is linked to Stripe via a select field that is dynamically populated in the sidebar. This field fetches all available products in the background and displays them as options. Once a product has been selected, prices get automatically synced between Stripe and Payload. All products are layout-builder enabled so you can generate unique pages for each product using layout-building blocks, see [Layout Builder](#layout-builder) for more details. Products can also gate their content or digital assets behind a paywall, see [Paywall](#paywall) for more details. + +- #### Orders + + When an order is placed in Stripe, a webhook is fired that Payload listens for. This webhook creates a new order in Payload with the same data as the invoice. See the [Stripe section](#stripe) for more details. + +- #### Pages + + All pages are layout-builder enabled so you can generate unique layouts for each page using layout-building blocks, see [Layout Builder](#layout-builder) for more details. + +- #### Media + + This is the uploads-enabled collection used by products and pages to contain media, etc. + +- #### Categories + + A taxonomy used to group products together. Categories can be nested inside of one another, for example "Shirts > Red". See the official [Payload Nested Docs Plugin](https://github.com/payloadcms/plugin-nested-docs) for more details. + +### Globals + +See the [globals documentation](https://payloadcms.com/docs/configuration/globals) for details on how to extend this functionality. + +- `Header` + + The data required by the header on your front-end, i.e. nav links, etc. + +- `Footer` + + Same as above but for the footer of your site. + +## Access control + +Basic role-based access control is setup to determine what users can and cannot do based on their roles, which are: + +- `admin`: They can access the Payload admin panel to manage your store. They can see all data and make all operations. +- `customer`: They cannot access the Payload admin panel and have a limited access to operations based on their user (see below). + +This applies to each collection in the following ways: + +- `users`: Only admins and the user themselves can access their profile. Anyone can create a user but only admins can delete users. +- `orders`: Only admins and the user who placed the order can access it. Once placed, orders cannot be edited or deleted. +- `products`: Everyone can access products, but only admins can create, update, or delete them. Paywall-enabled products may also have content that is only accessible by users who have purchased the product. See [Paywall](#paywall) for more details. + +For more details on how to extend this functionality, see the [Payload Access Control](https://payloadcms.com/docs/access-control/overview#access-control) docs. + +## Shopping cart + +Logged-in users can have their shopping carts saved to their profiles as they shop. This way they can continue shopping at a later date or on another device. When not logged in, the cart can be saved to local storage and synced to Payload on the next login. This works by maintaining a `cart` field on the `user`: + +```ts +{ + name: 'cart', + label: 'Shopping Cart', + type: 'object', + fields: [ + { + name: 'items', + label: 'Items', + type: 'array', + fields: [ + // product, quantity, etc + ] + }, + // other metadata like `createdOn`, etc + ] +} +``` + +## Stripe + +Payload itself handles no currency exchange. All payments are processed and billed using [Stripe](https://stripe.com). This means you must have access to a Stripe account via an API key, see [Connect Stripe](#connect-stripe) for how to get one. When you create a product in Payload that wish to sell, it must be connected to a Stripe product by selecting one from the field in the product's sidebar. This field fetches all available products in the background and displays them as options, see [Products](#products) for more details. Once set, data is automatically synced between the two platforms in the following ways: + +1. Stripe to Payload using [Stripe Webhooks](https://stripe.com/docs/webhooks): + + - `invoice.created` + - `invoice.updated` + - `product.created` + - `product.updated` + - `price.updated` + +1. Payload to Stripe using [Payload Hooks](https://payloadcms.com/docs/hooks/overview): + - `user.create` + +For more details on how to extend this functionality, see the the official [Payload Stripe Plugin](https://github.com/payloadcms/plugin-stripe). + +## Checkout + +A custom endpoint is opened at `/api/checkout` which initiates the checkout process. This endpoint creates a [`PaymentIntent`](https://stripe.com/docs/payments/payment-intents) with the items in the cart using the Stripe's [Invoices API](https://stripe.com/docs/api/invoices). First, an invoice is drafted, then each item in your cart is appended as a line-item to the invoice. The total price is recalculated on the server to ensure accuracy and security, and once completed, passes the `client_secret` back in the response for your front-end to finalize the payment. + +## Paywall + +Products can optionally gate content or digital assets behind a paywall. This will require the product to be purchased before it's resources are accessible. To do this, we add a `paywall` field to the `product` collection with `read` access control to check for associated purchases on each request. A `purchases` field is maintained on each user to determine their access which can be manually adjusted as needed. + +```ts +{ + name: 'paywall', + label: 'Paywall', + type: 'blocks', + access: { + read: checkUserPurchases, + }, + fields: [ + // assets + ] +} +``` + +## Layout builder + +Products and pages can be built using a powerful layout builder. This allows you to create unique layouts for each product or page. This template comes pre-configured with the following layout building blocks: + +- Hero +- Content +- Media +- Call To Action +- Archive + +## SEO + +This template comes pre-configured with the official [Payload SEO Plugin](https://github.com/payloadcms/plugin-seo) for complete SEO control. + +## Development + +To spin up the template locally, follow these steps: + +1. First clone the repo +1. Then `cd YOUR_PROJECT_REPO && cp .env.example .env` +1. Next `yarn && yarn dev` (or `docker-compose up`, see [Docker](#docker)) +1. Now `open http://localhost:8000/admin` to access the admin panel +1. Create your first admin user using the form on the page + +That's it! Changes made in `./src` will be reflected in your app—but your database is blank and your app is not yet connected to Stripe, more details on that [here](#stripe). You can optionally seed the database with a few products and pages, more details on that [here](#seed). + +### Connect Stripe + +To integrate with Stripe, follow these steps: + +1. You will first need to create a [Stripe](https://stripe.com) account if you do not already have one. +1. Retrieve your Stripe Secret Key from the Stripe admin panel and paste it into your `env`: + ```bash + STRIPE_SECRET_KEY= + ``` +1. In another terminal, listen for webhooks: + ```bash + stripe login # follow the prompts + yarn stripe:webhooks + ``` +1. Paste the given webhook signing secret into your `env`: + ```bash + STRIPE_WEBHOOKS_ENDPOINT_SECRET= + ``` +1. Reboot Payload to ensure that Stripe connects and the webhooks are registered. + +See the official [Payload Stripe Plugin](https://github.com/payloadcms/plugin-stripe) for more details. + +### Docker + +Alternatively, you can use [Docker](https://www.docker.com) to spin up this template locally. To do so, follow these steps: + +1. Follow [steps 1 and 2 from above](#development), the docker-compose file will automatically use the `.env` file in your project root +1. Next run `docker-compose up` +1. Follow [steps 4 and 5 from above](#development) to login and create your first admin user + +That's it! The Docker instance will help you get up and running quickly while also standardizing the development environment across your teams. + +### Seed + +To seed the database with a few products and pages you can run `yarn seed`. + +> NOTICE: seeding the database is destructive because it drops your current database to populate a fresh one from the seed template. Only run this command if you are starting a new project or can afford to lose your current data. + +## Production + +To run Payload in production, you need to build and serve the Admin panel. To do so, follow these steps: + +1. First invoke the `payload build` script by running `yarn build` or `npm run build` in your project root. This creates a `./build` directory with a production-ready admin bundle. +1. Then run `yarn serve` or `npm run serve` to run Node in production and serve Payload from the `./build` directory. + +### Deployment + +The easiest way to deploy your project is to use [Payload Cloud](https://payloadcms.com/new/import), a one-click hosting solution to deploy production-ready instances of your Payload apps directly from your GitHub repo. You can also deploy your app manually, check out the [deployment documentation](https://payloadcms.com/docs/production/deployment) for full details. + +## Questions + +If you have any issues or questions, reach out to us on [Discord](https://discord.com/invite/payload) or start a [GitHub discussion](https://github.com/payloadcms/payload/discussions). diff --git a/templates/ecommerce/docker-compose.yml b/templates/ecommerce/docker-compose.yml new file mode 100644 index 0000000000..4846251925 --- /dev/null +++ b/templates/ecommerce/docker-compose.yml @@ -0,0 +1,32 @@ +version: '3' + +services: + + payload: + image: node:18-alpine + ports: + - "3000:3000" + volumes: + - .:/home/node/app + - node_modules:/home/node/app/node_modules + working_dir: /home/node/app/ + command: sh -c "yarn install && yarn dev" + depends_on: + - mongo + env_file: + - .env + + mongo: + image: mongo:latest + ports: + - "27017:27017" + command: + - --storageEngine=wiredTiger + volumes: + - data:/data/db + logging: + driver: none + +volumes: + data: + node_modules: diff --git a/templates/ecommerce/nodemon.json b/templates/ecommerce/nodemon.json new file mode 100644 index 0000000000..ed1a1850d3 --- /dev/null +++ b/templates/ecommerce/nodemon.json @@ -0,0 +1,4 @@ +{ + "ext": "ts", + "exec": "ts-node src/server.ts" +} diff --git a/templates/ecommerce/package.json b/templates/ecommerce/package.json new file mode 100644 index 0000000000..36cab33203 --- /dev/null +++ b/templates/ecommerce/package.json @@ -0,0 +1,53 @@ +{ + "name": "@payloadcms/template-ecommerce", + "description": "E-commerce template for Payload", + "version": "1.0.0", + "main": "dist/server.js", + "license": "MIT", + "scripts": { + "dev": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts nodemon", + "stripe:webhooks": "stripe listen --forward-to localhost:8000/stripe/webhooks", + "seed": "rm -rf media && cross-env PAYLOAD_SEED=true PAYLOAD_DROP_DATABASE=true PAYLOAD_CONFIG_PATH=src/payload.config.ts ts-node src/server.ts", + "build:payload": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts payload build", + "build:server": "tsc", + "build": "yarn copyfiles && yarn build:payload && yarn build:server", + "serve": "cross-env PAYLOAD_CONFIG_PATH=dist/payload.config.js NODE_ENV=production node dist/server.js", + "copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png}\" dist/", + "generate:types": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts payload generate:types", + "generate:graphQLSchema": "PAYLOAD_CONFIG_PATH=src/payload.config.ts payload generate:graphQLSchema", + "lint": "eslint src", + "lint:fix": "eslint --fix --ext .ts,.tsx src" + }, + "dependencies": { + "@payloadcms/plugin-cloud": "^2.0.0", + "@payloadcms/plugin-nested-docs": "^1.0.4", + "@payloadcms/plugin-seo": "^1.0.10", + "@payloadcms/plugin-stripe": "^0.0.13", + "dotenv": "^8.2.0", + "eslint-import-resolver-alias": "^1.1.2", + "express": "^4.17.1", + "payload": "^1.8.2", + "stripe": "^11.6.0" + }, + "devDependencies": { + "@payloadcms/eslint-config": "^0.0.1", + "@types/express": "^4.17.9", + "@types/node": "18.11.3", + "@types/react": "18.0.21", + "@typescript-eslint/eslint-plugin": "^5.51.0", + "@typescript-eslint/parser": "^5.51.0", + "copyfiles": "^2.4.1", + "cross-env": "^7.0.3", + "eslint": "^8.19.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-filenames": "^1.3.2", + "eslint-plugin-import": "2.25.4", + "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-simple-import-sort": "^10.0.0", + "nodemon": "^2.0.6", + "prettier": "^2.7.1", + "ts-node": "^9.1.1", + "typescript": "^4.8.4" + } +} diff --git a/templates/ecommerce/src/access/admins.ts b/templates/ecommerce/src/access/admins.ts new file mode 100644 index 0000000000..ef4c16d2a1 --- /dev/null +++ b/templates/ecommerce/src/access/admins.ts @@ -0,0 +1,10 @@ +import type { AccessArgs } from 'payload/config' + +import { checkRole } from '../collections/Users/checkRole' +import type { User } from '../payload-types' + +type isAdmin = (args: AccessArgs) => boolean + +export const admins: isAdmin = ({ req: { user } }) => { + return checkRole(['admin'], user) +} diff --git a/templates/ecommerce/src/access/anyone.ts b/templates/ecommerce/src/access/anyone.ts new file mode 100644 index 0000000000..c098600337 --- /dev/null +++ b/templates/ecommerce/src/access/anyone.ts @@ -0,0 +1,3 @@ +import type { Access } from 'payload/config' + +export const anyone: Access = () => true diff --git a/templates/ecommerce/src/blocks/Archive/index.ts b/templates/ecommerce/src/blocks/Archive/index.ts new file mode 100644 index 0000000000..d62b0a8686 --- /dev/null +++ b/templates/ecommerce/src/blocks/Archive/index.ts @@ -0,0 +1,100 @@ +import type { Block } from 'payload/types' + +import richText from '../../fields/richText' + +export const Archive: Block = { + slug: 'archive', + labels: { + singular: 'Archive', + plural: 'Archives', + }, + fields: [ + richText({ + name: 'introContent', + label: 'Intro Content', + }), + { + name: 'populateBy', + type: 'select', + defaultValue: 'collection', + options: [ + { + label: 'Collection', + value: 'collection', + }, + { + label: 'Individual Selection', + value: 'selection', + }, + ], + }, + { + type: 'select', + name: 'relationTo', + label: 'Collections To Show', + defaultValue: 'products', + admin: { + condition: (_, siblingData) => siblingData.populateBy === 'collection', + }, + options: [ + { + label: 'Products', + value: 'products', + }, + ], + }, + { + type: 'relationship', + name: 'categories', + label: 'Categories To Show', + relationTo: 'categories', + hasMany: true, + admin: { + condition: (_, siblingData) => siblingData.populateBy === 'collection', + }, + }, + { + type: 'number', + name: 'limit', + label: 'Limit', + defaultValue: 10, + admin: { + condition: (_, siblingData) => siblingData.populateBy === 'collection', + step: 1, + }, + }, + { + type: 'relationship', + name: 'selectedDocs', + label: 'Selection', + relationTo: ['products'], + hasMany: true, + admin: { + condition: (_, siblingData) => siblingData.populateBy === 'selection', + }, + }, + { + type: 'relationship', + name: 'populatedDocs', + label: 'Populated Docs', + relationTo: ['products'], + hasMany: true, + admin: { + disabled: true, + description: 'This field is auto-populated after-read', + condition: (_, siblingData) => siblingData.populateBy === 'collection', + }, + }, + { + type: 'number', + name: 'populatedDocsTotal', + label: 'Populated Docs Total', + admin: { + step: 1, + disabled: true, + description: 'This field is auto-populated after-read', + condition: (_, siblingData) => siblingData.populateBy === 'collection', + }, + }, + ], +} diff --git a/templates/ecommerce/src/blocks/CallToAction/index.ts b/templates/ecommerce/src/blocks/CallToAction/index.ts new file mode 100644 index 0000000000..0b6f38404b --- /dev/null +++ b/templates/ecommerce/src/blocks/CallToAction/index.ts @@ -0,0 +1,23 @@ +import type { Block } from 'payload/types' + +import { backgroundColor } from '../../fields/backgroundColor' +import linkGroup from '../../fields/linkGroup' +import richText from '../../fields/richText' + +export const CallToAction: Block = { + slug: 'cta', + labels: { + singular: 'Call to Action', + plural: 'Calls to Action', + }, + fields: [ + backgroundColor({ overrides: { name: 'ctaBackgroundColor' } }), + richText(), + linkGroup({ + appearances: ['primary', 'secondary'], + overrides: { + maxRows: 2, + }, + }), + ], +} diff --git a/templates/ecommerce/src/blocks/Content/index.ts b/templates/ecommerce/src/blocks/Content/index.ts new file mode 100644 index 0000000000..0e8e7d8344 --- /dev/null +++ b/templates/ecommerce/src/blocks/Content/index.ts @@ -0,0 +1,55 @@ +import type { Block, Field } from 'payload/types' + +import { backgroundColor } from '../../fields/backgroundColor' +import link from '../../fields/link' +import richText from '../../fields/richText' + +const columnFields: Field[] = [ + { + name: 'size', + type: 'select', + defaultValue: 'oneThird', + options: [ + { + value: 'oneThird', + label: 'One Third', + }, + { + value: 'half', + label: 'Half', + }, + { + value: 'twoThirds', + label: 'Two Thirds', + }, + { + value: 'full', + label: 'Full', + }, + ], + }, + richText(), + { + name: 'enableLink', + type: 'checkbox', + }, + link({ + overrides: { + admin: { + condition: (_, { enableLink }) => Boolean(enableLink), + }, + }, + }), +] + +export const Content: Block = { + slug: 'content', + fields: [ + backgroundColor({}), + { + name: 'columns', + type: 'array', + fields: columnFields, + }, + ], +} diff --git a/templates/ecommerce/src/blocks/Media/index.ts b/templates/ecommerce/src/blocks/Media/index.ts new file mode 100644 index 0000000000..c38db9ce70 --- /dev/null +++ b/templates/ecommerce/src/blocks/Media/index.ts @@ -0,0 +1,36 @@ +import type { Block } from 'payload/types' + +import { backgroundColor } from '../../fields/backgroundColor' + +export const MediaBlock: Block = { + slug: 'mediaBlock', + fields: [ + { + type: 'row', + fields: [ + backgroundColor({ overrides: { name: 'mediaBlockBackgroundColor' } }), + { + name: 'position', + type: 'select', + defaultValue: 'default', + options: [ + { + label: 'Default', + value: 'default', + }, + { + label: 'Fullscreen', + value: 'fullscreen', + }, + ], + }, + ], + }, + { + name: 'media', + type: 'upload', + relationTo: 'media', + required: true, + }, + ], +} diff --git a/templates/ecommerce/src/collections/Categories.ts b/templates/ecommerce/src/collections/Categories.ts new file mode 100644 index 0000000000..479dae86a1 --- /dev/null +++ b/templates/ecommerce/src/collections/Categories.ts @@ -0,0 +1,19 @@ +import type { CollectionConfig } from 'payload/types' + +const Categories: CollectionConfig = { + slug: 'categories', + admin: { + useAsTitle: 'title', + }, + access: { + read: () => true, + }, + fields: [ + { + name: 'title', + type: 'text', + }, + ], +} + +export default Categories diff --git a/templates/ecommerce/src/collections/Media.ts b/templates/ecommerce/src/collections/Media.ts new file mode 100644 index 0000000000..d37f48953f --- /dev/null +++ b/templates/ecommerce/src/collections/Media.ts @@ -0,0 +1,26 @@ +import path from 'path' +import type { CollectionConfig } from 'payload/types' + +export const Media: CollectionConfig = { + slug: 'media', + upload: { + staticDir: path.resolve(__dirname, '../../media'), + }, + access: { + read: () => true, + }, + fields: [ + { + name: 'alt', + type: 'text', + required: true, + }, + { + name: 'caption', + type: 'richText', + admin: { + elements: ['link'], + }, + }, + ], +} diff --git a/templates/ecommerce/src/collections/Orders/access/adminsAndOrderedBy.ts b/templates/ecommerce/src/collections/Orders/access/adminsAndOrderedBy.ts new file mode 100644 index 0000000000..baf0593408 --- /dev/null +++ b/templates/ecommerce/src/collections/Orders/access/adminsAndOrderedBy.ts @@ -0,0 +1,17 @@ +import type { Access } from 'payload/config' + +import { checkRole } from '../../Users/checkRole' + +export const adminsAndOrderedBy: Access = ({ req: { user } }) => { + if (user) { + if (checkRole(['admin'], user)) { + return true + } + + return { + 'orderedBy.user.id': user.id, + } + } + + return true +} diff --git a/templates/ecommerce/src/collections/Orders/hooks/syncUser.ts b/templates/ecommerce/src/collections/Orders/hooks/syncUser.ts new file mode 100644 index 0000000000..9ede1968ac --- /dev/null +++ b/templates/ecommerce/src/collections/Orders/hooks/syncUser.ts @@ -0,0 +1,51 @@ +import type { AfterChangeHook } from 'payload/dist/collections/config/types' + +import type { Order, User } from '../../../payload-types' + +// sync user purchases and delete their cart when they place an order + +export const syncUser: AfterChangeHook = async ({ + req, + doc, + // operation +}) => { + const { payload } = req + const { orderedBy, items } = doc + const { user } = orderedBy + + const orderedByID = typeof user === 'object' ? user.id : user + + if (!orderedByID) { + payload.logger.error('Error in `syncUser` hook: No user ID found on order') + } + + const fullUser: User = await req.payload.findByID({ + collection: 'users', + id: orderedByID, + }) + + if (fullUser && typeof fullUser === 'object') { + const { purchases } = fullUser + + const allIDs = [ + ...(purchases?.map(purchase => (typeof purchase === 'object' ? purchase.id : purchase)) || + []), + ...(items?.map(({ product }) => (typeof product === 'object' ? product.id : product)) || []), + ] + + const purchasedProductIDs = allIDs.filter((id, index) => allIDs.indexOf(id) === index) + + await req.payload.update({ + collection: 'users', + id: fullUser.id, + data: { + // let Payload API resolve any duplicate IDs + purchases: purchasedProductIDs, + // clear their cart + cart: { + items: [], + }, + }, + }) + } +} diff --git a/templates/ecommerce/src/collections/Orders/index.ts b/templates/ecommerce/src/collections/Orders/index.ts new file mode 100644 index 0000000000..50b22a1508 --- /dev/null +++ b/templates/ecommerce/src/collections/Orders/index.ts @@ -0,0 +1,109 @@ +import type { CollectionConfig } from 'payload/types' + +import { admins } from '../../access/admins' +import { adminsAndOrderedBy } from './access/adminsAndOrderedBy' +import { syncUser } from './hooks/syncUser' + +const Orders: CollectionConfig = { + slug: 'orders', + admin: { + useAsTitle: 'createdAt', + defaultColumns: ['createdAt'], + }, + access: { + read: adminsAndOrderedBy, + create: adminsAndOrderedBy, + update: admins, + delete: admins, + }, + hooks: { + afterChange: [syncUser], + }, + timestamps: true, + fields: [ + { + name: 'orderedBy', + type: 'group', + admin: { + readOnly: true, + }, + fields: [ + { + name: 'user', + type: 'relationship', + relationTo: 'users', + hasMany: false, + }, + // keep a static copy of these fields as they appear at the time of the order + { + name: 'name', + type: 'text', + }, + { + name: 'email', + type: 'text', + }, + { + name: 'stripeCustomerID', + label: 'Stripe Customer ID', + type: 'text', + }, + ], + }, + { + name: 'items', + type: 'array', + admin: { + readOnly: true, + }, + fields: [ + { + name: 'product', + type: 'relationship', + relationTo: 'products', + hasMany: false, + }, + // keep a static copy of these fields as they appear at the time of the order + { + name: 'title', + type: 'text', + }, + { + name: 'priceJSON', + type: 'text', + }, + { + name: 'stripeProductID', + label: 'Stripe Product ID', + type: 'text', + admin: { + readOnly: true, + position: 'sidebar', + }, + }, + { + name: 'quantity', + type: 'number', + }, + ], + }, + { + name: 'stripeInvoiceID', + type: 'text', + admin: { + readOnly: true, + position: 'sidebar', + }, + }, + { + name: 'stripePaymentIntentID', + type: 'text', + admin: { + readOnly: true, + position: 'sidebar', + }, + }, + ], +} + +export default Orders diff --git a/templates/ecommerce/src/collections/Pages/access/adminsOrPublished.ts b/templates/ecommerce/src/collections/Pages/access/adminsOrPublished.ts new file mode 100644 index 0000000000..0f4e2b6898 --- /dev/null +++ b/templates/ecommerce/src/collections/Pages/access/adminsOrPublished.ts @@ -0,0 +1,13 @@ +import type { Access } from 'payload/config' + +export const adminsOrPublished: Access = ({ req: { user } }) => { + if (user && user.collection === 'admins') { + return true + } + + return { + _status: { + equals: 'published', + }, + } +} diff --git a/templates/ecommerce/src/collections/Pages/index.ts b/templates/ecommerce/src/collections/Pages/index.ts new file mode 100644 index 0000000000..93fcddc66a --- /dev/null +++ b/templates/ecommerce/src/collections/Pages/index.ts @@ -0,0 +1,68 @@ +import type { CollectionConfig } from 'payload/types' + +import { admins } from '../../access/admins' +import { Archive } from '../../blocks/Archive' +import { CallToAction } from '../../blocks/CallToAction' +import { Content } from '../../blocks/Content' +import { MediaBlock } from '../../blocks/Media' +import { hero } from '../../fields/hero' +import { slugField } from '../../fields/slug' +import { populateArchiveBlock } from '../../hooks/populateArchiveBlock' +import { populatePublishedDate } from '../../hooks/populatePublishedDate' +import { adminsOrPublished } from './access/adminsOrPublished' + +export const Pages: CollectionConfig = { + slug: 'pages', + admin: { + useAsTitle: 'title', + defaultColumns: ['title', 'slug', 'updatedAt'], + }, + hooks: { + beforeChange: [populatePublishedDate], + afterRead: [populateArchiveBlock], + }, + versions: { + drafts: true, + }, + access: { + read: adminsOrPublished, + update: admins, + create: admins, + delete: admins, + }, + fields: [ + { + name: 'title', + type: 'text', + required: true, + }, + { + name: 'publishedDate', + type: 'date', + admin: { + position: 'sidebar', + }, + }, + { + type: 'tabs', + tabs: [ + { + label: 'Hero', + fields: [hero], + }, + { + label: 'Content', + fields: [ + { + name: 'layout', + type: 'blocks', + required: true, + blocks: [CallToAction, Content, MediaBlock, Archive], + }, + ], + }, + ], + }, + slugField(), + ], +} diff --git a/templates/ecommerce/src/collections/Products/access/checkUserPurchases.ts b/templates/ecommerce/src/collections/Products/access/checkUserPurchases.ts new file mode 100644 index 0000000000..7150c42862 --- /dev/null +++ b/templates/ecommerce/src/collections/Products/access/checkUserPurchases.ts @@ -0,0 +1,24 @@ +import type { FieldAccess } from 'payload/types' + +import type { Product } from '../../../payload-types' +import { checkRole } from '../../Users/checkRole' + +// we need to prevent access to documents behind a paywall +// to do this we check the document against the user's list of active purchases +export const checkUserPurchases: FieldAccess = async ({ req: { user }, doc }) => { + if (!user) { + return false + } + + if (checkRole(['admin'], user)) { + return true + } + + if (doc && user && typeof user === 'object' && user?.purchases?.length > 0) { + return user.purchases?.some( + purchase => doc.id === (typeof purchase === 'object' ? purchase.id : purchase), + ) + } + + return false +} diff --git a/templates/ecommerce/src/collections/Products/hooks/beforeChange.ts b/templates/ecommerce/src/collections/Products/hooks/beforeChange.ts new file mode 100644 index 0000000000..d53708e974 --- /dev/null +++ b/templates/ecommerce/src/collections/Products/hooks/beforeChange.ts @@ -0,0 +1,55 @@ +import type { BeforeChangeHook } from 'payload/dist/globals/config/types' +import Stripe from 'stripe' + +const stripeSecretKey = process.env.STRIPE_SECRET_KEY +const stripe = new Stripe(stripeSecretKey || '', { apiVersion: '2022-11-15' }) + +const logs = false + +export const beforeProductChange: BeforeChangeHook = async ({ req, data }) => { + const { payload } = req + const newDoc = { + ...data, + skipSync: false, // Set back to 'false' so that all changes continue to sync to Stripe + } + + if (data.skipSync) { + if (logs) payload.logger.info(`Skipping product 'beforeChange' hook`) + return newDoc + } + + if (!data.stripeProductID) { + if (logs) + payload.logger.info( + `No Stripe product assigned to this document, skipping product 'beforeChange' hook`, + ) + return newDoc + } + + if (logs) payload.logger.info(`Looking up product from Stripe...`) + + try { + const stripeProduct = await stripe.products.retrieve(data.stripeProductID) + if (logs) payload.logger.info(`Found product from Stripe: ${stripeProduct.name}`) + // newDoc.name = stripeProduct.name; + newDoc.description = stripeProduct.description + } catch (error: unknown) { + payload.logger.error(`Error fetching product from Stripe: ${error}`) + return newDoc + } + + if (logs) payload.logger.info(`Looking up price from Stripe...`) + + try { + const allPrices = await stripe.prices.list({ + product: data.stripeProductID, + limit: 100, + }) + + newDoc.priceJSON = JSON.stringify(allPrices) + } catch (error: unknown) { + payload.logger.error(`Error fetching prices from Stripe: ${error}`) + } + + return newDoc +} diff --git a/templates/ecommerce/src/collections/Products/hooks/deleteProductFromCarts.ts b/templates/ecommerce/src/collections/Products/hooks/deleteProductFromCarts.ts new file mode 100644 index 0000000000..9810ae298c --- /dev/null +++ b/templates/ecommerce/src/collections/Products/hooks/deleteProductFromCarts.ts @@ -0,0 +1,34 @@ +import type { AfterDeleteHook } from 'payload/dist/collections/config/types' + +export const deleteProductFromCarts: AfterDeleteHook = async ({ req, id }) => { + const usersWithProductInCart = await req.payload.find({ + collection: 'users', + overrideAccess: true, + where: { + 'cart.items.product': { + equals: id, + }, + }, + }) + + if (usersWithProductInCart.totalDocs > 0) { + await Promise.all( + usersWithProductInCart.docs.map(async user => { + const cart = user.cart + const itemsWithoutProduct = cart.items.filter(item => item.product !== id) + const cartWithoutProduct = { + ...cart, + items: itemsWithoutProduct, + } + + return req.payload.update({ + collection: 'users', + id: user.id, + data: { + cart: cartWithoutProduct, + }, + }) + }), + ) + } +} diff --git a/templates/ecommerce/src/collections/Products/index.ts b/templates/ecommerce/src/collections/Products/index.ts new file mode 100644 index 0000000000..f51219537d --- /dev/null +++ b/templates/ecommerce/src/collections/Products/index.ts @@ -0,0 +1,124 @@ +import type { CollectionConfig } from 'payload/types' + +import { admins } from '../../access/admins' +import { Archive } from '../../blocks/Archive' +import { CallToAction } from '../../blocks/CallToAction' +import { Content } from '../../blocks/Content' +import { MediaBlock } from '../../blocks/Media' +import { slugField } from '../../fields/slug' +import { populateArchiveBlock } from '../../hooks/populateArchiveBlock' +import { populatePublishedDate } from '../../hooks/populatePublishedDate' +import { checkUserPurchases } from './access/checkUserPurchases' +import { beforeProductChange } from './hooks/beforeChange' +import { deleteProductFromCarts } from './hooks/deleteProductFromCarts' +import { ProductSelect } from './ui/ProductSelect' + +export const ProductFields: CollectionConfig['fields'] = [ + { + name: 'title', + type: 'text', + required: true, + }, + { + name: 'publishedDate', + type: 'date', + admin: { + position: 'sidebar', + }, + }, + { + type: 'tabs', + tabs: [ + { + label: 'Content', + fields: [ + { + name: 'layout', + type: 'blocks', + required: true, + blocks: [CallToAction, Content, MediaBlock, Archive], + }, + ], + }, + { + label: 'Product Details', + fields: [ + { + name: 'stripeProductID', + label: 'Stripe Product', + type: 'text', + admin: { + components: { + Field: ProductSelect, + }, + }, + }, + { + name: 'priceJSON', + label: 'Price JSON', + type: 'textarea', + admin: { + readOnly: true, + hidden: true, + rows: 10, + }, + }, + { + name: 'paywall', + label: 'Paywall', + type: 'blocks', + access: { + read: checkUserPurchases, + }, + blocks: [CallToAction, Content, MediaBlock, Archive], + }, + ], + }, + ], + }, + { + name: 'categories', + type: 'relationship', + relationTo: 'categories', + hasMany: true, + admin: { + position: 'sidebar', + }, + }, + slugField(), + { + name: 'skipSync', + label: 'Skip Sync', + type: 'checkbox', + admin: { + position: 'sidebar', + readOnly: true, + hidden: true, + }, + }, +] + +const Products: CollectionConfig = { + slug: 'products', + admin: { + useAsTitle: 'title', + defaultColumns: ['title', 'stripeProductID', '_status'], + }, + hooks: { + beforeChange: [populatePublishedDate, beforeProductChange], + afterRead: [populateArchiveBlock], + afterDelete: [deleteProductFromCarts], + }, + versions: { + drafts: true, + }, + access: { + read: () => true, + create: admins, + update: admins, + delete: admins, + }, + fields: ProductFields, +} + +export default Products diff --git a/templates/ecommerce/src/collections/Products/ui/ProductSelect.tsx b/templates/ecommerce/src/collections/Products/ui/ProductSelect.tsx new file mode 100644 index 0000000000..eb163ae563 --- /dev/null +++ b/templates/ecommerce/src/collections/Products/ui/ProductSelect.tsx @@ -0,0 +1,125 @@ +import * as React from 'react' +import { Select, useFormFields } from 'payload/components/forms' +import CopyToClipboard from 'payload/dist/admin/components/elements/CopyToClipboard' +import { TextField } from 'payload/dist/fields/config/types' + +export const ProductSelect: React.FC = props => { + const { name, label } = props + const [options, setOptions] = React.useState([]) + + const { value: stripeProductID } = useFormFields(([fields]) => fields[name]) + + React.useEffect(() => { + const getStripeProducts = async () => { + const productsFetch = await fetch('/api/stripe/rest', { + method: 'post', + credentials: 'include', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + stripeMethod: 'products.list', + stripeArgs: [ + { + limit: 100, + }, + ], + }), + }) + + const res = await productsFetch.json() + + const { data } = res + + if ('data' in data) { + const fetchedProducts = data.data.reduce( + (acc, item) => { + acc.push({ + label: item.name || item.id, + value: item.id, + }) + return acc + }, + [ + { + label: 'Select a product', + value: '', + }, + ], + ) + setOptions(fetchedProducts) + } + } + + getStripeProducts() + }, []) + + const href = `https://dashboard.stripe.com/${ + process.env.PAYLOAD_PUBLIC_STRIPE_IS_TEST_KEY ? 'test/' : '' + }products/${stripeProductID}` + + return ( +

+

{typeof label === 'string' ? label : 'Product'}

+

+ {`Select the related Stripe product or `} + + create a new one + + {'.'} +

+ + {stripeCustomerID && ( +
+
+ + {`Manage "${ + options.find(option => option.value === stripeCustomerID)?.label + }" in Stripe`} + + +
+ +
+ )} +
+ ) +} diff --git a/templates/ecommerce/src/components/BeforeDashboard/index.scss b/templates/ecommerce/src/components/BeforeDashboard/index.scss new file mode 100644 index 0000000000..da97c95222 --- /dev/null +++ b/templates/ecommerce/src/components/BeforeDashboard/index.scss @@ -0,0 +1,24 @@ +@import '~payload/scss'; + +.dashboard .before-dashboard { + margin-bottom: base(1.5); + + &__banner { + & h4 { + margin: 0; + } + } + + &__instructions { + list-style: decimal; + margin-bottom: base(0.5); + + & li { + width: 100%; + } + } + + & a:hover { + opacity: 0.85; + } +} diff --git a/templates/ecommerce/src/components/BeforeDashboard/index.tsx b/templates/ecommerce/src/components/BeforeDashboard/index.tsx new file mode 100644 index 0000000000..12bea9c38b --- /dev/null +++ b/templates/ecommerce/src/components/BeforeDashboard/index.tsx @@ -0,0 +1,64 @@ +import React from 'react' +import { Banner } from 'payload/components' + +import './index.scss' + +const baseClass = 'before-dashboard' + +const BeforeDashboard: React.FC = () => { + return ( +
+ +

Welcome to your dashboard!

+
+ Here's what to do next: +
    +
  • + Head over to GitHub and clone the new repository to your local machine (it will be under + the GitHub Scope that you selected when creating this project). +
  • +
  • + Build out your{' '} + + collections + {' '} + and add more{' '} + + fields + {' '} + as needed. If you are new to Payload, we also recommend you check out the{' '} + + Getting Started + {' '} + docs. +
  • +
  • + Commit and push your changes to the repository to trigger a redeployment of your project. +
  • +
+ Pro Tip: This block is a{' '} + + custom component + + , you can remove it at any time by updating your payload.config. +
+ ) +} + +export default BeforeDashboard diff --git a/templates/ecommerce/src/emptyModuleMock.js b/templates/ecommerce/src/emptyModuleMock.js new file mode 100644 index 0000000000..dfc9125dee --- /dev/null +++ b/templates/ecommerce/src/emptyModuleMock.js @@ -0,0 +1,4 @@ +module.exports = { + url: () => {}, + raw: () => {}, +} diff --git a/templates/ecommerce/src/fields/backgroundColor.ts b/templates/ecommerce/src/fields/backgroundColor.ts new file mode 100644 index 0000000000..cd3bf2cfe9 --- /dev/null +++ b/templates/ecommerce/src/fields/backgroundColor.ts @@ -0,0 +1,27 @@ +import type { Field, SelectField } from 'payload/types' + +import deepMerge from '../utilities/deepMerge' + +interface Args { + overrides?: Partial +} + +export const backgroundColor = ({ overrides = {} }: Args): Field => + deepMerge( + { + name: 'backgroundColor', + type: 'select', + defaultValue: 'white', + options: [ + { + label: 'White', + value: 'white', + }, + { + label: 'Black', + value: 'black', + }, + ], + }, + overrides, + ) diff --git a/templates/ecommerce/src/fields/hero.ts b/templates/ecommerce/src/fields/hero.ts new file mode 100644 index 0000000000..d8769b9480 --- /dev/null +++ b/templates/ecommerce/src/fields/hero.ts @@ -0,0 +1,59 @@ +import type { Field } from 'payload/types' + +import linkGroup from './linkGroup' +import richText from './richText' +import label from './richText/label' +import largeBody from './richText/largeBody' + +export const hero: Field = { + name: 'hero', + label: false, + type: 'group', + fields: [ + { + type: 'select', + name: 'type', + label: 'Type', + required: true, + defaultValue: 'lowImpact', + options: [ + { + label: 'None', + value: 'none', + }, + { + label: 'High Impact', + value: 'highImpact', + }, + { + label: 'Medium Impact', + value: 'mediumImpact', + }, + { + label: 'Low Impact', + value: 'lowImpact', + }, + ], + }, + richText({ + admin: { + elements: ['h1', largeBody, label, 'link'], + leaves: [], + }, + }), + linkGroup({ + overrides: { + maxRows: 2, + }, + }), + { + name: 'media', + type: 'upload', + relationTo: 'media', + required: true, + admin: { + condition: (_, { type } = {}) => ['highImpact', 'mediumImpact'].includes(type), + }, + }, + ], +} diff --git a/templates/ecommerce/src/fields/link.ts b/templates/ecommerce/src/fields/link.ts new file mode 100644 index 0000000000..a9abc3a9da --- /dev/null +++ b/templates/ecommerce/src/fields/link.ts @@ -0,0 +1,145 @@ +import type { Field } from 'payload/types' + +import deepMerge from '../utilities/deepMerge' + +export const appearanceOptions = { + primary: { + label: 'Primary Button', + value: 'primary', + }, + secondary: { + label: 'Secondary Button', + value: 'secondary', + }, + default: { + label: 'Default', + value: 'default', + }, +} + +export type LinkAppearances = 'primary' | 'secondary' | 'default' + +type LinkType = (options?: { + appearances?: LinkAppearances[] | false + disableLabel?: boolean + overrides?: Record +}) => Field + +const link: LinkType = ({ appearances, disableLabel = false, overrides = {} } = {}) => { + const linkResult: Field = { + name: 'link', + type: 'group', + admin: { + hideGutter: true, + }, + fields: [ + { + type: 'row', + fields: [ + { + name: 'type', + type: 'radio', + options: [ + { + label: 'Internal link', + value: 'reference', + }, + { + label: 'Custom URL', + value: 'custom', + }, + ], + defaultValue: 'reference', + admin: { + layout: 'horizontal', + width: '50%', + }, + }, + { + name: 'newTab', + label: 'Open in new tab', + type: 'checkbox', + admin: { + width: '50%', + style: { + alignSelf: 'flex-end', + }, + }, + }, + ], + }, + ], + } + + const linkTypes: Field[] = [ + { + name: 'reference', + label: 'Document to link to', + type: 'relationship', + relationTo: ['pages'], + required: true, + maxDepth: 1, + admin: { + condition: (_, siblingData) => siblingData?.type === 'reference', + }, + }, + { + name: 'url', + label: 'Custom URL', + type: 'text', + required: true, + admin: { + condition: (_, siblingData) => siblingData?.type === 'custom', + }, + }, + ] + + if (!disableLabel) { + linkTypes[0].admin.width = '50%' + linkTypes[1].admin.width = '50%' + + linkResult.fields.push({ + type: 'row', + fields: [ + ...linkTypes, + { + name: 'label', + label: 'Label', + type: 'text', + required: true, + admin: { + width: '50%', + }, + }, + ], + }) + } else { + linkResult.fields = [...linkResult.fields, ...linkTypes] + } + + if (appearances !== false) { + let appearanceOptionsToUse = [ + appearanceOptions.default, + appearanceOptions.primary, + appearanceOptions.secondary, + ] + + if (appearances) { + appearanceOptionsToUse = appearances.map(appearance => appearanceOptions[appearance]) + } + + linkResult.fields.push({ + name: 'appearance', + type: 'select', + defaultValue: 'default', + options: appearanceOptionsToUse, + admin: { + description: 'Choose how the link should be rendered.', + }, + }) + } + + return deepMerge(linkResult, overrides) +} + +export default link diff --git a/templates/ecommerce/src/fields/linkGroup.ts b/templates/ecommerce/src/fields/linkGroup.ts new file mode 100644 index 0000000000..630c903f34 --- /dev/null +++ b/templates/ecommerce/src/fields/linkGroup.ts @@ -0,0 +1,27 @@ +import type { ArrayField } from 'payload/dist/fields/config/types' +import type { Field } from 'payload/types' + +import deepMerge from '../utilities/deepMerge' +import type { LinkAppearances } from './link' +import link from './link' + +type LinkGroupType = (options?: { + overrides?: Partial + appearances?: LinkAppearances[] | false +}) => Field + +const linkGroup: LinkGroupType = ({ overrides = {}, appearances } = {}) => { + const generatedLinkGroup: Field = { + name: 'links', + type: 'array', + fields: [ + link({ + appearances, + }), + ], + } + + return deepMerge(generatedLinkGroup, overrides) +} + +export default linkGroup diff --git a/templates/ecommerce/src/fields/richText/elements.ts b/templates/ecommerce/src/fields/richText/elements.ts new file mode 100644 index 0000000000..3796ed1f11 --- /dev/null +++ b/templates/ecommerce/src/fields/richText/elements.ts @@ -0,0 +1,18 @@ +import type { RichTextElement } from 'payload/dist/fields/config/types' + +import label from './label' +import largeBody from './largeBody' + +const elements: RichTextElement[] = [ + 'blockquote', + 'h2', + 'h3', + 'h4', + 'h5', + 'h6', + 'link', + largeBody, + label, +] + +export default elements diff --git a/templates/ecommerce/src/fields/richText/index.ts b/templates/ecommerce/src/fields/richText/index.ts new file mode 100644 index 0000000000..b000334c17 --- /dev/null +++ b/templates/ecommerce/src/fields/richText/index.ts @@ -0,0 +1,86 @@ +import type { RichTextElement, RichTextField, RichTextLeaf } from 'payload/dist/fields/config/types' + +import deepMerge from '../../utilities/deepMerge' +import link from '../link' +import elements from './elements' +import leaves from './leaves' + +type RichText = ( + overrides?: Partial, + additions?: { + elements?: RichTextElement[] + leaves?: RichTextLeaf[] + }, +) => RichTextField + +const richText: RichText = ( + overrides, + additions = { + elements: [], + leaves: [], + }, +) => + deepMerge>( + { + name: 'richText', + type: 'richText', + required: true, + admin: { + upload: { + collections: { + media: { + fields: [ + { + type: 'richText', + name: 'caption', + label: 'Caption', + admin: { + elements: [...elements], + leaves: [...leaves], + }, + }, + { + type: 'radio', + name: 'alignment', + label: 'Alignment', + options: [ + { + label: 'Left', + value: 'left', + }, + { + label: 'Center', + value: 'center', + }, + { + label: 'Right', + value: 'right', + }, + ], + }, + { + name: 'enableLink', + type: 'checkbox', + label: 'Enable Link', + }, + link({ + appearances: false, + disableLabel: true, + overrides: { + admin: { + condition: (_, data) => Boolean(data?.enableLink), + }, + }, + }), + ], + }, + }, + }, + elements: [...elements, ...(additions.elements || [])], + leaves: [...leaves, ...(additions.leaves || [])], + }, + }, + overrides, + ) + +export default richText diff --git a/templates/ecommerce/src/fields/richText/label/Button/index.tsx b/templates/ecommerce/src/fields/richText/label/Button/index.tsx new file mode 100644 index 0000000000..5d26159bad --- /dev/null +++ b/templates/ecommerce/src/fields/richText/label/Button/index.tsx @@ -0,0 +1,18 @@ +/* eslint-disable import/no-extraneous-dependencies */ +// eslint-disable-next-line no-use-before-define +import React from 'react'; +import { ElementButton } from 'payload/components/rich-text'; +import Icon from '../Icon'; + +const baseClass = 'rich-text-label-button'; + +const ToolbarButton: React.FC<{ path: string }> = () => ( + + + +); + +export default ToolbarButton; diff --git a/templates/ecommerce/src/fields/richText/label/Element/index.scss b/templates/ecommerce/src/fields/richText/label/Element/index.scss new file mode 100644 index 0000000000..0ea4134026 --- /dev/null +++ b/templates/ecommerce/src/fields/richText/label/Element/index.scss @@ -0,0 +1,9 @@ +@import "~payload/scss"; + +.rich-text-label { + text-transform: uppercase; + font-family: 'Roboto Mono', monospace; + letter-spacing: 2px; + font-size: base(.5); + margin: 0 0 base(1); +} \ No newline at end of file diff --git a/templates/ecommerce/src/fields/richText/label/Element/index.tsx b/templates/ecommerce/src/fields/richText/label/Element/index.tsx new file mode 100644 index 0000000000..889be64b16 --- /dev/null +++ b/templates/ecommerce/src/fields/richText/label/Element/index.tsx @@ -0,0 +1,20 @@ +import React from 'react'; + +import './index.scss'; + +const baseClass = 'rich-text-label'; + +const LabelElement: React.FC<{ + attributes: any + element: any + children: React.ReactNode +}> = ({ attributes, children }) => ( +
+ + {children} + +
+); +export default LabelElement; diff --git a/templates/ecommerce/src/fields/richText/label/Icon/index.tsx b/templates/ecommerce/src/fields/richText/label/Icon/index.tsx new file mode 100644 index 0000000000..e49b865d61 --- /dev/null +++ b/templates/ecommerce/src/fields/richText/label/Icon/index.tsx @@ -0,0 +1,13 @@ +/* eslint-disable no-use-before-define */ +// eslint-disable-next-line import/no-extraneous-dependencies +import React from 'react'; + +const Icon = () => ( + + + + + +); + +export default Icon; diff --git a/templates/ecommerce/src/fields/richText/label/index.ts b/templates/ecommerce/src/fields/richText/label/index.ts new file mode 100644 index 0000000000..17237219b3 --- /dev/null +++ b/templates/ecommerce/src/fields/richText/label/index.ts @@ -0,0 +1,14 @@ +import type { RichTextCustomElement } from 'payload/types' + +import Button from './Button' +import Element from './Element' +import withLabel from './plugin' + +const richTextLabel: RichTextCustomElement = { + name: 'label', + Button, + Element, + plugins: [withLabel], +} + +export default richTextLabel diff --git a/templates/ecommerce/src/fields/richText/label/plugin.ts b/templates/ecommerce/src/fields/richText/label/plugin.ts new file mode 100644 index 0000000000..af9c8e5c08 --- /dev/null +++ b/templates/ecommerce/src/fields/richText/label/plugin.ts @@ -0,0 +1,16 @@ +import type { RichTextCustomElement } from 'payload/types' + +const withLabel: RichTextCustomElement['plugins'][0] = incomingEditor => { + const editor = incomingEditor + + // @ts-expect-error + const { shouldBreakOutOnEnter } = editor + + // @ts-expect-error + editor.shouldBreakOutOnEnter = element => + element.type === 'label' ? true : shouldBreakOutOnEnter(element) + + return editor +} + +export default withLabel diff --git a/templates/ecommerce/src/fields/richText/largeBody/Button/index.tsx b/templates/ecommerce/src/fields/richText/largeBody/Button/index.tsx new file mode 100644 index 0000000000..280cc94a49 --- /dev/null +++ b/templates/ecommerce/src/fields/richText/largeBody/Button/index.tsx @@ -0,0 +1,18 @@ +/* eslint-disable import/no-extraneous-dependencies */ +// eslint-disable-next-line no-use-before-define +import React from 'react'; +import { ElementButton } from 'payload/components/rich-text'; +import Icon from '../Icon'; + +const baseClass = 'rich-text-large-body-button'; + +const ToolbarButton: React.FC<{ path: string }> = () => ( + + + +); + +export default ToolbarButton; diff --git a/templates/ecommerce/src/fields/richText/largeBody/Element/index.scss b/templates/ecommerce/src/fields/richText/largeBody/Element/index.scss new file mode 100644 index 0000000000..d56f7d94ab --- /dev/null +++ b/templates/ecommerce/src/fields/richText/largeBody/Element/index.scss @@ -0,0 +1,5 @@ +@import "~payload/scss"; + +.rich-text-large-body { + font-size: base(.8); +} diff --git a/templates/ecommerce/src/fields/richText/largeBody/Element/index.tsx b/templates/ecommerce/src/fields/richText/largeBody/Element/index.tsx new file mode 100644 index 0000000000..a6738365e4 --- /dev/null +++ b/templates/ecommerce/src/fields/richText/largeBody/Element/index.tsx @@ -0,0 +1,20 @@ +import React from 'react'; + +import './index.scss'; + +const baseClass = 'rich-text-large-body'; + +const LargeBodyElement: React.FC<{ + attributes: any + element: any + children: React.ReactNode +}> = ({ attributes, children }) => ( +
+ + {children} + +
+); +export default LargeBodyElement; diff --git a/templates/ecommerce/src/fields/richText/largeBody/Icon/index.tsx b/templates/ecommerce/src/fields/richText/largeBody/Icon/index.tsx new file mode 100644 index 0000000000..14d597a550 --- /dev/null +++ b/templates/ecommerce/src/fields/richText/largeBody/Icon/index.tsx @@ -0,0 +1,21 @@ +/* eslint-disable no-use-before-define */ +// eslint-disable-next-line import/no-extraneous-dependencies +import React from 'react'; + +const Icon = () => ( + + + + +); + +export default Icon; diff --git a/templates/ecommerce/src/fields/richText/largeBody/index.ts b/templates/ecommerce/src/fields/richText/largeBody/index.ts new file mode 100644 index 0000000000..f6722133d8 --- /dev/null +++ b/templates/ecommerce/src/fields/richText/largeBody/index.ts @@ -0,0 +1,14 @@ +import type { RichTextCustomElement } from 'payload/types' + +import Button from './Button' +import Element from './Element' +import withLargeBody from './plugin' + +const richTextLargeBody: RichTextCustomElement = { + name: 'large-body', + Button, + Element, + plugins: [withLargeBody], +} + +export default richTextLargeBody diff --git a/templates/ecommerce/src/fields/richText/largeBody/plugin.ts b/templates/ecommerce/src/fields/richText/largeBody/plugin.ts new file mode 100644 index 0000000000..8c3b46d5de --- /dev/null +++ b/templates/ecommerce/src/fields/richText/largeBody/plugin.ts @@ -0,0 +1,16 @@ +import type { RichTextCustomElement } from 'payload/types' + +const withLargeBody: RichTextCustomElement['plugins'][0] = incomingEditor => { + const editor = incomingEditor + + // @ts-expect-error + const { shouldBreakOutOnEnter } = editor + + // @ts-expect-error + editor.shouldBreakOutOnEnter = element => + element.type === 'large-body' ? true : shouldBreakOutOnEnter(element) + + return editor +} + +export default withLargeBody diff --git a/templates/ecommerce/src/fields/richText/leaves.ts b/templates/ecommerce/src/fields/richText/leaves.ts new file mode 100644 index 0000000000..ed53cba185 --- /dev/null +++ b/templates/ecommerce/src/fields/richText/leaves.ts @@ -0,0 +1,5 @@ +import type { RichTextLeaf } from 'payload/dist/fields/config/types' + +const defaultLeaves: RichTextLeaf[] = ['bold', 'italic', 'underline'] + +export default defaultLeaves diff --git a/templates/ecommerce/src/fields/slug.ts b/templates/ecommerce/src/fields/slug.ts new file mode 100644 index 0000000000..6de6fceada --- /dev/null +++ b/templates/ecommerce/src/fields/slug.ts @@ -0,0 +1,23 @@ +import type { Field } from 'payload/types' + +import deepMerge from '../utilities/deepMerge' +import formatSlug from '../utilities/formatSlug' + +type Slug = (fieldToUse?: string, overrides?: Partial) => Field + +export const slugField: Slug = (fieldToUse = 'title', overrides = {}) => + deepMerge>( + { + name: 'slug', + label: 'Slug', + type: 'text', + index: true, + admin: { + position: 'sidebar', + }, + hooks: { + beforeValidate: [formatSlug(fieldToUse)], + }, + }, + overrides, + ) diff --git a/templates/ecommerce/src/globals/Footer.ts b/templates/ecommerce/src/globals/Footer.ts new file mode 100644 index 0000000000..44102c672b --- /dev/null +++ b/templates/ecommerce/src/globals/Footer.ts @@ -0,0 +1,22 @@ +import type { GlobalConfig } from 'payload/types' + +import link from '../fields/link' + +export const Footer: GlobalConfig = { + slug: 'footer', + access: { + read: () => true, + }, + fields: [ + { + name: 'navItems', + type: 'array', + maxRows: 6, + fields: [ + link({ + appearances: false, + }), + ], + }, + ], +} diff --git a/templates/ecommerce/src/globals/Header.ts b/templates/ecommerce/src/globals/Header.ts new file mode 100644 index 0000000000..570678cfd4 --- /dev/null +++ b/templates/ecommerce/src/globals/Header.ts @@ -0,0 +1,22 @@ +import type { GlobalConfig } from 'payload/types' + +import link from '../fields/link' + +export const Header: GlobalConfig = { + slug: 'header', + access: { + read: () => true, + }, + fields: [ + { + name: 'navItems', + type: 'array', + maxRows: 6, + fields: [ + link({ + appearances: false, + }), + ], + }, + ], +} diff --git a/templates/ecommerce/src/globals/Settings.ts b/templates/ecommerce/src/globals/Settings.ts new file mode 100644 index 0000000000..7c6dc4e84d --- /dev/null +++ b/templates/ecommerce/src/globals/Settings.ts @@ -0,0 +1,22 @@ +import type { GlobalConfig } from 'payload/types' + +export const Settings: GlobalConfig = { + slug: 'settings', + typescript: { + interface: 'Settings', + }, + graphQL: { + name: 'Settings', + }, + access: { + read: () => true, + }, + fields: [ + { + name: 'shopPage', + type: 'relationship', + relationTo: 'pages', + label: 'Shop page', + }, + ], +} diff --git a/templates/ecommerce/src/hooks/populateArchiveBlock.ts b/templates/ecommerce/src/hooks/populateArchiveBlock.ts new file mode 100644 index 0000000000..fba4ef2f5c --- /dev/null +++ b/templates/ecommerce/src/hooks/populateArchiveBlock.ts @@ -0,0 +1,59 @@ +import type { AfterReadHook } from 'payload/dist/globals/config/types' + +import type { Page, Product } from '../payload-types' + +export const populateArchiveBlock: AfterReadHook = async ({ doc, req: { payload } }) => { + // pre-populate the archive block if `populateBy` is `collection` + // then hydrate it on your front-end + + const layoutWithArchive = await Promise.all( + doc.layout.map(async block => { + if (block.blockType === 'archive') { + const archiveBlock = block as Extract & { + populatedDocs: Array<{ + relationTo: 'products' | 'pages' + value: string + }> + } + + if (archiveBlock.populateBy === 'collection') { + const res: { totalDocs: number; docs: Product[] } = await payload.find({ + collection: archiveBlock.relationTo, + limit: archiveBlock.limit || 10, + where: { + ...(archiveBlock?.categories?.length > 0 + ? { + categories: { + in: archiveBlock.categories + .map(cat => { + if (typeof cat === 'string') return cat + return cat.id + }) + .join(','), + }, + } + : {}), + }, + sort: '-publishedDate', + }) + + return { + ...block, + populatedDocsTotal: res.totalDocs, + populatedDocs: res.docs.map((thisDoc: Product) => ({ + relationTo: archiveBlock.relationTo, + value: thisDoc.id, + })), + } + } + } + + return block + }), + ) + + return { + ...doc, + layout: layoutWithArchive, + } +} diff --git a/templates/ecommerce/src/hooks/populatePublishedDate.ts b/templates/ecommerce/src/hooks/populatePublishedDate.ts new file mode 100644 index 0000000000..43fa82d6e9 --- /dev/null +++ b/templates/ecommerce/src/hooks/populatePublishedDate.ts @@ -0,0 +1,15 @@ +import type { BeforeChangeHook } from 'payload/dist/collections/config/types' + +export const populatePublishedDate: BeforeChangeHook = ({ data, req, operation }) => { + if (operation === 'create' || operation === 'update') { + if (req.body && !req.body.publishedDate) { + const now = new Date() + return { + ...data, + publishedDate: now, + } + } + } + + return data +} diff --git a/templates/ecommerce/src/payload-types.ts b/templates/ecommerce/src/payload-types.ts new file mode 100644 index 0000000000..1846ccf482 --- /dev/null +++ b/templates/ecommerce/src/payload-types.ts @@ -0,0 +1,471 @@ +/* tslint:disable */ +/** + * This file was automatically generated by Payload CMS. + * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, + * and re-run `payload generate:types` to regenerate this file. + */ + +export interface Config {} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "settings". + */ +export interface Settings { + id: string + shopPage?: string | Page +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "pages". + */ +export interface Page { + id: string + title: string + publishedDate?: string + hero: { + type: 'none' | 'highImpact' | 'mediumImpact' | 'lowImpact' + richText: Array<{ + [k: string]: unknown + }> + links: Array<{ + link: { + type?: 'reference' | 'custom' + newTab?: boolean + reference: { + value: string | Page + relationTo: 'pages' + } + url: string + label: string + appearance?: 'default' | 'primary' | 'secondary' + } + id?: string + }> + media: string | Media + } + layout: Array< + | { + ctaBackgroundColor?: 'white' | 'black' + richText: Array<{ + [k: string]: unknown + }> + links: Array<{ + link: { + type?: 'reference' | 'custom' + newTab?: boolean + reference: { + value: string | Page + relationTo: 'pages' + } + url: string + label: string + appearance?: 'primary' | 'secondary' + } + id?: string + }> + id?: string + blockName?: string + blockType: 'cta' + } + | { + backgroundColor?: 'white' | 'black' + columns: Array<{ + size?: 'oneThird' | 'half' | 'twoThirds' | 'full' + richText: Array<{ + [k: string]: unknown + }> + enableLink?: boolean + link: { + type?: 'reference' | 'custom' + newTab?: boolean + reference: { + value: string | Page + relationTo: 'pages' + } + url: string + label: string + appearance?: 'default' | 'primary' | 'secondary' + } + id?: string + }> + id?: string + blockName?: string + blockType: 'content' + } + | { + mediaBlockBackgroundColor?: 'white' | 'black' + position?: 'default' | 'fullscreen' + media: string | Media + id?: string + blockName?: string + blockType: 'mediaBlock' + } + | { + introContent: Array<{ + [k: string]: unknown + }> + populateBy?: 'collection' | 'selection' + relationTo?: 'products' + categories?: string[] | Category[] + limit?: number + selectedDocs?: + | Array<{ + value: string + relationTo: 'products' + }> + | Array<{ + value: Product + relationTo: 'products' + }> + populatedDocs?: + | Array<{ + value: string + relationTo: 'products' + }> + | Array<{ + value: Product + relationTo: 'products' + }> + populatedDocsTotal?: number + id?: string + blockName?: string + blockType: 'archive' + } + > + slug?: string + meta: { + title?: string + description?: string + image?: string | Media + } + _status?: 'draft' | 'published' + createdAt: string + updatedAt: string +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "media". + */ +export interface Media { + id: string + alt: string + caption?: Array<{ + [k: string]: unknown + }> + url?: string + filename?: string + mimeType?: string + filesize?: number + width?: number + height?: number + createdAt: string + updatedAt: string +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "categories". + */ +export interface Category { + id: string + title?: string + parent?: string | Category + breadcrumbs: Array<{ + doc?: string | Category + url?: string + label?: string + id?: string + }> + createdAt: string + updatedAt: string +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "products". + */ +export interface Product { + id: string + title: string + publishedDate?: string + layout: Array< + | { + ctaBackgroundColor?: 'white' | 'black' + richText: Array<{ + [k: string]: unknown + }> + links: Array<{ + link: { + type?: 'reference' | 'custom' + newTab?: boolean + reference: { + value: string | Page + relationTo: 'pages' + } + url: string + label: string + appearance?: 'primary' | 'secondary' + } + id?: string + }> + id?: string + blockName?: string + blockType: 'cta' + } + | { + backgroundColor?: 'white' | 'black' + columns: Array<{ + size?: 'oneThird' | 'half' | 'twoThirds' | 'full' + richText: Array<{ + [k: string]: unknown + }> + enableLink?: boolean + link: { + type?: 'reference' | 'custom' + newTab?: boolean + reference: { + value: string | Page + relationTo: 'pages' + } + url: string + label: string + appearance?: 'default' | 'primary' | 'secondary' + } + id?: string + }> + id?: string + blockName?: string + blockType: 'content' + } + | { + mediaBlockBackgroundColor?: 'white' | 'black' + position?: 'default' | 'fullscreen' + media: string | Media + id?: string + blockName?: string + blockType: 'mediaBlock' + } + | { + introContent: Array<{ + [k: string]: unknown + }> + populateBy?: 'collection' | 'selection' + relationTo?: 'products' + categories?: string[] | Category[] + limit?: number + selectedDocs?: + | Array<{ + value: string + relationTo: 'products' + }> + | Array<{ + value: Product + relationTo: 'products' + }> + populatedDocs?: + | Array<{ + value: string + relationTo: 'products' + }> + | Array<{ + value: Product + relationTo: 'products' + }> + populatedDocsTotal?: number + id?: string + blockName?: string + blockType: 'archive' + } + > + stripeProductID?: string + priceJSON?: string + paywall: Array< + | { + ctaBackgroundColor?: 'white' | 'black' + richText: Array<{ + [k: string]: unknown + }> + links: Array<{ + link: { + type?: 'reference' | 'custom' + newTab?: boolean + reference: { + value: string | Page + relationTo: 'pages' + } + url: string + label: string + appearance?: 'primary' | 'secondary' + } + id?: string + }> + id?: string + blockName?: string + blockType: 'cta' + } + | { + backgroundColor?: 'white' | 'black' + columns: Array<{ + size?: 'oneThird' | 'half' | 'twoThirds' | 'full' + richText: Array<{ + [k: string]: unknown + }> + enableLink?: boolean + link: { + type?: 'reference' | 'custom' + newTab?: boolean + reference: { + value: string | Page + relationTo: 'pages' + } + url: string + label: string + appearance?: 'default' | 'primary' | 'secondary' + } + id?: string + }> + id?: string + blockName?: string + blockType: 'content' + } + | { + mediaBlockBackgroundColor?: 'white' | 'black' + position?: 'default' | 'fullscreen' + media: string | Media + id?: string + blockName?: string + blockType: 'mediaBlock' + } + | { + introContent: Array<{ + [k: string]: unknown + }> + populateBy?: 'collection' | 'selection' + relationTo?: 'products' + categories?: string[] | Category[] + limit?: number + selectedDocs?: + | Array<{ + value: string + relationTo: 'products' + }> + | Array<{ + value: Product + relationTo: 'products' + }> + populatedDocs?: + | Array<{ + value: string + relationTo: 'products' + }> + | Array<{ + value: Product + relationTo: 'products' + }> + populatedDocsTotal?: number + id?: string + blockName?: string + blockType: 'archive' + } + > + categories?: string[] | Category[] + slug?: string + skipSync?: boolean + meta: { + title?: string + description?: string + image?: string | Media + } + _status?: 'draft' | 'published' + createdAt: string + updatedAt: string +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "header". + */ +export interface Header { + id: string + navItems: Array<{ + link: { + type?: 'reference' | 'custom' + newTab?: boolean + reference: { + value: string | Page + relationTo: 'pages' + } + url: string + label: string + } + id?: string + }> +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "footer". + */ +export interface Footer { + id: string + navItems: Array<{ + link: { + type?: 'reference' | 'custom' + newTab?: boolean + reference: { + value: string | Page + relationTo: 'pages' + } + url: string + label: string + } + id?: string + }> +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "users". + */ +export interface User { + id: string + name?: string + roles?: Array<'admin' | 'customer'> + purchases?: string[] | Product[] + stripeCustomerID?: string + cart: { + items: Array<{ + product?: string | Product + quantity?: number + id?: string + }> + } + skipSync?: boolean + email?: string + resetPasswordToken?: string + resetPasswordExpiration?: string + loginAttempts?: number + lockUntil?: string + createdAt: string + updatedAt: string +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "orders". + */ +export interface Order { + id: string + orderedBy: { + user?: string | User + name?: string + email?: string + stripeCustomerID?: string + } + items: Array<{ + product?: string | Product + title?: string + priceJSON?: string + stripeProductID?: string + quantity?: number + id?: string + }> + stripeInvoiceID?: string + stripePaymentIntentID?: string + createdAt: string + updatedAt: string +} diff --git a/templates/ecommerce/src/payload.config.ts b/templates/ecommerce/src/payload.config.ts new file mode 100644 index 0000000000..ea91208524 --- /dev/null +++ b/templates/ecommerce/src/payload.config.ts @@ -0,0 +1,94 @@ +import { payloadCloud } from '@payloadcms/plugin-cloud' +import nestedDocs from '@payloadcms/plugin-nested-docs' +import seo from '@payloadcms/plugin-seo' +import type { GenerateTitle } from '@payloadcms/plugin-seo/types' +import stripePlugin from '@payloadcms/plugin-stripe' +import path from 'path' +import { buildConfig } from 'payload/config' + +import Categories from './collections/Categories' +import { Media } from './collections/Media' +import Orders from './collections/Orders' +import { Pages } from './collections/Pages' +import Products from './collections/Products' +import Users from './collections/Users' +import BeforeDashboard from './components/BeforeDashboard' +import { Footer } from './globals/Footer' +import { Header } from './globals/Header' +import { Settings } from './globals/Settings' +import { checkout } from './routes/checkout' +import { invoiceCreatedOrUpdated } from './stripe/webhooks/invoiceCreatedOrUpdated' +import { priceUpdated } from './stripe/webhooks/priceUpdated' +import { productUpdated } from './stripe/webhooks/productUpdated' + +const generateTitle: GenerateTitle = () => { + return 'My Store' +} + +const mockModulePath = path.resolve(__dirname, './emptyModuleMock.js') + +export default buildConfig({ + admin: { + user: Users.slug, + components: { + // The BeforeDashboard component renders the 'welcome' block that you see after logging into your admin panel. + // Feel free to delete this at any time. Simply remove the line below and the import BeforeDashboard statement on line 15. + beforeDashboard: [BeforeDashboard], + }, + webpack: config => ({ + ...config, + resolve: { + ...config.resolve, + alias: { + ...config.resolve?.alias, + [path.resolve(__dirname, 'collections/Products/hooks/beforeChange')]: mockModulePath, + [path.resolve(__dirname, 'collections/Users/hooks/createStripeCustomer')]: mockModulePath, + [path.resolve(__dirname, 'routes/checkout')]: mockModulePath, + stripe: mockModulePath, + express: mockModulePath, + }, + }, + }), + }, + serverURL: process.env.PAYLOAD_PUBLIC_SERVER_URL, + collections: [Users, Products, Categories, Orders, Pages, Media], + globals: [Settings, Header, Footer], + typescript: { + outputFile: path.resolve(__dirname, 'payload-types.ts'), + }, + graphQL: { + schemaOutputFile: path.resolve(__dirname, 'generated-schema.graphql'), + }, + cors: ['https://checkout.stripe.com', process.env.PAYLOAD_PUBLIC_SITE_URL].filter(Boolean), + csrf: ['https://checkout.stripe.com', process.env.PAYLOAD_PUBLIC_SITE_URL].filter(Boolean), + endpoints: [ + { + path: '/checkout', + method: 'post', + handler: checkout, + }, + ], + plugins: [ + stripePlugin({ + stripeSecretKey: process.env.STRIPE_SECRET_KEY, + isTestKey: Boolean(process.env.PAYLOAD_PUBLIC_STRIPE_IS_TEST_KEY), + stripeWebhooksEndpointSecret: process.env.STRIPE_WEBHOOKS_ENDPOINT_SECRET, + webhooks: { + 'invoice.created': invoiceCreatedOrUpdated, + 'invoice.updated': invoiceCreatedOrUpdated, + 'product.created': productUpdated, + 'product.updated': productUpdated, + 'price.updated': priceUpdated, + }, + }), + nestedDocs({ + collections: ['categories'], + }), + seo({ + collections: ['pages', 'products'], + generateTitle, + uploadsCollection: 'media', + }), + payloadCloud(), + ], +}) diff --git a/templates/ecommerce/src/routes/checkout.ts b/templates/ecommerce/src/routes/checkout.ts new file mode 100644 index 0000000000..044afd667e --- /dev/null +++ b/templates/ecommerce/src/routes/checkout.ts @@ -0,0 +1,109 @@ +import type { PayloadHandler } from 'payload/config' +import Stripe from 'stripe' + +import type { User } from '../payload-types' + +const stripe = new Stripe(process.env.STRIPE_SECRET_KEY, { + apiVersion: '2022-11-15', +}) + +// This endpoint creates a PaymentIntent with the items in the cart using the "Invoices" API +// This is required in order to associate each line item with its respective product in Stripe +// To do this, we loop through the items in the cart and create a line-item in the invoice for each cart item +// Once completed, we pass the `client_secret` of the PaymentIntent back to the client which can process the payment +export const checkout: PayloadHandler = async (req, res): Promise => { + const { user, payload } = req + + const fullUser = await payload.findByID({ + collection: 'users', + id: user?.id, + }) + + if (!fullUser) { + res.status(404).json({ error: 'User not found' }) + return + } + + try { + let stripeCustomerID = fullUser?.stripeCustomerID + + // lookup user in Stripe and create one if not found + if (!stripeCustomerID) { + const customer = await stripe.customers.create({ + email: fullUser?.email, + name: fullUser?.name, + }) + stripeCustomerID = customer.id + } + + // initialize an empty invoice for the customer + // the invoice will be charged automatically when it is sent + // because the customer has a payment method on record + const invoice = await stripe.invoices.create({ + customer: stripeCustomerID, + collection_method: 'send_invoice', + days_until_due: 30, + }) + + const hasItems = fullUser?.cart?.items?.length > 0 + + if (!hasItems) { + throw new Error('No items in cart') + } + + // for each item in cart, create an invoice item and send the invoice + await Promise.all( + fullUser?.cart?.items?.map( + async (item: User['cart']['items'][0]): Promise => { + const { product } = item + + if (typeof product === 'string' || !product.stripeProductID) { + throw new Error('No Stripe Product ID') + } + + const prices = await stripe.prices.list({ + product: product.stripeProductID, + limit: 100, + expand: ['data.product'], + }) + + if (prices.data.length === 0) { + res.status(404).json({ error: 'There are no items in your cart to checkout with' }) + return null + } + + const price = prices.data[0] + + // price.type === 'recurring' is a subscription, which uses the Subscriptions API + // that is out of scope for this boilerplate + if (price.type === 'one_time') { + return stripe.invoiceItems.create({ + customer: stripeCustomerID, + price: price.id, + invoice: invoice.id, + }) + } + + return null + }, + ), + ) + + // send the invoice to Stripe + const finalInvoice = await stripe.invoices.finalizeInvoice(invoice.id) + + // retrieve the payment intent from the invoice + const paymentIntent = await stripe.paymentIntents.retrieve( + typeof finalInvoice.payment_intent === 'string' + ? finalInvoice.payment_intent + : finalInvoice.payment_intent.id, + ) + + // return the `client_secret` of the payment intent to the client + res.send({ client_secret: paymentIntent.client_secret }) + } catch (error: unknown) { + const message = error instanceof Error ? error.message : 'Unknown error' + payload.logger.error(message) + res.json({ error: message }) + } +} diff --git a/templates/ecommerce/src/seed/cart-page.ts b/templates/ecommerce/src/seed/cart-page.ts new file mode 100644 index 0000000000..8a22cf3b2e --- /dev/null +++ b/templates/ecommerce/src/seed/cart-page.ts @@ -0,0 +1,99 @@ +import type { Page } from '../payload-types' + +export const cartPage: Partial = { + title: 'Cart', + slug: 'cart', + _status: 'published', + hero: { + type: 'lowImpact', + links: [], + media: '', + richText: [ + { + type: 'h1', + children: [ + { + text: 'Cart', + }, + ], + }, + { + type: 'p', + children: [ + { + text: 'This cart saves to local storage so you can continue shopping later, then when you authenticate with Payload, it syncs to your user profile so you can continue shopping from any device. This hero and the content below the cart are completely dynamic and configured in the CMS.', + }, + ], + }, + ], + }, + layout: [ + { + blockType: 'content', + backgroundColor: 'white', + columns: [ + { + size: 'twoThirds', + link: { + type: 'reference', + url: '', + reference: { + relationTo: 'pages', + value: '', + }, + label: '', + }, + richText: [ + { + children: [ + { + text: 'This is a custom layout building block configurable in the CMS—this can be anything you want. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', + }, + ], + }, + ], + }, + ], + }, + { + ctaBackgroundColor: 'white', + richText: [ + { + children: [ + { + text: 'Continue shopping', + }, + ], + type: 'h4', + }, + { + children: [ + { + text: 'This is a custom layout building block configurable in the CMS.', + }, + ], + }, + ], + links: [ + { + link: { + type: 'reference', + url: '', + reference: { + relationTo: 'pages', + value: '{{SHOP_PAGE_ID}}', + }, + label: 'Continue shopping', + appearance: 'primary', + }, + }, + ], + blockName: 'CTA', + blockType: 'cta', + }, + ], + meta: { + title: 'Cart', + description: 'Your cart', + }, +} diff --git a/templates/ecommerce/src/seed/home.ts b/templates/ecommerce/src/seed/home.ts new file mode 100644 index 0000000000..ebd56ed0c8 --- /dev/null +++ b/templates/ecommerce/src/seed/home.ts @@ -0,0 +1,312 @@ +import type { Page } from '../payload-types' + +export const home: Partial = { + title: 'Home', + slug: 'home', + _status: 'published', + hero: { + type: 'highImpact', + richText: [ + { + children: [ + { + text: 'E-Commerce Store with Payload + Next.js', + }, + ], + type: 'h1', + }, + { + children: [ + { + text: 'The code for this website is completely open-source and can be found ', + }, + { + type: 'link', + linkType: 'custom', + url: 'https://github.com/payloadcms/template-ecommerce-nextjs', + newTab: true, + children: [ + { + text: 'here', + }, + ], + }, + { + text: '.', + }, + ], + type: 'large-body', + }, + ], + links: [ + { + link: { + type: 'reference', + appearance: 'primary', + reference: { + relationTo: 'pages', + value: '{{SHOP_PAGE_ID}}', + }, + label: 'Shop now', + url: '', + }, + }, + { + link: { + type: 'custom', + appearance: 'secondary', + reference: null, + label: 'View on GitHub', + url: 'https://github.com/payloadcms/template-ecommerce', + newTab: true, + }, + }, + ], + media: '{{PRODUCT1_IMAGE}}', + }, + layout: [ + { + blockName: 'Content Block', + blockType: 'content', + backgroundColor: 'white', + columns: [ + { + size: 'oneThird', + richText: [ + { + children: [ + { + text: 'Authentication', + }, + ], + type: 'h3', + }, + { + children: [ + { + text: 'Customers can create an account and login to view their order history and more.', + }, + ], + }, + ], + enableLink: false, + link: { + reference: { + value: '', + relationTo: 'pages', + }, + url: '', + label: '', + }, + }, + { + size: 'oneThird', + richText: [ + { + children: [ + { + text: 'Shopping cart', + }, + ], + type: 'h3', + }, + { + children: [ + { + text: 'Shopping carts persist between sessions and can be accessed from any device.', + }, + ], + }, + ], + enableLink: false, + link: { + reference: { + value: '', + relationTo: 'pages', + }, + url: '', + label: '', + }, + }, + { + size: 'oneThird', + richText: [ + { + children: [ + { + text: 'Checkout', + }, + ], + type: 'h3', + }, + { + children: [ + { + text: 'Secure in-app checkout powered by Stripe so your customers never leave your site.', + }, + ], + }, + ], + enableLink: false, + link: { + reference: { + value: '', + relationTo: 'pages', + }, + url: '', + label: '', + }, + }, + { + size: 'oneThird', + richText: [ + { + children: [ + { + text: 'Page builder', + }, + ], + type: 'h3', + }, + { + children: [ + { + text: 'Custom page builder allows you to create any page or product layout imaginable.', + }, + ], + }, + ], + enableLink: false, + link: { + reference: { + value: '', + relationTo: 'pages', + }, + url: '', + label: '', + }, + }, + { + size: 'oneThird', + richText: [ + { + children: [ + { + text: 'SEO', + }, + ], + type: 'h3', + }, + { + children: [ + { + text: 'Editors have complete control over SEO data directly from the CMS.', + }, + ], + }, + ], + enableLink: false, + link: { + reference: { + value: '', + relationTo: 'pages', + }, + url: '', + label: '', + }, + }, + { + size: 'oneThird', + richText: [ + { + children: [ + { + text: 'CMS', + }, + ], + type: 'h3', + }, + { + children: [ + { + text: 'Instant setup with ', + }, + { + type: 'link', + linkType: 'custom', + url: 'https://github.com/payloadcms/template-ecommerce', + newTab: true, + children: [ + { + text: 'Payload CMS', + }, + ], + }, + { + text: ' tailored specifically for this front-end.', + }, + ], + }, + ], + enableLink: false, + link: { + reference: { + value: '', + relationTo: 'pages', + }, + url: '', + label: '', + }, + }, + ], + }, + { + mediaBlockBackgroundColor: 'white', + position: 'default', + media: '{{PRODUCT2_IMAGE}}', + blockName: 'Media Block', + blockType: 'mediaBlock', + }, + { + ctaBackgroundColor: 'white', + richText: [ + { + children: [ + { + text: 'Shop now', + }, + ], + type: 'h4', + }, + { + children: [ + { + text: 'This is a custom layout building block configurable in the CMS.', + }, + ], + }, + ], + links: [ + { + link: { + type: 'reference', + url: '', + label: 'Shop now', + appearance: 'primary', + reference: { + value: '{{SHOP_PAGE_ID}}', + relationTo: 'pages', + }, + }, + }, + ], + blockName: 'CTA', + blockType: 'cta', + }, + ], + meta: { + title: 'Store ABC', + description: 'E-Commerce Store with Payload + Next.js', + image: '{{PRODUCT1_IMAGE}}', + }, +} diff --git a/templates/ecommerce/src/seed/image-1.jpg b/templates/ecommerce/src/seed/image-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ae614855dc6633efe9fe1ff7da0de732becc945b GIT binary patch literal 93586 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 literal 0 HcmV?d00001 diff --git a/templates/ecommerce/src/seed/image-1.ts b/templates/ecommerce/src/seed/image-1.ts new file mode 100644 index 0000000000..6bcf98f73d --- /dev/null +++ b/templates/ecommerce/src/seed/image-1.ts @@ -0,0 +1,40 @@ +export const image1 = { + alt: 'Shirts', + caption: [ + { + children: [ + { + text: 'Photo by ', + }, + { + type: 'link', + linkType: 'custom', + url: 'https://unsplash.com/@henmankk?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText', + newTab: true, + children: [ + { + text: 'Keagan Henman', + }, + ], + }, + { + text: ' on ', + }, + { + type: 'link', + linkType: 'custom', + url: 'https://unsplash.com/photos/Won79_9oUEk?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText', + newTab: true, + children: [ + { + text: 'Unsplash', + }, + ], + }, + { + text: '.', + }, + ], + }, + ], +} diff --git a/templates/ecommerce/src/seed/image-2.jpg b/templates/ecommerce/src/seed/image-2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..85ff139fe46b911351b50c3e2e5388a57c8d7fd4 GIT binary patch literal 349328 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

  • x=_f)8VX9MugK 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 z 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 + ) +}) + +Gutter.displayName = 'Gutter' diff --git a/examples/custom-server/src/app/_components/RichText/Serialize/index.tsx b/examples/custom-server/src/app/_components/RichText/Serialize/index.tsx new file mode 100644 index 0000000000..f575b6c237 --- /dev/null +++ b/examples/custom-server/src/app/_components/RichText/Serialize/index.tsx @@ -0,0 +1,180 @@ +import React, { Fragment } from 'react' +import escapeHTML from 'escape-html' +import Link from 'next/link' + +type Node = { + type: string + value?: { + url: string + alt: string + } + children?: Node[] + url?: string + [key: string]: unknown + newTab?: boolean +} + +export type CustomRenderers = { + [key: string]: (args: { node: Node; Serialize: SerializeFunction; index: number }) => JSX.Element // eslint-disable-line +} + +type SerializeFunction = React.FC<{ + content?: Node[] + customRenderers?: CustomRenderers +}> + +const isText = (value: any): boolean => + typeof value === 'object' && value !== null && typeof value.text === 'string' + +export const Serialize: SerializeFunction = ({ content, customRenderers }) => { + return ( + + {content?.map((node, i) => { + if (isText(node)) { + // @ts-expect-error + let text = + + if (node.bold) { + text = {text} + } + + if (node.code) { + text = {text} + } + + if (node.italic) { + text = {text} + } + + if (node.underline) { + text = ( + + {text} + + ) + } + + if (node.strikethrough) { + text = ( + + {text} + + ) + } + + return {text} + } + + if (!node) { + return null + } + + if ( + customRenderers && + customRenderers[node.type] && + typeof customRenderers[node.type] === 'function' + ) { + return customRenderers[node.type]({ node, Serialize, index: i }) + } + + switch (node.type) { + case 'br': + return
    + + case 'h1': + return ( +

    + +

    + ) + + case 'h2': + return ( +

    + +

    + ) + + case 'h3': + return ( +

    + +

    + ) + + case 'h4': + return ( +

    + +

    + ) + + case 'h5': + return ( +
    + +
    + ) + + case 'h6': + return ( +
    + +
    + ) + + case 'quote': + return ( +
    + +
    + ) + + case 'ul': + return ( +
      + +
    + ) + + case 'ol': + return ( +
      + +
    + ) + + case 'li': + return ( +

    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�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'YFM3oFK`2t%ZA1Yq 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 GfB)GMZS$T0 literal 0 HcmV?d00001 diff --git a/templates/ecommerce/src/seed/image-2.ts b/templates/ecommerce/src/seed/image-2.ts new file mode 100644 index 0000000000..deaf2daaaf --- /dev/null +++ b/templates/ecommerce/src/seed/image-2.ts @@ -0,0 +1,40 @@ +export const image2 = { + alt: 'E-Book', + caption: [ + { + children: [ + { + text: 'Photo by ', + }, + { + type: 'link', + linkType: 'custom', + url: 'https://unsplash.com/@jamestarbotton?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText', + newTab: true, + children: [ + { + text: 'James Tarbotton', + }, + ], + }, + { + text: ' on ', + }, + { + type: 'link', + linkType: 'custom', + url: 'https://unsplash.com/photos/PkyL3p9Kx8c?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText', + newTab: true, + children: [ + { + text: 'Unsplash', + }, + ], + }, + { + text: '.', + }, + ], + }, + ], +} diff --git a/templates/ecommerce/src/seed/image-3.jpg b/templates/ecommerce/src/seed/image-3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b692efa9f9f1b86d1bcb465512a37b998a9e07e9 GIT binary patch literal 248185 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%0AKQI7Z_d}A38;owaFu<;D=86)mloqU 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 => { + await payload.create({ + collection: 'users', + data: { + email: 'dev@payloadcms.com', + name: 'Payload Dev', + password: 'test', + roles: ['admin'], + stripeCustomerID: 'cus_NHipnQo3MDPVkq', + }, + }) + + const [image1Doc, image2Doc, image3Doc] = await Promise.all([ + payload.create({ + collection: 'media', + filePath: path.resolve(__dirname, 'image-1.jpg'), + data: image1, + }), + payload.create({ + collection: 'media', + filePath: path.resolve(__dirname, 'image-2.jpg'), + data: image2, + }), + payload.create({ + collection: 'media', + filePath: path.resolve(__dirname, 'image-3.jpg'), + data: image3, + }), + ]) + + const [apparelCategory, ebooksCategory, coursesCategory] = await Promise.all([ + payload.create({ + collection: 'categories', + data: { + title: 'Apparel', + }, + }), + payload.create({ + collection: 'categories', + data: { + title: 'E-books', + }, + }), + payload.create({ + collection: 'categories', + data: { + title: 'Online courses', + }, + }), + ]) + + Promise.all([ + payload.create({ + collection: 'products', + data: JSON.parse( + JSON.stringify({ ...product1, categories: [apparelCategory.id] }).replace( + /{{PRODUCT_IMAGE}}/g, + image1Doc.id, + ), + ), + }), + payload.create({ + collection: 'products', + data: JSON.parse( + JSON.stringify({ ...product2, categories: [ebooksCategory.id] }).replace( + /{{PRODUCT_IMAGE}}/g, + image2Doc.id, + ), + ), + }), + payload.create({ + collection: 'products', + data: JSON.parse( + JSON.stringify({ ...product3, categories: [coursesCategory.id] }).replace( + /{{PRODUCT_IMAGE}}/g, + image3Doc.id, + ), + ), + }), + ]) + + const { id: shopPageID } = await payload.create({ + collection: 'pages', + data: shopPage, + }) + + await payload.create({ + collection: 'pages', + data: JSON.parse( + JSON.stringify(home) + .replace(/{{PRODUCT1_IMAGE}}/g, image1Doc.id) + .replace(/{{PRODUCT2_IMAGE}}/g, image2Doc.id) + .replace(/{{SHOP_PAGE_ID}}/g, shopPageID), + ), + }) + + await payload.create({ + collection: 'pages', + data: JSON.parse(JSON.stringify(cartPage).replace(/{{SHOP_PAGE_ID}}/g, shopPageID)), + }) + + await payload.updateGlobal({ + slug: 'settings', + data: { + shopPage: shopPageID, + }, + }) + + await payload.updateGlobal({ + slug: 'header', + data: { + navItems: [ + { + link: { + type: 'reference', + reference: { + relationTo: 'pages', + value: shopPageID, + }, + label: 'Shop', + }, + }, + ], + }, + }) +} diff --git a/templates/ecommerce/src/seed/product-1.ts b/templates/ecommerce/src/seed/product-1.ts new file mode 100644 index 0000000000..2366ae9533 --- /dev/null +++ b/templates/ecommerce/src/seed/product-1.ts @@ -0,0 +1,41 @@ +import type { Product } from '../payload-types' + +export const product1: Partial = { + title: 'Cotton T-Shirt', + stripeProductID: 'prod_NGzfjFJYMHIpN4', + slug: 'cotton-t', + _status: 'published', + layout: [ + { + blockType: 'content', + backgroundColor: 'white', + columns: [ + { + size: 'twoThirds', + richText: [ + { + children: [ + { + text: "All content from this point is completely dynamic using custom layout building block configured in the CMS. This can be anything you'd like.", + }, + ], + }, + ], + link: { + reference: { + relationTo: 'pages', + value: '', + }, + url: '', + label: '', + }, + }, + ], + }, + ], + meta: { + title: 'Cotton T-Shirt', + description: 'One-time purchase for a product or service', + image: '{{PRODUCT_IMAGE}}', + }, +} diff --git a/templates/ecommerce/src/seed/product-2.ts b/templates/ecommerce/src/seed/product-2.ts new file mode 100644 index 0000000000..703d269181 --- /dev/null +++ b/templates/ecommerce/src/seed/product-2.ts @@ -0,0 +1,80 @@ +import type { Product } from '../payload-types' + +export const product2: Partial = { + stripeProductID: 'prod_NGzoEe6IQG54L8', + slug: 'ebook', + _status: 'published', + title: 'E-Book', + layout: [ + { + blockType: 'content', + backgroundColor: 'white', + columns: [ + { + size: 'twoThirds', + richText: [ + { + children: [ + { + text: "All content from this point is completely dynamic using custom layout building block configured in the CMS. This can be anything you'd like.", + }, + ], + }, + { + children: [ + { + text: 'Purchase this product to gain access to the gated content behind the paywall which will appear below.', + }, + ], + }, + ], + link: { + reference: { + relationTo: 'pages', + value: '', + }, + url: '', + label: '', + }, + }, + ], + }, + ], + paywall: [ + { + blockType: 'content', + backgroundColor: 'white', + columns: [ + { + size: 'twoThirds', + richText: [ + { + children: [ + { + text: 'This is paywall content!', + bold: true, + }, + { + text: ' This can be anything from additional content and videos to download links and more. It is only available to users who have purchased this product. If you are seeing this, you have purchased this product.', + }, + ], + }, + ], + link: { + reference: { + relationTo: 'pages', + value: '', + }, + url: '', + label: '', + }, + }, + ], + }, + ], + meta: { + title: 'E-Book', + description: 'One-time purchase for a digital asset', + image: '{{PRODUCT_IMAGE}}', + }, +} diff --git a/templates/ecommerce/src/seed/product-3.ts b/templates/ecommerce/src/seed/product-3.ts new file mode 100644 index 0000000000..9479a82e2c --- /dev/null +++ b/templates/ecommerce/src/seed/product-3.ts @@ -0,0 +1,80 @@ +import type { Product } from '../payload-types' + +export const product3: Partial = { + title: 'Online Course', + stripeProductID: 'prod_NGzgr62LTu1M6T', + slug: 'Online Course', + _status: 'published', + layout: [ + { + blockType: 'content', + backgroundColor: 'white', + columns: [ + { + size: 'twoThirds', + richText: [ + { + children: [ + { + text: "All content from this point is completely dynamic using custom layout building block configured in the CMS. This can be anything you'd like.", + }, + ], + }, + { + children: [ + { + text: 'Purchase this product to gain access to the gated content behind the paywall which will appear below.', + }, + ], + }, + ], + link: { + reference: { + relationTo: 'pages', + value: '', + }, + url: '', + label: '', + }, + }, + ], + }, + ], + paywall: [ + { + blockType: 'content', + backgroundColor: 'white', + columns: [ + { + size: 'twoThirds', + richText: [ + { + children: [ + { + text: 'This is paywall content!', + bold: true, + }, + { + text: ' This can be anything from additional content and videos to download links and more. It is only available to users who have purchased this product. If you are seeing this, you have purchased this product.', + }, + ], + }, + ], + link: { + reference: { + relationTo: 'pages', + value: '', + }, + url: '', + label: '', + }, + }, + ], + }, + ], + meta: { + title: 'Online Course', + description: 'One-time purchase for gated content', + image: '{{PRODUCT_IMAGE}}', + }, +} diff --git a/templates/ecommerce/src/seed/shop-page.ts b/templates/ecommerce/src/seed/shop-page.ts new file mode 100644 index 0000000000..3988c61b21 --- /dev/null +++ b/templates/ecommerce/src/seed/shop-page.ts @@ -0,0 +1,58 @@ +export const shopPage = { + title: 'Shop', + hero: { + type: 'lowImpact', + richText: [ + { + type: 'h1', + children: [ + { + text: 'Shop', + }, + ], + }, + { + type: 'p', + children: [ + { + text: 'This page displays all or some of the products of your store—ranging from goods and services to digital assets and gated content. Each product is complete with a dynamic page layout builder for a completely custom shopping experience that you fully control from the CMS.', + }, + ], + }, + ], + }, + layout: [ + { + blockName: 'Archive Block', + blockType: 'archive', + introContent: [ + { + type: 'h4', + children: [ + { + text: 'All products', + }, + ], + }, + { + type: 'p', + children: [ + { + text: 'The products below are displayed in an "Archive" layout building block which is an extremely powerful way to display docs on a page. It can auto-populate by collection, filter by category, limit results, and much more—all configured in the CMS.', + }, + ], + }, + ], + populateBy: 'collection', + relationTo: 'products', + limit: 10, + categories: [], + }, + ], + meta: { + title: 'Shop', + description: 'Shop page', + }, + slug: 'shop', + _status: 'published', +} diff --git a/templates/ecommerce/src/server.ts b/templates/ecommerce/src/server.ts new file mode 100644 index 0000000000..0afd8b93d1 --- /dev/null +++ b/templates/ecommerce/src/server.ts @@ -0,0 +1,35 @@ +import express from 'express' +import payload from 'payload' + +// eslint-disable-next-line +require('dotenv').config() + +import { seed } from './seed' + +const app = express() + +// Redirect root to Admin panel +app.get('/', (_, res) => { + res.redirect('/admin') +}) + +const start = async (): Promise => { + await payload.init({ + secret: process.env.PAYLOAD_SECRET, + mongoURL: process.env.MONGODB_URI, + express: app, + onInit: () => { + payload.logger.info(`Payload Admin URL: ${payload.getAdminURL()}`) + }, + }) + + if (process.env.PAYLOAD_SEED === 'true') { + payload.logger.info('Seeding Payload...') + await seed(payload) + payload.logger.info('Done.') + } + + app.listen(process.env.PORT) +} + +start() diff --git a/templates/ecommerce/src/stripe/webhooks/invoiceCreatedOrUpdated.ts b/templates/ecommerce/src/stripe/webhooks/invoiceCreatedOrUpdated.ts new file mode 100644 index 0000000000..247bfdcd8c --- /dev/null +++ b/templates/ecommerce/src/stripe/webhooks/invoiceCreatedOrUpdated.ts @@ -0,0 +1,128 @@ +import type { StripeWebhookHandler } from '@payloadcms/plugin-stripe/dist/types' +import type Stripe from 'stripe' + +import type { Order } from '../../payload-types' + +const logs = true + +export const invoiceCreatedOrUpdated: StripeWebhookHandler<{ + data: { + object: Stripe.Invoice + } +}> = async args => { + const { + event, + payload, + // stripe + } = args + + const { + id: stripeInvoiceID, + payment_intent, + lines: invoiceItems, + customer, + customer_email: invoiceCustomerEmail, + customer_name: invoiceCustomerName, + } = event.data.object + + const stripePaymentIntentID = + typeof payment_intent === 'string' ? payment_intent : payment_intent?.id + const invoiceCustomerID = typeof customer === 'string' ? customer : customer?.id + + if (logs) + payload.logger.info(`🪝 An invoice was created or updated in Stripe, syncing to Payload...`) + + let existingOrder: Order + + if (stripeInvoiceID) { + const { + docs: [order], + } = await payload.find({ + collection: 'orders', + where: { + stripeInvoiceID: { + equals: stripeInvoiceID, + }, + }, + }) + + if (order) { + existingOrder = order + } + } + + const users = await payload.find({ + collection: 'users', + where: { + stripeCustomerID: { + equals: invoiceCustomerID, + }, + }, + }) + + const [user] = users.docs + + try { + if (invoiceItems) { + // find all payload products that are assigned to "stripeProductID" + const items = await Promise.all( + invoiceItems.data.map(async item => { + const productQuery = await payload.find({ + collection: 'products', + where: { + stripeProductID: { + equals: item.price.product, + }, + }, + }) + + const [product] = productQuery.docs + + const stripeProductID = + typeof item.price.product === 'string' ? item.price.product : item.price.product?.id + + return { + product: product?.id || null, + title: product?.title || null, + priceJSON: JSON.stringify(item.price), + stripeProductID, + quantity: item.quantity, + } + }), + ) + + const orderData: Partial = { + stripeInvoiceID, + stripePaymentIntentID, + orderedBy: { + user: user?.id || null, + name: invoiceCustomerName, + email: invoiceCustomerEmail, + stripeCustomerID: invoiceCustomerID, + }, + items, + } + + if (existingOrder) { + if (logs) payload.logger.info(`🪝 Updating existing order...`) + + await payload.update({ + collection: 'orders', + id: existingOrder.id, + data: orderData, + }) + } else { + if (logs) payload.logger.info(`🪝 Creating new order...`) + + await payload.create({ + collection: 'orders', + data: orderData, + }) + } + } + + if (logs) payload.logger.info(`✅ Successfully synced invoice.`) + } catch (error: unknown) { + payload.logger.error(`- Error syncing invoice: ${error}`) + } +} diff --git a/templates/ecommerce/src/stripe/webhooks/priceUpdated.ts b/templates/ecommerce/src/stripe/webhooks/priceUpdated.ts new file mode 100644 index 0000000000..3c6a1fee46 --- /dev/null +++ b/templates/ecommerce/src/stripe/webhooks/priceUpdated.ts @@ -0,0 +1,69 @@ +import type { StripeWebhookHandler } from '@payloadcms/plugin-stripe/dist/types' +import type Stripe from 'stripe' + +const logs = false + +export const priceUpdated: StripeWebhookHandler<{ + data: { + object: Stripe.Price + } +}> = async args => { + const { event, payload, stripe } = args + + const stripeProduct = event.data.object.product + const stripeProductID = typeof stripeProduct === 'string' ? stripeProduct : stripeProduct.id + + if (logs) + payload.logger.info( + `🪝 A price was created or updated in Stripe on product ID: ${stripeProductID}, syncing to Payload...`, + ) + + let payloadProductID + + // First lookup the product in Payload + try { + if (logs) payload.logger.info(`- Looking up existing Payload product...`) + + const productQuery = await payload.find({ + collection: 'products', + where: { + stripeProductID: { + equals: stripeProductID, + }, + }, + }) + + payloadProductID = productQuery.docs?.[0]?.id + + if (payloadProductID) { + if (logs) + payload.logger.info( + `- Found existing product with Stripe ID: ${stripeProductID}, saving price...`, + ) + } + } catch (error: unknown) { + // @ts-expect-error + payload.logger.error(`Error finding product ${error?.message}`) + } + + try { + // find all stripe prices that are assigned to "payloadProductID" + const stripePrices = await stripe.prices.list({ + product: stripeProductID, + limit: 100, + }) + + await payload.update({ + collection: 'products', + id: payloadProductID, + data: { + priceJSON: JSON.stringify(stripePrices), + skipSync: true, + }, + }) + + if (logs) payload.logger.info(`✅ Successfully updated product price.`) + } catch (error: unknown) { + payload.logger.error(`- Error updating product price: ${error}`) + } +} diff --git a/templates/ecommerce/src/stripe/webhooks/productUpdated.ts b/templates/ecommerce/src/stripe/webhooks/productUpdated.ts new file mode 100644 index 0000000000..981eccc3c1 --- /dev/null +++ b/templates/ecommerce/src/stripe/webhooks/productUpdated.ts @@ -0,0 +1,81 @@ +import type { StripeWebhookHandler } from '@payloadcms/plugin-stripe/dist/types' +import type Stripe from 'stripe' + +const logs = false + +export const productUpdated: StripeWebhookHandler<{ + data: { + object: Stripe.Product + } +}> = async args => { + const { event, payload, stripe } = args + + const { + id: stripeProductID, + // name: stripeProductName, + // description: stripeDescription, + } = event.data.object + + if (logs) payload.logger.info(`Syncing Stripe product with ID: ${stripeProductID} to Payload...`) + + let payloadProductID + + // First lookup the product in Payload + try { + if (logs) payload.logger.info(`- Looking up existing Payload product...`) + + const productQuery = await payload.find({ + collection: 'products', + where: { + stripeProductID: { + equals: stripeProductID, + }, + }, + }) + + payloadProductID = productQuery.docs?.[0]?.id + + if (payloadProductID) { + if (logs) + payload.logger.info( + `- Found existing product with Stripe ID: ${stripeProductID}, syncing now...`, + ) + } + } catch (error: unknown) { + const message = error instanceof Error ? error.message : 'Unknown error' + payload.logger.error(`Error finding product ${message}`) + } + + let prices + + try { + if (logs) payload.logger.info(`- Looking up all prices associated with this product...`) + + // find all stripe prices that are assigned to "payloadProductID" + prices = await stripe.prices.list({ + product: stripeProductID, + limit: 100, + }) + } catch (error: unknown) { + payload.logger.error(`- Error looking up prices: ${error}`) + } + + try { + if (logs) payload.logger.info(`- Updating document...`) + + await payload.update({ + collection: 'products', + id: payloadProductID, + data: { + // name: stripeProductName, + // description: stripeDescription, + priceJSON: JSON.stringify(prices), + skipSync: true, + }, + }) + + if (logs) payload.logger.info(`✅ Successfully updated product.`) + } catch (error: unknown) { + payload.logger.error(`- Error updating product: ${error}`) + } +} diff --git a/templates/ecommerce/src/utilities/deepMerge.ts b/templates/ecommerce/src/utilities/deepMerge.ts new file mode 100644 index 0000000000..a291fdfd4e --- /dev/null +++ b/templates/ecommerce/src/utilities/deepMerge.ts @@ -0,0 +1,33 @@ +/** + * Simple object check. + * @param item + * @returns {boolean} + */ +export function isObject(item: unknown): boolean { + return item && typeof item === 'object' && !Array.isArray(item) +} + +/** + * Deep merge two objects. + * @param target + * @param ...sources + */ +export default function deepMerge(target: T, source: R): T { + const output = { ...target } + if (isObject(target) && isObject(source)) { + Object.keys(source).forEach(key => { + if (isObject(source[key])) { + // @ts-expect-error + if (!(key in target)) { + Object.assign(output, { [key]: source[key] }) + } else { + output[key] = deepMerge(target[key], source[key]) + } + } else { + Object.assign(output, { [key]: source[key] }) + } + }) + } + + return output +} diff --git a/templates/ecommerce/src/utilities/formatSlug.ts b/templates/ecommerce/src/utilities/formatSlug.ts new file mode 100644 index 0000000000..bb33fc1f54 --- /dev/null +++ b/templates/ecommerce/src/utilities/formatSlug.ts @@ -0,0 +1,27 @@ +import type { FieldHook } from 'payload/types' + +const format = (val: string): string => + val + .replace(/ /g, '-') + .replace(/[^\w-]+/g, '') + .toLowerCase() + +const formatSlug = + (fallback: string): FieldHook => + ({ operation, value, originalDoc, data }) => { + if (typeof value === 'string') { + return format(value) + } + + if (operation === 'create') { + const fallbackData = data?.[fallback] || originalDoc?.[fallback] + + if (fallbackData && typeof fallbackData === 'string') { + return format(fallbackData) + } + } + + return value + } + +export default formatSlug diff --git a/templates/ecommerce/tsconfig.json b/templates/ecommerce/tsconfig.json new file mode 100644 index 0000000000..c54632370f --- /dev/null +++ b/templates/ecommerce/tsconfig.json @@ -0,0 +1,33 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "strict": false, + "esModuleInterop": true, + "skipLibCheck": true, + "outDir": "./dist", + "rootDir": "./src", + "jsx": "react", + "paths": { + "stripe": [ + "./node_modules/stripe" + ] + } + }, + "include": [ + "src" + ], + "exclude": [ + "node_modules", + "dist", + "build", + ], + "ts-node": { + "transpileOnly": true + } +} diff --git a/templates/ecommerce/yarn.lock b/templates/ecommerce/yarn.lock new file mode 100644 index 0000000000..51b0e98853 --- /dev/null +++ b/templates/ecommerce/yarn.lock @@ -0,0 +1,8395 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@aws-crypto/crc32@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-3.0.0.tgz#07300eca214409c33e3ff769cd5697b57fdd38fa" + integrity sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA== + dependencies: + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + tslib "^1.11.1" + +"@aws-crypto/crc32c@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32c/-/crc32c-3.0.0.tgz#016c92da559ef638a84a245eecb75c3e97cb664f" + integrity sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w== + dependencies: + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + tslib "^1.11.1" + +"@aws-crypto/ie11-detection@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz#640ae66b4ec3395cee6a8e94ebcd9f80c24cd688" + integrity sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/sha1-browser@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha1-browser/-/sha1-browser-3.0.0.tgz#f9083c00782b24714f528b1a1fef2174002266a3" + integrity sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw== + dependencies: + "@aws-crypto/ie11-detection" "^3.0.0" + "@aws-crypto/supports-web-crypto" "^3.0.0" + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-browser@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz#05f160138ab893f1c6ba5be57cfd108f05827766" + integrity sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ== + dependencies: + "@aws-crypto/ie11-detection" "^3.0.0" + "@aws-crypto/sha256-js" "^3.0.0" + "@aws-crypto/supports-web-crypto" "^3.0.0" + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-js@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-1.2.2.tgz#02acd1a1fda92896fc5a28ec7c6e164644ea32fc" + integrity sha512-Nr1QJIbW/afYYGzYvrF70LtaHrIRtd4TNAglX8BvlfxJLZ45SAmueIKYl5tWoNBPzp65ymXGFK0Bb1vZUpuc9g== + dependencies: + "@aws-crypto/util" "^1.2.2" + "@aws-sdk/types" "^3.1.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-js@3.0.0", "@aws-crypto/sha256-js@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz#f06b84d550d25521e60d2a0e2a90139341e007c2" + integrity sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ== + dependencies: + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + tslib "^1.11.1" + +"@aws-crypto/supports-web-crypto@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz#5d1bf825afa8072af2717c3e455f35cda0103ec2" + integrity sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/util@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-1.2.2.tgz#b28f7897730eb6538b21c18bd4de22d0ea09003c" + integrity sha512-H8PjG5WJ4wz0UXAFXeJjWCW1vkvIJ3qUUD+rGRwJ2/hj+xT58Qle2MTql/2MGzkU+1JLAFuR6aJpLAjHwhmwwg== + dependencies: + "@aws-sdk/types" "^3.1.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/util@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-3.0.0.tgz#1c7ca90c29293f0883468ad48117937f0fe5bfb0" + integrity sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w== + dependencies: + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-sdk/abort-controller@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.347.0.tgz#8f1dc9f7e2030b3eabe2f05722d3d99e783e295f" + integrity sha512-P/2qE6ntYEmYG4Ez535nJWZbXqgbkJx8CMz7ChEuEg3Gp3dvVYEKg+iEUEvlqQ2U5dWP5J3ehw5po9t86IsVPQ== + dependencies: + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/chunked-blob-reader@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/chunked-blob-reader/-/chunked-blob-reader-3.310.0.tgz#2ada1b024a2745c2fe7e869606fab781325f981e" + integrity sha512-CrJS3exo4mWaLnWxfCH+w88Ou0IcAZSIkk4QbmxiHl/5Dq705OLoxf4385MVyExpqpeVJYOYQ2WaD8i/pQZ2fg== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/client-cognito-identity@3.348.0", "@aws-sdk/client-cognito-identity@^3.289.0": + version "3.348.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.348.0.tgz#649b4668ea34b2cdf0d1ac101e01021556683ac4" + integrity sha512-1fcJFUQTsAXjkaAn/kn9ty790uHbCpukkuqJ/0QNPFYaa6vu93xx7FnzOvRK4XvaojwZ/C+yxp0fNQ+GjXG0vg== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.348.0" + "@aws-sdk/config-resolver" "3.347.0" + "@aws-sdk/credential-provider-node" "3.348.0" + "@aws-sdk/fetch-http-handler" "3.347.0" + "@aws-sdk/hash-node" "3.347.0" + "@aws-sdk/invalid-dependency" "3.347.0" + "@aws-sdk/middleware-content-length" "3.347.0" + "@aws-sdk/middleware-endpoint" "3.347.0" + "@aws-sdk/middleware-host-header" "3.347.0" + "@aws-sdk/middleware-logger" "3.347.0" + "@aws-sdk/middleware-recursion-detection" "3.347.0" + "@aws-sdk/middleware-retry" "3.347.0" + "@aws-sdk/middleware-serde" "3.347.0" + "@aws-sdk/middleware-signing" "3.347.0" + "@aws-sdk/middleware-stack" "3.347.0" + "@aws-sdk/middleware-user-agent" "3.347.0" + "@aws-sdk/node-config-provider" "3.347.0" + "@aws-sdk/node-http-handler" "3.348.0" + "@aws-sdk/smithy-client" "3.347.0" + "@aws-sdk/types" "3.347.0" + "@aws-sdk/url-parser" "3.347.0" + "@aws-sdk/util-base64" "3.310.0" + "@aws-sdk/util-body-length-browser" "3.310.0" + "@aws-sdk/util-body-length-node" "3.310.0" + "@aws-sdk/util-defaults-mode-browser" "3.347.0" + "@aws-sdk/util-defaults-mode-node" "3.347.0" + "@aws-sdk/util-endpoints" "3.347.0" + "@aws-sdk/util-retry" "3.347.0" + "@aws-sdk/util-user-agent-browser" "3.347.0" + "@aws-sdk/util-user-agent-node" "3.347.0" + "@aws-sdk/util-utf8" "3.310.0" + "@smithy/protocol-http" "^1.0.1" + "@smithy/types" "^1.0.0" + tslib "^2.5.0" + +"@aws-sdk/client-s3@^3.142.0": + version "3.348.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.348.0.tgz#0a9bc3a2f2ff20371559856dea74e98cfec61c85" + integrity sha512-19ShUJL/Kqol4pW2S6axD85oL2JIh91ctUgqPEuu5BzGyEgq5s+HP/DDNzcdsTKl7gfCfaIULf01yWU6RwY1EA== + dependencies: + "@aws-crypto/sha1-browser" "3.0.0" + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.348.0" + "@aws-sdk/config-resolver" "3.347.0" + "@aws-sdk/credential-provider-node" "3.348.0" + "@aws-sdk/eventstream-serde-browser" "3.347.0" + "@aws-sdk/eventstream-serde-config-resolver" "3.347.0" + "@aws-sdk/eventstream-serde-node" "3.347.0" + "@aws-sdk/fetch-http-handler" "3.347.0" + "@aws-sdk/hash-blob-browser" "3.347.0" + "@aws-sdk/hash-node" "3.347.0" + "@aws-sdk/hash-stream-node" "3.347.0" + "@aws-sdk/invalid-dependency" "3.347.0" + "@aws-sdk/md5-js" "3.347.0" + "@aws-sdk/middleware-bucket-endpoint" "3.347.0" + "@aws-sdk/middleware-content-length" "3.347.0" + "@aws-sdk/middleware-endpoint" "3.347.0" + "@aws-sdk/middleware-expect-continue" "3.347.0" + "@aws-sdk/middleware-flexible-checksums" "3.347.0" + "@aws-sdk/middleware-host-header" "3.347.0" + "@aws-sdk/middleware-location-constraint" "3.347.0" + "@aws-sdk/middleware-logger" "3.347.0" + "@aws-sdk/middleware-recursion-detection" "3.347.0" + "@aws-sdk/middleware-retry" "3.347.0" + "@aws-sdk/middleware-sdk-s3" "3.347.0" + "@aws-sdk/middleware-serde" "3.347.0" + "@aws-sdk/middleware-signing" "3.347.0" + "@aws-sdk/middleware-ssec" "3.347.0" + "@aws-sdk/middleware-stack" "3.347.0" + "@aws-sdk/middleware-user-agent" "3.347.0" + "@aws-sdk/node-config-provider" "3.347.0" + "@aws-sdk/node-http-handler" "3.348.0" + "@aws-sdk/signature-v4-multi-region" "3.347.0" + "@aws-sdk/smithy-client" "3.347.0" + "@aws-sdk/types" "3.347.0" + "@aws-sdk/url-parser" "3.347.0" + "@aws-sdk/util-base64" "3.310.0" + "@aws-sdk/util-body-length-browser" "3.310.0" + "@aws-sdk/util-body-length-node" "3.310.0" + "@aws-sdk/util-defaults-mode-browser" "3.347.0" + "@aws-sdk/util-defaults-mode-node" "3.347.0" + "@aws-sdk/util-endpoints" "3.347.0" + "@aws-sdk/util-retry" "3.347.0" + "@aws-sdk/util-stream-browser" "3.347.0" + "@aws-sdk/util-stream-node" "3.348.0" + "@aws-sdk/util-user-agent-browser" "3.347.0" + "@aws-sdk/util-user-agent-node" "3.347.0" + "@aws-sdk/util-utf8" "3.310.0" + "@aws-sdk/util-waiter" "3.347.0" + "@aws-sdk/xml-builder" "3.310.0" + "@smithy/protocol-http" "^1.0.1" + "@smithy/types" "^1.0.0" + fast-xml-parser "4.2.4" + tslib "^2.5.0" + +"@aws-sdk/client-sso-oidc@3.348.0": + version "3.348.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.348.0.tgz#4a9ab336f8ab7727da70550d460a65c4be8a4f89" + integrity sha512-tvHpcycx4EALvk38I9rAOdPeHvBDezqIB4lrE7AvnOJljlvCcdQ2gXa9GDrwrM7zuYBIZMBRE/njTMrCwoOdAA== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/config-resolver" "3.347.0" + "@aws-sdk/fetch-http-handler" "3.347.0" + "@aws-sdk/hash-node" "3.347.0" + "@aws-sdk/invalid-dependency" "3.347.0" + "@aws-sdk/middleware-content-length" "3.347.0" + "@aws-sdk/middleware-endpoint" "3.347.0" + "@aws-sdk/middleware-host-header" "3.347.0" + "@aws-sdk/middleware-logger" "3.347.0" + "@aws-sdk/middleware-recursion-detection" "3.347.0" + "@aws-sdk/middleware-retry" "3.347.0" + "@aws-sdk/middleware-serde" "3.347.0" + "@aws-sdk/middleware-stack" "3.347.0" + "@aws-sdk/middleware-user-agent" "3.347.0" + "@aws-sdk/node-config-provider" "3.347.0" + "@aws-sdk/node-http-handler" "3.348.0" + "@aws-sdk/smithy-client" "3.347.0" + "@aws-sdk/types" "3.347.0" + "@aws-sdk/url-parser" "3.347.0" + "@aws-sdk/util-base64" "3.310.0" + "@aws-sdk/util-body-length-browser" "3.310.0" + "@aws-sdk/util-body-length-node" "3.310.0" + "@aws-sdk/util-defaults-mode-browser" "3.347.0" + "@aws-sdk/util-defaults-mode-node" "3.347.0" + "@aws-sdk/util-endpoints" "3.347.0" + "@aws-sdk/util-retry" "3.347.0" + "@aws-sdk/util-user-agent-browser" "3.347.0" + "@aws-sdk/util-user-agent-node" "3.347.0" + "@aws-sdk/util-utf8" "3.310.0" + "@smithy/protocol-http" "^1.0.1" + "@smithy/types" "^1.0.0" + tslib "^2.5.0" + +"@aws-sdk/client-sso@3.348.0": + version "3.348.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.348.0.tgz#fb16fcfc3b921c43a1c7992d7610fc1aa64c46ed" + integrity sha512-5S23gVKBl0fhZ96RD8LdPhMKeh8E5fmebyZxMNZuWliSXz++Q9ZCrwPwQbkks3duPOTcKKobs3IoqP82HoXMvQ== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/config-resolver" "3.347.0" + "@aws-sdk/fetch-http-handler" "3.347.0" + "@aws-sdk/hash-node" "3.347.0" + "@aws-sdk/invalid-dependency" "3.347.0" + "@aws-sdk/middleware-content-length" "3.347.0" + "@aws-sdk/middleware-endpoint" "3.347.0" + "@aws-sdk/middleware-host-header" "3.347.0" + "@aws-sdk/middleware-logger" "3.347.0" + "@aws-sdk/middleware-recursion-detection" "3.347.0" + "@aws-sdk/middleware-retry" "3.347.0" + "@aws-sdk/middleware-serde" "3.347.0" + "@aws-sdk/middleware-stack" "3.347.0" + "@aws-sdk/middleware-user-agent" "3.347.0" + "@aws-sdk/node-config-provider" "3.347.0" + "@aws-sdk/node-http-handler" "3.348.0" + "@aws-sdk/smithy-client" "3.347.0" + "@aws-sdk/types" "3.347.0" + "@aws-sdk/url-parser" "3.347.0" + "@aws-sdk/util-base64" "3.310.0" + "@aws-sdk/util-body-length-browser" "3.310.0" + "@aws-sdk/util-body-length-node" "3.310.0" + "@aws-sdk/util-defaults-mode-browser" "3.347.0" + "@aws-sdk/util-defaults-mode-node" "3.347.0" + "@aws-sdk/util-endpoints" "3.347.0" + "@aws-sdk/util-retry" "3.347.0" + "@aws-sdk/util-user-agent-browser" "3.347.0" + "@aws-sdk/util-user-agent-node" "3.347.0" + "@aws-sdk/util-utf8" "3.310.0" + "@smithy/protocol-http" "^1.0.1" + "@smithy/types" "^1.0.0" + tslib "^2.5.0" + +"@aws-sdk/client-sts@3.348.0": + version "3.348.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.348.0.tgz#a7a03add7a287496bccdd9427dbd5b36530fea08" + integrity sha512-4iaQlWAOHMEF4xjR/FB/ws3aUjXjJHwbsIcqbdYAxsKijDYYTZYCPc/gM0NE1yi28qlNYNhMzHipe5xTYbU2Eg== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/config-resolver" "3.347.0" + "@aws-sdk/credential-provider-node" "3.348.0" + "@aws-sdk/fetch-http-handler" "3.347.0" + "@aws-sdk/hash-node" "3.347.0" + "@aws-sdk/invalid-dependency" "3.347.0" + "@aws-sdk/middleware-content-length" "3.347.0" + "@aws-sdk/middleware-endpoint" "3.347.0" + "@aws-sdk/middleware-host-header" "3.347.0" + "@aws-sdk/middleware-logger" "3.347.0" + "@aws-sdk/middleware-recursion-detection" "3.347.0" + "@aws-sdk/middleware-retry" "3.347.0" + "@aws-sdk/middleware-sdk-sts" "3.347.0" + "@aws-sdk/middleware-serde" "3.347.0" + "@aws-sdk/middleware-signing" "3.347.0" + "@aws-sdk/middleware-stack" "3.347.0" + "@aws-sdk/middleware-user-agent" "3.347.0" + "@aws-sdk/node-config-provider" "3.347.0" + "@aws-sdk/node-http-handler" "3.348.0" + "@aws-sdk/smithy-client" "3.347.0" + "@aws-sdk/types" "3.347.0" + "@aws-sdk/url-parser" "3.347.0" + "@aws-sdk/util-base64" "3.310.0" + "@aws-sdk/util-body-length-browser" "3.310.0" + "@aws-sdk/util-body-length-node" "3.310.0" + "@aws-sdk/util-defaults-mode-browser" "3.347.0" + "@aws-sdk/util-defaults-mode-node" "3.347.0" + "@aws-sdk/util-endpoints" "3.347.0" + "@aws-sdk/util-retry" "3.347.0" + "@aws-sdk/util-user-agent-browser" "3.347.0" + "@aws-sdk/util-user-agent-node" "3.347.0" + "@aws-sdk/util-utf8" "3.310.0" + "@smithy/protocol-http" "^1.0.1" + "@smithy/types" "^1.0.0" + fast-xml-parser "4.2.4" + tslib "^2.5.0" + +"@aws-sdk/config-resolver@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.347.0.tgz#84bb2cbbe310e7de1168ba3233369204f31d395a" + integrity sha512-2ja+Sf/VnUO7IQ3nKbDQ5aumYKKJUaTm/BuVJ29wNho8wYHfuf7wHZV0pDTkB8RF5SH7IpHap7zpZAj39Iq+EA== + dependencies: + "@aws-sdk/types" "3.347.0" + "@aws-sdk/util-config-provider" "3.310.0" + "@aws-sdk/util-middleware" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-cognito-identity@3.348.0": + version "3.348.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.348.0.tgz#ac3113b56ceaeceec8aa255b7c8f158b3b040adc" + integrity sha512-VQQVEP844mAwn5iEIzc/hBOuSzMGBL61sqEGqqgxhe6Sjnd8NfGNlOjV6fOxlUHhOelumqBMXgn6liIZbfcqFQ== + dependencies: + "@aws-sdk/client-cognito-identity" "3.348.0" + "@aws-sdk/property-provider" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-env@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.347.0.tgz#fb2013a1f799cca874674cb15680680bb33c088b" + integrity sha512-UnEM+LKGpXKzw/1WvYEQsC6Wj9PupYZdQOE+e2Dgy2dqk/pVFy4WueRtFXYDT2B41ppv3drdXUuKZRIDVqIgNQ== + dependencies: + "@aws-sdk/property-provider" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-imds@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.347.0.tgz#7b42e2c1143fbec309e9a65c4e8200b056ce028d" + integrity sha512-7scCy/DCDRLIhlqTxff97LQWDnRwRXji3bxxMg+xWOTTaJe7PWx+etGSbBWaL42vsBHFShQjSLvJryEgoBktpw== + dependencies: + "@aws-sdk/node-config-provider" "3.347.0" + "@aws-sdk/property-provider" "3.347.0" + "@aws-sdk/types" "3.347.0" + "@aws-sdk/url-parser" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-ini@3.348.0": + version "3.348.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.348.0.tgz#1f1069237d09171aefc22b81fff76e5783b8807f" + integrity sha512-0IEH5mH/cz2iLyr/+pSa3sCsQcGADiLSEn6yivsXdfz1zDqBiv+ffDoL0+Pvnp+TKf8sA6OlX8PgoMoEBvBdKw== + dependencies: + "@aws-sdk/credential-provider-env" "3.347.0" + "@aws-sdk/credential-provider-imds" "3.347.0" + "@aws-sdk/credential-provider-process" "3.347.0" + "@aws-sdk/credential-provider-sso" "3.348.0" + "@aws-sdk/credential-provider-web-identity" "3.347.0" + "@aws-sdk/property-provider" "3.347.0" + "@aws-sdk/shared-ini-file-loader" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-node@3.348.0": + version "3.348.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.348.0.tgz#57516d394ad2cb7df832925adf3192d7d1ace72a" + integrity sha512-ngRWphm9e36i58KqVi7Z8WOub+k0cSl+JZaAmgfFm0+dsfBG5uheo598OeiwWV0DqlilvaQZFaMVQgG2SX/tHg== + dependencies: + "@aws-sdk/credential-provider-env" "3.347.0" + "@aws-sdk/credential-provider-imds" "3.347.0" + "@aws-sdk/credential-provider-ini" "3.348.0" + "@aws-sdk/credential-provider-process" "3.347.0" + "@aws-sdk/credential-provider-sso" "3.348.0" + "@aws-sdk/credential-provider-web-identity" "3.347.0" + "@aws-sdk/property-provider" "3.347.0" + "@aws-sdk/shared-ini-file-loader" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-process@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.347.0.tgz#066e82fee54c9fac67c4dc911873e20facdb3471" + integrity sha512-yl1z4MsaBdXd4GQ2halIvYds23S67kElyOwz7g8kaQ4kHj+UoYWxz3JVW/DGusM6XmQ9/F67utBrUVA0uhQYyw== + dependencies: + "@aws-sdk/property-provider" "3.347.0" + "@aws-sdk/shared-ini-file-loader" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-sso@3.348.0": + version "3.348.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.348.0.tgz#4578f30ef6d119823707d52ff7f53b3e5b9d9ae7" + integrity sha512-5cQao705376KgGkLv9xgkQ3T5H7KdNddWuyoH2wDcrHd1BA2Lnrell3Yyh7R6jQeV7uCQE/z0ugUOKhDqNKIqQ== + dependencies: + "@aws-sdk/client-sso" "3.348.0" + "@aws-sdk/property-provider" "3.347.0" + "@aws-sdk/shared-ini-file-loader" "3.347.0" + "@aws-sdk/token-providers" "3.348.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-web-identity@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.347.0.tgz#bb035fc16059ab43386facf8b4d1e8c094450a6d" + integrity sha512-DxoTlVK8lXjS1zVphtz/Ab+jkN/IZor9d6pP2GjJHNoAIIzXfRwwj5C8vr4eTayx/5VJ7GRP91J8GJ2cKly8Qw== + dependencies: + "@aws-sdk/property-provider" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/credential-providers@^3.289.0": + version "3.348.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.348.0.tgz#13dfc7ce0a58fa8bcd623711add0388ccd11b036" + integrity sha512-lpq1aHjFyExqD/6L8BK0OaROpCJuhnexGrABYljGI6yaLsyHbQpdE2+Y/WaxuRAK9wyP5s+7KNJ1ZK1ktrk5uQ== + dependencies: + "@aws-sdk/client-cognito-identity" "3.348.0" + "@aws-sdk/client-sso" "3.348.0" + "@aws-sdk/client-sts" "3.348.0" + "@aws-sdk/credential-provider-cognito-identity" "3.348.0" + "@aws-sdk/credential-provider-env" "3.347.0" + "@aws-sdk/credential-provider-imds" "3.347.0" + "@aws-sdk/credential-provider-ini" "3.348.0" + "@aws-sdk/credential-provider-node" "3.348.0" + "@aws-sdk/credential-provider-process" "3.347.0" + "@aws-sdk/credential-provider-sso" "3.348.0" + "@aws-sdk/credential-provider-web-identity" "3.347.0" + "@aws-sdk/property-provider" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/eventstream-codec@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-codec/-/eventstream-codec-3.347.0.tgz#4ba2c87a2f6e4bb10a833910a4427d16ceec09f0" + integrity sha512-61q+SyspjsaQ4sdgjizMyRgVph2CiW4aAtfpoH69EJFJfTxTR/OqnZ9Jx/3YiYi0ksrvDenJddYodfWWJqD8/w== + dependencies: + "@aws-crypto/crc32" "3.0.0" + "@aws-sdk/types" "3.347.0" + "@aws-sdk/util-hex-encoding" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/eventstream-serde-browser@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.347.0.tgz#77cb6d423d5566c09a5bd589b8f70492fbf4f020" + integrity sha512-9BLVTHWgpiTo/hl+k7qt7E9iYu43zVwJN+4TEwA9ZZB3p12068t1Hay6HgCcgJC3+LWMtw/OhvypV6vQAG4UBg== + dependencies: + "@aws-sdk/eventstream-serde-universal" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/eventstream-serde-config-resolver@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.347.0.tgz#89f5ecac182f77f1fd97ffceea276e2ce2ecdc2d" + integrity sha512-RcXQbNVq0PFmDqfn6+MnjCUWbbobcYVxpimaF6pMDav04o6Mcle+G2Hrefp5NlFr/lZbHW2eUKYsp1sXPaxVlQ== + dependencies: + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/eventstream-serde-node@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.347.0.tgz#76b26af3372cc2794505cc80076a5fa1caa05e4e" + integrity sha512-pgQCWH0PkHjcHs04JE7FoGAD3Ww45ffV8Op0MSLUhg9OpGa6EDoO3EOpWi9l/TALtH4f0KRV35PVyUyHJ/wEkA== + dependencies: + "@aws-sdk/eventstream-serde-universal" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/eventstream-serde-universal@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.347.0.tgz#2566606e1061859a5062c83915d5035f2dfed8a2" + integrity sha512-4wWj6bz6lOyDIO/dCCjwaLwRz648xzQQnf89R29sLoEqvAPP5XOB7HL+uFaQ/f5tPNh49gL6huNFSVwDm62n4Q== + dependencies: + "@aws-sdk/eventstream-codec" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/fetch-http-handler@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.347.0.tgz#e413790ec453bf8f1c0674f718cfdf5ed9b79e20" + integrity sha512-sQ5P7ivY8//7wdxfA76LT1sF6V2Tyyz1qF6xXf9sihPN5Q1Y65c+SKpMzXyFSPqWZ82+SQQuDliYZouVyS6kQQ== + dependencies: + "@aws-sdk/protocol-http" "3.347.0" + "@aws-sdk/querystring-builder" "3.347.0" + "@aws-sdk/types" "3.347.0" + "@aws-sdk/util-base64" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/hash-blob-browser@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.347.0.tgz#b8a48951c7a7798ca49a155f42046016f5bf4551" + integrity sha512-RxgstIldLsdJKN5UHUwSI9PMiatr0xKmKxS4+tnWZ1/OOg6wuWqqpDpWdNOVSJSpxpUaP6kRrvG5Yo5ZevoTXw== + dependencies: + "@aws-sdk/chunked-blob-reader" "3.310.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/hash-node@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.347.0.tgz#575b31227306c03b491b814178a72b0b79625ed5" + integrity sha512-96+ml/4EaUaVpzBdOLGOxdoXOjkPgkoJp/0i1fxOJEvl8wdAQSwc3IugVK9wZkCxy2DlENtgOe6DfIOhfffm/g== + dependencies: + "@aws-sdk/types" "3.347.0" + "@aws-sdk/util-buffer-from" "3.310.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/hash-stream-node@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-stream-node/-/hash-stream-node-3.347.0.tgz#f66810f4e17257009a2e231b58b3ce5aa91d9e44" + integrity sha512-tOBfcvELyt1GVuAlQ4d0mvm3QxoSSmvhH15SWIubM9RP4JWytBVzaFAn/aC02DBAWyvp0acMZ5J+47mxrWJElg== + dependencies: + "@aws-sdk/types" "3.347.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/invalid-dependency@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.347.0.tgz#2e5994cdd51dc3fe0310ce355e1ab115b66b7cb5" + integrity sha512-8imQcwLwqZ/wTJXZqzXT9pGLIksTRckhGLZaXT60tiBOPKuerTsus2L59UstLs5LP8TKaVZKFFSsjRIn9dQdmQ== + dependencies: + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/is-array-buffer@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/is-array-buffer/-/is-array-buffer-3.310.0.tgz#f87a79f1b858c88744f07e8d8d0a791df204017e" + integrity sha512-urnbcCR+h9NWUnmOtet/s4ghvzsidFmspfhYaHAmSRdy9yDjdjBJMFjjsn85A1ODUktztm+cVncXjQ38WCMjMQ== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/lib-storage@^3.267.0": + version "3.348.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/lib-storage/-/lib-storage-3.348.0.tgz#68c1ed11101b12e238202cfe22142c67a5deacf0" + integrity sha512-4kGsMNRmblf8f4faZ34APRyJM32Kkj0wuEua8mEbvA4YjJmYPDsBOWvthIJ4wpDRLRizNKWv1oMk2mEg2r2oeg== + dependencies: + "@aws-sdk/middleware-endpoint" "3.347.0" + "@aws-sdk/smithy-client" "3.347.0" + buffer "5.6.0" + events "3.3.0" + stream-browserify "3.0.0" + tslib "^2.5.0" + +"@aws-sdk/md5-js@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/md5-js/-/md5-js-3.347.0.tgz#99ccc273d755b042992de6e5b2ccb72a4df6d853" + integrity sha512-mChE+7DByTY9H4cQ6fnWp2x5jf8e6OZN+AdLp6WQ+W99z35zBeqBxVmgm8ziJwkMIrkSTv9j3Y7T9Ve3RIcSfg== + dependencies: + "@aws-sdk/types" "3.347.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-bucket-endpoint@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.347.0.tgz#157f3ba100c5216c6b52b173a0dcc52f6fdfbdd7" + integrity sha512-i9n4ylkGmGvizVcTfN4L+oN10OCL2DKvyMa4cCAVE1TJrsnaE0g7IOOyJGUS8p5KJYQrKVR7kcsa2L1S0VeEcA== + dependencies: + "@aws-sdk/protocol-http" "3.347.0" + "@aws-sdk/types" "3.347.0" + "@aws-sdk/util-arn-parser" "3.310.0" + "@aws-sdk/util-config-provider" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-content-length@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.347.0.tgz#ee6063ebb0215355b7a7dacd0a3bbe2e1a8d108f" + integrity sha512-i4qtWTDImMaDUtwKQPbaZpXsReiwiBomM1cWymCU4bhz81HL01oIxOxOBuiM+3NlDoCSPr3KI6txZSz/8cqXCQ== + dependencies: + "@aws-sdk/protocol-http" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-endpoint@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.347.0.tgz#d577265e79cdc0241d863e2582820010ea942736" + integrity sha512-unF0c6dMaUL1ffU+37Ugty43DgMnzPWXr/Jup/8GbK5fzzWT5NQq6dj9KHPubMbWeEjQbmczvhv25JuJdK8gNQ== + dependencies: + "@aws-sdk/middleware-serde" "3.347.0" + "@aws-sdk/types" "3.347.0" + "@aws-sdk/url-parser" "3.347.0" + "@aws-sdk/util-middleware" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-expect-continue@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.347.0.tgz#a3d32bbc128098ec225d67b9fdd1e913553c5881" + integrity sha512-95M1unD1ENL0tx35dfyenSfx0QuXBSKtOi/qJja6LfX5771C5fm5ZTOrsrzPFJvRg/wj8pCOVWRZk+d5+jvfOQ== + dependencies: + "@aws-sdk/protocol-http" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-flexible-checksums@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.347.0.tgz#183b62548dc9e3e229b49f10e0bf6d9115ca8cff" + integrity sha512-Pda7VMAIyeHw9nMp29rxdFft3EF4KP/tz/vLB6bqVoBNbLujo5rxn3SGOgStgIz7fuMLQQfoWIsmvxUm+Fp+Dw== + dependencies: + "@aws-crypto/crc32" "3.0.0" + "@aws-crypto/crc32c" "3.0.0" + "@aws-sdk/is-array-buffer" "3.310.0" + "@aws-sdk/protocol-http" "3.347.0" + "@aws-sdk/types" "3.347.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-host-header@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.347.0.tgz#6166c137044672b2229e6ee0ce8a3e59fd8c49c4" + integrity sha512-kpKmR9OvMlnReqp5sKcJkozbj1wmlblbVSbnQAIkzeQj2xD5dnVR3Nn2ogQKxSmU1Fv7dEroBtrruJ1o3fY38A== + dependencies: + "@aws-sdk/protocol-http" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-location-constraint@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.347.0.tgz#a7d179b5808665528eca1df3c8bb78d3d498435e" + integrity sha512-x5fcEV7q8fQ0OmUO+cLhN5iPqGoLWtC3+aKHIfRRb2BpOO1khyc1FKzsIAdeQz2hfktq4j+WsrmcPvFKv51pSg== + dependencies: + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-logger@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.347.0.tgz#d75a6bbda38c85200219f4ef88e7696d72f94100" + integrity sha512-NYC+Id5UCkVn+3P1t/YtmHt75uED06vwaKyxDy0UmB2K66PZLVtwWbLpVWrhbroaw1bvUHYcRyQ9NIfnVcXQjA== + dependencies: + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-recursion-detection@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.347.0.tgz#00faf00d9346cb88dafdfddfd33e956ba563bf99" + integrity sha512-qfnSvkFKCAMjMHR31NdsT0gv5Sq/ZHTUD4yQsSLpbVQ6iYAS834lrzXt41iyEHt57Y514uG7F/Xfvude3u4icQ== + dependencies: + "@aws-sdk/protocol-http" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-retry@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.347.0.tgz#d589f04ed5fc383a0f04deda50dc190fe01a4649" + integrity sha512-CpdM+8dCSbX96agy4FCzOfzDmhNnGBM/pxrgIVLm5nkYTLuXp/d7ubpFEUHULr+4hCd5wakHotMt7yO29NFaVw== + dependencies: + "@aws-sdk/protocol-http" "3.347.0" + "@aws-sdk/service-error-classification" "3.347.0" + "@aws-sdk/types" "3.347.0" + "@aws-sdk/util-middleware" "3.347.0" + "@aws-sdk/util-retry" "3.347.0" + tslib "^2.5.0" + uuid "^8.3.2" + +"@aws-sdk/middleware-sdk-s3@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.347.0.tgz#811fa5bb46c0e93a0218628384253d044be67df8" + integrity sha512-TLr92+HMvamrhJJ0VDhA/PiUh4rTNQz38B9dB9ikohTaRgm+duP+mRiIv16tNPZPGl8v82Thn7Ogk2qPByNDtg== + dependencies: + "@aws-sdk/protocol-http" "3.347.0" + "@aws-sdk/types" "3.347.0" + "@aws-sdk/util-arn-parser" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-sdk-sts@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.347.0.tgz#903d8263e90af6560d19337de06cd6a2d0564e2f" + integrity sha512-38LJ0bkIoVF3W97x6Jyyou72YV9Cfbml4OaDEdnrCOo0EssNZM5d7RhjMvQDwww7/3OBY/BzeOcZKfJlkYUXGw== + dependencies: + "@aws-sdk/middleware-signing" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-serde@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.347.0.tgz#f20a63290e16d631a8aa7d9eb331b139bf2531ac" + integrity sha512-x5Foi7jRbVJXDu9bHfyCbhYDH5pKK+31MmsSJ3k8rY8keXLBxm2XEEg/AIoV9/TUF9EeVvZ7F1/RmMpJnWQsEg== + dependencies: + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-signing@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.347.0.tgz#7db835d84c482ddb93156efac5830d0938352b6d" + integrity sha512-zVBF/4MGKnvhAE/J+oAL/VAehiyv+trs2dqSQXwHou9j8eA8Vm8HS2NdOwpkZQchIxTuwFlqSusDuPEdYFbvGw== + dependencies: + "@aws-sdk/property-provider" "3.347.0" + "@aws-sdk/protocol-http" "3.347.0" + "@aws-sdk/signature-v4" "3.347.0" + "@aws-sdk/types" "3.347.0" + "@aws-sdk/util-middleware" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-ssec@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.347.0.tgz#f65abdbd7eaa85e6186a29eb97cd3f0cc1ac7a41" + integrity sha512-467VEi2elPmUGcHAgTmzhguZ3lwTpwK+3s+pk312uZtVsS9rP1MAknYhpS3ZvssiqBUVPx8m29cLcC6Tx5nOJg== + dependencies: + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-stack@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.347.0.tgz#de8f94349273e1b30e19b6e8ace95a7982a24579" + integrity sha512-Izidg4rqtYMcKuvn2UzgEpPLSmyd8ub9+LQ2oIzG3mpIzCBITq7wp40jN1iNkMg+X6KEnX9vdMJIYZsPYMCYuQ== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/middleware-user-agent@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.347.0.tgz#31ba4cc679eb53673b7f3fe3e6db435ff1449b6a" + integrity sha512-wJbGN3OE1/daVCrwk49whhIr9E0j1N4gWwN/wi4WuyYIA+5lMUfVp0aGIOvZR+878DxuFz2hQ4XcZVT4K2WvQw== + dependencies: + "@aws-sdk/protocol-http" "3.347.0" + "@aws-sdk/types" "3.347.0" + "@aws-sdk/util-endpoints" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/node-config-provider@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.347.0.tgz#0f155b28fb2053973666b241c68bbebccb770ad1" + integrity sha512-faU93d3+5uTTUcotGgMXF+sJVFjrKh+ufW+CzYKT4yUHammyaIab/IbTPWy2hIolcEGtuPeVoxXw8TXbkh/tuw== + dependencies: + "@aws-sdk/property-provider" "3.347.0" + "@aws-sdk/shared-ini-file-loader" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/node-http-handler@3.348.0": + version "3.348.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.348.0.tgz#007da86ff31fed7a7d50d90bdb57cd1c0fa8588a" + integrity sha512-wxdgc4tO5F6lN4wHr0CZ4TyIjDW/ORp4SJZdWYNs2L5J7+/SwqgJY2lxRlGi0i7Md+apAdE3sT3ukVQ/9pVfPg== + dependencies: + "@aws-sdk/abort-controller" "3.347.0" + "@aws-sdk/protocol-http" "3.347.0" + "@aws-sdk/querystring-builder" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/property-provider@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.347.0.tgz#3bd346a6f52fcb5a53460504dfe65457f293e3d7" + integrity sha512-t3nJ8CYPLKAF2v9nIHOHOlF0CviQbTvbFc2L4a+A+EVd/rM4PzL3+3n8ZJsr0h7f6uD04+b5YRFgKgnaqLXlEg== + dependencies: + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/protocol-http@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.347.0.tgz#9f61f4e0d892dc0a1e02211963827f386bc447b9" + integrity sha512-2YdBhc02Wvy03YjhGwUxF0UQgrPWEy8Iq75pfS42N+/0B/+eWX1aQgfjFxIpLg7YSjT5eKtYOQGlYd4MFTgj9g== + dependencies: + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/querystring-builder@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.347.0.tgz#9a6bb16441f32fa05c25dc7e57d4692858824574" + integrity sha512-phtKTe6FXoV02MoPkIVV6owXI8Mwr5IBN3bPoxhcPvJG2AjEmnetSIrhb8kwc4oNhlwfZwH6Jo5ARW/VEWbZtg== + dependencies: + "@aws-sdk/types" "3.347.0" + "@aws-sdk/util-uri-escape" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/querystring-parser@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.347.0.tgz#c85213a835c0f02580e013d168d1ee2f6fee65a1" + integrity sha512-5VXOhfZz78T2W7SuXf2avfjKglx1VZgZgp9Zfhrt/Rq+MTu2D+PZc5zmJHhYigD7x83jLSLogpuInQpFMA9LgA== + dependencies: + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/service-error-classification@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.347.0.tgz#c5a242d953eae0ff0290c776d93b3f5ebd85d2e2" + integrity sha512-xZ3MqSY81Oy2gh5g0fCtooAbahqh9VhsF8vcKjVX8+XPbGC8y+kej82+MsMg4gYL8gRFB9u4hgYbNgIS6JTAvg== + +"@aws-sdk/shared-ini-file-loader@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.347.0.tgz#f44baf03f632f1a2f4188368ff0770852c0ac035" + integrity sha512-Xw+zAZQVLb+xMNHChXQ29tzzLqm3AEHsD8JJnlkeFjeMnWQtXdUfOARl5s8NzAppcKQNlVe2gPzjaKjoy2jz1Q== + dependencies: + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/signature-v4-multi-region@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.347.0.tgz#1eaf2de0a12b3f3f6fd4ab1d43dd76616079ea2b" + integrity sha512-838h7pbRCVYWlTl8W+r5+Z5ld7uoBObgAn7/RB1MQ4JjlkfLdN7emiITG6ueVL+7gWZNZc/4dXR/FJSzCgrkxQ== + dependencies: + "@aws-sdk/protocol-http" "3.347.0" + "@aws-sdk/signature-v4" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/signature-v4@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.347.0.tgz#0f5eb4ec260eb0fe2fe5e3ee6cb011076f3582fa" + integrity sha512-58Uq1do+VsTHYkP11dTK+DF53fguoNNJL9rHRWhzP+OcYv3/mBMLoS2WPz/x9FO5mBg4ESFsug0I6mXbd36tjw== + dependencies: + "@aws-sdk/eventstream-codec" "3.347.0" + "@aws-sdk/is-array-buffer" "3.310.0" + "@aws-sdk/types" "3.347.0" + "@aws-sdk/util-hex-encoding" "3.310.0" + "@aws-sdk/util-middleware" "3.347.0" + "@aws-sdk/util-uri-escape" "3.310.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/smithy-client@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.347.0.tgz#ec11b292917f6269eecc124dae723ac6e1203f8f" + integrity sha512-PaGTDsJLGK0sTjA6YdYQzILRlPRN3uVFyqeBUkfltXssvUzkm8z2t1lz2H4VyJLAhwnG5ZuZTNEV/2mcWrU7JQ== + dependencies: + "@aws-sdk/middleware-stack" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/token-providers@3.348.0": + version "3.348.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.348.0.tgz#6f59e6ed2c10c0beea7977577162f22dcc33acf5" + integrity sha512-nTjoJkUsJUrJTZuqaeMD9PW2//Rdg2HgfDjiyC4jmAXtayWYCi11mqauurMaUHJ3p5qJ8f5xzxm6vBTbrftPag== + dependencies: + "@aws-sdk/client-sso-oidc" "3.348.0" + "@aws-sdk/property-provider" "3.347.0" + "@aws-sdk/shared-ini-file-loader" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/types@3.347.0", "@aws-sdk/types@^3.1.0", "@aws-sdk/types@^3.222.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.347.0.tgz#4affe91de36ef227f6375d64a6efda8d4ececd5d" + integrity sha512-GkCMy79mdjU9OTIe5KT58fI/6uqdf8UmMdWqVHmFJ+UpEzOci7L/uw4sOXWo7xpPzLs6cJ7s5ouGZW4GRPmHFA== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/url-parser@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.347.0.tgz#b3c31fc9ffb1ac5586ab088f9b109386e6b4c7a8" + integrity sha512-lhrnVjxdV7hl+yCnJfDZOaVLSqKjxN20MIOiijRiqaWGLGEAiSqBreMhL89X1WKCifxAs4zZf9YB9SbdziRpAA== + dependencies: + "@aws-sdk/querystring-parser" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/util-arn-parser@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.310.0.tgz#861ff8810851be52a320ec9e4786f15b5fc74fba" + integrity sha512-jL8509owp/xB9+Or0pvn3Fe+b94qfklc2yPowZZIFAkFcCSIdkIglz18cPDWnYAcy9JGewpMS1COXKIUhZkJsA== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-base64@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64/-/util-base64-3.310.0.tgz#d0fd49aff358c5a6e771d0001c63b1f97acbe34c" + integrity sha512-v3+HBKQvqgdzcbL+pFswlx5HQsd9L6ZTlyPVL2LS9nNXnCcR3XgGz9jRskikRUuUvUXtkSG1J88GAOnJ/apTPg== + dependencies: + "@aws-sdk/util-buffer-from" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/util-body-length-browser@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.310.0.tgz#3fca9d2f73c058edf1907e4a1d99a392fdd23eca" + integrity sha512-sxsC3lPBGfpHtNTUoGXMQXLwjmR0zVpx0rSvzTPAuoVILVsp5AU/w5FphNPxD5OVIjNbZv9KsKTuvNTiZjDp9g== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-body-length-node@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-node/-/util-body-length-node-3.310.0.tgz#4846ae72834ab0636f29f89fc1878520f6543fed" + integrity sha512-2tqGXdyKhyA6w4zz7UPoS8Ip+7sayOg9BwHNidiGm2ikbDxm1YrCfYXvCBdwaJxa4hJfRVz+aL9e+d3GqPI9pQ== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-buffer-from@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-buffer-from/-/util-buffer-from-3.310.0.tgz#7a72cb965984d3c6a7e256ae6cf1621f52e54a57" + integrity sha512-i6LVeXFtGih5Zs8enLrt+ExXY92QV25jtEnTKHsmlFqFAuL3VBeod6boeMXkN2p9lbSVVQ1sAOOYZOHYbYkntw== + dependencies: + "@aws-sdk/is-array-buffer" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/util-config-provider@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-config-provider/-/util-config-provider-3.310.0.tgz#ff21f73d4774cfd7bd16ae56f905828600dda95f" + integrity sha512-xIBaYo8dwiojCw8vnUcIL4Z5tyfb1v3yjqyJKJWV/dqKUFOOS0U591plmXbM+M/QkXyML3ypon1f8+BoaDExrg== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-defaults-mode-browser@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.347.0.tgz#8a32c0a91d074862682aadacd00d2d1e14b186ff" + integrity sha512-+JHFA4reWnW/nMWwrLKqL2Lm/biw/Dzi/Ix54DAkRZ08C462jMKVnUlzAI+TfxQE3YLm99EIa0G7jiEA+p81Qw== + dependencies: + "@aws-sdk/property-provider" "3.347.0" + "@aws-sdk/types" "3.347.0" + bowser "^2.11.0" + tslib "^2.5.0" + +"@aws-sdk/util-defaults-mode-node@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.347.0.tgz#fbf0f58e79e65d449af225fa2334cbfae5207529" + integrity sha512-A8BzIVhAAZE5WEukoAN2kYebzTc99ZgncbwOmgCCbvdaYlk5tzguR/s+uoT4G0JgQGol/4hAMuJEl7elNgU6RQ== + dependencies: + "@aws-sdk/config-resolver" "3.347.0" + "@aws-sdk/credential-provider-imds" "3.347.0" + "@aws-sdk/node-config-provider" "3.347.0" + "@aws-sdk/property-provider" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/util-endpoints@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.347.0.tgz#19e48f7a8d65c4e2bdbff9cf2a605e52f69d5af9" + integrity sha512-/WUkirizeNAqwVj0zkcrqdQ9pUm1HY5kU+qy7xTR0OebkuJauglkmSTMD+56L1JPunWqHhlwCMVRaz5eaJdSEQ== + dependencies: + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/util-hex-encoding@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.310.0.tgz#19294c78986c90ae33f04491487863dc1d33bd87" + integrity sha512-sVN7mcCCDSJ67pI1ZMtk84SKGqyix6/0A1Ab163YKn+lFBQRMKexleZzpYzNGxYzmQS6VanP/cfU7NiLQOaSfA== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-locate-window@^3.0.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.310.0.tgz#b071baf050301adee89051032bd4139bba32cc40" + integrity sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-middleware@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.347.0.tgz#464b2e416486776fa39c926e7f04c2a0d822e8b5" + integrity sha512-8owqUA3ePufeYTUvlzdJ7Z0miLorTwx+rNol5lourGQZ9JXsVMo23+yGA7nOlFuXSGkoKpMOtn6S0BT2bcfeiw== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-retry@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-retry/-/util-retry-3.347.0.tgz#9a24ebcd6c34888eee0ffb81c1529ea51a5cdecc" + integrity sha512-NxnQA0/FHFxriQAeEgBonA43Q9/VPFQa8cfJDuT2A1YZruMasgjcltoZszi1dvoIRWSZsFTW42eY2gdOd0nffQ== + dependencies: + "@aws-sdk/service-error-classification" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/util-stream-browser@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-stream-browser/-/util-stream-browser-3.347.0.tgz#490091ad47e4871bc52a4207d24216a5bccb9fd6" + integrity sha512-pIbmzIJfyX26qG622uIESOmJSMGuBkhmNU7I98bzhYCet5ctC0ow9L5FZw9ljOE46P/HkEcsOhh+qTHyCXlCEQ== + dependencies: + "@aws-sdk/fetch-http-handler" "3.347.0" + "@aws-sdk/types" "3.347.0" + "@aws-sdk/util-base64" "3.310.0" + "@aws-sdk/util-hex-encoding" "3.310.0" + "@aws-sdk/util-utf8" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/util-stream-node@3.348.0": + version "3.348.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-stream-node/-/util-stream-node-3.348.0.tgz#6f79e74b742a1382b635515e099ed929f3e9e168" + integrity sha512-MFXyMUWA2oD0smBZf+sdnuyxLw8nCqyMEgYbos+6grvF1Szxn5+zbYTZrEBYiICqD1xJRLbWTzFLJU7oYm6pUg== + dependencies: + "@aws-sdk/node-http-handler" "3.348.0" + "@aws-sdk/types" "3.347.0" + "@aws-sdk/util-buffer-from" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/util-uri-escape@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-uri-escape/-/util-uri-escape-3.310.0.tgz#9f942f09a715d8278875013a416295746b6085ba" + integrity sha512-drzt+aB2qo2LgtDoiy/3sVG8w63cgLkqFIa2NFlGpUgHFWTXkqtbgf4L5QdjRGKWhmZsnqkbtL7vkSWEcYDJ4Q== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-user-agent-browser@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.347.0.tgz#90bedd2031561b9d45aef54991eeca49ec8d950b" + integrity sha512-ydxtsKVtQefgbk1Dku1q7pMkjDYThauG9/8mQkZUAVik55OUZw71Zzr3XO8J8RKvQG8lmhPXuAQ0FKAyycc0RA== + dependencies: + "@aws-sdk/types" "3.347.0" + bowser "^2.11.0" + tslib "^2.5.0" + +"@aws-sdk/util-user-agent-node@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.347.0.tgz#a959abaeac35c434890f77dc78cc8bf0c910d85f" + integrity sha512-6X0b9qGsbD1s80PmbaB6v1/ZtLfSx6fjRX8caM7NN0y/ObuLoX8LhYnW6WlB2f1+xb4EjaCNgpP/zCf98MXosw== + dependencies: + "@aws-sdk/node-config-provider" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/util-utf8-browser@^3.0.0": + version "3.259.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz#3275a6f5eb334f96ca76635b961d3c50259fd9ff" + integrity sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-utf8@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8/-/util-utf8-3.310.0.tgz#4a7b9dcebb88e830d3811aeb21e9a6df4273afb4" + integrity sha512-DnLfFT8uCO22uOJc0pt0DsSNau1GTisngBCDw8jQuWT5CqogMJu4b/uXmwEqfj8B3GX6Xsz8zOd6JpRlPftQoA== + dependencies: + "@aws-sdk/util-buffer-from" "3.310.0" + tslib "^2.5.0" + +"@aws-sdk/util-waiter@3.347.0": + version "3.347.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-waiter/-/util-waiter-3.347.0.tgz#c1edc4467198ce2dfce1e17e917e1cb7e2e41bbe" + integrity sha512-3ze/0PkwkzUzLncukx93tZgGL0JX9NaP8DxTi6WzflnL/TEul5Z63PCruRNK0om17iZYAWKrf8q2mFoHYb4grA== + dependencies: + "@aws-sdk/abort-controller" "3.347.0" + "@aws-sdk/types" "3.347.0" + tslib "^2.5.0" + +"@aws-sdk/xml-builder@3.310.0": + version "3.310.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.310.0.tgz#f0236f2103b438d16117e0939a6305ad69b7ff76" + integrity sha512-TqELu4mOuSIKQCqj63fGVs86Yh+vBx5nHRpWKNUNhB2nPTpfbziTs5c1X358be3peVWA4wPxW7Nt53KIg1tnNw== + dependencies: + tslib "^2.5.0" + +"@babel/code-frame@^7.0.0": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" + integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/helper-module-imports@^7.16.7": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" + integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg== + dependencies: + "@babel/types" "^7.21.4" + +"@babel/helper-string-parser@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz#2b3eea65443c6bdc31c22d037c65f6d323b6b2bd" + integrity sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w== + +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.19.0", "@babel/runtime@^7.20.6", "@babel/runtime@^7.21.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.3.tgz#0a7fce51d43adbf0f7b517a71f4c3aaca92ebcbb" + integrity sha512-XsDuspWKLUsxwCp6r7EhsExHtYfbe5oAGQ19kqngTdCPUoPQzOPdUbD/pB9PJiwb2ptYKQDjSJT3R6dC+EPqfQ== + dependencies: + regenerator-runtime "^0.13.11" + +"@babel/types@^7.21.4": + version "7.22.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.4.tgz#56a2653ae7e7591365dabf20b76295410684c071" + integrity sha512-Tx9x3UBHTTsMSW85WB2kphxYQVvrZ/t1FxD88IpSgIjiUJlCm9z+xWIDwyo1vffTwSqteqyznB8ZE9vYYk16zA== + dependencies: + "@babel/helper-string-parser" "^7.21.5" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + +"@bcherny/json-schema-ref-parser@9.0.9": + version "9.0.9" + resolved "https://registry.yarnpkg.com/@bcherny/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz#09899d405bc708c0acac0066ae8db5b94d465ca4" + integrity sha512-vmEmnJCfpkLdas++9OYg6riIezTYqTHpqUTODJzHLzs5UnXujbOJW9VwcVCnyo1mVRt32FRr23iXBx/sX8YbeQ== + dependencies: + "@jsdevtools/ono" "^7.1.3" + "@types/json-schema" "^7.0.6" + call-me-maybe "^1.0.1" + js-yaml "^4.1.0" + +"@csstools/postcss-cascade-layers@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz#8a997edf97d34071dd2e37ea6022447dd9e795ad" + integrity sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA== + dependencies: + "@csstools/selector-specificity" "^2.0.2" + postcss-selector-parser "^6.0.10" + +"@csstools/postcss-color-function@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz#2bd36ab34f82d0497cfacdc9b18d34b5e6f64b6b" + integrity sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-font-format-keywords@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz#677b34e9e88ae997a67283311657973150e8b16a" + integrity sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-hwb-function@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz#ab54a9fce0ac102c754854769962f2422ae8aa8b" + integrity sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-ic-unit@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz#28237d812a124d1a16a5acc5c3832b040b303e58" + integrity sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-is-pseudo-class@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz#846ae6c0d5a1eaa878fce352c544f9c295509cd1" + integrity sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA== + dependencies: + "@csstools/selector-specificity" "^2.0.0" + postcss-selector-parser "^6.0.10" + +"@csstools/postcss-nested-calc@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz#d7e9d1d0d3d15cf5ac891b16028af2a1044d0c26" + integrity sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-normalize-display-values@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz#15da54a36e867b3ac5163ee12c1d7f82d4d612c3" + integrity sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-oklab-function@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz#88cee0fbc8d6df27079ebd2fa016ee261eecf844" + integrity sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-progressive-custom-properties@^1.1.0", "@csstools/postcss-progressive-custom-properties@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz#542292558384361776b45c85226b9a3a34f276fa" + integrity sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-stepped-value-functions@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz#f8772c3681cc2befed695e2b0b1d68e22f08c4f4" + integrity sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-text-decoration-shorthand@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz#ea96cfbc87d921eca914d3ad29340d9bcc4c953f" + integrity sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-trigonometric-functions@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz#94d3e4774c36d35dcdc88ce091336cb770d32756" + integrity sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-unset-value@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz#c99bb70e2cdc7312948d1eb41df2412330b81f77" + integrity sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g== + +"@csstools/selector-specificity@^2.0.0", "@csstools/selector-specificity@^2.0.2": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz#2cbcf822bf3764c9658c4d2e568bd0c0cb748016" + integrity sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw== + +"@date-io/core@^2.16.0": + version "2.16.0" + resolved "https://registry.yarnpkg.com/@date-io/core/-/core-2.16.0.tgz#7871bfc1d9bca9aa35ad444a239505589d0f22f6" + integrity sha512-DYmSzkr+jToahwWrsiRA2/pzMEtz9Bq1euJwoOuYwuwIYXnZFtHajY2E6a1VNVDc9jP8YUXK1BvnZH9mmT19Zg== + +"@date-io/date-fns@^2.16.0": + version "2.16.0" + resolved "https://registry.yarnpkg.com/@date-io/date-fns/-/date-fns-2.16.0.tgz#bd5e09b6ecb47ee55e593fc3a87e7b2caaa3da40" + integrity sha512-bfm5FJjucqlrnQcXDVU5RD+nlGmL3iWgkHTq3uAZWVIuBu6dDmGa3m8a6zo2VQQpu8ambq9H22UyUpn7590joA== + dependencies: + "@date-io/core" "^2.16.0" + +"@discoveryjs/json-ext@0.5.7", "@discoveryjs/json-ext@^0.5.0": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== + +"@dnd-kit/accessibility@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@dnd-kit/accessibility/-/accessibility-3.0.1.tgz#3ccbefdfca595b0a23a5dc57d3de96bc6935641c" + integrity sha512-HXRrwS9YUYQO9lFRc/49uO/VICbM+O+ZRpFDe9Pd1rwVv2PCNkRiTZRdxrDgng/UkvdC3Re9r2vwPpXXrWeFzg== + dependencies: + tslib "^2.0.0" + +"@dnd-kit/core@^6.0.7": + version "6.0.8" + resolved "https://registry.yarnpkg.com/@dnd-kit/core/-/core-6.0.8.tgz#040ae13fea9787ee078e5f0361f3b49b07f3f005" + integrity sha512-lYaoP8yHTQSLlZe6Rr9qogouGUz9oRUj4AHhDQGQzq/hqaJRpFo65X+JKsdHf8oUFBzx5A+SJPUvxAwTF2OabA== + dependencies: + "@dnd-kit/accessibility" "^3.0.0" + "@dnd-kit/utilities" "^3.2.1" + tslib "^2.0.0" + +"@dnd-kit/sortable@^7.0.2": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@dnd-kit/sortable/-/sortable-7.0.2.tgz#791d550872457f3f3c843e00d159b640f982011c" + integrity sha512-wDkBHHf9iCi1veM834Gbk1429bd4lHX4RpAwT0y2cHLf246GAvU2sVw/oxWNpPKQNQRQaeGXhAVgrOl1IT+iyA== + dependencies: + "@dnd-kit/utilities" "^3.2.0" + tslib "^2.0.0" + +"@dnd-kit/utilities@^3.2.0", "@dnd-kit/utilities@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@dnd-kit/utilities/-/utilities-3.2.1.tgz#53f9e2016fd2506ec49e404c289392cfff30332a" + integrity sha512-OOXqISfvBw/1REtkSK2N3Fi2EQiLMlWUlqnOK/UpOISqBZPWpE6TqL+jcPtMOkE8TqYGiURvRdPSI9hltNUjEA== + dependencies: + tslib "^2.0.0" + +"@emotion/babel-plugin@^11.11.0": + version "11.11.0" + resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz#c2d872b6a7767a9d176d007f5b31f7d504bb5d6c" + integrity sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/runtime" "^7.18.3" + "@emotion/hash" "^0.9.1" + "@emotion/memoize" "^0.8.1" + "@emotion/serialize" "^1.1.2" + babel-plugin-macros "^3.1.0" + convert-source-map "^1.5.0" + escape-string-regexp "^4.0.0" + find-root "^1.1.0" + source-map "^0.5.7" + stylis "4.2.0" + +"@emotion/cache@^11.11.0", "@emotion/cache@^11.4.0": + version "11.11.0" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.11.0.tgz#809b33ee6b1cb1a625fef7a45bc568ccd9b8f3ff" + integrity sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ== + dependencies: + "@emotion/memoize" "^0.8.1" + "@emotion/sheet" "^1.2.2" + "@emotion/utils" "^1.2.1" + "@emotion/weak-memoize" "^0.3.1" + stylis "4.2.0" + +"@emotion/css@^11.10.5": + version "11.11.0" + resolved "https://registry.yarnpkg.com/@emotion/css/-/css-11.11.0.tgz#dad6a27a77d5e5cbb0287674c3ace76d762563ca" + integrity sha512-m4g6nKzZyiKyJ3WOfdwrBdcujVcpaScIWHAnyNKPm/A/xJKwfXPfQAbEVi1kgexWTDakmg+r2aDj0KvnMTo4oQ== + dependencies: + "@emotion/babel-plugin" "^11.11.0" + "@emotion/cache" "^11.11.0" + "@emotion/serialize" "^1.1.2" + "@emotion/sheet" "^1.2.2" + "@emotion/utils" "^1.2.1" + +"@emotion/hash@^0.9.1": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.1.tgz#4ffb0055f7ef676ebc3a5a91fb621393294e2f43" + integrity sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ== + +"@emotion/memoize@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" + integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== + +"@emotion/react@^11.8.1": + version "11.11.1" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.11.1.tgz#b2c36afac95b184f73b08da8c214fdf861fa4157" + integrity sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA== + dependencies: + "@babel/runtime" "^7.18.3" + "@emotion/babel-plugin" "^11.11.0" + "@emotion/cache" "^11.11.0" + "@emotion/serialize" "^1.1.2" + "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1" + "@emotion/utils" "^1.2.1" + "@emotion/weak-memoize" "^0.3.1" + hoist-non-react-statics "^3.3.1" + +"@emotion/serialize@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.2.tgz#017a6e4c9b8a803bd576ff3d52a0ea6fa5a62b51" + integrity sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA== + dependencies: + "@emotion/hash" "^0.9.1" + "@emotion/memoize" "^0.8.1" + "@emotion/unitless" "^0.8.1" + "@emotion/utils" "^1.2.1" + csstype "^3.0.2" + +"@emotion/sheet@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.2.tgz#d58e788ee27267a14342303e1abb3d508b6d0fec" + integrity sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA== + +"@emotion/unitless@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3" + integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== + +"@emotion/use-insertion-effect-with-fallbacks@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz#08de79f54eb3406f9daaf77c76e35313da963963" + integrity sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw== + +"@emotion/utils@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.2.1.tgz#bbab58465738d31ae4cb3dbb6fc00a5991f755e4" + integrity sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg== + +"@emotion/weak-memoize@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6" + integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww== + +"@eslint-community/eslint-utils@^4.2.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.4.0": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" + integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== + +"@eslint/eslintrc@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" + integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.5.2" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.42.0": + version "8.42.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.42.0.tgz#484a1d638de2911e6f5a30c12f49c7e4a3270fb6" + integrity sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw== + +"@faceless-ui/modal@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@faceless-ui/modal/-/modal-2.0.1.tgz#8a47299442eff450c09432cfaef35c5471becad6" + integrity sha512-z1PaaLxwuX+1In4vhUxODZndGKdCY+WIqzvtnas3CaYGGCVJBSJ4jfv9UEEGZzcahmSy+71bEL89cUT6d36j1Q== + dependencies: + body-scroll-lock "^3.1.5" + focus-trap "^6.9.2" + qs "^6.9.1" + react-transition-group "^4.4.2" + +"@faceless-ui/scroll-info@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@faceless-ui/scroll-info/-/scroll-info-1.3.0.tgz#4d9f76afa4c004018697424f77f8bc362ccaae08" + integrity sha512-X+doJMzQqyVGpwV/YgXUAalNWepP2W8ThgZspKZLFG43zTYLVTU17BYCjjY+ggKuA3b0W3JyXZ2M8f247AdmHw== + +"@faceless-ui/window-info@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@faceless-ui/window-info/-/window-info-2.1.1.tgz#ed1474a60ab794295bca4c29e295b1e11a584d22" + integrity sha512-gMAgda7beR4CNpBIXjgRVn97ek0LG3PAj9lxmoYdg574IEzLFZAh3eAYtTaS2XLKgb4+IHhsuBzlGmHbeOo2Aw== + +"@floating-ui/core@^1.2.6": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.2.6.tgz#d21ace437cc919cdd8f1640302fa8851e65e75c0" + integrity sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg== + +"@floating-ui/dom@^1.0.1": + version "1.2.9" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.2.9.tgz#b9ed1c15d30963419a6736f1b7feb350dd49c603" + integrity sha512-sosQxsqgxMNkV3C+3UqTS6LxP7isRLwX8WMepp843Rb3/b0Wz8+MdUkxJksByip3C2WwLugLHN1b4ibn//zKwQ== + dependencies: + "@floating-ui/core" "^1.2.6" + +"@hapi/hoek@^9.0.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" + integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== + +"@hapi/topo@^5.0.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@humanwhocodes/config-array@^0.11.10": + version "0.11.10" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" + integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + +"@jest/schemas@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" + integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg== + dependencies: + "@sinclair/typebox" "^0.25.16" + +"@jest/types@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593" + integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog== + dependencies: + "@jest/schemas" "^29.4.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.3.0": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/source-map@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.3.tgz#8108265659d4c33e72ffe14e33d6cc5eb59f2fda" + integrity sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/sourcemap-codec@1.4.14": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.18" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" + integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + +"@jsdevtools/ono@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" + integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== + +"@juggle/resize-observer@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz#08d6c5e20cf7e4cc02fd181c4b0c225cd31dbb60" + integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== + +"@monaco-editor/loader@^1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@monaco-editor/loader/-/loader-1.3.3.tgz#7f1742bd3cc21c0362a46a4056317f6e5215cfca" + integrity sha512-6KKF4CTzcJiS8BJwtxtfyYt9shBiEv32ateQ9T4UVogwn4HM/uPo9iJd2Dmbkpz8CM6Y0PDUpjnZzCwC+eYo2Q== + dependencies: + state-local "^1.0.6" + +"@monaco-editor/react@^4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@monaco-editor/react/-/react-4.5.1.tgz#fbc76c692aee9a33b9ab24ae0c5f219b8f002fdb" + integrity sha512-NNDFdP+2HojtNhCkRfE6/D6ro6pBNihaOzMbGK84lNWzRu+CfBjwzGt4jmnqimLuqp5yE5viHS2vi+QOAnD5FQ== + dependencies: + "@monaco-editor/loader" "^1.3.3" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@payloadcms/eslint-config@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@payloadcms/eslint-config/-/eslint-config-0.0.1.tgz#4324702ddef6c773b3f3033795a13e6b50c95a92" + integrity sha512-Il59+0C4E/bI6uM2hont3I+oABWkJZbfbItubje5SGMrXkymUq8jT/UZRk0eCt918bB7gihxDXx8guFnR/aNIw== + +"@payloadcms/plugin-cloud@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@payloadcms/plugin-cloud/-/plugin-cloud-2.0.0.tgz#36a468e2effb1ff722078d7a7cd5f7cdad585941" + integrity sha512-fSBi9M3ZodoFX7K7MARSy9bS4rfXqqlRith0t/5IJ23exiXVKUBxgBSjEosJIFiu9gMwWsOK25RKKC8fQrbKmQ== + dependencies: + "@aws-sdk/client-cognito-identity" "^3.289.0" + "@aws-sdk/client-s3" "^3.142.0" + "@aws-sdk/credential-providers" "^3.289.0" + "@aws-sdk/lib-storage" "^3.267.0" + amazon-cognito-identity-js "^6.1.2" + resend "^0.12.0" + +"@payloadcms/plugin-nested-docs@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@payloadcms/plugin-nested-docs/-/plugin-nested-docs-1.0.4.tgz#8a9933bbf0813839804be4fa20f9ddf401ed9bec" + integrity sha512-vjhk3fE/uRkUSNg0UuAv/NIEvDDMRcbEHSgxOo/MbmXOT2LFsh3fPq+Gq4+cL1H9s+FStiIkygigv7J5fgOZwA== + +"@payloadcms/plugin-seo@^1.0.10": + version "1.0.13" + resolved "https://registry.yarnpkg.com/@payloadcms/plugin-seo/-/plugin-seo-1.0.13.tgz#b1d2f24f5cabf14e8ab7db6815b6fb41ee718557" + integrity sha512-GPIyGTe6vU8GRFMYhNoUDrGWxm0uiqfIQQSsAuZjEM6YGFozo/AnpnjcT6VS/led/7HRFF8ijOy82l0VaLNC3w== + +"@payloadcms/plugin-stripe@^0.0.13": + version "0.0.13" + resolved "https://registry.yarnpkg.com/@payloadcms/plugin-stripe/-/plugin-stripe-0.0.13.tgz#95a28b1c9045ca6a424b4f3167859dca98541302" + integrity sha512-+clMwHmESEtV5xcO/BAyhCYYPznVkoekyFugJ4L+6/i+S9NKKCQ08+Sd/palonIgsFpeAVJ1sbOpaomXplPmhQ== + dependencies: + "@types/uuid" "^9.0.0" + lodash.get "^4.4.2" + stripe "^10.2.0" + uuid "^9.0.0" + +"@polka/url@^1.0.0-next.20": + version "1.0.0-next.21" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" + integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== + +"@popperjs/core@^2.9.2": + version "2.11.8" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" + integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== + +"@react-email/render@0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@react-email/render/-/render-0.0.6.tgz#4e47ee6df226c86d548c38f96e34844acb944160" + integrity sha512-6zs7WZbd37TcPT1OmMPH/kcBpv0QSi+k3om7LyDnbdIcrbwOO/OstVwUaa/6zgvDvnq9Y2wOosbru7j5kUrW9A== + dependencies: + html-to-text "9.0.3" + pretty "2.0.0" + react "18.2.0" + react-dom "18.2.0" + +"@selderee/plugin-htmlparser2@^0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.10.0.tgz#8a304d18df907e086f3cfc71ea0ced52d6524430" + integrity sha512-gW69MEamZ4wk1OsOq1nG1jcyhXIQcnrsX5JwixVw/9xaiav8TCyjESAruu1Rz9yyInhgBXxkNwMeygKnN2uxNA== + dependencies: + domhandler "^5.0.3" + selderee "^0.10.0" + +"@sideway/address@^4.1.3": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" + integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f" + integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + +"@sinclair/typebox@^0.25.16": + version "0.25.24" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718" + integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== + +"@smithy/protocol-http@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-1.0.1.tgz#62fd73d73db285fd8e9a2287ed2904ac66e0d43f" + integrity sha512-9OrEn0WfOVtBNYJUjUAn9AOiJ4lzERCJJ/JeZs8E6yajTGxBaFRxUnNBHiNqoDJVg076hY36UmEnPx7xXrvUSg== + dependencies: + "@smithy/types" "^1.0.0" + tslib "^2.5.0" + +"@smithy/types@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-1.0.0.tgz#87ab6131fe5e19cbd4d383ffb94d2b806d027d38" + integrity sha512-kc1m5wPBHQCTixwuaOh9vnak/iJm21DrSf9UK6yDE5S3mQQ4u11pqAUiKWnlrZnYkeLfAI9UEHj9OaMT1v5Umg== + dependencies: + tslib "^2.5.0" + +"@swc/core-darwin-arm64@1.3.62": + version "1.3.62" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.62.tgz#dafb50bf784c6b7b40dce6d8cf0605f6729812cb" + integrity sha512-MmGilibITz68LEje6vJlKzc2gUUSgzvB3wGLSjEORikTNeM7P8jXVxE4A8fgZqDeudJUm9HVWrxCV+pHDSwXhA== + +"@swc/core-darwin-x64@1.3.62": + version "1.3.62" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.62.tgz#324bd144268860338040db64c42c2345fcaaebcf" + integrity sha512-Xl93MMB3sCWVlYWuQIB+v6EQgzoiuQYK5tNt9lsHoIEVu2zLdkQjae+5FUHZb1VYqCXIiWcULFfVz0R4Sjb7JQ== + +"@swc/core-linux-arm-gnueabihf@1.3.62": + version "1.3.62" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.62.tgz#9b5ca188ea3c91827e43e4287bd20ce2a7cb7d81" + integrity sha512-nJsp6O7kCtAjTTMcIjVB0g5y1JNiYAa5q630eiwrnaHUusEFoANDdORI3Z9vXeikMkng+6yIv9/V8Rb093xLjQ== + +"@swc/core-linux-arm64-gnu@1.3.62": + version "1.3.62" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.62.tgz#b208b005223fd9c4c4a12fc0e24070c5e902965f" + integrity sha512-XGsV93vpUAopDt5y6vPwbK1Nc/MlL55L77bAZUPIiosWD1cWWPHNtNSpriE6+I+JiMHe0pqtfS/SSTk6ZkFQVw== + +"@swc/core-linux-arm64-musl@1.3.62": + version "1.3.62" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.62.tgz#bf66add093fa732d3b7f629e00b6ef9bf3c483f2" + integrity sha512-ESUmJjSlTTkoBy9dMG49opcNn8BmviqStMhwyeD1G8XRnmRVCZZgoBOKdvCXmJhw8bQXDhZumeaTUB+OFUKVXg== + +"@swc/core-linux-x64-gnu@1.3.62": + version "1.3.62" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.62.tgz#b97eee374986388b71d87c67d7edb8208356dde2" + integrity sha512-wnHJkt3ZBrax3SFnUHDcncG6mrSg9ZZjMhQV9Mc3JL1x1s1Gy9rGZCoBNnV/BUZWTemxIBcQbANRSDut/WO+9A== + +"@swc/core-linux-x64-musl@1.3.62": + version "1.3.62" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.62.tgz#548ccdef6d7535ee7fea6ec9488322411f10da1a" + integrity sha512-9oRbuTC/VshB66Rgwi3pTq3sPxSTIb8k9L1vJjES+dDMKa29DAjPtWCXG/pyZ00ufpFZgkGEuAHH5uqUcr1JQg== + +"@swc/core-win32-arm64-msvc@1.3.62": + version "1.3.62" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.62.tgz#fc0ca735b23c017fe8ff6f85aa4788ddd1ac583d" + integrity sha512-zv14vlF2VRrxS061XkfzGjCYnOrEo5glKJjLK5PwUKysIoVrx/L8nAbFxjkX5cObdlyoqo+ekelyBPAO+4bS0w== + +"@swc/core-win32-ia32-msvc@1.3.62": + version "1.3.62" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.62.tgz#f8dfbb4f0763d2db5ef420b04da3b5cb73897756" + integrity sha512-8MC/PZQSsOP2iA/81tAfNRqMWyEqTS/8zKUI67vPuLvpx6NAjRn3E9qBv7iFqH79iqZNzqSMo3awnLrKZyFbcw== + +"@swc/core-win32-x64-msvc@1.3.62": + version "1.3.62" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.62.tgz#e661ec99c5ac91f1cd63c02b5f114f73f55e7b15" + integrity sha512-GJSmUJ95HKHZXAxiuPUmrcm/S3ivQvEzXhOZaIqYBIwUsm02vFZkClsV7eIKzWjso1t0+I/8MjrnUNaSWqh1rQ== + +"@swc/core@^1.3.26": + version "1.3.62" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.62.tgz#bc93ede0981ee69fe17d753e1d693ce3afa6c16b" + integrity sha512-J58hWY+/G8vOr4J6ZH9hLg0lMSijZtqIIf4HofZezGog/pVX6sJyBJ40dZ1ploFkDIlWTWvJyqtpesBKS73gkQ== + optionalDependencies: + "@swc/core-darwin-arm64" "1.3.62" + "@swc/core-darwin-x64" "1.3.62" + "@swc/core-linux-arm-gnueabihf" "1.3.62" + "@swc/core-linux-arm64-gnu" "1.3.62" + "@swc/core-linux-arm64-musl" "1.3.62" + "@swc/core-linux-x64-gnu" "1.3.62" + "@swc/core-linux-x64-musl" "1.3.62" + "@swc/core-win32-arm64-msvc" "1.3.62" + "@swc/core-win32-ia32-msvc" "1.3.62" + "@swc/core-win32-x64-msvc" "1.3.62" + +"@swc/register@^0.1.10": + version "0.1.10" + resolved "https://registry.yarnpkg.com/@swc/register/-/register-0.1.10.tgz#74a20b7559669e03479b05e9e5c6d1524d4d92a2" + integrity sha512-6STwH/q4dc3pitXLVkV7sP0Hiy+zBsU2wOF1aXpXR95pnH3RYHKIsDC+gvesfyB7jxNT9OOZgcqOp9RPxVTx9A== + dependencies: + lodash.clonedeep "^4.5.0" + pirates "^4.0.1" + source-map-support "^0.5.13" + +"@tokenizer/token@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276" + integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@types/body-parser@*": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/eslint-scope@^3.7.3": + version "3.7.4" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" + integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "8.40.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.40.0.tgz#ae73dc9ec5237f2794c4f79efd6a4c73b13daf23" + integrity sha512-nbq2mvc/tBrK9zQQuItvjJl++GTN5j06DaPtp3hZCpngmG6Q3xoyEmd0TwZI0gAy/G1X0zhGBbr2imsGFdFV0g== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" + integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== + +"@types/express-serve-static-core@^4.17.33": + version "4.17.35" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz#c95dd4424f0d32e525d23812aa8ab8e4d3906c4f" + integrity sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express@^4.17.9": + version "4.17.17" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" + integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/glob@^7.1.3": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/html-minifier-terser@^6.0.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" + integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== + +"@types/is-hotkey@^0.1.1": + version "0.1.7" + resolved "https://registry.yarnpkg.com/@types/is-hotkey/-/is-hotkey-0.1.7.tgz#30ec6d4234895230b576728ef77e70a52962f3b3" + integrity sha512-yB5C7zcOM7idwYZZ1wKQ3pTfjA9BbvFqRWvKB46GFddxnJtHwi/b9y84ykQtxQPg5qhdpg4Q/kWU3EGoCTmLzQ== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/json-schema@*", "@types/json-schema@^7.0.11", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.12" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" + integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/lodash@^4.14.149", "@types/lodash@^4.14.182": + version "4.14.195" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.195.tgz#bafc975b252eb6cea78882ce8a7b6bf22a6de632" + integrity sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg== + +"@types/mime@*": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== + +"@types/mime@^1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" + integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== + +"@types/minimatch@*": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + +"@types/node@*", "@types/node@>=8.1.0": + version "20.2.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.2.5.tgz#26d295f3570323b2837d322180dfbf1ba156fefb" + integrity sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ== + +"@types/node@18.11.3": + version "18.11.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.3.tgz#78a6d7ec962b596fc2d2ec102c4dd3ef073fea6a" + integrity sha512-fNjDQzzOsZeKZu5NATgXUPsaFaTxeRgFXoosrHivTl8RGeV733OLawXsGfEk9a8/tySyZUyiZ6E8LcjPFZ2y1A== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/prettier@^2.6.1": + version "2.7.3" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" + integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== + +"@types/prop-types@*": + version "15.7.5" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" + integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + +"@types/qs@*": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + +"@types/react-transition-group@^4.4.0": + version "4.4.6" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.6.tgz#18187bcda5281f8e10dfc48f0943e2fdf4f75e2e" + integrity sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew== + dependencies: + "@types/react" "*" + +"@types/react@*": + version "18.2.9" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.9.tgz#9207f8571afdc59a9c9c30df50e8ad2591ecefaf" + integrity sha512-pL3JAesUkF7PEQGxh5XOwdXGV907te6m1/Qe1ERJLgomojS6Ne790QiA7GUl434JEkFA2aAaB6qJ5z4e1zJn/w== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/react@18.0.21": + version "18.0.21" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.21.tgz#b8209e9626bb00a34c76f55482697edd2b43cc67" + integrity sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/scheduler@*": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" + integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== + +"@types/semver@^7.3.12": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" + integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== + +"@types/send@*": + version "0.17.1" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.1.tgz#ed4932b8a2a805f1fe362a70f4e62d0ac994e301" + integrity sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-static@*": + version "1.15.1" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.1.tgz#86b1753f0be4f9a1bee68d459fcda5be4ea52b5d" + integrity sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ== + dependencies: + "@types/mime" "*" + "@types/node" "*" + +"@types/sharp@^0.31.1": + version "0.31.1" + resolved "https://registry.yarnpkg.com/@types/sharp/-/sharp-0.31.1.tgz#db768461455dbcf9ff11d69277fd70564483c4df" + integrity sha512-5nWwamN9ZFHXaYEincMSuza8nNfOof8nmO+mcI+Agx1uMUk4/pQnNIcix+9rLPXzKrm1pS34+6WRDbDV0Jn7ag== + dependencies: + "@types/node" "*" + +"@types/uuid@^9.0.0": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.1.tgz#98586dc36aee8dacc98cc396dbca8d0429647aa6" + integrity sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA== + +"@types/webidl-conversions@*": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz#2b8e60e33906459219aa587e9d1a612ae994cfe7" + integrity sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog== + +"@types/whatwg-url@^8.2.1": + version "8.2.2" + resolved "https://registry.yarnpkg.com/@types/whatwg-url/-/whatwg-url-8.2.2.tgz#749d5b3873e845897ada99be4448041d4cc39e63" + integrity sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA== + dependencies: + "@types/node" "*" + "@types/webidl-conversions" "*" + +"@types/yargs-parser@*": + version "21.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + +"@types/yargs@^17.0.8": + version "17.0.24" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.24.tgz#b3ef8d50ad4aa6aecf6ddc97c580a00f5aa11902" + integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@^5.51.0": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.9.tgz#2604cfaf2b306e120044f901e20c8ed926debf15" + integrity sha512-4uQIBq1ffXd2YvF7MAvehWKW3zVv/w+mSfRAu+8cKbfj3nwzyqJLNcZJpQ/WZ1HLbJDiowwmQ6NO+63nCA+fqA== + dependencies: + "@eslint-community/regexpp" "^4.4.0" + "@typescript-eslint/scope-manager" "5.59.9" + "@typescript-eslint/type-utils" "5.59.9" + "@typescript-eslint/utils" "5.59.9" + debug "^4.3.4" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + natural-compare-lite "^1.4.0" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/parser@^5.51.0": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.59.9.tgz#a85c47ccdd7e285697463da15200f9a8561dd5fa" + integrity sha512-FsPkRvBtcLQ/eVK1ivDiNYBjn3TGJdXy2fhXX+rc7czWl4ARwnpArwbihSOHI2Peg9WbtGHrbThfBUkZZGTtvQ== + dependencies: + "@typescript-eslint/scope-manager" "5.59.9" + "@typescript-eslint/types" "5.59.9" + "@typescript-eslint/typescript-estree" "5.59.9" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.59.9.tgz#eadce1f2733389cdb58c49770192c0f95470d2f4" + integrity sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ== + dependencies: + "@typescript-eslint/types" "5.59.9" + "@typescript-eslint/visitor-keys" "5.59.9" + +"@typescript-eslint/type-utils@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.59.9.tgz#53bfaae2e901e6ac637ab0536d1754dfef4dafc2" + integrity sha512-ksEsT0/mEHg9e3qZu98AlSrONAQtrSTljL3ow9CGej8eRo7pe+yaC/mvTjptp23Xo/xIf2mLZKC6KPv4Sji26Q== + dependencies: + "@typescript-eslint/typescript-estree" "5.59.9" + "@typescript-eslint/utils" "5.59.9" + debug "^4.3.4" + tsutils "^3.21.0" + +"@typescript-eslint/types@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.59.9.tgz#3b4e7ae63718ce1b966e0ae620adc4099a6dcc52" + integrity sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw== + +"@typescript-eslint/typescript-estree@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.9.tgz#6bfea844e468427b5e72034d33c9fffc9557392b" + integrity sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA== + dependencies: + "@typescript-eslint/types" "5.59.9" + "@typescript-eslint/visitor-keys" "5.59.9" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.59.9.tgz#adee890107b5ffe02cd46fdaa6c2125fb3c6c7c4" + integrity sha512-1PuMYsju/38I5Ggblaeb98TOoUvjhRvLpLa1DoTOFaLWqaXl/1iQ1eGurTXgBY58NUdtfTXKP5xBq7q9NDaLKg== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.59.9" + "@typescript-eslint/types" "5.59.9" + "@typescript-eslint/typescript-estree" "5.59.9" + eslint-scope "^5.1.1" + semver "^7.3.7" + +"@typescript-eslint/visitor-keys@5.59.9": + version "5.59.9" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz#9f86ef8e95aca30fb5a705bb7430f95fc58b146d" + integrity sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q== + dependencies: + "@typescript-eslint/types" "5.59.9" + eslint-visitor-keys "^3.3.0" + +"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" + integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== + +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== + +"@webassemblyjs/helper-buffer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" + integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== + +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== + +"@webassemblyjs/helper-wasm-section@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" + integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/wasm-edit@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" + integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-opt" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + "@webassemblyjs/wast-printer" "1.11.6" + +"@webassemblyjs/wasm-gen@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" + integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wasm-opt@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" + integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + +"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" + integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wast-printer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" + integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@xtuc/long" "4.2.2" + +"@webpack-cli/configtest@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.2.0.tgz#7b20ce1c12533912c3b217ea68262365fa29a6f5" + integrity sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg== + +"@webpack-cli/info@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.5.0.tgz#6c78c13c5874852d6e2dd17f08a41f3fe4c261b1" + integrity sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ== + dependencies: + envinfo "^7.7.3" + +"@webpack-cli/serve@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1" + integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q== + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abbrev@1, abbrev@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +accepts@~1.3.5, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^8.0.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.0.4, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.2: + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.0, ajv@^8.6.3, ajv@^8.9.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +amazon-cognito-identity-js@^6.1.2: + version "6.2.0" + resolved "https://registry.yarnpkg.com/amazon-cognito-identity-js/-/amazon-cognito-identity-js-6.2.0.tgz#99e96666944429cb8f67b62e4cf7ad77fbe71ad0" + integrity sha512-9Fxrp9+MtLdsJvqOwSaE3ll+pneICeuE3pwj2yDkiyGNWuHx97b8bVLR2bOgfDmDJnY0Hq8QoeXtwdM4aaXJjg== + dependencies: + "@aws-crypto/sha256-js" "1.2.2" + buffer "4.9.2" + fast-base64-decode "^1.0.0" + isomorphic-unfetch "^3.0.0" + js-cookie "^2.2.1" + +ansi-html-community@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-includes@^3.1.4: + version "3.1.6" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" + integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + is-string "^1.0.7" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array.prototype.flat@^1.2.5: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" + integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +atomic-sleep@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" + integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== + +atomically@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/atomically/-/atomically-1.7.0.tgz#c07a0458432ea6dbc9a3506fffa424b48bccaafe" + integrity sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w== + +autoprefixer@^10.4.13: + version "10.4.14" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d" + integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ== + dependencies: + browserslist "^4.21.5" + caniuse-lite "^1.0.30001464" + fraction.js "^4.2.0" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +axios@1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.4.tgz#f5760cefd9cfb51fd2481acf88c05f67c4523024" + integrity sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ== + dependencies: + follow-redirects "^1.15.0" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +babel-plugin-macros@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" + integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== + dependencies: + "@babel/runtime" "^7.12.5" + cosmiconfig "^7.0.0" + resolve "^1.19.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.0.2, base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + +body-parser@^1.20.1: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +body-scroll-lock@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/body-scroll-lock/-/body-scroll-lock-3.1.5.tgz#c1392d9217ed2c3e237fee1e910f6cdd80b7aaec" + integrity sha512-Yi1Xaml0EvNA0OYWxXiYNqY24AfWkbA6w5vxE7GWxtKfzIbZM+Qw+aSmkgsbWzbHiy/RCSkUZBplVxTA+E4jJg== + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +bowser@^2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" + integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.21.4, browserslist@^4.21.5: + version "4.21.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.7.tgz#e2b420947e5fb0a58e8f4668ae6e23488127e551" + integrity sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA== + dependencies: + caniuse-lite "^1.0.30001489" + electron-to-chromium "^1.4.411" + node-releases "^2.0.12" + update-browserslist-db "^1.0.11" + +bson-objectid@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/bson-objectid/-/bson-objectid-2.0.4.tgz#339211572ef97dc98f2d68eaee7b99b7be59a089" + integrity sha512-vgnKAUzcDoa+AeyYwXCoHyF2q6u/8H46dxu5JN+4/TZeq/Dlinn0K6GvxsCLb3LHUJl0m/TLiEK31kUwtgocMQ== + +bson@^4.6.5: + version "4.7.2" + resolved "https://registry.yarnpkg.com/bson/-/bson-4.7.2.tgz#320f4ad0eaf5312dd9b45dc369cc48945e2a5f2e" + integrity sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ== + dependencies: + buffer "^5.6.0" + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@4.9.2: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +buffer@5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" + integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +buffer@^5.5.0, buffer@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +busboy@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +call-me-maybe@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" + integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001489: + version "1.0.30001495" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001495.tgz#64a0ccef1911a9dcff647115b4430f8eff1ef2d9" + integrity sha512-F6x5IEuigtUfU5ZMQK2jsy5JqUUlEFRVZq8bO2a+ysq5K7jD6PPc9YXZj78xDNS3uNchesp1Jw47YXEqr+Viyg== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +charenc@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== + +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.2: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +ci-info@^3.2.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" + integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== + +classnames@^2.2.5, classnames@^2.2.6, classnames@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" + integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== + +clean-css@^5.2.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.2.tgz#70ecc7d4d4114921f5d298349ff86a31a9975224" + integrity sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww== + dependencies: + source-map "~0.6.0" + +cli-color@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-2.0.3.tgz#73769ba969080629670f3f2ef69a4bf4e7cc1879" + integrity sha512-OkoZnxyC4ERN3zLzZaY9Emb7f/MhBOIpePv0Ycok0fJYT+Ouo00UBEIwsVsr0yoow++n5YWlSUgST9GKhNHiRQ== + dependencies: + d "^1.0.1" + es5-ext "^0.10.61" + es6-iterator "^2.0.3" + memoizee "^0.4.15" + timers-ext "^0.1.7" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clsx@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" + integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== + dependencies: + color-convert "^2.0.1" + color-string "^1.9.0" + +colord@^2.9.1: + version "2.9.3" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== + +colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.7: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.19.0, commander@^2.20.0, commander@^2.20.3: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^7.0.0, commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +compute-scroll-into-view@^1.0.20: + version "1.0.20" + resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz#1768b5522d1172754f5d0c9b02de3af6be506a43" + integrity sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +condense-newlines@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f" + integrity sha512-P7X+QL9Hb9B/c8HI5BFFKmjgBu2XpQuF98WZ9XkO+dBGgk5XgwiQz7o1SmpglNWId3581UcS0SFAWfoIhMHPfg== + dependencies: + extend-shallow "^2.0.1" + is-whitespace "^0.3.0" + kind-of "^3.0.2" + +conf@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/conf/-/conf-10.2.0.tgz#838e757be963f1a2386dfe048a98f8f69f7b55d6" + integrity sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg== + dependencies: + ajv "^8.6.3" + ajv-formats "^2.1.1" + atomically "^1.7.0" + debounce-fn "^4.0.0" + dot-prop "^6.0.1" + env-paths "^2.2.1" + json-schema-typed "^7.0.3" + onetime "^5.1.2" + pkg-up "^3.1.0" + semver "^7.3.5" + +config-chain@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +convert-source-map@^1.5.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +copyfiles@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.4.1.tgz#d2dcff60aaad1015f09d0b66e7f0f1c5cd3c5da5" + integrity sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg== + dependencies: + glob "^7.0.5" + minimatch "^3.0.3" + mkdirp "^1.0.4" + noms "0.0.0" + through2 "^2.0.1" + untildify "^4.0.0" + yargs "^16.1.0" + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-env@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" + integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== + dependencies: + cross-spawn "^7.0.1" + +cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypt@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== + +css-blank-pseudo@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz#36523b01c12a25d812df343a32c322d2a2324561" + integrity sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ== + dependencies: + postcss-selector-parser "^6.0.9" + +css-declaration-sorter@^6.3.1: + version "6.4.0" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz#630618adc21724484b3e9505bce812def44000ad" + integrity sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew== + +css-has-pseudo@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz#57f6be91ca242d5c9020ee3e51bbb5b89fc7af73" + integrity sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw== + dependencies: + postcss-selector-parser "^6.0.9" + +css-loader@^5.2.7: + version "5.2.7" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.7.tgz#9b9f111edf6fb2be5dc62525644cbc9c232064ae" + integrity sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg== + dependencies: + icss-utils "^5.1.0" + loader-utils "^2.0.0" + postcss "^8.2.15" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^3.0.0" + semver "^7.3.5" + +css-minimizer-webpack-plugin@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.0.tgz#a2c2d1bc5cc37450519e873e13d942bbe4478ef5" + integrity sha512-1wZ/PYvg+ZKwi5FX6YrvbB31jMAdurS+CmRQLwWCVSlfzJC85l/a6RVICqUHFa+jXyhilfnCyjafzJGbmz5tcA== + dependencies: + cssnano "^6.0.0" + jest-worker "^29.4.3" + postcss "^8.4.21" + schema-utils "^4.0.0" + serialize-javascript "^6.0.1" + source-map "^0.6.1" + +css-prefers-color-scheme@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz#ca8a22e5992c10a5b9d315155e7caee625903349" + integrity sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA== + +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-tree@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== + dependencies: + mdn-data "2.0.28" + source-map-js "^1.0.1" + +css-what@^6.0.1, css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +cssdb@^7.1.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.6.0.tgz#beac8f7a5f676db62d3c33da517ef4c9eb008f8b" + integrity sha512-Nna7rph8V0jC6+JBY4Vk4ndErUmfJfV6NJCaZdurL0omggabiy+QB2HCQtu5c/ACLZ0I7REv7A4QyPIoYzZx0w== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssfilter@0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" + integrity sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw== + +cssnano-preset-default@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.0.1.tgz#2a93247140d214ddb9f46bc6a3562fa9177fe301" + integrity sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ== + dependencies: + css-declaration-sorter "^6.3.1" + cssnano-utils "^4.0.0" + postcss-calc "^9.0.0" + postcss-colormin "^6.0.0" + postcss-convert-values "^6.0.0" + postcss-discard-comments "^6.0.0" + postcss-discard-duplicates "^6.0.0" + postcss-discard-empty "^6.0.0" + postcss-discard-overridden "^6.0.0" + postcss-merge-longhand "^6.0.0" + postcss-merge-rules "^6.0.1" + postcss-minify-font-values "^6.0.0" + postcss-minify-gradients "^6.0.0" + postcss-minify-params "^6.0.0" + postcss-minify-selectors "^6.0.0" + postcss-normalize-charset "^6.0.0" + postcss-normalize-display-values "^6.0.0" + postcss-normalize-positions "^6.0.0" + postcss-normalize-repeat-style "^6.0.0" + postcss-normalize-string "^6.0.0" + postcss-normalize-timing-functions "^6.0.0" + postcss-normalize-unicode "^6.0.0" + postcss-normalize-url "^6.0.0" + postcss-normalize-whitespace "^6.0.0" + postcss-ordered-values "^6.0.0" + postcss-reduce-initial "^6.0.0" + postcss-reduce-transforms "^6.0.0" + postcss-svgo "^6.0.0" + postcss-unique-selectors "^6.0.0" + +cssnano-utils@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-4.0.0.tgz#d1da885ec04003ab19505ff0e62e029708d36b08" + integrity sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw== + +cssnano@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.0.1.tgz#87c38c4cd47049c735ab756d7e77ac3ca855c008" + integrity sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg== + dependencies: + cssnano-preset-default "^6.0.1" + lilconfig "^2.1.0" + +csso@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== + dependencies: + css-tree "~2.2.0" + +csstype@^3.0.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +dataloader@^2.1.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.2.2.tgz#216dc509b5abe39d43a9b9d97e6e5e473dfbe3e0" + integrity sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g== + +date-fns@^2.24.0, date-fns@^2.29.3: + version "2.30.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" + integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== + dependencies: + "@babel/runtime" "^7.21.0" + +dateformat@^4.6.3: + version "4.6.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" + integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== + +debounce-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-4.0.0.tgz#ed76d206d8a50e60de0dd66d494d82835ffe61c7" + integrity sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ== + dependencies: + mimic-fn "^3.0.0" + +debug@2, debug@2.6.9, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@4.x, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@^3.2.6, debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-equal@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.1.tgz#c72ab22f3a7d3503a4ca87dde976fe9978816739" + integrity sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + es-get-iterator "^1.1.3" + get-intrinsic "^1.2.0" + is-arguments "^1.1.1" + is-array-buffer "^3.0.2" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.0" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^4.0.0, deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" + integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +denque@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" + integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-libc@^2.0.0, detect-libc@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +diff@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +direction@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/direction/-/direction-1.0.4.tgz#2b86fb686967e987088caf8b89059370d4837442" + integrity sha512-GYqKi1aH7PJXxdhTeZBFrg8vUBeKXi+cNprXsC1kpJcbcVnV9wBsrOu1cQEdG0WeQwlfHiy3XvnKfIrJ2R0NzQ== + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-helpers@^5.0.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + +dom-serializer@^1.0.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^2.5.2, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +domutils@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" + integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dot-prop@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" + integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== + dependencies: + is-obj "^2.0.0" + +dotenv@^8.2.0, dotenv@^8.6.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" + integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== + +duplexer@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +editorconfig@^0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" + integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== + dependencies: + commander "^2.19.0" + lru-cache "^4.1.5" + semver "^5.6.0" + sigmund "^1.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +electron-to-chromium@^1.4.411: + version "1.4.424" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.424.tgz#791402d0737e8d1d05cfb7fbf5c0374f26b3838a" + integrity sha512-KOfOIoEE0b3L0CTDgqS+NpokmcBdxpqLIPtp9PL0v5GAMZmZXa9uoUfWJdEy63MNy6jMvKHkBVUYY5DSuqqpdw== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^5.14.1: + version "5.14.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.14.1.tgz#de684b6803724477a4af5d74ccae5de52c25f6b3" + integrity sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entities@^4.2.0, entities@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +env-paths@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +envinfo@^7.7.3: + version "7.8.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" + integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.19.0, es-abstract@^1.20.4: + version "1.21.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" + integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== + dependencies: + array-buffer-byte-length "^1.0.0" + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.2.0" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.10" + is-weakref "^1.0.2" + object-inspect "^1.12.3" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.7" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.9" + +es-get-iterator@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + +es-module-lexer@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.2.1.tgz#ba303831f63e6a394983fde2f97ad77b22324527" + integrity sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg== + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" + +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + dependencies: + has "^1.0.3" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@^0.10.61, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: + version "0.10.62" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" + integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + next-tick "^1.1.0" + +es6-iterator@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +es6-weak-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-config-prettier@^8.5.0: + version "8.8.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" + integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== + +eslint-import-resolver-alias@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-alias/-/eslint-import-resolver-alias-1.1.2.tgz#297062890e31e4d6651eb5eba9534e1f6e68fc97" + integrity sha512-WdviM1Eu834zsfjHtcGHtGfcu+F30Od3V7I9Fi57uhBEwPkjDcii7/yW8jAT+gOhn4P/vOxxNAXbFAKsrrc15w== + +eslint-import-resolver-node@^0.3.6: + version "0.3.7" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" + integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== + dependencies: + debug "^3.2.7" + is-core-module "^2.11.0" + resolve "^1.22.1" + +eslint-module-utils@^2.7.2: + version "2.8.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== + dependencies: + debug "^3.2.7" + +eslint-plugin-filenames@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-filenames/-/eslint-plugin-filenames-1.3.2.tgz#7094f00d7aefdd6999e3ac19f72cea058e590cf7" + integrity sha512-tqxJTiEM5a0JmRCUYQmxw23vtTxrb2+a3Q2mMOPhFxvt7ZQQJmdiuMby9B/vUAuVMghyP7oET+nIf6EO6CBd/w== + dependencies: + lodash.camelcase "4.3.0" + lodash.kebabcase "4.1.1" + lodash.snakecase "4.1.1" + lodash.upperfirst "4.3.1" + +eslint-plugin-import@2.25.4: + version "2.25.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz#322f3f916a4e9e991ac7af32032c25ce313209f1" + integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA== + dependencies: + array-includes "^3.1.4" + array.prototype.flat "^1.2.5" + debug "^2.6.9" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.6" + eslint-module-utils "^2.7.2" + has "^1.0.3" + is-core-module "^2.8.0" + is-glob "^4.0.3" + minimatch "^3.0.4" + object.values "^1.1.5" + resolve "^1.20.0" + tsconfig-paths "^3.12.0" + +eslint-plugin-prettier@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" + integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-plugin-react-hooks@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" + integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== + +eslint-plugin-simple-import-sort@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-10.0.0.tgz#cc4ceaa81ba73252427062705b64321946f61351" + integrity sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw== + +eslint-scope@5.1.1, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" + integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" + integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== + +eslint@^8.19.0: + version "8.42.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.42.0.tgz#7bebdc3a55f9ed7167251fe7259f75219cade291" + integrity sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.4.0" + "@eslint/eslintrc" "^2.0.3" + "@eslint/js" "8.42.0" + "@humanwhocodes/config-array" "^0.11.10" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.0" + eslint-visitor-keys "^3.4.1" + espree "^9.5.2" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.1" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + +espree@^9.5.2: + version "9.5.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" + integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== + dependencies: + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +events@3.3.0, events@^3.2.0, events@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + +express-fileupload@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/express-fileupload/-/express-fileupload-1.4.0.tgz#be9d70a881d6c2b1ce668df86e4f89ddbf238ec7" + integrity sha512-RjzLCHxkv3umDeZKeFeMg8w7qe0V09w3B7oGZprr/oO2H/ISCgNzuqzn7gV3HRWb37GjRk429CCpSLS2KNTqMQ== + dependencies: + busboy "^1.6.0" + +express-rate-limit@^5.5.1: + version "5.5.1" + resolved "https://registry.yarnpkg.com/express-rate-limit/-/express-rate-limit-5.5.1.tgz#110c23f6a65dfa96ab468eda95e71697bc6987a2" + integrity sha512-MTjE2eIbHv5DyfuFz4zLYWxpqVhEhkTiwFGuB74Q9CSou2WHO52nlE5y3Zlg6SIsiYUIPj6ifFxnkPz6O3sIUg== + +express@^4.17.1, express@^4.18.2: + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.1" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.5.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.1.2: + version "1.7.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== + dependencies: + type "^2.7.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + dependencies: + is-extendable "^0.1.0" + +fast-base64-decode@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz#b434a0dd7d92b12b43f26819300d2dafb83ee418" + integrity sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q== + +fast-copy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fast-copy/-/fast-copy-3.0.1.tgz#9e89ef498b8c04c1cd76b33b8e14271658a732aa" + integrity sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== + +fast-glob@^3.2.9: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-redact@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.2.0.tgz#b1e2d39bc731376d28bde844454fa23e26919987" + integrity sha512-zaTadChr+NekyzallAMXATXLOR8MNx3zqpZ0MUF2aGf4EathnG0f32VLODNlY8IuGY3HoRO2L6/6fSzNsLaHIw== + +fast-safe-stringify@^2.0.8, fast-safe-stringify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + +fast-xml-parser@4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.4.tgz#6e846ede1e56ad9e5ef07d8720809edf0ed07e9b" + integrity sha512-fbfMDvgBNIdDJLdLOwacjFAPYt67tr31H9ZhWSm45CDAxvd0I6WTlSOUo7K2P/K5sA5JgMKG64PI3DMcaFdWpQ== + dependencies: + strnum "^1.0.5" + +fastest-levenshtein@^1.0.12: + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +file-type@16.5.4: + version "16.5.4" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.5.4.tgz#474fb4f704bee427681f98dd390058a172a6c2fd" + integrity sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw== + dependencies: + readable-web-to-node-stream "^3.0.0" + strtok3 "^6.2.4" + token-types "^4.1.1" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-root@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +find-up@4.1.0, find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatley@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/flatley/-/flatley-5.2.0.tgz#3a645837c669be8d978335e37ae3afffcfbdedb7" + integrity sha512-vsb0/03uIHu7/3jRqABweblFUJMLokz1uMrcgFlvx6OAr6V3FiSic2iXeiJCj+cciTiQeumSDsIFAAnN1yvu4w== + dependencies: + is-buffer "^1.1.6" + +flatstr@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/flatstr/-/flatstr-1.0.12.tgz#c2ba6a08173edbb6c9640e3055b95e287ceb5931" + integrity sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw== + +flatted@^3.1.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== + +focus-trap@^6.9.2: + version "6.9.4" + resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-6.9.4.tgz#436da1a1d935c48b97da63cd8f361c6f3aa16444" + integrity sha512-v2NTsZe2FF59Y+sDykKY+XjqZ0cPfhq/hikWVL88BqLivnNiEffAsac6rP6H45ff9wG9LL5ToiDqrLEP9GX9mw== + dependencies: + tabbable "^5.3.3" + +follow-redirects@^1.15.0: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fraction.js@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" + integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-monkey@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.4.tgz#ee8c1b53d3fe8bb7e5d2c5c5dfc0168afdd2f747" + integrity sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functions-have-names@^1.2.2, functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-proto "^1.0.1" + has-symbols "^1.0.3" + +get-stdin@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" + integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +get-tsconfig@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.6.0.tgz#e977690993a42f3e320e932427502a40f7af6d05" + integrity sha512-lgbo68hHTQnFddybKbbs/RDRJnJT5YyGy2kQzVwbq+g67X73i+5MVTval34QxGkOe9X5Ujf1UYpCaphLyltjEg== + dependencies: + resolve-pkg-maps "^1.0.0" + +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-promise@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/glob-promise/-/glob-promise-4.2.2.tgz#15f44bcba0e14219cd93af36da6bb905ff007877" + integrity sha512-xcUzJ8NWN5bktoTIX7eOclO1Npxd/dyVqUJxlLIDasT4C7KZyqlPIwkdJ0Ypiy3p2ZKahTjK4M9uC3sNSfNMzw== + dependencies: + "@types/glob" "^7.1.3" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^7.0.5, glob@^7.1.3, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^8.0.0, glob@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +globals@^13.19.0: + version "13.20.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +graphql-http@^1.17.1: + version "1.19.0" + resolved "https://registry.yarnpkg.com/graphql-http/-/graphql-http-1.19.0.tgz#6f0fff0dbd9a8e797c99b5ac0ca160566e7927da" + integrity sha512-fOD3hfp/G+Lhx2FWW5HsfmtJSsw6CikcpOboG7/mFo/pPUzn3yOwKdTFRnJ8MVY4ru69MT1nSPr/1gI/iuGNlw== + +graphql-playground-html@^1.6.30: + version "1.6.30" + resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.6.30.tgz#14c2a8eb7fc17bfeb1a746bbb28a11e34bf0b391" + integrity sha512-tpCujhsJMva4aqE8ULnF7/l3xw4sNRZcSHu+R00VV+W0mfp+Q20Plvcrp+5UXD+2yS6oyCXncA+zoQJQqhGCEw== + dependencies: + xss "^1.0.6" + +graphql-playground-middleware-express@^1.7.23: + version "1.7.23" + resolved "https://registry.yarnpkg.com/graphql-playground-middleware-express/-/graphql-playground-middleware-express-1.7.23.tgz#95aba44d801ff3c08b2246917d2901d2e7c35d3d" + integrity sha512-M/zbTyC1rkgiQjFSgmzAv6umMHOphYLNWZp6Ye5QrD77WfGOOoSqDsVmGUczc2pDkEPEzzGB/bvBO5rdzaTRgw== + dependencies: + graphql-playground-html "^1.6.30" + +graphql-query-complexity@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/graphql-query-complexity/-/graphql-query-complexity-0.12.0.tgz#5f636ccc54da82225f31e898e7f27192fe074b4c" + integrity sha512-fWEyuSL6g/+nSiIRgIipfI6UXTI7bAxrpPlCY1c0+V3pAEUo1ybaKmSBgNr1ed2r+agm1plJww8Loig9y6s2dw== + dependencies: + lodash.get "^4.4.2" + +graphql-scalars@^1.20.1: + version "1.22.2" + resolved "https://registry.yarnpkg.com/graphql-scalars/-/graphql-scalars-1.22.2.tgz#6326e6fe2d0ad4228a9fea72a977e2bf26b86362" + integrity sha512-my9FB4GtghqXqi/lWSVAOPiTzTnnEzdOXCsAC2bb5V7EFNQjVjwy3cSSbUvgYOtDuDibd+ZsCDhz+4eykYOlhQ== + dependencies: + tslib "^2.5.0" + +graphql-type-json@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/graphql-type-json/-/graphql-type-json-0.3.2.tgz#f53a851dbfe07bd1c8157d24150064baab41e115" + integrity sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg== + +graphql@^16.6.0: + version "16.6.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.6.0.tgz#c2dcffa4649db149f6282af726c8c83f1c7c5fdb" + integrity sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw== + +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== + dependencies: + duplexer "^0.1.2" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +help-me@^4.0.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/help-me/-/help-me-4.2.0.tgz#50712bfd799ff1854ae1d312c36eafcea85b0563" + integrity sha512-TAOnTB8Tz5Dw8penUuzHVrKNKlCIbwwbHnXraNJxPwf8LRtE2HlM84RYuezMFcwOJmoYOCWVDyJ8TQGxn9PgxA== + dependencies: + glob "^8.0.0" + readable-stream "^3.6.0" + +history@^4.9.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^3.0.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^1.0.1" + +hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +html-entities@^2.1.0: + version "2.3.5" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.5.tgz#9f117bf6a5962efc31e094f6c6dad3cf3b95e33e" + integrity sha512-72TJlcMkYsEJASa/3HnX7VT59htM7iSHbH59NSZbtc+22Ap0Txnlx91sfeB+/A7wNZg7UxtZdhAW4y+/jimrdg== + +html-minifier-terser@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" + integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== + dependencies: + camel-case "^4.1.2" + clean-css "^5.2.2" + commander "^8.3.0" + he "^1.2.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.10.0" + +html-parse-stringify@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz#dfc1017347ce9f77c8141a507f233040c59c55d2" + integrity sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg== + dependencies: + void-elements "3.1.0" + +html-to-text@9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/html-to-text/-/html-to-text-9.0.3.tgz#331368f32fcb270c59dbd3a7fdb32813d2a490bc" + integrity sha512-hxDF1kVCF2uw4VUJ3vr2doc91pXf2D5ngKcNviSitNkhP9OMOaJkDrFIFL6RMvko7NisWTEiqGpQ9LAxcVok1w== + dependencies: + "@selderee/plugin-htmlparser2" "^0.10.0" + deepmerge "^4.2.2" + dom-serializer "^2.0.0" + htmlparser2 "^8.0.1" + selderee "^0.10.0" + +html-webpack-plugin@^5.5.0: + version "5.5.1" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.1.tgz#826838e31b427f5f7f30971f8d8fa2422dfa6763" + integrity sha512-cTUzZ1+NqjGEKjmVgZKLMdiFg3m9MdRXkZW2OEe69WYVi5ONLMmlnSZdXzGGMOq0C8jGDrL6EWyEDDUioHO/pA== + dependencies: + "@types/html-minifier-terser" "^6.0.0" + html-minifier-terser "^6.0.2" + lodash "^4.17.21" + pretty-error "^4.0.0" + tapable "^2.0.0" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +htmlparser2@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" + integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + entities "^4.4.0" + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-status@^1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/http-status/-/http-status-1.6.2.tgz#6dc05188a9856d67d96e48e8b4fd645c719ce82a" + integrity sha512-oUExvfNckrpTpDazph7kNG8sQi5au3BeTo0idaZFXEhTaJKu7GNJCLHI0rYY2wljm548MSTM+Ljj/c6anqu2zQ== + +i18next-browser-languagedetector@^6.1.8: + version "6.1.8" + resolved "https://registry.yarnpkg.com/i18next-browser-languagedetector/-/i18next-browser-languagedetector-6.1.8.tgz#8e9c61b32a4dfe9b959b38bc9d2a8b95f799b27c" + integrity sha512-Svm+MduCElO0Meqpj1kJAriTC6OhI41VhlT/A0UPjGoPZBhAHIaGE5EfsHlTpgdH09UVX7rcc72pSDDBeKSQQA== + dependencies: + "@babel/runtime" "^7.19.0" + +i18next-http-middleware@^3.2.2: + version "3.3.1" + resolved "https://registry.yarnpkg.com/i18next-http-middleware/-/i18next-http-middleware-3.3.1.tgz#be44506338611d2ecd117e11c9298820472f06cc" + integrity sha512-mWUsdeV9SJSnrcLryUPhc5DZUewOXJd1Gx+UuEZYMtUv/Di4Zzt2I/A92x6/49ZFV2iRZ70oHgQGbqyrArIycw== + +i18next@^22.4.9: + version "22.5.1" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-22.5.1.tgz#99df0b318741a506000c243429a7352e5f44d424" + integrity sha512-8TGPgM3pAD+VRsMtUMNknRz3kzqwp/gPALrWMsDnmC1mKqJwpWyooQRLMcbTwq8z8YwSmuj+ZYvc+xCuEpkssA== + dependencies: + "@babel/runtime" "^7.20.6" + +iconv-lite@0.4.24, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore-by-default@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== + +ignore@^5.2.0: + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + +immer@^9.0.6: + version "9.0.21" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" + integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== + +immutable@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be" + integrity sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@^1.3.4, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +internal-slot@^1.0.4, internal-slot@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== + dependencies: + get-intrinsic "^1.2.0" + has "^1.0.3" + side-channel "^1.0.4" + +interpret@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" + integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== + +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@^1.1.5, is-buffer@^1.1.6, is-buffer@~1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.11.0, is-core-module@^2.8.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1, is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-extendable@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hotkey@^0.1.6: + version "0.1.8" + resolved "https://registry.yarnpkg.com/is-hotkey/-/is-hotkey-0.1.8.tgz#6b1f4b2d0e5639934e20c05ed24d623a21d36d25" + integrity sha512-qs3NZ1INIS+H+yeo7cD9pDfwYV/jqRh1JG9S9zYrNudkoUQg7OL7ziXqRKu+InFjUIDoP2o6HIkLYMh1pcWgyQ== + +is-hotkey@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/is-hotkey/-/is-hotkey-0.2.0.tgz#1835a68171a91e5c9460869d96336947c8340cef" + integrity sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw== + +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-promise@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.10, is-typed-array@^1.1.9: + version "1.1.10" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +is-whitespace@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" + integrity sha512-RydPhl4S6JwAyj0JJjshWJEFG6hNye3pZFBRZaTUfZFwGHxzppNaNOVgQuS/E/SlhrApuMXrpnK1EEIXfdo3Dg== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +isomorphic-fetch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz#0267b005049046d2421207215d45d6a262b8b8b4" + integrity sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA== + dependencies: + node-fetch "^2.6.1" + whatwg-fetch "^3.4.1" + +isomorphic-unfetch@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz#87341d5f4f7b63843d468438128cb087b7c3e98f" + integrity sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q== + dependencies: + node-fetch "^2.6.1" + unfetch "^4.2.0" + +jest-util@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" + integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ== + dependencies: + "@jest/types" "^29.5.0" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest-worker@^29.4.3: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d" + integrity sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA== + dependencies: + "@types/node" "*" + jest-util "^29.5.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +joi@^17.7.0: + version "17.9.2" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.9.2.tgz#8b2e4724188369f55451aebd1d0b1d9482470690" + integrity sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw== + dependencies: + "@hapi/hoek" "^9.0.0" + "@hapi/topo" "^5.0.0" + "@sideway/address" "^4.1.3" + "@sideway/formula" "^3.0.1" + "@sideway/pinpoint" "^2.0.0" + +joycon@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" + integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== + +js-beautify@^1.6.12: + version "1.14.8" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.14.8.tgz#e0c570c15b5445b006de6d9a3e70fb62f9e408e9" + integrity sha512-4S7HFeI9YfRvRgKnEweohs0tgJj28InHVIj4Nl8Htf96Y6pHg3+tJrmo4ucAM9f7l4SHbFI3IvFAZ2a1eQPbyg== + dependencies: + config-chain "^1.1.13" + editorconfig "^0.15.3" + glob "^8.1.0" + nopt "^6.0.0" + +js-cookie@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" + integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-to-typescript@11.0.3: + version "11.0.3" + resolved "https://registry.yarnpkg.com/json-schema-to-typescript/-/json-schema-to-typescript-11.0.3.tgz#9b401c2b78329959f1c4c4e0639a6bdcf6a6ed77" + integrity sha512-EaEE9Y4VZ8b9jW5zce5a9L3+p4C9AqgIRHbNVDJahfMnoKzcd4sDb98BLxLdQhJEuRAXyKLg4H66NKm80W8ilg== + dependencies: + "@bcherny/json-schema-ref-parser" "9.0.9" + "@types/json-schema" "^7.0.11" + "@types/lodash" "^4.14.182" + "@types/prettier" "^2.6.1" + cli-color "^2.0.2" + get-stdin "^8.0.0" + glob "^7.1.6" + glob-promise "^4.2.2" + is-glob "^4.0.3" + lodash "^4.17.21" + minimist "^1.2.6" + mkdirp "^1.0.4" + mz "^2.7.0" + prettier "^2.6.2" + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema-typed@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz#23ff481b8b4eebcd2ca123b4fa0409e66469a2d9" + integrity sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonwebtoken@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz#d0faf9ba1cc3a56255fe49c0961a67e520c1926d" + integrity sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw== + dependencies: + jws "^3.2.2" + lodash "^4.17.21" + ms "^2.1.1" + semver "^7.3.8" + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +jwt-decode@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-3.1.2.tgz#3fb319f3675a2df0c2895c8f5e9fa4b67b04ed59" + integrity sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A== + +kareem@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.4.1.tgz#7d81ec518204a48c1cb16554af126806c3cd82b0" + integrity sha512-aJ9opVoXroQUPfovYP5kaj2lM7Jn02Gw13bL0lg9v0V7SaUc0qavPs0Eue7d2DcC3NjqI6QAUElXNsuZSeM+EA== + +kind-of@^3.0.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== + dependencies: + is-buffer "^1.1.5" + +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +klona@^2.0.4, klona@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" + integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== + +leac@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/leac/-/leac-0.6.0.tgz#dcf136e382e666bd2475f44a1096061b70dc0912" + integrity sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lilconfig@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +loader-utils@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.camelcase@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + +lodash.kebabcase@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.snakecase@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" + integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash.upperfirst@4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" + integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== + +lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lru-cache@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lru-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" + integrity sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ== + dependencies: + es5-ext "~0.10.2" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +md5@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" + integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== + dependencies: + charenc "0.0.2" + crypt "0.0.2" + is-buffer "~1.1.6" + +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memfs@^3.4.12: + version "3.5.3" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.5.3.tgz#d9b40fe4f8d5788c5f895bda804cd0d9eeee9f3b" + integrity sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw== + dependencies: + fs-monkey "^1.0.4" + +memoize-one@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-6.0.0.tgz#b2591b871ed82948aee4727dc6abceeeac8c1045" + integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw== + +memoizee@^0.4.15: + version "0.4.15" + resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72" + integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ== + dependencies: + d "^1.0.1" + es5-ext "^0.10.53" + es6-weak-map "^2.0.3" + event-emitter "^0.3.5" + is-promise "^2.2.2" + lru-queue "^0.1.0" + next-tick "^1.1.0" + timers-ext "^0.1.7" + +memory-pager@^1.0.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5" + integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +method-override@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/method-override/-/method-override-3.0.0.tgz#6ab0d5d574e3208f15b0c9cf45ab52000468d7a2" + integrity sha512-IJ2NNN/mSl9w3kzWB92rcdHpz+HjkxhDJWNDBqSlas+zQdP8wBiJzITPg08M/k2uVvMow7Sk41atndNtt/PHSA== + dependencies: + debug "3.1.0" + methods "~1.1.2" + parseurl "~1.3.2" + vary "~1.1.2" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micro-memoize@^4.0.14: + version "4.1.2" + resolved "https://registry.yarnpkg.com/micro-memoize/-/micro-memoize-4.1.2.tgz#ce719c1ba1e41592f1cd91c64c5f41dcbf135f36" + integrity sha512-+HzcV2H+rbSJzApgkj0NdTakkC+bnyeiUxgT6/m7mjcz1CmM22KYFKp+EVj1sWe4UYcnriJr5uqHQD/gMHLD+g== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-fn@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" + integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +mini-css-extract-plugin@1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.2.tgz#83172b4fd812f8fc4a09d6f6d16f924f53990ca8" + integrity sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + webpack-sources "^1.1.0" + +minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6, minimist@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +monaco-editor@^0.38.0: + version "0.38.0" + resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.38.0.tgz#7b3cd16f89b1b8867fcd3c96e67fccee791ff05c" + integrity sha512-11Fkh6yzEmwx7O0YoLxeae0qEGFwmyPRlVxpg7oF9czOOCB/iCjdJrG5I67da5WiXK3YJCxoz9TJFE8Tfq/v9A== + +mongodb-connection-string-url@^2.5.2: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz#57901bf352372abdde812c81be47b75c6b2ec5cf" + integrity sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ== + dependencies: + "@types/whatwg-url" "^8.2.1" + whatwg-url "^11.0.0" + +mongodb@4.8.1: + version "4.8.1" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-4.8.1.tgz#596de88ff4519128266d9254dbe5b781c4005796" + integrity sha512-/NyiM3Ox9AwP5zrfT9TXjRKDJbXlLaUDQ9Rg//2lbg8D2A8GXV0VidYYnA/gfdK6uwbnL4FnAflH7FbGw3TS7w== + dependencies: + bson "^4.6.5" + denque "^2.0.1" + mongodb-connection-string-url "^2.5.2" + socks "^2.6.2" + optionalDependencies: + saslprep "^1.0.3" + +mongoose-aggregate-paginate-v2@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/mongoose-aggregate-paginate-v2/-/mongoose-aggregate-paginate-v2-1.0.6.tgz#fd2f2564d1bbf52f49a196f0b7b03675913dacca" + integrity sha512-UuALu+mjhQa1K9lMQvjLL3vm3iALvNw8PQNIh2gp1b+tO5hUa0NC0Wf6/8QrT9PSJVTihXaD8hQVy3J4e0jO0Q== + +mongoose-paginate-v2@^1.6.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/mongoose-paginate-v2/-/mongoose-paginate-v2-1.7.1.tgz#0b390f5eb8e5dca55ffcb1fd7b4d8078636cb8f1" + integrity sha512-J8DJw3zRXcXOKoZv+RvO9tt5HotRnbo2iCR3lke+TtsQsYwQvbY3EgUkPqZXw6qCX2IByvXrW5SGNdAB0od/Cw== + +mongoose@6.5.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-6.5.0.tgz#5c71aa8d4027e50bfe8d29d6e955e378e010d174" + integrity sha512-swOX8ZEbmCeJaEs29B1j67StBIhuOccNNkipbVhsnLYYCDpNE7heM9W54MFGwN5es9tGGoxINHSzOhJ9kTOZGg== + dependencies: + bson "^4.6.5" + kareem "2.4.1" + mongodb "4.8.1" + mpath "0.9.0" + mquery "4.0.3" + ms "2.1.3" + sift "16.0.0" + +mpath@0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.9.0.tgz#0c122fe107846e31fc58c75b09c35514b3871904" + integrity sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew== + +mquery@4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/mquery/-/mquery-4.0.3.tgz#4d15f938e6247d773a942c912d9748bd1965f89d" + integrity sha512-J5heI+P08I6VJ2Ky3+33IpCdAvlYGTSUjwTPxkAr8i8EoduPMBX2OY/wa3IKZIQl7MU4SbFk8ndgSKyB/cl1zA== + dependencies: + debug "4.x" + +mrmime@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" + integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nanoid@^3.3.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== + +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +needle@^2.5.2: + version "2.9.1" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.9.1.tgz#22d1dffbe3490c2b83e301f7709b6736cd8f2684" + integrity sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +next-tick@1, next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-abi@^3.3.0: + version "3.43.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.43.0.tgz#468dc09af3c262ef2fb3a0d2ff34cf8fba61952a" + integrity sha512-QB0MMv+tn9Ur2DtJrc8y09n0n6sw88CyDniWSX2cHW10goQXYPK9ZpFJOktDS4ron501edPX6h9i7Pg+RnH5nQ== + dependencies: + semver "^7.3.5" + +node-addon-api@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" + integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== + +node-fetch@^2.6.1: + version "2.6.11" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25" + integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w== + dependencies: + whatwg-url "^5.0.0" + +node-releases@^2.0.12: + version "2.0.12" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" + integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== + +nodemailer@^6.9.0: + version "6.9.3" + resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.9.3.tgz#e4425b85f05d83c43c5cd81bf84ab968f8ef5cbe" + integrity sha512-fy9v3NgTzBngrMFkDsKEj0r02U7jm6XfC3b52eoNV+GCrGj+s8pt5OqhiJdWKuw51zCTdiNR/IUD1z33LIIGpg== + +nodemon@^2.0.6: + version "2.0.22" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.22.tgz#182c45c3a78da486f673d6c1702e00728daf5258" + integrity sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ== + dependencies: + chokidar "^3.5.2" + debug "^3.2.7" + ignore-by-default "^1.0.1" + minimatch "^3.1.2" + pstree.remy "^1.1.8" + semver "^5.7.1" + simple-update-notifier "^1.0.7" + supports-color "^5.5.0" + touch "^3.1.0" + undefsafe "^2.0.5" + +noms@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/noms/-/noms-0.0.0.tgz#da8ebd9f3af9d6760919b27d9cdc8092a7332859" + integrity sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow== + dependencies: + inherits "^2.0.1" + readable-stream "~1.0.31" + +nopt@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" + integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== + dependencies: + abbrev "^1.0.0" + +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg== + dependencies: + abbrev "1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +object-assign@^4.0.1, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.12.3, object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + +object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-to-formdata@^4.4.2: + version "4.5.1" + resolved "https://registry.yarnpkg.com/object-to-formdata/-/object-to-formdata-4.5.1.tgz#b6955a9c505b58df15852fee5f844b418b3eb6fe" + integrity sha512-QiM9D0NiU5jV6J6tjE1g7b4Z2tcUnKs1OPUi4iMb2zH+7jwlcUrASghgkFk9GtzqNNq8rTQJtT8AzjBAvLoNMw== + +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.values@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" + integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +on-exit-leak-free@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz#5c703c968f7e7f851885f6459bf8a8a57edc9cc4" + integrity sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +opener@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parseley@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/parseley/-/parseley-0.11.0.tgz#1ff817c829a02fcc214c9cc0d96b126d772ee814" + integrity sha512-VfcwXlBWgTF+unPcr7yu3HSSA6QUdDaDnrHcytVfj5Z8azAyKBDrYnSIfeSxlrEayndNcLmrXzg+Vxbo6DWRXQ== + dependencies: + leac "^0.6.0" + peberminta "^0.8.0" + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +passport-anonymous@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/passport-anonymous/-/passport-anonymous-1.0.1.tgz#241e37274ec44dfb7f6cad234b41c438386bc117" + integrity sha512-Mk2dls97nLTzHpsWCYQ54IVGucWaiWSHHr3+IhWYAebg4dRgRQIfyoeYrixoxB2z2z4+EM7p9yjC+a3yMB5z5A== + dependencies: + passport-strategy "1.x.x" + +passport-headerapikey@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/passport-headerapikey/-/passport-headerapikey-1.2.2.tgz#b71960523999c9864151b8535c919e3ff5ba75ce" + integrity sha512-4BvVJRrWsNJPrd3UoZfcnnl4zvUWYKEtfYkoDsaOKBsrWHYmzTApCjs7qUbncOLexE9ul0IRiYBFfBG0y9IVQA== + dependencies: + lodash "^4.17.15" + passport-strategy "^1.0.0" + +passport-jwt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/passport-jwt/-/passport-jwt-4.0.1.tgz#c443795eff322c38d173faa0a3c481479646ec3d" + integrity sha512-UCKMDYhNuGOBE9/9Ycuoyh7vP6jpeTp/+sfMJl7nLff/t6dps+iaeE0hhNkKN8/HZHcJ7lCdOyDxHdDoxoSvdQ== + dependencies: + jsonwebtoken "^9.0.0" + passport-strategy "^1.0.0" + +passport-local@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/passport-local/-/passport-local-1.0.0.tgz#1fe63268c92e75606626437e3b906662c15ba6ee" + integrity sha512-9wCE6qKznvf9mQYYbgJ3sVOHmCWoUNMVFoZzNoznmISbhnNNPhN9xfY3sLmScHMetEJeoY7CXwfhCe7argfQow== + dependencies: + passport-strategy "1.x.x" + +passport-strategy@1.x.x, passport-strategy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4" + integrity sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA== + +passport@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/passport/-/passport-0.6.0.tgz#e869579fab465b5c0b291e841e6cc95c005fac9d" + integrity sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug== + dependencies: + passport-strategy "1.x.x" + pause "0.0.1" + utils-merge "^1.0.1" + +path-browserify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pause@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" + integrity sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg== + +payload@^1.8.2: + version "1.9.0" + resolved "https://registry.yarnpkg.com/payload/-/payload-1.9.0.tgz#e712d0e6d67a2ba6585164d58b939915583da444" + integrity sha512-+sqalAXumUexSkcP9hud/2schwDlz0SFQUPe13izB+nVIHFBn7L97iyzqAb4XgHOifmFp1YAErzr8a4fJk25gw== + dependencies: + "@date-io/date-fns" "^2.16.0" + "@dnd-kit/core" "^6.0.7" + "@dnd-kit/sortable" "^7.0.2" + "@faceless-ui/modal" "^2.0.1" + "@faceless-ui/scroll-info" "^1.3.0" + "@faceless-ui/window-info" "^2.1.1" + "@monaco-editor/react" "^4.5.1" + "@swc/core" "^1.3.26" + "@swc/register" "^0.1.10" + "@types/sharp" "^0.31.1" + body-parser "^1.20.1" + bson-objectid "^2.0.4" + compression "^1.7.4" + conf "^10.2.0" + connect-history-api-fallback "^1.6.0" + css-loader "^5.2.7" + css-minimizer-webpack-plugin "^5.0.0" + dataloader "^2.1.0" + date-fns "^2.29.3" + deep-equal "^2.2.0" + deepmerge "^4.2.2" + dotenv "^8.6.0" + express "^4.18.2" + express-fileupload "1.4.0" + express-rate-limit "^5.5.1" + file-loader "^6.2.0" + file-type "16.5.4" + find-up "4.1.0" + flatley "^5.2.0" + fs-extra "^10.1.0" + get-tsconfig "^4.4.0" + graphql "^16.6.0" + graphql-http "^1.17.1" + graphql-playground-middleware-express "^1.7.23" + graphql-query-complexity "^0.12.0" + graphql-scalars "^1.20.1" + graphql-type-json "^0.3.2" + html-webpack-plugin "^5.5.0" + http-status "^1.6.2" + i18next "^22.4.9" + i18next-browser-languagedetector "^6.1.8" + i18next-http-middleware "^3.2.2" + is-hotkey "^0.2.0" + is-plain-object "^5.0.0" + isomorphic-fetch "^3.0.0" + joi "^17.7.0" + json-schema-to-typescript "11.0.3" + jsonwebtoken "^9.0.0" + jwt-decode "^3.1.2" + md5 "^2.3.0" + method-override "^3.0.0" + micro-memoize "^4.0.14" + mini-css-extract-plugin "1.6.2" + minimist "^1.2.7" + mkdirp "^1.0.4" + monaco-editor "^0.38.0" + mongoose "6.5.0" + mongoose-aggregate-paginate-v2 "^1.0.6" + mongoose-paginate-v2 "^1.6.1" + nodemailer "^6.9.0" + object-to-formdata "^4.4.2" + passport "^0.6.0" + passport-anonymous "^1.0.1" + passport-headerapikey "^1.2.2" + passport-jwt "^4.0.1" + passport-local "^1.0.0" + path-browserify "^1.0.1" + pino "^6.4.1" + pino-pretty "^9.1.1" + pluralize "^8.0.0" + postcss "^8.4.21" + postcss-loader "^6.2.1" + postcss-preset-env "^7.8.3" + probe-image-size "^6.0.0" + process "^0.11.10" + qs "^6.11.0" + qs-middleware "^1.0.3" + react "^18.2.0" + react-animate-height "^2.1.2" + react-datepicker "^4.10.0" + react-diff-viewer-continued "^3.2.6" + react-dom "^18.2.0" + react-helmet "^6.1.0" + react-i18next "^11.18.6" + react-router-dom "^5.3.4" + react-router-navigation-prompt "^1.9.6" + react-select "^5.7.3" + react-toastify "^8.2.0" + sanitize-filename "^1.6.3" + sass "^1.57.1" + sass-loader "^12.6.0" + scheduler "^0.23.0" + scmp "^2.1.0" + sharp "^0.31.3" + slate "^0.91.4" + slate-history "^0.86.0" + slate-hyperscript "^0.81.3" + slate-react "^0.92.0" + style-loader "^2.0.0" + swc-loader "^0.2.3" + swc-minify-webpack-plugin "^2.1.0" + terser-webpack-plugin "^5.3.6" + ts-essentials "^7.0.3" + url-loader "^4.1.1" + use-context-selector "^1.4.1" + uuid "^8.3.2" + webpack "^5.78.0" + webpack-bundle-analyzer "^4.8.0" + webpack-cli "^4.10.0" + webpack-dev-middleware "6.0.1" + webpack-hot-middleware "^2.25.3" + +peberminta@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/peberminta/-/peberminta-0.8.0.tgz#acf7b105f3d13c8ac28cad81f2f5fe4698507590" + integrity sha512-YYEs+eauIjDH5nUEGi18EohWE0nV2QbGTqmxQcqgZ/0g+laPCQmuIqq7EBLVi9uim9zMgfJv0QBZEnQ3uHw/Tw== + +peek-readable@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-4.1.0.tgz#4ece1111bf5c2ad8867c314c81356847e8a62e72" + integrity sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pino-abstract-transport@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz#cc0d6955fffcadb91b7b49ef220a6cc111d48bb3" + integrity sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA== + dependencies: + readable-stream "^4.0.0" + split2 "^4.0.0" + +pino-pretty@^9.1.1: + version "9.4.0" + resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-9.4.0.tgz#fc4026e83c87272cbdfb7afed121770e6000940c" + integrity sha512-NIudkNLxnl7MGj1XkvsqVyRgo6meFP82ECXF2PlOI+9ghmbGuBUUqKJ7IZPIxpJw4vhhSva0IuiDSAuGh6TV9g== + dependencies: + colorette "^2.0.7" + dateformat "^4.6.3" + fast-copy "^3.0.0" + fast-safe-stringify "^2.1.1" + help-me "^4.0.1" + joycon "^3.1.1" + minimist "^1.2.6" + on-exit-leak-free "^2.1.0" + pino-abstract-transport "^1.0.0" + pump "^3.0.0" + readable-stream "^4.0.0" + secure-json-parse "^2.4.0" + sonic-boom "^3.0.0" + strip-json-comments "^3.1.1" + +pino-std-serializers@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz#b56487c402d882eb96cd67c257868016b61ad671" + integrity sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg== + +pino@^6.4.1: + version "6.14.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-6.14.0.tgz#b745ea87a99a6c4c9b374e4f29ca7910d4c69f78" + integrity sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg== + dependencies: + fast-redact "^3.0.0" + fast-safe-stringify "^2.0.8" + flatstr "^1.0.12" + pino-std-serializers "^3.1.0" + process-warning "^1.0.0" + quick-format-unescaped "^4.0.3" + sonic-boom "^1.0.2" + +pirates@^4.0.1: + version "4.0.5" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-up@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + +postcss-attribute-case-insensitive@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz#03d761b24afc04c09e757e92ff53716ae8ea2741" + integrity sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-calc@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-9.0.1.tgz#a744fd592438a93d6de0f1434c572670361eb6c6" + integrity sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ== + dependencies: + postcss-selector-parser "^6.0.11" + postcss-value-parser "^4.2.0" + +postcss-clamp@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz#7263e95abadd8c2ba1bd911b0b5a5c9c93e02363" + integrity sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-functional-notation@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz#21a909e8d7454d3612d1659e471ce4696f28caec" + integrity sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-hex-alpha@^8.0.4: + version "8.0.4" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz#c66e2980f2fbc1a63f5b079663340ce8b55f25a5" + integrity sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-rebeccapurple@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz#63fdab91d878ebc4dd4b7c02619a0c3d6a56ced0" + integrity sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-colormin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-6.0.0.tgz#d4250652e952e1c0aca70c66942da93d3cdeaafe" + integrity sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + colord "^2.9.1" + postcss-value-parser "^4.2.0" + +postcss-convert-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-6.0.0.tgz#ec94a954957e5c3f78f0e8f65dfcda95280b8996" + integrity sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw== + dependencies: + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" + +postcss-custom-media@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz#c8f9637edf45fef761b014c024cee013f80529ea" + integrity sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-custom-properties@^12.1.10: + version "12.1.11" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz#d14bb9b3989ac4d40aaa0e110b43be67ac7845cf" + integrity sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-custom-selectors@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz#1ab4684d65f30fed175520f82d223db0337239d9" + integrity sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-dir-pseudo-class@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz#2bf31de5de76added44e0a25ecf60ae9f7c7c26c" + integrity sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-discard-comments@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-6.0.0.tgz#9ca335e8b68919f301b24ba47dde226a42e535fe" + integrity sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw== + +postcss-discard-duplicates@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.0.tgz#c26177a6c33070922e67e9a92c0fd23d443d1355" + integrity sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA== + +postcss-discard-empty@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-6.0.0.tgz#06c1c4fce09e22d2a99e667c8550eb8a3a1b9aee" + integrity sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ== + +postcss-discard-overridden@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-6.0.0.tgz#49c5262db14e975e349692d9024442de7cd8e234" + integrity sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw== + +postcss-double-position-gradients@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz#b96318fdb477be95997e86edd29c6e3557a49b91" + integrity sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +postcss-env-function@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-4.0.6.tgz#7b2d24c812f540ed6eda4c81f6090416722a8e7a" + integrity sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-focus-visible@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz#50c9ea9afa0ee657fb75635fabad25e18d76bf9e" + integrity sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw== + dependencies: + postcss-selector-parser "^6.0.9" + +postcss-focus-within@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz#5b1d2ec603195f3344b716c0b75f61e44e8d2e20" + integrity sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ== + dependencies: + postcss-selector-parser "^6.0.9" + +postcss-font-variant@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz#efd59b4b7ea8bb06127f2d031bfbb7f24d32fa66" + integrity sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA== + +postcss-gap-properties@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz#f7e3cddcf73ee19e94ccf7cb77773f9560aa2fff" + integrity sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg== + +postcss-image-set-function@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz#08353bd756f1cbfb3b6e93182c7829879114481f" + integrity sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-initial@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-4.0.1.tgz#529f735f72c5724a0fb30527df6fb7ac54d7de42" + integrity sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ== + +postcss-lab-function@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz#6fe4c015102ff7cd27d1bd5385582f67ebdbdc98" + integrity sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +postcss-loader@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-6.2.1.tgz#0895f7346b1702103d30fdc66e4d494a93c008ef" + integrity sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q== + dependencies: + cosmiconfig "^7.0.0" + klona "^2.0.5" + semver "^7.3.5" + +postcss-logical@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-5.0.4.tgz#ec75b1ee54421acc04d5921576b7d8db6b0e6f73" + integrity sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g== + +postcss-media-minmax@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz#7140bddec173e2d6d657edbd8554a55794e2a5b5" + integrity sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ== + +postcss-merge-longhand@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.0.tgz#6f627b27db939bce316eaa97e22400267e798d69" + integrity sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg== + dependencies: + postcss-value-parser "^4.2.0" + stylehacks "^6.0.0" + +postcss-merge-rules@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-6.0.1.tgz#39f165746404e646c0f5c510222ccde4824a86aa" + integrity sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + cssnano-utils "^4.0.0" + postcss-selector-parser "^6.0.5" + +postcss-minify-font-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-6.0.0.tgz#68d4a028f9fa5f61701974724b2cc9445d8e6070" + integrity sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-minify-gradients@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-6.0.0.tgz#22b5c88cc63091dadbad34e31ff958404d51d679" + integrity sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA== + dependencies: + colord "^2.9.1" + cssnano-utils "^4.0.0" + postcss-value-parser "^4.2.0" + +postcss-minify-params@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-6.0.0.tgz#2b3a85a9e3b990d7a16866f430f5fd1d5961b539" + integrity sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ== + dependencies: + browserslist "^4.21.4" + cssnano-utils "^4.0.0" + postcss-value-parser "^4.2.0" + +postcss-minify-selectors@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.0.tgz#5046c5e8680a586e5a0cad52cc9aa36d6be5bda2" + integrity sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== + +postcss-modules-local-by-default@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz#b08eb4f083050708998ba2c6061b50c2870ca524" + integrity sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-nesting@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.2.0.tgz#0b12ce0db8edfd2d8ae0aaf86427370b898890be" + integrity sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA== + dependencies: + "@csstools/selector-specificity" "^2.0.0" + postcss-selector-parser "^6.0.10" + +postcss-normalize-charset@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-6.0.0.tgz#36cc12457259064969fb96f84df491652a4b0975" + integrity sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ== + +postcss-normalize-display-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.0.tgz#8d2961415078644d8c6bbbdaf9a2fdd60f546cd4" + integrity sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-positions@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-6.0.0.tgz#25b96df99a69f8925f730eaee0be74416865e301" + integrity sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-repeat-style@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.0.tgz#ddf30ad8762feb5b1eb97f39f251acd7b8353299" + integrity sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-string@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-6.0.0.tgz#948282647a51e409d69dde7910f0ac2ff97cb5d8" + integrity sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-timing-functions@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.0.tgz#5f13e650b8c43351989fc5de694525cc2539841c" + integrity sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-unicode@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.0.tgz#741b3310f874616bdcf07764f5503695d3604730" + integrity sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg== + dependencies: + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" + +postcss-normalize-url@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-6.0.0.tgz#d0a31e962a16401fb7deb7754b397a323fb650b4" + integrity sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-whitespace@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.0.tgz#accb961caa42e25ca4179b60855b79b1f7129d4d" + integrity sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-opacity-percentage@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz#5b89b35551a556e20c5d23eb5260fbfcf5245da6" + integrity sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A== + +postcss-ordered-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-6.0.0.tgz#374704cdff25560d44061d17ba3c6308837a3218" + integrity sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg== + dependencies: + cssnano-utils "^4.0.0" + postcss-value-parser "^4.2.0" + +postcss-overflow-shorthand@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz#7ed6486fec44b76f0eab15aa4866cda5d55d893e" + integrity sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-page-break@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz#7fbf741c233621622b68d435babfb70dd8c1ee5f" + integrity sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ== + +postcss-place@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-7.0.5.tgz#95dbf85fd9656a3a6e60e832b5809914236986c4" + integrity sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-preset-env@^7.8.3: + version "7.8.3" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz#2a50f5e612c3149cc7af75634e202a5b2ad4f1e2" + integrity sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag== + dependencies: + "@csstools/postcss-cascade-layers" "^1.1.1" + "@csstools/postcss-color-function" "^1.1.1" + "@csstools/postcss-font-format-keywords" "^1.0.1" + "@csstools/postcss-hwb-function" "^1.0.2" + "@csstools/postcss-ic-unit" "^1.0.1" + "@csstools/postcss-is-pseudo-class" "^2.0.7" + "@csstools/postcss-nested-calc" "^1.0.0" + "@csstools/postcss-normalize-display-values" "^1.0.1" + "@csstools/postcss-oklab-function" "^1.1.1" + "@csstools/postcss-progressive-custom-properties" "^1.3.0" + "@csstools/postcss-stepped-value-functions" "^1.0.1" + "@csstools/postcss-text-decoration-shorthand" "^1.0.0" + "@csstools/postcss-trigonometric-functions" "^1.0.2" + "@csstools/postcss-unset-value" "^1.0.2" + autoprefixer "^10.4.13" + browserslist "^4.21.4" + css-blank-pseudo "^3.0.3" + css-has-pseudo "^3.0.4" + css-prefers-color-scheme "^6.0.3" + cssdb "^7.1.0" + postcss-attribute-case-insensitive "^5.0.2" + postcss-clamp "^4.1.0" + postcss-color-functional-notation "^4.2.4" + postcss-color-hex-alpha "^8.0.4" + postcss-color-rebeccapurple "^7.1.1" + postcss-custom-media "^8.0.2" + postcss-custom-properties "^12.1.10" + postcss-custom-selectors "^6.0.3" + postcss-dir-pseudo-class "^6.0.5" + postcss-double-position-gradients "^3.1.2" + postcss-env-function "^4.0.6" + postcss-focus-visible "^6.0.4" + postcss-focus-within "^5.0.4" + postcss-font-variant "^5.0.0" + postcss-gap-properties "^3.0.5" + postcss-image-set-function "^4.0.7" + postcss-initial "^4.0.1" + postcss-lab-function "^4.2.1" + postcss-logical "^5.0.4" + postcss-media-minmax "^5.0.0" + postcss-nesting "^10.2.0" + postcss-opacity-percentage "^1.1.2" + postcss-overflow-shorthand "^3.0.4" + postcss-page-break "^3.0.4" + postcss-place "^7.0.5" + postcss-pseudo-class-any-link "^7.1.6" + postcss-replace-overflow-wrap "^4.0.0" + postcss-selector-not "^6.0.1" + postcss-value-parser "^4.2.0" + +postcss-pseudo-class-any-link@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz#2693b221902da772c278def85a4d9a64b6e617ab" + integrity sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-reduce-initial@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-6.0.0.tgz#7d16e83e60e27e2fa42f56ec0b426f1da332eca7" + integrity sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.0.tgz#28ff2601a6d9b96a2f039b3501526e1f4d584a46" + integrity sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-replace-overflow-wrap@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz#d2df6bed10b477bf9c52fab28c568b4b29ca4319" + integrity sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw== + +postcss-selector-not@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz#8f0a709bf7d4b45222793fc34409be407537556d" + integrity sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: + version "6.0.13" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" + integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-6.0.0.tgz#7b18742d38d4505a0455bbe70d52b49f00eaf69d" + integrity sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw== + dependencies: + postcss-value-parser "^4.2.0" + svgo "^3.0.2" + +postcss-unique-selectors@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.0.tgz#c94e9b0f7bffb1203894e42294b5a1b3fb34fbe1" + integrity sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@^8.2.15, postcss@^8.4.21: + version "8.4.24" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.24.tgz#f714dba9b2284be3cc07dbd2fc57ee4dc972d2df" + integrity sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +prebuild-install@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45" + integrity sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw== + dependencies: + detect-libc "^2.0.0" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^3.3.0" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^4.0.0" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@^2.6.2, prettier@^2.7.1: + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + +pretty-error@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" + integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== + dependencies: + lodash "^4.17.20" + renderkid "^3.0.0" + +pretty@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pretty/-/pretty-2.0.0.tgz#adbc7960b7bbfe289a557dc5f737619a220d06a5" + integrity sha512-G9xUchgTEiNpormdYBl+Pha50gOUovT18IvAe7EYMZ1/f9W/WWMPRn+xI68yXNMUk3QXHDwo/1wV/4NejVNe1w== + dependencies: + condense-newlines "^0.2.1" + extend-shallow "^2.0.1" + js-beautify "^1.6.12" + +probe-image-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/probe-image-size/-/probe-image-size-6.0.0.tgz#4a85b19d5af4e29a8de7d53a9aa036f6fd02f5f4" + integrity sha512-99PZ5+RU4gqiTfK5ZDMDkZtn6eL4WlKfFyVJV7lFQvH3iGmQ85DqMTOdxorERO26LHkevR2qsxnHp0x/2UDJPA== + dependencies: + deepmerge "^4.0.0" + needle "^2.5.2" + stream-parser "~0.3.1" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process-warning@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" + integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + +pstree.remy@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" + integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^2.1.0, punycode@^2.1.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + +qs-middleware@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/qs-middleware/-/qs-middleware-1.0.3.tgz#84f3535275ba20fd00c2122efacce6ab01092c19" + integrity sha512-ymlixxD/0Bj3BMY9x1z8ENdQdhkmsIbDNyVvfM8soHn5p/CRFlLPrmtxmE5aG//q1PzHHSGuLi+6QlHezivseg== + dependencies: + qs "~6.4.0" + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +qs@^6.11.0, qs@^6.9.1: + version "6.11.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" + integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== + dependencies: + side-channel "^1.0.4" + +qs@~6.4.0: + version "6.4.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.1.tgz#2bad97710a5b661c366b378b1e3a44a592ff45e6" + integrity sha512-LQy1Q1fcva/UsnP/6Iaa4lVeM49WiOitu2T4hZCyA/elLKu37L99qcBJk4VCCk+rdLvnMzfKyiN3SZTqdAZGSQ== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-format-unescaped@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" + integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-animate-height@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/react-animate-height/-/react-animate-height-2.1.2.tgz#9b450fc64d46f10f5e07da8d0d5e2c47b9f15030" + integrity sha512-A9jfz/4CTdsIsE7WCQtO9UkOpMBcBRh8LxyHl2eoZz1ki02jpyUL5xt58gabd0CyeLQ8fRyQ+s2lyV2Ufu8Owg== + dependencies: + classnames "^2.2.5" + prop-types "^15.6.1" + +react-datepicker@^4.10.0: + version "4.12.0" + resolved "https://registry.yarnpkg.com/react-datepicker/-/react-datepicker-4.12.0.tgz#aad65d56fcaabe38aaf0c1a317f0a5264691ab5b" + integrity sha512-czCEp4T8ctyN9NBMG6Xq6pEpOvMtoqf4U5DxFzJoTtv1/gTX3QNJaWBUwD88j//+eF8gVkNvOW8aTAqpaIJBvw== + dependencies: + "@popperjs/core" "^2.9.2" + classnames "^2.2.6" + date-fns "^2.24.0" + prop-types "^15.7.2" + react-onclickoutside "^6.12.2" + react-popper "^2.3.0" + +react-diff-viewer-continued@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/react-diff-viewer-continued/-/react-diff-viewer-continued-3.2.6.tgz#96382463b5de6838d95323c407442349b1c3a26e" + integrity sha512-GrzyqQnjIMoej+jMjWvtVSsQqhXgzEGqpXlJ2dAGfOk7Q26qcm8Gu6xtI430PBUyZsERe8BJSQf+7VZZo8IBNQ== + dependencies: + "@emotion/css" "^11.10.5" + classnames "^2.3.1" + diff "^5.1.0" + memoize-one "^6.0.0" + prop-types "^15.8.1" + +react-dom@18.2.0, react-dom@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.0" + +react-fast-compare@^3.0.1, react-fast-compare@^3.1.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz#929a97a532304ce9fee4bcae44234f1ce2c21d49" + integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ== + +react-helmet@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/react-helmet/-/react-helmet-6.1.0.tgz#a750d5165cb13cf213e44747502652e794468726" + integrity sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw== + dependencies: + object-assign "^4.1.1" + prop-types "^15.7.2" + react-fast-compare "^3.1.1" + react-side-effect "^2.1.0" + +react-i18next@^11.18.6: + version "11.18.6" + resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-11.18.6.tgz#e159c2960c718c1314f1e8fcaa282d1c8b167887" + integrity sha512-yHb2F9BiT0lqoQDt8loZ5gWP331GwctHz9tYQ8A2EIEUu+CcEdjBLQWli1USG3RdWQt3W+jqQLg/d4rrQR96LA== + dependencies: + "@babel/runtime" "^7.14.5" + html-parse-stringify "^3.0.1" + +react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-onclickoutside@^6.12.2: + version "6.13.0" + resolved "https://registry.yarnpkg.com/react-onclickoutside/-/react-onclickoutside-6.13.0.tgz#e165ea4e5157f3da94f4376a3ab3e22a565f4ffc" + integrity sha512-ty8So6tcUpIb+ZE+1HAhbLROvAIJYyJe/1vRrrcmW+jLsaM+/powDRqxzo6hSh9CuRZGSL1Q8mvcF5WRD93a0A== + +react-popper@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-2.3.0.tgz#17891c620e1320dce318bad9fede46a5f71c70ba" + integrity sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q== + dependencies: + react-fast-compare "^3.0.1" + warning "^4.0.2" + +react-router-dom@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.4.tgz#2ed62ffd88cae6db134445f4a0c0ae8b91d2e5e6" + integrity sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + loose-envify "^1.3.1" + prop-types "^15.6.2" + react-router "5.3.4" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router-navigation-prompt@^1.9.6: + version "1.9.6" + resolved "https://registry.yarnpkg.com/react-router-navigation-prompt/-/react-router-navigation-prompt-1.9.6.tgz#a949252dfbae8c40508671beb6d5995f0b089ac4" + integrity sha512-l0sAtbroHK8i1/Eyy29XcrMpBEt0R08BaScgMUt8r5vWWbLz7G0ChOikayTCQm7QgDFsHw8gVnxDJb7TBZCAKg== + +react-router@5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.3.4.tgz#8ca252d70fcc37841e31473c7a151cf777887bb5" + integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" + loose-envify "^1.3.1" + path-to-regexp "^1.7.0" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-select@^5.7.3: + version "5.7.3" + resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.7.3.tgz#fa0dc9a23cad6ff3871ad3829f6083a4b54961a2" + integrity sha512-z8i3NCuFFWL3w27xq92rBkVI2onT0jzIIPe480HlBjXJ3b5o6Q+Clp4ydyeKrj9DZZ3lrjawwLC5NGl0FSvUDg== + dependencies: + "@babel/runtime" "^7.12.0" + "@emotion/cache" "^11.4.0" + "@emotion/react" "^11.8.1" + "@floating-ui/dom" "^1.0.1" + "@types/react-transition-group" "^4.4.0" + memoize-one "^6.0.0" + prop-types "^15.6.0" + react-transition-group "^4.3.0" + use-isomorphic-layout-effect "^1.1.2" + +react-side-effect@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-2.1.2.tgz#dc6345b9e8f9906dc2eeb68700b615e0b4fe752a" + integrity sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw== + +react-toastify@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/react-toastify/-/react-toastify-8.2.0.tgz#ef7d56bdfdc6272ca6b228368ab564721c3a3244" + integrity sha512-Pg2Ju7NngAamarFvLwqrFomJ57u/Ay6i6zfLurt/qPynWkAkOthu6vxfqYpJCyNhHRhR4hu7+bySSeWWJu6PAg== + dependencies: + clsx "^1.1.1" + +react-transition-group@^4.3.0, react-transition-group@^4.4.2: + version "4.4.5" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" + integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + +react@18.2.0, react@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== + dependencies: + loose-envify "^1.1.0" + +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@^4.0.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.4.0.tgz#55ce132d60a988c460d75c631e9ccf6a7229b468" + integrity sha512-kDMOq0qLtxV9f/SQv522h8cxZBqNZXuXNyjyezmfAAuribMyVXziljpQ/uQhfE1XLg2/TLTW2DsnoE4VAi/krg== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + +readable-stream@~1.0.31: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@~2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-web-to-node-stream@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz#5d52bb5df7b54861fd48d015e93a2cb87b3ee0bb" + integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw== + dependencies: + readable-stream "^3.6.0" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +rechoir@^0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" + integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== + dependencies: + resolve "^1.9.0" + +regenerator-runtime@^0.13.11: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + +regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" + integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + functions-have-names "^1.2.3" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== + +renderkid@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" + integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^6.0.1" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +resend@^0.12.0: + version "0.12.2" + resolved "https://registry.yarnpkg.com/resend/-/resend-0.12.2.tgz#32f61299aabdeae00d21c347f0ee856e8e839e16" + integrity sha512-T4+n1DgsmyQ+S2omb5xIyhoG0ppGEqq5itRsBrssrUTLI6xiEg0IuZJ3RbnPjnU3HR2jrVaOOvQIDuZXTm1bCg== + dependencies: + "@react-email/render" "0.0.6" + axios "1.3.4" + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + +resolve-pkg-maps@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== + +resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.9.0: + version "1.22.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== + dependencies: + is-core-module "^2.11.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sanitize-filename@^1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" + integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== + dependencies: + truncate-utf8-bytes "^1.0.0" + +saslprep@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226" + integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag== + dependencies: + sparse-bitfield "^3.0.3" + +sass-loader@^12.6.0: + version "12.6.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-12.6.0.tgz#5148362c8e2cdd4b950f3c63ac5d16dbfed37bcb" + integrity sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA== + dependencies: + klona "^2.0.4" + neo-async "^2.6.2" + +sass@^1.57.1: + version "1.63.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.63.0.tgz#76b2a27282836b3343a4a669dbafb71fd93b1927" + integrity sha512-YIkMh4jvWB0R43XxjEr+GG26G1X40y4tDRoBhbOD4KkfXrwJgD8elAqU4mUqC5kP2nTrf7v77ZgYPZVFebHmyw== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + +sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== + dependencies: + loose-envify "^1.1.0" + +schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.2.tgz#36c10abca6f7577aeae136c804b0c741edeadc99" + integrity sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.1.tgz#eb2d042df8b01f4b5c276a2dfd41ba0faab72e8d" + integrity sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + +scmp@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/scmp/-/scmp-2.1.0.tgz#37b8e197c425bdeb570ab91cc356b311a11f9c9a" + integrity sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q== + +scroll-into-view-if-needed@^2.2.20: + version "2.2.31" + resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz#d3c482959dc483e37962d1521254e3295d0d1587" + integrity sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA== + dependencies: + compute-scroll-into-view "^1.0.20" + +secure-json-parse@^2.4.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.7.0.tgz#5a5f9cd6ae47df23dba3151edd06855d47e09862" + integrity sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw== + +selderee@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/selderee/-/selderee-0.10.0.tgz#ec83d6044d9026668dc9bd2561acfde99a4e3a1c" + integrity sha512-DEL/RW/f4qLw/NrVg97xKaEBC8IpzIG2fvxnzCp3Z4yk4jQ3MXom+Imav9wApjxX2dfS3eW7x0DXafJr85i39A== + dependencies: + parseley "^0.11.0" + +semver@^5.6.0, semver@^5.7.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: + version "7.5.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" + integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== + dependencies: + lru-cache "^6.0.0" + +semver@~7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-javascript@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" + integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== + dependencies: + randombytes "^2.1.0" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +sharp@^0.31.3: + version "0.31.3" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.31.3.tgz#60227edc5c2be90e7378a210466c99aefcf32688" + integrity sha512-XcR4+FCLBFKw1bdB+GEhnUNXNXvnt0tDo4WsBsraKymuo/IAuPuCBVAL2wIkUw2r/dwFW5Q5+g66Kwl2dgDFVg== + dependencies: + color "^4.2.3" + detect-libc "^2.0.1" + node-addon-api "^5.0.0" + prebuild-install "^7.1.1" + semver "^7.3.8" + simple-get "^4.0.1" + tar-fs "^2.1.1" + tunnel-agent "^0.6.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +sift@16.0.0: + version "16.0.0" + resolved "https://registry.yarnpkg.com/sift/-/sift-16.0.0.tgz#447991577db61f1a8fab727a8a98a6db57a23eb8" + integrity sha512-ILTjdP2Mv9V1kIxWMXeMTIRbOBrqKc4JAXmFMnFq3fKeyQ2Qwa3Dw1ubcye3vR+Y6ofA0b9gNDr/y2t6eUeIzQ== + +sigmund@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + integrity sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g== + +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^4.0.0, simple-get@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +simple-update-notifier@^1.0.7: + version "1.1.0" + resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz#67694c121de354af592b347cdba798463ed49c82" + integrity sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg== + dependencies: + semver "~7.0.0" + +sirv@^1.0.7: + version "1.0.19" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.19.tgz#1d73979b38c7fe91fcba49c85280daa9c2363b49" + integrity sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ== + dependencies: + "@polka/url" "^1.0.0-next.20" + mrmime "^1.0.0" + totalist "^1.0.0" + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slate-history@^0.86.0: + version "0.86.0" + resolved "https://registry.yarnpkg.com/slate-history/-/slate-history-0.86.0.tgz#5554612271d2fc1018a7918be3961bb66e620c58" + integrity sha512-OxObL9tbhgwvSlnKSCpGIh7wnuaqvOj5jRExGjEyCU2Ke8ctf22HjT+jw7GEi9ttLzNTUmTEU3YIzqKGeqN+og== + dependencies: + is-plain-object "^5.0.0" + +slate-hyperscript@^0.81.3: + version "0.81.3" + resolved "https://registry.yarnpkg.com/slate-hyperscript/-/slate-hyperscript-0.81.3.tgz#0c8f446d6bef717d2fe855239fb86a000ba2d0d2" + integrity sha512-A/jvoLTAgeRcJaUPQCYOikCJxSws6+/jkL7mM+QuZljNd7EA5YqafGA7sVBJRFpcoSsDRUIah1yNiC/7vxZPYg== + dependencies: + is-plain-object "^5.0.0" + +slate-react@^0.92.0: + version "0.92.0" + resolved "https://registry.yarnpkg.com/slate-react/-/slate-react-0.92.0.tgz#eb158ac2a33d962f48c466c4c8cc7bc14c1c6633" + integrity sha512-xEDKu5RKw5f0N95l1UeNQnrB0Pxh4JPjpIZR/BVsMo0ININnLAknR99gLo46bl/Ffql4mr7LeaxQRoXxbFtJOQ== + dependencies: + "@juggle/resize-observer" "^3.4.0" + "@types/is-hotkey" "^0.1.1" + "@types/lodash" "^4.14.149" + direction "^1.0.3" + is-hotkey "^0.1.6" + is-plain-object "^5.0.0" + lodash "^4.17.4" + scroll-into-view-if-needed "^2.2.20" + tiny-invariant "1.0.6" + +slate@^0.91.4: + version "0.91.4" + resolved "https://registry.yarnpkg.com/slate/-/slate-0.91.4.tgz#759764d63c8a8a7aff29a29e598e593ed80277f9" + integrity sha512-aUJ3rpjrdi5SbJ5G1Qjr3arytfRkEStTmHjBfWq2A2Q8MybacIzkScSvGJjQkdTk3djCK9C9SEOt39sSeZFwTw== + dependencies: + immer "^9.0.6" + is-plain-object "^5.0.0" + tiny-warning "^1.0.3" + +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +socks@^2.6.2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== + dependencies: + ip "^2.0.0" + smart-buffer "^4.2.0" + +sonic-boom@^1.0.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-1.4.1.tgz#d35d6a74076624f12e6f917ade7b9d75e918f53e" + integrity sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg== + dependencies: + atomic-sleep "^1.0.0" + flatstr "^1.0.12" + +sonic-boom@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.3.0.tgz#cffab6dafee3b2bcb88d08d589394198bee1838c" + integrity sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g== + dependencies: + atomic-sleep "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-support@^0.5.13, source-map-support@^0.5.17, source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sparse-bitfield@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" + integrity sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ== + dependencies: + memory-pager "^1.0.2" + +split2@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + +state-local@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/state-local/-/state-local-1.0.7.tgz#da50211d07f05748d53009bee46307a37db386d5" + integrity sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + +stream-browserify@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" + integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== + dependencies: + inherits "~2.0.4" + readable-stream "^3.5.0" + +stream-parser@~0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/stream-parser/-/stream-parser-0.3.1.tgz#1618548694420021a1182ff0af1911c129761773" + integrity sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ== + dependencies: + debug "2" + +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string.prototype.trim@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" + integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +stripe@^10.2.0: + version "10.17.0" + resolved "https://registry.yarnpkg.com/stripe/-/stripe-10.17.0.tgz#b65d8c9d55ec7190b866a77dffe9843941ddced7" + integrity sha512-JHV2KoL+nMQRXu3m9ervCZZvi4DDCJfzHUE6CmtJxR9TmizyYfrVuhGvnsZLLnheby9Qrnf4Hq6iOEcejGwnGQ== + dependencies: + "@types/node" ">=8.1.0" + qs "^6.11.0" + +stripe@^11.6.0: + version "11.18.0" + resolved "https://registry.yarnpkg.com/stripe/-/stripe-11.18.0.tgz#2b99ac712e81a5232f88568327d001960b454465" + integrity sha512-OUA32uhNoSoM6wOodyFbV+3IBCoO140uzdXmBArQ0S88D4EbH91xl2v+Ml1sKalcFKUBadHLeHfU/p9AbsOfGw== + dependencies: + "@types/node" ">=8.1.0" + qs "^6.11.0" + +strnum@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" + integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== + +strtok3@^6.2.4: + version "6.3.0" + resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-6.3.0.tgz#358b80ffe6d5d5620e19a073aa78ce947a90f9a0" + integrity sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw== + dependencies: + "@tokenizer/token" "^0.3.0" + peek-readable "^4.1.0" + +style-loader@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-2.0.0.tgz#9669602fd4690740eaaec137799a03addbbc393c" + integrity sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +stylehacks@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.0.0.tgz#9fdd7c217660dae0f62e14d51c89f6c01b3cb738" + integrity sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw== + dependencies: + browserslist "^4.21.4" + postcss-selector-parser "^6.0.4" + +stylis@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51" + integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== + +supports-color@^5.3.0, supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svgo@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.0.2.tgz#5e99eeea42c68ee0dc46aa16da093838c262fe0a" + integrity sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^5.1.0" + css-tree "^2.2.1" + csso "^5.0.5" + picocolors "^1.0.0" + +swc-loader@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/swc-loader/-/swc-loader-0.2.3.tgz#6792f1c2e4c9ae9bf9b933b3e010210e270c186d" + integrity sha512-D1p6XXURfSPleZZA/Lipb3A8pZ17fP4NObZvFCDjK/OKljroqDpPmsBdTraWhVBqUNpcWBQY1imWdoPScRlQ7A== + +swc-minify-webpack-plugin@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/swc-minify-webpack-plugin/-/swc-minify-webpack-plugin-2.1.1.tgz#2c63fe592d49541733d7557b3af8f97c7ffa78b9" + integrity sha512-/9ud/libNWUC5p71vXWhW/O2Nc0essW8D9pY4P4ol0ceM8OcFbNr41R9YFqTkmktqUL2t0WwXau+FkR4T1+PJA== + +tabbable@^5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-5.3.3.tgz#aac0ff88c73b22d6c3c5a50b1586310006b47fbf" + integrity sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA== + +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +tar-fs@^2.0.0, tar-fs@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +terser-webpack-plugin@^5.3.6, terser-webpack-plugin@^5.3.7: + version "5.3.9" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" + integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.17" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.1" + terser "^5.16.8" + +terser@^5.10.0, terser@^5.16.8: + version "5.17.7" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.17.7.tgz#2a8b134826fe179b711969fd9d9a0c2479b2a8c3" + integrity sha512-/bi0Zm2C6VAexlGgLlVxA0P2lru/sdLyfCVaRMfKVo9nWxbmz7f/sD8VPybPeSUJaJcwmCJis9pBIhcVcG1QcQ== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +through2@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +timers-ext@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" + integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== + dependencies: + es5-ext "~0.10.46" + next-tick "1" + +tiny-invariant@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.6.tgz#b3f9b38835e36a41c843a3b0907a5a7b3755de73" + integrity sha512-FOyLWWVjG+aC0UqG76V53yAWdXfH8bO6FNmyZOuUrzDzK8DI3/JRY25UD7+g49JWM1LXwymsKERB+DzI0dTEQA== + +tiny-invariant@^1.0.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" + integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw== + +tiny-warning@^1.0.0, tiny-warning@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +token-types@^4.1.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/token-types/-/token-types-4.2.1.tgz#0f897f03665846982806e138977dbe72d44df753" + integrity sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ== + dependencies: + "@tokenizer/token" "^0.3.0" + ieee754 "^1.2.1" + +totalist@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" + integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== + +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" + integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== + dependencies: + nopt "~1.0.10" + +tr46@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" + integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== + dependencies: + punycode "^2.1.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +truncate-utf8-bytes@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" + integrity sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ== + dependencies: + utf8-byte-length "^1.0.1" + +ts-essentials@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-7.0.3.tgz#686fd155a02133eedcc5362dc8b5056cde3e5a38" + integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== + +ts-node@^9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" + integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== + dependencies: + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.17" + yn "3.1.1" + +tsconfig-paths@^3.12.0: + version "3.14.2" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" + integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^1.11.1, tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.3.1, tslib@^2.5.0: + version "2.5.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" + integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + +typescript@^4.8.4: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +undefsafe@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" + integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== + +unfetch@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.2.0.tgz#7e21b0ef7d363d8d9af0fb929a5555f6ef97a3be" + integrity sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +untildify@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== + +update-browserslist-db@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" + integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-loader@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" + integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== + dependencies: + loader-utils "^2.0.0" + mime-types "^2.1.27" + schema-utils "^3.0.0" + +use-context-selector@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/use-context-selector/-/use-context-selector-1.4.1.tgz#eb96279965846b72915d7f899b8e6ef1d768b0ae" + integrity sha512-Io2ArvcRO+6MWIhkdfMFt+WKQX+Vb++W8DS2l03z/Vw/rz3BclKpM0ynr4LYGyU85Eke+Yx5oIhTY++QR0ZDoA== + +use-isomorphic-layout-effect@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" + integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== + +utf8-byte-length@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" + integrity sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + +utils-merge@1.0.1, utils-merge@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +uuid@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== + +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +void-elements@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" + integrity sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w== + +warning@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + +watchpack@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" + integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== + +webpack-bundle-analyzer@^4.8.0: + version "4.9.0" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.9.0.tgz#fc093c4ab174fd3dcbd1c30b763f56d10141209d" + integrity sha512-+bXGmO1LyiNx0i9enBu3H8mv42sj/BJWhZNFwjz92tVnBa9J3JMGo2an2IXlEleoDOPn/Hofl5hr/xCpObUDtw== + dependencies: + "@discoveryjs/json-ext" "0.5.7" + acorn "^8.0.4" + acorn-walk "^8.0.0" + chalk "^4.1.0" + commander "^7.2.0" + gzip-size "^6.0.0" + lodash "^4.17.20" + opener "^1.5.2" + sirv "^1.0.7" + ws "^7.3.1" + +webpack-cli@^4.10.0: + version "4.10.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.10.0.tgz#37c1d69c8d85214c5a65e589378f53aec64dab31" + integrity sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w== + dependencies: + "@discoveryjs/json-ext" "^0.5.0" + "@webpack-cli/configtest" "^1.2.0" + "@webpack-cli/info" "^1.5.0" + "@webpack-cli/serve" "^1.7.0" + colorette "^2.0.14" + commander "^7.0.0" + cross-spawn "^7.0.3" + fastest-levenshtein "^1.0.12" + import-local "^3.0.2" + interpret "^2.2.0" + rechoir "^0.7.0" + webpack-merge "^5.7.3" + +webpack-dev-middleware@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-6.0.1.tgz#fd585127ed44dab3f253daf0d98f4d58a5088cc2" + integrity sha512-PZPZ6jFinmqVPJZbisfggDiC+2EeGZ1ZByyMP5sOFJcPPWSexalISz+cvm+j+oYPT7FIJyxT76esjnw9DhE5sw== + dependencies: + colorette "^2.0.10" + memfs "^3.4.12" + mime-types "^2.1.31" + range-parser "^1.2.1" + schema-utils "^4.0.0" + +webpack-hot-middleware@^2.25.3: + version "2.25.3" + resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.25.3.tgz#be343ce2848022cfd854dd82820cd730998c6794" + integrity sha512-IK/0WAHs7MTu1tzLTjio73LjS3Ov+VvBKQmE8WPlJutgG5zT6Urgq/BbAdRrHTRpyzK0dvAvFh1Qg98akxgZpA== + dependencies: + ansi-html-community "0.0.8" + html-entities "^2.1.0" + strip-ansi "^6.0.0" + +webpack-merge@^5.7.3: + version "5.9.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.9.0.tgz#dc160a1c4cf512ceca515cc231669e9ddb133826" + integrity sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg== + dependencies: + clone-deep "^4.0.1" + wildcard "^2.0.0" + +webpack-sources@^1.1.0: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack@^5.78.0: + version "5.86.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.86.0.tgz#b0eb81794b62aee0b7e7eb8c5073495217d9fc6d" + integrity sha512-3BOvworZ8SO/D4GVP+GoRC3fVeg5MO4vzmq8TJJEkdmopxyazGDxN8ClqN12uzrZW9Tv8EED8v5VSb6Sqyi0pg== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^1.0.0" + "@webassemblyjs/ast" "^1.11.5" + "@webassemblyjs/wasm-edit" "^1.11.5" + "@webassemblyjs/wasm-parser" "^1.11.5" + acorn "^8.7.1" + acorn-import-assertions "^1.9.0" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.14.1" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.9" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.1.2" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.7" + watchpack "^2.4.0" + webpack-sources "^3.2.3" + +whatwg-fetch@^3.4.1: + version "3.6.2" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" + integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== + +whatwg-url@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" + integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== + dependencies: + tr46 "^3.0.0" + webidl-conversions "^7.0.0" + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wildcard@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@^7.3.1: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +xss@^1.0.6: + version "1.0.14" + resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.14.tgz#4f3efbde75ad0d82e9921cc3c95e6590dd336694" + integrity sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw== + dependencies: + commander "^2.20.3" + cssfilter "0.0.10" + +xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs@^16.1.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 0112f4c4ab1d3dc3adf31fdef644c6e416f33d46 Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Wed, 28 Jun 2023 16:35:41 -0400 Subject: [PATCH 63/78] chore: builds custom server example (#2920) --- examples/custom-server/.env.example | 6 + examples/custom-server/.eslintrc.js | 5 + examples/custom-server/.gitignore | 7 + examples/custom-server/.prettierignore | 1 + examples/custom-server/.prettierrc.js | 8 + examples/custom-server/README.md | 118 + examples/custom-server/next-env.d.ts | 5 + examples/custom-server/next.config.js | 13 + examples/custom-server/nodemon.json | 4 + examples/custom-server/package.json | 52 + examples/custom-server/public/favicon.ico | Bin 0 -> 17223 bytes examples/custom-server/public/favicon.svg | 15 + .../app/_components/Gutter/index.module.scss | 7 + .../src/app/_components/Gutter/index.tsx | 33 + .../_components/RichText/Serialize/index.tsx | 180 + .../_components/RichText/index.module.scss | 20 + .../src/app/_components/RichText/index.tsx | 23 + examples/custom-server/src/app/globals.scss | 106 + .../custom-server/src/app/layout.module.scss | 16 + examples/custom-server/src/app/layout.tsx | 35 + .../custom-server/src/app/page.module.scss | 17 + examples/custom-server/src/app/page.tsx | 32 + .../custom-server/src/collections/Pages.ts | 39 + examples/custom-server/src/payload-types.ts | 38 + examples/custom-server/src/payload.config.ts | 18 + examples/custom-server/src/seed/index.ts | 93 + examples/custom-server/src/server.ts | 61 + .../custom-server/src/utilities/formatSlug.ts | 24 + examples/custom-server/tsconfig.json | 43 + examples/custom-server/tsconfig.server.json | 13 + examples/custom-server/yarn.lock | 7089 +++++++++++++++++ 31 files changed, 8121 insertions(+) create mode 100644 examples/custom-server/.env.example create mode 100644 examples/custom-server/.eslintrc.js create mode 100644 examples/custom-server/.gitignore create mode 100644 examples/custom-server/.prettierignore create mode 100644 examples/custom-server/.prettierrc.js create mode 100644 examples/custom-server/README.md create mode 100644 examples/custom-server/next-env.d.ts create mode 100644 examples/custom-server/next.config.js create mode 100644 examples/custom-server/nodemon.json create mode 100644 examples/custom-server/package.json create mode 100644 examples/custom-server/public/favicon.ico create mode 100644 examples/custom-server/public/favicon.svg create mode 100644 examples/custom-server/src/app/_components/Gutter/index.module.scss create mode 100644 examples/custom-server/src/app/_components/Gutter/index.tsx create mode 100644 examples/custom-server/src/app/_components/RichText/Serialize/index.tsx create mode 100644 examples/custom-server/src/app/_components/RichText/index.module.scss create mode 100644 examples/custom-server/src/app/_components/RichText/index.tsx create mode 100644 examples/custom-server/src/app/globals.scss create mode 100644 examples/custom-server/src/app/layout.module.scss create mode 100644 examples/custom-server/src/app/layout.tsx create mode 100644 examples/custom-server/src/app/page.module.scss create mode 100644 examples/custom-server/src/app/page.tsx create mode 100644 examples/custom-server/src/collections/Pages.ts create mode 100644 examples/custom-server/src/payload-types.ts create mode 100644 examples/custom-server/src/payload.config.ts create mode 100644 examples/custom-server/src/seed/index.ts create mode 100644 examples/custom-server/src/server.ts create mode 100644 examples/custom-server/src/utilities/formatSlug.ts create mode 100644 examples/custom-server/tsconfig.json create mode 100644 examples/custom-server/tsconfig.server.json create mode 100644 examples/custom-server/yarn.lock diff --git a/examples/custom-server/.env.example b/examples/custom-server/.env.example new file mode 100644 index 0000000000..02b36af141 --- /dev/null +++ b/examples/custom-server/.env.example @@ -0,0 +1,6 @@ +MONGODB_URI=mongodb://localhost/payload-example-custom-server +PAYLOAD_SECRET=PAYLOAD_CUSTOM_SERVER_EXAMPLE_SECRET_KEY +PAYLOAD_PUBLIC_SERVER_URL=http://localhost:3000 +NEXT_PUBLIC_SERVER_URL=http://localhost:3000 +PAYLOAD_SEED=true +PAYLOAD_DROP_DATABASE=true diff --git a/examples/custom-server/.eslintrc.js b/examples/custom-server/.eslintrc.js new file mode 100644 index 0000000000..19b786c125 --- /dev/null +++ b/examples/custom-server/.eslintrc.js @@ -0,0 +1,5 @@ +module.exports = { + root: true, + extends: ['@payloadcms'], + ignorePatterns: ['**/payload-types.ts'], +} diff --git a/examples/custom-server/.gitignore b/examples/custom-server/.gitignore new file mode 100644 index 0000000000..06007eac47 --- /dev/null +++ b/examples/custom-server/.gitignore @@ -0,0 +1,7 @@ +build +dist +node_modules +package-lock.json +.env +.next +.vercel diff --git a/examples/custom-server/.prettierignore b/examples/custom-server/.prettierignore new file mode 100644 index 0000000000..e732bb4ea2 --- /dev/null +++ b/examples/custom-server/.prettierignore @@ -0,0 +1 @@ +**/payload-types.ts diff --git a/examples/custom-server/.prettierrc.js b/examples/custom-server/.prettierrc.js new file mode 100644 index 0000000000..70c17c995f --- /dev/null +++ b/examples/custom-server/.prettierrc.js @@ -0,0 +1,8 @@ +module.exports = { + printWidth: 100, + parser: "typescript", + semi: false, + singleQuote: true, + trailingComma: "all", + arrowParens: "avoid", +}; diff --git a/examples/custom-server/README.md b/examples/custom-server/README.md new file mode 100644 index 0000000000..a214ae0f08 --- /dev/null +++ b/examples/custom-server/README.md @@ -0,0 +1,118 @@ +# Payload Custom Server Example + +This example demonstrates how to serve your front-end alongside [Payload](https://github.com/payloadcms/payload) in a single Express server. This pattern will cut down on hosting costs and can simplify your deployment process. + +## Quick Start + +To spin up this example locally, follow these steps: + +1. First clone the repo +1. Then `cd YOUR_PROJECT_REPO && cp .env.example .env` +1. Next `yarn && yarn dev` +1. Now `open http://localhost:3000/admin` to access the admin panel +1. Login with email `dev@payloadcms.com` and password `test` + +That's it! Changes made in `./src` will be reflected in your app. See the [Development](#development) section for more details. + +## How it works + +When you use Payload, you plug it into _**your**_ Express server. That's a fundamental difference between Payload and other application frameworks. It means that when you use Payload, you're technically _adding_ Payload to _your_ app, and not building a "Payload app". + +One of the strengths of this pattern is that it lets you do powerful things like integrate your Payload instance directly with your front-end. This will allow you to host Payload alongside a fully dynamic, CMS-integrated website or app on a single, combined server—while still getting all of the benefits of a headless CMS. + +### Express + +In every Payload app is a `server.ts` file in which you instantiate your own Express server and attach Payload to it. This is where you can can add any custom Express middleware or routes you need to serve your front-end. To combine Payload with your framework on the same server, we need to do three main things: + +1. Modify your `server.ts` file to build and serve your front-end using the APIs provided by your framework +2. Modify your `package.json` scripts include your framework's build commands +3. Use a separate `tsconfig.server.json` file to build the server, because your front-end may require incompatible TypeScript settings + +This example demonstrates how to do this with [Next.js](https://nextjs.org), although the same principles apply to any front-end framework like [Vue](https://vuejs.org), [Nuxt](https://nuxt.com), or [SvelteKit](https://kit.svelte.dev). If your framework does not yet have instructions listed here, please consider contributing them to this example for others to use. To quickly eject Next.js from this example, see the [Eject](#eject) section. + +#### Next.js + +For Next.js apps, your `server.ts` file looks something like this: + +```ts +import next from 'next' +import nextBuild from 'next/dist/build' + +// Instantiate Express and Payload +// ... + +// If building, start the server to build the Next.js app then exit +if (process.env.NEXT_BUILD) { + app.listen(3000, async () => { + await nextBuild(path.join(__dirname, '../')) + process.exit() + }) + + return +} + +// Attach Next.js routes and start the server +const nextApp = next({ + dev: process.env.NODE_ENV !== 'production', +}) + +const nextHandler = nextApp.getRequestHandler() + +app.get('*', (req, res) => nextHandler(req, res)) + +nextApp.prepare().then(() => { + app.listen(3000) +}) +``` + +Check out the [server.ts](./src/server.ts) in this repository for a complete working example. You can also see the [Next.js docs](https://nextjs.org/docs/advanced-features/custom-server) for more details. + +Then your `package.json` might look something like this: + +```json +// ... +"scripts": { + // ... + "build:payload": "payload build", + "build:server": "tsc --project tsconfig.server.json", + "build:next": "next build", + "build": "yarn build:payload && yarn build:server && yarn build:next", +} +``` + +Check out the [package.json](./src/package.json) in this repository for a complete working example. You can also see the [Next.js docs](https://nextjs.org/docs/api-reference/cli#build) for more details. + +## Eject + +To eject Next.js from this template and replace it with another front-end framework, follow these steps: + +1. Remove the `next`, `react`, and `react-dom` dependencies from your `package.json` file +1. Remove the `next.config.js` and `next-env.d.ts` files from your project root +1. Remove the `./src/app` directory and all of its contents + +Now you can install and setup any other framework you'd like. Follow the [Express](#express) instructions above to make the necessary changes to build and serve your front-end. + +## Development + +To spin up this example locally, follow the [Quick Start](#quick-start). + +### Seed + +On boot, a seed script is included to scaffold a basic database for you to use as an example. This is done by setting the `PAYLOAD_DROP_DATABASE` and `PAYLOAD_SEED` environment variables which are included in the `.env.example` by default. You can remove these from your `.env` to prevent this behavior. You can also freshly seed your project at any time by running `yarn seed`. This seed creates an admin user with email `dev@payloadcms.com`, password `test`, and a `home` page. + +> NOTICE: seeding the database is destructive because it drops your current database to populate a fresh one from the seed template. Only run this command if you are starting a new project or can afford to lose your current data. + +## Production + +To run Payload in production, you need to build and serve the Admin panel. To do so, follow these steps: + +1. First, invoke the `payload build` script by running `yarn build` or `npm run build` in your project root. This creates a `./build` directory with a production-ready admin bundle. +1. Then, run `yarn serve` or `npm run serve` to run Node in production and serve Payload from the `./build` directory. + +### Deployment + +The easiest way to deploy your project is to use [Payload Cloud](https://payloadcms.com/new/import), a one-click hosting solution to deploy production-ready instances of your Payload apps directly from your GitHub repo. You can also choose to self-host your app, check out the [Deployment](https://payloadcms.com/docs/production/deployment) docs for more details. + +## Questions + +If you have any issues or questions, reach out to us on [Discord](https://discord.com/invite/payload) or start a [GitHub discussion](https://github.com/payloadcms/payload/discussions). diff --git a/examples/custom-server/next-env.d.ts b/examples/custom-server/next-env.d.ts new file mode 100644 index 0000000000..4f11a03dc6 --- /dev/null +++ b/examples/custom-server/next-env.d.ts @@ -0,0 +1,5 @@ +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/examples/custom-server/next.config.js b/examples/custom-server/next.config.js new file mode 100644 index 0000000000..d03bb2bcce --- /dev/null +++ b/examples/custom-server/next.config.js @@ -0,0 +1,13 @@ +require('dotenv').config() + +module.exports = { + publicRuntimeConfig: { + SERVER_URL: process.env.PAYLOAD_PUBLIC_SERVER_URL, + }, + images: { + domains: [ + 'localhost', + // Your domain(s) here + ], + }, +} diff --git a/examples/custom-server/nodemon.json b/examples/custom-server/nodemon.json new file mode 100644 index 0000000000..c2d3542ec7 --- /dev/null +++ b/examples/custom-server/nodemon.json @@ -0,0 +1,4 @@ +{ + "ext": "ts,tsx", + "exec": "ts-node src/server.ts" +} diff --git a/examples/custom-server/package.json b/examples/custom-server/package.json new file mode 100644 index 0000000000..5e60401c60 --- /dev/null +++ b/examples/custom-server/package.json @@ -0,0 +1,52 @@ +{ + "name": "payload-example-custom-server", + "description": "Payload custom server example.", + "version": "1.0.0", + "main": "dist/server.js", + "license": "MIT", + "scripts": { + "dev": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts nodemon", + "seed": "rm -rf media && cross-env PAYLOAD_SEED=true PAYLOAD_DROP_DATABASE=true PAYLOAD_CONFIG_PATH=src/payload.config.ts ts-node src/server.ts", + "build:payload": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts payload build", + "build:server": "tsc --project tsconfig.server.json", + "build:next": "cross-env PAYLOAD_CONFIG_PATH=dist/payload.config.js NEXT_BUILD=true node dist/server.js", + "build": "cross-env NODE_ENV=production yarn build:payload && yarn build:server && yarn copyfiles && yarn build:next", + "serve": "cross-env PAYLOAD_CONFIG_PATH=dist/payload.config.js NODE_ENV=production node dist/server.js", + "copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png}\" dist/", + "generate:types": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts payload generate:types", + "generate:graphQLSchema": "PAYLOAD_CONFIG_PATH=src/payload.config.ts payload generate:graphQLSchema", + "lint": "eslint src", + "lint:fix": "eslint --fix --ext .ts,.tsx src" + }, + "dependencies": { + "dotenv": "^8.2.0", + "escape-html": "^1.0.3", + "express": "^4.17.1", + "next": "^13.4.7", + "payload": "^1.8.2", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@payloadcms/eslint-config": "^0.0.1", + "@types/escape-html": "^1.0.2", + "@types/express": "^4.17.9", + "@types/node": "18.11.3", + "@types/react": "18.0.21", + "@typescript-eslint/eslint-plugin": "^5.51.0", + "@typescript-eslint/parser": "^5.51.0", + "copyfiles": "^2.4.1", + "cross-env": "^7.0.3", + "eslint": "^8.19.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-filenames": "^1.3.2", + "eslint-plugin-import": "2.25.4", + "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-simple-import-sort": "^10.0.0", + "nodemon": "^2.0.22", + "prettier": "^2.7.1", + "ts-node": "^9.1.1", + "typescript": "^4.8.4" + } +} diff --git a/examples/custom-server/public/favicon.ico b/examples/custom-server/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..601b77718ca588b59f2ff9da3cb5039856844e5a GIT binary patch literal 17223 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 literal 0 HcmV?d00001 diff --git a/examples/custom-server/public/favicon.svg b/examples/custom-server/public/favicon.svg new file mode 100644 index 0000000000..86dc2defc4 --- /dev/null +++ b/examples/custom-server/public/favicon.svg @@ -0,0 +1,15 @@ + + + + + diff --git a/examples/custom-server/src/app/_components/Gutter/index.module.scss b/examples/custom-server/src/app/_components/Gutter/index.module.scss new file mode 100644 index 0000000000..065eb85eae --- /dev/null +++ b/examples/custom-server/src/app/_components/Gutter/index.module.scss @@ -0,0 +1,7 @@ +.gutterLeft { + padding-left: var(--gutter-h); +} + +.gutterRight { + padding-right: var(--gutter-h); +} diff --git a/examples/custom-server/src/app/_components/Gutter/index.tsx b/examples/custom-server/src/app/_components/Gutter/index.tsx new file mode 100644 index 0000000000..95c7254146 --- /dev/null +++ b/examples/custom-server/src/app/_components/Gutter/index.tsx @@ -0,0 +1,33 @@ +import React, { forwardRef, Ref } from 'react' + +import classes from './index.module.scss' + +type Props = { + left?: boolean + right?: boolean + className?: string + children: React.ReactNode + ref?: Ref +} + +export const Gutter: React.FC = forwardRef((props, ref) => { + const { left = true, right = true, className, children } = props + + return ( +

  • + +
  • + ) + + case 'link': + return ( + + + + ) + + default: + return ( +

    + +

    + ) + } + })} + + ) +} diff --git a/examples/custom-server/src/app/_components/RichText/index.module.scss b/examples/custom-server/src/app/_components/RichText/index.module.scss new file mode 100644 index 0000000000..764b916f18 --- /dev/null +++ b/examples/custom-server/src/app/_components/RichText/index.module.scss @@ -0,0 +1,20 @@ +.richText { + text-align: center; // hack but whatever + max-width: 1000px; + + a { + text-decoration: underline; + } + + :first-child { + margin-top: 0; + } + + :last-child { + margin-bottom: 0; + } + + span { + white-space: pre-wrap; + } +} diff --git a/examples/custom-server/src/app/_components/RichText/index.tsx b/examples/custom-server/src/app/_components/RichText/index.tsx new file mode 100644 index 0000000000..3a226977ba --- /dev/null +++ b/examples/custom-server/src/app/_components/RichText/index.tsx @@ -0,0 +1,23 @@ +'use client' + +import React from 'react' + +import { CustomRenderers, Serialize as SerializeContent } from './Serialize' + +import classes from './index.module.scss' + +export const RichText: React.FC<{ + className?: string + content: any + customRenderers?: CustomRenderers +}> = ({ className, content, customRenderers }) => { + if (!content) { + return null + } + + return ( +
    + +
    + ) +} diff --git a/examples/custom-server/src/app/globals.scss b/examples/custom-server/src/app/globals.scss new file mode 100644 index 0000000000..eae04652f2 --- /dev/null +++ b/examples/custom-server/src/app/globals.scss @@ -0,0 +1,106 @@ +$breakpoint: 1000px; + +:root { + --max-width: 1100px; + --border-radius: 12px; + --foreground-rgb: 0, 0, 0; + --background-rgb: 255, 255, 255; + --block-spacing: 2rem; + --gutter-h: 4rem; + + @media (max-width: $breakpoint) { + --block-spacing: 1rem; + --gutter-h: 2rem; + } +} + +@media (prefers-color-scheme: dark) { + :root { + --foreground-rgb: 255, 255, 255; + --background-rgb: 7, 7, 7; + } +} + +* { + box-sizing: border-box; +} + +html { + font-size: 20px; + line-height: 1.5; + font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + + @media (max-width: $breakpoint) { + font-size: 16px; + } +} + +html, +body { + max-width: 100vw; + overflow-x: hidden; +} + +body { + margin: 0; + color: rgb(var(--foreground-rgb)); + background: rgb(var(--background-rgb)); +} + +img { + height: auto; + max-width: 100%; + display: block; +} + +h1 { + font-size: 4.5rem; + line-height: 1.2; + margin: 0 0 2.5rem 0; + + @media (max-width: $breakpoint) { + font-size: 3rem; + margin: 0 0 1.5rem 0; + } +} + +h2 { + font-size: 3.5rem; + line-height: 1.2; + margin: 0 0 2.5rem 0; +} + +h3 { + font-size: 2.5rem; + line-height: 1.2; + margin: 0 0 2rem 0; +} + +h4 { + font-size: 1.5rem; + line-height: 1.2; + margin: 0 0 1rem 0; +} + +h5 { + font-size: 1.25rem; + line-height: 1.2; + margin: 0 0 1rem 0; +} + +h6 { + font-size: 1rem; + line-height: 1.2; + margin: 0 0 1rem 0; +} + +a { + color: inherit; + text-decoration: none; +} + +@media (prefers-color-scheme: dark) { + html { + color-scheme: dark; + } +} diff --git a/examples/custom-server/src/app/layout.module.scss b/examples/custom-server/src/app/layout.module.scss new file mode 100644 index 0000000000..2aa6787975 --- /dev/null +++ b/examples/custom-server/src/app/layout.module.scss @@ -0,0 +1,16 @@ +.body { + padding: 6rem 0; + min-height: 100vh; +} + +.logo { + width: 200px; +} + +.header { + margin-bottom: 4rem; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} diff --git a/examples/custom-server/src/app/layout.tsx b/examples/custom-server/src/app/layout.tsx new file mode 100644 index 0000000000..e757927a91 --- /dev/null +++ b/examples/custom-server/src/app/layout.tsx @@ -0,0 +1,35 @@ +import React from 'react' + +import './globals.scss' + +import classes from './layout.module.scss' + +export const metadata = { + title: 'Payload Custom Server', + description: 'Serve Payload alongside any front-end framework.', +} + +export default function RootLayout({ children }: { children: React.ReactNode }) { + return ( + + +
    + + + + payload cms logo + + +
    + {children} + + + ) +} diff --git a/examples/custom-server/src/app/page.module.scss b/examples/custom-server/src/app/page.module.scss new file mode 100644 index 0000000000..ee7faf1739 --- /dev/null +++ b/examples/custom-server/src/app/page.module.scss @@ -0,0 +1,17 @@ +.main { + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; + margin: 0 auto; + + @media (max-width: 768px) { + padding: 2rem 0; + } +} + +.body { + display: flex; + flex-direction: column; + justify-content: space-between; +} diff --git a/examples/custom-server/src/app/page.tsx b/examples/custom-server/src/app/page.tsx new file mode 100644 index 0000000000..8de752082d --- /dev/null +++ b/examples/custom-server/src/app/page.tsx @@ -0,0 +1,32 @@ +import React, { Fragment } from 'react' +import { notFound } from 'next/navigation' + +import { Page } from './../payload-types' +import { Gutter } from './_components/Gutter' +import { RichText } from './_components/RichText' + +import classes from './page.module.scss' + +export default async function Home() { + const home: Page = await fetch( + `${process.env.NEXT_PUBLIC_SERVER_URL}/api/pages?where[slug][equals]=home`, + ) + .then(res => res.json()) + .then(res => res?.docs?.[0]) + + if (!home) { + return notFound() + } + + return ( + +
    + +
    + +
    +
    +
    +
    + ) +} diff --git a/examples/custom-server/src/collections/Pages.ts b/examples/custom-server/src/collections/Pages.ts new file mode 100644 index 0000000000..6f881debb0 --- /dev/null +++ b/examples/custom-server/src/collections/Pages.ts @@ -0,0 +1,39 @@ +import type { CollectionConfig } from 'payload/types' + +import formatSlug from '../utilities/formatSlug' + +export const Pages: CollectionConfig = { + slug: 'pages', + admin: { + useAsTitle: 'title', + }, + access: { + read: () => true, + }, + fields: [ + { + name: 'title', + label: 'Title', + type: 'text', + required: true, + }, + { + name: 'richText', + type: 'richText', + label: 'Content', + }, + { + name: 'slug', + label: 'Slug', + type: 'text', + admin: { + position: 'sidebar', + }, + hooks: { + beforeValidate: [formatSlug('title')], + }, + }, + ], +} + +export default Pages diff --git a/examples/custom-server/src/payload-types.ts b/examples/custom-server/src/payload-types.ts new file mode 100644 index 0000000000..81eff1ebe5 --- /dev/null +++ b/examples/custom-server/src/payload-types.ts @@ -0,0 +1,38 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * This file was automatically generated by Payload. + * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, + * and re-run `payload generate:types` to regenerate this file. + */ + +export interface Config { + collections: { + pages: Page; + users: User; + }; + globals: {}; +} +export interface Page { + id: string; + title: string; + richText?: { + [k: string]: unknown; + }[]; + slug?: string; + updatedAt: string; + createdAt: string; +} +export interface User { + id: string; + updatedAt: string; + createdAt: string; + email: string; + resetPasswordToken?: string; + resetPasswordExpiration?: string; + salt?: string; + hash?: string; + loginAttempts?: number; + lockUntil?: string; + password?: string; +} diff --git a/examples/custom-server/src/payload.config.ts b/examples/custom-server/src/payload.config.ts new file mode 100644 index 0000000000..23eda037c8 --- /dev/null +++ b/examples/custom-server/src/payload.config.ts @@ -0,0 +1,18 @@ +import dotenv from 'dotenv' +import path from 'path' + +dotenv.config({ + path: path.resolve(__dirname, '../.env'), +}) + +import { buildConfig } from 'payload/config' + +import { Pages } from './collections/Pages' + +export default buildConfig({ + serverURL: process.env.PAYLOAD_PUBLIC_SERVER_URL || '', + collections: [Pages], + typescript: { + outputFile: path.resolve(__dirname, 'payload-types.ts'), + }, +}) diff --git a/examples/custom-server/src/seed/index.ts b/examples/custom-server/src/seed/index.ts new file mode 100644 index 0000000000..8d29818861 --- /dev/null +++ b/examples/custom-server/src/seed/index.ts @@ -0,0 +1,93 @@ +import type { Payload } from 'payload' + +export const seed = async (payload: Payload): Promise => { + // create admin + await payload.create({ + collection: 'users', + data: { + email: 'dev@payloadcms.com', + password: 'test', + }, + }) + + // create home page + await Promise.all([ + await payload.create({ + collection: 'pages', + data: { + title: 'Home', + richText: [ + { + children: [ + { + text: 'Payload Custom Server Example', + }, + ], + type: 'h1', + }, + { + children: [ + { + text: 'This is an example of how to host ', + }, + { + type: 'link', + linkType: 'custom', + url: 'https://payloadcms.com', + children: [ + { + text: 'Payload', + }, + ], + newTab: true, + }, + { + text: ' alongside your front-end by sharing a single Express server. You are currently browsing a ', + }, + { + type: 'link', + linkType: 'custom', + url: 'https://nextjs.org', + children: [ + { + text: 'Next.js', + }, + ], + newTab: true, + }, + { + text: ' app, but you can easily swap in any framework you like—check out the ', + }, + { + type: 'link', + linkType: 'custom', + url: 'http://github.com/payloadcms/payload/tree/master/examples/custom-server', + children: [ + { + text: 'README.md', + }, + ], + }, + { + text: ' for instructions on how to do this. ', + }, + { + type: 'link', + linkType: 'custom', + url: 'http://localhost:3000/admin', + children: [ + { + text: 'Click here', + }, + ], + }, + { + text: ' to navigate to the admin panel and login.', + }, + ], + }, + ], + }, + }), + ]) +} diff --git a/examples/custom-server/src/server.ts b/examples/custom-server/src/server.ts new file mode 100644 index 0000000000..c0b5ba213a --- /dev/null +++ b/examples/custom-server/src/server.ts @@ -0,0 +1,61 @@ +import dotenv from 'dotenv' +import next from 'next' +import nextBuild from 'next/dist/build' +import path from 'path' + +dotenv.config({ + path: path.resolve(__dirname, '../.env'), +}) + +import express from 'express' +import payload from 'payload' + +import { seed } from './seed' + +const app = express() +const PORT = process.env.PORT || 3000 + +const start = async (): Promise => { + await payload.init({ + secret: process.env.PAYLOAD_SECRET || '', + mongoURL: process.env.MONGODB_URI || '', + express: app, + onInit: () => { + payload.logger.info(`Payload Admin URL: ${payload.getAdminURL()}`) + }, + }) + + if (process.env.PAYLOAD_SEED === 'true') { + payload.logger.info('---- SEEDING DATABASE ----') + await seed(payload) + } + + if (process.env.NEXT_BUILD) { + app.listen(PORT, async () => { + payload.logger.info(`Next.js is now building...`) + // @ts-expect-error + await nextBuild(path.join(__dirname, '../')) + process.exit() + }) + + return + } + + const nextApp = next({ + dev: process.env.NODE_ENV !== 'production', + }) + + const nextHandler = nextApp.getRequestHandler() + + app.get('*', (req, res) => nextHandler(req, res)) + + nextApp.prepare().then(() => { + payload.logger.info('Next.js started') + + app.listen(PORT, async () => { + payload.logger.info(`Server listening on ${PORT}...`) + }) + }) +} + +start() diff --git a/examples/custom-server/src/utilities/formatSlug.ts b/examples/custom-server/src/utilities/formatSlug.ts new file mode 100644 index 0000000000..eef4335725 --- /dev/null +++ b/examples/custom-server/src/utilities/formatSlug.ts @@ -0,0 +1,24 @@ +import type { FieldHook } from 'payload/types' + +const format = (val: string): string => + val + .replace(/ /g, '-') + .replace(/[^\w-/]+/g, '') + .toLowerCase() + +const formatSlug = + (fallback: string): FieldHook => + ({ value, originalDoc, data }) => { + if (typeof value === 'string') { + return format(value) + } + const fallbackData = data?.[fallback] || originalDoc?.[fallback] + + if (fallbackData && typeof fallbackData === 'string') { + return format(fallbackData) + } + + return value + } + +export default formatSlug diff --git a/examples/custom-server/tsconfig.json b/examples/custom-server/tsconfig.json new file mode 100644 index 0000000000..09915cf53e --- /dev/null +++ b/examples/custom-server/tsconfig.json @@ -0,0 +1,43 @@ +{ + "compilerOptions": { + "esModuleInterop": true, + "target": "es5", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "strict": false, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "incremental": true, + "jsx": "preserve", + "module": "CommonJS", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "plugins": [ + { + "name": "next" + } + ] + }, + "include": [ + "next-env.d.ts", + "server.ts", + "payload.config.ts", + "**/*.ts", + "**/*.tsx", + "next.config.js", + ".next/types/**/*.ts" + ], + "exclude": [ + "node_modules" + ], + "ts-node": { + "transpileOnly": true, + "swc": true + } +} diff --git a/examples/custom-server/tsconfig.server.json b/examples/custom-server/tsconfig.server.json new file mode 100644 index 0000000000..42a7305af3 --- /dev/null +++ b/examples/custom-server/tsconfig.server.json @@ -0,0 +1,13 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "commonjs", + "outDir": "dist", + "noEmit": false, + "jsx": "react", + }, + "include": [ + "src/server.ts", + "src/payload.config.ts", + ] +} diff --git a/examples/custom-server/yarn.lock b/examples/custom-server/yarn.lock new file mode 100644 index 0000000000..03a6da083a --- /dev/null +++ b/examples/custom-server/yarn.lock @@ -0,0 +1,7089 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" + integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== + dependencies: + "@babel/highlight" "^7.22.5" + +"@babel/helper-module-imports@^7.16.7": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" + integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + +"@babel/helper-validator-identifier@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" + integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== + +"@babel/highlight@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" + integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== + dependencies: + "@babel/helper-validator-identifier" "^7.22.5" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.19.0", "@babel/runtime@^7.20.6", "@babel/runtime@^7.21.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.5.tgz#8564dd588182ce0047d55d7a75e93921107b57ec" + integrity sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA== + dependencies: + regenerator-runtime "^0.13.11" + +"@babel/types@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" + integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" + to-fast-properties "^2.0.0" + +"@bcherny/json-schema-ref-parser@9.0.9": + version "9.0.9" + resolved "https://registry.yarnpkg.com/@bcherny/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz#09899d405bc708c0acac0066ae8db5b94d465ca4" + integrity sha512-vmEmnJCfpkLdas++9OYg6riIezTYqTHpqUTODJzHLzs5UnXujbOJW9VwcVCnyo1mVRt32FRr23iXBx/sX8YbeQ== + dependencies: + "@jsdevtools/ono" "^7.1.3" + "@types/json-schema" "^7.0.6" + call-me-maybe "^1.0.1" + js-yaml "^4.1.0" + +"@csstools/postcss-cascade-layers@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz#8a997edf97d34071dd2e37ea6022447dd9e795ad" + integrity sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA== + dependencies: + "@csstools/selector-specificity" "^2.0.2" + postcss-selector-parser "^6.0.10" + +"@csstools/postcss-color-function@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz#2bd36ab34f82d0497cfacdc9b18d34b5e6f64b6b" + integrity sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-font-format-keywords@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz#677b34e9e88ae997a67283311657973150e8b16a" + integrity sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-hwb-function@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz#ab54a9fce0ac102c754854769962f2422ae8aa8b" + integrity sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-ic-unit@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz#28237d812a124d1a16a5acc5c3832b040b303e58" + integrity sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-is-pseudo-class@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz#846ae6c0d5a1eaa878fce352c544f9c295509cd1" + integrity sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA== + dependencies: + "@csstools/selector-specificity" "^2.0.0" + postcss-selector-parser "^6.0.10" + +"@csstools/postcss-nested-calc@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz#d7e9d1d0d3d15cf5ac891b16028af2a1044d0c26" + integrity sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-normalize-display-values@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz#15da54a36e867b3ac5163ee12c1d7f82d4d612c3" + integrity sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-oklab-function@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz#88cee0fbc8d6df27079ebd2fa016ee261eecf844" + integrity sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-progressive-custom-properties@^1.1.0", "@csstools/postcss-progressive-custom-properties@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz#542292558384361776b45c85226b9a3a34f276fa" + integrity sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-stepped-value-functions@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz#f8772c3681cc2befed695e2b0b1d68e22f08c4f4" + integrity sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-text-decoration-shorthand@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz#ea96cfbc87d921eca914d3ad29340d9bcc4c953f" + integrity sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-trigonometric-functions@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz#94d3e4774c36d35dcdc88ce091336cb770d32756" + integrity sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-unset-value@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz#c99bb70e2cdc7312948d1eb41df2412330b81f77" + integrity sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g== + +"@csstools/selector-specificity@^2.0.0", "@csstools/selector-specificity@^2.0.2": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz#2cbcf822bf3764c9658c4d2e568bd0c0cb748016" + integrity sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw== + +"@date-io/core@^2.16.0": + version "2.16.0" + resolved "https://registry.yarnpkg.com/@date-io/core/-/core-2.16.0.tgz#7871bfc1d9bca9aa35ad444a239505589d0f22f6" + integrity sha512-DYmSzkr+jToahwWrsiRA2/pzMEtz9Bq1euJwoOuYwuwIYXnZFtHajY2E6a1VNVDc9jP8YUXK1BvnZH9mmT19Zg== + +"@date-io/date-fns@^2.16.0": + version "2.16.0" + resolved "https://registry.yarnpkg.com/@date-io/date-fns/-/date-fns-2.16.0.tgz#bd5e09b6ecb47ee55e593fc3a87e7b2caaa3da40" + integrity sha512-bfm5FJjucqlrnQcXDVU5RD+nlGmL3iWgkHTq3uAZWVIuBu6dDmGa3m8a6zo2VQQpu8ambq9H22UyUpn7590joA== + dependencies: + "@date-io/core" "^2.16.0" + +"@discoveryjs/json-ext@0.5.7", "@discoveryjs/json-ext@^0.5.0": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== + +"@dnd-kit/accessibility@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@dnd-kit/accessibility/-/accessibility-3.0.1.tgz#3ccbefdfca595b0a23a5dc57d3de96bc6935641c" + integrity sha512-HXRrwS9YUYQO9lFRc/49uO/VICbM+O+ZRpFDe9Pd1rwVv2PCNkRiTZRdxrDgng/UkvdC3Re9r2vwPpXXrWeFzg== + dependencies: + tslib "^2.0.0" + +"@dnd-kit/core@^6.0.7": + version "6.0.8" + resolved "https://registry.yarnpkg.com/@dnd-kit/core/-/core-6.0.8.tgz#040ae13fea9787ee078e5f0361f3b49b07f3f005" + integrity sha512-lYaoP8yHTQSLlZe6Rr9qogouGUz9oRUj4AHhDQGQzq/hqaJRpFo65X+JKsdHf8oUFBzx5A+SJPUvxAwTF2OabA== + dependencies: + "@dnd-kit/accessibility" "^3.0.0" + "@dnd-kit/utilities" "^3.2.1" + tslib "^2.0.0" + +"@dnd-kit/sortable@^7.0.2": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@dnd-kit/sortable/-/sortable-7.0.2.tgz#791d550872457f3f3c843e00d159b640f982011c" + integrity sha512-wDkBHHf9iCi1veM834Gbk1429bd4lHX4RpAwT0y2cHLf246GAvU2sVw/oxWNpPKQNQRQaeGXhAVgrOl1IT+iyA== + dependencies: + "@dnd-kit/utilities" "^3.2.0" + tslib "^2.0.0" + +"@dnd-kit/utilities@^3.2.0", "@dnd-kit/utilities@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@dnd-kit/utilities/-/utilities-3.2.1.tgz#53f9e2016fd2506ec49e404c289392cfff30332a" + integrity sha512-OOXqISfvBw/1REtkSK2N3Fi2EQiLMlWUlqnOK/UpOISqBZPWpE6TqL+jcPtMOkE8TqYGiURvRdPSI9hltNUjEA== + dependencies: + tslib "^2.0.0" + +"@emotion/babel-plugin@^11.11.0": + version "11.11.0" + resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz#c2d872b6a7767a9d176d007f5b31f7d504bb5d6c" + integrity sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/runtime" "^7.18.3" + "@emotion/hash" "^0.9.1" + "@emotion/memoize" "^0.8.1" + "@emotion/serialize" "^1.1.2" + babel-plugin-macros "^3.1.0" + convert-source-map "^1.5.0" + escape-string-regexp "^4.0.0" + find-root "^1.1.0" + source-map "^0.5.7" + stylis "4.2.0" + +"@emotion/cache@^11.11.0", "@emotion/cache@^11.4.0": + version "11.11.0" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.11.0.tgz#809b33ee6b1cb1a625fef7a45bc568ccd9b8f3ff" + integrity sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ== + dependencies: + "@emotion/memoize" "^0.8.1" + "@emotion/sheet" "^1.2.2" + "@emotion/utils" "^1.2.1" + "@emotion/weak-memoize" "^0.3.1" + stylis "4.2.0" + +"@emotion/css@^11.10.5": + version "11.11.2" + resolved "https://registry.yarnpkg.com/@emotion/css/-/css-11.11.2.tgz#e5fa081d0c6e335352e1bc2b05953b61832dca5a" + integrity sha512-VJxe1ucoMYMS7DkiMdC2T7PWNbrEI0a39YRiyDvK2qq4lXwjRbVP/z4lpG+odCsRzadlR+1ywwrTzhdm5HNdew== + dependencies: + "@emotion/babel-plugin" "^11.11.0" + "@emotion/cache" "^11.11.0" + "@emotion/serialize" "^1.1.2" + "@emotion/sheet" "^1.2.2" + "@emotion/utils" "^1.2.1" + +"@emotion/hash@^0.9.1": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.1.tgz#4ffb0055f7ef676ebc3a5a91fb621393294e2f43" + integrity sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ== + +"@emotion/memoize@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" + integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== + +"@emotion/react@^11.8.1": + version "11.11.1" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.11.1.tgz#b2c36afac95b184f73b08da8c214fdf861fa4157" + integrity sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA== + dependencies: + "@babel/runtime" "^7.18.3" + "@emotion/babel-plugin" "^11.11.0" + "@emotion/cache" "^11.11.0" + "@emotion/serialize" "^1.1.2" + "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1" + "@emotion/utils" "^1.2.1" + "@emotion/weak-memoize" "^0.3.1" + hoist-non-react-statics "^3.3.1" + +"@emotion/serialize@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.2.tgz#017a6e4c9b8a803bd576ff3d52a0ea6fa5a62b51" + integrity sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA== + dependencies: + "@emotion/hash" "^0.9.1" + "@emotion/memoize" "^0.8.1" + "@emotion/unitless" "^0.8.1" + "@emotion/utils" "^1.2.1" + csstype "^3.0.2" + +"@emotion/sheet@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.2.tgz#d58e788ee27267a14342303e1abb3d508b6d0fec" + integrity sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA== + +"@emotion/unitless@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3" + integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== + +"@emotion/use-insertion-effect-with-fallbacks@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz#08de79f54eb3406f9daaf77c76e35313da963963" + integrity sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw== + +"@emotion/utils@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.2.1.tgz#bbab58465738d31ae4cb3dbb6fc00a5991f755e4" + integrity sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg== + +"@emotion/weak-memoize@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6" + integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww== + +"@eslint-community/eslint-utils@^4.2.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.4.0": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" + integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== + +"@eslint/eslintrc@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" + integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.5.2" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.43.0": + version "8.43.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.43.0.tgz#559ca3d9ddbd6bf907ad524320a0d14b85586af0" + integrity sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg== + +"@faceless-ui/modal@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@faceless-ui/modal/-/modal-2.0.1.tgz#8a47299442eff450c09432cfaef35c5471becad6" + integrity sha512-z1PaaLxwuX+1In4vhUxODZndGKdCY+WIqzvtnas3CaYGGCVJBSJ4jfv9UEEGZzcahmSy+71bEL89cUT6d36j1Q== + dependencies: + body-scroll-lock "^3.1.5" + focus-trap "^6.9.2" + qs "^6.9.1" + react-transition-group "^4.4.2" + +"@faceless-ui/scroll-info@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@faceless-ui/scroll-info/-/scroll-info-1.3.0.tgz#4d9f76afa4c004018697424f77f8bc362ccaae08" + integrity sha512-X+doJMzQqyVGpwV/YgXUAalNWepP2W8ThgZspKZLFG43zTYLVTU17BYCjjY+ggKuA3b0W3JyXZ2M8f247AdmHw== + +"@faceless-ui/window-info@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@faceless-ui/window-info/-/window-info-2.1.1.tgz#ed1474a60ab794295bca4c29e295b1e11a584d22" + integrity sha512-gMAgda7beR4CNpBIXjgRVn97ek0LG3PAj9lxmoYdg574IEzLFZAh3eAYtTaS2XLKgb4+IHhsuBzlGmHbeOo2Aw== + +"@floating-ui/core@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.3.1.tgz#4d795b649cc3b1cbb760d191c80dcb4353c9a366" + integrity sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g== + +"@floating-ui/dom@^1.0.1": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.4.2.tgz#eb3a37f7506c4f95ef735967dc3496b5012e11cb" + integrity sha512-VKmvHVatWnewmGGy+7Mdy4cTJX71Pli6v/Wjb5RQBuq5wjUYx+Ef+kRThi8qggZqDgD8CogCpqhRoVp3+yQk+g== + dependencies: + "@floating-ui/core" "^1.3.1" + +"@hapi/hoek@^9.0.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" + integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== + +"@hapi/topo@^5.0.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@humanwhocodes/config-array@^0.11.10": + version "0.11.10" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" + integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + +"@jest/schemas@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" + integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg== + dependencies: + "@sinclair/typebox" "^0.25.16" + +"@jest/types@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593" + integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog== + dependencies: + "@jest/schemas" "^29.4.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.3.0": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/source-map@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.3.tgz#8108265659d4c33e72ffe14e33d6cc5eb59f2fda" + integrity sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/sourcemap-codec@1.4.14": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.18" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" + integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + +"@jsdevtools/ono@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" + integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== + +"@juggle/resize-observer@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz#08d6c5e20cf7e4cc02fd181c4b0c225cd31dbb60" + integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== + +"@monaco-editor/loader@^1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@monaco-editor/loader/-/loader-1.3.3.tgz#7f1742bd3cc21c0362a46a4056317f6e5215cfca" + integrity sha512-6KKF4CTzcJiS8BJwtxtfyYt9shBiEv32ateQ9T4UVogwn4HM/uPo9iJd2Dmbkpz8CM6Y0PDUpjnZzCwC+eYo2Q== + dependencies: + state-local "^1.0.6" + +"@monaco-editor/react@^4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@monaco-editor/react/-/react-4.5.1.tgz#fbc76c692aee9a33b9ab24ae0c5f219b8f002fdb" + integrity sha512-NNDFdP+2HojtNhCkRfE6/D6ro6pBNihaOzMbGK84lNWzRu+CfBjwzGt4jmnqimLuqp5yE5viHS2vi+QOAnD5FQ== + dependencies: + "@monaco-editor/loader" "^1.3.3" + +"@next/env@13.4.7": + version "13.4.7" + resolved "https://registry.yarnpkg.com/@next/env/-/env-13.4.7.tgz#ca12d341edb128ca70384635bd2794125ffb1c01" + integrity sha512-ZlbiFulnwiFsW9UV1ku1OvX/oyIPLtMk9p/nnvDSwI0s7vSoZdRtxXNsaO+ZXrLv/pMbXVGq4lL8TbY9iuGmVw== + +"@next/swc-darwin-arm64@13.4.7": + version "13.4.7" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.7.tgz#5e36c26dda5b0bc0ea15d8555d0abd71a1ef4b5d" + integrity sha512-VZTxPv1b59KGiv/pZHTO5Gbsdeoxcj2rU2cqJu03btMhHpn3vwzEK0gUSVC/XW96aeGO67X+cMahhwHzef24/w== + +"@next/swc-darwin-x64@13.4.7": + version "13.4.7" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.7.tgz#4c14ec14b200373cd602589086cb1253a28cd803" + integrity sha512-gO2bw+2Ymmga+QYujjvDz9955xvYGrWofmxTq7m70b9pDPvl7aDFABJOZ2a8SRCuSNB5mXU8eTOmVVwyp/nAew== + +"@next/swc-linux-arm64-gnu@13.4.7": + version "13.4.7" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.7.tgz#e7819167ec876ddac5a959e4c7bce4d001f0e924" + integrity sha512-6cqp3vf1eHxjIDhEOc7Mh/s8z1cwc/l5B6ZNkOofmZVyu1zsbEM5Hmx64s12Rd9AYgGoiCz4OJ4M/oRnkE16/Q== + +"@next/swc-linux-arm64-musl@13.4.7": + version "13.4.7" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.7.tgz#0cac0f01d4e308b439e6c33182bed77835fe383b" + integrity sha512-T1kD2FWOEy5WPidOn1si0rYmWORNch4a/NR52Ghyp4q7KyxOCuiOfZzyhVC5tsLIBDH3+cNdB5DkD9afpNDaOw== + +"@next/swc-linux-x64-gnu@13.4.7": + version "13.4.7" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.7.tgz#feb61e16a68c67f3ef230f30d9562a3783c7bd59" + integrity sha512-zaEC+iEiAHNdhl6fuwl0H0shnTzQoAoJiDYBUze8QTntE/GNPfTYpYboxF5LRYIjBwETUatvE0T64W6SKDipvg== + +"@next/swc-linux-x64-musl@13.4.7": + version "13.4.7" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.7.tgz#02179ecfa6d24a2956c2b54f7d27a050568bbf24" + integrity sha512-X6r12F8d8SKAtYJqLZBBMIwEqcTRvUdVm+xIq+l6pJqlgT2tNsLLf2i5Cl88xSsIytBICGsCNNHd+siD2fbWBA== + +"@next/swc-win32-arm64-msvc@13.4.7": + version "13.4.7" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.7.tgz#274b7f00a2ec5934af73db15da8459e8647bfaed" + integrity sha512-NPnmnV+vEIxnu6SUvjnuaWRglZzw4ox5n/MQTxeUhb5iwVWFedolPFebMNwgrWu4AELwvTdGtWjqof53AiWHcw== + +"@next/swc-win32-ia32-msvc@13.4.7": + version "13.4.7" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.7.tgz#4a95c106a6db2eee3a4c1352b77995e298d7446a" + integrity sha512-6Hxijm6/a8XqLQpOOf/XuwWRhcuc/g4rBB2oxjgCMuV9Xlr2bLs5+lXyh8w9YbAUMYR3iC9mgOlXbHa79elmXw== + +"@next/swc-win32-x64-msvc@13.4.7": + version "13.4.7" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.7.tgz#5137780f58d7f0230adc293a0429821bfa7d8c21" + integrity sha512-sW9Yt36Db1nXJL+mTr2Wo0y+VkPWeYhygvcHj1FF0srVtV+VoDjxleKtny21QHaG05zdeZnw2fCtf2+dEqgwqA== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@payloadcms/eslint-config@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@payloadcms/eslint-config/-/eslint-config-0.0.1.tgz#4324702ddef6c773b3f3033795a13e6b50c95a92" + integrity sha512-Il59+0C4E/bI6uM2hont3I+oABWkJZbfbItubje5SGMrXkymUq8jT/UZRk0eCt918bB7gihxDXx8guFnR/aNIw== + +"@polka/url@^1.0.0-next.20": + version "1.0.0-next.21" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" + integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== + +"@popperjs/core@^2.9.2": + version "2.11.8" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" + integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== + +"@sideway/address@^4.1.3": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" + integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f" + integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + +"@sinclair/typebox@^0.25.16": + version "0.25.24" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718" + integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== + +"@swc/core-darwin-arm64@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.66.tgz#b34a396479ca8fc82876d6dfb28c78a51010e6ce" + integrity sha512-UijJsvuLy73vxeVYEy7urIHksXS+3BdvJ9s9AY+bRMSQW483NO7RLp8g4FdTyJbRaN0BH15SQnY0dcjQBkVuHw== + +"@swc/core-darwin-x64@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.66.tgz#b778e434d29652eae6da6ee7ed335605f7cfd866" + integrity sha512-xGsHKvViQnwTNLF30Y/5OqWdnN6RsiyUI8awZXfz1sHcXCEaLe+v+WLQ+/E8sgw0YUkYVHzzfV/sAN2CezJK5Q== + +"@swc/core-linux-arm-gnueabihf@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.66.tgz#a7ab556dc9fc770069fea292ff5551161df83a70" + integrity sha512-gNbLcSIV2pq90BkMSpzvK4xPXOl8GEF3YR4NaqF0CYSzQsVXXTTqMuX/r26xNYudBKzH0345S1MpoRk2qricnA== + +"@swc/core-linux-arm64-gnu@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.66.tgz#00591f5fd0d9f1d1ed565329936451eb6d0d5433" + integrity sha512-cJSQ0oplyWbJqy4rzVcnBYLAi6z1QT3QCcR7iAey0aAmCvfRBZJfXlyjggMjn4iosuadkauwCZR1xYNhBDRn7w== + +"@swc/core-linux-arm64-musl@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.66.tgz#dd8e5e7b1154b5a42a32d57914e0de2cef6686ff" + integrity sha512-GDQZpcB9aGxG9PTA2shdIkoMZlGK5omJ8NR49uoBTtLBVYiGeXAwV0U1Uaw8kXEZj9i7wZDkvjzjSaNH3evRsg== + +"@swc/core-linux-x64-gnu@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.66.tgz#35de4b88e3f256e7923503a8031569c733859b68" + integrity sha512-lg8E4O/Pd9KfK0lajdinVMuGME8dSv7V9arhEpmlfGE2eXSDCWqDn5Htk5QVBstt9lt1lsRhWHJ/YYc2eQY30Q== + +"@swc/core-linux-x64-musl@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.66.tgz#623de62c638a31cda5d44014b981290e3f79f6de" + integrity sha512-lo8ZcAO/zL2pZWH+LZIyge8u2MklaeuT6+FpVVpBFktMVdYXbaVtzpvWbgRFBZHvL3SRDF+u8jxjtkXhvGUpTw== + +"@swc/core-win32-arm64-msvc@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.66.tgz#49a432f43a314666e681a98801d7b2d303e5ef75" + integrity sha512-cQoVwBuJY5WkHbfpCOlndNwYr1ZThatRjQQvKy540NUIeAEk9Fa6ozlDBtU75UdaWKtUG6YQ/bWz+KTemheVxw== + +"@swc/core-win32-ia32-msvc@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.66.tgz#80c8af627b46de67fbac05908025e764194669ad" + integrity sha512-y/FrAIINK4UBeUQQknGlWXEyjo+MBvjF7WkUf2KP7sNr9EHHy8+dXohAGd5Anz0eJrqOM1ZXR/GEjxRp7bGQ1Q== + +"@swc/core-win32-x64-msvc@1.3.66": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.66.tgz#7984da6bf1f1a5410c2e6514dc2814abb2e6c91a" + integrity sha512-yI64ACzS14qFLrfyO12qW+f/UROTotzDeEbuyJAaPD2IZexoT1cICznI3sBmIfrSt33mVuW8eF5m3AG/NUImzw== + +"@swc/core@^1.3.26": + version "1.3.66" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.66.tgz#d07e4c9cd49205881171ee1ffd04f824ecea2f25" + integrity sha512-Hpf91kH5ly7fHkWnApwryTQryT+TO4kMMPH3WyciUSQOWLE3UuQz1PtETHQQk7PZ/b1QF0qQurJrgfBr5bSKUA== + optionalDependencies: + "@swc/core-darwin-arm64" "1.3.66" + "@swc/core-darwin-x64" "1.3.66" + "@swc/core-linux-arm-gnueabihf" "1.3.66" + "@swc/core-linux-arm64-gnu" "1.3.66" + "@swc/core-linux-arm64-musl" "1.3.66" + "@swc/core-linux-x64-gnu" "1.3.66" + "@swc/core-linux-x64-musl" "1.3.66" + "@swc/core-win32-arm64-msvc" "1.3.66" + "@swc/core-win32-ia32-msvc" "1.3.66" + "@swc/core-win32-x64-msvc" "1.3.66" + +"@swc/helpers@0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.1.tgz#e9031491aa3f26bfcc974a67f48bd456c8a5357a" + integrity sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg== + dependencies: + tslib "^2.4.0" + +"@swc/register@^0.1.10": + version "0.1.10" + resolved "https://registry.yarnpkg.com/@swc/register/-/register-0.1.10.tgz#74a20b7559669e03479b05e9e5c6d1524d4d92a2" + integrity sha512-6STwH/q4dc3pitXLVkV7sP0Hiy+zBsU2wOF1aXpXR95pnH3RYHKIsDC+gvesfyB7jxNT9OOZgcqOp9RPxVTx9A== + dependencies: + lodash.clonedeep "^4.5.0" + pirates "^4.0.1" + source-map-support "^0.5.13" + +"@tokenizer/token@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276" + integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@types/body-parser@*": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/escape-html@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/escape-html/-/escape-html-1.0.2.tgz#072b7b13784fb3cee9c2450c22f36405983f5e3c" + integrity sha512-gaBLT8pdcexFztLSPRtriHeXY/Kn4907uOCZ4Q3lncFBkheAWOuNt53ypsF8szgxbEJ513UeBzcf4utN0EzEwA== + +"@types/eslint-scope@^3.7.3": + version "3.7.4" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" + integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "8.40.2" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.40.2.tgz#2833bc112d809677864a4b0e7d1de4f04d7dac2d" + integrity sha512-PRVjQ4Eh9z9pmmtaq8nTjZjQwKFk7YIHIud3lRoKRBgUQjgjRmoGxxGEPXQkF+lH7QkHJRNr5F4aBgYCW0lqpQ== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" + integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== + +"@types/express-serve-static-core@^4.17.33": + version "4.17.35" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz#c95dd4424f0d32e525d23812aa8ab8e4d3906c4f" + integrity sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express@^4.17.9": + version "4.17.17" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" + integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/glob@^7.1.3": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/html-minifier-terser@^6.0.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" + integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== + +"@types/http-errors@*": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.1.tgz#20172f9578b225f6c7da63446f56d4ce108d5a65" + integrity sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ== + +"@types/is-hotkey@^0.1.1": + version "0.1.7" + resolved "https://registry.yarnpkg.com/@types/is-hotkey/-/is-hotkey-0.1.7.tgz#30ec6d4234895230b576728ef77e70a52962f3b3" + integrity sha512-yB5C7zcOM7idwYZZ1wKQ3pTfjA9BbvFqRWvKB46GFddxnJtHwi/b9y84ykQtxQPg5qhdpg4Q/kWU3EGoCTmLzQ== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/json-schema@*", "@types/json-schema@^7.0.11", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.12" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" + integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/lodash@^4.14.149", "@types/lodash@^4.14.182": + version "4.14.195" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.195.tgz#bafc975b252eb6cea78882ce8a7b6bf22a6de632" + integrity sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg== + +"@types/mime@*": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== + +"@types/mime@^1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" + integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== + +"@types/minimatch@*": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + +"@types/node@*": + version "20.3.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.2.tgz#fa6a90f2600e052a03c18b8cb3fd83dd4e599898" + integrity sha512-vOBLVQeCQfIcF/2Y7eKFTqrMnizK5lRNQ7ykML/5RuwVXVWxYkgwS7xbt4B6fKCUPgbSL5FSsjHQpaGQP/dQmw== + +"@types/node@18.11.3": + version "18.11.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.3.tgz#78a6d7ec962b596fc2d2ec102c4dd3ef073fea6a" + integrity sha512-fNjDQzzOsZeKZu5NATgXUPsaFaTxeRgFXoosrHivTl8RGeV733OLawXsGfEk9a8/tySyZUyiZ6E8LcjPFZ2y1A== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/prettier@^2.6.1": + version "2.7.3" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" + integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== + +"@types/prop-types@*": + version "15.7.5" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" + integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + +"@types/qs@*": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + +"@types/react-transition-group@^4.4.0": + version "4.4.6" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.6.tgz#18187bcda5281f8e10dfc48f0943e2fdf4f75e2e" + integrity sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew== + dependencies: + "@types/react" "*" + +"@types/react@*": + version "18.2.14" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.14.tgz#fa7a6fecf1ce35ca94e74874f70c56ce88f7a127" + integrity sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/react@18.0.21": + version "18.0.21" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.21.tgz#b8209e9626bb00a34c76f55482697edd2b43cc67" + integrity sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/scheduler@*": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" + integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== + +"@types/semver@^7.3.12": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" + integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== + +"@types/send@*": + version "0.17.1" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.1.tgz#ed4932b8a2a805f1fe362a70f4e62d0ac994e301" + integrity sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-static@*": + version "1.15.2" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.2.tgz#3e5419ecd1e40e7405d34093f10befb43f63381a" + integrity sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw== + dependencies: + "@types/http-errors" "*" + "@types/mime" "*" + "@types/node" "*" + +"@types/sharp@^0.31.1": + version "0.31.1" + resolved "https://registry.yarnpkg.com/@types/sharp/-/sharp-0.31.1.tgz#db768461455dbcf9ff11d69277fd70564483c4df" + integrity sha512-5nWwamN9ZFHXaYEincMSuza8nNfOof8nmO+mcI+Agx1uMUk4/pQnNIcix+9rLPXzKrm1pS34+6WRDbDV0Jn7ag== + dependencies: + "@types/node" "*" + +"@types/webidl-conversions@*": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz#2b8e60e33906459219aa587e9d1a612ae994cfe7" + integrity sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog== + +"@types/whatwg-url@^8.2.1": + version "8.2.2" + resolved "https://registry.yarnpkg.com/@types/whatwg-url/-/whatwg-url-8.2.2.tgz#749d5b3873e845897ada99be4448041d4cc39e63" + integrity sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA== + dependencies: + "@types/node" "*" + "@types/webidl-conversions" "*" + +"@types/yargs-parser@*": + version "21.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + +"@types/yargs@^17.0.8": + version "17.0.24" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.24.tgz#b3ef8d50ad4aa6aecf6ddc97c580a00f5aa11902" + integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@^5.51.0": + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.60.1.tgz#81382d6ecb92b8dda70e91f9035611cb2fecd1c3" + integrity sha512-KSWsVvsJsLJv3c4e73y/Bzt7OpqMCADUO846bHcuWYSYM19bldbAeDv7dYyV0jwkbMfJ2XdlzwjhXtuD7OY6bw== + dependencies: + "@eslint-community/regexpp" "^4.4.0" + "@typescript-eslint/scope-manager" "5.60.1" + "@typescript-eslint/type-utils" "5.60.1" + "@typescript-eslint/utils" "5.60.1" + debug "^4.3.4" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + natural-compare-lite "^1.4.0" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/parser@^5.51.0": + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.60.1.tgz#0f2f58209c0862a73e3d5a56099abfdfa21d0fd3" + integrity sha512-pHWlc3alg2oSMGwsU/Is8hbm3XFbcrb6P5wIxcQW9NsYBfnrubl/GhVVD/Jm/t8HXhA2WncoIRfBtnCgRGV96Q== + dependencies: + "@typescript-eslint/scope-manager" "5.60.1" + "@typescript-eslint/types" "5.60.1" + "@typescript-eslint/typescript-estree" "5.60.1" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.60.1": + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.60.1.tgz#35abdb47f500c68c08f2f2b4f22c7c79472854bb" + integrity sha512-Dn/LnN7fEoRD+KspEOV0xDMynEmR3iSHdgNsarlXNLGGtcUok8L4N71dxUgt3YvlO8si7E+BJ5Fe3wb5yUw7DQ== + dependencies: + "@typescript-eslint/types" "5.60.1" + "@typescript-eslint/visitor-keys" "5.60.1" + +"@typescript-eslint/type-utils@5.60.1": + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.60.1.tgz#17770540e98d65ab4730c7aac618003f702893f4" + integrity sha512-vN6UztYqIu05nu7JqwQGzQKUJctzs3/Hg7E2Yx8rz9J+4LgtIDFWjjl1gm3pycH0P3mHAcEUBd23LVgfrsTR8A== + dependencies: + "@typescript-eslint/typescript-estree" "5.60.1" + "@typescript-eslint/utils" "5.60.1" + debug "^4.3.4" + tsutils "^3.21.0" + +"@typescript-eslint/types@5.60.1": + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.60.1.tgz#a17473910f6b8d388ea83c9d7051af89c4eb7561" + integrity sha512-zDcDx5fccU8BA0IDZc71bAtYIcG9PowaOwaD8rjYbqwK7dpe/UMQl3inJ4UtUK42nOCT41jTSCwg76E62JpMcg== + +"@typescript-eslint/typescript-estree@5.60.1": + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.60.1.tgz#8c71824b7165b64d5ebd7aa42968899525959834" + integrity sha512-hkX70J9+2M2ZT6fhti5Q2FoU9zb+GeZK2SLP1WZlvUDqdMbEKhexZODD1WodNRyO8eS+4nScvT0dts8IdaBzfw== + dependencies: + "@typescript-eslint/types" "5.60.1" + "@typescript-eslint/visitor-keys" "5.60.1" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.60.1": + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.60.1.tgz#6861ebedbefba1ac85482d2bdef6f2ff1eb65b80" + integrity sha512-tiJ7FFdFQOWssFa3gqb94Ilexyw0JVxj6vBzaSpfN/8IhoKkDuSAenUKvsSHw2A/TMpJb26izIszTXaqygkvpQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.60.1" + "@typescript-eslint/types" "5.60.1" + "@typescript-eslint/typescript-estree" "5.60.1" + eslint-scope "^5.1.1" + semver "^7.3.7" + +"@typescript-eslint/visitor-keys@5.60.1": + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.60.1.tgz#19a877358bf96318ec35d90bfe6bd1445cce9434" + integrity sha512-xEYIxKcultP6E/RMKqube11pGjXH1DCo60mQoWhVYyKfLkwbIVVjYxmOenNMxILx0TjCujPTjjnTIVzm09TXIw== + dependencies: + "@typescript-eslint/types" "5.60.1" + eslint-visitor-keys "^3.3.0" + +"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" + integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== + +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== + +"@webassemblyjs/helper-buffer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" + integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== + +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== + +"@webassemblyjs/helper-wasm-section@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" + integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/wasm-edit@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" + integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-opt" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + "@webassemblyjs/wast-printer" "1.11.6" + +"@webassemblyjs/wasm-gen@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" + integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wasm-opt@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" + integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + +"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" + integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wast-printer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" + integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@xtuc/long" "4.2.2" + +"@webpack-cli/configtest@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.2.0.tgz#7b20ce1c12533912c3b217ea68262365fa29a6f5" + integrity sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg== + +"@webpack-cli/info@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.5.0.tgz#6c78c13c5874852d6e2dd17f08a41f3fe4c261b1" + integrity sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ== + dependencies: + envinfo "^7.7.3" + +"@webpack-cli/serve@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1" + integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q== + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +accepts@~1.3.5, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^8.0.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.0.4, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.2: + version "8.9.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.9.0.tgz#78a16e3b2bcc198c10822786fa6679e245db5b59" + integrity sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ== + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.0, ajv@^8.6.3, ajv@^8.9.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-html-community@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-includes@^3.1.4: + version "3.1.6" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" + integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + is-string "^1.0.7" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array.prototype.flat@^1.2.5: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" + integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + +atomic-sleep@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" + integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== + +atomically@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/atomically/-/atomically-1.7.0.tgz#c07a0458432ea6dbc9a3506fffa424b48bccaafe" + integrity sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w== + +autoprefixer@^10.4.13: + version "10.4.14" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d" + integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ== + dependencies: + browserslist "^4.21.5" + caniuse-lite "^1.0.30001464" + fraction.js "^4.2.0" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +babel-plugin-macros@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" + integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== + dependencies: + "@babel/runtime" "^7.12.5" + cosmiconfig "^7.0.0" + resolve "^1.19.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + +body-parser@^1.20.1: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +body-scroll-lock@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/body-scroll-lock/-/body-scroll-lock-3.1.5.tgz#c1392d9217ed2c3e237fee1e910f6cdd80b7aaec" + integrity sha512-Yi1Xaml0EvNA0OYWxXiYNqY24AfWkbA6w5vxE7GWxtKfzIbZM+Qw+aSmkgsbWzbHiy/RCSkUZBplVxTA+E4jJg== + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.21.4, browserslist@^4.21.5: + version "4.21.9" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" + integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== + dependencies: + caniuse-lite "^1.0.30001503" + electron-to-chromium "^1.4.431" + node-releases "^2.0.12" + update-browserslist-db "^1.0.11" + +bson-objectid@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/bson-objectid/-/bson-objectid-2.0.4.tgz#339211572ef97dc98f2d68eaee7b99b7be59a089" + integrity sha512-vgnKAUzcDoa+AeyYwXCoHyF2q6u/8H46dxu5JN+4/TZeq/Dlinn0K6GvxsCLb3LHUJl0m/TLiEK31kUwtgocMQ== + +bson@^4.6.5: + version "4.7.2" + resolved "https://registry.yarnpkg.com/bson/-/bson-4.7.2.tgz#320f4ad0eaf5312dd9b45dc369cc48945e2a5f2e" + integrity sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ== + dependencies: + buffer "^5.6.0" + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^5.5.0, buffer@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +busboy@1.6.0, busboy@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +call-me-maybe@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" + integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001503: + version "1.0.30001508" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001508.tgz#4461bbc895c692a96da399639cc1e146e7302a33" + integrity sha512-sdQZOJdmt3GJs1UMNpCCCyeuS2IEGLXnHyAo9yIO5JJDjbjoVRij4M1qep6P6gFpptD1PqIYgzM+gwJbOi92mw== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +charenc@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== + +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.2: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +ci-info@^3.2.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" + integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== + +classnames@^2.2.5, classnames@^2.2.6, classnames@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" + integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== + +clean-css@^5.2.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.2.tgz#70ecc7d4d4114921f5d298349ff86a31a9975224" + integrity sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww== + dependencies: + source-map "~0.6.0" + +cli-color@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-2.0.3.tgz#73769ba969080629670f3f2ef69a4bf4e7cc1879" + integrity sha512-OkoZnxyC4ERN3zLzZaY9Emb7f/MhBOIpePv0Ycok0fJYT+Ouo00UBEIwsVsr0yoow++n5YWlSUgST9GKhNHiRQ== + dependencies: + d "^1.0.1" + es5-ext "^0.10.61" + es6-iterator "^2.0.3" + memoizee "^0.4.15" + timers-ext "^0.1.7" + +client-only@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" + integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clsx@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" + integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== + dependencies: + color-convert "^2.0.1" + color-string "^1.9.0" + +colord@^2.9.1: + version "2.9.3" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== + +colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.7: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +commander@^2.20.0, commander@^2.20.3: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^7.0.0, commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +compute-scroll-into-view@^1.0.20: + version "1.0.20" + resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz#1768b5522d1172754f5d0c9b02de3af6be506a43" + integrity sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +conf@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/conf/-/conf-10.2.0.tgz#838e757be963f1a2386dfe048a98f8f69f7b55d6" + integrity sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg== + dependencies: + ajv "^8.6.3" + ajv-formats "^2.1.1" + atomically "^1.7.0" + debounce-fn "^4.0.0" + dot-prop "^6.0.1" + env-paths "^2.2.1" + json-schema-typed "^7.0.3" + onetime "^5.1.2" + pkg-up "^3.1.0" + semver "^7.3.5" + +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +convert-source-map@^1.5.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +copyfiles@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.4.1.tgz#d2dcff60aaad1015f09d0b66e7f0f1c5cd3c5da5" + integrity sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg== + dependencies: + glob "^7.0.5" + minimatch "^3.0.3" + mkdirp "^1.0.4" + noms "0.0.0" + through2 "^2.0.1" + untildify "^4.0.0" + yargs "^16.1.0" + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-env@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" + integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== + dependencies: + cross-spawn "^7.0.1" + +cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypt@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== + +css-blank-pseudo@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz#36523b01c12a25d812df343a32c322d2a2324561" + integrity sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ== + dependencies: + postcss-selector-parser "^6.0.9" + +css-declaration-sorter@^6.3.1: + version "6.4.0" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz#630618adc21724484b3e9505bce812def44000ad" + integrity sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew== + +css-has-pseudo@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz#57f6be91ca242d5c9020ee3e51bbb5b89fc7af73" + integrity sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw== + dependencies: + postcss-selector-parser "^6.0.9" + +css-loader@^5.2.7: + version "5.2.7" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.7.tgz#9b9f111edf6fb2be5dc62525644cbc9c232064ae" + integrity sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg== + dependencies: + icss-utils "^5.1.0" + loader-utils "^2.0.0" + postcss "^8.2.15" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^3.0.0" + semver "^7.3.5" + +css-minimizer-webpack-plugin@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz#33effe662edb1a0bf08ad633c32fa75d0f7ec565" + integrity sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.18" + cssnano "^6.0.1" + jest-worker "^29.4.3" + postcss "^8.4.24" + schema-utils "^4.0.1" + serialize-javascript "^6.0.1" + +css-prefers-color-scheme@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz#ca8a22e5992c10a5b9d315155e7caee625903349" + integrity sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA== + +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-tree@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== + dependencies: + mdn-data "2.0.28" + source-map-js "^1.0.1" + +css-what@^6.0.1, css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +cssdb@^7.1.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.6.0.tgz#beac8f7a5f676db62d3c33da517ef4c9eb008f8b" + integrity sha512-Nna7rph8V0jC6+JBY4Vk4ndErUmfJfV6NJCaZdurL0omggabiy+QB2HCQtu5c/ACLZ0I7REv7A4QyPIoYzZx0w== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssfilter@0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" + integrity sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw== + +cssnano-preset-default@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.0.1.tgz#2a93247140d214ddb9f46bc6a3562fa9177fe301" + integrity sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ== + dependencies: + css-declaration-sorter "^6.3.1" + cssnano-utils "^4.0.0" + postcss-calc "^9.0.0" + postcss-colormin "^6.0.0" + postcss-convert-values "^6.0.0" + postcss-discard-comments "^6.0.0" + postcss-discard-duplicates "^6.0.0" + postcss-discard-empty "^6.0.0" + postcss-discard-overridden "^6.0.0" + postcss-merge-longhand "^6.0.0" + postcss-merge-rules "^6.0.1" + postcss-minify-font-values "^6.0.0" + postcss-minify-gradients "^6.0.0" + postcss-minify-params "^6.0.0" + postcss-minify-selectors "^6.0.0" + postcss-normalize-charset "^6.0.0" + postcss-normalize-display-values "^6.0.0" + postcss-normalize-positions "^6.0.0" + postcss-normalize-repeat-style "^6.0.0" + postcss-normalize-string "^6.0.0" + postcss-normalize-timing-functions "^6.0.0" + postcss-normalize-unicode "^6.0.0" + postcss-normalize-url "^6.0.0" + postcss-normalize-whitespace "^6.0.0" + postcss-ordered-values "^6.0.0" + postcss-reduce-initial "^6.0.0" + postcss-reduce-transforms "^6.0.0" + postcss-svgo "^6.0.0" + postcss-unique-selectors "^6.0.0" + +cssnano-utils@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-4.0.0.tgz#d1da885ec04003ab19505ff0e62e029708d36b08" + integrity sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw== + +cssnano@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.0.1.tgz#87c38c4cd47049c735ab756d7e77ac3ca855c008" + integrity sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg== + dependencies: + cssnano-preset-default "^6.0.1" + lilconfig "^2.1.0" + +csso@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== + dependencies: + css-tree "~2.2.0" + +csstype@^3.0.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +dataloader@^2.1.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.2.2.tgz#216dc509b5abe39d43a9b9d97e6e5e473dfbe3e0" + integrity sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g== + +date-fns@^2.24.0, date-fns@^2.29.3: + version "2.30.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" + integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== + dependencies: + "@babel/runtime" "^7.21.0" + +dateformat@^4.6.3: + version "4.6.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" + integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== + +debounce-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-4.0.0.tgz#ed76d206d8a50e60de0dd66d494d82835ffe61c7" + integrity sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ== + dependencies: + mimic-fn "^3.0.0" + +debug@2, debug@2.6.9, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@4.x, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@^3.2.6, debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-equal@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.1.tgz#c72ab22f3a7d3503a4ca87dde976fe9978816739" + integrity sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + es-get-iterator "^1.1.3" + get-intrinsic "^1.2.0" + is-arguments "^1.1.1" + is-array-buffer "^3.0.2" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.0" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^4.0.0, deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" + integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +denque@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" + integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-libc@^2.0.0, detect-libc@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +diff@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +direction@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/direction/-/direction-1.0.4.tgz#2b86fb686967e987088caf8b89059370d4837442" + integrity sha512-GYqKi1aH7PJXxdhTeZBFrg8vUBeKXi+cNprXsC1kpJcbcVnV9wBsrOu1cQEdG0WeQwlfHiy3XvnKfIrJ2R0NzQ== + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-helpers@^5.0.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + +dom-serializer@^1.0.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^2.5.2, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +domutils@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" + integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dot-prop@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" + integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== + dependencies: + is-obj "^2.0.0" + +dotenv@^8.2.0, dotenv@^8.6.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" + integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== + +duplexer@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +electron-to-chromium@^1.4.431: + version "1.4.441" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.441.tgz#94dd9c1cbf081d83f032a4f1cd9f787e21fc24ce" + integrity sha512-LlCgQ8zgYZPymf5H4aE9itwiIWH4YlCiv1HFLmmcBeFYi5E+3eaIFnjHzYtcFQbaKfAW+CqZ9pgxo33DZuoqPg== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^5.15.0: + version "5.15.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" + integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entities@^4.2.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +env-paths@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +envinfo@^7.7.3: + version "7.9.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.9.0.tgz#47594a13081be0d9be6e513534e8c58dbb26c7a1" + integrity sha512-RODB4txU+xImYDemN5DqaKC0CHk05XSVkOX4pq0hK26Qx+1LChkuOyUDlGEjYb3ACr0n9qBhFjg37hQuJvpkRQ== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.19.0, es-abstract@^1.20.4: + version "1.21.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" + integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== + dependencies: + array-buffer-byte-length "^1.0.0" + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.2.0" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.10" + is-weakref "^1.0.2" + object-inspect "^1.12.3" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.7" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.9" + +es-get-iterator@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + +es-module-lexer@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.0.tgz#6be9c9e0b4543a60cd166ff6f8b4e9dae0b0c16f" + integrity sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA== + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" + +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + dependencies: + has "^1.0.3" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@^0.10.61, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: + version "0.10.62" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" + integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + next-tick "^1.1.0" + +es6-iterator@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +es6-weak-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@^1.0.3, escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-config-prettier@^8.5.0: + version "8.8.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" + integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== + +eslint-import-resolver-node@^0.3.6: + version "0.3.7" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" + integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== + dependencies: + debug "^3.2.7" + is-core-module "^2.11.0" + resolve "^1.22.1" + +eslint-module-utils@^2.7.2: + version "2.8.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== + dependencies: + debug "^3.2.7" + +eslint-plugin-filenames@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-filenames/-/eslint-plugin-filenames-1.3.2.tgz#7094f00d7aefdd6999e3ac19f72cea058e590cf7" + integrity sha512-tqxJTiEM5a0JmRCUYQmxw23vtTxrb2+a3Q2mMOPhFxvt7ZQQJmdiuMby9B/vUAuVMghyP7oET+nIf6EO6CBd/w== + dependencies: + lodash.camelcase "4.3.0" + lodash.kebabcase "4.1.1" + lodash.snakecase "4.1.1" + lodash.upperfirst "4.3.1" + +eslint-plugin-import@2.25.4: + version "2.25.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz#322f3f916a4e9e991ac7af32032c25ce313209f1" + integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA== + dependencies: + array-includes "^3.1.4" + array.prototype.flat "^1.2.5" + debug "^2.6.9" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.6" + eslint-module-utils "^2.7.2" + has "^1.0.3" + is-core-module "^2.8.0" + is-glob "^4.0.3" + minimatch "^3.0.4" + object.values "^1.1.5" + resolve "^1.20.0" + tsconfig-paths "^3.12.0" + +eslint-plugin-prettier@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" + integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-plugin-react-hooks@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" + integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== + +eslint-plugin-simple-import-sort@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-10.0.0.tgz#cc4ceaa81ba73252427062705b64321946f61351" + integrity sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw== + +eslint-scope@5.1.1, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" + integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" + integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== + +eslint@^8.19.0: + version "8.43.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.43.0.tgz#3e8c6066a57097adfd9d390b8fc93075f257a094" + integrity sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.4.0" + "@eslint/eslintrc" "^2.0.3" + "@eslint/js" "8.43.0" + "@humanwhocodes/config-array" "^0.11.10" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.0" + eslint-visitor-keys "^3.4.1" + espree "^9.5.2" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.1" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + +espree@^9.5.2: + version "9.5.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" + integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== + dependencies: + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +events@^3.2.0, events@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + +express-fileupload@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/express-fileupload/-/express-fileupload-1.4.0.tgz#be9d70a881d6c2b1ce668df86e4f89ddbf238ec7" + integrity sha512-RjzLCHxkv3umDeZKeFeMg8w7qe0V09w3B7oGZprr/oO2H/ISCgNzuqzn7gV3HRWb37GjRk429CCpSLS2KNTqMQ== + dependencies: + busboy "^1.6.0" + +express-rate-limit@^5.5.1: + version "5.5.1" + resolved "https://registry.yarnpkg.com/express-rate-limit/-/express-rate-limit-5.5.1.tgz#110c23f6a65dfa96ab468eda95e71697bc6987a2" + integrity sha512-MTjE2eIbHv5DyfuFz4zLYWxpqVhEhkTiwFGuB74Q9CSou2WHO52nlE5y3Zlg6SIsiYUIPj6ifFxnkPz6O3sIUg== + +express@^4.17.1, express@^4.18.2: + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.1" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.5.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.1.2: + version "1.7.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== + dependencies: + type "^2.7.2" + +fast-copy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fast-copy/-/fast-copy-3.0.1.tgz#9e89ef498b8c04c1cd76b33b8e14271658a732aa" + integrity sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== + +fast-glob@^3.2.9: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-redact@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.2.0.tgz#b1e2d39bc731376d28bde844454fa23e26919987" + integrity sha512-zaTadChr+NekyzallAMXATXLOR8MNx3zqpZ0MUF2aGf4EathnG0f32VLODNlY8IuGY3HoRO2L6/6fSzNsLaHIw== + +fast-safe-stringify@^2.0.8, fast-safe-stringify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + +fastest-levenshtein@^1.0.12: + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +file-type@16.5.4: + version "16.5.4" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.5.4.tgz#474fb4f704bee427681f98dd390058a172a6c2fd" + integrity sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw== + dependencies: + readable-web-to-node-stream "^3.0.0" + strtok3 "^6.2.4" + token-types "^4.1.1" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-root@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +find-up@4.1.0, find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatley@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/flatley/-/flatley-5.2.0.tgz#3a645837c669be8d978335e37ae3afffcfbdedb7" + integrity sha512-vsb0/03uIHu7/3jRqABweblFUJMLokz1uMrcgFlvx6OAr6V3FiSic2iXeiJCj+cciTiQeumSDsIFAAnN1yvu4w== + dependencies: + is-buffer "^1.1.6" + +flatstr@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/flatstr/-/flatstr-1.0.12.tgz#c2ba6a08173edbb6c9640e3055b95e287ceb5931" + integrity sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw== + +flatted@^3.1.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== + +focus-trap@^6.9.2: + version "6.9.4" + resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-6.9.4.tgz#436da1a1d935c48b97da63cd8f361c6f3aa16444" + integrity sha512-v2NTsZe2FF59Y+sDykKY+XjqZ0cPfhq/hikWVL88BqLivnNiEffAsac6rP6H45ff9wG9LL5ToiDqrLEP9GX9mw== + dependencies: + tabbable "^5.3.3" + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fraction.js@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" + integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-monkey@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.4.tgz#ee8c1b53d3fe8bb7e5d2c5c5dfc0168afdd2f747" + integrity sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functions-have-names@^1.2.2, functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-proto "^1.0.1" + has-symbols "^1.0.3" + +get-stdin@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" + integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +get-tsconfig@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.6.0.tgz#e977690993a42f3e320e932427502a40f7af6d05" + integrity sha512-lgbo68hHTQnFddybKbbs/RDRJnJT5YyGy2kQzVwbq+g67X73i+5MVTval34QxGkOe9X5Ujf1UYpCaphLyltjEg== + dependencies: + resolve-pkg-maps "^1.0.0" + +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-promise@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/glob-promise/-/glob-promise-4.2.2.tgz#15f44bcba0e14219cd93af36da6bb905ff007877" + integrity sha512-xcUzJ8NWN5bktoTIX7eOclO1Npxd/dyVqUJxlLIDasT4C7KZyqlPIwkdJ0Ypiy3p2ZKahTjK4M9uC3sNSfNMzw== + dependencies: + "@types/glob" "^7.1.3" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^7.0.5, glob@^7.1.3, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +globals@^13.19.0: + version "13.20.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +graphql-http@^1.17.1: + version "1.19.0" + resolved "https://registry.yarnpkg.com/graphql-http/-/graphql-http-1.19.0.tgz#6f0fff0dbd9a8e797c99b5ac0ca160566e7927da" + integrity sha512-fOD3hfp/G+Lhx2FWW5HsfmtJSsw6CikcpOboG7/mFo/pPUzn3yOwKdTFRnJ8MVY4ru69MT1nSPr/1gI/iuGNlw== + +graphql-playground-html@^1.6.30: + version "1.6.30" + resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.6.30.tgz#14c2a8eb7fc17bfeb1a746bbb28a11e34bf0b391" + integrity sha512-tpCujhsJMva4aqE8ULnF7/l3xw4sNRZcSHu+R00VV+W0mfp+Q20Plvcrp+5UXD+2yS6oyCXncA+zoQJQqhGCEw== + dependencies: + xss "^1.0.6" + +graphql-playground-middleware-express@^1.7.23: + version "1.7.23" + resolved "https://registry.yarnpkg.com/graphql-playground-middleware-express/-/graphql-playground-middleware-express-1.7.23.tgz#95aba44d801ff3c08b2246917d2901d2e7c35d3d" + integrity sha512-M/zbTyC1rkgiQjFSgmzAv6umMHOphYLNWZp6Ye5QrD77WfGOOoSqDsVmGUczc2pDkEPEzzGB/bvBO5rdzaTRgw== + dependencies: + graphql-playground-html "^1.6.30" + +graphql-query-complexity@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/graphql-query-complexity/-/graphql-query-complexity-0.12.0.tgz#5f636ccc54da82225f31e898e7f27192fe074b4c" + integrity sha512-fWEyuSL6g/+nSiIRgIipfI6UXTI7bAxrpPlCY1c0+V3pAEUo1ybaKmSBgNr1ed2r+agm1plJww8Loig9y6s2dw== + dependencies: + lodash.get "^4.4.2" + +graphql-scalars@^1.20.1: + version "1.22.2" + resolved "https://registry.yarnpkg.com/graphql-scalars/-/graphql-scalars-1.22.2.tgz#6326e6fe2d0ad4228a9fea72a977e2bf26b86362" + integrity sha512-my9FB4GtghqXqi/lWSVAOPiTzTnnEzdOXCsAC2bb5V7EFNQjVjwy3cSSbUvgYOtDuDibd+ZsCDhz+4eykYOlhQ== + dependencies: + tslib "^2.5.0" + +graphql-type-json@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/graphql-type-json/-/graphql-type-json-0.3.2.tgz#f53a851dbfe07bd1c8157d24150064baab41e115" + integrity sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg== + +graphql@^16.6.0: + version "16.7.1" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.7.1.tgz#11475b74a7bff2aefd4691df52a0eca0abd9b642" + integrity sha512-DRYR9tf+UGU0KOsMcKAlXeFfX89UiiIZ0dRU3mR0yJfu6OjZqUcp68NnFLnqQU5RexygFoDy1EW+ccOYcPfmHg== + +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== + dependencies: + duplexer "^0.1.2" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +help-me@^4.0.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/help-me/-/help-me-4.2.0.tgz#50712bfd799ff1854ae1d312c36eafcea85b0563" + integrity sha512-TAOnTB8Tz5Dw8penUuzHVrKNKlCIbwwbHnXraNJxPwf8LRtE2HlM84RYuezMFcwOJmoYOCWVDyJ8TQGxn9PgxA== + dependencies: + glob "^8.0.0" + readable-stream "^3.6.0" + +history@^4.9.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^3.0.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^1.0.1" + +hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +html-entities@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.4.0.tgz#edd0cee70402584c8c76cc2c0556db09d1f45061" + integrity sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ== + +html-minifier-terser@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" + integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== + dependencies: + camel-case "^4.1.2" + clean-css "^5.2.2" + commander "^8.3.0" + he "^1.2.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.10.0" + +html-parse-stringify@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz#dfc1017347ce9f77c8141a507f233040c59c55d2" + integrity sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg== + dependencies: + void-elements "3.1.0" + +html-webpack-plugin@^5.5.0: + version "5.5.3" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz#72270f4a78e222b5825b296e5e3e1328ad525a3e" + integrity sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg== + dependencies: + "@types/html-minifier-terser" "^6.0.0" + html-minifier-terser "^6.0.2" + lodash "^4.17.21" + pretty-error "^4.0.0" + tapable "^2.0.0" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-status@^1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/http-status/-/http-status-1.6.2.tgz#6dc05188a9856d67d96e48e8b4fd645c719ce82a" + integrity sha512-oUExvfNckrpTpDazph7kNG8sQi5au3BeTo0idaZFXEhTaJKu7GNJCLHI0rYY2wljm548MSTM+Ljj/c6anqu2zQ== + +i18next-browser-languagedetector@^6.1.8: + version "6.1.8" + resolved "https://registry.yarnpkg.com/i18next-browser-languagedetector/-/i18next-browser-languagedetector-6.1.8.tgz#8e9c61b32a4dfe9b959b38bc9d2a8b95f799b27c" + integrity sha512-Svm+MduCElO0Meqpj1kJAriTC6OhI41VhlT/A0UPjGoPZBhAHIaGE5EfsHlTpgdH09UVX7rcc72pSDDBeKSQQA== + dependencies: + "@babel/runtime" "^7.19.0" + +i18next-http-middleware@^3.2.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/i18next-http-middleware/-/i18next-http-middleware-3.3.2.tgz#6a24fee6bde44952a5af24364d43fa32f6c1b9b6" + integrity sha512-PSeLXQXr9Qiv9Q3GCWCoIJenKVbxCcVsXb7VMp/mOprV4gu+AMJT7VHw4+QEf6oYW6GU31QSLnfDpLNoSMtx3g== + +i18next@^22.4.9: + version "22.5.1" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-22.5.1.tgz#99df0b318741a506000c243429a7352e5f44d424" + integrity sha512-8TGPgM3pAD+VRsMtUMNknRz3kzqwp/gPALrWMsDnmC1mKqJwpWyooQRLMcbTwq8z8YwSmuj+ZYvc+xCuEpkssA== + dependencies: + "@babel/runtime" "^7.20.6" + +iconv-lite@0.4.24, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +ieee754@^1.1.13, ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore-by-default@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== + +ignore@^5.2.0: + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + +immer@^9.0.6: + version "9.0.21" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" + integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== + +immutable@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be" + integrity sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +internal-slot@^1.0.4, internal-slot@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== + dependencies: + get-intrinsic "^1.2.0" + has "^1.0.3" + side-channel "^1.0.4" + +interpret@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" + integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== + +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@^1.1.6, is-buffer@~1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.11.0, is-core-module@^2.8.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1, is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hotkey@^0.1.6: + version "0.1.8" + resolved "https://registry.yarnpkg.com/is-hotkey/-/is-hotkey-0.1.8.tgz#6b1f4b2d0e5639934e20c05ed24d623a21d36d25" + integrity sha512-qs3NZ1INIS+H+yeo7cD9pDfwYV/jqRh1JG9S9zYrNudkoUQg7OL7ziXqRKu+InFjUIDoP2o6HIkLYMh1pcWgyQ== + +is-hotkey@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/is-hotkey/-/is-hotkey-0.2.0.tgz#1835a68171a91e5c9460869d96336947c8340cef" + integrity sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw== + +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-promise@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.10, is-typed-array@^1.1.9: + version "1.1.10" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +isomorphic-fetch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz#0267b005049046d2421207215d45d6a262b8b8b4" + integrity sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA== + dependencies: + node-fetch "^2.6.1" + whatwg-fetch "^3.4.1" + +jest-util@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" + integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ== + dependencies: + "@jest/types" "^29.5.0" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest-worker@^29.4.3: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d" + integrity sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA== + dependencies: + "@types/node" "*" + jest-util "^29.5.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +joi@^17.7.0: + version "17.9.2" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.9.2.tgz#8b2e4724188369f55451aebd1d0b1d9482470690" + integrity sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw== + dependencies: + "@hapi/hoek" "^9.0.0" + "@hapi/topo" "^5.0.0" + "@sideway/address" "^4.1.3" + "@sideway/formula" "^3.0.1" + "@sideway/pinpoint" "^2.0.0" + +joycon@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" + integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-to-typescript@11.0.3: + version "11.0.3" + resolved "https://registry.yarnpkg.com/json-schema-to-typescript/-/json-schema-to-typescript-11.0.3.tgz#9b401c2b78329959f1c4c4e0639a6bdcf6a6ed77" + integrity sha512-EaEE9Y4VZ8b9jW5zce5a9L3+p4C9AqgIRHbNVDJahfMnoKzcd4sDb98BLxLdQhJEuRAXyKLg4H66NKm80W8ilg== + dependencies: + "@bcherny/json-schema-ref-parser" "9.0.9" + "@types/json-schema" "^7.0.11" + "@types/lodash" "^4.14.182" + "@types/prettier" "^2.6.1" + cli-color "^2.0.2" + get-stdin "^8.0.0" + glob "^7.1.6" + glob-promise "^4.2.2" + is-glob "^4.0.3" + lodash "^4.17.21" + minimist "^1.2.6" + mkdirp "^1.0.4" + mz "^2.7.0" + prettier "^2.6.2" + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema-typed@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz#23ff481b8b4eebcd2ca123b4fa0409e66469a2d9" + integrity sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonwebtoken@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz#d0faf9ba1cc3a56255fe49c0961a67e520c1926d" + integrity sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw== + dependencies: + jws "^3.2.2" + lodash "^4.17.21" + ms "^2.1.1" + semver "^7.3.8" + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +jwt-decode@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-3.1.2.tgz#3fb319f3675a2df0c2895c8f5e9fa4b67b04ed59" + integrity sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A== + +kareem@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.4.1.tgz#7d81ec518204a48c1cb16554af126806c3cd82b0" + integrity sha512-aJ9opVoXroQUPfovYP5kaj2lM7Jn02Gw13bL0lg9v0V7SaUc0qavPs0Eue7d2DcC3NjqI6QAUElXNsuZSeM+EA== + +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +klona@^2.0.4, klona@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" + integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lilconfig@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +loader-utils@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.camelcase@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + +lodash.kebabcase@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.snakecase@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" + integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash.upperfirst@4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" + integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== + +lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lru-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" + integrity sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ== + dependencies: + es5-ext "~0.10.2" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +md5@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" + integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== + dependencies: + charenc "0.0.2" + crypt "0.0.2" + is-buffer "~1.1.6" + +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memfs@^3.4.12: + version "3.6.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" + integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== + dependencies: + fs-monkey "^1.0.4" + +memoize-one@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-6.0.0.tgz#b2591b871ed82948aee4727dc6abceeeac8c1045" + integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw== + +memoizee@^0.4.15: + version "0.4.15" + resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72" + integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ== + dependencies: + d "^1.0.1" + es5-ext "^0.10.53" + es6-weak-map "^2.0.3" + event-emitter "^0.3.5" + is-promise "^2.2.2" + lru-queue "^0.1.0" + next-tick "^1.1.0" + timers-ext "^0.1.7" + +memory-pager@^1.0.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5" + integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +method-override@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/method-override/-/method-override-3.0.0.tgz#6ab0d5d574e3208f15b0c9cf45ab52000468d7a2" + integrity sha512-IJ2NNN/mSl9w3kzWB92rcdHpz+HjkxhDJWNDBqSlas+zQdP8wBiJzITPg08M/k2uVvMow7Sk41atndNtt/PHSA== + dependencies: + debug "3.1.0" + methods "~1.1.2" + parseurl "~1.3.2" + vary "~1.1.2" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micro-memoize@^4.0.14: + version "4.1.2" + resolved "https://registry.yarnpkg.com/micro-memoize/-/micro-memoize-4.1.2.tgz#ce719c1ba1e41592f1cd91c64c5f41dcbf135f36" + integrity sha512-+HzcV2H+rbSJzApgkj0NdTakkC+bnyeiUxgT6/m7mjcz1CmM22KYFKp+EVj1sWe4UYcnriJr5uqHQD/gMHLD+g== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-fn@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" + integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +mini-css-extract-plugin@1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.2.tgz#83172b4fd812f8fc4a09d6f6d16f924f53990ca8" + integrity sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + webpack-sources "^1.1.0" + +minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6, minimist@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +monaco-editor@^0.38.0: + version "0.38.0" + resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.38.0.tgz#7b3cd16f89b1b8867fcd3c96e67fccee791ff05c" + integrity sha512-11Fkh6yzEmwx7O0YoLxeae0qEGFwmyPRlVxpg7oF9czOOCB/iCjdJrG5I67da5WiXK3YJCxoz9TJFE8Tfq/v9A== + +mongodb-connection-string-url@^2.5.2: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz#57901bf352372abdde812c81be47b75c6b2ec5cf" + integrity sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ== + dependencies: + "@types/whatwg-url" "^8.2.1" + whatwg-url "^11.0.0" + +mongodb@4.8.1: + version "4.8.1" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-4.8.1.tgz#596de88ff4519128266d9254dbe5b781c4005796" + integrity sha512-/NyiM3Ox9AwP5zrfT9TXjRKDJbXlLaUDQ9Rg//2lbg8D2A8GXV0VidYYnA/gfdK6uwbnL4FnAflH7FbGw3TS7w== + dependencies: + bson "^4.6.5" + denque "^2.0.1" + mongodb-connection-string-url "^2.5.2" + socks "^2.6.2" + optionalDependencies: + saslprep "^1.0.3" + +mongoose-aggregate-paginate-v2@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/mongoose-aggregate-paginate-v2/-/mongoose-aggregate-paginate-v2-1.0.6.tgz#fd2f2564d1bbf52f49a196f0b7b03675913dacca" + integrity sha512-UuALu+mjhQa1K9lMQvjLL3vm3iALvNw8PQNIh2gp1b+tO5hUa0NC0Wf6/8QrT9PSJVTihXaD8hQVy3J4e0jO0Q== + +mongoose-paginate-v2@^1.6.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/mongoose-paginate-v2/-/mongoose-paginate-v2-1.7.1.tgz#0b390f5eb8e5dca55ffcb1fd7b4d8078636cb8f1" + integrity sha512-J8DJw3zRXcXOKoZv+RvO9tt5HotRnbo2iCR3lke+TtsQsYwQvbY3EgUkPqZXw6qCX2IByvXrW5SGNdAB0od/Cw== + +mongoose@6.5.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-6.5.0.tgz#5c71aa8d4027e50bfe8d29d6e955e378e010d174" + integrity sha512-swOX8ZEbmCeJaEs29B1j67StBIhuOccNNkipbVhsnLYYCDpNE7heM9W54MFGwN5es9tGGoxINHSzOhJ9kTOZGg== + dependencies: + bson "^4.6.5" + kareem "2.4.1" + mongodb "4.8.1" + mpath "0.9.0" + mquery "4.0.3" + ms "2.1.3" + sift "16.0.0" + +mpath@0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.9.0.tgz#0c122fe107846e31fc58c75b09c35514b3871904" + integrity sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew== + +mquery@4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/mquery/-/mquery-4.0.3.tgz#4d15f938e6247d773a942c912d9748bd1965f89d" + integrity sha512-J5heI+P08I6VJ2Ky3+33IpCdAvlYGTSUjwTPxkAr8i8EoduPMBX2OY/wa3IKZIQl7MU4SbFk8ndgSKyB/cl1zA== + dependencies: + debug "4.x" + +mrmime@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" + integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nanoid@^3.3.4, nanoid@^3.3.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== + +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +needle@^2.5.2: + version "2.9.1" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.9.1.tgz#22d1dffbe3490c2b83e301f7709b6736cd8f2684" + integrity sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +next-tick@1, next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + +next@^13.4.7: + version "13.4.7" + resolved "https://registry.yarnpkg.com/next/-/next-13.4.7.tgz#2ab20e6fada2e25cb81bd17f68956705ffd9824e" + integrity sha512-M8z3k9VmG51SRT6v5uDKdJXcAqLzP3C+vaKfLIAM0Mhx1um1G7MDnO63+m52qPdZfrTFzMZNzfsgvm3ghuVHIQ== + dependencies: + "@next/env" "13.4.7" + "@swc/helpers" "0.5.1" + busboy "1.6.0" + caniuse-lite "^1.0.30001406" + postcss "8.4.14" + styled-jsx "5.1.1" + watchpack "2.4.0" + zod "3.21.4" + optionalDependencies: + "@next/swc-darwin-arm64" "13.4.7" + "@next/swc-darwin-x64" "13.4.7" + "@next/swc-linux-arm64-gnu" "13.4.7" + "@next/swc-linux-arm64-musl" "13.4.7" + "@next/swc-linux-x64-gnu" "13.4.7" + "@next/swc-linux-x64-musl" "13.4.7" + "@next/swc-win32-arm64-msvc" "13.4.7" + "@next/swc-win32-ia32-msvc" "13.4.7" + "@next/swc-win32-x64-msvc" "13.4.7" + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-abi@^3.3.0: + version "3.45.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.45.0.tgz#f568f163a3bfca5aacfce1fbeee1fa2cc98441f5" + integrity sha512-iwXuFrMAcFVi/ZoZiqq8BzAdsLw9kxDfTC0HMyjXfSL/6CSDAGD5UmR7azrAgWV1zKYq7dUUMj4owusBWKLsiQ== + dependencies: + semver "^7.3.5" + +node-addon-api@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" + integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== + +node-fetch@^2.6.1: + version "2.6.11" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25" + integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w== + dependencies: + whatwg-url "^5.0.0" + +node-releases@^2.0.12: + version "2.0.12" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" + integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== + +nodemailer@^6.9.0: + version "6.9.3" + resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.9.3.tgz#e4425b85f05d83c43c5cd81bf84ab968f8ef5cbe" + integrity sha512-fy9v3NgTzBngrMFkDsKEj0r02U7jm6XfC3b52eoNV+GCrGj+s8pt5OqhiJdWKuw51zCTdiNR/IUD1z33LIIGpg== + +nodemon@^2.0.22: + version "2.0.22" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.22.tgz#182c45c3a78da486f673d6c1702e00728daf5258" + integrity sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ== + dependencies: + chokidar "^3.5.2" + debug "^3.2.7" + ignore-by-default "^1.0.1" + minimatch "^3.1.2" + pstree.remy "^1.1.8" + semver "^5.7.1" + simple-update-notifier "^1.0.7" + supports-color "^5.5.0" + touch "^3.1.0" + undefsafe "^2.0.5" + +noms@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/noms/-/noms-0.0.0.tgz#da8ebd9f3af9d6760919b27d9cdc8092a7332859" + integrity sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow== + dependencies: + inherits "^2.0.1" + readable-stream "~1.0.31" + +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg== + dependencies: + abbrev "1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +object-assign@^4.0.1, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.12.3, object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + +object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-to-formdata@^4.4.2: + version "4.5.1" + resolved "https://registry.yarnpkg.com/object-to-formdata/-/object-to-formdata-4.5.1.tgz#b6955a9c505b58df15852fee5f844b418b3eb6fe" + integrity sha512-QiM9D0NiU5jV6J6tjE1g7b4Z2tcUnKs1OPUi4iMb2zH+7jwlcUrASghgkFk9GtzqNNq8rTQJtT8AzjBAvLoNMw== + +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.values@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" + integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +on-exit-leak-free@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz#5c703c968f7e7f851885f6459bf8a8a57edc9cc4" + integrity sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +opener@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +passport-anonymous@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/passport-anonymous/-/passport-anonymous-1.0.1.tgz#241e37274ec44dfb7f6cad234b41c438386bc117" + integrity sha512-Mk2dls97nLTzHpsWCYQ54IVGucWaiWSHHr3+IhWYAebg4dRgRQIfyoeYrixoxB2z2z4+EM7p9yjC+a3yMB5z5A== + dependencies: + passport-strategy "1.x.x" + +passport-headerapikey@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/passport-headerapikey/-/passport-headerapikey-1.2.2.tgz#b71960523999c9864151b8535c919e3ff5ba75ce" + integrity sha512-4BvVJRrWsNJPrd3UoZfcnnl4zvUWYKEtfYkoDsaOKBsrWHYmzTApCjs7qUbncOLexE9ul0IRiYBFfBG0y9IVQA== + dependencies: + lodash "^4.17.15" + passport-strategy "^1.0.0" + +passport-jwt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/passport-jwt/-/passport-jwt-4.0.1.tgz#c443795eff322c38d173faa0a3c481479646ec3d" + integrity sha512-UCKMDYhNuGOBE9/9Ycuoyh7vP6jpeTp/+sfMJl7nLff/t6dps+iaeE0hhNkKN8/HZHcJ7lCdOyDxHdDoxoSvdQ== + dependencies: + jsonwebtoken "^9.0.0" + passport-strategy "^1.0.0" + +passport-local@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/passport-local/-/passport-local-1.0.0.tgz#1fe63268c92e75606626437e3b906662c15ba6ee" + integrity sha512-9wCE6qKznvf9mQYYbgJ3sVOHmCWoUNMVFoZzNoznmISbhnNNPhN9xfY3sLmScHMetEJeoY7CXwfhCe7argfQow== + dependencies: + passport-strategy "1.x.x" + +passport-strategy@1.x.x, passport-strategy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4" + integrity sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA== + +passport@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/passport/-/passport-0.6.0.tgz#e869579fab465b5c0b291e841e6cc95c005fac9d" + integrity sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug== + dependencies: + passport-strategy "1.x.x" + pause "0.0.1" + utils-merge "^1.0.1" + +path-browserify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pause@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" + integrity sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg== + +payload@^1.8.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/payload/-/payload-1.10.2.tgz#13f9fbc9d98b59a81d6b225ac21ad3da34066fbe" + integrity sha512-7Ie8WlcfDDKRVSAK4NGnMtEt8lNuCboYSHbERJMLYbtYNOyHXCmHiRgW3dWZeF+vTtpd8gRPyjwDWr+4hQQayQ== + dependencies: + "@date-io/date-fns" "^2.16.0" + "@dnd-kit/core" "^6.0.7" + "@dnd-kit/sortable" "^7.0.2" + "@faceless-ui/modal" "^2.0.1" + "@faceless-ui/scroll-info" "^1.3.0" + "@faceless-ui/window-info" "^2.1.1" + "@monaco-editor/react" "^4.5.1" + "@swc/core" "^1.3.26" + "@swc/register" "^0.1.10" + "@types/sharp" "^0.31.1" + body-parser "^1.20.1" + bson-objectid "^2.0.4" + compression "^1.7.4" + conf "^10.2.0" + connect-history-api-fallback "^1.6.0" + css-loader "^5.2.7" + css-minimizer-webpack-plugin "^5.0.0" + dataloader "^2.1.0" + date-fns "^2.29.3" + deep-equal "^2.2.0" + deepmerge "^4.2.2" + dotenv "^8.6.0" + express "^4.18.2" + express-fileupload "1.4.0" + express-rate-limit "^5.5.1" + file-loader "^6.2.0" + file-type "16.5.4" + find-up "4.1.0" + flatley "^5.2.0" + fs-extra "^10.1.0" + get-tsconfig "^4.4.0" + graphql "^16.6.0" + graphql-http "^1.17.1" + graphql-playground-middleware-express "^1.7.23" + graphql-query-complexity "^0.12.0" + graphql-scalars "^1.20.1" + graphql-type-json "^0.3.2" + html-webpack-plugin "^5.5.0" + http-status "^1.6.2" + i18next "^22.4.9" + i18next-browser-languagedetector "^6.1.8" + i18next-http-middleware "^3.2.2" + is-hotkey "^0.2.0" + is-plain-object "^5.0.0" + isomorphic-fetch "^3.0.0" + joi "^17.7.0" + json-schema-to-typescript "11.0.3" + jsonwebtoken "^9.0.0" + jwt-decode "^3.1.2" + md5 "^2.3.0" + method-override "^3.0.0" + micro-memoize "^4.0.14" + mini-css-extract-plugin "1.6.2" + minimist "^1.2.7" + mkdirp "^1.0.4" + monaco-editor "^0.38.0" + mongoose "6.5.0" + mongoose-aggregate-paginate-v2 "^1.0.6" + mongoose-paginate-v2 "^1.6.1" + nodemailer "^6.9.0" + object-to-formdata "^4.4.2" + passport "^0.6.0" + passport-anonymous "^1.0.1" + passport-headerapikey "^1.2.2" + passport-jwt "^4.0.1" + passport-local "^1.0.0" + path-browserify "^1.0.1" + pino "^6.4.1" + pino-pretty "^9.1.1" + pluralize "^8.0.0" + postcss "^8.4.21" + postcss-loader "^6.2.1" + postcss-preset-env "^7.8.3" + probe-image-size "^6.0.0" + process "^0.11.10" + qs "^6.11.0" + qs-middleware "^1.0.3" + react "^18.2.0" + react-animate-height "^2.1.2" + react-datepicker "^4.10.0" + react-diff-viewer-continued "^3.2.6" + react-dom "^18.2.0" + react-helmet "^6.1.0" + react-i18next "^11.18.6" + react-router-dom "^5.3.4" + react-router-navigation-prompt "^1.9.6" + react-select "^5.7.3" + react-toastify "^8.2.0" + sanitize-filename "^1.6.3" + sass "^1.57.1" + sass-loader "^12.6.0" + scheduler "^0.23.0" + scmp "^2.1.0" + sharp "^0.31.3" + slate "^0.91.4" + slate-history "^0.86.0" + slate-hyperscript "^0.81.3" + slate-react "^0.92.0" + style-loader "^2.0.0" + swc-loader "^0.2.3" + swc-minify-webpack-plugin "^2.1.0" + terser-webpack-plugin "^5.3.6" + ts-essentials "^7.0.3" + url-loader "^4.1.1" + use-context-selector "^1.4.1" + uuid "^8.3.2" + webpack "^5.78.0" + webpack-bundle-analyzer "^4.8.0" + webpack-cli "^4.10.0" + webpack-dev-middleware "6.0.1" + webpack-hot-middleware "^2.25.3" + +peek-readable@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-4.1.0.tgz#4ece1111bf5c2ad8867c314c81356847e8a62e72" + integrity sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pino-abstract-transport@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz#cc0d6955fffcadb91b7b49ef220a6cc111d48bb3" + integrity sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA== + dependencies: + readable-stream "^4.0.0" + split2 "^4.0.0" + +pino-pretty@^9.1.1: + version "9.4.0" + resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-9.4.0.tgz#fc4026e83c87272cbdfb7afed121770e6000940c" + integrity sha512-NIudkNLxnl7MGj1XkvsqVyRgo6meFP82ECXF2PlOI+9ghmbGuBUUqKJ7IZPIxpJw4vhhSva0IuiDSAuGh6TV9g== + dependencies: + colorette "^2.0.7" + dateformat "^4.6.3" + fast-copy "^3.0.0" + fast-safe-stringify "^2.1.1" + help-me "^4.0.1" + joycon "^3.1.1" + minimist "^1.2.6" + on-exit-leak-free "^2.1.0" + pino-abstract-transport "^1.0.0" + pump "^3.0.0" + readable-stream "^4.0.0" + secure-json-parse "^2.4.0" + sonic-boom "^3.0.0" + strip-json-comments "^3.1.1" + +pino-std-serializers@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz#b56487c402d882eb96cd67c257868016b61ad671" + integrity sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg== + +pino@^6.4.1: + version "6.14.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-6.14.0.tgz#b745ea87a99a6c4c9b374e4f29ca7910d4c69f78" + integrity sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg== + dependencies: + fast-redact "^3.0.0" + fast-safe-stringify "^2.0.8" + flatstr "^1.0.12" + pino-std-serializers "^3.1.0" + process-warning "^1.0.0" + quick-format-unescaped "^4.0.3" + sonic-boom "^1.0.2" + +pirates@^4.0.1: + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-up@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + +postcss-attribute-case-insensitive@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz#03d761b24afc04c09e757e92ff53716ae8ea2741" + integrity sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-calc@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-9.0.1.tgz#a744fd592438a93d6de0f1434c572670361eb6c6" + integrity sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ== + dependencies: + postcss-selector-parser "^6.0.11" + postcss-value-parser "^4.2.0" + +postcss-clamp@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz#7263e95abadd8c2ba1bd911b0b5a5c9c93e02363" + integrity sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-functional-notation@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz#21a909e8d7454d3612d1659e471ce4696f28caec" + integrity sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-hex-alpha@^8.0.4: + version "8.0.4" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz#c66e2980f2fbc1a63f5b079663340ce8b55f25a5" + integrity sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-rebeccapurple@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz#63fdab91d878ebc4dd4b7c02619a0c3d6a56ced0" + integrity sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-colormin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-6.0.0.tgz#d4250652e952e1c0aca70c66942da93d3cdeaafe" + integrity sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + colord "^2.9.1" + postcss-value-parser "^4.2.0" + +postcss-convert-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-6.0.0.tgz#ec94a954957e5c3f78f0e8f65dfcda95280b8996" + integrity sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw== + dependencies: + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" + +postcss-custom-media@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz#c8f9637edf45fef761b014c024cee013f80529ea" + integrity sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-custom-properties@^12.1.10: + version "12.1.11" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz#d14bb9b3989ac4d40aaa0e110b43be67ac7845cf" + integrity sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-custom-selectors@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz#1ab4684d65f30fed175520f82d223db0337239d9" + integrity sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-dir-pseudo-class@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz#2bf31de5de76added44e0a25ecf60ae9f7c7c26c" + integrity sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-discard-comments@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-6.0.0.tgz#9ca335e8b68919f301b24ba47dde226a42e535fe" + integrity sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw== + +postcss-discard-duplicates@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.0.tgz#c26177a6c33070922e67e9a92c0fd23d443d1355" + integrity sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA== + +postcss-discard-empty@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-6.0.0.tgz#06c1c4fce09e22d2a99e667c8550eb8a3a1b9aee" + integrity sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ== + +postcss-discard-overridden@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-6.0.0.tgz#49c5262db14e975e349692d9024442de7cd8e234" + integrity sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw== + +postcss-double-position-gradients@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz#b96318fdb477be95997e86edd29c6e3557a49b91" + integrity sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +postcss-env-function@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-4.0.6.tgz#7b2d24c812f540ed6eda4c81f6090416722a8e7a" + integrity sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-focus-visible@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz#50c9ea9afa0ee657fb75635fabad25e18d76bf9e" + integrity sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw== + dependencies: + postcss-selector-parser "^6.0.9" + +postcss-focus-within@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz#5b1d2ec603195f3344b716c0b75f61e44e8d2e20" + integrity sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ== + dependencies: + postcss-selector-parser "^6.0.9" + +postcss-font-variant@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz#efd59b4b7ea8bb06127f2d031bfbb7f24d32fa66" + integrity sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA== + +postcss-gap-properties@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz#f7e3cddcf73ee19e94ccf7cb77773f9560aa2fff" + integrity sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg== + +postcss-image-set-function@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz#08353bd756f1cbfb3b6e93182c7829879114481f" + integrity sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-initial@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-4.0.1.tgz#529f735f72c5724a0fb30527df6fb7ac54d7de42" + integrity sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ== + +postcss-lab-function@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz#6fe4c015102ff7cd27d1bd5385582f67ebdbdc98" + integrity sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +postcss-loader@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-6.2.1.tgz#0895f7346b1702103d30fdc66e4d494a93c008ef" + integrity sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q== + dependencies: + cosmiconfig "^7.0.0" + klona "^2.0.5" + semver "^7.3.5" + +postcss-logical@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-5.0.4.tgz#ec75b1ee54421acc04d5921576b7d8db6b0e6f73" + integrity sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g== + +postcss-media-minmax@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz#7140bddec173e2d6d657edbd8554a55794e2a5b5" + integrity sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ== + +postcss-merge-longhand@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.0.tgz#6f627b27db939bce316eaa97e22400267e798d69" + integrity sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg== + dependencies: + postcss-value-parser "^4.2.0" + stylehacks "^6.0.0" + +postcss-merge-rules@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-6.0.1.tgz#39f165746404e646c0f5c510222ccde4824a86aa" + integrity sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + cssnano-utils "^4.0.0" + postcss-selector-parser "^6.0.5" + +postcss-minify-font-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-6.0.0.tgz#68d4a028f9fa5f61701974724b2cc9445d8e6070" + integrity sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-minify-gradients@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-6.0.0.tgz#22b5c88cc63091dadbad34e31ff958404d51d679" + integrity sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA== + dependencies: + colord "^2.9.1" + cssnano-utils "^4.0.0" + postcss-value-parser "^4.2.0" + +postcss-minify-params@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-6.0.0.tgz#2b3a85a9e3b990d7a16866f430f5fd1d5961b539" + integrity sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ== + dependencies: + browserslist "^4.21.4" + cssnano-utils "^4.0.0" + postcss-value-parser "^4.2.0" + +postcss-minify-selectors@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.0.tgz#5046c5e8680a586e5a0cad52cc9aa36d6be5bda2" + integrity sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== + +postcss-modules-local-by-default@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz#b08eb4f083050708998ba2c6061b50c2870ca524" + integrity sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-nesting@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.2.0.tgz#0b12ce0db8edfd2d8ae0aaf86427370b898890be" + integrity sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA== + dependencies: + "@csstools/selector-specificity" "^2.0.0" + postcss-selector-parser "^6.0.10" + +postcss-normalize-charset@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-6.0.0.tgz#36cc12457259064969fb96f84df491652a4b0975" + integrity sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ== + +postcss-normalize-display-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.0.tgz#8d2961415078644d8c6bbbdaf9a2fdd60f546cd4" + integrity sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-positions@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-6.0.0.tgz#25b96df99a69f8925f730eaee0be74416865e301" + integrity sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-repeat-style@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.0.tgz#ddf30ad8762feb5b1eb97f39f251acd7b8353299" + integrity sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-string@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-6.0.0.tgz#948282647a51e409d69dde7910f0ac2ff97cb5d8" + integrity sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-timing-functions@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.0.tgz#5f13e650b8c43351989fc5de694525cc2539841c" + integrity sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-unicode@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.0.tgz#741b3310f874616bdcf07764f5503695d3604730" + integrity sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg== + dependencies: + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" + +postcss-normalize-url@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-6.0.0.tgz#d0a31e962a16401fb7deb7754b397a323fb650b4" + integrity sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-whitespace@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.0.tgz#accb961caa42e25ca4179b60855b79b1f7129d4d" + integrity sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-opacity-percentage@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz#5b89b35551a556e20c5d23eb5260fbfcf5245da6" + integrity sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A== + +postcss-ordered-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-6.0.0.tgz#374704cdff25560d44061d17ba3c6308837a3218" + integrity sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg== + dependencies: + cssnano-utils "^4.0.0" + postcss-value-parser "^4.2.0" + +postcss-overflow-shorthand@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz#7ed6486fec44b76f0eab15aa4866cda5d55d893e" + integrity sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-page-break@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz#7fbf741c233621622b68d435babfb70dd8c1ee5f" + integrity sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ== + +postcss-place@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-7.0.5.tgz#95dbf85fd9656a3a6e60e832b5809914236986c4" + integrity sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-preset-env@^7.8.3: + version "7.8.3" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz#2a50f5e612c3149cc7af75634e202a5b2ad4f1e2" + integrity sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag== + dependencies: + "@csstools/postcss-cascade-layers" "^1.1.1" + "@csstools/postcss-color-function" "^1.1.1" + "@csstools/postcss-font-format-keywords" "^1.0.1" + "@csstools/postcss-hwb-function" "^1.0.2" + "@csstools/postcss-ic-unit" "^1.0.1" + "@csstools/postcss-is-pseudo-class" "^2.0.7" + "@csstools/postcss-nested-calc" "^1.0.0" + "@csstools/postcss-normalize-display-values" "^1.0.1" + "@csstools/postcss-oklab-function" "^1.1.1" + "@csstools/postcss-progressive-custom-properties" "^1.3.0" + "@csstools/postcss-stepped-value-functions" "^1.0.1" + "@csstools/postcss-text-decoration-shorthand" "^1.0.0" + "@csstools/postcss-trigonometric-functions" "^1.0.2" + "@csstools/postcss-unset-value" "^1.0.2" + autoprefixer "^10.4.13" + browserslist "^4.21.4" + css-blank-pseudo "^3.0.3" + css-has-pseudo "^3.0.4" + css-prefers-color-scheme "^6.0.3" + cssdb "^7.1.0" + postcss-attribute-case-insensitive "^5.0.2" + postcss-clamp "^4.1.0" + postcss-color-functional-notation "^4.2.4" + postcss-color-hex-alpha "^8.0.4" + postcss-color-rebeccapurple "^7.1.1" + postcss-custom-media "^8.0.2" + postcss-custom-properties "^12.1.10" + postcss-custom-selectors "^6.0.3" + postcss-dir-pseudo-class "^6.0.5" + postcss-double-position-gradients "^3.1.2" + postcss-env-function "^4.0.6" + postcss-focus-visible "^6.0.4" + postcss-focus-within "^5.0.4" + postcss-font-variant "^5.0.0" + postcss-gap-properties "^3.0.5" + postcss-image-set-function "^4.0.7" + postcss-initial "^4.0.1" + postcss-lab-function "^4.2.1" + postcss-logical "^5.0.4" + postcss-media-minmax "^5.0.0" + postcss-nesting "^10.2.0" + postcss-opacity-percentage "^1.1.2" + postcss-overflow-shorthand "^3.0.4" + postcss-page-break "^3.0.4" + postcss-place "^7.0.5" + postcss-pseudo-class-any-link "^7.1.6" + postcss-replace-overflow-wrap "^4.0.0" + postcss-selector-not "^6.0.1" + postcss-value-parser "^4.2.0" + +postcss-pseudo-class-any-link@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz#2693b221902da772c278def85a4d9a64b6e617ab" + integrity sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-reduce-initial@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-6.0.0.tgz#7d16e83e60e27e2fa42f56ec0b426f1da332eca7" + integrity sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.0.tgz#28ff2601a6d9b96a2f039b3501526e1f4d584a46" + integrity sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-replace-overflow-wrap@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz#d2df6bed10b477bf9c52fab28c568b4b29ca4319" + integrity sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw== + +postcss-selector-not@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz#8f0a709bf7d4b45222793fc34409be407537556d" + integrity sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: + version "6.0.13" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" + integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-6.0.0.tgz#7b18742d38d4505a0455bbe70d52b49f00eaf69d" + integrity sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw== + dependencies: + postcss-value-parser "^4.2.0" + svgo "^3.0.2" + +postcss-unique-selectors@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.0.tgz#c94e9b0f7bffb1203894e42294b5a1b3fb34fbe1" + integrity sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@8.4.14: + version "8.4.14" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" + integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +postcss@^8.2.15, postcss@^8.4.21, postcss@^8.4.24: + version "8.4.24" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.24.tgz#f714dba9b2284be3cc07dbd2fc57ee4dc972d2df" + integrity sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +prebuild-install@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45" + integrity sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw== + dependencies: + detect-libc "^2.0.0" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^3.3.0" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^4.0.0" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@^2.6.2, prettier@^2.7.1: + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + +pretty-error@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" + integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== + dependencies: + lodash "^4.17.20" + renderkid "^3.0.0" + +probe-image-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/probe-image-size/-/probe-image-size-6.0.0.tgz#4a85b19d5af4e29a8de7d53a9aa036f6fd02f5f4" + integrity sha512-99PZ5+RU4gqiTfK5ZDMDkZtn6eL4WlKfFyVJV7lFQvH3iGmQ85DqMTOdxorERO26LHkevR2qsxnHp0x/2UDJPA== + dependencies: + deepmerge "^4.0.0" + needle "^2.5.2" + stream-parser "~0.3.1" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process-warning@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" + integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +pstree.remy@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" + integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^2.1.0, punycode@^2.1.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + +qs-middleware@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/qs-middleware/-/qs-middleware-1.0.3.tgz#84f3535275ba20fd00c2122efacce6ab01092c19" + integrity sha512-ymlixxD/0Bj3BMY9x1z8ENdQdhkmsIbDNyVvfM8soHn5p/CRFlLPrmtxmE5aG//q1PzHHSGuLi+6QlHezivseg== + dependencies: + qs "~6.4.0" + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +qs@^6.11.0, qs@^6.9.1: + version "6.11.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" + integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== + dependencies: + side-channel "^1.0.4" + +qs@~6.4.0: + version "6.4.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.1.tgz#2bad97710a5b661c366b378b1e3a44a592ff45e6" + integrity sha512-LQy1Q1fcva/UsnP/6Iaa4lVeM49WiOitu2T4hZCyA/elLKu37L99qcBJk4VCCk+rdLvnMzfKyiN3SZTqdAZGSQ== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-format-unescaped@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" + integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-animate-height@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/react-animate-height/-/react-animate-height-2.1.2.tgz#9b450fc64d46f10f5e07da8d0d5e2c47b9f15030" + integrity sha512-A9jfz/4CTdsIsE7WCQtO9UkOpMBcBRh8LxyHl2eoZz1ki02jpyUL5xt58gabd0CyeLQ8fRyQ+s2lyV2Ufu8Owg== + dependencies: + classnames "^2.2.5" + prop-types "^15.6.1" + +react-datepicker@^4.10.0: + version "4.14.1" + resolved "https://registry.yarnpkg.com/react-datepicker/-/react-datepicker-4.14.1.tgz#f9f7925d0a40e3195048bbd22a5faa635765163d" + integrity sha512-uiPfjD+25KI5WOfCAXlzQgSLyksTagk3wwKn1KGBdF19YtybFDregRmcoNNGveQHAbT10SJZdCvk/8pbc7zxJg== + dependencies: + "@popperjs/core" "^2.9.2" + classnames "^2.2.6" + date-fns "^2.24.0" + prop-types "^15.7.2" + react-onclickoutside "^6.12.2" + react-popper "^2.3.0" + +react-diff-viewer-continued@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/react-diff-viewer-continued/-/react-diff-viewer-continued-3.2.6.tgz#96382463b5de6838d95323c407442349b1c3a26e" + integrity sha512-GrzyqQnjIMoej+jMjWvtVSsQqhXgzEGqpXlJ2dAGfOk7Q26qcm8Gu6xtI430PBUyZsERe8BJSQf+7VZZo8IBNQ== + dependencies: + "@emotion/css" "^11.10.5" + classnames "^2.3.1" + diff "^5.1.0" + memoize-one "^6.0.0" + prop-types "^15.8.1" + +react-dom@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.0" + +react-fast-compare@^3.0.1, react-fast-compare@^3.1.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz#929a97a532304ce9fee4bcae44234f1ce2c21d49" + integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ== + +react-helmet@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/react-helmet/-/react-helmet-6.1.0.tgz#a750d5165cb13cf213e44747502652e794468726" + integrity sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw== + dependencies: + object-assign "^4.1.1" + prop-types "^15.7.2" + react-fast-compare "^3.1.1" + react-side-effect "^2.1.0" + +react-i18next@^11.18.6: + version "11.18.6" + resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-11.18.6.tgz#e159c2960c718c1314f1e8fcaa282d1c8b167887" + integrity sha512-yHb2F9BiT0lqoQDt8loZ5gWP331GwctHz9tYQ8A2EIEUu+CcEdjBLQWli1USG3RdWQt3W+jqQLg/d4rrQR96LA== + dependencies: + "@babel/runtime" "^7.14.5" + html-parse-stringify "^3.0.1" + +react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-onclickoutside@^6.12.2: + version "6.13.0" + resolved "https://registry.yarnpkg.com/react-onclickoutside/-/react-onclickoutside-6.13.0.tgz#e165ea4e5157f3da94f4376a3ab3e22a565f4ffc" + integrity sha512-ty8So6tcUpIb+ZE+1HAhbLROvAIJYyJe/1vRrrcmW+jLsaM+/powDRqxzo6hSh9CuRZGSL1Q8mvcF5WRD93a0A== + +react-popper@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-2.3.0.tgz#17891c620e1320dce318bad9fede46a5f71c70ba" + integrity sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q== + dependencies: + react-fast-compare "^3.0.1" + warning "^4.0.2" + +react-router-dom@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.4.tgz#2ed62ffd88cae6db134445f4a0c0ae8b91d2e5e6" + integrity sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + loose-envify "^1.3.1" + prop-types "^15.6.2" + react-router "5.3.4" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router-navigation-prompt@^1.9.6: + version "1.9.6" + resolved "https://registry.yarnpkg.com/react-router-navigation-prompt/-/react-router-navigation-prompt-1.9.6.tgz#a949252dfbae8c40508671beb6d5995f0b089ac4" + integrity sha512-l0sAtbroHK8i1/Eyy29XcrMpBEt0R08BaScgMUt8r5vWWbLz7G0ChOikayTCQm7QgDFsHw8gVnxDJb7TBZCAKg== + +react-router@5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.3.4.tgz#8ca252d70fcc37841e31473c7a151cf777887bb5" + integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" + loose-envify "^1.3.1" + path-to-regexp "^1.7.0" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-select@^5.7.3: + version "5.7.3" + resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.7.3.tgz#fa0dc9a23cad6ff3871ad3829f6083a4b54961a2" + integrity sha512-z8i3NCuFFWL3w27xq92rBkVI2onT0jzIIPe480HlBjXJ3b5o6Q+Clp4ydyeKrj9DZZ3lrjawwLC5NGl0FSvUDg== + dependencies: + "@babel/runtime" "^7.12.0" + "@emotion/cache" "^11.4.0" + "@emotion/react" "^11.8.1" + "@floating-ui/dom" "^1.0.1" + "@types/react-transition-group" "^4.4.0" + memoize-one "^6.0.0" + prop-types "^15.6.0" + react-transition-group "^4.3.0" + use-isomorphic-layout-effect "^1.1.2" + +react-side-effect@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-2.1.2.tgz#dc6345b9e8f9906dc2eeb68700b615e0b4fe752a" + integrity sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw== + +react-toastify@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/react-toastify/-/react-toastify-8.2.0.tgz#ef7d56bdfdc6272ca6b228368ab564721c3a3244" + integrity sha512-Pg2Ju7NngAamarFvLwqrFomJ57u/Ay6i6zfLurt/qPynWkAkOthu6vxfqYpJCyNhHRhR4hu7+bySSeWWJu6PAg== + dependencies: + clsx "^1.1.1" + +react-transition-group@^4.3.0, react-transition-group@^4.4.2: + version "4.4.5" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" + integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + +react@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== + dependencies: + loose-envify "^1.1.0" + +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@^4.0.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.4.0.tgz#55ce132d60a988c460d75c631e9ccf6a7229b468" + integrity sha512-kDMOq0qLtxV9f/SQv522h8cxZBqNZXuXNyjyezmfAAuribMyVXziljpQ/uQhfE1XLg2/TLTW2DsnoE4VAi/krg== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + +readable-stream@~1.0.31: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@~2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-web-to-node-stream@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz#5d52bb5df7b54861fd48d015e93a2cb87b3ee0bb" + integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw== + dependencies: + readable-stream "^3.6.0" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +rechoir@^0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" + integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== + dependencies: + resolve "^1.9.0" + +regenerator-runtime@^0.13.11: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + +regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" + integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + functions-have-names "^1.2.3" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== + +renderkid@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" + integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^6.0.1" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + +resolve-pkg-maps@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== + +resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.9.0: + version "1.22.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== + dependencies: + is-core-module "^2.11.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sanitize-filename@^1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" + integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== + dependencies: + truncate-utf8-bytes "^1.0.0" + +saslprep@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226" + integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag== + dependencies: + sparse-bitfield "^3.0.3" + +sass-loader@^12.6.0: + version "12.6.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-12.6.0.tgz#5148362c8e2cdd4b950f3c63ac5d16dbfed37bcb" + integrity sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA== + dependencies: + klona "^2.0.4" + neo-async "^2.6.2" + +sass@^1.57.1: + version "1.63.6" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.63.6.tgz#481610e612902e0c31c46b46cf2dad66943283ea" + integrity sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + +sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== + dependencies: + loose-envify "^1.1.0" + +schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0, schema-utils@^4.0.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" + integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + +scmp@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/scmp/-/scmp-2.1.0.tgz#37b8e197c425bdeb570ab91cc356b311a11f9c9a" + integrity sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q== + +scroll-into-view-if-needed@^2.2.20: + version "2.2.31" + resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz#d3c482959dc483e37962d1521254e3295d0d1587" + integrity sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA== + dependencies: + compute-scroll-into-view "^1.0.20" + +secure-json-parse@^2.4.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.7.0.tgz#5a5f9cd6ae47df23dba3151edd06855d47e09862" + integrity sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw== + +semver@^5.7.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: + version "7.5.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e" + integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ== + dependencies: + lru-cache "^6.0.0" + +semver@~7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-javascript@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" + integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== + dependencies: + randombytes "^2.1.0" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +sharp@^0.31.3: + version "0.31.3" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.31.3.tgz#60227edc5c2be90e7378a210466c99aefcf32688" + integrity sha512-XcR4+FCLBFKw1bdB+GEhnUNXNXvnt0tDo4WsBsraKymuo/IAuPuCBVAL2wIkUw2r/dwFW5Q5+g66Kwl2dgDFVg== + dependencies: + color "^4.2.3" + detect-libc "^2.0.1" + node-addon-api "^5.0.0" + prebuild-install "^7.1.1" + semver "^7.3.8" + simple-get "^4.0.1" + tar-fs "^2.1.1" + tunnel-agent "^0.6.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +sift@16.0.0: + version "16.0.0" + resolved "https://registry.yarnpkg.com/sift/-/sift-16.0.0.tgz#447991577db61f1a8fab727a8a98a6db57a23eb8" + integrity sha512-ILTjdP2Mv9V1kIxWMXeMTIRbOBrqKc4JAXmFMnFq3fKeyQ2Qwa3Dw1ubcye3vR+Y6ofA0b9gNDr/y2t6eUeIzQ== + +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^4.0.0, simple-get@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +simple-update-notifier@^1.0.7: + version "1.1.0" + resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz#67694c121de354af592b347cdba798463ed49c82" + integrity sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg== + dependencies: + semver "~7.0.0" + +sirv@^1.0.7: + version "1.0.19" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.19.tgz#1d73979b38c7fe91fcba49c85280daa9c2363b49" + integrity sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ== + dependencies: + "@polka/url" "^1.0.0-next.20" + mrmime "^1.0.0" + totalist "^1.0.0" + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slate-history@^0.86.0: + version "0.86.0" + resolved "https://registry.yarnpkg.com/slate-history/-/slate-history-0.86.0.tgz#5554612271d2fc1018a7918be3961bb66e620c58" + integrity sha512-OxObL9tbhgwvSlnKSCpGIh7wnuaqvOj5jRExGjEyCU2Ke8ctf22HjT+jw7GEi9ttLzNTUmTEU3YIzqKGeqN+og== + dependencies: + is-plain-object "^5.0.0" + +slate-hyperscript@^0.81.3: + version "0.81.3" + resolved "https://registry.yarnpkg.com/slate-hyperscript/-/slate-hyperscript-0.81.3.tgz#0c8f446d6bef717d2fe855239fb86a000ba2d0d2" + integrity sha512-A/jvoLTAgeRcJaUPQCYOikCJxSws6+/jkL7mM+QuZljNd7EA5YqafGA7sVBJRFpcoSsDRUIah1yNiC/7vxZPYg== + dependencies: + is-plain-object "^5.0.0" + +slate-react@^0.92.0: + version "0.92.0" + resolved "https://registry.yarnpkg.com/slate-react/-/slate-react-0.92.0.tgz#eb158ac2a33d962f48c466c4c8cc7bc14c1c6633" + integrity sha512-xEDKu5RKw5f0N95l1UeNQnrB0Pxh4JPjpIZR/BVsMo0ININnLAknR99gLo46bl/Ffql4mr7LeaxQRoXxbFtJOQ== + dependencies: + "@juggle/resize-observer" "^3.4.0" + "@types/is-hotkey" "^0.1.1" + "@types/lodash" "^4.14.149" + direction "^1.0.3" + is-hotkey "^0.1.6" + is-plain-object "^5.0.0" + lodash "^4.17.4" + scroll-into-view-if-needed "^2.2.20" + tiny-invariant "1.0.6" + +slate@^0.91.4: + version "0.91.4" + resolved "https://registry.yarnpkg.com/slate/-/slate-0.91.4.tgz#759764d63c8a8a7aff29a29e598e593ed80277f9" + integrity sha512-aUJ3rpjrdi5SbJ5G1Qjr3arytfRkEStTmHjBfWq2A2Q8MybacIzkScSvGJjQkdTk3djCK9C9SEOt39sSeZFwTw== + dependencies: + immer "^9.0.6" + is-plain-object "^5.0.0" + tiny-warning "^1.0.3" + +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +socks@^2.6.2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== + dependencies: + ip "^2.0.0" + smart-buffer "^4.2.0" + +sonic-boom@^1.0.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-1.4.1.tgz#d35d6a74076624f12e6f917ade7b9d75e918f53e" + integrity sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg== + dependencies: + atomic-sleep "^1.0.0" + flatstr "^1.0.12" + +sonic-boom@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.3.0.tgz#cffab6dafee3b2bcb88d08d589394198bee1838c" + integrity sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g== + dependencies: + atomic-sleep "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-support@^0.5.13, source-map-support@^0.5.17, source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.6.0, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sparse-bitfield@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" + integrity sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ== + dependencies: + memory-pager "^1.0.2" + +split2@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + +state-local@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/state-local/-/state-local-1.0.7.tgz#da50211d07f05748d53009bee46307a37db386d5" + integrity sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + +stream-parser@~0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/stream-parser/-/stream-parser-0.3.1.tgz#1618548694420021a1182ff0af1911c129761773" + integrity sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ== + dependencies: + debug "2" + +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string.prototype.trim@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" + integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +strtok3@^6.2.4: + version "6.3.0" + resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-6.3.0.tgz#358b80ffe6d5d5620e19a073aa78ce947a90f9a0" + integrity sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw== + dependencies: + "@tokenizer/token" "^0.3.0" + peek-readable "^4.1.0" + +style-loader@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-2.0.0.tgz#9669602fd4690740eaaec137799a03addbbc393c" + integrity sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +styled-jsx@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" + integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw== + dependencies: + client-only "0.0.1" + +stylehacks@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.0.0.tgz#9fdd7c217660dae0f62e14d51c89f6c01b3cb738" + integrity sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw== + dependencies: + browserslist "^4.21.4" + postcss-selector-parser "^6.0.4" + +stylis@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51" + integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== + +supports-color@^5.3.0, supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svgo@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.0.2.tgz#5e99eeea42c68ee0dc46aa16da093838c262fe0a" + integrity sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^5.1.0" + css-tree "^2.2.1" + csso "^5.0.5" + picocolors "^1.0.0" + +swc-loader@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/swc-loader/-/swc-loader-0.2.3.tgz#6792f1c2e4c9ae9bf9b933b3e010210e270c186d" + integrity sha512-D1p6XXURfSPleZZA/Lipb3A8pZ17fP4NObZvFCDjK/OKljroqDpPmsBdTraWhVBqUNpcWBQY1imWdoPScRlQ7A== + +swc-minify-webpack-plugin@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/swc-minify-webpack-plugin/-/swc-minify-webpack-plugin-2.1.1.tgz#2c63fe592d49541733d7557b3af8f97c7ffa78b9" + integrity sha512-/9ud/libNWUC5p71vXWhW/O2Nc0essW8D9pY4P4ol0ceM8OcFbNr41R9YFqTkmktqUL2t0WwXau+FkR4T1+PJA== + +tabbable@^5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-5.3.3.tgz#aac0ff88c73b22d6c3c5a50b1586310006b47fbf" + integrity sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA== + +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +tar-fs@^2.0.0, tar-fs@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +terser-webpack-plugin@^5.3.6, terser-webpack-plugin@^5.3.7: + version "5.3.9" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" + integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.17" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.1" + terser "^5.16.8" + +terser@^5.10.0, terser@^5.16.8: + version "5.18.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.18.1.tgz#6d8642508ae9fb7b48768e48f16d675c89a78460" + integrity sha512-j1n0Ao919h/Ai5r43VAnfV/7azUYW43GPxK7qSATzrsERfW7+y2QW9Cp9ufnRF5CQUWbnLSo7UJokSWCqg4tsQ== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +through2@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +timers-ext@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" + integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== + dependencies: + es5-ext "~0.10.46" + next-tick "1" + +tiny-invariant@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.6.tgz#b3f9b38835e36a41c843a3b0907a5a7b3755de73" + integrity sha512-FOyLWWVjG+aC0UqG76V53yAWdXfH8bO6FNmyZOuUrzDzK8DI3/JRY25UD7+g49JWM1LXwymsKERB+DzI0dTEQA== + +tiny-invariant@^1.0.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" + integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw== + +tiny-warning@^1.0.0, tiny-warning@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +token-types@^4.1.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/token-types/-/token-types-4.2.1.tgz#0f897f03665846982806e138977dbe72d44df753" + integrity sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ== + dependencies: + "@tokenizer/token" "^0.3.0" + ieee754 "^1.2.1" + +totalist@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" + integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== + +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" + integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== + dependencies: + nopt "~1.0.10" + +tr46@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" + integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== + dependencies: + punycode "^2.1.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +truncate-utf8-bytes@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" + integrity sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ== + dependencies: + utf8-byte-length "^1.0.1" + +ts-essentials@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-7.0.3.tgz#686fd155a02133eedcc5362dc8b5056cde3e5a38" + integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== + +ts-node@^9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" + integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== + dependencies: + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.17" + yn "3.1.1" + +tsconfig-paths@^3.12.0: + version "3.14.2" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" + integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.4.0, tslib@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" + integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + +typescript@^4.8.4: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +undefsafe@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" + integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +untildify@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== + +update-browserslist-db@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" + integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-loader@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" + integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== + dependencies: + loader-utils "^2.0.0" + mime-types "^2.1.27" + schema-utils "^3.0.0" + +use-context-selector@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/use-context-selector/-/use-context-selector-1.4.1.tgz#eb96279965846b72915d7f899b8e6ef1d768b0ae" + integrity sha512-Io2ArvcRO+6MWIhkdfMFt+WKQX+Vb++W8DS2l03z/Vw/rz3BclKpM0ynr4LYGyU85Eke+Yx5oIhTY++QR0ZDoA== + +use-isomorphic-layout-effect@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" + integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== + +utf8-byte-length@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" + integrity sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + +utils-merge@1.0.1, utils-merge@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +void-elements@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" + integrity sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w== + +warning@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + +watchpack@2.4.0, watchpack@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" + integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== + +webpack-bundle-analyzer@^4.8.0: + version "4.9.0" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.9.0.tgz#fc093c4ab174fd3dcbd1c30b763f56d10141209d" + integrity sha512-+bXGmO1LyiNx0i9enBu3H8mv42sj/BJWhZNFwjz92tVnBa9J3JMGo2an2IXlEleoDOPn/Hofl5hr/xCpObUDtw== + dependencies: + "@discoveryjs/json-ext" "0.5.7" + acorn "^8.0.4" + acorn-walk "^8.0.0" + chalk "^4.1.0" + commander "^7.2.0" + gzip-size "^6.0.0" + lodash "^4.17.20" + opener "^1.5.2" + sirv "^1.0.7" + ws "^7.3.1" + +webpack-cli@^4.10.0: + version "4.10.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.10.0.tgz#37c1d69c8d85214c5a65e589378f53aec64dab31" + integrity sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w== + dependencies: + "@discoveryjs/json-ext" "^0.5.0" + "@webpack-cli/configtest" "^1.2.0" + "@webpack-cli/info" "^1.5.0" + "@webpack-cli/serve" "^1.7.0" + colorette "^2.0.14" + commander "^7.0.0" + cross-spawn "^7.0.3" + fastest-levenshtein "^1.0.12" + import-local "^3.0.2" + interpret "^2.2.0" + rechoir "^0.7.0" + webpack-merge "^5.7.3" + +webpack-dev-middleware@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-6.0.1.tgz#fd585127ed44dab3f253daf0d98f4d58a5088cc2" + integrity sha512-PZPZ6jFinmqVPJZbisfggDiC+2EeGZ1ZByyMP5sOFJcPPWSexalISz+cvm+j+oYPT7FIJyxT76esjnw9DhE5sw== + dependencies: + colorette "^2.0.10" + memfs "^3.4.12" + mime-types "^2.1.31" + range-parser "^1.2.1" + schema-utils "^4.0.0" + +webpack-hot-middleware@^2.25.3: + version "2.25.4" + resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.25.4.tgz#d8bc9e9cb664fc3105c8e83d2b9ed436bee4e193" + integrity sha512-IRmTspuHM06aZh98OhBJtqLpeWFM8FXJS5UYpKYxCJzyFoyWj1w6VGFfomZU7OPA55dMLrQK0pRT1eQ3PACr4w== + dependencies: + ansi-html-community "0.0.8" + html-entities "^2.1.0" + strip-ansi "^6.0.0" + +webpack-merge@^5.7.3: + version "5.9.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.9.0.tgz#dc160a1c4cf512ceca515cc231669e9ddb133826" + integrity sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg== + dependencies: + clone-deep "^4.0.1" + wildcard "^2.0.0" + +webpack-sources@^1.1.0: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack@^5.78.0: + version "5.88.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.88.0.tgz#a07aa2f8e7a64a8f1cec0c6c2e180e3cb34440c8" + integrity sha512-O3jDhG5e44qIBSi/P6KpcCcH7HD+nYIHVBhdWFxcLOcIGN8zGo5nqF3BjyNCxIh4p1vFdNnreZv2h2KkoAw3lw== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^1.0.0" + "@webassemblyjs/ast" "^1.11.5" + "@webassemblyjs/wasm-edit" "^1.11.5" + "@webassemblyjs/wasm-parser" "^1.11.5" + acorn "^8.7.1" + acorn-import-assertions "^1.9.0" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.15.0" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.9" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.2.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.7" + watchpack "^2.4.0" + webpack-sources "^3.2.3" + +whatwg-fetch@^3.4.1: + version "3.6.2" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" + integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== + +whatwg-url@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" + integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== + dependencies: + tr46 "^3.0.0" + webidl-conversions "^7.0.0" + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wildcard@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@^7.3.1: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +xss@^1.0.6: + version "1.0.14" + resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.14.tgz#4f3efbde75ad0d82e9921cc3c95e6590dd336694" + integrity sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw== + dependencies: + commander "^2.20.3" + cssfilter "0.0.10" + +xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs@^16.1.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zod@3.21.4: + version "3.21.4" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db" + integrity sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw== From b22d157bd2f1c1a857e2d42bdc5b893549e3db9e Mon Sep 17 00:00:00 2001 From: Alessio Gravili Date: Thu, 29 Jun 2023 17:19:36 +0200 Subject: [PATCH 64/78] feat: add locale to displayed API URL --- src/admin/components/elements/DocumentDrawer/DrawerContent.tsx | 2 +- src/admin/components/views/Account/index.tsx | 2 +- src/admin/components/views/collections/Edit/index.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/admin/components/elements/DocumentDrawer/DrawerContent.tsx b/src/admin/components/elements/DocumentDrawer/DrawerContent.tsx index 193a66aa6e..a0251517df 100644 --- a/src/admin/components/elements/DocumentDrawer/DrawerContent.tsx +++ b/src/admin/components/elements/DocumentDrawer/DrawerContent.tsx @@ -89,7 +89,7 @@ const Content: React.FC = ({ if (isError) return null; const isEditing = Boolean(id); - const apiURL = id ? `${serverURL}${api}/${collectionSlug}/${id}` : null; + const apiURL = id ? `${serverURL}${api}/${collectionSlug}/${id}?locale=${locale}` : null; const action = `${serverURL}${api}/${collectionSlug}${id ? `/${id}` : ''}?locale=${locale}&depth=0&fallback-locale=null`; const hasSavePermission = (isEditing && docPermissions?.update?.permission) || (!isEditing && (docPermissions as CollectionPermission)?.create?.permission); const isLoading = !internalState || !docPermissions || isLoadingDocument; diff --git a/src/admin/components/views/Account/index.tsx b/src/admin/components/views/Account/index.tsx index 572f02e490..78f5a1eee5 100644 --- a/src/admin/components/views/Account/index.tsx +++ b/src/admin/components/views/Account/index.tsx @@ -55,7 +55,7 @@ const AccountView: React.FC = () => { const hasSavePermission = docPermissions?.update?.permission; const dataToRender = locationState?.data || data; - const apiURL = `${serverURL}${api}/${slug}/${data?.id}`; + const apiURL = `${serverURL}${api}/${slug}/${data?.id}?locale=${locale}`; const action = `${serverURL}${api}/${slug}/${data?.id}?locale=${locale}&depth=0`; diff --git a/src/admin/components/views/collections/Edit/index.tsx b/src/admin/components/views/collections/Edit/index.tsx index d5930c7e00..3cc42ac54d 100644 --- a/src/admin/components/views/collections/Edit/index.tsx +++ b/src/admin/components/views/collections/Edit/index.tsx @@ -90,7 +90,7 @@ const EditView: React.FC = (props) => { ); } - const apiURL = `${serverURL}${api}/${slug}/${id}${collection.versions.drafts ? '?draft=true' : ''}`; + const apiURL = `${serverURL}${api}/${slug}/${id}?locale=${locale}${collection.versions.drafts ? '&draft=true' : ''}`; const action = `${serverURL}${api}/${slug}${isEditing ? `/${id}` : ''}?locale=${locale}&depth=0&fallback-locale=null`; const hasSavePermission = (isEditing && docPermissions?.update?.permission) || (!isEditing && (docPermissions as CollectionPermission)?.create?.permission); const isLoading = !internalState || !docPermissions || isLoadingData; From 064af8acc73f0774bafebea16a3743488eb74ee3 Mon Sep 17 00:00:00 2001 From: Alessio Gravili Date: Thu, 29 Jun 2023 17:42:49 +0200 Subject: [PATCH 65/78] add apiURL for globals --- src/admin/components/views/Global/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/admin/components/views/Global/index.tsx b/src/admin/components/views/Global/index.tsx index f74058ac43..969f158dda 100644 --- a/src/admin/components/views/Global/index.tsx +++ b/src/admin/components/views/Global/index.tsx @@ -95,7 +95,7 @@ const GlobalView: React.FC = (props) => { initialState, global, onSave, - apiURL: `${serverURL}${api}/globals/${slug}${global.versions?.drafts ? '?draft=true' : ''}`, + apiURL: `${serverURL}${api}/globals/${slug}?locale=${locale}${global.versions?.drafts ? '&draft=true' : ''}`, action: `${serverURL}${api}/globals/${slug}?locale=${locale}&depth=0&fallback-locale=null`, updatedAt: updatedAt || dataToRender?.updatedAt, }} From f84b4323e2fce57e2e14b181e486ed72cc09ded5 Mon Sep 17 00:00:00 2001 From: James Date: Thu, 29 Jun 2023 20:08:39 -0400 Subject: [PATCH 66/78] fix: #2937, depth not being respected in graphql rich text fields --- src/auth/graphql/resolvers/login.ts | 1 + src/auth/graphql/resolvers/me.ts | 1 + src/auth/graphql/resolvers/refresh.ts | 1 + src/auth/graphql/resolvers/resetPassword.ts | 1 + src/auth/operations/resetPassword.ts | 4 +++- src/fields/hooks/afterRead/index.ts | 9 ++------ test/fields/int.spec.ts | 25 ++++++++++++++++++++- 7 files changed, 33 insertions(+), 9 deletions(-) diff --git a/src/auth/graphql/resolvers/login.ts b/src/auth/graphql/resolvers/login.ts index b46e9e34cb..e5898452bf 100644 --- a/src/auth/graphql/resolvers/login.ts +++ b/src/auth/graphql/resolvers/login.ts @@ -11,6 +11,7 @@ function loginResolver(collection: Collection) { }, req: context.req, res: context.res, + depth: 0, }; const result = login(options); diff --git a/src/auth/graphql/resolvers/me.ts b/src/auth/graphql/resolvers/me.ts index 865e23dd26..d61292e4b9 100644 --- a/src/auth/graphql/resolvers/me.ts +++ b/src/auth/graphql/resolvers/me.ts @@ -6,6 +6,7 @@ function meResolver(collection: Collection): any { const options = { collection, req: context.req, + depth: 0, }; return me(options); } diff --git a/src/auth/graphql/resolvers/refresh.ts b/src/auth/graphql/resolvers/refresh.ts index 09c7d98cec..e9427626a2 100644 --- a/src/auth/graphql/resolvers/refresh.ts +++ b/src/auth/graphql/resolvers/refresh.ts @@ -18,6 +18,7 @@ function refreshResolver(collection: Collection) { token, req: context.req, res: context.res, + depth: 0, }; const result = await refresh(options); diff --git a/src/auth/graphql/resolvers/resetPassword.ts b/src/auth/graphql/resolvers/resetPassword.ts index 81a1b27bdd..5844992f6d 100644 --- a/src/auth/graphql/resolvers/resetPassword.ts +++ b/src/auth/graphql/resolvers/resetPassword.ts @@ -13,6 +13,7 @@ function resetPasswordResolver(collection: Collection) { req: context.req, res: context.res, api: 'GraphQL', + depth: 0, }; const result = await resetPassword(options); diff --git a/src/auth/operations/resetPassword.ts b/src/auth/operations/resetPassword.ts index 678e356257..c4e04830f8 100644 --- a/src/auth/operations/resetPassword.ts +++ b/src/auth/operations/resetPassword.ts @@ -23,6 +23,7 @@ export type Arguments = { req: PayloadRequest overrideAccess?: boolean res?: Response + depth?: number } async function resetPassword(args: Arguments): Promise { @@ -45,6 +46,7 @@ async function resetPassword(args: Arguments): Promise { }, overrideAccess, data, + depth, } = args; // ///////////////////////////////////// @@ -119,7 +121,7 @@ async function resetPassword(args: Arguments): Promise { args.res.cookie(`${config.cookiePrefix}-token`, token, cookieOptions); } - const fullUser = await payload.findByID({ collection: collectionConfig.slug, id: user.id, overrideAccess }); + const fullUser = await payload.findByID({ collection: collectionConfig.slug, id: user.id, overrideAccess, depth }); return { token, user: fullUser }; } diff --git a/src/fields/hooks/afterRead/index.ts b/src/fields/hooks/afterRead/index.ts index b9d097bb38..a31a1edec9 100644 --- a/src/fields/hooks/afterRead/index.ts +++ b/src/fields/hooks/afterRead/index.ts @@ -33,13 +33,8 @@ export async function afterRead(args: Args): Promise { const fieldPromises = []; const populationPromises = []; - let depth = 0; - - if (req.payloadAPI === 'REST' || req.payloadAPI === 'local') { - depth = (incomingDepth || incomingDepth === 0) ? parseInt(String(incomingDepth), 10) : req.payload.config.defaultDepth; - - if (depth > req.payload.config.maxDepth) depth = req.payload.config.maxDepth; - } + let depth = (incomingDepth || incomingDepth === 0) ? parseInt(String(incomingDepth), 10) : req.payload.config.defaultDepth; + if (depth > req.payload.config.maxDepth) depth = req.payload.config.maxDepth; const currentDepth = incomingCurrentDepth || 1; diff --git a/test/fields/int.spec.ts b/test/fields/int.spec.ts index 854fde7f2c..761ee00168 100644 --- a/test/fields/int.spec.ts +++ b/test/fields/int.spec.ts @@ -1,4 +1,5 @@ import type { IndexDirection, IndexOptions } from 'mongoose'; +import { GraphQLClient } from 'graphql-request'; import { initPayloadTest } from '../helpers/configHelpers'; import { RESTClient } from '../helpers/rest'; import configPromise from '../uploads/config'; @@ -11,10 +12,14 @@ import { blocksFieldSeedData } from './collections/Blocks'; import { localizedTextValue, namedTabDefaultValue, namedTabText, tabsDoc, tabsSlug } from './collections/Tabs'; import { defaultNumber, numberDoc } from './collections/Number'; import { dateDoc } from './collections/Date'; +import type { PaginatedDocs } from '../../src/mongoose/types'; +import type { RichTextField } from './payload-types'; let client; +let graphQLClient: GraphQLClient; let serverURL; let config; +let token; describe('Fields', () => { beforeAll(async () => { @@ -22,7 +27,9 @@ describe('Fields', () => { config = await configPromise; client = new RESTClient(config, { serverURL, defaultSlug: 'point-fields' }); - await client.login(); + const graphQLURL = `${serverURL}${config.routes.api}${config.routes.graphQL}`; + graphQLClient = new GraphQLClient(graphQLURL); + token = await client.login(); }); describe('text', () => { @@ -730,5 +737,21 @@ describe('Fields', () => { expect(typeof child.doc.value.id).toBe('string'); expect(child.doc.value.items).toHaveLength(6); }); + + it('should respect rich text depth parameter', async () => { + const query = `query { + RichTextFields { + docs { + richText(depth: 2) + } + } + }`; + const response = await graphQLClient.request(query, {}, { + Authorization: `JWT ${token}`, + }); + const { docs }: PaginatedDocs = response.RichTextFields; + const uploadElement = docs[0].richText.find((el) => el.type === 'upload') as any; + expect(uploadElement.value.media.filename).toStrictEqual('payload.png'); + }); }); }); From bf0b114b701a9a772ffb7308c29ebc04a1b52f9d Mon Sep 17 00:00:00 2001 From: James Date: Thu, 29 Jun 2023 20:22:40 -0400 Subject: [PATCH 67/78] chore(release): v1.10.3 --- CHANGELOG.md | 8 ++++++++ package.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c717d013e8..27dcab5ad2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ +## [1.10.3](https://github.com/payloadcms/payload/compare/v1.10.2...v1.10.3) (2023-06-30) + + +### Bug Fixes + +* [#2937](https://github.com/payloadcms/payload/issues/2937), depth not being respected in graphql rich text fields ([f84b432](https://github.com/payloadcms/payload/commit/f84b4323e2fce57e2e14b181e486ed72cc09ded5)) +* shows updatedAt date when selecting a version to compare from dropdown ([3c9dab3](https://github.com/payloadcms/payload/commit/3c9dab3b9d5302d8bdf5792f0384cd5aeeb13839)) + ## [1.10.2](https://github.com/payloadcms/payload/compare/v1.10.1...v1.10.2) (2023-06-26) diff --git a/package.json b/package.json index 8d67a46f0f..caf2c42970 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "payload", - "version": "1.10.2", + "version": "1.10.3", "description": "Node, React and MongoDB Headless CMS and Application Framework", "license": "MIT", "engines": { From d9dd78ad00d93b43fe1ee9b25bdda617416b71ae Mon Sep 17 00:00:00 2001 From: James Date: Thu, 29 Jun 2023 20:29:09 -0400 Subject: [PATCH 68/78] chore(release): v1.10.4 --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 27dcab5ad2..5e9b3d01fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ +## [1.10.4](https://github.com/payloadcms/payload/compare/v1.10.3...v1.10.4) (2023-06-30) + + +### Features + +* add locale to displayed API URL ([b22d157](https://github.com/payloadcms/payload/commit/b22d157bd2f1c1a857e2d42bdc5b893549e3db9e)) + ## [1.10.3](https://github.com/payloadcms/payload/compare/v1.10.2...v1.10.3) (2023-06-30) diff --git a/package.json b/package.json index caf2c42970..c008358d5a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "payload", - "version": "1.10.3", + "version": "1.10.4", "description": "Node, React and MongoDB Headless CMS and Application Framework", "license": "MIT", "engines": { From 0c2e41c4bef9333c47a9b1db0de807696b3f3872 Mon Sep 17 00:00:00 2001 From: Alessio Gravili <70709113+AlessioGr@users.noreply.github.com> Date: Fri, 30 Jun 2023 14:43:47 +0200 Subject: [PATCH 69/78] fix: fields in drawer cannot be edited (#2949) Fixes #2945 --- .../elements/ReactSelect/MultiValue/index.tsx | 1 - test/fields/e2e.spec.ts | 26 ++++++++++++++++--- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/admin/components/elements/ReactSelect/MultiValue/index.tsx b/src/admin/components/elements/ReactSelect/MultiValue/index.tsx index 67360037dd..5cd6984b7a 100644 --- a/src/admin/components/elements/ReactSelect/MultiValue/index.tsx +++ b/src/admin/components/elements/ReactSelect/MultiValue/index.tsx @@ -53,7 +53,6 @@ export const MultiValue: React.FC> = (props) => { onMouseDown: (e) => { if (!disableMouseDown) { // we need to prevent the dropdown from opening when clicking on the drag handle, but not when a modal is open (i.e. the 'Relationship' field component) - e.preventDefault(); e.stopPropagation(); } }, diff --git a/test/fields/e2e.spec.ts b/test/fields/e2e.spec.ts index 292d0afecf..7ff02ff47d 100644 --- a/test/fields/e2e.spec.ts +++ b/test/fields/e2e.spec.ts @@ -880,6 +880,19 @@ describe('fields', () => { test('should modify fields in relationship drawer', async () => { await page.goto(url.create); + // First fill out the relationship field, as it's required + await page.locator('#relationship-add-new .relationship-add-new__add-button').click(); + await page.locator('#field-relationship .relationship-add-new__relation-button--text-fields').click(); + + await page.locator('#field-text').fill('something'); + + await page.locator('[id^=doc-drawer_text-fields_1_] #action-save').click(); + await expect(page.locator('.Toastify')).toContainText('successfully'); + await page.locator('[id^=close-drawer__doc-drawer_text-fields_1_]').click(); + await page.locator('#action-save').click(); + await expect(page.locator('.Toastify')).toContainText('successfully'); + + // Create a new doc for the `relationshipHasMany` field await page.locator('#field-relationshipHasMany button.relationship-add-new__add-button').click(); const textField2 = page.locator('[id^=doc-drawer_text-fields_1_] #field-text'); @@ -898,12 +911,17 @@ describe('fields', () => { await page.keyboard.down('1'); await page.keyboard.down('2'); await page.keyboard.down('3'); + // save drawer await page.locator('[id^=doc-drawer_text-fields_1_] #action-save').click(); await expect(page.locator('.Toastify')).toContainText('successfully'); - // TODO: uncomment this when the drawer is fixed - // await page.locator('[id^=close-drawer__doc-drawer_text-fields_1_]').click(); - // await expect(page.locator('#field-relationshipHasMany .relationship--multi-value-label__text')).toContainText(`${value}123`); - await expect(page.locator('#field-relationshipHasMany .relationship--multi-value-label__text')).toContainText(value); + // close drawer + await page.locator('[id^=close-drawer__doc-drawer_text-fields_1_]').click(); + // save document and reload + await page.locator('#action-save').click(); + await expect(page.locator('.Toastify')).toContainText('successfully'); + await page.reload(); + // check if the value is saved + await expect(page.locator('#field-relationshipHasMany .relationship--multi-value-label__text')).toContainText(`${value}123`); }); }); From b36deb4640cad4f494a12ab74b4e4d9a918cd94b Mon Sep 17 00:00:00 2001 From: Jarrod Flesch <30633324+JarrodMFlesch@users.noreply.github.com> Date: Fri, 30 Jun 2023 08:54:19 -0400 Subject: [PATCH 70/78] fix: incorrect graphql type generation (#2898) --- src/graphql/schema/withOperators.ts | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/graphql/schema/withOperators.ts b/src/graphql/schema/withOperators.ts index 91243e1193..77f0b40e38 100644 --- a/src/graphql/schema/withOperators.ts +++ b/src/graphql/schema/withOperators.ts @@ -2,7 +2,7 @@ import { GraphQLBoolean, GraphQLInputObjectType, GraphQLString, GraphQLList, Gra import type { GraphQLType } from 'graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { DateTimeResolver, EmailAddressResolver } from 'graphql-scalars'; -import { FieldAffectingData, NumberField, RadioField, RelationshipField, SelectField, optionIsObject } from '../../fields/config/types'; +import { FieldAffectingData, RadioField, SelectField, optionIsObject } from '../../fields/config/types'; import combineParentName from '../utilities/combineParentName'; import formatName from '../utilities/formatName'; import operators from './operators'; @@ -27,10 +27,7 @@ type DefaultsType = { const defaults: DefaultsType = { number: { - type: (field: NumberField): GraphQLType => { - const type = field?.name === 'id' ? GraphQLInt : GraphQLFloat; - return field?.hasMany === true ? new GraphQLList(type) : type; - }, + type: GraphQLInt, operators: [...operators.equality, ...operators.comparison], }, text: { @@ -89,9 +86,7 @@ const defaults: DefaultsType = { operators: [...operators.equality, ...operators.comparison, ...operators.geo], }, relationship: { - type: (field: RelationshipField): GraphQLType => { - return field?.hasMany === true ? new GraphQLList(GraphQLString) : GraphQLString; - }, + type: GraphQLString, operators: [...operators.equality, ...operators.contains], }, upload: { From 1d4df99ea78c5f682074ae824dcd8dea18b774e0 Mon Sep 17 00:00:00 2001 From: Alessio Gravili <70709113+AlessioGr@users.noreply.github.com> Date: Fri, 30 Jun 2023 15:35:59 +0200 Subject: [PATCH 71/78] fix: improve versions test suite (#2941) * fix: versions test * fix: restore tests not being effective * make tests better * new test: should versions be in correct order --- test/versions/int.spec.ts | 322 ++++++++++++++++++++++++++------------ 1 file changed, 218 insertions(+), 104 deletions(-) diff --git a/test/versions/int.spec.ts b/test/versions/int.spec.ts index 32de3b0470..4cbebf33db 100644 --- a/test/versions/int.spec.ts +++ b/test/versions/int.spec.ts @@ -6,7 +6,7 @@ import AutosavePosts from './collections/Autosave'; import AutosaveGlobal from './globals/Autosave'; import { devUser } from '../credentials'; -let collectionLocalPostID; +let collectionLocalPostID: string; let collectionLocalVersionID; let graphQLURL; @@ -24,6 +24,7 @@ const globalSlug = AutosaveGlobal.slug; let globalLocalVersionID; let globalGraphQLVersionID; const globalGraphQLOriginalTitle = 'updated global title'; +const updatedTitle = 'Here is an updated post title in EN'; describe('Versions', () => { beforeAll(async () => { @@ -47,41 +48,52 @@ describe('Versions', () => { graphQLClient = new GraphQLClient(graphQLURL, { headers: { Authorization: `JWT ${token}` } }); }); + beforeEach(async () => { + // First: delete potential existing versions from previous tests + if (collectionLocalPostID) { + await payload.delete({ + collection, + id: collectionLocalPostID, + }); + } + + // now: initialize + const autosavePost = await payload.create({ + collection, + data: { + title: 'Here is an autosave post in EN', + description: '345j23o4ifj34jf54g', + }, + }); + collectionLocalPostID = autosavePost.id; + + const updatedPost: { + title: string + _status?: string + } = await payload.update({ + id: collectionLocalPostID, + collection, + data: { + title: updatedTitle, + }, + }); + + const versions = await payload.findVersions({ + collection, + }); + + collectionLocalVersionID = versions.docs[0].id; + }); + describe('Collections - Local', () => { describe('Create', () => { it('should allow a new version to be created and updated', async () => { - const autosavePost = await payload.create({ + const updatedPost = await payload.findByID({ collection, - data: { - title: 'Here is an autosave post in EN', - description: '345j23o4ifj34jf54g', - }, - }); - - collectionLocalPostID = autosavePost.id; - - const updatedTitle = 'Here is an updated post title in EN'; - - const updatedPost: { - title: string - _status?: string - } = await payload.update({ id: collectionLocalPostID, - collection, - data: { - title: updatedTitle, - }, }); - expect(updatedPost.title).toBe(updatedTitle); expect(updatedPost._status).toStrictEqual('draft'); - - const versions = await payload.findVersions({ - collection, - }); - - collectionLocalVersionID = versions.docs[0].id; - expect(collectionLocalVersionID).toBeDefined(); }); @@ -173,8 +185,32 @@ describe('Versions', () => { }); describe('Restore', () => { + it('should versions be in correct order', async () => { + const somePost = await payload.create({ + collection, + data: { + title: 'first post', + description: 'description 1', + }, + }); + + + const updatedPost = await payload.update({ + collection, + id: collectionLocalPostID, + data: { + title: 'This should be the latest version', + }, + }); + + const versions = await payload.findVersions({ + collection, + }); + + expect(versions.docs[0].version.title).toBe(updatedPost.title); + }); it('should allow a version to be restored', async () => { - const title2 = 'Here is an updated post title in EN'; + const title2 = 'Another updated post title in EN'; const updatedPost = await payload.update({ collection, @@ -186,6 +222,14 @@ describe('Versions', () => { expect(updatedPost.title).toBe(title2); + // Make sure it was updated correctly + const draftFromUpdatedPost = await payload.findByID({ + collection, + id: collectionLocalPostID, + draft: true, + }); + expect(draftFromUpdatedPost.title).toBe(title2); + const versions = await payload.findVersions({ collection, }); @@ -196,6 +240,7 @@ describe('Versions', () => { id: versions.docs[1].id, }); + expect(restoredVersion.title).toBeDefined(); const latestDraft = await payload.findByID({ @@ -221,16 +266,14 @@ describe('Versions', () => { }, }); - const updatedTitle = 'Here is a draft post with a patched title'; - - collectionLocalPostID = originalPublishedPost.id; + const patchedTitle = 'Here is a draft post with a patched title'; await payload.update({ - id: collectionLocalPostID, + id: originalPublishedPost.id, collection, locale: 'en', data: { - title: updatedTitle, + title: patchedTitle, }, draft: true, }); @@ -239,7 +282,7 @@ describe('Versions', () => { // second update to existing draft await payload.update({ - id: collectionLocalPostID, + id: originalPublishedPost.id, collection, locale: 'es', data: { @@ -250,18 +293,18 @@ describe('Versions', () => { const publishedPost = await payload.findByID({ collection, - id: collectionLocalPostID, + id: originalPublishedPost.id, }); const draftPost = await payload.findByID({ collection, locale: 'all', - id: collectionLocalPostID, + id: originalPublishedPost.id, draft: true, }); expect(publishedPost.title).toBe(originalTitle); - expect(draftPost.title.en).toBe(updatedTitle); + expect(draftPost.title.en).toBe(patchedTitle); expect(draftPost.title.es).toBe(spanishTitle); }); }); @@ -534,12 +577,39 @@ describe('Versions', () => { }); describe('Collections - GraphQL', () => { + beforeEach(async () => { + // First: delete potential existing versions from previous tests + if (collectionGraphQLPostID) { + await payload.delete({ + collection, + id: collectionGraphQLPostID, + }); + } + + const description = 'autosave description'; + + const query = `mutation { + createAutosavePost(data: {title: "${collectionGraphQLOriginalTitle}", description: "${description}"}) { + id + title + description + createdAt + updatedAt + _status + } + }`; + + const response = await graphQLClient.request(query); + + const data = response.createAutosavePost; + collectionGraphQLPostID = data.id; + }); describe('Create', () => { it('should allow a new doc to be created with draft status', async () => { - const description = 'autosave description'; + const description2 = 'other autosave description'; const query = `mutation { - createAutosavePost(data: {title: "${collectionGraphQLOriginalTitle}", description: "${description}"}) { + createAutosavePost(data: {title: "${'Some other title'}", description: "${description2}"}) { id title description @@ -552,20 +622,19 @@ describe('Versions', () => { const response = await graphQLClient.request(query); const data = response.createAutosavePost; - collectionGraphQLPostID = data.id; expect(data._status).toStrictEqual('draft'); }); }); describe('Read', () => { - const updatedTitle = 'updated title'; + const updatedTitle2 = 'updated title'; - beforeAll(async () => { + beforeEach(async () => { // modify the post to create a new version // language=graphQL const update = `mutation { - updateAutosavePost(id: "${collectionGraphQLPostID}", data: {title: "${updatedTitle}"}) { + updateAutosavePost(id: "${collectionGraphQLPostID}", data: {title: "${updatedTitle2}"}) { title updatedAt createdAt @@ -603,11 +672,10 @@ describe('Versions', () => { const response = await graphQLClient.request(query); const data = response.versionAutosavePost; - collectionGraphQLVersionID = data.id; expect(data.id).toBeDefined(); expect(data.parent.id).toStrictEqual(collectionGraphQLPostID); - expect(data.version.title).toStrictEqual(updatedTitle); + expect(data.version.title).toStrictEqual(updatedTitle2); }); it('should allow read of versions by querying version content', async () => { @@ -630,7 +698,6 @@ describe('Versions', () => { const data = response.versionsAutosavePosts; const doc = data.docs[0]; - collectionGraphQLVersionID = doc.id; expect(doc.id).toBeDefined(); expect(doc.parent.id).toStrictEqual(collectionGraphQLPostID); @@ -639,8 +706,44 @@ describe('Versions', () => { }); describe('Restore', () => { + beforeEach(async () => { + // modify the post to create a new version + // language=graphQL + const update = `mutation { + updateAutosavePost(id: "${collectionGraphQLPostID}", data: {title: "${collectionGraphQLOriginalTitle}"}) { + title + updatedAt + createdAt + } + }`; + await graphQLClient.request(update); + + // language=graphQL + const query = `query { + versionsAutosavePosts(where: { parent: { equals: "${collectionGraphQLPostID}" } }) { + docs { + id + } + } + }`; + + const response = await graphQLClient.request(query); + + collectionGraphQLVersionID = response.versionsAutosavePosts.docs[0].id; + }); it('should allow a version to be restored', async () => { - // update a versionsPost + // Update it + const update = `mutation { + updateAutosavePost(id: "${collectionGraphQLPostID}", data: {title: "${'Wrong title'}"}) { + title + updatedAt + createdAt + } + }`; + await graphQLClient.request(update); + + + // restore a versionsPost const restore = `mutation { restoreVersionAutosavePost(id: "${collectionGraphQLVersionID}") { title @@ -663,32 +766,38 @@ describe('Versions', () => { }); describe('Globals - Local', () => { + beforeEach(async () => { + const title2 = 'Here is an updated global title in EN'; + await payload.updateGlobal({ + slug: globalSlug, + data: { + title: 'Test Global', + }, + }); + + + const updatedGlobal = await payload.updateGlobal({ + slug: globalSlug, + data: { + title: title2, + }, + }); + + const versions = await payload.findGlobalVersions({ + slug: globalSlug, + }); + + globalLocalVersionID = versions.docs[0].id; + }); describe('Create', () => { it('should allow a new version to be created', async () => { - await payload.updateGlobal({ - slug: globalSlug, - data: { - title: 'Test Global', - }, - }); - const title2 = 'Here is an updated global title in EN'; - - const updatedGlobal = await payload.updateGlobal({ + const updatedGlobal = await payload.findGlobal({ slug: globalSlug, - data: { - title: title2, - }, }); - expect(updatedGlobal.title).toBe(title2); expect(updatedGlobal._status).toStrictEqual('draft'); - - const versions = await payload.findGlobalVersions({ - slug: globalSlug, - }); - - globalLocalVersionID = versions.docs[0].id; + expect(globalLocalVersionID).toBeDefined(); }); }); @@ -746,7 +855,7 @@ describe('Versions', () => { describe('Restore', () => { it('should allow a version to be restored', async () => { - const title2 = 'Here is an updated title in EN'; + const title2 = 'Another updated title in EN'; const updatedGlobal = await payload.updateGlobal({ slug: globalSlug, @@ -757,11 +866,19 @@ describe('Versions', () => { expect(updatedGlobal.title).toBe(title2); + // Make sure it was updated correctly + const foundUpdatedGlobal = await payload.findGlobal({ + slug: globalSlug, + draft: true, + }); + expect(foundUpdatedGlobal.title).toBe(title2); + + const versions = await payload.findGlobalVersions({ slug: globalSlug, }); - globalLocalVersionID = versions.docs[0].id; + globalLocalVersionID = versions.docs[1].id; const restore = await payload.restoreGlobalVersion({ slug: globalSlug, @@ -797,13 +914,13 @@ describe('Versions', () => { draft: true, }); - const updatedTitle = 'Here is a draft global with a patched title'; + const updatedTitle2 = 'Here is a draft global with a patched title'; await payload.updateGlobal({ slug: globalSlug, locale: 'en', data: { - title: updatedTitle, + title: updatedTitle2, }, draft: true, }); @@ -812,7 +929,7 @@ describe('Versions', () => { slug: globalSlug, locale: 'es', data: { - title: updatedTitle, + title: updatedTitle2, }, draft: true, }); @@ -824,8 +941,8 @@ describe('Versions', () => { }); expect(publishedGlobal.title).toBe(originalTitle); - expect(updatedGlobal.title.en).toBe(updatedTitle); - expect(updatedGlobal.title.es).toBe(updatedTitle); + expect(updatedGlobal.title.en).toBe(updatedTitle2); + expect(updatedGlobal.title.es).toBe(updatedTitle2); }); it('should allow a draft to be published', async () => { @@ -840,52 +957,51 @@ describe('Versions', () => { draft: true, }); - const updatedTitle = 'Now try to publish'; + const updatedTitle2 = 'Now try to publish'; const result = await payload.updateGlobal({ slug: globalSlug, data: { - title: updatedTitle, + title: updatedTitle2, _status: 'published', }, }); - expect(result.title).toBe(updatedTitle); + expect(result.title).toBe(updatedTitle2); }); }); }); describe('Globals - GraphQL', () => { - describe('Read', () => { - beforeAll(async () => { - // language=graphql - const update = `mutation { - updateAutosaveGlobal(draft: true, data: { - title: "${globalGraphQLOriginalTitle}" - }) { - _status - title - } - }`; - await graphQLClient.request(update); + beforeAll(async () => { + // language=graphql + const update = `mutation { + updateAutosaveGlobal(draft: true, data: { + title: "${globalGraphQLOriginalTitle}" + }) { + _status + title + } + }`; + await graphQLClient.request(update); - // language=graphQL - const query = `query { - versionsAutosaveGlobal(where: { version__title: { equals: "${globalGraphQLOriginalTitle}" } }) { - docs { - id - version { - title - } + // language=graphQL + const query = `query { + versionsAutosaveGlobal(where: { version__title: { equals: "${globalGraphQLOriginalTitle}" } }) { + docs { + id + version { + title } } - }`; + } + }`; - const response = await graphQLClient.request(query); - - globalGraphQLVersionID = response.versionsAutosaveGlobal.docs[0].id; - }); + const response = await graphQLClient.request(query); + globalGraphQLVersionID = response.versionsAutosaveGlobal.docs[0].id; + }); + describe('Read', () => { it('should allow read of versions by version id', async () => { // language=graphql const query = `query { @@ -900,7 +1016,6 @@ describe('Versions', () => { const response = await graphQLClient.request(query); const data = response.versionAutosaveGlobal; - globalGraphQLVersionID = data.id; expect(data.id).toBeDefined(); expect(data.version.title).toStrictEqual(globalGraphQLOriginalTitle); @@ -923,7 +1038,6 @@ describe('Versions', () => { const data = response.versionsAutosaveGlobal; const doc = data.docs[0]; - globalGraphQLVersionID = doc.id; expect(doc.id).toBeDefined(); expect(doc.version.title).toStrictEqual(globalGraphQLOriginalTitle); From c0eed02924dbd80ecaa526364bf5a70a25cb16fb Mon Sep 17 00:00:00 2001 From: James Date: Fri, 30 Jun 2023 10:29:45 -0400 Subject: [PATCH 72/78] chore(release): v1.10.5 --- CHANGELOG.md | 9 +++++++++ package.json | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e9b3d01fa..6e1f2a68c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ +## [1.10.5](https://github.com/payloadcms/payload/compare/v1.10.4...v1.10.5) (2023-06-30) + + +### Bug Fixes + +* fields in drawer cannot be edited ([#2949](https://github.com/payloadcms/payload/issues/2949)) ([0c2e41c](https://github.com/payloadcms/payload/commit/0c2e41c4bef9333c47a9b1db0de807696b3f3872)), closes [#2945](https://github.com/payloadcms/payload/issues/2945) +* improve versions test suite ([#2941](https://github.com/payloadcms/payload/issues/2941)) ([1d4df99](https://github.com/payloadcms/payload/commit/1d4df99ea78c5f682074ae824dcd8dea18b774e0)) +* incorrect graphql type generation ([#2898](https://github.com/payloadcms/payload/issues/2898)) ([b36deb4](https://github.com/payloadcms/payload/commit/b36deb4640cad4f494a12ab74b4e4d9a918cd94b)) + ## [1.10.4](https://github.com/payloadcms/payload/compare/v1.10.3...v1.10.4) (2023-06-30) diff --git a/package.json b/package.json index c008358d5a..49c0b1c76b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "payload", - "version": "1.10.4", + "version": "1.10.5", "description": "Node, React and MongoDB Headless CMS and Application Framework", "license": "MIT", "engines": { From 8a32909dcd0f6fc05d5280a2b4796f6a14787d73 Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Fri, 30 Jun 2023 11:53:50 -0400 Subject: [PATCH 73/78] chore: fixes tsconfig and nodemon in custom server example (#2952) --- examples/custom-server/next.config.js | 10 +--- examples/custom-server/nodemon.json | 5 +- examples/custom-server/package.json | 2 +- examples/custom-server/src/app/layout.tsx | 2 +- examples/custom-server/tsconfig.json | 4 -- examples/custom-server/yarn.lock | 68 ++++++++++++++++++++--- 6 files changed, 68 insertions(+), 23 deletions(-) diff --git a/examples/custom-server/next.config.js b/examples/custom-server/next.config.js index d03bb2bcce..2100e4f696 100644 --- a/examples/custom-server/next.config.js +++ b/examples/custom-server/next.config.js @@ -1,13 +1,9 @@ require('dotenv').config() module.exports = { - publicRuntimeConfig: { - SERVER_URL: process.env.PAYLOAD_PUBLIC_SERVER_URL, - }, + reactStrictMode: true, + swcMinify: true, images: { - domains: [ - 'localhost', - // Your domain(s) here - ], + domains: ['localhost', process.env.NEXT_PUBLIC_SERVER_URL], }, } diff --git a/examples/custom-server/nodemon.json b/examples/custom-server/nodemon.json index c2d3542ec7..02523c6130 100644 --- a/examples/custom-server/nodemon.json +++ b/examples/custom-server/nodemon.json @@ -1,4 +1,5 @@ { - "ext": "ts,tsx", - "exec": "ts-node src/server.ts" + "watch": ["server.ts"], + "exec": "ts-node --project tsconfig.server.json src/server.ts", + "ext": "js ts" } diff --git a/examples/custom-server/package.json b/examples/custom-server/package.json index 5e60401c60..7dedc5e23e 100644 --- a/examples/custom-server/package.json +++ b/examples/custom-server/package.json @@ -46,7 +46,7 @@ "eslint-plugin-simple-import-sort": "^10.0.0", "nodemon": "^2.0.22", "prettier": "^2.7.1", - "ts-node": "^9.1.1", + "ts-node": "^10.9.1", "typescript": "^4.8.4" } } diff --git a/examples/custom-server/src/app/layout.tsx b/examples/custom-server/src/app/layout.tsx index e757927a91..66760106bd 100644 --- a/examples/custom-server/src/app/layout.tsx +++ b/examples/custom-server/src/app/layout.tsx @@ -22,7 +22,7 @@ export default function RootLayout({ children }: { children: React.ReactNode }) /> payload cms logo diff --git a/examples/custom-server/tsconfig.json b/examples/custom-server/tsconfig.json index 09915cf53e..b90dda1912 100644 --- a/examples/custom-server/tsconfig.json +++ b/examples/custom-server/tsconfig.json @@ -25,12 +25,8 @@ ] }, "include": [ - "next-env.d.ts", - "server.ts", - "payload.config.ts", "**/*.ts", "**/*.tsx", - "next.config.js", ".next/types/**/*.ts" ], "exclude": [ diff --git a/examples/custom-server/yarn.lock b/examples/custom-server/yarn.lock index 03a6da083a..65bcf0b3be 100644 --- a/examples/custom-server/yarn.lock +++ b/examples/custom-server/yarn.lock @@ -61,6 +61,13 @@ call-me-maybe "^1.0.1" js-yaml "^4.1.0" +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + "@csstools/postcss-cascade-layers@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz#8a997edf97d34071dd2e37ea6022447dd9e795ad" @@ -442,6 +449,11 @@ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + "@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" @@ -465,6 +477,14 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": version "0.3.18" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" @@ -697,6 +717,26 @@ resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + "@types/body-parser@*": version "1.19.2" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" @@ -1211,12 +1251,12 @@ acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-walk@^8.0.0: +acorn-walk@^8.0.0, acorn-walk@^8.1.1: version "8.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -acorn@^8.0.4, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.2: +acorn@^8.0.4, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.2: version "8.9.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.9.0.tgz#78a16e3b2bcc198c10822786fa6679e245db5b59" integrity sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ== @@ -6230,7 +6270,7 @@ source-list-map@^2.0.0: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map-support@^0.5.13, source-map-support@^0.5.17, source-map-support@~0.5.20: +source-map-support@^0.5.13, source-map-support@~0.5.20: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -6613,16 +6653,23 @@ ts-essentials@^7.0.3: resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-7.0.3.tgz#686fd155a02133eedcc5362dc8b5056cde3e5a38" integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== -ts-node@^9.1.1: - version "9.1.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" - integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== +ts-node@^10.9.1: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" arg "^4.1.0" create-require "^1.1.0" diff "^4.0.1" make-error "^1.1.1" - source-map-support "^0.5.17" + v8-compile-cache-lib "^3.0.1" yn "3.1.1" tsconfig-paths@^3.12.0: @@ -6792,6 +6839,11 @@ uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + value-equal@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" From 29d8bf0927038d2305218e5a6b811e0c4039d617 Mon Sep 17 00:00:00 2001 From: Alessio Gravili <70709113+AlessioGr@users.noreply.github.com> Date: Fri, 30 Jun 2023 22:52:35 +0200 Subject: [PATCH 74/78] fix: GraphQL type for number field (#2954) --- src/graphql/schema/withOperators.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/graphql/schema/withOperators.ts b/src/graphql/schema/withOperators.ts index 77f0b40e38..97175ea846 100644 --- a/src/graphql/schema/withOperators.ts +++ b/src/graphql/schema/withOperators.ts @@ -2,7 +2,7 @@ import { GraphQLBoolean, GraphQLInputObjectType, GraphQLString, GraphQLList, Gra import type { GraphQLType } from 'graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { DateTimeResolver, EmailAddressResolver } from 'graphql-scalars'; -import { FieldAffectingData, RadioField, SelectField, optionIsObject } from '../../fields/config/types'; +import { FieldAffectingData, NumberField, RadioField, SelectField, optionIsObject } from '../../fields/config/types'; import combineParentName from '../utilities/combineParentName'; import formatName from '../utilities/formatName'; import operators from './operators'; @@ -27,7 +27,9 @@ type DefaultsType = { const defaults: DefaultsType = { number: { - type: GraphQLInt, + type: (field: NumberField): GraphQLType => { + return field?.name === 'id' ? GraphQLInt : GraphQLFloat; + }, operators: [...operators.equality, ...operators.comparison], }, text: { From a8e47088bb98255eb9a35d0d1613cbc93e2fe105 Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Fri, 30 Jun 2023 17:36:58 -0400 Subject: [PATCH 75/78] chore: adds front-end to ecommerce template (#2942) --- templates/ecommerce/.env.example | 11 +- templates/ecommerce/.eslintrc.js | 3 +- templates/ecommerce/.gitignore | 2 + templates/ecommerce/README.md | 31 +- templates/ecommerce/eject.ts | 60 + templates/ecommerce/next-env.d.ts | 5 + templates/ecommerce/next.config.js | 34 + templates/ecommerce/nodemon.json | 5 +- templates/ecommerce/package.json | 21 +- templates/ecommerce/src/access/admins.ts | 2 +- .../src/blocks/ArchiveBlock/index.module.scss | 13 + .../blocks/{Archive => ArchiveBlock}/index.ts | 0 .../src/blocks/ArchiveBlock/index.tsx | 49 + .../src/blocks/ArchiveBlock/types.ts | 3 + .../src/blocks/CallToAction/index.module.scss | 31 + .../src/blocks/CallToAction/index.tsx | 44 + .../src/blocks/Content/index.module.scss | 13 + .../ecommerce/src/blocks/Content/index.tsx | 45 + .../src/blocks/MediaBlock/index.module.scss | 7 + .../src/blocks/{Media => MediaBlock}/index.ts | 0 .../ecommerce/src/blocks/MediaBlock/index.tsx | 43 + .../ecommerce/src/collections/Pages/index.ts | 4 +- .../Products/hooks/beforeChange.ts | 2 +- .../src/collections/Products/index.ts | 4 +- .../Users/hooks/createStripeCustomer.ts | 2 +- .../AddToCartButton/index.module.scss | 10 + .../src/components/AddToCartButton/index.tsx | 51 + .../src/components/AdminBar/index.module.scss | 40 + .../src/components/AdminBar/index.tsx | 46 + .../BackgroundColor/index.module.scss | 9 + .../src/components/BackgroundColor/index.tsx | 26 + .../BeforeDashboard/SeedButton/index.tsx | 45 + .../src/components/BeforeDashboard/index.tsx | 25 +- .../ecommerce/src/components/Blocks/index.tsx | 92 + .../src/components/Button/index.module.scss | 58 + .../ecommerce/src/components/Button/index.tsx | 75 + .../src/components/Card/index.module.scss | 78 + .../ecommerce/src/components/Card/index.tsx | 110 + .../src/components/CartLink/index.module.scss | 9 + .../src/components/CartLink/index.tsx | 27 + .../components/CheckoutForm/index.module.scss | 9 + .../src/components/CheckoutForm/index.tsx | 67 + .../CollectionArchive/index.module.scss | 53 + .../components/CollectionArchive/index.tsx | 199 ++ .../src/components/Footer/index.module.scss | 27 + .../ecommerce/src/components/Footer/index.tsx | 30 + .../src/components/Gutter/index.module.scss | 7 + .../ecommerce/src/components/Gutter/index.tsx | 28 + .../src/components/Header/MobileMenuModal.tsx | 28 + .../src/components/Header/index.module.scss | 39 + .../ecommerce/src/components/Header/index.tsx | 48 + .../Header/mobileMenuModal.module.scss | 31 + .../Hero/HighImpact/index.module.scss | 53 + .../src/components/Hero/HighImpact/index.tsx | 45 + .../Hero/LowImpact/index.module.scss | 4 + .../src/components/Hero/LowImpact/index.tsx | 23 + .../Hero/MediumImpact/index.module.scss | 62 + .../components/Hero/MediumImpact/index.tsx | 38 + .../components/Hero/Product/index.module.scss | 70 + .../src/components/Hero/Product/index.tsx | 66 + .../ecommerce/src/components/Hero/index.tsx | 24 + .../src/components/Input/index.module.scss | 24 + .../ecommerce/src/components/Input/index.tsx | 32 + .../src/components/Label/index.module.scss | 5 + .../ecommerce/src/components/Label/index.tsx | 7 + .../components/LargeBody/index.module.scss | 5 + .../src/components/LargeBody/index.tsx | 7 + .../ecommerce/src/components/Link/index.tsx | 66 + .../ecommerce/src/components/Logo/index.tsx | 54 + .../components/Media/Image/index.module.scss | 7 + .../src/components/Media/Image/index.tsx | 73 + .../components/Media/Video/index.module.scss | 11 + .../src/components/Media/Video/index.tsx | 43 + .../ecommerce/src/components/Media/index.tsx | 28 + .../ecommerce/src/components/Media/types.ts | 20 + .../components/PageRange/index.module.scss | 20 + .../src/components/PageRange/index.tsx | 52 + .../src/components/PaywallBlocks/index.tsx | 64 + .../src/components/Price/index.module.scss | 18 + .../ecommerce/src/components/Price/index.tsx | 60 + .../RemoveFromCartButton/index.module.scss | 10 + .../components/RemoveFromCartButton/index.tsx | 33 + .../src/components/RichText/index.module.scss | 8 + .../src/components/RichText/index.tsx | 19 + .../src/components/RichText/serialize.tsx | 111 + .../VerticalPadding/index.module.scss | 15 + .../src/components/VerticalPadding/index.tsx | 29 + .../src/components/icons/Chevron/index.tsx | 9 + .../src/components/icons/Menu/index.tsx | 11 + templates/ecommerce/src/css/app.scss | 129 + templates/ecommerce/src/css/colors.scss | 83 + templates/ecommerce/src/css/common.scss | 2 + templates/ecommerce/src/css/queries.scss | 32 + templates/ecommerce/src/css/type.scss | 119 + templates/ecommerce/src/cssVariables.js | 7 + .../src/{routes => endpoints}/checkout.ts | 2 +- templates/ecommerce/src/endpoints/seed.ts | 21 + .../fields/richText/label/Button/index.tsx | 18 +- .../fields/richText/label/Element/index.tsx | 18 +- .../src/fields/richText/label/Icon/index.tsx | 17 +- .../richText/largeBody/Button/index.tsx | 18 +- .../richText/largeBody/Element/index.tsx | 18 +- .../fields/richText/largeBody/Icon/index.tsx | 11 +- templates/ecommerce/src/graphql/blocks.ts | 73 + templates/ecommerce/src/graphql/cart.ts | 13 + templates/ecommerce/src/graphql/categories.ts | 8 + templates/ecommerce/src/graphql/globals.ts | 45 + templates/ecommerce/src/graphql/index.ts | 20 + templates/ecommerce/src/graphql/link.ts | 20 + templates/ecommerce/src/graphql/media.ts | 12 + templates/ecommerce/src/graphql/meta.ts | 9 + templates/ecommerce/src/graphql/pages.ts | 47 + templates/ecommerce/src/graphql/products.ts | 45 + templates/ecommerce/src/pages/[slug].tsx | 92 + templates/ecommerce/src/pages/_app.tsx | 84 + .../src/pages/account/index.module.css | 25 + .../ecommerce/src/pages/account/index.tsx | 153 ++ .../src/pages/cart/index.module.scss | 68 + templates/ecommerce/src/pages/cart/index.tsx | 164 ++ .../src/pages/checkout/index.module.scss | 73 + .../ecommerce/src/pages/checkout/index.tsx | 185 ++ .../src/pages/create-account/index.module.css | 11 + .../src/pages/create-account/index.tsx | 130 + templates/ecommerce/src/pages/index.tsx | 10 + .../src/pages/login/index.module.scss | 12 + templates/ecommerce/src/pages/login/index.tsx | 103 + .../src/pages/logout/index.module.scss | 8 + .../ecommerce/src/pages/logout/index.tsx | 86 + .../order-confirmation/index.module.scss | 5 + .../src/pages/order-confirmation/index.tsx | 93 + .../src/pages/orders/[id]/index.module.scss | 89 + .../ecommerce/src/pages/orders/[id]/index.tsx | 136 + .../src/pages/orders/index.module.scss | 31 + .../ecommerce/src/pages/orders/index.tsx | 87 + .../ecommerce/src/pages/products/[slug].tsx | 75 + .../pages/recover-password/index.module.scss | 8 + .../src/pages/recover-password/index.tsx | 105 + .../pages/reset-password/index.module.scss | 3 + .../src/pages/reset-password/index.tsx | 110 + .../ecommerce/src/pages/styleguide/index.tsx | 61 + templates/ecommerce/src/payload.config.ts | 22 +- .../ecommerce/src/providers/Auth/index.tsx | 268 ++ .../ecommerce/src/providers/Cart/index.tsx | 242 ++ .../ecommerce/src/providers/Cart/reducer.ts | 121 + templates/ecommerce/src/public/favicon.ico | Bin 0 -> 25931 bytes templates/ecommerce/src/seed/home.ts | 50 +- templates/ecommerce/src/seed/index.ts | 35 +- templates/ecommerce/src/seed/static-home.ts | 70 + templates/ecommerce/src/server.default.ts | 45 + templates/ecommerce/src/server.ts | 52 +- .../ecommerce/src/utilities/canUseDOM.ts | 1 + .../ecommerce/src/utilities/formatDateTime.ts | 20 + .../ecommerce/src/utilities/toKebabCase.ts | 5 + templates/ecommerce/tsconfig.json | 40 +- templates/ecommerce/tsconfig.server.json | 13 + templates/ecommerce/yarn.lock | 2187 ++++++++++------- 156 files changed, 7828 insertions(+), 1064 deletions(-) create mode 100644 templates/ecommerce/eject.ts create mode 100644 templates/ecommerce/next-env.d.ts create mode 100644 templates/ecommerce/next.config.js create mode 100644 templates/ecommerce/src/blocks/ArchiveBlock/index.module.scss rename templates/ecommerce/src/blocks/{Archive => ArchiveBlock}/index.ts (100%) create mode 100644 templates/ecommerce/src/blocks/ArchiveBlock/index.tsx create mode 100644 templates/ecommerce/src/blocks/ArchiveBlock/types.ts create mode 100644 templates/ecommerce/src/blocks/CallToAction/index.module.scss create mode 100644 templates/ecommerce/src/blocks/CallToAction/index.tsx create mode 100644 templates/ecommerce/src/blocks/Content/index.module.scss create mode 100644 templates/ecommerce/src/blocks/Content/index.tsx create mode 100644 templates/ecommerce/src/blocks/MediaBlock/index.module.scss rename templates/ecommerce/src/blocks/{Media => MediaBlock}/index.ts (100%) create mode 100644 templates/ecommerce/src/blocks/MediaBlock/index.tsx create mode 100644 templates/ecommerce/src/components/AddToCartButton/index.module.scss create mode 100644 templates/ecommerce/src/components/AddToCartButton/index.tsx create mode 100644 templates/ecommerce/src/components/AdminBar/index.module.scss create mode 100644 templates/ecommerce/src/components/AdminBar/index.tsx create mode 100644 templates/ecommerce/src/components/BackgroundColor/index.module.scss create mode 100644 templates/ecommerce/src/components/BackgroundColor/index.tsx create mode 100644 templates/ecommerce/src/components/BeforeDashboard/SeedButton/index.tsx create mode 100644 templates/ecommerce/src/components/Blocks/index.tsx create mode 100644 templates/ecommerce/src/components/Button/index.module.scss create mode 100644 templates/ecommerce/src/components/Button/index.tsx create mode 100644 templates/ecommerce/src/components/Card/index.module.scss create mode 100644 templates/ecommerce/src/components/Card/index.tsx create mode 100644 templates/ecommerce/src/components/CartLink/index.module.scss create mode 100644 templates/ecommerce/src/components/CartLink/index.tsx create mode 100644 templates/ecommerce/src/components/CheckoutForm/index.module.scss create mode 100644 templates/ecommerce/src/components/CheckoutForm/index.tsx create mode 100644 templates/ecommerce/src/components/CollectionArchive/index.module.scss create mode 100644 templates/ecommerce/src/components/CollectionArchive/index.tsx create mode 100644 templates/ecommerce/src/components/Footer/index.module.scss create mode 100644 templates/ecommerce/src/components/Footer/index.tsx create mode 100644 templates/ecommerce/src/components/Gutter/index.module.scss create mode 100644 templates/ecommerce/src/components/Gutter/index.tsx create mode 100644 templates/ecommerce/src/components/Header/MobileMenuModal.tsx create mode 100644 templates/ecommerce/src/components/Header/index.module.scss create mode 100644 templates/ecommerce/src/components/Header/index.tsx create mode 100644 templates/ecommerce/src/components/Header/mobileMenuModal.module.scss create mode 100644 templates/ecommerce/src/components/Hero/HighImpact/index.module.scss create mode 100644 templates/ecommerce/src/components/Hero/HighImpact/index.tsx create mode 100644 templates/ecommerce/src/components/Hero/LowImpact/index.module.scss create mode 100644 templates/ecommerce/src/components/Hero/LowImpact/index.tsx create mode 100644 templates/ecommerce/src/components/Hero/MediumImpact/index.module.scss create mode 100644 templates/ecommerce/src/components/Hero/MediumImpact/index.tsx create mode 100644 templates/ecommerce/src/components/Hero/Product/index.module.scss create mode 100644 templates/ecommerce/src/components/Hero/Product/index.tsx create mode 100644 templates/ecommerce/src/components/Hero/index.tsx create mode 100644 templates/ecommerce/src/components/Input/index.module.scss create mode 100644 templates/ecommerce/src/components/Input/index.tsx create mode 100644 templates/ecommerce/src/components/Label/index.module.scss create mode 100644 templates/ecommerce/src/components/Label/index.tsx create mode 100644 templates/ecommerce/src/components/LargeBody/index.module.scss create mode 100644 templates/ecommerce/src/components/LargeBody/index.tsx create mode 100644 templates/ecommerce/src/components/Link/index.tsx create mode 100644 templates/ecommerce/src/components/Logo/index.tsx create mode 100644 templates/ecommerce/src/components/Media/Image/index.module.scss create mode 100644 templates/ecommerce/src/components/Media/Image/index.tsx create mode 100644 templates/ecommerce/src/components/Media/Video/index.module.scss create mode 100644 templates/ecommerce/src/components/Media/Video/index.tsx create mode 100644 templates/ecommerce/src/components/Media/index.tsx create mode 100644 templates/ecommerce/src/components/Media/types.ts create mode 100644 templates/ecommerce/src/components/PageRange/index.module.scss create mode 100644 templates/ecommerce/src/components/PageRange/index.tsx create mode 100644 templates/ecommerce/src/components/PaywallBlocks/index.tsx create mode 100644 templates/ecommerce/src/components/Price/index.module.scss create mode 100644 templates/ecommerce/src/components/Price/index.tsx create mode 100644 templates/ecommerce/src/components/RemoveFromCartButton/index.module.scss create mode 100644 templates/ecommerce/src/components/RemoveFromCartButton/index.tsx create mode 100644 templates/ecommerce/src/components/RichText/index.module.scss create mode 100644 templates/ecommerce/src/components/RichText/index.tsx create mode 100644 templates/ecommerce/src/components/RichText/serialize.tsx create mode 100644 templates/ecommerce/src/components/VerticalPadding/index.module.scss create mode 100644 templates/ecommerce/src/components/VerticalPadding/index.tsx create mode 100644 templates/ecommerce/src/components/icons/Chevron/index.tsx create mode 100644 templates/ecommerce/src/components/icons/Menu/index.tsx create mode 100644 templates/ecommerce/src/css/app.scss create mode 100644 templates/ecommerce/src/css/colors.scss create mode 100644 templates/ecommerce/src/css/common.scss create mode 100644 templates/ecommerce/src/css/queries.scss create mode 100644 templates/ecommerce/src/css/type.scss create mode 100644 templates/ecommerce/src/cssVariables.js rename templates/ecommerce/src/{routes => endpoints}/checkout.ts (99%) create mode 100644 templates/ecommerce/src/endpoints/seed.ts create mode 100644 templates/ecommerce/src/graphql/blocks.ts create mode 100644 templates/ecommerce/src/graphql/cart.ts create mode 100644 templates/ecommerce/src/graphql/categories.ts create mode 100644 templates/ecommerce/src/graphql/globals.ts create mode 100644 templates/ecommerce/src/graphql/index.ts create mode 100644 templates/ecommerce/src/graphql/link.ts create mode 100644 templates/ecommerce/src/graphql/media.ts create mode 100644 templates/ecommerce/src/graphql/meta.ts create mode 100644 templates/ecommerce/src/graphql/pages.ts create mode 100644 templates/ecommerce/src/graphql/products.ts create mode 100644 templates/ecommerce/src/pages/[slug].tsx create mode 100644 templates/ecommerce/src/pages/_app.tsx create mode 100644 templates/ecommerce/src/pages/account/index.module.css create mode 100644 templates/ecommerce/src/pages/account/index.tsx create mode 100644 templates/ecommerce/src/pages/cart/index.module.scss create mode 100644 templates/ecommerce/src/pages/cart/index.tsx create mode 100644 templates/ecommerce/src/pages/checkout/index.module.scss create mode 100644 templates/ecommerce/src/pages/checkout/index.tsx create mode 100644 templates/ecommerce/src/pages/create-account/index.module.css create mode 100644 templates/ecommerce/src/pages/create-account/index.tsx create mode 100644 templates/ecommerce/src/pages/index.tsx create mode 100644 templates/ecommerce/src/pages/login/index.module.scss create mode 100644 templates/ecommerce/src/pages/login/index.tsx create mode 100644 templates/ecommerce/src/pages/logout/index.module.scss create mode 100644 templates/ecommerce/src/pages/logout/index.tsx create mode 100644 templates/ecommerce/src/pages/order-confirmation/index.module.scss create mode 100644 templates/ecommerce/src/pages/order-confirmation/index.tsx create mode 100644 templates/ecommerce/src/pages/orders/[id]/index.module.scss create mode 100644 templates/ecommerce/src/pages/orders/[id]/index.tsx create mode 100644 templates/ecommerce/src/pages/orders/index.module.scss create mode 100644 templates/ecommerce/src/pages/orders/index.tsx create mode 100644 templates/ecommerce/src/pages/products/[slug].tsx create mode 100644 templates/ecommerce/src/pages/recover-password/index.module.scss create mode 100644 templates/ecommerce/src/pages/recover-password/index.tsx create mode 100644 templates/ecommerce/src/pages/reset-password/index.module.scss create mode 100644 templates/ecommerce/src/pages/reset-password/index.tsx create mode 100644 templates/ecommerce/src/pages/styleguide/index.tsx create mode 100644 templates/ecommerce/src/providers/Auth/index.tsx create mode 100644 templates/ecommerce/src/providers/Cart/index.tsx create mode 100644 templates/ecommerce/src/providers/Cart/reducer.ts create mode 100644 templates/ecommerce/src/public/favicon.ico create mode 100644 templates/ecommerce/src/seed/static-home.ts create mode 100644 templates/ecommerce/src/server.default.ts create mode 100644 templates/ecommerce/src/utilities/canUseDOM.ts create mode 100644 templates/ecommerce/src/utilities/formatDateTime.ts create mode 100644 templates/ecommerce/src/utilities/toKebabCase.ts create mode 100644 templates/ecommerce/tsconfig.server.json diff --git a/templates/ecommerce/.env.example b/templates/ecommerce/.env.example index 7503c579e2..d208fd3cf9 100644 --- a/templates/ecommerce/.env.example +++ b/templates/ecommerce/.env.example @@ -1,8 +1,15 @@ +# Payload vars PORT=8000 -MONGODB_URI=mongodb://localhost/template-ecommerce +MONGODB_URI=mongodb://localhost/payload-template-ecommerce PAYLOAD_SECRET=712kjbkuh87234sflj98713b PAYLOAD_PUBLIC_SERVER_URL=http://localhost:8000 -PAYLOAD_PUBLIC_SITE_URL=http://localhost:3000 +PAYLOAD_PUBLIC_SERVER_URL=http://localhost:3000 STRIPE_SECRET_KEY= PAYLOAD_PUBLIC_STRIPE_IS_TEST_KEY=true STRIPE_WEBHOOKS_ENDPOINT_SECRET= + +# Next.js vars +NEXT_PUBLIC_SERVER_URL=http://localhost:3000 +NEXT_PUBLIC_SERVER_URL=http://localhost:8000 +NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY= +NEXT_PUBLIC_IS_LIVE= diff --git a/templates/ecommerce/.eslintrc.js b/templates/ecommerce/.eslintrc.js index 19b786c125..5e238e6a7f 100644 --- a/templates/ecommerce/.eslintrc.js +++ b/templates/ecommerce/.eslintrc.js @@ -1,5 +1,6 @@ module.exports = { root: true, - extends: ['@payloadcms'], + extends: ['plugin:@next/next/recommended', '@payloadcms'], ignorePatterns: ['**/payload-types.ts'], + plugins: ['prettier'], } diff --git a/templates/ecommerce/.gitignore b/templates/ecommerce/.gitignore index 9353310c2c..1bbe951cc3 100644 --- a/templates/ecommerce/.gitignore +++ b/templates/ecommerce/.gitignore @@ -4,3 +4,5 @@ dist node_modules .DS_Store .env +.next +.vercel diff --git a/templates/ecommerce/README.md b/templates/ecommerce/README.md index e790191feb..17bb2b3312 100644 --- a/templates/ecommerce/README.md +++ b/templates/ecommerce/README.md @@ -12,6 +12,7 @@ Core features: - [Paywall](#paywall) - [Layout Builder](#layout-builder) - [SEO](#seo) +- [Front-end](#front-end) For details on how to get this template up and running locally, see the [development](#development) section. @@ -152,6 +153,32 @@ Products and pages can be built using a powerful layout builder. This allows you This template comes pre-configured with the official [Payload SEO Plugin](https://github.com/payloadcms/plugin-seo) for complete SEO control. +## Front-end + +This template includes a fully-working [Next.js](https://nextjs.org) front-end that is served alongside your Payload app in a single Express server. This makes is so that you can deploy both apps simultaneously and host them together. If you prefer a different front-end framework, this pattern works for any framework that supports a custom server. You can easily [Eject](#eject) the front-end out from this template to swap in your own or to use it as a standalone CMS. For more details, see the official [Custom Server Example](https://github.com/payloadcms/payload/tree/master/examples/custom-server). + +Core features: + +- [Next.js](https://nextjs.org), [GraphQL](https://graphql.org), [TypeScript](https://www.typescriptlang.org) +- Complete authentication workflow +- Complete shopping experience +- Full shopping cart implementation +- Full checkout workflow +- Account dashboard +- Pre-made layout building blocks +- [Payload Admin Bar](https://github.com/payloadcms/payload-admin-bar) +- Complete SEO configuration +- Working Stripe integration +- Conditionally rendered paywall content + +### Eject + +If you prefer another front-end framework or would like to use Payload as a standalone CMS, you can easily eject the front-end from this template. To eject, simply run `yarn eject`. This will uninstall all Next.js related dependencies and delete all files and folders related to the Next.js front-end. It also removes all custom routing from your `server.ts` file and updates your `eslintrc.js`. + +> Note: Your eject script may not work as expected if you've made significant modifications to your project. If you run into any issues, compare your project's dependencies and file structure with this template, see [./src/eject](./src/eject) for full details. + +For more details on how setup a custom server, see the official [Custom Server Example](https://github.com/payloadcms/payload/tree/master/examples/custom-server). + ## Development To spin up the template locally, follow these steps: @@ -159,7 +186,7 @@ To spin up the template locally, follow these steps: 1. First clone the repo 1. Then `cd YOUR_PROJECT_REPO && cp .env.example .env` 1. Next `yarn && yarn dev` (or `docker-compose up`, see [Docker](#docker)) -1. Now `open http://localhost:8000/admin` to access the admin panel +1. Now `open http://localhost:3000/admin` to access the admin panel 1. Create your first admin user using the form on the page That's it! Changes made in `./src` will be reflected in your app—but your database is blank and your app is not yet connected to Stripe, more details on that [here](#stripe). You can optionally seed the database with a few products and pages, more details on that [here](#seed). @@ -198,7 +225,7 @@ That's it! The Docker instance will help you get up and running quickly while al ### Seed -To seed the database with a few products and pages you can run `yarn seed`. +To seed the database with a few products and pages you can run `yarn seed`. This template also comes with a `/api/seed` endpoint you can use to seed the database from the admin panel. > NOTICE: seeding the database is destructive because it drops your current database to populate a fresh one from the seed template. Only run this command if you are starting a new project or can afford to lose your current data. diff --git a/templates/ecommerce/eject.ts b/templates/ecommerce/eject.ts new file mode 100644 index 0000000000..a8442f297b --- /dev/null +++ b/templates/ecommerce/eject.ts @@ -0,0 +1,60 @@ +import fs from 'fs' +import path from 'path' + +// Run this script to eject the front-end from this template +// This will remove all template-specific files and directories +// See `yarn eject` in `package.json` for the exact command +// See `./README.md#eject` for more information + +const files = ['./next.config.js', './next-env.d.ts'] +const directories = ['./src/pages', './src/public', './src/graphql', './src/css', './src/providers'] + +const eject = async (): Promise => { + files.forEach(file => { + fs.unlinkSync(path.join(__dirname, file)) + }) + + directories.forEach(directory => { + fs.rm(path.join(__dirname, directory), { recursive: true }, err => { + if (err) throw err + }) + }) + + // remove all components EXCEPT any Payload ones + const payloadComponents = ['BeforeDashboard'] + const components = fs.readdirSync(path.join(__dirname, './src/components')) + components.forEach(component => { + if (!payloadComponents.includes(component)) { + fs.rm(path.join(__dirname, `./src/components/${component}`), { recursive: true }, err => { + if (err) throw err + }) + } + }) + + // remove all blocks EXCEPT the associated Payload configs (`index.ts`) + const blocks = fs.readdirSync(path.join(__dirname, './src/blocks')) + blocks.forEach(block => { + const blockFiles = fs.readdirSync(path.join(__dirname, `./src/blocks/${block}`)) + blockFiles.forEach(file => { + if (file !== 'index.ts') { + fs.rm(path.join(__dirname, `./src/blocks/${block}/${file}`), err => { + if (err) throw err + }) + } + }) + }) + + // create a new `./src/server.ts` file + // use contents from `./src/server.default.ts` + const serverFile = path.join(__dirname, './src/server.ts') + const serverDefaultFile = path.join(__dirname, './src/server.default.ts') + fs.copyFileSync(serverDefaultFile, serverFile) + + // remove `'plugin:@next/next/recommended', ` from `./.eslintrc.js` + const eslintConfigFile = path.join(__dirname, './.eslintrc.js') + const eslintConfig = fs.readFileSync(eslintConfigFile, 'utf8') + const updatedEslintConfig = eslintConfig.replace(`'plugin:@next/next/recommended', `, '') + fs.writeFileSync(eslintConfigFile, updatedEslintConfig, 'utf8') +} + +eject() diff --git a/templates/ecommerce/next-env.d.ts b/templates/ecommerce/next-env.d.ts new file mode 100644 index 0000000000..4f11a03dc6 --- /dev/null +++ b/templates/ecommerce/next-env.d.ts @@ -0,0 +1,5 @@ +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/templates/ecommerce/next.config.js b/templates/ecommerce/next.config.js new file mode 100644 index 0000000000..233b3b0a4c --- /dev/null +++ b/templates/ecommerce/next.config.js @@ -0,0 +1,34 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + reactStrictMode: true, + swcMinify: true, + images: { + domains: ['localhost', process.env.NEXT_PUBLIC_SERVER_URL], + // remotePatterns: [ + // { + // protocol: 'https', + // hostname: 'localhost', + // port: '3000', + // pathname: '/media/**', + // }, + // ], + }, + async headers() { + const headers = [] + + if (!process.env.NEXT_PUBLIC_IS_LIVE) { + headers.push({ + headers: [ + { + key: 'X-Robots-Tag', + value: 'noindex', + }, + ], + source: '/:path*', + }) + } + return headers + }, +} + +module.exports = nextConfig diff --git a/templates/ecommerce/nodemon.json b/templates/ecommerce/nodemon.json index ed1a1850d3..02523c6130 100644 --- a/templates/ecommerce/nodemon.json +++ b/templates/ecommerce/nodemon.json @@ -1,4 +1,5 @@ { - "ext": "ts", - "exec": "ts-node src/server.ts" + "watch": ["server.ts"], + "exec": "ts-node --project tsconfig.server.json src/server.ts", + "ext": "js ts" } diff --git a/templates/ecommerce/package.json b/templates/ecommerce/package.json index 36cab33203..2871986262 100644 --- a/templates/ecommerce/package.json +++ b/templates/ecommerce/package.json @@ -9,9 +9,11 @@ "stripe:webhooks": "stripe listen --forward-to localhost:8000/stripe/webhooks", "seed": "rm -rf media && cross-env PAYLOAD_SEED=true PAYLOAD_DROP_DATABASE=true PAYLOAD_CONFIG_PATH=src/payload.config.ts ts-node src/server.ts", "build:payload": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts payload build", - "build:server": "tsc", - "build": "yarn copyfiles && yarn build:payload && yarn build:server", + "build:server": "tsc --project tsconfig.server.json", + "build:next": "cross-env PAYLOAD_CONFIG_PATH=dist/payload.config.js NEXT_BUILD=true node dist/server.js", + "build": "cross-env NODE_ENV=production yarn build:payload && yarn build:server && yarn copyfiles && yarn build:next", "serve": "cross-env PAYLOAD_CONFIG_PATH=dist/payload.config.js NODE_ENV=production node dist/server.js", + "eject": "yarn remove next react react-dom @apollo/client apollo-link-http @next/eslint-plugin-next && ts-node eject.ts", "copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png}\" dist/", "generate:types": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts payload generate:types", "generate:graphQLSchema": "PAYLOAD_CONFIG_PATH=src/payload.config.ts payload generate:graphQLSchema", @@ -19,17 +21,28 @@ "lint:fix": "eslint --fix --ext .ts,.tsx src" }, "dependencies": { + "@apollo/client": "^3.7.16", + "@faceless-ui/css-grid": "^1.2.0", "@payloadcms/plugin-cloud": "^2.0.0", "@payloadcms/plugin-nested-docs": "^1.0.4", "@payloadcms/plugin-seo": "^1.0.10", "@payloadcms/plugin-stripe": "^0.0.13", + "@stripe/react-stripe-js": "^1.16.3", + "@stripe/stripe-js": "^1.46.0", + "apollo-link-http": "^1.5.17", "dotenv": "^8.2.0", "eslint-import-resolver-alias": "^1.1.2", "express": "^4.17.1", + "next": "^13.4.7", "payload": "^1.8.2", - "stripe": "^11.6.0" + "payload-admin-bar": "^1.0.6", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-hook-form": "^7.45.1", + "stripe": "^10.2.0" }, "devDependencies": { + "@next/eslint-plugin-next": "^13.1.6", "@payloadcms/eslint-config": "^0.0.1", "@types/express": "^4.17.9", "@types/node": "18.11.3", @@ -47,7 +60,7 @@ "eslint-plugin-simple-import-sort": "^10.0.0", "nodemon": "^2.0.6", "prettier": "^2.7.1", - "ts-node": "^9.1.1", + "ts-node": "^10.9.1", "typescript": "^4.8.4" } } diff --git a/templates/ecommerce/src/access/admins.ts b/templates/ecommerce/src/access/admins.ts index ef4c16d2a1..be9c4b523b 100644 --- a/templates/ecommerce/src/access/admins.ts +++ b/templates/ecommerce/src/access/admins.ts @@ -3,7 +3,7 @@ import type { AccessArgs } from 'payload/config' import { checkRole } from '../collections/Users/checkRole' import type { User } from '../payload-types' -type isAdmin = (args: AccessArgs) => boolean +type isAdmin = (args: AccessArgs) => boolean export const admins: isAdmin = ({ req: { user } }) => { return checkRole(['admin'], user) diff --git a/templates/ecommerce/src/blocks/ArchiveBlock/index.module.scss b/templates/ecommerce/src/blocks/ArchiveBlock/index.module.scss new file mode 100644 index 0000000000..7eafb1dce2 --- /dev/null +++ b/templates/ecommerce/src/blocks/ArchiveBlock/index.module.scss @@ -0,0 +1,13 @@ +@import '../../css/common'; + +.archiveBlock { + position: relative; +} + +.introContent { + margin-bottom: calc(var(--base) * 2); + + @include mid-break { + margin-bottom: calc(var(--base) * 2); + } +} diff --git a/templates/ecommerce/src/blocks/Archive/index.ts b/templates/ecommerce/src/blocks/ArchiveBlock/index.ts similarity index 100% rename from templates/ecommerce/src/blocks/Archive/index.ts rename to templates/ecommerce/src/blocks/ArchiveBlock/index.ts diff --git a/templates/ecommerce/src/blocks/ArchiveBlock/index.tsx b/templates/ecommerce/src/blocks/ArchiveBlock/index.tsx new file mode 100644 index 0000000000..35ff8d2ebb --- /dev/null +++ b/templates/ecommerce/src/blocks/ArchiveBlock/index.tsx @@ -0,0 +1,49 @@ +import React from 'react' +import { Cell, Grid } from '@faceless-ui/css-grid' + +import { CollectionArchive } from '../../components/CollectionArchive' +import { Gutter } from '../../components/Gutter' +import RichText from '../../components/RichText' +import { ArchiveBlockProps } from './types' + +import classes from './index.module.scss' + +export const ArchiveBlock: React.FC< + ArchiveBlockProps & { + id?: string + } +> = props => { + const { + introContent, + id, + relationTo, + populateBy, + limit, + populatedDocs, + populatedDocsTotal, + categories, + } = props + + return ( +
    + {introContent && ( + + + + + + + + )} + +
    + ) +} diff --git a/templates/ecommerce/src/blocks/ArchiveBlock/types.ts b/templates/ecommerce/src/blocks/ArchiveBlock/types.ts new file mode 100644 index 0000000000..a5e8939488 --- /dev/null +++ b/templates/ecommerce/src/blocks/ArchiveBlock/types.ts @@ -0,0 +1,3 @@ +import type { Page } from '../../payload-types' + +export type ArchiveBlockProps = Extract diff --git a/templates/ecommerce/src/blocks/CallToAction/index.module.scss b/templates/ecommerce/src/blocks/CallToAction/index.module.scss new file mode 100644 index 0000000000..c6d3212d59 --- /dev/null +++ b/templates/ecommerce/src/blocks/CallToAction/index.module.scss @@ -0,0 +1,31 @@ +@use '../../css/queries.scss' as *; + +$spacer-h: calc(var(--block-padding) / 2); + +.callToAction { + padding-left: $spacer-h; + padding-right: $spacer-h; +} + +.background--white { + background-color: var(--color-base-1000); + color: var(--color-base-0); +} + +.linkGroup { + display: flex; + flex-direction: column; + justify-content: center; + height: 100%; + + > * { + margin-bottom: calc(var(--base) / 2); + &:last-child { + margin-bottom: 0; + } + } + + @include mid-break { + padding-top: 12px + } +} diff --git a/templates/ecommerce/src/blocks/CallToAction/index.tsx b/templates/ecommerce/src/blocks/CallToAction/index.tsx new file mode 100644 index 0000000000..0a068cf873 --- /dev/null +++ b/templates/ecommerce/src/blocks/CallToAction/index.tsx @@ -0,0 +1,44 @@ +import React from 'react' +import { Cell, Grid } from '@faceless-ui/css-grid' + +import { BackgroundColor } from '../../components/BackgroundColor' +import { Gutter } from '../../components/Gutter' +import { CMSLink } from '../../components/Link' +import RichText from '../../components/RichText' +import { VerticalPadding } from '../../components/VerticalPadding' +import { Page } from '../../payload-types' + +import classes from './index.module.scss' + +type Props = Extract + +export const CallToActionBlock: React.FC< + Props & { + id?: string + } +> = ({ ctaBackgroundColor, links, richText }) => { + const oppositeBackgroundColor = ctaBackgroundColor === 'white' ? 'black' : 'white' + + return ( + + + + + +
    + +
    +
    + +
    + {(links || []).map(({ link }, i) => { + return + })} +
    +
    +
    +
    +
    +
    + ) +} diff --git a/templates/ecommerce/src/blocks/Content/index.module.scss b/templates/ecommerce/src/blocks/Content/index.module.scss new file mode 100644 index 0000000000..3007cb901b --- /dev/null +++ b/templates/ecommerce/src/blocks/Content/index.module.scss @@ -0,0 +1,13 @@ +@import '../../css/common'; + +.grid { + row-gap: calc(var(--base) * 2) !important; + + @include mid-break { + row-gap: var(--base) !important; + } +} + +.link { + margin-top: var(--base); +} diff --git a/templates/ecommerce/src/blocks/Content/index.tsx b/templates/ecommerce/src/blocks/Content/index.tsx new file mode 100644 index 0000000000..780da856f9 --- /dev/null +++ b/templates/ecommerce/src/blocks/Content/index.tsx @@ -0,0 +1,45 @@ +import React from 'react' +import { Cell, Grid } from '@faceless-ui/css-grid' + +import { Gutter } from '../../components/Gutter' +import { CMSLink } from '../../components/Link' +import RichText from '../../components/RichText' +import { Page } from '../../payload-types' + +import classes from './index.module.scss' + +type Props = Extract + +export const ContentBlock: React.FC< + Props & { + id?: string + } +> = props => { + const { columns } = props + + return ( + + + {columns && + columns.length > 0 && + columns.map((col, index) => { + const { enableLink, richText, link, size } = col + + let cols + + if (size === 'oneThird') cols = 4 + if (size === 'half') cols = 6 + if (size === 'twoThirds') cols = 8 + if (size === 'full') cols = 10 + + return ( + + + {enableLink && } + + ) + })} + + + ) +} diff --git a/templates/ecommerce/src/blocks/MediaBlock/index.module.scss b/templates/ecommerce/src/blocks/MediaBlock/index.module.scss new file mode 100644 index 0000000000..157eda92e5 --- /dev/null +++ b/templates/ecommerce/src/blocks/MediaBlock/index.module.scss @@ -0,0 +1,7 @@ +.mediaBlock { + position: relative; +} + +.caption { + margin-top: var(--base) +} diff --git a/templates/ecommerce/src/blocks/Media/index.ts b/templates/ecommerce/src/blocks/MediaBlock/index.ts similarity index 100% rename from templates/ecommerce/src/blocks/Media/index.ts rename to templates/ecommerce/src/blocks/MediaBlock/index.ts diff --git a/templates/ecommerce/src/blocks/MediaBlock/index.tsx b/templates/ecommerce/src/blocks/MediaBlock/index.tsx new file mode 100644 index 0000000000..bfe6e61a76 --- /dev/null +++ b/templates/ecommerce/src/blocks/MediaBlock/index.tsx @@ -0,0 +1,43 @@ +import React from 'react' + +import { Gutter } from '../../components/Gutter' +import { Media } from '../../components/Media' +import RichText from '../../components/RichText' +import { Page } from '../../payload-types' + +import classes from './index.module.scss' + +type Props = Extract + +export const MediaBlock: React.FC< + Props & { + id?: string + } +> = props => { + const { media, position = 'default' } = props + + let caption + if (media && typeof media === 'object') caption = media.caption + + return ( +
    + {position === 'fullscreen' && ( +
    + +
    + )} + {position === 'default' && ( + +
    + +
    +
    + )} + {caption && ( + + + + )} +
    + ) +} diff --git a/templates/ecommerce/src/collections/Pages/index.ts b/templates/ecommerce/src/collections/Pages/index.ts index 93fcddc66a..a2a2a8bc92 100644 --- a/templates/ecommerce/src/collections/Pages/index.ts +++ b/templates/ecommerce/src/collections/Pages/index.ts @@ -1,10 +1,10 @@ import type { CollectionConfig } from 'payload/types' import { admins } from '../../access/admins' -import { Archive } from '../../blocks/Archive' +import { Archive } from '../../blocks/ArchiveBlock' import { CallToAction } from '../../blocks/CallToAction' import { Content } from '../../blocks/Content' -import { MediaBlock } from '../../blocks/Media' +import { MediaBlock } from '../../blocks/MediaBlock' import { hero } from '../../fields/hero' import { slugField } from '../../fields/slug' import { populateArchiveBlock } from '../../hooks/populateArchiveBlock' diff --git a/templates/ecommerce/src/collections/Products/hooks/beforeChange.ts b/templates/ecommerce/src/collections/Products/hooks/beforeChange.ts index d53708e974..0d6e9584ea 100644 --- a/templates/ecommerce/src/collections/Products/hooks/beforeChange.ts +++ b/templates/ecommerce/src/collections/Products/hooks/beforeChange.ts @@ -2,7 +2,7 @@ import type { BeforeChangeHook } from 'payload/dist/globals/config/types' import Stripe from 'stripe' const stripeSecretKey = process.env.STRIPE_SECRET_KEY -const stripe = new Stripe(stripeSecretKey || '', { apiVersion: '2022-11-15' }) +const stripe = new Stripe(stripeSecretKey || '', { apiVersion: '2022-08-01' }) const logs = false diff --git a/templates/ecommerce/src/collections/Products/index.ts b/templates/ecommerce/src/collections/Products/index.ts index f51219537d..795c274af3 100644 --- a/templates/ecommerce/src/collections/Products/index.ts +++ b/templates/ecommerce/src/collections/Products/index.ts @@ -1,10 +1,10 @@ import type { CollectionConfig } from 'payload/types' import { admins } from '../../access/admins' -import { Archive } from '../../blocks/Archive' +import { Archive } from '../../blocks/ArchiveBlock' import { CallToAction } from '../../blocks/CallToAction' import { Content } from '../../blocks/Content' -import { MediaBlock } from '../../blocks/Media' +import { MediaBlock } from '../../blocks/MediaBlock' import { slugField } from '../../fields/slug' import { populateArchiveBlock } from '../../hooks/populateArchiveBlock' import { populatePublishedDate } from '../../hooks/populatePublishedDate' diff --git a/templates/ecommerce/src/collections/Users/hooks/createStripeCustomer.ts b/templates/ecommerce/src/collections/Users/hooks/createStripeCustomer.ts index 6b9518124a..22522b5cf2 100644 --- a/templates/ecommerce/src/collections/Users/hooks/createStripeCustomer.ts +++ b/templates/ecommerce/src/collections/Users/hooks/createStripeCustomer.ts @@ -2,7 +2,7 @@ import type { BeforeChangeHook } from 'payload/dist/collections/config/types' import Stripe from 'stripe' const stripe = new Stripe(process.env.STRIPE_SECRET_KEY, { - apiVersion: '2022-11-15', + apiVersion: '2022-08-01', }) export const createStripeCustomer: BeforeChangeHook = async ({ req, data, operation }) => { diff --git a/templates/ecommerce/src/components/AddToCartButton/index.module.scss b/templates/ecommerce/src/components/AddToCartButton/index.module.scss new file mode 100644 index 0000000000..7183e717eb --- /dev/null +++ b/templates/ecommerce/src/components/AddToCartButton/index.module.scss @@ -0,0 +1,10 @@ +.addToCartButton { + // cursor: pointer; + // background-color: transparent; + // padding: 0; + // border: none; + // font-size: inherit; + // line-height: inherit; + // text-decoration: underline; + // white-space: nowrap; +} diff --git a/templates/ecommerce/src/components/AddToCartButton/index.tsx b/templates/ecommerce/src/components/AddToCartButton/index.tsx new file mode 100644 index 0000000000..d5952d37b3 --- /dev/null +++ b/templates/ecommerce/src/components/AddToCartButton/index.tsx @@ -0,0 +1,51 @@ +import React, { useEffect, useState } from 'react' + +import { Product } from '../../payload-types' +import { useCart } from '../../providers/Cart' +import { Button, Props } from '../Button' + +import classes from './index.module.scss' + +export const AddToCartButton: React.FC<{ + product: Product + quantity?: number + className?: string + appearance?: Props['appearance'] +}> = props => { + const { product, quantity = 1, className, appearance = 'primary' } = props + + const { cart, addItemToCart, isProductInCart } = useCart() + + const [showInCart, setShowInCart] = useState() + + useEffect(() => { + setShowInCart(isProductInCart(product)) + }, [isProductInCart, product, cart]) + + if (showInCart) { + return ( + + ) +} diff --git a/templates/ecommerce/src/components/RichText/index.module.scss b/templates/ecommerce/src/components/RichText/index.module.scss new file mode 100644 index 0000000000..ef45c8d903 --- /dev/null +++ b/templates/ecommerce/src/components/RichText/index.module.scss @@ -0,0 +1,8 @@ +.richText { + :first-child { + margin-top: 0; + } + :last-child { + margin-bottom: 0; + } +} diff --git a/templates/ecommerce/src/components/RichText/index.tsx b/templates/ecommerce/src/components/RichText/index.tsx new file mode 100644 index 0000000000..657d2d8d21 --- /dev/null +++ b/templates/ecommerce/src/components/RichText/index.tsx @@ -0,0 +1,19 @@ +import React from 'react' + +import serialize from './serialize' + +import classes from './index.module.scss' + +const RichText: React.FC<{ className?: string; content: any }> = ({ className, content }) => { + if (!content) { + return null + } + + return ( +
    + {serialize(content)} +
    + ) +} + +export default RichText diff --git a/templates/ecommerce/src/components/RichText/serialize.tsx b/templates/ecommerce/src/components/RichText/serialize.tsx new file mode 100644 index 0000000000..6d1627225a --- /dev/null +++ b/templates/ecommerce/src/components/RichText/serialize.tsx @@ -0,0 +1,111 @@ +import React, { Fragment } from 'react' +import escapeHTML from 'escape-html' +import { Text } from 'slate' + +import { Label } from '../Label' +import { LargeBody } from '../LargeBody' + +// eslint-disable-next-line no-use-before-define +type Children = Leaf[] + +type Leaf = { + type: string + value?: { + url: string + alt: string + } + children?: Children + url?: string + [key: string]: unknown +} + +const serialize = (children: Children): React.ReactElement[] => + children.map((node, i) => { + if (Text.isText(node)) { + let text = + + if (node.bold) { + text = {text} + } + + if (node.code) { + text = {text} + } + + if (node.italic) { + text = {text} + } + + if (node.underline) { + text = ( + + {text} + + ) + } + + if (node.strikethrough) { + text = ( + + {text} + + ) + } + + return {text} + } + + if (!node) { + return null + } + + switch (node.type) { + case 'h1': + return

    {serialize(node.children)}

    + case 'h2': + return

    {serialize(node.children)}

    + case 'h3': + return

    {serialize(node.children)}

    + case 'h4': + return

    {serialize(node.children)}

    + case 'h5': + return
    {serialize(node.children)}
    + case 'h6': + return
    {serialize(node.children)}
    + case 'quote': + return
    {serialize(node.children)}
    + case 'ul': + return
      {serialize(node.children)}
    + case 'ol': + return
      {serialize(node.children)}
    + case 'li': + return
  • {serialize(node.children)}
  • + case 'link': + return ( + + {serialize(node.children)} + + ) + + case 'label': + return + + case 'large-body': { + return {serialize(node.children)} + } + + default: + return

    {serialize(node.children)}

    + } + }) + +export default serialize diff --git a/templates/ecommerce/src/components/VerticalPadding/index.module.scss b/templates/ecommerce/src/components/VerticalPadding/index.module.scss new file mode 100644 index 0000000000..2eaee30da5 --- /dev/null +++ b/templates/ecommerce/src/components/VerticalPadding/index.module.scss @@ -0,0 +1,15 @@ +.top-large { + padding-top: var(--block-padding); +} + +.top-medium { + padding-top: calc(var(--block-padding) / 2); +} + +.bottom-large { + padding-bottom: var(--block-padding); +} + +.bottom-medium { + padding-bottom: calc(var(--block-padding) / 2); +} \ No newline at end of file diff --git a/templates/ecommerce/src/components/VerticalPadding/index.tsx b/templates/ecommerce/src/components/VerticalPadding/index.tsx new file mode 100644 index 0000000000..374aaba3d5 --- /dev/null +++ b/templates/ecommerce/src/components/VerticalPadding/index.tsx @@ -0,0 +1,29 @@ +import React from 'react' + +import classes from './index.module.scss' + +export type VerticalPaddingOptions = 'large' | 'medium' | 'none' + +type Props = { + top?: VerticalPaddingOptions + bottom?: VerticalPaddingOptions + children: React.ReactNode + className?: string +} + +export const VerticalPadding: React.FC = ({ + top = 'medium', + bottom = 'medium', + className, + children, +}) => { + return ( +
    + {children} +
    + ) +} diff --git a/templates/ecommerce/src/components/icons/Chevron/index.tsx b/templates/ecommerce/src/components/icons/Chevron/index.tsx new file mode 100644 index 0000000000..7a14aa2bfd --- /dev/null +++ b/templates/ecommerce/src/components/icons/Chevron/index.tsx @@ -0,0 +1,9 @@ +import React from 'react' + +export const Chevron: React.FC = () => { + return ( + + + + ) +} diff --git a/templates/ecommerce/src/components/icons/Menu/index.tsx b/templates/ecommerce/src/components/icons/Menu/index.tsx new file mode 100644 index 0000000000..7fabd85751 --- /dev/null +++ b/templates/ecommerce/src/components/icons/Menu/index.tsx @@ -0,0 +1,11 @@ +import React from 'react' + +export const MenuIcon: React.FC = () => { + return ( + + + + + + ) +} diff --git a/templates/ecommerce/src/css/app.scss b/templates/ecommerce/src/css/app.scss new file mode 100644 index 0000000000..2c7aeb745f --- /dev/null +++ b/templates/ecommerce/src/css/app.scss @@ -0,0 +1,129 @@ +@use './queries.scss' as *; +@use './colors.scss' as *; +@use './type.scss' as *; + +:root { + --breakpoint-xs-width : #{$breakpoint-xs-width}; + --breakpoint-s-width : #{$breakpoint-s-width}; + --breakpoint-m-width : #{$breakpoint-m-width}; + --breakpoint-l-width : #{$breakpoint-l-width}; + --scrollbar-width: 17px; + + --base: 24px; + --font-body: system-ui; + --font-mono: 'Roboto Mono', monospace; + + --gutter-h: 180px; + --block-padding: 120px; + + --header-z-index: 100; + --modal-z-index: 90; + + @include large-break { + --gutter-h: 144px; + --block-padding: 96px; + } + + @include mid-break { + --gutter-h: 24px; + --block-padding: 60px; + } +} + +///////////////////////////// +// GLOBAL STYLES +///////////////////////////// + +* { + box-sizing: border-box; +} + +html { + @extend %body; + background: var(--color-base-0); + -webkit-font-smoothing: antialiased; +} + +html, +body, +#app { + height: 100%; +} + +body { + font-family: var(--font-body); + color: var(--color-base-1000); + margin: 0; +} + +::selection { + background: var(--color-success-500); + color: var(--color-base-800); +} + +::-moz-selection { + background: var(--color-success-500); + color: var(--color-base-800); +} + +img { + max-width: 100%; + height: auto; + display: block; +} + +h1 { + @extend %h1; +} + +h2 { + @extend %h2; +} + +h3 { + @extend %h3; +} + +h4 { + @extend %h4; +} + +h5 { + @extend %h5; +} + +h6 { + @extend %h6; +} + +p { + margin: var(--base) 0; + + @include mid-break { + margin: calc(var(--base) * .75) 0; + } +} + +ul, +ol { + padding-left: var(--base); + margin: 0 0 var(--base); +} + +a { + color: currentColor; + + &:focus { + opacity: .8; + outline: none; + } + + &:active { + opacity: .7; + outline: none; + } +} + +svg { + vertical-align: middle; +} \ No newline at end of file diff --git a/templates/ecommerce/src/css/colors.scss b/templates/ecommerce/src/css/colors.scss new file mode 100644 index 0000000000..e5b65419bb --- /dev/null +++ b/templates/ecommerce/src/css/colors.scss @@ -0,0 +1,83 @@ +:root { + --color-base-0: rgb(255, 255, 255); + --color-base-50: rgb(245, 245, 245); + --color-base-100: rgb(235, 235, 235); + --color-base-150: rgb(221, 221, 221); + --color-base-200: rgb(208, 208, 208); + --color-base-250: rgb(195, 195, 195); + --color-base-300: rgb(181, 181, 181); + --color-base-350: rgb(168, 168, 168); + --color-base-400: rgb(154, 154, 154); + --color-base-450: rgb(141, 141, 141); + --color-base-500: rgb(128, 128, 128); + --color-base-550: rgb(114, 114, 114); + --color-base-600: rgb(101, 101, 101); + --color-base-650: rgb(87, 87, 87); + --color-base-700: rgb(74, 74, 74); + --color-base-750: rgb(60, 60, 60); + --color-base-800: rgb(47, 47, 47); + --color-base-850: rgb(34, 34, 34); + --color-base-900: rgb(20, 20, 20); + --color-base-950: rgb(7, 7, 7); + --color-base-1000: rgb(0, 0, 0); + + --color-success-50: rgb(247, 255, 251); + --color-success-100: rgb(240, 255, 247); + --color-success-150: rgb(232, 255, 243); + --color-success-200: rgb(224, 255, 239); + --color-success-250: rgb(217, 255, 235); + --color-success-300: rgb(209, 255, 230); + --color-success-350: rgb(201, 255, 226); + --color-success-400: rgb(193, 255, 222); + --color-success-450: rgb(186, 255, 218); + --color-success-500: rgb(178, 255, 214); + --color-success-550: rgb(160, 230, 193); + --color-success-600: rgb(142, 204, 171); + --color-success-650: rgb(125, 179, 150); + --color-success-700: rgb(107, 153, 128); + --color-success-750: rgb(89, 128, 107); + --color-success-800: rgb(71, 102, 86); + --color-success-850: rgb(53, 77, 64); + --color-success-900: rgb(36, 51, 43); + --color-success-950: rgb(18, 25, 21); + + --color-warning-50: rgb(255, 255, 246); + --color-warning-100: rgb(255, 255, 237); + --color-warning-150: rgb(254, 255, 228); + --color-warning-200: rgb(254, 255, 219); + --color-warning-250: rgb(254, 255, 210); + --color-warning-300: rgb(254, 255, 200); + --color-warning-350: rgb(254, 255, 191); + --color-warning-400: rgb(253, 255, 182); + --color-warning-450: rgb(253, 255, 173); + --color-warning-500: rgb(253, 255, 164); + --color-warning-550: rgb(228, 230, 148); + --color-warning-600: rgb(202, 204, 131); + --color-warning-650: rgb(177, 179, 115); + --color-warning-700: rgb(152, 153, 98); + --color-warning-750: rgb(127, 128, 82); + --color-warning-800: rgb(101, 102, 66); + --color-warning-850: rgb(76, 77, 49); + --color-warning-900: rgb(51, 51, 33); + --color-warning-950: rgb(25, 25, 16); + + --color-error-50: rgb(255, 241, 241); + --color-error-100: rgb(255, 226, 228); + --color-error-150: rgb(255, 212, 214); + --color-error-200: rgb(255, 197, 200); + --color-error-250: rgb(255, 183, 187); + --color-error-300: rgb(255, 169, 173); + --color-error-350: rgb(255, 154, 159); + --color-error-400: rgb(255, 140, 145); + --color-error-450: rgb(255, 125, 132); + --color-error-500: rgb(255, 111, 118); + --color-error-550: rgb(230, 100, 106); + --color-error-600: rgb(204, 89, 94); + --color-error-650: rgb(179, 78, 83); + --color-error-700: rgb(153, 67, 71); + --color-error-750: rgb(128, 56, 59); + --color-error-800: rgb(102, 44, 47); + --color-error-850: rgb(77, 33, 35); + --color-error-900: rgb(51, 22, 24); + --color-error-950: rgb(25, 11, 12); +} \ No newline at end of file diff --git a/templates/ecommerce/src/css/common.scss b/templates/ecommerce/src/css/common.scss new file mode 100644 index 0000000000..6b0f85715f --- /dev/null +++ b/templates/ecommerce/src/css/common.scss @@ -0,0 +1,2 @@ +@forward './queries.scss'; +@forward './type.scss'; \ No newline at end of file diff --git a/templates/ecommerce/src/css/queries.scss b/templates/ecommerce/src/css/queries.scss new file mode 100644 index 0000000000..74f23fb0db --- /dev/null +++ b/templates/ecommerce/src/css/queries.scss @@ -0,0 +1,32 @@ +$breakpoint-xs-width: 400px; +$breakpoint-s-width: 768px; +$breakpoint-m-width: 1024px; +$breakpoint-l-width: 1440px; + +//////////////////////////// +// MEDIA QUERIES +///////////////////////////// + +@mixin extra-small-break { + @media (max-width: #{$breakpoint-xs-width}) { + @content; + } +} + +@mixin small-break { + @media (max-width: #{$breakpoint-s-width}) { + @content; + } +} + +@mixin mid-break { + @media (max-width: #{$breakpoint-m-width}) { + @content; + } +} + +@mixin large-break { + @media (max-width: #{$breakpoint-l-width}) { + @content; + } +} \ No newline at end of file diff --git a/templates/ecommerce/src/css/type.scss b/templates/ecommerce/src/css/type.scss new file mode 100644 index 0000000000..27eb1984f1 --- /dev/null +++ b/templates/ecommerce/src/css/type.scss @@ -0,0 +1,119 @@ +@use 'queries' as *; + +///////////////////////////// +// HEADINGS +///////////////////////////// + +%h1, +%h2, +%h3, +%h4, +%h5, +%h6 { + font-weight: 700; +} + +%h1 { + margin: 40px 0; + font-size: 64px; + line-height: 70px; + font-weight: bold; + + @include mid-break { + margin: 24px 0; + font-size: 42px; + line-height: 42px; + } +} + +%h2 { + margin: 28px 0; + font-size: 48px; + line-height: 54px; + font-weight: bold; + + @include mid-break { + margin: 22px 0; + font-size: 32px; + line-height: 40px; + } +} + +%h3 { + margin: 24px 0; + font-size: 32px; + line-height: 40px; + font-weight: bold; + + @include mid-break { + margin: 20px 0; + font-size: 26px; + line-height: 32px; + } +} + +%h4 { + margin: 20px 0; + font-size: 26px; + line-height: 32px; + font-weight: bold; + + @include mid-break { + font-size: 22px; + line-height: 30px; + } +} + +%h5 { + margin: 20px 0; + font-size: 22px; + line-height: 30px; + font-weight: bold; + + @include mid-break { + font-size: 18px; + line-height: 24px; + } +} + +%h6 { + margin: 20px 0; + font-size: inherit; + line-height: inherit; + font-weight: bold; +} + +///////////////////////////// +// TYPE STYLES +///////////////////////////// + +%body { + font-size: 18px; + line-height: 32px; + + @include mid-break { + font-size: 15px; + line-height: 24px; + } +} + +%large-body { + font-size: 25px; + line-height: 32px; + + @include mid-break { + font-size: 22px; + line-height: 30px; + } +} + +%label { + font-size: 16px; + line-height: 24px; + letter-spacing: 1px; + text-transform: uppercase; + + @include mid-break { + font-size: 13px; + } +} diff --git a/templates/ecommerce/src/cssVariables.js b/templates/ecommerce/src/cssVariables.js new file mode 100644 index 0000000000..3370777abd --- /dev/null +++ b/templates/ecommerce/src/cssVariables.js @@ -0,0 +1,7 @@ +module.exports = { + breakpoints: { + s: 768, + m: 1024, + l: 1679, + }, +} diff --git a/templates/ecommerce/src/routes/checkout.ts b/templates/ecommerce/src/endpoints/checkout.ts similarity index 99% rename from templates/ecommerce/src/routes/checkout.ts rename to templates/ecommerce/src/endpoints/checkout.ts index 044afd667e..982555196a 100644 --- a/templates/ecommerce/src/routes/checkout.ts +++ b/templates/ecommerce/src/endpoints/checkout.ts @@ -4,7 +4,7 @@ import Stripe from 'stripe' import type { User } from '../payload-types' const stripe = new Stripe(process.env.STRIPE_SECRET_KEY, { - apiVersion: '2022-11-15', + apiVersion: '2022-08-01', }) // This endpoint creates a PaymentIntent with the items in the cart using the "Invoices" API diff --git a/templates/ecommerce/src/endpoints/seed.ts b/templates/ecommerce/src/endpoints/seed.ts new file mode 100644 index 0000000000..8cad7e8be2 --- /dev/null +++ b/templates/ecommerce/src/endpoints/seed.ts @@ -0,0 +1,21 @@ +import type { PayloadHandler } from 'payload/config' + +import { seed as seedScript } from '../seed' + +export const seed: PayloadHandler = async (req, res): Promise => { + const { user, payload } = req + + if (!user) { + res.status(401).json({ error: 'Unauthorized' }) + return + } + + try { + await seedScript(payload) + res.json({ success: true }) + } catch (error: unknown) { + const message = error instanceof Error ? error.message : 'Unknown error' + payload.logger.error(message) + res.json({ error: message }) + } +} diff --git a/templates/ecommerce/src/fields/richText/label/Button/index.tsx b/templates/ecommerce/src/fields/richText/label/Button/index.tsx index 5d26159bad..7da8e61df6 100644 --- a/templates/ecommerce/src/fields/richText/label/Button/index.tsx +++ b/templates/ecommerce/src/fields/richText/label/Button/index.tsx @@ -1,18 +1,16 @@ /* eslint-disable import/no-extraneous-dependencies */ // eslint-disable-next-line no-use-before-define -import React from 'react'; -import { ElementButton } from 'payload/components/rich-text'; -import Icon from '../Icon'; +import React from 'react' +import { ElementButton } from 'payload/components/rich-text' -const baseClass = 'rich-text-label-button'; +import Icon from '../Icon' + +const baseClass = 'rich-text-label-button' const ToolbarButton: React.FC<{ path: string }> = () => ( - + -); +) -export default ToolbarButton; +export default ToolbarButton diff --git a/templates/ecommerce/src/fields/richText/label/Element/index.tsx b/templates/ecommerce/src/fields/richText/label/Element/index.tsx index 889be64b16..be59ad9504 100644 --- a/templates/ecommerce/src/fields/richText/label/Element/index.tsx +++ b/templates/ecommerce/src/fields/richText/label/Element/index.tsx @@ -1,20 +1,16 @@ -import React from 'react'; +import React from 'react' -import './index.scss'; +import './index.scss' -const baseClass = 'rich-text-label'; +const baseClass = 'rich-text-label' const LabelElement: React.FC<{ attributes: any element: any children: React.ReactNode }> = ({ attributes, children }) => ( -
    - - {children} - +
    + {children}
    -); -export default LabelElement; +) +export default LabelElement diff --git a/templates/ecommerce/src/fields/richText/label/Icon/index.tsx b/templates/ecommerce/src/fields/richText/label/Icon/index.tsx index e49b865d61..3bd9697684 100644 --- a/templates/ecommerce/src/fields/richText/label/Icon/index.tsx +++ b/templates/ecommerce/src/fields/richText/label/Icon/index.tsx @@ -1,13 +1,18 @@ /* eslint-disable no-use-before-define */ // eslint-disable-next-line import/no-extraneous-dependencies -import React from 'react'; +import React from 'react' const Icon = () => ( - - + + +) -); - -export default Icon; +export default Icon diff --git a/templates/ecommerce/src/fields/richText/largeBody/Button/index.tsx b/templates/ecommerce/src/fields/richText/largeBody/Button/index.tsx index 280cc94a49..df9f81028e 100644 --- a/templates/ecommerce/src/fields/richText/largeBody/Button/index.tsx +++ b/templates/ecommerce/src/fields/richText/largeBody/Button/index.tsx @@ -1,18 +1,16 @@ /* eslint-disable import/no-extraneous-dependencies */ // eslint-disable-next-line no-use-before-define -import React from 'react'; -import { ElementButton } from 'payload/components/rich-text'; -import Icon from '../Icon'; +import React from 'react' +import { ElementButton } from 'payload/components/rich-text' -const baseClass = 'rich-text-large-body-button'; +import Icon from '../Icon' + +const baseClass = 'rich-text-large-body-button' const ToolbarButton: React.FC<{ path: string }> = () => ( - + -); +) -export default ToolbarButton; +export default ToolbarButton diff --git a/templates/ecommerce/src/fields/richText/largeBody/Element/index.tsx b/templates/ecommerce/src/fields/richText/largeBody/Element/index.tsx index a6738365e4..3d6a3ae504 100644 --- a/templates/ecommerce/src/fields/richText/largeBody/Element/index.tsx +++ b/templates/ecommerce/src/fields/richText/largeBody/Element/index.tsx @@ -1,20 +1,16 @@ -import React from 'react'; +import React from 'react' -import './index.scss'; +import './index.scss' -const baseClass = 'rich-text-large-body'; +const baseClass = 'rich-text-large-body' const LargeBodyElement: React.FC<{ attributes: any element: any children: React.ReactNode }> = ({ attributes, children }) => ( -
    - - {children} - +
    + {children}
    -); -export default LargeBodyElement; +) +export default LargeBodyElement diff --git a/templates/ecommerce/src/fields/richText/largeBody/Icon/index.tsx b/templates/ecommerce/src/fields/richText/largeBody/Icon/index.tsx index 14d597a550..ef94fe44a0 100644 --- a/templates/ecommerce/src/fields/richText/largeBody/Icon/index.tsx +++ b/templates/ecommerce/src/fields/richText/largeBody/Icon/index.tsx @@ -1,12 +1,9 @@ /* eslint-disable no-use-before-define */ // eslint-disable-next-line import/no-extraneous-dependencies -import React from 'react'; +import React from 'react' const Icon = () => ( - + ( fill="currentColor" /> -); +) -export default Icon; +export default Icon diff --git a/templates/ecommerce/src/graphql/blocks.ts b/templates/ecommerce/src/graphql/blocks.ts new file mode 100644 index 0000000000..bf6a93d1ac --- /dev/null +++ b/templates/ecommerce/src/graphql/blocks.ts @@ -0,0 +1,73 @@ +import { CATEGORIES } from './categories' +import { LINK_FIELDS } from './link' +import { MEDIA } from './media' +import { META } from './meta' + +export const CALL_TO_ACTION = ` +...on Cta { + blockType + ctaBackgroundColor + richText + links { + link ${LINK_FIELDS()} + } +} +` + +export const CONTENT = ` +...on Content { + blockType + backgroundColor + columns { + size + richText + enableLink + link ${LINK_FIELDS()} + } +} +` + +export const MEDIA_BLOCK = ` +...on MediaBlock { + blockType + mediaBlockBackgroundColor + position + ${MEDIA} +} +` + +export const ARCHIVE_BLOCK = ` +...on Archive { + blockType + introContent + populateBy + relationTo + ${CATEGORIES} + limit + selectedDocs { + relationTo + value { + ...on Product { + id + slug + title + priceJSON + } + } + } + populatedDocs { + relationTo + value { + ...on Product { + id + slug + title + priceJSON + ${CATEGORIES} + ${META} + } + } + } + populatedDocsTotal +} +` diff --git a/templates/ecommerce/src/graphql/cart.ts b/templates/ecommerce/src/graphql/cart.ts new file mode 100644 index 0000000000..84d0b131ed --- /dev/null +++ b/templates/ecommerce/src/graphql/cart.ts @@ -0,0 +1,13 @@ +import { META } from './meta' + +export const CART = `cart { + items { + product { + id + slug + priceJSON + ${META} + } + quantity + } +}` diff --git a/templates/ecommerce/src/graphql/categories.ts b/templates/ecommerce/src/graphql/categories.ts new file mode 100644 index 0000000000..df8cbe9a15 --- /dev/null +++ b/templates/ecommerce/src/graphql/categories.ts @@ -0,0 +1,8 @@ +export const CATEGORIES = `categories { + title + id + breadcrumbs { + id + label + } +}` diff --git a/templates/ecommerce/src/graphql/globals.ts b/templates/ecommerce/src/graphql/globals.ts new file mode 100644 index 0000000000..335159beae --- /dev/null +++ b/templates/ecommerce/src/graphql/globals.ts @@ -0,0 +1,45 @@ +import { gql } from '@apollo/client' + +import { LINK_FIELDS } from './link' + +export const HEADER = ` + Header { + navItems { + link ${LINK_FIELDS({ disableAppearance: true })} + } + } +` + +export const HEADER_QUERY = gql` +query Header { + ${HEADER} +} +` + +export const FOOTER = ` + Header { + navItems { + link ${LINK_FIELDS({ disableAppearance: true })} + } + } +` + +export const FOOTER_QUERY = gql` +query Header { + ${FOOTER} +} +` + +export const SETTINGS = ` + Settings { + shopPage { + slug + } + } +` + +export const SETTINGS_QUERY = gql` +query Settings { + ${SETTINGS} +} +` diff --git a/templates/ecommerce/src/graphql/index.ts b/templates/ecommerce/src/graphql/index.ts new file mode 100644 index 0000000000..0077454d4d --- /dev/null +++ b/templates/ecommerce/src/graphql/index.ts @@ -0,0 +1,20 @@ +import { ApolloClient, InMemoryCache } from '@apollo/client' + +let CLIENT: ApolloClient + +// By re-using the client if `NODE_ENV === 'production'`, +// we'll leverage Apollo caching +// to reduce the calls made to commonly needed assets +// like MainMenu, Footer, etc. + +export function getApolloClient(): ApolloClient { + if (!CLIENT || process.env.NODE_ENV !== 'production') { + CLIENT = new ApolloClient({ + ssrMode: true, + uri: `${process.env.NEXT_PUBLIC_SERVER_URL}/api/graphql`, + cache: new InMemoryCache(), + }) + } + + return CLIENT +} diff --git a/templates/ecommerce/src/graphql/link.ts b/templates/ecommerce/src/graphql/link.ts new file mode 100644 index 0000000000..fff0fc3197 --- /dev/null +++ b/templates/ecommerce/src/graphql/link.ts @@ -0,0 +1,20 @@ +interface Args { + disableLabel?: true + disableAppearance?: true +} + +export const LINK_FIELDS = ({ disableAppearance, disableLabel }: Args = {}): string => `{ + ${!disableLabel ? 'label' : ''} + ${!disableAppearance ? 'appearance' : ''} + type + newTab + url + reference { + relationTo + value { + ...on Page { + slug + } + } + } +}` diff --git a/templates/ecommerce/src/graphql/media.ts b/templates/ecommerce/src/graphql/media.ts new file mode 100644 index 0000000000..fbf8e526b6 --- /dev/null +++ b/templates/ecommerce/src/graphql/media.ts @@ -0,0 +1,12 @@ +export const MEDIA_FIELDS = ` +mimeType +filename +width +height +alt +caption +` + +export const MEDIA = `media { + ${MEDIA_FIELDS} +}` diff --git a/templates/ecommerce/src/graphql/meta.ts b/templates/ecommerce/src/graphql/meta.ts new file mode 100644 index 0000000000..fc87374928 --- /dev/null +++ b/templates/ecommerce/src/graphql/meta.ts @@ -0,0 +1,9 @@ +import { MEDIA_FIELDS } from './media' + +export const META = `meta { + title + image { + ${MEDIA_FIELDS} + } + description +}` diff --git a/templates/ecommerce/src/graphql/pages.ts b/templates/ecommerce/src/graphql/pages.ts new file mode 100644 index 0000000000..a9d20b3c14 --- /dev/null +++ b/templates/ecommerce/src/graphql/pages.ts @@ -0,0 +1,47 @@ +import { gql } from '@apollo/client' + +import { ARCHIVE_BLOCK, CALL_TO_ACTION, CONTENT, MEDIA_BLOCK } from './blocks' +import { FOOTER, HEADER, SETTINGS } from './globals' +import { LINK_FIELDS } from './link' +import { MEDIA } from './media' +import { META } from './meta' + +export const PAGES = gql` + query Pages { + Pages(limit: 300, where: { slug: { not_equals: "cart" } }) { + docs { + slug + } + } + } +` + +export const PAGE = gql` + query Page($slug: String ) { + Pages(where: { AND: [{ slug: { equals: $slug }}] }) { + docs { + id + title + hero { + type + richText + links { + link ${LINK_FIELDS()} + } + ${MEDIA} + } + layout { + ${CONTENT} + ${CALL_TO_ACTION} + ${CONTENT} + ${MEDIA_BLOCK} + ${ARCHIVE_BLOCK} + } + ${META} + } + } + ${HEADER} + ${FOOTER} + ${SETTINGS} + } +` diff --git a/templates/ecommerce/src/graphql/products.ts b/templates/ecommerce/src/graphql/products.ts new file mode 100644 index 0000000000..58e52d528c --- /dev/null +++ b/templates/ecommerce/src/graphql/products.ts @@ -0,0 +1,45 @@ +import { gql } from '@apollo/client' + +import { ARCHIVE_BLOCK, CALL_TO_ACTION, CONTENT, MEDIA_BLOCK } from './blocks' +import { CATEGORIES } from './categories' +import { FOOTER, HEADER, SETTINGS } from './globals' +import { META } from './meta' + +export const PRODUCTS = gql` + query Products { + Products(limit: 300) { + docs { + slug + } + } + } +` + +export const PRODUCT = gql` + query Product($slug: String ) { + Products(where: { slug: { equals: $slug}}) { + docs { + id + title + ${CATEGORIES} + layout { + ${CALL_TO_ACTION} + ${CONTENT} + ${MEDIA_BLOCK} + ${ARCHIVE_BLOCK} + } + paywall { + ${CALL_TO_ACTION} + ${CONTENT} + ${MEDIA_BLOCK} + ${ARCHIVE_BLOCK} + } + priceJSON + ${META} + } + } + ${HEADER} + ${FOOTER} + ${SETTINGS} + } +` diff --git a/templates/ecommerce/src/pages/[slug].tsx b/templates/ecommerce/src/pages/[slug].tsx new file mode 100644 index 0000000000..eacbddb498 --- /dev/null +++ b/templates/ecommerce/src/pages/[slug].tsx @@ -0,0 +1,92 @@ +import React from 'react' +import { GetStaticPaths, GetStaticProps } from 'next' + +import { Blocks } from '../components/Blocks' +import { Hero } from '../components/Hero' +import { getApolloClient } from '../graphql' +import { PAGE, PAGES } from '../graphql/pages' +import type { Page } from '../payload-types' +import { staticHome } from '../seed/static-home' + +const PageTemplate: React.FC<{ + page: Page + preview?: boolean +}> = props => { + const { page } = props + + if (page) { + const { hero, layout } = page + + return ( + + + + + ) + } + + return null +} + +export const getStaticProps: GetStaticProps = async ({ params }) => { + const apolloClient = getApolloClient() + const slug = params?.slug || 'home' + + const { data } = await apolloClient.query({ + query: PAGE, + variables: { + slug, + }, + }) + + // If no `home` page exists, render a static one using dummy content + // You should delete this code once you have created a home page in the CMS + // This is really only useful for those who are demoing this template + if (!data.Pages.docs[0] && slug === 'home') { + return { + props: { + page: staticHome, + header: null, + footer: null, + collection: 'pages', + id: null, + }, + } + } + + if (!data.Pages.docs[0]) { + return { + notFound: true, + } + } + + return { + props: { + page: data?.Pages?.docs?.[0] || null, + header: data?.Header || null, + footer: data?.Footer || null, + collection: 'pages', + id: data?.Pages?.docs?.[0]?.id || null, + }, + } +} + +export const getStaticPaths: GetStaticPaths = async () => { + const apolloClient = getApolloClient() + + const { data } = await apolloClient.query({ + query: PAGES, + }) + + return { + paths: data.Pages.docs.map(({ slug }) => ({ + params: { slug }, + })), + fallback: 'blocking', + } +} + +export default PageTemplate diff --git a/templates/ecommerce/src/pages/_app.tsx b/templates/ecommerce/src/pages/_app.tsx new file mode 100644 index 0000000000..aacf4133a4 --- /dev/null +++ b/templates/ecommerce/src/pages/_app.tsx @@ -0,0 +1,84 @@ +import React, { useCallback } from 'react' +import { GridProvider } from '@faceless-ui/css-grid' +import { ModalContainer, ModalProvider } from '@faceless-ui/modal' +import { AppProps } from 'next/app' +import { useRouter } from 'next/router' + +import { AdminBar } from '../components/AdminBar' +import { Footer } from '../components/Footer' +import { Header } from '../components/Header' +import cssVariables from '../cssVariables' +import { Footer as FooterType, Header as HeaderType } from '../payload-types' +import { AuthProvider } from '../providers/Auth' +import { CartProvider } from '../providers/Cart' + +import '../css/app.scss' + +const PayloadApp = ( + appProps: AppProps<{ + id: string + preview: boolean + collection: string + header: HeaderType + footer: FooterType + }>, +): React.ReactElement => { + const { Component, pageProps } = appProps + + const { collection, id, preview } = pageProps + + const router = useRouter() + + const onPreviewExit = useCallback(() => { + const exit = async () => { + const exitReq = await fetch('/api/exit-preview') + if (exitReq.status === 200) { + router.reload() + } + } + exit() + }, [router]) + + return ( + + + + + +
    + +
    + +
    +
    +
    +
    + ) +} + +export default PayloadApp diff --git a/templates/ecommerce/src/pages/account/index.module.css b/templates/ecommerce/src/pages/account/index.module.css new file mode 100644 index 0000000000..e802ecf9ff --- /dev/null +++ b/templates/ecommerce/src/pages/account/index.module.css @@ -0,0 +1,25 @@ +.account { + margin-bottom: var(--block-padding); +} + +.form { + margin-bottom: var(--base); +} + +.success, +.error { + margin-bottom: 15px; +} + +.success { + color: green; +} + +.error { + color: red; +} + +.hr { + margin: calc(var(--block-padding) / 2) 0; + background-color: var(--color-base-900); +} diff --git a/templates/ecommerce/src/pages/account/index.tsx b/templates/ecommerce/src/pages/account/index.tsx new file mode 100644 index 0000000000..5db566b6e5 --- /dev/null +++ b/templates/ecommerce/src/pages/account/index.tsx @@ -0,0 +1,153 @@ +import React, { useCallback, useEffect, useState } from 'react' +import { useForm } from 'react-hook-form' +import { GetStaticProps } from 'next' +import Link from 'next/link' +import { useRouter } from 'next/router' + +import { Button } from '../../components/Button' +import { Gutter } from '../../components/Gutter' +import { Input } from '../../components/Input' +import { getApolloClient } from '../../graphql' +import { HEADER_QUERY } from '../../graphql/globals' +import { useAuth } from '../../providers/Auth' +import classes from './index.module.css' + +type FormData = { + email: string + name: string +} + +const Account: React.FC = () => { + const [error, setError] = useState('') + const [success, setSuccess] = useState('') + const { user, setUser } = useAuth() + + const { + register, + handleSubmit, + formState: { errors }, + reset, + } = useForm() + + const router = useRouter() + + const onSubmit = useCallback( + async (data: FormData) => { + if (user) { + const response = await fetch(`${process.env.NEXT_PUBLIC_SERVER_URL}/api/users/${user.id}`, { + // Make sure to include cookies with fetch + credentials: 'include', + method: 'PATCH', + body: JSON.stringify(data), + headers: { + 'Content-Type': 'application/json', + }, + }) + + if (response.ok) { + const json = await response.json() + + // Update the user in auth state with new values + setUser(json.doc) + + // Set success message for user + setSuccess('Successfully updated account.') + + // Clear any existing errors + setError('') + } else { + setError('There was a problem updating your account.') + } + } + }, + [user, setUser], + ) + + useEffect(() => { + if (user === null) { + router.push(`/login?unauthorized=account`) + } + + // Once user is loaded, reset form to have default values + if (user) { + reset({ + email: user.email, + name: user.name, + }) + } + }, [user, router, reset]) + + useEffect(() => { + if (typeof router.query.success === 'string') { + setSuccess(router.query.success) + } + }, [router]) + + return ( + +

    Account

    + {error &&
    {error}
    } + {success &&
    {success}
    } +
    + + +
    + )} + + + + ) +} + +export const getStaticProps: GetStaticProps = async () => { + const apolloClient = getApolloClient() + + const { data } = await apolloClient.query({ + query: PAGE, + variables: { + slug: 'cart', + }, + }) + + if (!data.Pages.docs[0]) { + return { + notFound: true, + } + } + + return { + props: { + page: data?.Pages?.docs?.[0] || null, + header: data?.Header || null, + footer: data?.Footer || null, + settings: data?.Settings || null, + collection: 'pages', + id: data?.Pages?.docs?.[0]?.id || null, + }, + } +} + +export default CartPage diff --git a/templates/ecommerce/src/pages/checkout/index.module.scss b/templates/ecommerce/src/pages/checkout/index.module.scss new file mode 100644 index 0000000000..c7dac4c009 --- /dev/null +++ b/templates/ecommerce/src/pages/checkout/index.module.scss @@ -0,0 +1,73 @@ +@import "../../css/common"; + +.checkoutPage { + margin-bottom: var(--block-padding); +} + +.items { + margin-bottom: var(--base); +} + +.row { + display: flex; + align-items: center; + + @include small-break { + flex-direction: column; + align-items: flex-start; + } +} + +.rowHR { + margin: var(--base) 0; + background-color: var(--color-base-900); +} + +.rowContent { + margin-left: var(--base); + + @include small-break { + margin-left: 0; + } +} + +.placeholder { + background-color: var(--color-base-50); + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; +} + +.mediaWrapper { + text-decoration: none; + display: block; + position: relative; + aspect-ratio: 5 / 4; + width: 100%; + max-width: 200px; + + @include small-break { + max-width: unset; + margin-bottom: calc(var(--base) / 2); + } +} + +.image { + object-fit: cover; +} + +.title { + margin: 0; +} + +.orderTotal { + margin-top: var(--base); + font-weight: 600; +} + +.loading, +.error { + margin-top: calc(var(--block-padding) - var(--base)); +} diff --git a/templates/ecommerce/src/pages/checkout/index.tsx b/templates/ecommerce/src/pages/checkout/index.tsx new file mode 100644 index 0000000000..12a2ee2a0c --- /dev/null +++ b/templates/ecommerce/src/pages/checkout/index.tsx @@ -0,0 +1,185 @@ +import React, { Fragment, useEffect } from 'react' +import { gql } from '@apollo/client' +import { Elements } from '@stripe/react-stripe-js' +import { loadStripe } from '@stripe/stripe-js' +import { GetStaticProps } from 'next' +import Link from 'next/link' +import { useRouter } from 'next/router' + +import { CheckoutForm } from '../../components/CheckoutForm' +import { Gutter } from '../../components/Gutter' +import { Media } from '../../components/Media' +import { Price } from '../../components/Price' +import { getApolloClient } from '../../graphql' +import { FOOTER, HEADER, SETTINGS } from '../../graphql/globals' +import { Settings } from '../../payload-types' +import { useAuth } from '../../providers/Auth' +import { useCart } from '../../providers/Cart' + +import classes from './index.module.scss' + +const apiKey = `${process.env.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY}` +const stripe = loadStripe(apiKey) + +const CheckoutPage: React.FC<{ + settings: Settings +}> = props => { + const { + settings: { shopPage }, + } = props + + const { user } = useAuth() + const router = useRouter() + const [error, setError] = React.useState(null) + const [clientSecret, setClientSecret] = React.useState() + const hasMadePaymentIntent = React.useRef(false) + + const { cart, cartIsEmpty, cartTotal } = useCart() + + useEffect(() => { + if (user === null) { + router.push('/account/login?unauthorized=account') + } + }, [router, user]) + + useEffect(() => { + if (user !== null && cartIsEmpty) { + router.push('/cart') + } + }, [router, user, cartIsEmpty]) + + useEffect(() => { + if (user && cart && hasMadePaymentIntent.current === false) { + hasMadePaymentIntent.current = true + + const makeIntent = async () => { + try { + const req = await fetch(`${process.env.NEXT_PUBLIC_SERVER_URL}/api/checkout`, { + method: 'POST', + credentials: 'include', + }) + + const res = await req.json() + + if (res.error) { + setError(res.error) + } else if (res.client_secret) { + setError(null) + setClientSecret(res.client_secret) + } + } catch (e) { + setError('Something went wrong.') + } + } + + makeIntent() + } + }, [cart, user]) + + if (!user || !stripe) return null + + return ( + + {!clientSecret && !error &&
    Loading...
    } + {!clientSecret && error && ( +
    +

    Error:

    + {error} +
    + )} + {clientSecret && ( + +

    Checkout

    +

    + This is a self-hosted, secure checkout using Stripe's Payment Element component. + Use credit card number 4242 4242 4242 4242 with any future date and CVC to create + a mock purchase. An order will be generated in the CMS and will appear in your account. +

    + {error &&

    {error}

    } + {cartIsEmpty && ( +
    + {'Your '} + cart + {' is empty.'} + {typeof shopPage === 'object' && shopPage?.slug && ( + + {' '} + Continue shopping? + + )} +
    + )} + {!cartIsEmpty && ( +
    + {cart.items.map((item, index) => { + if (typeof item.product === 'object') { + const { + quantity, + product, + product: { + title, + meta: { image: metaImage }, + }, + } = item + + const isLast = index === cart.items.length - 1 + + return ( + +
    +
    + {!metaImage && No image} + {metaImage && typeof metaImage !== 'string' && ( + + )} +
    +
    +
    {title}
    + {`Quantity: ${quantity}`} + +
    +
    + {!isLast &&
    } +
    + ) + } + return null + })} +
    {`Order total: ${cartTotal.formatted}`}
    +
    + )} + +
    + )} +
    + ) +} + +export const getStaticProps: GetStaticProps = async () => { + const apolloClient = getApolloClient() + + const { data } = await apolloClient.query({ + query: gql(` + query { + ${HEADER} + ${FOOTER} + ${SETTINGS} + } + `), + }) + + return { + props: { + header: data?.Header || null, + footer: data?.Footer || null, + settings: data?.Settings || null, + }, + } +} + +export default CheckoutPage diff --git a/templates/ecommerce/src/pages/create-account/index.module.css b/templates/ecommerce/src/pages/create-account/index.module.css new file mode 100644 index 0000000000..22138af5a4 --- /dev/null +++ b/templates/ecommerce/src/pages/create-account/index.module.css @@ -0,0 +1,11 @@ +.createAccount { + margin-bottom: var(--block-padding); +} + +.form { + margin-bottom: var(--base); +} + +.error { + color: red; +} diff --git a/templates/ecommerce/src/pages/create-account/index.tsx b/templates/ecommerce/src/pages/create-account/index.tsx new file mode 100644 index 0000000000..f10fb3655e --- /dev/null +++ b/templates/ecommerce/src/pages/create-account/index.tsx @@ -0,0 +1,130 @@ +import React, { Fragment, useCallback, useState } from 'react' +import { useForm } from 'react-hook-form' +import { gql } from '@apollo/client' +import { GetStaticProps } from 'next' +import Link from 'next/link' + +import { Button } from '../../components/Button' +import { Gutter } from '../../components/Gutter' +import { Input } from '../../components/Input' +import { getApolloClient } from '../../graphql' +import { FOOTER, HEADER, SETTINGS } from '../../graphql/globals' +import { User } from '../../payload-types' +import { useAuth } from '../../providers/Auth' +import classes from './index.module.css' + +type FormData = Partial< + User & { + password: string + passwordConfirm: string + } +> + +const CreateAccount: React.FC = () => { + const [error, setError] = useState('') + const [success, setSuccess] = useState(false) + const { login } = useAuth() + const { + register, + handleSubmit, + formState: { errors }, + } = useForm() + + const onSubmit = useCallback( + async (data: FormData) => { + const response = await fetch(`${process.env.NEXT_PUBLIC_SERVER_URL}/api/users`, { + method: 'POST', + body: JSON.stringify(data), + headers: { + 'Content-Type': 'application/json', + }, + }) + + if (response.ok) { + // Automatically log the user in + await login({ email: data.email, password: data.password }) + + // Set success message for user + setSuccess(true) + + // Clear any existing errors + setError('') + } else { + setError('There was a problem creating your account. Please try again later.') + } + }, + [login], + ) + + return ( + + {!success && ( + +

    Create Account

    + {error &&
    {error}
    } +
    + + + + +
    + +
    + ) +} + +export const getStaticProps: GetStaticProps = async () => { + const apolloClient = getApolloClient() + + const { data } = await apolloClient.query({ + query: gql(` + query { + ${HEADER} + ${FOOTER} + ${SETTINGS} + } + `), + }) + + return { + props: { + header: data?.Header || null, + footer: data?.Footer || null, + }, + } +} + +export default ResetPassword diff --git a/templates/ecommerce/src/pages/styleguide/index.tsx b/templates/ecommerce/src/pages/styleguide/index.tsx new file mode 100644 index 0000000000..c5d4af5fdb --- /dev/null +++ b/templates/ecommerce/src/pages/styleguide/index.tsx @@ -0,0 +1,61 @@ +import React from 'react' +import { gql } from '@apollo/client' +import { GetStaticProps } from 'next' + +import { Gutter } from '../../components/Gutter' +import { getApolloClient } from '../../graphql' +import { FOOTER, HEADER, SETTINGS } from '../../graphql/globals' + +const Typography: React.FC = () => { + return ( + +

    Typography

    +

    H1: Lorem ipsum dolor sit amet officia deserunt.

    +

    H2: Lorem ipsum dolor sit amet in culpa qui officia deserunt consectetur.

    +

    + H3: Lorem ipsum dolor sit amet in culpa qui officia deserunt consectetur adipiscing elit. +

    +

    + H4: Lorem ipsum dolor sit amet, consectetur adipiscing elit lorem ipsum dolor sit amet, + consectetur adipiscing elit. +

    +
    + H5: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor + incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam. +
    +
    + H6: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor + incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam. +
    +

    + P: Lorem ipsum dolor sit amet, consectetur adipiscing elit consectetur adipiscing elit, sed + do eiusmod tempor incididunt ut labore et dolore magna aliqua. dolore magna aliqua. Quis + nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Lorem ipsum + doalor sit amet in culpa qui officia deserunt consectetur adipiscing elit. +

    +
    + ) +} + +export const getStaticProps: GetStaticProps = async () => { + const apolloClient = getApolloClient() + + const { data } = await apolloClient.query({ + query: gql(` + query { + ${HEADER} + ${FOOTER} + ${SETTINGS} + } + `), + }) + + return { + props: { + header: data?.Header || null, + footer: data?.Footer || null, + }, + } +} + +export default Typography diff --git a/templates/ecommerce/src/payload.config.ts b/templates/ecommerce/src/payload.config.ts index ea91208524..b36079dffd 100644 --- a/templates/ecommerce/src/payload.config.ts +++ b/templates/ecommerce/src/payload.config.ts @@ -13,10 +13,11 @@ import { Pages } from './collections/Pages' import Products from './collections/Products' import Users from './collections/Users' import BeforeDashboard from './components/BeforeDashboard' +import { checkout } from './endpoints/checkout' +import { seed } from './endpoints/seed' import { Footer } from './globals/Footer' import { Header } from './globals/Header' import { Settings } from './globals/Settings' -import { checkout } from './routes/checkout' import { invoiceCreatedOrUpdated } from './stripe/webhooks/invoiceCreatedOrUpdated' import { priceUpdated } from './stripe/webhooks/priceUpdated' import { productUpdated } from './stripe/webhooks/productUpdated' @@ -43,7 +44,7 @@ export default buildConfig({ ...config.resolve?.alias, [path.resolve(__dirname, 'collections/Products/hooks/beforeChange')]: mockModulePath, [path.resolve(__dirname, 'collections/Users/hooks/createStripeCustomer')]: mockModulePath, - [path.resolve(__dirname, 'routes/checkout')]: mockModulePath, + [path.resolve(__dirname, 'endpoints/checkout')]: mockModulePath, stripe: mockModulePath, express: mockModulePath, }, @@ -59,18 +60,29 @@ export default buildConfig({ graphQL: { schemaOutputFile: path.resolve(__dirname, 'generated-schema.graphql'), }, - cors: ['https://checkout.stripe.com', process.env.PAYLOAD_PUBLIC_SITE_URL].filter(Boolean), - csrf: ['https://checkout.stripe.com', process.env.PAYLOAD_PUBLIC_SITE_URL].filter(Boolean), + cors: ['https://checkout.stripe.com', process.env.PAYLOAD_PUBLIC_SERVER_URL || ''].filter( + Boolean, + ), + csrf: ['https://checkout.stripe.com', process.env.PAYLOAD_PUBLIC_SERVER_URL || ''].filter( + Boolean, + ), endpoints: [ { path: '/checkout', method: 'post', handler: checkout, }, + // The seed endpoint is used to populate the database with some example data + // You should delete this endpoint before deploying your site to production + { + path: '/seed', + method: 'get', + handler: seed, + }, ], plugins: [ stripePlugin({ - stripeSecretKey: process.env.STRIPE_SECRET_KEY, + stripeSecretKey: process.env.STRIPE_SECRET_KEY || '', isTestKey: Boolean(process.env.PAYLOAD_PUBLIC_STRIPE_IS_TEST_KEY), stripeWebhooksEndpointSecret: process.env.STRIPE_WEBHOOKS_ENDPOINT_SECRET, webhooks: { diff --git a/templates/ecommerce/src/providers/Auth/index.tsx b/templates/ecommerce/src/providers/Auth/index.tsx new file mode 100644 index 0000000000..2c06e8aa44 --- /dev/null +++ b/templates/ecommerce/src/providers/Auth/index.tsx @@ -0,0 +1,268 @@ +import React, { createContext, useCallback, useContext, useEffect, useState } from 'react' + +import { CART } from '../../graphql/cart' +import { User } from '../../payload-types' + +// eslint-disable-next-line no-unused-vars +type ResetPassword = (args: { + password: string + passwordConfirm: string + token: string +}) => Promise + +type ForgotPassword = (args: { email: string }) => Promise // eslint-disable-line no-unused-vars + +type Create = (args: { email: string; password: string; passwordConfirm: string }) => Promise // eslint-disable-line no-unused-vars + +type Login = (args: { email: string; password: string }) => Promise // eslint-disable-line no-unused-vars + +type Logout = () => Promise + +type AuthContext = { + user?: User | null + setUser: (user: User | null) => void // eslint-disable-line no-unused-vars + logout: Logout + login: Login + create: Create + resetPassword: ResetPassword + forgotPassword: ForgotPassword + status: undefined | 'loggedOut' | 'loggedIn' +} + +const Context = createContext({} as AuthContext) + +export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => { + const [user, setUser] = useState() + + // used to track the single event of logging in or logging out + // useful for `useEffect` hooks that should only run once + const [status, setStatus] = useState() + + const create = useCallback(async args => { + try { + const res = await fetch(`${process.env.NEXT_PUBLIC_SERVER_URL}/api/graphql`, { + method: 'POST', + credentials: 'include', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + query: `mutation { + createUser(email: "${args.email}", password: "${args.password}", confirmPassword: "${args.passwordConfirm}") { ) { + user { + email + } + exp + } + }`, + }), + }) + + if (res.ok) { + const { data, errors } = await res.json() + if (errors) throw new Error(errors[0].message) + setUser(data?.loginUser?.user) + setStatus('loggedIn') + } else { + throw new Error('Invalid login') + } + } catch (e) { + throw new Error('An error occurred while attempting to login.') + } + }, []) + + const login = useCallback(async args => { + try { + const res = await fetch(`${process.env.NEXT_PUBLIC_SERVER_URL}/api/graphql`, { + method: 'POST', + credentials: 'include', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + query: `mutation { + loginUser(email: "${args.email}", password: "${args.password}") { + user { + id + email + name + ${CART} + roles + } + exp + } + }`, + }), + }) + + if (res.ok) { + const { data, errors } = await res.json() + if (errors) throw new Error(errors[0].message) + setUser(data?.loginUser?.user) + setStatus('loggedIn') + return data?.loginUser?.user + } + + throw new Error('Invalid login') + } catch (e) { + throw new Error('An error occurred while attempting to login.') + } + }, []) + + const logout = useCallback(async () => { + try { + const res = await fetch(`${process.env.NEXT_PUBLIC_SERVER_URL}/api/graphql`, { + method: 'POST', + credentials: 'include', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + query: `mutation { + logoutUser + }`, + }), + }) + + if (res.ok) { + setUser(null) + setStatus('loggedOut') + } else { + throw new Error('An error occurred while attempting to logout.') + } + } catch (e) { + throw new Error('An error occurred while attempting to logout.') + } + }, []) + + useEffect(() => { + const fetchMe = async () => { + try { + const res = await fetch(`${process.env.NEXT_PUBLIC_SERVER_URL}/api/graphql`, { + method: 'POST', + credentials: 'include', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + query: `query { + meUser { + user { + id + email + name + ${CART} + roles + } + exp + } + }`, + }), + }) + + if (res.ok) { + const { data } = await res.json() + setUser(data?.meUser?.user || null) + setStatus(data?.meUser?.user ? 'loggedIn' : undefined) + } else { + throw new Error('An error occurred while fetching your account.') + } + } catch (e) { + setUser(null) + throw new Error('An error occurred while fetching your account.') + } + } + + fetchMe() + }, []) + + const forgotPassword = useCallback(async args => { + try { + const res = await fetch(`${process.env.NEXT_PUBLIC_SERVER_URL}/api/graphql`, { + method: 'POST', + credentials: 'include', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + query: `mutation { + forgotPasswordUser(email: "${args.email}") { + user { + email + } + exp + } + }`, + }), + }) + + if (res.ok) { + const { data, errors } = await res.json() + if (errors) throw new Error(errors[0].message) + setUser(data?.loginUser?.user) + } else { + throw new Error('Invalid login') + } + } catch (e) { + throw new Error('An error occurred while attempting to login.') + } + }, []) + + const resetPassword = useCallback(async args => { + try { + const res = await fetch(`${process.env.NEXT_PUBLIC_SERVER_URL}/api/graphql`, { + method: 'POST', + credentials: 'include', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + query: `mutation { + resetPasswordUser(password: "${args.password}", passwordConfirm: "${args.passwordConfirm}", token: "${args.token}") { + user { + id + email + name + ${CART} + roles + } + exp + } + }`, + }), + }) + + if (res.ok) { + const { data, errors } = await res.json() + if (errors) throw new Error(errors[0].message) + setUser(data?.loginUser?.user) + setStatus(data?.loginUser?.user ? 'loggedIn' : undefined) + } else { + throw new Error('Invalid login') + } + } catch (e) { + throw new Error('An error occurred while attempting to login.') + } + }, []) + + return ( + + {children} + + ) +} + +type UseAuth = () => AuthContext // eslint-disable-line no-unused-vars + +export const useAuth: UseAuth = () => useContext(Context) diff --git a/templates/ecommerce/src/providers/Cart/index.tsx b/templates/ecommerce/src/providers/Cart/index.tsx new file mode 100644 index 0000000000..c0f9ddc028 --- /dev/null +++ b/templates/ecommerce/src/providers/Cart/index.tsx @@ -0,0 +1,242 @@ +import React, { + createContext, + useCallback, + useContext, + useEffect, + useReducer, + useRef, + useState, +} from 'react' + +import { Product, User } from '../../payload-types' +import { useAuth } from '../Auth' +import { CartItem, cartReducer } from './reducer' +// import { useNotifications } from '../Notifications'; + +export type CartContext = { + cart: User['cart'] + addItemToCart: (item: CartItem) => void + deleteItemFromCart: (product: Product) => void + cartIsEmpty: boolean | undefined + clearCart: () => void + isProductInCart: (product: Product) => boolean + cartTotal: { + formatted: string + raw: number + } +} + +const Context = createContext({} as CartContext) + +export const useCart = () => useContext(Context) + +const arrayHasItems = array => Array.isArray(array) && array.length > 0 + +// Step 1: Check local storage for a cart +// Step 2: If there is a cart, fetch the products and hydrate the cart +// Step 3: Authenticate the user +// Step 4: If the user is authenticated, merge the user's cart with the local cart +// Step 4B: Sync the cart to Payload and clear local storage +// Step 5: If the user is logged out, sync the cart to local storage only + +export const CartProvider = props => { + // const { setTimedNotification } = useNotifications(); + const { children } = props + const { user, status: authStatus } = useAuth() + + const [cart, dispatchCart] = useReducer(cartReducer, { + items: [], + }) + + const [total, setTotal] = useState<{ + formatted: string + raw: number + }>({ + formatted: '0.00', + raw: 0, + }) + + const [cartIsEmpty, setCartIsEmpty] = useState() + const hasInitialized = useRef(false) + + // Check local storage for a cart + // If there is a cart, fetch the products and hydrate the cart + useEffect(() => { + if (!hasInitialized.current) { + hasInitialized.current = true + const syncCartFromLocalStorage = async () => { + const localCart = localStorage.getItem('cart') + + if (localCart) { + const parsedCart = JSON.parse(localCart) + if (parsedCart.items && parsedCart.items.length > 0) { + const initialCart = await Promise.all( + parsedCart.items.map(async ({ product, quantity }) => { + const res = await fetch( + `${process.env.NEXT_PUBLIC_SERVER_URL}/api/products/${product}`, + ) + const data = await res.json() + return { + product: data, + quantity, + } + }), + ) + + dispatchCart({ + type: 'SET_CART', + payload: { + items: initialCart, + }, + }) + } + } + } + syncCartFromLocalStorage() + } + }, []) + + // authenticate the user and if logged in, merge the user's cart with local state + // only do this after we have initialized the cart to ensure we don't lose any items + useEffect(() => { + if (!hasInitialized.current) return + + if (authStatus === 'loggedIn') { + // merge the user's cart with the local state upon logging in + dispatchCart({ + type: 'MERGE_CART', + payload: user.cart, + }) + } + + if (authStatus === 'loggedOut') { + // clear the cart from local state after logging out + dispatchCart({ + type: 'CLEAR_CART', + }) + } + }, [user, authStatus]) + + // every time the cart changes, determine whether to save to local storage or Payload based on authentication status + // upon logging in, merge and sync the existing local cart to Payload + useEffect(() => { + // wait until we have attempted authentication (the user is either an object or `null`) + if (!hasInitialized.current || user === undefined) return + + const flattenedCart = { + ...cart, + items: cart.items?.map(item => ({ + ...item, + // flatten relationship to product + product: typeof item.product === 'string' ? item.product : item.product.id, + })), + } + + if (user) { + try { + const syncCartToPayload = async () => { + const req = await fetch(`${process.env.NEXT_PUBLIC_SERVER_URL}/api/users/${user.id}`, { + // Make sure to include cookies with fetch + credentials: 'include', + method: 'PATCH', + body: JSON.stringify({ + cart: flattenedCart, + }), + headers: { + 'Content-Type': 'application/json', + }, + }) + + if (req.ok) { + localStorage.setItem('cart', '[]') + } + } + + syncCartToPayload() + } catch (e) { + console.error('Error while syncing cart to Payload.') // eslint-disable-line no-console + } + } else { + localStorage.setItem('cart', JSON.stringify(flattenedCart)) + } + }, [user, cart]) + + const isProductInCart = useCallback( + (incomingProduct: Product): boolean => { + let isInCart = false + const { items: itemsInCart } = cart + if (Array.isArray(itemsInCart) && itemsInCart.length > 0) { + isInCart = Boolean( + itemsInCart.find(({ product }) => + typeof product === 'string' + ? product === incomingProduct.id + : product.id === incomingProduct.id, + ), // eslint-disable-line function-paren-newline + ) + } + return isInCart + }, + [cart], + ) + + // this method can be used to add new items AND update existing ones + const addItemToCart = useCallback(incomingItem => { + dispatchCart({ + type: 'ADD_ITEM', + payload: incomingItem, + }) + }, []) + + const deleteItemFromCart = useCallback((incomingProduct: Product) => { + dispatchCart({ + type: 'DELETE_ITEM', + payload: incomingProduct, + }) + }, []) + + const clearCart = useCallback(() => { + dispatchCart({ + type: 'CLEAR_CART', + }) + }, []) + + // calculate the new cart total whenever the cart changes + useEffect(() => { + if (!hasInitialized) return + const isEmpty = !arrayHasItems(cart.items) + setCartIsEmpty(isEmpty) + + const newTotal = cart.items.reduce((acc, item) => { + return ( + acc + + (typeof item.product === 'object' + ? JSON.parse(item.product.priceJSON)?.data?.[0]?.unit_amount * item.quantity + : 0) + ) + }, 0) + + setTotal({ + formatted: (newTotal / 100).toLocaleString('en-US', { + style: 'currency', + currency: 'USD', + }), + raw: newTotal, + }) + }, [cart, hasInitialized]) + + return ( + + {children && children} + + ) +} diff --git a/templates/ecommerce/src/providers/Cart/reducer.ts b/templates/ecommerce/src/providers/Cart/reducer.ts new file mode 100644 index 0000000000..1b94f90ea3 --- /dev/null +++ b/templates/ecommerce/src/providers/Cart/reducer.ts @@ -0,0 +1,121 @@ +import type { Product, User } from '../../payload-types' + +type CartType = User['cart'] + +export type CartItem = User['cart']['items'][0] + +type CartAction = + | { + type: 'SET_CART' + payload: CartType + } + | { + type: 'MERGE_CART' + payload: CartType + } + | { + type: 'ADD_ITEM' + payload: CartItem + } + | { + type: 'DELETE_ITEM' + payload: Product + } + | { + type: 'CLEAR_CART' + } + +export const cartReducer = (cart: CartType, action: CartAction): CartType => { + switch (action.type) { + case 'SET_CART': { + return action.payload + } + + case 'MERGE_CART': { + const { payload: incomingCart } = action + + const syncedItems: CartItem[] = [ + ...(cart?.items || []), + ...(incomingCart?.items || []), + ].reduce((acc, item) => { + // remove duplicates + const productId = typeof item.product === 'string' ? item.product : item.product.id + + const indexInAcc = acc.findIndex(({ product }) => + typeof product === 'string' ? product === productId : product.id === productId, + ) // eslint-disable-line function-paren-newline + + if (indexInAcc > -1) { + acc[indexInAcc] = { + ...acc[indexInAcc], + // customize the merge logic here, e.g.: + // quantity: acc[indexInAcc].quantity + item.quantity + } + } else { + acc.push(item) + } + return acc + }, []) + + return { + ...cart, + items: syncedItems, + } + } + + case 'ADD_ITEM': { + // if the item is already in the cart, increase the quantity + const { payload: incomingItem } = action + const productId = + typeof incomingItem.product === 'string' ? incomingItem.product : incomingItem.product.id + + const indexInCart = cart.items.findIndex(({ product }) => + typeof product === 'string' ? product === productId : product.id === productId, + ) // eslint-disable-line function-paren-newline + + let withAddedItem = [...(cart?.items || [])] + + if (indexInCart === -1) { + withAddedItem.push(incomingItem) + } + + if (indexInCart > -1) { + withAddedItem[indexInCart] = { + ...withAddedItem[indexInCart], + quantity: incomingItem.quantity > 0 ? incomingItem.quantity : 1, + } + } + + return { + ...cart, + items: withAddedItem, + } + } + + case 'DELETE_ITEM': { + const { payload: incomingProduct } = action + const withDeletedItem = { ...cart } + + const indexInCart = cart.items.findIndex(({ product }) => + typeof product === 'string' + ? product === incomingProduct.id + : product.id === incomingProduct.id, + ) // eslint-disable-line function-paren-newline + + if (indexInCart > -1) withDeletedItem.items.splice(indexInCart, 1) + + return withDeletedItem + } + + case 'CLEAR_CART': { + return { + ...cart, + items: [], + } + } + + default: { + return cart + } + } +} diff --git a/templates/ecommerce/src/public/favicon.ico b/templates/ecommerce/src/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 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 LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/templates/ecommerce/src/seed/home.ts b/templates/ecommerce/src/seed/home.ts index ebd56ed0c8..dd9f0d73ed 100644 --- a/templates/ecommerce/src/seed/home.ts +++ b/templates/ecommerce/src/seed/home.ts @@ -10,7 +10,7 @@ export const home: Partial = { { children: [ { - text: 'E-Commerce Store with Payload + Next.js', + text: 'Payload E-Commerce Store', }, ], type: 'h1', @@ -18,12 +18,25 @@ export const home: Partial = { { children: [ { - text: 'The code for this website is completely open-source and can be found ', + text: 'Welcome to your store! Visit the ', }, { type: 'link', linkType: 'custom', - url: 'https://github.com/payloadcms/template-ecommerce-nextjs', + url: '/admin', + children: [ + { + text: 'dashboard', + }, + ], + }, + { + text: " to begin managing your site's content. The code for this template is completely open-source and can be found ", + }, + { + type: 'link', + linkType: 'custom', + url: 'https://github.com/payloadcms/payload/tree/master/templates/ecommerce', newTab: true, children: [ { @@ -57,7 +70,7 @@ export const home: Partial = { appearance: 'secondary', reference: null, label: 'View on GitHub', - url: 'https://github.com/payloadcms/template-ecommerce', + url: 'https://github.com/payloadcms/payload/tree/master/templates/ecommerce', newTab: true, }, }, @@ -142,7 +155,7 @@ export const home: Partial = { { children: [ { - text: 'Secure in-app checkout powered by Stripe so your customers never leave your site.', + text: 'Secure in-app checkout powered by Stripe so your customers stay on your site.', }, ], }, @@ -171,7 +184,7 @@ export const home: Partial = { { children: [ { - text: 'Custom page builder allows you to create any page or product layout imaginable.', + text: 'Custom page builder allows you to create unique page or product layouts.', }, ], }, @@ -221,29 +234,40 @@ export const home: Partial = { { children: [ { - text: 'CMS', + text: 'End-to-end', }, ], type: 'h3', }, { children: [ - { - text: 'Instant setup with ', - }, { type: 'link', linkType: 'custom', - url: 'https://github.com/payloadcms/template-ecommerce', + url: 'https://github.com/payloadcms/payload/tree/master/templates/ecommerce', newTab: true, children: [ { - text: 'Payload CMS', + text: 'Payload', }, ], }, { - text: ' tailored specifically for this front-end.', + text: ' and ', + }, + { + type: 'link', + linkType: 'custom', + url: 'https://nextjs.org', + newTab: true, + children: [ + { + text: 'Next.js', + }, + ], + }, + { + text: ' are production-ready out of the box.', }, ], }, diff --git a/templates/ecommerce/src/seed/index.ts b/templates/ecommerce/src/seed/index.ts index 352ec38a51..817a88f9de 100644 --- a/templates/ecommerce/src/seed/index.ts +++ b/templates/ecommerce/src/seed/index.ts @@ -1,3 +1,4 @@ +import fs from 'fs' import path from 'path' import type { Payload } from 'payload' @@ -11,17 +12,31 @@ import { product2 } from './product-2' import { product3 } from './product-3' import { shopPage } from './shop-page' +const collections = ['categories', 'media', 'pages', 'products', 'orders'] +const globals = ['header', 'settings', 'footer'] + export const seed = async (payload: Payload): Promise => { - await payload.create({ - collection: 'users', - data: { - email: 'dev@payloadcms.com', - name: 'Payload Dev', - password: 'test', - roles: ['admin'], - stripeCustomerID: 'cus_NHipnQo3MDPVkq', - }, - }) + // remove the media directory + const mediaDir = path.resolve(__dirname, '../../media') + if (fs.existsSync(mediaDir)) { + fs.rmdirSync(mediaDir, { recursive: true }) + } + + // clear the database + await Promise.all([ + ...collections.map(async collection => + payload.delete({ + collection, + where: {}, + }), + ), // eslint-disable-line function-paren-newline + ...globals.map(async global => + payload.updateGlobal({ + slug: global, + data: {}, + }), + ), // eslint-disable-line function-paren-newline + ]) const [image1Doc, image2Doc, image3Doc] = await Promise.all([ payload.create({ diff --git a/templates/ecommerce/src/seed/static-home.ts b/templates/ecommerce/src/seed/static-home.ts new file mode 100644 index 0000000000..a44fcef822 --- /dev/null +++ b/templates/ecommerce/src/seed/static-home.ts @@ -0,0 +1,70 @@ +import type { Page } from '../payload-types' + +export const staticHome: Partial = { + slug: 'home', + layout: [ + { + blockName: 'Content Block', + blockType: 'content', + backgroundColor: 'white', + columns: [ + { + size: 'full', + richText: [ + { + children: [ + { + text: 'Payload E-commerce Store', + }, + ], + type: 'h1', + }, + { + children: [ + { + text: 'Your database is currently empty. To seed your database with a few products and pages, ', + }, + { + type: 'link', + linkType: 'custom', + url: '/admin', + children: [ + { + text: 'log in', + }, + ], + }, + { + text: ' and click "seed your database". The code for this template is completely open-source and can be found ', + }, + { + type: 'link', + linkType: 'custom', + url: 'https://github.com/payloadcms/payload/tree/master/templates/ecommerce', + newTab: true, + children: [ + { + text: 'here', + }, + ], + }, + { + text: '.', + }, + ], + }, + ], + enableLink: false, + link: { + reference: { + value: '', + relationTo: 'pages', + }, + url: '', + label: '', + }, + }, + ], + }, + ], +} diff --git a/templates/ecommerce/src/server.default.ts b/templates/ecommerce/src/server.default.ts new file mode 100644 index 0000000000..e0e911233a --- /dev/null +++ b/templates/ecommerce/src/server.default.ts @@ -0,0 +1,45 @@ +import dotenv from 'dotenv' +import path from 'path' + +// This file is used to replace `server.ts` when ejecting i.e. `yarn eject` +// See `../eject.ts` for exact details on how this file is used +// See `./README.md#eject` for more information + +dotenv.config({ + path: path.resolve(__dirname, '../.env'), +}) + +import express from 'express' +import payload from 'payload' + +import { seed } from './seed' + +const app = express() +const PORT = process.env.PORT || 3000 + +// Redirect root to the admin panel +app.get('/', (_, res) => { + res.redirect('/admin') +}) + +const start = async (): Promise => { + await payload.init({ + secret: process.env.PAYLOAD_SECRET || '', + mongoURL: process.env.MONGODB_URI || '', + express: app, + onInit: () => { + payload.logger.info(`Payload Admin URL: ${payload.getAdminURL()}`) + }, + }) + + if (process.env.PAYLOAD_SEED === 'true') { + payload.logger.info('---- SEEDING DATABASE ----') + await seed(payload) + } + + app.listen(PORT, async () => { + payload.logger.info(`App URL: ${process.env.PAYLOAD_PUBLIC_SERVER_URL}`) + }) +} + +start() diff --git a/templates/ecommerce/src/server.ts b/templates/ecommerce/src/server.ts index 0afd8b93d1..727ca6e990 100644 --- a/templates/ecommerce/src/server.ts +++ b/templates/ecommerce/src/server.ts @@ -1,22 +1,24 @@ +import dotenv from 'dotenv' +import next from 'next' +import nextBuild from 'next/dist/build' +import path from 'path' + +dotenv.config({ + path: path.resolve(__dirname, '../.env'), +}) + import express from 'express' import payload from 'payload' -// eslint-disable-next-line -require('dotenv').config() - import { seed } from './seed' const app = express() - -// Redirect root to Admin panel -app.get('/', (_, res) => { - res.redirect('/admin') -}) +const PORT = process.env.PORT || 3000 const start = async (): Promise => { await payload.init({ - secret: process.env.PAYLOAD_SECRET, - mongoURL: process.env.MONGODB_URI, + secret: process.env.PAYLOAD_SECRET || '', + mongoURL: process.env.MONGODB_URI || '', express: app, onInit: () => { payload.logger.info(`Payload Admin URL: ${payload.getAdminURL()}`) @@ -24,12 +26,36 @@ const start = async (): Promise => { }) if (process.env.PAYLOAD_SEED === 'true') { - payload.logger.info('Seeding Payload...') + payload.logger.info('---- SEEDING DATABASE ----') await seed(payload) - payload.logger.info('Done.') } - app.listen(process.env.PORT) + if (process.env.NEXT_BUILD) { + app.listen(PORT, async () => { + payload.logger.info(`Next.js is now building...`) + // @ts-expect-error + await nextBuild(path.join(__dirname, '../')) + process.exit() + }) + + return + } + + const nextApp = next({ + dev: process.env.NODE_ENV !== 'production', + }) + + const nextHandler = nextApp.getRequestHandler() + + app.get('*', (req, res) => nextHandler(req, res)) + + nextApp.prepare().then(() => { + payload.logger.info('Next.js started') + + app.listen(PORT, async () => { + payload.logger.info(`Next.js App URL: ${process.env.PAYLOAD_PUBLIC_SERVER_URL}`) + }) + }) } start() diff --git a/templates/ecommerce/src/utilities/canUseDOM.ts b/templates/ecommerce/src/utilities/canUseDOM.ts new file mode 100644 index 0000000000..541b4de394 --- /dev/null +++ b/templates/ecommerce/src/utilities/canUseDOM.ts @@ -0,0 +1 @@ +export default !!(typeof window !== 'undefined' && window.document && window.document.createElement) diff --git a/templates/ecommerce/src/utilities/formatDateTime.ts b/templates/ecommerce/src/utilities/formatDateTime.ts new file mode 100644 index 0000000000..ea684885b9 --- /dev/null +++ b/templates/ecommerce/src/utilities/formatDateTime.ts @@ -0,0 +1,20 @@ +export const formatDateTime = (timestamp: string): string => { + const now = new Date() + let date = now + if (timestamp) date = new Date(timestamp) + const months = date.getMonth() + const days = date.getDate() + // const hours = date.getHours(); + // const minutes = date.getMinutes(); + // const seconds = date.getSeconds(); + + const MM = months + 1 < 10 ? `0${months + 1}` : months + 1 + const DD = days < 10 ? `0${days}` : days + const YYYY = date.getFullYear() + // const AMPM = hours < 12 ? 'AM' : 'PM'; + // const HH = hours > 12 ? hours - 12 : hours; + // const MinMin = (minutes < 10) ? `0${minutes}` : minutes; + // const SS = (seconds < 10) ? `0${seconds}` : seconds; + + return `${MM}/${DD}/${YYYY}` +} diff --git a/templates/ecommerce/src/utilities/toKebabCase.ts b/templates/ecommerce/src/utilities/toKebabCase.ts new file mode 100644 index 0000000000..228865f123 --- /dev/null +++ b/templates/ecommerce/src/utilities/toKebabCase.ts @@ -0,0 +1,5 @@ +export const toKebabCase = (string: string): string => + string + ?.replace(/([a-z])([A-Z])/g, '$1-$2') + .replace(/\s+/g, '-') + .toLowerCase() diff --git a/templates/ecommerce/tsconfig.json b/templates/ecommerce/tsconfig.json index c54632370f..09915cf53e 100644 --- a/templates/ecommerce/tsconfig.json +++ b/templates/ecommerce/tsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { + "esModuleInterop": true, "target": "es5", "lib": [ "dom", @@ -7,27 +8,36 @@ "esnext" ], "allowJs": true, - "strict": false, - "esModuleInterop": true, "skipLibCheck": true, - "outDir": "./dist", - "rootDir": "./src", - "jsx": "react", - "paths": { - "stripe": [ - "./node_modules/stripe" - ] - } + "strict": false, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "incremental": true, + "jsx": "preserve", + "module": "CommonJS", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "plugins": [ + { + "name": "next" + } + ] }, "include": [ - "src" + "next-env.d.ts", + "server.ts", + "payload.config.ts", + "**/*.ts", + "**/*.tsx", + "next.config.js", + ".next/types/**/*.ts" ], "exclude": [ - "node_modules", - "dist", - "build", + "node_modules" ], "ts-node": { - "transpileOnly": true + "transpileOnly": true, + "swc": true } } diff --git a/templates/ecommerce/tsconfig.server.json b/templates/ecommerce/tsconfig.server.json new file mode 100644 index 0000000000..42a7305af3 --- /dev/null +++ b/templates/ecommerce/tsconfig.server.json @@ -0,0 +1,13 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "commonjs", + "outDir": "dist", + "noEmit": false, + "jsx": "react", + }, + "include": [ + "src/server.ts", + "src/payload.config.ts", + ] +} diff --git a/templates/ecommerce/yarn.lock b/templates/ecommerce/yarn.lock index 51b0e98853..55afb39e8e 100644 --- a/templates/ecommerce/yarn.lock +++ b/templates/ecommerce/yarn.lock @@ -2,6 +2,30 @@ # yarn lockfile v1 +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + +"@apollo/client@^3.7.16": + version "3.7.16" + resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.7.16.tgz#418cb23566a6d52e9e22d34484167149269efd40" + integrity sha512-rdhoc7baSD7ZzcjavEpYN8gZJle1KhjEKj4SJeMgBpcnO4as7oXUVU4LtFpotzZdFlo57qaLrNzfvppSTsKvZQ== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + "@wry/context" "^0.7.0" + "@wry/equality" "^0.5.0" + "@wry/trie" "^0.4.0" + graphql-tag "^2.12.6" + hoist-non-react-statics "^3.3.2" + optimism "^0.16.2" + 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" + "@aws-crypto/crc32@3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-3.0.0.tgz#07300eca214409c33e3ff769cd5697b57fdd38fa" @@ -97,12 +121,12 @@ "@aws-sdk/util-utf8-browser" "^3.0.0" tslib "^1.11.1" -"@aws-sdk/abort-controller@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.347.0.tgz#8f1dc9f7e2030b3eabe2f05722d3d99e783e295f" - integrity sha512-P/2qE6ntYEmYG4Ez535nJWZbXqgbkJx8CMz7ChEuEg3Gp3dvVYEKg+iEUEvlqQ2U5dWP5J3ehw5po9t86IsVPQ== +"@aws-sdk/abort-controller@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.357.0.tgz#5c5336d18b97781d0b940700375d825f9e20d9be" + integrity sha512-nQYDJon87quPwt2JZJwUN2GFKJnvE5kWb6tZP4xb5biSGUKBqDQo06oYed7yokatCuCMouIXV462aN0fWODtOw== dependencies: - "@aws-sdk/types" "3.347.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" "@aws-sdk/chunked-blob-reader@3.310.0": @@ -112,442 +136,441 @@ dependencies: tslib "^2.5.0" -"@aws-sdk/client-cognito-identity@3.348.0", "@aws-sdk/client-cognito-identity@^3.289.0": - version "3.348.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.348.0.tgz#649b4668ea34b2cdf0d1ac101e01021556683ac4" - integrity sha512-1fcJFUQTsAXjkaAn/kn9ty790uHbCpukkuqJ/0QNPFYaa6vu93xx7FnzOvRK4XvaojwZ/C+yxp0fNQ+GjXG0vg== +"@aws-sdk/client-cognito-identity@3.362.0", "@aws-sdk/client-cognito-identity@^3.289.0": + version "3.362.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.362.0.tgz#eefa7b7a0686b2aed7292fbce787d5230b72dd2b" + integrity sha512-Rgl5yZOa1B5/UB8+Brlwixv8vzn+4GxoA0jLo8iG5I7k6KgzwZix/EgllKLdS5MLht6JFHDxFIhaI/6KkTD/5A== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.348.0" - "@aws-sdk/config-resolver" "3.347.0" - "@aws-sdk/credential-provider-node" "3.348.0" - "@aws-sdk/fetch-http-handler" "3.347.0" - "@aws-sdk/hash-node" "3.347.0" - "@aws-sdk/invalid-dependency" "3.347.0" - "@aws-sdk/middleware-content-length" "3.347.0" - "@aws-sdk/middleware-endpoint" "3.347.0" - "@aws-sdk/middleware-host-header" "3.347.0" - "@aws-sdk/middleware-logger" "3.347.0" - "@aws-sdk/middleware-recursion-detection" "3.347.0" - "@aws-sdk/middleware-retry" "3.347.0" - "@aws-sdk/middleware-serde" "3.347.0" - "@aws-sdk/middleware-signing" "3.347.0" - "@aws-sdk/middleware-stack" "3.347.0" - "@aws-sdk/middleware-user-agent" "3.347.0" - "@aws-sdk/node-config-provider" "3.347.0" - "@aws-sdk/node-http-handler" "3.348.0" - "@aws-sdk/smithy-client" "3.347.0" - "@aws-sdk/types" "3.347.0" - "@aws-sdk/url-parser" "3.347.0" + "@aws-sdk/client-sts" "3.362.0" + "@aws-sdk/config-resolver" "3.357.0" + "@aws-sdk/credential-provider-node" "3.362.0" + "@aws-sdk/fetch-http-handler" "3.357.0" + "@aws-sdk/hash-node" "3.357.0" + "@aws-sdk/invalid-dependency" "3.357.0" + "@aws-sdk/middleware-content-length" "3.357.0" + "@aws-sdk/middleware-endpoint" "3.357.0" + "@aws-sdk/middleware-host-header" "3.357.0" + "@aws-sdk/middleware-logger" "3.357.0" + "@aws-sdk/middleware-recursion-detection" "3.357.0" + "@aws-sdk/middleware-retry" "3.362.0" + "@aws-sdk/middleware-serde" "3.357.0" + "@aws-sdk/middleware-signing" "3.357.0" + "@aws-sdk/middleware-stack" "3.357.0" + "@aws-sdk/middleware-user-agent" "3.357.0" + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/node-http-handler" "3.360.0" + "@aws-sdk/smithy-client" "3.360.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/url-parser" "3.357.0" "@aws-sdk/util-base64" "3.310.0" "@aws-sdk/util-body-length-browser" "3.310.0" "@aws-sdk/util-body-length-node" "3.310.0" - "@aws-sdk/util-defaults-mode-browser" "3.347.0" - "@aws-sdk/util-defaults-mode-node" "3.347.0" - "@aws-sdk/util-endpoints" "3.347.0" - "@aws-sdk/util-retry" "3.347.0" - "@aws-sdk/util-user-agent-browser" "3.347.0" - "@aws-sdk/util-user-agent-node" "3.347.0" + "@aws-sdk/util-defaults-mode-browser" "3.360.0" + "@aws-sdk/util-defaults-mode-node" "3.360.0" + "@aws-sdk/util-endpoints" "3.357.0" + "@aws-sdk/util-retry" "3.362.0" + "@aws-sdk/util-user-agent-browser" "3.357.0" + "@aws-sdk/util-user-agent-node" "3.357.0" "@aws-sdk/util-utf8" "3.310.0" "@smithy/protocol-http" "^1.0.1" "@smithy/types" "^1.0.0" tslib "^2.5.0" "@aws-sdk/client-s3@^3.142.0": - version "3.348.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.348.0.tgz#0a9bc3a2f2ff20371559856dea74e98cfec61c85" - integrity sha512-19ShUJL/Kqol4pW2S6axD85oL2JIh91ctUgqPEuu5BzGyEgq5s+HP/DDNzcdsTKl7gfCfaIULf01yWU6RwY1EA== + version "3.362.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.362.0.tgz#3cee09ac6ed6d11e39bf9ef3b0ce327d21337f54" + integrity sha512-ZDQqfZ67ni/FVTGsGLELq2Y7Hq3lMUHf9SxVQn0v6Q8IIJwtmstUFxYPkiJMNAO1Lv93GdPkef1guoECRze70A== dependencies: "@aws-crypto/sha1-browser" "3.0.0" "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.348.0" - "@aws-sdk/config-resolver" "3.347.0" - "@aws-sdk/credential-provider-node" "3.348.0" - "@aws-sdk/eventstream-serde-browser" "3.347.0" - "@aws-sdk/eventstream-serde-config-resolver" "3.347.0" - "@aws-sdk/eventstream-serde-node" "3.347.0" - "@aws-sdk/fetch-http-handler" "3.347.0" - "@aws-sdk/hash-blob-browser" "3.347.0" - "@aws-sdk/hash-node" "3.347.0" - "@aws-sdk/hash-stream-node" "3.347.0" - "@aws-sdk/invalid-dependency" "3.347.0" - "@aws-sdk/md5-js" "3.347.0" - "@aws-sdk/middleware-bucket-endpoint" "3.347.0" - "@aws-sdk/middleware-content-length" "3.347.0" - "@aws-sdk/middleware-endpoint" "3.347.0" - "@aws-sdk/middleware-expect-continue" "3.347.0" - "@aws-sdk/middleware-flexible-checksums" "3.347.0" - "@aws-sdk/middleware-host-header" "3.347.0" - "@aws-sdk/middleware-location-constraint" "3.347.0" - "@aws-sdk/middleware-logger" "3.347.0" - "@aws-sdk/middleware-recursion-detection" "3.347.0" - "@aws-sdk/middleware-retry" "3.347.0" - "@aws-sdk/middleware-sdk-s3" "3.347.0" - "@aws-sdk/middleware-serde" "3.347.0" - "@aws-sdk/middleware-signing" "3.347.0" - "@aws-sdk/middleware-ssec" "3.347.0" - "@aws-sdk/middleware-stack" "3.347.0" - "@aws-sdk/middleware-user-agent" "3.347.0" - "@aws-sdk/node-config-provider" "3.347.0" - "@aws-sdk/node-http-handler" "3.348.0" - "@aws-sdk/signature-v4-multi-region" "3.347.0" - "@aws-sdk/smithy-client" "3.347.0" - "@aws-sdk/types" "3.347.0" - "@aws-sdk/url-parser" "3.347.0" + "@aws-sdk/client-sts" "3.362.0" + "@aws-sdk/config-resolver" "3.357.0" + "@aws-sdk/credential-provider-node" "3.362.0" + "@aws-sdk/eventstream-serde-browser" "3.357.0" + "@aws-sdk/eventstream-serde-config-resolver" "3.357.0" + "@aws-sdk/eventstream-serde-node" "3.357.0" + "@aws-sdk/fetch-http-handler" "3.357.0" + "@aws-sdk/hash-blob-browser" "3.357.0" + "@aws-sdk/hash-node" "3.357.0" + "@aws-sdk/hash-stream-node" "3.357.0" + "@aws-sdk/invalid-dependency" "3.357.0" + "@aws-sdk/md5-js" "3.357.0" + "@aws-sdk/middleware-bucket-endpoint" "3.357.0" + "@aws-sdk/middleware-content-length" "3.357.0" + "@aws-sdk/middleware-endpoint" "3.357.0" + "@aws-sdk/middleware-expect-continue" "3.357.0" + "@aws-sdk/middleware-flexible-checksums" "3.357.0" + "@aws-sdk/middleware-host-header" "3.357.0" + "@aws-sdk/middleware-location-constraint" "3.357.0" + "@aws-sdk/middleware-logger" "3.357.0" + "@aws-sdk/middleware-recursion-detection" "3.357.0" + "@aws-sdk/middleware-retry" "3.362.0" + "@aws-sdk/middleware-sdk-s3" "3.357.0" + "@aws-sdk/middleware-serde" "3.357.0" + "@aws-sdk/middleware-signing" "3.357.0" + "@aws-sdk/middleware-ssec" "3.357.0" + "@aws-sdk/middleware-stack" "3.357.0" + "@aws-sdk/middleware-user-agent" "3.357.0" + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/node-http-handler" "3.360.0" + "@aws-sdk/signature-v4-multi-region" "3.357.0" + "@aws-sdk/smithy-client" "3.360.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/url-parser" "3.357.0" "@aws-sdk/util-base64" "3.310.0" "@aws-sdk/util-body-length-browser" "3.310.0" "@aws-sdk/util-body-length-node" "3.310.0" - "@aws-sdk/util-defaults-mode-browser" "3.347.0" - "@aws-sdk/util-defaults-mode-node" "3.347.0" - "@aws-sdk/util-endpoints" "3.347.0" - "@aws-sdk/util-retry" "3.347.0" - "@aws-sdk/util-stream-browser" "3.347.0" - "@aws-sdk/util-stream-node" "3.348.0" - "@aws-sdk/util-user-agent-browser" "3.347.0" - "@aws-sdk/util-user-agent-node" "3.347.0" + "@aws-sdk/util-defaults-mode-browser" "3.360.0" + "@aws-sdk/util-defaults-mode-node" "3.360.0" + "@aws-sdk/util-endpoints" "3.357.0" + "@aws-sdk/util-retry" "3.362.0" + "@aws-sdk/util-stream" "3.360.0" + "@aws-sdk/util-user-agent-browser" "3.357.0" + "@aws-sdk/util-user-agent-node" "3.357.0" "@aws-sdk/util-utf8" "3.310.0" - "@aws-sdk/util-waiter" "3.347.0" + "@aws-sdk/util-waiter" "3.357.0" "@aws-sdk/xml-builder" "3.310.0" "@smithy/protocol-http" "^1.0.1" "@smithy/types" "^1.0.0" - fast-xml-parser "4.2.4" + fast-xml-parser "4.2.5" tslib "^2.5.0" -"@aws-sdk/client-sso-oidc@3.348.0": - version "3.348.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.348.0.tgz#4a9ab336f8ab7727da70550d460a65c4be8a4f89" - integrity sha512-tvHpcycx4EALvk38I9rAOdPeHvBDezqIB4lrE7AvnOJljlvCcdQ2gXa9GDrwrM7zuYBIZMBRE/njTMrCwoOdAA== +"@aws-sdk/client-sso-oidc@3.362.0": + version "3.362.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.362.0.tgz#a2daad47e44c5cd902079467e9e0ac20bd8d90af" + integrity sha512-/urfavz0BjyeWSahp6oh9DjzV8oM5EPmza7iIZXJaPyK03enjse9A52vse4/EfKWaSHtapIgV3ZUKvYDk8AcKA== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/config-resolver" "3.347.0" - "@aws-sdk/fetch-http-handler" "3.347.0" - "@aws-sdk/hash-node" "3.347.0" - "@aws-sdk/invalid-dependency" "3.347.0" - "@aws-sdk/middleware-content-length" "3.347.0" - "@aws-sdk/middleware-endpoint" "3.347.0" - "@aws-sdk/middleware-host-header" "3.347.0" - "@aws-sdk/middleware-logger" "3.347.0" - "@aws-sdk/middleware-recursion-detection" "3.347.0" - "@aws-sdk/middleware-retry" "3.347.0" - "@aws-sdk/middleware-serde" "3.347.0" - "@aws-sdk/middleware-stack" "3.347.0" - "@aws-sdk/middleware-user-agent" "3.347.0" - "@aws-sdk/node-config-provider" "3.347.0" - "@aws-sdk/node-http-handler" "3.348.0" - "@aws-sdk/smithy-client" "3.347.0" - "@aws-sdk/types" "3.347.0" - "@aws-sdk/url-parser" "3.347.0" + "@aws-sdk/config-resolver" "3.357.0" + "@aws-sdk/fetch-http-handler" "3.357.0" + "@aws-sdk/hash-node" "3.357.0" + "@aws-sdk/invalid-dependency" "3.357.0" + "@aws-sdk/middleware-content-length" "3.357.0" + "@aws-sdk/middleware-endpoint" "3.357.0" + "@aws-sdk/middleware-host-header" "3.357.0" + "@aws-sdk/middleware-logger" "3.357.0" + "@aws-sdk/middleware-recursion-detection" "3.357.0" + "@aws-sdk/middleware-retry" "3.362.0" + "@aws-sdk/middleware-serde" "3.357.0" + "@aws-sdk/middleware-stack" "3.357.0" + "@aws-sdk/middleware-user-agent" "3.357.0" + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/node-http-handler" "3.360.0" + "@aws-sdk/smithy-client" "3.360.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/url-parser" "3.357.0" "@aws-sdk/util-base64" "3.310.0" "@aws-sdk/util-body-length-browser" "3.310.0" "@aws-sdk/util-body-length-node" "3.310.0" - "@aws-sdk/util-defaults-mode-browser" "3.347.0" - "@aws-sdk/util-defaults-mode-node" "3.347.0" - "@aws-sdk/util-endpoints" "3.347.0" - "@aws-sdk/util-retry" "3.347.0" - "@aws-sdk/util-user-agent-browser" "3.347.0" - "@aws-sdk/util-user-agent-node" "3.347.0" + "@aws-sdk/util-defaults-mode-browser" "3.360.0" + "@aws-sdk/util-defaults-mode-node" "3.360.0" + "@aws-sdk/util-endpoints" "3.357.0" + "@aws-sdk/util-retry" "3.362.0" + "@aws-sdk/util-user-agent-browser" "3.357.0" + "@aws-sdk/util-user-agent-node" "3.357.0" "@aws-sdk/util-utf8" "3.310.0" "@smithy/protocol-http" "^1.0.1" "@smithy/types" "^1.0.0" tslib "^2.5.0" -"@aws-sdk/client-sso@3.348.0": - version "3.348.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.348.0.tgz#fb16fcfc3b921c43a1c7992d7610fc1aa64c46ed" - integrity sha512-5S23gVKBl0fhZ96RD8LdPhMKeh8E5fmebyZxMNZuWliSXz++Q9ZCrwPwQbkks3duPOTcKKobs3IoqP82HoXMvQ== +"@aws-sdk/client-sso@3.362.0": + version "3.362.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.362.0.tgz#5635380fa552d76cf039076e41611d01e00c31ab" + integrity sha512-11M+S7mlr8MBE8NB2yPZWOeb7BV4pcfQ+2p9EE9jVDbcq7VW21chvnf4F+L11aNV1yNtswsnHOSHLKM6YBMM7w== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/config-resolver" "3.347.0" - "@aws-sdk/fetch-http-handler" "3.347.0" - "@aws-sdk/hash-node" "3.347.0" - "@aws-sdk/invalid-dependency" "3.347.0" - "@aws-sdk/middleware-content-length" "3.347.0" - "@aws-sdk/middleware-endpoint" "3.347.0" - "@aws-sdk/middleware-host-header" "3.347.0" - "@aws-sdk/middleware-logger" "3.347.0" - "@aws-sdk/middleware-recursion-detection" "3.347.0" - "@aws-sdk/middleware-retry" "3.347.0" - "@aws-sdk/middleware-serde" "3.347.0" - "@aws-sdk/middleware-stack" "3.347.0" - "@aws-sdk/middleware-user-agent" "3.347.0" - "@aws-sdk/node-config-provider" "3.347.0" - "@aws-sdk/node-http-handler" "3.348.0" - "@aws-sdk/smithy-client" "3.347.0" - "@aws-sdk/types" "3.347.0" - "@aws-sdk/url-parser" "3.347.0" + "@aws-sdk/config-resolver" "3.357.0" + "@aws-sdk/fetch-http-handler" "3.357.0" + "@aws-sdk/hash-node" "3.357.0" + "@aws-sdk/invalid-dependency" "3.357.0" + "@aws-sdk/middleware-content-length" "3.357.0" + "@aws-sdk/middleware-endpoint" "3.357.0" + "@aws-sdk/middleware-host-header" "3.357.0" + "@aws-sdk/middleware-logger" "3.357.0" + "@aws-sdk/middleware-recursion-detection" "3.357.0" + "@aws-sdk/middleware-retry" "3.362.0" + "@aws-sdk/middleware-serde" "3.357.0" + "@aws-sdk/middleware-stack" "3.357.0" + "@aws-sdk/middleware-user-agent" "3.357.0" + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/node-http-handler" "3.360.0" + "@aws-sdk/smithy-client" "3.360.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/url-parser" "3.357.0" "@aws-sdk/util-base64" "3.310.0" "@aws-sdk/util-body-length-browser" "3.310.0" "@aws-sdk/util-body-length-node" "3.310.0" - "@aws-sdk/util-defaults-mode-browser" "3.347.0" - "@aws-sdk/util-defaults-mode-node" "3.347.0" - "@aws-sdk/util-endpoints" "3.347.0" - "@aws-sdk/util-retry" "3.347.0" - "@aws-sdk/util-user-agent-browser" "3.347.0" - "@aws-sdk/util-user-agent-node" "3.347.0" + "@aws-sdk/util-defaults-mode-browser" "3.360.0" + "@aws-sdk/util-defaults-mode-node" "3.360.0" + "@aws-sdk/util-endpoints" "3.357.0" + "@aws-sdk/util-retry" "3.362.0" + "@aws-sdk/util-user-agent-browser" "3.357.0" + "@aws-sdk/util-user-agent-node" "3.357.0" "@aws-sdk/util-utf8" "3.310.0" "@smithy/protocol-http" "^1.0.1" "@smithy/types" "^1.0.0" tslib "^2.5.0" -"@aws-sdk/client-sts@3.348.0": - version "3.348.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.348.0.tgz#a7a03add7a287496bccdd9427dbd5b36530fea08" - integrity sha512-4iaQlWAOHMEF4xjR/FB/ws3aUjXjJHwbsIcqbdYAxsKijDYYTZYCPc/gM0NE1yi28qlNYNhMzHipe5xTYbU2Eg== +"@aws-sdk/client-sts@3.362.0": + version "3.362.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.362.0.tgz#f04ad1b9f0060d9b87aca74cc7199393f9d4064b" + integrity sha512-4Kh6oM2hfJbckuMb9O5eRIG66s/eA0wazXYvCbxSiSi3XgkX9L4m5OSNxlzLPe7uVgkEx8ykuk8Xz6qZrZWJcQ== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/config-resolver" "3.347.0" - "@aws-sdk/credential-provider-node" "3.348.0" - "@aws-sdk/fetch-http-handler" "3.347.0" - "@aws-sdk/hash-node" "3.347.0" - "@aws-sdk/invalid-dependency" "3.347.0" - "@aws-sdk/middleware-content-length" "3.347.0" - "@aws-sdk/middleware-endpoint" "3.347.0" - "@aws-sdk/middleware-host-header" "3.347.0" - "@aws-sdk/middleware-logger" "3.347.0" - "@aws-sdk/middleware-recursion-detection" "3.347.0" - "@aws-sdk/middleware-retry" "3.347.0" - "@aws-sdk/middleware-sdk-sts" "3.347.0" - "@aws-sdk/middleware-serde" "3.347.0" - "@aws-sdk/middleware-signing" "3.347.0" - "@aws-sdk/middleware-stack" "3.347.0" - "@aws-sdk/middleware-user-agent" "3.347.0" - "@aws-sdk/node-config-provider" "3.347.0" - "@aws-sdk/node-http-handler" "3.348.0" - "@aws-sdk/smithy-client" "3.347.0" - "@aws-sdk/types" "3.347.0" - "@aws-sdk/url-parser" "3.347.0" + "@aws-sdk/config-resolver" "3.357.0" + "@aws-sdk/credential-provider-node" "3.362.0" + "@aws-sdk/fetch-http-handler" "3.357.0" + "@aws-sdk/hash-node" "3.357.0" + "@aws-sdk/invalid-dependency" "3.357.0" + "@aws-sdk/middleware-content-length" "3.357.0" + "@aws-sdk/middleware-endpoint" "3.357.0" + "@aws-sdk/middleware-host-header" "3.357.0" + "@aws-sdk/middleware-logger" "3.357.0" + "@aws-sdk/middleware-recursion-detection" "3.357.0" + "@aws-sdk/middleware-retry" "3.362.0" + "@aws-sdk/middleware-sdk-sts" "3.357.0" + "@aws-sdk/middleware-serde" "3.357.0" + "@aws-sdk/middleware-signing" "3.357.0" + "@aws-sdk/middleware-stack" "3.357.0" + "@aws-sdk/middleware-user-agent" "3.357.0" + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/node-http-handler" "3.360.0" + "@aws-sdk/smithy-client" "3.360.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/url-parser" "3.357.0" "@aws-sdk/util-base64" "3.310.0" "@aws-sdk/util-body-length-browser" "3.310.0" "@aws-sdk/util-body-length-node" "3.310.0" - "@aws-sdk/util-defaults-mode-browser" "3.347.0" - "@aws-sdk/util-defaults-mode-node" "3.347.0" - "@aws-sdk/util-endpoints" "3.347.0" - "@aws-sdk/util-retry" "3.347.0" - "@aws-sdk/util-user-agent-browser" "3.347.0" - "@aws-sdk/util-user-agent-node" "3.347.0" + "@aws-sdk/util-defaults-mode-browser" "3.360.0" + "@aws-sdk/util-defaults-mode-node" "3.360.0" + "@aws-sdk/util-endpoints" "3.357.0" + "@aws-sdk/util-retry" "3.362.0" + "@aws-sdk/util-user-agent-browser" "3.357.0" + "@aws-sdk/util-user-agent-node" "3.357.0" "@aws-sdk/util-utf8" "3.310.0" "@smithy/protocol-http" "^1.0.1" "@smithy/types" "^1.0.0" - fast-xml-parser "4.2.4" + fast-xml-parser "4.2.5" tslib "^2.5.0" -"@aws-sdk/config-resolver@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.347.0.tgz#84bb2cbbe310e7de1168ba3233369204f31d395a" - integrity sha512-2ja+Sf/VnUO7IQ3nKbDQ5aumYKKJUaTm/BuVJ29wNho8wYHfuf7wHZV0pDTkB8RF5SH7IpHap7zpZAj39Iq+EA== +"@aws-sdk/config-resolver@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.357.0.tgz#7672b3f446ed64025d1763efea0289f7f49833a1" + integrity sha512-cukfg0nX7Tzx/xFyH5F4Eyb8DA1ITCGtSQv4vnEjgUop+bkzckuGLKEeBcBhyZY+aw+2C9CVwIHwIMhRm0ul5w== dependencies: - "@aws-sdk/types" "3.347.0" + "@aws-sdk/types" "3.357.0" "@aws-sdk/util-config-provider" "3.310.0" - "@aws-sdk/util-middleware" "3.347.0" + "@aws-sdk/util-middleware" "3.357.0" tslib "^2.5.0" -"@aws-sdk/credential-provider-cognito-identity@3.348.0": - version "3.348.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.348.0.tgz#ac3113b56ceaeceec8aa255b7c8f158b3b040adc" - integrity sha512-VQQVEP844mAwn5iEIzc/hBOuSzMGBL61sqEGqqgxhe6Sjnd8NfGNlOjV6fOxlUHhOelumqBMXgn6liIZbfcqFQ== +"@aws-sdk/credential-provider-cognito-identity@3.362.0": + version "3.362.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.362.0.tgz#e02cc32b809ff9ae5c88da73d55f3cc64b27542a" + integrity sha512-VkNlk0EGWsy9RhYeK9EqC6jcLplSyoKR5faWtDoxA1P9+ESWClrxkFpsxDZEGLPR0C7MVb2cO5qn/uvceb17Vw== dependencies: - "@aws-sdk/client-cognito-identity" "3.348.0" - "@aws-sdk/property-provider" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/client-cognito-identity" "3.362.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/credential-provider-env@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.347.0.tgz#fb2013a1f799cca874674cb15680680bb33c088b" - integrity sha512-UnEM+LKGpXKzw/1WvYEQsC6Wj9PupYZdQOE+e2Dgy2dqk/pVFy4WueRtFXYDT2B41ppv3drdXUuKZRIDVqIgNQ== +"@aws-sdk/credential-provider-env@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.357.0.tgz#9746b9f958f490db5b1502d36cba7da43da460cb" + integrity sha512-UOecwfqvXgJVqhfWSZ2S44v2Nq2oceW0PQVQp0JAa9opc2rxSVIfyOhPr0yMoPmpyNcP22rgeg6ce70KULYwiA== dependencies: - "@aws-sdk/property-provider" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/credential-provider-imds@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.347.0.tgz#7b42e2c1143fbec309e9a65c4e8200b056ce028d" - integrity sha512-7scCy/DCDRLIhlqTxff97LQWDnRwRXji3bxxMg+xWOTTaJe7PWx+etGSbBWaL42vsBHFShQjSLvJryEgoBktpw== +"@aws-sdk/credential-provider-imds@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.357.0.tgz#6b5317c79e15a059a2f71623ec673bea03af04f6" + integrity sha512-upw/bfsl7/WydT6gM0lBuR4Ipp4fzYm/E3ObFr0Mg5OkgVPt5ZJE+eeFTvwCpDdBSTKs4JfrK6/iEK8A23Q1jQ== dependencies: - "@aws-sdk/node-config-provider" "3.347.0" - "@aws-sdk/property-provider" "3.347.0" - "@aws-sdk/types" "3.347.0" - "@aws-sdk/url-parser" "3.347.0" + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/url-parser" "3.357.0" tslib "^2.5.0" -"@aws-sdk/credential-provider-ini@3.348.0": - version "3.348.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.348.0.tgz#1f1069237d09171aefc22b81fff76e5783b8807f" - integrity sha512-0IEH5mH/cz2iLyr/+pSa3sCsQcGADiLSEn6yivsXdfz1zDqBiv+ffDoL0+Pvnp+TKf8sA6OlX8PgoMoEBvBdKw== +"@aws-sdk/credential-provider-ini@3.362.0": + version "3.362.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.362.0.tgz#e1f328616d0e4d3e32b109e81969058b3e95c47d" + integrity sha512-56gOo0XrqfEXTYrpWwZEYqrKEyNNpyNNvagfuP29d4aqok7ON5CkL1ymmKhNuDGHbbHXVGOIGdLNJBkGBgwE1g== dependencies: - "@aws-sdk/credential-provider-env" "3.347.0" - "@aws-sdk/credential-provider-imds" "3.347.0" - "@aws-sdk/credential-provider-process" "3.347.0" - "@aws-sdk/credential-provider-sso" "3.348.0" - "@aws-sdk/credential-provider-web-identity" "3.347.0" - "@aws-sdk/property-provider" "3.347.0" - "@aws-sdk/shared-ini-file-loader" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/credential-provider-env" "3.357.0" + "@aws-sdk/credential-provider-imds" "3.357.0" + "@aws-sdk/credential-provider-process" "3.357.0" + "@aws-sdk/credential-provider-sso" "3.362.0" + "@aws-sdk/credential-provider-web-identity" "3.357.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/shared-ini-file-loader" "3.357.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/credential-provider-node@3.348.0": - version "3.348.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.348.0.tgz#57516d394ad2cb7df832925adf3192d7d1ace72a" - integrity sha512-ngRWphm9e36i58KqVi7Z8WOub+k0cSl+JZaAmgfFm0+dsfBG5uheo598OeiwWV0DqlilvaQZFaMVQgG2SX/tHg== +"@aws-sdk/credential-provider-node@3.362.0": + version "3.362.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.362.0.tgz#0b5b6b4ed520a519bc5660a2f687ebf697a5db06" + integrity sha512-G/oCGTdN3Gx1HgSX6KlGC71q9EQw9luSgGGIgZHAw9u3IllLEARqxVQ5PUPlhEM4FkNNMpzicUbWeI5NeMRuyA== dependencies: - "@aws-sdk/credential-provider-env" "3.347.0" - "@aws-sdk/credential-provider-imds" "3.347.0" - "@aws-sdk/credential-provider-ini" "3.348.0" - "@aws-sdk/credential-provider-process" "3.347.0" - "@aws-sdk/credential-provider-sso" "3.348.0" - "@aws-sdk/credential-provider-web-identity" "3.347.0" - "@aws-sdk/property-provider" "3.347.0" - "@aws-sdk/shared-ini-file-loader" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/credential-provider-env" "3.357.0" + "@aws-sdk/credential-provider-imds" "3.357.0" + "@aws-sdk/credential-provider-ini" "3.362.0" + "@aws-sdk/credential-provider-process" "3.357.0" + "@aws-sdk/credential-provider-sso" "3.362.0" + "@aws-sdk/credential-provider-web-identity" "3.357.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/shared-ini-file-loader" "3.357.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/credential-provider-process@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.347.0.tgz#066e82fee54c9fac67c4dc911873e20facdb3471" - integrity sha512-yl1z4MsaBdXd4GQ2halIvYds23S67kElyOwz7g8kaQ4kHj+UoYWxz3JVW/DGusM6XmQ9/F67utBrUVA0uhQYyw== +"@aws-sdk/credential-provider-process@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.357.0.tgz#5e661bd4431a171ee862bb60ff0054d11dea150a" + integrity sha512-qFWWilFPsc2hR7O0KIhwcE78w+pVIK+uQR6MQMfdRyxUndgiuCorJwVjedc3yZtmnoELHF34j+m8whTBXv9E7Q== dependencies: - "@aws-sdk/property-provider" "3.347.0" - "@aws-sdk/shared-ini-file-loader" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/shared-ini-file-loader" "3.357.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/credential-provider-sso@3.348.0": - version "3.348.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.348.0.tgz#4578f30ef6d119823707d52ff7f53b3e5b9d9ae7" - integrity sha512-5cQao705376KgGkLv9xgkQ3T5H7KdNddWuyoH2wDcrHd1BA2Lnrell3Yyh7R6jQeV7uCQE/z0ugUOKhDqNKIqQ== +"@aws-sdk/credential-provider-sso@3.362.0": + version "3.362.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.362.0.tgz#655ebe1a7f7f6a6ffc76698c4b7172b78cf8aa25" + integrity sha512-jf5jG8IQXNSTuOPMT0SMOpBi+Tlct+3Ik5njpEECFzo5POzU8DgJkc2ALMNW5j+XojuchwgeqWZclPRoacKjVw== dependencies: - "@aws-sdk/client-sso" "3.348.0" - "@aws-sdk/property-provider" "3.347.0" - "@aws-sdk/shared-ini-file-loader" "3.347.0" - "@aws-sdk/token-providers" "3.348.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/client-sso" "3.362.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/shared-ini-file-loader" "3.357.0" + "@aws-sdk/token-providers" "3.362.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/credential-provider-web-identity@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.347.0.tgz#bb035fc16059ab43386facf8b4d1e8c094450a6d" - integrity sha512-DxoTlVK8lXjS1zVphtz/Ab+jkN/IZor9d6pP2GjJHNoAIIzXfRwwj5C8vr4eTayx/5VJ7GRP91J8GJ2cKly8Qw== +"@aws-sdk/credential-provider-web-identity@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.357.0.tgz#32765fc53779d84c078d20e4e1585b8fedfcf61f" + integrity sha512-0KRRAFrXy5HJe2vqnCWCoCS+fQw7IoIj3KQsuURJMW4F+ifisxCgEsh3brJ2LQlN4ElWTRJhlrDHNZ/pd61D4w== dependencies: - "@aws-sdk/property-provider" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" "@aws-sdk/credential-providers@^3.289.0": - version "3.348.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.348.0.tgz#13dfc7ce0a58fa8bcd623711add0388ccd11b036" - integrity sha512-lpq1aHjFyExqD/6L8BK0OaROpCJuhnexGrABYljGI6yaLsyHbQpdE2+Y/WaxuRAK9wyP5s+7KNJ1ZK1ktrk5uQ== + version "3.362.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.362.0.tgz#a0e7cf7ceed258541967cb175f4fcbe68dd3f4a4" + integrity sha512-1phrbs74ktU5P4hwByemSPDwv9aM8m1MLOgXFBdQ1DgFTE/Y/50nqsUQMP45idk+/E/rRgUR6PGwZDb+8tWQpw== dependencies: - "@aws-sdk/client-cognito-identity" "3.348.0" - "@aws-sdk/client-sso" "3.348.0" - "@aws-sdk/client-sts" "3.348.0" - "@aws-sdk/credential-provider-cognito-identity" "3.348.0" - "@aws-sdk/credential-provider-env" "3.347.0" - "@aws-sdk/credential-provider-imds" "3.347.0" - "@aws-sdk/credential-provider-ini" "3.348.0" - "@aws-sdk/credential-provider-node" "3.348.0" - "@aws-sdk/credential-provider-process" "3.347.0" - "@aws-sdk/credential-provider-sso" "3.348.0" - "@aws-sdk/credential-provider-web-identity" "3.347.0" - "@aws-sdk/property-provider" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/client-cognito-identity" "3.362.0" + "@aws-sdk/client-sso" "3.362.0" + "@aws-sdk/client-sts" "3.362.0" + "@aws-sdk/credential-provider-cognito-identity" "3.362.0" + "@aws-sdk/credential-provider-env" "3.357.0" + "@aws-sdk/credential-provider-imds" "3.357.0" + "@aws-sdk/credential-provider-ini" "3.362.0" + "@aws-sdk/credential-provider-node" "3.362.0" + "@aws-sdk/credential-provider-process" "3.357.0" + "@aws-sdk/credential-provider-sso" "3.362.0" + "@aws-sdk/credential-provider-web-identity" "3.357.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/eventstream-codec@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-codec/-/eventstream-codec-3.347.0.tgz#4ba2c87a2f6e4bb10a833910a4427d16ceec09f0" - integrity sha512-61q+SyspjsaQ4sdgjizMyRgVph2CiW4aAtfpoH69EJFJfTxTR/OqnZ9Jx/3YiYi0ksrvDenJddYodfWWJqD8/w== +"@aws-sdk/eventstream-codec@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-codec/-/eventstream-codec-3.357.0.tgz#32b6f0d97f3ea6e479e0d59c0a9b625faf3f887b" + integrity sha512-bqenTHG6GH6aCk/Il+ooWXVVAZuc8lOgVEy9bE2hI49oVqT8zSuXxQB+w1WWyZoAOPcelsjayB1wfPub8VDBxQ== dependencies: "@aws-crypto/crc32" "3.0.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/types" "3.357.0" "@aws-sdk/util-hex-encoding" "3.310.0" tslib "^2.5.0" -"@aws-sdk/eventstream-serde-browser@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.347.0.tgz#77cb6d423d5566c09a5bd589b8f70492fbf4f020" - integrity sha512-9BLVTHWgpiTo/hl+k7qt7E9iYu43zVwJN+4TEwA9ZZB3p12068t1Hay6HgCcgJC3+LWMtw/OhvypV6vQAG4UBg== +"@aws-sdk/eventstream-serde-browser@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.357.0.tgz#fc2074bb7a9d8a358b9e0fb601924094af33c133" + integrity sha512-hBabtmwuspVHGSKnUccDiSIbg+IVoBThx6wYt6i4edbWAITHF3ADVKXy7icV400CAyG0XTZgxjE6FKpiDxj9rQ== dependencies: - "@aws-sdk/eventstream-serde-universal" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/eventstream-serde-universal" "3.357.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/eventstream-serde-config-resolver@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.347.0.tgz#89f5ecac182f77f1fd97ffceea276e2ce2ecdc2d" - integrity sha512-RcXQbNVq0PFmDqfn6+MnjCUWbbobcYVxpimaF6pMDav04o6Mcle+G2Hrefp5NlFr/lZbHW2eUKYsp1sXPaxVlQ== +"@aws-sdk/eventstream-serde-config-resolver@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.357.0.tgz#d5db248a17fb22bc95d3088b7d840a065f015251" + integrity sha512-E6rwk+1KFXhKmJ+v7JW5Uyyda1yN5XRVupCnCrtFsHFmhVGQxFacoUZIee3bfuCpC58dLSyESggxGpUd3XOSsw== dependencies: - "@aws-sdk/types" "3.347.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/eventstream-serde-node@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.347.0.tgz#76b26af3372cc2794505cc80076a5fa1caa05e4e" - integrity sha512-pgQCWH0PkHjcHs04JE7FoGAD3Ww45ffV8Op0MSLUhg9OpGa6EDoO3EOpWi9l/TALtH4f0KRV35PVyUyHJ/wEkA== +"@aws-sdk/eventstream-serde-node@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.357.0.tgz#4fc79eea9eb85c173f44ad8e37550231e81cf144" + integrity sha512-boXDy+JWcPfHc9OIKV6I4Bh2XrLcg+eac+/LldNZFcDIB33/gHIM2CJw8u565Iebdz1NKEkP/QPPZbk2y+abPA== dependencies: - "@aws-sdk/eventstream-serde-universal" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/eventstream-serde-universal" "3.357.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/eventstream-serde-universal@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.347.0.tgz#2566606e1061859a5062c83915d5035f2dfed8a2" - integrity sha512-4wWj6bz6lOyDIO/dCCjwaLwRz648xzQQnf89R29sLoEqvAPP5XOB7HL+uFaQ/f5tPNh49gL6huNFSVwDm62n4Q== +"@aws-sdk/eventstream-serde-universal@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.357.0.tgz#b83fb0bbc9623eb3e5a698cb3bfd1b8c502fd351" + integrity sha512-9/Wcdxx38XQAturqOAGYNCaLOzFVnW+xwxd4af9eNOfZfZ5PP5PRKBIpvKDsN26e3l4f3GodHx7MS1WB7BBc2w== dependencies: - "@aws-sdk/eventstream-codec" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/eventstream-codec" "3.357.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/fetch-http-handler@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.347.0.tgz#e413790ec453bf8f1c0674f718cfdf5ed9b79e20" - integrity sha512-sQ5P7ivY8//7wdxfA76LT1sF6V2Tyyz1qF6xXf9sihPN5Q1Y65c+SKpMzXyFSPqWZ82+SQQuDliYZouVyS6kQQ== +"@aws-sdk/fetch-http-handler@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.357.0.tgz#8b33b8cefe036fd932b694242893ef3db1a74f02" + integrity sha512-5sPloTO8y8fAnS/6/Sfp/aVoL9zuhzkLdWBORNzMazdynVNEzWKWCPZ27RQpgkaCDHiXjqUY4kfuFXAGkvFfDQ== dependencies: - "@aws-sdk/protocol-http" "3.347.0" - "@aws-sdk/querystring-builder" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/querystring-builder" "3.357.0" + "@aws-sdk/types" "3.357.0" "@aws-sdk/util-base64" "3.310.0" tslib "^2.5.0" -"@aws-sdk/hash-blob-browser@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.347.0.tgz#b8a48951c7a7798ca49a155f42046016f5bf4551" - integrity sha512-RxgstIldLsdJKN5UHUwSI9PMiatr0xKmKxS4+tnWZ1/OOg6wuWqqpDpWdNOVSJSpxpUaP6kRrvG5Yo5ZevoTXw== +"@aws-sdk/hash-blob-browser@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.357.0.tgz#e507929499fe0fe128664b67cd26f63f16ed4d25" + integrity sha512-RDd6UgrGHDmleTnXM9LRSSVa69euSAG2mlNhZMEDWk3OFseXVYqBDaqroVbQ01rM2UAe8MeBFchlV9OmxuVgvw== dependencies: "@aws-sdk/chunked-blob-reader" "3.310.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/hash-node@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.347.0.tgz#575b31227306c03b491b814178a72b0b79625ed5" - integrity sha512-96+ml/4EaUaVpzBdOLGOxdoXOjkPgkoJp/0i1fxOJEvl8wdAQSwc3IugVK9wZkCxy2DlENtgOe6DfIOhfffm/g== +"@aws-sdk/hash-node@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.357.0.tgz#70666b0d6a49191cf33ef32b235c33b242de36ce" + integrity sha512-fq3LS9AxHKb7dTZkm6iM1TrGk6XOTZz96iEZPME1+vjiSEXGWuebHt87q92n+KozVGRypn9MId3lHOPBBjygNQ== dependencies: - "@aws-sdk/types" "3.347.0" + "@aws-sdk/types" "3.357.0" "@aws-sdk/util-buffer-from" "3.310.0" "@aws-sdk/util-utf8" "3.310.0" tslib "^2.5.0" -"@aws-sdk/hash-stream-node@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/hash-stream-node/-/hash-stream-node-3.347.0.tgz#f66810f4e17257009a2e231b58b3ce5aa91d9e44" - integrity sha512-tOBfcvELyt1GVuAlQ4d0mvm3QxoSSmvhH15SWIubM9RP4JWytBVzaFAn/aC02DBAWyvp0acMZ5J+47mxrWJElg== +"@aws-sdk/hash-stream-node@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-stream-node/-/hash-stream-node-3.357.0.tgz#a78c6d1ae1c78cb52854311bad50988e8fc12142" + integrity sha512-KZjN1VAw1KHNp+xKVOWBGS+MpaYQTjZFD5f+7QQqW4TfbAkFFwIAEYIHq5Q8Gw+jVh0h61OrV/LyW3J2PVzc+w== dependencies: - "@aws-sdk/types" "3.347.0" + "@aws-sdk/types" "3.357.0" "@aws-sdk/util-utf8" "3.310.0" tslib "^2.5.0" -"@aws-sdk/invalid-dependency@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.347.0.tgz#2e5994cdd51dc3fe0310ce355e1ab115b66b7cb5" - integrity sha512-8imQcwLwqZ/wTJXZqzXT9pGLIksTRckhGLZaXT60tiBOPKuerTsus2L59UstLs5LP8TKaVZKFFSsjRIn9dQdmQ== +"@aws-sdk/invalid-dependency@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.357.0.tgz#4e86c689a6b0c4d0fe43ba335218d67e9aa652a6" + integrity sha512-HnCYZczf0VdyxMVMMxmA3QJAyyPSFbcMtZzgKbxVTWTG7GKpQe0psWZu/7O2Nk31mKg6vEUdiP1FylqLBsgMOA== dependencies: - "@aws-sdk/types" "3.347.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" "@aws-sdk/is-array-buffer@3.310.0": @@ -558,315 +581,317 @@ tslib "^2.5.0" "@aws-sdk/lib-storage@^3.267.0": - version "3.348.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/lib-storage/-/lib-storage-3.348.0.tgz#68c1ed11101b12e238202cfe22142c67a5deacf0" - integrity sha512-4kGsMNRmblf8f4faZ34APRyJM32Kkj0wuEua8mEbvA4YjJmYPDsBOWvthIJ4wpDRLRizNKWv1oMk2mEg2r2oeg== + version "3.362.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/lib-storage/-/lib-storage-3.362.0.tgz#734f046cc5ee7727da089efe49c1de6f8f922dc2" + integrity sha512-r3KUIEPLAiZdnxbK+9fgAnxKEjsyeB7wFd0rKuOL+TZouaBSGz2ctni2/tAwN0Om3y8boKWmcUrbUWndN5vjHA== dependencies: - "@aws-sdk/middleware-endpoint" "3.347.0" - "@aws-sdk/smithy-client" "3.347.0" + "@aws-sdk/middleware-endpoint" "3.357.0" + "@aws-sdk/smithy-client" "3.360.0" buffer "5.6.0" events "3.3.0" stream-browserify "3.0.0" tslib "^2.5.0" -"@aws-sdk/md5-js@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/md5-js/-/md5-js-3.347.0.tgz#99ccc273d755b042992de6e5b2ccb72a4df6d853" - integrity sha512-mChE+7DByTY9H4cQ6fnWp2x5jf8e6OZN+AdLp6WQ+W99z35zBeqBxVmgm8ziJwkMIrkSTv9j3Y7T9Ve3RIcSfg== +"@aws-sdk/md5-js@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/md5-js/-/md5-js-3.357.0.tgz#61853f562e71af0ec58aeede7883de122177ed55" + integrity sha512-to42sFAL7KgV/X9X40LLfEaNMHMGQL6/7mPMVCL/W2BZf3zw5OTl3lAaNyjXA+gO5Uo4lFEiQKAQVKNbr8b8Nw== dependencies: - "@aws-sdk/types" "3.347.0" + "@aws-sdk/types" "3.357.0" "@aws-sdk/util-utf8" "3.310.0" tslib "^2.5.0" -"@aws-sdk/middleware-bucket-endpoint@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.347.0.tgz#157f3ba100c5216c6b52b173a0dcc52f6fdfbdd7" - integrity sha512-i9n4ylkGmGvizVcTfN4L+oN10OCL2DKvyMa4cCAVE1TJrsnaE0g7IOOyJGUS8p5KJYQrKVR7kcsa2L1S0VeEcA== +"@aws-sdk/middleware-bucket-endpoint@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.357.0.tgz#9d19ba4a7971c5302e32d024e477755a1f6185ff" + integrity sha512-ep2T0FJXRDl6nffLqiVZUYfDocZ3B72wvHeozckkLVRX0TK91WEpzv4Zz2vdeBp6CGkM3g8oGjbb6ZqllUZ6TA== dependencies: - "@aws-sdk/protocol-http" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" "@aws-sdk/util-arn-parser" "3.310.0" "@aws-sdk/util-config-provider" "3.310.0" tslib "^2.5.0" -"@aws-sdk/middleware-content-length@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.347.0.tgz#ee6063ebb0215355b7a7dacd0a3bbe2e1a8d108f" - integrity sha512-i4qtWTDImMaDUtwKQPbaZpXsReiwiBomM1cWymCU4bhz81HL01oIxOxOBuiM+3NlDoCSPr3KI6txZSz/8cqXCQ== +"@aws-sdk/middleware-content-length@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.357.0.tgz#eafad2db1816cb5d91cd1e090211f040f29bbdaa" + integrity sha512-zQOFEyzOXAgN4M54tYNWGxKxnyzY0WwYDTFzh9riJRmxN1hTEKHUKmze4nILIf5rkQmOG4kTf1qmfazjkvZAhw== dependencies: - "@aws-sdk/protocol-http" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/middleware-endpoint@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.347.0.tgz#d577265e79cdc0241d863e2582820010ea942736" - integrity sha512-unF0c6dMaUL1ffU+37Ugty43DgMnzPWXr/Jup/8GbK5fzzWT5NQq6dj9KHPubMbWeEjQbmczvhv25JuJdK8gNQ== +"@aws-sdk/middleware-endpoint@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.357.0.tgz#bc94bbf55339aa5220011f4ae8e03a7966ce28be" + integrity sha512-ScJi0SL8X/Lyi0Fp5blg0QN/Z6PoRwV/ZJXd8dQkXSznkbSvJHfqPP0xk/w3GcQ1TKsu5YEPfeYy8ejcq+7Pgg== dependencies: - "@aws-sdk/middleware-serde" "3.347.0" - "@aws-sdk/types" "3.347.0" - "@aws-sdk/url-parser" "3.347.0" - "@aws-sdk/util-middleware" "3.347.0" + "@aws-sdk/middleware-serde" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/url-parser" "3.357.0" + "@aws-sdk/util-middleware" "3.357.0" tslib "^2.5.0" -"@aws-sdk/middleware-expect-continue@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.347.0.tgz#a3d32bbc128098ec225d67b9fdd1e913553c5881" - integrity sha512-95M1unD1ENL0tx35dfyenSfx0QuXBSKtOi/qJja6LfX5771C5fm5ZTOrsrzPFJvRg/wj8pCOVWRZk+d5+jvfOQ== +"@aws-sdk/middleware-expect-continue@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.357.0.tgz#c392c4f31300695158070223f1e337c7503aca92" + integrity sha512-KeizuiiDmdLeAbiNsJt/rZENY5iJo4wCTl7h81htDC60wSwVwFG03IdgvZlFH6jktYRh4mUDD/6Oljme6yPNxw== dependencies: - "@aws-sdk/protocol-http" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/middleware-flexible-checksums@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.347.0.tgz#183b62548dc9e3e229b49f10e0bf6d9115ca8cff" - integrity sha512-Pda7VMAIyeHw9nMp29rxdFft3EF4KP/tz/vLB6bqVoBNbLujo5rxn3SGOgStgIz7fuMLQQfoWIsmvxUm+Fp+Dw== +"@aws-sdk/middleware-flexible-checksums@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.357.0.tgz#957a383dc66942e63493d2ba182ee775e8139507" + integrity sha512-NNQ/iPN6YyzqgVaV8AeYQMZ8y1OmUW27vmt0R66UUw5H5THGc6X9QXoKfie7OHn80Qv1S8P5jw8z5MpvDtjSnQ== dependencies: "@aws-crypto/crc32" "3.0.0" "@aws-crypto/crc32c" "3.0.0" "@aws-sdk/is-array-buffer" "3.310.0" - "@aws-sdk/protocol-http" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" "@aws-sdk/util-utf8" "3.310.0" tslib "^2.5.0" -"@aws-sdk/middleware-host-header@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.347.0.tgz#6166c137044672b2229e6ee0ce8a3e59fd8c49c4" - integrity sha512-kpKmR9OvMlnReqp5sKcJkozbj1wmlblbVSbnQAIkzeQj2xD5dnVR3Nn2ogQKxSmU1Fv7dEroBtrruJ1o3fY38A== +"@aws-sdk/middleware-host-header@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.357.0.tgz#9d4f803fc7d9b1f5582a62844b1d841b3c849fe0" + integrity sha512-HuGLcP7JP1qJ5wGT9GSlEknDaTSnOzHY4T6IPFuvFjAy3PvY5siQNm6+VRqdVS+n6/kzpL3JP5sAVM3aoxHT6Q== dependencies: - "@aws-sdk/protocol-http" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/middleware-location-constraint@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.347.0.tgz#a7d179b5808665528eca1df3c8bb78d3d498435e" - integrity sha512-x5fcEV7q8fQ0OmUO+cLhN5iPqGoLWtC3+aKHIfRRb2BpOO1khyc1FKzsIAdeQz2hfktq4j+WsrmcPvFKv51pSg== +"@aws-sdk/middleware-location-constraint@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.357.0.tgz#b147973f70c82cf06d3bafcf32b6b826203bcb69" + integrity sha512-4IsIHhwZ2/o7yjLI1XtGMkJ442cbIN5/NtI/Ml0G5UHYviUm8sqvH2vldFBMK5bPuVdk6GpqXpy6wYc9rLJj2w== dependencies: - "@aws-sdk/types" "3.347.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/middleware-logger@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.347.0.tgz#d75a6bbda38c85200219f4ef88e7696d72f94100" - integrity sha512-NYC+Id5UCkVn+3P1t/YtmHt75uED06vwaKyxDy0UmB2K66PZLVtwWbLpVWrhbroaw1bvUHYcRyQ9NIfnVcXQjA== +"@aws-sdk/middleware-logger@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.357.0.tgz#851a44a934ad8f33465ae4665a6c07ac967a8bbb" + integrity sha512-dncT3tr+lZ9+duZo52rASgO6AKVwRcsc2/T93gmaYVrJqI6WWAwQ7yML5s72l9ZjQ5LZ+4jjrgtlufavAS0eCg== dependencies: - "@aws-sdk/types" "3.347.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/middleware-recursion-detection@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.347.0.tgz#00faf00d9346cb88dafdfddfd33e956ba563bf99" - integrity sha512-qfnSvkFKCAMjMHR31NdsT0gv5Sq/ZHTUD4yQsSLpbVQ6iYAS834lrzXt41iyEHt57Y514uG7F/Xfvude3u4icQ== +"@aws-sdk/middleware-recursion-detection@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.357.0.tgz#2d7a8cf43f1299c1ff1e113988bd801e7f527401" + integrity sha512-AXC54IeDS3jC1dbbkYHML4STvBPcKZ4IJTWdjEK1RCOgqXd0Ze1cE1e21wyj1tM6prF03zLyvpBd+3TS++nqfA== dependencies: - "@aws-sdk/protocol-http" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/middleware-retry@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.347.0.tgz#d589f04ed5fc383a0f04deda50dc190fe01a4649" - integrity sha512-CpdM+8dCSbX96agy4FCzOfzDmhNnGBM/pxrgIVLm5nkYTLuXp/d7ubpFEUHULr+4hCd5wakHotMt7yO29NFaVw== +"@aws-sdk/middleware-retry@3.362.0": + version "3.362.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.362.0.tgz#0d886a18a4560a05267d841545e64b4ca360c06e" + integrity sha512-ZFsty5fXIdvTTm+GnTtCPre89b2QFZYQmD0L5nhJULDFoU5Fz/bsI5C3b98/wb4YCAIfXBZpx4Kh2RAEKnxkyg== dependencies: - "@aws-sdk/protocol-http" "3.347.0" - "@aws-sdk/service-error-classification" "3.347.0" - "@aws-sdk/types" "3.347.0" - "@aws-sdk/util-middleware" "3.347.0" - "@aws-sdk/util-retry" "3.347.0" + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/service-error-classification" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-middleware" "3.357.0" + "@aws-sdk/util-retry" "3.362.0" tslib "^2.5.0" uuid "^8.3.2" -"@aws-sdk/middleware-sdk-s3@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.347.0.tgz#811fa5bb46c0e93a0218628384253d044be67df8" - integrity sha512-TLr92+HMvamrhJJ0VDhA/PiUh4rTNQz38B9dB9ikohTaRgm+duP+mRiIv16tNPZPGl8v82Thn7Ogk2qPByNDtg== +"@aws-sdk/middleware-sdk-s3@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.357.0.tgz#3962e60183930b497599357f42f531578544eb18" + integrity sha512-EFQaPD8SoXcK7RiEOZz0zIX9owQW6txu8vrOOVva9xMts36z/3E7b4FVsgEJ53Ixa1x38ddPJxp4U8EIaf+pvQ== dependencies: - "@aws-sdk/protocol-http" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" "@aws-sdk/util-arn-parser" "3.310.0" tslib "^2.5.0" -"@aws-sdk/middleware-sdk-sts@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.347.0.tgz#903d8263e90af6560d19337de06cd6a2d0564e2f" - integrity sha512-38LJ0bkIoVF3W97x6Jyyou72YV9Cfbml4OaDEdnrCOo0EssNZM5d7RhjMvQDwww7/3OBY/BzeOcZKfJlkYUXGw== +"@aws-sdk/middleware-sdk-sts@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.357.0.tgz#8f9be3db8f4fd8563baf66925ee326f579b6ae4d" + integrity sha512-Ng2VjLrPiL02QOcs1qs9jG2boO4Gn+v3VIbOJLG4zXcfbSq55iIWtlmr2ljfw9vP5aLhWtcODfmKHS5Bp+019Q== dependencies: - "@aws-sdk/middleware-signing" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/middleware-signing" "3.357.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/middleware-serde@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.347.0.tgz#f20a63290e16d631a8aa7d9eb331b139bf2531ac" - integrity sha512-x5Foi7jRbVJXDu9bHfyCbhYDH5pKK+31MmsSJ3k8rY8keXLBxm2XEEg/AIoV9/TUF9EeVvZ7F1/RmMpJnWQsEg== +"@aws-sdk/middleware-serde@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.357.0.tgz#2614031c81981580bce4bee502985e28e51dadb2" + integrity sha512-bGI4kYuuEsFjlANbyJLyy4AovETnyf/SukgLOG7Qjbua+ZGuzvRhMsk21mBKKGrnsTO4PmtieJo6xClThGAN8g== dependencies: - "@aws-sdk/types" "3.347.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/middleware-signing@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.347.0.tgz#7db835d84c482ddb93156efac5830d0938352b6d" - integrity sha512-zVBF/4MGKnvhAE/J+oAL/VAehiyv+trs2dqSQXwHou9j8eA8Vm8HS2NdOwpkZQchIxTuwFlqSusDuPEdYFbvGw== +"@aws-sdk/middleware-signing@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.357.0.tgz#9aee1ad571b092ad0bbd63e0b551ffb575220688" + integrity sha512-yB9ewEqI6Fw1OrmKFrUypbCqN5ijk06UGPochybamMuPxxkwMT3bnrm7eezsCA+TZbJyKhpffpyobwuv+xGNrA== dependencies: - "@aws-sdk/property-provider" "3.347.0" - "@aws-sdk/protocol-http" "3.347.0" - "@aws-sdk/signature-v4" "3.347.0" - "@aws-sdk/types" "3.347.0" - "@aws-sdk/util-middleware" "3.347.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/signature-v4" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-middleware" "3.357.0" tslib "^2.5.0" -"@aws-sdk/middleware-ssec@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.347.0.tgz#f65abdbd7eaa85e6186a29eb97cd3f0cc1ac7a41" - integrity sha512-467VEi2elPmUGcHAgTmzhguZ3lwTpwK+3s+pk312uZtVsS9rP1MAknYhpS3ZvssiqBUVPx8m29cLcC6Tx5nOJg== +"@aws-sdk/middleware-ssec@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.357.0.tgz#c99b9b457cfaee32796110b324d2d5056c86b4df" + integrity sha512-uE3nNvJclcY7SgGoOgDCUgfc7ElXQmWVpks8AZzAjJj7bG5j6Bv3FOOYtGtvtxUzTHaOdn+yQwjssV1cZ6GTQw== dependencies: - "@aws-sdk/types" "3.347.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/middleware-stack@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.347.0.tgz#de8f94349273e1b30e19b6e8ace95a7982a24579" - integrity sha512-Izidg4rqtYMcKuvn2UzgEpPLSmyd8ub9+LQ2oIzG3mpIzCBITq7wp40jN1iNkMg+X6KEnX9vdMJIYZsPYMCYuQ== +"@aws-sdk/middleware-stack@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.357.0.tgz#51f181691e8c76694b6583561ba0a0a14472506c" + integrity sha512-nNV+jfwGwmbOGZujAY/U8AW3EbVlxa9DJDLz3TPp/39o6Vu5KEzHJyDDNreo2k9V/TMvV+nOzHafufgPdagv7w== dependencies: tslib "^2.5.0" -"@aws-sdk/middleware-user-agent@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.347.0.tgz#31ba4cc679eb53673b7f3fe3e6db435ff1449b6a" - integrity sha512-wJbGN3OE1/daVCrwk49whhIr9E0j1N4gWwN/wi4WuyYIA+5lMUfVp0aGIOvZR+878DxuFz2hQ4XcZVT4K2WvQw== +"@aws-sdk/middleware-user-agent@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.357.0.tgz#d4d27549bbcfdc03f5a8db74435a345b05b40373" + integrity sha512-M/CsAXjGblZS4rEbMb0Dn9IXbfq4EjVaTHBfvuILU/dKRppWvjnm2lRtqCZ+LIT3ATbAjA3/dY7dWsjxQWwijA== dependencies: - "@aws-sdk/protocol-http" "3.347.0" - "@aws-sdk/types" "3.347.0" - "@aws-sdk/util-endpoints" "3.347.0" + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-endpoints" "3.357.0" tslib "^2.5.0" -"@aws-sdk/node-config-provider@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.347.0.tgz#0f155b28fb2053973666b241c68bbebccb770ad1" - integrity sha512-faU93d3+5uTTUcotGgMXF+sJVFjrKh+ufW+CzYKT4yUHammyaIab/IbTPWy2hIolcEGtuPeVoxXw8TXbkh/tuw== +"@aws-sdk/node-config-provider@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.357.0.tgz#2e47aa36e5efae89b65c79b8c27180d3d8a2d901" + integrity sha512-kwBIzKCaW3UWqLdELhy7TcN8itNMOjbzga530nalFILMvn2IxrkdKQhNgxGBXy6QK6kCOtH6OmcrG3/oZkLwig== dependencies: - "@aws-sdk/property-provider" "3.347.0" - "@aws-sdk/shared-ini-file-loader" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/shared-ini-file-loader" "3.357.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/node-http-handler@3.348.0": - version "3.348.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.348.0.tgz#007da86ff31fed7a7d50d90bdb57cd1c0fa8588a" - integrity sha512-wxdgc4tO5F6lN4wHr0CZ4TyIjDW/ORp4SJZdWYNs2L5J7+/SwqgJY2lxRlGi0i7Md+apAdE3sT3ukVQ/9pVfPg== +"@aws-sdk/node-http-handler@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.360.0.tgz#6f762b57f98887b5173886f890669e6a60bf792c" + integrity sha512-oMsXdMmNwHpUbebETO44bq0N4SocEMGfPjYNUTRs8md7ita5fuFd2qFuvf+ZRt6iVcGWluIqmF8DidD+b7d+TA== dependencies: - "@aws-sdk/abort-controller" "3.347.0" - "@aws-sdk/protocol-http" "3.347.0" - "@aws-sdk/querystring-builder" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/abort-controller" "3.357.0" + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/querystring-builder" "3.357.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/property-provider@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.347.0.tgz#3bd346a6f52fcb5a53460504dfe65457f293e3d7" - integrity sha512-t3nJ8CYPLKAF2v9nIHOHOlF0CviQbTvbFc2L4a+A+EVd/rM4PzL3+3n8ZJsr0h7f6uD04+b5YRFgKgnaqLXlEg== +"@aws-sdk/property-provider@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.357.0.tgz#4c1639c2d52aefab4040c2247c126c11b19d8be9" + integrity sha512-im4W0u8WaYxG7J7ko4Xl3OEzK3Mrm1Rz6/txTGe6hTIHlyUISu1ekOQJXK6XYPqNMn8v1G3BiQREoRXUEJFbHg== dependencies: - "@aws-sdk/types" "3.347.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/protocol-http@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.347.0.tgz#9f61f4e0d892dc0a1e02211963827f386bc447b9" - integrity sha512-2YdBhc02Wvy03YjhGwUxF0UQgrPWEy8Iq75pfS42N+/0B/+eWX1aQgfjFxIpLg7YSjT5eKtYOQGlYd4MFTgj9g== +"@aws-sdk/protocol-http@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.357.0.tgz#cd47413d6c1ed2d27bc30c7e9da3b262c8804cf4" + integrity sha512-w1JHiI50VEea7duDeAspUiKJmmdIQblvRyjVMOqWA6FIQAyDVuEiPX7/MdQr0ScxhtRQxHbP0I4MFyl7ctRQvA== dependencies: - "@aws-sdk/types" "3.347.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/querystring-builder@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.347.0.tgz#9a6bb16441f32fa05c25dc7e57d4692858824574" - integrity sha512-phtKTe6FXoV02MoPkIVV6owXI8Mwr5IBN3bPoxhcPvJG2AjEmnetSIrhb8kwc4oNhlwfZwH6Jo5ARW/VEWbZtg== +"@aws-sdk/querystring-builder@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.357.0.tgz#0d4627620eba4d3cc523c2e1da88dfa561617599" + integrity sha512-aQcicqB6Y2cNaXPPwunz612a01SMiQQPsdz632F/3Lzn0ua82BJKobHOtaiTUlmVJ5Q4/EAeNfwZgL7tTUNtDQ== dependencies: - "@aws-sdk/types" "3.347.0" + "@aws-sdk/types" "3.357.0" "@aws-sdk/util-uri-escape" "3.310.0" tslib "^2.5.0" -"@aws-sdk/querystring-parser@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.347.0.tgz#c85213a835c0f02580e013d168d1ee2f6fee65a1" - integrity sha512-5VXOhfZz78T2W7SuXf2avfjKglx1VZgZgp9Zfhrt/Rq+MTu2D+PZc5zmJHhYigD7x83jLSLogpuInQpFMA9LgA== +"@aws-sdk/querystring-parser@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.357.0.tgz#6dfeb42930b2241cda43646d7c1d16ca886c78af" + integrity sha512-Svvq+atRNP9s2VxiklcUNgCzmt3T5kfs7X2C+yjmxHvOQTPjLNaNGbfC/vhjOK7aoXw0h+lBac48r5ymx1PbQA== dependencies: - "@aws-sdk/types" "3.347.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/service-error-classification@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.347.0.tgz#c5a242d953eae0ff0290c776d93b3f5ebd85d2e2" - integrity sha512-xZ3MqSY81Oy2gh5g0fCtooAbahqh9VhsF8vcKjVX8+XPbGC8y+kej82+MsMg4gYL8gRFB9u4hgYbNgIS6JTAvg== +"@aws-sdk/service-error-classification@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.357.0.tgz#1c6f6e436997a1886d55cfec6d4796129b789076" + integrity sha512-VuXeL4g5vKO9HjgCZlxmH8Uv1FcqUSjmbPpQkbNtYIDck6u0qzM0rG+n0/1EjyQbPSr3MhW/pkWs5nx2Nljlyg== -"@aws-sdk/shared-ini-file-loader@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.347.0.tgz#f44baf03f632f1a2f4188368ff0770852c0ac035" - integrity sha512-Xw+zAZQVLb+xMNHChXQ29tzzLqm3AEHsD8JJnlkeFjeMnWQtXdUfOARl5s8NzAppcKQNlVe2gPzjaKjoy2jz1Q== +"@aws-sdk/shared-ini-file-loader@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.357.0.tgz#af503df79e05bb9ee0e5d689319c9b52cefe1801" + integrity sha512-ceyqM4XxQe0Plb/oQAD2t1UOV2Iy4PFe1oAGM8dfJzYrRKu7zvMwru7/WaB3NYq+/mIY6RU+jjhRmjQ3GySVqA== dependencies: - "@aws-sdk/types" "3.347.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/signature-v4-multi-region@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.347.0.tgz#1eaf2de0a12b3f3f6fd4ab1d43dd76616079ea2b" - integrity sha512-838h7pbRCVYWlTl8W+r5+Z5ld7uoBObgAn7/RB1MQ4JjlkfLdN7emiITG6ueVL+7gWZNZc/4dXR/FJSzCgrkxQ== +"@aws-sdk/signature-v4-multi-region@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.357.0.tgz#100c573029e2b30a65634090e55be4beb50e16a1" + integrity sha512-eyO3GibYLNCPZ/YxM/ZVDh1fTMKvIUj4fpVo0bxQTKNlqNkVumAIOVLoH5um1A9FN7nDdz+40a7jwYSPlkxW6A== dependencies: - "@aws-sdk/protocol-http" "3.347.0" - "@aws-sdk/signature-v4" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/protocol-http" "3.357.0" + "@aws-sdk/signature-v4" "3.357.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/signature-v4@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.347.0.tgz#0f5eb4ec260eb0fe2fe5e3ee6cb011076f3582fa" - integrity sha512-58Uq1do+VsTHYkP11dTK+DF53fguoNNJL9rHRWhzP+OcYv3/mBMLoS2WPz/x9FO5mBg4ESFsug0I6mXbd36tjw== +"@aws-sdk/signature-v4@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.357.0.tgz#31093e87fda10bee92b6b2784cdba9af9af89e7d" + integrity sha512-itt4/Jh9FqnzK30qIjXFBvM4J7zN4S/AAqsRMnaX7U4f/MV+1YxQHmzimpdMnsCXXs2jqFqKVRu6DewxJ3nbxg== dependencies: - "@aws-sdk/eventstream-codec" "3.347.0" + "@aws-sdk/eventstream-codec" "3.357.0" "@aws-sdk/is-array-buffer" "3.310.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/types" "3.357.0" "@aws-sdk/util-hex-encoding" "3.310.0" - "@aws-sdk/util-middleware" "3.347.0" + "@aws-sdk/util-middleware" "3.357.0" "@aws-sdk/util-uri-escape" "3.310.0" "@aws-sdk/util-utf8" "3.310.0" tslib "^2.5.0" -"@aws-sdk/smithy-client@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.347.0.tgz#ec11b292917f6269eecc124dae723ac6e1203f8f" - integrity sha512-PaGTDsJLGK0sTjA6YdYQzILRlPRN3uVFyqeBUkfltXssvUzkm8z2t1lz2H4VyJLAhwnG5ZuZTNEV/2mcWrU7JQ== +"@aws-sdk/smithy-client@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.360.0.tgz#59d55eb41eccc22ca2d3d32c11b60135f882e66d" + integrity sha512-R7wbT2SkgWNEAxMekOTNcPcvBszabW2+qHjrcelbbVJNjx/2yK+MbpZI4WRSncByQMeeoW+aSUP+JgsbpiOWfw== dependencies: - "@aws-sdk/middleware-stack" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/middleware-stack" "3.357.0" + "@aws-sdk/types" "3.357.0" + "@aws-sdk/util-stream" "3.360.0" + "@smithy/types" "^1.0.0" tslib "^2.5.0" -"@aws-sdk/token-providers@3.348.0": - version "3.348.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.348.0.tgz#6f59e6ed2c10c0beea7977577162f22dcc33acf5" - integrity sha512-nTjoJkUsJUrJTZuqaeMD9PW2//Rdg2HgfDjiyC4jmAXtayWYCi11mqauurMaUHJ3p5qJ8f5xzxm6vBTbrftPag== +"@aws-sdk/token-providers@3.362.0": + version "3.362.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.362.0.tgz#bd0ad974d7a96a06e6f1b574258e63e749e7cbb2" + integrity sha512-w7NTeB2j1CRdvDa7m08KQr12HN6qrOknXhGEMmf67bfdfAdmPWsJXIbxcKH8eze+acOzoimbqv8KyCVmyX/pCQ== dependencies: - "@aws-sdk/client-sso-oidc" "3.348.0" - "@aws-sdk/property-provider" "3.347.0" - "@aws-sdk/shared-ini-file-loader" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/client-sso-oidc" "3.362.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/shared-ini-file-loader" "3.357.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/types@3.347.0", "@aws-sdk/types@^3.1.0", "@aws-sdk/types@^3.222.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.347.0.tgz#4affe91de36ef227f6375d64a6efda8d4ececd5d" - integrity sha512-GkCMy79mdjU9OTIe5KT58fI/6uqdf8UmMdWqVHmFJ+UpEzOci7L/uw4sOXWo7xpPzLs6cJ7s5ouGZW4GRPmHFA== +"@aws-sdk/types@3.357.0", "@aws-sdk/types@^3.1.0", "@aws-sdk/types@^3.222.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.357.0.tgz#8491da71a4291cc2661c26a75089e86532b6a3b5" + integrity sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g== dependencies: tslib "^2.5.0" -"@aws-sdk/url-parser@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.347.0.tgz#b3c31fc9ffb1ac5586ab088f9b109386e6b4c7a8" - integrity sha512-lhrnVjxdV7hl+yCnJfDZOaVLSqKjxN20MIOiijRiqaWGLGEAiSqBreMhL89X1WKCifxAs4zZf9YB9SbdziRpAA== +"@aws-sdk/url-parser@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.357.0.tgz#1b197f252d008e201d1e301c8024bed770ef0b2c" + integrity sha512-fAaU6cFsaAba01lCRsRJiYR/LfXvX2wudyEyutBVglE4dWSoSeu3QJNxImIzTBULfbiFhz59++NQ1JUVx88IVg== dependencies: - "@aws-sdk/querystring-parser" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/querystring-parser" "3.357.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" "@aws-sdk/util-arn-parser@3.310.0": @@ -913,34 +938,34 @@ dependencies: tslib "^2.5.0" -"@aws-sdk/util-defaults-mode-browser@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.347.0.tgz#8a32c0a91d074862682aadacd00d2d1e14b186ff" - integrity sha512-+JHFA4reWnW/nMWwrLKqL2Lm/biw/Dzi/Ix54DAkRZ08C462jMKVnUlzAI+TfxQE3YLm99EIa0G7jiEA+p81Qw== +"@aws-sdk/util-defaults-mode-browser@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.360.0.tgz#fced018e4990220dc31881a5b2b3e425fe08e970" + integrity sha512-/GR8VlK9xo1Q5WbVYuNaZ+XfoCFdWNb4z4mpoEgvEgBH4R0GjqiAqLftUA8Ykq1tJuDAKPYVzUNzK8DC0pt7/g== dependencies: - "@aws-sdk/property-provider" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" bowser "^2.11.0" tslib "^2.5.0" -"@aws-sdk/util-defaults-mode-node@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.347.0.tgz#fbf0f58e79e65d449af225fa2334cbfae5207529" - integrity sha512-A8BzIVhAAZE5WEukoAN2kYebzTc99ZgncbwOmgCCbvdaYlk5tzguR/s+uoT4G0JgQGol/4hAMuJEl7elNgU6RQ== +"@aws-sdk/util-defaults-mode-node@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.360.0.tgz#83e2812474d8807d6d220c5064576e63e4ea8306" + integrity sha512-gR3Ctqpyl7SgStDJ1Jlq6qQDuw/rS9AgbAXx+s3wsmm3fm8lHKkXkDPYVvNDqd6dVXRO6q8MRx00lwkGI4qrpQ== dependencies: - "@aws-sdk/config-resolver" "3.347.0" - "@aws-sdk/credential-provider-imds" "3.347.0" - "@aws-sdk/node-config-provider" "3.347.0" - "@aws-sdk/property-provider" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/config-resolver" "3.357.0" + "@aws-sdk/credential-provider-imds" "3.357.0" + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/property-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" -"@aws-sdk/util-endpoints@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.347.0.tgz#19e48f7a8d65c4e2bdbff9cf2a605e52f69d5af9" - integrity sha512-/WUkirizeNAqwVj0zkcrqdQ9pUm1HY5kU+qy7xTR0OebkuJauglkmSTMD+56L1JPunWqHhlwCMVRaz5eaJdSEQ== +"@aws-sdk/util-endpoints@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.357.0.tgz#eaa7b4481bbd9fc8f13412b308ba4129d8fa2004" + integrity sha512-XHKyS5JClT9su9hDif715jpZiWHQF9gKZXER8tW0gOizU3R9cyWc9EsJ2BRhFNhi7nt/JF/CLUEc5qDx3ETbUw== dependencies: - "@aws-sdk/types" "3.347.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" "@aws-sdk/util-hex-encoding@3.310.0": @@ -957,43 +982,35 @@ dependencies: tslib "^2.5.0" -"@aws-sdk/util-middleware@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.347.0.tgz#464b2e416486776fa39c926e7f04c2a0d822e8b5" - integrity sha512-8owqUA3ePufeYTUvlzdJ7Z0miLorTwx+rNol5lourGQZ9JXsVMo23+yGA7nOlFuXSGkoKpMOtn6S0BT2bcfeiw== +"@aws-sdk/util-middleware@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.357.0.tgz#1ba478dde5df4e53b231ec6651b8d44c9187f66d" + integrity sha512-pV1krjZs7BdahZBfsCJMatE8kcor7GFsBOWrQgQDm9T0We5b5xPpOO2vxAD0RytBpY8Ky2ELs/+qXMv7l5fWIA== dependencies: tslib "^2.5.0" -"@aws-sdk/util-retry@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-retry/-/util-retry-3.347.0.tgz#9a24ebcd6c34888eee0ffb81c1529ea51a5cdecc" - integrity sha512-NxnQA0/FHFxriQAeEgBonA43Q9/VPFQa8cfJDuT2A1YZruMasgjcltoZszi1dvoIRWSZsFTW42eY2gdOd0nffQ== +"@aws-sdk/util-retry@3.362.0": + version "3.362.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-retry/-/util-retry-3.362.0.tgz#ab4a2bef4fef528cfa58e0840ba28fb5f1c3ca11" + integrity sha512-LDRGKaF2EMcFEa6AlS+ilLiDEeHWyR5FN2+RHdfGQjcqn+Zdd5H6Vc0vUF5Z4PH3hXr5LPZcDh+zM7DlG22KJg== dependencies: - "@aws-sdk/service-error-classification" "3.347.0" + "@aws-sdk/service-error-classification" "3.357.0" tslib "^2.5.0" -"@aws-sdk/util-stream-browser@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-stream-browser/-/util-stream-browser-3.347.0.tgz#490091ad47e4871bc52a4207d24216a5bccb9fd6" - integrity sha512-pIbmzIJfyX26qG622uIESOmJSMGuBkhmNU7I98bzhYCet5ctC0ow9L5FZw9ljOE46P/HkEcsOhh+qTHyCXlCEQ== +"@aws-sdk/util-stream@3.360.0": + version "3.360.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-stream/-/util-stream-3.360.0.tgz#a6cf43cf594540e9d1a4e19b9acbc5c34b3a1225" + integrity sha512-t3naBfNesXwLis29pzSfLx2ifCn2180GiPjRaIsQP14IiVCBOeT1xaU6Dpyk7WeR/jW4cu7wGl+kbeyfNF6QmQ== dependencies: - "@aws-sdk/fetch-http-handler" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/fetch-http-handler" "3.357.0" + "@aws-sdk/node-http-handler" "3.360.0" + "@aws-sdk/types" "3.357.0" "@aws-sdk/util-base64" "3.310.0" + "@aws-sdk/util-buffer-from" "3.310.0" "@aws-sdk/util-hex-encoding" "3.310.0" "@aws-sdk/util-utf8" "3.310.0" tslib "^2.5.0" -"@aws-sdk/util-stream-node@3.348.0": - version "3.348.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-stream-node/-/util-stream-node-3.348.0.tgz#6f79e74b742a1382b635515e099ed929f3e9e168" - integrity sha512-MFXyMUWA2oD0smBZf+sdnuyxLw8nCqyMEgYbos+6grvF1Szxn5+zbYTZrEBYiICqD1xJRLbWTzFLJU7oYm6pUg== - dependencies: - "@aws-sdk/node-http-handler" "3.348.0" - "@aws-sdk/types" "3.347.0" - "@aws-sdk/util-buffer-from" "3.310.0" - tslib "^2.5.0" - "@aws-sdk/util-uri-escape@3.310.0": version "3.310.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-uri-escape/-/util-uri-escape-3.310.0.tgz#9f942f09a715d8278875013a416295746b6085ba" @@ -1001,22 +1018,22 @@ dependencies: tslib "^2.5.0" -"@aws-sdk/util-user-agent-browser@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.347.0.tgz#90bedd2031561b9d45aef54991eeca49ec8d950b" - integrity sha512-ydxtsKVtQefgbk1Dku1q7pMkjDYThauG9/8mQkZUAVik55OUZw71Zzr3XO8J8RKvQG8lmhPXuAQ0FKAyycc0RA== +"@aws-sdk/util-user-agent-browser@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.357.0.tgz#21c3e6c1a3d610dd279952d3ce00909775019be5" + integrity sha512-JHaWlNIUkPNvXkqeDOrqFzAlAgdwZK5mZw7FQnCRvf8tdSogpGZSkuyb9Z6rLD9gC40Srbc2nepO1cFpeMsDkA== dependencies: - "@aws-sdk/types" "3.347.0" + "@aws-sdk/types" "3.357.0" bowser "^2.11.0" tslib "^2.5.0" -"@aws-sdk/util-user-agent-node@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.347.0.tgz#a959abaeac35c434890f77dc78cc8bf0c910d85f" - integrity sha512-6X0b9qGsbD1s80PmbaB6v1/ZtLfSx6fjRX8caM7NN0y/ObuLoX8LhYnW6WlB2f1+xb4EjaCNgpP/zCf98MXosw== +"@aws-sdk/util-user-agent-node@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.357.0.tgz#a656cebce558b602e753e45a3b8174dc7c0f1fcf" + integrity sha512-RdpQoaJWQvcS99TVgSbT451iGrlH4qpWUWFA9U1IRhxOSsmC1hz8ME7xc8nci9SREx/ZlfT3ai6LpoAzAtIEMA== dependencies: - "@aws-sdk/node-config-provider" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/node-config-provider" "3.357.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" "@aws-sdk/util-utf8-browser@^3.0.0": @@ -1034,13 +1051,13 @@ "@aws-sdk/util-buffer-from" "3.310.0" tslib "^2.5.0" -"@aws-sdk/util-waiter@3.347.0": - version "3.347.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-waiter/-/util-waiter-3.347.0.tgz#c1edc4467198ce2dfce1e17e917e1cb7e2e41bbe" - integrity sha512-3ze/0PkwkzUzLncukx93tZgGL0JX9NaP8DxTi6WzflnL/TEul5Z63PCruRNK0om17iZYAWKrf8q2mFoHYb4grA== +"@aws-sdk/util-waiter@3.357.0": + version "3.357.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-waiter/-/util-waiter-3.357.0.tgz#31fdaf289ed60a633178b39e3b258f9b42a1cbe3" + integrity sha512-jQQGA5G8bm0JP5C4U85VzMpkFHdeeT7fOSUncXLG9Sh8Ambzi4XTud8m5/dA7aNJkvPwZeIF9QdgWCOzpkp1xA== dependencies: - "@aws-sdk/abort-controller" "3.347.0" - "@aws-sdk/types" "3.347.0" + "@aws-sdk/abort-controller" "3.357.0" + "@aws-sdk/types" "3.357.0" tslib "^2.5.0" "@aws-sdk/xml-builder@3.310.0": @@ -1051,52 +1068,52 @@ tslib "^2.5.0" "@babel/code-frame@^7.0.0": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" - integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" + integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== dependencies: - "@babel/highlight" "^7.18.6" + "@babel/highlight" "^7.22.5" "@babel/helper-module-imports@^7.16.7": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" - integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" + integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== dependencies: - "@babel/types" "^7.21.4" + "@babel/types" "^7.22.5" -"@babel/helper-string-parser@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz#2b3eea65443c6bdc31c22d037c65f6d323b6b2bd" - integrity sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w== +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== -"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== +"@babel/helper-validator-identifier@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" + integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== +"@babel/highlight@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" + integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== dependencies: - "@babel/helper-validator-identifier" "^7.18.6" + "@babel/helper-validator-identifier" "^7.22.5" chalk "^2.0.0" js-tokens "^4.0.0" "@babel/runtime@^7.1.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.19.0", "@babel/runtime@^7.20.6", "@babel/runtime@^7.21.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7": - version "7.22.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.3.tgz#0a7fce51d43adbf0f7b517a71f4c3aaca92ebcbb" - integrity sha512-XsDuspWKLUsxwCp6r7EhsExHtYfbe5oAGQ19kqngTdCPUoPQzOPdUbD/pB9PJiwb2ptYKQDjSJT3R6dC+EPqfQ== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.5.tgz#8564dd588182ce0047d55d7a75e93921107b57ec" + integrity sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA== dependencies: regenerator-runtime "^0.13.11" -"@babel/types@^7.21.4": - version "7.22.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.4.tgz#56a2653ae7e7591365dabf20b76295410684c071" - integrity sha512-Tx9x3UBHTTsMSW85WB2kphxYQVvrZ/t1FxD88IpSgIjiUJlCm9z+xWIDwyo1vffTwSqteqyznB8ZE9vYYk16zA== +"@babel/types@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" + integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== dependencies: - "@babel/helper-string-parser" "^7.21.5" - "@babel/helper-validator-identifier" "^7.19.1" + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" to-fast-properties "^2.0.0" "@bcherny/json-schema-ref-parser@9.0.9": @@ -1109,6 +1126,13 @@ call-me-maybe "^1.0.1" js-yaml "^4.1.0" +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + "@csstools/postcss-cascade-layers@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz#8a997edf97d34071dd2e37ea6022447dd9e795ad" @@ -1292,9 +1316,9 @@ stylis "4.2.0" "@emotion/css@^11.10.5": - version "11.11.0" - resolved "https://registry.yarnpkg.com/@emotion/css/-/css-11.11.0.tgz#dad6a27a77d5e5cbb0287674c3ace76d762563ca" - integrity sha512-m4g6nKzZyiKyJ3WOfdwrBdcujVcpaScIWHAnyNKPm/A/xJKwfXPfQAbEVi1kgexWTDakmg+r2aDj0KvnMTo4oQ== + version "11.11.2" + resolved "https://registry.yarnpkg.com/@emotion/css/-/css-11.11.2.tgz#e5fa081d0c6e335352e1bc2b05953b61832dca5a" + integrity sha512-VJxe1ucoMYMS7DkiMdC2T7PWNbrEI0a39YRiyDvK2qq4lXwjRbVP/z4lpG+odCsRzadlR+1ywwrTzhdm5HNdew== dependencies: "@emotion/babel-plugin" "^11.11.0" "@emotion/cache" "^11.11.0" @@ -1389,10 +1413,15 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.42.0": - version "8.42.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.42.0.tgz#484a1d638de2911e6f5a30c12f49c7e4a3270fb6" - integrity sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw== +"@eslint/js@8.43.0": + version "8.43.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.43.0.tgz#559ca3d9ddbd6bf907ad524320a0d14b85586af0" + integrity sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg== + +"@faceless-ui/css-grid@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@faceless-ui/css-grid/-/css-grid-1.2.0.tgz#53d3301f89151a0022d68e60d2d2794662504be4" + integrity sha512-MY+63ItIoY9J+Lnmku9tzgKfSwh1r8QaW0m4OQDEKvtrY7Kv0zQ3AtmOGIWDZoZeLhbmpy2MoTyzLvrSDUdn7g== "@faceless-ui/modal@^2.0.1": version "2.0.1" @@ -1414,17 +1443,22 @@ resolved "https://registry.yarnpkg.com/@faceless-ui/window-info/-/window-info-2.1.1.tgz#ed1474a60ab794295bca4c29e295b1e11a584d22" integrity sha512-gMAgda7beR4CNpBIXjgRVn97ek0LG3PAj9lxmoYdg574IEzLFZAh3eAYtTaS2XLKgb4+IHhsuBzlGmHbeOo2Aw== -"@floating-ui/core@^1.2.6": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.2.6.tgz#d21ace437cc919cdd8f1640302fa8851e65e75c0" - integrity sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg== +"@floating-ui/core@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.3.1.tgz#4d795b649cc3b1cbb760d191c80dcb4353c9a366" + integrity sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g== "@floating-ui/dom@^1.0.1": - version "1.2.9" - resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.2.9.tgz#b9ed1c15d30963419a6736f1b7feb350dd49c603" - integrity sha512-sosQxsqgxMNkV3C+3UqTS6LxP7isRLwX8WMepp843Rb3/b0Wz8+MdUkxJksByip3C2WwLugLHN1b4ibn//zKwQ== + version "1.4.3" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.4.3.tgz#0854a3297ea03894932381f3ea1403fab3a6e602" + integrity sha512-nB/68NyaQlcdY22L+Fgd1HERQ7UGv7XFN+tPxwrEfQL4nKtAP/jIZnZtpUlXbtV+VEGHh6W/63Gy2C5biWI3sA== dependencies: - "@floating-ui/core" "^1.2.6" + "@floating-ui/core" "^1.3.1" + +"@graphql-typed-document-node/core@^3.1.1": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" + integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== "@hapi/hoek@^9.0.0": version "9.3.0" @@ -1476,32 +1510,20 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jridgewell/gen-mapping@^0.3.0": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - "@jridgewell/resolve-uri@3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== "@jridgewell/source-map@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.3.tgz#8108265659d4c33e72ffe14e33d6cc5eb59f2fda" - integrity sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" + version "0.3.4" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.4.tgz#856a142864530d4059dda415659b48d37db2d556" + integrity sha512-KE/SxsDqNs3rrWwFHcRh15ZLVFrI0YoZtgAdIyIq9k5hUNmiWRXXThPomIxHuL20sLdgzbDFyvkUMna14bvtrw== "@jridgewell/sourcemap-codec@1.4.14": version "1.4.14" @@ -1513,7 +1535,15 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18": version "0.3.18" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== @@ -1545,6 +1575,63 @@ dependencies: "@monaco-editor/loader" "^1.3.3" +"@next/env@13.4.7": + version "13.4.7" + resolved "https://registry.yarnpkg.com/@next/env/-/env-13.4.7.tgz#ca12d341edb128ca70384635bd2794125ffb1c01" + integrity sha512-ZlbiFulnwiFsW9UV1ku1OvX/oyIPLtMk9p/nnvDSwI0s7vSoZdRtxXNsaO+ZXrLv/pMbXVGq4lL8TbY9iuGmVw== + +"@next/eslint-plugin-next@^13.1.6": + version "13.4.7" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-13.4.7.tgz#7efeff2af76be0d9a176a957da21e3710b2e79cf" + integrity sha512-ANEPltxzXbyyG7CvqxdY4PmeM5+RyWdAJGufTHnU+LA/i3J6IDV2r8Z4onKwskwKEhwqzz5lMaSYGGXLyHX+mg== + dependencies: + glob "7.1.7" + +"@next/swc-darwin-arm64@13.4.7": + version "13.4.7" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.7.tgz#5e36c26dda5b0bc0ea15d8555d0abd71a1ef4b5d" + integrity sha512-VZTxPv1b59KGiv/pZHTO5Gbsdeoxcj2rU2cqJu03btMhHpn3vwzEK0gUSVC/XW96aeGO67X+cMahhwHzef24/w== + +"@next/swc-darwin-x64@13.4.7": + version "13.4.7" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.7.tgz#4c14ec14b200373cd602589086cb1253a28cd803" + integrity sha512-gO2bw+2Ymmga+QYujjvDz9955xvYGrWofmxTq7m70b9pDPvl7aDFABJOZ2a8SRCuSNB5mXU8eTOmVVwyp/nAew== + +"@next/swc-linux-arm64-gnu@13.4.7": + version "13.4.7" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.7.tgz#e7819167ec876ddac5a959e4c7bce4d001f0e924" + integrity sha512-6cqp3vf1eHxjIDhEOc7Mh/s8z1cwc/l5B6ZNkOofmZVyu1zsbEM5Hmx64s12Rd9AYgGoiCz4OJ4M/oRnkE16/Q== + +"@next/swc-linux-arm64-musl@13.4.7": + version "13.4.7" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.7.tgz#0cac0f01d4e308b439e6c33182bed77835fe383b" + integrity sha512-T1kD2FWOEy5WPidOn1si0rYmWORNch4a/NR52Ghyp4q7KyxOCuiOfZzyhVC5tsLIBDH3+cNdB5DkD9afpNDaOw== + +"@next/swc-linux-x64-gnu@13.4.7": + version "13.4.7" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.7.tgz#feb61e16a68c67f3ef230f30d9562a3783c7bd59" + integrity sha512-zaEC+iEiAHNdhl6fuwl0H0shnTzQoAoJiDYBUze8QTntE/GNPfTYpYboxF5LRYIjBwETUatvE0T64W6SKDipvg== + +"@next/swc-linux-x64-musl@13.4.7": + version "13.4.7" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.7.tgz#02179ecfa6d24a2956c2b54f7d27a050568bbf24" + integrity sha512-X6r12F8d8SKAtYJqLZBBMIwEqcTRvUdVm+xIq+l6pJqlgT2tNsLLf2i5Cl88xSsIytBICGsCNNHd+siD2fbWBA== + +"@next/swc-win32-arm64-msvc@13.4.7": + version "13.4.7" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.7.tgz#274b7f00a2ec5934af73db15da8459e8647bfaed" + integrity sha512-NPnmnV+vEIxnu6SUvjnuaWRglZzw4ox5n/MQTxeUhb5iwVWFedolPFebMNwgrWu4AELwvTdGtWjqof53AiWHcw== + +"@next/swc-win32-ia32-msvc@13.4.7": + version "13.4.7" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.7.tgz#4a95c106a6db2eee3a4c1352b77995e298d7446a" + integrity sha512-6Hxijm6/a8XqLQpOOf/XuwWRhcuc/g4rBB2oxjgCMuV9Xlr2bLs5+lXyh8w9YbAUMYR3iC9mgOlXbHa79elmXw== + +"@next/swc-win32-x64-msvc@13.4.7": + version "13.4.7" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.7.tgz#5137780f58d7f0230adc293a0429821bfa7d8c21" + integrity sha512-sW9Yt36Db1nXJL+mTr2Wo0y+VkPWeYhygvcHj1FF0srVtV+VoDjxleKtny21QHaG05zdeZnw2fCtf2+dEqgwqA== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1572,21 +1659,21 @@ integrity sha512-Il59+0C4E/bI6uM2hont3I+oABWkJZbfbItubje5SGMrXkymUq8jT/UZRk0eCt918bB7gihxDXx8guFnR/aNIw== "@payloadcms/plugin-cloud@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@payloadcms/plugin-cloud/-/plugin-cloud-2.0.0.tgz#36a468e2effb1ff722078d7a7cd5f7cdad585941" - integrity sha512-fSBi9M3ZodoFX7K7MARSy9bS4rfXqqlRith0t/5IJ23exiXVKUBxgBSjEosJIFiu9gMwWsOK25RKKC8fQrbKmQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/@payloadcms/plugin-cloud/-/plugin-cloud-2.1.0.tgz#0263cfbb41505bb6e6449b8b41cdcb5cf60f58a9" + integrity sha512-EaIIVp+eAUX52k+4jL5LQCOvASD+cKqFbyCu9jtFyN1wvFn+bw5o3G0QAXFHrxCdrP7oYDq7TeWc0BzHap7i2g== dependencies: "@aws-sdk/client-cognito-identity" "^3.289.0" "@aws-sdk/client-s3" "^3.142.0" "@aws-sdk/credential-providers" "^3.289.0" "@aws-sdk/lib-storage" "^3.267.0" amazon-cognito-identity-js "^6.1.2" - resend "^0.12.0" + resend "^0.15.3" "@payloadcms/plugin-nested-docs@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@payloadcms/plugin-nested-docs/-/plugin-nested-docs-1.0.4.tgz#8a9933bbf0813839804be4fa20f9ddf401ed9bec" - integrity sha512-vjhk3fE/uRkUSNg0UuAv/NIEvDDMRcbEHSgxOo/MbmXOT2LFsh3fPq+Gq4+cL1H9s+FStiIkygigv7J5fgOZwA== + version "1.0.5" + resolved "https://registry.yarnpkg.com/@payloadcms/plugin-nested-docs/-/plugin-nested-docs-1.0.5.tgz#a4e63cf904c0923e02252c52765c1a5af38c08c6" + integrity sha512-FXNIr0xVO5uSmwLjckBTSA0t5UzgQBCWZVcAMAE+wzjelX3C29y0iUqBYsNPQK3DBua7ko92btV2cWuZVRMIqA== "@payloadcms/plugin-seo@^1.0.10": version "1.0.13" @@ -1613,10 +1700,10 @@ resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== -"@react-email/render@0.0.6": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@react-email/render/-/render-0.0.6.tgz#4e47ee6df226c86d548c38f96e34844acb944160" - integrity sha512-6zs7WZbd37TcPT1OmMPH/kcBpv0QSi+k3om7LyDnbdIcrbwOO/OstVwUaa/6zgvDvnq9Y2wOosbru7j5kUrW9A== +"@react-email/render@0.0.7": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@react-email/render/-/render-0.0.7.tgz#92a14e03a59160c39bceeff50517c7058721ab6f" + integrity sha512-hMMhxk6TpOcDC5qnKzXPVJoVGEwfm+U5bGOPH+MyTTlx0F02RLQygcATBKsbP7aI/mvkmBAZoFbgPIHop7ovug== dependencies: html-to-text "9.0.3" pretty "2.0.0" @@ -1654,85 +1741,104 @@ integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== "@smithy/protocol-http@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-1.0.1.tgz#62fd73d73db285fd8e9a2287ed2904ac66e0d43f" - integrity sha512-9OrEn0WfOVtBNYJUjUAn9AOiJ4lzERCJJ/JeZs8E6yajTGxBaFRxUnNBHiNqoDJVg076hY36UmEnPx7xXrvUSg== + version "1.1.0" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-1.1.0.tgz#caf22e01cb825d7490a4915e03d6fa64954ff535" + integrity sha512-H5y/kZOqfJSqRkwtcAoVbqONmhdXwSgYNJ1Glk5Ry8qlhVVy5qUzD9EklaCH8/XLnoCsLO/F/Giee8MIvaBRkg== dependencies: - "@smithy/types" "^1.0.0" + "@smithy/types" "^1.1.0" tslib "^2.5.0" -"@smithy/types@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@smithy/types/-/types-1.0.0.tgz#87ab6131fe5e19cbd4d383ffb94d2b806d027d38" - integrity sha512-kc1m5wPBHQCTixwuaOh9vnak/iJm21DrSf9UK6yDE5S3mQQ4u11pqAUiKWnlrZnYkeLfAI9UEHj9OaMT1v5Umg== +"@smithy/types@^1.0.0", "@smithy/types@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-1.1.0.tgz#f30a23202c97634cca5c1ac955a9bf149c955226" + integrity sha512-KzmvisMmuwD2jZXuC9e65JrgsZM97y5NpDU7g347oB+Q+xQLU6hQZ5zFNNbEfwwOJHoOvEVTna+dk1h/lW7alw== dependencies: tslib "^2.5.0" -"@swc/core-darwin-arm64@1.3.62": - version "1.3.62" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.62.tgz#dafb50bf784c6b7b40dce6d8cf0605f6729812cb" - integrity sha512-MmGilibITz68LEje6vJlKzc2gUUSgzvB3wGLSjEORikTNeM7P8jXVxE4A8fgZqDeudJUm9HVWrxCV+pHDSwXhA== +"@stripe/react-stripe-js@^1.16.3": + version "1.16.5" + resolved "https://registry.yarnpkg.com/@stripe/react-stripe-js/-/react-stripe-js-1.16.5.tgz#51cf862b50ca91ae6193c77a5bec889e81047f10" + integrity sha512-lVPW3IfwdacyS22pP+nBB6/GNFRRhT/4jfgAK6T2guQmtzPwJV1DogiGGaBNhiKtSY18+yS8KlHSu+PvZNclvQ== + dependencies: + prop-types "^15.7.2" -"@swc/core-darwin-x64@1.3.62": - version "1.3.62" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.62.tgz#324bd144268860338040db64c42c2345fcaaebcf" - integrity sha512-Xl93MMB3sCWVlYWuQIB+v6EQgzoiuQYK5tNt9lsHoIEVu2zLdkQjae+5FUHZb1VYqCXIiWcULFfVz0R4Sjb7JQ== +"@stripe/stripe-js@^1.46.0": + version "1.54.1" + resolved "https://registry.yarnpkg.com/@stripe/stripe-js/-/stripe-js-1.54.1.tgz#e298b80c2963d9e622ea355db6c35df48e08cd89" + integrity sha512-smEXPu1GKMcAj9g2luT16+oXfg2jAwyc68t2Dm5wdtYl3p8PqQaZEiI8tQmboaQAjgF8pIGma6byz1T1vgmpbA== -"@swc/core-linux-arm-gnueabihf@1.3.62": - version "1.3.62" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.62.tgz#9b5ca188ea3c91827e43e4287bd20ce2a7cb7d81" - integrity sha512-nJsp6O7kCtAjTTMcIjVB0g5y1JNiYAa5q630eiwrnaHUusEFoANDdORI3Z9vXeikMkng+6yIv9/V8Rb093xLjQ== +"@swc/core-darwin-arm64@1.3.67": + version "1.3.67" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.67.tgz#8076dcd75862b92a7987a8da5a24986ab559d793" + integrity sha512-zCT2mCkOBVNf5uJDcQ3A9KDoO1OEaGdfjsRTZTo7sejDd9AXLfJg+xgyCBBrK2jNS/uWcT21IvSv3LqKp4K8pA== -"@swc/core-linux-arm64-gnu@1.3.62": - version "1.3.62" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.62.tgz#b208b005223fd9c4c4a12fc0e24070c5e902965f" - integrity sha512-XGsV93vpUAopDt5y6vPwbK1Nc/MlL55L77bAZUPIiosWD1cWWPHNtNSpriE6+I+JiMHe0pqtfS/SSTk6ZkFQVw== +"@swc/core-darwin-x64@1.3.67": + version "1.3.67" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.67.tgz#49da279b06232a388e9c9179db1cbff81d3dee18" + integrity sha512-hXTVsfTatPEec5gFVyjGj3NccKZsYj/OXyHn6XA+l3Q76lZzGm2ISHdku//XNwXu8OmJ0HhS7LPsC4XXwxXQhg== -"@swc/core-linux-arm64-musl@1.3.62": - version "1.3.62" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.62.tgz#bf66add093fa732d3b7f629e00b6ef9bf3c483f2" - integrity sha512-ESUmJjSlTTkoBy9dMG49opcNn8BmviqStMhwyeD1G8XRnmRVCZZgoBOKdvCXmJhw8bQXDhZumeaTUB+OFUKVXg== +"@swc/core-linux-arm-gnueabihf@1.3.67": + version "1.3.67" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.67.tgz#668645ac62ea7beb4319d177f43cdefb0326cd90" + integrity sha512-l8AKL0RkDL5FRTeWMmjoz9zvAc37amxC+0rheaNwE+gZya7ObyNjnIYz5FwN+3y+z6JFU7LS2x/5f6iwruv6pg== -"@swc/core-linux-x64-gnu@1.3.62": - version "1.3.62" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.62.tgz#b97eee374986388b71d87c67d7edb8208356dde2" - integrity sha512-wnHJkt3ZBrax3SFnUHDcncG6mrSg9ZZjMhQV9Mc3JL1x1s1Gy9rGZCoBNnV/BUZWTemxIBcQbANRSDut/WO+9A== +"@swc/core-linux-arm64-gnu@1.3.67": + version "1.3.67" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.67.tgz#709bccc5ced37b64ab5ae479bf73fc2ab5ef0b48" + integrity sha512-S8zOB1AXEpb7kmtgMaFNeLAj01VOky4B0RNZ+uJWigdrDiFT67FeZzNHUNmNSOU0QM79G+Lie/xD/beqEw0vDg== -"@swc/core-linux-x64-musl@1.3.62": - version "1.3.62" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.62.tgz#548ccdef6d7535ee7fea6ec9488322411f10da1a" - integrity sha512-9oRbuTC/VshB66Rgwi3pTq3sPxSTIb8k9L1vJjES+dDMKa29DAjPtWCXG/pyZ00ufpFZgkGEuAHH5uqUcr1JQg== +"@swc/core-linux-arm64-musl@1.3.67": + version "1.3.67" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.67.tgz#9187378e17200b1ffb3d06b78c4a33f85dd12efb" + integrity sha512-Fex8J8ASrt13pmOr2xWh41tEeKWwXYGk3sV8L/aGHiYtIJEUi2f+RtMx3jp7LIdOD8pQptor7i5WBlfR9jhp8A== -"@swc/core-win32-arm64-msvc@1.3.62": - version "1.3.62" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.62.tgz#fc0ca735b23c017fe8ff6f85aa4788ddd1ac583d" - integrity sha512-zv14vlF2VRrxS061XkfzGjCYnOrEo5glKJjLK5PwUKysIoVrx/L8nAbFxjkX5cObdlyoqo+ekelyBPAO+4bS0w== +"@swc/core-linux-x64-gnu@1.3.67": + version "1.3.67" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.67.tgz#bcdaf46c430bc85a59ae9b38ab9bd540aa1fbd2d" + integrity sha512-9bz9/bMphrv5vDg0os/d8ve0QgFpDzJgZgHUaHiGwcmfnlgdOSAaYJLIvWdcGTjZuQeV4L0m+iru357D9TXEzA== -"@swc/core-win32-ia32-msvc@1.3.62": - version "1.3.62" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.62.tgz#f8dfbb4f0763d2db5ef420b04da3b5cb73897756" - integrity sha512-8MC/PZQSsOP2iA/81tAfNRqMWyEqTS/8zKUI67vPuLvpx6NAjRn3E9qBv7iFqH79iqZNzqSMo3awnLrKZyFbcw== +"@swc/core-linux-x64-musl@1.3.67": + version "1.3.67" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.67.tgz#fbb63517cd72eaa3250726a4209c179ada520a57" + integrity sha512-ED0H6oLvQmhgo9zs8usmEA/lcZPGTu7K9og9K871b7HhHX0h/R+Xg2pb5KD7S/GyUHpfuopxjVROm+h6X1jMUA== -"@swc/core-win32-x64-msvc@1.3.62": - version "1.3.62" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.62.tgz#e661ec99c5ac91f1cd63c02b5f114f73f55e7b15" - integrity sha512-GJSmUJ95HKHZXAxiuPUmrcm/S3ivQvEzXhOZaIqYBIwUsm02vFZkClsV7eIKzWjso1t0+I/8MjrnUNaSWqh1rQ== +"@swc/core-win32-arm64-msvc@1.3.67": + version "1.3.67" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.67.tgz#dadce08f9245c57e9c54c1bbcc815c4bd2077fba" + integrity sha512-J1yFDLgPFeRtA8t5E159OXX+ww1gbkFg70yr4OP7EsOkOD1uMkuTf9yK/woHfsaVJlUYjJHzw7MkUIEgQBucqQ== + +"@swc/core-win32-ia32-msvc@1.3.67": + version "1.3.67" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.67.tgz#be026a3a389e64c24fe67a329c04eccf744ac45e" + integrity sha512-bK11/KtasewqHxzkjKUBXRE9MSAidbZCxrgJUd49bItG2N/DHxkwMYu8Xkh5VDHdTYWv/2idYtf/VM9Yi+53qw== + +"@swc/core-win32-x64-msvc@1.3.67": + version "1.3.67" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.67.tgz#6fe2f3854d91b58f6e0b00f99366cfd84334b2ea" + integrity sha512-GxzUU3+NA3cPcYxCxtfSQIS2ySD7Z8IZmKTVaWA9GOUQbKLyCE8H5js31u39+0op/1gNgxOgYFDoj2lUyvLCqw== "@swc/core@^1.3.26": - version "1.3.62" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.62.tgz#bc93ede0981ee69fe17d753e1d693ce3afa6c16b" - integrity sha512-J58hWY+/G8vOr4J6ZH9hLg0lMSijZtqIIf4HofZezGog/pVX6sJyBJ40dZ1ploFkDIlWTWvJyqtpesBKS73gkQ== + version "1.3.67" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.67.tgz#e0eb33285abb07cb0fd097d4190096977971da1e" + integrity sha512-9DROjzfAEt0xt0CDkOYsWpkUPyne8fl5ggWGon049678BOM7p0R0dmaalZGAsKatG5vYP1IWSKWsKhJIubDCsQ== optionalDependencies: - "@swc/core-darwin-arm64" "1.3.62" - "@swc/core-darwin-x64" "1.3.62" - "@swc/core-linux-arm-gnueabihf" "1.3.62" - "@swc/core-linux-arm64-gnu" "1.3.62" - "@swc/core-linux-arm64-musl" "1.3.62" - "@swc/core-linux-x64-gnu" "1.3.62" - "@swc/core-linux-x64-musl" "1.3.62" - "@swc/core-win32-arm64-msvc" "1.3.62" - "@swc/core-win32-ia32-msvc" "1.3.62" - "@swc/core-win32-x64-msvc" "1.3.62" + "@swc/core-darwin-arm64" "1.3.67" + "@swc/core-darwin-x64" "1.3.67" + "@swc/core-linux-arm-gnueabihf" "1.3.67" + "@swc/core-linux-arm64-gnu" "1.3.67" + "@swc/core-linux-arm64-musl" "1.3.67" + "@swc/core-linux-x64-gnu" "1.3.67" + "@swc/core-linux-x64-musl" "1.3.67" + "@swc/core-win32-arm64-msvc" "1.3.67" + "@swc/core-win32-ia32-msvc" "1.3.67" + "@swc/core-win32-x64-msvc" "1.3.67" + +"@swc/helpers@0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.1.tgz#e9031491aa3f26bfcc974a67f48bd456c8a5357a" + integrity sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg== + dependencies: + tslib "^2.4.0" "@swc/register@^0.1.10": version "0.1.10" @@ -1753,6 +1859,26 @@ resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + "@types/body-parser@*": version "1.19.2" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" @@ -1777,9 +1903,9 @@ "@types/estree" "*" "@types/eslint@*": - version "8.40.0" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.40.0.tgz#ae73dc9ec5237f2794c4f79efd6a4c73b13daf23" - integrity sha512-nbq2mvc/tBrK9zQQuItvjJl++GTN5j06DaPtp3hZCpngmG6Q3xoyEmd0TwZI0gAy/G1X0zhGBbr2imsGFdFV0g== + version "8.40.2" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.40.2.tgz#2833bc112d809677864a4b0e7d1de4f04d7dac2d" + integrity sha512-PRVjQ4Eh9z9pmmtaq8nTjZjQwKFk7YIHIud3lRoKRBgUQjgjRmoGxxGEPXQkF+lH7QkHJRNr5F4aBgYCW0lqpQ== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -1822,6 +1948,11 @@ resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== +"@types/http-errors@*": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.1.tgz#20172f9578b225f6c7da63446f56d4ce108d5a65" + integrity sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ== + "@types/is-hotkey@^0.1.1": version "0.1.7" resolved "https://registry.yarnpkg.com/@types/is-hotkey/-/is-hotkey-0.1.7.tgz#30ec6d4234895230b576728ef77e70a52962f3b3" @@ -1877,9 +2008,9 @@ integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== "@types/node@*", "@types/node@>=8.1.0": - version "20.2.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.2.5.tgz#26d295f3570323b2837d322180dfbf1ba156fefb" - integrity sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ== + version "20.3.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.2.tgz#fa6a90f2600e052a03c18b8cb3fd83dd4e599898" + integrity sha512-vOBLVQeCQfIcF/2Y7eKFTqrMnizK5lRNQ7ykML/5RuwVXVWxYkgwS7xbt4B6fKCUPgbSL5FSsjHQpaGQP/dQmw== "@types/node@18.11.3": version "18.11.3" @@ -1919,9 +2050,9 @@ "@types/react" "*" "@types/react@*": - version "18.2.9" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.9.tgz#9207f8571afdc59a9c9c30df50e8ad2591ecefaf" - integrity sha512-pL3JAesUkF7PEQGxh5XOwdXGV907te6m1/Qe1ERJLgomojS6Ne790QiA7GUl434JEkFA2aAaB6qJ5z4e1zJn/w== + version "18.2.14" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.14.tgz#fa7a6fecf1ce35ca94e74874f70c56ce88f7a127" + integrity sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -1955,10 +2086,11 @@ "@types/node" "*" "@types/serve-static@*": - version "1.15.1" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.1.tgz#86b1753f0be4f9a1bee68d459fcda5be4ea52b5d" - integrity sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ== + version "1.15.2" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.2.tgz#3e5419ecd1e40e7405d34093f10befb43f63381a" + integrity sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw== dependencies: + "@types/http-errors" "*" "@types/mime" "*" "@types/node" "*" @@ -1970,9 +2102,9 @@ "@types/node" "*" "@types/uuid@^9.0.0": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.1.tgz#98586dc36aee8dacc98cc396dbca8d0429647aa6" - integrity sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA== + version "9.0.2" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.2.tgz#ede1d1b1e451548d44919dc226253e32a6952c4b" + integrity sha512-kNnC1GFBLuhImSnV7w4njQkUiJi0ZXUycu1rUaouPqiKlXkh77JKgdRnTAp1x5eBwcIwbtI+3otwzuIDEuDoxQ== "@types/webidl-conversions@*": version "7.0.0" @@ -2000,14 +2132,14 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^5.51.0": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.9.tgz#2604cfaf2b306e120044f901e20c8ed926debf15" - integrity sha512-4uQIBq1ffXd2YvF7MAvehWKW3zVv/w+mSfRAu+8cKbfj3nwzyqJLNcZJpQ/WZ1HLbJDiowwmQ6NO+63nCA+fqA== + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.60.1.tgz#81382d6ecb92b8dda70e91f9035611cb2fecd1c3" + integrity sha512-KSWsVvsJsLJv3c4e73y/Bzt7OpqMCADUO846bHcuWYSYM19bldbAeDv7dYyV0jwkbMfJ2XdlzwjhXtuD7OY6bw== dependencies: "@eslint-community/regexpp" "^4.4.0" - "@typescript-eslint/scope-manager" "5.59.9" - "@typescript-eslint/type-utils" "5.59.9" - "@typescript-eslint/utils" "5.59.9" + "@typescript-eslint/scope-manager" "5.60.1" + "@typescript-eslint/type-utils" "5.60.1" + "@typescript-eslint/utils" "5.60.1" debug "^4.3.4" grapheme-splitter "^1.0.4" ignore "^5.2.0" @@ -2016,71 +2148,71 @@ tsutils "^3.21.0" "@typescript-eslint/parser@^5.51.0": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.59.9.tgz#a85c47ccdd7e285697463da15200f9a8561dd5fa" - integrity sha512-FsPkRvBtcLQ/eVK1ivDiNYBjn3TGJdXy2fhXX+rc7czWl4ARwnpArwbihSOHI2Peg9WbtGHrbThfBUkZZGTtvQ== + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.60.1.tgz#0f2f58209c0862a73e3d5a56099abfdfa21d0fd3" + integrity sha512-pHWlc3alg2oSMGwsU/Is8hbm3XFbcrb6P5wIxcQW9NsYBfnrubl/GhVVD/Jm/t8HXhA2WncoIRfBtnCgRGV96Q== dependencies: - "@typescript-eslint/scope-manager" "5.59.9" - "@typescript-eslint/types" "5.59.9" - "@typescript-eslint/typescript-estree" "5.59.9" + "@typescript-eslint/scope-manager" "5.60.1" + "@typescript-eslint/types" "5.60.1" + "@typescript-eslint/typescript-estree" "5.60.1" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.59.9.tgz#eadce1f2733389cdb58c49770192c0f95470d2f4" - integrity sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ== +"@typescript-eslint/scope-manager@5.60.1": + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.60.1.tgz#35abdb47f500c68c08f2f2b4f22c7c79472854bb" + integrity sha512-Dn/LnN7fEoRD+KspEOV0xDMynEmR3iSHdgNsarlXNLGGtcUok8L4N71dxUgt3YvlO8si7E+BJ5Fe3wb5yUw7DQ== dependencies: - "@typescript-eslint/types" "5.59.9" - "@typescript-eslint/visitor-keys" "5.59.9" + "@typescript-eslint/types" "5.60.1" + "@typescript-eslint/visitor-keys" "5.60.1" -"@typescript-eslint/type-utils@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.59.9.tgz#53bfaae2e901e6ac637ab0536d1754dfef4dafc2" - integrity sha512-ksEsT0/mEHg9e3qZu98AlSrONAQtrSTljL3ow9CGej8eRo7pe+yaC/mvTjptp23Xo/xIf2mLZKC6KPv4Sji26Q== +"@typescript-eslint/type-utils@5.60.1": + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.60.1.tgz#17770540e98d65ab4730c7aac618003f702893f4" + integrity sha512-vN6UztYqIu05nu7JqwQGzQKUJctzs3/Hg7E2Yx8rz9J+4LgtIDFWjjl1gm3pycH0P3mHAcEUBd23LVgfrsTR8A== dependencies: - "@typescript-eslint/typescript-estree" "5.59.9" - "@typescript-eslint/utils" "5.59.9" + "@typescript-eslint/typescript-estree" "5.60.1" + "@typescript-eslint/utils" "5.60.1" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.59.9.tgz#3b4e7ae63718ce1b966e0ae620adc4099a6dcc52" - integrity sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw== +"@typescript-eslint/types@5.60.1": + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.60.1.tgz#a17473910f6b8d388ea83c9d7051af89c4eb7561" + integrity sha512-zDcDx5fccU8BA0IDZc71bAtYIcG9PowaOwaD8rjYbqwK7dpe/UMQl3inJ4UtUK42nOCT41jTSCwg76E62JpMcg== -"@typescript-eslint/typescript-estree@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.9.tgz#6bfea844e468427b5e72034d33c9fffc9557392b" - integrity sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA== +"@typescript-eslint/typescript-estree@5.60.1": + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.60.1.tgz#8c71824b7165b64d5ebd7aa42968899525959834" + integrity sha512-hkX70J9+2M2ZT6fhti5Q2FoU9zb+GeZK2SLP1WZlvUDqdMbEKhexZODD1WodNRyO8eS+4nScvT0dts8IdaBzfw== dependencies: - "@typescript-eslint/types" "5.59.9" - "@typescript-eslint/visitor-keys" "5.59.9" + "@typescript-eslint/types" "5.60.1" + "@typescript-eslint/visitor-keys" "5.60.1" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.59.9.tgz#adee890107b5ffe02cd46fdaa6c2125fb3c6c7c4" - integrity sha512-1PuMYsju/38I5Ggblaeb98TOoUvjhRvLpLa1DoTOFaLWqaXl/1iQ1eGurTXgBY58NUdtfTXKP5xBq7q9NDaLKg== +"@typescript-eslint/utils@5.60.1": + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.60.1.tgz#6861ebedbefba1ac85482d2bdef6f2ff1eb65b80" + integrity sha512-tiJ7FFdFQOWssFa3gqb94Ilexyw0JVxj6vBzaSpfN/8IhoKkDuSAenUKvsSHw2A/TMpJb26izIszTXaqygkvpQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.59.9" - "@typescript-eslint/types" "5.59.9" - "@typescript-eslint/typescript-estree" "5.59.9" + "@typescript-eslint/scope-manager" "5.60.1" + "@typescript-eslint/types" "5.60.1" + "@typescript-eslint/typescript-estree" "5.60.1" eslint-scope "^5.1.1" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz#9f86ef8e95aca30fb5a705bb7430f95fc58b146d" - integrity sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q== +"@typescript-eslint/visitor-keys@5.60.1": + version "5.60.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.60.1.tgz#19a877358bf96318ec35d90bfe6bd1445cce9434" + integrity sha512-xEYIxKcultP6E/RMKqube11pGjXH1DCo60mQoWhVYyKfLkwbIVVjYxmOenNMxILx0TjCujPTjjnTIVzm09TXIw== dependencies: - "@typescript-eslint/types" "5.59.9" + "@typescript-eslint/types" "5.60.1" eslint-visitor-keys "^3.3.0" "@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": @@ -2221,6 +2353,41 @@ resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1" integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q== +"@wry/context@^0.7.0": + version "0.7.3" + resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.7.3.tgz#240f6dfd4db5ef54f81f6597f6714e58d4f476a1" + integrity sha512-Nl8WTesHp89RF803Se9X3IiHjdmLBrIvPMaJkl+rKVJAYyPsz1TEUbu89943HpvujtSJgDUx9W4vZw3K1Mr3sA== + dependencies: + tslib "^2.3.0" + +"@wry/equality@^0.1.2": + version "0.1.11" + resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.1.11.tgz#35cb156e4a96695aa81a9ecc4d03787bc17f1790" + integrity sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA== + dependencies: + tslib "^1.9.3" + +"@wry/equality@^0.5.0": + version "0.5.6" + resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.6.tgz#cd4a533c72c3752993ab8cbf682d3d20e3cb601e" + integrity sha512-D46sfMTngaYlrH+OspKf8mIJETntFnf6Hsjb0V41jAXJ7Bx2kB8Rv8RCUujuVWYttFtHkUNp7g+FwxNQAr6mXA== + dependencies: + tslib "^2.3.0" + +"@wry/trie@^0.3.0": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.3.2.tgz#a06f235dc184bd26396ba456711f69f8c35097e6" + integrity sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ== + dependencies: + tslib "^2.3.0" + +"@wry/trie@^0.4.0": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.4.3.tgz#077d52c22365871bf3ffcbab8e95cb8bc5689af4" + integrity sha512-I6bHwH0fSf6RqQcnnXLJKhkSXG45MFral3GxPaY4uAl0LYDZM+YDVDAiU9bYwjTuysy1S0IeecWtmq1SZA3M1w== + dependencies: + tslib "^2.3.0" + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -2261,15 +2428,15 @@ acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-walk@^8.0.0: +acorn-walk@^8.0.0, acorn-walk@^8.1.1: version "8.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -acorn@^8.0.4, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.2: - version "8.8.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== +acorn@^8.0.4, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.2: + version "8.9.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.9.0.tgz#78a16e3b2bcc198c10822786fa6679e245db5b59" + integrity sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ== ajv-formats@^2.1.1: version "2.1.1" @@ -2311,9 +2478,9 @@ ajv@^8.0.0, ajv@^8.6.3, ajv@^8.9.0: uri-js "^4.2.2" amazon-cognito-identity-js@^6.1.2: - version "6.2.0" - resolved "https://registry.yarnpkg.com/amazon-cognito-identity-js/-/amazon-cognito-identity-js-6.2.0.tgz#99e96666944429cb8f67b62e4cf7ad77fbe71ad0" - integrity sha512-9Fxrp9+MtLdsJvqOwSaE3ll+pneICeuE3pwj2yDkiyGNWuHx97b8bVLR2bOgfDmDJnY0Hq8QoeXtwdM4aaXJjg== + version "6.3.1" + resolved "https://registry.yarnpkg.com/amazon-cognito-identity-js/-/amazon-cognito-identity-js-6.3.1.tgz#d9a4c1a92f4b059330df8ea075f65106d2605409" + integrity sha512-PxBdufgS8uZShrcIFAsRjmqNXsh/4fXOWUGQOUhKLHWWK1pcp/y+VeFF48avXIWefM8XwsT3JlN6m9J2eHt4LA== dependencies: "@aws-crypto/sha256-js" "1.2.2" buffer "4.9.2" @@ -2358,6 +2525,44 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" +apollo-link-http-common@^0.2.16: + version "0.2.16" + resolved "https://registry.yarnpkg.com/apollo-link-http-common/-/apollo-link-http-common-0.2.16.tgz#756749dafc732792c8ca0923f9a40564b7c59ecc" + integrity sha512-2tIhOIrnaF4UbQHf7kjeQA/EmSorB7+HyJIIrUjJOKBgnXwuexi8aMecRlqTIDWcyVXCeqLhUnztMa6bOH/jTg== + dependencies: + apollo-link "^1.2.14" + ts-invariant "^0.4.0" + tslib "^1.9.3" + +apollo-link-http@^1.5.17: + version "1.5.17" + resolved "https://registry.yarnpkg.com/apollo-link-http/-/apollo-link-http-1.5.17.tgz#499e9f1711bf694497f02c51af12d82de5d8d8ba" + integrity sha512-uWcqAotbwDEU/9+Dm9e1/clO7hTB2kQ/94JYcGouBVLjoKmTeJTUPQKcJGpPwUjZcSqgYicbFqQSoJIW0yrFvg== + dependencies: + apollo-link "^1.2.14" + apollo-link-http-common "^0.2.16" + tslib "^1.9.3" + +apollo-link@^1.2.14: + version "1.2.14" + resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.14.tgz#3feda4b47f9ebba7f4160bef8b977ba725b684d9" + integrity sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg== + dependencies: + apollo-utilities "^1.3.0" + ts-invariant "^0.4.0" + tslib "^1.9.3" + zen-observable-ts "^0.8.21" + +apollo-utilities@^1.3.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.4.tgz#6129e438e8be201b6c55b0f13ce49d2c7175c9cf" + integrity sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig== + dependencies: + "@wry/equality" "^0.1.2" + fast-json-stable-stringify "^2.0.0" + ts-invariant "^0.4.0" + tslib "^1.10.0" + arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" @@ -2439,10 +2644,10 @@ available-typed-arrays@^1.0.5: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -axios@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.4.tgz#f5760cefd9cfb51fd2481acf88c05f67c4523024" - integrity sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ== +axios@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.4.0.tgz#38a7bf1224cd308de271146038b551d725f0be1f" + integrity sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" @@ -2560,12 +2765,12 @@ braces@^3.0.2, braces@~3.0.2: fill-range "^7.0.1" browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.21.4, browserslist@^4.21.5: - version "4.21.7" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.7.tgz#e2b420947e5fb0a58e8f4668ae6e23488127e551" - integrity sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA== + version "4.21.9" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" + integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== dependencies: - caniuse-lite "^1.0.30001489" - electron-to-chromium "^1.4.411" + caniuse-lite "^1.0.30001503" + electron-to-chromium "^1.4.431" node-releases "^2.0.12" update-browserslist-db "^1.0.11" @@ -2624,7 +2829,7 @@ buffer@^6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -busboy@^1.6.0: +busboy@1.6.0, busboy@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== @@ -2677,10 +2882,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001489: - version "1.0.30001495" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001495.tgz#64a0ccef1911a9dcff647115b4430f8eff1ef2d9" - integrity sha512-F6x5IEuigtUfU5ZMQK2jsy5JqUUlEFRVZq8bO2a+ysq5K7jD6PPc9YXZj78xDNS3uNchesp1Jw47YXEqr+Viyg== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001503: + version "1.0.30001509" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001509.tgz#2b7ad5265392d6d2de25cd8776d1ab3899570d14" + integrity sha512-2uDDk+TRiTX5hMcUYT/7CSyzMZxjfGu0vAUjS2g0LSD8UoXOv0LtpH4LxGMemsiPq6LCVIUjNwVM0erkOkGCDA== chalk@^2.0.0: version "2.4.2" @@ -2757,6 +2962,11 @@ cli-color@^2.0.2: memoizee "^0.4.15" timers-ext "^0.1.7" +client-only@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" + integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== + cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -3038,16 +3248,16 @@ css-loader@^5.2.7: semver "^7.3.5" css-minimizer-webpack-plugin@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.0.tgz#a2c2d1bc5cc37450519e873e13d942bbe4478ef5" - integrity sha512-1wZ/PYvg+ZKwi5FX6YrvbB31jMAdurS+CmRQLwWCVSlfzJC85l/a6RVICqUHFa+jXyhilfnCyjafzJGbmz5tcA== + version "5.0.1" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz#33effe662edb1a0bf08ad633c32fa75d0f7ec565" + integrity sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg== dependencies: - cssnano "^6.0.0" + "@jridgewell/trace-mapping" "^0.3.18" + cssnano "^6.0.1" jest-worker "^29.4.3" - postcss "^8.4.21" - schema-utils "^4.0.0" + postcss "^8.4.24" + schema-utils "^4.0.1" serialize-javascript "^6.0.1" - source-map "^0.6.1" css-prefers-color-scheme@^6.0.3: version "6.0.3" @@ -3152,7 +3362,7 @@ cssnano-utils@^4.0.0: resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-4.0.0.tgz#d1da885ec04003ab19505ff0e62e029708d36b08" integrity sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw== -cssnano@^6.0.0: +cssnano@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.0.1.tgz#87c38c4cd47049c735ab756d7e77ac3ca855c008" integrity sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg== @@ -3464,10 +3674,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.411: - version "1.4.424" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.424.tgz#791402d0737e8d1d05cfb7fbf5c0374f26b3838a" - integrity sha512-KOfOIoEE0b3L0CTDgqS+NpokmcBdxpqLIPtp9PL0v5GAMZmZXa9uoUfWJdEy63MNy6jMvKHkBVUYY5DSuqqpdw== +electron-to-chromium@^1.4.431: + version "1.4.445" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.445.tgz#058d2c5f3a2981ab1a37440f5a5e42d15672aa6d" + integrity sha512-++DB+9VK8SBJwC+X1zlMfJ1tMA3F0ipi39GdEp+x3cV2TyBihqAgad8cNMWtLDEkbH39nlDQP7PfGrDr3Dr7HA== emoji-regex@^8.0.0: version "8.0.0" @@ -3491,10 +3701,10 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -enhanced-resolve@^5.14.1: - version "5.14.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.14.1.tgz#de684b6803724477a4af5d74ccae5de52c25f6b3" - integrity sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow== +enhanced-resolve@^5.15.0: + version "5.15.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" + integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -3515,9 +3725,9 @@ env-paths@^2.2.1: integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== envinfo@^7.7.3: - version "7.8.1" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" - integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== + version "7.10.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.10.0.tgz#55146e3909cc5fe63c22da63fb15b05aeac35b13" + integrity sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw== error-ex@^1.3.1: version "1.3.2" @@ -3582,9 +3792,9 @@ es-get-iterator@^1.1.3: stop-iteration-iterator "^1.0.0" es-module-lexer@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.2.1.tgz#ba303831f63e6a394983fde2f97ad77b22324527" - integrity sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg== + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.0.tgz#6be9c9e0b4543a60cd166ff6f8b4e9dae0b0c16f" + integrity sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA== es-set-tostringtag@^2.0.1: version "2.0.1" @@ -3761,14 +3971,14 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== eslint@^8.19.0: - version "8.42.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.42.0.tgz#7bebdc3a55f9ed7167251fe7259f75219cade291" - integrity sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A== + version "8.43.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.43.0.tgz#3e8c6066a57097adfd9d390b8fc93075f257a094" + integrity sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.4.0" "@eslint/eslintrc" "^2.0.3" - "@eslint/js" "8.42.0" + "@eslint/js" "8.43.0" "@humanwhocodes/config-array" "^0.11.10" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -3985,10 +4195,10 @@ fast-safe-stringify@^2.0.8, fast-safe-stringify@^2.1.1: resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== -fast-xml-parser@4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.4.tgz#6e846ede1e56ad9e5ef07d8720809edf0ed07e9b" - integrity sha512-fbfMDvgBNIdDJLdLOwacjFAPYt67tr31H9ZhWSm45CDAxvd0I6WTlSOUo7K2P/K5sA5JgMKG64PI3DMcaFdWpQ== +fast-xml-parser@4.2.5: + version "4.2.5" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz#a6747a09296a6cb34f2ae634019bf1738f3b421f" + integrity sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g== dependencies: strnum "^1.0.5" @@ -4222,9 +4432,9 @@ get-symbol-description@^1.0.0: get-intrinsic "^1.1.1" get-tsconfig@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.6.0.tgz#e977690993a42f3e320e932427502a40f7af6d05" - integrity sha512-lgbo68hHTQnFddybKbbs/RDRJnJT5YyGy2kQzVwbq+g67X73i+5MVTval34QxGkOe9X5Ujf1UYpCaphLyltjEg== + version "4.6.2" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.6.2.tgz#831879a5e6c2aa24fe79b60340e2233a1e0f472e" + integrity sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg== dependencies: resolve-pkg-maps "^1.0.0" @@ -4259,6 +4469,18 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== +glob@7.1.7: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^7.0.5, glob@^7.1.3, glob@^7.1.6: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -4363,15 +4585,22 @@ graphql-scalars@^1.20.1: dependencies: tslib "^2.5.0" +graphql-tag@^2.12.6: + version "2.12.6" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" + integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== + dependencies: + tslib "^2.1.0" + graphql-type-json@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/graphql-type-json/-/graphql-type-json-0.3.2.tgz#f53a851dbfe07bd1c8157d24150064baab41e115" integrity sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg== graphql@^16.6.0: - version "16.6.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.6.0.tgz#c2dcffa4649db149f6282af726c8c83f1c7c5fdb" - integrity sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw== + version "16.7.1" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.7.1.tgz#11475b74a7bff2aefd4691df52a0eca0abd9b642" + integrity sha512-DRYR9tf+UGU0KOsMcKAlXeFfX89UiiIZ0dRU3mR0yJfu6OjZqUcp68NnFLnqQU5RexygFoDy1EW+ccOYcPfmHg== gzip-size@^6.0.0: version "6.0.0" @@ -4451,7 +4680,7 @@ history@^4.9.0: tiny-warning "^1.0.0" value-equal "^1.0.1" -hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.1: +hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== @@ -4459,9 +4688,9 @@ hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.1: react-is "^16.7.0" html-entities@^2.1.0: - version "2.3.5" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.5.tgz#9f117bf6a5962efc31e094f6c6dad3cf3b95e33e" - integrity sha512-72TJlcMkYsEJASa/3HnX7VT59htM7iSHbH59NSZbtc+22Ap0Txnlx91sfeB+/A7wNZg7UxtZdhAW4y+/jimrdg== + version "2.4.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.4.0.tgz#edd0cee70402584c8c76cc2c0556db09d1f45061" + integrity sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ== html-minifier-terser@^6.0.2: version "6.1.0" @@ -4495,9 +4724,9 @@ html-to-text@9.0.3: selderee "^0.10.0" html-webpack-plugin@^5.5.0: - version "5.5.1" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.1.tgz#826838e31b427f5f7f30971f8d8fa2422dfa6763" - integrity sha512-cTUzZ1+NqjGEKjmVgZKLMdiFg3m9MdRXkZW2OEe69WYVi5ONLMmlnSZdXzGGMOq0C8jGDrL6EWyEDDUioHO/pA== + version "5.5.3" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz#72270f4a78e222b5825b296e5e3e1328ad525a3e" + integrity sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg== dependencies: "@types/html-minifier-terser" "^6.0.0" html-minifier-terser "^6.0.2" @@ -4549,9 +4778,9 @@ i18next-browser-languagedetector@^6.1.8: "@babel/runtime" "^7.19.0" i18next-http-middleware@^3.2.2: - version "3.3.1" - resolved "https://registry.yarnpkg.com/i18next-http-middleware/-/i18next-http-middleware-3.3.1.tgz#be44506338611d2ecd117e11c9298820472f06cc" - integrity sha512-mWUsdeV9SJSnrcLryUPhc5DZUewOXJd1Gx+UuEZYMtUv/Di4Zzt2I/A92x6/49ZFV2iRZ70oHgQGbqyrArIycw== + version "3.3.2" + resolved "https://registry.yarnpkg.com/i18next-http-middleware/-/i18next-http-middleware-3.3.2.tgz#6a24fee6bde44952a5af24364d43fa32f6c1b9b6" + integrity sha512-PSeLXQXr9Qiv9Q3GCWCoIJenKVbxCcVsXb7VMp/mOprV4gu+AMJT7VHw4+QEf6oYW6GU31QSLnfDpLNoSMtx3g== i18next@^22.4.9: version "22.5.1" @@ -5294,9 +5523,9 @@ media-typer@0.3.0: integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== memfs@^3.4.12: - version "3.5.3" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.5.3.tgz#d9b40fe4f8d5788c5f895bda804cd0d9eeee9f3b" - integrity sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw== + version "3.6.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" + integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== dependencies: fs-monkey "^1.0.4" @@ -5526,7 +5755,7 @@ mz@^2.7.0: object-assign "^4.0.1" thenify-all "^1.0.0" -nanoid@^3.3.6: +nanoid@^3.3.4, nanoid@^3.3.6: version "3.3.6" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== @@ -5570,6 +5799,30 @@ next-tick@1, next-tick@^1.1.0: resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== +next@^13.4.7: + version "13.4.7" + resolved "https://registry.yarnpkg.com/next/-/next-13.4.7.tgz#2ab20e6fada2e25cb81bd17f68956705ffd9824e" + integrity sha512-M8z3k9VmG51SRT6v5uDKdJXcAqLzP3C+vaKfLIAM0Mhx1um1G7MDnO63+m52qPdZfrTFzMZNzfsgvm3ghuVHIQ== + dependencies: + "@next/env" "13.4.7" + "@swc/helpers" "0.5.1" + busboy "1.6.0" + caniuse-lite "^1.0.30001406" + postcss "8.4.14" + styled-jsx "5.1.1" + watchpack "2.4.0" + zod "3.21.4" + optionalDependencies: + "@next/swc-darwin-arm64" "13.4.7" + "@next/swc-darwin-x64" "13.4.7" + "@next/swc-linux-arm64-gnu" "13.4.7" + "@next/swc-linux-arm64-musl" "13.4.7" + "@next/swc-linux-x64-gnu" "13.4.7" + "@next/swc-linux-x64-musl" "13.4.7" + "@next/swc-win32-arm64-msvc" "13.4.7" + "@next/swc-win32-ia32-msvc" "13.4.7" + "@next/swc-win32-x64-msvc" "13.4.7" + no-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" @@ -5579,9 +5832,9 @@ no-case@^3.0.4: tslib "^2.0.3" node-abi@^3.3.0: - version "3.43.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.43.0.tgz#468dc09af3c262ef2fb3a0d2ff34cf8fba61952a" - integrity sha512-QB0MMv+tn9Ur2DtJrc8y09n0n6sw88CyDniWSX2cHW10goQXYPK9ZpFJOktDS4ron501edPX6h9i7Pg+RnH5nQ== + version "3.45.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.45.0.tgz#f568f163a3bfca5aacfce1fbeee1fa2cc98441f5" + integrity sha512-iwXuFrMAcFVi/ZoZiqq8BzAdsLw9kxDfTC0HMyjXfSL/6CSDAGD5UmR7azrAgWV1zKYq7dUUMj4owusBWKLsiQ== dependencies: semver "^7.3.5" @@ -5591,9 +5844,9 @@ node-addon-api@^5.0.0: integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== node-fetch@^2.6.1: - version "2.6.11" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25" - integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w== + version "2.6.12" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.12.tgz#02eb8e22074018e3d5a83016649d04df0e348fba" + integrity sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g== dependencies: whatwg-url "^5.0.0" @@ -5745,17 +5998,25 @@ opener@^1.5.2: resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== +optimism@^0.16.2: + version "0.16.2" + resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.16.2.tgz#519b0c78b3b30954baed0defe5143de7776bf081" + integrity sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ== dependencies: + "@wry/context" "^0.7.0" + "@wry/trie" "^0.3.0" + +optionator@^0.9.1: + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== + dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" - word-wrap "^1.2.3" p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" @@ -5939,10 +6200,15 @@ pause@0.0.1: resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" integrity sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg== +payload-admin-bar@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/payload-admin-bar/-/payload-admin-bar-1.0.6.tgz#ca25e369a4f319c3d61ff3db4021c1c2fd9d0148" + integrity sha512-hpQdOiPq4LpWTkbuAnvxDf5wQ2ysMp9kQt+X2U+FfvBwD1U6qoxJfmUymG1OjLlaZzCZ93FlOdTl4u4Z0/m/SA== + payload@^1.8.2: - version "1.9.0" - resolved "https://registry.yarnpkg.com/payload/-/payload-1.9.0.tgz#e712d0e6d67a2ba6585164d58b939915583da444" - integrity sha512-+sqalAXumUexSkcP9hud/2schwDlz0SFQUPe13izB+nVIHFBn7L97iyzqAb4XgHOifmFp1YAErzr8a4fJk25gw== + version "1.10.2" + resolved "https://registry.yarnpkg.com/payload/-/payload-1.10.2.tgz#13f9fbc9d98b59a81d6b225ac21ad3da34066fbe" + integrity sha512-7Ie8WlcfDDKRVSAK4NGnMtEt8lNuCboYSHbERJMLYbtYNOyHXCmHiRgW3dWZeF+vTtpd8gRPyjwDWr+4hQQayQ== dependencies: "@date-io/date-fns" "^2.16.0" "@dnd-kit/core" "^6.0.7" @@ -6123,9 +6389,9 @@ pino@^6.4.1: sonic-boom "^1.0.2" pirates@^4.0.1: - version "4.0.5" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== pkg-dir@^4.2.0: version "4.2.0" @@ -6630,7 +6896,16 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.2.15, postcss@^8.4.21: +postcss@8.4.14: + version "8.4.14" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" + integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +postcss@^8.2.15, postcss@^8.4.21, postcss@^8.4.24: version "8.4.24" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.24.tgz#f714dba9b2284be3cc07dbd2fc57ee4dc972d2df" integrity sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg== @@ -6852,9 +7127,9 @@ react-animate-height@^2.1.2: prop-types "^15.6.1" react-datepicker@^4.10.0: - version "4.12.0" - resolved "https://registry.yarnpkg.com/react-datepicker/-/react-datepicker-4.12.0.tgz#aad65d56fcaabe38aaf0c1a317f0a5264691ab5b" - integrity sha512-czCEp4T8ctyN9NBMG6Xq6pEpOvMtoqf4U5DxFzJoTtv1/gTX3QNJaWBUwD88j//+eF8gVkNvOW8aTAqpaIJBvw== + version "4.14.1" + resolved "https://registry.yarnpkg.com/react-datepicker/-/react-datepicker-4.14.1.tgz#f9f7925d0a40e3195048bbd22a5faa635765163d" + integrity sha512-uiPfjD+25KI5WOfCAXlzQgSLyksTagk3wwKn1KGBdF19YtybFDregRmcoNNGveQHAbT10SJZdCvk/8pbc7zxJg== dependencies: "@popperjs/core" "^2.9.2" classnames "^2.2.6" @@ -6897,6 +7172,11 @@ react-helmet@^6.1.0: react-fast-compare "^3.1.1" react-side-effect "^2.1.0" +react-hook-form@^7.45.1: + version "7.45.1" + resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.45.1.tgz#e352c7f4dbc7540f0756abbb4dcfd1122fecc9bb" + integrity sha512-6dWoFJwycbuFfw/iKMcl+RdAOAOHDiF11KWYhNDRN/OkUt+Di5qsZHwA0OwsVnu9y135gkHpTw9DJA+WzCeR9w== + react-i18next@^11.18.6: version "11.18.6" resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-11.18.6.tgz#e159c2960c718c1314f1e8fcaa282d1c8b167887" @@ -7010,9 +7290,9 @@ readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable util-deprecate "^1.0.1" readable-stream@^4.0.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.4.0.tgz#55ce132d60a988c460d75c631e9ccf6a7229b468" - integrity sha512-kDMOq0qLtxV9f/SQv522h8cxZBqNZXuXNyjyezmfAAuribMyVXziljpQ/uQhfE1XLg2/TLTW2DsnoE4VAi/krg== + version "4.4.1" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.4.1.tgz#fa0f0878c3bc0c12b6a82e4e58c5dc160e1faaa2" + integrity sha512-llAHX9QC25bz5RPIoTeJxPaA/hgryaldValRhVZ2fK9bzbmFiscpz8fw6iBTvJfAk1w4FC1KXQme/nO7fbKyKg== dependencies: abort-controller "^3.0.0" buffer "^6.0.3" @@ -7103,13 +7383,13 @@ require-from-string@^2.0.2: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== -resend@^0.12.0: - version "0.12.2" - resolved "https://registry.yarnpkg.com/resend/-/resend-0.12.2.tgz#32f61299aabdeae00d21c347f0ee856e8e839e16" - integrity sha512-T4+n1DgsmyQ+S2omb5xIyhoG0ppGEqq5itRsBrssrUTLI6xiEg0IuZJ3RbnPjnU3HR2jrVaOOvQIDuZXTm1bCg== +resend@^0.15.3: + version "0.15.4" + resolved "https://registry.yarnpkg.com/resend/-/resend-0.15.4.tgz#4f4a67a01c15fd94aba4c79d7d7a59b10a6a9a96" + integrity sha512-QgQ1sMQ8CGtG5yWhPHUITsMmKxohoUiRo+s+8WpBbVhX3cJo87slUbDji2tqNgKz6Tza7fgd+cWNNQSYSeJDsA== dependencies: - "@react-email/render" "0.0.6" - axios "1.3.4" + "@react-email/render" "0.0.7" + axios "1.4.0" resolve-cwd@^3.0.0: version "3.0.0" @@ -7147,6 +7427,11 @@ resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.9.0: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +response-iterator@^0.2.6: + version "0.2.6" + resolved "https://registry.yarnpkg.com/response-iterator/-/response-iterator-0.2.6.tgz#249005fb14d2e4eeb478a3f735a28fd8b4c9f3da" + integrity sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw== + reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -7213,9 +7498,9 @@ sass-loader@^12.6.0: neo-async "^2.6.2" sass@^1.57.1: - version "1.63.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.63.0.tgz#76b2a27282836b3343a4a669dbafb71fd93b1927" - integrity sha512-YIkMh4jvWB0R43XxjEr+GG26G1X40y4tDRoBhbOD4KkfXrwJgD8elAqU4mUqC5kP2nTrf7v77ZgYPZVFebHmyw== + version "1.63.6" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.63.6.tgz#481610e612902e0c31c46b46cf2dad66943283ea" + integrity sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -7233,19 +7518,19 @@ scheduler@^0.23.0: dependencies: loose-envify "^1.1.0" -schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.2.tgz#36c10abca6f7577aeae136c804b0c741edeadc99" - integrity sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg== +schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== dependencies: "@types/json-schema" "^7.0.8" ajv "^6.12.5" ajv-keywords "^3.5.2" -schema-utils@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.1.tgz#eb2d042df8b01f4b5c276a2dfd41ba0faab72e8d" - integrity sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ== +schema-utils@^4.0.0, schema-utils@^4.0.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" + integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== dependencies: "@types/json-schema" "^7.0.9" ajv "^8.9.0" @@ -7282,9 +7567,9 @@ semver@^5.6.0, semver@^5.7.1: integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: - version "7.5.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" - integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== + version "7.5.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e" + integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ== dependencies: lru-cache "^6.0.0" @@ -7504,7 +7789,7 @@ source-list-map@^2.0.0: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map-support@^0.5.13, source-map-support@^0.5.17, source-map-support@~0.5.20: +source-map-support@^0.5.13, source-map-support@~0.5.20: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -7517,7 +7802,7 @@ source-map@^0.5.7: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: +source-map@^0.6.0, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== @@ -7656,14 +7941,6 @@ stripe@^10.2.0: "@types/node" ">=8.1.0" qs "^6.11.0" -stripe@^11.6.0: - version "11.18.0" - resolved "https://registry.yarnpkg.com/stripe/-/stripe-11.18.0.tgz#2b99ac712e81a5232f88568327d001960b454465" - integrity sha512-OUA32uhNoSoM6wOodyFbV+3IBCoO140uzdXmBArQ0S88D4EbH91xl2v+Ml1sKalcFKUBadHLeHfU/p9AbsOfGw== - dependencies: - "@types/node" ">=8.1.0" - qs "^6.11.0" - strnum@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" @@ -7685,6 +7962,13 @@ style-loader@^2.0.0: loader-utils "^2.0.0" schema-utils "^3.0.0" +styled-jsx@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" + integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw== + dependencies: + client-only "0.0.1" + stylehacks@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.0.0.tgz#9fdd7c217660dae0f62e14d51c89f6c01b3cb738" @@ -7746,6 +8030,11 @@ swc-minify-webpack-plugin@^2.1.0: resolved "https://registry.yarnpkg.com/swc-minify-webpack-plugin/-/swc-minify-webpack-plugin-2.1.1.tgz#2c63fe592d49541733d7557b3af8f97c7ffa78b9" integrity sha512-/9ud/libNWUC5p71vXWhW/O2Nc0essW8D9pY4P4ol0ceM8OcFbNr41R9YFqTkmktqUL2t0WwXau+FkR4T1+PJA== +symbol-observable@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" + integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== + tabbable@^5.3.3: version "5.3.3" resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-5.3.3.tgz#aac0ff88c73b22d6c3c5a50b1586310006b47fbf" @@ -7789,9 +8078,9 @@ terser-webpack-plugin@^5.3.6, terser-webpack-plugin@^5.3.7: terser "^5.16.8" terser@^5.10.0, terser@^5.16.8: - version "5.17.7" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.17.7.tgz#2a8b134826fe179b711969fd9d9a0c2479b2a8c3" - integrity sha512-/bi0Zm2C6VAexlGgLlVxA0P2lru/sdLyfCVaRMfKVo9nWxbmz7f/sD8VPybPeSUJaJcwmCJis9pBIhcVcG1QcQ== + version "5.18.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.18.2.tgz#ff3072a0faf21ffd38f99acc9a0ddf7b5f07b948" + integrity sha512-Ah19JS86ypbJzTzvUCX7KOsEIhDaRONungA4aYBjEP3JZRf4ocuDzTg4QWZnPn9DEMiMYGJPiSOy7aykoCc70w== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -7909,16 +8198,37 @@ ts-essentials@^7.0.3: resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-7.0.3.tgz#686fd155a02133eedcc5362dc8b5056cde3e5a38" integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== -ts-node@^9.1.1: - version "9.1.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" - integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== +ts-invariant@^0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.10.3.tgz#3e048ff96e91459ffca01304dbc7f61c1f642f6c" + integrity sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ== dependencies: + tslib "^2.1.0" + +ts-invariant@^0.4.0: + version "0.4.4" + resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.4.4.tgz#97a523518688f93aafad01b0e80eb803eb2abd86" + integrity sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA== + dependencies: + tslib "^1.9.3" + +ts-node@^10.9.1: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" arg "^4.1.0" create-require "^1.1.0" diff "^4.0.1" make-error "^1.1.1" - source-map-support "^0.5.17" + v8-compile-cache-lib "^3.0.1" yn "3.1.1" tsconfig-paths@^3.12.0: @@ -7931,15 +8241,15 @@ tsconfig-paths@^3.12.0: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^1.11.1, tslib@^1.8.1: +tslib@^1.10.0, tslib@^1.11.1, tslib@^1.8.1, tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.3, tslib@^2.3.1, tslib@^2.5.0: - version "2.5.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" - integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" + integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== tsutils@^3.21.0: version "3.21.0" @@ -8098,6 +8408,11 @@ uuid@^9.0.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + value-equal@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" @@ -8120,7 +8435,7 @@ warning@^4.0.2: dependencies: loose-envify "^1.0.0" -watchpack@^2.4.0: +watchpack@2.4.0, watchpack@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== @@ -8184,9 +8499,9 @@ webpack-dev-middleware@6.0.1: schema-utils "^4.0.0" webpack-hot-middleware@^2.25.3: - version "2.25.3" - resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.25.3.tgz#be343ce2848022cfd854dd82820cd730998c6794" - integrity sha512-IK/0WAHs7MTu1tzLTjio73LjS3Ov+VvBKQmE8WPlJutgG5zT6Urgq/BbAdRrHTRpyzK0dvAvFh1Qg98akxgZpA== + version "2.25.4" + resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.25.4.tgz#d8bc9e9cb664fc3105c8e83d2b9ed436bee4e193" + integrity sha512-IRmTspuHM06aZh98OhBJtqLpeWFM8FXJS5UYpKYxCJzyFoyWj1w6VGFfomZU7OPA55dMLrQK0pRT1eQ3PACr4w== dependencies: ansi-html-community "0.0.8" html-entities "^2.1.0" @@ -8214,9 +8529,9 @@ webpack-sources@^3.2.3: integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== webpack@^5.78.0: - version "5.86.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.86.0.tgz#b0eb81794b62aee0b7e7eb8c5073495217d9fc6d" - integrity sha512-3BOvworZ8SO/D4GVP+GoRC3fVeg5MO4vzmq8TJJEkdmopxyazGDxN8ClqN12uzrZW9Tv8EED8v5VSb6Sqyi0pg== + version "5.88.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.88.1.tgz#21eba01e81bd5edff1968aea726e2fbfd557d3f8" + integrity sha512-FROX3TxQnC/ox4N+3xQoWZzvGXSuscxR32rbzjpXgEzWudJFEJBpdlkkob2ylrv5yzzufD1zph1OoFsLtm6stQ== dependencies: "@types/eslint-scope" "^3.7.3" "@types/estree" "^1.0.0" @@ -8227,7 +8542,7 @@ webpack@^5.78.0: acorn-import-assertions "^1.9.0" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.14.1" + enhanced-resolve "^5.15.0" es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" @@ -8237,7 +8552,7 @@ webpack@^5.78.0: loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.1.2" + schema-utils "^3.2.0" tapable "^2.1.1" terser-webpack-plugin "^5.3.7" watchpack "^2.4.0" @@ -8309,11 +8624,6 @@ wildcard@^2.0.0: resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -8393,3 +8703,28 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zen-observable-ts@^0.8.21: + version "0.8.21" + resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz#85d0031fbbde1eba3cd07d3ba90da241215f421d" + integrity sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg== + dependencies: + tslib "^1.9.3" + zen-observable "^0.8.0" + +zen-observable-ts@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz#6c6d9ea3d3a842812c6e9519209365a122ba8b58" + integrity sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg== + dependencies: + zen-observable "0.8.15" + +zen-observable@0.8.15, zen-observable@^0.8.0: + version "0.8.15" + resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" + integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== + +zod@3.21.4: + version "3.21.4" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db" + integrity sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw== From dfdd334d1600e86f623ced815bb23cfe1f091ca2 Mon Sep 17 00:00:00 2001 From: Tylan Davis Date: Fri, 30 Jun 2023 19:07:48 -0400 Subject: [PATCH 76/78] docs: adds Cloud docs --- docs/cloud/configuration.mdx | 53 ++++++++++++++ docs/cloud/creating-a-project.mdx | 51 ++++++++++++++ docs/cloud/projects.mdx | 110 ++++++++++++++++++++++++++++++ docs/cloud/teams.mdx | 35 ++++++++++ 4 files changed, 249 insertions(+) create mode 100644 docs/cloud/configuration.mdx create mode 100644 docs/cloud/creating-a-project.mdx create mode 100644 docs/cloud/projects.mdx create mode 100644 docs/cloud/teams.mdx diff --git a/docs/cloud/configuration.mdx b/docs/cloud/configuration.mdx new file mode 100644 index 0000000000..83ea807fbe --- /dev/null +++ b/docs/cloud/configuration.mdx @@ -0,0 +1,53 @@ +--- +title: Project Configuration +label: Configuration +order: 20 +desc: Quickly configure and deploy your Payload Cloud project in a few simple steps. +keywords: configuration, config, settings, project, cloud, payload cloud, deploy, deployment +--- + +### Select your plan + +Once you have created a project, you will need to select your plan. This will determine the resources that are allocated to your project and the features that are available to you. + +Note: All Payload Cloud teams that deploy a project require a card on file. This helps us prevent fraud and abuse on our platform. If you select a plan with a free trial, You will not be charged until your trial period is over. We’ll remind you 7 days before your trial ends and you can cancel anytime. + +### Project Details + +| Field | Description | +| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Region** | Select the region closest to your audience. This will ensure the fastest communication between your data and your client. | +| **Project Name** | A name for your project. You can change this at any time. | +| **Project Slug** | Choose a unique slug to identify your project. This needs to be unique for your team and you can change it any time. | +| **Team** | Select the team you want to create the project under. If this is your first project, a personal team will be created for your automatically. You can modify your team settings and invite new members at any time from the Team Settings page. | + +### Build Settings + +If you are deploying a new project from a template, the following settings will all be automatically configured for you. If you are using your own repository, you will need to make sure your build settings are accurate for your project to deploy correctly. + +| Field | Description | +| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Root Directory** | The folder where your `package.json` file lives. | +| **Install Command** | The command used to install your modules, for example: `yarn install` or `npm install` | +| **Build Command** | The command used to build your application, for example: `yarn build` or `npm run build` | +| **Serve Command** | The command used to serve your application, for example: `yarn serve` or `npm run serve` | +| **Branch to Deploy** | Select the branch of your repository that you want to deploy from. This is the branch that will be used to build your project when you commit new changes. | +| **Default Domain** | Set a default domain for your project. This must be unique and you aren’t able to change it. You can always add a custom domain later in your project settings. | + +### Environment Variables + +Any of the features in Payload Cloud that require environment variables will automatically be provided to your application. If your app requires any custom environment variables, you can set them here. + +Note: For security reasons, any variables you wish to provide to the Admin panel must be prefixed with `PAYLOAD_PUBLIC_`. [Learn more](http://local.payloadcms.com:3000/docs/admin/webpack#admin-environment-vars). + +### Payment + +Payment methods can be set per project and can be updated any time. You can use team’s default payment method, or add a new one. You can modify your payment methods in your Project settings as well as Team settings. + + + Note: All Payload Cloud teams that deploy a project require a + card on file. This helps us prevent fraud and abuse on our platform. If you + select a plan with a free trial, You will not be charged until your trial + period is over. We’ll remind you 7 days before your trial ends and you can + cancel anytime. + diff --git a/docs/cloud/creating-a-project.mdx b/docs/cloud/creating-a-project.mdx new file mode 100644 index 0000000000..9f4e74916c --- /dev/null +++ b/docs/cloud/creating-a-project.mdx @@ -0,0 +1,51 @@ +--- +title: Getting Started +label: Getting Started +order: 10 +desc: Get started with Payload Cloud, a deployment solution specifically designed for Node + MongoDB applications. +keywords: cloud, hosted, database, storage, email, deployment, serverless, node, mongodb, s3, aws, cloudflare, atlas, resend, payload, cms +--- + +Payload Cloud is a deployment solution specifically designed for Node + MongoDB applications, offering seamless deployment of your entire stack in one place. You can get started in minutes with a one-click template, or bring your own codebase with you. Payload Cloud offers different plans tailored to meet your specific needs, including a MongoDB Atlas database, S3 file storage, and email delivery powered by Resend. To see the full breakdown of features and plans, see our [Cloud Pricing page](https://payloadcms.com/cloud-pricing). + +To get started with Payload Cloud, you will first need to create an account. From the login screen, select **Register for Free**. One you’ve created an account, you’ll need to verify it by visiting the link sent to your email. After that, you can log into your account and get started. + + + To create your first project, you can either [start from a + template](#starting-from-a-template), or [import an existing + project](#importing-from-an-existing-codebase) from your GitHub account. + + +## Starting from a Template + +Payload Cloud templates provide a one-click, simple solution to quickly deploy a new application. Templates come preconfigured, so there is no additional set up needed to run your application on Payload Cloud. + +![Screen for creating a new project from a template](https://payloadcms.com/images/docs/cloud/create-from-template.jpg) +_Creating a new project from a template._ + +After creating an account, select your desired template from the Projects page. At this point, you will need to connect to Authorize the Payload Cloud application with your GitHub account. Click Continue with GitHub and follow the prompts to authorize the app. + +Next, select your `GitHub Scope`. If you belong to multiple organizations they will show up here. If do not see the organization you are looking for, you may need to adjust your GitHub app permissions. + +After selecting your scope, choose a unique `repository name` for and select whether or not you want your repository to be public or private on GitHub. + + + Note: Public repositories can be accessed by anyone online, + while private repositories grant access to you and anyone you explicitly + authorize. + + +Once you are ready, click **Create Project**. This will clone a repository of the template you selected to your GitHub account, and take you to the configuration page to set up your project for deployment. + +## Importing from an Existing Codebase + +Payload Cloud works for any Node + MongoDB app. From the the New Project page, select **import an existing Git codebase**. Choose the organization and select the repository you want to import. From here, you will be taken to the configuration page to set up your project for deployment. + + + Note: In order to make use of the features of Payload Cloud + in your own codebase, you will need to add the [Cloud + Plugin](https://github.com/payloadcms/plugin-cloud) to your Payload app. + + +![Screen for creating a new project from an existing repository](https://payloadcms.com/images/docs/cloud/create-from-existing.jpg) +_Creating a new project from an existing repository._ diff --git a/docs/cloud/projects.mdx b/docs/cloud/projects.mdx new file mode 100644 index 0000000000..3612334134 --- /dev/null +++ b/docs/cloud/projects.mdx @@ -0,0 +1,110 @@ +--- +title: Cloud Projects +label: Projects +order: 40 +desc: Manage your Payload Cloud projects. +keywords: cloud, payload cloud, projects, project, overview, database, file storage, build settings, environment variables, custom domains, email, developing locally +--- + +### Overview + + + The overview tab shows you your most recent deployment, and its build and + deploy logs. From here, you can see your live URL, deployment details like + timestamps and commit hash, as well as the status of your deployment. You can + also trigger a redeployment manually, which will rebuild your project using + the current configuration. + + +![Payload Cloud Overview Page](https://payloadcms.com/images/docs/cloud/overview-page.jpg) +_A screenshot of the Overview page for a Cloud project._ + +### Database + +Your Payload Cloud project comes with a MongoDB serverless Atlas DB instance or Dedicated Atlas cluster, depending on your plan. To interact with your cloud database, you use a MongoDB connection string. This can be found under the **Database** tab of your project. + +`mongodb+srv://your_connection_string` + +### File Storage + +Payload Cloud gives you S3 file storage backed by Cloudflare as a CDN, and this plugin extends Payload so that all of your media will be stored in S3 rather than locally. + +AWS Cognito is used for authentication to your S3 bucket. The [Payload Cloud Plugin](https://github.com/payloadcms/plugin-cloud) will automatically pick up these values. These values are only if you'd like to access your files directly, outside of Payload Cloud. + +### Build Settings + +You can update settings from your Project’s Settings tab. Changes to your build settings will trigger a redeployment of your project. + +### Environment Variables + +From the Environment Variables page of the Settings tab, you can add new variables or adjust and delete current variables for your project. Like build settings, these changes will trigger a redeployment of your project. + + + Note: For security reasons, any variables you wish to provide to the Admin + panel must be prefixed with `PAYLOAD_PUBLIC_`. [Learn + more](http://local.payloadcms.com:3000/docs/admin/webpack#admin-environment-vars). + +### Custom Domains + +With Payload Cloud, you can add custom domain names to your project. To do so, first go to the Domains page of the Settings tab of your project. Here you can see your default domain. To add a new domain, type in the domain name you wish to use. + + + Note: do not include protocol (http:// or https://) or any routes (/page). + Only include the the domain name and extension, and optionally a subdomain. - + your-domain.com - backend.your-domain.com + + +Once you click save, a DNS record will be generated for your domain name to point to your live project. Add this record into your DNS provider’s records, and once the records are resolving properly (this can take 1hr to 48hrs in some cases), your domain will now to point to your live project. + +You will also need to configure your Payload project to use your specified domain. in your `payload.config.ts` file, specify your serverURL with your domain: + +```tsx +export default buildConfig({ + serverURL: 'https://example.com', + // the rest of your config, +}); +``` + +### Email + +Powered by Resend, Payload Cloud comes with integrated email support out of the box. No configuration is needed, and you can use `payload.sendEmail()` to send email right from your Payload app. To learn more about sending email with Payload, visit the [Email Configuration](https://payloadcms.com/docs/email/overview) page of the docs. + +If you are on the Pro or Enterprise plan, you can add your own custom Email domain name to send emails. From the Email page of your project’s Settings page, add the domain you wish to use for email delivery. This will generate a set of DNS records. Add these records to your DNS provider and click verify to check that your records are resolving properly. Once verified, your emails will now be sent from your custom domain name. + +### Developing Locally + +To make changes to your project, you will need to clone the repository defined in your project settings to your local machine. In order to run your project locally, you will need configure your local environment first. Refer to your repository’s `README.md` file to see the steps needed for your specific template. + +From there, you are ready to make updates to your project. When you want to add these changes to your live Cloud project, commit your changes to the branch you specified in your Project settings, and your application will automatically trigger a redeploy and build from your latest commit. + +### Cloud Plugin + +Projects generated from a template will come preconfigured with the official Cloud Plugin, but if you are using your own repository you will need to add this into your project. To do so, add the plugin to your Payload config: + +`yarn add @payloadcms/plugin-cloud` + +```jsx +import { payloadCloud } from '@payloadcms/plugin-cloud'; +import { buildConfig } from 'payload/config'; + +export default buildConfig({ + plugins: [payloadCloud()], + // rest of config +}); +``` + + + **Note:** If your Payload config already has an email with transport, this + will take precedence over Payload Cloud's email service. + + +##### **Optional configuration** + +If you wish to opt-out of any Payload cloud features, the plugin also accepts options to do so. + +```jsx +payloadCloud({ + storage: false, // Disable file storage + email: false, // Disable email delivery +}); +``` diff --git a/docs/cloud/teams.mdx b/docs/cloud/teams.mdx new file mode 100644 index 0000000000..30447dd3d9 --- /dev/null +++ b/docs/cloud/teams.mdx @@ -0,0 +1,35 @@ +--- +title: Cloud Teams +label: Teams +order: 30 +desc: Manage your Payload Cloud team and billing settings. +keywords: team, teams, billing, subscription, payment, plan, plans, cloud, payload cloud +--- + + + Within Payload Cloud, the team management feature offers you the ability to + manage your organization, team members, billing, and subscription settings. + + +![Payload Cloud Team Settings](https://payloadcms.com/images/docs/cloud/team-settings.jpg) +_A screenshot of the Team Settings page._ + +### Members + +Each team has member that can interact with your projects. You can invite multiple people to your team and each individual can belong to more than one team. You can delegate wether they have `owner` permissions or just User permissions. Owners are able to make admin-only changes, such as deleting projects, and editing billing information. + +### Adding Members + +To add a new member to your team, visit your Team’s Settings page, and click “Invite Teammate”. You can then add their email address, and assign their role. Press “Save” to send invitations, which will send an email to the invited team member where they can create a new account. + +### Billing + +Users can update billing settings and subscriptions for any teams where they are designated as an `owner`. To make updates to the team’s payment methods, visit the Billing page under the Team Settings tab. You can add new cards, delete cards, and set a payment method as a default. The default payment method will be used in the event that another payment method fails. + +### Subscriptions + +From the Subscriptions page, a team owner can see all current plans for their team. From here, you can see the price of each plan, if there is an active trial, and when you will be billed next. + +### Invoices + +The Invoices page will you show you the invoices for your account, as well as the status on their payment. From 801f60939b1bb4e33fbabe1f9a3c4a04a47912db Mon Sep 17 00:00:00 2001 From: Jessica Chowdhury <67977755+JessChowdhury@users.noreply.github.com> Date: Wed, 5 Jul 2023 14:06:02 +0100 Subject: [PATCH 77/78] fix: nested richtext bug and test (#2966) * fix: nested richtext bug and test * chore: fix accidentally deleted character --- .../forms/field-types/RichText/RichText.tsx | 2 +- test/fields/collections/RichText/index.ts | 44 +++++++++++++++++++ test/fields/e2e.spec.ts | 19 ++++++++ 3 files changed, 64 insertions(+), 1 deletion(-) diff --git a/src/admin/components/forms/field-types/RichText/RichText.tsx b/src/admin/components/forms/field-types/RichText/RichText.tsx index 9504cd653b..dd5d6c8720 100644 --- a/src/admin/components/forms/field-types/RichText/RichText.tsx +++ b/src/admin/components/forms/field-types/RichText/RichText.tsx @@ -247,7 +247,7 @@ const RichText: React.FC = (props) => { const parsedJSON = JSON.parse(valueToRender); valueToRender = parsedJSON; } catch (err) { - // do nothing + valueToRender = null; } } diff --git a/test/fields/collections/RichText/index.ts b/test/fields/collections/RichText/index.ts index c178426387..a39b92f89d 100644 --- a/test/fields/collections/RichText/index.ts +++ b/test/fields/collections/RichText/index.ts @@ -188,6 +188,30 @@ const RichTextFields: CollectionConfig = { }, }, }, + { + name: 'blocks', + type: 'blocks', + blocks: [ + { + slug: 'textBlock', + fields: [ + { + name: 'text', + type: 'text', + }, + ], + }, + { + slug: 'richTextBlock', + fields: [ + { + name: 'text', + type: 'richText', + }, + ], + }, + ], + }, ], }; @@ -440,12 +464,32 @@ export const richTextBulletsDoc = { ], }; +export const richTextBlocks = [ + { + blockType: 'textBlock', + text: 'Regular text', + }, + { + blockType: 'richTextBlock', + text: [ + { + children: [ + { + text: 'Rich text', + }, + ], + type: 'h1', + }, + ], + }, +]; export const richTextDoc = { title: 'Rich Text', selectHasMany: ['one', 'five'], richText: generateRichText(), richTextReadOnly: generateRichText(), richTextCustomFields: generateRichText(), + blocks: richTextBlocks, }; export default RichTextFields; diff --git a/test/fields/e2e.spec.ts b/test/fields/e2e.spec.ts index 7ff02ff47d..f3cc7f98ae 100644 --- a/test/fields/e2e.spec.ts +++ b/test/fields/e2e.spec.ts @@ -736,6 +736,25 @@ describe('fields', () => { const textField = await editLinkModal.locator('#field-text'); await expect(textField).toHaveValue('Hello, I\'m a rich text field.'); }); + test('should not take value from previous block', async () => { + await navigateToRichTextFields(); + + // check first block value + const textField = await page.locator('#field-blocks__0__text'); + await expect(textField).toHaveValue('Regular text'); + + // remove the first block + const editBlock = await page.locator('#blocks-row-0 .popup-button'); + await editBlock.click(); + const removeButton = await page.locator('#blocks-row-0').getByRole('button', { name: 'Remove' }); + await expect(removeButton).toBeVisible(); + await removeButton.click(); + + // check new first block value + const richTextField = await page.locator('#field-blocks__0__text'); + const richTextValue = await richTextField.innerText(); + await expect(richTextValue).toContain('Rich text'); + }); }); }); From 1db1de1116ff7e60b6fa92bccc258f96274c5a26 Mon Sep 17 00:00:00 2001 From: Jessica Boezwinkle Date: Wed, 5 Jul 2023 16:21:22 +0100 Subject: [PATCH 78/78] docs: misc tweaks to cloud docs --- docs/cloud/configuration.mdx | 16 ++++++++-------- docs/cloud/creating-a-project.mdx | 12 ++++++------ docs/cloud/projects.mdx | 26 +++++++++++++------------- docs/cloud/teams.mdx | 2 +- 4 files changed, 28 insertions(+), 28 deletions(-) diff --git a/docs/cloud/configuration.mdx b/docs/cloud/configuration.mdx index 83ea807fbe..cea2c9d6e9 100644 --- a/docs/cloud/configuration.mdx +++ b/docs/cloud/configuration.mdx @@ -25,14 +25,14 @@ Note: All Payload Cloud teams that deploy a project require a card on file. This If you are deploying a new project from a template, the following settings will all be automatically configured for you. If you are using your own repository, you will need to make sure your build settings are accurate for your project to deploy correctly. -| Field | Description | -| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Root Directory** | The folder where your `package.json` file lives. | -| **Install Command** | The command used to install your modules, for example: `yarn install` or `npm install` | -| **Build Command** | The command used to build your application, for example: `yarn build` or `npm run build` | -| **Serve Command** | The command used to serve your application, for example: `yarn serve` or `npm run serve` | -| **Branch to Deploy** | Select the branch of your repository that you want to deploy from. This is the branch that will be used to build your project when you commit new changes. | -| **Default Domain** | Set a default domain for your project. This must be unique and you aren’t able to change it. You can always add a custom domain later in your project settings. | +| Field | Description | +| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Root Directory** | The folder where your `package.json` file lives. | +| **Install Command** | The command used to install your modules, for example: `yarn install` or `npm install` | +| **Build Command** | The command used to build your application, for example: `yarn build` or `npm run build` | +| **Serve Command** | The command used to serve your application, for example: `yarn serve` or `npm run serve` | +| **Branch to Deploy** | Select the branch of your repository that you want to deploy from. This is the branch that will be used to build your project when you commit new changes. | +| **Default Domain** | Set a default domain for your project. This must be unique and you will not able to change it. You can always add a custom domain later in your project settings. | ### Environment Variables diff --git a/docs/cloud/creating-a-project.mdx b/docs/cloud/creating-a-project.mdx index 9f4e74916c..7eea240a06 100644 --- a/docs/cloud/creating-a-project.mdx +++ b/docs/cloud/creating-a-project.mdx @@ -8,7 +8,7 @@ keywords: cloud, hosted, database, storage, email, deployment, serverless, node, Payload Cloud is a deployment solution specifically designed for Node + MongoDB applications, offering seamless deployment of your entire stack in one place. You can get started in minutes with a one-click template, or bring your own codebase with you. Payload Cloud offers different plans tailored to meet your specific needs, including a MongoDB Atlas database, S3 file storage, and email delivery powered by Resend. To see the full breakdown of features and plans, see our [Cloud Pricing page](https://payloadcms.com/cloud-pricing). -To get started with Payload Cloud, you will first need to create an account. From the login screen, select **Register for Free**. One you’ve created an account, you’ll need to verify it by visiting the link sent to your email. After that, you can log into your account and get started. +To get started with Payload Cloud, you will first need to create an account. From the login screen, select **Register for Free**. Once you’ve created an account, you’ll need to verify it by visiting the link sent to your email. After that, you can log into your account and get started. To create your first project, you can either [start from a @@ -18,7 +18,7 @@ To get started with Payload Cloud, you will first need to create an account. Fro ## Starting from a Template -Payload Cloud templates provide a one-click, simple solution to quickly deploy a new application. Templates come preconfigured, so there is no additional set up needed to run your application on Payload Cloud. +Payload Cloud templates provide a one-click, simple solution to quickly deploy a new application. Templates come pre-configured, so there is no additional set up needed to run your application on Payload Cloud. ![Screen for creating a new project from a template](https://payloadcms.com/images/docs/cloud/create-from-template.jpg) _Creating a new project from a template._ @@ -27,19 +27,19 @@ After creating an account, select your desired template from the Projects page. Next, select your `GitHub Scope`. If you belong to multiple organizations they will show up here. If do not see the organization you are looking for, you may need to adjust your GitHub app permissions. -After selecting your scope, choose a unique `repository name` for and select whether or not you want your repository to be public or private on GitHub. +After selecting your scope, create a unique `repository name` and select whether you want your repository to be public or private on GitHub. Note: Public repositories can be accessed by anyone online, - while private repositories grant access to you and anyone you explicitly + while private repositories only grant access to you and anyone you explicitly authorize. -Once you are ready, click **Create Project**. This will clone a repository of the template you selected to your GitHub account, and take you to the configuration page to set up your project for deployment. +Once you are ready, click **Create Project**. This will clone the selected template to a new respository in your GitHub account, and take you to the configuration page to set up your project for deployment. ## Importing from an Existing Codebase -Payload Cloud works for any Node + MongoDB app. From the the New Project page, select **import an existing Git codebase**. Choose the organization and select the repository you want to import. From here, you will be taken to the configuration page to set up your project for deployment. +Payload Cloud works for any Node + MongoDB app. From the New Project page, select **import an existing Git codebase**. Choose the organization and select the repository you want to import. From here, you will be taken to the configuration page to set up your project for deployment. Note: In order to make use of the features of Payload Cloud diff --git a/docs/cloud/projects.mdx b/docs/cloud/projects.mdx index 3612334134..cd2a21a4f7 100644 --- a/docs/cloud/projects.mdx +++ b/docs/cloud/projects.mdx @@ -9,7 +9,7 @@ keywords: cloud, payload cloud, projects, project, overview, database, file stor ### Overview - The overview tab shows you your most recent deployment, and its build and + The overview tab shows your most recent deployment, along with build and deploy logs. From here, you can see your live URL, deployment details like timestamps and commit hash, as well as the status of your deployment. You can also trigger a redeployment manually, which will rebuild your project using @@ -21,7 +21,7 @@ _A screenshot of the Overview page for a Cloud project._ ### Database -Your Payload Cloud project comes with a MongoDB serverless Atlas DB instance or Dedicated Atlas cluster, depending on your plan. To interact with your cloud database, you use a MongoDB connection string. This can be found under the **Database** tab of your project. +Your Payload Cloud project comes with a MongoDB serverless Atlas DB instance or Dedicated Atlas cluster, depending on your plan. To interact with your cloud database, you will be provided with a MongoDB connection string. This can be found under the **Database** tab of your project. `mongodb+srv://your_connection_string` @@ -37,7 +37,7 @@ You can update settings from your Project’s Settings tab. Changes to your buil ### Environment Variables -From the Environment Variables page of the Settings tab, you can add new variables or adjust and delete current variables for your project. Like build settings, these changes will trigger a redeployment of your project. +From the Environment Variables page of the Settings tab, you can add, update and delete variables for use in your project. Like build settings, these changes will trigger a redeployment of your project. Note: For security reasons, any variables you wish to provide to the Admin @@ -58,34 +58,34 @@ Once you click save, a DNS record will be generated for your domain name to poin You will also need to configure your Payload project to use your specified domain. in your `payload.config.ts` file, specify your serverURL with your domain: -```tsx +```ts export default buildConfig({ - serverURL: 'https://example.com', + serverURL: "https://example.com", // the rest of your config, }); ``` ### Email -Powered by Resend, Payload Cloud comes with integrated email support out of the box. No configuration is needed, and you can use `payload.sendEmail()` to send email right from your Payload app. To learn more about sending email with Payload, visit the [Email Configuration](https://payloadcms.com/docs/email/overview) page of the docs. +Powered by Resend, Payload Cloud comes with integrated email support out of the box. No configuration is needed, and you can use `payload.sendEmail()` to send email right from your Payload app. To learn more about sending email with Payload, checkout the [Email Configuration](https://payloadcms.com/docs/email/overview) overview. -If you are on the Pro or Enterprise plan, you can add your own custom Email domain name to send emails. From the Email page of your project’s Settings page, add the domain you wish to use for email delivery. This will generate a set of DNS records. Add these records to your DNS provider and click verify to check that your records are resolving properly. Once verified, your emails will now be sent from your custom domain name. +If you are on the Pro or Enterprise plan, you can add your own custom Email domain name. From the Email page of your project’s Settings page, add the domain you wish to use for email delivery. This will generate a set of DNS records. Add these records to your DNS provider and click verify to check that your records are resolving properly. Once verified, your emails will now be sent from your custom domain name. ### Developing Locally To make changes to your project, you will need to clone the repository defined in your project settings to your local machine. In order to run your project locally, you will need configure your local environment first. Refer to your repository’s `README.md` file to see the steps needed for your specific template. -From there, you are ready to make updates to your project. When you want to add these changes to your live Cloud project, commit your changes to the branch you specified in your Project settings, and your application will automatically trigger a redeploy and build from your latest commit. +From there, you are ready to make updates to your project. When you are ready to make your changes live, commit your changes to the branch you specified in your Project settings, and your application will automatically trigger a redeploy and build from your latest commit. ### Cloud Plugin -Projects generated from a template will come preconfigured with the official Cloud Plugin, but if you are using your own repository you will need to add this into your project. To do so, add the plugin to your Payload config: +Projects generated from a template will come pre-configured with the official Cloud Plugin, but if you are using your own repository you will need to add this into your project. To do so, add the plugin to your Payload config: `yarn add @payloadcms/plugin-cloud` -```jsx -import { payloadCloud } from '@payloadcms/plugin-cloud'; -import { buildConfig } from 'payload/config'; +```js +import { payloadCloud } from "@payloadcms/plugin-cloud"; +import { buildConfig } from "payload/config"; export default buildConfig({ plugins: [payloadCloud()], @@ -102,7 +102,7 @@ export default buildConfig({ If you wish to opt-out of any Payload cloud features, the plugin also accepts options to do so. -```jsx +```js payloadCloud({ storage: false, // Disable file storage email: false, // Disable email delivery diff --git a/docs/cloud/teams.mdx b/docs/cloud/teams.mdx index 30447dd3d9..6b94339c67 100644 --- a/docs/cloud/teams.mdx +++ b/docs/cloud/teams.mdx @@ -16,7 +16,7 @@ _A screenshot of the Team Settings page._ ### Members -Each team has member that can interact with your projects. You can invite multiple people to your team and each individual can belong to more than one team. You can delegate wether they have `owner` permissions or just User permissions. Owners are able to make admin-only changes, such as deleting projects, and editing billing information. +Each team has members that can interact with your projects. You can invite multiple people to your team and each individual can belong to more than one team. You can delegate whether they have `owner` or `user` permissions. Owners are able to make admin-only changes, such as deleting projects, and editing billing information. ### Adding Members