From 963250cbe0b12bc3f413b5138d6d4e33ad2a6353 Mon Sep 17 00:00:00 2001 From: tgreyuk Date: Tue, 14 Sep 2021 20:47:45 +0100 Subject: [PATCH] feat: TypeDoc 0.22 compatibility fixes (#249) --- package.json | 20 +- .../src/front-matter.ts | 116 - .../docusaurus-plugin-typedoc/src/render.ts | 123 +- .../docusaurus-plugin-typedoc/src/theme.ts | 184 +- .../docusaurus-plugin-typedoc/src/types.ts | 4 - .../test/site/package.json | 4 +- .../test/site/yarn.lock | 1139 ++++----- .../__snapshots__/front-matter.spec.ts.snap | 114 - .../test/specs/front-matter.spec.ts | 173 -- .../test/specs/theme.spec.ts | 12 +- packages/typedoc-hugo-theme/src/theme.ts | 2 +- packages/typedoc-plugin-markdown/package.json | 4 +- .../src/components/breadcrumbs.ts | 69 - .../src/components/comments.ts | 230 -- .../src/components/options.ts | 57 - .../src/components/toc.ts | 69 - .../typedoc-plugin-markdown/src/groups.ts | 23 + packages/typedoc-plugin-markdown/src/index.ts | 15 +- .../src/navigation-item.ts | 55 + .../src/render-utils.ts | 78 + .../src/resources/helpers/breadcrumbs.ts | 48 +- .../src/resources/helpers/comment.ts | 110 +- .../src/resources/helpers/comments.ts | 32 + .../resources/helpers/declaration-title.ts | 97 +- .../src/resources/helpers/escape.ts | 16 +- .../src/resources/helpers/hierarchy.ts | 42 +- .../resources/helpers/if-show-breadcrumbs.ts | 19 +- .../helpers/if-show-named-anchors.ts | 15 +- .../resources/helpers/if-show-page-title.ts | 19 +- .../src/resources/helpers/if-show-returns.ts | 16 +- .../helpers/if-show-type-hierarchy.ts | 25 +- .../helpers/index-signature-title.ts | 31 +- .../src/resources/helpers/member-symbol.ts | 20 - .../src/resources/helpers/parameter-table.ts | 74 +- .../src/resources/helpers/property-table.ts | 149 +- .../src/resources/helpers/reflection-path.ts | 51 +- .../src/resources/helpers/reflection-title.ts | 57 +- .../src/resources/helpers/relative-url.ts | 14 +- .../src/resources/helpers/signature-title.ts | 64 +- .../src/resources/helpers/spaces.ts | 3 - .../src/resources/helpers/strip-comments.ts | 6 - .../resources/helpers/strip-line-breaks.ts | 5 - .../src/resources/helpers/text.ts | 4 - .../src/resources/helpers/toc.ts | 57 +- .../src/resources/helpers/type-and-parent.ts | 87 +- .../resources/helpers/type-parameter-table.ts | 28 +- .../src/resources/helpers/type.ts | 258 +- .../src/resources/layouts/default.hbs | 1 - .../src/resources/partials/comment.hbs | 4 +- .../src/resources/partials/main.hbs | 2 +- .../resources/partials/member.signature.hbs | 4 +- .../src/resources/templates/index.hbs | 4 +- packages/typedoc-plugin-markdown/src/theme.ts | 299 +-- packages/typedoc-plugin-markdown/src/utils.ts | 61 + .../src/utils/front-matter.ts | 5 +- .../specs/__snapshots__/comments.spec.ts.snap | 6 +- .../__snapshots__/declarations.spec.ts.snap | 20 +- .../specs/__snapshots__/members.spec.ts.snap | 2 +- .../__snapshots__/signatures.spec.ts.snap | 4 +- .../specs/__snapshots__/theme.spec.ts.snap | 362 --- .../test/specs/plugin.spec.ts | 43 - .../test/specs/theme.spec.ts | 167 -- .../typedoc-plugin-markdown/test/test-app.ts | 7 +- .../src/front-matter.ts | 40 - .../vuepress-plugin-typedoc/src/plugin.ts | 8 +- .../vuepress-plugin-typedoc/src/sidebar.ts | 7 +- packages/vuepress-plugin-typedoc/src/theme.ts | 8 - yarn.lock | 2093 +++++++++++------ 68 files changed, 3413 insertions(+), 3572 deletions(-) delete mode 100644 packages/docusaurus-plugin-typedoc/src/front-matter.ts delete mode 100644 packages/docusaurus-plugin-typedoc/test/specs/__snapshots__/front-matter.spec.ts.snap delete mode 100644 packages/docusaurus-plugin-typedoc/test/specs/front-matter.spec.ts delete mode 100644 packages/typedoc-plugin-markdown/src/components/breadcrumbs.ts delete mode 100644 packages/typedoc-plugin-markdown/src/components/comments.ts delete mode 100644 packages/typedoc-plugin-markdown/src/components/options.ts delete mode 100644 packages/typedoc-plugin-markdown/src/components/toc.ts create mode 100644 packages/typedoc-plugin-markdown/src/groups.ts create mode 100644 packages/typedoc-plugin-markdown/src/navigation-item.ts create mode 100644 packages/typedoc-plugin-markdown/src/render-utils.ts create mode 100644 packages/typedoc-plugin-markdown/src/resources/helpers/comments.ts delete mode 100644 packages/typedoc-plugin-markdown/src/resources/helpers/member-symbol.ts delete mode 100644 packages/typedoc-plugin-markdown/src/resources/helpers/spaces.ts delete mode 100644 packages/typedoc-plugin-markdown/src/resources/helpers/strip-comments.ts delete mode 100644 packages/typedoc-plugin-markdown/src/resources/helpers/strip-line-breaks.ts delete mode 100644 packages/typedoc-plugin-markdown/src/resources/helpers/text.ts delete mode 100755 packages/typedoc-plugin-markdown/src/resources/layouts/default.hbs create mode 100644 packages/typedoc-plugin-markdown/src/utils.ts delete mode 100644 packages/typedoc-plugin-markdown/test/specs/__snapshots__/theme.spec.ts.snap delete mode 100644 packages/typedoc-plugin-markdown/test/specs/plugin.spec.ts delete mode 100644 packages/typedoc-plugin-markdown/test/specs/theme.spec.ts delete mode 100644 packages/vuepress-plugin-typedoc/src/front-matter.ts delete mode 100644 packages/vuepress-plugin-typedoc/src/theme.ts diff --git a/package.json b/package.json index 7497fb0f4..542d65517 100644 --- a/package.json +++ b/package.json @@ -21,24 +21,24 @@ "devDependencies": { "@types/fs-extra": "^9.0.12", "@types/jest": "^26.0.24", - "@types/node": "^16.3.1", - "@types/progress": "^2.0.4", + "@types/node": "^16.9.1", + "@types/progress": "^2.0.5", "@types/tmp": "^0.2.1", - "@typescript-eslint/eslint-plugin": "^4.28.2", - "@typescript-eslint/parser": "^4.28.2", + "@typescript-eslint/eslint-plugin": "^4.31.0", + "@typescript-eslint/parser": "^4.31.0", "copyfiles": "^2.4.1", "cuid": "^2.1.8", - "eslint": "^7.30.0", + "eslint": "^7.32.0", "fs-extra": "^10.0.0", "jest": "^26.6.3", "lerna": "^4.0.0", - "markdownlint": "^0.23.1", - "markdownlint-cli": "^0.27.1", + "markdownlint": "^0.24.0", + "markdownlint-cli": "^0.28.1", "npm-run-all": "^4.1.5", - "prettier": "^2.3.2", + "prettier": "^2.4.0", "tmp": "^0.2.1", "ts-jest": "^26.5.5", - "typedoc": "^0.21.4", - "typescript": "^4.3.5" + "typedoc": "^0.22.3", + "typescript": "^4.4.3" } } diff --git a/packages/docusaurus-plugin-typedoc/src/front-matter.ts b/packages/docusaurus-plugin-typedoc/src/front-matter.ts deleted file mode 100644 index 75e3c7b36..000000000 --- a/packages/docusaurus-plugin-typedoc/src/front-matter.ts +++ /dev/null @@ -1,116 +0,0 @@ -import * as path from 'path'; - -import { BindOption } from 'typedoc'; -import { - getPageTitle, - prependYAML, -} from 'typedoc-plugin-markdown/dist/utils/front-matter'; -import { Component } from 'typedoc/dist/lib/converter/components'; -import { RendererComponent } from 'typedoc/dist/lib/output/components'; -import { PageEvent } from 'typedoc/dist/lib/output/events'; - -import { FrontMatter, Sidebar } from './types'; - -@Component({ name: 'front-matter' }) -export class FrontMatterComponent extends RendererComponent { - @BindOption('out') - out!: string; - @BindOption('docsRoot') - docsRoot!: string; - @BindOption('sidebar') - sidebar!: Sidebar; - @BindOption('globalsTitle') - globalsTitle!: string; - @BindOption('readmeTitle') - readmeTitle!: string; - @BindOption('entryPoints') - entryPoints!: string[]; - - entryDocument = 'index.md'; - globalsFile = 'modules.md'; - - initialize() { - super.initialize(); - this.listenTo(this.application.renderer, { - [PageEvent.END]: this.onPageEnd, - }); - } - onPageEnd(page: PageEvent) { - if (page.contents) { - page.contents = prependYAML(page.contents, this.getYamlItems(page)); - } - } - - getYamlItems(page: PageEvent): any { - const pageId = this.getId(page); - const pageTitle = this.getTitle(page); - const sidebarLabel = this.getSidebarLabel(page); - const sidebarPosition = this.getSidebarPosition(page); - let items: FrontMatter = { - id: pageId, - title: pageTitle, - }; - if (page.url === this.entryDocument) { - items = { - ...items, - slug: '/' + path.relative(process.cwd(), this.out).replace(/\\/g, '/'), - }; - } - if (sidebarLabel && sidebarLabel !== pageTitle) { - items = { ...items, sidebar_label: sidebarLabel }; - } - if (sidebarPosition) { - items = { ...items, sidebar_position: parseFloat(sidebarPosition) }; - } - if (page.url === page.project.url && this.entryPoints.length > 1) { - items = { ...items, hide_table_of_contents: true }; - } - return { - ...items, - custom_edit_url: null, - }; - } - - getSidebarLabel(page: PageEvent) { - const indexLabel = - this.sidebar.indexLabel || - (this.entryPoints.length > 1 ? 'Table of contents' : 'Exports'); - - if (page.url === this.entryDocument) { - return page.url === page.project.url - ? indexLabel - : this.sidebar.readmeLabel; - } - - if (page.url === this.globalsFile) { - return indexLabel; - } - - return this.sidebar.fullNames ? page.model.getFullName() : page.model.name; - } - - getSidebarPosition(page: PageEvent) { - if (page.url === this.entryDocument) { - return page.url === page.project.url ? '0.5' : '0'; - } - if (page.url === this.globalsFile) { - return '0.5'; - } - if (page.model.getFullName().split('.').length === 1) { - return '0'; - } - return null; - } - - getId(page: PageEvent) { - return path.basename(page.url, path.extname(page.url)); - } - - getTitle(page: PageEvent) { - const readmeTitle = this.readmeTitle || page.project.name; - if (page.url === this.entryDocument && page.url !== page.project.url) { - return readmeTitle; - } - return getPageTitle(page); - } -} diff --git a/packages/docusaurus-plugin-typedoc/src/render.ts b/packages/docusaurus-plugin-typedoc/src/render.ts index f8c08069b..6a3d2f9a8 100644 --- a/packages/docusaurus-plugin-typedoc/src/render.ts +++ b/packages/docusaurus-plugin-typedoc/src/render.ts @@ -1,144 +1,23 @@ -import * as fs from 'fs'; - -import ProgressBar from 'progress'; import { Application, MixedDeclarationOption, ParameterType, - ProjectReflection, - ReflectionKind, StringDeclarationOption, TSConfigReader, TypeDocReader, - UrlMapping, } from 'typedoc'; -import { GroupPlugin } from 'typedoc/dist/lib/converter/plugins'; -import { RendererEvent } from 'typedoc/dist/lib/output/events'; -import { TemplateMapping } from 'typedoc/dist/lib/output/themes/DefaultTheme'; import { getPluginOptions } from './options'; -import { PluginOptions } from './types'; -const CATEGORY_POSITION = { - [ReflectionKind.Module]: 1, - [ReflectionKind.Namespace]: 1, - [ReflectionKind.Enum]: 2, - [ReflectionKind.Class]: 3, - [ReflectionKind.Interface]: 4, - [ReflectionKind.TypeAlias]: 5, - [ReflectionKind.Variable]: 6, - [ReflectionKind.Function]: 7, - [ReflectionKind.ObjectLiteral]: 8, -}; +import { PluginOptions } from './types'; export const bootstrap = (app: Application, opts: Partial) => { addTypedocReaders(app); addTypedocDeclarations(app); - app.renderer.render = render; app.bootstrap({ ...getPluginOptions(opts) }); return app.options.getRawValues() as PluginOptions; }; -async function render(project: ProjectReflection, outputDirectory: string) { - if ( - !this.prepareTheme() || - !isOutputDirectory(this.application, outputDirectory) - ) { - return; - } - - const output = new RendererEvent( - RendererEvent.BEGIN, - outputDirectory, - project, - ); - - const options: PluginOptions = this.application.options.getRawValues(); - - output.settings = options; - output.urls = this.theme!.getUrls(project); - - if (output.urls) { - const bar = new ProgressBar('Rendering [:bar] :percent', { - total: output.urls.length, - width: 40, - }); - this.trigger(output); - if (!output.isDefaultPrevented) { - output.urls?.forEach((mapping: UrlMapping, i) => { - this.renderDocument(output.createPageEvent(mapping)); - bar.tick(); - }); - this.trigger(RendererEvent.END, output); - } - - writeCategoryYaml( - outputDirectory, - options.sidebar.categoryLabel, - options.sidebar.position, - ); - - Object.keys(groupUrlsByKind(output.urls)).forEach((group) => { - const kind = parseInt(group); - const mapping = this.theme.mappings.find((mapping: TemplateMapping) => - mapping.kind.includes(kind), - ); - if (mapping) { - writeCategoryYaml( - outputDirectory + '/' + mapping.directory, - GroupPlugin.getKindPlural(kind), - CATEGORY_POSITION[kind], - ); - } - }); - } -} - -const isOutputDirectory = (app: Application, outputDirectory: string) => { - const options = app.options.getRawValues() as PluginOptions; - if (options.disableOutputCheck) { - return true; - } - - if (!fs.existsSync(outputDirectory)) { - return true; - } - - if (app.renderer.theme!.isOutputDirectory(outputDirectory)) { - if (fs.existsSync(outputDirectory)) { - fs.rmdirSync(outputDirectory, { recursive: true }); - } - return true; - } else { - app.logger.error( - `The output directory "${outputDirectory}" exists but does not seem to be a documentation generated by TypeDoc.\n` + - 'Make sure this is the right target directory, delete the folder and rerun TypeDoc.', - ); - return false; - } -}; - -const writeCategoryYaml = ( - categoryPath: string, - label: string, - position: number | null, -) => { - const yaml: string[] = [`label: "${label}"`]; - if (position !== null) { - yaml.push(`position: ${position}`); - } - if (fs.existsSync(categoryPath)) { - fs.writeFileSync(categoryPath + '/_category_.yml', yaml.join('\n')); - } -}; - -const groupUrlsByKind = (urls: UrlMapping[]) => { - return urls.reduce( - (r, v, i, a, k = v.model.kind) => ((r[k] || (r[k] = [])).push(v), r), - {}, - ); -}; - const addTypedocReaders = (app: Application) => { app.options.addReader(new TypeDocReader()); app.options.addReader(new TSConfigReader()); diff --git a/packages/docusaurus-plugin-typedoc/src/theme.ts b/packages/docusaurus-plugin-typedoc/src/theme.ts index 870878395..c74219985 100644 --- a/packages/docusaurus-plugin-typedoc/src/theme.ts +++ b/packages/docusaurus-plugin-typedoc/src/theme.ts @@ -1,17 +1,156 @@ -import { ReflectionKind } from 'typedoc'; -import MarkdownTheme from 'typedoc-plugin-markdown/dist/theme'; -import { Renderer } from 'typedoc/dist/lib/output/renderer'; +import { + BindOption, + DeclarationReflection, + PageEvent, + ReflectionKind, + Renderer, + RendererEvent, + UrlMapping, +} from 'typedoc'; +import * as fs from 'fs'; +import { MarkdownTheme } from 'typedoc-plugin-markdown/dist/theme'; +import { getKindPlural } from 'typedoc-plugin-markdown/dist/groups'; +import * as path from 'path'; -import { FrontMatterComponent } from './front-matter'; +import { FrontMatter, SidebarOptions } from './types'; +import { + getPageTitle, + prependYAML, +} from 'typedoc-plugin-markdown/dist/utils/front-matter'; -export default class DocusaurusTheme extends MarkdownTheme { - constructor(renderer: Renderer, basePath: string) { - super(renderer, basePath); - renderer.addComponent('fm', new FrontMatterComponent(renderer)); +const CATEGORY_POSITION = { + [ReflectionKind.Module]: 1, + [ReflectionKind.Namespace]: 1, + [ReflectionKind.Enum]: 2, + [ReflectionKind.Class]: 3, + [ReflectionKind.Interface]: 4, + [ReflectionKind.TypeAlias]: 5, + [ReflectionKind.Variable]: 6, + [ReflectionKind.Function]: 7, + [ReflectionKind.ObjectLiteral]: 8, +}; + +export class DocusaurusTheme extends MarkdownTheme { + @BindOption('sidebar') + sidebar!: SidebarOptions; + + @BindOption('readmeTitle') + readmeTitle!: string; + + constructor(renderer: Renderer) { + super(renderer); + + this.listenTo(this.application.renderer, { + [PageEvent.END]: this.onPageEnd, + [RendererEvent.END]: this.onRendererEnd, + }); + } + + getRelativeUrl(url: string) { + return super.getRelativeUrl(url).replace(/.md/g, ''); } - allowedDirectoryListings() { - return [...super.allowedDirectoryListings(), ...['_category_.yml']]; + onPageEnd(page: PageEvent) { + if (page.contents) { + page.contents = prependYAML(page.contents, this.getYamlItems(page)); + } + } + + onRendererEnd(renderer: RendererEvent) { + writeCategoryYaml( + renderer.outputDirectory, + this.sidebar.categoryLabel, + this.sidebar.position, + ); + + Object.keys(groupUrlsByKind(this.getUrls(renderer.project))).forEach( + (group) => { + const kind = parseInt(group); + const mapping = this.mappings.find((mapping) => + mapping.kind.includes(kind), + ); + if (mapping) { + writeCategoryYaml( + renderer.outputDirectory + '/' + mapping.directory, + getKindPlural(kind), + CATEGORY_POSITION[kind], + ); + } + }, + ); + } + + getYamlItems(page: PageEvent): any { + const pageId = this.getId(page); + const pageTitle = this.getTitle(page); + const sidebarLabel = this.getSidebarLabel(page); + const sidebarPosition = this.getSidebarPosition(page); + let items: FrontMatter = { + id: pageId, + title: pageTitle, + }; + if (page.url === this.entryDocument) { + items = { + ...items, + slug: '/' + path.relative(process.cwd(), this.out).replace(/\\/g, '/'), + }; + } + if (sidebarLabel && sidebarLabel !== pageTitle) { + items = { ...items, sidebar_label: sidebarLabel as string }; + } + if (sidebarPosition) { + items = { ...items, sidebar_position: parseFloat(sidebarPosition) }; + } + if (page.url === page.project.url && this.entryPoints.length > 1) { + items = { ...items, hide_table_of_contents: true }; + } + return { + ...items, + custom_edit_url: null, + }; + } + + getSidebarLabel(page: PageEvent) { + const indexLabel = + this.sidebar.indexLabel || + (this.entryPoints.length > 1 ? 'Table of contents' : 'Exports'); + + if (page.url === this.entryDocument) { + return page.url === page.project.url + ? indexLabel + : this.sidebar.readmeLabel; + } + + if (page.url === this.globalsFile) { + return indexLabel; + } + + return this.sidebar.fullNames ? page.model.getFullName() : page.model.name; + } + + getSidebarPosition(page: PageEvent) { + if (page.url === this.entryDocument) { + return page.url === page.project.url ? '0.5' : '0'; + } + if (page.url === this.globalsFile) { + return '0.5'; + } + if (page.model.getFullName().split('.').length === 1) { + return '0'; + } + return null; + } + + getId(page: PageEvent) { + return path.basename(page.url, path.extname(page.url)); + } + + getTitle(page: PageEvent) { + const readmeTitle = this.readmeTitle || page.project.name; + if (page.url === this.entryDocument && page.url !== page.project.url) { + return readmeTitle; + } + return getPageTitle(page); } get mappings() { @@ -25,4 +164,29 @@ export default class DocusaurusTheme extends MarkdownTheme { return mapping; }); } + + get globalsFile() { + return 'modules.md'; + } } + +const writeCategoryYaml = ( + categoryPath: string, + label: string, + position: number | null, +) => { + const yaml: string[] = [`label: "${label}"`]; + if (position !== null) { + yaml.push(`position: ${position}`); + } + if (fs.existsSync(categoryPath)) { + fs.writeFileSync(categoryPath + '/_category_.yml', yaml.join('\n')); + } +}; + +const groupUrlsByKind = (urls: UrlMapping[]) => { + return urls.reduce( + (r, v, i, a, k = v.model.kind) => ((r[k] || (r[k] = [])).push(v), r), + {}, + ); +}; diff --git a/packages/docusaurus-plugin-typedoc/src/types.ts b/packages/docusaurus-plugin-typedoc/src/types.ts index c36b20435..25875fb35 100644 --- a/packages/docusaurus-plugin-typedoc/src/types.ts +++ b/packages/docusaurus-plugin-typedoc/src/types.ts @@ -35,10 +35,6 @@ export interface SidebarOptions { position: number | null; } -export interface Sidebar { - [sidebarId: string]: SidebarItem[]; -} - export interface SidebarCategory { type: string; label: string; diff --git a/packages/docusaurus-plugin-typedoc/test/site/package.json b/packages/docusaurus-plugin-typedoc/test/site/package.json index 5aac74a13..1474e7517 100644 --- a/packages/docusaurus-plugin-typedoc/test/site/package.json +++ b/packages/docusaurus-plugin-typedoc/test/site/package.json @@ -12,8 +12,8 @@ "clear": "docusaurus clear" }, "dependencies": { - "@docusaurus/core": "2.0.0-beta.0", - "@docusaurus/preset-classic": "2.0.0-beta.0", + "@docusaurus/core": "2.0.0-beta.6", + "@docusaurus/preset-classic": "2.0.0-beta.6", "@mdx-js/react": "^1.6.22", "clsx": "^1.1.1", "react": "^17.0.2", diff --git a/packages/docusaurus-plugin-typedoc/test/site/yarn.lock b/packages/docusaurus-plugin-typedoc/test/site/yarn.lock index a805e4cb6..e00924cb6 100644 --- a/packages/docusaurus-plugin-typedoc/test/site/yarn.lock +++ b/packages/docusaurus-plugin-typedoc/test/site/yarn.lock @@ -2,24 +2,24 @@ # yarn lockfile v1 -"@algolia/autocomplete-core@1.0.0-alpha.44": - version "1.0.0-alpha.44" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.0.0-alpha.44.tgz#e626dba45f5f3950d6beb0ab055395ef0f7e8bb2" - integrity sha512-2iMXthldMIDXtlbg9omRKLgg1bLo2ZzINAEqwhNjUeyj1ceEyL1ck6FY0VnJpf2LsjmNthHCz2BuFk+nYUeDNA== +"@algolia/autocomplete-core@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.2.2.tgz#c121e70c78fd0175c989a219918124ad7758e48b" + integrity sha512-JOQaURze45qVa8OOFDh+ozj2a/ObSRsVyz6Zd0aiBeej+RSTqrr1hDVpGNbbXYLW26G5ujuc9QIdH+rBHn95nw== dependencies: - "@algolia/autocomplete-shared" "1.0.0-alpha.44" + "@algolia/autocomplete-shared" "1.2.2" -"@algolia/autocomplete-preset-algolia@1.0.0-alpha.44": - version "1.0.0-alpha.44" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.0.0-alpha.44.tgz#0ea0b255d0be10fbe262e281472dd6e4619b62ba" - integrity sha512-DCHwo5ovzg9k2ejUolGNTLFnIA7GpsrkbNJTy1sFbMnYfBmeK8egZPZnEl7lBTr27OaZu7IkWpTepLVSztZyng== +"@algolia/autocomplete-preset-algolia@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.2.2.tgz#da734ef9e42a5f64cdad2dfc81c4e9fbf805d976" + integrity sha512-AZkh+bAMaJDzMZTelFOXJTJqkp5VPGH8W3n0B+Ggce7DdozlMRsDLguKTCQAkZ0dJ1EbBPyFL5ztL/JImB137Q== dependencies: - "@algolia/autocomplete-shared" "1.0.0-alpha.44" + "@algolia/autocomplete-shared" "1.2.2" -"@algolia/autocomplete-shared@1.0.0-alpha.44": - version "1.0.0-alpha.44" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.0.0-alpha.44.tgz#db13902ad1667e455711b77d08cae1a0feafaa48" - integrity sha512-2oQZPERYV+yNx/yoVWYjZZdOqsitJ5dfxXJjL18yczOXH6ujnsq+DTczSrX+RjzjQdVeJ1UAG053EJQF/FOiMg== +"@algolia/autocomplete-shared@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.2.2.tgz#ff25dc308f2a296b2b9b325f1e3b57498eea3e0c" + integrity sha512-mLTl7d2C1xVVazHt/bqh9EE/u2lbp5YOxLDdcjILXmUqOs5HH1D4SuySblXaQG1uf28FhTqMGp35qE5wJQnqAw== "@algolia/cache-browser-local-storage@4.9.3": version "4.9.3" @@ -1145,25 +1145,25 @@ "@babel/helper-validator-identifier" "^7.14.5" to-fast-properties "^2.0.0" -"@docsearch/css@3.0.0-alpha.36": - version "3.0.0-alpha.36" - resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.0.0-alpha.36.tgz#0af69a86b845974d0f8cab62db0218f66b6ad2d6" - integrity sha512-zSN2SXuZPDqQaSFzYa1kOwToukqzhLHG7c66iO+/PlmWb6/RZ5cjTkG6VCJynlohRWea7AqZKWS/ptm8kM2Dmg== +"@docsearch/css@3.0.0-alpha.40": + version "3.0.0-alpha.40" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.0.0-alpha.40.tgz#c37bd7b03f4c30a6ea7a19b87fe71880d2e8b22a" + integrity sha512-PrOTPgJMl+Iji1zOH0+J0PEDMriJ1teGxbgll7o4h8JrvJW6sJGqQw7/bLW7enWiFaxbJMK76w1yyPNLFHV7Qg== -"@docsearch/react@^3.0.0-alpha.33": - version "3.0.0-alpha.36" - resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.0.0-alpha.36.tgz#f2dbd53ba9c389bc19aea89a3ad21782fa6b4bb5" - integrity sha512-synYZDHalvMzesFiy7kK+uoz4oTdWSTbe2cU+iiUjwFMyQ+WWjWwGVnvcvk+cjj9pRCVaZo5y5WpqNXq1j8k9Q== +"@docsearch/react@^3.0.0-alpha.39": + version "3.0.0-alpha.40" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.0.0-alpha.40.tgz#d912b4bb7281cb0faf65590c9cf022aa2a13d823" + integrity sha512-aKxnu7sgpP1R7jtgOV/pZdJEHXx6Ts+jnS9U/ejSUS2BMUpwQI5SA3oLs1BA5TA9kIViJ5E+rrjh0VsbcsJ6sQ== dependencies: - "@algolia/autocomplete-core" "1.0.0-alpha.44" - "@algolia/autocomplete-preset-algolia" "1.0.0-alpha.44" - "@docsearch/css" "3.0.0-alpha.36" + "@algolia/autocomplete-core" "1.2.2" + "@algolia/autocomplete-preset-algolia" "1.2.2" + "@docsearch/css" "3.0.0-alpha.40" algoliasearch "^4.0.0" -"@docusaurus/core@2.0.0-beta.0": - version "2.0.0-beta.0" - resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-2.0.0-beta.0.tgz#05506ee02e7d40e9f4c8d7b4f918d26d3b191159" - integrity sha512-xWwpuEwFRKJmZvNGOpr/dyRDnx/psckLPsozQTg2hu3u81Wqu9gigWgYK/C2fPlEjxMcVw0/2WH+zwpbyWmF2Q== +"@docusaurus/core@2.0.0-beta.6": + version "2.0.0-beta.6" + resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-2.0.0-beta.6.tgz#9847ae211a04f1d2b057f8e5ba650e76b9c2df83" + integrity sha512-XMeI+lJKeJBGYBNOfO/Tc+5FMf21E5p1xZjfe75cgYcfZdERZ+W7aemXquwReno8xxHb4Rnfmi9dxkbOLDjqDA== dependencies: "@babel/core" "^7.12.16" "@babel/generator" "^7.12.15" @@ -1175,47 +1175,49 @@ "@babel/runtime" "^7.12.5" "@babel/runtime-corejs3" "^7.12.13" "@babel/traverse" "^7.12.13" - "@docusaurus/cssnano-preset" "2.0.0-beta.0" + "@docusaurus/cssnano-preset" "2.0.0-beta.6" "@docusaurus/react-loadable" "5.5.0" - "@docusaurus/types" "2.0.0-beta.0" - "@docusaurus/utils" "2.0.0-beta.0" - "@docusaurus/utils-validation" "2.0.0-beta.0" - "@endiliey/static-site-generator-webpack-plugin" "^4.0.0" + "@docusaurus/types" "2.0.0-beta.6" + "@docusaurus/utils" "2.0.0-beta.6" + "@docusaurus/utils-common" "2.0.0-beta.6" + "@docusaurus/utils-validation" "2.0.0-beta.6" + "@slorber/static-site-generator-webpack-plugin" "^4.0.0" "@svgr/webpack" "^5.5.0" autoprefixer "^10.2.5" babel-loader "^8.2.2" babel-plugin-dynamic-import-node "2.3.0" - boxen "^5.0.0" - chalk "^4.1.0" + boxen "^5.0.1" + chalk "^4.1.1" chokidar "^3.5.1" - clean-css "^5.1.1" + clean-css "^5.1.5" commander "^5.1.0" - copy-webpack-plugin "^8.1.0" + copy-webpack-plugin "^9.0.0" core-js "^3.9.1" css-loader "^5.1.1" - css-minimizer-webpack-plugin "^2.0.0" - cssnano "^5.0.1" + css-minimizer-webpack-plugin "^3.0.1" + cssnano "^5.0.4" del "^6.0.0" detect-port "^1.3.0" + escape-html "^1.0.3" eta "^1.12.1" express "^4.17.1" file-loader "^6.2.0" - fs-extra "^9.1.0" + fs-extra "^10.0.0" github-slugger "^1.3.0" globby "^11.0.2" html-minifier-terser "^5.1.1" html-tags "^3.1.0" - html-webpack-plugin "^5.2.0" + html-webpack-plugin "^5.3.2" import-fresh "^3.3.0" is-root "^2.1.0" leven "^3.1.0" lodash "^4.17.20" - mini-css-extract-plugin "^1.4.0" + mini-css-extract-plugin "^1.6.0" module-alias "^2.2.2" nprogress "^0.2.0" - postcss "^8.2.10" - postcss-loader "^5.2.0" - prompts "^2.4.0" + postcss "^8.2.15" + postcss-loader "^5.3.0" + prompts "^2.4.1" react-dev-utils "^11.0.1" react-error-overlay "^6.0.9" react-helmet "^6.1.0" @@ -1224,91 +1226,96 @@ react-router "^5.2.0" react-router-config "^5.1.1" react-router-dom "^5.2.0" + remark-admonitions "^1.2.1" resolve-pathname "^3.0.0" - rtl-detect "^1.0.2" + rtl-detect "^1.0.3" semver "^7.3.4" serve-handler "^6.1.3" shelljs "^0.8.4" std-env "^2.2.1" strip-ansi "^6.0.0" - terser-webpack-plugin "^5.1.1" - tslib "^2.1.0" + terser-webpack-plugin "^5.1.3" + tslib "^2.2.0" update-notifier "^5.1.0" url-loader "^4.1.1" - wait-on "^5.2.1" - webpack "^5.28.0" - webpack-bundle-analyzer "^4.4.0" + wait-on "^5.3.0" + webpack "^5.40.0" + webpack-bundle-analyzer "^4.4.2" webpack-dev-server "^3.11.2" - webpack-merge "^5.7.3" + webpack-merge "^5.8.0" webpackbar "^5.0.0-3" -"@docusaurus/cssnano-preset@2.0.0-beta.0": - version "2.0.0-beta.0" - resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-beta.0.tgz#a79223479666059565d60a505bed2bbcac770384" - integrity sha512-gqQHeQCDHZDd5NaiKZwDiyg75sBCqDyAsvmFukkDAty8xE7u9IhzbOQKvCAtwseuvzu2BNN41gnJ8bz7vZzQiw== +"@docusaurus/cssnano-preset@2.0.0-beta.6": + version "2.0.0-beta.6" + resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-beta.6.tgz#0c277854f0262dca7bcb3daf99866e8a49e29118" + integrity sha512-RCizp2NAbADopkX5nUz1xrAbU6hGZzziQk9RdSDGJLzMgVCN6RDotq9odS8VgzNa9x2Lx3WN527UxeEbzc2GVQ== dependencies: - cssnano-preset-advanced "^5.0.0" - postcss "^8.2.10" - postcss-sort-media-queries "^3.8.9" + cssnano-preset-advanced "^5.1.1" + postcss "^8.2.15" + postcss-sort-media-queries "^3.10.11" -"@docusaurus/mdx-loader@2.0.0-beta.0": - version "2.0.0-beta.0" - resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-beta.0.tgz#7a58933994b2face62e34698db2f9c88c53c6d61" - integrity sha512-oQLS2ZeUnqw79CV37glglZpaYgFfA5Az5lT83m5tJfMUZjoK4ehG1XWBeUzWy8QQNI452yAID8jz8jihEQeCcw== +"@docusaurus/mdx-loader@2.0.0-beta.6": + version "2.0.0-beta.6" + resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-beta.6.tgz#a5aeee5be0d04bb273752c893366cc6cffeb2b32" + integrity sha512-yO6N+OESR77WZ/pXz7muOJGLletYYksx7s7wrwrr0x+A8tzdSwiHZ9op0NyjjpW5AnItU/WQQfcjv37qv4K6HA== dependencies: "@babel/parser" "^7.12.16" "@babel/traverse" "^7.12.13" - "@docusaurus/core" "2.0.0-beta.0" - "@docusaurus/utils" "2.0.0-beta.0" + "@docusaurus/core" "2.0.0-beta.6" + "@docusaurus/utils" "2.0.0-beta.6" "@mdx-js/mdx" "^1.6.21" "@mdx-js/react" "^1.6.21" + chalk "^4.1.1" escape-html "^1.0.3" file-loader "^6.2.0" - fs-extra "^9.1.0" + fs-extra "^10.0.0" github-slugger "^1.3.0" - gray-matter "^4.0.2" + gray-matter "^4.0.3" mdast-util-to-string "^2.0.0" remark-emoji "^2.1.0" stringify-object "^3.3.0" unist-util-visit "^2.0.2" url-loader "^4.1.1" - webpack "^5.28.0" - -"@docusaurus/plugin-content-blog@2.0.0-beta.0": - version "2.0.0-beta.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-beta.0.tgz#ea7d3679ab252e8f0e58aaf80f1fc6001c72c755" - integrity sha512-lz63i5k/23RJ3Rk/2fIsYAoD8Wua3b5b0AbH2JoOhQu1iAIQiV8m91Z3XALBSzA3nBtAOIweNI7yzWL+JFSTvw== - dependencies: - "@docusaurus/core" "2.0.0-beta.0" - "@docusaurus/mdx-loader" "2.0.0-beta.0" - "@docusaurus/types" "2.0.0-beta.0" - "@docusaurus/utils" "2.0.0-beta.0" - "@docusaurus/utils-validation" "2.0.0-beta.0" - chalk "^4.1.0" + webpack "^5.40.0" + +"@docusaurus/plugin-content-blog@2.0.0-beta.6": + version "2.0.0-beta.6" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-beta.6.tgz#54ae1c96a8e95dbc58484157c259e8aaf47a3fcb" + integrity sha512-ohfMt7+rPiFQImc4Clpvc9m/1yWUQAjpG3e/coJywlJYbDXvi1pmH0VKkDUMBSe/35Wtz9457DYgNFG81lhV7Q== + dependencies: + "@docusaurus/core" "2.0.0-beta.6" + "@docusaurus/mdx-loader" "2.0.0-beta.6" + "@docusaurus/types" "2.0.0-beta.6" + "@docusaurus/utils" "2.0.0-beta.6" + "@docusaurus/utils-validation" "2.0.0-beta.6" + chalk "^4.1.1" + escape-string-regexp "^4.0.0" feed "^4.2.2" - fs-extra "^9.1.0" + fs-extra "^10.0.0" globby "^11.0.2" + js-yaml "^4.0.0" loader-utils "^2.0.0" lodash "^4.17.20" reading-time "^1.3.0" remark-admonitions "^1.2.1" - tslib "^2.1.0" - webpack "^5.28.0" - -"@docusaurus/plugin-content-docs@2.0.0-beta.0": - version "2.0.0-beta.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-beta.0.tgz#a5a1e0e95e499eefee53e4f61aeb99ac4a669648" - integrity sha512-WdDQUh2rRCbfJswVc0vY9EaAspxgziqpVEZja8+BmQR/TZh7HuLplT6GJbiFbE4RvwM3+PwG/jHMPglYDK60kw== - dependencies: - "@docusaurus/core" "2.0.0-beta.0" - "@docusaurus/mdx-loader" "2.0.0-beta.0" - "@docusaurus/types" "2.0.0-beta.0" - "@docusaurus/utils" "2.0.0-beta.0" - "@docusaurus/utils-validation" "2.0.0-beta.0" - chalk "^4.1.0" + tslib "^2.2.0" + webpack "^5.40.0" + +"@docusaurus/plugin-content-docs@2.0.0-beta.6": + version "2.0.0-beta.6" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-beta.6.tgz#38fd58e42fe39e2a0cc738df077917a6fcd4e7ee" + integrity sha512-cM5WWogWmX+qKPKv332eDWGRVVT5OjskbmFKe2QimwoaON3Cv6XY8Fo2xdYopqGIU0r0z8dVtRmoGS0ji7zB7w== + dependencies: + "@docusaurus/core" "2.0.0-beta.6" + "@docusaurus/mdx-loader" "2.0.0-beta.6" + "@docusaurus/types" "2.0.0-beta.6" + "@docusaurus/utils" "2.0.0-beta.6" + "@docusaurus/utils-validation" "2.0.0-beta.6" + chalk "^4.1.1" combine-promises "^1.1.0" + escape-string-regexp "^4.0.0" execa "^5.0.0" - fs-extra "^9.1.0" + fs-extra "^10.0.0" globby "^11.0.2" import-fresh "^3.2.2" js-yaml "^4.0.0" @@ -1316,81 +1323,81 @@ lodash "^4.17.20" remark-admonitions "^1.2.1" shelljs "^0.8.4" - tslib "^2.1.0" + tslib "^2.2.0" utility-types "^3.10.0" - webpack "^5.28.0" - -"@docusaurus/plugin-content-pages@2.0.0-beta.0": - version "2.0.0-beta.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-beta.0.tgz#1cab3ebe0a08be74576f10c95675291bf84f848e" - integrity sha512-mk5LVVSvn+HJPKBaAs/Pceq/hTGxF2LVBvJEquuQz0NMAW3QdBWaYRRpOrL9CO8v+ygn5RuLslXsyZBsDNuhww== - dependencies: - "@docusaurus/core" "2.0.0-beta.0" - "@docusaurus/mdx-loader" "2.0.0-beta.0" - "@docusaurus/types" "2.0.0-beta.0" - "@docusaurus/utils" "2.0.0-beta.0" - "@docusaurus/utils-validation" "2.0.0-beta.0" + webpack "^5.40.0" + +"@docusaurus/plugin-content-pages@2.0.0-beta.6": + version "2.0.0-beta.6" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-beta.6.tgz#254e6ee60a8a2b4d85c4fa8408388d585eea0507" + integrity sha512-N6wARzOA8gTFeBXZSKbAN5s1Ej6R/pVg+J946E8GCYefXTFikTNRQ8+OPhax4MRzgzoOvhTQbLbRCSoAzSmjig== + dependencies: + "@docusaurus/core" "2.0.0-beta.6" + "@docusaurus/mdx-loader" "2.0.0-beta.6" + "@docusaurus/types" "2.0.0-beta.6" + "@docusaurus/utils" "2.0.0-beta.6" + "@docusaurus/utils-validation" "2.0.0-beta.6" globby "^11.0.2" lodash "^4.17.20" - minimatch "^3.0.4" remark-admonitions "^1.2.1" - slash "^3.0.0" - tslib "^2.1.0" - webpack "^5.28.0" - -"@docusaurus/plugin-debug@2.0.0-beta.0": - version "2.0.0-beta.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-beta.0.tgz#bee672b8858d88bdb229d4301785ff4692ebd17f" - integrity sha512-m75sZdF8Yccxfih3qfdQg9DucMTrYBnmeTA8GNmdVaK701Ip8t50d1pDJchtu0FSEh6vzVB9C6D2YD5YgVFp8A== - dependencies: - "@docusaurus/core" "2.0.0-beta.0" - "@docusaurus/types" "2.0.0-beta.0" - "@docusaurus/utils" "2.0.0-beta.0" - react-json-view "^1.21.1" tslib "^2.1.0" + webpack "^5.40.0" -"@docusaurus/plugin-google-analytics@2.0.0-beta.0": - version "2.0.0-beta.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-beta.0.tgz#ee287fb991202d8e9b792129dcc5542ef3ccd6c9" - integrity sha512-7lHrg1L+adc8VbiaLexa15i4fdq4MRPUTLMxRPAWz+QskhisW89Ryi2/gDmfMNqLblX84Qg2RASa+2gqO4wepw== - dependencies: - "@docusaurus/core" "2.0.0-beta.0" - -"@docusaurus/plugin-google-gtag@2.0.0-beta.0": - version "2.0.0-beta.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-beta.0.tgz#4836770130cf54ff2cd83affbff9644ee7293e9e" - integrity sha512-V7zaYbhAMv0jexm5H/5sAnoM1GHibcn9QQk5UWC++x1kE0KRuLDZHV+9OyvW5wr0wWFajod/b88SpUpSMF5u+g== - dependencies: - "@docusaurus/core" "2.0.0-beta.0" - -"@docusaurus/plugin-sitemap@2.0.0-beta.0": - version "2.0.0-beta.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-beta.0.tgz#985d4cc3af86499f616ced024ba1fab8329e601d" - integrity sha512-dvmk8Sr+6pBkiKDb7Rjdp0GeFDWPUlayoJWK3fN3g0Fno6uxFfYhNZyXJ+ObyCA7HoW5rzeBMiO+uAja19JXTg== +"@docusaurus/plugin-debug@2.0.0-beta.6": + version "2.0.0-beta.6" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-beta.6.tgz#dc5ebc3c5c1c144b924ab3282fedbfc44cc78be0" + integrity sha512-TJXDBR2Gr/mhBrcj+/4+rTShSm/Qg56Jfezbm/2fFvuPgVlUwy6oj08s2/kYSTmkfG7G+c4iX1GBHjtyo1KxZA== dependencies: - "@docusaurus/core" "2.0.0-beta.0" - "@docusaurus/types" "2.0.0-beta.0" - "@docusaurus/utils" "2.0.0-beta.0" - "@docusaurus/utils-validation" "2.0.0-beta.0" + "@docusaurus/core" "2.0.0-beta.6" + "@docusaurus/types" "2.0.0-beta.6" + "@docusaurus/utils" "2.0.0-beta.6" fs-extra "^9.1.0" - sitemap "^6.3.6" + react-json-view "^1.21.3" tslib "^2.1.0" -"@docusaurus/preset-classic@2.0.0-beta.0": - version "2.0.0-beta.0" - resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-2.0.0-beta.0.tgz#79eb4366e6b5eb7061370019127e40172432d770" - integrity sha512-cFpR0UaAeUt5qVx1bpidhlar6tiRNITIQlxP4bOVsjbxVTZhZ/cNuIz7C+2zFPCuKIflGXdTIQOrucPmd7z51Q== - dependencies: - "@docusaurus/core" "2.0.0-beta.0" - "@docusaurus/plugin-content-blog" "2.0.0-beta.0" - "@docusaurus/plugin-content-docs" "2.0.0-beta.0" - "@docusaurus/plugin-content-pages" "2.0.0-beta.0" - "@docusaurus/plugin-debug" "2.0.0-beta.0" - "@docusaurus/plugin-google-analytics" "2.0.0-beta.0" - "@docusaurus/plugin-google-gtag" "2.0.0-beta.0" - "@docusaurus/plugin-sitemap" "2.0.0-beta.0" - "@docusaurus/theme-classic" "2.0.0-beta.0" - "@docusaurus/theme-search-algolia" "2.0.0-beta.0" +"@docusaurus/plugin-google-analytics@2.0.0-beta.6": + version "2.0.0-beta.6" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-beta.6.tgz#fcb8608c09920131e4dd56b5b343f23cd07a7eee" + integrity sha512-AHbMNPN3gkWXYFnmHL9MBcRODByAgzHZoH/5v3xwbSV2FOZo6kx4Hp94I6oFM0o5mp+i6X7slDncgGTWSGxCMg== + dependencies: + "@docusaurus/core" "2.0.0-beta.6" + +"@docusaurus/plugin-google-gtag@2.0.0-beta.6": + version "2.0.0-beta.6" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-beta.6.tgz#ccde43934d5a193711d118058092d4251965079d" + integrity sha512-uJyQ30sXbVRS3TGtVJFA0s1ozrluuREu6NK2Z3TLtKpeT2NTe5iaqXN0Xp749hr3bjbgpEe6gMixVh//jg503w== + dependencies: + "@docusaurus/core" "2.0.0-beta.6" + +"@docusaurus/plugin-sitemap@2.0.0-beta.6": + version "2.0.0-beta.6" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-beta.6.tgz#5dd74bc8a5845c0e7eac7bfce05a18f57e0b3ed2" + integrity sha512-jpTaODqyCgg+20RtMw8gSvCKQOvH18FpKhIu6FG+z4zgHP33qaJouVM7/1ZKPrfNt4z7xDOyBNUzzdmpssHA8A== + dependencies: + "@docusaurus/core" "2.0.0-beta.6" + "@docusaurus/types" "2.0.0-beta.6" + "@docusaurus/utils" "2.0.0-beta.6" + "@docusaurus/utils-common" "2.0.0-beta.6" + "@docusaurus/utils-validation" "2.0.0-beta.6" + fs-extra "^10.0.0" + sitemap "^7.0.0" + tslib "^2.2.0" + +"@docusaurus/preset-classic@2.0.0-beta.6": + version "2.0.0-beta.6" + resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-2.0.0-beta.6.tgz#528c98939589ae5edfc2a7e01e9f87561e5d5c01" + integrity sha512-riqQRcNssNH7oto8nAjYIO79/ZucidexHTDlgD+trP56ploHLJp4kIlxb44IGOmx3es8/z4egWtM+acY/39N2Q== + dependencies: + "@docusaurus/core" "2.0.0-beta.6" + "@docusaurus/plugin-content-blog" "2.0.0-beta.6" + "@docusaurus/plugin-content-docs" "2.0.0-beta.6" + "@docusaurus/plugin-content-pages" "2.0.0-beta.6" + "@docusaurus/plugin-debug" "2.0.0-beta.6" + "@docusaurus/plugin-google-analytics" "2.0.0-beta.6" + "@docusaurus/plugin-google-gtag" "2.0.0-beta.6" + "@docusaurus/plugin-sitemap" "2.0.0-beta.6" + "@docusaurus/theme-classic" "2.0.0-beta.6" + "@docusaurus/theme-search-algolia" "2.0.0-beta.6" "@docusaurus/react-loadable@5.5.0": version "5.5.0" @@ -1399,110 +1406,112 @@ dependencies: prop-types "^15.6.2" -"@docusaurus/theme-classic@2.0.0-beta.0": - version "2.0.0-beta.0" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-2.0.0-beta.0.tgz#0ad74264dc592590bd7d8a6f6327cb83bbabc665" - integrity sha512-cBNtwAyg3be7Gk41FazMtgyibAcfuYaGHhGHIDRsXfc/qp3RhbiGiei7tyh200QT0NgKZxiVQy/r4d0mtjC++Q== - dependencies: - "@docusaurus/core" "2.0.0-beta.0" - "@docusaurus/plugin-content-blog" "2.0.0-beta.0" - "@docusaurus/plugin-content-docs" "2.0.0-beta.0" - "@docusaurus/plugin-content-pages" "2.0.0-beta.0" - "@docusaurus/theme-common" "2.0.0-beta.0" - "@docusaurus/types" "2.0.0-beta.0" - "@docusaurus/utils" "2.0.0-beta.0" - "@docusaurus/utils-validation" "2.0.0-beta.0" +"@docusaurus/theme-classic@2.0.0-beta.6": + version "2.0.0-beta.6" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-2.0.0-beta.6.tgz#4ae476e90cf875bb13eba5daedbd71d0cfdd8194" + integrity sha512-fMb6gAKUdaojInZabimIJE+yPWs8dQfmZII7v/LHmgxafh/FylmrBkKhyJfa2ix4QRibo9E01LGX44/aKzemxw== + dependencies: + "@docusaurus/core" "2.0.0-beta.6" + "@docusaurus/plugin-content-blog" "2.0.0-beta.6" + "@docusaurus/plugin-content-docs" "2.0.0-beta.6" + "@docusaurus/plugin-content-pages" "2.0.0-beta.6" + "@docusaurus/theme-common" "2.0.0-beta.6" + "@docusaurus/types" "2.0.0-beta.6" + "@docusaurus/utils" "2.0.0-beta.6" + "@docusaurus/utils-common" "2.0.0-beta.6" + "@docusaurus/utils-validation" "2.0.0-beta.6" "@mdx-js/mdx" "^1.6.21" "@mdx-js/react" "^1.6.21" - chalk "^4.1.0" + chalk "^4.1.1" clsx "^1.1.1" - copy-text-to-clipboard "^3.0.0" - fs-extra "^9.1.0" + copy-text-to-clipboard "^3.0.1" + fs-extra "^10.0.0" globby "^11.0.2" - infima "0.2.0-alpha.23" + infima "0.2.0-alpha.33" lodash "^4.17.20" parse-numeric-range "^1.2.0" - postcss "^8.2.10" - prism-react-renderer "^1.1.1" + postcss "^8.2.15" + prism-react-renderer "^1.2.1" prismjs "^1.23.0" prop-types "^15.7.2" react-router-dom "^5.2.0" rtlcss "^3.1.2" -"@docusaurus/theme-common@2.0.0-beta.0": - version "2.0.0-beta.0" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-2.0.0-beta.0.tgz#3674ef6482cc39efa034fd8d8b1c831588896329" - integrity sha512-2rcVmQpvbdAgnzTWuM7Bfpu+2TQm928bhlvxn226jQy7IYz8ySRlIode63HhCtpx03hpdMCkrK6HxhfEcvHjQg== +"@docusaurus/theme-common@2.0.0-beta.6": + version "2.0.0-beta.6" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-2.0.0-beta.6.tgz#17cbf38400d752e264cdbebbc57a92f2bdfc7052" + integrity sha512-53nFWMjpFdyHEvBfQQQoDm9rNKgGangy7vSp1B/F3+uRyYAItE7O4l8MdOALXFALlddiiPYvCtI1qGx2dnzndA== dependencies: - "@docusaurus/core" "2.0.0-beta.0" - "@docusaurus/plugin-content-blog" "2.0.0-beta.0" - "@docusaurus/plugin-content-docs" "2.0.0-beta.0" - "@docusaurus/plugin-content-pages" "2.0.0-beta.0" - "@docusaurus/types" "2.0.0-beta.0" + "@docusaurus/core" "2.0.0-beta.6" + "@docusaurus/plugin-content-blog" "2.0.0-beta.6" + "@docusaurus/plugin-content-docs" "2.0.0-beta.6" + "@docusaurus/plugin-content-pages" "2.0.0-beta.6" + "@docusaurus/types" "2.0.0-beta.6" + clsx "^1.1.1" + fs-extra "^10.0.0" tslib "^2.1.0" -"@docusaurus/theme-search-algolia@2.0.0-beta.0": - version "2.0.0-beta.0" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-beta.0.tgz#bfdee3981d8da72377b9045459950686d28a01fd" - integrity sha512-/GhgAm4yuwqTXWTsWnqpFYxpjTv+t45Wk8q/LmTVINa+A7b6jkMkch2lygagIt69/ufDm2Uw6eYhgrmF4DJqfQ== +"@docusaurus/theme-search-algolia@2.0.0-beta.6": + version "2.0.0-beta.6" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-beta.6.tgz#c92214a075a23fe9fb87cfbc6f037ca07e83f628" + integrity sha512-GaaYdf6EEKL3jwmt9LRyiMtNvobOhw4vGuYJKbJcgba/M75kOJSbZPRrhALBAe6o4gOYbV44afzFC/jUUp7dsA== dependencies: - "@docsearch/react" "^3.0.0-alpha.33" - "@docusaurus/core" "2.0.0-beta.0" - "@docusaurus/theme-common" "2.0.0-beta.0" - "@docusaurus/utils" "2.0.0-beta.0" - "@docusaurus/utils-validation" "2.0.0-beta.0" + "@docsearch/react" "^3.0.0-alpha.39" + "@docusaurus/core" "2.0.0-beta.6" + "@docusaurus/theme-common" "2.0.0-beta.6" + "@docusaurus/utils" "2.0.0-beta.6" + "@docusaurus/utils-validation" "2.0.0-beta.6" algoliasearch "^4.8.4" algoliasearch-helper "^3.3.4" clsx "^1.1.1" eta "^1.12.1" lodash "^4.17.20" -"@docusaurus/types@2.0.0-beta.0": - version "2.0.0-beta.0" - resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-2.0.0-beta.0.tgz#f473f417bdf690cfd52611ddf6d89ff939d1f2a4" - integrity sha512-z9PI+GbtYwqTXnkX4/a/A6psDX2p8N2uWlN2f4ifrm8WY4WhR9yiTOh0uo0pIqqaUQQvkEq3o5hOXuXLECEs+w== +"@docusaurus/types@2.0.0-beta.6": + version "2.0.0-beta.6" + resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-2.0.0-beta.6.tgz#f92a61cc42e5921d325114ebc7b30c5e8c368683" + integrity sha512-TrwxyI93XTZEhOmdEI8FPKDbGV61zE9PzXCdE1alwz1NOV+YXwcv+9sRTZEVLqBpr+TIja+IeeS6mxnyen/Ptg== dependencies: commander "^5.1.0" joi "^17.4.0" querystring "0.2.0" - webpack "^5.28.0" - webpack-merge "^5.7.3" + webpack "^5.40.0" + webpack-merge "^5.8.0" -"@docusaurus/utils-validation@2.0.0-beta.0": - version "2.0.0-beta.0" - resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-2.0.0-beta.0.tgz#3e6491c269a397fed29717a1cb69109df9483461" - integrity sha512-ELl/FVJ6xBz35TisZ1NmJhjbiVXDeU++K531PEFPCPmwnQPh7S6hZXdPnR71/Kc3BmuN9X2ZkwGOqNKVfys2Bg== +"@docusaurus/utils-common@2.0.0-beta.6": + version "2.0.0-beta.6" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-2.0.0-beta.6.tgz#afd26a9f67b16479058ead66a310738c21293ae5" + integrity sha512-MKm6bJxvsYWRl072jLR60z+71tTWSxoERh2eTmCYlegFnu3Tby3HOC8I3jDcC6VpVuoDGsBGNoQbOgy2LqQbXQ== dependencies: - "@docusaurus/utils" "2.0.0-beta.0" - chalk "^4.1.0" + "@docusaurus/types" "2.0.0-beta.6" + tslib "^2.2.0" + +"@docusaurus/utils-validation@2.0.0-beta.6": + version "2.0.0-beta.6" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-2.0.0-beta.6.tgz#7b98216de844138e9606a128c09182185ed84621" + integrity sha512-v0nk9bpawUd2JFDFyiHDmZuMG+/O1UvxtxvcRbvrxrul+rlzD7Q9CGxMgW3Grp2OCKQ4yFXRidBIccwqON5AVw== + dependencies: + "@docusaurus/utils" "2.0.0-beta.6" + chalk "^4.1.1" joi "^17.4.0" tslib "^2.1.0" -"@docusaurus/utils@2.0.0-beta.0": - version "2.0.0-beta.0" - resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-2.0.0-beta.0.tgz#6f2690fd6fcd942f0d690db1dffb96742762deb3" - integrity sha512-bvrT1EQu0maavr0Hb/lke9jmpzgVL/9tn5VQtbyahf472eJFY0bQDExllDrHK+l784SUvucqX0iaQeg0q6ySUw== +"@docusaurus/utils@2.0.0-beta.6": + version "2.0.0-beta.6" + resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-2.0.0-beta.6.tgz#1438df9f28b632fe7a4f50663340b463cff07cab" + integrity sha512-S72/o7VDaTvrXJy+NpfuctghGGoMW30m94PMkrL3I6V+o5eE2Uzax7dbM++moclmHvi0/Khv+TXmRIQs6ZvwgQ== dependencies: - "@docusaurus/types" "2.0.0-beta.0" + "@docusaurus/types" "2.0.0-beta.6" "@types/github-slugger" "^1.3.0" - chalk "^4.1.0" + chalk "^4.1.1" escape-string-regexp "^4.0.0" - fs-extra "^9.1.0" - gray-matter "^4.0.2" + fs-extra "^10.0.0" + globby "^11.0.4" + gray-matter "^4.0.3" lodash "^4.17.20" + micromatch "^4.0.4" resolve-pathname "^3.0.0" - tslib "^2.1.0" - -"@endiliey/static-site-generator-webpack-plugin@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@endiliey/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.0.tgz#94bfe58fd83aeda355de797fcb5112adaca3a6b1" - integrity sha512-3MBqYCs30qk1OBRC697NqhGouYbs71D1B8hrk/AFJC6GwF2QaJOQZtA1JYAaGSe650sZ8r5ppRTtCRXepDWlng== - dependencies: - bluebird "^3.7.1" - cheerio "^0.22.0" - eval "^0.1.4" - url "^0.11.0" - webpack-sources "^1.4.3" + tslib "^2.2.0" "@hapi/hoek@^9.0.0": version "9.2.0" @@ -1599,6 +1608,17 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== +"@slorber/static-site-generator-webpack-plugin@^4.0.0": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.1.tgz#0c8852146441aaa683693deaa5aee2f991d94841" + integrity sha512-PSv4RIVO1Y3kvHxjvqeVisk3E9XFoO04uwYBDWe217MFqKspplYswTuKLiJu0aLORQWzuQjfVsSlLPojwfYsLw== + dependencies: + bluebird "^3.7.1" + cheerio "^0.22.0" + eval "^0.1.4" + url "^0.11.0" + webpack-sources "^1.4.3" + "@svgr/babel-plugin-add-jsx-attribute@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz#81ef61947bb268eb9d50523446f9c638fb355906" @@ -1735,10 +1755,10 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.48.tgz#18dc8091b285df90db2f25aa7d906cfc394b7f74" integrity sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew== -"@types/estree@^0.0.47": - version "0.0.47" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.47.tgz#d7a51db20f0650efec24cd04994f523d93172ed4" - integrity sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg== +"@types/estree@^0.0.50": + version "0.0.50" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" + integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== "@types/github-slugger@^1.3.0": version "1.3.0" @@ -1770,6 +1790,11 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== +"@types/json-schema@^7.0.8": + version "7.0.9" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" + integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== + "@types/mdast@^3.0.0": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb" @@ -1787,10 +1812,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.2.tgz#1f2b42c4be7156ff4a6f914b2fb03d05fa84e38d" integrity sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww== -"@types/node@^14.14.28": - version "14.17.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.3.tgz#6d327abaa4be34a74e421ed6409a0ae2f47f4c3d" - integrity sha512-e6ZowgGJmTuXa3GyaPbTGxX17tnThl2aSSizrFthQ7m9uLGZBXiGhgE55cjRZTF5kjZvYn9EOPOMljdjwbflxw== +"@types/node@^15.0.1": + version "15.14.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.14.9.tgz#bc43c990c3c9be7281868bbc7b8fdd6e2b57adfa" + integrity sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A== "@types/parse-json@^4.0.0": version "4.0.0" @@ -1819,125 +1844,125 @@ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== -"@webassemblyjs/ast@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.0.tgz#a5aa679efdc9e51707a4207139da57920555961f" - integrity sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg== +"@webassemblyjs/ast@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" + integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== dependencies: - "@webassemblyjs/helper-numbers" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/helper-numbers" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" -"@webassemblyjs/floating-point-hex-parser@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz#34d62052f453cd43101d72eab4966a022587947c" - integrity sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA== +"@webassemblyjs/floating-point-hex-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" + integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== -"@webassemblyjs/helper-api-error@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz#aaea8fb3b923f4aaa9b512ff541b013ffb68d2d4" - integrity sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w== +"@webassemblyjs/helper-api-error@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" + integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== -"@webassemblyjs/helper-buffer@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz#d026c25d175e388a7dbda9694e91e743cbe9b642" - integrity sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA== +"@webassemblyjs/helper-buffer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" + integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== -"@webassemblyjs/helper-numbers@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz#7ab04172d54e312cc6ea4286d7d9fa27c88cd4f9" - integrity sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ== +"@webassemblyjs/helper-numbers@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" + integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.0" - "@webassemblyjs/helper-api-error" "1.11.0" + "@webassemblyjs/floating-point-hex-parser" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" "@xtuc/long" "4.2.2" -"@webassemblyjs/helper-wasm-bytecode@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz#85fdcda4129902fe86f81abf7e7236953ec5a4e1" - integrity sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA== +"@webassemblyjs/helper-wasm-bytecode@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" + integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== -"@webassemblyjs/helper-wasm-section@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz#9ce2cc89300262509c801b4af113d1ca25c1a75b" - integrity sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew== +"@webassemblyjs/helper-wasm-section@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" + integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-buffer" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/wasm-gen" "1.11.0" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" -"@webassemblyjs/ieee754@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz#46975d583f9828f5d094ac210e219441c4e6f5cf" - integrity sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA== +"@webassemblyjs/ieee754@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" + integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.0.tgz#f7353de1df38aa201cba9fb88b43f41f75ff403b" - integrity sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g== +"@webassemblyjs/leb128@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" + integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.0.tgz#86e48f959cf49e0e5091f069a709b862f5a2cadf" - integrity sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw== - -"@webassemblyjs/wasm-edit@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz#ee4a5c9f677046a210542ae63897094c2027cb78" - integrity sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ== - dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-buffer" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/helper-wasm-section" "1.11.0" - "@webassemblyjs/wasm-gen" "1.11.0" - "@webassemblyjs/wasm-opt" "1.11.0" - "@webassemblyjs/wasm-parser" "1.11.0" - "@webassemblyjs/wast-printer" "1.11.0" - -"@webassemblyjs/wasm-gen@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz#3cdb35e70082d42a35166988dda64f24ceb97abe" - integrity sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ== - dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/ieee754" "1.11.0" - "@webassemblyjs/leb128" "1.11.0" - "@webassemblyjs/utf8" "1.11.0" - -"@webassemblyjs/wasm-opt@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz#1638ae188137f4bb031f568a413cd24d32f92978" - integrity sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg== - dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-buffer" "1.11.0" - "@webassemblyjs/wasm-gen" "1.11.0" - "@webassemblyjs/wasm-parser" "1.11.0" - -"@webassemblyjs/wasm-parser@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz#3e680b8830d5b13d1ec86cc42f38f3d4a7700754" - integrity sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw== - dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-api-error" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/ieee754" "1.11.0" - "@webassemblyjs/leb128" "1.11.0" - "@webassemblyjs/utf8" "1.11.0" - -"@webassemblyjs/wast-printer@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz#680d1f6a5365d6d401974a8e949e05474e1fab7e" - integrity sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ== - dependencies: - "@webassemblyjs/ast" "1.11.0" +"@webassemblyjs/utf8@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" + integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== + +"@webassemblyjs/wasm-edit@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" + integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/helper-wasm-section" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-opt" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + "@webassemblyjs/wast-printer" "1.11.1" + +"@webassemblyjs/wasm-gen@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" + integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wasm-opt@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" + integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + +"@webassemblyjs/wasm-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" + integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wast-printer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" + integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== + dependencies: + "@webassemblyjs/ast" "1.11.1" "@xtuc/long" "4.2.2" "@xtuc/ieee754@^1.2.0": @@ -1958,16 +1983,26 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: mime-types "~2.1.24" negotiator "0.6.2" +acorn-import-assertions@^1.7.6: + version "1.7.6" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz#580e3ffcae6770eebeec76c3b9723201e9d01f78" + integrity sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA== + acorn-walk@^8.0.0: version "8.1.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.1.0.tgz#d3c6a9faf00987a5e2b9bdb506c2aa76cd707f83" integrity sha512-mjmzmv12YIG/G8JQdQuz2MUDShEJ6teYpT5bmWA4q7iwoGen8xtt3twF3OvzIUl+Q06aWIjvnwQUKvQ6TtMRjg== -acorn@^8.0.4, acorn@^8.2.1: +acorn@^8.0.4: version "8.4.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.0.tgz#af53266e698d7cffa416714b503066a82221be60" integrity sha512-ULr0LDaEqQrMFGyQ3bhJkLsbtrQ8QibAseGZeaSUiT/6zb9IvIkomWHJIvgvwad+hinRAgsI51JcWk2yvwyL+w== +acorn@^8.4.1: + version "8.5.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2" + integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q== + address@1.1.2, address@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" @@ -2392,6 +2427,20 @@ boxen@^5.0.0: widest-line "^3.1.0" wrap-ansi "^7.0.0" +boxen@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.1.tgz#4faca6a437885add0bf8d99082e272d480814cd4" + integrity sha512-JtIQYts08AFAYGF4eSh3pUt3NQkYV/e75pRtQmAVTLNWR/1L7Bsswxlgzgk8nmLEM+gFszsIlA9BgD3XnSqp3g== + dependencies: + ansi-align "^3.0.0" + camelcase "^6.2.0" + chalk "^4.1.0" + cli-boxes "^2.2.1" + string-width "^4.2.2" + type-fest "^0.20.2" + widest-line "^3.1.0" + wrap-ansi "^7.0.0" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -2565,6 +2614,14 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + character-entities-legacy@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" @@ -2668,10 +2725,10 @@ clean-css@^4.2.3: dependencies: source-map "~0.6.0" -clean-css@^5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.1.2.tgz#6ea0da7286b4ddc2469a1b776e2461a5007eed54" - integrity sha512-QcaGg9OuMo+0Ds933yLOY+gHPWbxhxqF0HDexmToPf8pczvmvZGYzd+QqWp9/mkucAOKViI+dSFOqoZIvXbeBw== +clean-css@^5.1.5: + version "5.1.5" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.1.5.tgz#3b0af240dcfc9a3779a08c2332df3ebd4474f232" + integrity sha512-9dr/cU/LjMpU57PXlSvDkVRh0rPxJBXiBtD0+SgYt8ahTCsXtfKjCkNYgIoTC6mBg8CFr5EKhW3DKCaGMUbUfQ== dependencies: source-map "~0.6.0" @@ -2775,6 +2832,11 @@ colord@^2.0.1: resolved "https://registry.yarnpkg.com/colord/-/colord-2.0.1.tgz#1e7fb1f9fa1cf74f42c58cb9c20320bab8435aa0" integrity sha512-vm5YpaWamD0Ov6TSG0GGmUIwstrWcfKQV/h2CmbR7PbNu41+qdB5PW9lpzhjedrpm08uuYvcXi0Oel1RLZIJuA== +colord@^2.6: + version "2.7.0" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.7.0.tgz#706ea36fe0cd651b585eb142fe64b6480185270e" + integrity sha512-pZJBqsHz+pYyw3zpX6ZRXWoCHM1/cvFikY9TV8G3zcejCaKE0lhankoj8iScyrrePA8C7yJ5FStfA9zbcOnw7Q== + colorette@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" @@ -2911,23 +2973,23 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -copy-text-to-clipboard@^3.0.0: +copy-text-to-clipboard@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.0.1.tgz#8cbf8f90e0a47f12e4a24743736265d157bce69c" integrity sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q== -copy-webpack-plugin@^8.1.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-8.1.1.tgz#3f697e162764925c2f0d235f380676125508fd26" - integrity sha512-rYM2uzRxrLRpcyPqGceRBDpxxUV8vcDqIKxAUKfcnFpcrPxT5+XvhTxv7XLjo5AvEJFPdAE3zCogG2JVahqgSQ== +copy-webpack-plugin@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-9.0.1.tgz#b71d21991599f61a4ee00ba79087b8ba279bbb59" + integrity sha512-14gHKKdYIxF84jCEgPgYXCPpldbwpxxLbCmA7LReY7gvbaT555DgeBWBgBZM116tv/fO6RRJrsivBqRyRlukhw== dependencies: fast-glob "^3.2.5" - glob-parent "^5.1.1" + glob-parent "^6.0.0" globby "^11.0.3" normalize-path "^3.0.0" p-limit "^3.1.0" schema-utils "^3.0.0" - serialize-javascript "^5.0.1" + serialize-javascript "^6.0.0" core-js-compat@^3.14.0, core-js-compat@^3.9.1: version "3.14.0" @@ -2995,11 +3057,6 @@ crypto-random-string@^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-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - css-color-names@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-1.0.1.tgz#6ff7ee81a823ad46e020fa2fd6ab40a887e2ba67" @@ -3028,17 +3085,17 @@ css-loader@^5.1.1: schema-utils "^3.0.0" semver "^7.3.5" -css-minimizer-webpack-plugin@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-2.0.0.tgz#3c42f6624ed4cf4780dd963e23ee649e5a25c1a8" - integrity sha512-cG/uc94727tx5pBNtb1Sd7gvUPzwmcQi1lkpfqTpdkuNq75hJCw7bIVsCNijLm4dhDcr1atvuysl2rZqOG8Txw== +css-minimizer-webpack-plugin@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.0.2.tgz#8fadbdf10128cb40227bff275a4bb47412534245" + integrity sha512-B3I5e17RwvKPJwsxjjWcdgpU/zqylzK1bPVghcmpFHRL48DXiBgrtqz1BJsn68+t/zzaLp9kYAaEDvQ7GyanFQ== dependencies: - cssnano "^5.0.0" - jest-worker "^26.3.0" + cssnano "^5.0.6" + jest-worker "^27.0.2" p-limit "^3.0.2" - postcss "^8.2.9" + postcss "^8.3.5" schema-utils "^3.0.0" - serialize-javascript "^5.0.1" + serialize-javascript "^6.0.0" source-map "^0.6.1" css-select-base-adapter@^0.1.1: @@ -3129,22 +3186,22 @@ 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.0.0: - version "5.1.3" - resolved "https://registry.yarnpkg.com/cssnano-preset-advanced/-/cssnano-preset-advanced-5.1.3.tgz#a2c6cf2fe39108b81e88810e3c399d1c0fe030ea" - integrity sha512-pS4+Q2Hoo/FevZs2JqA2BG8Vn5o5VeXgj+z6kGndKTq3RFYvlKeJ1ZPnLXo9zyYKwmSqWW0rWqtGxxmigIte0Q== +cssnano-preset-advanced@^5.1.1: + version "5.1.4" + resolved "https://registry.yarnpkg.com/cssnano-preset-advanced/-/cssnano-preset-advanced-5.1.4.tgz#b492d03756550f75cd8131d59105efdea88c2f7e" + integrity sha512-pFtIM15OzryDk09RcK+bBBtwSl80+g/POTAf/sVPqPmnOAleK6vBkY5wTmPjqGyV5/UTPjEzWMtbOQ3Z0kCBXA== dependencies: autoprefixer "^10.2.0" - cssnano-preset-default "^5.1.3" + cssnano-preset-default "^5.1.4" postcss-discard-unused "^5.0.1" postcss-merge-idents "^5.0.1" postcss-reduce-idents "^5.0.1" postcss-zindex "^5.0.1" -cssnano-preset-default@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.3.tgz#caa54183a8c8df03124a9e23f374ab89df5a9a99" - integrity sha512-qo9tX+t4yAAZ/yagVV3b+QBKeLklQbmgR3wI7mccrDcR+bEk9iHgZN1E7doX68y9ThznLya3RDmR+nc7l6/2WQ== +cssnano-preset-default@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.4.tgz#359943bf00c5c8e05489f12dd25f3006f2c1cbd2" + integrity sha512-sPpQNDQBI3R/QsYxQvfB4mXeEcWuw0wGtKtmS5eg8wudyStYMgKOQT39G07EbW1LB56AOYrinRS9f0ig4Y3MhQ== dependencies: css-declaration-sorter "^6.0.3" cssnano-utils "^2.0.1" @@ -3158,7 +3215,7 @@ cssnano-preset-default@^5.1.3: postcss-merge-longhand "^5.0.2" postcss-merge-rules "^5.0.2" postcss-minify-font-values "^5.0.1" - postcss-minify-gradients "^5.0.1" + postcss-minify-gradients "^5.0.2" postcss-minify-params "^5.0.1" postcss-minify-selectors "^5.1.0" postcss-normalize-charset "^5.0.1" @@ -3181,14 +3238,15 @@ cssnano-utils@^2.0.1: resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-2.0.1.tgz#8660aa2b37ed869d2e2f22918196a9a8b6498ce2" integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== -cssnano@^5.0.0, cssnano@^5.0.1: - version "5.0.6" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.6.tgz#2a91ad34c6521ae31eab3da9c90108ea3093535d" - integrity sha512-NiaLH/7yqGksFGsFNvSRe2IV/qmEBAeDE64dYeD8OBrgp6lE8YoMeQJMtsv5ijo6MPyhuoOvFhI94reahBRDkw== +cssnano@^5.0.4, cssnano@^5.0.6: + version "5.0.8" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.8.tgz#39ad166256980fcc64faa08c9bb18bb5789ecfa9" + integrity sha512-Lda7geZU0Yu+RZi2SGpjYuQz4HI4/1Y+BhdD0jL7NXAQ5larCzVn+PUGuZbDMYz904AXXCOgO5L1teSvgu7aFg== dependencies: - cosmiconfig "^7.0.0" - cssnano-preset-default "^5.1.3" + cssnano-preset-default "^5.1.4" is-resolvable "^1.1.0" + lilconfig "^2.0.3" + yaml "^1.10.2" csso@^4.0.2, csso@^4.2.0: version "4.2.0" @@ -3603,10 +3661,10 @@ es-abstract@^1.17.2, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: string.prototype.trimstart "^1.0.4" unbox-primitive "^1.0.1" -es-module-lexer@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.4.1.tgz#dda8c6a14d8f340a24e34331e0fab0cb50438e0e" - integrity sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA== +es-module-lexer@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.7.1.tgz#c2c8e0f46f2df06274cdaf0dd3f3b33e0a0b267d" + integrity sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw== es-to-primitive@^1.2.1: version "1.2.1" @@ -4047,6 +4105,15 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= +fs-extra@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" + integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.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" @@ -4143,13 +4210,20 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.2: +glob-parent@^5.1.0, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" +glob-parent@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.1.tgz#42054f685eb6a44e7a7d189a96efa40a54971aa7" + integrity sha512-kEVjS71mQazDBHKcsq4E9u/vUzaLcw1A8EtUeydawvIWQCJM0qQ08G1H7/XTjFUulla6XQiDOG6MXSaG0HDKog== + dependencies: + is-glob "^4.0.1" + glob-to-regexp@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" @@ -4219,6 +4293,18 @@ globby@^11.0.1, globby@^11.0.2, globby@^11.0.3: merge2 "^1.3.0" slash "^3.0.0" +globby@^11.0.4: + version "11.0.4" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" + integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -4259,7 +4345,7 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== -gray-matter@^4.0.2: +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== @@ -4446,11 +4532,6 @@ he@^1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - history@^4.9.0: version "4.10.1" resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" @@ -4480,16 +4561,6 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - html-entities@^1.3.1: version "1.4.0" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" @@ -4518,15 +4589,15 @@ html-void-elements@^1.0.0: 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.2.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.3.1.tgz#8797327548e3de438e3494e0c6d06f181a7f20d1" - integrity sha512-rZsVvPXUYFyME0cuGkyOHfx9hmkFa4pWfxY/mdY38PsBEaVNsRoA+Id+8z6DBDgyv3zaw6XQszdF8HLwfQvcdQ== +html-webpack-plugin@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.3.2.tgz#7b04bf80b1f6fe84a6d3f66c8b79d64739321b08" + integrity sha512-HvB33boVNCz2lTyBsSiMffsJ+m0YLIQ+pskblXgN9fnjS1BgEcuAfdInfXfGrkdXV406k9FiDi86eVCDBgJOyQ== dependencies: "@types/html-minifier-terser" "^5.0.0" html-minifier-terser "^5.0.1" - lodash "^4.17.20" - pretty-error "^2.1.1" + lodash "^4.17.21" + pretty-error "^3.0.4" tapable "^2.0.0" htmlparser2@^3.9.1: @@ -4675,10 +4746,10 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -infima@0.2.0-alpha.23: - version "0.2.0-alpha.23" - resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.23.tgz#2c17b473784ae8244fd985f126f9c27a49b24523" - integrity sha512-V0RTjB1otjpH3E2asbydx3gz7ovdSJsuV7r9JTdBggqRilnelTJUcXxLawBQQKsjQi5qPcRTjxnlaV8xyyKhhw== +infima@0.2.0-alpha.33: + version "0.2.0-alpha.33" + resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.33.tgz#8d1a77ea916bedcebffa60dcd2dffbe382e09abf" + integrity sha512-iLZI8/vGTbbhbeFhlWv1zwvrqfNDLAayuEdqZqNqCyGuh0IW469dRIRm0FLZ98YyLikt2njzuKfy6xUrBWRXcg== inflight@^1.0.4: version "1.0.6" @@ -4833,18 +4904,6 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-color-stop@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - is-core-module@^2.2.0: version "2.4.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" @@ -5135,15 +5194,6 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -jest-worker@^26.3.0: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - jest-worker@^27.0.2: version "27.0.2" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.2.tgz#4ebeb56cef48b3e7514552f80d0d80c0129f0b05" @@ -5153,6 +5203,15 @@ jest-worker@^27.0.2: merge-stream "^2.0.0" supports-color "^8.0.0" +jest-worker@^27.0.6: + version "27.2.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.2.0.tgz#11eef39f1c88f41384ca235c2f48fe50bc229bc0" + integrity sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + joi@^17.3.0, joi@^17.4.0: version "17.4.0" resolved "https://registry.yarnpkg.com/joi/-/joi-17.4.0.tgz#b5c2277c8519e016316e49ababd41a1908d9ef20" @@ -5300,6 +5359,11 @@ leven@^3.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +lilconfig@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.3.tgz#68f3005e921dafbd2a2afb48379986aa6d2579fd" + integrity sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg== + lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" @@ -5610,7 +5674,7 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.2: +micromatch@^4.0.2, micromatch@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== @@ -5670,10 +5734,10 @@ mini-create-react-context@^0.4.0: "@babel/runtime" "^7.12.1" tiny-warning "^1.0.3" -mini-css-extract-plugin@^1.4.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.0.tgz#b4db2525af2624899ed64a23b0016e0036411893" - integrity sha512-nPFKI7NSy6uONUo9yn2hIfb9vyYvkFu95qki0e21DQ9uaqNKDP15DGpK0KnV6wDroWxPHtExrdEwx/yDQ8nVRw== +mini-css-extract-plugin@^1.6.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.2.tgz#83172b4fd812f8fc4a09d6f6d16f924f53990ca8" + integrity sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q== dependencies: loader-utils "^2.0.0" schema-utils "^3.0.0" @@ -6343,7 +6407,7 @@ postcss-discard-unused@^5.0.1: dependencies: postcss-selector-parser "^6.0.5" -postcss-loader@^5.2.0: +postcss-loader@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-5.3.0.tgz#1657f869e48d4fdb018a40771c235e499ee26244" integrity sha512-/+Z1RAmssdiSLgIZwnJHwBMnlABPgF7giYzTN2NOfr9D21IJZ4mQC1R2miwp80zno9M4zMD/umGI8cR+2EL5zw== @@ -6387,13 +6451,13 @@ postcss-minify-font-values@^5.0.1: dependencies: postcss-value-parser "^4.1.0" -postcss-minify-gradients@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.1.tgz#2dc79fd1a1afcb72a9e727bc549ce860f93565d2" - integrity sha512-odOwBFAIn2wIv+XYRpoN2hUV3pPQlgbJ10XeXPq8UY2N+9ZG42xu45lTn/g9zZ+d70NKSQD6EOi6UiCMu3FN7g== +postcss-minify-gradients@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.2.tgz#7c175c108f06a5629925d698b3c4cf7bd3864ee5" + integrity sha512-7Do9JP+wqSD6Prittitt2zDLrfzP9pqKs2EcLX7HJYxsxCOwrrcLt4x/ctQTsiOw+/8HYotAoqNkrzItL19SdQ== dependencies: + colord "^2.6" cssnano-utils "^2.0.1" - is-color-stop "^1.1.0" postcss-value-parser "^4.1.0" postcss-minify-params@^5.0.1: @@ -6549,12 +6613,12 @@ postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-sort-media-queries@^3.8.9: - version "3.11.12" - resolved "https://registry.yarnpkg.com/postcss-sort-media-queries/-/postcss-sort-media-queries-3.11.12.tgz#bfc449fadedfe2765ca4566c30b24694635ad182" - integrity sha512-PNhEOWR/btZ0bNNRqqdW4TWxBPQ1mu2I6/Zpco80vBUDSyEjtduUAorY0Vm68rvDlGea3+sgEnQ36iQ1A/gG8Q== +postcss-sort-media-queries@^3.10.11: + version "3.12.13" + resolved "https://registry.yarnpkg.com/postcss-sort-media-queries/-/postcss-sort-media-queries-3.12.13.tgz#213b1422e7efc29e0c2519b6ab259ff7d50b2156" + integrity sha512-bFbR1+P6HhZWXcT5DVV2pBH5Y2U5daKbFd0j+kcwKdzrxkbmgFu0GhI2JfFUyy5KQIeW+YJGP+vwNDOS5hIn2g== dependencies: - sort-css-media-queries "1.5.4" + sort-css-media-queries "2.0.4" postcss-svgo@^5.0.2: version "5.0.2" @@ -6583,7 +6647,7 @@ postcss-zindex@^5.0.1: resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-5.0.1.tgz#c585724beb69d356af8c7e68847b28d6298ece03" integrity sha512-nwgtJJys+XmmSGoYCcgkf/VczP8Mp/0OfSv3v0+fw0uABY4yxw+eFs0Xp9nAZHIKnS5j+e9ywQ+RD+ONyvl5pA== -postcss@^8.2.10, postcss@^8.2.15, postcss@^8.2.4, postcss@^8.2.9: +postcss@^8.2.15, postcss@^8.2.4: version "8.3.4" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.4.tgz#41ece1c43f2f7c74dc7d90144047ce052757b822" integrity sha512-/tZY0PXExXXnNhKv3TOvZAOUYRyuqcCbBm2c17YMDK0PlVII3K7/LKdt3ScHL+hhouddjUWi+1sKDf9xXW+8YA== @@ -6592,25 +6656,34 @@ postcss@^8.2.10, postcss@^8.2.15, postcss@^8.2.4, postcss@^8.2.9: nanoid "^3.1.23" source-map-js "^0.6.2" +postcss@^8.3.5: + version "8.3.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.6.tgz#2730dd76a97969f37f53b9a6096197be311cc4ea" + integrity sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A== + dependencies: + colorette "^1.2.2" + nanoid "^3.1.23" + source-map-js "^0.6.2" + prepend-http@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= -pretty-error@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" - integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== +pretty-error@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-3.0.4.tgz#94b1d54f76c1ed95b9c604b9de2194838e5b574e" + integrity sha512-ytLFLfv1So4AO1UkoBF6GXQgJRaKbiSiGFICaOPNwQ3CMvBvXpLRubeQWyPGnsbV/t9ml9qto6IeCsho0aEvwQ== dependencies: lodash "^4.17.20" - renderkid "^2.0.4" + renderkid "^2.0.6" 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.1.1: +prism-react-renderer@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-1.2.1.tgz#392460acf63540960e5e3caa699d851264e99b89" integrity sha512-w23ch4f75V1Tnz8DajsYKvY5lF7H1+WvzvLUcF0paFxkTHSp42RS0H5CttdN2Q8RR3DRGZ9v5xD/h3n8C8kGmg== @@ -6642,7 +6715,7 @@ prompts@2.4.0: kleur "^3.0.3" sisteransi "^1.0.5" -prompts@^2.4.0: +prompts@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61" integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ== @@ -6850,7 +6923,7 @@ react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-json-view@^1.21.1: +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== @@ -7157,7 +7230,7 @@ remove-trailing-separator@^1.0.1: resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= -renderkid@^2.0.4: +renderkid@^2.0.6: version "2.0.7" resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== @@ -7255,16 +7328,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -7279,10 +7342,10 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -rtl-detect@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/rtl-detect/-/rtl-detect-1.0.3.tgz#42145b9a4f9cf0b94c4542aba90d57f0d18559bf" - integrity sha512-2sMcZO60tL9YDEFe24gqddg3hJ+xSmJFN8IExcQUxeHxQzydQrN6GHPL+yAWgzItXSI7es53hcZC9pJneuZDKA== +rtl-detect@^1.0.3: + 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.1.2: version "3.2.0" @@ -7371,6 +7434,15 @@ schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" +schema-utils@^3.1.0, schema-utils@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + section-matter@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" @@ -7444,10 +7516,10 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" -serialize-javascript@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" - integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== +serialize-javascript@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== dependencies: randombytes "^2.1.0" @@ -7582,12 +7654,12 @@ sisteransi@^1.0.5: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== -sitemap@^6.3.6: - version "6.4.0" - resolved "https://registry.yarnpkg.com/sitemap/-/sitemap-6.4.0.tgz#b4bc4edf36de742405a7572bc3e467ba484b852e" - integrity sha512-DoPKNc2/apQZTUnfiOONWctwq7s6dZVspxAZe2VPMNtoqNq7HgXRvlRnbIpKjf+8+piQdWncwcy+YhhTGY5USQ== +sitemap@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/sitemap/-/sitemap-7.0.0.tgz#022bef4df8cba42e38e1fe77039f234cab0372b6" + integrity sha512-Ud0jrRQO2k7fEtPAM+cQkBKoMvxQyPKNXKDLn8tRVHxRCsdDQ2JZvw+aZ5IRYYQVAV9iGxEar6boTwZzev+x3g== dependencies: - "@types/node" "^14.14.28" + "@types/node" "^15.0.1" "@types/sax" "^1.2.1" arg "^5.0.0" sax "^1.2.4" @@ -7648,12 +7720,12 @@ sockjs@^0.3.21: uuid "^3.4.0" websocket-driver "^0.7.4" -sort-css-media-queries@1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/sort-css-media-queries/-/sort-css-media-queries-1.5.4.tgz#24182b12002a13d01ba943ddf74f5098d7c244ce" - integrity sha512-YP5W/h4Sid/YP7Lp87ejJ5jP13/Mtqt2vx33XyhO+IAugKlufRPbOrPlIiEUuxmpNBSBd3EeeQpFhdu3RfI2Ag== +sort-css-media-queries@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/sort-css-media-queries/-/sort-css-media-queries-2.0.4.tgz#b2badfa519cb4a938acbc6d3aaa913d4949dc908" + integrity sha512-PAIsEK/XupCQwitjv7XxoMvYhT7EAfyzI3hsy/MyDgTvc+Ft55ctdkctJLOy6cQejaIC+zjpUL4djFVm2ivOOw== -source-list-map@^2.0.0, source-list-map@^2.0.1: +source-list-map@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== @@ -7674,7 +7746,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@~0.5.12, source-map-support@~0.5.19: +source-map-support@~0.5.12: version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== @@ -7682,6 +7754,14 @@ source-map-support@~0.5.12, source-map-support@~0.5.19: buffer-from "^1.0.0" source-map "^0.6.0" +source-map-support@~0.5.20: + version "0.5.20" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9" + integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-url@^0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" @@ -7781,7 +7861,7 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== @@ -7904,7 +7984,7 @@ supports-color@^6.1.0: dependencies: has-flag "^3.0.0" -supports-color@^7.0.0, supports-color@^7.1.0: +supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -7965,17 +8045,17 @@ tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== -terser-webpack-plugin@^5.1.1: - version "5.1.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.3.tgz#30033e955ca28b55664f1e4b30a1347e61aa23af" - integrity sha512-cxGbMqr6+A2hrIB5ehFIF+F/iST5ZOxvOmy9zih9ySbP1C2oEWQSOUS+2SNBTjzx5xLKO4xnod9eywdfq1Nb9A== +terser-webpack-plugin@^5.1.3: + version "5.2.4" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.2.4.tgz#ad1be7639b1cbe3ea49fab995cbe7224b31747a1" + integrity sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA== dependencies: - jest-worker "^27.0.2" + jest-worker "^27.0.6" p-limit "^3.1.0" - schema-utils "^3.0.0" - serialize-javascript "^5.0.1" + schema-utils "^3.1.1" + serialize-javascript "^6.0.0" source-map "^0.6.1" - terser "^5.7.0" + terser "^5.7.2" terser@^4.6.3: version "4.8.0" @@ -7986,14 +8066,14 @@ terser@^4.6.3: source-map "~0.6.1" source-map-support "~0.5.12" -terser@^5.7.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.0.tgz#a761eeec206bc87b605ab13029876ead938ae693" - integrity sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g== +terser@^5.7.2: + version "5.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.8.0.tgz#c6d352f91aed85cc6171ccb5e84655b77521d947" + integrity sha512-f0JH+6yMpneYcRJN314lZrSwu9eKkUFEHLN/kNy8ceh8gaRiLgFPJqrB9HsXjhEGdv4e/ekjTOFxIlL6xlma8A== dependencies: commander "^2.20.0" source-map "~0.7.2" - source-map-support "~0.5.19" + source-map-support "~0.5.20" text-table@0.2.0, text-table@^0.2.0: version "0.2.0" @@ -8107,6 +8187,11 @@ tslib@^2.0.3, tslib@^2.1.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== +tslib@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + type-fest@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" @@ -8470,7 +8555,7 @@ vfile@^4.0.0: unist-util-stringify-position "^2.0.0" vfile-message "^2.0.0" -wait-on@^5.2.1: +wait-on@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-5.3.0.tgz#584e17d4b3fe7b46ac2b9f8e5e102c005c2776c7" integrity sha512-DwrHrnTK+/0QFaB9a8Ol5Lna3k7WvUR4jzSKmz0YaPBpuN2sACyiPVKVfj6ejnjcajAcvn3wlbTyMIn9AZouOg== @@ -8501,7 +8586,7 @@ web-namespaces@^1.0.0, web-namespaces@^1.1.2: resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== -webpack-bundle-analyzer@^4.4.0: +webpack-bundle-analyzer@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz#39898cf6200178240910d629705f0f3493f7d666" integrity sha512-PIagMYhlEzFfhMYOzs5gFT55DkUdkyrJi/SxJp8EF3YMWhS+T9vvs2EoTetpk5qb6VsCq02eXTlRDOydRhDFAQ== @@ -8574,7 +8659,7 @@ webpack-log@^2.0.0: ansi-colors "^3.0.0" uuid "^3.3.2" -webpack-merge@^5.7.3: +webpack-merge@^5.8.0: version "5.8.0" resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== @@ -8590,29 +8675,27 @@ webpack-sources@^1.1.0, webpack-sources@^1.4.3: source-list-map "^2.0.0" source-map "~0.6.1" -webpack-sources@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.0.tgz#9ed2de69b25143a4c18847586ad9eccb19278cfa" - integrity sha512-WyOdtwSvOML1kbgtXbTDnEW0jkJ7hZr/bDByIwszhWd/4XX1A3XMkrbFMsuH4+/MfLlZCUzlAdg4r7jaGKEIgQ== - dependencies: - source-list-map "^2.0.1" - source-map "^0.6.1" +webpack-sources@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.1.tgz#251a7d9720d75ada1469ca07dbb62f3641a05b6d" + integrity sha512-t6BMVLQ0AkjBOoRTZgqrWm7xbXMBzD+XDq2EZ96+vMfn3qKgsvdXZhbPZ4ElUOpdv4u+iiGe+w3+J75iy/bYGA== -webpack@^5.28.0: - version "5.39.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.39.0.tgz#37d6899f1f40c31d5901abc0f39bc8cc7224138c" - integrity sha512-25CHmuDj+oOTyteI13sUqNlCnjCnySuhiKWE/cRYPQYeoQ3ijHgyWX27CiyUKLNGq27v8S0mrksyTreT/xo7pg== +webpack@^5.40.0: + version "5.52.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.52.1.tgz#2dc1d9029ecb7acfb80da7bf67baab67baa517a7" + integrity sha512-wkGb0hLfrS7ML3n2xIKfUIwHbjB6gxwQHyLmVHoAqEQBw+nWo+G6LoHL098FEXqahqximsntjBLuewStrnJk0g== dependencies: "@types/eslint-scope" "^3.7.0" - "@types/estree" "^0.0.47" - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/wasm-edit" "1.11.0" - "@webassemblyjs/wasm-parser" "1.11.0" - acorn "^8.2.1" + "@types/estree" "^0.0.50" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/wasm-edit" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + acorn "^8.4.1" + acorn-import-assertions "^1.7.6" browserslist "^4.14.5" chrome-trace-event "^1.0.2" enhanced-resolve "^5.8.0" - es-module-lexer "^0.4.0" + es-module-lexer "^0.7.1" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" @@ -8621,11 +8704,11 @@ webpack@^5.28.0: loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.0.0" + schema-utils "^3.1.0" tapable "^2.1.1" - terser-webpack-plugin "^5.1.1" + terser-webpack-plugin "^5.1.3" watchpack "^2.2.0" - webpack-sources "^2.3.0" + webpack-sources "^3.2.0" webpackbar@^5.0.0-3: version "5.0.0-3" @@ -8776,7 +8859,7 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.0: +yaml@^1.10.0, yaml@^1.10.2: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== diff --git a/packages/docusaurus-plugin-typedoc/test/specs/__snapshots__/front-matter.spec.ts.snap b/packages/docusaurus-plugin-typedoc/test/specs/__snapshots__/front-matter.spec.ts.snap deleted file mode 100644 index 70c7276e5..000000000 --- a/packages/docusaurus-plugin-typedoc/test/specs/__snapshots__/front-matter.spec.ts.snap +++ /dev/null @@ -1,114 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`FrontMatter: (globals) should set custom indexLabel 1`] = ` -"--- -id: \\"modules\\" -title: \\"test-project-name\\" -sidebar_label: \\"Custom index label\\" -sidebar_position: 0.5 -hide_table_of_contents: true -custom_edit_url: null ---- - -CONTENTS" -`; - -exports[`FrontMatter: (globals) should set default globals page 1`] = ` -"--- -id: \\"modules\\" -title: \\"test-project-name\\" -sidebar_label: \\"Table of contents\\" -sidebar_position: 0.5 -hide_table_of_contents: true -custom_edit_url: null ---- - -CONTENTS" -`; - -exports[`FrontMatter: (globals) should set globals page when readme=none 1`] = ` -"--- -id: \\"index\\" -title: \\"test-project-name\\" -slug: \\"/api\\" -sidebar_label: \\"Table of contents\\" -sidebar_position: 0.5 -hide_table_of_contents: true -custom_edit_url: null ---- - -CONTENTS" -`; - -exports[`FrontMatter: (readme) should set custom readmeLabel and readmeTitle 1`] = ` -"--- -id: \\"index\\" -title: \\"Custom readme title\\" -slug: \\"/api\\" -sidebar_label: \\"Custom readme label\\" -sidebar_position: 0 -custom_edit_url: null ---- - -CONTENTS" -`; - -exports[`FrontMatter: (readme) should set default index page 1`] = ` -"--- -id: \\"index\\" -title: \\"test-project-name\\" -slug: \\"/api\\" -sidebar_label: \\"Readme\\" -sidebar_position: 0 -custom_edit_url: null ---- - -CONTENTS" -`; - -exports[`FrontMatter: (readme) should set default index page with exports 1`] = ` -"--- -id: \\"index\\" -title: \\"test-project-name\\" -slug: \\"/api\\" -sidebar_label: \\"Exports\\" -sidebar_position: 0.5 -custom_edit_url: null ---- - -CONTENTS" -`; - -exports[`FrontMatter: (readme) should set the same custom readmeLabel and readmeTitle 1`] = ` -"--- -id: \\"index\\" -title: \\"Custom readme title\\" -slug: \\"/api\\" -sidebar_position: 0 -custom_edit_url: null ---- - -CONTENTS" -`; - -exports[`FrontMatter: (reflection names) should return front matter with full names 1`] = ` -"--- -id: \\"url\\" -title: \\"Class: FrontMatterClass\\" -sidebar_label: \\"frontmatter.FrontMatterClass\\" -custom_edit_url: null ---- - -CONTENTS" -`; - -exports[`FrontMatter: (reflection names) should return reflection labels with short names 1`] = ` -"--- -id: \\"url\\" -title: \\"Class: FrontMatterClass\\" -sidebar_label: \\"FrontMatterClass\\" -custom_edit_url: null ---- - -CONTENTS" -`; diff --git a/packages/docusaurus-plugin-typedoc/test/specs/front-matter.spec.ts b/packages/docusaurus-plugin-typedoc/test/specs/front-matter.spec.ts deleted file mode 100644 index 3d702ff69..000000000 --- a/packages/docusaurus-plugin-typedoc/test/specs/front-matter.spec.ts +++ /dev/null @@ -1,173 +0,0 @@ -import cuid from 'cuid'; -import { Application } from 'typedoc'; -import { load } from 'typedoc-plugin-markdown'; -import { PageEvent } from 'typedoc/dist/lib/output/events'; - -import { FrontMatterComponent } from '../../dist/front-matter'; -import { bootstrap } from '../../dist/render'; -import { PluginOptions } from '../../dist/types'; - -async function generate( - opts = {}, - entryPoints = [ - '../typedoc-plugin-markdown/test/stubs/src/theme.ts', - '../typedoc-plugin-markdown/test/stubs/src/frontmatter.ts', - ], -) { - const app = new Application(); - - load(app); - - bootstrap(app, { - ...opts, - entryPoints, - tsconfig: '../typedoc-plugin-markdown/test/stubs/tsconfig.json', - } as Partial); - - const project = app.convert(); - const componentNamename = cuid(); - app.renderer.addComponent( - componentNamename, - new FrontMatterComponent(app.renderer), - ); - const frontMatterComponent = app.renderer.getComponent( - componentNamename, - ) as FrontMatterComponent; - return { project, frontMatterComponent }; -} - -describe(`FrontMatter:`, () => { - describe(`(readme)`, () => { - test(`should set default index page`, async () => { - const page = { - url: 'index.md', - model: { name: 'test-project-name' }, - project: { name: 'test-project-name', url: 'modules.md' }, - contents: 'CONTENTS', - } as PageEvent; - const { frontMatterComponent } = await generate(); - frontMatterComponent.onPageEnd(page); - expect(page.contents).toMatchSnapshot(); - }); - - test(`should set default index page with exports`, async () => { - const page = { - url: 'index.md', - model: { name: 'test-project-name' }, - project: { name: 'test-project-name', url: 'index.md' }, - contents: 'CONTENTS', - } as PageEvent; - const { frontMatterComponent } = await generate({}, [ - '../typedoc-plugin-markdown/test/stubs/src/theme.ts', - ]); - frontMatterComponent.onPageEnd(page); - expect(page.contents).toMatchSnapshot(); - }); - - test(`should set custom readmeLabel and readmeTitle`, async () => { - const page = { - url: 'index.md', - model: { name: 'test-project-name' }, - project: { name: 'test-project-name', url: 'modules.md' }, - contents: 'CONTENTS', - } as PageEvent; - const { frontMatterComponent } = await generate({ - sidebar: { - readmeLabel: 'Custom readme label', - }, - readmeTitle: 'Custom readme title', - }); - frontMatterComponent.onPageEnd(page); - expect(page.contents).toMatchSnapshot(); - }); - - test(`should set the same custom readmeLabel and readmeTitle`, async () => { - const page = { - url: 'index.md', - model: { name: 'test-project-name' }, - project: { name: 'test-project-name', url: 'modules.md' }, - contents: 'CONTENTS', - } as PageEvent; - const { frontMatterComponent } = await generate({ - sidebar: { - readmeLabel: 'Custom readme title', - }, - readmeTitle: 'Custom readme title', - }); - frontMatterComponent.onPageEnd(page); - expect(page.contents).toMatchSnapshot(); - }); - }); - - describe(`(globals)`, () => { - test(`should set default globals page`, async () => { - const page = { - url: 'modules.md', - project: { name: 'test-project-name', url: 'modules.md' }, - contents: 'CONTENTS', - } as PageEvent; - const { frontMatterComponent } = await generate(); - frontMatterComponent.onPageEnd(page); - expect(page.contents).toMatchSnapshot(); - }); - - test(`should set custom indexLabel`, async () => { - const page = { - url: 'modules.md', - project: { name: 'test-project-name', url: 'modules.md' }, - contents: 'CONTENTS', - } as PageEvent; - const { frontMatterComponent } = await generate({ - sidebar: { - indexLabel: 'Custom index label', - }, - }); - frontMatterComponent.onPageEnd(page); - expect(page.contents).toMatchSnapshot(); - }); - - test(`should set globals page when readme=none`, async () => { - const page = { - url: 'modules.md', - project: { name: 'test-project-name', url: 'modules.md' }, - contents: 'CONTENTS', - } as PageEvent; - page.url = 'index.md'; - page.project.url = 'index.md'; - const { frontMatterComponent } = await generate(); - frontMatterComponent.onPageEnd(page); - expect(page.contents).toMatchSnapshot(); - }); - }); - - describe(`(reflection names)`, () => { - test(`should return reflection labels with short names`, async () => { - const { project, frontMatterComponent } = await generate(); - const page = { - project, - model: project.findReflectionByName('FrontMatterClass'), - url: 'url', - contents: 'CONTENTS', - } as PageEvent; - frontMatterComponent.onPageEnd(page); - expect(page.contents).toMatchSnapshot(); - }); - - test(`should return front matter with full names`, async () => { - const { project, frontMatterComponent } = await generate({ - sidebar: { - fullNames: true, - }, - }); - - const page = { - project, - model: project.findReflectionByName('FrontMatterClass'), - url: 'url', - contents: 'CONTENTS', - } as PageEvent; - frontMatterComponent.onPageEnd(page); - expect(page.contents).toMatchSnapshot(); - }); - }); -}); diff --git a/packages/typedoc-gitlab-wiki-theme/test/specs/theme.spec.ts b/packages/typedoc-gitlab-wiki-theme/test/specs/theme.spec.ts index 8aee10057..9ebbe90ad 100644 --- a/packages/typedoc-gitlab-wiki-theme/test/specs/theme.spec.ts +++ b/packages/typedoc-gitlab-wiki-theme/test/specs/theme.spec.ts @@ -18,16 +18,6 @@ describe(`Theme:`, () => { const sidebarFile = fs.readFileSync(testApp.tmpobj.name + '/_sidebar.md'); expect(sidebarFile.toString()).toMatchSnapshot(); }); - describe(`(relativeUrls)`, () => { - test(`should convert a url'`, async () => { - expect( - MarkdownTheme.HANDLEBARS.helpers.relativeURL('SomeClass.md'), - ).toEqual('../SomeClass'); - }); - test(`should convert a url with ancor'`, async () => { - expect( - MarkdownTheme.HANDLEBARS.helpers.relativeURL('SomeClass.md#anchor'), - ).toEqual('../SomeClass#anchor'); - }); + }); }); diff --git a/packages/typedoc-hugo-theme/src/theme.ts b/packages/typedoc-hugo-theme/src/theme.ts index 88f6448a6..44036fb68 100644 --- a/packages/typedoc-hugo-theme/src/theme.ts +++ b/packages/typedoc-hugo-theme/src/theme.ts @@ -1,7 +1,7 @@ import * as fs from 'fs'; import { BindOption, NavigationItem, ReflectionKind } from 'typedoc'; -import MarkdownTheme from 'typedoc-plugin-markdown/dist/theme'; +import { MarkdownTheme } from 'typedoc-plugin-markdown/dist/theme'; import { getPageTitle, prependYAML, diff --git a/packages/typedoc-plugin-markdown/package.json b/packages/typedoc-plugin-markdown/package.json index d48ef76ac..ef147d8e3 100644 --- a/packages/typedoc-plugin-markdown/package.json +++ b/packages/typedoc-plugin-markdown/package.json @@ -14,7 +14,7 @@ "test": "jest --colors", "build-and-test": "yarn run build && yarn run test", "fixtures": "node ./tasks/fixtures.js", - "demos": "yarn run build && npm-run-all demo:*", + "demos": "yarn run build && yarn run demo:md && yarn run demo:html", "demo:md": "typedoc --options ./demo.options.json --out ./demo/md", "demo:html": "typedoc --options ./demo.options.json --plugin none --out ./demo/html" }, @@ -38,7 +38,7 @@ "typedoc" ], "peerDependencies": { - "typedoc": ">=0.21.2" + "typedoc": ">=0.22.0" }, "dependencies": { "handlebars": "^4.7.7" diff --git a/packages/typedoc-plugin-markdown/src/components/breadcrumbs.ts b/packages/typedoc-plugin-markdown/src/components/breadcrumbs.ts deleted file mode 100644 index 15e8e5121..000000000 --- a/packages/typedoc-plugin-markdown/src/components/breadcrumbs.ts +++ /dev/null @@ -1,69 +0,0 @@ -import * as path from 'path'; - -import { BindOption, Reflection } from 'typedoc'; -import { - Component, - ContextAwareRendererComponent, -} from 'typedoc/dist/lib/output/components'; -import { PageEvent } from 'typedoc/dist/lib/output/events'; - -import MarkdownTheme from '../theme'; - -@Component({ name: 'breadcrumbs' }) -export class Breadcrumbs extends ContextAwareRendererComponent { - @BindOption('entryPoints') - entryPoints!: string[]; - @BindOption('readme') - readme!: string; - @BindOption('entryDocument') - entryDocument!: string; - - initialize() { - super.initialize(); - - MarkdownTheme.HANDLEBARS.registerHelper( - 'breadcrumbs', - (page: PageEvent) => { - const hasReadmeFile = this.readme !== path.join(process.cwd(), 'none'); - const breadcrumbs: string[] = []; - const globalsName = this.entryPoints.length > 1 ? 'Modules' : 'Exports'; - breadcrumbs.push( - page.url === this.entryDocument - ? page.project.name - : `[${ - page.project.name - }](${MarkdownTheme.HANDLEBARS.helpers.relativeURL( - this.entryDocument, - )})`, - ); - if (hasReadmeFile) { - breadcrumbs.push( - page.url === page.project.url - ? globalsName - : `[${globalsName}](${MarkdownTheme.HANDLEBARS.helpers.relativeURL( - 'modules.md', - )})`, - ); - } - const breadcrumbsOut = breadcrumb(page, page.model, breadcrumbs); - return breadcrumbsOut; - }, - ); - } -} - -function breadcrumb(page: PageEvent, model: Reflection, md: string[]) { - if (model && model.parent) { - breadcrumb(page, model.parent, md); - if (model.url) { - md.push( - page.url === model.url - ? `${escape(model.name)}` - : `[${escape( - model.name, - )}](${MarkdownTheme.HANDLEBARS.helpers.relativeURL(model.url)})`, - ); - } - } - return md.join(' / '); -} diff --git a/packages/typedoc-plugin-markdown/src/components/comments.ts b/packages/typedoc-plugin-markdown/src/components/comments.ts deleted file mode 100644 index c675d57f0..000000000 --- a/packages/typedoc-plugin-markdown/src/components/comments.ts +++ /dev/null @@ -1,230 +0,0 @@ -import * as fs from 'fs'; -import * as path from 'path'; -import * as Util from 'util'; - -import * as Handlebars from 'handlebars'; -import { BindOption, Reflection } from 'typedoc'; -import { - Component, - ContextAwareRendererComponent, -} from 'typedoc/dist/lib/output/components'; -import { RendererEvent } from 'typedoc/dist/lib/output/events'; -import { MarkedLinksPlugin } from 'typedoc/dist/lib/output/plugins'; - -import MarkdownTheme from '../theme'; - -/** - * This component is essentially a combination of TypeDoc's 'MarkedPlugin' and 'MarkedLinksPlugin'. - * The options are unchanged , but strips out all of the html configs. - */ - -@Component({ name: 'comments' }) -export class Comments extends ContextAwareRendererComponent { - @BindOption('includes') - includes!: string; - - @BindOption('media') - mediaDirectory!: string; - - @BindOption('listInvalidSymbolLinks') - listInvalidSymbolLinks!: boolean; - - /** - * The pattern used to find references in markdown. - */ - private includePattern = /\[\[include:([^\]]+?)\]\]/g; - - /** - * The pattern used to find media links. - */ - private mediaPattern = /media:\/\/([^ "\)\]\}]+)/g; - - /** - * Regular expression for detecting bracket links. - */ - private brackets = /\[\[([^\]]+)\]\]/g; - - /** - * Regular expression for detecting inline tags like {@link ...}. - */ - private inlineTag = /(?:\[(.+?)\])?\{@(link|linkcode|linkplain)\s+((?:.|\n)+?)\}/gi; - - private warnings: string[] = []; - - initialize() { - super.initialize(); - - this.listenTo( - this.owner, - { - [RendererEvent.END]: this.onEndRenderer, - }, - undefined, - 100, - ); - - const component = this; - - MarkdownTheme.HANDLEBARS.registerHelper('comment', function (this: string) { - return component.parseComments(this); - }); - } - - /** - * Parse the given comemnts string and return the resulting html. - * - * @param text The markdown string that should be parsed. - * @param context The current handlebars context. - * @returns The resulting html string. - */ - public parseComments(text: string) { - const context = Object.assign(text, ''); - - if (this.includes) { - text = text.replace( - this.includePattern, - (match: string, includesPath: string) => { - includesPath = path.join(this.includes!, includesPath.trim()); - if ( - fs.existsSync(includesPath) && - fs.statSync(includesPath).isFile() - ) { - const contents = fs.readFileSync(includesPath, 'utf-8'); - if (includesPath.substr(-4).toLocaleLowerCase() === '.hbs') { - const template = Handlebars.compile(contents); - return template(context); - } else { - return contents; - } - } else { - return ''; - } - }, - ); - } - - if (this.mediaDirectory) { - text = text.replace( - this.mediaPattern, - (match: string, mediaPath: string) => { - if (fs.existsSync(path.join(this.mediaDirectory!, mediaPath))) { - return ( - MarkdownTheme.HANDLEBARS.helpers.relativeURL('media') + - '/' + - mediaPath - ); - } else { - return match; - } - }, - ); - } - - return this.replaceInlineTags(this.replaceBrackets(text)); - } - - /** - * Find all references to symbols within the given text and transform them into a link. - * - * This function is aware of the current context and will try to find the symbol within the - * current reflection. It will walk up the reflection chain till the symbol is found or the - * root reflection is reached. As a last resort the function will search the entire project - * for the given symbol. - * - * @param text The text that should be parsed. - * @returns The text with symbol references replaced by links. - */ - private replaceBrackets(text: string): string { - return text.replace( - this.brackets, - (match: string, content: string): string => { - const split = MarkedLinksPlugin.splitLinkText(content); - return this.buildLink(match, split.target, split.caption); - }, - ); - } - - /** - * Find symbol {@link ...} strings in text and turn into html links - * - * @param text The string in which to replace the inline tags. - * @return The updated string. - */ - private replaceInlineTags(text: string): string { - return text.replace( - this.inlineTag, - ( - match: string, - leading: string, - tagName: string, - content: string, - ): string => { - const split = MarkedLinksPlugin.splitLinkText(content); - const target = split.target; - const caption = leading || split.caption; - const monospace = tagName === 'linkcode'; - - return this.buildLink(match, target, caption, monospace); - }, - ); - } - - /** - * Format a link with the given text and target. - * - * @param original The original link string, will be returned if the target cannot be resolved.. - * @param target The link target. - * @param caption The caption of the link. - * @param monospace Whether to use monospace formatting or not. - * @returns A html link tag. - */ - private buildLink( - original: string, - target: string, - caption: string, - monospace?: boolean, - ): string { - if (!this.urlPrefix.test(target)) { - let reflection: Reflection | undefined; - if (this.reflection) { - reflection = this.reflection.findReflectionByName(target); - } else if (this.project) { - reflection = this.project.findReflectionByName(target); - } - - if (reflection && reflection.url) { - if (this.urlPrefix.test(reflection.url)) { - target = reflection.url; - } else { - target = MarkdownTheme.HANDLEBARS.helpers.relativeURL(reflection.url); - } - } else { - const fullName = (this.reflection || this.project)!.getFullName(); - this.warnings.push(`In ${fullName}: ${original}`); - return original; - } - } - - if (monospace) { - caption = '`' + caption + '`'; - } - - return Util.format('[%s](%s)', caption, target); - } - - /** - * Triggered when [[Renderer]] is finished - */ - onEndRenderer(event: RendererEvent) { - if (this.listInvalidSymbolLinks && this.warnings.length > 0) { - this.application.logger.warn( - 'Found invalid symbol reference(s) in JSDocs, ' + - 'they will not render as links in the generated documentation.', - ); - - for (const warning of this.warnings) { - this.application.logger.write(' ' + warning); - } - } - } -} diff --git a/packages/typedoc-plugin-markdown/src/components/options.ts b/packages/typedoc-plugin-markdown/src/components/options.ts deleted file mode 100644 index e35c41b75..000000000 --- a/packages/typedoc-plugin-markdown/src/components/options.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { BindOption } from 'typedoc'; -import { - Component, - ContextAwareRendererComponent, -} from 'typedoc/dist/lib/output/components'; - -import MarkdownTheme from '../theme'; - -@Component({ name: 'options' }) -export class ContextAwareHelpers extends ContextAwareRendererComponent { - @BindOption('publicPath') - publicPath!: string; - - @BindOption('namedAnchors') - namedAnchors!: boolean; - - @BindOption('hideBreadcrumbs') - hideBreadcrumbs!: boolean; - - @BindOption('hidePageTitle') - hidePageTitle!: boolean; - - @BindOption('indexTitle') - indexTitle!: string; - - initialize() { - super.initialize(); - - // plugin options - - MarkdownTheme.HANDLEBARS.registerHelper('namedAnchors', () => { - return this.namedAnchors; - }); - - MarkdownTheme.HANDLEBARS.registerHelper('hideBreadcrumbs', () => { - return this.hideBreadcrumbs; - }); - - MarkdownTheme.HANDLEBARS.registerHelper('hidePageTitle', () => { - return this.hidePageTitle; - }); - - MarkdownTheme.HANDLEBARS.registerHelper('indexTitle', () => { - return this.indexTitle; - }); - - // utility helper - - MarkdownTheme.HANDLEBARS.registerHelper('relativeURL', (url: string) => { - return url - ? this.publicPath - ? this.publicPath + url - : this.getRelativeUrl(url) - : url; - }); - } -} diff --git a/packages/typedoc-plugin-markdown/src/components/toc.ts b/packages/typedoc-plugin-markdown/src/components/toc.ts deleted file mode 100644 index e5209eb2a..000000000 --- a/packages/typedoc-plugin-markdown/src/components/toc.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { BindOption } from 'typedoc'; -import { - DeclarationReflection, - ProjectReflection, - ReflectionGroup, -} from 'typedoc/dist/lib/models'; -import { - Component, - ContextAwareRendererComponent, -} from 'typedoc/dist/lib/output/components'; - -import { escape } from '../resources/helpers/escape'; -import MarkdownTheme from '../theme'; - -@Component({ name: 'toc' }) -export class TableOfContents extends ContextAwareRendererComponent { - @BindOption('hideInPageTOC') - hideInPageTOC!: boolean; - - initialize() { - super.initialize(); - - MarkdownTheme.HANDLEBARS.registerHelper( - 'toc', - (reflection: ProjectReflection | DeclarationReflection) => { - const md: string[] = []; - const isVisible = reflection.groups?.some((group) => - group.allChildrenHaveOwnDocument(), - ); - if ( - (!this.hideInPageTOC && reflection.groups) || - (isVisible && reflection.groups) - ) { - if (!this.hideInPageTOC) { - md.push(`## Table of contents\n\n`); - } - const headingLevel = this.hideInPageTOC ? `##` : `###`; - reflection.groups?.forEach((group) => { - const groupTitle = group.title; - if (group.categories) { - group.categories.forEach((category) => { - md.push(`${headingLevel} ${category.title} ${groupTitle}\n\n`); - pushGroup(category as any, md); - md.push('\n'); - }); - } else { - if (!this.hideInPageTOC || group.allChildrenHaveOwnDocument()) { - md.push(`${headingLevel} ${groupTitle}\n\n`); - pushGroup(group, md); - md.push('\n'); - } - } - }); - } - return md.length > 0 ? md.join('\n') : null; - }, - ); - } -} - -function pushGroup(group: ReflectionGroup, md: string[]) { - const children = group.children.map( - (child) => - `- [${escape(child.name)}](${MarkdownTheme.HANDLEBARS.helpers.relativeURL( - child.url, - )})`, - ); - md.push(children.join('\n')); -} diff --git a/packages/typedoc-plugin-markdown/src/groups.ts b/packages/typedoc-plugin-markdown/src/groups.ts new file mode 100644 index 000000000..444fe7c96 --- /dev/null +++ b/packages/typedoc-plugin-markdown/src/groups.ts @@ -0,0 +1,23 @@ +import { ReflectionKind } from 'typedoc'; + +const PLURALS = { + [ReflectionKind.Class]: 'Classes', + [ReflectionKind.Property]: 'Properties', + [ReflectionKind.Enum]: 'Enumerations', + [ReflectionKind.EnumMember]: 'Enumeration members', + [ReflectionKind.TypeAlias]: 'Type aliases', +}; + +export function getKindPlural(kind: ReflectionKind): string { + if (kind in PLURALS) { + return PLURALS[kind as keyof typeof PLURALS]; + } else { + return getKindString(kind) + 's'; + } +} + +function getKindString(kind: ReflectionKind): string { + let str = ReflectionKind[kind]; + str = str.replace(/(.)([A-Z])/g, (_m, a, b) => a + ' ' + b.toLowerCase()); + return str; +} diff --git a/packages/typedoc-plugin-markdown/src/index.ts b/packages/typedoc-plugin-markdown/src/index.ts index 8ffc73d5e..d88a90837 100644 --- a/packages/typedoc-plugin-markdown/src/index.ts +++ b/packages/typedoc-plugin-markdown/src/index.ts @@ -3,7 +3,7 @@ import * as path from 'path'; import { Application, ParameterType } from 'typedoc'; import { CustomOptionsReader } from './options-reader'; -import MarkdownTheme from './theme'; +import { MarkdownTheme } from './theme'; export function load(app: Application) { addDeclarations(app); @@ -75,18 +75,16 @@ function addDeclarations(app: Application) { function loadTheme(app: Application) { const themeRef = app.options.getValue('theme'); - const themeDir = path.join(__dirname); - const basePath = themeDir + '/resources'; - if ([themeDir, 'default', 'markdown'].includes(themeRef)) { - app.renderer.theme = new MarkdownTheme(app.renderer, basePath); + if (['default', 'markdown'].includes(themeRef)) { + app.renderer.theme = new MarkdownTheme(app.renderer); } else { const CustomTheme = getCustomTheme( path.resolve(path.join(themeRef, 'theme.js')), ); if (CustomTheme !== null) { app.options.addReader(new CustomOptionsReader()); - app.renderer.theme = new CustomTheme(app.renderer, basePath); + app.renderer.theme = new CustomTheme(app.renderer); } else { app.logger.warn( `[typedoc-plugin-markdown] '${themeRef}' is not a recognised markdown theme.`, @@ -97,8 +95,9 @@ function loadTheme(app: Application) { function getCustomTheme(themeFile: string) { try { - const ThemeClass = require(themeFile).default; - return ThemeClass.prototype instanceof MarkdownTheme ? ThemeClass : null; + const ThemeClass = require(themeFile); + const instance = ThemeClass[Object.keys(ThemeClass)[0]]; + return instance.prototype instanceof MarkdownTheme ? instance : null; } catch (e) { return null; } diff --git a/packages/typedoc-plugin-markdown/src/navigation-item.ts b/packages/typedoc-plugin-markdown/src/navigation-item.ts new file mode 100644 index 000000000..d68a14459 --- /dev/null +++ b/packages/typedoc-plugin-markdown/src/navigation-item.ts @@ -0,0 +1,55 @@ +import { Reflection } from 'typedoc'; + +export class NavigationItem { + title: string; + url: string; + dedicatedUrls?: string[]; + parent?: NavigationItem; + children?: NavigationItem[]; + isLabel?: boolean; + isVisible?: boolean; + isCurrent?: boolean; + isModules?: boolean; + isInPath?: boolean; + reflection?: Reflection; + + constructor( + title?: string, + url?: string, + parent?: NavigationItem, + reflection?: Reflection, + ) { + this.title = title || ''; + this.url = url || ''; + this.parent = parent; + this.reflection = reflection; + + if (!url) { + this.isLabel = true; + } + + if (this.parent) { + if (!this.parent.children) { + this.parent.children = []; + } + this.parent.children.push(this); + } + } + + static create( + reflection: Reflection, + parent?: NavigationItem, + useShortNames?: boolean, + ) { + let name: string; + if (useShortNames || (parent && parent.parent)) { + name = reflection.name; + } else { + name = reflection.getFullName(); + } + + name = name.trim(); + + return new NavigationItem(name, reflection.url, parent, reflection); + } +} diff --git a/packages/typedoc-plugin-markdown/src/render-utils.ts b/packages/typedoc-plugin-markdown/src/render-utils.ts new file mode 100644 index 000000000..7b0ad8611 --- /dev/null +++ b/packages/typedoc-plugin-markdown/src/render-utils.ts @@ -0,0 +1,78 @@ +import * as fs from 'fs'; +import * as Handlebars from 'handlebars'; +import * as path from 'path'; +import { ContainerReflection, PageEvent } from 'typedoc'; +import breadcrumbsHelper from './resources/helpers/breadcrumbs'; +import commentHelper from './resources/helpers/comment'; +import commentsHelper from './resources/helpers/comments'; +import declarationTitleHelper from './resources/helpers/declaration-title'; +import escapeHelper from './resources/helpers/escape'; +import hierarchyHelper from './resources/helpers/hierarchy'; +import ifShowBreadcrumbsHelper from './resources/helpers/if-show-breadcrumbs'; +import ifShowNamedAnchorsHelper from './resources/helpers/if-show-named-anchors'; +import ifShowPageTitleHelper from './resources/helpers/if-show-page-title'; +import ifShowReturnsHelper from './resources/helpers/if-show-returns'; +import ifShowTypeHierarchyHelper from './resources/helpers/if-show-type-hierarchy'; +import indexSignatureTitleHelper from './resources/helpers/index-signature-title'; +import parameterTableHelper from './resources/helpers/parameter-table'; +import propertyTableHelper from './resources/helpers/property-table'; +import reflectionPathHelper from './resources/helpers/reflection-path'; +import reflectionTitleHelper from './resources/helpers/reflection-title'; +import relativeUrlHelper from './resources/helpers/relative-url'; +import signatureTitleHelper from './resources/helpers/signature-title'; +import tocHelper from './resources/helpers/toc'; +import typeHelper from './resources/helpers/type'; +import typeAndParentHelper from './resources/helpers/type-and-parent'; +import typeParameterTableHelper from './resources/helpers/type-parameter-table'; +import { MarkdownTheme } from './theme'; + +const TEMPLATE_PATH = path.join(__dirname, 'resources', 'templates'); + +export const indexTemplate = Handlebars.compile( + fs.readFileSync(path.join(TEMPLATE_PATH, 'index.hbs')).toString(), +); + +export const reflectionTemplate = Handlebars.compile( + fs.readFileSync(path.join(TEMPLATE_PATH, 'reflection.hbs')).toString(), +); + +export function getReflectionMemberTemplate() { + return (pageEvent: PageEvent) => 'REFLECTION_MEMBER'; +} + +export function registerPartials() { + const partialsFolder = path.join(__dirname, 'resources', 'partials'); + const partialFiles = fs.readdirSync(partialsFolder); + partialFiles.forEach((partialFile) => { + const partialName = path.basename(partialFile, '.hbs'); + const partialContent = fs + .readFileSync(partialsFolder + '/' + partialFile) + .toString(); + Handlebars.registerPartial(partialName, partialContent); + }); +} + +export function registerHelpers(theme: MarkdownTheme) { + breadcrumbsHelper(theme); + commentHelper(theme); + commentsHelper(); + declarationTitleHelper(); + escapeHelper(); + hierarchyHelper(); + ifShowBreadcrumbsHelper(theme); + ifShowNamedAnchorsHelper(theme); + ifShowPageTitleHelper(theme); + ifShowReturnsHelper(); + ifShowTypeHierarchyHelper(); + indexSignatureTitleHelper(); + parameterTableHelper(); + propertyTableHelper(); + reflectionPathHelper(); + reflectionTitleHelper(theme); + relativeUrlHelper(theme); + signatureTitleHelper(); + tocHelper(theme); + typeHelper(); + typeAndParentHelper(); + typeParameterTableHelper(); +} diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/breadcrumbs.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/breadcrumbs.ts index f94aae455..11690e79d 100644 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/breadcrumbs.ts +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/breadcrumbs.ts @@ -1,7 +1,47 @@ -import { PageEvent } from 'typedoc/dist/lib/output/events'; +import * as Handlebars from 'handlebars'; +import { PageEvent } from 'typedoc'; +import { MarkdownTheme } from '../../theme'; -import MarkdownTheme from '../../theme'; +export default function (theme: MarkdownTheme) { + Handlebars.registerHelper('breadcrumbs', function (this: PageEvent) { + const { entryPoints, entryDocument, project, readme } = theme; -export function breadcrumbs(this: PageEvent) { - return MarkdownTheme.HANDLEBARS.helpers.breadcrumbs(this); + if (!project) { + return ''; + } + + const hasReadmeFile = !readme.endsWith('none'); + const breadcrumbs: string[] = []; + const globalsName = entryPoints.length > 1 ? 'Modules' : 'Exports'; + breadcrumbs.push( + this.url === entryDocument + ? project.name + : `[${project.name}](${Handlebars.helpers.relativeURL(entryDocument)})`, + ); + if (hasReadmeFile) { + breadcrumbs.push( + this.url === project.url + ? globalsName + : `[${globalsName}](${Handlebars.helpers.relativeURL('modules.md')})`, + ); + } + const breadcrumbsOut = breadcrumb(this, this.model, breadcrumbs); + return breadcrumbsOut; + }); +} + +function breadcrumb(page: PageEvent, model: any, md: string[]) { + if (model && model.parent) { + breadcrumb(page, model.parent, md); + if (model.url) { + md.push( + page.url === model.url + ? `${escape(model.name)}` + : `[${escape(model.name)}](${Handlebars.helpers.relativeURL( + model.url, + )})`, + ); + } + } + return md.join(' / '); } diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/comment.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/comment.ts index 85abf387a..7b4ff7375 100644 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/comment.ts +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/comment.ts @@ -1,28 +1,84 @@ -import { Comment } from 'typedoc/dist/lib/models'; - -import MarkdownTheme from '../../theme'; - -export function comment(this: Comment) { - const md: string[] = []; - - if (this.shortText) { - md.push(MarkdownTheme.HANDLEBARS.helpers.comment.call(this.shortText)); - } - if (this.text) { - md.push(MarkdownTheme.HANDLEBARS.helpers.comment.call(this.text)); - } - if (this.tags) { - const tags = this.tags.map( - (tag) => - `**\`${tag.tagName}\`**${ - tag.text - ? MarkdownTheme.HANDLEBARS.helpers.comment.call( - (tag.text.startsWith('\n') ? '' : ' ') + tag.text, - ) - : '' - }`, - ); - md.push(tags.join('\n\n')); - } - return md.join('\n\n'); +import * as Handlebars from 'handlebars'; +import { MarkdownTheme } from '../../theme'; + +const URL_PREFIX = /^(http|ftp)s?:\/\//; +const BRACKETS = /\[\[([^\]]+)\]\]/g; +const INLINE_TAG = + /(?:\[(.+?)\])?\{@(link|linkcode|linkplain)\s+((?:.|\n)+?)\}/gi; + +export default function (theme: MarkdownTheme) { + Handlebars.registerHelper('comment', function (this: string) { + const { project } = theme; + + function replaceBrackets(text: string) { + return text.replace( + BRACKETS, + (match: string, content: string): string => { + const split = splitLinkText(content); + return buildLink(match, split.target, split.caption); + }, + ); + } + + function replaceInlineTags(text: string): string { + return text.replace( + INLINE_TAG, + (match: string, leading: string, tagName: string, content: string) => { + const split = splitLinkText(content); + const target = split.target; + const caption = leading || split.caption; + + return buildLink(match, target, caption, tagName === 'linkcode'); + }, + ); + } + + function buildLink( + original: string, + target: string, + caption: string, + monospace = false, + ) { + if (monospace) { + caption = '`' + caption + '`'; + } + + if (URL_PREFIX.test(target)) { + return `[${caption}](${target})`; + } + + const reflection = project?.findReflectionByName(target); + + if (reflection && reflection.url) { + return `[${caption}](${Handlebars.helpers.relativeURL( + reflection.url, + )})`; + } else { + return original; + } + } + + function splitLinkText(text: string) { + let splitIndex = text.indexOf('|'); + if (splitIndex === -1) { + splitIndex = text.search(/\s/); + } + if (splitIndex !== -1) { + return { + caption: text + .substr(splitIndex + 1) + .replace(/\n+/, ' ') + .trim(), + target: text.substr(0, splitIndex).trim(), + }; + } else { + return { + caption: text, + target: text, + }; + } + } + + return replaceInlineTags(replaceBrackets(this)); + }); } diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/comments.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/comments.ts new file mode 100644 index 000000000..6f256bc70 --- /dev/null +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/comments.ts @@ -0,0 +1,32 @@ +import * as Handlebars from 'handlebars'; +import { Comment } from 'typedoc'; + +export default function () { + Handlebars.registerHelper('comments', function (this: Comment) { + const md: string[] = []; + + if (this.shortText) { + md.push(Handlebars.helpers.comment.call(this.shortText)); + } + + if (this.text) { + md.push(Handlebars.helpers.comment.call(this.text)); + } + + if (this.tags) { + const tags = this.tags.map( + (tag) => + `**\`${tag.tagName}\`**${ + tag.text + ? Handlebars.helpers.comment.call( + (tag.text.startsWith('\n') ? '' : ' ') + tag.text, + ) + : '' + }`, + ); + md.push(tags.join('\n\n')); + } + + return md.join('\n\n'); + }); +} diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/declaration-title.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/declaration-title.ts index 29d38bc3b..c97d0b06e 100644 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/declaration-title.ts +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/declaration-title.ts @@ -1,51 +1,66 @@ -import { DeclarationReflection, ParameterReflection } from 'typedoc'; +import * as Handlebars from 'handlebars'; import { + DeclarationReflection, LiteralType, + ParameterReflection, ReflectionKind, ReflectionType, -} from 'typedoc/dist/lib/models'; -import { escape } from './escape'; -import { memberSymbol } from './member-symbol'; -import { stripComments } from './strip-comments'; -import { stripLineBreaks } from './strip-line-breaks'; -import { type } from './type'; +} from 'typedoc'; +import { + escapeChars, + memberSymbol, + stripComments, + stripLineBreaks, +} from '../../utils'; -export function declarationTitle( - this: ParameterReflection | DeclarationReflection, -) { - const md = [memberSymbol.call(this)]; - if (this.flags && this.flags.length > 0 && !this.flags.isRest) { - md.push(' ' + this.flags.map((flag) => `\`${flag}\``).join(' ')); - } - md.push(`${this.flags.isRest ? '... ' : ''} **${escape(this.name)}**`); - if (this instanceof DeclarationReflection && this.typeParameters) { - md.push( - `<${this.typeParameters - .map((typeParameter) => `\`${typeParameter.name}\``) - .join(', ')}\\>`, - ); - } +export default function () { + Handlebars.registerHelper( + 'declarationTitle', + function (this: ParameterReflection | DeclarationReflection) { + const md = [memberSymbol(this)]; - if (!this.parent?.kindOf(ReflectionKind.Enum)) { - md.push(getType(this)); - } + function getType( + reflection: ParameterReflection | DeclarationReflection, + ) { + const reflectionType = reflection.type as ReflectionType; + if (reflectionType && reflectionType.declaration?.children) { + return ': `Object`'; + } + return ( + ': ' + + Handlebars.helpers.type.call( + reflectionType ? reflectionType : reflection, + 'object', + ) + ); + } - if ( - !(this.type instanceof LiteralType) && - this.defaultValue && - this.defaultValue !== '...' - ) { - md.push(` = \`${stripLineBreaks(stripComments(this.defaultValue))}\``); - } - return md.join(''); -} + if (this.flags && this.flags.length > 0 && !this.flags.isRest) { + md.push(' ' + this.flags.map((flag) => `\`${flag}\``).join(' ')); + } + md.push( + `${this.flags.isRest ? '... ' : ''} **${escapeChars(this.name)}**`, + ); + if (this instanceof DeclarationReflection && this.typeParameters) { + md.push( + `<${this.typeParameters + .map((typeParameter) => `\`${typeParameter.name}\``) + .join(', ')}\\>`, + ); + } + + if (!this.parent?.kindOf(ReflectionKind.Enum)) { + md.push(getType(this)); + } -function getType(reflection: ParameterReflection | DeclarationReflection) { - const reflectionType = reflection.type as ReflectionType; - if (reflectionType && reflectionType.declaration?.children) { - return ': `Object`'; - } - return ( - ': ' + type.call(reflectionType ? reflectionType : reflection, 'object') + if ( + !(this.type instanceof LiteralType) && + this.defaultValue && + this.defaultValue !== '...' + ) { + md.push(` = \`${stripLineBreaks(stripComments(this.defaultValue))}\``); + } + return md.join(''); + }, ); } diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/escape.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/escape.ts index 09c3546fa..cbbe51ae0 100644 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/escape.ts +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/escape.ts @@ -1,7 +1,11 @@ -export function escape(str: string) { - return str - .replace(/>/g, '\\>') - .replace(/_/g, '\\_') - .replace(/`/g, '\\`') - .replace(/\|/g, '\\|'); +import * as Handlebars from 'handlebars'; + +export default function () { + Handlebars.registerHelper('escape', function (str: string) { + return str + .replace(/>/g, '\\>') + .replace(/_/g, '\\_') + .replace(/`/g, '\\`') + .replace(/\|/g, '\\|'); + }); } diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/hierarchy.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/hierarchy.ts index 4a9544c99..a1c1307f8 100644 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/hierarchy.ts +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/hierarchy.ts @@ -1,24 +1,28 @@ +import * as Handlebars from 'handlebars'; import { DeclarationHierarchy } from 'typedoc/dist/lib/models'; +import { spaces } from '../../utils'; -import { spaces } from './spaces'; -import { type } from './type'; +export default function () { + Handlebars.registerHelper( + 'hierarchy', + function (this: DeclarationHierarchy, level: number) { + const md: string[] = []; + const symbol = level > 0 ? getSymbol(level) : '-'; + this.types.forEach((hierarchyType) => { + if (this.isTarget) { + md.push(`${symbol} **\`${hierarchyType}\`**`); + } else { + md.push(`${symbol} ${Handlebars.helpers.type.call(hierarchyType)}`); + } + }); + if (this.next) { + md.push(Handlebars.helpers.hierarchy.call(this.next, level + 1)); + } + return md.join('\n\n'); + }, + ); -export function hierarchy(this: DeclarationHierarchy, level: number) { - const md: string[] = []; - const symbol = level > 0 ? getSymbol(level) : '-'; - this.types.forEach((hierarchyType) => { - if (this.isTarget) { - md.push(`${symbol} **\`${hierarchyType}\`**`); - } else { - md.push(`${symbol} ${type.call(hierarchyType)}`); - } - }); - if (this.next) { - md.push(hierarchy.call(this.next, level + 1)); + function getSymbol(level: number) { + return spaces(2) + [...Array(level)].map(() => '↳').join(''); } - return md.join('\n\n'); -} - -function getSymbol(level: number) { - return spaces(2) + [...Array(level)].map(() => '↳').join(''); } diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/if-show-breadcrumbs.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/if-show-breadcrumbs.ts index 1a71184fd..65d6a19b5 100644 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/if-show-breadcrumbs.ts +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/if-show-breadcrumbs.ts @@ -1,13 +1,12 @@ import * as Handlebars from 'handlebars'; -import { PageEvent } from 'typedoc/dist/lib/output/events'; +import { PageEvent } from 'typedoc'; +import { MarkdownTheme } from '../../theme'; -import MarkdownTheme from '../../theme'; - -export function ifShowBreadcrumbs( - this: PageEvent, - options: Handlebars.HelperOptions, -) { - return MarkdownTheme.HANDLEBARS.helpers.hideBreadcrumbs() - ? options.inverse(this) - : options.fn(this); +export default function (theme: MarkdownTheme) { + Handlebars.registerHelper( + 'ifShowBreadcrumbs', + function (this: PageEvent, options: Handlebars.HelperOptions) { + return theme.hideBreadcrumbs ? options.inverse(this) : options.fn(this); + }, + ); } diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/if-show-named-anchors.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/if-show-named-anchors.ts index 15e144fe0..c7eaae1f1 100644 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/if-show-named-anchors.ts +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/if-show-named-anchors.ts @@ -1,9 +1,12 @@ import * as Handlebars from 'handlebars'; +import { PageEvent } from 'typedoc'; +import { MarkdownTheme } from '../../theme'; -import MarkdownTheme from '../../theme'; - -export function ifShowNamedAnchors(options: Handlebars.HelperOptions) { - return MarkdownTheme.HANDLEBARS.helpers.namedAnchors() - ? options.fn(this) - : options.inverse(this); +export default function (theme: MarkdownTheme) { + Handlebars.registerHelper( + 'ifShowNamedAnchors', + function (this: PageEvent, options: Handlebars.HelperOptions) { + return theme.namedAnchors ? options.fn(this) : options.inverse(this); + }, + ); } diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/if-show-page-title.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/if-show-page-title.ts index 861586325..92714071a 100644 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/if-show-page-title.ts +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/if-show-page-title.ts @@ -1,13 +1,12 @@ import * as Handlebars from 'handlebars'; -import { PageEvent } from 'typedoc/dist/lib/output/events'; +import { PageEvent } from 'typedoc'; +import { MarkdownTheme } from '../../theme'; -import MarkdownTheme from '../../theme'; - -export function ifShowPageTitle( - this: PageEvent, - options: Handlebars.HelperOptions, -) { - return MarkdownTheme.HANDLEBARS.helpers.hidePageTitle() - ? options.inverse(this) - : options.fn(this); +export default function (theme: MarkdownTheme) { + Handlebars.registerHelper( + 'ifShowPageTitle', + function (this: PageEvent, options: Handlebars.HelperOptions) { + return theme.hidePageTitle ? options.inverse(this) : options.fn(this); + }, + ); } diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/if-show-returns.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/if-show-returns.ts index f2e3f02b1..fca17367f 100644 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/if-show-returns.ts +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/if-show-returns.ts @@ -1,11 +1,13 @@ import * as Handlebars from 'handlebars'; import { ReflectionKind, SignatureReflection } from 'typedoc'; -export function ifShowReturns( - this: SignatureReflection, - options: Handlebars.HelperOptions, -) { - return this.type && !this.parent?.kindOf(ReflectionKind.Constructor) - ? options.fn(this) - : options.inverse(this); +export default function () { + Handlebars.registerHelper( + 'ifShowReturns', + function (this: SignatureReflection, options: Handlebars.HelperOptions) { + return this.type && !this.parent?.kindOf(ReflectionKind.Constructor) + ? options.fn(this) + : options.inverse(this); + }, + ); } diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/if-show-type-hierarchy.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/if-show-type-hierarchy.ts index 9a881abb9..9ed71ded7 100644 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/if-show-type-hierarchy.ts +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/if-show-type-hierarchy.ts @@ -1,13 +1,18 @@ import * as Handlebars from 'handlebars'; -import { DeclarationHierarchy } from 'typedoc'; -import { PageEvent } from 'typedoc/dist/lib/output/events'; +import { DeclarationHierarchy, DeclarationReflection } from 'typedoc'; +import { PageEvent } from 'typedoc'; -export function ifShowTypeHierarchy( - this: PageEvent, - options: Handlebars.HelperOptions, -) { - const typeHierarchy = this.model?.typeHierarchy as DeclarationHierarchy; - return typeHierarchy && typeHierarchy.next - ? options.fn(this) - : options.inverse(this); +export default function () { + Handlebars.registerHelper( + 'ifShowTypeHierarchy', + function ( + this: PageEvent, + options: Handlebars.HelperOptions, + ) { + const typeHierarchy = this.model?.typeHierarchy as DeclarationHierarchy; + return typeHierarchy && typeHierarchy.next + ? options.fn(this) + : options.inverse(this); + }, + ); } diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/index-signature-title.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/index-signature-title.ts index 64b0633b1..ec641c795 100644 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/index-signature-title.ts +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/index-signature-title.ts @@ -1,13 +1,24 @@ +import * as Handlebars from 'handlebars'; import { SignatureReflection } from 'typedoc'; -import { type } from './type'; -export function indexSignatureTitle(this: SignatureReflection) { - const md = ['▪']; - const parameters = this.parameters - ? this.parameters.map((parameter) => { - return `${parameter.name}: ${type.call(parameter.type)}`; - }) - : []; - md.push(`\[${parameters.join('')}\]: ${type.call(this.type)}`); - return md.join(' '); +export default function () { + Handlebars.registerHelper( + 'indexSignatureTitle', + function (this: SignatureReflection) { + const md = ['▪']; + const parameters = this.parameters + ? this.parameters.map((parameter) => { + return `${parameter.name}: ${Handlebars.helpers.type.call( + parameter.type, + )}`; + }) + : []; + md.push( + `\[${parameters.join('')}\]: ${Handlebars.helpers.type.call( + this.type, + )}`, + ); + return md.join(' '); + }, + ); } diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/member-symbol.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/member-symbol.ts deleted file mode 100644 index 310e530ec..000000000 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/member-symbol.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { DeclarationReflection, ReflectionKind } from 'typedoc'; - -export function memberSymbol(this: DeclarationReflection) { - const isStatic = this.flags && this.flags.isStatic; - - if (this.kind === ReflectionKind.CallSignature) { - return '▸'; - } - if (this.kind === ReflectionKind.TypeAlias) { - return 'Ƭ'; - } - if (this.kind === ReflectionKind.ObjectLiteral) { - return '▪'; - } - if (this.kind === ReflectionKind.Property && isStatic) { - return '▪'; - } - - return '•'; -} diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/parameter-table.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/parameter-table.ts index e3e149070..0e9c9648c 100644 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/parameter-table.ts +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/parameter-table.ts @@ -1,34 +1,39 @@ +import * as Handlebars from 'handlebars'; import { ParameterReflection, ReflectionKind } from 'typedoc'; - -import { comment } from './comment'; -import { stripLineBreaks } from './strip-line-breaks'; -import { getReflectionType, type } from './type'; - -export function parameterTable(this: ParameterReflection[]) { - const flattenParams = (current: any) => { - return current.type?.declaration?.children?.reduce( - (acc: any, child: any) => { - const childObj = { - ...child, - name: `${current.name}.${child.name}`, - }; - return parseParams(childObj, acc); - }, - [], - ); - }; - - const parseParams = (current: any, acc: any) => { - const shouldFlatten = - current.type?.declaration?.kind === ReflectionKind.TypeLiteral && - current.type?.declaration?.children; - return shouldFlatten - ? [...acc, current, ...flattenParams(current)] - : [...acc, current]; - }; - - return table( - this.reduce((acc: any, current: any) => parseParams(current, acc), []), +import { stripLineBreaks } from '../../utils'; +import { getReflectionType } from './type'; + +export default function () { + Handlebars.registerHelper( + 'parameterTable', + + function (this: ParameterReflection[]) { + const flattenParams = (current: any) => { + return current.type?.declaration?.children?.reduce( + (acc: any, child: any) => { + const childObj = { + ...child, + name: `${current.name}.${child.name}`, + }; + return parseParams(childObj, acc); + }, + [], + ); + }; + + const parseParams = (current: any, acc: any) => { + const shouldFlatten = + current.type?.declaration?.kind === ReflectionKind.TypeLiteral && + current.type?.declaration?.children; + return shouldFlatten + ? [...acc, current, ...flattenParams(current)] + : [...acc, current]; + }; + + return table( + this.reduce((acc: any, current: any) => parseParams(current, acc), []), + ); + }, ); } @@ -62,7 +67,7 @@ function table(parameters: any) { row.push( parameter.type - ? type.call(parameter.type, 'object') + ? Handlebars.helpers.type.call(parameter.type, 'object') : getReflectionType(parameter, 'object'), ); @@ -72,10 +77,9 @@ function table(parameters: any) { if (hasComments) { if (parameter.comment) { row.push( - stripLineBreaks(comment.call(parameter.comment)).replace( - /\|/g, - '\\|', - ), + stripLineBreaks( + Handlebars.helpers.comments.call(parameter.comment), + ).replace(/\|/g, '\\|'), ); } else { row.push('-'); diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/property-table.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/property-table.ts index 90269452e..ec08ca124 100644 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/property-table.ts +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/property-table.ts @@ -1,77 +1,86 @@ +import * as Handlebars from 'handlebars'; import { DeclarationReflection } from 'typedoc'; +import { escapeChars, stripLineBreaks } from '../../utils'; -import { comment } from './comment'; -import { escape } from './escape'; -import { signatureTitle } from './signature-title'; -import { stripLineBreaks } from './strip-line-breaks'; -import { type } from './type'; +export default function () { + Handlebars.registerHelper( + 'propertyTable', + function (this: DeclarationReflection[]) { + const comments = this.map( + (param) => + !!param.comment?.text?.trim() || !!param.comment?.shortText?.trim(), + ); + const hasComments = !comments.every((value) => !value); -export function propertyTable(this: DeclarationReflection[]) { - const comments = this.map( - (param) => - !!param.comment?.text?.trim() || !!param.comment?.shortText?.trim(), - ); - const hasComments = !comments.every((value) => !value); - - const headers = ['Name', 'Type']; + const headers = ['Name', 'Type']; - if (hasComments) { - headers.push('Description'); - } + if (hasComments) { + headers.push('Description'); + } - const flattenParams = (current: any) => { - return current.type?.declaration?.children?.reduce( - (acc: any, child: any) => { - const childObj = { - ...child, - name: `${current.name}.${child.name}`, - }; - return parseParams(childObj, acc); - }, - [], - ); - }; + const flattenParams = (current: any) => { + return current.type?.declaration?.children?.reduce( + (acc: any, child: any) => { + const childObj = { + ...child, + name: `${current.name}.${child.name}`, + }; + return parseParams(childObj, acc); + }, + [], + ); + }; - const parseParams = (current: any, acc: any) => { - const shouldFlatten = current.type?.declaration?.children; + const parseParams = (current: any, acc: any) => { + const shouldFlatten = current.type?.declaration?.children; - return shouldFlatten - ? [...acc, current, ...flattenParams(current)] - : [...acc, current]; - }; + return shouldFlatten + ? [...acc, current, ...flattenParams(current)] + : [...acc, current]; + }; - const properties = this.reduce( - (acc: any, current: any) => parseParams(current, acc), - [], - ); + const properties = this.reduce( + (acc: any, current: any) => parseParams(current, acc), + [], + ); - const rows = properties.map((property) => { - const propertyType = property.type ? property.type : property; - const row: string[] = []; - const nameCol: string[] = []; - const name = - property.name.match(/[\\`\\|]/g) !== null - ? escape(getName(property)) - : `\`${getName(property)}\``; - nameCol.push(name); - row.push(nameCol.join(' ')); - row.push(type.call(propertyType, 'object').replace(/(? { + const propertyType = property.type ? property.type : property; + const row: string[] = []; + const nameCol: string[] = []; + const name = + property.name.match(/[\\`\\|]/g) !== null + ? escapeChars(getName(property)) + : `\`${getName(property)}\``; + nameCol.push(name); + row.push(nameCol.join(' ')); + row.push( + Handlebars.helpers.type + .call(propertyType, 'object') + .replace(/(? ':------') - .join(' | ')} |\n${rows.join('')}`; + const output = `\n| ${headers.join(' | ')} |\n| ${headers + .map(() => ':------') + .join(' | ')} |\n${rows.join('')}`; - return output; + return output; + }, + ); } function getName(property: DeclarationReflection) { @@ -80,9 +89,21 @@ function getName(property: DeclarationReflection) { md.push('...'); } if (property.getSignature) { - md.push(signatureTitle.call(property.getSignature, 'get', false)); + md.push( + Handlebars.helpers.signatureTitle.call( + property.getSignature, + 'get', + false, + ), + ); } else if (property.setSignature) { - md.push(signatureTitle.call(property.setSignature, 'set', false)); + md.push( + Handlebars.helpers.signatureTitle.call( + property.setSignature, + 'set', + false, + ), + ); } else { md.push(property.name); } diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/reflection-path.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/reflection-path.ts index 85ba3ac58..6ad0efc6e 100644 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/reflection-path.ts +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/reflection-path.ts @@ -1,27 +1,36 @@ -import { ReflectionKind } from 'typedoc'; +import * as Handlebars from 'handlebars'; +import { ContainerReflection, ReflectionKind } from 'typedoc'; import { PageEvent } from 'typedoc/dist/lib/output/events'; -import { relativeURL } from './relative-url'; +export default function () { + Handlebars.registerHelper( + 'reflectionPath', -export function reflectionPath(this: PageEvent) { - if (this.model) { - if (this.model.kind && this.model.kind !== ReflectionKind.Module) { - const title: string[] = []; - if (this.model.parent && this.model.parent.parent) { - if (this.model.parent.parent.parent) { - title.push( - `[${this.model.parent.parent.name}](${relativeURL( - this.model.parent.parent.url, - )})`, - ); + function (this: PageEvent) { + if (this.model) { + if (this.model.kind && this.model.kind !== ReflectionKind.Module) { + const title: string[] = []; + if (this.model.parent && this.model.parent.parent) { + if (this.model.parent.parent.parent) { + title.push( + `[${ + this.model.parent.parent.name + }](${Handlebars.helpers.relativeURL( + this.model?.parent?.parent.url, + )})`, + ); + } + title.push( + `[${this.model.parent.name}](${Handlebars.helpers.relativeURL( + this.model.parent.url, + )})`, + ); + } + title.push(this.model.name); + return title.length > 1 ? `${title.join('.')}` : null; } - title.push( - `[${this.model.parent.name}](${relativeURL(this.model.parent.url)})`, - ); } - title.push(this.model.name); - return title.length > 1 ? `${title.join('.')}` : null; - } - } - return null; + return null; + }, + ); } diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/reflection-title.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/reflection-title.ts index 00dc273ed..a22330188 100644 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/reflection-title.ts +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/reflection-title.ts @@ -1,27 +1,34 @@ -import { ParameterReflection } from 'typedoc'; -import { PageEvent } from 'typedoc/dist/lib/output/events'; +import * as Handlebars from 'handlebars'; +import { PageEvent, ParameterReflection } from 'typedoc'; +import { escapeChars } from '../../utils'; +import { MarkdownTheme } from '../../theme'; -import MarkdownTheme from '../../theme'; -import { escape } from './escape'; - -export function reflectionTitle(this: PageEvent, shouldEscape = true) { - const title: string[] = ['']; - - if (this.model && this.model.kindString && this.url !== this.project.url) { - title.push(`${this.model.kindString}: `); - } - if (this.url === this.project.url) { - title.push( - MarkdownTheme.HANDLEBARS.helpers.indexTitle() || this.project.name, - ); - } else { - title.push(shouldEscape ? escape(this.model.name) : this.model.name); - if (this.model.typeParameters) { - const typeParameters = this.model.typeParameters - .map((typeParameter: ParameterReflection) => typeParameter.name) - .join(', '); - title.push(`<${typeParameters}${shouldEscape ? '\\>' : '>'}`); - } - } - return title.join(''); +export default function (theme: MarkdownTheme) { + Handlebars.registerHelper( + 'reflectionTitle', + function (this: PageEvent, shouldEscape = true) { + const title: string[] = ['']; + if ( + this.model && + this.model.kindString && + this.url !== this.project.url + ) { + title.push(`${this.model.kindString}: `); + } + if (this.url === this.project.url) { + title.push(theme.indexTitle || this.project.name); + } else { + title.push( + shouldEscape ? escapeChars(this.model.name) : this.model.name, + ); + if (this.model.typeParameters) { + const typeParameters = this.model.typeParameters + .map((typeParameter: ParameterReflection) => typeParameter.name) + .join(', '); + title.push(`<${typeParameters}${shouldEscape ? '\\>' : '>'}`); + } + } + return title.join(''); + }, + ); } diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/relative-url.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/relative-url.ts index 487734736..4aaab7c2b 100644 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/relative-url.ts +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/relative-url.ts @@ -1,5 +1,13 @@ -import MarkdownTheme from '../../theme'; +import * as Handlebars from 'handlebars'; -export function relativeURL(url: string) { - return MarkdownTheme.HANDLEBARS.helpers.relativeURL(url); +import { MarkdownTheme } from '../../theme'; + +export default function (theme: MarkdownTheme) { + Handlebars.registerHelper('relativeURL', function (url: string) { + return url + ? theme.publicPath + ? theme.publicPath + url + : theme.getRelativeUrl(url) + : url; + }); } diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/signature-title.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/signature-title.ts index 9e8260e35..85361dcf7 100644 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/signature-title.ts +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/signature-title.ts @@ -1,46 +1,46 @@ +import * as Handlebars from 'handlebars'; import { ParameterReflection, ReflectionKind, SignatureReflection, } from 'typedoc'; +import { memberSymbol } from '../../utils'; -import { memberSymbol } from './member-symbol'; -import { type } from './type'; +export default function () { + Handlebars.registerHelper( + 'signatureTitle', + function (this: SignatureReflection, accessor?: string, standalone = true) { + const md: string[] = []; -export function signatureTitle( - this: SignatureReflection, - accessor?: string, - standalone = true, -) { - const md: string[] = []; - - if (standalone) { - md.push(`${memberSymbol.call(this)} `); - } + if (standalone) { + md.push(`${memberSymbol(this)} `); + } - if (this.parent && this.parent.flags?.length > 0) { - md.push(this.parent.flags.map((flag) => `\`${flag}\``).join(' ') + ' '); - } + if (this.parent && this.parent.flags?.length > 0) { + md.push(this.parent.flags.map((flag) => `\`${flag}\``).join(' ') + ' '); + } - if (accessor) { - md.push(`\`${accessor}\` **${this.name}**`); - } else if (this.name !== '__call' && this.name !== '__type') { - md.push(`**${this.name}**`); - } + if (accessor) { + md.push(`\`${accessor}\` **${this.name}**`); + } else if (this.name !== '__call' && this.name !== '__type') { + md.push(`**${this.name}**`); + } - if (this.typeParameters) { - md.push( - `<${this.typeParameters - .map((typeParameter) => `\`${typeParameter.name}\``) - .join(', ')}\\>`, - ); - } - md.push(`(${getParameters(this.parameters)})`); + if (this.typeParameters) { + md.push( + `<${this.typeParameters + .map((typeParameter) => `\`${typeParameter.name}\``) + .join(', ')}\\>`, + ); + } + md.push(`(${getParameters(this.parameters)})`); - if (this.type && !this.parent?.kindOf(ReflectionKind.Constructor)) { - md.push(`: ${type.call(this.type, 'object')}`); - } - return md.join('') + (standalone ? '\n' : ''); + if (this.type && !this.parent?.kindOf(ReflectionKind.Constructor)) { + md.push(`: ${Handlebars.helpers.type.call(this.type, 'object')}`); + } + return md.join('') + (standalone ? '\n' : ''); + }, + ); } const getParameters = ( diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/spaces.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/spaces.ts deleted file mode 100644 index 414df8f9a..000000000 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/spaces.ts +++ /dev/null @@ -1,3 +0,0 @@ -export function spaces(length: number) { - return `!spaces${[...Array(length)].map(() => ' ').join('')}`; -} diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/strip-comments.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/strip-comments.ts deleted file mode 100644 index dcfd785da..000000000 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/strip-comments.ts +++ /dev/null @@ -1,6 +0,0 @@ -export function stripComments(str: string) { - return str - .replace(/(?:\/\*(?:[\s\S]*?)\*\/)|(?:^\s*\/\/(?:.*)$)/g, ' ') - .replace(/\n/g, '') - .replace(/^\s+|\s+$|(\s)+/g, '$1'); -} diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/strip-line-breaks.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/strip-line-breaks.ts deleted file mode 100644 index e6b30c9f5..000000000 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/strip-line-breaks.ts +++ /dev/null @@ -1,5 +0,0 @@ -export function stripLineBreaks(str: string) { - return str - ? str.replace(/\n/g, ' ').replace(/\r/g, ' ').replace(/\t/g, ' ').trim() - : ''; -} diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/text.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/text.ts deleted file mode 100644 index f82a7d2be..000000000 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/text.ts +++ /dev/null @@ -1,4 +0,0 @@ -import MarkdownTheme from '../../theme'; -export function text(this: string) { - return MarkdownTheme.HANDLEBARS.helpers.comment.call(this); -} diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/toc.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/toc.ts index d14ff96d8..0789d05cc 100644 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/toc.ts +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/toc.ts @@ -1,7 +1,56 @@ -import { DeclarationReflection, ProjectReflection } from 'typedoc'; +import * as Handlebars from 'handlebars'; +import { + DeclarationReflection, + ProjectReflection, + ReflectionGroup, +} from 'typedoc'; +import { MarkdownTheme } from '../../theme'; -import MarkdownTheme from '../../theme'; +export default function (theme: MarkdownTheme) { + Handlebars.registerHelper( + 'toc', + function (this: ProjectReflection | DeclarationReflection) { + const md: string[] = []; -export function toc(this: ProjectReflection | DeclarationReflection) { - return MarkdownTheme.HANDLEBARS.helpers.toc(this); + const { hideInPageTOC } = theme; + + const isVisible = this.groups?.some((group) => + group.allChildrenHaveOwnDocument(), + ); + + function pushGroup(group: ReflectionGroup, md: string[]) { + const children = group.children.map( + (child) => + `- [${escape(child.name)}](${Handlebars.helpers.relativeURL( + child.url, + )})`, + ); + md.push(children.join('\n')); + } + + if ((!hideInPageTOC && this.groups) || (isVisible && this.groups)) { + if (!hideInPageTOC) { + md.push(`## Table of contents\n\n`); + } + const headingLevel = hideInPageTOC ? `##` : `###`; + this.groups?.forEach((group) => { + const groupTitle = group.title; + if (group.categories) { + group.categories.forEach((category) => { + md.push(`${headingLevel} ${category.title} ${groupTitle}\n\n`); + pushGroup(category as any, md); + md.push('\n'); + }); + } else { + if (!hideInPageTOC || group.allChildrenHaveOwnDocument()) { + md.push(`${headingLevel} ${groupTitle}\n\n`); + pushGroup(group, md); + md.push('\n'); + } + } + }); + } + return md.length > 0 ? md.join('\n') : null; + }, + ); } diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/type-and-parent.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/type-and-parent.ts index 95a952d81..af34f9540 100644 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/type-and-parent.ts +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/type-and-parent.ts @@ -1,48 +1,57 @@ +import * as Handlebars from 'handlebars'; import { SignatureReflection } from 'typedoc'; import { ArrayType, ReferenceType } from 'typedoc/dist/lib/models/types'; +import { escapeChars } from '../../utils'; -import MarkdownTheme from '../../theme'; -import { escape } from './escape'; - -export function typeAndParent(this: ArrayType | ReferenceType) { - if (this) { - if ('elementType' in this) { - return typeAndParent.call(this.elementType) + '[]'; - } else { - if (this.reflection) { - const md: string[] = []; - if (this.reflection instanceof SignatureReflection) { - if (this.reflection.parent?.parent?.url) { - md.push( - getUrl( - this.reflection.parent.parent.name, - this.reflection.parent.parent.url, - ), - ); - if (this.reflection.parent.url) { - md.push( - getUrl(this.reflection.parent.name, this.reflection.parent.url), - ); - } - } +export default function () { + Handlebars.registerHelper( + 'typeAndParent', + function (this: ArrayType | ReferenceType) { + const getUrl = (name: string, url: string) => + `[${name}](${Handlebars.helpers.relativeURL(url)})`; + if (this) { + if ('elementType' in this) { + return Handlebars.helpers.typeAndParent.call(this.elementType) + '[]'; } else { - if (this.reflection.parent?.url) { - md.push( - getUrl(this.reflection.parent.name, this.reflection.parent.url), - ); - if (this.reflection.url) { - md.push(getUrl(this.reflection.name, this.reflection.url)); + if (this.reflection) { + const md: string[] = []; + if (this.reflection instanceof SignatureReflection) { + if (this.reflection.parent?.parent?.url) { + md.push( + getUrl( + this.reflection.parent.parent.name, + this.reflection.parent.parent.url, + ), + ); + if (this.reflection.parent.url) { + md.push( + getUrl( + this.reflection.parent.name, + this.reflection.parent.url, + ), + ); + } + } + } else { + if (this.reflection.parent?.url) { + md.push( + getUrl( + this.reflection.parent.name, + this.reflection.parent.url, + ), + ); + if (this.reflection.url) { + md.push(getUrl(this.reflection.name, this.reflection.url)); + } + } } + return md.join('.'); + } else { + return escapeChars(this.toString()); } } - return md.join('.'); - } else { - return escape(this.toString()); } - } - } - return 'void'; + return 'void'; + }, + ); } - -const getUrl = (name: string, url: string) => - `[${name}](${MarkdownTheme.HANDLEBARS.helpers.relativeURL(url)})`; diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/type-parameter-table.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/type-parameter-table.ts index d406203bd..2cef9e6c5 100644 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/type-parameter-table.ts +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/type-parameter-table.ts @@ -1,11 +1,14 @@ +import * as Handlebars from 'handlebars'; import { TypeParameterReflection } from 'typedoc'; +import { stripLineBreaks } from '../../utils'; -import { comment } from './comment'; -import { stripLineBreaks } from './strip-line-breaks'; -import { type } from './type'; - -export function typeParameterTable(this: TypeParameterReflection[]) { - return table(this); +export default function () { + Handlebars.registerHelper( + 'typeParameterTable', + function (this: TypeParameterReflection[]) { + return table(this); + }, + ); } function table(parameters: any) { @@ -37,10 +40,12 @@ function table(parameters: any) { typeCol.push(`\`${parameter.name}\``); } if (parameter.type) { - typeCol.push(`extends ${type.call(parameter.type, 'object')}`); + typeCol.push( + `extends ${Handlebars.helpers.type.call(parameter.type, 'object')}`, + ); } if (parameter.default) { - typeCol.push(type.call(parameter.default)); + typeCol.push(Handlebars.helpers.type.call(parameter.default)); } row.push(typeCol.join('')); } @@ -48,10 +53,9 @@ function table(parameters: any) { if (hasComments) { if (parameter.comment) { row.push( - stripLineBreaks(comment.call(parameter.comment)).replace( - /\|/g, - '\\|', - ), + stripLineBreaks( + Handlebars.helpers.comments.call(parameter.comment), + ).replace(/\|/g, '\\|'), ); } else { row.push('-'); diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/type.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/type.ts index 7b6ed8ae2..c73fff43d 100644 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/type.ts +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/type.ts @@ -1,7 +1,8 @@ -import { DeclarationReflection, SignatureReflection } from 'typedoc'; +import * as Handlebars from 'handlebars'; import { ArrayType, ConditionalType, + DeclarationReflection, IndexedAccessType, InferredType, IntersectionType, @@ -11,104 +12,102 @@ import { QueryType, ReferenceType, ReflectionType, + SignatureReflection, TupleType, TypeOperatorType, - TypeParameterType, UnionType, UnknownType, -} from 'typedoc/dist/lib/models/types'; - -import MarkdownTheme from '../../theme'; -import { escape } from './escape'; +} from 'typedoc'; +import { escapeChars } from '../../utils'; type Collapse = 'object' | 'function' | 'all' | 'none'; -export function type( - this: - | ArrayType - | IntersectionType - | IntrinsicType - | ReferenceType - | TupleType - | UnionType - | TypeOperatorType - | TypeParameterType - | QueryType - | PredicateType - | ReferenceType - | ConditionalType - | IndexedAccessType - | UnknownType - | InferredType, - - collapse: Collapse = 'none', - emphasis = true, -) { - if (this instanceof ReferenceType) { - return getReferenceType(this, emphasis); - } - - if (this instanceof ArrayType && this.elementType) { - return getArrayType(this, emphasis); - } - - if (this instanceof UnionType && this.types) { - return getUnionType(this, emphasis); - } - - if (this instanceof IntersectionType && this.types) { - return getIntersectionType(this); - } - - if (this instanceof TupleType && this.elements) { - return getTupleType(this); - } - - if (this instanceof IntrinsicType && this.name) { - return getIntrinsicType(this, emphasis); - } - - if (this instanceof ReflectionType && this.declaration) { - return getReflectionType(this.declaration, collapse); - } - - if (this instanceof DeclarationReflection) { - return getReflectionType(this, collapse); - } - - if (this instanceof TypeOperatorType) { - return getTypeOperatorType(this); - } - - if (this instanceof QueryType) { - return getQueryType(this); - } - - if (this instanceof TypeParameterType) { - return getTypeParameterType(this); - } - - if (this instanceof ConditionalType) { - return getConditionalType(this); - } - - if (this instanceof IndexedAccessType) { - return getIndexAccessType(this); - } - - if (this instanceof UnknownType) { - return getUnknownType(this); - } - - if (this instanceof InferredType) { - return getInferredType(this); - } - - if (this instanceof LiteralType) { - return getLiteralType(this); - } - - return this ? escape(this.toString()) : ''; +export default function () { + Handlebars.registerHelper( + 'type', + function ( + this: + | ArrayType + | IntersectionType + | IntrinsicType + | ReferenceType + | TupleType + | UnionType + | TypeOperatorType + | QueryType + | PredicateType + | ReferenceType + | ConditionalType + | IndexedAccessType + | UnknownType + | InferredType, + + collapse: Collapse = 'none', + emphasis = true, + ) { + if (this instanceof ReferenceType) { + return getReferenceType(this, emphasis); + } + + if (this instanceof ArrayType && this.elementType) { + return getArrayType(this, emphasis); + } + + if (this instanceof UnionType && this.types) { + return getUnionType(this, emphasis); + } + + if (this instanceof IntersectionType && this.types) { + return getIntersectionType(this); + } + + if (this instanceof TupleType && this.elements) { + return getTupleType(this); + } + + if (this instanceof IntrinsicType && this.name) { + return getIntrinsicType(this, emphasis); + } + + if (this instanceof ReflectionType) { + return getReflectionType(this, collapse); + } + + if (this instanceof DeclarationReflection) { + return getReflectionType(this, collapse); + } + + if (this instanceof TypeOperatorType) { + return getTypeOperatorType(this); + } + + if (this instanceof QueryType) { + return getQueryType(this); + } + + if (this instanceof ConditionalType) { + return getConditionalType(this); + } + + if (this instanceof IndexedAccessType) { + return getIndexAccessType(this); + } + + if (this instanceof UnknownType) { + return getUnknownType(this); + } + + if (this instanceof InferredType) { + return getInferredType(this); + } + + if (this instanceof LiteralType) { + return getLiteralType(this); + } + + return this ? escapeChars(this.toString()) : ''; + }, + ); } function getLiteralType(model: LiteralType) { @@ -119,17 +118,18 @@ function getLiteralType(model: LiteralType) { } export function getReflectionType( - model: DeclarationReflection, + model: DeclarationReflection | ReflectionType, collapse: Collapse, ) { - if (model.signatures) { + const root = model instanceof ReflectionType ? model.declaration : model; + if (root.signatures) { return collapse === 'function' || collapse === 'all' ? `\`fn\`` - : getFunctionType(model.signatures); + : getFunctionType(root.signatures); } return collapse === 'object' || collapse === 'all' ? `\`Object\`` - : getDeclarationType(model); + : getDeclarationType(root); } function getDeclarationType(model: DeclarationReflection) { @@ -142,17 +142,19 @@ function getDeclarationType(model: DeclarationReflection) { (param) => `[${param.name}: ${param.type}]`, ) : ''; - const obj = type.call(declarationIndexSignature.type); + const obj = Handlebars.helpers.type.call(declarationIndexSignature.type); indexSignature = `${key}: ${obj}; `; } const types = model.children && model.children.map((obj) => { - return `\`${obj.name}${obj.flags.isOptional ? '?' : ''}\`: ${type.call( + return `\`${obj.name}${ + obj.flags.isOptional ? '?' : '' + }\`: ${Handlebars.helpers.type.call( obj.signatures || obj.children ? obj : obj.type, )} ${ obj.defaultValue && obj.defaultValue !== '...' - ? `= ${escape(obj.defaultValue)}` + ? `= ${escapeChars(obj.defaultValue)}` : '' }`; }); @@ -160,7 +162,7 @@ function getDeclarationType(model: DeclarationReflection) { types ? types.join('; ') : '' } }${ model.defaultValue && model.defaultValue !== '...' - ? `= ${escape(model.defaultValue)}` + ? `= ${escapeChars(model.defaultValue)}` : '' }`; } @@ -178,10 +180,12 @@ export function getFunctionType(modelSignatures: SignatureReflection[]) { ? fn.parameters.map((param) => { return `${param.flags.isRest ? '...' : ''}\`${param.name}${ param.flags.isOptional ? '?' : '' - }\`: ${type.call(param.type ? param.type : param)}`; + }\`: ${Handlebars.helpers.type.call( + param.type ? param.type : param, + )}`; }) : []; - const returns = type.call(fn.type); + const returns = Handlebars.helpers.type.call(fn.type); return typeParams + `(${params.join(', ')}) => ${returns}`; }); return functions.join(''); @@ -192,7 +196,7 @@ function getReferenceType(model: ReferenceType, emphasis) { const reflection = model.reflection && model.reflection.url ? [ - `[${`\`${model.reflection.name}\``}](${MarkdownTheme.HANDLEBARS.helpers.relativeURL( + `[${`\`${model.reflection.name}\``}](${Handlebars.helpers.relativeURL( model.reflection.url, )})`, ] @@ -200,17 +204,23 @@ function getReferenceType(model: ReferenceType, emphasis) { if (model.typeArguments && model.typeArguments.length > 0) { reflection.push( `<${model.typeArguments - .map((typeArgument) => type.call(typeArgument, 'all')) + .map((typeArgument) => + Handlebars.helpers.type.call(typeArgument, 'all'), + ) .join(', ')}\\>`, ); } return reflection.join(''); } - return emphasis ? `\`${model.name}\`` : escape(model.name); + return emphasis ? `\`${model.name}\`` : escapeChars(model.name); } function getArrayType(model: ArrayType, emphasis: boolean) { - const arrayType = type.call(model.elementType, 'none', emphasis); + const arrayType = Handlebars.helpers.type.call( + model.elementType, + 'none', + emphasis, + ); return model.elementType.type === 'union' ? `(${arrayType})[]` : `${arrayType}[]`; @@ -218,60 +228,60 @@ function getArrayType(model: ArrayType, emphasis: boolean) { function getUnionType(model: UnionType, emphasis: boolean) { return model.types - .map((unionType) => type.call(unionType, 'none', emphasis)) + .map((unionType) => + Handlebars.helpers.type.call(unionType, 'none', emphasis), + ) .join(` \\| `); } function getIntersectionType(model: IntersectionType) { return model.types - .map((intersectionType) => type.call(intersectionType)) + .map((intersectionType) => Handlebars.helpers.type.call(intersectionType)) .join(' & '); } function getTupleType(model: TupleType) { - return `[${model.elements.map((element) => type.call(element)).join(', ')}]`; + return `[${model.elements + .map((element) => Handlebars.helpers.type.call(element)) + .join(', ')}]`; } function getIntrinsicType(model: IntrinsicType, emphasis: boolean) { - return emphasis ? `\`${model.name}\`` : escape(model.name); + return emphasis ? `\`${model.name}\`` : escapeChars(model.name); } function getTypeOperatorType(model: TypeOperatorType) { - return `${model.operator} ${type.call(model.target)}`; + return `${model.operator} ${Handlebars.helpers.type.call(model.target)}`; } function getQueryType(model: QueryType) { - return `typeof ${type.call(model.queryType)}`; -} - -function getTypeParameterType(model: TypeParameterType) { - return escape(model.name); + return `typeof ${Handlebars.helpers.type.call(model.queryType)}`; } function getInferredType(model: InferredType) { - return `infer ${escape(model.name)}`; + return `infer ${escapeChars(model.name)}`; } function getUnknownType(model: UnknownType) { - return escape(model.name); + return escapeChars(model.name); } function getConditionalType(model: ConditionalType) { const md: string[] = []; if (model.checkType) { - md.push(type.call(model.checkType)); + md.push(Handlebars.helpers.type.call(model.checkType)); } md.push('extends'); if (model.extendsType) { - md.push(type.call(model.extendsType)); + md.push(Handlebars.helpers.type.call(model.extendsType)); } md.push('?'); if (model.trueType) { - md.push(type.call(model.trueType)); + md.push(Handlebars.helpers.type.call(model.trueType)); } md.push(':'); if (model.falseType) { - md.push(type.call(model.falseType)); + md.push(Handlebars.helpers.type.call(model.falseType)); } return md.join(' '); } @@ -279,10 +289,10 @@ function getConditionalType(model: ConditionalType) { function getIndexAccessType(model: IndexedAccessType) { const md: string[] = []; if (model.objectType) { - md.push(type.call(model.objectType)); + md.push(Handlebars.helpers.type.call(model.objectType)); } if (model.indexType) { - md.push(`[${type.call(model.indexType)}]`); + md.push(`[${Handlebars.helpers.type.call(model.indexType)}]`); } return md.join(''); } diff --git a/packages/typedoc-plugin-markdown/src/resources/layouts/default.hbs b/packages/typedoc-plugin-markdown/src/resources/layouts/default.hbs deleted file mode 100755 index 4fdf50b11..000000000 --- a/packages/typedoc-plugin-markdown/src/resources/layouts/default.hbs +++ /dev/null @@ -1 +0,0 @@ -{{{contents}}} \ No newline at end of file diff --git a/packages/typedoc-plugin-markdown/src/resources/partials/comment.hbs b/packages/typedoc-plugin-markdown/src/resources/partials/comment.hbs index 383cfb6e3..07d19a00e 100755 --- a/packages/typedoc-plugin-markdown/src/resources/partials/comment.hbs +++ b/packages/typedoc-plugin-markdown/src/resources/partials/comment.hbs @@ -2,8 +2,8 @@ {{#if hasVisibleComponent}} -{{{comment}}} +{{{comments}}} {{/if}} -{{/with}} \ No newline at end of file +{{/with}} diff --git a/packages/typedoc-plugin-markdown/src/resources/partials/main.hbs b/packages/typedoc-plugin-markdown/src/resources/partials/main.hbs index 7907d4bf9..01d889e1f 100644 --- a/packages/typedoc-plugin-markdown/src/resources/partials/main.hbs +++ b/packages/typedoc-plugin-markdown/src/resources/partials/main.hbs @@ -1,3 +1,3 @@ {{ toc }} -{{> members}} \ No newline at end of file +{{> members}} diff --git a/packages/typedoc-plugin-markdown/src/resources/partials/member.signature.hbs b/packages/typedoc-plugin-markdown/src/resources/partials/member.signature.hbs index e4652c004..71459d3fe 100644 --- a/packages/typedoc-plugin-markdown/src/resources/partials/member.signature.hbs +++ b/packages/typedoc-plugin-markdown/src/resources/partials/member.signature.hbs @@ -66,7 +66,7 @@ {{#with comment.returns}} -{{{text}}} +{{{comment}}} {{/with}} @@ -104,4 +104,4 @@ {{> member.sources}} -{{/if}} \ No newline at end of file +{{/if}} diff --git a/packages/typedoc-plugin-markdown/src/resources/templates/index.hbs b/packages/typedoc-plugin-markdown/src/resources/templates/index.hbs index 1f064cac6..3e1297c21 100644 --- a/packages/typedoc-plugin-markdown/src/resources/templates/index.hbs +++ b/packages/typedoc-plugin-markdown/src/resources/templates/index.hbs @@ -2,6 +2,6 @@ {{#with model.readme}} -{{{text}}} +{{{comment}}} -{{/with}} \ No newline at end of file +{{/with}} diff --git a/packages/typedoc-plugin-markdown/src/theme.ts b/packages/typedoc-plugin-markdown/src/theme.ts index af998fff3..68185ca3b 100644 --- a/packages/typedoc-plugin-markdown/src/theme.ts +++ b/packages/typedoc-plugin-markdown/src/theme.ts @@ -1,127 +1,109 @@ -import * as fs from 'fs'; import * as path from 'path'; - -import * as Handlebars from 'handlebars'; import { BindOption, + ContainerReflection, DeclarationReflection, - NavigationItem, + PageEvent, ProjectReflection, Reflection, + ReflectionKind, Renderer, + RendererEvent, + Theme, UrlMapping, } from 'typedoc'; -import { GroupPlugin } from 'typedoc/dist/lib/converter/plugins'; -import { ReflectionKind } from 'typedoc/dist/lib/models'; -import { PageEvent } from 'typedoc/dist/lib/output/events'; -import { Theme } from 'typedoc/dist/lib/output/theme'; -import { TemplateMapping } from 'typedoc/dist/lib/output/themes/DefaultTheme'; - -import { Breadcrumbs } from './components/breadcrumbs'; -import { Comments } from './components/comments'; -import { ContextAwareHelpers } from './components/options'; -import { TableOfContents } from './components/toc'; - -/** - * The MarkdownTheme is based on TypeDoc's DefaultTheme @see https://github.com/TypeStrong/typedoc/blob/master/src/lib/output/themes/DefaultTheme.ts. - * - html specific components are removed from the renderer - * - markdown specefic components have been added - */ - -export default class MarkdownTheme extends Theme { - @BindOption('readme') - readme!: string; - @BindOption('entryPoints') - entryPoints!: string[]; +import { getKindPlural } from './groups'; + +import { NavigationItem } from './navigation-item'; + +import { + getReflectionMemberTemplate, + indexTemplate, + reflectionTemplate, + registerHelpers, + registerPartials, +} from './render-utils'; +import { formatContents } from './utils'; + +export class MarkdownTheme extends Theme { @BindOption('allReflectionsHaveOwnDocument') allReflectionsHaveOwnDocument!: boolean; - @BindOption('filenameSeparator') - filenameSeparator!: string; + @BindOption('entryDocument') entryDocument: string; - // creates an isolated Handlebars environment to store context aware helpers - static HANDLEBARS = Handlebars.create(); + @BindOption('entryPoints') + entryPoints!: string[]; + + @BindOption('filenameSeparator') + filenameSeparator!: string; + + @BindOption('hideBreadcrumbs') + hideBreadcrumbs!: boolean; + + @BindOption('hideInPageTOC') + hideInPageTOC!: boolean; + + @BindOption('hidePageTitle') + hidePageTitle!: boolean; + + @BindOption('indexTitle') + indexTitle!: string; + + @BindOption('namedAnchors') + namedAnchors!: boolean; + + @BindOption('readme') + readme!: string; + + @BindOption('out') + out!: string; + + @BindOption('publicPath') + publicPath!: string; static URL_PREFIX = /^(http|ftp)s?:\/\//; - // formarts page content after render - static formatContents(contents: string) { - return ( - contents - .replace(/[\r\n]{3,}/g, '\n\n') - .replace(/!spaces/g, '') - .replace(/^\s+|\s+$/g, '') + '\n' - ); - } + project?: ProjectReflection; + reflection?: DeclarationReflection; + location!: string; - constructor(renderer: Renderer, basePath: string) { - super(renderer, basePath); - this.listenTo(renderer, PageEvent.END, this.onPageEnd, 1024); - - // cleanup html specific components - renderer.removeComponent('assets'); - renderer.removeComponent('javascript-index'); - renderer.removeComponent('toc'); - renderer.removeComponent('pretty-print'); - renderer.removeComponent('marked-links'); - renderer.removeComponent('legend'); - renderer.removeComponent('navigation'); - - // add markdown related componenets / helpers - renderer.addComponent('options', new ContextAwareHelpers(renderer)); - renderer.addComponent('breadcrumbs', new Breadcrumbs(renderer)); - renderer.addComponent('comments', new Comments(renderer)); - renderer.addComponent('toc', new TableOfContents(renderer)); - } + constructor(renderer: Renderer) { + super(renderer); - /** - * Test if directory is output directory - * @param outputDirectory - */ - isOutputDirectory(outputDirectory: string): boolean { - let isOutputDirectory = true; - const listings = fs.readdirSync(outputDirectory); - - listings.forEach((listing) => { - if (!this.allowedDirectoryListings().includes(listing)) { - isOutputDirectory = false; - return; - } + this.listenTo(this.owner, { + [RendererEvent.BEGIN]: this.onBeginRenderer, + [PageEvent.BEGIN]: this.onBeginPage, }); - return isOutputDirectory; + registerPartials(); + registerHelpers(this); } - // The allowed directory and files listing used to check the output directory - allowedDirectoryListings() { - return [ - this.entryDocument, - this.globalsFile, - ...this.mappings.map((mapping) => mapping.directory), - 'media', - '.DS_Store', - ]; + render(page: PageEvent): string { + return formatContents(page.template(page) as string); } - /** - * This method is essentially a copy of the TypeDocs DefaultTheme.getUrls with extensions swapped out to .md - * Map the models of the given project to the desired output files. - * - * @param project The project whose urls should be generated. - * @returns A list of [[UrlMapping]] instances defining which models - * should be rendered to which files. - */ - getUrls(project: ProjectReflection): UrlMapping[] { + getUrls(project: ProjectReflection) { const urls: UrlMapping[] = []; - const noReadmeFile = this.readme == path.join(process.cwd(), 'none'); + const noReadmeFile = this.readme.endsWith('none'); if (noReadmeFile) { project.url = this.entryDocument; - urls.push(new UrlMapping(this.entryDocument, project, 'reflection.hbs')); + urls.push( + new UrlMapping( + this.entryDocument, + project, + this.getReflectionTemplate(), + ), + ); } else { project.url = this.globalsFile; - urls.push(new UrlMapping(this.globalsFile, project, 'reflection.hbs')); - urls.push(new UrlMapping(this.entryDocument, project, 'index.hbs')); + urls.push( + new UrlMapping(this.globalsFile, project, this.getReflectionTemplate()), + ); + urls.push( + new UrlMapping(this.entryDocument, project, this.getIndexTemplate()), + ); } project.children?.forEach((child: Reflection) => { if (child instanceof DeclarationReflection) { @@ -131,15 +113,6 @@ export default class MarkdownTheme extends Theme { return urls; } - /** - * This is mostly a copy of the TypeDoc DefaultTheme.buildUrls method with .html ext switched to .md - * Builds the url for the the given reflection and all of its children. - * - * @param reflection The reflection the url should be created for. - * @param urls The array the url should be appended to. - * @returns The altered urls array. - */ - buildUrls( reflection: DeclarationReflection, urls: UrlMapping[], @@ -147,7 +120,6 @@ export default class MarkdownTheme extends Theme { const mapping = this.mappings.find((mapping) => reflection.kindOf(mapping.kind), ); - if (mapping) { if (!reflection.url || !MarkdownTheme.URL_PREFIX.test(reflection.url)) { const url = this.toUrl(mapping, reflection); @@ -168,24 +140,10 @@ export default class MarkdownTheme extends Theme { return urls; } - /** - * Returns the full url of a given mapping and reflection - * @param mapping - * @param reflection - */ - toUrl(mapping: TemplateMapping, reflection: DeclarationReflection) { + toUrl(mapping: any, reflection: DeclarationReflection) { return mapping.directory + '/' + this.getUrl(reflection) + '.md'; } - /** - * @see DefaultTheme.getUrl - * Return a url for the given reflection. - * - * @param reflection The reflection the url should be generated for. - * @param relative The parent reflection the url generation should stop on. - * @param separator The separator used to generate the url. - * @returns The generated url. - */ getUrl(reflection: Reflection, relative?: Reflection): string { let url = reflection.getAlias(); @@ -201,13 +159,6 @@ export default class MarkdownTheme extends Theme { return url; } - /** - * Similar to DefaultTheme.applyAnchorUrl method with added but the anchors are computed from the reflection structure - * Generate an anchor url for the given reflection and all of its children. - * - * @param reflection The reflection an anchor url should be created for. - * @param container The nearest reflection having an own document. - */ applyAnchorUrl(reflection: Reflection, container: Reflection) { if (!reflection.url || !MarkdownTheme.URL_PREFIX.test(reflection.url)) { const reflectionId = reflection.name.toLowerCase(); @@ -227,7 +178,48 @@ export default class MarkdownTheme extends Theme { return reflectionId; } + getRelativeUrl(absolute: string) { + if (MarkdownTheme.URL_PREFIX.test(absolute)) { + return absolute; + } else { + const relative = path.relative( + path.dirname(this.location), + path.dirname(absolute), + ); + return path.join(relative, path.basename(absolute)).replace(/\\/g, '/'); + } + } + + getReflectionTemplate() { + return (pageEvent: PageEvent) => { + return reflectionTemplate(pageEvent, { + allowProtoMethodsByDefault: true, + allowProtoPropertiesByDefault: true, + data: { theme: this }, + }); + }; + } + + getIndexTemplate() { + return (pageEvent: PageEvent) => { + return indexTemplate(pageEvent, { + allowProtoMethodsByDefault: true, + allowProtoPropertiesByDefault: true, + data: { theme: this }, + }); + }; + } + getNavigation(project: ProjectReflection) { + const urls = this.getUrls(project); + + const getUrlMapping = (name) => { + if (!name) { + return ''; + } + return urls.find((url) => url.model.name === name); + }; + const createNavigationItem = ( title: string, url: string | undefined, @@ -237,12 +229,11 @@ export default class MarkdownTheme extends Theme { const navigationItem = new NavigationItem(title, url); navigationItem.isLabel = isLabel; navigationItem.children = children; - const { reflection, parent, cssClasses, ...filteredNavigationItem } = - navigationItem; + const { reflection, parent, ...filteredNavigationItem } = navigationItem; return filteredNavigationItem as NavigationItem; }; const navigation = createNavigationItem(project.name, undefined, false); - const hasReadme = this.readme !== path.join(process.cwd(), 'none'); + const hasReadme = !this.readme.endsWith('none'); if (hasReadme) { navigation.children?.push( createNavigationItem('Readme', this.entryDocument, false), @@ -263,11 +254,15 @@ export default class MarkdownTheme extends Theme { if (items.length > 0) { const children = items .map((item) => - createNavigationItem(item.getFullName(), item.url, true), + createNavigationItem( + item.getFullName(), + (getUrlMapping(item.name) as any)?.url as string, + true, + ), ) .sort((a, b) => (a.title > b.title ? 1 : -1)); const group = createNavigationItem( - GroupPlugin.getKindPlural(kind), + getKindPlural(kind), undefined, true, children, @@ -278,43 +273,37 @@ export default class MarkdownTheme extends Theme { return navigation; } - private onPageEnd(page: PageEvent) { - page.contents = page.contents - ? MarkdownTheme.formatContents(page.contents) - : ''; - } - get mappings() { return [ { kind: [ReflectionKind.Module], isLeaf: false, directory: 'modules', - template: 'reflection.hbs', + template: this.getReflectionTemplate(), }, { kind: [ReflectionKind.Namespace], isLeaf: false, directory: 'modules', - template: 'reflection.hbs', + template: this.getReflectionTemplate(), }, { kind: [ReflectionKind.Enum], isLeaf: false, directory: 'enums', - template: 'reflection.hbs', + template: this.getReflectionTemplate(), }, { kind: [ReflectionKind.Class], isLeaf: false, directory: 'classes', - template: 'reflection.hbs', + template: this.getReflectionTemplate(), }, { kind: [ReflectionKind.Interface], isLeaf: false, directory: 'interfaces', - template: 'reflection.hbs', + template: this.getReflectionTemplate(), }, ...(this.allReflectionsHaveOwnDocument ? [ @@ -322,25 +311,45 @@ export default class MarkdownTheme extends Theme { kind: [ReflectionKind.TypeAlias], isLeaf: true, directory: 'types', - template: 'reflection.member.hbs', + template: getReflectionMemberTemplate(), }, { kind: [ReflectionKind.Variable], isLeaf: true, directory: 'variables', - template: 'reflection.member.hbs', + template: getReflectionMemberTemplate(), }, { kind: [ReflectionKind.Function], isLeaf: true, directory: 'functions', - template: 'reflection.member.hbs', + template: getReflectionMemberTemplate(), }, ] : []), ]; } + /** + * Triggered before the renderer starts rendering a project. + * + * @param event An event object describing the current render operation. + */ + protected onBeginRenderer(event: RendererEvent) { + this.project = event.project; + } + + /** + * Triggered before a document will be rendered. + * + * @param page An event object describing the current render operation. + */ + protected onBeginPage(page: PageEvent) { + this.location = page.url; + this.reflection = + page.model instanceof DeclarationReflection ? page.model : undefined; + } + get globalsFile() { return 'modules.md'; } diff --git a/packages/typedoc-plugin-markdown/src/utils.ts b/packages/typedoc-plugin-markdown/src/utils.ts new file mode 100644 index 000000000..fa50aa175 --- /dev/null +++ b/packages/typedoc-plugin-markdown/src/utils.ts @@ -0,0 +1,61 @@ +import { + DeclarationReflection, + ParameterReflection, + ReflectionKind, + SignatureReflection, +} from 'typedoc'; + +export function formatContents(contents: string) { + return ( + contents + .replace(/[\r\n]{3,}/g, '\n\n') + .replace(/!spaces/g, '') + .replace(/^\s+|\s+$/g, '') + '\n' + ); +} + +export function escapeChars(str: string) { + return str + .replace(/>/g, '\\>') + .replace(/_/g, '\\_') + .replace(/`/g, '\\`') + .replace(/\|/g, '\\|'); +} + +export function memberSymbol( + reflection: DeclarationReflection | ParameterReflection | SignatureReflection, +) { + const isStatic = reflection.flags && reflection.flags.isStatic; + + if (reflection.kind === ReflectionKind.CallSignature) { + return '▸'; + } + if (reflection.kind === ReflectionKind.TypeAlias) { + return 'Ƭ'; + } + if (reflection.kind === ReflectionKind.ObjectLiteral) { + return '▪'; + } + if (reflection.kind === ReflectionKind.Property && isStatic) { + return '▪'; + } + + return '•'; +} + +export function spaces(length: number) { + return `!spaces${[...Array(length)].map(() => ' ').join('')}`; +} + +export function stripComments(str: string) { + return str + .replace(/(?:\/\*(?:[\s\S]*?)\*\/)|(?:^\s*\/\/(?:.*)$)/g, ' ') + .replace(/\n/g, '') + .replace(/^\s+|\s+$|(\s)+/g, '$1'); +} + +export function stripLineBreaks(str: string) { + return str + ? str.replace(/\n/g, ' ').replace(/\r/g, ' ').replace(/\t/g, ' ').trim() + : ''; +} diff --git a/packages/typedoc-plugin-markdown/src/utils/front-matter.ts b/packages/typedoc-plugin-markdown/src/utils/front-matter.ts index a116c47a5..611f25e1d 100644 --- a/packages/typedoc-plugin-markdown/src/utils/front-matter.ts +++ b/packages/typedoc-plugin-markdown/src/utils/front-matter.ts @@ -1,7 +1,6 @@ +import * as Handlebars from 'handlebars'; import { PageEvent } from 'typedoc/dist/lib/output/events'; -import { reflectionTitle } from '../resources/helpers/reflection-title'; - export interface FrontMatterVars { [key: string]: string | number | boolean; } @@ -22,7 +21,7 @@ export const prependYAML = (contents: string, vars: FrontMatterVars) => { * @param page */ export const getPageTitle = (page: PageEvent) => { - return reflectionTitle.call(page, false); + return Handlebars.helpers.reflectionTitle.call(page, false); }; /** diff --git a/packages/typedoc-plugin-markdown/test/specs/__snapshots__/comments.spec.ts.snap b/packages/typedoc-plugin-markdown/test/specs/__snapshots__/comments.spec.ts.snap index 22bf6863d..a7f581c4d 100644 --- a/packages/typedoc-plugin-markdown/test/specs/__snapshots__/comments.spec.ts.snap +++ b/packages/typedoc-plugin-markdown/test/specs/__snapshots__/comments.spec.ts.snap @@ -35,13 +35,11 @@ anotherFunction() exports[`Comments: should convert comments with includes' 1`] = ` "This is an example of include -This is a simple example on how to use include. - -![My image alt text](../media/logo.png) +[[include:class-example.md]] This is an example of handlebars include -This is a simple example on a handlebars file. +[[include:class-example.hbs]] " `; diff --git a/packages/typedoc-plugin-markdown/test/specs/__snapshots__/declarations.spec.ts.snap b/packages/typedoc-plugin-markdown/test/specs/__snapshots__/declarations.spec.ts.snap index e943c837c..bd0695731 100644 --- a/packages/typedoc-plugin-markdown/test/specs/__snapshots__/declarations.spec.ts.snap +++ b/packages/typedoc-plugin-markdown/test/specs/__snapshots__/declarations.spec.ts.snap @@ -1,21 +1,21 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`Declarations: should compile a const with default value 1`] = ` -"• \`Const\` **stringConstWithDefaultValue**: \`\`\\"hello\\"\`\` +"• **stringConstWithDefaultValue**: \`\`\\"hello\\"\`\` [partial: member.sources] " `; exports[`Declarations: should compile a let with default value 1`] = ` -"• \`Let\` **stringLetWithDefaultValue**: \`string\` = \`'hello'\` +"• **stringLetWithDefaultValue**: \`string\` = \`'hello'\` [partial: member.sources] " `; exports[`Declarations: should compile an undefined declaration 1`] = ` -"• \`Let\` **undefinedNumberDeclaration**: \`number\` +"• **undefinedNumberDeclaration**: \`number\` [partial: member.sources] " @@ -49,7 +49,7 @@ exports[`Declarations: should compile any function type 1`] = ` `; exports[`Declarations: should compile callable declaration 1`] = ` -"• \`Let\` **callableDeclaration**: \`Object\` +"• **callableDeclaration**: \`Object\` #### Call signature @@ -77,7 +77,7 @@ exports[`Declarations: should compile callable declaration 1`] = ` `; exports[`Declarations: should compile declaration with double underscores in name and value 1`] = ` -"• \`Const\` **\\\\_\\\\_DOUBLE\\\\_UNDERSCORES\\\\_DECLARATION\\\\_\\\\_**: typeof [\`__DOUBLE_UNDERSCORES_DECLARATION__\`](../modules.md#__double_underscores_declaration__) +"• **\\\\_\\\\_DOUBLE\\\\_UNDERSCORES\\\\_DECLARATION\\\\_\\\\_**: typeof [\`__DOUBLE_UNDERSCORES_DECLARATION__\`](../modules.md#__double_underscores_declaration__) [partial: member.sources] " @@ -91,14 +91,14 @@ exports[`Declarations: should compile enum delcaration 1`] = ` `; exports[`Declarations: should compile function declaration 1`] = ` -"• \`Let\` **functionDeclaration**: (\`someArg\`: \`number\`) => \`boolean\` +"• **functionDeclaration**: (\`someArg\`: \`number\`) => \`boolean\` [partial: member.sources] " `; exports[`Declarations: should compile indexable declaration 1`] = ` -"• \`Let\` **indexableDeclaration**: \`Object\` +"• **indexableDeclaration**: \`Object\` #### Index signature @@ -115,7 +115,7 @@ exports[`Declarations: should compile indexable declaration 1`] = ` `; exports[`Declarations: should compile object literal cast as a const 1`] = ` -"• \`Const\` **objectLiteralAsConstDeclaration**: \`Object\` +"• **objectLiteralAsConstDeclaration**: \`Object\` Comments @@ -132,7 +132,7 @@ Comments `; exports[`Declarations: should compile object literal declaration 1`] = ` -"• \`Const\` **objectLiteralDeclaration**: \`Object\` +"• **objectLiteralDeclaration**: \`Object\` #### Type declaration @@ -152,7 +152,7 @@ exports[`Declarations: should compile object literal declaration 1`] = ` `; exports[`Declarations: should compile type literal declaration 1`] = ` -"• \`Let\` **typeLiteralDeclaration**: \`Object\` +"• **typeLiteralDeclaration**: \`Object\` #### Type declaration diff --git a/packages/typedoc-plugin-markdown/test/specs/__snapshots__/members.spec.ts.snap b/packages/typedoc-plugin-markdown/test/specs/__snapshots__/members.spec.ts.snap index 4886dd991..902d94f1e 100644 --- a/packages/typedoc-plugin-markdown/test/specs/__snapshots__/members.spec.ts.snap +++ b/packages/typedoc-plugin-markdown/test/specs/__snapshots__/members.spec.ts.snap @@ -18,7 +18,7 @@ ___ exports[`Members: (member) should compile declaration members' 1`] = ` "### declarationMember -• \`Let\` **declarationMember**: \`string\` +• **declarationMember**: \`string\` [partial: member.sources] diff --git a/packages/typedoc-plugin-markdown/test/specs/__snapshots__/signatures.spec.ts.snap b/packages/typedoc-plugin-markdown/test/specs/__snapshots__/signatures.spec.ts.snap index 254970184..f795984db 100644 --- a/packages/typedoc-plugin-markdown/test/specs/__snapshots__/signatures.spec.ts.snap +++ b/packages/typedoc-plugin-markdown/test/specs/__snapshots__/signatures.spec.ts.snap @@ -152,7 +152,7 @@ exports[`Signatures: should compile pipes in params and comments' 1`] = ` | Name | Type | Description | | :------ | :------ | :------ | -| \`n\` | \`number\` \\\\| \`\`null\`\` | a\\\\|b | +| \`n\` | \`number\` | a\\\\|b | ##### Returns @@ -265,7 +265,7 @@ exports[`Signatures: should compile signature with union types' 1`] = ` | Name | Type | | :------ | :------ | -| \`arg\` | \`boolean\`[] \\\\| \`number\` | +| \`arg\` | \`number\` \\\\| \`boolean\`[] | | \`...args\` | (\`string\` \\\\| \`number\`)[] | ##### Returns diff --git a/packages/typedoc-plugin-markdown/test/specs/__snapshots__/theme.spec.ts.snap b/packages/typedoc-plugin-markdown/test/specs/__snapshots__/theme.spec.ts.snap deleted file mode 100644 index 19db57283..000000000 --- a/packages/typedoc-plugin-markdown/test/specs/__snapshots__/theme.spec.ts.snap +++ /dev/null @@ -1,362 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Theme: (entryDocument) should getUrls with custom entryDocument' 1`] = ` -Array [ - "modules.md", - "index.md", - "modules/breadcrumbs.md", - "classes/breadcrumbs.Breadcrumbs.md", - "classes/breadcrumbs.Breadcrumbs.md#constructor", - "classes/breadcrumbs.Breadcrumbs.md#somemethod", - "modules/theme.md", - "modules/theme.md#declarationitema", - "modules/theme.md#declarationitemb", - "modules/theme.md#functionitema", - "modules/theme.md#functionitemb", - "modules/theme.namespaceA.md", - "classes/theme.namespaceA.SomeNestedClass.md", - "classes/theme.namespaceA.SomeNestedClass.md#constructor", - "modules/theme.namespaceB.md", - "enums/theme.enumItemA.md", - "enums/theme.enumItemB.md", - "classes/theme.ClassItemA.md", - "classes/theme.ClassItemA.md#constructor", - "classes/theme.ClassItemB.md", - "classes/theme.ClassItemB.md#constructor", - "interfaces/theme.InterfaceItemA.md", - "interfaces/theme.InterfaceItemA.md#prop", - "interfaces/theme.InterfaceItemB.md", - "interfaces/theme.InterfaceItemB.md#prop", -] -`; - -exports[`Theme: (filenameSeparator) should getUrls with custom separator' 1`] = ` -Array [ - "modules.md", - "README.md", - "modules/breadcrumbs.md", - "classes/breadcrumbs-Breadcrumbs.md", - "classes/breadcrumbs-Breadcrumbs.md#constructor", - "classes/breadcrumbs-Breadcrumbs.md#somemethod", - "modules/theme.md", - "modules/theme.md#declarationitema", - "modules/theme.md#declarationitemb", - "modules/theme.md#functionitema", - "modules/theme.md#functionitemb", - "modules/theme-namespaceA.md", - "classes/theme-namespaceA-SomeNestedClass.md", - "classes/theme-namespaceA-SomeNestedClass.md#constructor", - "modules/theme-namespaceB.md", - "enums/theme-enumItemA.md", - "enums/theme-enumItemB.md", - "classes/theme-ClassItemA.md", - "classes/theme-ClassItemA.md#constructor", - "classes/theme-ClassItemB.md", - "classes/theme-ClassItemB.md#constructor", - "interfaces/theme-InterfaceItemA.md", - "interfaces/theme-InterfaceItemA.md#prop", - "interfaces/theme-InterfaceItemB.md", - "interfaces/theme-InterfaceItemB.md#prop", -] -`; - -exports[`Theme: (getNavigation) should getNavigation for exports with readme=none' 1`] = ` -Array [ - Object { - "title": "Exports", - "url": "README.md", - }, - Object { - "title": "Namespaces", - "url": "", - }, - Object { - "title": "Enumerations", - "url": "", - }, - Object { - "title": "Classes", - "url": "", - }, - Object { - "title": "Interfaces", - "url": "", - }, -] -`; - -exports[`Theme: (getNavigation) should getNavigation for exports' 1`] = ` -Array [ - Object { - "title": "Readme", - "url": "README.md", - }, - Object { - "title": "Exports", - "url": "modules.md", - }, - Object { - "title": "Namespaces", - "url": "", - }, - Object { - "title": "Enumerations", - "url": "", - }, - Object { - "title": "Classes", - "url": "", - }, - Object { - "title": "Interfaces", - "url": "", - }, -] -`; - -exports[`Theme: (getNavigation) should getNavigation for modules with readme=none' 1`] = ` -Array [ - Object { - "title": "Modules", - "url": "", - }, - Object { - "title": "Namespaces", - "url": "", - }, - Object { - "title": "Enumerations", - "url": "", - }, - Object { - "title": "Classes", - "url": "", - }, - Object { - "title": "Interfaces", - "url": "", - }, -] -`; - -exports[`Theme: (getNavigation) should getNavigation for modules' 1`] = ` -Array [ - Object { - "title": "Readme", - "url": "README.md", - }, - Object { - "title": "Modules", - "url": "", - }, - Object { - "title": "Namespaces", - "url": "", - }, - Object { - "title": "Enumerations", - "url": "", - }, - Object { - "title": "Classes", - "url": "", - }, - Object { - "title": "Interfaces", - "url": "", - }, -] -`; - -exports[`Theme: (getNavigation) should getNavigation' 1`] = ` -"{ - \\"title\\": \\"typedoc-plugin-markdown\\", - \\"url\\": \\"\\", - \\"isLabel\\": false, - \\"children\\": [ - { - \\"title\\": \\"Readme\\", - \\"url\\": \\"README.md\\", - \\"isLabel\\": false, - \\"children\\": [] - }, - { - \\"title\\": \\"Exports\\", - \\"url\\": \\"modules.md\\", - \\"isLabel\\": false, - \\"children\\": [] - }, - { - \\"title\\": \\"Namespaces\\", - \\"url\\": \\"\\", - \\"isLabel\\": true, - \\"children\\": [ - { - \\"title\\": \\"namespaceA\\", - \\"url\\": \\"modules/namespaceA.md\\", - \\"isLabel\\": true, - \\"children\\": [] - }, - { - \\"title\\": \\"namespaceB\\", - \\"url\\": \\"modules/namespaceB.md\\", - \\"isLabel\\": true, - \\"children\\": [] - } - ] - }, - { - \\"title\\": \\"Enumerations\\", - \\"url\\": \\"\\", - \\"isLabel\\": true, - \\"children\\": [ - { - \\"title\\": \\"enumItemA\\", - \\"url\\": \\"enums/enumItemA.md\\", - \\"isLabel\\": true, - \\"children\\": [] - }, - { - \\"title\\": \\"enumItemB\\", - \\"url\\": \\"enums/enumItemB.md\\", - \\"isLabel\\": true, - \\"children\\": [] - } - ] - }, - { - \\"title\\": \\"Classes\\", - \\"url\\": \\"\\", - \\"isLabel\\": true, - \\"children\\": [ - { - \\"title\\": \\"ClassItemA\\", - \\"url\\": \\"classes/ClassItemA.md\\", - \\"isLabel\\": true, - \\"children\\": [] - }, - { - \\"title\\": \\"ClassItemB\\", - \\"url\\": \\"classes/ClassItemB.md\\", - \\"isLabel\\": true, - \\"children\\": [] - }, - { - \\"title\\": \\"namespaceA.SomeNestedClass\\", - \\"url\\": \\"classes/namespaceA.SomeNestedClass.md\\", - \\"isLabel\\": true, - \\"children\\": [] - } - ] - }, - { - \\"title\\": \\"Interfaces\\", - \\"url\\": \\"\\", - \\"isLabel\\": true, - \\"children\\": [ - { - \\"title\\": \\"InterfaceItemA\\", - \\"url\\": \\"interfaces/InterfaceItemA.md\\", - \\"isLabel\\": true, - \\"children\\": [] - }, - { - \\"title\\": \\"InterfaceItemB\\", - \\"url\\": \\"interfaces/InterfaceItemB.md\\", - \\"isLabel\\": true, - \\"children\\": [] - } - ] - } - ] -}" -`; - -exports[`Theme: (getUrls) should getUrls with 'allReflectionsHaveOwnDocument' set 1`] = ` -Array [ - "modules.md", - "README.md", - "modules/breadcrumbs.md", - "classes/breadcrumbs.Breadcrumbs.md", - "classes/breadcrumbs.Breadcrumbs.md#constructor", - "classes/breadcrumbs.Breadcrumbs.md#somemethod", - "modules/theme.md", - "modules/theme.namespaceA.md", - "classes/theme.namespaceA.SomeNestedClass.md", - "classes/theme.namespaceA.SomeNestedClass.md#constructor", - "modules/theme.namespaceB.md", - "enums/theme.enumItemA.md", - "enums/theme.enumItemB.md", - "classes/theme.ClassItemA.md", - "classes/theme.ClassItemA.md#constructor", - "classes/theme.ClassItemB.md", - "classes/theme.ClassItemB.md#constructor", - "interfaces/theme.InterfaceItemA.md", - "interfaces/theme.InterfaceItemA.md#prop", - "interfaces/theme.InterfaceItemB.md", - "interfaces/theme.InterfaceItemB.md#prop", - "variables/theme.declarationItemA.md", - "variables/theme.declarationItemB.md", - "functions/theme.functionItemA.md", - "functions/theme.functionItemB.md", -] -`; - -exports[`Theme: (getUrls) should getUrls with readme 'none' 1`] = ` -Array [ - "README.md", - "modules/breadcrumbs.md", - "classes/breadcrumbs.Breadcrumbs.md", - "classes/breadcrumbs.Breadcrumbs.md#constructor", - "classes/breadcrumbs.Breadcrumbs.md#somemethod", - "modules/theme.md", - "modules/theme.md#declarationitema", - "modules/theme.md#declarationitemb", - "modules/theme.md#functionitema", - "modules/theme.md#functionitemb", - "modules/theme.namespaceA.md", - "classes/theme.namespaceA.SomeNestedClass.md", - "classes/theme.namespaceA.SomeNestedClass.md#constructor", - "modules/theme.namespaceB.md", - "enums/theme.enumItemA.md", - "enums/theme.enumItemB.md", - "classes/theme.ClassItemA.md", - "classes/theme.ClassItemA.md#constructor", - "classes/theme.ClassItemB.md", - "classes/theme.ClassItemB.md#constructor", - "interfaces/theme.InterfaceItemA.md", - "interfaces/theme.InterfaceItemA.md#prop", - "interfaces/theme.InterfaceItemB.md", - "interfaces/theme.InterfaceItemB.md#prop", -] -`; - -exports[`Theme: (getUrls) should getUrls' 1`] = ` -Array [ - "modules.md", - "README.md", - "modules/breadcrumbs.md", - "classes/breadcrumbs.Breadcrumbs.md", - "classes/breadcrumbs.Breadcrumbs.md#constructor", - "classes/breadcrumbs.Breadcrumbs.md#somemethod", - "modules/theme.md", - "modules/theme.md#declarationitema", - "modules/theme.md#declarationitemb", - "modules/theme.md#functionitema", - "modules/theme.md#functionitemb", - "modules/theme.namespaceA.md", - "classes/theme.namespaceA.SomeNestedClass.md", - "classes/theme.namespaceA.SomeNestedClass.md#constructor", - "modules/theme.namespaceB.md", - "enums/theme.enumItemA.md", - "enums/theme.enumItemB.md", - "classes/theme.ClassItemA.md", - "classes/theme.ClassItemA.md#constructor", - "classes/theme.ClassItemB.md", - "classes/theme.ClassItemB.md#constructor", - "interfaces/theme.InterfaceItemA.md", - "interfaces/theme.InterfaceItemA.md#prop", - "interfaces/theme.InterfaceItemB.md", - "interfaces/theme.InterfaceItemB.md#prop", -] -`; diff --git a/packages/typedoc-plugin-markdown/test/specs/plugin.spec.ts b/packages/typedoc-plugin-markdown/test/specs/plugin.spec.ts deleted file mode 100644 index daa913066..000000000 --- a/packages/typedoc-plugin-markdown/test/specs/plugin.spec.ts +++ /dev/null @@ -1,43 +0,0 @@ -import * as path from 'path'; - -import MarkdownTheme from 'typedoc-plugin-markdown/dist/theme'; - -import { TestApp } from '../test-app'; - -describe(`Plugin:`, () => { - const defaultMarkdownThemePath = path.resolve(__dirname, '..', '..', 'dist'); - - describe(`(load theme)`, () => { - let testApp: TestApp; - beforeEach(() => { - testApp = new TestApp(['theme.ts']); - }); - afterEach(() => { - testApp.app.renderer.theme = undefined; - testApp.app.renderer.removeComponent('theme'); - }); - - test(`should load markdown theme by default`, async () => { - await testApp.bootstrap(); - expect(testApp.theme instanceof MarkdownTheme).toBeTruthy(); - }); - - test(`should load custom markdown theme by path'`, async () => { - const customThemePath = path.resolve( - __dirname, - '..', - 'stubs', - 'custom-theme', - ); - await testApp.bootstrap({ - theme: customThemePath, - }); - expect(testApp.theme instanceof MarkdownTheme).toBeTruthy(); - }); - - test(`should not load markdown theme with unrecognised theme'`, async () => { - await testApp.bootstrap({ theme: 'minimal' }); - expect(testApp.theme instanceof MarkdownTheme).toBeFalsy(); - }); - }); -}); diff --git a/packages/typedoc-plugin-markdown/test/specs/theme.spec.ts b/packages/typedoc-plugin-markdown/test/specs/theme.spec.ts deleted file mode 100644 index 8a9be31f9..000000000 --- a/packages/typedoc-plugin-markdown/test/specs/theme.spec.ts +++ /dev/null @@ -1,167 +0,0 @@ -import * as fs from 'fs'; - -import { TestApp } from '../test-app'; - -describe(`Theme:`, () => { - describe(`(getNavigation)`, () => { - test(`should getNavigation'`, async () => { - const testApp = new TestApp(['theme.ts']); - await testApp.bootstrap(); - const navigation = testApp.theme.getNavigation(testApp.project); - expect(JSON.stringify(navigation, null, 1)).toMatchSnapshot(); - }); - - test(`should getNavigation for exports'`, async () => { - const testApp = new TestApp(['theme.ts']); - await testApp.bootstrap(); - const navigation = testApp.theme - .getNavigation(testApp.project) - .children.map((child) => ({ title: child.title, url: child.url })); - expect(navigation).toMatchSnapshot(); - }); - - test(`should getNavigation for exports with readme=none'`, async () => { - const testApp = new TestApp(['theme.ts']); - await testApp.bootstrap({ readme: 'none' }); - const navigation = testApp.theme - .getNavigation(testApp.project) - .children.map((child) => ({ title: child.title, url: child.url })); - expect(navigation).toMatchSnapshot(); - }); - - test(`should getNavigation for modules'`, async () => { - const testApp = new TestApp(['breadcrumbs.ts', 'theme.ts']); - await testApp.bootstrap(); - const navigation = testApp.theme - .getNavigation(testApp.project) - .children.map((child) => ({ title: child.title, url: child.url })); - expect(navigation).toMatchSnapshot(); - }); - - test(`should getNavigation for modules with readme=none'`, async () => { - const testApp = new TestApp(['breadcrumbs.ts', 'theme.ts']); - await testApp.bootstrap({ readme: 'none' }); - const navigation = testApp.theme - .getNavigation(testApp.project) - .children.map((child) => ({ title: child.title, url: child.url })); - expect(navigation).toMatchSnapshot(); - }); - }); - - describe(`(getUrls)`, () => { - beforeAll(() => {}); - test(`should getUrls'`, async () => { - const testApp = new TestApp(['breadcrumbs.ts', 'theme.ts']); - await testApp.bootstrap(); - const urlMappings = testApp.theme.getUrls(testApp.project); - expect(TestApp.getExpectedUrls(urlMappings)).toMatchSnapshot(); - }); - - test(`should getUrls with 'allReflectionsHaveOwnDocument' set`, async () => { - const testApp = new TestApp(['breadcrumbs.ts', 'theme.ts']); - await testApp.bootstrap({ allReflectionsHaveOwnDocument: true }); - const urlMappings = testApp.theme.getUrls(testApp.project); - expect(TestApp.getExpectedUrls(urlMappings)).toMatchSnapshot(); - }); - - test(`should getUrls with readme 'none'`, async () => { - const testApp = new TestApp(['breadcrumbs.ts', 'theme.ts']); - await testApp.bootstrap({ readme: 'none' }); - const urlMappings = testApp.theme.getUrls(testApp.project); - expect(TestApp.getExpectedUrls(urlMappings)).toMatchSnapshot(); - }); - }); - - describe(`(filenameSeparator)`, () => { - test(`should getUrls with custom separator'`, async () => { - const testApp = new TestApp(['breadcrumbs.ts', 'theme.ts']); - await testApp.bootstrap({ filenameSeparator: '-' }); - const urlMappings = testApp.theme.getUrls(testApp.project); - expect(TestApp.getExpectedUrls(urlMappings)).toMatchSnapshot(); - }); - }); - - describe(`(entryDocument)`, () => { - test(`should getUrls with custom entryDocument'`, async () => { - const testApp = new TestApp(['breadcrumbs.ts', 'theme.ts']); - await testApp.bootstrap({ entryDocument: 'index.md' }); - const urlMappings = testApp.theme.getUrls(testApp.project); - expect(TestApp.getExpectedUrls(urlMappings)).toMatchSnapshot(); - }); - }); - - describe(`(isOutputDirectory)`, () => { - let testApp: TestApp; - beforeAll(() => { - testApp = new TestApp(['breadcrumbs.ts', 'theme.ts']); - }); - let directoryListingSpy: jest.SpyInstance; - - beforeAll(async () => { - await testApp.bootstrap(); - directoryListingSpy = jest.spyOn(fs, 'readdirSync'); - }); - - afterAll(() => { - directoryListingSpy.mockRestore(); - }); - - test(`should test output directory true with all allowed files and directories`, () => { - directoryListingSpy.mockReturnValue([ - '.DS_Store', - 'README.md', - 'modules.md', - 'classes', - 'enums', - 'interfaces', - 'media', - 'modules', - ]); - expect(testApp.theme.isOutputDirectory('/path')).toBeTruthy(); - }); - - test(`should test output directory true with some files directories`, () => { - directoryListingSpy.mockReturnValue([ - 'README.md', - 'classes', - 'media', - 'modules', - ]); - expect(testApp.theme.isOutputDirectory('/path')).toBeTruthy(); - }); - - test(`should test output directory true with just index`, () => { - directoryListingSpy.mockReturnValue(['README.md']); - expect(testApp.theme.isOutputDirectory('/path')).toBeTruthy(); - }); - - test(`should test output directory false with unkown index`, () => { - directoryListingSpy.mockReturnValue([ - 'Unrecognised.md', - 'classes', - 'enums', - 'interfaces', - 'media', - 'modules', - ]); - expect(testApp.theme.isOutputDirectory('/path')).toBeFalsy(); - }); - - test(`should test output directory false with hidden files`, () => { - directoryListingSpy.mockReturnValue([ - '.git', - 'classes', - 'enums', - 'interfaces', - 'media', - 'modules', - ]); - expect(testApp.theme.isOutputDirectory('/path')).toBeFalsy(); - }); - - test(`should test output directory false with unknown folder`, () => { - directoryListingSpy.mockReturnValue(['README.md', 'folder']); - expect(testApp.theme.isOutputDirectory('/path')).toBeFalsy(); - }); - }); -}); diff --git a/packages/typedoc-plugin-markdown/test/test-app.ts b/packages/typedoc-plugin-markdown/test/test-app.ts index 55e662dd0..294dc37da 100644 --- a/packages/typedoc-plugin-markdown/test/test-app.ts +++ b/packages/typedoc-plugin-markdown/test/test-app.ts @@ -14,7 +14,8 @@ import { } from 'typedoc'; import { load } from '../src/index'; -import MarkdownTheme from '../src/theme'; +import { MarkdownTheme } from '../src/theme'; +import { formatContents } from '../src/utils'; tmp.setGracefulCleanup(); @@ -34,7 +35,7 @@ export class TestApp { }; static compileTemplate(template: Handlebars.TemplateDelegate, context: any) { - return MarkdownTheme.formatContents( + return formatContents( template(context, { allowProtoMethodsByDefault: true, allowProtoPropertiesByDefault: true, @@ -47,7 +48,7 @@ export class TestApp { context: any, args?: any, ) { - return MarkdownTheme.formatContents(helper.call(context, args)); + return formatContents(helper.call(context, args)); } static getTemplate(name: string) { diff --git a/packages/vuepress-plugin-typedoc/src/front-matter.ts b/packages/vuepress-plugin-typedoc/src/front-matter.ts deleted file mode 100644 index 35e753828..000000000 --- a/packages/vuepress-plugin-typedoc/src/front-matter.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { BindOption } from 'typedoc'; -import { - getPageTitle, - prependYAML, -} from 'typedoc-plugin-markdown/dist/utils/front-matter'; -import { Component } from 'typedoc/dist/lib/converter/components'; -import { RendererComponent } from 'typedoc/dist/lib/output/components'; -import { PageEvent } from 'typedoc/dist/lib/output/events'; - -import { FrontMatter } from './types'; - -@Component({ name: 'front-matter' }) -export class FrontMatterComponent extends RendererComponent { - @BindOption('entryDocument') - entryDocument!: string; - @BindOption('entryPoints') - entryPoints!: string[]; - initialize() { - super.initialize(); - this.listenTo(this.application.renderer, { - [PageEvent.END]: this.onPageEnd, - }); - } - - onPageEnd(page: PageEvent) { - if (page.contents) { - const items: FrontMatter = { - title: this.getTitle(page), - }; - page.contents = prependYAML(page.contents, items as any); - } - } - - getTitle(page: PageEvent) { - if (page.url === this.entryDocument && page.url !== page.project.url) { - return page.project.name; - } - return getPageTitle(page); - } -} diff --git a/packages/vuepress-plugin-typedoc/src/plugin.ts b/packages/vuepress-plugin-typedoc/src/plugin.ts index a8585410c..1455d03cc 100644 --- a/packages/vuepress-plugin-typedoc/src/plugin.ts +++ b/packages/vuepress-plugin-typedoc/src/plugin.ts @@ -3,9 +3,8 @@ import * as path from 'path'; import { Application, ProjectReflection } from 'typedoc'; import { load } from 'typedoc-plugin-markdown'; -import { FrontMatterComponent } from './front-matter'; import { addOptions, getOptions } from './options'; -import { render } from './render'; + import { getSidebarJson } from './sidebar'; import { PluginOptions } from './types'; @@ -19,14 +18,10 @@ export const typedocPlugin = (opts: PluginOptions, ctx: any) => { load(app); - app.renderer.render = render; - addOptions(app); app.bootstrap({ ...options, theme: path.resolve(__dirname) }); - app.renderer.addComponent('fm', new FrontMatterComponent(app.renderer)); - project = app.convert(); // if project is undefined typedoc has a problem - error logging will be supplied by typedoc. @@ -53,6 +48,7 @@ export const typedocPlugin = (opts: PluginOptions, ctx: any) => { } const theme = app.renderer.theme as any; const navigation = theme.getNavigation(project); + const sidebarJson = JSON.stringify({ [`/${path.relative(process.cwd(), options.out)}/`]: getSidebarJson( navigation, diff --git a/packages/vuepress-plugin-typedoc/src/sidebar.ts b/packages/vuepress-plugin-typedoc/src/sidebar.ts index 1d14494a6..9dc0946d4 100644 --- a/packages/vuepress-plugin-typedoc/src/sidebar.ts +++ b/packages/vuepress-plugin-typedoc/src/sidebar.ts @@ -1,13 +1,8 @@ import * as path from 'path'; -import { NavigationItem } from 'typedoc'; - import { PluginOptions } from './types'; -export const getSidebarJson = ( - navigation: NavigationItem, - options: PluginOptions, -) => { +export const getSidebarJson = (navigation: any, options: PluginOptions) => { const navJson: any = []; navigation.children?.forEach((navigationItem) => { diff --git a/packages/vuepress-plugin-typedoc/src/theme.ts b/packages/vuepress-plugin-typedoc/src/theme.ts deleted file mode 100644 index c929ad908..000000000 --- a/packages/vuepress-plugin-typedoc/src/theme.ts +++ /dev/null @@ -1,8 +0,0 @@ -import MarkdownTheme from 'typedoc-plugin-markdown/dist/theme'; -import { Renderer } from 'typedoc/dist/lib/output/renderer'; - -export default class VuePressTheme extends MarkdownTheme { - constructor(renderer: Renderer, basePath: string) { - super(renderer, basePath); - } -} diff --git a/yarn.lock b/yarn.lock index dcd3d9d21..9c2b28da9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,7 +9,7 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== @@ -21,7 +21,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.5.tgz#8ef4c18e58e801c5c95d3c1c0f2874a2680fadea" integrity sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w== -"@babel/core@^7.1.0", "@babel/core@^7.7.2", "@babel/core@^7.7.5": +"@babel/core@^7.1.0", "@babel/core@^7.7.5": version "7.14.6" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.6.tgz#e0814ec1a950032ff16c13a2721de39a8416fcab" integrity sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA== @@ -42,7 +42,7 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.14.5", "@babel/generator@^7.7.2": +"@babel/generator@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.5.tgz#848d7b9f031caca9d0cd0af01b063f226f52d785" integrity sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA== @@ -181,11 +181,6 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.6.tgz#d85cc68ca3cac84eae384c06f032921f5227f4b2" integrity sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ== -"@babel/parser@^7.14.7", "@babel/parser@^7.7.2": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.7.tgz#6099720c8839ca865a2637e6c85852ead0bdb595" - integrity sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA== - "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -270,13 +265,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz#b82c6ce471b165b5ce420cf92914d6fb46225716" - integrity sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/template@^7.14.5", "@babel/template@^7.3.3": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" @@ -301,21 +289,6 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.7.2": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.7.tgz#64007c9774cfdc3abd23b0780bc18a3ce3631753" - integrity sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.14.5" - "@babel/helper-function-name" "^7.14.5" - "@babel/helper-hoist-variables" "^7.14.5" - "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/parser" "^7.14.7" - "@babel/types" "^7.14.5" - debug "^4.1.0" - globals "^11.1.0" - "@babel/types@^7.0.0", "@babel/types@^7.14.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz#3bb997ba829a2104cedb20689c4a5b8121d383ff" @@ -329,6 +302,14 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + "@docusaurus/types@^2.0.0-beta.0": version "2.0.0-beta.1" resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-2.0.0-beta.1.tgz#3174decdd3aef38987ff6753e39128f4367fedb9" @@ -340,10 +321,10 @@ webpack "^5.37.0" webpack-merge "^5.7.3" -"@eslint/eslintrc@^0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz#f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179" - integrity sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg== +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== dependencies: ajv "^6.12.4" debug "^4.1.1" @@ -397,94 +378,93 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.0.6.tgz#3eb72ea80897495c3d73dd97aab7f26770e2260f" - integrity sha512-fMlIBocSHPZ3JxgWiDNW/KPj6s+YRd0hicb33IrmelCcjXo/pXPwvuiKFmZz+XuqI/1u7nbUK10zSsWL/1aegg== +"@jest/console@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" + integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^26.6.2" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^27.0.6" - jest-util "^27.0.6" + jest-message-util "^26.6.2" + jest-util "^26.6.2" slash "^3.0.0" -"@jest/core@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.0.6.tgz#c5f642727a0b3bf0f37c4b46c675372d0978d4a1" - integrity sha512-SsYBm3yhqOn5ZLJCtccaBcvD/ccTLCeuDv8U41WJH/V1MW5eKUkeMHT9U+Pw/v1m1AIWlnIW/eM2XzQr0rEmow== +"@jest/core@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" + integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== dependencies: - "@jest/console" "^27.0.6" - "@jest/reporters" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/console" "^26.6.2" + "@jest/reporters" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - emittery "^0.8.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-changed-files "^27.0.6" - jest-config "^27.0.6" - jest-haste-map "^27.0.6" - jest-message-util "^27.0.6" - jest-regex-util "^27.0.6" - jest-resolve "^27.0.6" - jest-resolve-dependencies "^27.0.6" - jest-runner "^27.0.6" - jest-runtime "^27.0.6" - jest-snapshot "^27.0.6" - jest-util "^27.0.6" - jest-validate "^27.0.6" - jest-watcher "^27.0.6" - micromatch "^4.0.4" + jest-changed-files "^26.6.2" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-resolve-dependencies "^26.6.3" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + jest-watcher "^26.6.2" + micromatch "^4.0.2" p-each-series "^2.1.0" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.0.6.tgz#ee293fe996db01d7d663b8108fa0e1ff436219d2" - integrity sha512-4XywtdhwZwCpPJ/qfAkqExRsERW+UaoSRStSHCCiQTUpoYdLukj+YJbQSFrZjhlUDRZeNiU9SFH0u7iNimdiIg== +"@jest/environment@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" + integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== dependencies: - "@jest/fake-timers" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" "@types/node" "*" - jest-mock "^27.0.6" + jest-mock "^26.6.2" -"@jest/fake-timers@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.0.6.tgz#cbad52f3fe6abe30e7acb8cd5fa3466b9588e3df" - integrity sha512-sqd+xTWtZ94l3yWDKnRTdvTeZ+A/V7SSKrxsrOKSqdyddb9CeNRF8fbhAU0D7ZJBpTTW2nbp6MftmKJDZfW2LQ== +"@jest/fake-timers@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" + integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== dependencies: - "@jest/types" "^27.0.6" - "@sinonjs/fake-timers" "^7.0.2" + "@jest/types" "^26.6.2" + "@sinonjs/fake-timers" "^6.0.1" "@types/node" "*" - jest-message-util "^27.0.6" - jest-mock "^27.0.6" - jest-util "^27.0.6" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-util "^26.6.2" -"@jest/globals@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.0.6.tgz#48e3903f99a4650673d8657334d13c9caf0e8f82" - integrity sha512-DdTGCP606rh9bjkdQ7VvChV18iS7q0IMJVP1piwTWyWskol4iqcVwthZmoJEf7obE1nc34OpIyoVGPeqLC+ryw== +"@jest/globals@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" + integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== dependencies: - "@jest/environment" "^27.0.6" - "@jest/types" "^27.0.6" - expect "^27.0.6" + "@jest/environment" "^26.6.2" + "@jest/types" "^26.6.2" + expect "^26.6.2" -"@jest/reporters@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.0.6.tgz#91e7f2d98c002ad5df94d5b5167c1eb0b9fd5b00" - integrity sha512-TIkBt09Cb2gptji3yJXb3EE+eVltW6BjO7frO7NEfjI9vSIYoISi5R3aI3KpEDXlB1xwB+97NXIqz84qYeYsfA== +"@jest/reporters@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" + integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/console" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" @@ -495,61 +475,64 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.0.2" - jest-haste-map "^27.0.6" - jest-resolve "^27.0.6" - jest-util "^27.0.6" - jest-worker "^27.0.6" + jest-haste-map "^26.6.2" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" slash "^3.0.0" source-map "^0.6.0" string-length "^4.0.1" terminal-link "^2.0.0" - v8-to-istanbul "^8.0.0" + v8-to-istanbul "^7.0.0" + optionalDependencies: + node-notifier "^8.0.0" -"@jest/source-map@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.0.6.tgz#be9e9b93565d49b0548b86e232092491fb60551f" - integrity sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g== +"@jest/source-map@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" + integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== dependencies: callsites "^3.0.0" graceful-fs "^4.2.4" source-map "^0.6.0" -"@jest/test-result@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.0.6.tgz#3fa42015a14e4fdede6acd042ce98c7f36627051" - integrity sha512-ja/pBOMTufjX4JLEauLxE3LQBPaI2YjGFtXexRAjt1I/MbfNlMx0sytSX3tn5hSLzQsR3Qy2rd0hc1BWojtj9w== +"@jest/test-result@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" + integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== dependencies: - "@jest/console" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/console" "^26.6.2" + "@jest/types" "^26.6.2" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.0.6.tgz#80a913ed7a1130545b1cd777ff2735dd3af5d34b" - integrity sha512-bISzNIApazYOlTHDum9PwW22NOyDa6VI31n6JucpjTVM0jD6JDgqEZ9+yn575nDdPF0+4csYDxNNW13NvFQGZA== +"@jest/test-sequencer@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" + integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== dependencies: - "@jest/test-result" "^27.0.6" + "@jest/test-result" "^26.6.2" graceful-fs "^4.2.4" - jest-haste-map "^27.0.6" - jest-runtime "^27.0.6" + jest-haste-map "^26.6.2" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" -"@jest/transform@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.0.6.tgz#189ad7107413208f7600f4719f81dd2f7278cc95" - integrity sha512-rj5Dw+mtIcntAUnMlW/Vju5mr73u8yg+irnHwzgtgoeI6cCPOvUwQ0D1uQtc/APmWgvRweEb1g05pkUpxH3iCA== +"@jest/transform@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" + integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^27.0.6" + "@jest/types" "^26.6.2" babel-plugin-istanbul "^6.0.0" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.2.4" - jest-haste-map "^27.0.6" - jest-regex-util "^27.0.6" - jest-util "^27.0.6" - micromatch "^4.0.4" + jest-haste-map "^26.6.2" + jest-regex-util "^26.0.0" + jest-util "^26.6.2" + micromatch "^4.0.2" pirates "^4.0.1" slash "^3.0.0" source-map "^0.6.1" @@ -566,17 +549,6 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" -"@jest/types@^27.0.6": - version "27.0.6" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.0.6.tgz#9a992bc517e0c49f035938b8549719c2de40706b" - integrity sha512-aSquT1qa9Pik26JK5/3rvnYb4bGtm1VFNesHKmNTwmPIgOrixvhL2ghIvFRNEpzy3gU+rUgjIF/KodbkFAl++g== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - "@lerna/add@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@lerna/add/-/add-4.0.0.tgz#c36f57d132502a57b9e7058d1548b7a565ef183f" @@ -1457,10 +1429,10 @@ dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^7.0.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz#2524eae70c4910edccf99b2f4e6efc5894aff7b5" - integrity sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg== +"@sinonjs/fake-timers@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== dependencies: "@sinonjs/commons" "^1.7.0" @@ -1480,10 +1452,10 @@ "@types/babel__template" "*" "@types/babel__traverse" "*" -"@types/babel__core@^7.1.14": - version "7.1.15" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.15.tgz#2ccfb1ad55a02c83f8e0ad327cbc332f55eb1024" - integrity sha512-bxlMKPDbY8x5h6HBwVzEOk2C8fb6SLfYQ5Jw3uBYuYF1lfWk/kbLd81la82vrIkBb0l+JdmrZaDikPrNxpS/Ew== +"@types/babel__core@^7.1.7": + version "7.1.16" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.16.tgz#bc12c74b7d65e82d29876b5d0baf5c625ac58702" + integrity sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -1600,10 +1572,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.4.tgz#e1cf817d70a1e118e81922c4ff6683ce9d422e26" integrity sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA== -"@types/node@^16.3.1": - version "16.3.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.3.1.tgz#24691fa2b0c3ec8c0d34bfcfd495edac5593ebb4" - integrity sha512-N87VuQi7HEeRJkhzovao/JviiqKjDKMVKxKMfUvSKw+MbkbW8R0nA3fi/MQhhlxV2fQ+2ReM+/Nt4efdrJx3zA== +"@types/node@^16.9.1": + version "16.9.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.9.1.tgz#0611b37db4246c937feef529ddcc018cf8e35708" + integrity sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -1615,15 +1587,15 @@ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== -"@types/prettier@^2.1.5": +"@types/prettier@^2.0.0": version "2.3.2" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.2.tgz#fc8c2825e4ed2142473b4a81064e6e081463d1b3" integrity sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog== -"@types/progress@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/progress/-/progress-2.0.4.tgz#01f8eb06a5f6be396b81d19a20f273cea11ef9b6" - integrity sha512-vXGO4Hkk1QeLGRtOD9D8q2K0peciCA46Qo3n/w8joyW5BYx80C2h3b7qk5MkcRnncQRPlFm+KA73BJRfVl+yyw== +"@types/progress@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@types/progress/-/progress-2.0.5.tgz#6e0febf3a82cc0ffdc1cebb4e56d6949fd108775" + integrity sha512-ZYYVc/kSMkhH9W/4dNK/sLNra3cnkfT2nJyOAIDY+C2u6w72wa0s1aXAezVtbTsnN8HID1uhXCrLwDE2ZXpplg== dependencies: "@types/node" "*" @@ -1649,80 +1621,73 @@ dependencies: "@types/yargs-parser" "*" -"@types/yargs@^16.0.0": - version "16.0.4" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" - integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== - dependencies: - "@types/yargs-parser" "*" - -"@typescript-eslint/eslint-plugin@^4.28.2": - version "4.28.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.2.tgz#7a8320f00141666813d0ae43b49ee8244f7cf92a" - integrity sha512-PGqpLLzHSxq956rzNGasO3GsAPf2lY9lDUBXhS++SKonglUmJypaUtcKzRtUte8CV7nruwnDxtLUKpVxs0wQBw== +"@typescript-eslint/eslint-plugin@^4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.0.tgz#9c3fa6f44bad789a962426ad951b54695bd3af6b" + integrity sha512-iPKZTZNavAlOhfF4gymiSuUkgLne/nh5Oz2/mdiUmuZVD42m9PapnCnzjxuDsnpnbH3wT5s2D8bw6S39TC6GNw== dependencies: - "@typescript-eslint/experimental-utils" "4.28.2" - "@typescript-eslint/scope-manager" "4.28.2" + "@typescript-eslint/experimental-utils" "4.31.0" + "@typescript-eslint/scope-manager" "4.31.0" debug "^4.3.1" functional-red-black-tree "^1.0.1" regexpp "^3.1.0" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@4.28.2": - version "4.28.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.2.tgz#4ebdec06a10888e9326e1d51d81ad52a361bd0b0" - integrity sha512-MwHPsL6qo98RC55IoWWP8/opTykjTp4JzfPu1VfO2Z0MshNP0UZ1GEV5rYSSnZSUI8VD7iHvtIPVGW5Nfh7klQ== +"@typescript-eslint/experimental-utils@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.0.tgz#0ef1d5d86c334f983a00f310e43c1ce4c14e054d" + integrity sha512-Hld+EQiKLMppgKKkdUsLeVIeEOrwKc2G983NmznY/r5/ZtZCDvIOXnXtwqJIgYz/ymsy7n7RGvMyrzf1WaSQrw== dependencies: "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.28.2" - "@typescript-eslint/types" "4.28.2" - "@typescript-eslint/typescript-estree" "4.28.2" + "@typescript-eslint/scope-manager" "4.31.0" + "@typescript-eslint/types" "4.31.0" + "@typescript-eslint/typescript-estree" "4.31.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/parser@^4.28.2": - version "4.28.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.28.2.tgz#6aff11bf4b91eb67ca7517962eede951e9e2a15d" - integrity sha512-Q0gSCN51eikAgFGY+gnd5p9bhhCUAl0ERMiDKrTzpSoMYRubdB8MJrTTR/BBii8z+iFwz8oihxd0RAdP4l8w8w== +"@typescript-eslint/parser@^4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.31.0.tgz#87b7cd16b24b9170c77595d8b1363f8047121e05" + integrity sha512-oWbzvPh5amMuTmKaf1wp0ySxPt2ZXHnFQBN2Szu1O//7LmOvgaKTCIDNLK2NvzpmVd5A2M/1j/rujBqO37hj3w== dependencies: - "@typescript-eslint/scope-manager" "4.28.2" - "@typescript-eslint/types" "4.28.2" - "@typescript-eslint/typescript-estree" "4.28.2" + "@typescript-eslint/scope-manager" "4.31.0" + "@typescript-eslint/types" "4.31.0" + "@typescript-eslint/typescript-estree" "4.31.0" debug "^4.3.1" -"@typescript-eslint/scope-manager@4.28.2": - version "4.28.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.28.2.tgz#451dce90303a3ce283750111495d34c9c204e510" - integrity sha512-MqbypNjIkJFEFuOwPWNDjq0nqXAKZvDNNs9yNseoGBB1wYfz1G0WHC2AVOy4XD7di3KCcW3+nhZyN6zruqmp2A== +"@typescript-eslint/scope-manager@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.31.0.tgz#9be33aed4e9901db753803ba233b70d79a87fc3e" + integrity sha512-LJ+xtl34W76JMRLjbaQorhR0hfRAlp3Lscdiz9NeI/8i+q0hdBZ7BsiYieLoYWqy+AnRigaD3hUwPFugSzdocg== dependencies: - "@typescript-eslint/types" "4.28.2" - "@typescript-eslint/visitor-keys" "4.28.2" + "@typescript-eslint/types" "4.31.0" + "@typescript-eslint/visitor-keys" "4.31.0" -"@typescript-eslint/types@4.28.2": - version "4.28.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.28.2.tgz#e6b9e234e0e9a66c4d25bab881661e91478223b5" - integrity sha512-Gr15fuQVd93uD9zzxbApz3wf7ua3yk4ZujABZlZhaxxKY8ojo448u7XTm/+ETpy0V0dlMtj6t4VdDvdc0JmUhA== +"@typescript-eslint/types@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.31.0.tgz#9a7c86fcc1620189567dc4e46cad7efa07ee8dce" + integrity sha512-9XR5q9mk7DCXgXLS7REIVs+BaAswfdHhx91XqlJklmqWpTALGjygWVIb/UnLh4NWhfwhR5wNe1yTyCInxVhLqQ== -"@typescript-eslint/typescript-estree@4.28.2": - version "4.28.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.2.tgz#680129b2a285289a15e7c6108c84739adf3a798c" - integrity sha512-86lLstLvK6QjNZjMoYUBMMsULFw0hPHJlk1fzhAVoNjDBuPVxiwvGuPQq3fsBMCxuDJwmX87tM/AXoadhHRljg== +"@typescript-eslint/typescript-estree@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.0.tgz#4da4cb6274a7ef3b21d53f9e7147cc76f278a078" + integrity sha512-QHl2014t3ptg+xpmOSSPn5hm4mY8D4s97ftzyk9BZ8RxYQ3j73XcwuijnJ9cMa6DO4aLXeo8XS3z1omT9LA/Eg== dependencies: - "@typescript-eslint/types" "4.28.2" - "@typescript-eslint/visitor-keys" "4.28.2" + "@typescript-eslint/types" "4.31.0" + "@typescript-eslint/visitor-keys" "4.31.0" debug "^4.3.1" globby "^11.0.3" is-glob "^4.0.1" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.28.2": - version "4.28.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.2.tgz#bf56a400857bb68b59b311e6d0a5fbef5c3b5130" - integrity sha512-aT2B4PLyyRDUVUafXzpZFoc0C9t0za4BJAKP5sgWIhG+jHECQZUEjuQSCIwZdiJJ4w4cgu5r3Kh20SOdtEBl0w== +"@typescript-eslint/visitor-keys@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.0.tgz#4e87b7761cb4e0e627dc2047021aa693fc76ea2b" + integrity sha512-HUcRp2a9I+P21+O21yu3ezv3GEPGjyGiXoEUQwZXjR8UxRApGeLyWH4ZIIUSalE28aG4YsV6GjtaAVB3QKOu0w== dependencies: - "@typescript-eslint/types" "4.28.2" + "@typescript-eslint/types" "4.31.0" eslint-visitor-keys "^2.0.0" "@webassemblyjs/ast@1.11.0": @@ -1997,10 +1962,13 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" anymatch@^3.0.3: version "3.1.2" @@ -2040,6 +2008,21 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + array-differ@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" @@ -2060,6 +2043,11 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -2087,6 +2075,11 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + astral-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" @@ -2102,6 +2095,11 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -2112,16 +2110,16 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -babel-jest@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.0.6.tgz#e99c6e0577da2655118e3608b68761a5a69bd0d8" - integrity sha512-iTJyYLNc4wRofASmofpOc5NK9QunwMk+TLFgGXsTFS8uEqmd8wdI7sga0FPe2oVH3b5Agt/EAK1QjPEuKL8VfA== +babel-jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" + integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== dependencies: - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/babel__core" "^7.1.14" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/babel__core" "^7.1.7" babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^27.0.6" + babel-preset-jest "^26.6.2" chalk "^4.0.0" graceful-fs "^4.2.4" slash "^3.0.0" @@ -2137,10 +2135,10 @@ babel-plugin-istanbul@^6.0.0: istanbul-lib-instrument "^4.0.0" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.6.tgz#f7c6b3d764af21cb4a2a1ab6870117dbde15b456" - integrity sha512-CewFeM9Vv2gM7Yr9n5eyyLVPRSiBnk6lKZRjgwYnGKSl9M14TMn2vkN02wTF04OGuSDLEzlWiMzvjXuW9mB6Gw== +babel-plugin-jest-hoist@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" + integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -2165,12 +2163,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.0.6.tgz#909ef08e9f24a4679768be2f60a3df0856843f9d" - integrity sha512-WObA0/Biw2LrVVwZkF/2GqbOdzhKD6Fkdwhoy9ASIrOWr/zodcSpQh72JOkEn6NWyjmnPDjNSqaGN4KnpKzhXw== +babel-preset-jest@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" + integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== dependencies: - babel-plugin-jest-hoist "^27.0.6" + babel-plugin-jest-hoist "^26.6.2" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -2178,6 +2176,19 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" @@ -2198,6 +2209,22 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +braces@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + braces@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -2235,7 +2262,12 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" -buffer-from@1.x, buffer-from@^1.0.0: +buffer-from@1.x: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== @@ -2278,6 +2310,21 @@ cacache@^15.0.5, cacache@^15.2.0: tar "^6.0.2" unique-filename "^1.1.1" +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -2313,12 +2360,12 @@ camelcase@^2.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= -camelcase@^5.3.1: +camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.2.0: +camelcase@^6.0.0: version "6.2.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== @@ -2328,6 +2375,13 @@ caniuse-lite@^1.0.30001219: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001238.tgz#e6a8b45455c5de601718736d0242feef0ecdda15" integrity sha512-bZGam2MxEt7YNsa2VwshqWQMwrYs5tR5WZQRYSuFxsBQunWjBuXhN4cS9nV5FFb1Z9y+DoQcQ0COyQbv6A+CKw== +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -2380,15 +2434,20 @@ ci-info@^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.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" - integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== +cjs-module-lexer@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" + integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== -cjs-module-lexer@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.1.tgz#2fd46d9906a126965aa541345c499aaa18e8cd73" - integrity sha512-jVamGdJPDeuQilKhvVn1h3knuMOZzr8QDnpk+M9aMlCaMkTDd6fBWPhiDqFvFZ07pL0liqabAiuy8SY4jGHeaw== +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" clean-stack@^2.0.0: version "2.2.0" @@ -2407,6 +2466,15 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -2452,6 +2520,14 @@ collect-v8-coverage@^1.0.0: resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -2506,10 +2582,10 @@ commander@^5.1.0: resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== -commander@~7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.1.0.tgz#f2eaecf131f10e36e07d894698226e36ae0eb5ff" - integrity sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg== +commander@~8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.0.0.tgz#1da2139548caef59bd23e66d18908dfb54b02258" + integrity sha512-Xvf85aAtu6v22+E5hfVoLHqyul/jyxh91zvqk/ioJTQuJR7Z78n7H558vMPKanPSRgIEeZemT92I2g9Y8LPbSQ== compare-func@^2.0.0: version "2.0.0" @@ -2519,6 +2595,11 @@ compare-func@^2.0.0: array-ify "^1.0.0" dot-prop "^5.1.0" +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -2639,6 +2720,11 @@ convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: dependencies: safe-buffer "~5.1.1" +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + copyfiles@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.4.1.tgz#d2dcff60aaad1015f09d0b66e7f0f1c5cd3c5da5" @@ -2668,7 +2754,7 @@ cosmiconfig@^7.0.0: path-type "^4.0.0" yaml "^1.10.0" -cross-spawn@^6.0.5: +cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -2679,7 +2765,7 @@ cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.2, cross-spawn@^7.0.3: +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" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -2750,6 +2836,13 @@ debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: dependencies: ms "2.1.2" +debug@^2.2.0, debug@^2.3.3: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" @@ -2763,7 +2856,7 @@ decamelize-keys@^1.1.0: decamelize "^1.1.0" map-obj "^1.0.0" -decamelize@^1.1.0, decamelize@^1.1.2: +decamelize@^1.1.0, decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= @@ -2812,6 +2905,28 @@ define-properties@^1.1.3: dependencies: object-keys "^1.0.12" +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -2860,11 +2975,6 @@ diff-sequences@^26.6.2: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== -diff-sequences@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.6.tgz#3305cb2e55a033924054695cc66019fd7f8e5723" - integrity sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ== - dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -2918,10 +3028,10 @@ electron-to-chromium@^1.3.723: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.752.tgz#0728587f1b9b970ec9ffad932496429aef750d09" integrity sha512-2Tg+7jSl3oPxgsBsWKh5H83QazTkmWG/cnNwJplmyZc7KcN61+I10oUgaXSVk/NwfvN3BdkKDR4FYuRBQQ2v0A== -emittery@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" - integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== +emittery@^0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" + integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== emoji-regex@^8.0.0: version "8.0.0" @@ -2935,6 +3045,13 @@ encoding@^0.1.12: dependencies: iconv-lite "^0.6.2" +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + enhanced-resolve@^5.8.0: version "5.8.2" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz#15ddc779345cbb73e97c611cd00c01c1e7bf4d8b" @@ -3077,13 +3194,13 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint@^7.30.0: - version "7.30.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.30.0.tgz#6d34ab51aaa56112fd97166226c9a97f505474f8" - integrity sha512-VLqz80i3as3NdloY44BQSJpFw534L9Oh+6zJOUaViV4JPd+DaHwutqP7tcpkW3YiXbK6s05RZl7yl7cQn+lijg== +eslint@^7.32.0: + version "7.32.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== dependencies: "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.2" + "@eslint/eslintrc" "^0.4.3" "@humanwhocodes/config-array" "^0.5.0" ajv "^6.10.0" chalk "^4.0.0" @@ -3176,6 +3293,39 @@ events@^3.2.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== +exec-sh@^0.3.2: + version "0.3.6" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" + integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + execa@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" @@ -3196,17 +3346,45 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= -expect@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/expect/-/expect-27.0.6.tgz#a4d74fbe27222c718fff68ef49d78e26a8fd4c05" - integrity sha512-psNLt8j2kwg42jGBDSfAlU49CEZxejN1f1PlANWDZqIhBOVU/c2Pm888FcjWJzFewhIsNWfZJeLjUjtKGiPuSw== +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expect@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" + integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== + dependencies: + "@jest/types" "^26.6.2" + ansi-styles "^4.0.0" + jest-get-type "^26.3.0" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= dependencies: - "@jest/types" "^27.0.6" - ansi-styles "^5.0.0" - jest-get-type "^27.0.6" - jest-matcher-utils "^27.0.6" - jest-message-util "^27.0.6" - jest-regex-util "^27.0.6" + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" extend@~3.0.2: version "3.0.2" @@ -3222,6 +3400,20 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -3287,6 +3479,16 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -3335,6 +3537,11 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -3358,6 +3565,13 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + fs-extra@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" @@ -3396,7 +3610,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^2.3.2: +fsevents@^2.1.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -3430,7 +3644,7 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.5: +get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== @@ -3475,11 +3689,30 @@ get-stdin@~8.0.0: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== +get-stream@^4.0.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: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + get-stream@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" @@ -3548,7 +3781,7 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.0.0, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@~7.1.6: +glob@^7.0.0, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@~7.1.7: version "7.1.7" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== @@ -3589,6 +3822,11 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + handlebars@^4.7.6, handlebars@^4.7.7: version "4.7.7" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" @@ -3644,6 +3882,37 @@ has-unicode@^2.0.0, has-unicode@^2.0.1: resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -3706,6 +3975,11 @@ https-proxy-agent@^5.0.0: agent-base "6" debug "4" +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -3800,11 +4074,16 @@ inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: +ini@^1.3.2, ini@^1.3.4: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== +ini@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + init-package-json@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-2.0.3.tgz#c8ae4f2a4ad353bcbc089e5ffe98a8f1a314e8fd" @@ -3848,6 +4127,20 @@ ip@^1.1.5: resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -3865,6 +4158,11 @@ is-boolean-object@^1.1.0: dependencies: call-bind "^1.0.2" +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + is-callable@^1.1.4, is-callable@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" @@ -3877,13 +4175,6 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-ci@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz#c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994" - integrity sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ== - dependencies: - ci-info "^3.1.1" - is-core-module@^2.2.0: version "2.4.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" @@ -3891,11 +4182,60 @@ is-core-module@^2.2.0: dependencies: has "^1.0.3" +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + is-date-object@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5" integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A== +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-docker@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -3950,6 +4290,13 @@ is-number-object@^1.0.4: resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb" integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -3970,7 +4317,7 @@ is-plain-obj@^2.0.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-object@^2.0.4: +is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== @@ -4002,6 +4349,11 @@ is-ssh@^1.3.0: dependencies: protocols "^1.1.0" +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + is-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" @@ -4036,12 +4388,24 @@ is-utf8@^0.2.0: resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= -isarray@~1.0.0: +isarray@1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= @@ -4051,7 +4415,14 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -isobject@^3.0.1: +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= @@ -4102,86 +4473,59 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.0.6.tgz#bed6183fcdea8a285482e3b50a9a7712d49a7a8b" - integrity sha512-BuL/ZDauaq5dumYh5y20sn4IISnf1P9A0TDswTxUi84ORGtVa86ApuBHqICL0vepqAnZiY6a7xeSPWv2/yy4eA== - dependencies: - "@jest/types" "^27.0.6" - execa "^5.0.0" - throat "^6.0.1" - -jest-circus@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.0.6.tgz#dd4df17c4697db6a2c232aaad4e9cec666926668" - integrity sha512-OJlsz6BBeX9qR+7O9lXefWoc2m9ZqcZ5Ohlzz0pTEAG4xMiZUJoacY8f4YDHxgk0oKYxj277AfOk9w6hZYvi1Q== +jest-changed-files@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" + integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== dependencies: - "@jest/environment" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - expect "^27.0.6" - is-generator-fn "^2.0.0" - jest-each "^27.0.6" - jest-matcher-utils "^27.0.6" - jest-message-util "^27.0.6" - jest-runtime "^27.0.6" - jest-snapshot "^27.0.6" - jest-util "^27.0.6" - pretty-format "^27.0.6" - slash "^3.0.0" - stack-utils "^2.0.3" - throat "^6.0.1" + "@jest/types" "^26.6.2" + execa "^4.0.0" + throat "^5.0.0" -jest-cli@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.0.6.tgz#d021e5f4d86d6a212450d4c7b86cb219f1e6864f" - integrity sha512-qUUVlGb9fdKir3RDE+B10ULI+LQrz+MCflEH2UJyoUjoHHCbxDrMxSzjQAPUMsic4SncI62ofYCcAvW6+6rhhg== +jest-cli@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" + integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== dependencies: - "@jest/core" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/core" "^26.6.3" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" import-local "^3.0.2" - jest-config "^27.0.6" - jest-util "^27.0.6" - jest-validate "^27.0.6" + is-ci "^2.0.0" + jest-config "^26.6.3" + jest-util "^26.6.2" + jest-validate "^26.6.2" prompts "^2.0.1" - yargs "^16.0.3" + yargs "^15.4.1" -jest-config@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.0.6.tgz#119fb10f149ba63d9c50621baa4f1f179500277f" - integrity sha512-JZRR3I1Plr2YxPBhgqRspDE2S5zprbga3swYNrvY3HfQGu7p/GjyLOqwrYad97tX3U3mzT53TPHVmozacfP/3w== +jest-config@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" + integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^27.0.6" - "@jest/types" "^27.0.6" - babel-jest "^27.0.6" + "@jest/test-sequencer" "^26.6.3" + "@jest/types" "^26.6.2" + babel-jest "^26.6.3" chalk "^4.0.0" deepmerge "^4.2.2" glob "^7.1.1" graceful-fs "^4.2.4" - is-ci "^3.0.0" - jest-circus "^27.0.6" - jest-environment-jsdom "^27.0.6" - jest-environment-node "^27.0.6" - jest-get-type "^27.0.6" - jest-jasmine2 "^27.0.6" - jest-regex-util "^27.0.6" - jest-resolve "^27.0.6" - jest-runner "^27.0.6" - jest-util "^27.0.6" - jest-validate "^27.0.6" - micromatch "^4.0.4" - pretty-format "^27.0.6" - -jest-diff@^26.0.0: + jest-environment-jsdom "^26.6.2" + jest-environment-node "^26.6.2" + jest-get-type "^26.3.0" + jest-jasmine2 "^26.6.3" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + micromatch "^4.0.2" + pretty-format "^26.6.2" + +jest-diff@^26.0.0, jest-diff@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== @@ -4191,152 +4535,138 @@ jest-diff@^26.0.0: jest-get-type "^26.3.0" pretty-format "^26.6.2" -jest-diff@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.0.6.tgz#4a7a19ee6f04ad70e0e3388f35829394a44c7b5e" - integrity sha512-Z1mqgkTCSYaFgwTlP/NUiRzdqgxmmhzHY1Tq17zL94morOHfHu3K4bgSgl+CR4GLhpV8VxkuOYuIWnQ9LnFqmg== - dependencies: - chalk "^4.0.0" - diff-sequences "^27.0.6" - jest-get-type "^27.0.6" - pretty-format "^27.0.6" - -jest-docblock@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.0.6.tgz#cc78266acf7fe693ca462cbbda0ea4e639e4e5f3" - integrity sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA== +jest-docblock@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" + integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== dependencies: detect-newline "^3.0.0" -jest-each@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.0.6.tgz#cee117071b04060158dc8d9a66dc50ad40ef453b" - integrity sha512-m6yKcV3bkSWrUIjxkE9OC0mhBZZdhovIW5ergBYirqnkLXkyEn3oUUF/QZgyecA1cF1QFyTE8bRRl8Tfg1pfLA== +jest-each@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" + integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^26.6.2" chalk "^4.0.0" - jest-get-type "^27.0.6" - jest-util "^27.0.6" - pretty-format "^27.0.6" - -jest-environment-jsdom@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.0.6.tgz#f66426c4c9950807d0a9f209c590ce544f73291f" - integrity sha512-FvetXg7lnXL9+78H+xUAsra3IeZRTiegA3An01cWeXBspKXUhAwMM9ycIJ4yBaR0L7HkoMPaZsozCLHh4T8fuw== - dependencies: - "@jest/environment" "^27.0.6" - "@jest/fake-timers" "^27.0.6" - "@jest/types" "^27.0.6" + jest-get-type "^26.3.0" + jest-util "^26.6.2" + pretty-format "^26.6.2" + +jest-environment-jsdom@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" + integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" "@types/node" "*" - jest-mock "^27.0.6" - jest-util "^27.0.6" - jsdom "^16.6.0" - -jest-environment-node@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.0.6.tgz#a6699b7ceb52e8d68138b9808b0c404e505f3e07" - integrity sha512-+Vi6yLrPg/qC81jfXx3IBlVnDTI6kmRr08iVa2hFCWmJt4zha0XW7ucQltCAPhSR0FEKEoJ3i+W4E6T0s9is0w== - dependencies: - "@jest/environment" "^27.0.6" - "@jest/fake-timers" "^27.0.6" - "@jest/types" "^27.0.6" + jest-mock "^26.6.2" + jest-util "^26.6.2" + jsdom "^16.4.0" + +jest-environment-node@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" + integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" "@types/node" "*" - jest-mock "^27.0.6" - jest-util "^27.0.6" + jest-mock "^26.6.2" + jest-util "^26.6.2" jest-get-type@^26.3.0: version "26.3.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== -jest-get-type@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.6.tgz#0eb5c7f755854279ce9b68a9f1a4122f69047cfe" - integrity sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg== - -jest-haste-map@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.0.6.tgz#4683a4e68f6ecaa74231679dca237279562c8dc7" - integrity sha512-4ldjPXX9h8doB2JlRzg9oAZ2p6/GpQUNAeiYXqcpmrKbP0Qev0wdZlxSMOmz8mPOEnt4h6qIzXFLDi8RScX/1w== +jest-haste-map@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" + integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^26.6.2" "@types/graceful-fs" "^4.1.2" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.4" - jest-regex-util "^27.0.6" - jest-serializer "^27.0.6" - jest-util "^27.0.6" - jest-worker "^27.0.6" - micromatch "^4.0.4" + jest-regex-util "^26.0.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + micromatch "^4.0.2" + sane "^4.0.3" walker "^1.0.7" optionalDependencies: - fsevents "^2.3.2" + fsevents "^2.1.2" -jest-jasmine2@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.0.6.tgz#fd509a9ed3d92bd6edb68a779f4738b100655b37" - integrity sha512-cjpH2sBy+t6dvCeKBsHpW41mjHzXgsavaFMp+VWRf0eR4EW8xASk1acqmljFtK2DgyIECMv2yCdY41r2l1+4iA== +jest-jasmine2@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" + integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^27.0.6" - "@jest/source-map" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/environment" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - expect "^27.0.6" + expect "^26.6.2" is-generator-fn "^2.0.0" - jest-each "^27.0.6" - jest-matcher-utils "^27.0.6" - jest-message-util "^27.0.6" - jest-runtime "^27.0.6" - jest-snapshot "^27.0.6" - jest-util "^27.0.6" - pretty-format "^27.0.6" - throat "^6.0.1" - -jest-leak-detector@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.0.6.tgz#545854275f85450d4ef4b8fe305ca2a26450450f" - integrity sha512-2/d6n2wlH5zEcdctX4zdbgX8oM61tb67PQt4Xh8JFAIy6LRKUnX528HulkaG6nD5qDl5vRV1NXejCe1XRCH5gQ== - dependencies: - jest-get-type "^27.0.6" - pretty-format "^27.0.6" - -jest-matcher-utils@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.0.6.tgz#2a8da1e86c620b39459f4352eaa255f0d43e39a9" - integrity sha512-OFgF2VCQx9vdPSYTHWJ9MzFCehs20TsyFi6bIHbk5V1u52zJOnvF0Y/65z3GLZHKRuTgVPY4Z6LVePNahaQ+tA== + jest-each "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + pretty-format "^26.6.2" + throat "^5.0.0" + +jest-leak-detector@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" + integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== + dependencies: + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-matcher-utils@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" + integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== dependencies: chalk "^4.0.0" - jest-diff "^27.0.6" - jest-get-type "^27.0.6" - pretty-format "^27.0.6" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" -jest-message-util@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.0.6.tgz#158bcdf4785706492d164a39abca6a14da5ab8b5" - integrity sha512-rBxIs2XK7rGy+zGxgi+UJKP6WqQ+KrBbD1YMj517HYN3v2BG66t3Xan3FWqYHKZwjdB700KiAJ+iES9a0M+ixw== +jest-message-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" + integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.0.6" + "@babel/code-frame" "^7.0.0" + "@jest/types" "^26.6.2" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.4" - micromatch "^4.0.4" - pretty-format "^27.0.6" + micromatch "^4.0.2" + pretty-format "^26.6.2" slash "^3.0.0" - stack-utils "^2.0.3" + stack-utils "^2.0.2" -jest-mock@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.0.6.tgz#0efdd40851398307ba16778728f6d34d583e3467" - integrity sha512-lzBETUoK8cSxts2NYXSBWT+EJNzmUVtVVwS1sU9GwE1DLCfGsngg+ZVSIe0yd0ZSm+y791esiuo+WSwpXJQ5Bw== +jest-mock@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" + integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^26.6.2" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -4344,196 +4674,186 @@ jest-pnp-resolver@^1.2.2: resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== -jest-regex-util@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz#02e112082935ae949ce5d13b2675db3d8c87d9c5" - integrity sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ== +jest-regex-util@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" + integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== -jest-resolve-dependencies@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.6.tgz#3e619e0ef391c3ecfcf6ef4056207a3d2be3269f" - integrity sha512-mg9x9DS3BPAREWKCAoyg3QucCr0n6S8HEEsqRCKSPjPcu9HzRILzhdzY3imsLoZWeosEbJZz6TKasveczzpJZA== +jest-resolve-dependencies@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" + integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== dependencies: - "@jest/types" "^27.0.6" - jest-regex-util "^27.0.6" - jest-snapshot "^27.0.6" + "@jest/types" "^26.6.2" + jest-regex-util "^26.0.0" + jest-snapshot "^26.6.2" -jest-resolve@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.0.6.tgz#e90f436dd4f8fbf53f58a91c42344864f8e55bff" - integrity sha512-yKmIgw2LgTh7uAJtzv8UFHGF7Dm7XfvOe/LQ3Txv101fLM8cx2h1QVwtSJ51Q/SCxpIiKfVn6G2jYYMDNHZteA== +jest-resolve@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" + integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^26.6.2" chalk "^4.0.0" - escalade "^3.1.1" graceful-fs "^4.2.4" jest-pnp-resolver "^1.2.2" - jest-util "^27.0.6" - jest-validate "^27.0.6" - resolve "^1.20.0" + jest-util "^26.6.2" + read-pkg-up "^7.0.1" + resolve "^1.18.1" slash "^3.0.0" -jest-runner@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.0.6.tgz#1325f45055539222bbc7256a6976e993ad2f9520" - integrity sha512-W3Bz5qAgaSChuivLn+nKOgjqNxM7O/9JOJoKDCqThPIg2sH/d4A/lzyiaFgnb9V1/w29Le11NpzTJSzga1vyYQ== +jest-runner@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" + integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== dependencies: - "@jest/console" "^27.0.6" - "@jest/environment" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" "@types/node" "*" chalk "^4.0.0" - emittery "^0.8.1" + emittery "^0.7.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-docblock "^27.0.6" - jest-environment-jsdom "^27.0.6" - jest-environment-node "^27.0.6" - jest-haste-map "^27.0.6" - jest-leak-detector "^27.0.6" - jest-message-util "^27.0.6" - jest-resolve "^27.0.6" - jest-runtime "^27.0.6" - jest-util "^27.0.6" - jest-worker "^27.0.6" + jest-config "^26.6.3" + jest-docblock "^26.0.0" + jest-haste-map "^26.6.2" + jest-leak-detector "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + jest-runtime "^26.6.3" + jest-util "^26.6.2" + jest-worker "^26.6.2" source-map-support "^0.5.6" - throat "^6.0.1" - -jest-runtime@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.0.6.tgz#45877cfcd386afdd4f317def551fc369794c27c9" - integrity sha512-BhvHLRVfKibYyqqEFkybsznKwhrsu7AWx2F3y9G9L95VSIN3/ZZ9vBpm/XCS2bS+BWz3sSeNGLzI3TVQ0uL85Q== - dependencies: - "@jest/console" "^27.0.6" - "@jest/environment" "^27.0.6" - "@jest/fake-timers" "^27.0.6" - "@jest/globals" "^27.0.6" - "@jest/source-map" "^27.0.6" - "@jest/test-result" "^27.0.6" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" - "@types/yargs" "^16.0.0" + throat "^5.0.0" + +jest-runtime@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" + integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/globals" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/yargs" "^15.0.0" chalk "^4.0.0" - cjs-module-lexer "^1.0.0" + cjs-module-lexer "^0.6.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.2.4" - jest-haste-map "^27.0.6" - jest-message-util "^27.0.6" - jest-mock "^27.0.6" - jest-regex-util "^27.0.6" - jest-resolve "^27.0.6" - jest-snapshot "^27.0.6" - jest-util "^27.0.6" - jest-validate "^27.0.6" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" slash "^3.0.0" strip-bom "^4.0.0" - yargs "^16.0.3" + yargs "^15.4.1" -jest-serializer@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.0.6.tgz#93a6c74e0132b81a2d54623251c46c498bb5bec1" - integrity sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA== +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== dependencies: "@types/node" "*" graceful-fs "^4.2.4" -jest-snapshot@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.0.6.tgz#f4e6b208bd2e92e888344d78f0f650bcff05a4bf" - integrity sha512-NTHaz8He+ATUagUgE7C/UtFcRoHqR2Gc+KDfhQIyx+VFgwbeEMjeP+ILpUTLosZn/ZtbNdCF5LkVnN/l+V751A== +jest-snapshot@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" + integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== dependencies: - "@babel/core" "^7.7.2" - "@babel/generator" "^7.7.2" - "@babel/parser" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" "@babel/types" "^7.0.0" - "@jest/transform" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/types" "^26.6.2" "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" + "@types/prettier" "^2.0.0" chalk "^4.0.0" - expect "^27.0.6" + expect "^26.6.2" graceful-fs "^4.2.4" - jest-diff "^27.0.6" - jest-get-type "^27.0.6" - jest-haste-map "^27.0.6" - jest-matcher-utils "^27.0.6" - jest-message-util "^27.0.6" - jest-resolve "^27.0.6" - jest-util "^27.0.6" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + jest-haste-map "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" natural-compare "^1.4.0" - pretty-format "^27.0.6" + pretty-format "^26.6.2" semver "^7.3.2" -jest-util@^27.0.0, jest-util@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.0.6.tgz#e8e04eec159de2f4d5f57f795df9cdc091e50297" - integrity sha512-1JjlaIh+C65H/F7D11GNkGDDZtDfMEM8EBXsvd+l/cxtgQ6QhxuloOaiayt89DxUvDarbVhqI98HhgrM1yliFQ== +jest-util@^26.1.0, jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== dependencies: - "@jest/types" "^27.0.6" + "@jest/types" "^26.6.2" "@types/node" "*" chalk "^4.0.0" graceful-fs "^4.2.4" - is-ci "^3.0.0" - picomatch "^2.2.3" + is-ci "^2.0.0" + micromatch "^4.0.2" -jest-validate@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.0.6.tgz#930a527c7a951927df269f43b2dc23262457e2a6" - integrity sha512-yhZZOaMH3Zg6DC83n60pLmdU1DQE46DW+KLozPiPbSbPhlXXaiUTDlhHQhHFpaqIFRrInko1FHXjTRpjWRuWfA== +jest-validate@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" + integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== dependencies: - "@jest/types" "^27.0.6" - camelcase "^6.2.0" + "@jest/types" "^26.6.2" + camelcase "^6.0.0" chalk "^4.0.0" - jest-get-type "^27.0.6" + jest-get-type "^26.3.0" leven "^3.1.0" - pretty-format "^27.0.6" + pretty-format "^26.6.2" -jest-watcher@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.0.6.tgz#89526f7f9edf1eac4e4be989bcb6dec6b8878d9c" - integrity sha512-/jIoKBhAP00/iMGnTwUBLgvxkn7vsOweDrOTSPzc7X9uOyUtJIDthQBTI1EXz90bdkrxorUZVhJwiB69gcHtYQ== +jest-watcher@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" + integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== dependencies: - "@jest/test-result" "^27.0.6" - "@jest/types" "^27.0.6" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - jest-util "^27.0.6" + jest-util "^26.6.2" string-length "^4.0.1" -jest-worker@^27.0.2: - version "27.0.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.2.tgz#4ebeb56cef48b3e7514552f80d0d80c0129f0b05" - integrity sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg== +jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== dependencies: "@types/node" "*" merge-stream "^2.0.0" - supports-color "^8.0.0" + supports-color "^7.0.0" -jest-worker@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.6.tgz#a5fdb1e14ad34eb228cfe162d9f729cdbfa28aed" - integrity sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA== +jest-worker@^27.0.2: + version "27.0.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.2.tgz#4ebeb56cef48b3e7514552f80d0d80c0129f0b05" + integrity sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/jest/-/jest-27.0.6.tgz#10517b2a628f0409087fbf473db44777d7a04505" - integrity sha512-EjV8aETrsD0wHl7CKMibKwQNQc3gIRBXlTikBmmHUeVMKaPFxdcUIBfoDqTSXDoGJIivAYGqCWVlzCSaVjPQsA== +jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" + integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== dependencies: - "@jest/core" "^27.0.6" + "@jest/core" "^26.6.3" import-local "^3.0.2" - jest-cli "^27.0.6" + jest-cli "^26.6.3" joi@^17.4.0: version "17.4.0" @@ -4559,7 +4879,7 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^4.0.0: +js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== @@ -4571,10 +4891,10 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= -jsdom@^16.6.0: - version "16.6.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.6.0.tgz#f79b3786682065492a3da6a60a4695da983805ac" - integrity sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg== +jsdom@^16.4.0: + version "16.7.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" + integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== dependencies: abab "^2.0.5" acorn "^8.2.4" @@ -4601,7 +4921,7 @@ jsdom@^16.6.0: whatwg-encoding "^1.0.5" whatwg-mimetype "^2.3.0" whatwg-url "^8.5.0" - ws "^7.4.5" + ws "^7.4.6" xml-name-validator "^3.0.0" jsesc@^2.5.1: @@ -4644,7 +4964,7 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json5@2.x, json5@^2.1.2: +json5@2.x, json5@^2.1.2, json5@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== @@ -4680,7 +5000,26 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" -kind-of@^6.0.2, kind-of@^6.0.3: +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.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.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== @@ -4971,6 +5310,11 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" @@ -4981,6 +5325,13 @@ map-obj@^4.0.0: resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.1.tgz#e4ea399dbc979ae735c83c863dd31bdf364277b7" integrity sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ== +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + markdown-it@12.0.4: version "12.0.4" resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.0.4.tgz#eec8247d296327eac3ba9746bdeec9cfcc751e33" @@ -4992,17 +5343,28 @@ markdown-it@12.0.4: mdurl "^1.0.1" uc.micro "^1.0.5" -markdownlint-cli@^0.27.1: - version "0.27.1" - resolved "https://registry.yarnpkg.com/markdownlint-cli/-/markdownlint-cli-0.27.1.tgz#8fa095eea94936b6dea891f9db7f269c60e6d6fa" - integrity sha512-p1VV6aSbGrDlpUWzHizAnSNEQAweVR3qUI/AIUubxW7BGPXziSXkIED+uRtSohUlRS/jmqp3Wi4es5j6fIrdeQ== +markdown-it@12.2.0: + version "12.2.0" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.2.0.tgz#091f720fd5db206f80de7a8d1f1a7035fd0d38db" + integrity sha512-Wjws+uCrVQRqOoJvze4HCqkKl1AsSh95iFAeQDwnyfxM09divCBSXlDR1uTvyUP3Grzpn4Ru8GeCxYPM8vkCQg== + dependencies: + argparse "^2.0.1" + entities "~2.1.0" + linkify-it "^3.0.1" + mdurl "^1.0.1" + uc.micro "^1.0.5" + +markdownlint-cli@^0.28.1: + version "0.28.1" + resolved "https://registry.yarnpkg.com/markdownlint-cli/-/markdownlint-cli-0.28.1.tgz#76f1d8d50f81dce524826c93bf0f95af9cbe9397" + integrity sha512-RBKtRRBzcuAF/H5wMSzb4zvEtbUkyYNEeaDtlQkyH9SoHWPL01emJ2Wrx6NEOa1ZDGwB+seBGvE157Qzc/t/vA== dependencies: - commander "~7.1.0" + commander "~8.0.0" deep-extend "~0.6.0" get-stdin "~8.0.0" - glob "~7.1.6" + glob "~7.1.7" ignore "~5.1.8" - js-yaml "^4.0.0" + js-yaml "^4.1.0" jsonc-parser "~3.0.0" lodash.differencewith "~4.5.0" lodash.flatten "~4.4.0" @@ -5010,24 +5372,31 @@ markdownlint-cli@^0.27.1: markdownlint-rule-helpers "~0.14.0" minimatch "~3.0.4" minimist "~1.2.5" - rc "~1.2.8" + run-con "~1.2.10" markdownlint-rule-helpers@~0.14.0: version "0.14.0" resolved "https://registry.yarnpkg.com/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.14.0.tgz#4d0e1ae320e85559d8cbed1490934855791627bb" integrity sha512-vRTPqSU4JK8vVXmjICHSBhwXUvbfh/VJo+j7hvxqe15tLJyomv3FLgFdFgb8kpj0Fe8SsJa/TZUAXv7/sN+N7A== -markdownlint@^0.23.1, markdownlint@~0.23.1: +markdownlint@^0.24.0: + version "0.24.0" + resolved "https://registry.yarnpkg.com/markdownlint/-/markdownlint-0.24.0.tgz#224b53f671367a237d40c8be1745c7be9a322671" + integrity sha512-OJIGsGFV/rC9irI5E1FMy6v9hdACSwaa+EN3224Y5KG8zj2EYzdHOw0pOJovIYmjNfEZ9BtxUY4P7uYHTSNnbQ== + dependencies: + markdown-it "12.2.0" + +markdownlint@~0.23.1: version "0.23.1" resolved "https://registry.yarnpkg.com/markdownlint/-/markdownlint-0.23.1.tgz#98292b5d340d01e9c113f3d7fb3b2ccf89628dc2" integrity sha512-iOEwhDfNmq2IJlaA8mzEkHYUi/Hwoa6Ss+HO5jkwUR6wQ4quFr0WzSx+Z9rsWZKUaPbyirIdL1zGmJRkWawr4Q== dependencies: markdown-it "12.0.4" -marked@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/marked/-/marked-2.1.1.tgz#b7c27f520fc4de0ddd049d9b4be3b04e06314923" - integrity sha512-5XFS69o9CzDpQDSpUYC+AN2xvq8yl1EGa5SG/GI1hP78/uTeo3PDfiDNmsUyiahpyhToDDJhQk7fNtJsga+KVw== +marked@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/marked/-/marked-3.0.3.tgz#d81ff0f9e29cef0a177327fe009b460f31aa5862" + integrity sha512-4oIDhVSQ2s+xNCfek9OnZgCQR/WykGCom02JzIIvi4Pme+MIwPYqvGVW8CQWOXeoZu0TtVB6pTxIuoLm+dKqDA== mdurl@^1.0.1: version "1.0.1" @@ -5082,7 +5451,26 @@ merge2@^1.3.0: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -micromatch@^4.0.2, micromatch@^4.0.4: +micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.2: version "4.0.4" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== @@ -5112,7 +5500,7 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -minimatch@^3.0.0, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.4: +minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -5128,7 +5516,7 @@ minimist-options@4.1.0: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, minimist@~1.2.5: +minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, minimist@~1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -5210,6 +5598,14 @@ minizlib@^2.0.0, minizlib@^2.1.1: minipass "^3.0.0" yallist "^4.0.0" +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + mkdirp-infer-owner@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz#55d3b368e7d89065c38f32fd38e638f0ab61d316" @@ -5236,6 +5632,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== +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -5262,6 +5663,23 @@ mute-stream@0.0.8, mute-stream@~0.0.4: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -5330,6 +5748,18 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= +node-notifier@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" + integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== + dependencies: + growly "^1.3.0" + is-wsl "^2.2.0" + semver "^7.3.2" + shellwords "^0.1.1" + uuid "^8.3.0" + which "^2.0.2" + node-releases@^1.1.71: version "1.1.73" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20" @@ -5378,6 +5808,13 @@ normalize-package-data@^3.0.0, normalize-package-data@^3.0.2: semver "^7.3.4" validate-npm-package-license "^3.0.1" +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + normalize-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -5491,7 +5928,14 @@ npm-run-all@^4.1.5: shell-quote "^1.6.1" string.prototype.padend "^3.0.0" -npm-run-path@^4.0.1: +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.0, npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== @@ -5528,6 +5972,15 @@ object-assign@^4.0.1, object-assign@^4.1.0: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + object-inspect@^1.10.3, object-inspect@^1.9.0: version "1.10.3" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" @@ -5538,6 +5991,13 @@ object-keys@^1.0.12, 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-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + object.assign@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" @@ -5557,7 +6017,14 @@ object.getownpropertydescriptors@^2.0.3: define-properties "^1.1.3" es-abstract "^1.18.0-next.2" -once@^1.3.0, once@^1.4.0: +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= @@ -5806,6 +6273,11 @@ parse5@6.0.1: resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + path-exists@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" @@ -5828,7 +6300,7 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-key@^2.0.1: +path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= @@ -5925,6 +6397,11 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -5935,10 +6412,10 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prettier@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" - integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== +prettier@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.4.0.tgz#85bdfe0f70c3e777cf13a4ffff39713ca6f64cba" + integrity sha512-DsEPLY1dE5HF3BxCRBmD4uYZ+5DCbvatnolqTqcxEgKVZnL2kUfyu7b8pPQ5+hTBkdhU9SLUmK0/pHb07RE4WQ== pretty-format@^26.0.0, pretty-format@^26.6.2: version "26.6.2" @@ -5950,22 +6427,12 @@ pretty-format@^26.0.0, pretty-format@^26.6.2: ansi-styles "^4.0.0" react-is "^17.0.1" -pretty-format@^27.0.6: - version "27.0.6" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.0.6.tgz#ab770c47b2c6f893a21aefc57b75da63ef49a11f" - integrity sha512-8tGD7gBIENgzqA+UBzObyWqQ5B778VIFZA/S66cclyd5YkFLYs2Js7gxDKf0MXtTc9zcS7t1xhdfcElJ3YIvkQ== - dependencies: - "@jest/types" "^27.0.6" - ansi-regex "^5.0.0" - ansi-styles "^5.0.0" - react-is "^17.0.1" - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -progress@^2.0.0, progress@^2.0.3: +progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== @@ -6013,6 +6480,14 @@ psl@^1.1.28, psl@^1.1.33: resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" @@ -6067,16 +6542,6 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -rc@~1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - react-is@^17.0.1: version "17.0.2" resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" @@ -6249,11 +6714,34 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + regexpp@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +repeat-element@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + repeating@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" @@ -6297,6 +6785,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-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" @@ -6314,7 +6807,12 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.20.0: +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.18.1, resolve@^1.20.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -6330,6 +6828,11 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" @@ -6354,11 +6857,26 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + run-async@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== +run-con@~1.2.10: + version "1.2.10" + resolved "https://registry.yarnpkg.com/run-con/-/run-con-1.2.10.tgz#90de9d43d20274d00478f4c000495bd72f417d22" + integrity sha512-n7PZpYmMM26ZO21dd8y3Yw1TRtGABjRtgPSgFS/nhzfvbJMXFtJhJVyEgayMiP+w/23craJjsnfDvx4W4ue/HQ== + dependencies: + deep-extend "^0.6.0" + ini "~2.0.0" + minimist "^1.2.5" + strip-json-comments "~3.1.1" + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -6383,11 +6901,33 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + saxes@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" @@ -6428,11 +6968,21 @@ serialize-javascript@^5.0.1: dependencies: randombytes "^2.1.0" -set-blocking@~2.0.0: +set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + shallow-clone@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" @@ -6478,13 +7028,19 @@ shelljs@^0.8.3: interpret "^1.0.0" rechoir "^0.6.2" -shiki@^0.9.3: - version "0.9.3" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.9.3.tgz#7bf7bcf3ed50ca525ec89cc09254abce4264d5ca" - integrity sha512-NEjg1mVbAUrzRv2eIcUt3TG7X9svX7l3n3F5/3OdFq+/BxUdmBOeKGiH4icZJBLHy354Shnj6sfBTemea2e7XA== +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +shiki@^0.9.10: + version "0.9.10" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.9.10.tgz#feb8d4938b5dd71c5c8b1c1c7cd28fbbd37da087" + integrity sha512-xeM7Oc6hY+6iW5O/T5hor8ul7mEprzyl5y4r5zthEHToQNw7MIhREMgU3r2gKDB0NaMLNrkcEQagudCdzE13Lg== dependencies: + json5 "^2.2.0" onigasm "^2.2.5" - vscode-textmate "^5.2.0" + vscode-textmate "5.2.0" side-channel@^1.0.4: version "1.0.4" @@ -6529,6 +7085,36 @@ smart-buffer@^4.1.0: resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + socks-proxy-agent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz#7c0f364e7b1cf4a7a437e71253bed72e9004be60" @@ -6565,6 +7151,17 @@ source-list-map@^2.0.1: resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + source-map-support@^0.5.6, source-map-support@~0.5.19: version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" @@ -6573,7 +7170,12 @@ source-map-support@^0.5.6, source-map-support@~0.5.19: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.5.0: +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= @@ -6619,6 +7221,13 @@ split-on-first@^1.0.0: resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + split2@^3.0.0: version "3.2.2" resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" @@ -6660,13 +7269,21 @@ ssri@^8.0.0, ssri@^8.0.1: dependencies: minipass "^3.1.1" -stack-utils@^2.0.3: +stack-utils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== dependencies: escape-string-regexp "^2.0.0" +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" @@ -6788,6 +7405,11 @@ strip-bom@^4.0.0: resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" @@ -6807,16 +7429,11 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1, strip-json-comments@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - 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" @@ -6966,10 +7583,10 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -throat@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" - integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== through2@^2.0.0, through2@^2.0.1: version "2.0.5" @@ -7015,6 +7632,21 @@ to-fast-properties@^2.0.0: resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + 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" @@ -7022,6 +7654,16 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + tough-cookie@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" @@ -7061,15 +7703,15 @@ trim-off-newlines@^1.0.0: resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM= -ts-jest@^27.0.3: - version "27.0.3" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.3.tgz#808492f022296cde19390bb6ad627c8126bf93f8" - integrity sha512-U5rdMjnYam9Ucw+h0QvtNDbc5+88nxt7tbIvqaZUhFrfG4+SkWhMXjejCLVGcpILTPuV+H3W/GZDZrnZFpPeXw== +ts-jest@^26.5.5: + version "26.5.6" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.5.6.tgz#c32e0746425274e1dfe333f43cd3c800e014ec35" + integrity sha512-rua+rCP8DxpA8b4DQD/6X2HQS8Zy/xzViVYfEs2OQu68tkCuKLV0Md8pmX55+W24uRIyAsf/BajRfxOs+R2MKA== dependencies: bs-logger "0.x" buffer-from "1.x" fast-json-stable-stringify "2.x" - jest-util "^27.0.0" + jest-util "^26.1.0" json5 "2.x" lodash "4.x" make-error "1.x" @@ -7162,29 +7804,21 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typedoc-default-themes@^0.12.10: - version "0.12.10" - resolved "https://registry.yarnpkg.com/typedoc-default-themes/-/typedoc-default-themes-0.12.10.tgz#614c4222fe642657f37693ea62cad4dafeddf843" - integrity sha512-fIS001cAYHkyQPidWXmHuhs8usjP5XVJjWB8oZGqkTowZaz3v7g3KDZeeqE82FBrmkAnIBOY3jgy7lnPnqATbA== - -typedoc@^0.21.4: - version "0.21.4" - resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.21.4.tgz#fced3cffdc30180db60a5dbfec9dbbb273cb5b31" - integrity sha512-slZQhvD9U0d9KacktYAyuNMMOXJRFNHy+Gd8xY2Qrqq3eTTTv3frv3N4au/cFnab9t3T5WA0Orb6QUjMc+1bDA== +typedoc@^0.22.3: + version "0.22.3" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.22.3.tgz#c67aaeef22702d84267bda12dc13f192dbf9d89e" + integrity sha512-EOWf9Vf3Vfb/jzBzr87uoLybQw9fx3iyXLUcpQn9F2Ks1/ZJN9iGeBbYRU+VNqrWvV4T+aS7Ife7GFEJUf0ohQ== dependencies: glob "^7.1.7" - handlebars "^4.7.7" lunr "^2.3.9" - marked "^2.1.1" - minimatch "^3.0.0" - progress "^2.0.3" - shiki "^0.9.3" - typedoc-default-themes "^0.12.10" + marked "^3.0.3" + minimatch "^3.0.4" + shiki "^0.9.10" -typescript@^4.3.5: - version "4.3.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" - integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== +typescript@^4.4.3: + version "4.4.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.3.tgz#bdc5407caa2b109efd4f82fe130656f977a29324" + integrity sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA== uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" @@ -7216,6 +7850,16 @@ unbox-primitive@^1.0.1: has-symbols "^1.0.2" which-boxed-primitive "^1.0.2" +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + unique-filename@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" @@ -7245,6 +7889,14 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + untildify@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" @@ -7262,6 +7914,16 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -7279,15 +7941,20 @@ uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + v8-compile-cache@^2.0.3: version "2.3.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== -v8-to-istanbul@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz#4229f2a99e367f3f018fa1d5c2b8ec684667c69c" - integrity sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg== +v8-to-istanbul@^7.0.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" + integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow== dependencies: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" @@ -7317,10 +7984,10 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vscode-textmate@^5.2.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.4.0.tgz#4b25ffc1f14ac3a90faf9a388c67a01d24257cd7" - integrity sha512-c0Q4zYZkcLizeYJ3hNyaVUM2AA8KDhNCA3JvXY8CeZSJuBdAy3bAvSbv46RClC4P3dSO9BdwhnKEx2zOo6vP/w== +vscode-textmate@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e" + integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ== w3c-hr-time@^1.0.2: version "1.0.2" @@ -7336,7 +8003,7 @@ w3c-xmlserializer@^2.0.0: dependencies: xml-name-validator "^3.0.0" -walker@^1.0.7: +walker@^1.0.7, walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= @@ -7445,6 +8112,11 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + which@^1.2.9, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -7481,6 +8153,15 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -7547,10 +8228,10 @@ write-pkg@^4.0.0: type-fest "^0.4.1" write-json-file "^3.2.0" -ws@^7.4.5: - version "7.5.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.0.tgz#0033bafea031fb9df041b2026fc72a571ca44691" - integrity sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw== +ws@^7.4.6: + version "7.5.5" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.5.tgz#8b4bc4af518cfabd0473ae4f99144287b33eb881" + integrity sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w== xml-name-validator@^3.0.0: version "3.0.0" @@ -7567,6 +8248,11 @@ xtend@~4.0.1: resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" @@ -7597,7 +8283,32 @@ yargs-parser@20.x, yargs-parser@^20.2.2, yargs-parser@^20.2.3: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== -yargs@^16.0.3, yargs@^16.1.0, yargs@^16.2.0: +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yargs@^16.1.0, yargs@^16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==