From 32a5e17741814b5c2e92f3bf202a468d5c8a0440 Mon Sep 17 00:00:00 2001 From: Lars Gyrup Brink Nielsen Date: Mon, 12 Jun 2023 14:09:59 +0200 Subject: [PATCH] docs: create Docusaurus website (#143) ## PR Checklist Please check if your PR fulfills the following requirements: - [x] The commit message follows our guidelines: CONTRIBUTING.md#commit - [ ] Tests for the changes have been added (for bug fixes / features) - [x] Docs have been added / updated (for bug fixes / features) ## PR Type What kind of change does this PR introduce? ``` [ ] Bugfix [ ] Feature [ ] Code style update (formatting, local variables) [ ] Refactoring (no functional changes, no api changes) [x] Build related changes [ ] CI related changes [x] Documentation content changes [ ] Other... Please describe: ``` ## What is the current behavior? No documentation website Issue Number: N/A ## What is the new behavior? A beautiful Docusaurus website. ## Does this PR introduce a breaking change? ``` [ ] Yes [x] No ``` ## Other information Done during The Frame Drops. Please donate at https://donate.theframedrops.com # To do - [ ] Convert to TypeScript files --------- Co-authored-by: Nacho Vazquez --- .github/workflows/ci.yml | 33 + .gitignore | 4 + .prettierignore | 1 + README.md | 842 +--- .../lumberjack-docs-app-e2e/.eslintrc.json | 17 + .../lumberjack-docs-app-e2e/cypress.config.ts | 8 + e2e/docs/lumberjack-docs-app-e2e/project.json | 43 + .../src/e2e/home.cy.ts | 16 + .../src/fixtures/example.json | 4 + .../src/support/app.po.ts | 4 + .../src/support/commands.ts | 9 + .../src/support/e2e.ts | 17 + .../src/support/home.po.ts | 4 + .../lumberjack-docs-app-e2e/tsconfig.json | 22 + package.json | 14 +- .../docs/lumberjack-docs-app/babel.config.js | 3 + .../docs/lumberjack-docs-app/blog/.gitkeep | 0 .../lumberjack-docs-app/blog/new-blog-post.md | 25 + .../docs/best-practices.md | 254 + .../docs/community-drivers.md | 11 + .../lumberjack-docs-app/docs/compatibility.md | 16 + .../lumberjack-docs-app/docs/installation.md | 12 + .../docs/log-drivers/http-driver.md | 302 ++ .../docs/log-drivers/log-drivers.md | 358 ++ .../docs/lumberjack-docs-app/docs/usage.md | 177 + .../lumberjack-docs-app/docusaurus.config.js | 125 + .../docs/lumberjack-docs-app/project.json | 22 + packages/docs/lumberjack-docs-app/sidebars.js | 8 + .../lumberjack-docs-app/src/css/custom.css | 38 + .../lumberjack-docs-app/src/pages/index.js | 91 + .../src/pages/styles.module.css | 44 + .../static/img/configurable.webp | Bin 0 -> 21662 bytes .../static/img/easy-to-use.webp | Bin 0 -> 17770 bytes .../static/img/extensible.webp | Bin 0 -> 15260 bytes .../static/img/favicon.ico | Bin 0 -> 15086 bytes .../lumberjack-docs-app/static/img/logo.svg | 175 + .../static/img/undraw_docusaurus_mountain.svg | 170 + .../static/img/undraw_docusaurus_react.svg | 169 + .../static/img/undraw_docusaurus_tree.svg | 1 + .../examples/lumberjack-app/src/favicon.ico | Bin 15086 -> 15086 bytes packages/ngworker/lumberjack/package.json | 2 +- sonar-project.properties | 2 +- yarn.lock | 4243 +++++++++++++++-- 43 files changed, 5939 insertions(+), 1347 deletions(-) create mode 100644 e2e/docs/lumberjack-docs-app-e2e/.eslintrc.json create mode 100644 e2e/docs/lumberjack-docs-app-e2e/cypress.config.ts create mode 100644 e2e/docs/lumberjack-docs-app-e2e/project.json create mode 100644 e2e/docs/lumberjack-docs-app-e2e/src/e2e/home.cy.ts create mode 100644 e2e/docs/lumberjack-docs-app-e2e/src/fixtures/example.json create mode 100644 e2e/docs/lumberjack-docs-app-e2e/src/support/app.po.ts create mode 100644 e2e/docs/lumberjack-docs-app-e2e/src/support/commands.ts create mode 100644 e2e/docs/lumberjack-docs-app-e2e/src/support/e2e.ts create mode 100644 e2e/docs/lumberjack-docs-app-e2e/src/support/home.po.ts create mode 100644 e2e/docs/lumberjack-docs-app-e2e/tsconfig.json create mode 100644 packages/docs/lumberjack-docs-app/babel.config.js create mode 100644 packages/docs/lumberjack-docs-app/blog/.gitkeep create mode 100644 packages/docs/lumberjack-docs-app/blog/new-blog-post.md create mode 100644 packages/docs/lumberjack-docs-app/docs/best-practices.md create mode 100644 packages/docs/lumberjack-docs-app/docs/community-drivers.md create mode 100644 packages/docs/lumberjack-docs-app/docs/compatibility.md create mode 100644 packages/docs/lumberjack-docs-app/docs/installation.md create mode 100644 packages/docs/lumberjack-docs-app/docs/log-drivers/http-driver.md create mode 100644 packages/docs/lumberjack-docs-app/docs/log-drivers/log-drivers.md create mode 100644 packages/docs/lumberjack-docs-app/docs/usage.md create mode 100644 packages/docs/lumberjack-docs-app/docusaurus.config.js create mode 100644 packages/docs/lumberjack-docs-app/project.json create mode 100644 packages/docs/lumberjack-docs-app/sidebars.js create mode 100644 packages/docs/lumberjack-docs-app/src/css/custom.css create mode 100644 packages/docs/lumberjack-docs-app/src/pages/index.js create mode 100644 packages/docs/lumberjack-docs-app/src/pages/styles.module.css create mode 100644 packages/docs/lumberjack-docs-app/static/img/configurable.webp create mode 100644 packages/docs/lumberjack-docs-app/static/img/easy-to-use.webp create mode 100644 packages/docs/lumberjack-docs-app/static/img/extensible.webp create mode 100644 packages/docs/lumberjack-docs-app/static/img/favicon.ico create mode 100644 packages/docs/lumberjack-docs-app/static/img/logo.svg create mode 100644 packages/docs/lumberjack-docs-app/static/img/undraw_docusaurus_mountain.svg create mode 100644 packages/docs/lumberjack-docs-app/static/img/undraw_docusaurus_react.svg create mode 100644 packages/docs/lumberjack-docs-app/static/img/undraw_docusaurus_tree.svg diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fd5f4955a..da4cffbf1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -88,6 +88,39 @@ jobs: # lower the number of agents to reduce spent compute time. number-of-agents: 4 + deploy-docs: + name: '[Merge] Deploy docs to GitHub Pages' + needs: dte_coordinator + if: github.event_name == 'push' && github.ref_name == 'main' + runs-on: ubuntu-latest + permissions: + contents: read + actions: read + pages: write + id-token: write + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Check out the source code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Setup + uses: ./.github/actions/setup + # Uses the cache generated in the distributed step + - name: Build docs + run: yarn nx build docs-lumberjack-docs-app + - name: Set up GitHub Pages + uses: actions/configure-pages@v2 + - name: Upload docs to GitHub Pages + uses: actions/upload-pages-artifact@v1 + with: + path: dist/packages/docs/lumberjack-docs-app/ + - name: Deploy docs to GitHub Pages + id: deployment + uses: actions/deploy-pages@v1 + sonarcloud: name: SonarCloud needs: dte_coordinator diff --git a/.gitignore b/.gitignore index 0e7953842..7d14c5175 100644 --- a/.gitignore +++ b/.gitignore @@ -43,3 +43,7 @@ Thumbs.db # Nx migrations.json + +# Generated Docusaurus files +.docusaurus/ +.cache-loader/ diff --git a/.prettierignore b/.prettierignore index 660b75646..4af9ffa52 100644 --- a/.prettierignore +++ b/.prettierignore @@ -4,3 +4,4 @@ /coverage /reports /.angular/ +.docusaurus/ diff --git a/README.md b/README.md index 9d86bd7c8..acbad1727 100644 --- a/README.md +++ b/README.md @@ -41,16 +41,6 @@ out-of-the-box. It's easy to enable the built-in log drivers or create and use c - ✅ Lumberjack service - ✅ Best practices guide -## Table of Contents - -- [Installation](#installation) -- [Usage](#usage) -- [Log drivers](#log-drivers) -- [Community Drivers](#community-drivers) -- [Best practices](#best-practices) -- [Wallaby.js](#wallaby.js) -- [Contributors](#contributors) - ## Installation Lumberjack is published as the `@ngworker/lumberjack` package. @@ -61,837 +51,9 @@ Lumberjack is published as the `@ngworker/lumberjack` package. | PNPM CLI | `pnpm add @ngworker/lumberjack` | | Yarn CLI | `yarn add @ngworker/lumberjack` | -## Compatibility - -Refer to the following table to determine which version of Lumberjack is compatible with your Angular version. - -| Angular version | Lumberjack version | -| --------------- | ------------------ | -| 15.x | 15.x | -| 14.x | 14.x | -| 13.x | 2.x | -| 12.x | 2.x | -| 11.x | 2.x | -| 10.x | 2.x | -| 9.x | 2.x | - -## Usage - -> For a complete walkthrough video please -> visit [@ngworker/lumberjack v2 - Show & Tell BLS024](https://youtu.be/OV1ONtLAJnI) - -To register Lumberjack, add `LumberjackModule.forRoot()` to your root or core Angular module. - -```ts -// (...) -import {LumberjackModule} from '@ngworker/lumberjack'; - -@NgModule({ - imports: [ - // (...) - LumberjackModule.forRoot(), - // (...) - ], - // (...) -}) -``` - -Or if you prefer a prefer standalone approach using the `provideLumberjack()`. - -```ts -bootstrapApplication(AppComponent, { - providers: [ - // (...) - provideLumberjack(), - // (...) - ], -}); -``` - -You must also register the log driver modules for the log drivers that you want to enable. - -If you want to add the `LumberjackHttpDriver` and the `LumberjackConsoleDriver`, add the following code - -```ts -// (...) -import { LumberjackModule } from '@ngworker/lumberjack'; -import { LumberjackHttpDriverModule } from '@ngworker/lumberjack/http-driver'; -import { LumberjackConsoleDriverModule } from '@ngworker/lumberjack/console-driver'; - -@NgModule({ - imports: [ - // (...) - LumberjackModule.forRoot(), - LumberjackConsoleDriverModule.forRoot(), - LumberjackHttpDriverModule.withOptions({ - origin: '', - storeUrl: '/api/logs', - retryOptions: { maxRetries: 5, delayMs: 250 }, - }), - // (...) - ], - // (...) -}) -export class AppModule {} -``` - -Or using the standalone version - -```ts -bootstrapApplication(AppComponent, { - providers: [ - // (...) - provideLumberjack(), - provideLumberjackConsoleDriver(), - provideLumberjackHttpDriver(withHttpConfig({...})), - // (...) - ], -}); -``` - -
- -### Using the `LumberjackService` - -For quick or simple use cases, you can use the `LumberjackService` directly by passing logs to its `log` method. -However, we recommend implementing application-specific logger services instead. See the [_Best -practices_](#best-practices) section. - -First, inject the `LumberjackService` where you want to use it. - -```ts -import { Component } from '@angular/core'; -import { LumberjackService } from '@ngworker/lumberjack'; - -@Component({ - // (...) -}) -export class MyComponent implements OnInit { - readonly #lumberjack = inject(LumberjackService); - - // (...) -} -``` - -or using the `inject` function - -```ts -import { inject, Component } from '@angular/core'; -import { LumberjackService } from '@ngworker/lumberjack'; - -@Component({ - // (...) -}) -export class MyComponent implements OnInit { - readonly #lumberjack = inject(LumberjackService); - // (...) -} -``` - -Then we can start logging. However, you'll also want to inject `LumberjackTimeService` to maintain a high level of -testability. - -```ts -// (...) -import { LumberjackService, LumberjackTimeService } from '@ngworker/lumberjack'; - -// (...) -export class MyComponent implements OnInit { - readonly #lumberjack = inject(LumberjackService); - readonly #time = inject(LumberjackTimeService); - - // (...) - ngOnInit(): void { - this.#lumberjack.log({ - level: LumberjackLevel.Info, - message: 'Hello, World!', - scope: 'MyComponent', - createdAt: this.#time.getUnixEpochTicks(), - }); - } -} -``` - -### LumberjackModule and provideLumberjack - -Optionally, we can pass one or more options to `LumberjackModule.forRoot` or to the `provideLumberjack` function. - -| Option | Type | Optional? | Description | -| -------- | ------------------------------ | --------- | -------------------------------------------------------------------- | -| `format` | (log: LumberjackLog) => string | Yes | Pass a custom formatter to transform a log into a log message. | -| `levels` | `LumberjackConfigLevels` | Yes | The root log levels defining the default log levels for log drivers. | - -
- -### Default options - -Lumberjack's configuration is flexible. We can provide a full configuration object, a partial option set, or no options -at all. - -Lumberjack replaces omitted options with defaults. - -When the `format` option is not configured, Lumberjack will use the following default formatter. - -```ts -function lumberjackFormatLog({ scope, createdAt: timestamp, level, message }: LumberjackLog) { - return `${level} ${utcTimestampFor(timestamp)}${scope ? ` [${scope}]` : ''} ${message}`; -} -``` - -Where `utcTimestampFor` is a function that converts Unix Epoch ticks to UTC 0 hours offset with milliseconds resolution. - -#### Default log levels - -When the `levels` setting is not configured, log levels are configured depending on whether our application runs in -development mode or production mode. - -By default, in development mode, **all** log levels are enabled. - -By default, in production mode, the following log levels are enabled: - -- Critical -- Error -- Info -- Warning - -
- -## Log drivers - -Earlier, we briefly introduced the term _log driver_. This section explains in depth how to use and configure them and -how to create custom log drivers. - -A log driver is the conduit used by the Lumberjack to output or persist application logs. - -Lumberjack offers basic log drivers out-of-the-box, namely the `LumberjackConsoleDriver` and the `LumberjackHttpDriver`. - -Every log driver implements the `LumberjackLogDriver` interface. - -```ts -export interface LumberjackLogDriver { - readonly config: LumberjackLogDriverConfig; - - logCritical(driverLog: LumberjackLogDriverLog): void; - - logDebug(driverLog: LumberjackLogDriverLog): void; - - logError(driverLog: LumberjackLogDriverLog): void; - - logInfo(driverLog: LumberjackLogDriverLog): void; - - logTrace(driverLog: LumberjackLogDriverLog): void; - - logWarning(driverLog: LumberjackLogDriverLog): void; -} -``` - -The `LumberjackLogDriverLog` holds a formatted string representation of the `LumberjackLog` and the `LumberjackLog` -itself. - -```ts -export interface LumberjackLogDriverLog { - readonly formattedLog: string; - readonly log: LumberjackLog; -} -``` - -### Log levels - -Log drivers should make it possible to configure the logging levels on a per driver basis. - -For example, we could use the default logging levels for the console driver, but only enable the critical and error -levels for the HTTP driver as seen in the following example. - -```ts -import { NgModule } from '@angular/core'; -import { LumberjackLevel, LumberjackModule } from '@ngworker/lumberjack'; -import { LumberjackConsoleDriverModule } from '@ngworker/lumberjack/console-driver'; -import { LumberjackHttpDriverModule } from '@ngworker/lumberjack/http-driver'; - -@NgModule({ - imports: [ - LumberjackModule.forRoot({ - levels: [LumberjackLevel.Verbose], - }), - LumberjackConsoleDriverModule.forRoot(), - LumberjackHttpDriverModule.forRoot({ - levels: [LumberjackLevel.Critical, LumberjackLevel.Error], - origin: 'ForestApp', - storeUrl: '/api/logs', - retryOptions: { maxRetries: 5, delayMs: 250 }, - }), - // (...) - ], - // (...) -}) -export class AppModule {} -``` - -Or use the standalone version of the API - -```ts -import { bootstrapApplication } from '@angular/platform-browser'; - -import { LumberjackLevel, provideLumberjack } from '@ngworker/lumberjack'; -import { provideLumberjackConsoleDriver } from '@ngworker/lumberjack/console-driver'; -import { provideLumberjackHttpDriver, withHttpConfig } from '@ngworker/lumberjack/http-driver'; - -import { AppComponent } from './app/app.component'; - -bootstrapApplication(AppComponent, { - providers: [ - provideLumberjack(), - provideLumberjackConsoleDriver(), - provideLumberjackHttpDriver( - withHttpConfig({ - levels: [LumberjackLevel.Critical, LumberjackLevel.Error], - origin: 'ForestApp', - storeUrl: '/api/logs', - retryOptions: { maxRetries: 5, delayMs: 250 }, - }) - ), - ], -}); -``` - -### Creating a custom log driver - -> Note, you can use -> the [ngworker/lumberjack-custom-driver](https://github.com/ngworker/lumberjack-custom-driver/generate) template Git -> repository to start a separate Lumberjack log driver workspace. - -Let's create a simple log driver for the browser console. - -```ts -import { inject, Injectable } from '@angular/core'; - -import { LumberjackLogDriver, LumberjackLogDriverConfig, LumberjackLogDriverLog } from '@ngworker/lumberjack'; - -import { consoleDriverConfigToken } from './console-driver-config.token'; - -@Injectable() -export class ConsoleDriver implements LumberjackLogDriver { - readonly config = inject(consoleDriverConfigToken); - - logCritical({ formattedLog }: LumberjackLogDriverLog): void { - console.error(formattedLog); - } - - logDebug({ formattedLog }: LumberjackLogDriverLog): void { - console.debug(formattedLog); - } - - logError({ formattedLog }: LumberjackLogDriverLog): void { - console.error(formattedLog); - } - - logInfo({ formattedLog }: LumberjackLogDriverLog): void { - console.info(formattedLog); - } - - logTrace({ formattedLog }: LumberjackLogDriverLog): void { - console.trace(formattedLog); - } - - logWarning({ formattedLog }: LumberjackLogDriverLog): void { - console.warn(formattedLog); - } -} -``` - -In the above snippet, the config is injected and assigned to the public `config` property. Lumberjack uses this -configuration to determine which logs the log driver should handle. - -#### Using a LumberjackLogPayload - -We might want to add some extra data not present in the `LumberjackLog` to our log driver. - -For such cases, Lumberjack exposes the `LumberjackLog#payload` property. - -```ts -/** - * A Lumberjack log entry - */ -export interface LumberjackLog { - /** - * Scope, for example domain, application, component, or service. - */ - readonly scope?: string; - /** - * Unix epoch ticks (milliseconds) timestamp when log entry was created. - */ - readonly createdAt: number; - /** - * Level of severity. - */ - readonly level: LumberjackLogLevel; - /** - * Log message, for example describing an event that happened. - */ - readonly message: string; - - /** - * Holds any payload info - */ - readonly payload?: TPayload; -} -``` - -We can modify the `ConsoleDriver` to handle such payload information - -```ts -import { inject, Injectable } from '@angular/core'; - -import { - LumberjackLogDriver, - LumberjackLogDriverConfig, - LumberjackLogDriverLog, - LumberjackLogPayload, -} from '@ngworker/lumberjack'; - -import { consoleDriverConfigToken } from './console-driver-config.token'; - -export interface AnalyticsPayload extends LumberjackLogPayload { - angularVersion: string; -} - -@Injectable() -export class ConsoleDriver implements LumberjackLogDriver { - readonly config = inject(consoleDriverConfigToken); - - logCritical({ formattedLog, log }: LumberjackLogDriverLog): void { - console.error(formattedLog, log.payload); - } - - logDebug({ formattedLog, log }: LumberjackLogDriverLog): void { - console.debug(formattedLog, log.payload); - } - - logError({ formattedLog, log }: LumberjackLogDriverLog): void { - console.error(formattedLog, log.payload); - } - - logInfo({ formattedLog, log }: LumberjackLogDriverLog): void { - console.info(formattedLog, log.payload); - } - - logTrace({ formattedLog, log }: LumberjackLogDriverLog): void { - console.trace(formattedLog, log.payload); - } - - logWarning({ formattedLog, log }: LumberjackLogDriverLog): void { - console.warn(formattedLog, log.payload); - } -} -``` - -#### Creating a custom log driver module and provider functions - -The provide functions provides configuration and other dependencies to a log driver. It also provides the log driver, -making -it available to Lumberjack. - -```ts -import { Provider } from '@angular/core'; - -import { - LumberjackLogDriverConfig, - lumberjackLogDriverConfigToken, - lumberjackLogDriverToken, -} from '@ngworker/lumberjack'; - -import { LumberjackConsoleDriver } from '../log-drivers/lumberjack-console.driver'; - -import { lumberjackConsoleDriverConfigToken } from './lumberjack-console-driver-config.token'; -import { LumberjackConsoleDriverConfig } from './lumberjack-console-driver.config'; - -export function provideLumberjackConsoleDriver(config: Partial = {}): Provider[] { - return [ - { - provide: lumberjackConsoleDriverConfigToken, - deps: [lumberjackLogDriverConfigToken], - useFactory: (logDriverConfig: LumberjackLogDriverConfig): LumberjackConsoleDriverConfig => ({ - ...logDriverConfig, - identifier: LumberjackConsoleDriver.driverIdentifier, - ...config, - }), - }, - { - provide: lumberjackLogDriverToken, - useClass: LumberjackConsoleDriver, - multi: true, - }, - ]; -} -``` - -The driver module then acts as a wrapper for the log driver and the provide function. - -```ts -import { ModuleWithProviders, NgModule } from '@angular/core'; - -import { LumberjackConsoleDriverRootModule } from './lumberjack-console-driver-root.module'; -import { LumberjackConsoleDriverConfig } from './lumberjack-console-driver.config'; -import { provideLumberjackConsoleDriver } from './lumberjack-console-driver.providers'; - -@NgModule() -export class LumberjackConsoleDriverModule { - static forRoot( - config: Partial = {} - ): ModuleWithProviders { - return { - ngModule: LumberjackConsoleDriverRootModule, - providers: [provideLumberjackConsoleDriver(config)], - }; - } - - constructor() { - throw new Error('Do not import LumberjackConsoleDriverModule directly. Use LumberjackConsoleDriverModule.forRoot.'); - } -} -``` - -The static `forRoot()` method provides the `consoleDriverConfigToken`. - -If no configuration is passed, then the root `LogDriverConfig` is used. - -```ts -import { InjectionToken } from '@angular/core'; -import { LumberjackLogDriverConfig, lumberjackLogDriverConfigToken } from '@ngworker/lumberjack'; - -export const consoleDriverConfigToken = new InjectionToken('__CONSOLE_DRIVER_CONFIG__', { - factory: () => inject({ ...lumberjackLogDriverConfigToken, identifier: 'ConsoleDriver' }), -}); -``` - -This is possible because the `ConsoleDriver` has the same configuration options as the `LumberjackLogDriverConfig`. We -only have to include the driver identifier since it cannot be predefined. - -For adding custom settings, -see [LumberjackHttpDriver](https://github.com/ngworker/lumberjack/blob/main/packages/ngworker/lumberjack/http-driver/src/lib/lumberjack-http-driver-root.module.ts). - -The most important thing about the `LumberjackConsoleDriverModule` is that it provides the `LumberjackConsoleDriver` -using the `lumberjackLogDriverToken` with the `multi` flag on. This allows us to provide multiple log drivers for -Lumberjack at the same time. - -#### Using a custom log driver - -The last step is to import this module at the root module of our application, as seen in the first [_Usage_](#usage) -section. - -```ts -@NgModule({ - imports: [ - LumberjackModule.forRoot(), - ConsoleDriverModule.forRoot(), - // (...) - ], - // (...) -}) -export class AppModule {} -``` - -Or using the standalone API. - -```typescript -import { bootstrapApplication } from '@angular/platform-browser'; - -import { LumberjackLog, LumberjackOptions, provideLumberjack } from '@ngworker/lumberjack'; -import { provideLumberjackConsoleDriver } from '@ngworker/lumberjack/console-driver'; - -import { AppComponent } from './app/app.component'; - -bootstrapApplication(AppComponent, { - providers: [ - provideLumberjack(), - provideLumberjackConsoleDriver(), - // (...) - ], -}); -``` - -### HTTP driver - -For a more advanced log driver implementation, -see [LumberjackHttpDriver](https://github.com/ngworker/lumberjack/blob/main/packages/ngworker/lumberjack/http-driver/README.md) - -## Community drivers - -> Note, you can use -> the [ngworker/lumberjack-custom-driver](https://github.com/ngworker/lumberjack-custom-driver/generate) template Git -> repository to start a separate Lumberjack log driver workspace. - -If you want your driver listed here, open a PR and follow the same format. - -- [@ngworker/lumberjack-firestore-driver](https://github.com/marcinmilewicz/lumberjack-firestore-driver), community log - driver using [Cloud Firestore](https://firebase.google.com/docs/firestore) as a log store. -- [@ngworker/lumberjack-applicationinsights-driver](https://github.com/ngworker/lumberjack-applicationinsights-driver), - community log driver - using [Azure Application Insights](https://docs.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview) as - a log store. - -The ngworkers teams offers hosting of a community log driver in the [ngworker GitHub](https://github.com/ngworker) -and [@ngworker NPM](https://www.npmjs.com/org/ngworker) organizations. - -## Best practices - -Every log can be represented as a combination of its level, creation time, message, scope and payload. Using inline logs -with the `LumberjackService` can cause structure duplication and/or denormalization. - -Continue reading to know more about the recommended best practices designed to tackle this issue. - -### Loggers - -The `LumberjackLogger` service is an abstract class that wraps the `LumberjackService` to help us create structured logs -and reduce boilerplate. At the same time, it provides testing capabilities since we can easily spy on logger methods and -control timestamps by replacing the `LumberjackTimeService`. - -`LumberjackLogger` is used as the base class for any other logger that we need. - -This is the abstract interface of `LumberjackLogger`: - -```ts -/** - * A logger holds methods that log a predefined log. - * - * Implement application- and library-specific loggers by extending this base - * class. Optionally supports a log payload. - * - * Each protected method on this base class returns a logger builder. - */ -@Injectable() -export abstract class LumberjackLogger { - protected lumberjack: LumberjackService; - protected time: LumberjackTimeService; - - /** - * Create a logger builder for a critical log with the specified message. - */ - protected createCriticalLogger(message: string): LumberjackLoggerBuilder; - - /** - * Create a logger builder for a debug log with the specified message. - */ - protected createDebugLogger(message: string): LumberjackLoggerBuilder; - - /** - * Create a logger builder for an error log with the specified message. - */ - protected createErrorLogger(message: string): LumberjackLoggerBuilder; - - /** - * Create a logger builder for an info log with the specified message. - */ - protected createInfoLogger(message: string): LumberjackLoggerBuilder; - - /** - * Create a logger builder for a trace log with the specified message. - */ - protected createTraceLogger(message: string): LumberjackLoggerBuilder; - - /** - * Create a logger builder for a warning log with the specified message. - */ - protected createWarningLogger(message: string): LumberjackLoggerBuilder; - - /** - * Create a logger builder for a log with the specified log level and message. - */ - protected createLoggerBuilder(level: LumberjackLogLevel, message: string): LumberjackLoggerBuilder; -``` - -By extending `LumberjackLogger`, we only have to worry about our pre-defined logs' message and scope. - -All logger factory methods are protected as it is recommended to create a custom logger per _scope_ rather than using -logger factories directly in a consumer. - -As an example, let's create a custom logger for our example application. - -```ts -import { Injectable } from '@angular/core'; - -import { LumberjackLogger, LumberjackService, LumberjackTimeService } from '@ngworker/lumberjack'; - -@Injectable({ - providedIn: 'root', -}) -export class AppLogger extends LumberjackLogger { - static scope = 'Forest App'; - - forestOnFire = this.createCriticalLogger('The forest is on fire!').withScope(AppLogger.scope).build(); - - helloForest = this.createInfoLogger('Hello, Forest!').withScope(AppLogger.scope).build(); -} -``` - -#### Logger usage - -Now that we have defined our first Lumberjack logger let's use it to log logs from our application. - -```ts -import { inject, Component, OnInit } from '@angular/core'; -import { LumberjackLogger } from '@ngworker/lumberjack'; - -import { AppLogger } from './app.logger'; -import { ForestService } from './forest.service'; - -@Component({ - selector: 'app-root', - templateUrl: './app.component.html', -}) -export class AppComponent implements OnInit { - readonly #logger = inject(AppLogger); - readonly #forest = inject(ForestService); - - ngOnInit(): void { - this.#logger.helloForest(); - - this.#forest.fire$.subscribe(() => this.#logger.forestOnFire()); - } -} -``` - -The previous example logs _Hello, Forest!_ when the application is initialized, then logs _The forest is on fire!_ if a -forest fire is detected. - -#### Simplifying with ScopedLumberjackLogger - -An alternative to the `LumberjackLogger` interface, where we need to specify the lumberjack log scope manually, we could -use the `ScopedLumberjackLogger`. - -The `ScopedLumberjackLogger` is a convenient Logger and an excellent example of how to create custom Loggers according -to your situation. - -```ts -/** - * A scoped logger holds methods that log a predefined log sharing a scope. - * - * Implement application- and library-specific loggers by extending this base - * class. Optionally supports a log payload. - * - * Each protected method on this base class returns a logger builder with a - * predefined scope. - */ -@Injectable() -export abstract class ScopedLumberjackLogger< - TPayload extends LumberjackLogPayload | void = void -> extends LumberjackLogger { - abstract readonly scope: string; - - /** - * Create a logger builder for a log with the shared scope as well as the - * specified log level and message. - */ - protected createLoggerBuilder(level: LumberjackLogLevel, message: string): LumberjackLoggerBuilder { - return new LumberjackLoggerBuilder(this.lumberjack, this.time, level, message).withScope(this.scope); - } -} -``` - -The resulting `AppLogger` after refactoring to using the `ScopedLumberjackLogger` would be: - -```ts -import { Injectable } from '@angular/core'; - -import { LumberjackService, LumberjackTimeService, ScopedLumberjackLogger } from '@ngworker/lumberjack'; - -@Injectable({ - providedIn: 'root', -}) -export class AppLogger extends ScopedLumberjackLogger { - scope = 'Forest App'; - - forestOnFire = this.createCriticalLogger('The forest is on fire!').build(); - - helloForest = this.createInfoLogger('Hello, Forest!').build(); -} -``` - -Notice that now every log written using the `AppLogger` will have the `'Forest App'` scope - -#### Using Loggers with a LumberjackLog payload - -As seen in the [Log drivers](#log-drivers) section, we can send extra info to our drivers using -a `LumberjackLog#payload`. - -The `LumberjackLogger` and `ScopedLumberjackLogger` provide a convenient interface for such a scenario. - -```ts -import { Injectable, VERSION } from '@angular/core'; - -import { - LumberjackLogPayload, - LumberjackService, - LumberjackTimeService, - ScopedLumberjackLogger, -} from '@ngworker/lumberjack'; - -export interface LogPayload extends LumberjackLogPayload { - readonly angularVersion: string; -} - -@Injectable({ - providedIn: 'root', -}) -export class AppLogger extends ScopedLumberjackLogger { - static readonly #payload: LogPayload = { - angularVersion: VERSION.full, - }; - - scope = 'Forest App'; - - forestOnFire = this.createCriticalLogger('The forest is on fire!').build(); - - helloForest = this.createInfoLogger('Hello, Forest!').withPayload(AppLogger.#payload).build(); -} -``` - -The `AppLogger` usage remains the same using a `LumberjackLogger` or `ScopedLumberjackLogger`, with payload or without. - -### LumberjackLogFactory - -Lumberjack's recommended way of creating logs is by using a `LumberjackLogger`. - -However, there are some times that we want to create logs manually and pass them to the `LumberjackService`. - -The `LumberjackLogFactory` provides a robust way of creating logs. It's also useful for creating logs in unit tests. - -This is how we create logs manually: - -```ts -import {inject, Component, OnInit, VERSION} from '@angular/core'; - -import {LumberjackLogFactory, LumberjackService} from '@ngworker/lumberjack'; - -import {LogPayload} from './log-payload'; - -@Component({ - selector: 'ngworker-root', - templateUrl: './app.component.html', - styleUrls: ['./app.component.scss'], -}) -export class AppComponent implements OnInit { - readonly #logFactory: inject> -( - LumberjackLogFactory -); - readonly #lumberjack = inject>(LumberjackService); - readonly #payload: LogPayload = { - angularVersion: VERSION.full, - }; - readonly #scope = 'Forest App'; - - ngOnInit(): void { - const helloForest = this.#logFactory - .createInfoLog('Hello, Forest!') - .withScope(this.scope) - .withPayload(this.payload) - .build(); +## Documentation - this.#lumberjack.log(helloForest); - } -} -``` +Get access to the full [documentation](https://github.com/ngworker/lumberjack.git) ## Wallaby.js diff --git a/e2e/docs/lumberjack-docs-app-e2e/.eslintrc.json b/e2e/docs/lumberjack-docs-app-e2e/.eslintrc.json new file mode 100644 index 000000000..e4eb8d11c --- /dev/null +++ b/e2e/docs/lumberjack-docs-app-e2e/.eslintrc.json @@ -0,0 +1,17 @@ +{ + "extends": ["plugin:cypress/recommended", "../../../.eslintrc.json"], + "ignorePatterns": ["!**/*"], + "overrides": [ + { + "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "rules": {} + }, + { + "files": ["src/plugins/index.js"], + "rules": { + "@typescript-eslint/no-var-requires": "off", + "no-undef": "off" + } + } + ] +} diff --git a/e2e/docs/lumberjack-docs-app-e2e/cypress.config.ts b/e2e/docs/lumberjack-docs-app-e2e/cypress.config.ts new file mode 100644 index 000000000..875eddc02 --- /dev/null +++ b/e2e/docs/lumberjack-docs-app-e2e/cypress.config.ts @@ -0,0 +1,8 @@ +import { nxE2EPreset } from '@nx/cypress/plugins/cypress-preset'; +import { defineConfig } from 'cypress'; + +export default defineConfig({ + e2e: { + ...nxE2EPreset(__dirname), + }, +}); diff --git a/e2e/docs/lumberjack-docs-app-e2e/project.json b/e2e/docs/lumberjack-docs-app-e2e/project.json new file mode 100644 index 000000000..09658c074 --- /dev/null +++ b/e2e/docs/lumberjack-docs-app-e2e/project.json @@ -0,0 +1,43 @@ +{ + "name": "docs-lumberjack-docs-app-e2e", + "$schema": "../../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "e2e/docs/lumberjack-docs-app-e2e/src", + "projectType": "application", + "targets": { + "e2e": { + "executor": "@nx/cypress:cypress", + "dependsOn": [ + { + "target": "build", + "dependencies": true + } + ], + "options": { + "cypressConfig": "e2e/docs/lumberjack-docs-app-e2e/cypress.config.ts", + "devServerTarget": "docs-lumberjack-docs-app:serve:development", + "testingType": "e2e" + }, + "configurations": { + "production": { + "devServerTarget": "docs-lumberjack-docs-app:serve:production" + } + } + }, + "lint": { + "executor": "@nx/linter:eslint", + "outputs": ["{options.outputFile}"], + "options": { + "lintFilePatterns": ["e2e/docs/lumberjack-docs-app-e2e/**/*.{js,ts}"] + }, + "configurations": { + "report": { + "format": "json", + "force": true, + "outputFile": "reports/e2e/docs/lumberjack-docs-app-e2e/lint/report.json" + } + } + } + }, + "tags": [], + "implicitDependencies": ["docs-lumberjack-docs-app"] +} diff --git a/e2e/docs/lumberjack-docs-app-e2e/src/e2e/home.cy.ts b/e2e/docs/lumberjack-docs-app-e2e/src/e2e/home.cy.ts new file mode 100644 index 000000000..3aff56802 --- /dev/null +++ b/e2e/docs/lumberjack-docs-app-e2e/src/e2e/home.cy.ts @@ -0,0 +1,16 @@ +import * as app from '../support/app.po'; +import * as home from '../support/home.po'; + +describe('Home page', () => { + beforeEach(() => cy.visit(app.url('/'))); + + it('displays a title', () => { + home.getTitle().contains('Lumberjack'); + }); + + it('links to the documentation', () => { + home.getCallToAction().click(); + + cy.url().should('include', app.url('/docs')); + }); +}); diff --git a/e2e/docs/lumberjack-docs-app-e2e/src/fixtures/example.json b/e2e/docs/lumberjack-docs-app-e2e/src/fixtures/example.json new file mode 100644 index 000000000..294cbed6c --- /dev/null +++ b/e2e/docs/lumberjack-docs-app-e2e/src/fixtures/example.json @@ -0,0 +1,4 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io" +} diff --git a/e2e/docs/lumberjack-docs-app-e2e/src/support/app.po.ts b/e2e/docs/lumberjack-docs-app-e2e/src/support/app.po.ts new file mode 100644 index 000000000..3969c154d --- /dev/null +++ b/e2e/docs/lumberjack-docs-app-e2e/src/support/app.po.ts @@ -0,0 +1,4 @@ +const basePath = '/lumberjack/'; + +export const url = (path: string) => + path === '' ? basePath : `${basePath}${path.replace(/^\//, '')}`.replace(/\/\/$/, '/'); diff --git a/e2e/docs/lumberjack-docs-app-e2e/src/support/commands.ts b/e2e/docs/lumberjack-docs-app-e2e/src/support/commands.ts new file mode 100644 index 000000000..07164efbe --- /dev/null +++ b/e2e/docs/lumberjack-docs-app-e2e/src/support/commands.ts @@ -0,0 +1,9 @@ +// *********************************************** +// This example commands.js shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** diff --git a/e2e/docs/lumberjack-docs-app-e2e/src/support/e2e.ts b/e2e/docs/lumberjack-docs-app-e2e/src/support/e2e.ts new file mode 100644 index 000000000..3d469a6b6 --- /dev/null +++ b/e2e/docs/lumberjack-docs-app-e2e/src/support/e2e.ts @@ -0,0 +1,17 @@ +// *********************************************************** +// This example support/index.js is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands'; diff --git a/e2e/docs/lumberjack-docs-app-e2e/src/support/home.po.ts b/e2e/docs/lumberjack-docs-app-e2e/src/support/home.po.ts new file mode 100644 index 000000000..9f62908fc --- /dev/null +++ b/e2e/docs/lumberjack-docs-app-e2e/src/support/home.po.ts @@ -0,0 +1,4 @@ +const getHeroBanner = () => cy.get('.hero'); + +export const getCallToAction = () => getHeroBanner().find('a'); +export const getTitle = () => getHeroBanner().find('h1'); diff --git a/e2e/docs/lumberjack-docs-app-e2e/tsconfig.json b/e2e/docs/lumberjack-docs-app-e2e/tsconfig.json new file mode 100644 index 000000000..0f3eb22c9 --- /dev/null +++ b/e2e/docs/lumberjack-docs-app-e2e/tsconfig.json @@ -0,0 +1,22 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "sourceMap": false, + "outDir": "../../../dist/out-tsc", + "allowJs": true, + "types": ["cypress", "node"], + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src/**/*.ts", "src/**/*.js", "cypress.config.ts"], + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/package.json b/package.json index a3b0dcb98..546e037dc 100644 --- a/package.json +++ b/package.json @@ -35,10 +35,17 @@ "@angular/platform-browser": "15.0.3", "@angular/platform-browser-dynamic": "15.0.3", "@angular/router": "15.0.3", + "@nx/angular": "16.3.2", + "@docusaurus/core": "2.4.1", + "@docusaurus/preset-classic": "2.4.1", + "@mdx-js/react": "^1.6.22", + "clsx": "^1.2.1", + "prism-react-renderer": "^1.3.5", + "react": "^18.2.0", + "react-dom": "^18.2.0", "rxjs": "7.8.1", "tslib": "2.4.1", - "zone.js": "0.12.0", - "@nx/angular": "16.3.2" + "zone.js": "0.12.0" }, "devDependencies": { "@angular-devkit/build-angular": "15.0.3", @@ -52,6 +59,7 @@ "@angular/language-service": "15.0.3", "@commitlint/cli": "17.3.0", "@commitlint/config-conventional": "17.3.0", + "@docusaurus/module-type-aliases": "2.4.1", "@jscutlery/semver": "2.29.2", "@nx/cypress": "16.3.2", "@nx/devkit": "16.3.2", @@ -59,7 +67,9 @@ "@nx/jest": "16.3.2", "@nx/linter": "16.3.2", "@nx/workspace": "16.3.2", + "@nx-plus/docusaurus": "^15.0.0-rc.0", "@schematics/angular": "15.0.3", + "@tsconfig/docusaurus": "^1.0.6", "@types/copy": "0.3.2", "@types/jest": "29.4.4", "@types/node": "18.11.13", diff --git a/packages/docs/lumberjack-docs-app/babel.config.js b/packages/docs/lumberjack-docs-app/babel.config.js new file mode 100644 index 000000000..e00595dae --- /dev/null +++ b/packages/docs/lumberjack-docs-app/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: [require.resolve('@docusaurus/core/lib/babel/preset')], +}; diff --git a/packages/docs/lumberjack-docs-app/blog/.gitkeep b/packages/docs/lumberjack-docs-app/blog/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/packages/docs/lumberjack-docs-app/blog/new-blog-post.md b/packages/docs/lumberjack-docs-app/blog/new-blog-post.md new file mode 100644 index 000000000..37a254bf0 --- /dev/null +++ b/packages/docs/lumberjack-docs-app/blog/new-blog-post.md @@ -0,0 +1,25 @@ +--- +title: Welcome Docusaurus v2 +description: This is my first post on Docusaurus 2. +slug: welcome-docusaurus-v2 +authors: + - name: Joel Marcey + title: Co-creator of Docusaurus 1 + url: https://github.com/JoelMarcey + image_url: https://github.com/JoelMarcey.png + - name: Sébastien Lorber + title: Docusaurus maintainer + url: https://sebastienlorber.com + image_url: https://github.com/slorber.png +tags: [hello, docusaurus-v2] +image: https://i.imgur.com/mErPwqL.png +hide_table_of_contents: false +--- + +Welcome to this blog. This blog is created with [**Docusaurus 2**](https://docusaurus.io/). + + + +This is my first post on Docusaurus 2. + +A whole bunch of exploration to follow. diff --git a/packages/docs/lumberjack-docs-app/docs/best-practices.md b/packages/docs/lumberjack-docs-app/docs/best-practices.md new file mode 100644 index 000000000..438db7f39 --- /dev/null +++ b/packages/docs/lumberjack-docs-app/docs/best-practices.md @@ -0,0 +1,254 @@ +--- +sidebar_position: 6 +title: Best practices +--- + +Every log can be represented as a combination of its level, creation time, message, scope and payload. Using inline logs +with the `LumberjackService` can cause structure duplication and/or denormalization. + +Continue reading to know more about the recommended best practices designed to tackle this issue. + +### Loggers + +The `LumberjackLogger` service is an abstract class that wraps the `LumberjackService` to help us create structured logs +and reduce boilerplate. At the same time, it provides testing capabilities since we can easily spy on logger methods and +control timestamps by replacing the `LumberjackTimeService`. + +`LumberjackLogger` is used as the base class for any other logger that we need. + +This is the abstract interface of `LumberjackLogger`: + +```ts +/** + * A logger holds methods that log a predefined log. + * + * Implement application- and library-specific loggers by extending this base + * class. Optionally supports a log payload. + * + * Each protected method on this base class returns a logger builder. + */ +@Injectable() +export abstract class LumberjackLogger { + protected lumberjack: LumberjackService; + protected time: LumberjackTimeService; + + /** + * Create a logger builder for a critical log with the specified message. + */ + protected createCriticalLogger(message: string): LumberjackLoggerBuilder; + + /** + * Create a logger builder for a debug log with the specified message. + */ + protected createDebugLogger(message: string): LumberjackLoggerBuilder; + + /** + * Create a logger builder for an error log with the specified message. + */ + protected createErrorLogger(message: string): LumberjackLoggerBuilder; + + /** + * Create a logger builder for an info log with the specified message. + */ + protected createInfoLogger(message: string): LumberjackLoggerBuilder; + + /** + * Create a logger builder for a trace log with the specified message. + */ + protected createTraceLogger(message: string): LumberjackLoggerBuilder; + + /** + * Create a logger builder for a warning log with the specified message. + */ + protected createWarningLogger(message: string): LumberjackLoggerBuilder; + + /** + * Create a logger builder for a log with the specified log level and message. + */ + protected createLoggerBuilder(level: LumberjackLogLevel, message: string): LumberjackLoggerBuilder; +``` + +By extending `LumberjackLogger`, we only have to worry about our pre-defined logs' message and scope. + +All logger factory methods are protected as it is recommended to create a custom logger per _scope_ rather than using +logger factories directly in a consumer. + +As an example, let's create a custom logger for our example application. + +```ts +import { Injectable } from '@angular/core'; + +import { LumberjackLogger, LumberjackService, LumberjackTimeService } from '@ngworker/lumberjack'; + +@Injectable({ + providedIn: 'root', +}) +export class AppLogger extends LumberjackLogger { + static scope = 'Forest App'; + + forestOnFire = this.createCriticalLogger('The forest is on fire!').withScope(AppLogger.scope).build(); + + helloForest = this.createInfoLogger('Hello, Forest!').withScope(AppLogger.scope).build(); +} +``` + +#### Logger usage + +Now that we have defined our first Lumberjack logger let's use it to log logs from our application. + +```ts +import { inject, Component, OnInit } from '@angular/core'; +import { LumberjackLogger } from '@ngworker/lumberjack'; + +import { AppLogger } from './app.logger'; +import { ForestService } from './forest.service'; + +@Component({ + selector: 'app-root', + templateUrl: './app.component.html', +}) +export class AppComponent implements OnInit { + readonly #logger = inject(AppLogger); + readonly #forest = inject(ForestService); + + ngOnInit(): void { + this.#logger.helloForest(); + + this.#forest.fire$.subscribe(() => this.#logger.forestOnFire()); + } +} +``` + +The previous example logs _Hello, Forest!_ when the application is initialized, then logs _The forest is on fire!_ if a +forest fire is detected. + +#### Simplifying with ScopedLumberjackLogger + +An alternative to the `LumberjackLogger` interface, where we need to specify the lumberjack log scope manually, we could +use the `ScopedLumberjackLogger`. + +The `ScopedLumberjackLogger` is a convenient Logger and an excellent example of how to create custom Loggers according +to your situation. + +```ts +/** + * A scoped logger holds methods that log a predefined log sharing a scope. + * + * Implement application- and library-specific loggers by extending this base + * class. Optionally supports a log payload. + * + * Each protected method on this base class returns a logger builder with a + * predefined scope. + */ +@Injectable() +export abstract class ScopedLumberjackLogger< + TPayload extends LumberjackLogPayload | void = void +> extends LumberjackLogger { + abstract readonly scope: string; + + /** + * Create a logger builder for a log with the shared scope as well as the + * specified log level and message. + */ + protected createLoggerBuilder(level: LumberjackLogLevel, message: string): LumberjackLoggerBuilder { + return new LumberjackLoggerBuilder(this.lumberjack, this.time, level, message).withScope(this.scope); + } +} +``` + +The resulting `AppLogger` after refactoring to using the `ScopedLumberjackLogger` would be: + +```ts +import { Injectable } from '@angular/core'; + +import { LumberjackService, LumberjackTimeService, ScopedLumberjackLogger } from '@ngworker/lumberjack'; + +@Injectable({ + providedIn: 'root', +}) +export class AppLogger extends ScopedLumberjackLogger { + scope = 'Forest App'; + + forestOnFire = this.createCriticalLogger('The forest is on fire!').build(); + + helloForest = this.createInfoLogger('Hello, Forest!').build(); +} +``` + +Notice that now every log written using the `AppLogger` will have the `'Forest App'` scope + +#### Using Loggers with a LumberjackLog payload + +As seen in the [Log drivers](./log-drivers/) section, we can send extra info to our drivers using +a `LumberjackLog#payload`. + +The `LumberjackLogger` and `ScopedLumberjackLogger` provide a convenient interface for such a scenario. + +```ts +import { Injectable, VERSION } from '@angular/core'; + +import { + LumberjackLogPayload, + LumberjackService, + LumberjackTimeService, + ScopedLumberjackLogger, +} from '@ngworker/lumberjack'; + +export interface LogPayload extends LumberjackLogPayload { + readonly angularVersion: string; +} + +@Injectable({ + providedIn: 'root', +}) +export class AppLogger extends ScopedLumberjackLogger { + static readonly #payload: LogPayload = { + angularVersion: VERSION.full, + }; + + scope = 'Forest App'; + + forestOnFire = this.createCriticalLogger('The forest is on fire!').build(); + + helloForest = this.createInfoLogger('Hello, Forest!').withPayload(AppLogger.#payload).build(); +} +``` + +The `AppLogger` usage remains the same using a `LumberjackLogger` or `ScopedLumberjackLogger`, with payload or without. + +### LumberjackLogFactory + +Lumberjack's recommended way of creating logs is by using a `LumberjackLogger`. + +However, there are some times that we want to create logs manually and pass them to the `LumberjackService`. + +The `LumberjackLogFactory` provides a robust way of creating logs. It's also useful for creating logs in unit tests. + +This is how we create logs manually: + +```ts +import {inject, Component, OnInit, VERSION} from '@angular/core'; + +import {LumberjackLogFactory, LumberjackService} from '@ngworker/lumberjack'; + +import {LogPayload} from './log-payload'; + +@Component({ + selector: 'ngworker-root', + templateUrl: './app.component.html', + styleUrls: ['./app.component.scss'], +}) +export class AppComponent implements OnInit { + readonly #logFactory: inject> +( + LumberjackLogFactory +); + readonly #lumberjack = inject>(LumberjackService); + readonly #payload: LogPayload = { + angularVersion: VERSION.full, + }; + readonly #scope = 'Forest App'; + + ngOnInit(): void { + const helloFore +``` diff --git a/packages/docs/lumberjack-docs-app/docs/community-drivers.md b/packages/docs/lumberjack-docs-app/docs/community-drivers.md new file mode 100644 index 000000000..f8cb08759 --- /dev/null +++ b/packages/docs/lumberjack-docs-app/docs/community-drivers.md @@ -0,0 +1,11 @@ +--- +sidebar_position: 5 +title: Community drivers +--- + +If you want your driver listed here, open a PR and follow the same format. + +- [@ngworker/lumberjack-firestore-driver](https://github.com/marcinmilewicz/lumberjack-firestore-driver), community log driver using [Cloud Firestore](https://firebase.google.com/docs/firestore) as a log store. +- [@ngworker/lumberjack-applicationinsights-driver](https://github.com/ngworker/lumberjack-applicationinsights-driver), community log driver using [Azure Application Insights](https://docs.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview) as a log store. + +The ngworkers teams offers hosting of a community log driver in the [ngworker GitHub](https://github.com/ngworker) and [@ngworker NPM](https://www.npmjs.com/org/ngworker) organizations. diff --git a/packages/docs/lumberjack-docs-app/docs/compatibility.md b/packages/docs/lumberjack-docs-app/docs/compatibility.md new file mode 100644 index 000000000..a92639f9a --- /dev/null +++ b/packages/docs/lumberjack-docs-app/docs/compatibility.md @@ -0,0 +1,16 @@ +--- +sidebar_position: 2 +title: Compatibility +--- + +Refer to the following table to determine which version of Lumberjack is compatible with your Angular version. + +| Angular version | Lumberjack version | +| --------------- | ------------------ | +| 15.x | 15.x | +| 14.x | 14.x | +| 13.x | 2.x | +| 12.x | 2.x | +| 11.x | 2.x | +| 10.x | 2.x | +| 9.x | 2.x | diff --git a/packages/docs/lumberjack-docs-app/docs/installation.md b/packages/docs/lumberjack-docs-app/docs/installation.md new file mode 100644 index 000000000..0ea4b4d2f --- /dev/null +++ b/packages/docs/lumberjack-docs-app/docs/installation.md @@ -0,0 +1,12 @@ +--- +sidebar_position: 1 +title: Installation +--- + +Lumberjack is published as the `@ngworker/lumberjack` package. + +| Toolchain | Command | +| --------- | ---------------------------------- | +| NPM CLI | `npm install @ngworker/lumberjack` | +| PNPM CLI | `pnpm add @ngworker/lumberjack` | +| Yarn CLI | `yarn add @ngworker/lumberjack` | diff --git a/packages/docs/lumberjack-docs-app/docs/log-drivers/http-driver.md b/packages/docs/lumberjack-docs-app/docs/log-drivers/http-driver.md new file mode 100644 index 000000000..14e6ccd2c --- /dev/null +++ b/packages/docs/lumberjack-docs-app/docs/log-drivers/http-driver.md @@ -0,0 +1,302 @@ +--- +sidebar_position: 1 +title: Http driver +slug: '/log-drivers/http-driver' +--- + +# LumberjackHttpDriver + +This log driver is used to send an HTTP request to a configured log store server. + +Take this implementation as an advanced example of a log driver implementation. Some of the decisions made are not compatible with every existing log store. + +## Implementation + +The following are complementary interfaces for the log driver implementation. + +```typescript +interface LumberjackHttpLog { + readonly formattedLog: string; + readonly level: LumberjackLogLevel; + readonly origin: string; +} +``` + +The `LumberjackHttpLog` is the object sent to the log store. + +The rest of the `LumberjackHttpDriver` is defined as follows + +```typescript +@Injectable() +export class LumberjackHttpDriver + implements LumberjackLogDriver, OnDestroy +{ + static readonly driverIdentifier = 'LumberjackHttpDriver'; + + readonly #http = inject(HttpClient); + readonly #ngZone = inject(NgZone); + readonly #subscriptions = new Subscription(); + + readonly config = inject(lumberjackHttpDriverConfigToken); + + ngOnDestroy(): void { + this.#subscriptions.unsubscribe(); + } + + logCritical({ formattedLog, log }: LumberjackLogDriverLog): void { + this.#sendLog(formattedLog, log); + } + + logDebug({ formattedLog, log }: LumberjackLogDriverLog): void { + this.#sendLog(formattedLog, log); + } + + logError({ formattedLog, log }: LumberjackLogDriverLog): void { + this.#sendLog(formattedLog, log); + } + + logInfo({ formattedLog, log }: LumberjackLogDriverLog): void { + this.#sendLog(formattedLog, log); + } + + logTrace({ formattedLog, log }: LumberjackLogDriverLog): void { + this.#sendLog(formattedLog, log); + } + + logWarning({ formattedLog, log }: LumberjackLogDriverLog): void { + this.#sendLog(formattedLog, log); + } + + private #sendLog(formattedLog: string, log: LumberjackLog): void { + const { origin, retryOptions, storeUrl } = this.config; + const httpLog: LumberjackHttpLog = { formattedLog, origin, log }; + + this.ngZone.runOutsideAngular(() => { + this.#subscriptions.add( + this.#http + .post(storeUrl, httpLog) + .pipe(retryWithDelay(retryOptions.maxRetries, retryOptions.delayMs)) + // HTTP requests complete after the response is received, so there's no need to unsubscribe. + .subscribe(() => { + // No-op + }) + ); + }); + } +} +``` + +The HTTP log driver receives an `HttpClient`, an `NgZone` for optimizations purpose, and a custom configuration object that extends the `LumberjackLogDriverConfig`. + +```typescript +export interface LumberjackHttpDriverConfig extends LumberjackLogDriverConfig { + /** + * The identifier of the app which emitted the log. + * This is used to organize logs on the log store. + */ + readonly origin: string; + /** + * The desired retry behavior options on failed requests. + */ + readonly retryOptions: LumberjackHttpDriverRetryOptions; + /** + * The url of the log store endpoint. + * + * The endpoint matching this url MUST support the POST method. + */ + readonly storeUrl: string; +} + +export interface LumberjackHttpDriverRetryOptions { + readonly delayMs: number; + readonly maxRetries: number; +} +``` + +The `sendLog` method has been optimized to run outside Angular's `NgZone`, avoiding unnecessary change detection cycles. + +### LumberjackHttpDriverModule + +The `LumberjackHttpDriverModule` is similar to the `LumberjackConsoleDriverModule`. + +Novelty appears with the static `withOptions` function that allows us to pass `LumberjackHttpDriverOptions` to fall back to the settings in `LumberjackLogDriverConfig`. + +Additionally, we can configure the underlaying `HttpClient` by passing any features it receives like interceptors. + +```typescript +@NgModule() +export class LumberjackHttpDriverModule { + /** + * Configure and register the HTTP driver, including settings that log drivers + * have in common. + * + * @param config Settings used by the HTTP driver. + */ + static forRoot( + config: LumberjackHttpDriverConfig, + ...features: HttpClientFeatures + ): ModuleWithProviders { + return { + ngModule: LumberjackHttpDriverRootModule, + providers: [provideLumberjackHttpDriver(withHttpConfig(config), ...features)], + }; + } + + /** + * Configure and register the HTTP driver, but fall back on the default log + * driver settings for settings that log drivers have in common. + * @param options Settings used by the HTTP driver. + */ + static withOptions( + options: LumberjackHttpDriverOptions, + ...features: HttpClientFeatures + ): ModuleWithProviders { + return { + ngModule: LumberjackHttpDriverRootModule, + providers: [provideLumberjackHttpDriver(withHttpOptions(options), ...features)], + }; + } + + constructor() { + throw new Error('Do not import LumberjackHttpDriverModule directly. Use LumberjackHttpDriverModule.forRoot.'); + } +} +``` + +The most interesting behavior exist on the `provideLumberjackHttpDriver` function + +```typescript +export type LumberjackHttpDriverConfigurationKind = 'options' | 'config'; +export type LumberjackHttpDriverConfiguration = { + kind: Kind; + providers: EnvironmentProviders; +}; + +function makeLumberjackHttpConfiguration( + kind: Kind, + providers: Provider[] +): LumberjackHttpDriverConfiguration { + return { + kind, + providers: makeEnvironmentProviders(providers), + }; +} + +export function withHttpConfig(config: LumberjackHttpDriverConfig): LumberjackHttpDriverConfiguration<'config'> { + return makeLumberjackHttpConfiguration('config', [ + { + provide: lumberjackHttpDriverConfigToken, + deps: [lumberjackLogDriverConfigToken], + useFactory: (logDriverConfig: LumberjackLogDriverConfig): LumberjackHttpDriverInternalConfig => ({ + ...logDriverConfig, + identifier: LumberjackHttpDriver.driverIdentifier, + ...config, + }), + }, + ]); +} + +export function withHttpOptions(options: LumberjackHttpDriverOptions): LumberjackHttpDriverConfiguration<'options'> { + return makeLumberjackHttpConfiguration('options', [ + { + provide: lumberjackHttpDriverConfigToken, + deps: [lumberjackLogDriverConfigToken], + useFactory: (logDriverConfig: LumberjackLogDriverConfig): LumberjackHttpDriverInternalConfig => ({ + ...logDriverConfig, + identifier: LumberjackHttpDriver.driverIdentifier, + ...options, + }), + }, + ]); +} + +export type HttpClientFeatures = Parameters; + +export function provideLumberjackHttpDriver( + configuration: LumberjackHttpDriverConfiguration, + ...features: HttpClientFeatures +): EnvironmentProviders[] { + return [ + provideHttpClient(...features), + makeEnvironmentProviders([lumberjackHttpDriverProvider]), + configuration.providers, + ]; +} +``` + +This is our Standalone API, ready for everyone using Angular >v14. + +This is where the heaviest configuration happens and it is used to boost the classic APIs + +The following is an example of how both API can be used + +Classic: + +```typescript +@NgModule({ + ..., + imports: [ + ..., + LumberjackModule.forRoot(), + LumberjackConsoleDriverModule.forRoot(), + LumberjackHttpDriverModule.forRoot({ + levels: [LumberjackLevel.Error], + origin: 'ForestApp', + retryOptions: { maxRetries: 5, delayMs: 250 }, + storeUrl: '/api/logs', + }, + withInterceptors([ + (req, next) => { + const easy = inject(easyToken); + console.log('are interceptors working?', easy); + return next(req); + }, + ]) + ), + ... + ], + ... +}) +export class AppModule {} +``` + +or + +```typescript +@NgModule({ + ..., + providers: [ + ..., + provideLumberjack(), provideLumberjackConsoleDriver(), provideLumberjackHttpDriver(withHttpConfig({ + levels: [LumberjackLevel.Error], + origin: 'ForestApp', + retryOptions: { maxRetries: 5, delayMs: 250 }, + storeUrl: '/api/logs', + })) + ... + ], + ... +}) +export class AppModule {} + +Standalone: + +bootstrapApplication(AppComponent, { + providers: [ + provideLumberjack(), + provideLumberjackConsoleDriver(), + provideLumberjackHttpDriver( + withHttpOptions({ + origin: 'ForestApp', + retryOptions: { maxRetries: 1, delayMs: 250 }, + storeUrl: '/api/logs', + }), + withInterceptors([ + (req, next) => { + const easy = inject(easyToken); + console.log('are interceptors working?', easy); + return next(req); + }, + ]) + ), +``` diff --git a/packages/docs/lumberjack-docs-app/docs/log-drivers/log-drivers.md b/packages/docs/lumberjack-docs-app/docs/log-drivers/log-drivers.md new file mode 100644 index 000000000..c8d496515 --- /dev/null +++ b/packages/docs/lumberjack-docs-app/docs/log-drivers/log-drivers.md @@ -0,0 +1,358 @@ +--- +sidebar_position: 4 +title: Log drivers +slug: '/log-drivers/' +--- + +Earlier, we briefly introduced the term _log driver_. This section explains in depth how to use and configure them and +how to create custom log drivers. + +A log driver is the conduit used by the Lumberjack to output or persist application logs. + +Lumberjack offers basic log drivers out-of-the-box, namely the `LumberjackConsoleDriver` and the `LumberjackHttpDriver`. + +Every log driver implements the `LumberjackLogDriver` interface. + +```ts +export interface LumberjackLogDriver { + readonly config: LumberjackLogDriverConfig; + + logCritical(driverLog: LumberjackLogDriverLog): void; + + logDebug(driverLog: LumberjackLogDriverLog): void; + + logError(driverLog: LumberjackLogDriverLog): void; + + logInfo(driverLog: LumberjackLogDriverLog): void; + + logTrace(driverLog: LumberjackLogDriverLog): void; + + logWarning(driverLog: LumberjackLogDriverLog): void; +} +``` + +The `LumberjackLogDriverLog` holds a formatted string representation of the `LumberjackLog` and the `LumberjackLog` +itself. + +```ts +export interface LumberjackLogDriverLog { + readonly formattedLog: string; + readonly log: LumberjackLog; +} +``` + +### Log levels + +Log drivers should make it possible to configure the logging levels on a per driver basis. + +For example, we could use the default logging levels for the console driver, but only enable the critical and error +levels for the HTTP driver as seen in the following example. + +```ts +import { NgModule } from '@angular/core'; +import { LumberjackLevel, LumberjackModule } from '@ngworker/lumberjack'; +import { LumberjackConsoleDriverModule } from '@ngworker/lumberjack/console-driver'; +import { LumberjackHttpDriverModule } from '@ngworker/lumberjack/http-driver'; + +@NgModule({ + imports: [ + LumberjackModule.forRoot({ + levels: [LumberjackLevel.Verbose], + }), + LumberjackConsoleDriverModule.forRoot(), + LumberjackHttpDriverModule.forRoot({ + levels: [LumberjackLevel.Critical, LumberjackLevel.Error], + origin: 'ForestApp', + storeUrl: '/api/logs', + retryOptions: { maxRetries: 5, delayMs: 250 }, + }), + // (...) + ], + // (...) +}) +export class AppModule {} +``` + +Or use the standalone version of the API + +```ts +import { bootstrapApplication } from '@angular/platform-browser'; + +import { LumberjackLevel, provideLumberjack } from '@ngworker/lumberjack'; +import { provideLumberjackConsoleDriver } from '@ngworker/lumberjack/console-driver'; +import { provideLumberjackHttpDriver, withHttpConfig } from '@ngworker/lumberjack/http-driver'; + +import { AppComponent } from './app/app.component'; + +bootstrapApplication(AppComponent, { + providers: [ + provideLumberjack(), + provideLumberjackConsoleDriver(), + provideLumberjackHttpDriver( + withHttpConfig({ + levels: [LumberjackLevel.Critical, LumberjackLevel.Error], + origin: 'ForestApp', + storeUrl: '/api/logs', + retryOptions: { maxRetries: 5, delayMs: 250 }, + }) + ), + ], +}); +``` + +### Creating a custom log driver + +Let's create a simple log driver for the browser console. + +```ts +import { inject, Injectable } from '@angular/core'; + +import { LumberjackLogDriver, LumberjackLogDriverConfig, LumberjackLogDriverLog } from '@ngworker/lumberjack'; + +import { consoleDriverConfigToken } from './console-driver-config.token'; + +@Injectable() +export class ConsoleDriver implements LumberjackLogDriver { + readonly config = inject(consoleDriverConfigToken); + + logCritical({ formattedLog }: LumberjackLogDriverLog): void { + console.error(formattedLog); + } + + logDebug({ formattedLog }: LumberjackLogDriverLog): void { + console.debug(formattedLog); + } + + logError({ formattedLog }: LumberjackLogDriverLog): void { + console.error(formattedLog); + } + + logInfo({ formattedLog }: LumberjackLogDriverLog): void { + console.info(formattedLog); + } + + logTrace({ formattedLog }: LumberjackLogDriverLog): void { + console.trace(formattedLog); + } + + logWarning({ formattedLog }: LumberjackLogDriverLog): void { + console.warn(formattedLog); + } +} +``` + +In the above snippet, the config is injected and assigned to the public `config` property. Lumberjack uses this +configuration to determine which logs the log driver should handle. + +#### Using a LumberjackLogPayload + +We might want to add some extra data not present in the `LumberjackLog` to our log driver. + +For such cases, Lumberjack exposes the `LumberjackLog#payload` property. + +```ts +/** + * A Lumberjack log entry + */ +export interface LumberjackLog { + /** + * Scope, for example domain, application, component, or service. + */ + readonly scope?: string; + /** + * Unix epoch ticks (milliseconds) timestamp when log entry was created. + */ + readonly createdAt: number; + /** + * Level of severity. + */ + readonly level: LumberjackLogLevel; + /** + * Log message, for example describing an event that happened. + */ + readonly message: string; + + /** + * Holds any payload info + */ + readonly payload?: TPayload; +} +``` + +We can modify the `ConsoleDriver` to handle such payload information + +```ts +import { inject, Injectable } from '@angular/core'; + +import { + LumberjackLogDriver, + LumberjackLogDriverConfig, + LumberjackLogDriverLog, + LumberjackLogPayload, +} from '@ngworker/lumberjack'; + +import { consoleDriverConfigToken } from './console-driver-config.token'; + +export interface AnalyticsPayload extends LumberjackLogPayload { + angularVersion: string; +} + +@Injectable() +export class ConsoleDriver implements LumberjackLogDriver { + readonly config = inject(consoleDriverConfigToken); + + logCritical({ formattedLog, log }: LumberjackLogDriverLog): void { + console.error(formattedLog, log.payload); + } + + logDebug({ formattedLog, log }: LumberjackLogDriverLog): void { + console.debug(formattedLog, log.payload); + } + + logError({ formattedLog, log }: LumberjackLogDriverLog): void { + console.error(formattedLog, log.payload); + } + + logInfo({ formattedLog, log }: LumberjackLogDriverLog): void { + console.info(formattedLog, log.payload); + } + + logTrace({ formattedLog, log }: LumberjackLogDriverLog): void { + console.trace(formattedLog, log.payload); + } + + logWarning({ formattedLog, log }: LumberjackLogDriverLog): void { + console.warn(formattedLog, log.payload); + } +} +``` + +#### Creating a custom log driver module and provider functions + +The provide functions provides configuration and other dependencies to a log driver. It also provides the log driver, +making +it available to Lumberjack. + +```ts +import { Provider } from '@angular/core'; + +import { + LumberjackLogDriverConfig, + lumberjackLogDriverConfigToken, + lumberjackLogDriverToken, +} from '@ngworker/lumberjack'; + +import { LumberjackConsoleDriver } from '../log-drivers/lumberjack-console.driver'; + +import { lumberjackConsoleDriverConfigToken } from './lumberjack-console-driver-config.token'; +import { LumberjackConsoleDriverConfig } from './lumberjack-console-driver.config'; + +export function provideLumberjackConsoleDriver(config: Partial = {}): Provider[] { + return [ + { + provide: lumberjackConsoleDriverConfigToken, + deps: [lumberjackLogDriverConfigToken], + useFactory: (logDriverConfig: LumberjackLogDriverConfig): LumberjackConsoleDriverConfig => ({ + ...logDriverConfig, + identifier: LumberjackConsoleDriver.driverIdentifier, + ...config, + }), + }, + { + provide: lumberjackLogDriverToken, + useClass: LumberjackConsoleDriver, + multi: true, + }, + ]; +} +``` + +The driver module then acts as a wrapper for the log driver and the provide function. + +```ts +import { ModuleWithProviders, NgModule } from '@angular/core'; + +import { LumberjackConsoleDriverRootModule } from './lumberjack-console-driver-root.module'; +import { LumberjackConsoleDriverConfig } from './lumberjack-console-driver.config'; +import { provideLumberjackConsoleDriver } from './lumberjack-console-driver.providers'; + +@NgModule() +export class LumberjackConsoleDriverModule { + static forRoot( + config: Partial = {} + ): ModuleWithProviders { + return { + ngModule: LumberjackConsoleDriverRootModule, + providers: [provideLumberjackConsoleDriver(config)], + }; + } + + constructor() { + throw new Error('Do not import LumberjackConsoleDriverModule directly. Use LumberjackConsoleDriverModule.forRoot.'); + } +} +``` + +The static `forRoot()` method provides the `consoleDriverConfigToken`. + +If no configuration is passed, then the root `LogDriverConfig` is used. + +```ts +import { InjectionToken } from '@angular/core'; +import { LumberjackLogDriverConfig, lumberjackLogDriverConfigToken } from '@ngworker/lumberjack'; + +export const consoleDriverConfigToken = new InjectionToken('__CONSOLE_DRIVER_CONFIG__', { + factory: () => inject({ ...lumberjackLogDriverConfigToken, identifier: 'ConsoleDriver' }), +}); +``` + +This is possible because the `ConsoleDriver` has the same configuration options as the `LumberjackLogDriverConfig`. We +only have to include the driver identifier since it cannot be predefined. + +For adding custom settings, +see [LumberjackHttpDriver](https://github.com/ngworker/lumberjack/blob/main/packages/ngworker/lumberjack/http-driver/src/lib/configuration/lumberjack-http-driver-root.module.ts). + +The most important thing about the `LumberjackConsoleDriverModule` is that it provides the `LumberjackConsoleDriver` +using the `lumberjackLogDriverToken` with the `multi` flag on. This allows us to provide multiple log drivers for +Lumberjack at the same time. + +#### Using a custom log driver + +The last step is to import this module at the root module of our application, as seen in the first [_Usage_](../usage) +section. + +```ts +@NgModule({ + imports: [ + LumberjackModule.forRoot(), + ConsoleDriverModule.forRoot(), + // (...) + ], + // (...) +}) +export class AppModule {} +``` + +Or using the standalone API. + +```typescript +import { bootstrapApplication } from '@angular/platform-browser'; + +import { LumberjackLog, LumberjackOptions, provideLumberjack } from '@ngworker/lumberjack'; +import { provideLumberjackConsoleDriver } from '@ngworker/lumberjack/console-driver'; + +import { AppComponent } from './app/app.component'; + +bootstrapApplication(AppComponent, { + providers: [ + provideLumberjack(), + provideLumberjackConsoleDriver(), + // (...) + ], +}); +``` + +### HTTP driver + +For a more advanced log driver implementation, +see [LumberjackHttpDriver](./http-driver) diff --git a/packages/docs/lumberjack-docs-app/docs/usage.md b/packages/docs/lumberjack-docs-app/docs/usage.md new file mode 100644 index 000000000..caf72b45b --- /dev/null +++ b/packages/docs/lumberjack-docs-app/docs/usage.md @@ -0,0 +1,177 @@ +--- +sidebar_position: 3 +title: Usage +--- + +> For a complete walkthrough video please +> visit [@ngworker/lumberjack v2 - Show & Tell BLS024](https://youtu.be/OV1ONtLAJnI) + +To register Lumberjack, add `LumberjackModule.forRoot()` to your root or core Angular module. + +```ts +// (...) +import {LumberjackModule} from '@ngworker/lumberjack'; + +@NgModule({ + imports: [ + // (...) + LumberjackModule.forRoot(), + // (...) + ], + // (...) +}) +``` + +Or if you prefer a prefer standalone approach using the `provideLumberjack()`. + +```ts +bootstrapApplication(AppComponent, { + providers: [ + // (...) + provideLumberjack(), + // (...) + ], +}); +``` + +You must also register the log driver modules for the log drivers that you want to enable. + +If you want to add the `LumberjackHttpDriver` and the `LumberjackConsoleDriver`, add the following code + +```ts +// (...) +import { LumberjackModule } from '@ngworker/lumberjack'; +import { LumberjackHttpDriverModule } from '@ngworker/lumberjack/http-driver'; +import { LumberjackConsoleDriverModule } from '@ngworker/lumberjack/console-driver'; + +@NgModule({ + imports: [ + // (...) + LumberjackModule.forRoot(), + LumberjackConsoleDriverModule.forRoot(), + LumberjackHttpDriverModule.withOptions({ + origin: '', + storeUrl: '/api/logs', + retryOptions: { maxRetries: 5, delayMs: 250 }, + }), + // (...) + ], + // (...) +}) +export class AppModule {} +``` + +Or using the standalone version + +```ts +bootstrapApplication(AppComponent, { + providers: [ + // (...) + provideLumberjack(), + provideLumberjackConsoleDriver(), + provideLumberjackHttpDriver(withHttpConfig({...})), + // (...) + ], +}); +``` + +### Using the `LumberjackService` + +For quick or simple use cases, you can use the `LumberjackService` directly by passing logs to its `log` method. +However, we recommend implementing application-specific logger services instead. See the [_Best +practices_](./best-practices) section. + +First, inject the `LumberjackService` where you want to use it. + +```ts +import { Component } from '@angular/core'; +import { LumberjackService } from '@ngworker/lumberjack'; + +@Component({ + // (...) +}) +export class MyComponent implements OnInit { + readonly #lumberjack = inject(LumberjackService); + + // (...) +} +``` + +or using the `inject` function + +```ts +import { inject, Component } from '@angular/core'; +import { LumberjackService } from '@ngworker/lumberjack'; + +@Component({ + // (...) +}) +export class MyComponent implements OnInit { + readonly #lumberjack = inject(LumberjackService); + // (...) +} +``` + +Then we can start logging. However, you'll also want to inject `LumberjackTimeService` to maintain a high level of +testability. + +```ts +// (...) +import { LumberjackService, LumberjackTimeService } from '@ngworker/lumberjack'; + +// (...) +export class MyComponent implements OnInit { + readonly #lumberjack = inject(LumberjackService); + readonly #time = inject(LumberjackTimeService); + + // (...) + ngOnInit(): void { + this.#lumberjack.log({ + level: LumberjackLevel.Info, + message: 'Hello, World!', + scope: 'MyComponent', + createdAt: this.#time.getUnixEpochTicks(), + }); + } +} +``` + +### LumberjackModule and provideLumberjack + +Optionally, we can pass one or more options to `LumberjackModule.forRoot` or to the `provideLumberjack` function. + +| Option | Type | Optional? | Description | +| -------- | ------------------------------ | --------- | -------------------------------------------------------------------- | +| `format` | (log: LumberjackLog) => string | Yes | Pass a custom formatter to transform a log into a log message. | +| `levels` | `LumberjackConfigLevels` | Yes | The root log levels defining the default log levels for log drivers. | + +### Default options + +Lumberjack's configuration is flexible. We can provide a full configuration object, a partial option set, or no options +at all. + +Lumberjack replaces omitted options with defaults. + +When the `format` option is not configured, Lumberjack will use the following default formatter. + +```ts +function lumberjackFormatLog({ scope, createdAt: timestamp, level, message }: LumberjackLog) { + return `${level} ${utcTimestampFor(timestamp)}${scope ? ` [${scope}]` : ''} ${message}`; +} +``` + +Where `utcTimestampFor` is a function that converts Unix Epoch ticks to UTC 0 hours offset with milliseconds resolution. + +#### Default log levels + +When the `levels` setting is not configured, log levels are configured depending on whether our application runs in +development mode or production mode. + +By default, in development mode, **all** log levels are enabled. + +By default, in production mode, the following log levels are enabled: + +- Critical +- Error +- Info +- Warning diff --git a/packages/docs/lumberjack-docs-app/docusaurus.config.js b/packages/docs/lumberjack-docs-app/docusaurus.config.js new file mode 100644 index 000000000..d7441cd3f --- /dev/null +++ b/packages/docs/lumberjack-docs-app/docusaurus.config.js @@ -0,0 +1,125 @@ +const title = 'Lumberjack'; + +const organizationName = 'ngworker'; +const projectName = 'lumberjack'; + +const lightCodeTheme = require('prism-react-renderer/themes/github'); +const darkCodeTheme = require('prism-react-renderer/themes/dracula'); + +module.exports = { + title, + tagline: 'Chop and cut Angular logs like a professional lumberjack', + url: `https://${organizationName}.github.io`, + baseUrl: `/${projectName}/`, + onBrokenLinks: 'throw', + onBrokenMarkdownLinks: 'throw', + favicon: 'img/favicon.ico', + organizationName, + projectName, + themeConfig: { + navbar: { + title, + logo: { + alt: title, + src: 'img/logo.svg', + }, + items: [ + { + to: 'docs/installation', + activeBasePath: 'docs', + label: 'Docs', + position: 'left', + }, + // TODO: Enable blog when we have content + // { to: '/blog', label: 'Blog', position: 'left' }, + { + href: 'https://github.com/ngworker/lumberjack', + label: 'GitHub', + position: 'right', + }, + ], + }, + footer: { + style: 'dark', + links: [ + { + title: 'Docs', + items: [ + { + label: 'Installation', + to: 'docs/installation', + }, + { + label: 'Compatibility', + to: 'docs/compatibility', + }, + { + label: 'Usage', + to: 'docs/usage', + }, + { + label: 'Log drivers', + to: 'docs/log-drivers', + }, + { + label: 'Community drivers', + to: 'docs/community-drivers', + }, + { + label: 'Best practices', + to: 'docs/best-practices', + }, + ], + }, + { + title: 'Community', + items: [ + { + label: 'Discord', + href: 'https://discord.gg/UDUa8MA6Ef', + }, + { + label: 'Stack Overflow', + href: 'https://stackoverflow.com/questions/tagged/lumberjack', + }, + ], + }, + { + title: 'More', + items: [ + // TODO: Enable blog when we have content + // { + // label: 'Blog', + // to: '/blog', + // }, + { + label: 'GitHub', + href: 'https://github.com/ngworker/lumberjack', + }, + ], + }, + ], + copyright: `© ${new Date().getFullYear()} ngworkers. Licensed under the MIT license.`, + }, + }, + presets: [ + [ + '@docusaurus/preset-classic', + { + docs: { + sidebarPath: require.resolve('./sidebars.js'), + editUrl: `https://github.com/${organizationName}/${projectName}/edit/main/packages/docs/lumberjack-docs-app`, + }, + // TODO: Enable blog when we have content + // blog: { + // blogTitle: 'Lumberjack blog!', + // blogDescription: 'The Lumberjack blog contains all the news and knwoledge bits about Lumberjack', + // postsPerPage: 15, + // }, + theme: { + customCss: require.resolve('./src/css/custom.css'), + }, + }, + ], + ], +}; diff --git a/packages/docs/lumberjack-docs-app/project.json b/packages/docs/lumberjack-docs-app/project.json new file mode 100644 index 000000000..f9731ebd9 --- /dev/null +++ b/packages/docs/lumberjack-docs-app/project.json @@ -0,0 +1,22 @@ +{ + "name": "docs-lumberjack-docs-app", + "$schema": "../../../node_modules/nx/schemas/project-schema.json", + "projectType": "application", + "sourceRoot": "packages/docs/lumberjack-docs-app/src", + "prefix": "ngworker", + "targets": { + "build": { + "executor": "@nx-plus/docusaurus:browser", + "options": { + "outputPath": "dist/packages/docs/lumberjack-docs-app" + } + }, + "serve": { + "executor": "@nx-plus/docusaurus:dev-server", + "options": { + "port": 3000 + } + } + }, + "tags": ["scope:public", "type:app"] +} diff --git a/packages/docs/lumberjack-docs-app/sidebars.js b/packages/docs/lumberjack-docs-app/sidebars.js new file mode 100644 index 000000000..a4539c057 --- /dev/null +++ b/packages/docs/lumberjack-docs-app/sidebars.js @@ -0,0 +1,8 @@ +module.exports = { + docsSidebar: [ + { + type: 'autogenerated', + dirName: '.', // '.' means the current docs folder + }, + ], +}; diff --git a/packages/docs/lumberjack-docs-app/src/css/custom.css b/packages/docs/lumberjack-docs-app/src/css/custom.css new file mode 100644 index 000000000..ed9f986e3 --- /dev/null +++ b/packages/docs/lumberjack-docs-app/src/css/custom.css @@ -0,0 +1,38 @@ +/* stylelint-disable docusaurus/copyright-header */ +/** + * Any CSS included here will be global. The classic template + * bundles Infima by default. Infima is a CSS framework designed to + * work well for content-centric websites. + */ + +/* You can override the default Infima variables here. */ +:root { + --ifm-color-primary: #a6120d; + --ifm-color-primary-dark: #95100c; + --ifm-color-primary-darker: #8d0f0b; + --ifm-color-primary-darkest: #740d09; + --ifm-color-primary-light: #b7140e; + --ifm-color-primary-lighter: #bf150f; + --ifm-color-primary-lightest: #d81711; + --ifm-heading-color: white; + --ifm-color-content-inverse: white; + --ifm-heading-color: var(--ifm-color-content); + --ifm-code-font-size: 95%; +} + +[data-theme='dark'] { + --ifm-color-primary: #dd1b16; + --ifm-color-primary-dark: #c71814; + --ifm-color-primary-darker: #bc1713; + --ifm-color-primary-darkest: #9b130f; + --ifm-color-primary-light: #e92722; + --ifm-color-primary-lighter: #ea322d; + --ifm-color-primary-lightest: #ed524e; +} + +.docusaurus-highlight-code-line { + background-color: rgb(72, 77, 91); + display: block; + margin: 0 calc(-1 * var(--ifm-pre-padding)); + padding: 0 var(--ifm-pre-padding); +} diff --git a/packages/docs/lumberjack-docs-app/src/pages/index.js b/packages/docs/lumberjack-docs-app/src/pages/index.js new file mode 100644 index 000000000..8d762139a --- /dev/null +++ b/packages/docs/lumberjack-docs-app/src/pages/index.js @@ -0,0 +1,91 @@ +import Link from '@docusaurus/Link'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import Layout from '@theme/Layout'; +import clsx from 'clsx'; +import React from 'react'; +import styles from './styles.module.css'; + +const features = [ + { + title: 'Easy to use', + imageUrl: 'img/easy-to-use.webp', + description: <>Lumberjack is ruled by the principle of making the simple easy and the complex possible, + }, + { + title: 'Extensible', + imageUrl: 'img/extensible.webp', + description: ( + <> + Being powered by a Plugin Architecture allows anyone to create its drivers and make Lumberjack fit their needs. + + ), + }, + { + title: 'Configurable', + imageUrl: 'img/configurable.webp', + description: ( + <> + Custom Plugins are not the only way to customize Lumberjack. It is possible to modify almost every aspect of + your logs' processing, from the format function to the log levels allowed. + + ), + }, +]; + +function Feature({ imageUrl, title, description }) { + const imgUrl = useBaseUrl(imageUrl); + return ( +
+ {imgUrl && ( +
+ {title} +
+ )} +

{title}

+

{description}

+
+ ); +} + +function Home() { + const context = useDocusaurusContext(); + const { siteConfig = {} } = context; + return ( + +
+
+

{siteConfig.title}

+

{siteConfig.tagline}

+
+ + Read the docs + +
+
+
+
+ {features && features.length > 0 && ( +
+
+
+ {features.map((props) => ( + + ))} +
+
+
+ )} +
+
+ ); +} + +export default Home; diff --git a/packages/docs/lumberjack-docs-app/src/pages/styles.module.css b/packages/docs/lumberjack-docs-app/src/pages/styles.module.css new file mode 100644 index 000000000..b7be30060 --- /dev/null +++ b/packages/docs/lumberjack-docs-app/src/pages/styles.module.css @@ -0,0 +1,44 @@ +/* stylelint-disable docusaurus/copyright-header */ +/** + * CSS files with the .module.css suffix will be treated as CSS modules + * and scoped locally. + */ + +.heroBanner { + padding: 4rem 0; + text-align: center; + position: relative; + overflow: hidden; +} + +@media screen and (max-width: 966px) { + .heroBanner { + padding: 2rem; + } +} + +.heroTitle { + color: white; +} + +.readMore:not(:hover) { + color: white !important; +} + +.buttons { + display: flex; + align-items: center; + justify-content: center; +} + +.features { + display: flex; + align-items: center; + padding: 2rem 0; + width: 100%; +} + +.featureImage { + height: 200px; + width: 200px; +} diff --git a/packages/docs/lumberjack-docs-app/static/img/configurable.webp b/packages/docs/lumberjack-docs-app/static/img/configurable.webp new file mode 100644 index 0000000000000000000000000000000000000000..337f8dee6c14a87d9e84b9043ad73d7637cf7492 GIT binary patch literal 21662 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 literal 0 HcmV?d00001 diff --git a/packages/docs/lumberjack-docs-app/static/img/easy-to-use.webp b/packages/docs/lumberjack-docs-app/static/img/easy-to-use.webp new file mode 100644 index 0000000000000000000000000000000000000000..8fd483c02d494e03459aa17a19565b0f39db1f2a GIT binary patch literal 17770 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 Beb4{^ literal 0 HcmV?d00001 diff --git a/packages/docs/lumberjack-docs-app/static/img/extensible.webp b/packages/docs/lumberjack-docs-app/static/img/extensible.webp new file mode 100644 index 0000000000000000000000000000000000000000..9f74643d12f0faabcd93028ee7e69f4137cd1f11 GIT binary patch literal 15260 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%0DS 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/docs/lumberjack-docs-app/static/img/undraw_docusaurus_mountain.svg b/packages/docs/lumberjack-docs-app/static/img/undraw_docusaurus_mountain.svg new file mode 100644 index 000000000..431cef2f7 --- /dev/null +++ b/packages/docs/lumberjack-docs-app/static/img/undraw_docusaurus_mountain.svg @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/docs/lumberjack-docs-app/static/img/undraw_docusaurus_react.svg b/packages/docs/lumberjack-docs-app/static/img/undraw_docusaurus_react.svg new file mode 100644 index 000000000..e41705043 --- /dev/null +++ b/packages/docs/lumberjack-docs-app/static/img/undraw_docusaurus_react.svg @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/docs/lumberjack-docs-app/static/img/undraw_docusaurus_tree.svg b/packages/docs/lumberjack-docs-app/static/img/undraw_docusaurus_tree.svg new file mode 100644 index 000000000..a05cc03dd --- /dev/null +++ b/packages/docs/lumberjack-docs-app/static/img/undraw_docusaurus_tree.svg @@ -0,0 +1 @@ +docu_tree \ No newline at end of file diff --git a/packages/examples/lumberjack-app/src/favicon.ico b/packages/examples/lumberjack-app/src/favicon.ico index 317ebcb2336e0833a22dddf0ab287849f26fda57..473d96116378be2ea5486964d3cbf89b5ee18d7d 100644 GIT binary patch literal 15086 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%0DS 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.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.5.1, chokidar@^3.5.3: +cheerio-select@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" + integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== + dependencies: + boolbase "^1.0.0" + css-select "^5.1.0" + css-what "^6.1.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + +cheerio@^1.0.0-rc.12: + version "1.0.0-rc.12" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" + integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== + dependencies: + cheerio-select "^2.1.0" + dom-serializer "^2.0.0" + domhandler "^5.0.3" + domutils "^3.0.1" + htmlparser2 "^8.0.1" + parse5 "^7.0.0" + parse5-htmlparser2-tree-adapter "^7.0.0" + +chokidar@3.5.3, "chokidar@>=3.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.4.2, chokidar@^3.5.1, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -4505,6 +5856,11 @@ chrome-trace-event@^1.0.2: resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + ci-info@^3.2.0: version "3.8.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" @@ -4515,11 +5871,28 @@ cjs-module-lexer@^1.0.0: resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== +clean-css@^5.2.2, clean-css@^5.3.0: + 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" + clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== +cli-boxes@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + +cli-boxes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-3.0.0.tgz#71a10c716feeba005e4504f36329ef0b17cf3145" + integrity sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g== + cli-cursor@3.1.0, cli-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" @@ -4537,7 +5910,7 @@ cli-spinners@^2.5.0: resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.0.tgz#5881d0ad96381e117bbe07ad91f2008fe6ffd8db" integrity sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g== -cli-table3@~0.6.1: +cli-table3@^0.6.2, cli-table3@~0.6.1: version "0.6.3" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== @@ -4586,6 +5959,13 @@ clone-deep@^4.0.1: kind-of "^6.0.2" shallow-clone "^3.0.0" +clone-response@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" + integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== + dependencies: + mimic-response "^1.0.0" + clone-stats@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" @@ -4596,11 +5976,21 @@ clone@^1.0.0, clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== +clsx@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== +collapse-white-space@^1.0.2: + version "1.0.6" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" + integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== + collect-v8-coverage@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" @@ -4645,6 +6035,11 @@ colorette@^2.0.10, colorette@^2.0.16: resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== +combine-promises@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/combine-promises/-/combine-promises-1.1.0.tgz#72db90743c0ca7aab7d0d8d2052fd7b0f674de71" + integrity sha512-ZI9jvcLDxqwaXEixOhArm3r7ReIivsXkpbyEWyeOhzz1QS0iSgBPnWvEqvIQtYyamGCYA88gFhmUrs9hrrQ0pg== + combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -4652,11 +6047,21 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" +comma-separated-tokens@^1.0.0: + version "1.0.8" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" + integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== + commander@^2.20.0: 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@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + commander@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" @@ -4667,6 +6072,11 @@ commander@^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== + commander@^9.4.0: version "9.5.0" resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" @@ -4725,6 +6135,18 @@ concat-stream@^2.0.0: readable-stream "^3.0.2" typedarray "^0.0.6" +configstore@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== + dependencies: + dot-prop "^5.2.0" + graceful-fs "^4.1.2" + make-dir "^3.0.0" + unique-string "^2.0.0" + write-file-atomic "^3.0.0" + xdg-basedir "^4.0.0" + confusing-browser-globals@^1.0.9: version "1.0.11" resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" @@ -4735,11 +6157,21 @@ connect-history-api-fallback@^2.0.0: resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== +consola@^2.15.3: + version "2.15.3" + resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" + integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== + console-control-strings@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + integrity sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA== + content-disposition@0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" @@ -4946,7 +6378,12 @@ copy-anything@^2.0.1: dependencies: is-what "^3.14.1" -copy-webpack-plugin@11.0.0: +copy-text-to-clipboard@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.1.0.tgz#6bf40deef0a51ac6858efb0d76ded2c6d6a15059" + integrity sha512-PFM6BnjLnOON/lB3ta/Jg7Ywsv+l9kQGD4TWDCSlRBGmqnnTM5MrDkhAFgw+8HZt0wW6Q2BBE4cmy9sq+s9Qng== + +copy-webpack-plugin@11.0.0, copy-webpack-plugin@^11.0.0: version "11.0.0" resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz#96d4dbdb5f73d02dd72d0528d1958721ab72e04a" integrity sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ== @@ -4990,13 +6427,23 @@ copy@0.3.2: resolve-dir "^0.1.0" to-file "^0.2.0" -core-js-compat@^3.25.1: +core-js-compat@^3.25.1, core-js-compat@^3.30.1, core-js-compat@^3.30.2: version "3.30.2" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.30.2.tgz#83f136e375babdb8c80ad3c22d67c69098c1dd8b" integrity sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA== dependencies: browserslist "^4.21.5" +core-js-pure@^3.30.2: + version "3.30.2" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.30.2.tgz#005a82551f4af3250dcfb46ed360fad32ced114e" + integrity sha512-p/npFUJXXBkCCTIlEGBdghofn00jWG6ZOtdoIXSJmAu2QBvN0IqpZXWweOytcwE6cfx8ZvVUy1vw8zxhe4Y2vg== + +core-js@^3.23.3: + version "3.30.2" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.30.2.tgz#6528abfda65e5ad728143ea23f7a14f0dcf503fc" + integrity sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg== + core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -5039,10 +6486,10 @@ cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: path-type "^4.0.0" yaml "^1.10.0" -cosmiconfig@^8.0.0: - version "8.1.3" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.1.3.tgz#0e614a118fcc2d9e5afc2f87d53cd09931015689" - integrity sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw== +cosmiconfig@^8.0.0, cosmiconfig@^8.1.3: + version "8.2.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" + integrity sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ== dependencies: import-fresh "^3.2.1" js-yaml "^4.1.0" @@ -5066,6 +6513,13 @@ critters@0.0.16: postcss "^8.3.7" pretty-bytes "^5.3.0" +cross-fetch@^3.1.5: + version "3.1.6" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.6.tgz#bae05aa31a4da760969756318feeee6e70f15d6c" + integrity sha512-riRvo06crlE8HiqOwIpQhxwdOk4fOeR7FVM/wXoxchFEqMNUjvbs3bfo4OTgMEMHzppd4DxFBDbyySj8Cv781g== + dependencies: + node-fetch "^2.6.11" + cross-spawn@^7.0.0, 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" @@ -5075,6 +6529,11 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + 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" @@ -5108,15 +6567,15 @@ css-loader@6.7.1: postcss-value-parser "^4.2.0" semver "^7.3.5" -css-loader@^6.4.0: - version "6.7.3" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.3.tgz#1e8799f3ccc5874fdd55461af51137fcc5befbcd" - integrity sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ== +css-loader@^6.4.0, css-loader@^6.7.1: + version "6.8.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.8.1.tgz#0f8f52699f60f5e679eab4ec0fcd68b8e8a50a88" + integrity sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g== dependencies: icss-utils "^5.1.0" - postcss "^8.4.19" + postcss "^8.4.21" postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" + postcss-modules-local-by-default "^4.0.3" postcss-modules-scope "^3.0.0" postcss-modules-values "^4.0.0" postcss-value-parser "^4.2.0" @@ -5134,6 +6593,18 @@ css-minimizer-webpack-plugin@^3.4.1: serialize-javascript "^6.0.0" source-map "^0.6.1" +css-minimizer-webpack-plugin@^4.0.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.2.2.tgz#79f6199eb5adf1ff7ba57f105e3752d15211eb35" + integrity sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA== + dependencies: + cssnano "^5.1.8" + jest-worker "^29.1.2" + postcss "^8.4.17" + schema-utils "^4.0.0" + serialize-javascript "^6.0.0" + 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" @@ -5150,6 +6621,17 @@ css-select@^4.1.3, css-select@^4.2.0: 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@^1.1.2, css-tree@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" @@ -5158,7 +6640,7 @@ css-tree@^1.1.2, css-tree@^1.1.3: mdn-data "2.0.14" source-map "^0.6.1" -css-what@^6.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== @@ -5182,6 +6664,18 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== +cssnano-preset-advanced@^5.3.8: + version "5.3.10" + resolved "https://registry.yarnpkg.com/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.10.tgz#25558a1fbf3a871fb6429ce71e41be7f5aca6eef" + integrity sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ== + dependencies: + autoprefixer "^10.4.12" + cssnano-preset-default "^5.2.14" + postcss-discard-unused "^5.1.0" + postcss-merge-idents "^5.1.1" + postcss-reduce-idents "^5.2.0" + postcss-zindex "^5.1.0" + cssnano-preset-default@^5.2.14: version "5.2.14" resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz#309def4f7b7e16d71ab2438052093330d9ab45d8" @@ -5222,7 +6716,7 @@ cssnano-utils@^3.1.0: resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== -cssnano@^5.0.6: +cssnano@^5.0.6, cssnano@^5.1.12, cssnano@^5.1.8: version "5.1.15" resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.15.tgz#ded66b5480d5127fcb44dac12ea5a983755136bf" integrity sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw== @@ -5255,15 +6749,20 @@ cssstyle@^2.3.0: dependencies: cssom "~0.3.6" +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== + cuint@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" integrity sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw== cypress@^12.2.0: - version "12.12.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-12.12.0.tgz#0da622a34c970d8699ca6562d8e905ed7ce33c77" - integrity sha512-UU5wFQ7SMVCR/hyKok/KmzG6fpZgBHHfrXcHzDmPHWrT+UUetxFzQgt7cxCszlwfozckzwkd22dxMwl/vNkWRw== + version "12.13.0" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-12.13.0.tgz#725b6617ea19e41e5c59cc509fc3e08097142b01" + integrity sha512-QJlSmdPk+53Zhy69woJMySZQJoWfEWun3X5OOenGsXjRPVfByVTHorxNehbzhZrEzH9RDUDqVcck0ahtlS+N/Q== dependencies: "@cypress/request" "^2.88.10" "@cypress/xvfb" "^1.2.4" @@ -5335,11 +6834,11 @@ dateformat@^3.0.0: integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== dayjs@^1.10.4: - version "1.11.7" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2" - integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ== + version "1.11.8" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.8.tgz#4282f139c8c19dd6d0c7bd571e30c2d0ba7698ea" + integrity sha512-LcgxzFoWMEPO7ggRv1Y2N31hUf2R0Vj7fuy/m+Bg1K8rr+KAs1AEy4y9jd5DXe8pbHgX+srkHNS7TH6Q6ZhYeQ== -debug@2.6.9: +debug@2.6.9, debug@^2.6.0: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -5395,6 +6894,13 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== + dependencies: + mimic-response "^1.0.0" + dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" @@ -5424,6 +6930,11 @@ deep-equal@^2.0.5: 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, deep-is@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" @@ -5448,6 +6959,11 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + define-lazy-prop@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" @@ -5468,6 +6984,20 @@ define-property@^0.2.5: dependencies: is-descriptor "^0.1.0" +del@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-6.1.1.tgz#3b70314f1ec0aa325c6b14eb36b95786671edb7a" + integrity sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg== + dependencies: + globby "^11.0.1" + graceful-fs "^4.2.4" + is-glob "^4.0.1" + is-path-cwd "^2.2.0" + is-path-inside "^3.0.2" + p-map "^4.0.0" + rimraf "^3.0.2" + slash "^3.0.0" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -5498,6 +7028,13 @@ destroy@1.2.0: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== +detab@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/detab/-/detab-2.0.4.tgz#b927892069aff405fbb9a186fe97a44a92a94b43" + integrity sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g== + dependencies: + repeat-string "^1.5.4" + detect-indent@6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" @@ -5513,7 +7050,15 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== -detect-port@^1.5.1: +detect-port-alt@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" + integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== + dependencies: + address "^1.0.1" + debug "^2.6.0" + +detect-port@^1.3.0, detect-port@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.5.1.tgz#451ca9b6eaf20451acb0799b8ab40dff7718727b" integrity sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ== @@ -5557,6 +7102,13 @@ doctrine@^3.0.0: 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-serializer@^1.0.1: version "1.4.1" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" @@ -5566,7 +7118,16 @@ dom-serializer@^1.0.1: domhandler "^4.2.0" entities "^2.0.0" -domelementtype@^2.0.1, domelementtype@^2.2.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== @@ -5578,14 +7139,21 @@ domexception@^4.0.0: dependencies: webidl-conversions "^7.0.0" -domhandler@^4.2.0, domhandler@^4.3.1: +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" -domutils@^2.8.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== @@ -5594,7 +7162,24 @@ domutils@^2.8.0: domelementtype "^2.2.0" domhandler "^4.2.0" -dot-prop@^5.1.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@^5.1.0, dot-prop@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== @@ -5606,7 +7191,12 @@ dotenv@~10.0.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== -duplexer@^0.1.1: +duplexer3@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" + integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== + +duplexer@^0.1.1, 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== @@ -5636,10 +7226,10 @@ ejs@^3.1.7: dependencies: jake "^10.8.5" -electron-to-chromium@^1.4.251, electron-to-chromium@^1.4.284: - version "1.4.396" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.396.tgz#3d3664eb58d86376fbe2fece3705f68ca197205c" - integrity sha512-pqKTdqp/c5vsrc0xUPYXTDBo9ixZuGY8es4ZOjjd6HD6bFYbu5QA09VoW3fkY4LF1T0zYk86lN6bZnNlBuOpdQ== +electron-to-chromium@^1.4.251, electron-to-chromium@^1.4.411: + version "1.4.422" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.422.tgz#b04d0a209889f46858a4ab05f737fb81b99fec91" + integrity sha512-OQMid0IRbJv27BhlPiBK8CfGzjeq4ZCBSmpwNi1abyS8w17/BajOUu7hBI49ptDTBCz9NRFbORhWvt41dF7dwg== emittery@^0.13.1: version "0.13.1" @@ -5661,6 +7251,11 @@ emojis-list@^3.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== +emoticon@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/emoticon/-/emoticon-3.2.0.tgz#c008ca7d7620fac742fe1bf4af8ff8fed154ae7f" + integrity sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg== + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -5680,10 +7275,10 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -enhanced-resolve@^5.0.0, enhanced-resolve@^5.10.0, enhanced-resolve@^5.14.0, enhanced-resolve@^5.7.0: - version "5.14.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.14.0.tgz#0b6c676c8a3266c99fa281e4433a706f5c0c61c4" - integrity sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw== +enhanced-resolve@^5.0.0, enhanced-resolve@^5.10.0, enhanced-resolve@^5.14.1, enhanced-resolve@^5.7.0: + 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" @@ -5700,7 +7295,7 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -entities@^4.4.0: +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== @@ -5958,7 +7553,12 @@ escalade@^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-goat@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" + integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== + +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== @@ -6170,11 +7770,24 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +eta@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/eta/-/eta-2.2.0.tgz#eb8b5f8c4e8b6306561a455e62cd7492fe3a9b8a" + integrity sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g== + etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== +eval@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/eval/-/eval-0.1.8.tgz#2b903473b8cc1d1989b83a1e7923f883eb357f85" + integrity sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw== + dependencies: + "@types/node" "*" + require-like ">= 0.1.1" + eventemitter-asyncresource@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz#734ff2e44bf448e627f7748f905d6bdd57bdb65b" @@ -6299,7 +7912,7 @@ extend-shallow@^2.0.0, extend-shallow@^2.0.1: dependencies: is-extendable "^0.1.0" -extend@~3.0.2: +extend@^3.0.0, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== @@ -6371,6 +7984,13 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== +fast-url-parser@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" + integrity sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ== + dependencies: + punycode "^1.3.2" + fastq@^1.6.0: version "1.15.0" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" @@ -6392,6 +8012,31 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" +fbemitter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/fbemitter/-/fbemitter-3.0.0.tgz#00b2a1af5411254aab416cd75f9e6289bee4bff3" + integrity sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw== + dependencies: + fbjs "^3.0.0" + +fbjs-css-vars@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" + integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== + +fbjs@^3.0.0, fbjs@^3.0.1: + version "3.0.5" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.5.tgz#aa0edb7d5caa6340011790bd9249dbef8a81128d" + integrity sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg== + dependencies: + cross-fetch "^3.1.5" + fbjs-css-vars "^1.0.0" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^1.0.35" + fd-slicer@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" @@ -6399,6 +8044,13 @@ fd-slicer@~1.1.0: dependencies: pend "~1.2.0" +feed@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/feed/-/feed-4.2.2.tgz#865783ef6ed12579e2c44bbef3c9113bc4956a7e" + integrity sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ== + dependencies: + xml-js "^1.6.11" + figures@3.2.0, figures@^3.0.0, figures@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" @@ -6478,6 +8130,11 @@ filelist@^1.0.4: dependencies: minimatch "^5.0.1" +filesize@^8.0.6: + version "8.0.7" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-8.0.7.tgz#695e70d80f4e47012c132d57a059e80c6b580bd8" + integrity sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ== + fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -6498,7 +8155,7 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -find-cache-dir@^3.3.2: +find-cache-dir@^3.3.1, find-cache-dir@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== @@ -6514,6 +8171,13 @@ find-up@^2.0.0: dependencies: locate-path "^2.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@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -6548,7 +8212,15 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== -follow-redirects@^1.0.0, follow-redirects@^1.15.0: +flux@^4.0.1: + version "4.0.4" + resolved "https://registry.yarnpkg.com/flux/-/flux-4.0.4.tgz#9661182ea81d161ee1a6a6af10d20485ef2ac572" + integrity sha512-NCj3XlayA2UsapRpM7va6wU1+9rE5FIL7qoMcmxWHRzbp0yujihMBm9BBHZ1MDIk5h5o2Bl6eGiCe8rYELAmYw== + dependencies: + fbemitter "^3.0.0" + fbjs "^3.0.1" + +follow-redirects@^1.0.0, follow-redirects@^1.14.7, 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== @@ -6591,6 +8263,25 @@ fork-ts-checker-webpack-plugin@7.2.13: semver "^7.3.5" tapable "^2.2.1" +fork-ts-checker-webpack-plugin@^6.5.0: + version "6.5.3" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz#eda2eff6e22476a2688d10661688c47f611b37f3" + integrity sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ== + dependencies: + "@babel/code-frame" "^7.8.3" + "@types/json-schema" "^7.0.5" + chalk "^4.1.0" + chokidar "^3.4.2" + cosmiconfig "^6.0.0" + deepmerge "^4.2.2" + fs-extra "^9.0.0" + glob "^7.1.6" + memfs "^3.1.2" + minimatch "^3.0.4" + schema-utils "2.7.0" + semver "^7.3.2" + tapable "^1.0.0" + form-data@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" @@ -6634,7 +8325,7 @@ fs-exists-sync@^0.1.0: resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" integrity sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg== -fs-extra@^10.0.0: +fs-extra@^10.0.0, 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== @@ -6652,7 +8343,7 @@ fs-extra@^11.0.0, fs-extra@^11.1.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^9.1.0: +fs-extra@^9.0.0, fs-extra@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -6677,9 +8368,9 @@ fs-minipass@^3.0.0: minipass "^5.0.0" fs-monkey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" - integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== + 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" @@ -6720,7 +8411,7 @@ gauge@^4.0.3: strip-ansi "^6.0.1" wide-align "^1.1.5" -gensync@^1.0.0-beta.2: +gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== @@ -6740,6 +8431,11 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@ has-proto "^1.0.1" has-symbols "^1.0.3" +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" @@ -6755,6 +8451,13 @@ get-pkg-repo@^4.0.0: through2 "^2.0.0" yargs "^16.2.0" +get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + get-stream@^5.0.0, get-stream@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" @@ -6815,6 +8518,11 @@ gitconfiglocal@^1.0.0: dependencies: ini "^1.3.2" +github-slugger@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.5.0.tgz#17891bbc73232051474d68bd867a34625c955f7d" + integrity sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw== + glob-parent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" @@ -6865,17 +8573,17 @@ glob@8.0.3: once "^1.3.0" glob@^10.2.2: - version "10.2.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.2.4.tgz#f5bf7ddb080e3e9039b148a9e2aef3d5ebfc0a25" - integrity sha512-fDboBse/sl1oXSLhIp0FcCJgzW9KmhC/q8ULTKC82zc+DL3TL7FNb8qlt5qqXN53MsKEUSIcb+7DLmEygOE5Yw== + version "10.2.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.2.7.tgz#9dd2828cd5bc7bd861e7738d91e7113dda41d7d8" + integrity sha512-jTKehsravOJo8IJxUGfZILnkvVJM/MOfHRs8QcXolVef2zNI9Tqyy5+SeuOAZd3upViEZQLyFpQhYiHLrMUNmA== dependencies: foreground-child "^3.1.0" jackspeak "^2.0.3" - minimatch "^9.0.0" - minipass "^5.0.0 || ^6.0.0" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2" path-scurry "^1.7.0" -glob@^7.0.5, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0, glob@~7.2.0: +glob@^7.0.0, glob@^7.0.5, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0, glob@~7.2.0: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -6920,6 +8628,13 @@ global-modules@^0.2.3: global-prefix "^0.1.4" is-windows "^0.2.0" +global-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + global-prefix@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" @@ -6930,6 +8645,15 @@ global-prefix@^0.1.4: is-windows "^0.2.0" which "^1.2.12" +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + globals@^11.1.0, globals@^11.12.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -6942,7 +8666,7 @@ globals@^13.19.0, globals@^13.6.0: dependencies: type-fest "^0.20.2" -globby@^11.1.0: +globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -6984,6 +8708,23 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" +got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" @@ -6994,6 +8735,23 @@ grapheme-splitter@^1.0.4: resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== +gray-matter@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" + integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== + dependencies: + js-yaml "^3.13.1" + kind-of "^6.0.2" + section-matter "^1.0.0" + strip-bom-string "^1.0.0" + +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== + dependencies: + duplexer "^0.1.2" + handle-thing@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" @@ -7072,6 +8830,11 @@ has-unicode@^2.0.1: resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== +has-yarn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" + integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== + has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -7079,6 +8842,74 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" +hast-to-hyperscript@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz#9b67fd188e4c81e8ad66f803855334173920218d" + integrity sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA== + dependencies: + "@types/unist" "^2.0.3" + comma-separated-tokens "^1.0.0" + property-information "^5.3.0" + space-separated-tokens "^1.0.0" + style-to-object "^0.3.0" + unist-util-is "^4.0.0" + web-namespaces "^1.0.0" + +hast-util-from-parse5@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz#554e34abdeea25ac76f5bd950a1f0180e0b3bc2a" + integrity sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA== + dependencies: + "@types/parse5" "^5.0.0" + hastscript "^6.0.0" + property-information "^5.0.0" + vfile "^4.0.0" + vfile-location "^3.2.0" + web-namespaces "^1.0.0" + +hast-util-parse-selector@^2.0.0: + version "2.2.5" + resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz#d57c23f4da16ae3c63b3b6ca4616683313499c3a" + integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ== + +hast-util-raw@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-6.0.1.tgz#973b15930b7529a7b66984c98148b46526885977" + integrity sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig== + dependencies: + "@types/hast" "^2.0.0" + hast-util-from-parse5 "^6.0.0" + hast-util-to-parse5 "^6.0.0" + html-void-elements "^1.0.0" + parse5 "^6.0.0" + unist-util-position "^3.0.0" + vfile "^4.0.0" + web-namespaces "^1.0.0" + xtend "^4.0.0" + zwitch "^1.0.0" + +hast-util-to-parse5@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz#1ec44650b631d72952066cea9b1445df699f8479" + integrity sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ== + dependencies: + hast-to-hyperscript "^9.0.0" + property-information "^5.0.0" + web-namespaces "^1.0.0" + xtend "^4.0.0" + zwitch "^1.0.0" + +hastscript@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-6.0.0.tgz#e8768d7eac56c3fdeac8a92830d58e811e5bf640" + integrity sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w== + dependencies: + "@types/hast" "^2.0.0" + comma-separated-tokens "^1.0.0" + hast-util-parse-selector "^2.0.0" + property-information "^5.0.0" + space-separated-tokens "^1.0.0" + hdr-histogram-js@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz#0b860534655722b6e3f3e7dca7b78867cf43dcb5" @@ -7098,6 +8929,25 @@ he@^1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== +history@^4.9.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^3.0.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^1.0.1" + +hoist-non-react-statics@^3.1.0: + 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" + homedir-polyfill@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" @@ -7146,19 +8996,73 @@ html-encoding-sniffer@^3.0.0: resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== dependencies: - whatwg-encoding "^2.0.0" + whatwg-encoding "^2.0.0" + +html-entities@^2.3.2: + 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-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-minifier-terser@^6.0.2, html-minifier-terser@^6.1.0: + 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-tags@^3.2.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" + integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== + +html-void-elements@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" + integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== + +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" -html-entities@^2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.3.tgz#117d7626bece327fc8baace8868fa6f5ef856e46" - integrity sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA== +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" -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== +htmlparser2@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" + integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + entities "^4.4.0" -http-cache-semantics@^4.1.0, http-cache-semantics@^4.1.1: +http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0, http-cache-semantics@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== @@ -7324,17 +9228,29 @@ ignore@^5.0.4, ignore@^5.1.9, ignore@^5.2.0: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== +image-size@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.0.2.tgz#d778b6d0ab75b2737c1556dd631652eb963bc486" + integrity sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg== + dependencies: + queue "6.0.2" + image-size@~0.5.0: version "0.5.5" resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== +immer@^9.0.7: + 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.1.0, import-fresh@^3.2.1: +import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -7342,6 +9258,11 @@ import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A== + import-local@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" @@ -7365,6 +9286,11 @@ infer-owner@^1.0.4: resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== +infima@0.2.0-alpha.43: + version "0.2.0-alpha.43" + resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.43.tgz#f7aa1d7b30b6c08afef441c726bac6150228cbe0" + integrity sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ== + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -7373,7 +9299,7 @@ inflight@^1.0.4: 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.3: +inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, 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== @@ -7393,7 +9319,7 @@ ini@3.0.1: resolved "https://registry.yarnpkg.com/ini/-/ini-3.0.1.tgz#c76ec81007875bc44d544ff7a11a55d12294102d" integrity sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ== -ini@^1.3.2, ini@^1.3.4: +ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, 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== @@ -7405,6 +9331,11 @@ injection-js@^2.4.0: dependencies: tslib "^2.0.0" +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + inquirer@8.2.4: version "8.2.4" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.4.tgz#ddbfe86ca2f67649a67daa6f1051c128f684f0b4" @@ -7456,6 +9387,18 @@ internal-slot@^1.0.4: has "^1.0.3" side-channel "^1.0.4" +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + ip@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" @@ -7467,9 +9410,9 @@ ipaddr.js@1.9.1: integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== ipaddr.js@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" - integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== + version "2.1.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" + integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== is-absolute@^0.2.5: version "0.2.6" @@ -7486,6 +9429,19 @@ is-accessor-descriptor@^0.1.6: dependencies: kind-of "^3.0.2" +is-alphabetical@1.0.4, is-alphabetical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" + integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== + +is-alphanumerical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" + integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== + dependencies: + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + is-arguments@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" @@ -7535,6 +9491,11 @@ is-buffer@^1.1.0, is-buffer@^1.1.3, is-buffer@^1.1.5: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== +is-buffer@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + is-builtin-module@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" @@ -7547,6 +9508,13 @@ is-callable@^1.1.3: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + is-ci@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" @@ -7555,9 +9523,9 @@ is-ci@^3.0.0: ci-info "^3.2.0" is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.8.1, is-core-module@^2.9.0: - version "2.12.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.0.tgz#36ad62f6f73c8253fd6472517a12483cf03e7ec4" - integrity sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ== + 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" @@ -7575,6 +9543,11 @@ is-date-object@^1.0.5: dependencies: has-tostringtag "^1.0.0" +is-decimal@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" + integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== + is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -7628,7 +9601,12 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-installed-globally@~0.4.0: +is-hexadecimal@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" + integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== + +is-installed-globally@^0.4.0, is-installed-globally@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== @@ -7656,6 +9634,11 @@ is-module@^1.0.0: resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== +is-npm@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" + integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== + 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" @@ -7668,11 +9651,21 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== + is-obj@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== +is-path-cwd@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + is-path-inside@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" @@ -7683,6 +9676,11 @@ is-plain-obj@^1.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== +is-plain-obj@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + is-plain-obj@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" @@ -7708,6 +9706,11 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== + is-relative@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.2.1.tgz#d27f4c7d516d175fb610db84bbeef23c3bc97aa5" @@ -7715,6 +9718,11 @@ is-relative@^0.2.1: dependencies: is-unc-path "^0.1.1" +is-root@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" + integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== + 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" @@ -7764,7 +9772,7 @@ is-typed-array@^1.1.10: gopd "^1.0.1" has-tostringtag "^1.0.0" -is-typedarray@~1.0.0: +is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== @@ -7809,11 +9817,21 @@ is-what@^3.14.1: resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1" integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== +is-whitespace-character@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" + integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== + is-windows@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" integrity sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q== +is-word-character@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" + integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== + is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" @@ -7821,6 +9839,16 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" +is-yarn-global@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" + integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== + +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" @@ -7896,18 +9924,18 @@ istanbul-reports@^3.1.3: istanbul-lib-report "^3.0.0" jackspeak@^2.0.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.2.0.tgz#497cbaedc902ec3f31d5d61be804d2364ff9ddad" - integrity sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ== + version "2.2.1" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.2.1.tgz#655e8cf025d872c9c03d3eb63e8f0c024fef16a6" + integrity sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw== dependencies: "@isaacs/cliui" "^8.0.2" optionalDependencies: "@pkgjs/parseargs" "^0.11.0" jake@^10.8.5: - version "10.8.6" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.6.tgz#227a96786a1e035214e0ba84b482d6223d41ef04" - integrity sha512-G43Ub9IYEFfu72sua6rzooi8V8Gz2lkfk48rW20vEWCGizeaEPlKB1Kh8JIA84yQbiAEfqlPmSpGgCKKxH3rDA== + version "10.8.7" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.7.tgz#63a32821177940c33f356e0ba44ff9d34e1c7d8f" + integrity sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w== dependencies: async "^3.2.3" chalk "^4.0.2" @@ -8306,7 +10334,7 @@ jest-worker@^27.0.2, jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^29.5.0: +jest-worker@^29.1.2, jest-worker@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d" integrity sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA== @@ -8326,7 +10354,23 @@ jest@29.4.3: import-local "^3.0.2" jest-cli "^29.4.3" -js-tokens@^4.0.0: +jiti@^1.18.2: + version "1.18.2" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.18.2.tgz#80c3ef3d486ebf2450d9335122b32d121f2a83cd" + integrity sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg== + +joi@^17.6.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" + +"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== @@ -8393,6 +10437,11 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== + json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -8474,6 +10523,13 @@ karma-source-map-support@1.4.0: dependencies: source-map-support "^0.5.5" +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + kind-of@^3.0.2: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -8486,7 +10542,7 @@ kind-of@^5.0.0: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== -kind-of@^6.0.2, kind-of@^6.0.3: +kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: 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== @@ -8496,11 +10552,18 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -klona@^2.0.4, klona@^2.0.5: +klona@^2.0.4, klona@^2.0.5, klona@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== +latest-version@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" + integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== + dependencies: + package-json "^6.3.0" + launch-editor@^2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.0.tgz#4c0c1a6ac126c572bd9ff9a30da1d2cae66defd7" @@ -8622,7 +10685,7 @@ loader-runner@^4.2.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== -loader-utils@3.2.1: +loader-utils@3.2.1, loader-utils@^3.2.0: version "3.2.1" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.2.1.tgz#4fb104b599daafd82ef3e1a41fb9265f87e1f576" integrity sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw== @@ -8644,6 +10707,14 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" +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" @@ -8663,11 +10734,21 @@ lodash.camelcase@^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.curry@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170" + integrity sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA== + lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== +lodash.flow@^3.3.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/lodash.flow/-/lodash.flow-3.5.0.tgz#87bf40292b8cf83e4e8ce1a3ae4209e20071675a" + integrity sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw== + lodash.isfunction@^3.0.9: version "3.0.9" resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" @@ -8718,7 +10799,7 @@ lodash.startcase@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== -lodash.uniq@^4.5.0: +lodash.uniq@4.5.0, 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== @@ -8728,7 +10809,7 @@ lodash.upperfirst@^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.14, lodash@^4.17.15, lodash@^4.17.21: +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -8759,6 +10840,30 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" +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" + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -8779,9 +10884,9 @@ lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== lru-cache@^9.1.1: - version "9.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-9.1.1.tgz#c58a93de58630b688de39ad04ef02ef26f1902f1" - integrity sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A== + version "9.1.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-9.1.2.tgz#255fdbc14b75589d6d0e73644ca167a8db506835" + integrity sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ== magic-string@0.26.7, magic-string@~0.26.2: version "0.26.7" @@ -8805,7 +10910,7 @@ make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.0, make-dir@^3.0.2, make-dir@~3.1.0: +make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0, make-dir@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== @@ -8877,6 +10982,11 @@ map-obj@^4.0.0: resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== +markdown-escapes@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" + integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== + matched@^0.4.1: version "0.4.4" resolved "https://registry.yarnpkg.com/matched/-/matched-0.4.4.tgz#56d7b7eb18033f0cf9bc52eb2090fac7dc1e89fa" @@ -8892,20 +11002,58 @@ matched@^0.4.1: lazy-cache "^2.0.1" resolve-dir "^0.1.0" +mdast-squeeze-paragraphs@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz#7c4c114679c3bee27ef10b58e2e015be79f1ef97" + integrity sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ== + dependencies: + unist-util-remove "^2.0.0" + +mdast-util-definitions@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz#c5c1a84db799173b4dcf7643cda999e440c24db2" + integrity sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ== + dependencies: + unist-util-visit "^2.0.0" + +mdast-util-to-hast@10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz#0cfc82089494c52d46eb0e3edb7a4eb2aea021eb" + integrity sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + mdast-util-definitions "^4.0.0" + mdurl "^1.0.0" + unist-builder "^2.0.0" + unist-util-generated "^1.0.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +mdast-util-to-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" + integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== + mdn-data@2.0.14: version "2.0.14" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== +mdurl@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== + 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.1, memfs@^3.4.3: - version "3.5.1" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.5.1.tgz#f0cd1e2bfaef58f6fe09bfb9c2288f07fea099ec" - integrity sha512-UWbFJKvj5k+nETdteFndTpYxdeTMox/ULeqX5k/dpaQJCCFmj5EeKv3dBcyO2xmkRAx2vppRu5dVG7SOtsGOzA== +memfs@^3.1.2, memfs@^3.4.1, memfs@^3.4.3: + version "3.5.2" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.5.2.tgz#3367cb58940e45224a7e377015b37f55a831b3ac" + integrity sha512-4kbWXbVZ+LU4XFDS2CuA7frnwz2HxCMB/0yOXc86q7aCQrfWKkL11t6al1e2CsVC7uhnBNTQ1TfUsAxVauO9IQ== dependencies: fs-monkey "^1.0.3" @@ -8946,7 +11094,7 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== -micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4: +micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== @@ -8959,6 +11107,18 @@ mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== +mime-db@~1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" + integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== + +mime-types@2.1.18: + version "2.1.18" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== + dependencies: + mime-db "~1.33.0" + mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, 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" @@ -8981,6 +11141,11 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + min-indent@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" @@ -8993,6 +11158,13 @@ mini-css-extract-plugin@2.6.1: dependencies: schema-utils "^4.0.0" +mini-css-extract-plugin@^2.6.1: + version "2.7.6" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz#282a3d38863fddcd2e0c220aaed5b90bc156564d" + integrity sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw== + dependencies: + schema-utils "^4.0.0" + mini-css-extract-plugin@~2.4.7: version "2.4.7" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.4.7.tgz#b9f4c4f4d727c7a3cd52a11773bb739f00177fac" @@ -9012,7 +11184,7 @@ minimatch@3.0.5: dependencies: brace-expansion "^1.1.7" -minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@3.1.2, 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== @@ -9026,10 +11198,10 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.0.tgz#bfc8e88a1c40ffd40c172ddac3decb8451503b56" - integrity sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w== +minimatch@^9.0.0, minimatch@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.1.tgz#8a555f541cf976c622daf078bb28f29fb927c253" + integrity sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w== dependencies: brace-expansion "^2.0.1" @@ -9124,10 +11296,10 @@ minipass@^5.0.0: resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== -"minipass@^5.0.0 || ^6.0.0": - version "6.0.1" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-6.0.1.tgz#315417c259cb32a1b2fc530c0e7f55c901a60a6d" - integrity sha512-Tenl5QPpgozlOGBiveNYHg2f6y+VpxsXRoIHFUVJuSmTonXRAE6q9b8Mp/O46762/2AlW4ye4Nkyvx0fgWDKbw== +"minipass@^5.0.0 || ^6.0.2": + version "6.0.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-6.0.2.tgz#542844b6c4ce95b202c0995b0a471f1229de4c81" + integrity sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w== minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" @@ -9154,6 +11326,11 @@ modify-values@^1.0.0: resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== +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" @@ -9262,6 +11439,14 @@ nice-napi@^1.0.2: node-addon-api "^3.0.0" node-gyp-build "^4.2.2" +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-abort-controller@^3.0.1: version "3.1.1" resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" @@ -9272,6 +11457,20 @@ node-addon-api@^3.0.0, node-addon-api@^3.2.1: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== +node-emoji@^1.10.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" + integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== + dependencies: + lodash "^4.17.21" + +node-fetch@^2.6.11: + 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-forge@^1: version "1.3.1" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" @@ -9308,10 +11507,10 @@ node-machine-id@^1.1.12: resolved "https://registry.yarnpkg.com/node-machine-id/-/node-machine-id-1.1.12.tgz#37904eee1e59b320bb9c5d6c0a59f3b469cb6267" integrity sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ== -node-releases@^2.0.6, node-releases@^2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" - integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== +node-releases@^2.0.12, node-releases@^2.0.6: + version "2.0.12" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" + integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== nopt@^6.0.0: version "6.0.0" @@ -9360,6 +11559,11 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== +normalize-url@^4.1.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + normalize-url@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" @@ -9451,6 +11655,11 @@ npmlog@^6.0.0: gauge "^4.0.3" set-blocking "^2.0.0" +nprogress@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" + integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA== + nth-check@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" @@ -9459,9 +11668,9 @@ nth-check@^2.0.1: boolbase "^1.0.0" nwsapi@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.4.tgz#fd59d5e904e8e1f03c25a7d5a15cfa16c714a1e5" - integrity sha512-NHj4rzRo0tQdijE9ZqAx6kYDcoRwYwSYzCA8MY3JzfxlrvEU0jhnhJT9BhqhJs7I/dKcrDm6TyulaRqZPIhN5g== + version "2.2.5" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.5.tgz#a52744c61b3889dd44b0a158687add39b8d935e2" + integrity sha512-6xpotnECFy/og7tKSBVmUNft7J3jyXAka4XvG6AUhFWRz+Q/Ljus7znJAA3bxColfQLdS+XsjoodtJfCgeTEFQ== nx-cloud@16.0.5: version "16.0.5" @@ -9530,6 +11739,11 @@ nx@16.3.2: "@nx/nx-win32-arm64-msvc" "16.3.2" "@nx/nx-win32-x64-msvc" "16.3.2" +object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + object-inspect@^1.9.0: version "1.12.3" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" @@ -9548,7 +11762,7 @@ object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.4: +object.assign@^4.1.0, 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== @@ -9607,7 +11821,7 @@ open@^8.0.9, open@^8.4.0, open@~8.4.0: is-docker "^2.1.1" is-wsl "^2.2.0" -opener@^1.5.1: +opener@^1.5.1, 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== @@ -9666,6 +11880,11 @@ ospath@^1.2.2: resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" integrity sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA== +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -9673,7 +11892,7 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" -p-limit@^2.2.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== @@ -9694,6 +11913,13 @@ p-locate@^2.0.0: dependencies: p-limit "^1.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" @@ -9733,6 +11959,16 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +package-json@^6.3.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" + integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== + dependencies: + got "^9.6.0" + registry-auth-token "^4.0.0" + registry-url "^5.0.0" + semver "^6.2.0" + pacote@15.0.6: version "15.0.6" resolved "https://registry.yarnpkg.com/pacote/-/pacote-15.0.6.tgz#8c498b5c23270da4f4c87f7eeba0248a3ae61342" @@ -9761,6 +11997,14 @@ pako@^1.0.3: resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== +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" @@ -9768,6 +12012,18 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" +parse-entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" + integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -9791,6 +12047,11 @@ parse-node-version@^1.0.1: resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== +parse-numeric-range@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz#7c63b61190d61e4d53a1197f0c83c47bb670ffa3" + integrity sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ== + parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" @@ -9811,6 +12072,14 @@ parse5-htmlparser2-tree-adapter@^6.0.1: dependencies: parse5 "^6.0.1" +parse5-htmlparser2-tree-adapter@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1" + integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== + dependencies: + domhandler "^5.0.2" + parse5 "^7.0.0" + parse5-sax-parser@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz#98b4d366b5b266a7cd90b4b58906667af882daba" @@ -9823,7 +12092,7 @@ parse5@4.0.0: resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== -parse5@^6.0.1: +parse5@^6.0.0, parse5@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== @@ -9840,6 +12109,14 @@ parseurl@~1.3.2, parseurl@~1.3.3: resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -9855,6 +12132,11 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== +path-is-inside@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== + path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" @@ -9866,18 +12148,30 @@ path-parse@^1.0.7: integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-scurry@^1.7.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.9.1.tgz#838566bb22e38feaf80ecd49ae06cd12acd782ee" - integrity sha512-UgmoiySyjFxP6tscZDgWGEAgsW5ok8W3F5CJDnnH2pozwSTGE6eH7vwTotMwATWA2r5xqdkKdxYPkwlJjAI/3g== + version "1.9.2" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.9.2.tgz#90f9d296ac5e37e608028e28a447b11d385b3f63" + integrity sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg== dependencies: lru-cache "^9.1.1" - minipass "^5.0.0 || ^6.0.0" + minipass "^5.0.0 || ^6.0.2" 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@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.2.1.tgz#90b617025a16381a879bc82a38d4e8bdeb2bcf45" + integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ== + +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@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" @@ -9948,6 +12242,13 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0: 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" + portfinder@^1.0.28: version "1.0.32" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81" @@ -10066,6 +12367,13 @@ postcss-discard-overridden@^5.1.0: resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e" integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== +postcss-discard-unused@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-5.1.0.tgz#8974e9b143d887677304e558c1166d3762501142" + integrity sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw== + dependencies: + postcss-selector-parser "^6.0.5" + postcss-double-position-gradients@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz#b96318fdb477be95997e86edd29c6e3557a49b91" @@ -10152,6 +12460,16 @@ postcss-loader@^6.1.1: klona "^2.0.5" semver "^7.3.5" +postcss-loader@^7.0.0: + version "7.3.2" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.3.2.tgz#ac3344ad1f14bb65df135744b7efae4dbdad4301" + integrity sha512-c7qDlXErX6n0VT+LUsW+nwefVtTu3ORtVvK8EXuUIDcxo+b/euYqpuHlJAvePb0Af5e8uMjR/13e0lTuYifaig== + dependencies: + cosmiconfig "^8.1.3" + jiti "^1.18.2" + klona "^2.0.6" + semver "^7.3.8" + postcss-logical@^5.0.4: version "5.0.4" resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-5.0.4.tgz#ec75b1ee54421acc04d5921576b7d8db6b0e6f73" @@ -10162,6 +12480,14 @@ postcss-media-minmax@^5.0.0: resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz#7140bddec173e2d6d657edbd8554a55794e2a5b5" integrity sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ== +postcss-merge-idents@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-5.1.1.tgz#7753817c2e0b75d0853b56f78a89771e15ca04a1" + integrity sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw== + dependencies: + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + postcss-merge-longhand@^5.1.7: version "5.1.7" resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz#24a1bdf402d9ef0e70f568f39bdc0344d568fb16" @@ -10217,10 +12543,10 @@ postcss-modules-extract-imports@^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.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" - integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== +postcss-modules-local-by-default@^4.0.0, postcss-modules-local-by-default@^4.0.3: + 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" @@ -10401,6 +12727,13 @@ postcss-pseudo-class-any-link@^7.1.2: dependencies: postcss-selector-parser "^6.0.10" +postcss-reduce-idents@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-5.2.0.tgz#c89c11336c432ac4b28792f24778859a67dfba95" + integrity sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg== + dependencies: + postcss-value-parser "^4.2.0" + postcss-reduce-initial@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz#798cd77b3e033eae7105c18c9d371d989e1382d6" @@ -10436,6 +12769,13 @@ postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.2, postcss-selecto cssesc "^3.0.0" util-deprecate "^1.0.2" +postcss-sort-media-queries@^4.2.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/postcss-sort-media-queries/-/postcss-sort-media-queries-4.4.1.tgz#04a5a78db3921eb78f28a1a781a2e68e65258128" + integrity sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw== + dependencies: + sort-css-media-queries "2.1.0" + postcss-svgo@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d" @@ -10466,6 +12806,11 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0, postcss-value-parser@^ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== +postcss-zindex@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-5.1.0.tgz#4a5c7e5ff1050bd4c01d95b1847dfdcc58a496ff" + integrity sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A== + postcss@8.4.18: version "8.4.18" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.18.tgz#6d50046ea7d3d66a85e0e782074e7203bc7fbca2" @@ -10484,10 +12829,10 @@ postcss@8.4.19: picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@^8.2.14, postcss@^8.3.5, postcss@^8.3.7, postcss@^8.4.14, postcss@^8.4.16, postcss@^8.4.19, postcss@^8.4.7: - version "8.4.23" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.23.tgz#df0aee9ac7c5e53e1075c24a3613496f9e6552ab" - integrity sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA== +postcss@^8.2.14, postcss@^8.3.11, postcss@^8.3.5, postcss@^8.3.7, postcss@^8.4.14, postcss@^8.4.16, postcss@^8.4.17, postcss@^8.4.21, postcss@^8.4.7: + 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" @@ -10503,6 +12848,11 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== + prettier@2.8.1: version "2.8.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.1.tgz#4e1fd11c34e2421bc1da9aea9bd8127cd0a35efc" @@ -10513,6 +12863,14 @@ pretty-bytes@^5.3.0, pretty-bytes@^5.6.0: resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== +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-format@^29.0.0, pretty-format@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a" @@ -10522,6 +12880,21 @@ pretty-format@^29.0.0, pretty-format@^29.5.0: ansi-styles "^5.0.0" react-is "^18.0.0" +pretty-time@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" + integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== + +prism-react-renderer@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-1.3.5.tgz#786bb69aa6f73c32ba1ee813fbe17a0115435085" + integrity sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg== + +prismjs@^1.28.0: + version "1.29.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12" + integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q== + proc-log@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-2.0.1.tgz#8f3f69a1f608de27878f91f5c688b225391cb685" @@ -10550,7 +12923,14 @@ promise-retry@^2.0.1: err-code "^2.0.2" retry "^0.12.0" -prompts@^2.0.1, prompts@~2.4.2: +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + +prompts@^2.0.1, prompts@^2.4.2, prompts@~2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== @@ -10558,6 +12938,22 @@ prompts@^2.0.1, prompts@~2.4.2: kleur "^3.0.3" sisteransi "^1.0.5" +prop-types@^15.6.2, prop-types@^15.7.2: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +property-information@^5.0.0, property-information@^5.3.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.6.0.tgz#61675545fb23002f245c6540ec46077d4da3ed69" + integrity sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA== + dependencies: + xtend "^4.0.0" + proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" @@ -10594,11 +12990,28 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" +punycode@^1.3.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== + 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== +pupa@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" + integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== + dependencies: + escape-goat "^2.0.0" + +pure-color@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/pure-color/-/pure-color-1.3.0.tgz#1fe064fb0ac851f0de61320a8bf796836422f33e" + integrity sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA== + pure-rand@^6.0.0: version "6.0.2" resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.2.tgz#a9c2ddcae9b68d736a8163036f088a2781c8b306" @@ -10640,6 +13053,13 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +queue@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/queue/-/queue-6.0.2.tgz#b91525283e2315c7553d2efa18d83e76432fed65" + integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA== + dependencies: + inherits "~2.0.3" + quick-lru@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" @@ -10652,6 +13072,11 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" +range-parser@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + integrity sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A== + range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" @@ -10667,10 +13092,167 @@ raw-body@2.5.1: iconv-lite "0.4.24" unpipe "1.0.0" -react-is@^18.0.0: +rc@1.2.8, rc@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-base16-styling@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/react-base16-styling/-/react-base16-styling-0.6.0.tgz#ef2156d66cf4139695c8a167886cb69ea660792c" + integrity sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ== + dependencies: + base16 "^1.0.0" + lodash.curry "^4.0.1" + lodash.flow "^3.3.0" + pure-color "^1.2.0" + +react-dev-utils@^12.0.1: + version "12.0.1" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz#ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73" + integrity sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ== + dependencies: + "@babel/code-frame" "^7.16.0" + address "^1.1.2" + browserslist "^4.18.1" + chalk "^4.1.2" + cross-spawn "^7.0.3" + detect-port-alt "^1.1.6" + escape-string-regexp "^4.0.0" + filesize "^8.0.6" + find-up "^5.0.0" + fork-ts-checker-webpack-plugin "^6.5.0" + global-modules "^2.0.0" + globby "^11.0.4" + gzip-size "^6.0.0" + immer "^9.0.7" + is-root "^2.1.0" + loader-utils "^3.2.0" + open "^8.4.0" + pkg-up "^3.1.0" + prompts "^2.4.2" + react-error-overlay "^6.0.11" + recursive-readdir "^2.2.2" + shell-quote "^1.7.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +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-error-overlay@^6.0.11: + version "6.0.11" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz#92835de5841c5cf08ba00ddd2d677b6d17ff9adb" + integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg== + +react-fast-compare@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz#929a97a532304ce9fee4bcae44234f1ce2c21d49" + integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ== + +react-helmet-async@*, react-helmet-async@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-1.3.0.tgz#7bd5bf8c5c69ea9f02f6083f14ce33ef545c222e" + integrity sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg== + dependencies: + "@babel/runtime" "^7.12.5" + invariant "^2.2.4" + prop-types "^15.7.2" + react-fast-compare "^3.2.0" + shallowequal "^1.1.0" + +react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^18.0.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" + integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== + +react-json-view@^1.21.3: + version "1.21.3" + resolved "https://registry.yarnpkg.com/react-json-view/-/react-json-view-1.21.3.tgz#f184209ee8f1bf374fb0c41b0813cff54549c475" + integrity sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw== + dependencies: + flux "^4.0.1" + react-base16-styling "^0.6.0" + react-lifecycles-compat "^3.0.4" + react-textarea-autosize "^8.3.2" + +react-lifecycles-compat@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== + +react-loadable-ssr-addon-v5-slorber@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz#2cdc91e8a744ffdf9e3556caabeb6e4278689883" + integrity sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A== + dependencies: + "@babel/runtime" "^7.10.3" + +react-router-config@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/react-router-config/-/react-router-config-5.1.1.tgz#0f4263d1a80c6b2dc7b9c1902c9526478194a988" + integrity sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg== + dependencies: + "@babel/runtime" "^7.1.2" + +react-router-dom@^5.3.3: + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.4.tgz#2ed62ffd88cae6db134445f4a0c0ae8b91d2e5e6" + integrity sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + loose-envify "^1.3.1" + prop-types "^15.6.2" + react-router "5.3.4" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router@5.3.4, react-router@^5.3.3: + 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-textarea-autosize@^8.3.2: + version "8.4.1" + resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.4.1.tgz#bcfc5462727014b808b14ee916c01e275e8a8335" + integrity sha512-aD2C+qK6QypknC+lCMzteOdIjoMbNlgSFmJjCV+DrfTPwp59i/it9mMNf2HDzvRjQgKAyBDPyLJhcrzElf2U4Q== + dependencies: + "@babel/runtime" "^7.20.13" + use-composed-ref "^1.3.0" + use-latest "^1.2.1" + +react@^18.2.0: version "18.2.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" - integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== + dependencies: + loose-envify "^1.1.0" read-cache@^1.0.0: version "1.0.0" @@ -10688,9 +13270,9 @@ read-package-json-fast@^3.0.0: npm-normalize-package-bin "^3.0.0" read-package-json@^6.0.0: - version "6.0.3" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-6.0.3.tgz#726116b75e00eac2075240995f05681af4ca7122" - integrity sha512-4QbpReW4kxFgeBQ0vPAqh2y8sXEB3D4t3jsXbJKIhBiF80KT6XRo45reqwtftju5J6ru1ax06A2Gb/wM1qCOEQ== + version "6.0.4" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-6.0.4.tgz#90318824ec456c287437ea79595f4c2854708836" + integrity sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw== dependencies: glob "^10.2.2" json-parse-even-better-errors "^3.0.0" @@ -10762,6 +13344,25 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +reading-time@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/reading-time/-/reading-time-1.5.0.tgz#d2a7f1b6057cb2e169beaf87113cc3411b5bc5bb" + integrity sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg== + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== + dependencies: + resolve "^1.1.6" + +recursive-readdir@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.3.tgz#e726f328c0d69153bcabd5c322d3195252379372" + integrity sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA== + dependencies: + minimatch "^3.0.5" + redent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" @@ -10830,6 +13431,20 @@ regexpu-core@^5.3.1: unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.1.0" +registry-auth-token@^4.0.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.2.tgz#f02d49c3668884612ca031419491a13539e21fac" + integrity sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg== + dependencies: + rc "1.2.8" + +registry-url@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" + integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== + dependencies: + rc "^1.2.8" + regjsparser@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" @@ -10837,6 +13452,84 @@ regjsparser@^0.9.1: dependencies: jsesc "~0.5.0" +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== + +remark-emoji@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/remark-emoji/-/remark-emoji-2.2.0.tgz#1c702090a1525da5b80e15a8f963ef2c8236cac7" + integrity sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w== + dependencies: + emoticon "^3.2.0" + node-emoji "^1.10.0" + unist-util-visit "^2.0.3" + +remark-footnotes@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/remark-footnotes/-/remark-footnotes-2.0.0.tgz#9001c4c2ffebba55695d2dd80ffb8b82f7e6303f" + integrity sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ== + +remark-mdx@1.6.22: + version "1.6.22" + resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-1.6.22.tgz#06a8dab07dcfdd57f3373af7f86bd0e992108bbd" + integrity sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ== + dependencies: + "@babel/core" "7.12.9" + "@babel/helper-plugin-utils" "7.10.4" + "@babel/plugin-proposal-object-rest-spread" "7.12.1" + "@babel/plugin-syntax-jsx" "7.12.1" + "@mdx-js/util" "1.6.22" + is-alphabetical "1.0.4" + remark-parse "8.0.3" + unified "9.2.0" + +remark-parse@8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-8.0.3.tgz#9c62aa3b35b79a486454c690472906075f40c7e1" + integrity sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q== + dependencies: + ccount "^1.0.0" + collapse-white-space "^1.0.2" + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + is-whitespace-character "^1.0.0" + is-word-character "^1.0.0" + markdown-escapes "^1.0.0" + parse-entities "^2.0.0" + repeat-string "^1.5.4" + state-toggle "^1.0.0" + trim "0.0.1" + trim-trailing-lines "^1.0.0" + unherit "^1.0.4" + unist-util-remove-position "^2.0.0" + vfile-location "^3.0.0" + xtend "^4.0.1" + +remark-squeeze-paragraphs@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz#76eb0e085295131c84748c8e43810159c5653ead" + integrity sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw== + dependencies: + mdast-squeeze-paragraphs "^4.0.0" + +renderkid@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" + integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^6.0.1" + +repeat-string@^1.5.4: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== + replace-ext@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" @@ -10868,6 +13561,11 @@ 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== +"require-like@>= 0.1.1": + version "0.1.2" + resolved "https://registry.yarnpkg.com/require-like/-/require-like-0.1.2.tgz#ad6f30c13becd797010c468afa775c0c0a6b47fa" + integrity sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A== + requireindex@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" @@ -10910,6 +13608,11 @@ resolve-global@1.0.0, resolve-global@^1.0.0: dependencies: global-dirs "^0.1.1" +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-url-loader@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz#ee3142fb1f1e0d9db9524d539cfa166e9314f795" @@ -10940,7 +13643,7 @@ resolve@1.22.1: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.1: +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.3.2: version "1.22.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== @@ -10949,6 +13652,13 @@ resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.20 path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ== + dependencies: + lowercase-keys "^1.0.0" + restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -10985,12 +13695,27 @@ rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: glob "^7.1.3" rollup@^3.0.0: - version "3.21.7" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.21.7.tgz#022ab47416712c93546f369abfb20da5fb8ed42e" - integrity sha512-KXPaEuR8FfUoK2uHwNjxTmJ18ApyvD6zJpYv9FOJSqLStmt6xOY84l1IjK2dSolQmoXknrhEFRaPRgOPdqCT5w== + version "3.23.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.23.1.tgz#a6e50cb86a17fc2e3248d8ec12ff8666992b0780" + integrity sha512-ybRdFVHOoljGEFILHLd2g/qateqUdjE6YS41WXq4p3C/WwD3xtWxV4FYWETA1u9TeXQc5K8L8zHE5d/scOvrOQ== optionalDependencies: fsevents "~2.3.2" +rtl-detect@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/rtl-detect/-/rtl-detect-1.0.4.tgz#40ae0ea7302a150b96bc75af7d749607392ecac6" + integrity sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ== + +rtlcss@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/rtlcss/-/rtlcss-3.5.0.tgz#c9eb91269827a102bac7ae3115dd5d049de636c3" + integrity sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A== + dependencies: + find-up "^5.0.0" + picocolors "^1.0.0" + postcss "^8.3.11" + strip-json-comments "^3.1.1" + run-async@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" @@ -11030,7 +13755,7 @@ rxjs@7.6.0: dependencies: tslib "^2.1.0" -rxjs@7.8.1, rxjs@^7.5.1, rxjs@^7.5.5, rxjs@^7.5.6, rxjs@^7.8.0: +rxjs@7.8.1, rxjs@^7.5.1, rxjs@^7.5.4, rxjs@^7.5.5, rxjs@^7.5.6, rxjs@^7.8.0: version "7.8.1" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== @@ -11098,6 +13823,31 @@ saxes@^6.0.0: dependencies: xmlchars "^2.2.0" +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@2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== + dependencies: + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" + +schema-utils@^2.6.5: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + schema-utils@^3.0.0, schema-utils@^3.1.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" @@ -11117,6 +13867,14 @@ schema-utils@^4.0.0: ajv-formats "^2.1.1" ajv-keywords "^5.1.0" +section-matter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" + integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== + dependencies: + extend-shallow "^2.0.1" + kind-of "^6.0.0" + secure-compare@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/secure-compare/-/secure-compare-3.0.1.tgz#f1a0329b308b221fae37b9974f3d578d0ca999e3" @@ -11134,7 +13892,14 @@ selfsigned@^2.1.1: dependencies: node-forge "^1" -"semver@2 || 3 || 4 || 5", semver@^5.6.0: +semver-diff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" + integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== + dependencies: + semver "^6.3.0" + +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -11167,7 +13932,7 @@ semver@7.x, semver@^7.0.0, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^ dependencies: lru-cache "^6.0.0" -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -11198,6 +13963,20 @@ serialize-javascript@^6.0.0, serialize-javascript@^6.0.1: dependencies: randombytes "^2.1.0" +serve-handler@^6.1.3: + version "6.1.5" + resolved "https://registry.yarnpkg.com/serve-handler/-/serve-handler-6.1.5.tgz#a4a0964f5c55c7e37a02a633232b6f0d6f068375" + integrity sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg== + dependencies: + bytes "3.0.0" + content-disposition "0.5.2" + fast-url-parser "1.1.3" + mime-types "2.1.18" + minimatch "3.1.2" + path-is-inside "1.0.2" + path-to-regexp "2.2.1" + range-parser "1.2.0" + serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" @@ -11233,6 +14012,11 @@ set-getter@^0.1.0: dependencies: to-object-path "^0.3.0" +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" @@ -11250,6 +14034,11 @@ shallow-clone@^3.0.0: dependencies: kind-of "^6.0.2" +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -11267,6 +14056,15 @@ shell-quote@^1.7.3: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== +shelljs@^0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -11286,11 +14084,30 @@ signal-exit@^4.0.1: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.0.2.tgz#ff55bb1d9ff2114c13b400688fa544ac63c36967" integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q== +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" + sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== +sitemap@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/sitemap/-/sitemap-7.1.1.tgz#eeed9ad6d95499161a3eadc60f8c6dce4bea2bef" + integrity sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg== + dependencies: + "@types/node" "^17.0.5" + "@types/sax" "^1.2.1" + arg "^5.0.0" + sax "^1.2.4" + slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -11350,6 +14167,11 @@ socks@^2.6.2: ip "^2.0.0" smart-buffer "^4.2.0" +sort-css-media-queries@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/sort-css-media-queries/-/sort-css-media-queries-2.1.0.tgz#7c85e06f79826baabb232f5560e9745d7a78c4ce" + integrity sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA== + "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" @@ -11415,11 +14237,21 @@ source-map@0.7.4, source-map@^0.7.3: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== +source-map@^0.5.0: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + sourcemap-codec@^1.4.8: version "1.4.8" resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== +space-separated-tokens@^1.0.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" + integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== + spdx-correct@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" @@ -11529,6 +14361,11 @@ stack-utils@^2.0.3: dependencies: escape-string-regexp "^2.0.0" +state-toggle@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" + integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== + statuses@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" @@ -11539,6 +14376,11 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== +std-env@^3.0.1: + version "3.3.3" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.3.3.tgz#a54f06eb245fdcfef53d56f3c0251f1d5c3d01fe" + integrity sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg== + 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" @@ -11554,7 +14396,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: 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== @@ -11586,6 +14428,15 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + "strip-ansi-cjs@npm:strip-ansi@^6.0.1", 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" @@ -11594,9 +14445,9 @@ string_decoder@~1.1.1: ansi-regex "^5.0.1" strip-ansi@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" - integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== dependencies: ansi-regex "^6.0.1" @@ -11613,6 +14464,11 @@ strip-bom-string@^0.1.2: resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-0.1.2.tgz#9c6e720a313ba9836589518405ccfb88a5f41b9c" integrity sha512-3DgNqQFTfOwWgxn3cXsa6h/WRgFa7dVb6/7YqwfJlBpLSSQbiU1VhaBNRKmtLI59CHjc9awLp9yGJREu7AnaMQ== +strip-bom-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -11640,6 +14496,11 @@ strip-json-comments@^3.1.0, strip-json-comments@^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== + strong-log-transformer@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10" @@ -11650,9 +14511,16 @@ strong-log-transformer@^2.1.0: through "^2.3.4" style-loader@^3.3.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.2.tgz#eaebca714d9e462c19aa1e3599057bc363924899" - integrity sha512-RHs/vcrKdQK8wZliteNK4NKzxvLBzpuHMqYmUVWeKa6MkaIQ97ZTOS0b+zapZhy6GcrgWnvWYCMHRirC3FsUmw== + version "3.3.3" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.3.tgz#bba8daac19930169c0c9c96706749a597ae3acff" + integrity sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw== + +style-to-object@0.3.0, style-to-object@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" + integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== + dependencies: + inline-style-parser "0.1.1" stylehacks@^5.1.1: version "5.1.1" @@ -11663,12 +14531,12 @@ stylehacks@^5.1.1: postcss-selector-parser "^6.0.4" stylus-loader@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-7.1.0.tgz#19e09a98b19075c246e6e3f65e38b8cb89d2d6fb" - integrity sha512-gNUEjjozR+oZ8cuC/Fx4LVXqZOgDKvpW9t2hpXHcxjfPYqSjQftaGwZUK+wL9B0QJ26uS6p1EmoWHmvld1dF7g== + version "7.1.2" + resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-7.1.2.tgz#bf9556757344469f857e2edd79d1b9f69e364f69" + integrity sha512-terrqvQV0ie1q2XKHnStfLOztCyKj6CYO7NqFIP2ijIsGGgCX4cbyn49DjaTwpkc91QBnMMSYkK7JAIL5gvmIg== dependencies: fast-glob "^3.2.12" - klona "^2.0.5" + klona "^2.0.6" normalize-path "^3.0.0" stylus@^0.55.0: @@ -11716,7 +14584,12 @@ supports-preserve-symlinks-flag@^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@^2.7.0: +svg-parser@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" + integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== + +svgo@^2.7.0, svgo@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== @@ -11739,7 +14612,12 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: +tapable@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== @@ -11768,9 +14646,9 @@ tar@6.1.11: yallist "^4.0.0" tar@^6.1.11, tar@^6.1.2: - version "6.1.14" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.14.tgz#e87926bec1cfe7c9e783a77a79f3e81c1cfa3b66" - integrity sha512-piERznXu0U7/pW7cdSn7hjqySIVTYT6F76icmFk7ptU7dDYlXTm5r9A6K04R2vU3olYgoKeo1Cg3eeu5nhftAw== + version "6.1.15" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.15.tgz#c9738b0b98845a3b344d334b8fa3041aaba53a69" + integrity sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -11780,9 +14658,9 @@ tar@^6.1.11, tar@^6.1.2: yallist "^4.0.0" terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.3.3, terser-webpack-plugin@^5.3.7: - version "5.3.8" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.8.tgz#415e03d2508f7de63d59eca85c5d102838f06610" - integrity sha512-WiHL3ElchZMsK27P8uIUh4604IgJyAW47LVXGbEoB21DbQcZ+OuMpGjVYnEUaqcWM6dO8uS2qUbA7LSCWqvsbg== + 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" @@ -11800,13 +14678,13 @@ terser@5.15.1: commander "^2.20.0" source-map-support "~0.5.20" -terser@^5.16.8: - version "5.17.3" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.17.3.tgz#7f908f16b3cdf3f6c0f8338e6c1c674837f90d25" - integrity sha512-AudpAZKmZHkG9jueayypz4duuCFJMMNGRMwaPvQKWfxKedh8Z2x3OCoDqIIi1xx5+iwx1u6Au8XQcc9Lke65Yg== +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.2" - acorn "^8.5.0" + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" commander "^2.20.0" source-map-support "~0.5.20" @@ -11859,6 +14737,16 @@ thunky@^1.0.2: resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== +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: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -11904,6 +14792,11 @@ to-object-path@^0.3.0: dependencies: kind-of "^3.0.2" +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + 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" @@ -11916,10 +14809,15 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== +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== + tough-cookie@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874" - integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ== + version "4.1.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" + integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== dependencies: psl "^1.1.33" punycode "^2.1.1" @@ -11941,6 +14839,11 @@ tr46@^3.0.0: 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== + tree-kill@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" @@ -11951,6 +14854,21 @@ trim-newlines@^3.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== +trim-trailing-lines@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0" + integrity sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ== + +trim@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" + integrity sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ== + +trough@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" + integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== + ts-jest@29.1.0, ts-jest@^29.0.0: version "29.1.0" resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.1.0.tgz#4a9db4104a49b76d2b368ea775b6c9535c603891" @@ -11966,9 +14884,9 @@ ts-jest@29.1.0, ts-jest@^29.0.0: yargs-parser "^21.0.1" ts-loader@^9.3.1: - version "9.4.2" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.4.2.tgz#80a45eee92dd5170b900b3d00abcfa14949aeb78" - integrity sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA== + version "9.4.3" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.4.3.tgz#55cfa7c28dd82a2de968ae45c3adb75fb888b27e" + integrity sha512-n3hBnm6ozJYzwiwt5YRiJZkzktftRpMiBApHaJPoWLA+qetQBAXkHqCLM6nwSdRDimqVtA5ocIkcTRLMTt7yzA== dependencies: chalk "^4.1.0" enhanced-resolve "^5.0.0" @@ -12022,10 +14940,10 @@ tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" - integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0: + version "2.5.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" + integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== tsutils-etc@^1.4.1: version "1.4.2" @@ -12098,6 +15016,11 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== +type-fest@^2.5.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -12111,6 +15034,13 @@ typed-assert@^1.0.8: resolved "https://registry.yarnpkg.com/typed-assert/-/typed-assert-1.0.9.tgz#8af9d4f93432c4970ec717e3006f33f135b06213" integrity sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg== +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -12122,9 +15052,14 @@ typescript@4.8.4: integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== "typescript@^4.6.4 || ^5.0.0": - version "5.0.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b" - integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw== + version "5.1.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.3.tgz#8d84219244a6b40b6fb2b33cc1c062f715b9e826" + integrity sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw== + +ua-parser-js@^1.0.35: + version "1.0.35" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.35.tgz#c4ef44343bc3db0a3cbefdf21822f1b1fc1ab011" + integrity sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA== uglify-js@^3.1.4: version "3.17.4" @@ -12136,6 +15071,14 @@ unc-path-regex@^0.1.0: resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg== +unherit@^1.0.4: + version "1.1.3" + resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" + integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== + dependencies: + inherits "^2.0.0" + xtend "^4.0.0" + unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" @@ -12159,6 +15102,30 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== +unified@9.2.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8" + integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg== + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^2.0.0" + trough "^1.0.0" + vfile "^4.0.0" + +unified@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.2.tgz#67649a1abfc3ab85d2969502902775eb03146975" + integrity sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ== + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^2.0.0" + trough "^1.0.0" + vfile "^4.0.0" + union@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/union/-/union-0.5.0.tgz#b2c11be84f60538537b846edb9ba266ba0090075" @@ -12194,6 +15161,71 @@ unique-slug@^4.0.0: dependencies: imurmurhash "^0.1.4" +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +unist-builder@2.0.3, unist-builder@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" + integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw== + +unist-util-generated@^1.0.0: + version "1.1.6" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b" + integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg== + +unist-util-is@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" + integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== + +unist-util-position@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" + integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== + +unist-util-remove-position@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc" + integrity sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA== + dependencies: + unist-util-visit "^2.0.0" + +unist-util-remove@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unist-util-remove/-/unist-util-remove-2.1.0.tgz#b0b4738aa7ee445c402fda9328d604a02d010588" + integrity sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q== + dependencies: + unist-util-is "^4.0.0" + +unist-util-stringify-position@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" + integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== + dependencies: + "@types/unist" "^2.0.2" + +unist-util-visit-parents@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" + integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + +unist-util-visit@2.0.3, unist-util-visit@^2.0.0, unist-util-visit@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" + integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + unist-util-visit-parents "^3.0.0" + universalify@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" @@ -12214,7 +15246,7 @@ untildify@^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.10, update-browserslist-db@^1.0.9: +update-browserslist-db@^1.0.11, update-browserslist-db@^1.0.9: 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== @@ -12222,6 +15254,26 @@ update-browserslist-db@^1.0.10, update-browserslist-db@^1.0.9: escalade "^3.1.1" picocolors "^1.0.0" +update-notifier@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" + integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== + dependencies: + boxen "^5.0.0" + chalk "^4.1.0" + configstore "^5.0.1" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.4.0" + is-npm "^5.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.1.0" + pupa "^2.1.1" + semver "^7.3.4" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -12234,6 +15286,22 @@ url-join@^4.0.1: resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== +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" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ== + dependencies: + prepend-http "^2.0.0" + url-parse@^1.5.3: version "1.5.10" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" @@ -12242,11 +15310,43 @@ url-parse@^1.5.3: querystringify "^2.1.1" requires-port "^1.0.0" +use-composed-ref@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.3.0.tgz#3d8104db34b7b264030a9d916c5e94fbe280dbda" + integrity sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ== + +use-isomorphic-layout-effect@^1.1.1: + 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== + +use-latest@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/use-latest/-/use-latest-1.2.1.tgz#d13dfb4b08c28e3e33991546a2cee53e14038cf2" + integrity sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw== + dependencies: + use-isomorphic-layout-effect "^1.1.1" + +use-sync-external-store@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" + integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== + util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + +utility-types@^3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz#ea4148f9a741015f05ed74fd615e1d20e6bed82b" + integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== + utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" @@ -12298,6 +15398,11 @@ validate-npm-package-name@^5.0.0: dependencies: builtins "^5.0.0" +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" @@ -12312,6 +15417,29 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +vfile-location@^3.0.0, vfile-location@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c" + integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA== + +vfile-message@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" + integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^2.0.0" + +vfile@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" + integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^2.0.0" + vfile-message "^2.0.0" + vinyl@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" @@ -12328,6 +15456,17 @@ w3c-xmlserializer@^4.0.0: dependencies: xml-name-validator "^4.0.0" +wait-on@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-6.0.1.tgz#16bbc4d1e4ebdd41c5b4e63a2e16dbd1f4e5601e" + integrity sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw== + dependencies: + axios "^0.25.0" + joi "^17.6.0" + lodash "^4.17.21" + minimist "^1.2.5" + rxjs "^7.5.4" + walker@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" @@ -12357,11 +15496,37 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" +web-namespaces@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" + integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== + +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.5.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-dev-middleware@5.3.3, webpack-dev-middleware@^5.3.1: version "5.3.3" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz#efae67c2793908e7311f1d9b06f2a08dcc97e51f" @@ -12460,12 +15625,20 @@ webpack-merge@5.8.0: clone-deep "^4.0.1" wildcard "^2.0.0" +webpack-merge@^5.8.0: + 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-node-externals@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz#1a3407c158d547a9feb4229a9e3385b7b60c9917" integrity sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ== -webpack-sources@^3.0.0, webpack-sources@^3.2.3: +webpack-sources@^3.0.0, webpack-sources@^3.2.2, 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== @@ -12507,10 +15680,10 @@ webpack@5.75.0: watchpack "^2.4.0" webpack-sources "^3.2.3" -webpack@^5.80.0: - version "5.82.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.82.1.tgz#8f38c78e53467556e8a89054ebd3ef6e9f67dbab" - integrity sha512-C6uiGQJ+Gt4RyHXXYt+v9f+SN1v83x68URwgxNQ98cvH8kxiuywWGP4XeNZ1paOzZ63aY3cTciCEQJNFUljlLw== +webpack@^5.73.0, webpack@^5.80.0: + version "5.85.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.85.1.tgz#d77406352f8f14ec847c54e4dcfb80b28c776b3f" + integrity sha512-xTb7MRf4LY8Z5rzn7aIx4TDrwYJrjcHnIfU1TqtyZOoObyuGSpAUwIvVuqq5wPnv7WEgQr8UvO1q/dgoGG4HjA== dependencies: "@types/eslint-scope" "^3.7.3" "@types/estree" "^1.0.0" @@ -12518,10 +15691,10 @@ webpack@^5.80.0: "@webassemblyjs/wasm-edit" "^1.11.5" "@webassemblyjs/wasm-parser" "^1.11.5" acorn "^8.7.1" - acorn-import-assertions "^1.7.6" + acorn-import-assertions "^1.9.0" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.14.0" + enhanced-resolve "^5.14.1" es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" @@ -12537,6 +15710,16 @@ webpack@^5.80.0: watchpack "^2.4.0" webpack-sources "^3.2.3" +webpackbar@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-5.0.2.tgz#d3dd466211c73852741dfc842b7556dcbc2b0570" + integrity sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ== + dependencies: + chalk "^4.1.0" + consola "^2.15.3" + pretty-time "^1.1.0" + std-env "^3.0.1" + websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" @@ -12571,6 +15754,14 @@ whatwg-url@^11.0.0: 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" @@ -12604,7 +15795,7 @@ which-typed-array@^1.1.9: has-tostringtag "^1.0.0" is-typed-array "^1.1.10" -which@^1.2.12: +which@^1.2.12, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -12632,6 +15823,20 @@ wide-align@^1.1.5: dependencies: string-width "^1.0.2 || 2 || 3 || 4" +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + +widest-line@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-4.0.1.tgz#a0fc673aaba1ea6f0a0d35b3c2795c9a9cc2ebf2" + integrity sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig== + dependencies: + string-width "^5.0.1" + wildcard@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" @@ -12665,7 +15870,7 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^8.1.0: +wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== @@ -12679,6 +15884,16 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + write-file-atomic@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" @@ -12687,11 +15902,28 @@ write-file-atomic@^4.0.2: imurmurhash "^0.1.4" signal-exit "^3.0.7" +ws@^7.3.1: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + ws@^8.11.0, ws@^8.13.0, ws@^8.4.2: version "8.13.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + +xml-js@^1.6.11: + version "1.6.11" + resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" + integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== + dependencies: + sax "^1.2.4" + xml-name-validator@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" @@ -12702,7 +15934,7 @@ xmlchars@^2.2.0: resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -xtend@~4.0.1: +xtend@^4.0.0, xtend@^4.0.1, 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== @@ -12807,3 +16039,8 @@ zone.js@0.12.0: integrity sha512-XtC+I5dXU14HrzidAKBNMqneIVUykLEAA1x+v4KVrd6AUPWlwYORF8KgsVqvgdHiKZ4BkxxjvYi/ksEixTPR0Q== dependencies: tslib "^2.3.0" + +zwitch@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" + integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==