From 9858d1e5de107b62b9be0ad73b64631ba9a9a619 Mon Sep 17 00:00:00 2001 From: tgreyuk Date: Mon, 25 Mar 2024 19:49:15 +0000 Subject: [PATCH] chore: Refactor docs --- .gitignore | 1 - devtools/packages/helpers/constants.ts | 30 +- .../prebuild-options/tasks/generate-docs.ts | 15 +- .../prebuild-options/tasks/generate-models.ts | 48 +- docs/components/package-description.jsx | 12 +- docs/{styles.css => global.css} | 4 + docs/next-env.d.ts | 5 + docs/next.config.js | 9 +- docs/package-lock.json | 5912 +++++++++++------ docs/package.json | 20 +- docs/pages/{_app.mdx => _app.tsx} | 5 +- docs/pages/_meta.js | 25 + docs/pages/_meta.json | 14 - .../pages/api-docs/Class.MarkdownPageEvent.md | 83 + .../api-docs/Class.MarkdownRendererEvent.md | 63 + docs/pages/api-docs/Class.MarkdownTheme.md | 114 + .../Class.MarkdownThemeRenderContext.md | 1177 ++++ .../api-docs/Interface.MarkdownApplication.md | 29 + .../api-docs/Interface.MarkdownRenderer.md | 57 + .../Interface.MarkdownRendererHooks.md | 52 + .../api-docs/Interface.NavigationItem.md | 21 + .../pages/api-docs/Interface.PluginOptions.md | 227 + .../api-docs/Interface.TextContentMappings.md | 393 ++ docs/pages/api-docs/Interface.UrlMapping.md | 31 + docs/pages/api-docs/_meta.js | 26 + docs/pages/api-docs/index.mdx | 37 + docs/pages/docs/_meta.js | 15 + docs/pages/docs/customizing-output.mdx | 144 + docs/pages/docs/index.mdx | 35 + docs/pages/{ => docs}/options.mdx | 0 docs/pages/{ => docs}/quick-start.mdx | 18 +- docs/pages/{ => docs}/v4-migration.mdx | 0 docs/pages/guide/_meta.json | 5 - docs/pages/guide/custom-output.mdx | 80 - docs/pages/guide/local-plugins.mdx | 24 - docs/pages/guide/navigation.mdx | 27 - docs/pages/index.mdx | 80 +- docs/pages/integrations/_meta.json | 3 - docs/pages/integrations/docusaurus/_meta.json | 6 - .../integrations/docusaurus/guides/_meta.json | 4 - docs/pages/plugins/_meta.js | 27 + docs/pages/plugins/docusaurus/_meta.js | 6 + docs/pages/plugins/docusaurus/guides/_meta.js | 5 + .../docusaurus/guides/multi-instance.mdx | 0 .../docusaurus/guides/sidebar.mdx | 0 .../docusaurus/guides/watch-mode.mdx | 0 .../docusaurus/introduction.mdx | 4 +- .../docusaurus/options.mdx | 0 .../docusaurus/quick-start.mdx | 0 docs/pages/plugins/frontmatter/_meta.js | 6 + .../frontmatter/guide.mdx | 0 .../frontmatter/introduction.mdx | 10 +- .../frontmatter/options.mdx | 0 .../frontmatter/quick-start.mdx | 0 docs/pages/plugins/github-wiki/_meta.js | 5 + .../github-wiki/introduction.mdx | 6 +- .../github-wiki/options.mdx | 0 .../github-wiki/quick-start.mdx | 0 docs/pages/plugins/gitlab-wiki/_meta.js | 5 + .../gitlab-wiki/introduction.mdx | 6 +- .../gitlab-wiki/options.mdx | 0 .../gitlab-wiki/quick-start.mdx | 0 docs/pages/plugins/index.mdx | 85 + docs/pages/plugins/remark/_meta.js | 6 + .../remark/introduction.mdx | 10 +- .../{utilities => plugins}/remark/options.mdx | 0 .../remark/quick-start.mdx | 0 .../remark/suggested-plugins.mdx | 0 docs/pages/plugins/vitepress/_meta.js | 5 + .../vitepress/introduction.mdx | 12 +- .../{themes => plugins}/vitepress/options.mdx | 0 .../vitepress/quick-start.mdx | 0 docs/pages/themes/_meta.json | 5 - docs/pages/themes/github-wiki/_meta.json | 4 - docs/pages/themes/gitlab-wiki/_meta.json | 4 - docs/pages/themes/vitepress/_meta.json | 6 - docs/pages/utilities/_meta.json | 4 - docs/pages/utilities/frontmatter/_meta.json | 6 - docs/pages/utilities/remark/_meta.json | 6 - docs/public/docusaurus-logo.svg | 1 + docs/public/github-logo.png | Bin 0 -> 7249 bytes docs/public/gitlab-logo.png | Bin 0 -> 3662 bytes docs/public/markdown-logo.svg | 1 + docs/public/remark-logo.png | Bin 0 -> 7693 bytes docs/public/ts-logo.png | Bin 0 -> 1639 bytes docs/public/typedoc-logo.png | Bin 0 -> 3861 bytes docs/public/vite-logo.svg | 15 + docs/public/yaml-logo.png | Bin 0 -> 22173 bytes docs/tailwind.config.js | 12 + docs/theme.config.jsx | 24 +- docs/tsconfig.json | 28 + package-lock.json | 24 +- package.json | 1 + .../docusaurus-plugin-typedoc/src/plugin.ts | 42 +- .../typedoc-github-wiki-theme/src/index.ts | 8 +- .../src/options/option-types.ts | 15 +- .../typedoc-gitlab-wiki-theme/src/index.ts | 8 +- .../src/options/option-types.ts | 15 +- .../typedoc-plugin-frontmatter/src/index.ts | 2 +- .../src/options/option-types.ts | 49 +- .../plugins/typedoc-ignore-typeparam.mjs | 46 + .../.docs/plugins/typedoc-nextra.mjs | 85 + .../.docs/plugins/typedoc-symbol-resolver.mjs | 18 + .../.docs/typedoc.base.cjs | 58 + .../.docs/typedoc.html.cjs | 15 + .../.docs/typedoc.md.cjs | 31 + .../{scripts => .scripts}/prebuild-kinds.ts | 1 - .../prebuild-resources.ts | 167 +- .../{scripts => .scripts}/prebuild.ts | 0 packages/typedoc-plugin-markdown/package.json | 4 +- .../src/app/application.ts | 67 + .../src/app/events/index.ts | 2 - .../src/app/events/markdown-page-event.ts | 71 +- .../src/app/events/markdown-renderer-event.ts | 50 +- .../src/app/hooks/markdown-renderer-hooks.ts | 52 + .../src/app/options/index.ts | 3 - .../src/app/renderer/index.ts | 3 - .../src/app/renderer/overrides.ts | 72 +- .../src/app/renderer/packages.ts | 2 +- .../src/app/renderer/renderer-types.ts | 90 - packages/typedoc-plugin-markdown/src/index.ts | 31 +- .../src/{app => }/options/declarations.ts | 0 .../src/{app => }/options/option-maps.ts | 10 - .../src/{app => }/options/option-types.ts | 143 +- .../{app => }/options/text-mappings/index.ts | 0 .../options/text-mappings/kind-defaults.ts | 0 .../text-mappings/text-mapping-defaults.ts | 0 .../typedoc-plugin-markdown/src/public-api.ts | 28 + .../{markdown-theme/index.ts => base.ts} | 169 +- .../get-navigation.ts | 100 +- .../{markdown-theme => core}/get-urls.ts | 18 +- .../src/theme/index.ts | 8 - .../src/theme/lib/utils/index.ts | 1 + .../src/theme/lib/utils/slugify-url.ts | 8 + .../helpers/get-packages-meta.ts | 9 - .../helpers/get-text.ts | 9 - .../markdown-theme-render-context/index.ts | 123 - .../src/theme/render-context.ts | 137 + .../helpers/flatten-declarations.ts | 0 .../helpers/get-declaration-comment.ts | 0 .../helpers/get-declaration-type.ts | 0 .../helpers/get-keyword.ts | 0 .../helpers/get-modifier.ts | 0 .../resources/helpers/get-packages-meta.ts | 9 + .../helpers/get-parameter-default-value.ts | 0 .../helpers/get-project-name.ts | 2 +- .../helpers/get-relative-url.ts | 2 +- .../helpers/get-text-from-kind-string.ts | 8 +- .../src/theme/resources/helpers/get-text.ts | 9 + .../helpers/is-group-kind.ts | 0 .../namespaces.ts => resources/index.ts} | 92 +- .../partials/comments.comment.ts | 9 +- .../partials/comments.commentParts.ts | 6 +- .../partials/container.body.ts | 4 +- .../partials/container.categories.ts | 4 +- .../partials/container.groups.ts | 4 +- .../partials/container.members.ts | 4 +- .../partials/member.accessor.ts | 4 +- .../partials/member.constructors.ts | 6 +- .../partials/member.declaration.ts | 4 +- .../partials/member.declarationTitle.ts | 6 +- .../partials/member.enumMembersTable.ts | 6 +- .../partials/member.hierarchy.ts | 9 +- .../partials/member.indexSignature.ts | 4 +- .../partials/member.inheritance.ts | 4 +- .../partials/member.memberTitle.ts | 6 +- .../partials/member.memberWithGroups.ts | 10 +- .../partials/member.parametersList.ts | 6 +- .../partials/member.parametersTable.ts | 6 +- .../partials/member.propertiesTable.ts | 6 +- .../partials/member.reference.ts | 4 +- .../partials/member.reflection.flags.ts | 6 +- .../partials/member.reflection.index.ts | 16 +- .../partials/member.signature.ts | 4 +- .../partials/member.signatureParameters.ts | 6 +- .../partials/member.signatureReturns.ts | 6 +- .../partials/member.signatureTitle.ts | 8 +- .../partials/member.sources.ts | 8 +- .../partials/member.ts | 8 +- .../partials/member.typeArguments.ts | 6 +- .../partials/member.typeDeclaration.ts | 6 +- .../partials/member.typeDeclarationList.ts | 4 +- .../partials/member.typeDeclarationTable.ts | 8 +- .../partials/member.typeParametersList.ts | 6 +- .../partials/member.typeParametersTable.ts | 8 +- .../partials/page.breadcrumbs.ts | 8 +- .../partials/page.header.ts | 6 +- .../partials/page.packagesIndex.ts | 8 +- .../partials/page.pageTtitle.ts | 2 - .../partials/type.array.ts | 4 +- .../partials/type.conditional.ts | 4 +- .../partials/type.index-access.ts | 4 +- .../partials/type.inferred.ts | 6 +- .../partials/type.intersection.ts | 4 +- .../partials/type.intrinsic.ts | 6 +- .../partials/type.literal.ts | 4 +- .../partials/type.named-tuple.ts | 4 +- .../partials/type.query.ts | 6 +- .../partials/type.reference.ts | 6 +- .../partials/type.reflection.declaration.ts | 6 +- .../partials/type.reflection.function.ts | 6 +- .../partials/type.reflection.ts | 6 +- .../partials/type.some.ts | 4 +- .../partials/type.tuple.ts | 4 +- .../partials/type.type-operator.ts | 4 +- .../partials/type.union.ts | 4 +- .../partials/type.unknown.ts | 6 +- .../templates/project.ts | 13 +- .../templates/read-me.ts | 9 +- .../templates/reflection.ts | 12 +- .../src/theme/theme-types.ts | 31 +- .../test/fixtures/src/reflections/classes.ts | 34 +- .../__snapshots__/customization.spec.ts.snap | 2 +- .../__snapshots__/navigation.spec.ts.snap | 128 +- .../reflection.class.spec.ts.snap | 88 +- .../typedoc-plugin-markdown/tsconfig.json | 6 +- packages/typedoc-plugin-markdown/typedoc.json | 4 - packages/typedoc-plugin-remark/src/index.ts | 4 +- .../src/options/option-types.ts | 15 +- packages/typedoc-vitepress-theme/src/index.ts | 32 +- .../src/options/option-types.ts | 19 +- typedoc.base.json | 4 - typedoc.html.json | 10 - typedoc.json | 14 - 224 files changed, 8368 insertions(+), 3463 deletions(-) rename docs/{styles.css => global.css} (72%) create mode 100644 docs/next-env.d.ts rename docs/pages/{_app.mdx => _app.tsx} (60%) create mode 100644 docs/pages/_meta.js delete mode 100644 docs/pages/_meta.json create mode 100644 docs/pages/api-docs/Class.MarkdownPageEvent.md create mode 100644 docs/pages/api-docs/Class.MarkdownRendererEvent.md create mode 100644 docs/pages/api-docs/Class.MarkdownTheme.md create mode 100644 docs/pages/api-docs/Class.MarkdownThemeRenderContext.md create mode 100644 docs/pages/api-docs/Interface.MarkdownApplication.md create mode 100644 docs/pages/api-docs/Interface.MarkdownRenderer.md create mode 100644 docs/pages/api-docs/Interface.MarkdownRendererHooks.md create mode 100644 docs/pages/api-docs/Interface.NavigationItem.md create mode 100644 docs/pages/api-docs/Interface.PluginOptions.md create mode 100644 docs/pages/api-docs/Interface.TextContentMappings.md create mode 100644 docs/pages/api-docs/Interface.UrlMapping.md create mode 100644 docs/pages/api-docs/_meta.js create mode 100644 docs/pages/api-docs/index.mdx create mode 100644 docs/pages/docs/_meta.js create mode 100644 docs/pages/docs/customizing-output.mdx create mode 100644 docs/pages/docs/index.mdx rename docs/pages/{ => docs}/options.mdx (100%) rename docs/pages/{ => docs}/quick-start.mdx (52%) rename docs/pages/{ => docs}/v4-migration.mdx (100%) delete mode 100644 docs/pages/guide/_meta.json delete mode 100644 docs/pages/guide/custom-output.mdx delete mode 100644 docs/pages/guide/local-plugins.mdx delete mode 100644 docs/pages/guide/navigation.mdx delete mode 100644 docs/pages/integrations/_meta.json delete mode 100644 docs/pages/integrations/docusaurus/_meta.json delete mode 100644 docs/pages/integrations/docusaurus/guides/_meta.json create mode 100644 docs/pages/plugins/_meta.js create mode 100644 docs/pages/plugins/docusaurus/_meta.js create mode 100644 docs/pages/plugins/docusaurus/guides/_meta.js rename docs/pages/{integrations => plugins}/docusaurus/guides/multi-instance.mdx (100%) rename docs/pages/{integrations => plugins}/docusaurus/guides/sidebar.mdx (100%) rename docs/pages/{integrations => plugins}/docusaurus/guides/watch-mode.mdx (100%) rename docs/pages/{integrations => plugins}/docusaurus/introduction.mdx (61%) rename docs/pages/{integrations => plugins}/docusaurus/options.mdx (100%) rename docs/pages/{integrations => plugins}/docusaurus/quick-start.mdx (100%) create mode 100644 docs/pages/plugins/frontmatter/_meta.js rename docs/pages/{utilities => plugins}/frontmatter/guide.mdx (100%) rename docs/pages/{utilities => plugins}/frontmatter/introduction.mdx (75%) rename docs/pages/{utilities => plugins}/frontmatter/options.mdx (100%) rename docs/pages/{utilities => plugins}/frontmatter/quick-start.mdx (100%) create mode 100644 docs/pages/plugins/github-wiki/_meta.js rename docs/pages/{themes => plugins}/github-wiki/introduction.mdx (61%) rename docs/pages/{themes => plugins}/github-wiki/options.mdx (100%) rename docs/pages/{themes => plugins}/github-wiki/quick-start.mdx (100%) create mode 100644 docs/pages/plugins/gitlab-wiki/_meta.js rename docs/pages/{themes => plugins}/gitlab-wiki/introduction.mdx (61%) rename docs/pages/{themes => plugins}/gitlab-wiki/options.mdx (100%) rename docs/pages/{themes => plugins}/gitlab-wiki/quick-start.mdx (100%) create mode 100644 docs/pages/plugins/index.mdx create mode 100644 docs/pages/plugins/remark/_meta.js rename docs/pages/{utilities => plugins}/remark/introduction.mdx (71%) rename docs/pages/{utilities => plugins}/remark/options.mdx (100%) rename docs/pages/{utilities => plugins}/remark/quick-start.mdx (100%) rename docs/pages/{utilities => plugins}/remark/suggested-plugins.mdx (100%) create mode 100644 docs/pages/plugins/vitepress/_meta.js rename docs/pages/{themes => plugins}/vitepress/introduction.mdx (84%) rename docs/pages/{themes => plugins}/vitepress/options.mdx (100%) rename docs/pages/{themes => plugins}/vitepress/quick-start.mdx (100%) delete mode 100644 docs/pages/themes/_meta.json delete mode 100644 docs/pages/themes/github-wiki/_meta.json delete mode 100644 docs/pages/themes/gitlab-wiki/_meta.json delete mode 100644 docs/pages/themes/vitepress/_meta.json delete mode 100644 docs/pages/utilities/_meta.json delete mode 100644 docs/pages/utilities/frontmatter/_meta.json delete mode 100644 docs/pages/utilities/remark/_meta.json create mode 100644 docs/public/docusaurus-logo.svg create mode 100644 docs/public/github-logo.png create mode 100644 docs/public/gitlab-logo.png create mode 100644 docs/public/markdown-logo.svg create mode 100644 docs/public/remark-logo.png create mode 100644 docs/public/ts-logo.png create mode 100644 docs/public/typedoc-logo.png create mode 100644 docs/public/vite-logo.svg create mode 100644 docs/public/yaml-logo.png create mode 100644 docs/tailwind.config.js create mode 100644 docs/tsconfig.json create mode 100644 packages/typedoc-plugin-markdown/.docs/plugins/typedoc-ignore-typeparam.mjs create mode 100644 packages/typedoc-plugin-markdown/.docs/plugins/typedoc-nextra.mjs create mode 100644 packages/typedoc-plugin-markdown/.docs/plugins/typedoc-symbol-resolver.mjs create mode 100644 packages/typedoc-plugin-markdown/.docs/typedoc.base.cjs create mode 100644 packages/typedoc-plugin-markdown/.docs/typedoc.html.cjs create mode 100644 packages/typedoc-plugin-markdown/.docs/typedoc.md.cjs rename packages/typedoc-plugin-markdown/{scripts => .scripts}/prebuild-kinds.ts (99%) rename packages/typedoc-plugin-markdown/{scripts => .scripts}/prebuild-resources.ts (68%) rename packages/typedoc-plugin-markdown/{scripts => .scripts}/prebuild.ts (100%) create mode 100644 packages/typedoc-plugin-markdown/src/app/application.ts delete mode 100644 packages/typedoc-plugin-markdown/src/app/events/index.ts create mode 100644 packages/typedoc-plugin-markdown/src/app/hooks/markdown-renderer-hooks.ts delete mode 100644 packages/typedoc-plugin-markdown/src/app/options/index.ts delete mode 100644 packages/typedoc-plugin-markdown/src/app/renderer/index.ts delete mode 100644 packages/typedoc-plugin-markdown/src/app/renderer/renderer-types.ts rename packages/typedoc-plugin-markdown/src/{app => }/options/declarations.ts (100%) rename packages/typedoc-plugin-markdown/src/{app => }/options/option-maps.ts (85%) rename packages/typedoc-plugin-markdown/src/{app => }/options/option-types.ts (61%) rename packages/typedoc-plugin-markdown/src/{app => }/options/text-mappings/index.ts (100%) rename packages/typedoc-plugin-markdown/src/{app => }/options/text-mappings/kind-defaults.ts (100%) rename packages/typedoc-plugin-markdown/src/{app => }/options/text-mappings/text-mapping-defaults.ts (100%) create mode 100644 packages/typedoc-plugin-markdown/src/public-api.ts rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme/index.ts => base.ts} (51%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme => core}/get-navigation.ts (76%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme => core}/get-urls.ts (96%) delete mode 100644 packages/typedoc-plugin-markdown/src/theme/index.ts create mode 100644 packages/typedoc-plugin-markdown/src/theme/lib/utils/slugify-url.ts delete mode 100644 packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-packages-meta.ts delete mode 100644 packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-text.ts delete mode 100644 packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/index.ts create mode 100644 packages/typedoc-plugin-markdown/src/theme/render-context.ts rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/helpers/flatten-declarations.ts (100%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/helpers/get-declaration-comment.ts (100%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/helpers/get-declaration-type.ts (100%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/helpers/get-keyword.ts (100%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/helpers/get-modifier.ts (100%) create mode 100644 packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-packages-meta.ts rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/helpers/get-parameter-default-value.ts (100%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/helpers/get-project-name.ts (80%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/helpers/get-relative-url.ts (88%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/helpers/get-text-from-kind-string.ts (61%) create mode 100644 packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-text.ts rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/helpers/is-group-kind.ts (100%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context/namespaces.ts => resources/index.ts} (87%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/comments.comment.ts (82%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/comments.commentParts.ts (96%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/container.body.ts (91%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/container.categories.ts (84%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/container.groups.ts (93%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/container.members.ts (86%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.accessor.ts (94%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.constructors.ts (78%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.declaration.ts (97%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.declarationTitle.ts (91%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.enumMembersTable.ts (93%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.hierarchy.ts (90%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.indexSignature.ts (85%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.inheritance.ts (94%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.memberTitle.ts (88%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.memberWithGroups.ts (87%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.parametersList.ts (92%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.parametersTable.ts (95%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.propertiesTable.ts (95%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.reference.ts (90%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.reflection.flags.ts (79%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.reflection.index.ts (88%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.signature.ts (94%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.signatureParameters.ts (87%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.signatureReturns.ts (94%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.signatureTitle.ts (87%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.sources.ts (77%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.ts (92%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.typeArguments.ts (81%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.typeDeclaration.ts (82%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.typeDeclarationList.ts (84%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.typeDeclarationTable.ts (90%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.typeParametersList.ts (84%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/member.typeParametersTable.ts (86%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/page.breadcrumbs.ts (87%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/page.header.ts (97%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/page.packagesIndex.ts (90%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/page.pageTtitle.ts (97%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/type.array.ts (75%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/type.conditional.ts (85%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/type.index-access.ts (79%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/type.inferred.ts (58%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/type.intersection.ts (74%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/type.intrinsic.ts (57%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/type.literal.ts (75%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/type.named-tuple.ts (69%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/type.query.ts (61%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/type.reference.ts (86%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/type.reflection.declaration.ts (92%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/type.reflection.function.ts (87%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/type.reflection.ts (77%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/type.some.ts (94%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/type.tuple.ts (71%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/type.type-operator.ts (69%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/type.union.ts (82%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/partials/type.unknown.ts (57%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/templates/project.ts (83%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/templates/read-me.ts (75%) rename packages/typedoc-plugin-markdown/src/theme/{markdown-theme-render-context => resources}/templates/reflection.ts (79%) delete mode 100644 packages/typedoc-plugin-markdown/typedoc.json delete mode 100644 typedoc.base.json delete mode 100644 typedoc.html.json delete mode 100644 typedoc.json diff --git a/.gitignore b/.gitignore index 85636f99c..872c3c9ae 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,6 @@ dist samples out typedoc-examples -plugin-docs html /devdocs /devdocs-html diff --git a/devtools/packages/helpers/constants.ts b/devtools/packages/helpers/constants.ts index 7b10baf57..ae54632c8 100644 --- a/devtools/packages/helpers/constants.ts +++ b/devtools/packages/helpers/constants.ts @@ -4,51 +4,51 @@ export const PRESETS_PATH = `${process.cwd()}/src/options/presets.ts`; export const DOCS_CONFIG: Record = { ['typedoc-plugin-markdown']: { - declarationsPath: `${process.cwd()}/src/app/options/declarations.ts`, - optionsPath: '', - docsPath: '', + declarationsPath: `${process.cwd()}/src/options/declarations.ts`, + optionsPath: '/docs', + docsPath: '/docs', declarations: true, presets: false, }, ['typedoc-plugin-frontmatter']: { declarationsPath: `${process.cwd()}/src/options/declarations.ts`, - optionsPath: 'utilities/frontmatter', - docsPath: '/utilities/frontmatter/introduction', + optionsPath: 'plugins/frontmatter', + docsPath: '/plugins/frontmatter/introduction', declarations: true, presets: false, }, ['typedoc-plugin-remark']: { declarationsPath: `${process.cwd()}/src/options/declarations.ts`, - optionsPath: 'utilities/remark', - docsPath: '/utilities/remark/introduction', + optionsPath: 'plugins/remark', + docsPath: '/plugins/remark/introduction', declarations: true, presets: false, }, ['typedoc-github-wiki-theme']: { declarationsPath: `${process.cwd()}/src/options/declarations.ts`, - optionsPath: 'themes/github-wiki', - docsPath: '/themes/github-wiki', + optionsPath: 'plugins/github-wiki', + docsPath: '/plugins/github-wiki/introduction', declarations: true, presets: true, }, ['typedoc-gitlab-wiki-theme']: { declarationsPath: `${process.cwd()}/src/options/declarations.ts`, - optionsPath: 'themes/gitlab-wiki', - docsPath: '/themes/gitlab-wiki/introduction', + optionsPath: 'plugins/gitlab-wiki', + docsPath: '/plugins/gitlab-wiki/introduction', declarations: true, presets: true, }, ['typedoc-vitepress-theme']: { declarationsPath: `${process.cwd()}/src/options/declarations.ts`, - optionsPath: 'themes/vitepress', - docsPath: '/themes/vitepress/introduction', + optionsPath: 'plugins/vitepress', + docsPath: '/plugins/vitepress/introduction', declarations: true, presets: false, }, ['docusaurus-plugin-typedoc']: { declarationsPath: `${process.cwd()}/src/options/declarations.ts`, - optionsPath: '/integrations/docusaurus/options', - docsPath: '/integrations/docusaurus/introduction', + optionsPath: '/plugins/docusaurus/options', + docsPath: '/plugins/docusaurus/introduction', declarations: false, presets: false, }, diff --git a/devtools/packages/prebuild-options/tasks/generate-docs.ts b/devtools/packages/prebuild-options/tasks/generate-docs.ts index a47f49440..c0b9b7a8b 100644 --- a/devtools/packages/prebuild-options/tasks/generate-docs.ts +++ b/devtools/packages/prebuild-options/tasks/generate-docs.ts @@ -86,8 +86,7 @@ export async function generateDocs(docsConfig: DocsConfig) { } options.forEach((option) => { out.push( - `${optionLevel} ${ - Boolean(option.deprecated) ? `~${option.name}~` : `${option.name}` + `${optionLevel} ${Boolean(option.deprecated) ? `~${option.name}~` : `${option.name}` }`, ); if (Boolean(option.deprecated)) { @@ -131,12 +130,12 @@ export async function generateDocs(docsConfig: DocsConfig) { out.push(` \`\`\`json filename="typedoc.json" ${JSON.stringify( - JSON.parse(`{ + JSON.parse(`{ "${option.name}": ${getExampleValue(option)} }`), - null, - 2, -)} + null, + 2, + )} \`\`\``); } @@ -146,7 +145,7 @@ ${JSON.stringify( } const optionDocPath = path.join( - getDocsPath(docsConfig.optionsPath), + getPagesPath(docsConfig.optionsPath), 'options.mdx', ); @@ -212,7 +211,7 @@ function getExampleValue(option) { return getDefaultValue(option); } -function getDocsPath(docsPath: string) { +function getPagesPath(docsPath: string) { const pagesPath = path.join( __dirname, '..', diff --git a/devtools/packages/prebuild-options/tasks/generate-models.ts b/devtools/packages/prebuild-options/tasks/generate-models.ts index 68489ee7e..17f30fb69 100644 --- a/devtools/packages/prebuild-options/tasks/generate-models.ts +++ b/devtools/packages/prebuild-options/tasks/generate-models.ts @@ -37,15 +37,31 @@ export async function generateModels(declarationsPath: string) { } } + /** + * Describes the options declared by the plugin. + * + * @category Options + */ export interface PluginOptions { ${(Object.entries(optionsConfig) as any) - .map(([name, option]) => `${name}: ${getType(name, option)};`) + .map( + ([name, option]) => ` +/** + * ${option.help} + */ +${name}: ${getType(name, option, true)};`, + ) .join('\n')} } ${mixedTypes ?.map(([name, option]) => { return ` + /** + * ${getComments(name)} + * + * @category Options + */ export interface ${capitalize(name)} { ${Object.entries(option.defaultValue as any) .map( @@ -73,6 +89,13 @@ export async function generateModels(declarationsPath: string) { fs.writeFileSync(optionsModelFile, formatted); } +function getComments(name: string) { + if (name === 'textContentMappings') { + return 'Describes the keys available to replace static text.'; + } + return ''; +} + function getValueType(value: any) { if (value === true || value === false) { return 'boolean'; @@ -83,7 +106,19 @@ function getValueType(value: any) { return 'string'; } -function getType(name: string, option: Partial) { +function getType( + name: string, + option: Partial, + isInterface = false, +) { + if (option.type === ParameterType.Array && option.defaultValue) { + return `(${option.defaultValue + .toString() + .split(',') + .map((item) => `"${item}"`) + .join(' | ')})[]`; + } + if (option.type === ParameterType.Boolean) { return 'boolean'; } @@ -100,7 +135,14 @@ function getType(name: string, option: Partial) { return 'Record'; } if (option.type === ParameterType.Mixed && option.defaultValue) { - return `ManuallyValidatedOption<${capitalize(name)}>`; + const usePartial = name === 'textContentMappings'; + return isInterface + ? usePartial + ? `Partial<${capitalize(name)}>` + : capitalize(name) + : usePartial + ? `ManuallyValidatedOption>` + : `ManuallyValidatedOption<${capitalize(name)}>`; } if (option.type === ParameterType.Map && option.map) { diff --git a/docs/components/package-description.jsx b/docs/components/package-description.jsx index bb6509d8b..7024a1525 100644 --- a/docs/components/package-description.jsx +++ b/docs/components/package-description.jsx @@ -1,10 +1,16 @@ import Link from 'next/link'; -export const PackageDescription = ({ description }) => { - const parts = description.substring(0, description.length - 1).split(' '); +export const PackageDescription = ({ pjson }) => { + const parts = pjson.description + .substring(0, pjson.description.length - 1) + .split(' '); return ( -

+

+ + {pjson.version} + +
{parts.map((part) => { const isLink = [ 'TypeDoc', diff --git a/docs/styles.css b/docs/global.css similarity index 72% rename from docs/styles.css rename to docs/global.css index c2e089934..8bc264cf2 100644 --- a/docs/styles.css +++ b/docs/global.css @@ -1,3 +1,7 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + .nextra-toc a[href^='#parameters'], .nextra-toc a[href^='#returns'], .nextra-toc a[href^='#source'], diff --git a/docs/next-env.d.ts b/docs/next-env.d.ts new file mode 100644 index 000000000..4f11a03dc --- /dev/null +++ b/docs/next-env.d.ts @@ -0,0 +1,5 @@ +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/docs/next.config.js b/docs/next.config.js index c190aeb98..e21adbd86 100644 --- a/docs/next.config.js +++ b/docs/next.config.js @@ -1,9 +1,8 @@ -const withNextra = require('nextra')({ +import nextra from "nextra"; + +const withNextra = nextra({ theme: 'nextra-theme-docs', themeConfig: './theme.config.jsx', }); -module.exports = withNextra(); - -// If you have other Next.js configurations, you can pass them as the parameter: -// module.exports = withNextra({ /* other next.js config */ }) +export default withNextra(); diff --git a/docs/package-lock.json b/docs/package-lock.json index b0b1cca51..3a3a25f37 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -12,23 +12,29 @@ "@fortawesome/free-brands-svg-icons": "^6.5.1", "@fortawesome/free-solid-svg-icons": "^6.5.1", "@fortawesome/react-fontawesome": "^0.2.0", - "@vercel/analytics": "^1.1.1", - "next": "^14.0.4", - "nextra": "^2.13.2", - "nextra-theme-docs": "^2.13.2", + "@vercel/analytics": "^1.2.2", + "next": "^14.1.4", + "nextra": "3.0.0-alpha.22", + "nextra-theme-docs": "3.0.0-alpha.22", "react": "^18.2.0", "react-dom": "^18.2.0" + }, + "devDependencies": { + "autoprefixer": "^10.4.19", + "postcss": "^8.4.38", + "tailwindcss": "^3.4.1" } }, - "node_modules/@babel/runtime": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.5.tgz", - "integrity": "sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, "engines": { - "node": ">=6.9.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@braintree/sanitize-url": { @@ -94,10 +100,11 @@ } }, "node_modules/@headlessui/react": { - "version": "1.7.17", - "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.17.tgz", - "integrity": "sha512-4am+tzvkqDSSgiwrsEpGWqgGo9dz8qU5M3znCkC4PgkpY4HcCZzEDEvozltGGGHIKl9jbXbZPSH5TWn4sWJdow==", + "version": "1.7.18", + "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.18.tgz", + "integrity": "sha512-4i5DOrzwN4qSgNsL4Si61VMkUcWbcSKueUV7sFhpHzQcSShdlHENE5+QBntMSRvHt8NyoFO2AGG8si9lq+w4zQ==", "dependencies": { + "@tanstack/react-virtual": "^3.0.0-beta.60", "client-only": "^0.0.1" }, "engines": { @@ -108,55 +115,99 @@ "react-dom": "^16 || ^17 || ^18" } }, - "node_modules/@mdx-js/mdx": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-2.3.0.tgz", - "integrity": "sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA==", + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/mdx": "^2.0.0", - "estree-util-build-jsx": "^2.0.0", - "estree-util-is-identifier-name": "^2.0.0", - "estree-util-to-js": "^1.1.0", - "estree-walker": "^3.0.0", - "hast-util-to-estree": "^2.0.0", - "markdown-extensions": "^1.0.0", - "periscopic": "^3.0.0", - "remark-mdx": "^2.0.0", - "remark-parse": "^10.0.0", - "remark-rehype": "^10.0.0", - "unified": "^10.0.0", - "unist-util-position-from-estree": "^1.0.0", - "unist-util-stringify-position": "^3.0.0", - "unist-util-visit": "^4.0.0", - "vfile": "^5.0.0" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=12" } }, - "node_modules/@mdx-js/mdx/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@mdx-js/mdx/node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mdx-js/mdx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.0.1.tgz", + "integrity": "sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdx": "^2.0.0", + "collapse-white-space": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-build-jsx": "^3.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-util-to-js": "^2.0.0", + "estree-walker": "^3.0.0", + "hast-util-to-estree": "^3.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "markdown-extensions": "^2.0.0", + "periscopic": "^3.0.0", + "remark-mdx": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "source-map": "^0.7.0", + "unified": "^11.0.0", + "unist-util-position-from-estree": "^2.0.0", + "unist-util-stringify-position": "^4.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", @@ -164,46 +215,46 @@ } }, "node_modules/@mdx-js/react": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-2.3.0.tgz", - "integrity": "sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.1.tgz", + "integrity": "sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==", "dependencies": { - "@types/mdx": "^2.0.0", - "@types/react": ">=16" + "@types/mdx": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" }, "peerDependencies": { + "@types/react": ">=16", "react": ">=16" } }, "node_modules/@napi-rs/simple-git": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git/-/simple-git-0.1.9.tgz", - "integrity": "sha512-qKzDS0+VjMvVyU28px+C6zlD1HKy83NIdYzfMQWa/g/V1iG/Ic8uwrS2ihHfm7mp7X0PPrmINLiTTi6ieUIKfw==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git/-/simple-git-0.1.16.tgz", + "integrity": "sha512-C5wRPw9waqL2jk3jEDeJv+f7ScuO3N0a39HVdyFLkwKxHH4Sya4ZbzZsu2JLi6eEqe7RuHipHL6mC7B2OfYZZw==", "engines": { "node": ">= 10" }, "optionalDependencies": { - "@napi-rs/simple-git-android-arm-eabi": "0.1.9", - "@napi-rs/simple-git-android-arm64": "0.1.9", - "@napi-rs/simple-git-darwin-arm64": "0.1.9", - "@napi-rs/simple-git-darwin-x64": "0.1.9", - "@napi-rs/simple-git-linux-arm-gnueabihf": "0.1.9", - "@napi-rs/simple-git-linux-arm64-gnu": "0.1.9", - "@napi-rs/simple-git-linux-arm64-musl": "0.1.9", - "@napi-rs/simple-git-linux-x64-gnu": "0.1.9", - "@napi-rs/simple-git-linux-x64-musl": "0.1.9", - "@napi-rs/simple-git-win32-arm64-msvc": "0.1.9", - "@napi-rs/simple-git-win32-x64-msvc": "0.1.9" + "@napi-rs/simple-git-android-arm-eabi": "0.1.16", + "@napi-rs/simple-git-android-arm64": "0.1.16", + "@napi-rs/simple-git-darwin-arm64": "0.1.16", + "@napi-rs/simple-git-darwin-x64": "0.1.16", + "@napi-rs/simple-git-linux-arm-gnueabihf": "0.1.16", + "@napi-rs/simple-git-linux-arm64-gnu": "0.1.16", + "@napi-rs/simple-git-linux-arm64-musl": "0.1.16", + "@napi-rs/simple-git-linux-x64-gnu": "0.1.16", + "@napi-rs/simple-git-linux-x64-musl": "0.1.16", + "@napi-rs/simple-git-win32-arm64-msvc": "0.1.16", + "@napi-rs/simple-git-win32-x64-msvc": "0.1.16" } }, "node_modules/@napi-rs/simple-git-android-arm-eabi": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-android-arm-eabi/-/simple-git-android-arm-eabi-0.1.9.tgz", - "integrity": "sha512-9D4JnfePMpgL4pg9aMUX7/TIWEUQ+Tgx8n3Pf8TNCMGjUbImJyYsDSLJzbcv9wH7srgn4GRjSizXFJHAPjzEug==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-android-arm-eabi/-/simple-git-android-arm-eabi-0.1.16.tgz", + "integrity": "sha512-dbrCL0Pl5KZG7x7tXdtVsA5CO6At5ohDX3myf5xIYn9kN4jDFxsocl8bNt6Vb/hZQoJd8fI+k5VlJt+rFhbdVw==", "cpu": [ "arm" ], @@ -216,9 +267,9 @@ } }, "node_modules/@napi-rs/simple-git-android-arm64": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-android-arm64/-/simple-git-android-arm64-0.1.9.tgz", - "integrity": "sha512-Krilsw0gPrrASZzudNEl9pdLuNbhoTK0j7pUbfB8FRifpPdFB/zouwuEm0aSnsDXN4ftGrmGG82kuiR/2MeoPg==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-android-arm64/-/simple-git-android-arm64-0.1.16.tgz", + "integrity": "sha512-xYz+TW5J09iK8SuTAKK2D5MMIsBUXVSs8nYp7HcMi8q6FCRO7yJj96YfP9PvKsc/k64hOyqGmL5DhCzY9Cu1FQ==", "cpu": [ "arm64" ], @@ -231,9 +282,9 @@ } }, "node_modules/@napi-rs/simple-git-darwin-arm64": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-darwin-arm64/-/simple-git-darwin-arm64-0.1.9.tgz", - "integrity": "sha512-H/F09nDgYjv4gcFrZBgdTKkZEepqt0KLYcCJuUADuxkKupmjLdecMhypXLk13AzvLW4UQI7NlLTLDXUFLyr2BA==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-darwin-arm64/-/simple-git-darwin-arm64-0.1.16.tgz", + "integrity": "sha512-XfgsYqxhUE022MJobeiX563TJqyQyX4FmYCnqrtJwAfivESVeAJiH6bQIum8dDEYMHXCsG7nL8Ok0Dp8k2m42g==", "cpu": [ "arm64" ], @@ -246,9 +297,9 @@ } }, "node_modules/@napi-rs/simple-git-darwin-x64": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-darwin-x64/-/simple-git-darwin-x64-0.1.9.tgz", - "integrity": "sha512-jBR2xS9nVPqmHv0TWz874W0m/d453MGrMeLjB+boK5IPPLhg3AWIZj0aN9jy2Je1BGVAa0w3INIQJtBBeB6kFA==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-darwin-x64/-/simple-git-darwin-x64-0.1.16.tgz", + "integrity": "sha512-tkEVBhD6vgRCbeWsaAQqM3bTfpIVGeitamPPRVSbsq8qgzJ5Dx6ZedH27R7KSsA/uao7mZ3dsrNLXbu1Wy5MzA==", "cpu": [ "x64" ], @@ -261,9 +312,9 @@ } }, "node_modules/@napi-rs/simple-git-linux-arm-gnueabihf": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm-gnueabihf/-/simple-git-linux-arm-gnueabihf-0.1.9.tgz", - "integrity": "sha512-3n0+VpO4YfZxndZ0sCvsHIvsazd+JmbSjrlTRBCnJeAU1/sfos3skNZtKGZksZhjvd+3o+/GFM8L7Xnv01yggA==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm-gnueabihf/-/simple-git-linux-arm-gnueabihf-0.1.16.tgz", + "integrity": "sha512-R6VAyNnp/yRaT7DV1Ao3r67SqTWDa+fNq2LrNy0Z8gXk2wB9ZKlrxFtLPE1WSpWknWtyRDLpRlsorh7Evk7+7w==", "cpu": [ "arm" ], @@ -276,9 +327,9 @@ } }, "node_modules/@napi-rs/simple-git-linux-arm64-gnu": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm64-gnu/-/simple-git-linux-arm64-gnu-0.1.9.tgz", - "integrity": "sha512-lIzf0KHU2SKC12vMrWwCtysG2Sdt31VHRPMUiz9lD9t3xwVn8qhFSTn5yDkTeG3rgX6o0p5EKalfQN5BXsJq2w==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm64-gnu/-/simple-git-linux-arm64-gnu-0.1.16.tgz", + "integrity": "sha512-LAGI0opFKw/HBMCV2qIBK3uWSEW9h4xd2ireZKLJy8DBPymX6NrWIamuxYNyCuACnFdPRxR4LaRFy4J5ZwuMdw==", "cpu": [ "arm64" ], @@ -291,9 +342,9 @@ } }, "node_modules/@napi-rs/simple-git-linux-arm64-musl": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm64-musl/-/simple-git-linux-arm64-musl-0.1.9.tgz", - "integrity": "sha512-KQozUoNXrxrB8k741ncWXSiMbjl1AGBGfZV21PANzUM8wH4Yem2bg3kfglYS/QIx3udspsT35I9abu49n7D1/w==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm64-musl/-/simple-git-linux-arm64-musl-0.1.16.tgz", + "integrity": "sha512-I57Ph0F0Yn2KW93ep+V1EzKhACqX0x49vvSiapqIsdDA2PifdEWLc1LJarBolmK7NKoPqKmf6lAKKO9lhiZzkg==", "cpu": [ "arm64" ], @@ -306,9 +357,9 @@ } }, "node_modules/@napi-rs/simple-git-linux-x64-gnu": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-x64-gnu/-/simple-git-linux-x64-gnu-0.1.9.tgz", - "integrity": "sha512-O/Niui5mnHPcK3iYC3ui8wgERtJWsQ3Y74W/09t0bL/3dgzGMl4oQt0qTj9dWCsnoGsIEYHPzwCBp/2vqYp/pw==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-x64-gnu/-/simple-git-linux-x64-gnu-0.1.16.tgz", + "integrity": "sha512-AZYYFY2V7hlcQASPEOWyOa3e1skzTct9QPzz0LiDM3f/hCFY/wBaU2M6NC5iG3d2Kr38heuyFS/+JqxLm5WaKA==", "cpu": [ "x64" ], @@ -321,9 +372,9 @@ } }, "node_modules/@napi-rs/simple-git-linux-x64-musl": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-x64-musl/-/simple-git-linux-x64-musl-0.1.9.tgz", - "integrity": "sha512-L9n+e8Wn3hKr3RsIdY8GaB+ry4xZ4BaGwyKExgoB8nDGQuRUY9oP6p0WA4hWfJvJnU1H6hvo36a5UFPReyBO7A==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-x64-musl/-/simple-git-linux-x64-musl-0.1.16.tgz", + "integrity": "sha512-9TyMcYSBJwjT8jwjY9m24BZbu7ozyWTjsmYBYNtK3B0Um1Ov6jthSNneLVvouQ6x+k3Ow+00TiFh6bvmT00r8g==", "cpu": [ "x64" ], @@ -336,9 +387,9 @@ } }, "node_modules/@napi-rs/simple-git-win32-arm64-msvc": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-win32-arm64-msvc/-/simple-git-win32-arm64-msvc-0.1.9.tgz", - "integrity": "sha512-Z6Ja/SZK+lMvRWaxj7wjnvSbAsGrH006sqZo8P8nxKUdZfkVvoCaAWr1r0cfkk2Z3aijLLtD+vKeXGlUPH6gGQ==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-win32-arm64-msvc/-/simple-git-win32-arm64-msvc-0.1.16.tgz", + "integrity": "sha512-uslJ1WuAHCYJWui6xjsyT47SjX6KOHDtClmNO8hqKz1pmDSNY7AjyUY8HxvD1lK9bDnWwc4JYhikS9cxCqHybw==", "cpu": [ "arm64" ], @@ -351,9 +402,9 @@ } }, "node_modules/@napi-rs/simple-git-win32-x64-msvc": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-win32-x64-msvc/-/simple-git-win32-x64-msvc-0.1.9.tgz", - "integrity": "sha512-VAZj1UvC+R2MjKOD3I/Y7dmQlHWAYy4omhReQJRpbCf+oGCBi9CWiIduGqeYEq723nLIKdxP7XjaO0wl1NnUww==", + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-win32-x64-msvc/-/simple-git-win32-x64-msvc-0.1.16.tgz", + "integrity": "sha512-SoEaVeCZCDF1MP+M9bMSXsZWgEjk4On9GWADO5JOulvzR1bKjk0s9PMHwe/YztR9F0sJzrCxwtvBZowhSJsQPg==", "cpu": [ "x64" ], @@ -366,14 +417,14 @@ } }, "node_modules/@next/env": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.0.4.tgz", - "integrity": "sha512-irQnbMLbUNQpP1wcE5NstJtbuA/69kRfzBrpAD7Gsn8zm/CY6YQYc3HQBz8QPxwISG26tIm5afvvVbu508oBeQ==" + "version": "14.1.4", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.1.4.tgz", + "integrity": "sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==" }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.0.4.tgz", - "integrity": "sha512-mF05E/5uPthWzyYDyptcwHptucf/jj09i2SXBPwNzbgBNc+XnwzrL0U6BmPjQeOL+FiB+iG1gwBeq7mlDjSRPg==", + "version": "14.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.1.4.tgz", + "integrity": "sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==", "cpu": [ "arm64" ], @@ -386,9 +437,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.0.4.tgz", - "integrity": "sha512-IZQ3C7Bx0k2rYtrZZxKKiusMTM9WWcK5ajyhOZkYYTCc8xytmwSzR1skU7qLgVT/EY9xtXDG0WhY6fyujnI3rw==", + "version": "14.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.1.4.tgz", + "integrity": "sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==", "cpu": [ "x64" ], @@ -401,9 +452,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.0.4.tgz", - "integrity": "sha512-VwwZKrBQo/MGb1VOrxJ6LrKvbpo7UbROuyMRvQKTFKhNaXjUmKTu7wxVkIuCARAfiI8JpaWAnKR+D6tzpCcM4w==", + "version": "14.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.1.4.tgz", + "integrity": "sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==", "cpu": [ "arm64" ], @@ -416,9 +467,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.0.4.tgz", - "integrity": "sha512-8QftwPEW37XxXoAwsn+nXlodKWHfpMaSvt81W43Wh8dv0gkheD+30ezWMcFGHLI71KiWmHK5PSQbTQGUiidvLQ==", + "version": "14.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.1.4.tgz", + "integrity": "sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==", "cpu": [ "arm64" ], @@ -431,9 +482,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.0.4.tgz", - "integrity": "sha512-/s/Pme3VKfZAfISlYVq2hzFS8AcAIOTnoKupc/j4WlvF6GQ0VouS2Q2KEgPuO1eMBwakWPB1aYFIA4VNVh667A==", + "version": "14.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.1.4.tgz", + "integrity": "sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==", "cpu": [ "x64" ], @@ -446,9 +497,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.0.4.tgz", - "integrity": "sha512-m8z/6Fyal4L9Bnlxde5g2Mfa1Z7dasMQyhEhskDATpqr+Y0mjOBZcXQ7G5U+vgL22cI4T7MfvgtrM2jdopqWaw==", + "version": "14.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.1.4.tgz", + "integrity": "sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==", "cpu": [ "x64" ], @@ -461,9 +512,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.0.4.tgz", - "integrity": "sha512-7Wv4PRiWIAWbm5XrGz3D8HUkCVDMMz9igffZG4NB1p4u1KoItwx9qjATHz88kwCEal/HXmbShucaslXCQXUM5w==", + "version": "14.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.1.4.tgz", + "integrity": "sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==", "cpu": [ "arm64" ], @@ -476,9 +527,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.0.4.tgz", - "integrity": "sha512-zLeNEAPULsl0phfGb4kdzF/cAVIfaC7hY+kt0/d+y9mzcZHsMS3hAS829WbJ31DkSlVKQeHEjZHIdhN+Pg7Gyg==", + "version": "14.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.1.4.tgz", + "integrity": "sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==", "cpu": [ "ia32" ], @@ -491,9 +542,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.0.4.tgz", - "integrity": "sha512-yEh2+R8qDlDCjxVpzOTEpBLQTEFAcP2A8fUFLaWNap9GitYKkKv1//y2S6XY6zsR4rCOPRpU7plYDR+az2n30A==", + "version": "14.1.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.1.4.tgz", + "integrity": "sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==", "cpu": [ "x64" ], @@ -505,6 +556,51 @@ "node": ">= 10" } }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@popperjs/core": { "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", @@ -514,6 +610,20 @@ "url": "https://opencollective.com/popperjs" } }, + "node_modules/@shikijs/core": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.2.1.tgz", + "integrity": "sha512-KaIS0H4EQ3KI2d++TjYqRNgwp8E3M/68e9veR4QtInzA7kKFgcjeiJqb80fuXW+blDy5fmd11PN9g9soz/3ANQ==" + }, + "node_modules/@shikijs/twoslash": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@shikijs/twoslash/-/twoslash-1.2.1.tgz", + "integrity": "sha512-QyrBtKhIXjByPbC2dS/8LAqCLfoVmZHgNqc4eqLVIkOxZp6AAkAak1A3E+oiMP9vLaMY9qQI1pnV45c8FB5PRw==", + "dependencies": { + "@shikijs/core": "1.2.1", + "twoslash": "^0.2.5" + } + }, "node_modules/@swc/helpers": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", @@ -522,6 +632,31 @@ "tslib": "^2.4.0" } }, + "node_modules/@tanstack/react-virtual": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.2.0.tgz", + "integrity": "sha512-OEdMByf2hEfDa6XDbGlZN8qO6bTjlNKqjM3im9JG+u3mCL8jALy0T/67oDI001raUUPh1Bdmfn4ZvPOV5knpcg==", + "dependencies": { + "@tanstack/virtual-core": "3.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@tanstack/virtual-core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.2.0.tgz", + "integrity": "sha512-P5XgYoAw/vfW65byBbJQCw+cagdXDT/qH6wmABiLt4v4YBT2q2vqCOhihe+D1Nt325F/S/0Tkv6C5z0Lv+VBQQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, "node_modules/@theguild/remark-mermaid": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/@theguild/remark-mermaid/-/remark-mermaid-0.0.5.tgz", @@ -535,9 +670,9 @@ } }, "node_modules/@theguild/remark-npm2yarn": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@theguild/remark-npm2yarn/-/remark-npm2yarn-0.2.1.tgz", - "integrity": "sha512-jUTFWwDxtLEFtGZh/TW/w30ySaDJ8atKWH8dq2/IiQF61dPrGfETpl0WxD0VdBfuLOeU14/kop466oBSRO/5CA==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@theguild/remark-npm2yarn/-/remark-npm2yarn-0.3.0.tgz", + "integrity": "sha512-Fofw+9airYgjBd9G6PiHHCrptjyUybQ50JH9/5o9LCH54kggJ7stpCofzHjICB8L7VQbQ1Gwu23P/3CMVY1R4Q==", "dependencies": { "npm-to-yarn": "^2.1.0", "unist-util-visit": "^5.0.0" @@ -583,73 +718,85 @@ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" }, "node_modules/@types/estree-jsx": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.3.tgz", - "integrity": "sha512-pvQ+TKeRHeiUGRhvYwRrQ/ISnohKkSJR14fT2yqyZ4e9K5vqc7hrtY2Y1Dw0ZwAzQ6DQsxsaCUuSIIi8v0Cq6w==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", "dependencies": { "@types/estree": "*" } }, "node_modules/@types/hast": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.8.tgz", - "integrity": "sha512-aMIqAlFd2wTIDZuvLbhUT+TGvMxrNC8ECUIVtH6xxy0sQLs3iu6NO8Kp/VT5je7i5ufnebXzdV1dNDMnvaH6IQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dependencies": { - "@types/unist": "^2" + "@types/unist": "*" } }, - "node_modules/@types/js-yaml": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz", - "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==" - }, "node_modules/@types/katex": { "version": "0.16.7", "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz", "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==" }, "node_modules/@types/mdast": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", - "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz", + "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==", "dependencies": { - "@types/unist": "^2" + "@types/unist": "*" } }, "node_modules/@types/mdx": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.10.tgz", - "integrity": "sha512-Rllzc5KHk0Al5/WANwgSPl1/CwjqCy+AZrGd78zuK+jO9aDM6ffblZ+zIjgPNAaEBmlO0RYDvLNh7wD0zKVgEg==" + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.12.tgz", + "integrity": "sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==" }, "node_modules/@types/ms": { "version": "0.7.34", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, + "node_modules/@types/nlcst": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-1.0.4.tgz", + "integrity": "sha512-ABoYdNQ/kBSsLvZAekMhIPMQ3YUZvavStpKYs7BjLLuKVmIMA0LUgZ7b54zzuWJRbHF80v1cNf4r90Vd6eMQDg==", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/@types/nlcst/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + }, "node_modules/@types/prop-types": { - "version": "15.7.11", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", - "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", + "peer": true }, "node_modules/@types/react": { - "version": "18.2.42", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.42.tgz", - "integrity": "sha512-c1zEr96MjakLYus/wPnuWDo1/zErfdU9rNsIGmE+NV71nx88FG9Ttgo5dqorXTu/LImX2f63WBP986gJkMPNbA==", + "version": "18.2.73", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.73.tgz", + "integrity": "sha512-XcGdod0Jjv84HOC7N5ziY3x+qL0AfmubvKOZ9hJjJ2yd5EE+KYjWhdOjt387e9HPheHkdggF9atTifMRtyAaRA==", + "peer": true, "dependencies": { "@types/prop-types": "*", - "@types/scheduler": "*", "csstype": "^3.0.2" } }, - "node_modules/@types/scheduler": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", - "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" - }, "node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/@typescript/vfs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@typescript/vfs/-/vfs-1.5.0.tgz", + "integrity": "sha512-AJS307bPgbsZZ9ggCT3wwpg3VbTKMFNHfaY/uF0ahSkYYrPF2dSSKDNIDIQAHm9qJqbLvCsSJH7yN4Vs/CsMMg==", + "dependencies": { + "debug": "^4.1.1" + } }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", @@ -657,17 +804,29 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" }, "node_modules/@vercel/analytics": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@vercel/analytics/-/analytics-1.1.1.tgz", - "integrity": "sha512-+NqgNmSabg3IFfxYhrWCfB/H+RCUOCR5ExRudNG2+pcRehq628DJB5e1u1xqwpLtn4pAYii4D98w7kofORAGQA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vercel/analytics/-/analytics-1.2.2.tgz", + "integrity": "sha512-X0rctVWkQV1e5Y300ehVNqpOfSOufo7ieA5PIdna8yX/U7Vjz0GFsGf4qvAhxV02uQ2CVt7GYcrFfddXXK2Y4A==", "dependencies": { "server-only": "^0.0.1" + }, + "peerDependencies": { + "next": ">= 13", + "react": "^18 || ^19" + }, + "peerDependenciesMeta": { + "next": { + "optional": true + }, + "react": { + "optional": true + } } }, "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "bin": { "acorn": "bin/acorn" }, @@ -683,10 +842,17 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/ansi-sequence-parser": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz", - "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==" + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } }, "node_modules/ansi-styles": { "version": "3.2.1", @@ -699,6 +865,25 @@ "node": ">=4" } }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/arch": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", @@ -719,9 +904,10 @@ ] }, "node_modules/arg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/arg/-/arg-1.0.0.tgz", - "integrity": "sha512-Wk7TEzl1KqvTGs/uyhmHO/3XLd3t1UeU4IstvPXVzGPM522cTjqjNZ99esCkcL52sjqjo8e8CTBcWhkxvGzoAw==" + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true }, "node_modules/argparse": { "version": "1.0.10", @@ -731,6 +917,15 @@ "sprintf-js": "~1.0.2" } }, + "node_modules/array-iterate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz", + "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/astring": { "version": "1.8.6", "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz", @@ -739,6 +934,43 @@ "astring": "bin/astring" } }, + "node_modules/autoprefixer": { + "version": "10.4.19", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, "node_modules/bail": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", @@ -748,6 +980,88 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/better-react-mathjax": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/better-react-mathjax/-/better-react-mathjax-2.0.3.tgz", + "integrity": "sha512-wfifT8GFOKb1TWm2+E50I6DJpLZ5kLbch283Lu043EJtwSv0XvZDjr4YfR4d2MjAhqP6SH4VjjrKgbX8R00oCQ==", + "dependencies": { + "mathjax-full": "^3.2.2" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, "node_modules/busboy": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", @@ -759,10 +1073,19 @@ "node": ">=10.16.0" } }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/caniuse-lite": { - "version": "1.0.30001566", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001566.tgz", - "integrity": "sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA==", + "version": "1.0.30001600", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz", + "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==", "funding": [ { "type": "opencollective", @@ -844,13 +1167,49 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" - }, - "node_modules/clipboardy": { - "version": "1.2.2", + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "node_modules/clipboardy": { + "version": "1.2.2", "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-1.2.2.tgz", "integrity": "sha512-16KrBOV7bHmHdxcQiCvfUFYVFyEah4FI8vYT1Fr7CGSA4G+xBWMEfUEQJS1hxeHGtI9ju1Bzs9uXSbj5HZKArw==", "dependencies": { @@ -862,13 +1221,22 @@ } }, "node_modules/clsx": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", - "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", "engines": { "node": ">=6" } }, + "node_modules/collapse-white-space": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", + "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -913,24 +1281,41 @@ } }, "node_modules/cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, "dependencies": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" } }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "peer": true }, "node_modules/cytoscape": { - "version": "3.27.0", - "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.27.0.tgz", - "integrity": "sha512-pPZJilfX9BxESwujODz5pydeGi+FBrXq1rcaB1mfhFXXFJ9GjE6CNndAk+8jPzoXGD+16LtSS4xlYEIUiW4Abg==", + "version": "3.28.1", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.28.1.tgz", + "integrity": "sha512-xyItz4O/4zp9/239wCcH8ZcFuuZooEeF8KHRmzjDfGdXsj3OG9MFSMA0pJE0uX3uCN/ygof6hHf4L7lst+JaDg==", "dependencies": { "heap": "^0.2.6", "lodash": "^4.17.21" @@ -950,34 +1335,10 @@ "cytoscape": "^3.2.0" } }, - "node_modules/cytoscape-fcose": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz", - "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==", - "dependencies": { - "cose-base": "^2.2.0" - }, - "peerDependencies": { - "cytoscape": "^3.2.0" - } - }, - "node_modules/cytoscape-fcose/node_modules/cose-base": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz", - "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==", - "dependencies": { - "layout-base": "^2.0.0" - } - }, - "node_modules/cytoscape-fcose/node_modules/layout-base": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz", - "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==" - }, "node_modules/d3": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/d3/-/d3-7.8.5.tgz", - "integrity": "sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", "dependencies": { "d3-array": "3", "d3-axis": "3", @@ -1182,9 +1543,9 @@ } }, "node_modules/d3-geo": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.0.tgz", - "integrity": "sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", "dependencies": { "d3-array": "2.5.0 - 3" }, @@ -1294,9 +1655,9 @@ } }, "node_modules/d3-scale-chromatic": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz", - "integrity": "sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", "dependencies": { "d3-color": "1 - 3", "d3-interpolate": "1 - 3" @@ -1430,11 +1791,11 @@ } }, "node_modules/delaunator": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", - "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", + "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", "dependencies": { - "robust-predicates": "^3.0.0" + "robust-predicates": "^3.0.2" } }, "node_modules/dequal": { @@ -1457,23 +1818,53 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, "node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", "engines": { "node": ">=0.3.1" } }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, "node_modules/dompurify": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.6.tgz", - "integrity": "sha512-ilkD8YEnnGh1zJ240uJsW7AzE+2qpbOUYjacomn3AvJ6J4JhKGSZ2nh4wUIXPZrEPppaCLx5jFe8T89Rk8tQ7w==" + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.11.tgz", + "integrity": "sha512-Fan4uMuyB26gFV3ovPoEoQbxRRPfTu3CvImyZnhGq5fsIEO+gEFLp45ISFt+kQBWsK5ulDdT0oV28jS1UrwQLg==" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.718", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.718.tgz", + "integrity": "sha512-6FpOapKxHuRNUoNQEP54sAacMod/XX68/Oaau+UoTEC8yxy5lR8jAvTlyrb60oZ9OtuUuAEtKvCQOJm6S4MtBQ==", + "dev": true }, "node_modules/elkjs": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/elkjs/-/elkjs-0.8.2.tgz", - "integrity": "sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ==" + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/elkjs/-/elkjs-0.9.2.tgz", + "integrity": "sha512-2Y/RaA1pdgSHpY0YG4TYuYCD2wh97CRvu22eLG3Kz0pgQ/6KbIFTxsTnDc4MH/6hFlg2L/9qXrDMG0nMjP63iw==" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true }, "node_modules/entities": { "version": "4.5.0", @@ -1486,6 +1877,15 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/escape-string-regexp": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", @@ -1497,6 +1897,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "engines": { + "node": ">=6" + } + }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -1510,9 +1918,9 @@ } }, "node_modules/estree-util-attach-comments": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-2.1.1.tgz", - "integrity": "sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", + "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", "dependencies": { "@types/estree": "^1.0.0" }, @@ -1522,12 +1930,13 @@ } }, "node_modules/estree-util-build-jsx": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-2.2.2.tgz", - "integrity": "sha512-m56vOXcOBuaF+Igpb9OPAy7f9w9OIkb5yhjsZuaPm7HoGi4oTOQi0h2+yZ+AtKklYFZ+rPC4n0wYCJCEU1ONqg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", + "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", "dependencies": { "@types/estree-jsx": "^1.0.0", - "estree-util-is-identifier-name": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", "estree-walker": "^3.0.0" }, "funding": { @@ -1536,18 +1945,18 @@ } }, "node_modules/estree-util-is-identifier-name": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.1.0.tgz", - "integrity": "sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/estree-util-to-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-1.2.0.tgz", - "integrity": "sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", + "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", "dependencies": { "@types/estree-jsx": "^1.0.0", "astring": "^1.8.0", @@ -1559,23 +1968,27 @@ } }, "node_modules/estree-util-value-to-estree": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-1.3.0.tgz", - "integrity": "sha512-Y+ughcF9jSUJvncXwqRageavjrNPAI+1M/L3BI3PyLp1nmgYTGUXU6t5z1Y7OWuThoDdhPME07bQU+d5LxdJqw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.0.1.tgz", + "integrity": "sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==", "dependencies": { - "is-plain-obj": "^3.0.0" + "@types/estree": "^1.0.0", + "is-plain-obj": "^4.0.0" }, "engines": { - "node": ">=12.0.0" + "node": ">=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/remcohaszing" } }, "node_modules/estree-util-visit": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-1.2.1.tgz", - "integrity": "sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", + "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", "dependencies": { "@types/estree-jsx": "^1.0.0", - "@types/unist": "^2.0.0" + "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", @@ -1607,6 +2020,60 @@ "node": ">=4" } }, + "node_modules/execa/node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/execa/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/execa/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/execa/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -1623,16 +2090,137 @@ "node": ">=0.10.0" } }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fault": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", + "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", + "dependencies": { + "format": "^0.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/flexsearch": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.7.31.tgz", - "integrity": "sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==" + "version": "0.7.43", + "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.7.43.tgz", + "integrity": "sha512-c5o/+Um8aqCSOXGcZoqZOm+NqtVwNsvVpWv6lfmSclU954O3wvQKxxK8zj74fPaSJbXpSLTs4PRhh+wnoCXnKg==" }, "node_modules/focus-visible": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/focus-visible/-/focus-visible-5.2.0.tgz", "integrity": "sha512-Rwix9pBtC1Nuy5wysTmKy+UjbDJpIfg8eHjw0rjZ1mX4GNLz1Bmd16uDpI3Gk1i70Fgcs8Csg2lPm8HULFg9DQ==" }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", @@ -1641,32 +2229,44 @@ "node": ">=4" } }, - "node_modules/git-up": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz", - "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==", - "dependencies": { - "is-ssh": "^1.4.0", - "parse-url": "^8.1.0" - } - }, - "node_modules/git-url-parse": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-13.1.1.tgz", - "integrity": "sha512-PCFJyeSSdtnbfhSNRw9Wk96dDCNx+sogTe4YNXeXSJxt7xz5hvXekuRn9JX7m+Mf4OscCu8h+mtAl3+h5Fo8lQ==", - "dependencies": { - "git-up": "^7.0.0" - } - }, "node_modules/github-slugger": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==" }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + "node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } }, "node_modules/graceful-fs": { "version": "4.2.11", @@ -1695,20 +2295,16 @@ "node": ">=0.10.0" } }, - "node_modules/hash-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/hash-obj/-/hash-obj-4.0.0.tgz", - "integrity": "sha512-FwO1BUVWkyHasWDW4S8o0ssQXjvyghLV2rfVhnN36b2bbcj45eGiuzdn9XOvOpjV3TKQD7Gm2BWNXdE9V4KKYg==", + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, "dependencies": { - "is-obj": "^3.0.0", - "sort-keys": "^5.0.0", - "type-fest": "^1.0.2" + "function-bind": "^1.1.2" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.4" } }, "node_modules/hast-util-from-dom": { @@ -1725,14 +2321,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-from-dom/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", - "dependencies": { - "@types/unist": "*" - } - }, "node_modules/hast-util-from-html": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.1.tgz", @@ -1765,57 +2353,10 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-from-html-isomorphic/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/hast-util-from-html/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/hast-util-from-html/node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" - }, - "node_modules/hast-util-from-html/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-html/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-parse5": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz", - "integrity": "sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==", + "node_modules/hast-util-from-parse5": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz", + "integrity": "sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", @@ -1831,45 +2372,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-from-parse5/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/hast-util-from-parse5/node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" - }, - "node_modules/hast-util-from-parse5/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-parse5/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/hast-util-is-element": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", @@ -1882,14 +2384,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-is-element/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", - "dependencies": { - "@types/unist": "*" - } - }, "node_modules/hast-util-parse-selector": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", @@ -1902,18 +2396,10 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-parse-selector/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", - "dependencies": { - "@types/unist": "*" - } - }, "node_modules/hast-util-raw": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.1.tgz", - "integrity": "sha512-5m1gmba658Q+lO5uqL5YNGQWeh1MYWZbZmWrM5lncdcuiXuo5E2HT/CIOp0rLF8ksfSwiCVJ3twlgVRyTGThGA==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.2.tgz", + "integrity": "sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", @@ -1934,50 +2420,52 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-raw/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/hast-util-raw/node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" - }, - "node_modules/hast-util-raw/node_modules/unist-util-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "node_modules/hast-util-to-estree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz", + "integrity": "sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==", "dependencies": { - "@types/unist": "^3.0.0" + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-attach-comments": "^3.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^0.4.0", + "unist-util-position": "^5.0.0", + "zwitch": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-raw/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.0.tgz", + "integrity": "sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==", "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^1.0.0", + "unist-util-position": "^5.0.0", "vfile-message": "^4.0.0" }, "funding": { @@ -1985,30 +2473,17 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-to-estree": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-2.3.3.tgz", - "integrity": "sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==", + "node_modules/hast-util-to-jsx-runtime/node_modules/inline-style-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.3.tgz", + "integrity": "sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==" + }, + "node_modules/hast-util-to-jsx-runtime/node_modules/style-to-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.6.tgz", + "integrity": "sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA==", "dependencies": { - "@types/estree": "^1.0.0", - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^2.0.0", - "@types/unist": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "estree-util-attach-comments": "^2.0.0", - "estree-util-is-identifier-name": "^2.0.0", - "hast-util-whitespace": "^2.0.0", - "mdast-util-mdx-expression": "^1.0.0", - "mdast-util-mdxjs-esm": "^1.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-object": "^0.4.1", - "unist-util-position": "^4.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "inline-style-parser": "0.2.3" } }, "node_modules/hast-util-to-parse5": { @@ -2029,12 +2504,16 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-to-parse5/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", + "node_modules/hast-util-to-string": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.0.tgz", + "integrity": "sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==", "dependencies": { - "@types/unist": "*" + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-to-text": { @@ -2052,23 +2531,13 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-to-text/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/hast-util-to-text/node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" - }, "node_modules/hast-util-whitespace": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz", - "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "dependencies": { + "@types/hast": "^3.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -2090,14 +2559,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hastscript/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", - "dependencies": { - "@types/unist": "*" - } - }, "node_modules/heap": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", @@ -2163,6 +2624,18 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/is-buffer": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", @@ -2185,6 +2658,18 @@ "node": ">=4" } }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-decimal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", @@ -2202,6 +2687,36 @@ "node": ">=0.10.0" } }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-hexadecimal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", @@ -2211,23 +2726,21 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-3.0.0.tgz", - "integrity": "sha512-IlsXEHOjtKhpN8r/tRFj2nDyTmHvcfNeu/nrRIcXE17ROeatXchkojffa1SpdqW4cr/Fj6QkEf/Gn4zf6KKvEQ==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.12.0" } }, "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -2241,14 +2754,6 @@ "@types/estree": "*" } }, - "node_modules/is-ssh": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz", - "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==", - "dependencies": { - "protocols": "^2.0.1" - } - }, "node_modules/is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", @@ -2262,6 +2767,33 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -2279,15 +2811,10 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" - }, "node_modules/katex": { - "version": "0.16.9", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.9.tgz", - "integrity": "sha512-fsSYjWS0EEOwvy81j3vRA8TEAhQhKiqO+FQaKWp0m39qwOzHVBgAUBIXWj1pB+O2W3fIpNa6Y9KSKCVbfPhyAQ==", + "version": "0.16.10", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.10.tgz", + "integrity": "sha512-ZiqaC04tp2O5utMsl2TEZTXxa6WSC4yo0fv5ML++D3QZv/vx2Mct0mTlRx3O+uUkjfuAgOkzsCmq5MiUEsDDdA==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" @@ -2325,6 +2852,21 @@ "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz", "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==" }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -2335,11 +2877,6 @@ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" - }, "node_modules/longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", @@ -2361,20 +2898,23 @@ } }, "node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" } }, "node_modules/markdown-extensions": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-1.1.1.tgz", - "integrity": "sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", + "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", "engines": { - "node": ">=0.10.0" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/markdown-table": { @@ -2386,101 +2926,66 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/match-sorter": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.1.tgz", - "integrity": "sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw==", + "node_modules/mathjax-full": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/mathjax-full/-/mathjax-full-3.2.2.tgz", + "integrity": "sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w==", "dependencies": { - "@babel/runtime": "^7.12.5", - "remove-accents": "0.4.2" + "esm": "^3.2.25", + "mhchemparser": "^4.1.0", + "mj-context-menu": "^0.6.1", + "speech-rule-engine": "^4.0.6" } }, - "node_modules/mdast-util-definitions": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz", - "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==", + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", + "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==", "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-definitions/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-definitions/node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-find-and-replace": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz", - "integrity": "sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==", - "dependencies": { - "@types/mdast": "^3.0.0", + "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-find-and-replace/node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "node_modules/mdast-util-from-markdown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz", + "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-from-markdown": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", - "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", + "node_modules/mdast-util-frontmatter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", + "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==", "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "mdast-util-to-string": "^3.1.0", - "micromark": "^3.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-decode-string": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-stringify-position": "^3.0.0", - "uvu": "^0.5.0" + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "escape-string-regexp": "^5.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-extension-frontmatter": "^2.0.0" }, "funding": { "type": "opencollective", @@ -2488,17 +2993,17 @@ } }, "node_modules/mdast-util-gfm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz", - "integrity": "sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", + "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", "dependencies": { - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-gfm-autolink-literal": "^1.0.0", - "mdast-util-gfm-footnote": "^1.0.0", - "mdast-util-gfm-strikethrough": "^1.0.0", - "mdast-util-gfm-table": "^1.0.0", - "mdast-util-gfm-task-list-item": "^1.0.0", - "mdast-util-to-markdown": "^1.0.0" + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", @@ -2506,14 +3011,15 @@ } }, "node_modules/mdast-util-gfm-autolink-literal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz", - "integrity": "sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.0.tgz", + "integrity": "sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==", "dependencies": { - "@types/mdast": "^3.0.0", + "@types/mdast": "^4.0.0", "ccount": "^2.0.0", - "mdast-util-find-and-replace": "^2.0.0", - "micromark-util-character": "^1.0.0" + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" }, "funding": { "type": "opencollective", @@ -2521,13 +3027,15 @@ } }, "node_modules/mdast-util-gfm-footnote": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz", - "integrity": "sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", + "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0", - "micromark-util-normalize-identifier": "^1.0.0" + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" }, "funding": { "type": "opencollective", @@ -2535,12 +3043,13 @@ } }, "node_modules/mdast-util-gfm-strikethrough": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz", - "integrity": "sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", @@ -2548,14 +3057,15 @@ } }, "node_modules/mdast-util-gfm-table": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz", - "integrity": "sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", "dependencies": { - "@types/mdast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", "markdown-table": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-to-markdown": "^1.3.0" + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", @@ -2563,12 +3073,14 @@ } }, "node_modules/mdast-util-gfm-task-list-item": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz", - "integrity": "sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", @@ -2576,13 +3088,17 @@ } }, "node_modules/mdast-util-math": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-math/-/mdast-util-math-2.0.2.tgz", - "integrity": "sha512-8gmkKVp9v6+Tgjtq6SYx9kGPpTf6FVYRa53/DLh479aldR9AyP48qeVOgNZ5X7QUK7nOy4yw7vg6mbiGcs9jWQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-math/-/mdast-util-math-3.0.0.tgz", + "integrity": "sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==", "dependencies": { - "@types/mdast": "^3.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", "longest-streak": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.1.0", + "unist-util-remove-position": "^5.0.0" }, "funding": { "type": "opencollective", @@ -2590,15 +3106,15 @@ } }, "node_modules/mdast-util-mdx": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-2.0.1.tgz", - "integrity": "sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", + "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", "dependencies": { - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-mdx-expression": "^1.0.0", - "mdast-util-mdx-jsx": "^2.0.0", - "mdast-util-mdxjs-esm": "^1.0.0", - "mdast-util-to-markdown": "^1.0.0" + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", @@ -2606,15 +3122,16 @@ } }, "node_modules/mdast-util-mdx-expression": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.2.tgz", - "integrity": "sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz", + "integrity": "sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==", "dependencies": { "@types/estree-jsx": "^1.0.0", - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-to-markdown": "^1.0.0" + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", @@ -2622,154 +3139,232 @@ } }, "node_modules/mdast-util-mdx-jsx": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-2.1.4.tgz", - "integrity": "sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.2.tgz", + "integrity": "sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==", "dependencies": { "@types/estree-jsx": "^1.0.0", - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", "ccount": "^2.0.0", - "mdast-util-from-markdown": "^1.1.0", - "mdast-util-to-markdown": "^1.3.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", "parse-entities": "^4.0.0", "stringify-entities": "^4.0.0", - "unist-util-remove-position": "^4.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "unist-util-remove-position": "^5.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-mdx-jsx/node_modules/unist-util-remove-position": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-4.0.2.tgz", - "integrity": "sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==", + "node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-visit": "^4.0.0" + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-mdx-jsx/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-mdx-jsx/node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "node_modules/mdast-util-to-hast": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.1.0.tgz", + "integrity": "sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-mdx-jsx/node_modules/vfile-message": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", - "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", + "node_modules/mdast-util-to-markdown": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz", + "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-mdxjs-esm": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-1.3.1.tgz", - "integrity": "sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==", + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-to-markdown": "^1.0.0" + "@types/mdast": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-phrasing": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", - "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mermaid": { + "version": "10.9.0", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-10.9.0.tgz", + "integrity": "sha512-swZju0hFox/B/qoLKK0rOxxgh8Cf7rJSfAUc1u8fezVihYMvrJAS45GzAxTVf4Q+xn9uMgitBcmWk7nWGXOs/g==", + "dependencies": { + "@braintree/sanitize-url": "^6.0.1", + "@types/d3-scale": "^4.0.3", + "@types/d3-scale-chromatic": "^3.0.0", + "cytoscape": "^3.28.1", + "cytoscape-cose-bilkent": "^4.1.0", + "d3": "^7.4.0", + "d3-sankey": "^0.12.3", + "dagre-d3-es": "7.0.10", + "dayjs": "^1.11.7", + "dompurify": "^3.0.5", + "elkjs": "^0.9.0", + "katex": "^0.16.9", + "khroma": "^2.0.0", + "lodash-es": "^4.17.21", + "mdast-util-from-markdown": "^1.3.0", + "non-layered-tidy-tree-layout": "^2.0.2", + "stylis": "^4.1.3", + "ts-dedent": "^2.2.0", + "uuid": "^9.0.0", + "web-worker": "^1.2.0" + } + }, + "node_modules/mermaid/node_modules/@types/mdast": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/mermaid/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + }, + "node_modules/mermaid/node_modules/mdast-util-from-markdown": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", + "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", "dependencies": { "@types/mdast": "^3.0.0", - "unist-util-is": "^5.0.0" + "@types/unist": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "mdast-util-to-string": "^3.1.0", + "micromark": "^3.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-decode-string": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "unist-util-stringify-position": "^3.0.0", + "uvu": "^0.5.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-to-hast": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.0.2.tgz", - "integrity": "sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==", + "node_modules/mermaid/node_modules/mdast-util-to-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", + "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@ungap/structured-clone": "^1.0.0", - "devlop": "^1.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "trim-lines": "^3.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0" + "@types/mdast": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-to-hast/node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", + "node_modules/mermaid/node_modules/micromark": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", + "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/mdast-util-to-hast/node_modules/@types/mdast": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz", - "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==", - "dependencies": { - "@types/unist": "*" + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "micromark-core-commonmark": "^1.0.1", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" } }, - "node_modules/mdast-util-to-hast/node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" - }, - "node_modules/mdast-util-to-hast/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "node_modules/mermaid/node_modules/micromark-core-commonmark": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", + "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", "funding": [ { "type": "GitHub Sponsors", @@ -2781,14 +3376,28 @@ } ], "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "decode-named-character-reference": "^1.0.0", + "micromark-factory-destination": "^1.0.0", + "micromark-factory-label": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-factory-title": "^1.0.0", + "micromark-factory-whitespace": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-html-tag-name": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" } }, - "node_modules/mdast-util-to-hast/node_modules/micromark-util-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", - "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "node_modules/mermaid/node_modules/micromark-factory-destination": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", + "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", "funding": [ { "type": "GitHub Sponsors", @@ -2798,12 +3407,17 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } }, - "node_modules/mdast-util-to-hast/node_modules/micromark-util-sanitize-uri": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", - "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "node_modules/mermaid/node_modules/micromark-factory-label": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", + "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", "funding": [ { "type": "GitHub Sponsors", @@ -2815,15 +3429,16 @@ } ], "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-symbol": "^2.0.0" + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" } }, - "node_modules/mdast-util-to-hast/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "node_modules/mermaid/node_modules/micromark-factory-space": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", + "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", "funding": [ { "type": "GitHub Sponsors", @@ -2833,12 +3448,16 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" + } }, - "node_modules/mdast-util-to-hast/node_modules/micromark-util-types": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", - "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "node_modules/mermaid/node_modules/micromark-factory-title": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", + "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", "funding": [ { "type": "GitHub Sponsors", @@ -2848,109 +3467,76 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] - }, - "node_modules/mdast-util-to-hast/node_modules/unist-util-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", - "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + ], "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "node_modules/mdast-util-to-markdown/node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "node_modules/mermaid/node_modules/micromark-factory-whitespace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", + "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "node_modules/mdast-util-to-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", - "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", + "node_modules/mermaid/node_modules/micromark-util-character": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", + "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { - "@types/mdast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "node_modules/mermaid": { - "version": "10.6.1", - "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-10.6.1.tgz", - "integrity": "sha512-Hky0/RpOw/1il9X8AvzOEChfJtVvmXm+y7JML5C//ePYMy0/9jCEmW1E1g86x9oDfW9+iVEdTV/i+M6KWRNs4A==", + "node_modules/mermaid/node_modules/micromark-util-chunked": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", + "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { - "@braintree/sanitize-url": "^6.0.1", - "@types/d3-scale": "^4.0.3", - "@types/d3-scale-chromatic": "^3.0.0", - "cytoscape": "^3.23.0", - "cytoscape-cose-bilkent": "^4.1.0", - "cytoscape-fcose": "^2.1.0", - "d3": "^7.4.0", - "d3-sankey": "^0.12.3", - "dagre-d3-es": "7.0.10", - "dayjs": "^1.11.7", - "dompurify": "^3.0.5", - "elkjs": "^0.8.2", - "khroma": "^2.0.0", - "lodash-es": "^4.17.21", - "mdast-util-from-markdown": "^1.3.0", - "non-layered-tidy-tree-layout": "^2.0.2", - "stylis": "^4.1.3", - "ts-dedent": "^2.2.0", - "uuid": "^9.0.0", - "web-worker": "^1.2.0" + "micromark-util-symbol": "^1.0.0" } }, - "node_modules/micromark": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", - "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", + "node_modules/mermaid/node_modules/micromark-util-classify-character": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", + "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", "funding": [ { "type": "GitHub Sponsors", @@ -2962,29 +3548,15 @@ } ], "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "micromark-core-commonmark": "^1.0.1", - "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" + "micromark-util-types": "^1.0.0" } }, - "node_modules/micromark-core-commonmark": { + "node_modules/mermaid/node_modules/micromark-util-combine-extensions": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", - "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", + "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", "funding": [ { "type": "GitHub Sponsors", @@ -2996,160 +3568,14 @@ } ], "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-factory-destination": "^1.0.0", - "micromark-factory-label": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-factory-title": "^1.0.0", - "micromark-factory-whitespace": "^1.0.0", - "micromark-util-character": "^1.0.0", "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-html-tag-name": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-extension-gfm": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz", - "integrity": "sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==", - "dependencies": { - "micromark-extension-gfm-autolink-literal": "^1.0.0", - "micromark-extension-gfm-footnote": "^1.0.0", - "micromark-extension-gfm-strikethrough": "^1.0.0", - "micromark-extension-gfm-table": "^1.0.0", - "micromark-extension-gfm-tagfilter": "^1.0.0", - "micromark-extension-gfm-task-list-item": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-types": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.5.tgz", - "integrity": "sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-footnote": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.2.tgz", - "integrity": "sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==", - "dependencies": { - "micromark-core-commonmark": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-strikethrough": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.7.tgz", - "integrity": "sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==", - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-table": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.7.tgz", - "integrity": "sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-tagfilter": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz", - "integrity": "sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==", - "dependencies": { "micromark-util-types": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-task-list-item": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.5.tgz", - "integrity": "sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-math": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-2.1.2.tgz", - "integrity": "sha512-es0CcOV89VNS9wFmyn+wyFTKweXGW4CEvdaAca6SWRWPyYCbBisnjaHLjWO4Nszuiud84jCpkHsqAJoa768Pvg==", - "dependencies": { - "@types/katex": "^0.16.0", - "katex": "^0.16.0", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-extension-mdx-expression": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-1.0.8.tgz", - "integrity": "sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw==", + "node_modules/mermaid/node_modules/micromark-util-decode-numeric-character-reference": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", + "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", "funding": [ { "type": "GitHub Sponsors", @@ -3161,118 +3587,13 @@ } ], "dependencies": { - "@types/estree": "^1.0.0", - "micromark-factory-mdx-expression": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-events-to-acorn": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-extension-mdx-jsx": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-1.0.5.tgz", - "integrity": "sha512-gPH+9ZdmDflbu19Xkb8+gheqEDqkSpdCEubQyxuz/Hn8DOXiXvrXeikOoBA71+e8Pfi0/UYmU3wW3H58kr7akA==", - "dependencies": { - "@types/acorn": "^4.0.0", - "@types/estree": "^1.0.0", - "estree-util-is-identifier-name": "^2.0.0", - "micromark-factory-mdx-expression": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdx-jsx/node_modules/vfile-message": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", - "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdx-md": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-1.0.1.tgz", - "integrity": "sha512-7MSuj2S7xjOQXAjjkbjBsHkMtb+mDGVW6uI2dBL9snOBCbZmoNgDAeZ0nSn9j3T42UE/g2xVNMn18PJxZvkBEA==", - "dependencies": { - "micromark-util-types": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdxjs": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-1.0.1.tgz", - "integrity": "sha512-7YA7hF6i5eKOfFUzZ+0z6avRG52GpWR8DL+kN47y3f2KhxbBZMhmxe7auOeaTBrW2DenbbZTf1ea9tA2hDpC2Q==", - "dependencies": { - "acorn": "^8.0.0", - "acorn-jsx": "^5.0.0", - "micromark-extension-mdx-expression": "^1.0.0", - "micromark-extension-mdx-jsx": "^1.0.0", - "micromark-extension-mdx-md": "^1.0.0", - "micromark-extension-mdxjs-esm": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-types": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdxjs-esm": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-1.0.5.tgz", - "integrity": "sha512-xNRBw4aoURcyz/S69B19WnZAkWJMxHMT5hE36GtDAyhoyn/8TuAeqjFJQlwk+MKQsUD7b3l7kFX+vlfVWgcX1w==", - "dependencies": { - "@types/estree": "^1.0.0", - "micromark-core-commonmark": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-events-to-acorn": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-position-from-estree": "^1.1.0", - "uvu": "^0.5.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdxjs-esm/node_modules/vfile-message": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", - "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "micromark-util-symbol": "^1.0.0" } }, - "node_modules/micromark-factory-destination": { + "node_modules/mermaid/node_modules/micromark-util-decode-string": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", - "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", + "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", "funding": [ { "type": "GitHub Sponsors", @@ -3284,15 +3605,16 @@ } ], "dependencies": { + "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-symbol": "^1.0.0" } }, - "node_modules/micromark-factory-label": { + "node_modules/mermaid/node_modules/micromark-util-encode": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", - "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", + "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", "funding": [ { "type": "GitHub Sponsors", @@ -3302,18 +3624,12 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } + ] }, - "node_modules/micromark-factory-mdx-expression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-1.0.9.tgz", - "integrity": "sha512-jGIWzSmNfdnkJq05c7b0+Wv0Kfz3NJ3N4cBjnbO4zjXIlxJr+f8lk+5ZmwFvqdAbUy2q6B5rCY//g0QAAaXDWA==", + "node_modules/mermaid/node_modules/micromark-util-html-tag-name": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", + "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", "funding": [ { "type": "GitHub Sponsors", @@ -3323,35 +3639,12 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ], - "dependencies": { - "@types/estree": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-events-to-acorn": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-position-from-estree": "^1.0.0", - "uvu": "^0.5.0", - "vfile-message": "^3.0.0" - } - }, - "node_modules/micromark-factory-mdx-expression/node_modules/vfile-message": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", - "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } + ] }, - "node_modules/micromark-factory-space": { + "node_modules/mermaid/node_modules/micromark-util-normalize-identifier": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", - "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", + "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", "funding": [ { "type": "GitHub Sponsors", @@ -3363,14 +3656,13 @@ } ], "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-symbol": "^1.0.0" } }, - "node_modules/micromark-factory-title": { + "node_modules/mermaid/node_modules/micromark-util-resolve-all": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", - "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", + "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", "funding": [ { "type": "GitHub Sponsors", @@ -3382,16 +3674,13 @@ } ], "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", "micromark-util-types": "^1.0.0" } }, - "node_modules/micromark-factory-whitespace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", - "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", + "node_modules/mermaid/node_modules/micromark-util-sanitize-uri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", + "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", "funding": [ { "type": "GitHub Sponsors", @@ -3403,16 +3692,15 @@ } ], "dependencies": { - "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-encode": "^1.0.0", + "micromark-util-symbol": "^1.0.0" } }, - "node_modules/micromark-util-character": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", - "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", + "node_modules/mermaid/node_modules/micromark-util-subtokenize": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", + "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", "funding": [ { "type": "GitHub Sponsors", @@ -3424,14 +3712,16 @@ } ], "dependencies": { + "micromark-util-chunked": "^1.0.0", "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" } }, - "node_modules/micromark-util-chunked": { + "node_modules/mermaid/node_modules/micromark-util-symbol": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", - "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", + "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", "funding": [ { "type": "GitHub Sponsors", @@ -3441,15 +3731,12 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } + ] }, - "node_modules/micromark-util-classify-character": { + "node_modules/mermaid/node_modules/micromark-util-types": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", - "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", "funding": [ { "type": "GitHub Sponsors", @@ -3459,17 +3746,29 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ], + ] + }, + "node_modules/mermaid/node_modules/unist-util-stringify-position": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-util-combine-extensions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", - "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", + "node_modules/mhchemparser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/mhchemparser/-/mhchemparser-4.2.1.tgz", + "integrity": "sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==" + }, + "node_modules/micromark": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", + "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", "funding": [ { "type": "GitHub Sponsors", @@ -3481,14 +3780,29 @@ } ], "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-types": "^1.0.0" + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", - "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", + "node_modules/micromark-core-commonmark": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.0.tgz", + "integrity": "sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==", "funding": [ { "type": "GitHub Sponsors", @@ -3500,49 +3814,175 @@ } ], "dependencies": { - "micromark-util-symbol": "^1.0.0" + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/micromark-util-decode-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", - "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/micromark-extension-frontmatter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz", + "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==", "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0" + "fault": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-util-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", - "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/micromark-util-events-to-acorn": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-1.2.3.tgz", - "integrity": "sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w==", + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.0.0.tgz", + "integrity": "sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.0.0.tgz", + "integrity": "sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.0.0.tgz", + "integrity": "sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.0.1.tgz", + "integrity": "sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-math": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.0.0.tgz", + "integrity": "sha512-iJ2Q28vBoEovLN5o3GO12CpqorQRYDPT+p4zW50tGwTfJB+iv/VnB6Ini+gqa24K97DwptMBBIvVX6Bjk49oyQ==", + "dependencies": { + "@types/katex": "^0.16.0", + "devlop": "^1.0.0", + "katex": "^0.16.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-expression": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz", + "integrity": "sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==", "funding": [ { "type": "GitHub Sponsors", @@ -3554,33 +3994,92 @@ } ], "dependencies": { - "@types/acorn": "^4.0.0", "@types/estree": "^1.0.0", - "@types/unist": "^2.0.0", - "estree-util-visit": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0", - "vfile-message": "^3.0.0" + "devlop": "^1.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/micromark-util-events-to-acorn/node_modules/vfile-message": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", - "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", + "node_modules/micromark-extension-mdx-jsx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.0.tgz", + "integrity": "sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "@types/acorn": "^4.0.0", + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-util-html-tag-name": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", - "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", + "node_modules/micromark-extension-mdx-md": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", + "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", + "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", + "dependencies": { + "acorn": "^8.0.0", + "acorn-jsx": "^5.0.0", + "micromark-extension-mdx-expression": "^3.0.0", + "micromark-extension-mdx-jsx": "^3.0.0", + "micromark-extension-mdx-md": "^2.0.0", + "micromark-extension-mdxjs-esm": "^3.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", + "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", "funding": [ { "type": "GitHub Sponsors", @@ -3590,12 +4089,17 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } }, - "node_modules/micromark-util-normalize-identifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", - "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", + "node_modules/micromark-factory-label": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", "funding": [ { "type": "GitHub Sponsors", @@ -3607,13 +4111,16 @@ } ], "dependencies": { - "micromark-util-symbol": "^1.0.0" + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/micromark-util-resolve-all": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", - "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", + "node_modules/micromark-factory-mdx-expression": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.1.tgz", + "integrity": "sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==", "funding": [ { "type": "GitHub Sponsors", @@ -3625,13 +4132,20 @@ } ], "dependencies": { - "micromark-util-types": "^1.0.0" + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" } }, - "node_modules/micromark-util-sanitize-uri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", - "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", + "node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", "funding": [ { "type": "GitHub Sponsors", @@ -3643,15 +4157,14 @@ } ], "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-symbol": "^1.0.0" + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/micromark-util-subtokenize": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", - "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", + "node_modules/micromark-factory-title": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", "funding": [ { "type": "GitHub Sponsors", @@ -3663,16 +4176,16 @@ } ], "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/micromark-util-symbol": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", - "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", + "node_modules/micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", "funding": [ { "type": "GitHub Sponsors", @@ -3682,12 +4195,18 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } }, - "node_modules/micromark-util-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", - "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "funding": [ { "type": "GitHub Sponsors", @@ -3697,707 +4216,1667 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] - }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "engines": { - "node": ">=4" + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/ai" + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" } ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "dependencies": { + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/next": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/next/-/next-14.0.4.tgz", - "integrity": "sha512-qbwypnM7327SadwFtxXnQdGiKpkuhaRLE2uq62/nRul9cj9KhQ5LhHmlziTNqUidZotw/Q1I9OjirBROdUJNgA==", - "dependencies": { - "@next/env": "14.0.4", - "@swc/helpers": "0.5.2", - "busboy": "1.6.0", - "caniuse-lite": "^1.0.30001406", - "graceful-fs": "^4.2.11", - "postcss": "8.4.31", - "styled-jsx": "5.1.1", - "watchpack": "2.4.0" - }, - "bin": { - "next": "dist/bin/next" - }, - "engines": { - "node": ">=18.17.0" - }, - "optionalDependencies": { - "@next/swc-darwin-arm64": "14.0.4", - "@next/swc-darwin-x64": "14.0.4", - "@next/swc-linux-arm64-gnu": "14.0.4", - "@next/swc-linux-arm64-musl": "14.0.4", - "@next/swc-linux-x64-gnu": "14.0.4", - "@next/swc-linux-x64-musl": "14.0.4", - "@next/swc-win32-arm64-msvc": "14.0.4", - "@next/swc-win32-ia32-msvc": "14.0.4", - "@next/swc-win32-x64-msvc": "14.0.4" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.1.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "sass": "^1.3.0" - }, - "peerDependenciesMeta": { - "@opentelemetry/api": { - "optional": true + "node_modules/micromark-util-classify-character": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" }, - "sass": { - "optional": true + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/next-mdx-remote": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/next-mdx-remote/-/next-mdx-remote-4.4.1.tgz", - "integrity": "sha512-1BvyXaIou6xy3XoNF4yaMZUCb6vD2GTAa5ciOa6WoO+gAUTYsb1K4rI/HSC2ogAWLrb/7VSV52skz07vOzmqIQ==", + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { - "@mdx-js/mdx": "^2.2.1", - "@mdx-js/react": "^2.2.1", - "vfile": "^5.3.0", - "vfile-matter": "^3.0.1" - }, - "engines": { - "node": ">=14", - "npm": ">=7" - }, - "peerDependencies": { - "react": ">=16.x <=18.x", - "react-dom": ">=16.x <=18.x" + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/next-seo": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/next-seo/-/next-seo-6.4.0.tgz", - "integrity": "sha512-XQFxkOL2hw0YE+P100HbI3EAvcludlHPxuzMgaIjKb7kPK0CvjGvLFjd9hszZFEDc5oiQkGFA8+cuWcnip7eYA==", - "peerDependencies": { - "next": "^8.1.1-canary.54 || >=9.0.0", - "react": ">=16.0.0", - "react-dom": ">=16.0.0" + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", + "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/next-themes": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.2.1.tgz", - "integrity": "sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==", - "peerDependencies": { - "next": "*", - "react": "*", - "react-dom": "*" + "node_modules/micromark-util-decode-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/nextra": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/nextra/-/nextra-2.13.2.tgz", - "integrity": "sha512-pIgOSXNUqTz1laxV4ChFZOU7lzJAoDHHaBPj8L09PuxrLKqU1BU/iZtXAG6bQeKCx8EPdBsoXxEuENnL9QGnGA==", - "dependencies": { - "@headlessui/react": "^1.7.10", - "@mdx-js/mdx": "^2.3.0", - "@mdx-js/react": "^2.3.0", - "@napi-rs/simple-git": "^0.1.9", - "@theguild/remark-mermaid": "^0.0.5", - "@theguild/remark-npm2yarn": "^0.2.0", - "clsx": "^2.0.0", - "github-slugger": "^2.0.0", - "graceful-fs": "^4.2.11", - "gray-matter": "^4.0.3", - "katex": "^0.16.9", - "lodash.get": "^4.4.2", - "next-mdx-remote": "^4.2.1", - "p-limit": "^3.1.0", - "rehype-katex": "^7.0.0", - "rehype-pretty-code": "0.9.11", + "node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-events-to-acorn": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz", + "integrity": "sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/acorn": "^4.0.0", + "@types/estree": "^1.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.0.tgz", + "integrity": "sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mj-context-menu": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/mj-context-menu/-/mj-context-menu-0.6.1.tgz", + "integrity": "sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==" + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/next": { + "version": "14.1.4", + "resolved": "https://registry.npmjs.org/next/-/next-14.1.4.tgz", + "integrity": "sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==", + "dependencies": { + "@next/env": "14.1.4", + "@swc/helpers": "0.5.2", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "graceful-fs": "^4.2.11", + "postcss": "8.4.31", + "styled-jsx": "5.1.1" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=18.17.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "14.1.4", + "@next/swc-darwin-x64": "14.1.4", + "@next/swc-linux-arm64-gnu": "14.1.4", + "@next/swc-linux-arm64-musl": "14.1.4", + "@next/swc-linux-x64-gnu": "14.1.4", + "@next/swc-linux-x64-musl": "14.1.4", + "@next/swc-win32-arm64-msvc": "14.1.4", + "@next/swc-win32-ia32-msvc": "14.1.4", + "@next/swc-win32-x64-msvc": "14.1.4" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next-themes": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.2.1.tgz", + "integrity": "sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==", + "peerDependencies": { + "next": "*", + "react": "*", + "react-dom": "*" + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/nextra": { + "version": "3.0.0-alpha.22", + "resolved": "https://registry.npmjs.org/nextra/-/nextra-3.0.0-alpha.22.tgz", + "integrity": "sha512-4V1kLs0MiQ1KE/Dh1cnLc100Ibyo/PY46v1NdRzrYe7uzCBcSGTiG9OwHTE/34wUwbM5N7TptiDOlV79BBZ0Ng==", + "dependencies": { + "@headlessui/react": "^1.7.17", + "@mdx-js/mdx": "^3.0.0", + "@mdx-js/react": "^3.0.0", + "@napi-rs/simple-git": "^0.1.9", + "@shikijs/twoslash": "^1.0.0", + "@theguild/remark-mermaid": "^0.0.5", + "@theguild/remark-npm2yarn": "0.3.0", + "better-react-mathjax": "^2.0.3", + "clsx": "^2.0.0", + "estree-util-to-js": "^2.0.0", + "estree-util-value-to-estree": "^3.0.1", + "github-slugger": "^2.0.0", + "graceful-fs": "^4.2.11", + "gray-matter": "^4.0.3", + "hast-util-to-estree": "^3.1.0", + "katex": "^0.16.9", + "p-limit": "^4.0.0", + "rehype-katex": "^7.0.0", + "rehype-pretty-code": "0.13.0", "rehype-raw": "^7.0.0", - "remark-gfm": "^3.0.1", - "remark-math": "^5.1.1", + "remark-frontmatter": "^5.0.0", + "remark-gfm": "^4.0.0", + "remark-math": "^6.0.0", "remark-reading-time": "^2.0.1", - "shiki": "^0.14.3", - "slash": "^3.0.0", + "remark-smartypants": "^2.1.0", + "shiki": "^1.0.0", + "slash": "^5.1.0", "title": "^3.5.3", "unist-util-remove": "^4.0.0", "unist-util-visit": "^5.0.0", + "yaml": "^2.3.2", + "zod": "^3.22.3", + "zod-validation-error": "^1.5.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "next": ">=13", + "react": ">=16.13.1", + "react-dom": ">=16.13.1" + } + }, + "node_modules/nextra-theme-docs": { + "version": "3.0.0-alpha.22", + "resolved": "https://registry.npmjs.org/nextra-theme-docs/-/nextra-theme-docs-3.0.0-alpha.22.tgz", + "integrity": "sha512-MKFSDjslUE086KqWE/5gYK3wri2N+SEpQRfYBF2GNrvg7ksSUjXVzyuYQHZ5moQiCEYAS59T13zwhkfCITaPVQ==", + "dependencies": { + "@headlessui/react": "^1.7.17", + "@popperjs/core": "^2.11.8", + "clsx": "^2.0.0", + "escape-string-regexp": "^5.0.0", + "flexsearch": "^0.7.43", + "focus-visible": "^5.2.0", + "intersection-observer": "^0.12.2", + "next-themes": "^0.2.1", + "scroll-into-view-if-needed": "^3.1.0", "zod": "^3.22.3" }, + "peerDependencies": { + "next": ">=13", + "nextra": "3.0.0-alpha.22", + "react": ">=16.13.1", + "react-dom": ">=16.13.1" + } + }, + "node_modules/nlcst-to-string": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-3.1.1.tgz", + "integrity": "sha512-63mVyqaqt0cmn2VcI2aH6kxe1rLAmSROqHMA0i4qqg1tidkfExgpb0FGMikMCn86mw5dFtBtEANfmSSK7TjNHw==", + "dependencies": { + "@types/nlcst": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/non-layered-tidy-tree-layout": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz", + "integrity": "sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-to-yarn": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/npm-to-yarn/-/npm-to-yarn-2.2.1.tgz", + "integrity": "sha512-O/j/ROyX0KGLG7O6Ieut/seQ0oiTpHF2tXAcFbpdTLQFiaNtkyTXXocM1fwpaa60dg1qpWj0nHlbNhx6qwuENQ==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/nebrelbug/npm-to-yarn?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dependencies": { + "yocto-queue": "^1.0.0" + }, "engines": { - "node": ">=16" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-entities": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", + "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + }, + "node_modules/parse-latin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-5.0.1.tgz", + "integrity": "sha512-b/K8ExXaWC9t34kKeDV8kGXBkXZ1HCSAZRYE7HR14eA1GlXX5L8iWhs8USJNhQU9q5ci413jCKF0gOyovvyRBg==", + "dependencies": { + "nlcst-to-string": "^3.0.0", + "unist-util-modify-children": "^3.0.0", + "unist-util-visit-children": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-numeric-range": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", + "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==" + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" }, "peerDependencies": { - "next": ">=9.5.3", - "react": ">=16.13.1", - "react-dom": ">=16.13.1" + "postcss": "^8.0.0" } }, - "node_modules/nextra-theme-docs": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/nextra-theme-docs/-/nextra-theme-docs-2.13.2.tgz", - "integrity": "sha512-yE4umXaImp1/kf/sFciPj2+EFrNSwd9Db26hi98sIIiujzGf3+9eUgAz45vF9CwBw50FSXxm1QGRcY+slQ4xQQ==", + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, "dependencies": { - "@headlessui/react": "^1.7.10", - "@popperjs/core": "^2.11.6", - "clsx": "^2.0.0", - "escape-string-regexp": "^5.0.0", - "flexsearch": "^0.7.31", - "focus-visible": "^5.2.0", - "git-url-parse": "^13.1.0", - "intersection-observer": "^0.12.2", - "match-sorter": "^6.3.1", - "next-seo": "^6.0.0", - "next-themes": "^0.2.1", - "scroll-into-view-if-needed": "^3.0.0", - "zod": "^3.22.3" + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" }, "peerDependencies": { - "next": ">=9.5.3", - "nextra": "2.13.2", - "react": ">=16.13.1", - "react-dom": ">=16.13.1" + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", + "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/property-information": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.4.1.tgz", + "integrity": "sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" } }, - "node_modules/non-layered-tidy-tree-layout": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz", - "integrity": "sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==" + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, - "node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, "dependencies": { - "path-key": "^2.0.0" + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" }, "engines": { - "node": ">=4" + "node": ">=8.10.0" } }, - "node_modules/npm-to-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/npm-to-yarn/-/npm-to-yarn-2.1.0.tgz", - "integrity": "sha512-2C1IgJLdJngq1bSER7K7CGFszRr9s2rijEwvENPEgI0eK9xlD3tNwDc0UJnRj7FIT2aydWm72jB88uVswAhXHA==", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node_modules/reading-time": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz", + "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==" + }, + "node_modules/rehype-katex": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rehype-katex/-/rehype-katex-7.0.0.tgz", + "integrity": "sha512-h8FPkGE00r2XKU+/acgqwWUlyzve1IiOKwsEkg4pDL3k48PiE0Pt+/uLtVHDVkN1yA4iurZN6UES8ivHVEQV6Q==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/katex": "^0.16.0", + "hast-util-from-html-isomorphic": "^2.0.0", + "hast-util-to-text": "^4.0.0", + "katex": "^0.16.0", + "unist-util-visit-parents": "^6.0.0", + "vfile": "^6.0.0" }, "funding": { - "url": "https://github.com/nebrelbug/npm-to-yarn?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" + "node_modules/rehype-parse": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-9.0.0.tgz", + "integrity": "sha512-WG7nfvmWWkCR++KEkZevZb/uw41E8TsH4DsY9UxsTbIXCVGbAs4S+r8FrQ+OtH5EEQAs+5UxKC42VinkmpA1Yw==", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-from-html": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "node_modules/rehype-pretty-code": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/rehype-pretty-code/-/rehype-pretty-code-0.13.0.tgz", + "integrity": "sha512-+22dz1StXlF7dlMyOySNaVxgcGhMI4BCxq0JxJJPWYGiKsI6cu5jyuIKGHXHvH18D8sv1rdKtvsY9UEfN3++SQ==", + "dependencies": { + "@types/hast": "^3.0.4", + "hast-util-to-string": "^3.0.0", + "parse-numeric-range": "^1.3.0", + "rehype-parse": "^9.0.0", + "unified": "^11.0.4", + "unist-util-visit": "^5.0.0" + }, "engines": { - "node": ">=4" + "node": ">=18" + }, + "peerDependencies": { + "shiki": "^1.0.0" } }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/rehype-raw": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/parse-entities": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", - "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", + "node_modules/remark-frontmatter": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz", + "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==", "dependencies": { - "@types/unist": "^2.0.0", - "character-entities": "^2.0.0", - "character-entities-legacy": "^3.0.0", - "character-reference-invalid": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "is-alphanumerical": "^2.0.0", - "is-decimal": "^2.0.0", - "is-hexadecimal": "^2.0.0" + "@types/mdast": "^4.0.0", + "mdast-util-frontmatter": "^2.0.0", + "micromark-extension-frontmatter": "^2.0.0", + "unified": "^11.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/parse-numeric-range": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", - "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==" + "node_modules/remark-gfm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", + "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/parse-path": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.0.0.tgz", - "integrity": "sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==", + "node_modules/remark-math": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-6.0.0.tgz", + "integrity": "sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==", "dependencies": { - "protocols": "^2.0.0" + "@types/mdast": "^4.0.0", + "mdast-util-math": "^3.0.0", + "micromark-extension-math": "^3.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/parse-url": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz", - "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==", + "node_modules/remark-mdx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.0.1.tgz", + "integrity": "sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==", "dependencies": { - "parse-path": "^7.0.0" + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", "dependencies": { - "entities": "^4.4.0" + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" }, "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/path-key": { + "node_modules/remark-reading-time": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "resolved": "https://registry.npmjs.org/remark-reading-time/-/remark-reading-time-2.0.1.tgz", + "integrity": "sha512-fy4BKy9SRhtYbEHvp6AItbRTnrhiDGbqLQTSYVbQPGuRCncU1ubSsh9p/W5QZSxtYcUXv8KGL0xBgPLyNJA1xw==", + "dependencies": { + "estree-util-is-identifier-name": "^2.0.0", + "estree-util-value-to-estree": "^1.3.0", + "reading-time": "^1.3.0", + "unist-util-visit": "^3.1.0" + } + }, + "node_modules/remark-reading-time/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + }, + "node_modules/remark-reading-time/node_modules/estree-util-is-identifier-name": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.1.0.tgz", + "integrity": "sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-reading-time/node_modules/estree-util-value-to-estree": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-1.3.0.tgz", + "integrity": "sha512-Y+ughcF9jSUJvncXwqRageavjrNPAI+1M/L3BI3PyLp1nmgYTGUXU6t5z1Y7OWuThoDdhPME07bQU+d5LxdJqw==", + "dependencies": { + "is-plain-obj": "^3.0.0" + }, "engines": { - "node": ">=4" + "node": ">=12.0.0" } }, - "node_modules/periscopic": { + "node_modules/remark-reading-time/node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/remark-reading-time/node_modules/unist-util-is": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-reading-time/node_modules/unist-util-visit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", - "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz", + "integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==", "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^3.0.0", - "is-reference": "^3.0.0" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "node_modules/remark-reading-time/node_modules/unist-util-visit-parents": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz", + "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/remark-rehype": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.0.tgz", + "integrity": "sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==", "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-smartypants": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/remark-smartypants/-/remark-smartypants-2.1.0.tgz", + "integrity": "sha512-qoF6Vz3BjU2tP6OfZqHOvCU0ACmu/6jhGaINSQRI9mM7wCxNQTKB3JUAN4SVoN2ybElEDTxBIABRep7e569iJw==", + "dependencies": { + "retext": "^8.1.0", + "retext-smartypants": "^5.2.0", + "unist-util-visit": "^5.0.0" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/property-information": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.4.0.tgz", - "integrity": "sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==", + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/protocols": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz", - "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==" - }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" - }, - "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "node_modules/retext": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/retext/-/retext-8.1.0.tgz", + "integrity": "sha512-N9/Kq7YTn6ZpzfiGW45WfEGJqFf1IM1q8OsRa1CGzIebCJBNCANDRmOrholiDRGKo/We7ofKR4SEvcGAWEMD3Q==", "dependencies": { - "loose-envify": "^1.1.0" + "@types/nlcst": "^1.0.0", + "retext-latin": "^3.0.0", + "retext-stringify": "^3.0.0", + "unified": "^10.0.0" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "node_modules/retext-latin": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/retext-latin/-/retext-latin-3.1.0.tgz", + "integrity": "sha512-5MrD1tuebzO8ppsja5eEu+ZbBeUNCjoEarn70tkXOS7Bdsdf6tNahsv2bY0Z8VooFF6cw7/6S+d3yI/TMlMVVQ==", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "@types/nlcst": "^1.0.0", + "parse-latin": "^5.0.0", + "unherit": "^3.0.0", + "unified": "^10.0.0" }, - "peerDependencies": { - "react": "^18.2.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/reading-time": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz", - "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==" - }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + "node_modules/retext-latin/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" }, - "node_modules/rehype-katex": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/rehype-katex/-/rehype-katex-7.0.0.tgz", - "integrity": "sha512-h8FPkGE00r2XKU+/acgqwWUlyzve1IiOKwsEkg4pDL3k48PiE0Pt+/uLtVHDVkN1yA4iurZN6UES8ivHVEQV6Q==", + "node_modules/retext-latin/node_modules/unified": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", + "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", "dependencies": { - "@types/hast": "^3.0.0", - "@types/katex": "^0.16.0", - "hast-util-from-html-isomorphic": "^2.0.0", - "hast-util-to-text": "^4.0.0", - "katex": "^0.16.0", - "unist-util-visit-parents": "^6.0.0", - "vfile": "^6.0.0" + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/rehype-katex/node_modules/@types/hast": { + "node_modules/retext-latin/node_modules/unist-util-stringify-position": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", "dependencies": { - "@types/unist": "*" + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/rehype-katex/node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" - }, - "node_modules/rehype-katex/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "node_modules/retext-latin/node_modules/vfile": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", "dependencies": { - "@types/unist": "^3.0.0" + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/rehype-katex/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "node_modules/retext-latin/node_modules/vfile-message": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", + "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/rehype-pretty-code": { - "version": "0.9.11", - "resolved": "https://registry.npmjs.org/rehype-pretty-code/-/rehype-pretty-code-0.9.11.tgz", - "integrity": "sha512-Eq90eCYXQJISktfRZ8PPtwc5SUyH6fJcxS8XOMnHPUQZBtC6RYo67gGlley9X2nR8vlniPj0/7oCDEYHKQa/oA==", + "node_modules/retext-smartypants": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-5.2.0.tgz", + "integrity": "sha512-Do8oM+SsjrbzT2UNIKgheP0hgUQTDDQYyZaIY3kfq0pdFzoPk+ZClYJ+OERNXveog4xf1pZL4PfRxNoVL7a/jw==", "dependencies": { - "@types/hast": "^2.0.0", - "hash-obj": "^4.0.0", - "parse-numeric-range": "^1.3.0" + "@types/nlcst": "^1.0.0", + "nlcst-to-string": "^3.0.0", + "unified": "^10.0.0", + "unist-util-visit": "^4.0.0" }, - "engines": { - "node": ">=16" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-smartypants/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + }, + "node_modules/retext-smartypants/node_modules/unified": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", + "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "dependencies": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" }, - "peerDependencies": { - "shiki": "*" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/rehype-raw": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", - "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "node_modules/retext-smartypants/node_modules/unist-util-is": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", "dependencies": { - "@types/hast": "^3.0.0", - "hast-util-raw": "^9.0.0", - "vfile": "^6.0.0" + "@types/unist": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/rehype-raw/node_modules/@types/hast": { + "node_modules/retext-smartypants/node_modules/unist-util-stringify-position": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", "dependencies": { - "@types/unist": "*" + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/rehype-raw/node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" - }, - "node_modules/rehype-raw/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "node_modules/retext-smartypants/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", "dependencies": { - "@types/unist": "^3.0.0" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/rehype-raw/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "node_modules/retext-smartypants/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-gfm": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", - "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", + "node_modules/retext-smartypants/node_modules/vfile": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-gfm": "^2.0.0", - "micromark-extension-gfm": "^2.0.0", - "unified": "^10.0.0" + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-math": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-5.1.1.tgz", - "integrity": "sha512-cE5T2R/xLVtfFI4cCePtiRn+e6jKMtFDR3P8V3qpv8wpKjwvHoBA4eJzvX+nVrnlNy0911bdGmuspCSwetfYHw==", + "node_modules/retext-smartypants/node_modules/vfile-message": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", + "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-math": "^2.0.0", - "micromark-extension-math": "^2.0.0", - "unified": "^10.0.0" + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-mdx": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-2.3.0.tgz", - "integrity": "sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g==", + "node_modules/retext-stringify": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/retext-stringify/-/retext-stringify-3.1.0.tgz", + "integrity": "sha512-767TLOaoXFXyOnjx/EggXlb37ZD2u4P1n0GJqVdpipqACsQP+20W+BNpMYrlJkq7hxffnFk+jc6mAK9qrbuB8w==", "dependencies": { - "mdast-util-mdx": "^2.0.0", - "micromark-extension-mdxjs": "^1.0.0" + "@types/nlcst": "^1.0.0", + "nlcst-to-string": "^3.0.0", + "unified": "^10.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-parse": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz", - "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==", + "node_modules/retext-stringify/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + }, + "node_modules/retext-stringify/node_modules/unified": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", + "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "unified": "^10.0.0" + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-reading-time": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-reading-time/-/remark-reading-time-2.0.1.tgz", - "integrity": "sha512-fy4BKy9SRhtYbEHvp6AItbRTnrhiDGbqLQTSYVbQPGuRCncU1ubSsh9p/W5QZSxtYcUXv8KGL0xBgPLyNJA1xw==", + "node_modules/retext-stringify/node_modules/unist-util-stringify-position": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", "dependencies": { - "estree-util-is-identifier-name": "^2.0.0", - "estree-util-value-to-estree": "^1.3.0", - "reading-time": "^1.3.0", - "unist-util-visit": "^3.1.0" + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-reading-time/node_modules/unist-util-visit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz", - "integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==", + "node_modules/retext-stringify/node_modules/vfile": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^4.0.0" + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-reading-time/node_modules/unist-util-visit-parents": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz", - "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==", + "node_modules/retext-stringify/node_modules/vfile-message": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", + "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" + "unist-util-stringify-position": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-rehype": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", - "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", + "node_modules/retext/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + }, + "node_modules/retext/node_modules/unified": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", + "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", "dependencies": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-to-hast": "^12.1.0", - "unified": "^10.0.0" + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-rehype/node_modules/mdast-util-to-hast": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz", - "integrity": "sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==", + "node_modules/retext/node_modules/unist-util-stringify-position": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", "dependencies": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-definitions": "^5.0.0", - "micromark-util-sanitize-uri": "^1.1.0", - "trim-lines": "^3.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" + "@types/unist": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-rehype/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "node_modules/retext/node_modules/vfile": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-rehype/node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "node_modules/retext/node_modules/vfile-message": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", + "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" + "unist-util-stringify-position": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remove-accents": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.2.tgz", - "integrity": "sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA==" + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } }, "node_modules/robust-predicates": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", @@ -4453,68 +5932,52 @@ "integrity": "sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==" }, "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, "dependencies": { - "shebang-regex": "^1.0.0" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/shiki": { - "version": "0.14.6", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.6.tgz", - "integrity": "sha512-R4koBBlQP33cC8cpzX0hAoOURBHJILp4Aaduh2eYi+Vj8ZBqtK/5SWNEHBS3qwUMu8dqOtI/ftno3ESfNeVW9g==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.2.1.tgz", + "integrity": "sha512-u+XW6o0vCkUNlneZb914dLO+AayEIwK5tI62WeS//R5HIXBFiYaj/Hc5xcq27Yh83Grr4JbNtUBV8W6zyK4hWg==", "dependencies": { - "ansi-sequence-parser": "^1.1.0", - "jsonc-parser": "^3.2.0", - "vscode-oniguruma": "^1.7.0", - "vscode-textmate": "^8.0.0" + "@shikijs/core": "1.2.1" } }, "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/sort-keys": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-5.0.0.tgz", - "integrity": "sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==", - "dependencies": { - "is-plain-obj": "^4.0.0" - }, + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, "engines": { - "node": ">=12" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/sort-keys/node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "engines": { - "node": ">=12" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -4529,9 +5992,9 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "engines": { "node": ">=0.10.0" } @@ -4545,6 +6008,27 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/speech-rule-engine": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/speech-rule-engine/-/speech-rule-engine-4.0.7.tgz", + "integrity": "sha512-sJrL3/wHzNwJRLBdf6CjJWIlxC04iYKkyXvYSVsWVOiC2DSkHmxsqOhEeMsBA9XK+CHuNcsdkbFDnoUfAsmp9g==", + "dependencies": { + "commander": "9.2.0", + "wicked-good-xpath": "1.3.0", + "xmldom-sre": "0.1.31" + }, + "bin": { + "sre": "bin/sre" + } + }, + "node_modules/speech-rule-engine/node_modules/commander": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", + "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==", + "engines": { + "node": "^12.20.0 || >=14" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -4558,6 +6042,65 @@ "node": ">=10.0.0" } }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/stringify-entities": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz", @@ -4571,6 +6114,43 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", @@ -4618,9 +6198,40 @@ } }, "node_modules/stylis": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.0.tgz", - "integrity": "sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==" + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.1.tgz", + "integrity": "sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==" + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } }, "node_modules/supports-color": { "version": "4.5.0", @@ -4633,6 +6244,76 @@ "node": ">=4" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", + "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/title": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/title/-/title-3.5.3.tgz", @@ -4647,6 +6328,11 @@ "title": "bin/title.js" } }, + "node_modules/title/node_modules/arg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/arg/-/arg-1.0.0.tgz", + "integrity": "sha512-Wk7TEzl1KqvTGs/uyhmHO/3XLd3t1UeU4IstvPXVzGPM522cTjqjNZ99esCkcL52sjqjo8e8CTBcWhkxvGzoAw==" + }, "node_modules/titleize": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/titleize/-/titleize-1.0.0.tgz", @@ -4655,6 +6341,18 @@ "node": ">=0.10.0" } }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", @@ -4665,9 +6363,9 @@ } }, "node_modules/trough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4681,51 +6379,74 @@ "node": ">=6.10" } }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, - "node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "engines": { - "node": ">=10" + "node_modules/twoslash": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/twoslash/-/twoslash-0.2.5.tgz", + "integrity": "sha512-U8rqsfVh8jQMO1NJekUtglb52b7xD9+FrzeFrgzpHsRTKl8IQgqnZP6ld4PeKaHXhLfoZPuju9K50NXJ7wom8g==", + "dependencies": { + "@typescript/vfs": "1.5.0", + "twoslash-protocol": "0.2.5" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/twoslash-protocol": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/twoslash-protocol/-/twoslash-protocol-0.2.5.tgz", + "integrity": "sha512-oUr5ZAn37CgNa6p1mrCuuR/pINffsnGCee2aS170Uj1IObxCjsHzu6sgdPUdxGLLn6++gd/qjNH1/iR6RrfLeg==" + }, + "node_modules/typescript": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz", + "integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unherit": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-3.0.1.tgz", + "integrity": "sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==", "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, "node_modules/unified": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", + "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", "dependencies": { - "@types/unist": "^2.0.0", + "@types/unist": "^3.0.0", "bail": "^2.0.0", + "devlop": "^1.0.0", "extend": "^3.0.0", - "is-buffer": "^2.0.0", "is-plain-obj": "^4.0.0", "trough": "^2.0.0", - "vfile": "^5.0.0" + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/unified/node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/unist-util-find-after": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", @@ -4739,12 +6460,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-find-after/node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" - }, - "node_modules/unist-util-find-after/node_modules/unist-util-is": { + "node_modules/unist-util-is": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", @@ -4756,33 +6472,30 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-generated": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz", - "integrity": "sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "node_modules/unist-util-modify-children": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-3.1.1.tgz", + "integrity": "sha512-yXi4Lm+TG5VG+qvokP6tpnk+r1EPwyYL04JWDxLvgvPV40jANh7nm3udk65OOWquvbMDe+PL9+LmkxDpTv/7BA==", "dependencies": { - "@types/unist": "^2.0.0" + "@types/unist": "^2.0.0", + "array-iterate": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-modify-children/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + }, "node_modules/unist-util-position": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz", - "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", "dependencies": { - "@types/unist": "^2.0.0" + "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", @@ -4790,11 +6503,11 @@ } }, "node_modules/unist-util-position-from-estree": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-1.1.2.tgz", - "integrity": "sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", + "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", "dependencies": { - "@types/unist": "^2.0.0" + "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", @@ -4828,34 +6541,12 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-remove-position/node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" - }, - "node_modules/unist-util-remove/node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" - }, - "node_modules/unist-util-remove/node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/unist-util-stringify-position": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", - "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", "dependencies": { - "@types/unist": "^2.0.0" + "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", @@ -4876,53 +6567,72 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "node_modules/unist-util-visit-children": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-2.0.2.tgz", + "integrity": "sha512-+LWpMFqyUwLGpsQxpumsQ9o9DG2VGLFrpz+rpVXYIEdPy57GSy5HioC0g3bg/8WP9oCLlapQtklOzQ8uLS496Q==", "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" + "@types/unist": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-visit-parents/node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + "node_modules/unist-util-visit-children/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" }, - "node_modules/unist-util-visit-parents/node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", "dependencies": { - "@types/unist": "^3.0.0" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-visit/node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" - }, - "node_modules/unist-util-visit/node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "@types/unist": "^3.0.0" + "escalade": "^3.1.1", + "picocolors": "^1.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, "node_modules/uuid": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", @@ -4953,14 +6663,13 @@ } }, "node_modules/vfile": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", - "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", + "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" }, "funding": { "type": "opencollective", @@ -4980,155 +6689,180 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/vfile-location/node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" - }, - "node_modules/vfile-location/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", "dependencies": { - "@types/unist": "^3.0.0" + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/vfile-location/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/vfile-matter": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/vfile-matter/-/vfile-matter-3.0.1.tgz", - "integrity": "sha512-CAAIDwnh6ZdtrqAuxdElUqQRQDQgbbIrYtDYI8gCjXS1qQ+1XdLoK8FIZWxJwn0/I+BkSSZpar3SOgjemQz4fg==", + "node_modules/web-worker": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.3.0.tgz", + "integrity": "sha512-BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA==" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, "dependencies": { - "@types/js-yaml": "^4.0.0", - "is-buffer": "^2.0.0", - "js-yaml": "^4.0.0" + "isexe": "^2.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/vfile-matter/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "node_modules/wicked-good-xpath": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/wicked-good-xpath/-/wicked-good-xpath-1.3.0.tgz", + "integrity": "sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==" }, - "node_modules/vfile-matter/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, "dependencies": { - "argparse": "^2.0.1" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/vfile-message/node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/vfile-message/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "@types/unist": "^3.0.0" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/vfile/node_modules/vfile-message": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", - "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "color-name": "~1.1.4" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/vscode-oniguruma": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==" + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/vscode-textmate": { + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", - "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==" + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=10.13.0" + "node": ">=8" } }, - "node_modules/web-namespaces": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", - "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/web-worker": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.2.0.tgz", - "integrity": "sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA==" - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" }, - "bin": { - "which": "bin/which" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/xmldom-sre": { + "version": "0.1.31", + "resolved": "https://registry.npmjs.org/xmldom-sre/-/xmldom-sre-0.1.31.tgz", + "integrity": "sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw==", + "engines": { + "node": ">=0.1" } }, "node_modules/yallist": { @@ -5136,12 +6870,23 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" }, + "node_modules/yaml": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", + "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", "engines": { - "node": ">=10" + "node": ">=12.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -5155,6 +6900,17 @@ "url": "https://github.com/sponsors/colinhacks" } }, + "node_modules/zod-validation-error": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-1.5.0.tgz", + "integrity": "sha512-/7eFkAI4qV0tcxMBB/3+d2c1P6jzzZYdYSlBuAklzMuCrJu5bzJfHS0yVAS87dRHVlhftd6RFJDIvv03JgkSbw==", + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "zod": "^3.18.0" + } + }, "node_modules/zwitch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", diff --git a/docs/package.json b/docs/package.json index 7032951bd..bb43fcd77 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,5 +1,6 @@ { "name": "docs-website", + "type": "module", "private": "true", "version": "0.0.0", "description": "", @@ -15,11 +16,22 @@ "@fortawesome/free-brands-svg-icons": "^6.5.1", "@fortawesome/free-solid-svg-icons": "^6.5.1", "@fortawesome/react-fontawesome": "^0.2.0", - "@vercel/analytics": "^1.1.1", - "next": "^14.0.4", - "nextra": "^2.13.2", - "nextra-theme-docs": "^2.13.2", + "@vercel/analytics": "^1.2.2", + "next": "^14.1.4", + "nextra": "3.0.0-alpha.22", + "nextra-theme-docs": "3.0.0-alpha.22", "react": "^18.2.0", "react-dom": "^18.2.0" + }, + "devDependencies": { + "autoprefixer": "^10.4.19", + "postcss": "^8.4.38", + "tailwindcss": "^3.4.1" + }, + "postcss": { + "plugins": { + "tailwindcss": {}, + "autoprefixer": {} + } } } diff --git a/docs/pages/_app.mdx b/docs/pages/_app.tsx similarity index 60% rename from docs/pages/_app.mdx rename to docs/pages/_app.tsx index 08eb2ce8f..01977a1f3 100644 --- a/docs/pages/_app.mdx +++ b/docs/pages/_app.tsx @@ -1,7 +1,10 @@ import { Analytics } from '@vercel/analytics/react'; -import '../styles.css'; +import '../global.css'; export default function App({ Component, pageProps }) { + if (process.env.NEXT_PUBLIC_VERCEL_ENV !== 'production') { + return ; + } return ( <> diff --git a/docs/pages/_meta.js b/docs/pages/_meta.js new file mode 100644 index 000000000..25972bda8 --- /dev/null +++ b/docs/pages/_meta.js @@ -0,0 +1,25 @@ +export default { + index: { + title: 'Homepage', + type: 'page', + display: 'hidden', + theme: { + breadcrumb: false, + sidebar: false, + footer: false, + layout: 'raw', + }, + }, + docs: { + type: 'page', + title: 'Documentation', + }, + plugins: { + title: 'Related Plugins', + type: 'page', + }, + 'api-docs': { + type: 'page', + title: 'API', + }, +}; diff --git a/docs/pages/_meta.json b/docs/pages/_meta.json deleted file mode 100644 index f83c3627b..000000000 --- a/docs/pages/_meta.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "index": "Introduction", - "quick-start": "", - "options": "", - "guide": "Guide", - "v4-migration": "", - "-- RelatedPlugin": { - "type": "separator", - "title": "Related Plugins" - }, - "utilities": "Utilities", - "themes": "Themes", - "integrations": "Integrations" -} diff --git a/docs/pages/api-docs/Class.MarkdownPageEvent.md b/docs/pages/api-docs/Class.MarkdownPageEvent.md new file mode 100644 index 000000000..95eef0819 --- /dev/null +++ b/docs/pages/api-docs/Class.MarkdownPageEvent.md @@ -0,0 +1,83 @@ +# MarkdownPageEvent + +An event emitted by before and after the markup of a page is rendered. + +## Usage + +```ts +export function load(app: MarkdownAppication) { + app.renderer.on(MarkdownPageEvent.END, (event: MarkdownPageEvent) => { + events.contents = event.contents.replace('foo', 'bar'); + }); +}); +``` + +## Extends + +- [`Event`](https://typedoc.org/api/classes/Event.html) + +## Properties + +### project + +> **project**: [`ProjectReflection`](https://typedoc.org/api/classes/Models.ProjectReflection.html) + +The project the renderer is currently processing. + +*** + +### model + +> **`readonly`** **model**: `Model` + +The model that should be rendered on this page. + +*** + +### url + +> **url**: `string` + +The url this page will be located at. + +*** + +### filename + +> **filename**: `string` + +The filename the page will be written to. + +*** + +### contents? + +> **`optional`** **contents**: `string` + +The final markdown content of this page. + +Should be rendered by layout templates and can be modified by plugins. + +*** + +### frontmatter? + +> **`optional`** **frontmatter**: `Record`\<`string`, `any`\> + +The frontmatter of this page represented as a key value object. This property can be utilised by other plugins. + +## Events + +### BEGIN + +> **`static`** **`readonly`** **BEGIN**: `"beginPage"` = `'beginPage'` + +Triggered before a document will be rendered. + +*** + +### END + +> **`static`** **`readonly`** **END**: `"endPage"` = `'endPage'` + +Triggered after a document has been rendered, just before it is written to disc. diff --git a/docs/pages/api-docs/Class.MarkdownRendererEvent.md b/docs/pages/api-docs/Class.MarkdownRendererEvent.md new file mode 100644 index 000000000..631e20082 --- /dev/null +++ b/docs/pages/api-docs/Class.MarkdownRendererEvent.md @@ -0,0 +1,63 @@ +# MarkdownRendererEvent + +An event emitted at the beginning and end of the rendering process. + +## Usage + +```ts +app.renderer.on(MarkdownRendererEvent.BEGIN, (event) => { + console.log(`Render Starting for ${event.project.name}!`); +}); +``` + +## Extends + +- [`Event`](https://typedoc.org/api/classes/Event.html) + +## Properties + +### project + +> **`readonly`** **project**: [`ProjectReflection`](https://typedoc.org/api/classes/Models.ProjectReflection.html) + +The project the renderer is currently processing. + +*** + +### outputDirectory + +> **`readonly`** **outputDirectory**: `string` + +The path of the directory the documentation should be written to. + +*** + +### urls? + +> **`optional`** **urls**: [`UrlMapping`](/api-docs/Interface.UrlMapping.md)\<[`Reflection`](https://typedoc.org/api/classes/Models.Reflection.html)\>[] + +A list of all pages that should be generated. + +*** + +### navigation? + +> **`optional`** **navigation**: [`NavigationItem`](/api-docs/Interface.NavigationItem.md)[] + +The navigation structure of the project that can be utilised by plugins. + +## Events + +### BEGIN + +> **`static`** **`readonly`** **BEGIN**: `"beginRender"` = `'beginRender'` + +Triggered before the renderer starts rendering a project. + +*** + +### END + +> **`static`** **`readonly`** **END**: `"endRender"` = `'endRender'` + +Triggered after the renderer has written all documents. diff --git a/docs/pages/api-docs/Class.MarkdownTheme.md b/docs/pages/api-docs/Class.MarkdownTheme.md new file mode 100644 index 000000000..61537ea98 --- /dev/null +++ b/docs/pages/api-docs/Class.MarkdownTheme.md @@ -0,0 +1,114 @@ +# MarkdownTheme + +The main theme class for the plugin. + +The class controls how TypeDoc models are mapped to files and templates and extends TypeDoc's base Theme class. + +You would typically only be interested in overriding the the theme's render context instance. + +The API follows the implementation of [TypeDoc's custom theming](https://github.com/TypeStrong/typedoc/blob/master/internal-docs/custom-themes.md) with some minor adjustments. + +## Usage + +This code defines a new theme called "customTheme": + +```ts +import { MarkdownAppication, MarkdownRenderer, MarkdownTheme, MarkdownThemeRenderContext } from "typedoc-plugin-markdown"; + +export function load(app: MarkdownAppication) { + app.renderer.defineTheme("customTheme", MyMarkdownTheme); +} + +class MyMarkdownTheme extends MarkdownTheme { + + constructor(renderer: MarkdownRenderer) { + super(renderer); + } + + // Return a new render context + getRenderContext(page) { + return new MyMarkdownThemeRenderContext(this, page, this.application.options); + } + + }); +} +} + +class MyMarkdownThemeRenderContext extends MarkdownThemeRenderContext { + ... +} +``` + +The theme can then be consumed by the `theme` option: + +```shell +typedoc --plugin typedoc-plugin-markdown --theme customTheme +``` + +## Extends + +- [`Theme`](https://typedoc.org/api/classes/Theme.html) + +## Methods + +### getRenderContext() + +> **getRenderContext**(`page`: [`MarkdownPageEvent`](/api-docs/Class.MarkdownPageEvent.md)\<[`Reflection`](https://typedoc.org/api/classes/Models.Reflection.html)\>): [`MarkdownThemeRenderContext`](/api-docs/Class.MarkdownThemeRenderContext.md) + +Creates a new instance of the current theme context. + +This method can be overridden to provide an alternative theme context. + +#### Parameters + +| Parameter | Type | +| :------ | :------ | +| `page` | [`MarkdownPageEvent`](/api-docs/Class.MarkdownPageEvent.md)\<[`Reflection`](https://typedoc.org/api/classes/Models.Reflection.html)\> | + +#### Returns + +[`MarkdownThemeRenderContext`](/api-docs/Class.MarkdownThemeRenderContext.md) + +*** + +### getUrls() + +> **getUrls**(`project`: [`ProjectReflection`](https://typedoc.org/api/classes/Models.ProjectReflection.html)): [`UrlMapping`](/api-docs/Interface.UrlMapping.md)\<[`Reflection`](https://typedoc.org/api/classes/Models.Reflection.html)\>[] + +Maps the models of the given project to the desired output files. + +This method can be overriden to provide an alternative url structure. + +#### Parameters + +| Parameter | Type | +| :------ | :------ | +| `project` | [`ProjectReflection`](https://typedoc.org/api/classes/Models.ProjectReflection.html) | + +#### Returns + +[`UrlMapping`](/api-docs/Interface.UrlMapping.md)\<[`Reflection`](https://typedoc.org/api/classes/Models.Reflection.html)\>[] + +#### Overrides + +`Theme.getUrls` + +*** + +### getNavigation() + +> **getNavigation**(`project`: [`ProjectReflection`](https://typedoc.org/api/classes/Models.ProjectReflection.html)): [`NavigationItem`](/api-docs/Interface.NavigationItem.md)[] + +Map the models of the given project to a navigation structure. + +This method can be overriden to provide an alternative navigation structure. + +#### Parameters + +| Parameter | Type | +| :------ | :------ | +| `project` | [`ProjectReflection`](https://typedoc.org/api/classes/Models.ProjectReflection.html) | + +#### Returns + +[`NavigationItem`](/api-docs/Interface.NavigationItem.md)[] diff --git a/docs/pages/api-docs/Class.MarkdownThemeRenderContext.md b/docs/pages/api-docs/Class.MarkdownThemeRenderContext.md new file mode 100644 index 000000000..7b405c121 --- /dev/null +++ b/docs/pages/api-docs/Class.MarkdownThemeRenderContext.md @@ -0,0 +1,1177 @@ +# MarkdownThemeRenderContext + +The theme context class that is provided as context to every template. + +This class can be used to customize the theme output by extending the class and overriding the [templates](#templates), [partials](#partials) and [helpers](#helpers). + +## Usage + +```ts +class MyMarkdownThemeRenderContext extends MarkdownThemeRenderContext { + + // customise templates + templates = { + ...this.templates, + reflection: (model) => { + return `New template for ${model.name}!`; + }, + }; + + // customise partials + partials = { + ...this.partials, + header: (model) => { + return ` +# Welcome to custom header for ${this.page.project.name} project and ${model.name} model! +Use my new helper - ${this.helpers.newHelper()} + `; + }, + }; + + // customise helpers + helpers = { + ...this.helpers, + newHelper: () => { + return 'New helper!'; + }, + }; +} +``` + +## Properties + +### page + +> **`readonly`** **page**: [`MarkdownPageEvent`](/api-docs/Class.MarkdownPageEvent.md)\<[`Reflection`](https://typedoc.org/api/classes/Models.Reflection.html)\> + +The current page event. + +*** + +### options + +> **`readonly`** **options**: [`Options`](https://typedoc.org/api/classes/Configuration.Options.html) + +The options provided to the application. + +*** + +### textContentMappings + +> **`readonly`** **textContentMappings**: `Partial`\<[`TextContentMappings`](/api-docs/Interface.TextContentMappings.md)\> + +Holds the textmappings object of the theme. + +*** + +### packagesMetaData + +> **`readonly`** **packagesMetaData**: `Record`\<`string`, `Object`\> + +Holds meta data for individual packages (if entryPointStrategy equals `packages`). + +This is required for generating package specific documentation. + +## Resources + +Theme resources are the main building blocks for the theme context. They are split into three namespaces: `templates`, `partials` and `helpers`. + +### templates + +> **templates**: `Object` + +Then `templates` namespace holds the main templates for the theme and are mapped to single pages and configured in the MarkdownTheme. + +All templates return a string that is passed back to the renderer. Internally templates call partials and helpers. + +#### project() + +> **project**: () => `string` + +##### Returns + +`string` + +#### readme() + +> **readme**: () => `string` + +##### Returns + +`string` + +#### reflection() + +> **reflection**: () => `string` + +##### Returns + +`string` + +*** + +### partials + +> **partials**: `Object` + +Then `partials` namespace holds the partials for the theme and are used by templates to map speficic models to page output. + +Partials take a `model` param (that references a specific TypeDoc model) and an `options` param if required. + +All partials return a string and can call other partials and helpers. + +Partials are categorised by their use: + +- [Page Partials](#page-partials): Partials that render core page elements such as header and breadcrumbs. +- [Container Partials](#container-partials): Partials that are used to render reflection groups and categories. +- [Member Partials](#member-partials): Partials that render specific parts of reflections. +- [Comment Partials](#comment-partials): Partials that render comments. +- [Type Partials](#type-partials): Partials that render specific TypeDoc model types. + +#### Page Partials + +##### breadcrumbs() + +> **breadcrumbs**: () => `string` + +###### Returns + +`string` + +##### header() + +> **header**: () => `string` + +###### Returns + +`string` + +##### packagesIndex() + +> **packagesIndex**: (`model`: [`ProjectReflection`](https://typedoc.org/api/classes/Models.ProjectReflection.html)) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | [`ProjectReflection`](https://typedoc.org/api/classes/Models.ProjectReflection.html) | + +###### Returns + +`string` + +##### pageTitle() + +> **pageTitle**: () => `string` + +###### Returns + +`string` + +#### Container Partials + +##### body() + +> **body**: (`container`: `ContainerReflection`, `headingLevel`: `number`) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `container` | `ContainerReflection` | +| `headingLevel` | `number` | + +###### Returns + +`string` + +##### categories() + +> **categories**: (`model`: `ReflectionCategory`[], `headingLevel`: `number`) => `string` + +Renders a collection of reflection categories. + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | `ReflectionCategory`[] | +| `headingLevel` | `number` | + +###### Returns + +`string` + +##### groups() + +> **groups**: (`model`: [`ReflectionGroup`](https://typedoc.org/api/classes/Models.ReflectionGroup.html)[], `headingLevel`: `number`) => `string` + +Renders a collection of reflection groups. + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | [`ReflectionGroup`](https://typedoc.org/api/classes/Models.ReflectionGroup.html)[] | +| `headingLevel` | `number` | + +###### Returns + +`string` + +##### members() + +> **members**: (`model`: [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html)[], `headingLevel`: `number`) => `string` + +Renders a collection of members. + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html)[] | +| `headingLevel` | `number` | + +###### Returns + +`string` + +#### Member Partials + +##### accessor() + +> **accessor**: (`declaration`: [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html), `headingLevel`: `number`) => `string` + +Renders an accessor member. + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `declaration` | [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html) | +| `headingLevel` | `number` | + +###### Returns + +`string` + +##### constructor() + +> **constructor**: (`reflection`: [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html), `headingLevel`: `number`) => `string` + +Renders an constructor member. + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `reflection` | [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html) | +| `headingLevel` | `number` | + +###### Returns + +`string` + +##### declaration() + +> **declaration**: (`model`: [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html), `options`: `Object`) => `string` + +Renders a standard declaration member. + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html) | +| `options` | `Object` | +| `options.headingLevel` | `number` | +| `options.nested`? | `boolean` | + +###### Returns + +`string` + +##### declarationTitle() + +> **declarationTitle**: (`reflection`: [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html)) => `string` + +Remders a declaration title. + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `reflection` | [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html) | + +###### Returns + +`string` + +##### enumMembersTable() + +> **enumMembersTable**: (`props`: [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html)[]) => `string` + +Renders enum members as a table. + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `props` | [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html)[] | + +###### Returns + +`string` + +##### hierarchy() + +> **hierarchy**: (`model`: `DeclarationHierarchy`, `headingLevel`: `number`) => `string` + +Renders an declaration hierachy section. + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | `DeclarationHierarchy` | +| `headingLevel` | `number` | + +###### Returns + +`string` + +##### indexSignature() + +> **indexSignature**: (`signature`: `SignatureReflection`) => `string` + +Renders an index signature block + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `signature` | `SignatureReflection` | + +###### Returns + +`string` + +##### inheritance() + +> **inheritance**: (`reflection`: [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html) \| `SignatureReflection`, `headingLevel`: `number`) => `string` + +Renders an inheritance section. + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `reflection` | [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html) \| `SignatureReflection` | +| `headingLevel` | `number` | + +###### Returns + +`string` + +##### memberTitle() + +> **memberTitle**: (`reflection`: [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html)) => `string` + +Renders the main member title. + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `reflection` | [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html) | + +###### Returns + +`string` + +##### memberWithGroups() + +> **memberWithGroups**: (`model`: [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html), `headingLevel`: `number`) => `string` + +Renders a top-level member that contains group and child members such as Classes, Interfaces and Enums. + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html) | +| `headingLevel` | `number` | + +###### Returns + +`string` + +##### parametersList() + +> **parametersList**: (`parameters`: `ParameterReflection`[]) => `string` + +Renders parameters section as a list. + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `parameters` | `ParameterReflection`[] | + +###### Returns + +`string` + +##### parametersTable() + +> **parametersTable**: (`parameters`: `ParameterReflection`[]) => `string` + +Renders parameters section as a table. + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `parameters` | `ParameterReflection`[] | + +###### Returns + +`string` + +##### declarationsTable() + +> **declarationsTable**: (`props`: [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html)[], `isEventProps`: `boolean`) => `string` + +Renders a collection of properties in a table. + +There is no association list partial for properties as these are handled as a standard list of members. + +###### Parameters + +| Parameter | Type | Default value | +| :------ | :------ | :------ | +| `props` | [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html)[] | `undefined` | +| `isEventProps` | `boolean` | `false` | + +###### Returns + +`string` + +##### referenceMember() + +> **referenceMember**: (`props`: `ReferenceReflection`) => `string` + +Renders an reference member. + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `props` | `ReferenceReflection` | + +###### Returns + +`string` + +##### reflectionFlags() + +> **reflectionFlags**: (`reflection`: [`Reflection`](https://typedoc.org/api/classes/Models.Reflection.html)) => `string` + +Renders the flags of a reflection. + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `reflection` | [`Reflection`](https://typedoc.org/api/classes/Models.Reflection.html) | + +###### Returns + +`string` + +##### reflectionIndex() + +> **reflectionIndex**: (`reflection`: [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html) \| [`ProjectReflection`](https://typedoc.org/api/classes/Models.ProjectReflection.html), `headingLevel`: `number`) => `string` + +Renders the index section of a reflection. + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `reflection` | [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html) \| [`ProjectReflection`](https://typedoc.org/api/classes/Models.ProjectReflection.html) | +| `headingLevel` | `number` | + +###### Returns + +`string` + +##### signature() + +> **signature**: (`model`: `SignatureReflection`, `headingLevel`: `number`, `nested`: `boolean`, `accessor`?: `string`) => `string` + +Renders a signature member. + +###### Parameters + +| Parameter | Type | Default value | +| :------ | :------ | :------ | +| `model` | `SignatureReflection` | `undefined` | +| `headingLevel` | `number` | `undefined` | +| `nested` | `boolean` | `false` | +| `accessor`? | `string` | `undefined` | + +###### Returns + +`string` + +##### signatureParameters() + +> **signatureParameters**: (`parameters`: `ParameterReflection`[]) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `parameters` | `ParameterReflection`[] | + +###### Returns + +`string` + +##### signatureReturns() + +> **signatureReturns**: (`signature`: `SignatureReflection`, `headingLevel`: `number`) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `signature` | `SignatureReflection` | +| `headingLevel` | `number` | + +###### Returns + +`string` + +##### signatureTitle() + +> **signatureTitle**: (`signature`: `SignatureReflection`, `opts`?: `Object`) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `signature` | `SignatureReflection` | +| `opts`? | `Object` | +| `opts.accessor`? | `string` | +| `opts.includeType`? | `boolean` | + +###### Returns + +`string` + +##### sources() + +> **sources**: (`reflection`: [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html) \| `SignatureReflection`, `headingLevel`: `number`) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `reflection` | [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html) \| `SignatureReflection` | +| `headingLevel` | `number` | + +###### Returns + +`string` + +##### member() + +> **member**: (`model`: [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html), `headingLevel`: `number`, `nested`: `boolean`) => `string` + +###### Parameters + +| Parameter | Type | Default value | +| :------ | :------ | :------ | +| `model` | [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html) | `undefined` | +| `headingLevel` | `number` | `undefined` | +| `nested` | `boolean` | `false` | + +###### Returns + +`string` + +##### typeArguments() + +> **typeArguments**: (`model`: `SomeType`[], `foreCollpase`: `boolean`) => `string` + +å + +###### Parameters + +| Parameter | Type | Default value | +| :------ | :------ | :------ | +| `model` | `SomeType`[] | `undefined` | +| `foreCollpase` | `boolean` | `false` | + +###### Returns + +`string` + +##### typeDeclaration() + +> **typeDeclaration**: (`model`: [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html)[], `headingLevel`: `number`) => `string` + +å + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html)[] | +| `headingLevel` | `number` | + +###### Returns + +`string` + +##### typeDeclarationList() + +> **typeDeclarationList**: (`model`: [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html)[], `headingLevel`: `number`) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html)[] | +| `headingLevel` | `number` | + +###### Returns + +`string` + +##### typeDeclarationTable() + +> **typeDeclarationTable**: (`props`: [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html)[]) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `props` | [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html)[] | + +###### Returns + +`string` + +##### typeParametersList() + +> **typeParametersList**: (`typeParameters`: `TypeParameterReflection`[]) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `typeParameters` | `TypeParameterReflection`[] | + +###### Returns + +`string` + +##### typeParametersTable() + +> **typeParametersTable**: (`typeParameters`: `TypeParameterReflection`[]) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `typeParameters` | `TypeParameterReflection`[] | + +###### Returns + +`string` + +#### Comment Partials + +##### comment() + +> **comment**: (`model`: `Comment`, `options`: `Object`) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | `Comment` | +| `options` | `Object` | +| `options.headingLevel`? | `number` | +| `options.showSummary`? | `boolean` | +| `options.showTags`? | `boolean` | + +###### Returns + +`string` + +##### commentParts() + +> **commentParts**: (`model`: [`CommentDisplayPart`]( https://typedoc.org/api/types/Models.CommentDisplayPart.html )[]) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | [`CommentDisplayPart`]( https://typedoc.org/api/types/Models.CommentDisplayPart.html )[] | + +###### Returns + +`string` + +#### Type Partials + +##### arrayType() + +> **arrayType**: (`model`: `ArrayType`) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | `ArrayType` | + +###### Returns + +`string` + +##### conditionalType() + +> **conditionalType**: (`model`: `ConditionalType`) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | `ConditionalType` | + +###### Returns + +`string` + +##### indexAccessType() + +> **indexAccessType**: (`model`: `IndexedAccessType`) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | `IndexedAccessType` | + +###### Returns + +`string` + +##### inferredType() + +> **inferredType**: (`model`: `InferredType`) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | `InferredType` | + +###### Returns + +`string` + +##### intersectionType() + +> **intersectionType**: (`model`: `IntersectionType`) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | `IntersectionType` | + +###### Returns + +`string` + +##### intrinsicType() + +> **intrinsicType**: (`model`: `IntrinsicType`) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | `IntrinsicType` | + +###### Returns + +`string` + +##### literalType() + +> **literalType**: (`model`: `LiteralType`) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | `LiteralType` | + +###### Returns + +`string` + +##### namedTupleType() + +> **namedTupleType**: (`model`: `NamedTupleMember`) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | `NamedTupleMember` | + +###### Returns + +`string` + +##### queryType() + +> **queryType**: (`model`: `QueryType`) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | `QueryType` | + +###### Returns + +`string` + +##### referenceType() + +> **referenceType**: (`model`: `ReferenceType`) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | `ReferenceType` | + +###### Returns + +`string` + +##### declarationType() + +> **declarationType**: (`model`: [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html)) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html) | + +###### Returns + +`string` + +##### functionType() + +> **functionType**: (`signatures`: `SignatureReflection`[], `forceParameterType`: `boolean`) => `string` + +###### Parameters + +| Parameter | Type | Default value | +| :------ | :------ | :------ | +| `signatures` | `SignatureReflection`[] | `undefined` | +| `forceParameterType` | `boolean` | `false` | + +###### Returns + +`string` + +##### reflectionType() + +> **reflectionType**: (`model`: `ReflectionType`, `foreCollpase`: `boolean`) => `string` + +###### Parameters + +| Parameter | Type | Default value | +| :------ | :------ | :------ | +| `model` | `ReflectionType` | `undefined` | +| `foreCollpase` | `boolean` | `false` | + +###### Returns + +`string` + +##### someType() + +> **someType**: (`model`: `SomeType`) => `string` + +Takes a generic Type and returns the appropriate partial for it. + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | `SomeType` | + +###### Returns + +`string` + +##### tupleType() + +> **tupleType**: (`model`: `TupleType`) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | `TupleType` | + +###### Returns + +`string` + +##### typeOperatorType() + +> **typeOperatorType**: (`model`: `TypeOperatorType`) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | `TypeOperatorType` | + +###### Returns + +`string` + +##### unionType() + +> **unionType**: (`model`: `UnionType`) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | `UnionType` | + +###### Returns + +`string` + +##### unknownType() + +> **unknownType**: (`model`: `UnknownType`) => `string` + +###### Parameters + +| Parameter | Type | +| :------ | :------ | +| `model` | `UnknownType` | + +###### Returns + +`string` + +*** + +### helpers + +> **helpers**: `Object` + +Then `helpers` namespace holds the helpers for the theme and are smaller utility functions that return snippets or text or other data transformations. + +They should can reference other helpers but should not reference other partials. + +Helpers can return any value types. + +#### flattenDeclarations() + +> **flattenDeclarations**: (`props`: [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html)[], `includeSignatures`: `boolean`) => [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html)[] + +##### Parameters + +| Parameter | Type | Default value | +| :------ | :------ | :------ | +| `props` | [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html)[] | `undefined` | +| `includeSignatures` | `boolean` | `false` | + +##### Returns + +[`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html)[] + +#### getDeclarationComment() + +> **getDeclarationComment**: (`declaration`: [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html)) => `any` + +##### Parameters + +| Parameter | Type | +| :------ | :------ | +| `declaration` | [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html) | + +##### Returns + +`any` + +#### getDeclarationType() + +> **getDeclarationType**: (`declaration`: [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html)) => `undefined` \| `SomeType` + +##### Parameters + +| Parameter | Type | +| :------ | :------ | +| `declaration` | [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html) | + +##### Returns + +`undefined` \| `SomeType` + +#### getKeyword() + +> **getKeyword**: (`kind`: `ReflectionKind`) => `any` + +##### Parameters + +| Parameter | Type | +| :------ | :------ | +| `kind` | `ReflectionKind` | + +##### Returns + +`any` + +#### getModifier() + +> **getModifier**: (`reflection`: [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html)) => `null` \| `"set"` \| `"private"` \| `"public"` \| `"readonly"` \| `"protected"` \| `"static"` \| `"abstract"` \| `"get"` + +##### Parameters + +| Parameter | Type | +| :------ | :------ | +| `reflection` | [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html) | + +##### Returns + +`null` \| `"set"` \| `"private"` \| `"public"` \| `"readonly"` \| `"protected"` \| `"static"` \| `"abstract"` \| `"get"` + +#### getPackagesMeta() + +> **getPackagesMeta**: (`key`: `string`) => `Object` + +##### Parameters + +| Parameter | Type | +| :------ | :------ | +| `key` | `string` | + +##### Returns + +`Object` + +###### options + +> **options**: [`Options`](https://typedoc.org/api/classes/Configuration.Options.html) + +###### description? + +> **`optional`** **description**: `string` + +#### getParameterDefaultValue() + +> **getParameterDefaultValue**: (`parameter`: `ParameterReflection`) => `string` + +##### Parameters + +| Parameter | Type | +| :------ | :------ | +| `parameter` | `ParameterReflection` | + +##### Returns + +`string` + +#### getProjectName() + +> **getProjectName**: (`textContent`: `string`) => `string` + +##### Parameters + +| Parameter | Type | +| :------ | :------ | +| `textContent` | `string` | + +##### Returns + +`string` + +#### getRelativeUrl() + +> **getRelativeUrl**: (`url`: `string`, `ignorePublicPath`: `boolean`) => `string` + +##### Parameters + +| Parameter | Type | Default value | +| :------ | :------ | :------ | +| `url` | `string` | `undefined` | +| `ignorePublicPath` | `boolean` | `false` | + +##### Returns + +`string` + +#### getTextFromKindString() + +> **getTextFromKindString**: (`kindString`: `string`, `isPlural`: `boolean`) => `string` + +##### Parameters + +| Parameter | Type | Default value | +| :------ | :------ | :------ | +| `kindString` | `string` | `undefined` | +| `isPlural` | `boolean` | `false` | + +##### Returns + +`string` + +#### getText() + +> **getText**: (`key`: keyof [`TextContentMappings`](/api-docs/Interface.TextContentMappings.md)) => `string` + +##### Parameters + +| Parameter | Type | +| :------ | :------ | +| `key` | keyof [`TextContentMappings`](/api-docs/Interface.TextContentMappings.md) | + +##### Returns + +`string` + +#### isGroupKind() + +> **isGroupKind**: (`reflection`: [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html) \| `SignatureReflection`) => `boolean` + +##### Parameters + +| Parameter | Type | +| :------ | :------ | +| `reflection` | [`DeclarationReflection`](https://typedoc.org/api/classes/Models.DeclarationReflection.html) \| `SignatureReflection` | + +##### Returns + +`boolean` diff --git a/docs/pages/api-docs/Interface.MarkdownApplication.md b/docs/pages/api-docs/Interface.MarkdownApplication.md new file mode 100644 index 000000000..3f324c939 --- /dev/null +++ b/docs/pages/api-docs/Interface.MarkdownApplication.md @@ -0,0 +1,29 @@ +# MarkdownApplication + +An extended typing of TypeDoc's Application instance. + +This is essentially a copy of the main class with the `renderer` property overridden to the custom [MarkdownRenderer](/api-docs/Interface.MarkdownRenderer.md). + +## Usage + +```ts +import {MarkdownApplication} from 'typedoc-plugin-markdown'; + +export function load(app: MarkdownApplication) { + ... +} +``` + +## Extends + +- [`Application`](https://typedoc.org/api/classes/Application.html) + +## Properties + +### renderer + +> **renderer**: [`MarkdownRenderer`](/api-docs/Interface.MarkdownRenderer.md) + +#### Overrides + +`Application.renderer` diff --git a/docs/pages/api-docs/Interface.MarkdownRenderer.md b/docs/pages/api-docs/Interface.MarkdownRenderer.md new file mode 100644 index 000000000..42441d442 --- /dev/null +++ b/docs/pages/api-docs/Interface.MarkdownRenderer.md @@ -0,0 +1,57 @@ +# MarkdownRenderer + +An extended typing of TypeDoc's Renderer class. + +Incoudes updated typings for hooks and async jobs. + +## Usage + +```ts +import { MarkdownApplication } from 'typedoc-plugin-markdown'; + +export function load(app: MarkdownApplication) { + +app.renderer.markdownHooks.on( + 'page.begin', () => '> This is some markdown at the top of the page', +); + +app.renderer.preRenderAsyncJobs.push(async (event) => { + await doSomethingAsync(event); +}); + +app.renderer.postRenderAsyncJobs.push(async (event) => { + await doSomethingAsync(event); +}); + +} +``` + +## Extends + +- [`Renderer`](https://typedoc.org/api/classes/Renderer.html) + +## Properties + +### markdownHooks + +> **markdownHooks**: [`EventHooks`](https://typedoc.org/api/classes/EventHooks.html)\<[`MarkdownRendererHooks`](/api-docs/Interface.MarkdownRendererHooks.md), `string`\> + +*** + +### preRenderAsyncJobs + +> **preRenderAsyncJobs**: (`output`: [`MarkdownRendererEvent`](/api-docs/Class.MarkdownRendererEvent.md)) => `Promise`\<`void`\>[] + +#### Overrides + +`Renderer.preRenderAsyncJobs` + +*** + +### postRenderAsyncJobs + +> **postRenderAsyncJobs**: (`output`: [`MarkdownRendererEvent`](/api-docs/Class.MarkdownRendererEvent.md)) => `Promise`\<`void`\>[] + +#### Overrides + +`Renderer.postRenderAsyncJobs` diff --git a/docs/pages/api-docs/Interface.MarkdownRendererHooks.md b/docs/pages/api-docs/Interface.MarkdownRendererHooks.md new file mode 100644 index 000000000..aaca83d5e --- /dev/null +++ b/docs/pages/api-docs/Interface.MarkdownRendererHooks.md @@ -0,0 +1,52 @@ +# MarkdownRendererHooks + +Describes the hooks available to inject output in the markdown theme. + +## Usage + +```ts + app.renderer.markdownHooks.on( + 'page.end', + () => `**Generated using \`page.end\` hook**`, +); +``` + +## Hooks + +### page.begin + +> **page.begin**: [[`MarkdownThemeRenderContext`](/api-docs/Class.MarkdownThemeRenderContext.md)] + +Applied at the start of the markdown output. + +*** + +### page.end + +> **page.end**: [[`MarkdownThemeRenderContext`](/api-docs/Class.MarkdownThemeRenderContext.md)] + +Applied at the end of the markdown output. + +*** + +### content.begin + +> **content.begin**: [[`MarkdownThemeRenderContext`](/api-docs/Class.MarkdownThemeRenderContext.md)] + +Applied before the main markdown content is rendered. + +*** + +### index.page.begin + +> **index.page.begin**: [[`MarkdownThemeRenderContext`](/api-docs/Class.MarkdownThemeRenderContext.md)] + +Applied at the start of the markdown output on the index page. + +*** + +### index.page.end + +> **index.page.end**: [[`MarkdownThemeRenderContext`](/api-docs/Class.MarkdownThemeRenderContext.md)] + +Applied at the end of the markdown output on the index page. diff --git a/docs/pages/api-docs/Interface.NavigationItem.md b/docs/pages/api-docs/Interface.NavigationItem.md new file mode 100644 index 000000000..5f0ec7bd7 --- /dev/null +++ b/docs/pages/api-docs/Interface.NavigationItem.md @@ -0,0 +1,21 @@ +# NavigationItem + +The model used to define the navigation structure. + +## Properties + +### title + +> **title**: `string` + +*** + +### url? + +> **`optional`** **url**: `null` \| `string` + +*** + +### children? + +> **`optional`** **children**: [`NavigationItem`](/api-docs/Interface.NavigationItem.md)[] diff --git a/docs/pages/api-docs/Interface.PluginOptions.md b/docs/pages/api-docs/Interface.PluginOptions.md new file mode 100644 index 000000000..de22d57d2 --- /dev/null +++ b/docs/pages/api-docs/Interface.PluginOptions.md @@ -0,0 +1,227 @@ +# PluginOptions + +Describes the options declared by the plugin. + +## Properties + +### outputFileStrategy + +> **outputFileStrategy**: `"members"` \| `"modules"` + +Determines how output files are generated. + +*** + +### membersWithOwnFile + +> **membersWithOwnFile**: (`"Enum"` \| `"Variable"` \| `"Function"` \| `"Class"` \| `"Interface"` \| `"TypeAlias"`)[] + +Determines which members are exported to their own file when `outputFileStrategy` equals `members`. + +*** + +### entryFileName + +> **entryFileName**: `string` + +The file name of the entry page. + +*** + +### fileExtension + +> **fileExtension**: `string` + +Specify the file extension for generated output files. + +*** + +### entryModule + +> **entryModule**: `string` + +The name of a module that should act as the root page for the documentation. + +*** + +### mergeReadme + +> **mergeReadme**: `boolean` + +Merges the resolved readme into the project index page. + +*** + +### excludeScopesInPaths + +> **excludeScopesInPaths**: `boolean` + +Exclude writing @ scope directories in paths. + +*** + +### hidePageHeader + +> **hidePageHeader**: `boolean` + +Do not print page header. + +*** + +### hidePageTitle + +> **hidePageTitle**: `boolean` + +Do not print page title. + +*** + +### hideBreadcrumbs + +> **hideBreadcrumbs**: `boolean` + +Do not print breadcrumbs. + +*** + +### hideInPageTOC + +> **hideInPageTOC**: `boolean` + +Do not render in-page TOC items. + +*** + +### indexPageTitle + +> **indexPageTitle**: `string` + +The title of project index page. + +*** + +### memberPageTitle + +> **memberPageTitle**: `string` + +The page title of member pages. + +*** + +### excludeGroups + +> **excludeGroups**: `boolean` + +Excludes grouping by kind so all members are rendered and sorted at the same level. + +*** + +### useCodeBlocks + +> **useCodeBlocks**: `boolean` + +Wraps signatures and declarations in code blocks. + +*** + +### expandObjects + +> **expandObjects**: `boolean` + +Expand objects inside declarations. + +*** + +### expandParameters + +> **expandParameters**: `boolean` + +Expand parameters in signature parentheses to display type information. + +*** + +### parametersFormat + +> **parametersFormat**: `"table"` \| `"list"` + +Specify the render style of parameter and type parameter groups. + +*** + +### propertiesFormat + +> **propertiesFormat**: `"table"` \| `"list"` + +Specify the render style of property groups for interfaces and classes. + +*** + +### enumMembersFormat + +> **enumMembersFormat**: `"table"` \| `"list"` + +Specify the render style of enumuration members. + +*** + +### typeDeclarationFormat + +> **typeDeclarationFormat**: `"table"` \| `"list"` + +Specify the render style for type declaration members. + +*** + +### indexFormat + +> **indexFormat**: `"table"` \| `"list"` + +Specify the render format for index items. + +*** + +### textContentMappings + +> **textContentMappings**: `Partial`\<[`TextContentMappings`](/api-docs/Interface.TextContentMappings.md)\> + +Provides a mechanism to change the content of text used in documentation. + +*** + +### publicPath + +> **publicPath**: `string` + +Specify the base path for all urls. + +*** + +### preserveMarkup + +> **preserveMarkup**: `boolean` + +Preserves non-html markup tags in comments. + +*** + +### preserveAnchorCasing + +> **preserveAnchorCasing**: `boolean` + +Preserve anchor casing when generating link to symbols. + +*** + +### anchorPrefix + +> **anchorPrefix**: `string` + +Custom anchor prefix + +*** + +### namedAnchors + +> **namedAnchors**: `boolean` + +Add HTML named anchors to headings and table rows. diff --git a/docs/pages/api-docs/Interface.TextContentMappings.md b/docs/pages/api-docs/Interface.TextContentMappings.md new file mode 100644 index 000000000..0df06d8f3 --- /dev/null +++ b/docs/pages/api-docs/Interface.TextContentMappings.md @@ -0,0 +1,393 @@ +# TextContentMappings + +Describes the keys available to replace static text. + +## Properties + +### header.title + +> **header.title**: `string` + +*** + +### header.readme + +> **header.readme**: `string` + +*** + +### header.docs + +> **header.docs**: `string` + +*** + +### breadcrumbs.home + +> **breadcrumbs.home**: `string` + +*** + +### title.indexPage + +> **title.indexPage**: `string` + +*** + +### title.modulePage + +> **title.modulePage**: `string` + +*** + +### title.memberPage + +> **title.memberPage**: `string` + +*** + +### label.defaultValue + +> **label.defaultValue**: `string` + +*** + +### label.description + +> **label.description**: `string` + +*** + +### label.extendedBy + +> **label.extendedBy**: `string` + +*** + +### label.extends + +> **label.extends**: `string` + +*** + +### label.flags + +> **label.flags**: `string` + +*** + +### label.globals + +> **label.globals**: `string` + +*** + +### label.implements + +> **label.implements**: `string` + +*** + +### label.implementationOf + +> **label.implementationOf**: `string` + +*** + +### label.inheritedFrom + +> **label.inheritedFrom**: `string` + +*** + +### label.index + +> **label.index**: `string` + +*** + +### label.indexable + +> **label.indexable**: `string` + +*** + +### label.indexSignature + +> **label.indexSignature**: `string` + +*** + +### label.member + +> **label.member**: `string` + +*** + +### label.modifier + +> **label.modifier**: `string` + +*** + +### label.name + +> **label.name**: `string` + +*** + +### label.overrides + +> **label.overrides**: `string` + +*** + +### label.packages + +> **label.packages**: `string` + +*** + +### label.reExports + +> **label.reExports**: `string` + +*** + +### label.renamesAndReExports + +> **label.renamesAndReExports**: `string` + +*** + +### label.returns + +> **label.returns**: `string` + +*** + +### label.source + +> **label.source**: `string` + +*** + +### label.type + +> **label.type**: `string` + +*** + +### label.typeDeclaration + +> **label.typeDeclaration**: `string` + +*** + +### label.value + +> **label.value**: `string` + +*** + +### kind.accessor.singular + +> **kind.accessor.singular**: `string` + +*** + +### kind.accessor.plural + +> **kind.accessor.plural**: `string` + +*** + +### kind.class.singular + +> **kind.class.singular**: `string` + +*** + +### kind.class.plural + +> **kind.class.plural**: `string` + +*** + +### kind.constructor.singular + +> **kind.constructor.singular**: `string` + +*** + +### kind.constructor.plural + +> **kind.constructor.plural**: `string` + +*** + +### kind.enum.singular + +> **kind.enum.singular**: `string` + +*** + +### kind.enum.plural + +> **kind.enum.plural**: `string` + +*** + +### kind.enumMember.singular + +> **kind.enumMember.singular**: `string` + +*** + +### kind.enumMember.plural + +> **kind.enumMember.plural**: `string` + +*** + +### kind.event.singular + +> **kind.event.singular**: `string` + +*** + +### kind.event.plural + +> **kind.event.plural**: `string` + +*** + +### kind.function.singular + +> **kind.function.singular**: `string` + +*** + +### kind.function.plural + +> **kind.function.plural**: `string` + +*** + +### kind.interface.singular + +> **kind.interface.singular**: `string` + +*** + +### kind.interface.plural + +> **kind.interface.plural**: `string` + +*** + +### kind.method.singular + +> **kind.method.singular**: `string` + +*** + +### kind.method.plural + +> **kind.method.plural**: `string` + +*** + +### kind.module.singular + +> **kind.module.singular**: `string` + +*** + +### kind.module.plural + +> **kind.module.plural**: `string` + +*** + +### kind.namespace.singular + +> **kind.namespace.singular**: `string` + +*** + +### kind.namespace.plural + +> **kind.namespace.plural**: `string` + +*** + +### kind.variable.singular + +> **kind.variable.singular**: `string` + +*** + +### kind.variable.plural + +> **kind.variable.plural**: `string` + +*** + +### kind.parameter.singular + +> **kind.parameter.singular**: `string` + +*** + +### kind.parameter.plural + +> **kind.parameter.plural**: `string` + +*** + +### kind.property.singular + +> **kind.property.singular**: `string` + +*** + +### kind.property.plural + +> **kind.property.plural**: `string` + +*** + +### kind.reference.singular + +> **kind.reference.singular**: `string` + +*** + +### kind.reference.plural + +> **kind.reference.plural**: `string` + +*** + +### kind.typeAlias.singular + +> **kind.typeAlias.singular**: `string` + +*** + +### kind.typeAlias.plural + +> **kind.typeAlias.plural**: `string` + +*** + +### kind.typeParameter.singular + +> **kind.typeParameter.singular**: `string` + +*** + +### kind.typeParameter.plural + +> **kind.typeParameter.plural**: `string` diff --git a/docs/pages/api-docs/Interface.UrlMapping.md b/docs/pages/api-docs/Interface.UrlMapping.md new file mode 100644 index 000000000..68576b07b --- /dev/null +++ b/docs/pages/api-docs/Interface.UrlMapping.md @@ -0,0 +1,31 @@ +# UrlMapping + +The model used to define the URL mapping structure. + +## Properties + +### url + +> **url**: `string` + +*** + +### model + +> **model**: `Model` + +*** + +### template() + +> **template**: (`data`: [`MarkdownPageEvent`](/api-docs/Class.MarkdownPageEvent.md)\<`Model`\>) => `string` + +#### Parameters + +| Parameter | Type | +| :------ | :------ | +| `data` | [`MarkdownPageEvent`](/api-docs/Class.MarkdownPageEvent.md)\<`Model`\> | + +#### Returns + +`string` diff --git a/docs/pages/api-docs/_meta.js b/docs/pages/api-docs/_meta.js new file mode 100644 index 000000000..4cda88fbd --- /dev/null +++ b/docs/pages/api-docs/_meta.js @@ -0,0 +1,26 @@ +export default { + "index": "Index", + "Application": { + "type": "separator", + "title": "Application" + }, + "Interface.MarkdownApplication": "MarkdownApplication", + "Interface.MarkdownRenderer": "MarkdownRenderer", + "Class.MarkdownPageEvent": "MarkdownPageEvent", + "Class.MarkdownRendererEvent": "MarkdownRendererEvent", + "Interface.MarkdownRendererHooks": "MarkdownRendererHooks", + "Options": { + "type": "separator", + "title": "Options" + }, + "Interface.PluginOptions": "PluginOptions", + "Interface.TextContentMappings": "TextContentMappings", + "Custom Theme": { + "type": "separator", + "title": "Custom Theme" + }, + "Class.MarkdownTheme": "MarkdownTheme", + "Class.MarkdownThemeRenderContext": "MarkdownThemeRenderContext", + "Interface.UrlMapping": "UrlMapping", + "Interface.NavigationItem": "NavigationItem" +} \ No newline at end of file diff --git a/docs/pages/api-docs/index.mdx b/docs/pages/api-docs/index.mdx new file mode 100644 index 000000000..04c5e3319 --- /dev/null +++ b/docs/pages/api-docs/index.mdx @@ -0,0 +1,37 @@ +# API + +The public API of the plugin exposes some classes and types that can be used to extend the plugin. Please note this only covers the API relevant to this plugin and not cover the entire [TypeDoc API](https://typedoc.org/api/). + +The APIs are typically consumed by writing [local plugins](/docs/customizing-output#local-plugins). + +## Application + +The Application class is the main entry point for a TypeDoc application and provides the mechanism to listen to hooks, events and define new themes. + +| Member | Description | +| :------ | :------ | +| [MarkdownApplication](/api-docs/Interface.MarkdownApplication.md) | An extended typing of TypeDoc's Application instance. | +| [MarkdownRenderer](/api-docs/Interface.MarkdownRenderer.md) | An extended typing of TypeDoc's Renderer class. | +| [MarkdownPageEvent](/api-docs/Class.MarkdownPageEvent.md) | An event emitted by before and after the markup of a page is rendered. | +| [MarkdownRendererEvent](/api-docs/Class.MarkdownRendererEvent.md) | An event emitted at the beginning and end of the rendering process. | +| [MarkdownRendererHooks](/api-docs/Interface.MarkdownRendererHooks.md) | Describes the hooks available to inject output in the markdown theme. | + +## Options + +Types that are used to define the plugin options. + +| Member | Description | +| :------ | :------ | +| [PluginOptions](/api-docs/Interface.PluginOptions.md) | Describes the options declared by the plugin. | +| [TextContentMappings](/api-docs/Interface.TextContentMappings.md) | Describes the keys available to replace static text. | + +## Custom Theme + +Classes and types that are used to create custom themes. + +| Member | Description | +| :------ | :------ | +| [MarkdownTheme](/api-docs/Class.MarkdownTheme.md) | The main theme class for the plugin. | +| [MarkdownThemeRenderContext](/api-docs/Class.MarkdownThemeRenderContext.md) | The theme context class that is provided as context to every template. | +| [UrlMapping](/api-docs/Interface.UrlMapping.md) | The model used to define the URL mapping structure. | +| [NavigationItem](/api-docs/Interface.NavigationItem.md) | The model used to define the navigation structure. | diff --git a/docs/pages/docs/_meta.js b/docs/pages/docs/_meta.js new file mode 100644 index 000000000..1f94e6f12 --- /dev/null +++ b/docs/pages/docs/_meta.js @@ -0,0 +1,15 @@ +export default { + index: 'Introduction', + 'v4-migration': 'V4 Migration', + '-- Getting Started': { + type: 'separator', + title: 'Getting Started', + }, + 'quick-start': '', + options: '', + '-- Guides': { + type: 'separator', + title: 'Guides', + }, + 'customizing-output': '', +}; diff --git a/docs/pages/docs/customizing-output.mdx b/docs/pages/docs/customizing-output.mdx new file mode 100644 index 000000000..585d93c7a --- /dev/null +++ b/docs/pages/docs/customizing-output.mdx @@ -0,0 +1,144 @@ +import { Callout, FileTree } from 'nextra/components'; + +# Customizing Output + +It is possible to customize the output of the generated markdown files by creating local plugins and utilising the exposed public [API](/api-docs). + +## Local plugins + +Plugins export a load function with context of the resolved application. + +Here is a basic plugin skeleton: + +```ts filename="local-plugins/my-custom-plugin.ts" +import { MarkdownApplication } from 'typedoc-plugin-markdown'; + +export function load(app: MarkdownApplication) { + ... +} +``` + +The plugin can then be consumed by adding the path to the plugin in the typedoc.json file: + +```json filename="typedoc.json" +{ + "plugin": ["typedoc-plugin-markdown", "./local-plugins/my-custom-plugin.js"] +} +``` + +Note plugins can either be consumed as either CommonJs or ESM. + +## Hooks + +Hooks allows strings to be injected into the output in specific locations and are the most basic form form of customization. + +```ts +// Add a hook to insert markdown at the top of the page. +export function load(app: MarkdownApplication) { + app.renderer.markdownHooks.on( + 'page.begin', + () => '> This is some markdown at the top of the page', + ); +} +``` + +Please see [MarkdownRendererHooks](/api-docs/Interface.MarkdownRendererHooks) API docs. + +## Events + +Events are more powerful than hooks and allow for more complex customizations and provide a context that can be used to modify the output. + +```ts +export function load(app: MarkdownApplication) { + app.renderer.on(MarkdownPageEvent.END, (event: MarkdownPageEvent) => { + events.content = event.content.replace('foo', 'bar'); + }); +} +``` + +Please see [MarkdownRendererEvent](/api-docs/Class.MarkdownRendererEvent) and [MarkdownPageEvent](/api-docs/Class.MarkdownPageEvent) API docs. + +## Async Jobs + +Async jobs are used to perform asynchronous tasks before or after rendering. + +```ts +export function load(app: MarkdownApplication) { + app.renderer.preRenderAsyncJobs.push(async (event) => { + await doSomethingAsync(event); + }); + + app.renderer.postRenderAsyncJobs.push(async (event) => { + await doSomethingAsync(event); + }); +} +``` + +## Custom Theme + +If there are some specific customization not achievable with hooks or events then a more advanced customization can be achieved by providing a new theme class which returns a different context class. + +This implementation follows an adapted version of [TypeDoc's custom theming implementation](https://github.com/TypeStrong/typedoc/blob/master/internal-docs/custom-themes.md). + +In theory all available templates, partials and helpers can be overriden with custom implementations, but please proceed with caution. + +This code defines a new theme called “customTheme”: + +```ts +export function load(app) { + app.renderer.defineTheme('customTheme', MyMarkdownTheme); +} + +class MyMarkdownTheme extends MarkdownTheme {} +``` + +The theme can then be consumed by the theme option: + +```shell +typedoc --plugin typedoc-plugin-markdown --theme customTheme +``` + +The themes can be extended to provide custom partials, helpers and templates by proving a custom render context class. + +```ts +class MyMarkdownTheme extends MarkdownTheme { + getRenderContext(page) { + return new MyMarkdownThemeRenderContext( + this, + page, + this.application.options, + ); + } +} + +class MyMarkdownThemeRenderContext extends MarkdownThemeRenderContext { + partials = { + ...this.partials, + header: () => { + return `Welcome to ${page.project.name} custom header!`; + }, + }; +} +``` + +Please see the [Custom Theme API](/api-docs#custom-theme) for more information. + +## Navigation + +If required, a navigation structure can be provided to the output. This is useful if you want to provide a custom sidebar or navigation bar. + +This can be achieved by utilising `postRenderAsyncJobs` on the renderer. + +```ts +export function load(app: MarkdownApplication) { + app.renderer.postRenderAsyncJobs.push( + async (event: MarkdownRendererEvent) => { + // The navigation JSON structure is available on the output. + const navigation = event.navigation; + + // This can be parsed to something else or written straight to a file: + fs.writeFileSync('navigation.json', JSON.stringify(navigation)); + }, + ); +} +``` diff --git a/docs/pages/docs/index.mdx b/docs/pages/docs/index.mdx new file mode 100644 index 000000000..ea6c82159 --- /dev/null +++ b/docs/pages/docs/index.mdx @@ -0,0 +1,35 @@ +import { faGithub } from '@fortawesome/free-brands-svg-icons'; +import { faBolt } from '@fortawesome/free-solid-svg-icons'; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { Cards } from 'nextra/components'; +import pjson from '../../../packages/typedoc-plugin-markdown/package.json'; + +# typedoc-plugin-markdown + + + +## Overview + +By default, TypeDoc will render API documentation as a webpage, e.g. HTML files. This plugin replaces the default HTML theme with a built-in Markdown theme and exposes some additional options. + +Markdown output is useful when documentation is to be included in project README files, Wikis and static site generators. + +## Features + +- [MDX](https://mdxjs.com/) and [GFM](https://github.github.com/gfm/) compliant. +- Works alongside other TypeDoc plugins. +- Configurable output file structure. +- Configurable UI options +- [Frontmatter](/utilities/frontmatter/introduction) and [Remark](/utilities/remark/introduction) utility plugins available. + +## Examples + + + } + arrow={true} + href="https://github.com/tgreyuk/typedoc-plugin-markdown-examples/tree/main/examples/01-typedoc-plugin-markdown" + target="_blank" + /> + diff --git a/docs/pages/options.mdx b/docs/pages/docs/options.mdx similarity index 100% rename from docs/pages/options.mdx rename to docs/pages/docs/options.mdx diff --git a/docs/pages/quick-start.mdx b/docs/pages/docs/quick-start.mdx similarity index 52% rename from docs/pages/quick-start.mdx rename to docs/pages/docs/quick-start.mdx index f14467e7c..92d761fe2 100644 --- a/docs/pages/quick-start.mdx +++ b/docs/pages/docs/quick-start.mdx @@ -1,20 +1,18 @@ -import { Callout } from 'nextra/components'; +import { Callout, Steps } from 'nextra/components'; # Quick Start - For general TypeDoc usage please see https://typedoc.org. + For general TypeDoc usage please refer to https://typedoc.org. -## Installation +## Install the plugin ```sh npm2yarn npm install typedoc typedoc-plugin-markdown@next --save-dev ``` -## Usage - -### Loading the plugin +## Load the plugin Plugins are loaded by using the TypeDoc [`plugin`](https://typedoc.org/options/configuration/#plugin) configuration option: @@ -24,12 +22,14 @@ Plugins are loaded by using the TypeDoc [`plugin`](https://typedoc.org/options/c } ``` -### TypeDoc options +## Set options + +Please see TypeDoc's [Configuring Options](https://typedoc.org/options/configuration/) page for more information on how to set options. -The majority of [TypeDoc's options](https://typedoc.org/options/) are supported, including all [configuration](https://typedoc.org/options/configuration/), [input](https://typedoc.org/options/input/), [comments](https://typedoc.org/options/comments/), [organization](https://typedoc.org/options/organization/), [validation](https://typedoc.org/options/validation/) and [other](https://typedoc.org/options/other/) options. +The majority of [TypeDoc's options](https://typedoc.org/options/) are supported, including all [input](https://typedoc.org/options/input/), [comments](https://typedoc.org/options/comments/), [organization](https://typedoc.org/options/organization/), [validation](https://typedoc.org/options/validation/) and [other](https://typedoc.org/options/other/) options. [Output](https://typedoc.org/options/output/) options that are specific to the HTML theme are ignored. Some typical (and frequently asked about) TypeDoc options that might be useful are: - Using [disableSources](https://typedoc.org/options/output/#disablesources) to prevent outputting source references. -- Setting [readme](https://typedoc.org/options/input/#readme) to `none` to exclude the project readme from the docs. +- Setting [readme](https://typedoc.org/options/input/#readme) to `none` to exclude the project readme from the docs.import { Callout, Steps } from 'nextra/components'; diff --git a/docs/pages/v4-migration.mdx b/docs/pages/docs/v4-migration.mdx similarity index 100% rename from docs/pages/v4-migration.mdx rename to docs/pages/docs/v4-migration.mdx diff --git a/docs/pages/guide/_meta.json b/docs/pages/guide/_meta.json deleted file mode 100644 index 1cefc2413..000000000 --- a/docs/pages/guide/_meta.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "local-plugins": "", - "custom-output": "", - "navigation": "" -} diff --git a/docs/pages/guide/custom-output.mdx b/docs/pages/guide/custom-output.mdx deleted file mode 100644 index f0c047854..000000000 --- a/docs/pages/guide/custom-output.mdx +++ /dev/null @@ -1,80 +0,0 @@ -import { Callout, FileTree } from 'nextra/components'; - -# Custom Output - -## Hooks - -Hooks allows Markdown (or HTML) to be injected into the output in specific locations and are the most basic form form of customization. - -```js filename="local-plugins/custom-plugin.mjs" -// @ts-check - -import { MarkdownHooks, MarkdownApplication } from 'typedoc-plugin-markdown'; - -/** - * @param {import('typedoc-plugin-markdown').MarkdownApplication} app - */ -export function load(app) { - // Add a hook to insert markdown at the top of the page. - app.renderer.markdownHooks.on( - 'page.begin', - () => '> This is some markdown at the top of the page', - ); -} -``` - -Available hooks are: - -- `page.begin` - Applied at the start of the output. -- `page.end` - Applied at the end of the output. -- `content.begin` - Applied before the main content is rendered. -- `index.page.begin` - Applied at the start of the output on the index page. -- `index.page.end` - Applied at the end of theoutput on the index page. -- `index.content.begin` - Applied before the main content is rendered on the index page. - -## Custom Theme - -If there are some specific customization not achievable with hooks then a more advanced customization can be achieved by providing a new theme class which returns a different context class. - -This implementation follows an adapted version of TypeDoc's [Custom Theme docs](https://github.com/TypeStrong/typedoc/blob/master/internal-docs/custom-themes.md). - -In theory all available templates, partials and helpers can be overriden with custom implementations, but please proceed with caution. - -Please consider raising a PR to the plugin directly if you think your customizations would be useful to others. - -```js filename="custom-plugin.mjs" -// @ts-check - -/** - * @param {import('typedoc-plugin-markdown').MarkdownApplication} app - */ -export function load(app) { - // Add a hook to insert markdown at the top of the page. - app.renderer.defineTheme('custom-theme', MyMarkdownTheme); -} - -class MyMarkdownTheme extends MarkdownTheme { - /** - * @param {import('typedoc-plugin-markdown').MarkdownPageEvent} page - */ - getRenderContext(page) { - return new MyMarkdownThemeRenderContext( - this, - page, - this.application.options, - ); - } -} - -class MyMarkdownThemeRenderContext extends MarkdownThemeRenderContext { - partials = { - ...this.partials, - /** - * @param {import('typedoc-plugin-markdown').MarkdownPageEvent} page - */ - header: (page) => { - return `Welcome to ${page.project.name} custom header!`; - }, - }; -} -``` diff --git a/docs/pages/guide/local-plugins.mdx b/docs/pages/guide/local-plugins.mdx deleted file mode 100644 index 45a08e8b1..000000000 --- a/docs/pages/guide/local-plugins.mdx +++ /dev/null @@ -1,24 +0,0 @@ -import { Callout, FileTree } from 'nextra/components'; - -# Local plugins - -Additional functionality documented in this section can be provided by writing a local plugin. - -To get started a create a local TypeDoc plugin file and reference it in `typedoc.json`. - -```js filename="local-plugins/my-custom-plugin.mjs" -// @ts-check - -/** - * @param {import('typedoc-plugin-markdown').MarkdownApplication} app - */ -export function load(app) { - // Additional customization should be placed in the load function. -} -``` - -```json filename="typedoc.json" -{ - "plugin": ["typedoc-plugin-markdown", "./local-plugins/my-custom-plugin.mjs"] -} -``` diff --git a/docs/pages/guide/navigation.mdx b/docs/pages/guide/navigation.mdx deleted file mode 100644 index 2857a9bec..000000000 --- a/docs/pages/guide/navigation.mdx +++ /dev/null @@ -1,27 +0,0 @@ -# Navigation - -If required, a navigation structure can be provided to the output. This is useful if you want to provide a custom sidebar or navigation bar. - -This can be achieved by adding `postRenderAsyncJobs` to the renderer. - -```js filename="local-plugins/my-navigation-plugin.mjs" -// @ts-check - -/** - * @param {import('typedoc-plugin-markdown').MarkdownApplication} app - */ -export function load(app) { - app.renderer.postRenderAsyncJobs.push( - /** - * @param {import('typedoc-plugin-markdown').MarkdownRendererEvent} output - */ - async (event: MarkdownRendererEvent) => { - // The navigation JSON structure is available on the output. - const navigation = event.navigation; - - // This can be parsed to something else or written straight to a file: - fs.writeFileSync('navigation.json', JSON.stringify(navigation)); - }, - ); -} -``` diff --git a/docs/pages/index.mdx b/docs/pages/index.mdx index 3afc11900..247f79513 100644 --- a/docs/pages/index.mdx +++ b/docs/pages/index.mdx @@ -1,38 +1,42 @@ -import { faGithub } from '@fortawesome/free-brands-svg-icons'; -import { faBolt } from '@fortawesome/free-solid-svg-icons'; -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { Card, Cards } from 'nextra/components'; -import pjson from '../../packages/typedoc-plugin-markdown/package.json'; -import { PackageDescription } from '../components/package-description'; - -# typedoc-plugin-markdown - -![npm](https://img.shields.io/npm/v/typedoc-plugin-markdown%2Fnext?&logo=npm) - - - -## Overview - -By default, TypeDoc will render API documentation as a webpage, e.g. HTML files. This plugin replaces the default HTML theme with a built-in Markdown theme and exposes some additional options. - -Markdown output is useful when documentation is to be included in project README files, Wikis and static site generators. - -## Features - -- [MDX](https://mdxjs.com/) and [GFM](https://github.github.com/gfm/) compliant. -- Works alongside other TypeDoc plugins. -- Configurable output file structure. -- Configurable UI options -- [Frontmatter](/utilities/frontmatter/introduction) and [Remark](/utilities/remark/introduction) utility plugins available. - -## Examples - - - } - arrow={true} - href="https://github.com/tgreyuk/typedoc-plugin-markdown-examples/tree/main/examples/01-typedoc-plugin-markdown" - target="_blank" - /> - +import Image from 'next/image'; + +

+
+
+ + typedoc-plugin-markdown + +
+ TypeScript + + Markdown +
+
+

Generate TypeScript API documentation as Markdown.

+
+ Powered by + TypeDoc TypeDoc. +
+
+
+
+ +
diff --git a/docs/pages/integrations/_meta.json b/docs/pages/integrations/_meta.json deleted file mode 100644 index 1a04f2507..000000000 --- a/docs/pages/integrations/_meta.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "docusaurus": "Docusaurus" -} diff --git a/docs/pages/integrations/docusaurus/_meta.json b/docs/pages/integrations/docusaurus/_meta.json deleted file mode 100644 index 12f55482e..000000000 --- a/docs/pages/integrations/docusaurus/_meta.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "introduction": "", - "quick-start": "", - "options": "", - "guides": "Guides" -} diff --git a/docs/pages/integrations/docusaurus/guides/_meta.json b/docs/pages/integrations/docusaurus/guides/_meta.json deleted file mode 100644 index 2661536b9..000000000 --- a/docs/pages/integrations/docusaurus/guides/_meta.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "sidebar": "", - "multi-instance": "" -} diff --git a/docs/pages/plugins/_meta.js b/docs/pages/plugins/_meta.js new file mode 100644 index 000000000..3608e9a47 --- /dev/null +++ b/docs/pages/plugins/_meta.js @@ -0,0 +1,27 @@ +export default { + index: 'Index', + + '-- Utils': { + type: 'separator', + title: 'Utils', + }, + + frontmatter: 'typedoc-plugin-frontmatter', + remark: 'typedoc-plugin-remark', + + '-- Themes': { + type: 'separator', + title: 'Themes', + }, + + vitepress: 'typedoc-vitepress-theme', + 'github-wiki': 'typedoc-github-wiki-theme', + 'gitlab-wiki': 'typedoc-gitlab-wiki-theme', + + '-- Integrations': { + type: 'separator', + title: 'Integrations', + }, + + docusaurus: 'docusaurus-plugin-typedoc', +}; diff --git a/docs/pages/plugins/docusaurus/_meta.js b/docs/pages/plugins/docusaurus/_meta.js new file mode 100644 index 000000000..9f441867b --- /dev/null +++ b/docs/pages/plugins/docusaurus/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + 'quick-start': '', + options: '', + guides: 'Guides', +}; diff --git a/docs/pages/plugins/docusaurus/guides/_meta.js b/docs/pages/plugins/docusaurus/guides/_meta.js new file mode 100644 index 000000000..919e47579 --- /dev/null +++ b/docs/pages/plugins/docusaurus/guides/_meta.js @@ -0,0 +1,5 @@ +export default { + sidebar: '', + 'multi-instance': '', + 'watch-mode': '', +}; diff --git a/docs/pages/integrations/docusaurus/guides/multi-instance.mdx b/docs/pages/plugins/docusaurus/guides/multi-instance.mdx similarity index 100% rename from docs/pages/integrations/docusaurus/guides/multi-instance.mdx rename to docs/pages/plugins/docusaurus/guides/multi-instance.mdx diff --git a/docs/pages/integrations/docusaurus/guides/sidebar.mdx b/docs/pages/plugins/docusaurus/guides/sidebar.mdx similarity index 100% rename from docs/pages/integrations/docusaurus/guides/sidebar.mdx rename to docs/pages/plugins/docusaurus/guides/sidebar.mdx diff --git a/docs/pages/integrations/docusaurus/guides/watch-mode.mdx b/docs/pages/plugins/docusaurus/guides/watch-mode.mdx similarity index 100% rename from docs/pages/integrations/docusaurus/guides/watch-mode.mdx rename to docs/pages/plugins/docusaurus/guides/watch-mode.mdx diff --git a/docs/pages/integrations/docusaurus/introduction.mdx b/docs/pages/plugins/docusaurus/introduction.mdx similarity index 61% rename from docs/pages/integrations/docusaurus/introduction.mdx rename to docs/pages/plugins/docusaurus/introduction.mdx index aa7ec38be..b2d23c377 100644 --- a/docs/pages/integrations/docusaurus/introduction.mdx +++ b/docs/pages/plugins/docusaurus/introduction.mdx @@ -2,9 +2,7 @@ import pjson from '../../../../packages/docusaurus-plugin-typedoc/package.json'; # docusaurus-plugin-typedoc -![npm](https://img.shields.io/npm/v/docusaurus-plugin-typedoc%2Fnext?&logo=npm) - - + ## Features diff --git a/docs/pages/integrations/docusaurus/options.mdx b/docs/pages/plugins/docusaurus/options.mdx similarity index 100% rename from docs/pages/integrations/docusaurus/options.mdx rename to docs/pages/plugins/docusaurus/options.mdx diff --git a/docs/pages/integrations/docusaurus/quick-start.mdx b/docs/pages/plugins/docusaurus/quick-start.mdx similarity index 100% rename from docs/pages/integrations/docusaurus/quick-start.mdx rename to docs/pages/plugins/docusaurus/quick-start.mdx diff --git a/docs/pages/plugins/frontmatter/_meta.js b/docs/pages/plugins/frontmatter/_meta.js new file mode 100644 index 000000000..1b071963f --- /dev/null +++ b/docs/pages/plugins/frontmatter/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + 'quick-start': '', + options: '', + guide: 'Guide', +}; diff --git a/docs/pages/utilities/frontmatter/guide.mdx b/docs/pages/plugins/frontmatter/guide.mdx similarity index 100% rename from docs/pages/utilities/frontmatter/guide.mdx rename to docs/pages/plugins/frontmatter/guide.mdx diff --git a/docs/pages/utilities/frontmatter/introduction.mdx b/docs/pages/plugins/frontmatter/introduction.mdx similarity index 75% rename from docs/pages/utilities/frontmatter/introduction.mdx rename to docs/pages/plugins/frontmatter/introduction.mdx index 6c4d35c4b..eb1afadc3 100644 --- a/docs/pages/utilities/frontmatter/introduction.mdx +++ b/docs/pages/plugins/frontmatter/introduction.mdx @@ -1,16 +1,12 @@ import { faGithub } from '@fortawesome/free-brands-svg-icons'; import { faBolt } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { Card, Cards } from 'nextra/components'; +import { Cards } from 'nextra/components'; import pjson from '../../../../packages/typedoc-plugin-frontmatter/package.json'; # typedoc-plugin-frontmatter -![npm](https://img.shields.io/npm/v/typedoc-plugin-frontmatter%2Fnext?&logo=npm) - -## Description - - + ## Features @@ -20,7 +16,7 @@ import pjson from '../../../../packages/typedoc-plugin-frontmatter/package.json' ## Examples - } arrow={true} diff --git a/docs/pages/utilities/frontmatter/options.mdx b/docs/pages/plugins/frontmatter/options.mdx similarity index 100% rename from docs/pages/utilities/frontmatter/options.mdx rename to docs/pages/plugins/frontmatter/options.mdx diff --git a/docs/pages/utilities/frontmatter/quick-start.mdx b/docs/pages/plugins/frontmatter/quick-start.mdx similarity index 100% rename from docs/pages/utilities/frontmatter/quick-start.mdx rename to docs/pages/plugins/frontmatter/quick-start.mdx diff --git a/docs/pages/plugins/github-wiki/_meta.js b/docs/pages/plugins/github-wiki/_meta.js new file mode 100644 index 000000000..4231cbd22 --- /dev/null +++ b/docs/pages/plugins/github-wiki/_meta.js @@ -0,0 +1,5 @@ +export default { + introduction: '', + 'quick-start': '', + options: '', +}; diff --git a/docs/pages/themes/github-wiki/introduction.mdx b/docs/pages/plugins/github-wiki/introduction.mdx similarity index 61% rename from docs/pages/themes/github-wiki/introduction.mdx rename to docs/pages/plugins/github-wiki/introduction.mdx index 17ee46668..63d479065 100644 --- a/docs/pages/themes/github-wiki/introduction.mdx +++ b/docs/pages/plugins/github-wiki/introduction.mdx @@ -2,11 +2,7 @@ import pjson from '../../../../packages/typedoc-github-wiki-theme/package.json'; # typedoc-github-wiki-theme -![npm](https://img.shields.io/npm/v/typedoc-github-wiki-theme%2Fnext?&logo=npm) - -## Description - - + ## Features diff --git a/docs/pages/themes/github-wiki/options.mdx b/docs/pages/plugins/github-wiki/options.mdx similarity index 100% rename from docs/pages/themes/github-wiki/options.mdx rename to docs/pages/plugins/github-wiki/options.mdx diff --git a/docs/pages/themes/github-wiki/quick-start.mdx b/docs/pages/plugins/github-wiki/quick-start.mdx similarity index 100% rename from docs/pages/themes/github-wiki/quick-start.mdx rename to docs/pages/plugins/github-wiki/quick-start.mdx diff --git a/docs/pages/plugins/gitlab-wiki/_meta.js b/docs/pages/plugins/gitlab-wiki/_meta.js new file mode 100644 index 000000000..4231cbd22 --- /dev/null +++ b/docs/pages/plugins/gitlab-wiki/_meta.js @@ -0,0 +1,5 @@ +export default { + introduction: '', + 'quick-start': '', + options: '', +}; diff --git a/docs/pages/themes/gitlab-wiki/introduction.mdx b/docs/pages/plugins/gitlab-wiki/introduction.mdx similarity index 61% rename from docs/pages/themes/gitlab-wiki/introduction.mdx rename to docs/pages/plugins/gitlab-wiki/introduction.mdx index 5043521f3..c6cf8f7b0 100644 --- a/docs/pages/themes/gitlab-wiki/introduction.mdx +++ b/docs/pages/plugins/gitlab-wiki/introduction.mdx @@ -2,11 +2,7 @@ import pjson from '../../../../packages/typedoc-gitlab-wiki-theme/package.json'; # typedoc-gitlab-wiki-theme -![npm](https://img.shields.io/npm/v/typedoc-gitlab-wiki-theme%2Fnext?&logo=npm) - -## Description - - + ## Features diff --git a/docs/pages/themes/gitlab-wiki/options.mdx b/docs/pages/plugins/gitlab-wiki/options.mdx similarity index 100% rename from docs/pages/themes/gitlab-wiki/options.mdx rename to docs/pages/plugins/gitlab-wiki/options.mdx diff --git a/docs/pages/themes/gitlab-wiki/quick-start.mdx b/docs/pages/plugins/gitlab-wiki/quick-start.mdx similarity index 100% rename from docs/pages/themes/gitlab-wiki/quick-start.mdx rename to docs/pages/plugins/gitlab-wiki/quick-start.mdx diff --git a/docs/pages/plugins/index.mdx b/docs/pages/plugins/index.mdx new file mode 100644 index 000000000..14f0d08c6 --- /dev/null +++ b/docs/pages/plugins/index.mdx @@ -0,0 +1,85 @@ +import { Cards } from 'nextra/components'; +import { + faGithub, + faGitlab, + faVuejs, +} from '@fortawesome/free-brands-svg-icons'; +import { faBolt, faScrewdriverWrench } from '@fortawesome/free-solid-svg-icons'; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import Image from 'next/image'; + +# Related Plugins + +Listed here are related plugins that can be used with **typedoc-plugin-markdown** to enhance the documentation experience. + +## Utils + +Utility plugins that used to adjust the output of the markdown files. + + + } + arrow={true} + href="plugins/frontmatter/introduction" + /> + + } + arrow={true} + href="plugins/remark/introduction" +/> + + + +## Themes + +Theme plugins that can be used to adjust the output for specific platforms. + + + } + arrow={true} + href="plugins/vitepress/introduction" + />{' '} + } + arrow={true} + href="plugins/github-wiki/introduction" + />{' '} + } + arrow={true} + href="plugins/gitlab-wiki/introduction" + /> + + +## Integrations + +Integration plugins that can be used to integrate with other tools. + + + + } + arrow={true} + href="plugins/docusaurus/introduction" + /> + diff --git a/docs/pages/plugins/remark/_meta.js b/docs/pages/plugins/remark/_meta.js new file mode 100644 index 000000000..e0f70f516 --- /dev/null +++ b/docs/pages/plugins/remark/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + 'quick-start': '', + options: '', + 'suggested-plugins': '', +}; diff --git a/docs/pages/utilities/remark/introduction.mdx b/docs/pages/plugins/remark/introduction.mdx similarity index 71% rename from docs/pages/utilities/remark/introduction.mdx rename to docs/pages/plugins/remark/introduction.mdx index fdb0af8a7..e201b70a9 100644 --- a/docs/pages/utilities/remark/introduction.mdx +++ b/docs/pages/plugins/remark/introduction.mdx @@ -1,21 +1,17 @@ import pjson from '../../../../packages/typedoc-plugin-remark/package.json'; -import { Cards, Card } from 'nextra/components'; +import { Cards } from 'nextra/components'; import { faGithub } from '@fortawesome/free-brands-svg-icons'; import { faBolt } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; # typedoc-plugin-remark -![npm](https://img.shields.io/npm/v/typedoc-plugin-remark%2Fnext?&logo=npm) - -## Description - - + ## Examples - } arrow={true} diff --git a/docs/pages/utilities/remark/options.mdx b/docs/pages/plugins/remark/options.mdx similarity index 100% rename from docs/pages/utilities/remark/options.mdx rename to docs/pages/plugins/remark/options.mdx diff --git a/docs/pages/utilities/remark/quick-start.mdx b/docs/pages/plugins/remark/quick-start.mdx similarity index 100% rename from docs/pages/utilities/remark/quick-start.mdx rename to docs/pages/plugins/remark/quick-start.mdx diff --git a/docs/pages/utilities/remark/suggested-plugins.mdx b/docs/pages/plugins/remark/suggested-plugins.mdx similarity index 100% rename from docs/pages/utilities/remark/suggested-plugins.mdx rename to docs/pages/plugins/remark/suggested-plugins.mdx diff --git a/docs/pages/plugins/vitepress/_meta.js b/docs/pages/plugins/vitepress/_meta.js new file mode 100644 index 000000000..4231cbd22 --- /dev/null +++ b/docs/pages/plugins/vitepress/_meta.js @@ -0,0 +1,5 @@ +export default { + introduction: '', + 'quick-start': '', + options: '', +}; diff --git a/docs/pages/themes/vitepress/introduction.mdx b/docs/pages/plugins/vitepress/introduction.mdx similarity index 84% rename from docs/pages/themes/vitepress/introduction.mdx rename to docs/pages/plugins/vitepress/introduction.mdx index 72db7faf3..d7144cbb6 100644 --- a/docs/pages/themes/vitepress/introduction.mdx +++ b/docs/pages/plugins/vitepress/introduction.mdx @@ -1,17 +1,13 @@ import pjson from '../../../../packages/typedoc-vitepress-theme/package.json'; import { Callout, Steps } from 'nextra/components'; -import { Cards, Card } from 'nextra/components'; +import { Cards } from 'nextra/components'; import { faGithub } from '@fortawesome/free-brands-svg-icons'; import { faBolt } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; # typedoc-vitepress-theme -![npm](https://img.shields.io/npm/v/typedoc-vitepress-theme%2Fnext?&logo=npm) - -## Description - - + ## Features @@ -29,14 +25,14 @@ See https://vitepress.dev/guide/what-is-vitepress#what-about-vuepress. The following is a simple example of a VitePress project running TypeDoc. - } arrow={true} href="https://github.com/tgreyuk/typedoc-vitepress-theme-example" target="_blank" />{' '} - } arrow={true} diff --git a/docs/pages/themes/vitepress/options.mdx b/docs/pages/plugins/vitepress/options.mdx similarity index 100% rename from docs/pages/themes/vitepress/options.mdx rename to docs/pages/plugins/vitepress/options.mdx diff --git a/docs/pages/themes/vitepress/quick-start.mdx b/docs/pages/plugins/vitepress/quick-start.mdx similarity index 100% rename from docs/pages/themes/vitepress/quick-start.mdx rename to docs/pages/plugins/vitepress/quick-start.mdx diff --git a/docs/pages/themes/_meta.json b/docs/pages/themes/_meta.json deleted file mode 100644 index 899372f0f..000000000 --- a/docs/pages/themes/_meta.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "vitepress": "Vitepress", - "github-wiki": "Github Wiki", - "gitlab-wiki": "Gitlab Wiki" -} diff --git a/docs/pages/themes/github-wiki/_meta.json b/docs/pages/themes/github-wiki/_meta.json deleted file mode 100644 index 20ce5eb01..000000000 --- a/docs/pages/themes/github-wiki/_meta.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "introduction": "", - "quick-start": "" -} diff --git a/docs/pages/themes/gitlab-wiki/_meta.json b/docs/pages/themes/gitlab-wiki/_meta.json deleted file mode 100644 index 20ce5eb01..000000000 --- a/docs/pages/themes/gitlab-wiki/_meta.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "introduction": "", - "quick-start": "" -} diff --git a/docs/pages/themes/vitepress/_meta.json b/docs/pages/themes/vitepress/_meta.json deleted file mode 100644 index c213e1632..000000000 --- a/docs/pages/themes/vitepress/_meta.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "introduction": "", - "quick-start": "", - "options": "", - "example": "" -} diff --git a/docs/pages/utilities/_meta.json b/docs/pages/utilities/_meta.json deleted file mode 100644 index 221a16a6b..000000000 --- a/docs/pages/utilities/_meta.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "frontmatter": "Frontmatter", - "remark": "Remark" -} diff --git a/docs/pages/utilities/frontmatter/_meta.json b/docs/pages/utilities/frontmatter/_meta.json deleted file mode 100644 index caa7ad850..000000000 --- a/docs/pages/utilities/frontmatter/_meta.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "introduction": "", - "quick-start": "", - "options": "", - "guide": "Guide" -} diff --git a/docs/pages/utilities/remark/_meta.json b/docs/pages/utilities/remark/_meta.json deleted file mode 100644 index fa7a1bc3d..000000000 --- a/docs/pages/utilities/remark/_meta.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "introduction": "", - "quick-start": "", - "options": "", - "suggested-plugins": "" -} diff --git a/docs/public/docusaurus-logo.svg b/docs/public/docusaurus-logo.svg new file mode 100644 index 000000000..250f2fce7 --- /dev/null +++ b/docs/public/docusaurus-logo.svg @@ -0,0 +1 @@ + diff --git a/docs/public/github-logo.png b/docs/public/github-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e28a8373067419c7fec89fc78ca44c0197e77ace GIT binary patch literal 7249 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 literal 0 HcmV?d00001 diff --git a/docs/public/gitlab-logo.png b/docs/public/gitlab-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..15c14c920ffc3666a90304d40e2e1cf898dda4e2 GIT binary patch literal 3662 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 \ No newline at end of file diff --git a/docs/public/remark-logo.png b/docs/public/remark-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9406386c8ff8d4ed3fb4721a5e72b27f6d608c64 GIT binary patch literal 7693 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 literal 0 HcmV?d00001 diff --git a/docs/public/ts-logo.png b/docs/public/ts-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c6b95b2afae4e09e40597a5f746ae697ffce9ce6 GIT binary patch literal 1639 zcmb_c`BRez5Zx~cITSE*8Doo4XsuH43)ljJnn;jKk!l2{2t);?ppaH+0#x`A96%}r z6pAPk@hB#MT)nswZVQRvfs=xqN)R~`tW=b%Y5Om9X6L;(`}WPw{<3L4-fjjf=qmug zz{8z$007ZR1ju+DMU?n+bu{d=m+Puyrl1uSwxRqkRM3nHT5SbwsGuGF2W8BdR;EtG zw4i($DriB4x@tvZ|C`aJ+W!d(TA8|jj83=M3R~@TuCSdM(}sTA#uVz}I=Ah1^VsP0 zoUCW^n;WXvZ|8Sn9iC}QuQX+P)nI4;OuVE|_GJ1G^_%pnfp}?ONd6PARORg!b%o-U zdit$jcK7n~a=heO=#?jVbt9F^@x0pSd9@?Ao7Gfu` z%lhu5oT^^v>updTT6fD5Y&nl2nn8aHnYSXn%Cc<@zXPt;g~LD|_wTscWK+rCs0 ztThUAD+t^pww|D9O-?R;z>=3vB9^BQUBm(;cf?o24Qp=xERHM56tC+!7kO81%mN{f z4Eq5YqA4dQH7+2aKSY&=m}&`Bx|XECuUP=Ybr?q4=#e`f_;LFh;A$$sGt@s5NYUfURNzJ&%$5wG{OHX2E550?!5_WYjg*ZgF z+D;+P$@9ZZR`M!r@{@7=i#a>ou7I_#+f5F9T#{LLiPX)wJK%vIa(X0jI|9}REHst~ zKjlsACbHbfmP`OGPsC;bw(g|#^lq3-J@xPtV0gg`0)$Y+RU6^g#;5lwaQ`aZ;a{90 zz>8Ca{hNRhu~uY^$R{_uuyEk_ODWD5SY~W%U}TDoLFCrmf$+-cyTe0V;nTnqmQT|V ze_z~&yKEX%?F*p%#K3MJZ+rjc5$JSR^xEK{GQ;&)C=T_r^Nr3~A+L*cnjFQI@7Q>K zwZ8nBQPHB+T1@J6v_754n_rn_Q;Cf1H=TWie7ZpuxE)rJ_lzKO-}~&@iMgWh;BW-# zWi@`=Q8-M*Quk>WR2=OFHO)EcnLvY_{sQ{c?CBzSv`omkcJ;=ecW#Jft2@?^fi9b( zasp^9+eRK$VMY{rqH77Yr|$yHZp{dB;?$T>$~m=u>UR6y14wT1`h;}e+j{o4k!&P) zZ~dQ-Coah<3*%&QM-Sc9$3AjNzI6?-Yq3uaSl*8EtY|#dip1|goF|Ac{q5yR(Rk<5 zNGv$_5dMrJANl@74^$mfLfabW?E(FwD~`RDDL+aRKGBS=q!mU*5wGUg=e)+9pSUPe z4XZ8)Q|><+8uYcuv)6Fq&kp>&bn0_*w6J#D^zvU1j_Vzvk(-P!iHhzlrJI-7q+TF3 zx@ftR%(J z>si0*y z$$-9)v31%1dBNo~OY5FCnFNQ14V!UhBe>NjWY>A$=T>bWd-V)Y)`uL`HX1+7wK#8* SsOP48rr_b~%_-Z>JNGv`)Y!=Y literal 0 HcmV?d00001 diff --git a/docs/public/typedoc-logo.png b/docs/public/typedoc-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f05c5a7d48b6c3a347a2e3043ef8991bac303f27 GIT binary patch literal 3861 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 + + + + + + + + + + + + + + diff --git a/docs/public/yaml-logo.png b/docs/public/yaml-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0fca16579e9dbe18cab5b96dbbc7f2a633e65f9b GIT binary patch literal 22173 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°g7SQi3C%2+~cI`j=|EE*;p-b)+%*M_!j{ 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 z zESAtbY&V}f1BW$UeJIp&I5xANwa?09xQeu?AY>SHEzh_Lx8=z+xPz2^=y!X0sl$_BJ_d zB8?8iD+C*Gcg$WEPS(d>-m0CByUpFS!d0YIg-|!!q=o5mxFZp2zNFs>OTbtsU-~Bg z1bcw%%-h_<3c?C;Ak+^&% zn0}jE>k2uzRPrpPW!|jj;dY!`8mGo z0X+GtwLIS+&>tv_X$if2bZRt`$iY{bU_0^)zDj zdE$+miPGL@f!Dq7P{oVCgPwgc7PREV@6?kvprO1b!hYFQ_flwAewMF+NtqCy9Z2AZ z9UGT9Hzi}h?^LAhN311?H$<6?TocE{Y!)6__O(=@@pS}E^s@ppST9stKY-W>e+`VG{Kw+fn@qh+2ociMvy~5$MZxKuyn#U3Hjyf*Kzo8*=o2Nt2-R0aZVtR)bh|AU#uB3<|l;kLnFvMI?yG`u`Bpoz_zqu%?#}%7E zI=Y(~w$+FfMBH7G^1my85!#o;n`!HIW+S~Dv8VaJ*hCw8_dJ`r%_@NP=q3>k&R2U5 z++$DK+im_QzW6T)c<^&h{Q5N0_uu@p5tXXH6LNKfuu^pb(KQ3H@XM$B+`%uPZ4zN` zummi86z72YxmoUQjhK&fdwix|fpqO7)xtj<57Z!LbXJHSYV@Z3^A9WjzfXbX((?2R zxJS8QVYMwQuhB5^z)a%Bq;k0=(6;BCKR&gZenrHB@pa&?J+#u)?miaUHECr3Ep1Lf zDO@`8Wm0KhDoQw+172WUUCB8UVF!{XMle62u6xYOcwpv96ZrVtNCfeXP|1fSC(HkA zcsOnQI=KryEPECqU-)Vr+K)!SWd%Wa1a4*Zf|Af9wW8%)Oex;G7FXk+uORE3zKK7v z*C@80A0padVfU;@L&K+1jJYfaEllSb_>M1rArAT6icwevanJG-aLZ5L z{PX9QH(!F(x&#dRls)=})$0^tue&yh}4qKU1DOJO6D{+17v8g8tPYYB#6LLqaDC+-_>*H!lNI8BhVIiXy zv}NJV=`X3p`f5T4krV-Qv!q@l_}RE}<5S8T-rX^-jnX;h`GDsXl7kbUbvPsOIgu0( zQXR?Xku=Q{9q&itswi%_{h`;fmNBEcg*fJ#rh<7TH08tovZcfP60oRXSL;D9LWn{7 zFIVtThqcymuq4kFe%{C({QcYMuQrPx2fsci)29fmr~O_=a~Ig=lYSHkO#`mIZ1wuh z+nbnn{FaeI@Eb5wQkqO_!FYW3R9&ouOJmxL8d^Ewh|)D1dYJSJ0A^r9TE0yVlYyc}+eEm8v_6uHF*;pL?Qw6h_aiU!n-7%v8hH8%Kf(fKo zQ6chsd~rg1SFeCYHBtX{Zncivy!!^vzQM2Q_-j>5qp&C1&nSe;3na_5n@-qb|=*-ucmV5ZW{g=~#hLRq*D5-}O&_2#6KS{N> zu1^-J{sO^`lYP$MIHP5w39*P8EV<+irtgd|p`FTUzxMM!Sr&EcJxdmWF(P-#TZdLm z?!@3HzOW0&z`J%@Y2sQZQ$Cngzla`rf`|De=+<*nI4L}0kLy^8)={PNNH~mB3sriM z3sLd>d8m6yQ2@+nE0Z7c{T+x&J)wC_rwN~92J0-v&mR{4W2>lY+OxXyC~v!36i>(g@(es4Rii`+D9|@|{^2wzN6!`?TJE~F z$p03`j|$%)dU_a1&2>z-z14Wk+`ANbrsFn2M*J(9$Fj0h1^&Wsogbv6+O!3g$9wdq z=gwxT`ltQ_zn5(!F&=~5nxv#p4h-G}-tbh))0=8kgic?nm+G1kV+FhT_U*znNI-}#Otq0`DzrbRUr>!H|P}rBIKxLL$4SNPM-xl2{*cho_>#6%sCY}SOvJx* zP6?vzyHtD5xo67MVT3{<&ROh@9fY^AUN58+-L$(Dc+7;Z*MLYxY>fnWqV(GY>E=EvPssoAI zj1{oi)>4Dvx%!wLH|W4i;_Kf^y*22~$fWpxQazME&6D2D%DrZG?XppsyQ$rlj)Sq^ zC%RiWDkO#E4-~CP3C^L=X9aF1AW!NQgZL*>$6i_p-}(&UD=nH|w~~eAR5@nZBr1`z z1_xicNCEv+tiRAHErs=B8#`@3^B^_Jd2IphH;+#J4yU4~)==s!_yMwe_oOqrJJcI@ zuG`)VpBqw*9amrjJl$`Y>dJJ8y{^dB(Y~@>hpuQlqh;7vU_yG2ZjZ6N53^JL zXTg%crB83l>ZXoXk`6MRR<{R?>=4$flx^>6RXcX1&AE`#cyLcP{f0GjRT=Kd_dayW z8UqX3Hj??LxJZAWM;Z)+U%-PM^59L_FPlh2HW-|*JQ%EsOqt)RavMOSDs+R?_SHER z58&DdtVpv?Xmh93Gx3$qm!-^4ND{BtsdiZB3}>iSuP5~sd<3|ZJ8vxI^s_|B>2ABD zQL}$DNRG?ywM$UhMKZIJy}&Gbfy&tya#9x2j0o+@__XNXw3Y*zd61TmRlyp?i3>oBEF!8Enu}RIdR&3fm)IZCF$Wk6?*V z=~-5nrP7?plrBWn0giBP!9yyLKS9)v7Y5cwOsb>f_l$f_Y7$lLRm#NKuaSM`rpP*- z#~Aml9+EjPFbFSMiya4Z51=(U_RFE~We4FJ-mF|EPm@X7_gj8lO)`HE@cDfj=p@sN zy1mkMaXg-AmvS_89kFm>^(*P@eV9jH|22wvI@;Y_3~ug$%A(cYnCk%>v|mPB&lpJ6 zMAqxsV{fL)cTqUa$6%1b52y4@xqVf(Dd-Jdz|05o=rwFNU5kL{N-LDDEdnD80s;}Q z^4n$qv>?;}iT~>{VEssmPhJ9JU!D+?vWT|d!sn*wv3$xAi%~Uyqc}PPZo!bT{nV9* zuqSfe{!#;SPHZm&HD|k>Y!6`4$}#8U98g2frU786Y}eDVUQUc?(@b^BpmZ?9X;M|9 z1pBv_kZ+U`pY+V1G7ADO<@-Pa>p0{)T6wtsf6q11Gbd^|LFg#`ha>BWwZR6ROm*00 z$T94aOS=>G-#(0V^oh-KfLXxXe&$behX1H$_57?cgpG))m7|ZR6_f|(N)hIu2c@>n zdspo8ufg}2T%E^^Z!EP~47?bwfaRj4iZ~Sp7{us??`M2-D{X6%D;r#iGPYM+19f(E zE3DZ3un=$l*Fu%i526a5Fh38^xSYNleUvi9BQ~rJ_zN?l(ajGua89EQ{q#>(j(nY; zNQQFtA3roJdNC356!s&t7VkOKl64|HlW5N=V$;QPA9@ARxK?qFdDbVQ{IY-idD8gp zkmV-4A&n?dCa5t*E#w||t8BOQ!`aB>?N0rQ3x7ug;5S@b(ojQm_(#ejB^ml#{wON1 zhPM;nRzRgNXq@ZGvJCKiZa}ZwUoEeU&4Y<1-j3heoE1AMk$nZ4ug!|!oF~1xj!RIg zv{*_Xc2tSKFgv$sr=;j-zva*xPX&BdIwTqBShwlJjHfmPHrNFtbvGy=TB2^if2#AS z^Oc#)$|YY}b!PyaYk{TdhHUoguCs&+7K)oS0M$F;E$y5k8UiF7}Q(?98uN zz?aWBJcDS@jeMyD=_WeGpyzSU@F`XP%u%m@VFMy5S7ASL+KFW`!(?Ye&%a!e%1iGk z7rNA>6Dx|F5@22 zU@QRVYOt>Bwtoj&1}wKTJa7{ar66N) zlzZYMvh*-6&-sQo0?Y+~AF~a`oqBJg%s$_jU!dBfuDeRP-*6}6z ztV~6)#FTSe+)(gyZ2uruIs4|EAHTMWmPzi9Q#a>>|Av6NKfZ%`_$UeGpr3@!Z>I}a zU)g}!#Bix7x~X`9`0^PXY+SQmbLW5xV%$IH4pt6%qYm#;y(j@~bn{rE5qp5$&}onz zk)v69O_e1i{bgQgJvdGGc)X^R-%=q}HrUi0n2}cGcckLX1&mxV1yPAUMkseYpw)Q9=mEC6y=cn%7 z`m5uXi=eqB5L~8vkG*FMcQv2_} z$5A-o@!9*viizgvmn~n$ve9Dc&1mJ2U(07fkW&jQiBXy=xerxzT0zF!Mu_V~$i!+! zL5ZGy+IeYTazNNF1g?^LX%W_nfQ|6-kyyURWZ_CxyfuMbh+ynEwcGiw%RTus4BK8u zpt5wkt+l-Q#@r`DTK&p~ou5N0k&NMo#kl2DFzq4(si>}*G`=OpvFifkMTg`~m`EENJM+9P1ttr`O)Gs>l0VAc;IUOOv5zfBmZaz{7U|OSoa1+G z+(M|}pS{0nf$SrGYwy6p@Q_XDYyWN+0WGUhd=D_nf_y_32*={$CG~_-742H(AT{-n znM){um_*QBPUWl3{P8QY^o7SM5KeL=-=Zd1LLmmJSa0gSki9s>t*vJVw~ePnL0QVP z{`(b=F*BHK`TsR+ih|w;r|t}b!uSH!$9Af{vFgR*>lIpn{K|w|I~+`a8wj^>xB}M% zDsYz<3eF`J94}D}?a=hbf>xh21l@K zoite6If=2BQG>S)E41j$<>d6trj0K@#S7{H^6@Pot|TD)xQh%8-qL8NaGq28%C!ik zeSD;fz%5;`E0D@nT`oLvZlt#7$5QQ#g}F^#>Mt>Z5GS|bJ#^9@oaX!?-f<|`L4b?z z|9}5UF`%QpbtamVNkAUW5=(r>G<&NHv#$fmaPv%kM2fl3_8k(C)`s6(*5Z)hf@m}X zK54YoYeb}zG89daqdpv71`}wmYnFRBlzZ9Rc(lst+1qA8Z|+@CH#G`A%=2?UWs}= zfTHm*&5X~73fTTl0rz06f054+UB)?}M>Y7{4V84AOr|MLbN}}=G)mx-BD_Ghmpx<+t^$Kg>L2uv0c)z;%XHJ|X|X(F z0RCCM&>v7Qhe04E)W{TNiZ@JBsDU!=B$@)e?HbI9^n8N|=@doDAj$i6`H0|OFfqQX zQxnqr`$cRbQHiNvwF^w~{(V5wgz~H`gcBgE=VWFlK8r?j{`z`q2}9&3A3}0u53|Tc zdBag3^85RSeIs%u;?*NBcW8zz|Jh3`szM4>0jtAKQRH*j7pu)TBIR#5po)|KK5+4Y zMyxDO8G|cX(OA?^vP5U;1(etLn7l@HAeO%p?0eynRYs4JsXdg1 znYj^>$-euX$*UKOO5!1JYLK|Rn#%bh%!3NFa*j#cCnF1@urmoCtwPCEn|UZh$C$i+ z(x7C>;(JLHMA2Zd*8eBptUD6;C?VIH0q_?kU~zsmUyLI%GF6T~MRAZ(Wg*X|RGfz} zUBIKvc;PKyD#pivE4{9HU!=rf-C!K7nylX(nMI?LZjgV++9eZxgKdGs#-6TH< z8D@qSdF2~PN>Cn|b%mZ`H#nQx!?%>3!G(KZFGa_$0ocnoO5DM}BtLjCgE%co_=Ym$ zB2(4j{Q#OFvj-hVkQA&mkPSv3;imJ+O@B5l=3foNaL<>X?HBrEZ!R-mVgmQrLfHdBR z3C45DC^g2GUml$hX;qDYxn<<=48mAty?p~!-=l)JwVd$izVcqsW4qJi@cO`J> z!TH;$Bw%cS&J=Bjc9%5^Zv6y*AAtPHQjr_9-PC@mk<&ATyy)Oee|MPslf}i4q#!>s zrJq)BHa8BBvB!eLgC(}SRiMVETO1jj5?bUXdfJnTR!l#CFrjcj?7$$oRrBCq36*pM z@S6R7L;FXSe4cw$qdQDx5BMt#)J^TQ0`NUk3RtcCnBdmT`bNRZ8F+^?cdmjv`Zn1& zFpK=;E$8pFSZa3JVuA>_FOs4BA56)P=`od~%SjzB&Ks%tG0cwNS@rr1&3{BOQz?I2>(IhLN`9MOI zO_xwIT=gH_Lp<8ZU*z4ufE&*rNRCkAU#TaOF#9!#uwrk>^6!HYvuN;_32c8iBQO5< zAQ;IOK7NfF_7d=#UiB)FlzadZ&)IwaUsyo17c!MT8nAoD{r$PgoZa*8dH_nOK0l*u_jfW&%AQMF`sPPqtNk?MJ$WN;nu z)0BOs4ul|(Db!_CEw+pH53}~PwXaM^)sl^zO@SM22q6vWurRT*q5$qW$Hp(0AfJ;} za%rk(u46AAdB<&hyC<1w8C5oCuf9ePE7#pUUr{^{xY@V2NvTyPA%(xl=g^fHOT7E{ z$B}5Fuu#b0kdCZhr7^f2^3+qLFB@r2_Ak2N+Tt*GeO6%LwnxYIx)>_MxHn_({=9%3 zOeN0*xQEmvD7lVV96dSKNJOsS68Lwe?`XjGR#V!Vv%(-iiz#}!-)O4?T!w1R*dvl& z!5&ysu#9~-0r6=o1G(q=r|+m7src|`MwJ*|0`?fM=OuaZltLjS!NvM3hr+iknBtcc z#7i##{nQ=gN7eGxXVqNC-@UTqCM%3r;WO`&jv;pa{qW8W{AH#GOP{W6Z2}zG4;W4C zcRQ4v0mdP#9F3~IS)U~>hW~PBcEML3@{G!x>*d&0By(X#oF6X0~8qmc5an)(BYLT*Gw0cVN)T%lQAba`e$q zrTwYis1vKV?>VV<*Tvae}{bStc-sgFK-yiq>o?j)9u+e6vm(E^U z5{@*j_2o>`Rwz*?MZTBmoPf+WCf5V?bX~ z3rTe4vdu zyr#;tyvmA)BYBl3~oKc*$i>%!N>k-nn^fbswbhMo(nPb zUJIR*B}6av(t({6_&k90nH+T0{#F=e>Y(C;H4rO3pD@L_H(aJ6t3?g2xfTzklkhpZ z(CFRP%Ek1+*AlW541De6?u})ZQ1YGIyhv%6G0?>}Q`Qk%PQ^>0tP`mIBBh=;>^go$ z*EsU(oIk7igp*r^lx5jlI~DD^CDdJZp~-rx{iQT?bl5KokYqbKeFpNdkcrv;wbb8?y4ynEecjdr5Vd`__`EL?LzmU+g) zjcJj@V;F z#BXw=mIPAL!Sz%dR)glCBNCl=Qm&Jk()D_n-3(qDQZ`1wIS;jcgNL@4NKXIt?4Hx% zdof-Q1{;Xc@7x-%uNgaT3D8~<-7H#u?sI=HT!Amo{k(~)gAP>RAZ2jh=;?ZE-E_k} z$d3iQSec(?Yq=m4{zUw+(b}C$sA-#CX0jjFh z8xRjM5&VaOs0@MP7=!@OU<*Y@eW8?($~B|V8;)tAH9m+Usntxi0oeW!9CcSh3HCxJ z<94KvcCG%2zI;Ngg4)IyDjv)9<)`aD&UXoW)7e`)8LjEL*jZV{WEeno$N{{``Er}y zoU7Ssoyk*;5N6Zi#H(SrVm~{5Fr@_%X8tQF5hC3?W37CUt516#(#gknT_+_tDUV^D zIxmEd33aZLA}-Jb!MR!-KtYA*@-`1qm41^-TctQ$K^pMe_Dn=vF_R(J&E2-0;$SAX zPpkIPHZU2U0t&tyf>y+w=06U(_uK3Lh(Wvks9ZAzvL(JbzJEU1vu4BKAH*b#X3Tjj zi7v>%VV`(E0>D=I)@d|T!_hBQ;Ux*O7-tZH7`cGO9Sg5m2oBCo)ixvMY@>#5+4sn- zDxQ|_vd9p{ezAw`4sAZ#KzhWB%jLcc(CtZSAQNswZP4=sX@a`Q)>CUpZ$8*4(VNJa zf}6xfRgIbM2dHPpKvtGmUJEvu`xhWHn*rB)n>YM^buKlC<-tuUEVfAT^Rzlw*#uC}Z`sZdHz%wyg5jFl#j6X&i`^&V|FL*gWDa?a0d6-ROfISR z&yC;xZ{{|uwZu%7`U*JnFWE@v<=&b1W3r+MKn+Mrn_XrP__nk5k@YyNaSc0HSiLhh zK1il9!SWIDz6G_3*_=x9unDQ@POvArNyXj!h-wUSO?Qw)vyvIJzmY&xVld~CyN^tl zcZ5i+@rpHft$A8Loz;>*1xaM{5=$@j#Ss@}BDRsCJv!mA`y%?BJSpn)L zh+xa;`Ii8n1l8$c^njV5e-wBHR`c#E>#8KIg znWYYD^U`vdel43wp&pOo003Hr_`J?%hs6u^46yFLRFk}}mvO0TE7OP;gGc{u%WlE=>>60p9xnS6xRdmHc zxfVm2CtWBhOvyfbBU2Nn&yngb5h0Rnfx#apGK5B+qES*P$u_s;fkq%6`ZdPFSr50y zv<^cqzHZJ3D%v-hP`VWcNJX3ahKNyXH@@6r48o~?o9Da0%2`#T>Bx`+lUcQime-ai z<#rciyY)?v@5B`!(#a7%o-Kc+A~@;m{g5*-a{KAXKydVGDiL%VRD5HFy;8v3BIOe} z33_5mV~C)j`J#T=r`5kdP@BaHO}WSiD6C|*H!loFQC*nU3g-llGDT{;r@#GrS31Ywx8F2)~ z>`ot$36U7sjyYT=%g`L38@27Y0fHf}p_OE}*0zlf=SQWCLqM1e#>DmaFxifn{|8z# zHKi_}cRTx<&;r6;$13(EEKz2~y^p_P*LejCz#FJnbfVLK+He7=LTe|V)5p@jC4)1= z=b?AHH1+1^W@D;uJ2=r0yfm~Y4e<~KYVaBr^bA1-f568eD*eBYeT_B#7NWns`8BZm z8f#zzhL#$8&}cC!QJ@4+#J{{?_ -
- +
+ Markdown +
+
+ TYPEDOC-PLUGIN-MARKDOWN
- typedoc-plugin-markdown
), project: { @@ -19,8 +26,11 @@ export default { sidebar: { defaultMenuCollapseLevel: 1, }, - editLink: { text: '' }, - banner: { dismissible: true, text: 'V4 pre-release documentation 👋' }, + editLink: { text: 'x' }, + banner: { + content: <>V4 pre-release documentation 👋, + dismissible: false, + }, components: { PackageDescription, }, diff --git a/docs/tsconfig.json b/docs/tsconfig.json new file mode 100644 index 000000000..65348e831 --- /dev/null +++ b/docs/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "strict": false, + "noEmit": true, + "incremental": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve" + }, + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx" + ], + "exclude": [ + "node_modules" + ] +} diff --git a/package-lock.json b/package-lock.json index 0b65f3df5..25c7e4834 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,6 +41,7 @@ "ts-node": "^10.9.2", "tsc-alias": "^1.8.8", "typedoc": "0.25.12", + "typedoc-plugin-merge-modules": "^5.1.0", "typescript": "^5.4.2", "unified-prettier": "^2.0.1" } @@ -20634,6 +20635,15 @@ "resolved": "packages/typedoc-plugin-markdown", "link": true }, + "node_modules/typedoc-plugin-merge-modules": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/typedoc-plugin-merge-modules/-/typedoc-plugin-merge-modules-5.1.0.tgz", + "integrity": "sha512-jXH27L/wlxFjErgBXleh3opVgjVTXFEuBo68Yfl18S9Oh/IqxK6NV94jlEJ9hl4TXc9Zm2l7Rfk41CEkcCyvFQ==", + "dev": true, + "peerDependencies": { + "typedoc": "0.24.x || 0.25.x" + } + }, "node_modules/typedoc-plugin-remark": { "resolved": "packages/typedoc-plugin-remark", "link": true @@ -22126,7 +22136,7 @@ } }, "packages/docusaurus-plugin-typedoc": { - "version": "1.0.0-next.27", + "version": "1.0.0-next.28", "license": "MIT", "devDependencies": { "@docusaurus/core": "^3.1.1", @@ -22137,31 +22147,31 @@ } }, "packages/typedoc-github-wiki-theme": { - "version": "2.0.0-next.6", + "version": "2.0.0-next.7", "license": "MIT", "peerDependencies": { "typedoc-plugin-markdown": ">=4.0.0-next.51" } }, "packages/typedoc-gitlab-wiki-theme": { - "version": "2.0.0-next.6", + "version": "2.0.0-next.7", "license": "MIT", "peerDependencies": { "typedoc-plugin-markdown": ">=4.0.0-next.51" } }, "packages/typedoc-plugin-frontmatter": { - "version": "0.0.3-next.0", + "version": "1.0.0-next.1", "license": "MIT", "dependencies": { "yaml": "^2.3.4" }, "peerDependencies": { - "typedoc-plugin-markdown": ">=4.0.0-next.39" + "typedoc-plugin-markdown": ">=4.0.0-next.54" } }, "packages/typedoc-plugin-markdown": { - "version": "4.0.0-next.53", + "version": "4.0.0-next.54", "license": "MIT", "peerDependencies": { "typedoc": "0.25.x" @@ -22179,7 +22189,7 @@ } }, "packages/typedoc-vitepress-theme": { - "version": "1.0.0-next.9", + "version": "1.0.0-next.10", "license": "MIT", "peerDependencies": { "typedoc-plugin-markdown": ">=4.0.0-next.51" diff --git a/package.json b/package.json index f68313496..20b9c4199 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "ts-node": "^10.9.2", "tsc-alias": "^1.8.8", "typedoc": "0.25.12", + "typedoc-plugin-merge-modules": "^5.1.0", "typescript": "^5.4.2", "unified-prettier": "^2.0.1" } diff --git a/packages/docusaurus-plugin-typedoc/src/plugin.ts b/packages/docusaurus-plugin-typedoc/src/plugin.ts index 2e7a71288..f727ccab4 100644 --- a/packages/docusaurus-plugin-typedoc/src/plugin.ts +++ b/packages/docusaurus-plugin-typedoc/src/plugin.ts @@ -69,29 +69,31 @@ async function generateTypedoc(context: any, opts: Partial) { app.renderer.postRenderAsyncJobs.push( async (output: MarkdownRendererEvent) => { - const sidebarPath = path.resolve(outputDir, 'typedoc-sidebar.cjs'); - const baseDir = path - .relative(siteDir, outputDir) - .split(path.sep) - .slice(1) - .join(path.sep); - const sidebarJson = getSidebar( - output.navigation, - baseDir, - sidebar.filteredIds, - docsPreset ? docsPreset[1]?.docs?.numberPrefixParser : null, - ); - fs.writeFileSync( - sidebarPath, - `// @ts-check + if (output.navigation) { + const sidebarPath = path.resolve(outputDir, 'typedoc-sidebar.cjs'); + const baseDir = path + .relative(siteDir, outputDir) + .split(path.sep) + .slice(1) + .join(path.sep); + const sidebarJson = getSidebar( + output.navigation, + baseDir, + sidebar.filteredIds, + docsPreset ? docsPreset[1]?.docs?.numberPrefixParser : null, + ); + fs.writeFileSync( + sidebarPath, + `// @ts-check /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ const typedocSidebar = { items: ${JSON.stringify( - sidebarJson, - null, - sidebar.pretty ? 2 : 0, - )}}; + sidebarJson, + null, + sidebar.pretty ? 2 : 0, + )}}; module.exports = typedocSidebar.items;`, - ); + ); + } }, ); } diff --git a/packages/typedoc-github-wiki-theme/src/index.ts b/packages/typedoc-github-wiki-theme/src/index.ts index 69f39356e..540eefea2 100644 --- a/packages/typedoc-github-wiki-theme/src/index.ts +++ b/packages/typedoc-github-wiki-theme/src/index.ts @@ -10,7 +10,7 @@ import { MarkdownPageEvent, MarkdownRendererEvent, NavigationItem, - OutputFileStrategy, + PluginOptions, } from 'typedoc-plugin-markdown'; import { DEFAULT_SIDEBAR_OPTIONS } from './options'; import * as options from './options/declarations'; @@ -59,7 +59,7 @@ export function load(app: Application) { ...DEFAULT_SIDEBAR_OPTIONS, ...app.options.getValue('sidebar'), }; - if (sidebarOptions.autoConfiguration) { + if (sidebarOptions.autoConfiguration && output.navigation) { const sidebarHeading = sidebarOptions.heading; const sidebarContent = getSidebar( output.navigation, @@ -83,7 +83,7 @@ export function load(app: Application) { export function getSidebar( navigationItems: NavigationItem[], - outputFileStrategy: OutputFileStrategy, + outputFileStrategy: PluginOptions['outputFileStrategy'], ) { const parseSidebarUrl = (url: string) => '../wiki/' + url.replace('.md', ''); const md: string[] = []; @@ -103,7 +103,7 @@ export function getSidebar( } }); } else { - if (outputFileStrategy === OutputFileStrategy.Members) { + if (outputFileStrategy === 'members') { navigationItems.forEach((navigationItem, i) => { md.push(`### ${navigationItem.title}`); if (navigationItem.children) { diff --git a/packages/typedoc-github-wiki-theme/src/options/option-types.ts b/packages/typedoc-github-wiki-theme/src/options/option-types.ts index ecd770576..0ebce1c86 100644 --- a/packages/typedoc-github-wiki-theme/src/options/option-types.ts +++ b/packages/typedoc-github-wiki-theme/src/options/option-types.ts @@ -8,10 +8,23 @@ declare module 'typedoc' { } } +/** + * Describes the options declared by the plugin. + * + * @category Options + */ export interface PluginOptions { - sidebar: ManuallyValidatedOption; + /** + * Configures the autogenerated `_sidebar.md file`. + */ + sidebar: Sidebar; } +/** + * + * + * @category Options + */ export interface Sidebar { autoConfiguration: boolean; heading: string; diff --git a/packages/typedoc-gitlab-wiki-theme/src/index.ts b/packages/typedoc-gitlab-wiki-theme/src/index.ts index e811c69fb..3886445a8 100644 --- a/packages/typedoc-gitlab-wiki-theme/src/index.ts +++ b/packages/typedoc-gitlab-wiki-theme/src/index.ts @@ -10,7 +10,7 @@ import { MarkdownPageEvent, MarkdownRendererEvent, NavigationItem, - OutputFileStrategy, + PluginOptions, } from 'typedoc-plugin-markdown'; import { DEFAULT_SIDEBAR_OPTIONS } from './options'; import * as options from './options/declarations'; @@ -59,7 +59,7 @@ export function load(app: Application) { ...DEFAULT_SIDEBAR_OPTIONS, ...app.options.getValue('sidebar'), }; - if (sidebarOptions.autoConfiguration) { + if (sidebarOptions.autoConfiguration && output.navigation) { const sidebarHeading = sidebarOptions.heading; const sidebarContent = getSidebar( output.navigation, @@ -100,7 +100,7 @@ export function navigation(navigationItems: NavigationItem[]): string { export function getSidebar( navigationItems: NavigationItem[], - outputFileStrategy: OutputFileStrategy, + outputFileStrategy: PluginOptions['outputFileStrategy'], ) { const parseSidebarUrl = (url: string) => url.replace(/(.*).md/, '$1'); const md: string[] = []; @@ -120,7 +120,7 @@ export function getSidebar( } }); } else { - if (outputFileStrategy === OutputFileStrategy.Members) { + if (outputFileStrategy === 'members') { navigationItems.forEach((navigationItem, i) => { md.push(`### ${navigationItem.title}`); if (navigationItem.children) { diff --git a/packages/typedoc-gitlab-wiki-theme/src/options/option-types.ts b/packages/typedoc-gitlab-wiki-theme/src/options/option-types.ts index ecd770576..6589b356e 100644 --- a/packages/typedoc-gitlab-wiki-theme/src/options/option-types.ts +++ b/packages/typedoc-gitlab-wiki-theme/src/options/option-types.ts @@ -8,10 +8,23 @@ declare module 'typedoc' { } } +/** + * Describes the options declared by the plugin. + * + * @category Options + */ export interface PluginOptions { - sidebar: ManuallyValidatedOption; + /** + * Configures the autogenerated `_Sidebar.md file`. + */ + sidebar: Sidebar; } +/** + * + * + * @category Options + */ export interface Sidebar { autoConfiguration: boolean; heading: string; diff --git a/packages/typedoc-plugin-frontmatter/src/index.ts b/packages/typedoc-plugin-frontmatter/src/index.ts index 57e3b50c8..c7dda0eb4 100644 --- a/packages/typedoc-plugin-frontmatter/src/index.ts +++ b/packages/typedoc-plugin-frontmatter/src/index.ts @@ -90,7 +90,7 @@ export function load(app: Application) { app.renderer.on( MarkdownPageEvent.END, (page: MarkdownPageEvent) => { - if (Object.keys(page.frontmatter)?.length) { + if (page.frontmatter && Object.keys(page.frontmatter)?.length) { page.contents = page?.contents ?.replace(/^/, `---\n${yaml.stringify(page.frontmatter)}---\n\n`) .replace(/[\r\n]{3,}/g, '\n\n'); diff --git a/packages/typedoc-plugin-frontmatter/src/options/option-types.ts b/packages/typedoc-plugin-frontmatter/src/options/option-types.ts index 6aea29332..6f652aaea 100644 --- a/packages/typedoc-plugin-frontmatter/src/options/option-types.ts +++ b/packages/typedoc-plugin-frontmatter/src/options/option-types.ts @@ -13,17 +13,60 @@ declare module 'typedoc' { } } +/** + * Describes the options declared by the plugin. + * + * @category Options + */ export interface PluginOptions { - frontmatterGlobals: ManuallyValidatedOption; - readmeFrontmatter: ManuallyValidatedOption; - indexFrontmatter: ManuallyValidatedOption; + /** + * Specify static variables to be added to all frontmatter blocks. + */ + frontmatterGlobals: FrontmatterGlobals; + + /** + * Specify static variables to be added to the readme page only. + */ + readmeFrontmatter: ReadmeFrontmatter; + + /** + * Specify static variables to be added to the index page only. + */ + indexFrontmatter: IndexFrontmatter; + + /** + * Specify which comment block tags should be added to frontmatter. + */ frontmatterCommentTags: any[]; + + /** + * Preserve tags defined in frontmatter block tags in output. + */ preserveFrontmatterCommentTags: boolean; + + /** + * The naming convention that variables should be output as. + */ frontmatterNamingConvention: 'camelCase' | 'snakeCase'; } +/** + * + * + * @category Options + */ export interface FrontmatterGlobals {} +/** + * + * + * @category Options + */ export interface ReadmeFrontmatter {} +/** + * + * + * @category Options + */ export interface IndexFrontmatter {} diff --git a/packages/typedoc-plugin-markdown/.docs/plugins/typedoc-ignore-typeparam.mjs b/packages/typedoc-plugin-markdown/.docs/plugins/typedoc-ignore-typeparam.mjs new file mode 100644 index 000000000..047885db7 --- /dev/null +++ b/packages/typedoc-plugin-markdown/.docs/plugins/typedoc-ignore-typeparam.mjs @@ -0,0 +1,46 @@ +// @ts-check + +import { Converter, ReflectionKind } from 'typedoc'; + +/** + * Local plugin to tweak TypeDoc output for nextra docs + * + * @param {import("typedoc-plugin-markdown").MarkdownApplication} app + */ +export function load(app) { + const ignoredTypeParameters = []; + app.converter.on( + Converter.EVENT_CREATE_TYPE_PARAMETER, + (_ctx, param, node) => { + if (node?.getFullText().includes('@ignore')) { + ignoredTypeParameters.push(param); + } + }, + ); + app.converter.on(Converter.EVENT_RESOLVE_BEGIN, () => { + for (const param of ignoredTypeParameters) { + removeIfPresent(param.parent.typeParameters, param); + const ctor = param.parent.children?.find((r) => + r.kindOf(ReflectionKind.Constructor), + ); + for (const s of ctor?.signatures ?? []) { + removeIf(s.typeParameters, (p) => p.name === param.name); + } + } + ignoredTypeParameters.length = 0; + }); +} + +function removeIf(arr, fn) { + const index = arr?.findIndex(fn) ?? -1; + if (index !== -1) { + arr.splice(index, 1); + } +} + +function removeIfPresent(arr, item) { + const index = arr?.indexOf(item) ?? -1; + if (index !== -1) { + arr.splice(index, 1); + } +} diff --git a/packages/typedoc-plugin-markdown/.docs/plugins/typedoc-nextra.mjs b/packages/typedoc-plugin-markdown/.docs/plugins/typedoc-nextra.mjs new file mode 100644 index 000000000..8b793139e --- /dev/null +++ b/packages/typedoc-plugin-markdown/.docs/plugins/typedoc-nextra.mjs @@ -0,0 +1,85 @@ +// @ts-check + +import * as fs from 'fs'; +import * as path from 'path'; +import { ReflectionKind } from 'typedoc'; +import { MarkdownTheme } from 'typedoc-plugin-markdown'; + +/** + * Local plugin to tweak TypeDoc output for nextra docs + * + * @param {import("typedoc-plugin-markdown").MarkdownApplication} app + */ +export function load(app) { + writeMetaJsFiles(app); + app.renderer.defineTheme('nextra', NextraTheme); +} + +/** + * Writes Nextra _meta.js files to fix-up navigation labels. + * + * @param {import("typedoc-plugin-markdown").MarkdownApplication} app + */ +function writeMetaJsFiles(app) { + app.renderer.postRenderAsyncJobs.push(async (output) => { + /** + * + * @param {import("typedoc-plugin-markdown").NavigationItem[]} navigationItems + * @param {string} outputDirectory + * @param {Record} defaultValue + */ + const metaOut = { index: 'Index' }; + output.navigation?.forEach((item) => { + metaOut[item.title] = { type: 'separator', title: item.title }; + if (item.children) { + item.children.forEach((child) => { + const key = path.parse(child.url || '').name; + metaOut[key] = child.title; + }); + } + }); + + fs.writeFileSync( + path.join(output.outputDirectory, '_meta.js'), + `export default ${JSON.stringify(metaOut, null, 2)}`, + ); + }); +} + +export function slugifyUrl(url) { + return url + .toLowerCase() + .trim() + .replace(/[^\w\s-]/g, '') + .replace(/[\s_-]+/g, '-') + .replace(/^-+|-+$/g, ''); +} + +export class NextraTheme extends MarkdownTheme { + getUrls(project) { + return super.getUrls(project).map((urlMapping) => { + if (urlMapping.model.kind === ReflectionKind.Project) { + return urlMapping; + } + return { + ...urlMapping, + url: this.getUrl(urlMapping.model), + }; + }); + } + + getUrl(reflection) { + const fullname = reflection.getFullName(); + const fullnameParts = fullname.split('.'); + if (reflection.kind !== ReflectionKind.Module) { + fullnameParts.splice( + fullnameParts.length - 1, + 0, + ReflectionKind.singularString(reflection.kind).split(' ')[0], + ); + } + const url = `${fullnameParts.join('.')}.md`; + reflection.url = url; + return url; + } +} diff --git a/packages/typedoc-plugin-markdown/.docs/plugins/typedoc-symbol-resolver.mjs b/packages/typedoc-plugin-markdown/.docs/plugins/typedoc-symbol-resolver.mjs new file mode 100644 index 000000000..eb21a2a95 --- /dev/null +++ b/packages/typedoc-plugin-markdown/.docs/plugins/typedoc-symbol-resolver.mjs @@ -0,0 +1,18 @@ +// @ts-check + +/** + * Local plugin to tweak TypeDoc output for nextra docs + * + * @param {import("typedoc-plugin-markdown").MarkdownApplication} app + */ +export function load(app) { + app.converter.addUnknownSymbolResolver((ref) => { + if (ref?.symbolReference?.path && ref.moduleSource !== 'typedoc') { + const name = ref?.symbolReference?.path[0].path; + return { + target: `https://typedoc.org/api/classes/${name}`, + caption: name, + }; + } + }); +} diff --git a/packages/typedoc-plugin-markdown/.docs/typedoc.base.cjs b/packages/typedoc-plugin-markdown/.docs/typedoc.base.cjs new file mode 100644 index 000000000..6253ce0c4 --- /dev/null +++ b/packages/typedoc-plugin-markdown/.docs/typedoc.base.cjs @@ -0,0 +1,58 @@ +// @ts-check + +/** + * @type {Partial & Partial} + */ +const options = { + entryPoints: ['../src/public-api.ts'], + sortEntryPoints: false, + name: 'API', + readme: 'none', + sort: ['required-first', 'source-order'], + includeVersion: false, + categoryOrder: [ + 'Application', + 'Options', + 'Custom Theme', + 'Page Partials', + 'Container Partials', + 'Member Partials', + 'Comment Partials', + 'Type Partials', + '*', + ], + disableSources: true, + excludeInternal: true, + excludeExternals: true, + excludePrivate: true, + categorizeByGroup: false, + externalSymbolLinkMappings: { + typedoc: { + Application: 'https://typedoc.org/api/classes/Application.html', + CommentDisplayPart: + 'https://typedoc.org/api/types/Models.CommentDisplayPart.html', + DeclarationReflection: + 'https://typedoc.org/api/classes/Models.DeclarationReflection.html', + DefaultThemeRenderContext: + 'https://typedoc.org/api/classes/DefaultThemeRenderContext.html', + Options: 'https://typedoc.org/api/classes/Configuration.Options.html', + PageEvent: 'https://typedoc.org/api/classes/PageEvent.html', + ProjectReflection: + 'https://typedoc.org/api/classes/Models.ProjectReflection.html', + Renderer: 'https://typedoc.org/api/classes/Renderer.html', + RendererEvent: 'https://typedoc.org/api/classes/RendererEvent.html', + RenderTemplate: 'https://typedoc.org/api/types/RenderTemplate.html', + Reflection: 'https://typedoc.org/api/classes/Models.Reflection.html', + ReflectionGroup: + 'https://typedoc.org/api/classes/Models.ReflectionGroup.html', + Theme: 'https://typedoc.org/api/classes/Theme.html', + TypeDocOptions: 'https://typedoc.org/api/interfaces/TypeDocOptions.html', + UrlMapping: 'https://typedoc.org/api/classes/UrlMapping.html', + Event: 'https://typedoc.org/api/classes/Event.html', + ManuallyValidatedOption: + 'https://typedoc.org/api/types/Configuration.ManuallyValidatedOption.html', + EventHooks: 'https://typedoc.org/api/classes/EventHooks.html', + }, + }, +}; +module.exports = options; diff --git a/packages/typedoc-plugin-markdown/.docs/typedoc.html.cjs b/packages/typedoc-plugin-markdown/.docs/typedoc.html.cjs new file mode 100644 index 000000000..4fe9bb657 --- /dev/null +++ b/packages/typedoc-plugin-markdown/.docs/typedoc.html.cjs @@ -0,0 +1,15 @@ +// @ts-check + +/** + * @type {Partial & Partial} + */ +const options = { + ...require('./typedoc.base.cjs'), + out: './html', + navigation: { + includeCategories: true, + includeGroups: true, + }, + plugin: ['./plugins/typedoc-ignore-typeparam.mjs'], +}; +module.exports = options; diff --git a/packages/typedoc-plugin-markdown/.docs/typedoc.md.cjs b/packages/typedoc-plugin-markdown/.docs/typedoc.md.cjs new file mode 100644 index 000000000..469573d69 --- /dev/null +++ b/packages/typedoc-plugin-markdown/.docs/typedoc.md.cjs @@ -0,0 +1,31 @@ +// @ts-check + +/** + * @type {Partial & Partial} + */ +const options = { + ...require('./typedoc.base.cjs'), + plugin: [ + 'typedoc-plugin-markdown', + './plugins/typedoc-nextra.mjs', + './plugins/typedoc-ignore-typeparam.mjs', + ], + out: '../../../docs/pages/api-docs', + publicPath: '/api-docs', + indexFormat: 'table', + mergeReadme: true, + theme: 'nextra', + fileExtension: '.mdx', + entryFileName: 'index.mdx', + hideBreadcrumbs: true, + hidePageHeader: true, + excludeGroups: true, + parametersFormat: 'table', + outputFileStrategy: 'members', + useCodeBlocks: false, + textContentMappings: { + 'title.memberPage': '{name}', + }, + expandParameters: true, +}; +module.exports = options; diff --git a/packages/typedoc-plugin-markdown/scripts/prebuild-kinds.ts b/packages/typedoc-plugin-markdown/.scripts/prebuild-kinds.ts similarity index 99% rename from packages/typedoc-plugin-markdown/scripts/prebuild-kinds.ts rename to packages/typedoc-plugin-markdown/.scripts/prebuild-kinds.ts index 9de052c48..ab20b3aca 100644 --- a/packages/typedoc-plugin-markdown/scripts/prebuild-kinds.ts +++ b/packages/typedoc-plugin-markdown/.scripts/prebuild-kinds.ts @@ -8,7 +8,6 @@ export async function prebuildKinds() { __dirname, '..', 'src', - 'app', 'options', 'text-mappings', 'kind-defaults.ts', diff --git a/packages/typedoc-plugin-markdown/scripts/prebuild-resources.ts b/packages/typedoc-plugin-markdown/.scripts/prebuild-resources.ts similarity index 68% rename from packages/typedoc-plugin-markdown/scripts/prebuild-resources.ts rename to packages/typedoc-plugin-markdown/.scripts/prebuild-resources.ts index 010981c2a..42e564e61 100644 --- a/packages/typedoc-plugin-markdown/scripts/prebuild-resources.ts +++ b/packages/typedoc-plugin-markdown/.scripts/prebuild-resources.ts @@ -7,23 +7,9 @@ const project = new Project({ tsConfigFilePath: 'tsconfig.json', }); -const resourcesPath = path.join( - __dirname, - '..', - 'src', - 'theme', - 'markdown-theme-render-context', -); +const resourcesPath = path.join(__dirname, '..', 'src', 'theme', 'resources'); export async function prebuildResources() { - //writeBarrelsFile('templates'); - //writeBarrelsFile('partials'); - //writeResourcesBarrelsFile(); - //writeBarrelsFile('templates'); - //writeBarrelsFile('helpers'); - //writeBarrelsFile('utils'); - //writeBarrelsFile('markdown'); - //writeResourcesFile(); writeLibsBarrelsFile('markdown'); writeLibsBarrelsFile('utils'); writeResourcesFile2(); @@ -44,16 +30,8 @@ function getSymbols(files: string[], type: string, thePath = resourcesPath) { const symbolName = tsFile?.getExportSymbols()[0]?.getEscapedName(); const fn = tsFile?.getFunction(symbolName as string); const returnTypeParts = fn?.getReturnType().getText(); - const returnType = returnTypeParts - ?.split('|') - .map((union) => { - const unionParts = union.split('.'); - if (unionParts[1] && unionParts[1].startsWith('MarkdownPageEvent')) { - return `MarkdownPageEvent<${unionParts[unionParts.length - 1]}`; - } - return unionParts[unionParts.length - 1]; - }) - .join('|'); + + const returnType = getReturnType(returnTypeParts); const params = fn ?.getParameters() @@ -107,6 +85,24 @@ function getSymbols(files: string[], type: string, thePath = resourcesPath) { }); } +function getReturnType(returnTypeParts?: string) { + if (returnTypeParts?.startsWith('{')) { + const pattern = /import\(".*"\)\.([a-zA-Z_][a-zA-Z0-9_]*)/; + const replacement = '$1'; + return returnTypeParts.replace(pattern, replacement); + } + return returnTypeParts + ?.split('|') + .map((union) => { + const unionParts = union.split('.'); + if (unionParts[1] && unionParts[1].startsWith('MarkdownPageEvent')) { + return `MarkdownPageEvent<${unionParts[unionParts.length - 1]}`; + } + return unionParts[unionParts.length - 1]; + }) + .join('|'); +} + function writeLibsBarrelsFile(resourceType: string) { const libsPath = path.join(__dirname, '..', 'src', 'theme', 'lib'); const folder = path.join(libsPath, resourceType); @@ -147,58 +143,14 @@ function writeLibsBarrelsFile(resourceType: string) { fs.outputFileSync(barrelsFile, out.join('\n')); } -/*function writeResourcesBarrelsFile() { - const templateFiles = getFiles('templates').filter( - (file) => file !== 'index' && !file.endsWith('spec'), - ); - const templateSymbols = getSymbols(templateFiles, 'templates'); - - const partialFiles = getFiles('partials').filter( - (file) => file !== 'index' && !file.endsWith('spec'), - ); - const partialSymbols = getSymbols(partialFiles, 'partials'); - - const barrelsFile = path.join( - __dirname, - '..', - 'src', - 'theme', - 'resources', - 'index.ts', - ); - - const barrelsFileComments = fs - .readFileSync(barrelsFile) - .toString() - .match(/\/\*[\s\S]*?\*\//); - - const out: string[] = [ - `${barrelsFileComments ? barrelsFileComments[0] : ''} - -// PLEASE NOTE: THE CONTENTS OF THE FILE BELOW THIS POINT IS AUTO GENERATED! -`, - ]; - templateFiles.forEach((file, index) => { - out.push( - `export { ${templateSymbols[index].symbolName} } from './templates/${file}';`, - ); - }); - partialFiles.forEach((file, index) => { - out.push( - `export { ${partialSymbols[index].symbolName} } from './partials/${file}';`, - ); - }); - fs.writeFileSync(barrelsFile, out.join('\n')); -}*/ - async function writeResourcesFile2() { const resourcesFile = path.join( __dirname, '..', 'src', 'theme', - 'markdown-theme-render-context', - 'namespaces.ts', + 'resources', + 'index.ts', ); fs.rmSync(resourcesFile, { force: true }); @@ -234,12 +186,12 @@ async function writeResourcesFile2() { 'ReflectionKind', 'ReflectionCategory', 'ReflectionGroup', + 'Options', ]; const out = `// THIS FILE IS AUTO GENERATED. DO NOT EDIT DIRECTLY. -import { MarkdownThemeRenderContext } from '@plugin/theme'; -import { TextContentMappings } from '@plugin/app/options'; -import { PackagesMeta } from 'app/renderer'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; +import { TextContentMappings } from '@options/option-types'; import {${typedocTypes.join(',')}} from 'typedoc'; @@ -251,8 +203,6 @@ ${getResources2('templates')} ${getResources('partials')} ${getResources2('helpers')} - - `; const formattedOut = await prettier.format(out, { @@ -262,70 +212,6 @@ ${getResources2('helpers')} }); fs.writeFileSync(resourcesFile, formattedOut); } - -/*async function writeResourcesFile() { - const resourcesFile = path.join( - __dirname, - '..', - 'src', - 'theme', - 'resources', - 'resources.ts', - ); - - const typedocTypes = [ - 'DeclarationReflection', - 'ProjectReflection', - 'CommentDisplayPart', - 'Comment', - 'SignatureReflection', - 'ReferenceReflection', - 'ParameterReflection', - 'Reflection', - 'SomeType', - 'ArrayType', - 'ConditionalType', - 'IndexedAccessType', - 'InferredType', - 'IntersectionType', - 'IntrinsicType', - 'LiteralType', - 'NamedTupleMember', - 'QueryType', - 'ReferenceType', - 'TypeOperatorType', - 'UnionType', - 'UnknownType', - 'TypeParameterReflection', - 'DeclarationHierarchy', - 'ContainerReflection', - 'ReflectionType', - 'TupleType', - ]; - - const out = `// THIS FILE IS AUTO GENERATED. DO NOT EDIT DIRECTLY. -import { MarkdownThemeRenderContext } from '../..'; -import {${typedocTypes.join(',')}} from 'typedoc'; - -${getResourceImports('templates')} -${getResourceImports('partials')} - - - -${getResources('templates')} -${getResources('partials')} - - -`; - - const formattedOut = await prettier.format(out, { - parser: 'typescript', - singleQuote: true, - trailingComma: 'all', - }); - fs.writeFileSync(resourcesFile, formattedOut); -}*/ - function getResourceImports(resourceType: string) { const files = getFiles(resourceType).filter( (file) => file !== 'index' && !file.endsWith('spec'), @@ -349,6 +235,7 @@ function getResources(resourceType: string, binding = true) { return ` export const ${resourceType} = (${binding ? `context: MarkdownThemeRenderContext` : ''}) => { + return { ${symbols .map((symbol) => { diff --git a/packages/typedoc-plugin-markdown/scripts/prebuild.ts b/packages/typedoc-plugin-markdown/.scripts/prebuild.ts similarity index 100% rename from packages/typedoc-plugin-markdown/scripts/prebuild.ts rename to packages/typedoc-plugin-markdown/.scripts/prebuild.ts diff --git a/packages/typedoc-plugin-markdown/package.json b/packages/typedoc-plugin-markdown/package.json index 568a21d42..8b5976b46 100644 --- a/packages/typedoc-plugin-markdown/package.json +++ b/packages/typedoc-plugin-markdown/package.json @@ -9,7 +9,7 @@ "scripts": { "lint": "eslint ./src --ext .ts", "prepublishOnly": "npm run lint && npm run build", - "prebuild": "rm -rf dist && prebuild-options && ts-node scripts/prebuild", + "prebuild": "rm -rf dist && prebuild-options && ts-node ./.scripts/prebuild", "build": "tsc && tsc-alias", "build-and-run": "npm run build && npm run pretest", "pretest": "fixtures -c ./test/fixtures/config.ts", @@ -18,7 +18,7 @@ "test": "npm run test:md && npm run test:mdx && jest", "test:update": "npm run build && npm run test -- -u", "predocs": "npm run build", - "docs": "typedoc --options ./typedoc.devdocs.json && typedoc --options ./typedoc.base.json --out ./html" + "docs": "typedoc --options ./.docs/typedoc.md.cjs && typedoc --options ./.docs/typedoc.html.cjs" }, "author": "Thomas Grey", "license": "MIT", diff --git a/packages/typedoc-plugin-markdown/src/app/application.ts b/packages/typedoc-plugin-markdown/src/app/application.ts new file mode 100644 index 000000000..6f8204cc1 --- /dev/null +++ b/packages/typedoc-plugin-markdown/src/app/application.ts @@ -0,0 +1,67 @@ +import { MarkdownRendererEvent } from '@app/events/markdown-renderer-event'; +import { MarkdownTheme } from '@theme/base'; +import { Application, EventHooks, Options, Renderer } from 'typedoc'; +import { MarkdownRendererHooks } from './hooks/markdown-renderer-hooks'; + +/** + * An extended typing of TypeDoc's Application instance. + * + * This is essentially a copy of the main class with the `renderer` property overridden to the custom {@link MarkdownRenderer}. + * + * @usage + * + * ```ts + * import {MarkdownApplication} from 'typedoc-plugin-markdown'; + * + * export function load(app: MarkdownApplication) { + * ... + * } + * ``` + * + * @category Application + */ +export interface MarkdownApplication extends Application { + renderer: MarkdownRenderer; +} + +/** + * An extended typing of TypeDoc's Renderer class. + * + * Incoudes updated typings for hooks and async jobs. + * + * @usage + * + * ```ts + * import { MarkdownApplication } from 'typedoc-plugin-markdown'; + * + * export function load(app: MarkdownApplication) { + * + * app.renderer.markdownHooks.on( + * 'page.begin', () => '> This is some markdown at the top of the page', + * ); + * + * app.renderer.preRenderAsyncJobs.push(async (event) => { + * await doSomethingAsync(event); + * }); + + * app.renderer.postRenderAsyncJobs.push(async (event) => { + * await doSomethingAsync(event); + * }); + * + * } + * ``` + * + * @category Application + */ +export interface MarkdownRenderer extends Renderer { + markdownHooks: EventHooks; + /** @internal */ + packagesMeta: Record; + /** @internal */ + defineTheme: ( + name: string, + theme: new (renderer: MarkdownRenderer) => MarkdownTheme, + ) => void; + preRenderAsyncJobs: Array<(output: MarkdownRendererEvent) => Promise>; + postRenderAsyncJobs: Array<(output: MarkdownRendererEvent) => Promise>; +} diff --git a/packages/typedoc-plugin-markdown/src/app/events/index.ts b/packages/typedoc-plugin-markdown/src/app/events/index.ts deleted file mode 100644 index 8432ba8e4..000000000 --- a/packages/typedoc-plugin-markdown/src/app/events/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { MarkdownPageEvent } from './markdown-page-event'; -export { MarkdownRendererEvent } from './markdown-renderer-event'; diff --git a/packages/typedoc-plugin-markdown/src/app/events/markdown-page-event.ts b/packages/typedoc-plugin-markdown/src/app/events/markdown-page-event.ts index c54c0dde1..7f896be74 100644 --- a/packages/typedoc-plugin-markdown/src/app/events/markdown-page-event.ts +++ b/packages/typedoc-plugin-markdown/src/app/events/markdown-page-event.ts @@ -1,15 +1,76 @@ import { Event, ProjectReflection, Reflection } from 'typedoc'; -export class MarkdownPageEvent extends Event { +/** + * An event emitted by before and after the markup of a page is rendered. + * + * @usage + * + * ```ts + * export function load(app: MarkdownAppication) { + * app.renderer.on(MarkdownPageEvent.END, (event: MarkdownPageEvent) => { + * events.contents = event.contents.replace('foo', 'bar'); + * }); + * }); + * ``` + * + * @category Application + */ +export class MarkdownPageEvent< + /** @ignore **/ Model = Reflection, +> extends Event { + /** + * The project the renderer is currently processing. + */ project!: ProjectReflection; - filename!: string; - url!: string; + + /** + * The model that should be rendered on this page. + */ + readonly model: Model; + + /** + * The final markdown content of this page. + * + * Should be rendered by layout templates and can be modified by plugins. + */ contents?: string; - frontmatter?: any; + + /** + * The url this page will be located at. + */ + url!: string; + + /** + * The filename the page will be written to. + */ + filename!: string; + + /** + * The frontmatter of this page represented as a key value object. This property can be utilised by other plugins. + */ + frontmatter?: Record; + + /** + * This is required for typing purposes but is unused in the Markdown theme. + * @hidden + */ pageHeadings: any; - readonly model: Model; + + /** + * Triggered before a document will be rendered. + * @event + */ static readonly BEGIN = 'beginPage'; + + /** + * Triggered after a document has been rendered, just before it is written to disc. + * @event + */ static readonly END = 'endPage'; + + /** + * @ignore + */ constructor(name: string, model: Model) { super(name); this.model = model; diff --git a/packages/typedoc-plugin-markdown/src/app/events/markdown-renderer-event.ts b/packages/typedoc-plugin-markdown/src/app/events/markdown-renderer-event.ts index c51ce6dc2..8b56b2e9a 100644 --- a/packages/typedoc-plugin-markdown/src/app/events/markdown-renderer-event.ts +++ b/packages/typedoc-plugin-markdown/src/app/events/markdown-renderer-event.ts @@ -1,29 +1,61 @@ /** * Extends the RendererEvent from TypeDoc to expose navigation property. + * */ -import { MarkdownPageEvent } from '@plugin/app/events'; -import { - NavigationItem, - RenderTemplate, - UrlMapping, -} from '@plugin/theme/theme-types'; +import { MarkdownPageEvent } from '@app/events/markdown-page-event'; +import { NavigationItem, RenderTemplate, UrlMapping } from '@theme/theme-types'; import * as path from 'path'; import { Event, ProjectReflection, Reflection } from 'typedoc'; +/** + * An event emitted at the beginning and end of the rendering process. + * + * @usage + * + * ```ts + * app.renderer.on(MarkdownRendererEvent.BEGIN, (event) => { + * console.log(`Render Starting for ${event.project.name}!`); + * }); + * ``` + * + * @category Application + */ export class MarkdownRendererEvent extends Event { + /** + * The project the renderer is currently processing. + */ readonly project: ProjectReflection; + /** + * The path of the directory the documentation should be written to. + */ readonly outputDirectory: string; + /** + * A list of all pages that should be generated. + */ urls?: UrlMapping[]; - navigation: NavigationItem[]; + /** + * The navigation structure of the project that can be utilised by plugins. + */ + navigation?: NavigationItem[]; + + /** + * Triggered before the renderer starts rendering a project. + * @event + */ static readonly BEGIN = 'beginRender'; + + /** + * Triggered after the renderer has written all documents. + * @event + */ static readonly END = 'endRender'; /** - * @hidden + * @ignore */ constructor( name: string, @@ -36,7 +68,7 @@ export class MarkdownRendererEvent extends Event { } /** - * @hidden + * @ignore */ public createPageEvent( mapping: UrlMapping, diff --git a/packages/typedoc-plugin-markdown/src/app/hooks/markdown-renderer-hooks.ts b/packages/typedoc-plugin-markdown/src/app/hooks/markdown-renderer-hooks.ts new file mode 100644 index 000000000..8480072ff --- /dev/null +++ b/packages/typedoc-plugin-markdown/src/app/hooks/markdown-renderer-hooks.ts @@ -0,0 +1,52 @@ +import { MarkdownThemeRenderContext } from 'public-api'; + +/** + * Describes the hooks available to inject output in the markdown theme. + * + * @usage + * + * ```ts + * app.renderer.markdownHooks.on( + * 'page.end', + * () => `**Generated using \`page.end\` hook**`, + * ); + * ``` + * + * @category Application + */ +export interface MarkdownRendererHooks { + /** + * Applied at the start of the markdown output. + * + * @group Hooks + */ + ['page.begin']: [MarkdownThemeRenderContext]; + + /** + * Applied at the end of the markdown output. + * + * @group Hooks + */ + ['page.end']: [MarkdownThemeRenderContext]; + + /** + * Applied before the main markdown content is rendered. + * + * @group Hooks + */ + ['content.begin']: [MarkdownThemeRenderContext]; + + /** + * Applied at the start of the markdown output on the index page. + * + * @group Hooks + */ + ['index.page.begin']: [MarkdownThemeRenderContext]; + + /** + * Applied at the end of the markdown output on the index page. + * + * @group Hooks + */ + ['index.page.end']: [MarkdownThemeRenderContext]; +} diff --git a/packages/typedoc-plugin-markdown/src/app/options/index.ts b/packages/typedoc-plugin-markdown/src/app/options/index.ts deleted file mode 100644 index daa1c9a68..000000000 --- a/packages/typedoc-plugin-markdown/src/app/options/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './option-maps'; -export * from './option-types'; -export * from './text-mappings'; diff --git a/packages/typedoc-plugin-markdown/src/app/renderer/index.ts b/packages/typedoc-plugin-markdown/src/app/renderer/index.ts deleted file mode 100644 index e72d47515..000000000 --- a/packages/typedoc-plugin-markdown/src/app/renderer/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './overrides'; -export * from './renderer-types'; -export * from './packages'; diff --git a/packages/typedoc-plugin-markdown/src/app/renderer/overrides.ts b/packages/typedoc-plugin-markdown/src/app/renderer/overrides.ts index 89d8954a8..acc100e45 100644 --- a/packages/typedoc-plugin-markdown/src/app/renderer/overrides.ts +++ b/packages/typedoc-plugin-markdown/src/app/renderer/overrides.ts @@ -1,4 +1,5 @@ -import { MarkdownPageEvent, MarkdownRendererEvent } from '@plugin/app/events'; +import { MarkdownPageEvent } from '@app/events/markdown-page-event'; +import { MarkdownRendererEvent } from '@app/events/markdown-renderer-event'; import * as fs from 'fs'; import * as path from 'path'; import { @@ -84,48 +85,51 @@ export async function render( this.preRenderAsyncJobs = []; - this.application.logger.verbose( - `There are ${output.urls?.length} pages to write.`, - ); + if (!output.isDefaultPrevented) { + this.application.logger.verbose( + `There are ${output.urls?.length} pages to write.`, + ); - output.urls - ?.filter( - (urlMapping) => - urlMapping.model instanceof ProjectReflection || - urlMapping.model instanceof DeclarationReflection, - ) - .forEach(async (urlMapping) => { - const [template, page] = output.createPageEvent(urlMapping); + output.urls + ?.filter( + (urlMapping) => + urlMapping.model instanceof ProjectReflection || + urlMapping.model instanceof DeclarationReflection, + ) + .forEach(async (urlMapping) => { + const [template, page] = output.createPageEvent(urlMapping); - this.trigger(MarkdownPageEvent.BEGIN, page); - if (page.isDefaultPrevented) { - return false; - } + this.trigger(MarkdownPageEvent.BEGIN, page); - if (page.model instanceof Reflection) { - page.contents = this.theme!.render(page, template); - } else { - throw new Error('Should be unreachable'); - } + if (page.isDefaultPrevented) { + return false; + } - this.trigger(MarkdownPageEvent.END, page); + if (page.model instanceof Reflection) { + page.contents = this.theme!.render(page, template); + } else { + throw new Error('Should be unreachable'); + } - if (page.isDefaultPrevented) { - return false; - } + this.trigger(MarkdownPageEvent.END, page); - try { - writeFileSync(page.filename, page.contents as string); - } catch (error) { - this.application.logger.error(`Could not write ${page.filename}`); - } - }); + if (page.isDefaultPrevented) { + return false; + } - this.trigger(MarkdownRendererEvent.END, output); + try { + writeFileSync(page.filename, page.contents as string); + } catch (error) { + this.application.logger.error(`Could not write ${page.filename}`); + } + }); - await Promise.all(this.postRenderAsyncJobs.map((job) => job(output))); + await Promise.all(this.postRenderAsyncJobs.map((job) => job(output))); - this.postRenderAsyncJobs = []; + this.postRenderAsyncJobs = []; + + this.trigger(MarkdownRendererEvent.END, output); + } this.theme = void 0; } diff --git a/packages/typedoc-plugin-markdown/src/app/renderer/packages.ts b/packages/typedoc-plugin-markdown/src/app/renderer/packages.ts index 22adb14ae..3c9254d8c 100644 --- a/packages/typedoc-plugin-markdown/src/app/renderer/packages.ts +++ b/packages/typedoc-plugin-markdown/src/app/renderer/packages.ts @@ -1,7 +1,7 @@ import * as fs from 'fs'; import * as path from 'path'; import { Application, Context } from 'typedoc'; -import { MarkdownRenderer } from './renderer-types'; +import { MarkdownRenderer } from '../application'; export function resolvePackages( app: Application, diff --git a/packages/typedoc-plugin-markdown/src/app/renderer/renderer-types.ts b/packages/typedoc-plugin-markdown/src/app/renderer/renderer-types.ts deleted file mode 100644 index 8acfba306..000000000 --- a/packages/typedoc-plugin-markdown/src/app/renderer/renderer-types.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { MarkdownRendererEvent } from '@plugin/app/events'; -import { MarkdownTheme, MarkdownThemeRenderContext } from '@plugin/theme'; -import { Application, EventHooks, Options, Renderer } from 'typedoc'; - -/** - * The plugin amends the renderer with additional hooks and options. - * - * This interface augments the TypeDoc {@link Application} with the updated renderer. - */ -export interface MarkdownApplication extends Application { - /** - * The renderer instance mapped to {@link MarkdownRenderer}. - */ - renderer: MarkdownRenderer; -} - -/** - * The plugin amends the renderer with additional hooks and options. - */ -export interface MarkdownRenderer extends Renderer { - markdownHooks: EventHooks; - packagesMeta: Record; - preRenderAsyncJobs: Array<(output: MarkdownRendererEvent) => Promise>; - postRenderAsyncJobs: Array<(output: MarkdownRendererEvent) => Promise>; - defineTheme: ( - name: string, - theme: new (renderer: MarkdownRenderer) => MarkdownTheme, - ) => void; -} - -export interface PackagesMeta { - description?: string; - options: Options; -} - -/** - * This is the custom render hooks method based on the equivalent TypeDoc class. - * - * @usage - * - * ```ts - * app.renderer.markdownHooks.on( - * 'page.end', - * () => `**Generated using \`page.end\` hook**`, - * ); - * ``` - */ -export interface MarkdownRendererHooks { - /** - * Applied at the start of the markdown output. - * - * @group Hooks - */ - ['page.begin']: [MarkdownThemeRenderContext]; - - /** - * Applied at the end of the markdown output. - * - * @group Hooks - */ - ['page.end']: [MarkdownThemeRenderContext]; - - /** - * Applied before the main markdown content is rendered. - * - * @group Hooks - */ - ['content.begin']: [MarkdownThemeRenderContext]; - - /** - * Applied at the start of the markdown output on the index page. - * - * @group Hooks - */ - ['index.page.begin']: [MarkdownThemeRenderContext]; - - /** - * Applied at the end of the markdown output on the index page. - * - * @group Hooks - */ - ['index.page.end']: [MarkdownThemeRenderContext]; - - /** - * Applied before the main markdown content is rendered on the index page. - * - * @group Hooks - */ - ['index.content.begin']: [MarkdownThemeRenderContext]; -} diff --git a/packages/typedoc-plugin-markdown/src/index.ts b/packages/typedoc-plugin-markdown/src/index.ts index 2ce7a9857..f544ad0cc 100644 --- a/packages/typedoc-plugin-markdown/src/index.ts +++ b/packages/typedoc-plugin-markdown/src/index.ts @@ -1,12 +1,8 @@ -import * as declarations from '@plugin/app/options/declarations'; -import { - MarkdownRenderer, - MarkdownRendererHooks, - generateDocs, - render, - resolvePackages, -} from '@plugin/app/renderer'; -import { MarkdownTheme } from '@plugin/theme'; +import { MarkdownRendererHooks } from '@app/hooks/markdown-renderer-hooks'; +import { generateDocs, render } from '@app/renderer/overrides'; +import { resolvePackages } from '@app/renderer/packages'; +import * as declarations from '@options/declarations'; +import { MarkdownTheme } from '@theme/base'; import { Application, Context, @@ -23,6 +19,8 @@ import { * Here we expose additional TypeDoc options and make some adjustments. * * This method is not intended to be consumed in any other context that via the `plugin` option. + * + * @ignore */ export function load(app: Application) { /** @@ -101,17 +99,4 @@ export function load(app: Application) { }); } -/** - * Symbols required for the public api - */ -export { MarkdownPageEvent, MarkdownRendererEvent } from '@plugin/app/events'; -export { OutputFileStrategy, PluginOptions } from '@plugin/app/options'; -export { - MarkdownApplication, - MarkdownRendererHooks, -} from '@plugin/app/renderer'; -export { - MarkdownTheme, - MarkdownThemeRenderContext, - NavigationItem, -} from '@plugin/theme'; +export * from 'public-api'; diff --git a/packages/typedoc-plugin-markdown/src/app/options/declarations.ts b/packages/typedoc-plugin-markdown/src/options/declarations.ts similarity index 100% rename from packages/typedoc-plugin-markdown/src/app/options/declarations.ts rename to packages/typedoc-plugin-markdown/src/options/declarations.ts diff --git a/packages/typedoc-plugin-markdown/src/app/options/option-maps.ts b/packages/typedoc-plugin-markdown/src/options/option-maps.ts similarity index 85% rename from packages/typedoc-plugin-markdown/src/app/options/option-maps.ts rename to packages/typedoc-plugin-markdown/src/options/option-maps.ts index 123c2772e..cb85b35fa 100644 --- a/packages/typedoc-plugin-markdown/src/app/options/option-maps.ts +++ b/packages/typedoc-plugin-markdown/src/options/option-maps.ts @@ -1,11 +1,5 @@ import { ReflectionKind } from 'typedoc'; -/** - * Defines outputFileStrategy model for the `outputFileStrategy` option. - * - * @enum - * - */ export const OutputFileStrategy = { Members: 'members', Modules: 'modules', @@ -14,10 +8,6 @@ export const OutputFileStrategy = { export type OutputFileStrategy = (typeof OutputFileStrategy)[keyof typeof OutputFileStrategy]; -/** - * - * @enum - */ export const FormatStyle = { List: 'list', Table: 'table', diff --git a/packages/typedoc-plugin-markdown/src/app/options/option-types.ts b/packages/typedoc-plugin-markdown/src/options/option-types.ts similarity index 61% rename from packages/typedoc-plugin-markdown/src/app/options/option-types.ts rename to packages/typedoc-plugin-markdown/src/options/option-types.ts index edb088cc2..0ddfcde2d 100644 --- a/packages/typedoc-plugin-markdown/src/app/options/option-types.ts +++ b/packages/typedoc-plugin-markdown/src/options/option-types.ts @@ -5,7 +5,14 @@ import { ManuallyValidatedOption } from 'typedoc'; declare module 'typedoc' { export interface TypeDocOptionMap { outputFileStrategy: 'members' | 'modules'; - membersWithOwnFile: any[]; + membersWithOwnFile: ( + | 'Enum' + | 'Variable' + | 'Function' + | 'Class' + | 'Interface' + | 'TypeAlias' + )[]; entryFileName: string; fileExtension: string; entryModule: string; @@ -26,7 +33,7 @@ declare module 'typedoc' { enumMembersFormat: 'list' | 'table'; typeDeclarationFormat: 'list' | 'table'; indexFormat: 'list' | 'table'; - textContentMappings: ManuallyValidatedOption; + textContentMappings: ManuallyValidatedOption>; publicPath: string; preserveMarkup: boolean; preserveAnchorCasing: boolean; @@ -35,37 +42,165 @@ declare module 'typedoc' { } } +/** + * Describes the options declared by the plugin. + * + * @category Options + */ export interface PluginOptions { + /** + * Determines how output files are generated. + */ outputFileStrategy: 'members' | 'modules'; - membersWithOwnFile: any[]; + + /** + * Determines which members are exported to their own file when `outputFileStrategy` equals `members`. + */ + membersWithOwnFile: ( + | 'Enum' + | 'Variable' + | 'Function' + | 'Class' + | 'Interface' + | 'TypeAlias' + )[]; + + /** + * The file name of the entry page. + */ entryFileName: string; + + /** + * Specify the file extension for generated output files. + */ fileExtension: string; + + /** + * The name of a module that should act as the root page for the documentation. + */ entryModule: string; + + /** + * Merges the resolved readme into the project index page. + */ mergeReadme: boolean; + + /** + * Exclude writing @ scope directories in paths. + */ excludeScopesInPaths: boolean; + + /** + * Do not print page header. + */ hidePageHeader: boolean; + + /** + * Do not print page title. + */ hidePageTitle: boolean; + + /** + * Do not print breadcrumbs. + */ hideBreadcrumbs: boolean; + + /** + * Do not render in-page TOC items. + */ hideInPageTOC: boolean; + + /** + * The title of project index page. + */ indexPageTitle: string; + + /** + * The page title of member pages. + */ memberPageTitle: string; + + /** + * Excludes grouping by kind so all members are rendered and sorted at the same level. + */ excludeGroups: boolean; + + /** + * Wraps signatures and declarations in code blocks. + */ useCodeBlocks: boolean; + + /** + * Expand objects inside declarations. + */ expandObjects: boolean; + + /** + * Expand parameters in signature parentheses to display type information. + */ expandParameters: boolean; + + /** + * Specify the render style of parameter and type parameter groups. + */ parametersFormat: 'list' | 'table'; + + /** + * Specify the render style of property groups for interfaces and classes. + */ propertiesFormat: 'list' | 'table'; + + /** + * Specify the render style of enumuration members. + */ enumMembersFormat: 'list' | 'table'; + + /** + * Specify the render style for type declaration members. + */ typeDeclarationFormat: 'list' | 'table'; + + /** + * Specify the render format for index items. + */ indexFormat: 'list' | 'table'; - textContentMappings: ManuallyValidatedOption; + + /** + * Provides a mechanism to change the content of text used in documentation. + */ + textContentMappings: Partial; + + /** + * Specify the base path for all urls. + */ publicPath: string; + + /** + * Preserves non-html markup tags in comments. + */ preserveMarkup: boolean; + + /** + * Preserve anchor casing when generating link to symbols. + */ preserveAnchorCasing: boolean; + + /** + * Custom anchor prefix + */ anchorPrefix: string; + + /** + * Add HTML named anchors to headings and table rows. + */ namedAnchors: boolean; } +/** + * Describes the keys available to replace static text. + * + * @category Options + */ export interface TextContentMappings { 'header.title': string; 'header.readme': string; diff --git a/packages/typedoc-plugin-markdown/src/app/options/text-mappings/index.ts b/packages/typedoc-plugin-markdown/src/options/text-mappings/index.ts similarity index 100% rename from packages/typedoc-plugin-markdown/src/app/options/text-mappings/index.ts rename to packages/typedoc-plugin-markdown/src/options/text-mappings/index.ts diff --git a/packages/typedoc-plugin-markdown/src/app/options/text-mappings/kind-defaults.ts b/packages/typedoc-plugin-markdown/src/options/text-mappings/kind-defaults.ts similarity index 100% rename from packages/typedoc-plugin-markdown/src/app/options/text-mappings/kind-defaults.ts rename to packages/typedoc-plugin-markdown/src/options/text-mappings/kind-defaults.ts diff --git a/packages/typedoc-plugin-markdown/src/app/options/text-mappings/text-mapping-defaults.ts b/packages/typedoc-plugin-markdown/src/options/text-mappings/text-mapping-defaults.ts similarity index 100% rename from packages/typedoc-plugin-markdown/src/app/options/text-mappings/text-mapping-defaults.ts rename to packages/typedoc-plugin-markdown/src/options/text-mappings/text-mapping-defaults.ts diff --git a/packages/typedoc-plugin-markdown/src/public-api.ts b/packages/typedoc-plugin-markdown/src/public-api.ts new file mode 100644 index 000000000..d63d06099 --- /dev/null +++ b/packages/typedoc-plugin-markdown/src/public-api.ts @@ -0,0 +1,28 @@ +/** + * The public API of the plugin exposes some classes and types that can be used to extend the plugin. Please note this only covers the API relevant to this plugin and not cover the entire [TypeDoc API](https://typedoc.org/api/). + * + * The APIs are typically consumed by writing [local plugins](/docs/customizing-output#local-plugins). + * + * @categoryDescription Application + * + * The Application class is the main entry point for a TypeDoc application and provides the mechanism to listen to hooks, events and define new themes. + * + * @categoryDescription Options + * + * Types that are used to define the plugin options. + * + * @categoryDescription Custom Theme + * + * Classes and types that are used to create custom themes. + * + * @module + */ + +export { MarkdownApplication, MarkdownRenderer } from '@app/application'; +export { MarkdownPageEvent } from '@app/events/markdown-page-event'; +export { MarkdownRendererEvent } from '@app/events/markdown-renderer-event'; +export { MarkdownRendererHooks } from '@app/hooks/markdown-renderer-hooks'; +export { PluginOptions, TextContentMappings } from '@options/option-types'; +export { MarkdownTheme } from '@theme/base'; +export { MarkdownThemeRenderContext } from '@theme/render-context'; +export { NavigationItem, UrlMapping } from '@theme/theme-types'; diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme/index.ts b/packages/typedoc-plugin-markdown/src/theme/base.ts similarity index 51% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme/index.ts rename to packages/typedoc-plugin-markdown/src/theme/base.ts index fab61ccc0..97264277b 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme/index.ts +++ b/packages/typedoc-plugin-markdown/src/theme/base.ts @@ -1,31 +1,82 @@ -import { MarkdownPageEvent } from '@plugin/app/events'; -import { OutputFileStrategy, TextContentMappings } from '@plugin/app/options'; -import { MarkdownRenderer } from '@plugin/app/renderer'; -import { RenderTemplate } from '@plugin/theme/theme-types'; +import { MarkdownRenderer } from '@app/application'; +import { MarkdownPageEvent } from '@app/events/markdown-page-event'; +import { OutputFileStrategy } from '@options/option-maps'; +import { TextContentMappings } from '@options/option-types'; +import { TEXT_MAPPING_DEFAULTS } from '@options/text-mappings'; +import { RenderTemplate } from '@theme/theme-types'; import { DeclarationReflection, - DefaultTheme, ProjectReflection, Reflection, ReflectionKind, Theme, } from 'typedoc'; -import { TEXT_MAPPING_DEFAULTS } from '../../app/options/text-mappings'; -import { MarkdownThemeRenderContext } from '../markdown-theme-render-context'; -import { getNavigation } from './get-navigation'; -import { getUrls } from './get-urls'; +import { getNavigation } from './core/get-navigation'; +import { getUrls } from './core/get-urls'; +import { MarkdownThemeRenderContext } from './render-context'; /** - * This is in-built MarkdownTheme which extends TypeDocs Theme class. - * This follows the implementation of TypeDoc's {@link DefaultTheme}. + * The main theme class for the plugin. * + * The class controls how TypeDoc models are mapped to files and templates and extends TypeDoc's base Theme class. + * + * You would typically only be interested in overriding the the theme's render context instance. + * + * The API follows the implementation of [TypeDoc's custom theming](https://github.com/TypeStrong/typedoc/blob/master/internal-docs/custom-themes.md) with some minor adjustments. + * + * @usage + * + * This code defines a new theme called "customTheme": + * + * ```ts + * import { MarkdownAppication, MarkdownRenderer, MarkdownTheme, MarkdownThemeRenderContext } from "typedoc-plugin-markdown"; + * + * export function load(app: MarkdownAppication) { + * app.renderer.defineTheme("customTheme", MyMarkdownTheme); + * } + * + * class MyMarkdownTheme extends MarkdownTheme { + * + * constructor(renderer: MarkdownRenderer) { + * super(renderer); + * } + * + * // Return a new render context + * getRenderContext(page) { + * return new MyMarkdownThemeRenderContext(this, page, this.application.options); + * } + * + * }); + * } + * } + * + * class MyMarkdownThemeRenderContext extends MarkdownThemeRenderContext { + * ... + * } + * ``` + * + * The theme can then be consumed by the `theme` option: + * + * ```shell + * typedoc --plugin typedoc-plugin-markdown --theme customTheme + * ``` + * + * @category Custom Theme */ export class MarkdownTheme extends Theme { - readonly textMappings: TextContentMappings; + /** + * The text content mappings for the theme. This is a combination of the default mappings and any mappings provided in the plugin options. + * + * @internal + */ + readonly textContentMappings: Partial; + /** + * @ignore + */ constructor(renderer: MarkdownRenderer) { super(renderer); - this.textMappings = { + this.textContentMappings = { ...TEXT_MAPPING_DEFAULTS, ...(this.application.options.getValue('textContentMappings') || {}), }; @@ -33,6 +84,8 @@ export class MarkdownTheme extends Theme { /** * Renders a template and page model to a string. + * + * @internal */ render( page: MarkdownPageEvent, @@ -52,50 +105,41 @@ export class MarkdownTheme extends Theme { } /** - * Creates a new instance of the current theme context and calls the readme() method on the context's {@link MarkdownThemeRenderContext.templates | templates} namespace. + * Creates a new instance of the current theme context. * - * @internal + * This method can be overridden to provide an alternative theme context. */ - readmeTemplate = (page: MarkdownPageEvent) => { - return this.getRenderContext(page).templates.readme(page.model); - }; - - /** - * Creates a new instance of the current theme context and calls the project() method on the context's {@link MarkdownThemeRenderContext.templates | templates} namespace. - * - * @internal - */ - projectTemplate = (page: MarkdownPageEvent) => { - return this.getRenderContext(page).templates.project(page.model); - }; - - /** - * Creates a new instance of the current theme context and calls the reflection() method on the context's {@link MarkdownThemeRenderContext.templates | templates} namespace. - * - * @internal - */ - reflectionTemplate = (page: MarkdownPageEvent) => { - return this.getRenderContext(page).templates.reflection(page.model); - }; - getRenderContext(page: MarkdownPageEvent) { return new MarkdownThemeRenderContext(this, page, this.application.options); } + /** + * Maps the models of the given project to the desired output files. + * + * This method can be overriden to provide an alternative url structure. + */ getUrls(project: ProjectReflection) { return getUrls(this, project); } + /** + * Map the models of the given project to a navigation structure. + * + * This method can be overriden to provide an alternative navigation structure. + */ getNavigation(project: ProjectReflection) { return getNavigation(this, project); } + /** + * @internal + */ getTemplateMapping( kind: ReflectionKind, - outputFileStrategyOverride?: OutputFileStrategy, + outputFileStrategy?: OutputFileStrategy, ) { - const outputFileStrategy = - outputFileStrategyOverride || + outputFileStrategy = + outputFileStrategy || this.application.options.getValue('outputFileStrategy'); const directoryName = (reflectionKind: ReflectionKind) => { @@ -131,7 +175,9 @@ export class MarkdownTheme extends Theme { if ( outputFileStrategy === OutputFileStrategy.Members && - membersWithOwnFile?.includes(ReflectionKind[ReflectionKind.Class]) + (membersWithOwnFile as string[])?.includes( + ReflectionKind[ReflectionKind.Class], + ) ) { mappings[ReflectionKind.Class] = memberMapping( this.reflectionTemplate, @@ -141,7 +187,9 @@ export class MarkdownTheme extends Theme { if ( outputFileStrategy === OutputFileStrategy.Members && - membersWithOwnFile?.includes(ReflectionKind[ReflectionKind.Interface]) + (membersWithOwnFile as string[])?.includes( + ReflectionKind[ReflectionKind.Interface], + ) ) { mappings[ReflectionKind.Interface] = memberMapping( this.reflectionTemplate, @@ -151,7 +199,9 @@ export class MarkdownTheme extends Theme { if ( outputFileStrategy === OutputFileStrategy.Members && - membersWithOwnFile?.includes(ReflectionKind[ReflectionKind.Enum]) + (membersWithOwnFile as string[])?.includes( + ReflectionKind[ReflectionKind.Enum], + ) ) { mappings[ReflectionKind.Enum] = memberMapping( this.reflectionTemplate, @@ -161,7 +211,9 @@ export class MarkdownTheme extends Theme { if ( outputFileStrategy === OutputFileStrategy.Members && - membersWithOwnFile?.includes(ReflectionKind[ReflectionKind.Function]) + (membersWithOwnFile as string[])?.includes( + ReflectionKind[ReflectionKind.Function], + ) ) { mappings[ReflectionKind.Function] = memberMapping( this.reflectionTemplate, @@ -171,7 +223,9 @@ export class MarkdownTheme extends Theme { if ( outputFileStrategy === OutputFileStrategy.Members && - membersWithOwnFile?.includes(ReflectionKind[ReflectionKind.TypeAlias]) + (membersWithOwnFile as string[])?.includes( + ReflectionKind[ReflectionKind.TypeAlias], + ) ) { mappings[ReflectionKind.TypeAlias] = memberMapping( this.reflectionTemplate, @@ -181,7 +235,9 @@ export class MarkdownTheme extends Theme { if ( outputFileStrategy === OutputFileStrategy.Members && - membersWithOwnFile?.includes(ReflectionKind[ReflectionKind.Variable]) + (membersWithOwnFile as string[])?.includes( + ReflectionKind[ReflectionKind.Variable], + ) ) { mappings[ReflectionKind.Variable] = memberMapping( this.reflectionTemplate, @@ -191,4 +247,25 @@ export class MarkdownTheme extends Theme { return mappings[kind]; } + + /** + * @internal + */ + readmeTemplate = (page: MarkdownPageEvent) => { + return this.getRenderContext(page).templates.readme(); + }; + + /** + * @internal + */ + projectTemplate = (page: MarkdownPageEvent) => { + return this.getRenderContext(page).templates.project(); + }; + + /** + * @internal + */ + reflectionTemplate = (page: MarkdownPageEvent) => { + return this.getRenderContext(page).templates.reflection(); + }; } diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme/get-navigation.ts b/packages/typedoc-plugin-markdown/src/theme/core/get-navigation.ts similarity index 76% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme/get-navigation.ts rename to packages/typedoc-plugin-markdown/src/theme/core/get-navigation.ts index 0d6cb758e..df5a43b33 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme/get-navigation.ts +++ b/packages/typedoc-plugin-markdown/src/theme/core/get-navigation.ts @@ -1,7 +1,7 @@ -import { PLURAL_KIND_KEY_MAP } from '@plugin/app/options/text-mappings'; -import { MarkdownRenderer } from '@plugin/app/renderer'; -import { MarkdownTheme } from '@plugin/theme'; -import { NavigationItem } from '@plugin/theme/theme-types'; +import { MarkdownRenderer } from '@app/application'; +import { PLURAL_KIND_KEY_MAP } from '@options/text-mappings'; +import { MarkdownTheme } from '@theme/base'; +import { NavigationItem } from '@theme/theme-types'; import * as path from 'path'; import { DeclarationReflection, @@ -11,7 +11,7 @@ import { ReflectionGroup, ReflectionKind, } from 'typedoc'; -import { OutputFileStrategy } from '../../app/options/option-maps'; +import { OutputFileStrategy } from '../../options/option-maps'; export function getNavigation( theme: MarkdownTheme, @@ -48,11 +48,11 @@ export function getNavigation( const packageOptions = packagesMeta[projectChild.name]?.options; - const outputFileStrategy = packageOptions.isSet('outputFileStrategy') + const outputFileStrategy = packageOptions?.isSet('outputFileStrategy') ? packageOptions.getValue('outputFileStrategy') : options.getValue('outputFileStrategy'); - const entryModule = packageOptions.isSet('entryModule') + const entryModule = packageOptions?.isSet('entryModule') ? packageOptions.getValue('entryModule') : options.getValue('entryModule'); @@ -74,7 +74,7 @@ export function getNavigation( outputFileStrategy === OutputFileStrategy.Modules ) { children.push({ - title: theme.textMappings['label.globals'], + title: theme.textContentMappings['label.globals'] as string, url: projectChild.url, }); } @@ -97,44 +97,58 @@ export function getNavigation( project: ProjectReflection | DeclarationReflection, ) { const entryModule = options.getValue('entryModule'); - if (project.groups?.length) { - const isEntryModule = Boolean( - project?.groups[0]?.children.find( - (child) => child.name === entryModule, - ), - ); - const isOnlyModules = project.children?.every( - (child) => child.kind === ReflectionKind.Module, + + if (project.categories?.length) { + navigation.push( + ...project.categories.map((category) => { + return { + title: category.title, + children: getCategoryGroupChildren(category), + }; + }), ); - if ( - (project.groups.length === 1 && !Boolean(isEntryModule)) || - isOnlyModules - ) { - const children = getGroupChildren(project.groups[0]); - if (children?.length) { - navigation.push( - ...children.filter((child) => child.title !== entryModule), - ); - } - } else { - project.groups?.forEach((projectGroup) => { - const children = getGroupChildren(projectGroup); - const indexModule = projectGroup.children.find( + } else { + if (project.groups?.length) { + const isEntryModule = Boolean( + project?.groups[0]?.children.find( (child) => child.name === entryModule, - ); - if (children.length) { - navigation.push({ - title: projectGroup.title, - children: children.filter((child) => child.title !== entryModule), - }); + ), + ); + const isOnlyModules = project.children?.every( + (child) => child.kind === ReflectionKind.Module, + ); + if ( + (project.groups.length === 1 && !Boolean(isEntryModule)) || + isOnlyModules + ) { + const children = getGroupChildren(project.groups[0]); + if (children?.length) { + navigation.push( + ...children.filter((child) => child.title !== entryModule), + ); } - if (indexModule) { - const children = getChildrenOrGroups(indexModule); - if (children) { - navigation.push(...children); + } else { + project.groups?.forEach((projectGroup) => { + const children = getGroupChildren(projectGroup); + const indexModule = projectGroup.children.find( + (child) => child.name === entryModule, + ); + if (children.length) { + navigation.push({ + title: projectGroup.title, + children: children.filter( + (child) => child.title !== entryModule, + ), + }); } - } - }); + if (indexModule) { + const children = getChildrenOrGroups(indexModule); + if (children) { + navigation.push(...children); + } + } + }); + } } } } @@ -226,7 +240,7 @@ export function getNavigation( return groupChildren.length ? { title: - theme.textMappings[PLURAL_KIND_KEY_MAP[group.title]] || + theme.textContentMappings[PLURAL_KIND_KEY_MAP[group.title]] || group.title, children: groupChildren || null, } diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme/get-urls.ts b/packages/typedoc-plugin-markdown/src/theme/core/get-urls.ts similarity index 96% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme/get-urls.ts rename to packages/typedoc-plugin-markdown/src/theme/core/get-urls.ts index fec4f86a2..3980c06c4 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme/get-urls.ts +++ b/packages/typedoc-plugin-markdown/src/theme/core/get-urls.ts @@ -1,11 +1,12 @@ -import { MarkdownRenderer } from '@plugin/app/renderer'; -import { TemplateMapping, UrlMapping } from '@plugin/theme/theme-types'; -import { OutputFileStrategy } from 'app/options/option-maps'; +import { MarkdownRenderer } from '@app/application'; +import { OutputFileStrategy } from '@options/option-maps'; +import { TemplateMapping, UrlMapping } from '@theme/theme-types'; import * as path from 'path'; -import { MarkdownTheme } from 'theme'; +import { MarkdownTheme } from 'theme/base'; import { getFileNameWithExtension, removeFirstScopedDirectory, + slugifyUrl, } from 'theme/lib/utils'; import { DeclarationReflection, @@ -332,15 +333,6 @@ export function getUrls(theme: MarkdownTheme, project: ProjectReflection) { return alias; } - const slugifyUrl = (url: string) => { - return url - .toLowerCase() - .trim() - .replace(/[^\w\s-]/g, '') - .replace(/[\s_-]+/g, '-') - .replace(/^-+|-+$/g, ''); - }; - return urlOption.directory ? urlOption.directory : `${slugifyUrl( diff --git a/packages/typedoc-plugin-markdown/src/theme/index.ts b/packages/typedoc-plugin-markdown/src/theme/index.ts deleted file mode 100644 index 20a94b8e3..000000000 --- a/packages/typedoc-plugin-markdown/src/theme/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -/** - * The in-built custom markdown theme and theme context. - * - * @module - */ -export { MarkdownTheme } from './markdown-theme'; -export { MarkdownThemeRenderContext } from './markdown-theme-render-context'; -export * from './theme-types'; diff --git a/packages/typedoc-plugin-markdown/src/theme/lib/utils/index.ts b/packages/typedoc-plugin-markdown/src/theme/lib/utils/index.ts index 64b186559..56ef9e1ec 100644 --- a/packages/typedoc-plugin-markdown/src/theme/lib/utils/index.ts +++ b/packages/typedoc-plugin-markdown/src/theme/lib/utils/index.ts @@ -11,4 +11,5 @@ export { getFileNameWithExtension } from './get-file-name-with-extension'; export { getFirstParagrph } from './get-first-paragraph'; export { pipe } from './pipe'; export { removeFirstScopedDirectory } from './remove-first-scoped-directory'; +export { slugifyUrl } from './slugify-url'; export { stripComments } from './strip-comments'; \ No newline at end of file diff --git a/packages/typedoc-plugin-markdown/src/theme/lib/utils/slugify-url.ts b/packages/typedoc-plugin-markdown/src/theme/lib/utils/slugify-url.ts new file mode 100644 index 000000000..e44a5a1e3 --- /dev/null +++ b/packages/typedoc-plugin-markdown/src/theme/lib/utils/slugify-url.ts @@ -0,0 +1,8 @@ +export function slugifyUrl(url: string) { + return url + .toLowerCase() + .trim() + .replace(/[^\w\s-]/g, '') + .replace(/[\s_-]+/g, '-') + .replace(/^-+|-+$/g, ''); +} diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-packages-meta.ts b/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-packages-meta.ts deleted file mode 100644 index f549bcfd5..000000000 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-packages-meta.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { PackagesMeta } from '@plugin/app/renderer'; -import { MarkdownThemeRenderContext } from 'theme'; - -export function getPackagesMeta( - this: MarkdownThemeRenderContext, - key: string, -): PackagesMeta { - return this.packagesMeta[key]; -} diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-text.ts b/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-text.ts deleted file mode 100644 index 926202226..000000000 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-text.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { TextContentMappings } from '@plugin/app/options'; -import { MarkdownThemeRenderContext } from 'theme/markdown-theme-render-context'; - -export function getText( - this: MarkdownThemeRenderContext, - key: keyof TextContentMappings, -) { - return this.textMappings[key]; -} diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/index.ts b/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/index.ts deleted file mode 100644 index efcdaffb6..000000000 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/index.ts +++ /dev/null @@ -1,123 +0,0 @@ -import { MarkdownPageEvent } from '@plugin/app/events'; -import { TextContentMappings } from '@plugin/app/options'; -import { - MarkdownRenderer, - MarkdownRendererHooks, - PackagesMeta, -} from '@plugin/app/renderer'; -import { MarkdownTheme } from 'theme'; -import { Options, Reflection } from 'typedoc'; -import { helpers, partials, templates } from './namespaces'; - -/** - * The `MarkdownThemeRenderContext` class allows custom themes to adjust the output. - * - * This follows a similar implementation to TypeDoc's [DefaultThemeRenderContext](https://typedoc.org/api/classes/DefaultThemeRenderthis.html). - * - * Custom context classes can be provided by: - * - * ```ts - * class MyTheme extends DefaultTheme { - * getRenderContext(pageEvent: PageEvent) { - * return new MyThemeContext(this, pageEvent, this.application.options); - * } - * } - * ``` - * - * @groupDescription Namespaces - * - * Components return strings and are used to display output. - * - * @privateRemarks - * - * In order to create cleaner code, internally individual templates located in the `resources/templates` directory are bound to the this. - */ -export class MarkdownThemeRenderContext { - /** - * @param theme The theme instance this context is created for. - * @param page The current page this context is created for. - * @param options The current options instance for the application. - */ - constructor( - private theme: MarkdownTheme, - readonly page: MarkdownPageEvent, - readonly options: Options, - ) { - this.textMappings = this.theme.textMappings; - this.packagesMeta = (this.theme.owner as MarkdownRenderer).packagesMeta; - } - - /** - * Holds the textmappings object of the theme. - */ - readonly textMappings: TextContentMappings; - - /** - * Holds meta data for packages (if applicable) - */ - readonly packagesMeta: Record; - - /** - * Then `templates` namespace holds the main templates for the theme that are mapped to single pages and configured in the MarkdownTheme. - * - * All templates return a string that is passed back to the renderer. Internally templates call partials and helpers. - * - * To override specific templates while keeping others intact, you need to merge the template object: - * - * ```ts - * class MyMarkdownThemeRenderContext extends MarkdownThemeRenderContext { - * templates = { - * ...this.templates, - * readme: () => { - * return `Custom readme for ${this.page.project.name}!`; - * }, - * }; - * } - * ``` - * - * - * @group Namespaces - */ - templates = templates(this); - - /** - * Partials are used by templates to map speficic models to page output. - * - * They all take a `model` param (that references a specific TypeDoc option) and an `options` param if required. - * - * All partials return a string and can call other partials and helpers. - * - * Custom theme contexts can override by doing: - * - * ```ts - * class MyMarkdownThemeRenderContext extends MarkdownThemeRenderContext { - * partials = { - * ...this.partials, - * header: () => { - * return `Welcome to ${this.page.project.name} custom header!`; - * }, - * }; - * } - * ``` - * @group Namespaces - */ - partials = partials(this); - - /** - * Helpers are smaller functions that return snippets or text or other data transformations. - * - * They should can reference other helpers but should not reference other partials. - * - * Helpers can return any value types. - * - * @group Namespaces - */ - helpers = helpers(this); - - /** - * Hook into the TypeDoc rendering system. - * @ignore - */ - hook = (name: keyof MarkdownRendererHooks) => - (this.theme.owner as MarkdownRenderer).markdownHooks.emit(name, this); -} diff --git a/packages/typedoc-plugin-markdown/src/theme/render-context.ts b/packages/typedoc-plugin-markdown/src/theme/render-context.ts new file mode 100644 index 000000000..863aff66a --- /dev/null +++ b/packages/typedoc-plugin-markdown/src/theme/render-context.ts @@ -0,0 +1,137 @@ +import { MarkdownRenderer } from '@app/application'; +import { MarkdownPageEvent } from '@app/events/markdown-page-event'; +import { MarkdownRendererHooks } from '@app/hooks/markdown-renderer-hooks'; +import { TextContentMappings } from '@options/option-types'; +import { MarkdownTheme } from '@theme/base'; +import { Options, Reflection } from 'typedoc'; +import { helpers, partials, templates } from './resources'; + +/** + * The theme context class that is provided as context to every template. + * + * This class can be used to customize the theme output by extending the class and overriding the [templates](#templates), [partials](#partials) and [helpers](#helpers). + * + * @usage + * + * ```ts + * class MyMarkdownThemeRenderContext extends MarkdownThemeRenderContext { + * + * // customise templates + * templates = { + * ...this.templates, + * reflection: (model) => { + * return `New template for ${model.name}!`; + * }, + * }; + * + * // customise partials + * partials = { + * ...this.partials, + * header: (model) => { + * return ` + * # Welcome to custom header for ${this.page.project.name} project and ${model.name} model! + * Use my new helper - ${this.helpers.newHelper()} + * `; + * }, + * }; + * + * // customise helpers + * helpers = { + * ...this.helpers, + * newHelper: () => { + * return 'New helper!'; + * }, + * }; + * } + * ``` + * + * @groupDescription Resources + * + * Theme resources are the main building blocks for the theme context. They are split into three namespaces: `templates`, `partials` and `helpers`. + * + * @privateRemarks + * + * In order to create cleaner code, internally individual templates located in the `resources/templates` directory are bound to the this. + * + * @category Custom Theme + */ +export class MarkdownThemeRenderContext { + /** + * @ignore + */ + constructor( + private theme: MarkdownTheme, + /** + * The current page event. + */ + readonly page: MarkdownPageEvent, + /** + * The options provided to the application. + */ + readonly options: Options, + ) { + this.textContentMappings = this.theme.textContentMappings; + this.packagesMetaData = (this.theme.owner as MarkdownRenderer).packagesMeta; + } + + /** + * Holds the textmappings object of the theme. + */ + readonly textContentMappings: Partial; + + /** + * Holds meta data for individual packages (if entryPointStrategy equals `packages`). + * + * This is required for generating package specific documentation. + */ + readonly packagesMetaData: Record< + string, + { description: string; options: Options } + >; + + /** + * Then `templates` namespace holds the main templates for the theme and are mapped to single pages and configured in the MarkdownTheme. + * + * All templates return a string that is passed back to the renderer. Internally templates call partials and helpers. + * + * @group Resources + */ + templates = templates(this); + + /** + * Then `partials` namespace holds the partials for the theme and are used by templates to map speficic models to page output. + * + * Partials take a `model` param (that references a specific TypeDoc model) and an `options` param if required. + * + * All partials return a string and can call other partials and helpers. + * + * Partials are categorised by their use: + * + * - [Page Partials](#page-partials): Partials that render core page elements such as header and breadcrumbs. + * - [Container Partials](#container-partials): Partials that are used to render reflection groups and categories. + * - [Member Partials](#member-partials): Partials that render specific parts of reflections. + * - [Comment Partials](#comment-partials): Partials that render comments. + * - [Type Partials](#type-partials): Partials that render specific TypeDoc model types. + * + * @group Resources + */ + partials = partials(this); + + /** + * Then `helpers` namespace holds the helpers for the theme and are smaller utility functions that return snippets or text or other data transformations. + * + * They should can reference other helpers but should not reference other partials. + * + * Helpers can return any value types. + * + * @group Resources + */ + helpers = helpers(this); + + /** + * Hook into the TypeDoc rendering system. + * @ignore + */ + hook = (name: keyof MarkdownRendererHooks) => + (this.theme.owner as MarkdownRenderer).markdownHooks.emit(name, this); +} diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/flatten-declarations.ts b/packages/typedoc-plugin-markdown/src/theme/resources/helpers/flatten-declarations.ts similarity index 100% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/flatten-declarations.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/helpers/flatten-declarations.ts diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-declaration-comment.ts b/packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-declaration-comment.ts similarity index 100% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-declaration-comment.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-declaration-comment.ts diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-declaration-type.ts b/packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-declaration-type.ts similarity index 100% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-declaration-type.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-declaration-type.ts diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-keyword.ts b/packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-keyword.ts similarity index 100% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-keyword.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-keyword.ts diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-modifier.ts b/packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-modifier.ts similarity index 100% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-modifier.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-modifier.ts diff --git a/packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-packages-meta.ts b/packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-packages-meta.ts new file mode 100644 index 000000000..326489013 --- /dev/null +++ b/packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-packages-meta.ts @@ -0,0 +1,9 @@ +import { MarkdownThemeRenderContext } from '@theme/render-context'; +import { Options } from 'typedoc'; + +export function getPackagesMeta( + this: MarkdownThemeRenderContext, + key: string, +): { description?: string; options: Options } { + return this.packagesMetaData[key]; +} diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-parameter-default-value.ts b/packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-parameter-default-value.ts similarity index 100% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-parameter-default-value.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-parameter-default-value.ts diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-project-name.ts b/packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-project-name.ts similarity index 80% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-project-name.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-project-name.ts index e8a07d156..eacd748f5 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-project-name.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-project-name.ts @@ -1,4 +1,4 @@ -import { MarkdownThemeRenderContext } from '../../markdown-theme-render-context'; +import { MarkdownThemeRenderContext } from '../../render-context'; export function getProjectName( this: MarkdownThemeRenderContext, diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-relative-url.ts b/packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-relative-url.ts similarity index 88% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-relative-url.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-relative-url.ts index caf1ef062..7fc10974a 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-relative-url.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-relative-url.ts @@ -1,5 +1,5 @@ import * as path from 'path'; -import { MarkdownThemeRenderContext } from '../../markdown-theme-render-context'; +import { MarkdownThemeRenderContext } from '../../render-context'; export function getRelativeUrl( this: MarkdownThemeRenderContext, url: string, diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-text-from-kind-string.ts b/packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-text-from-kind-string.ts similarity index 61% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-text-from-kind-string.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-text-from-kind-string.ts index 80cd140f4..7cff1f6ce 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/get-text-from-kind-string.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-text-from-kind-string.ts @@ -1,9 +1,9 @@ -import { TextContentMappings } from '@plugin/app/options'; +import { TextContentMappings } from '@options/option-types'; import { PLURAL_KIND_KEY_MAP, SINGULAR_KIND_KEY_MAP, -} from '@plugin/app/options/text-mappings'; -import { MarkdownThemeRenderContext } from 'theme'; +} from '@options/text-mappings'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; export function getTextFromKindString( this: MarkdownThemeRenderContext, @@ -13,5 +13,5 @@ export function getTextFromKindString( const key = isPlural ? (PLURAL_KIND_KEY_MAP[kindString] as keyof TextContentMappings) : (SINGULAR_KIND_KEY_MAP[kindString] as keyof TextContentMappings); - return this.textMappings[key] || kindString; + return this.textContentMappings[key] || kindString; } diff --git a/packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-text.ts b/packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-text.ts new file mode 100644 index 000000000..16c77dc81 --- /dev/null +++ b/packages/typedoc-plugin-markdown/src/theme/resources/helpers/get-text.ts @@ -0,0 +1,9 @@ +import { TextContentMappings } from '@options/option-types'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; + +export function getText( + this: MarkdownThemeRenderContext, + key: keyof TextContentMappings, +): string { + return this.textContentMappings[key] as string; +} diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/is-group-kind.ts b/packages/typedoc-plugin-markdown/src/theme/resources/helpers/is-group-kind.ts similarity index 100% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/helpers/is-group-kind.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/helpers/is-group-kind.ts diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/namespaces.ts b/packages/typedoc-plugin-markdown/src/theme/resources/index.ts similarity index 87% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/namespaces.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/index.ts index 0254f3820..9f6a7f23f 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/namespaces.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/index.ts @@ -1,7 +1,6 @@ // THIS FILE IS AUTO GENERATED. DO NOT EDIT DIRECTLY. -import { MarkdownThemeRenderContext } from '@plugin/theme'; -import { TextContentMappings } from '@plugin/app/options'; -import { PackagesMeta } from 'app/renderer'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; +import { TextContentMappings } from '@options/option-types'; import { DeclarationReflection, ProjectReflection, @@ -33,6 +32,7 @@ import { ReflectionKind, ReflectionCategory, ReflectionGroup, + Options, } from 'typedoc'; import { project } from './templates/project'; @@ -111,19 +111,16 @@ import { isGroupKind } from './helpers/is-group-kind'; export const templates = (context: MarkdownThemeRenderContext) => { return { - project: (model: ProjectReflection) => - project.apply(context, [model]) as string, - readme: (model: ProjectReflection) => - readme.apply(context, [model]) as string, - reflection: (model: DeclarationReflection) => - reflection.apply(context, [model]) as string, + project: () => project.apply(context, []) as string, + readme: () => readme.apply(context, []) as string, + reflection: () => reflection.apply(context, []) as string, }; }; export const partials = (context: MarkdownThemeRenderContext) => { return { /** - * Renders a comment model, determining how to parse summary and tags. + * * * @category Comment Partials */ @@ -140,13 +137,13 @@ export const partials = (context: MarkdownThemeRenderContext) => { }, ) => comment(context, model, options), /** - * Parses and renders individual comment strings. + * * * @category Comment Partials */ commentParts: (model: CommentDisplayPart[]) => commentParts(context, model), /** - * Renders the body of a containing reflection. + * * * @category Container Partials */ @@ -296,7 +293,7 @@ There is no association list partial for properties as these are handled as a st * @category Member Partials */ reflectionIndex: ( - reflection: ProjectReflection | DeclarationReflection, + reflection: DeclarationReflection | ProjectReflection, headingLevel: number, ) => reflectionIndex(context, reflection, headingLevel), /** @@ -311,21 +308,21 @@ There is no association list partial for properties as these are handled as a st accessor?: string | undefined, ) => signature(context, model, headingLevel, nested, accessor), /** - * Renders tha parameters of a signature in parenthisis. + * * * @category Member Partials */ signatureParameters: (parameters: ParameterReflection[]) => signatureParameters(context, parameters), /** - * Renders the return section of a signature. + * * * @category Member Partials */ signatureReturns: (signature: SignatureReflection, headingLevel: number) => signatureReturns(context, signature, headingLevel), /** - * Renders a signature title. + * * * @category Member Partials */ @@ -336,7 +333,7 @@ There is no association list partial for properties as these are handled as a st | undefined, ) => signatureTitle(context, signature, opts), /** - * Renders the sources section of a member. + * * * @category Member Partials */ @@ -345,7 +342,7 @@ There is no association list partial for properties as these are handled as a st headingLevel: number, ) => sources(context, reflection, headingLevel), /** - * Renders a container member. + * * * @category Member Partials */ @@ -355,21 +352,21 @@ There is no association list partial for properties as these are handled as a st nested: boolean = false, ) => member(context, model, headingLevel, nested), /** - * Renders type arguments in angle brackets. + * å * * @category Member Partials */ typeArguments: (model: SomeType[], foreCollpase: boolean = false) => typeArguments(context, model, foreCollpase), /** - * Renders type declarations of a parent member. + * å * * @category Member Partials */ typeDeclaration: (model: DeclarationReflection[], headingLevel: number) => typeDeclaration(context, model, headingLevel), /** - * Renders type declarations as a list. + * * * @category Member Partials */ @@ -378,122 +375,122 @@ There is no association list partial for properties as these are handled as a st headingLevel: number, ) => typeDeclarationList(context, model, headingLevel), /** - * Renders type declarations as a table. + * * * @category Member Partials */ typeDeclarationTable: (props: DeclarationReflection[]) => typeDeclarationTable(context, props), /** - * Renders type parameters section as a list. + * * * @category Member Partials */ typeParametersList: (typeParameters: TypeParameterReflection[]) => typeParametersList(context, typeParameters), /** - * Renders type parameters section as a table. + * * * @category Member Partials */ typeParametersTable: (typeParameters: TypeParameterReflection[]) => typeParametersTable(context, typeParameters), /** - * Renders breadcrumbs for a page from the context's `page` property. + * * * @category Page Partials */ breadcrumbs: () => breadcrumbs(context), /** - * Returns the page header. + * * * @category Page Partials */ header: () => header(context), /** - * Renders the page title. + * * * @category Page Partials */ packagesIndex: (model: ProjectReflection) => packagesIndex(context, model), /** - * Renders the page title. + * * * @category Page Partials */ pageTitle: () => pageTitle(context), /** - * Transforms an ArrayType model to a string. + * * * @category Type Partials */ arrayType: (model: ArrayType) => arrayType(context, model), /** - * Transforms an ConditionalType model to a string. + * * * @category Type Partials */ conditionalType: (model: ConditionalType) => conditionalType(context, model), /** - * Transforms an IndexedAccessType model to a string. + * * * @category Type Partials */ indexAccessType: (model: IndexedAccessType) => indexAccessType(context, model), /** - * Transforms an InferredType model to a string. + * * * @category Type Partials */ inferredType: (model: InferredType) => inferredType(context, model), /** - * Transforms an IntersectionType model to a string. + * * * @category Type Partials */ intersectionType: (model: IntersectionType) => intersectionType(context, model), /** - * Transforms an IntrinsicType model to a string. + * * * @category Type Partials */ intrinsicType: (model: IntrinsicType) => intrinsicType(context, model), /** - * Transforms an LiteralType model to a string. + * * * @category Type Partials */ literalType: (model: LiteralType) => literalType(context, model), /** - * Transforms an NamedTupleMember model to a string. + * * * @category Type Partials */ namedTupleType: (model: NamedTupleMember) => namedTupleType(context, model), /** - * Transforms an QueryType model to a string. + * * * @category Type Partials */ queryType: (model: QueryType) => queryType(context, model), /** - * Transforms an ReferenceType model to a string. + * * * @category Type Partials */ referenceType: (model: ReferenceType) => referenceType(context, model), /** - * Transforms an ReferenceType declaration model to a string. + * * * @category Type Partials */ declarationType: (model: DeclarationReflection) => declarationType(context, model), /** - * Transforms an ReferenceType functions model to a string. + * * * @category Type Partials */ @@ -502,7 +499,7 @@ There is no association list partial for properties as these are handled as a st forceParameterType: boolean = false, ) => functionType(context, signatures, forceParameterType), /** - * Transforms an ReflectionType model to a string. + * * * @category Type Partials */ @@ -515,26 +512,26 @@ There is no association list partial for properties as these are handled as a st */ someType: (model: SomeType) => someType(context, model), /** - * Transforms an TupleType functions model to a string. + * * * @category Type Partials */ tupleType: (model: TupleType) => tupleType(context, model), /** - * Transforms an TypeOperatorType functions model to a string. + * * * @category Type Partials */ typeOperatorType: (model: TypeOperatorType) => typeOperatorType(context, model), /** - * Transforms an UnionType model to a string. + * * * @category Type Partials */ unionType: (model: UnionType) => unionType(context, model), /** - * Transforms an UnknownType model to a string. + * * * @category Type Partials */ @@ -570,7 +567,10 @@ export const helpers = (context: MarkdownThemeRenderContext) => { | 'set' | null, getPackagesMeta: (key: string) => - getPackagesMeta.apply(context, [key]) as PackagesMeta, + getPackagesMeta.apply(context, [key]) as { + description?: string | undefined; + options: Options; + }, getParameterDefaultValue: (parameter: ParameterReflection) => getParameterDefaultValue.apply(context, [parameter]) as string, getProjectName: (textContent: string) => diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/comments.comment.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/comments.comment.ts similarity index 82% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/comments.comment.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/comments.comment.ts index 560741059..06ecaf66d 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/comments.comment.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/comments.comment.ts @@ -1,11 +1,10 @@ -import { bold, heading } from '@plugin/theme/lib/markdown'; -import { camelToTitleCase } from '@plugin/theme/lib/utils'; +import { bold, heading } from '@theme/lib/markdown'; +import { camelToTitleCase } from '@theme/lib/utils'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { Comment } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Renders a comment model, determining how to parse summary and tags. - * + * @category Comment Partials */ export function comment( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/comments.commentParts.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/comments.commentParts.ts similarity index 96% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/comments.commentParts.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/comments.commentParts.ts index a549e8875..cb9f35362 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/comments.commentParts.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/comments.commentParts.ts @@ -1,11 +1,9 @@ -import { link } from '@plugin/theme/lib/markdown'; +import { link } from '@theme/lib/markdown'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import * as fs from 'fs'; import { CommentDisplayPart, InlineTagDisplayPart } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Parses and renders individual comment strings. - * * @category Comment Partials */ export function commentParts( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/container.body.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/container.body.ts similarity index 91% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/container.body.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/container.body.ts index 9b3482b42..33d7ceddf 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/container.body.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/container.body.ts @@ -1,9 +1,7 @@ +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { ContainerReflection, ReflectionKind } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Renders the body of a containing reflection. - * * @category Container Partials */ export function body( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/container.categories.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/container.categories.ts similarity index 84% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/container.categories.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/container.categories.ts index 073da1345..9ff984c86 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/container.categories.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/container.categories.ts @@ -1,6 +1,6 @@ -import { heading } from '@plugin/theme/lib/markdown'; +import { heading } from '@theme/lib/markdown'; import { ReflectionCategory } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../../markdown-theme-render-context'; +import { MarkdownThemeRenderContext } from '../../render-context'; /** * Renders a collection of reflection categories. diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/container.groups.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/container.groups.ts similarity index 93% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/container.groups.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/container.groups.ts index fad712c5d..ed5f4533b 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/container.groups.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/container.groups.ts @@ -1,6 +1,6 @@ -import { heading } from '@plugin/theme/lib/markdown'; +import { heading } from '@theme/lib/markdown'; import { ReflectionGroup, ReflectionKind } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../../markdown-theme-render-context'; +import { MarkdownThemeRenderContext } from '../../render-context'; /** * Renders a collection of reflection groups. diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/container.members.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/container.members.ts similarity index 86% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/container.members.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/container.members.ts index d5e07acc8..ca9006c39 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/container.members.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/container.members.ts @@ -1,6 +1,6 @@ -import { horizontalRule } from '@plugin/theme/lib/markdown'; +import { horizontalRule } from '@theme/lib/markdown'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { DeclarationReflection } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** * Renders a collection of members. diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.accessor.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.accessor.ts similarity index 94% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.accessor.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.accessor.ts index 03de7b85b..b22e44269 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.accessor.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.accessor.ts @@ -1,6 +1,6 @@ -import { heading } from '@plugin/theme/lib/markdown'; +import { heading } from '@theme/lib/markdown'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { DeclarationReflection, ReflectionKind } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** * Renders an accessor member. diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.constructors.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.constructors.ts similarity index 78% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.constructors.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.constructors.ts index 2ff23e02c..5ebd3fb95 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.constructors.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.constructors.ts @@ -1,7 +1,7 @@ -import { heading } from '@plugin/theme/lib/markdown'; -import { escapeChars } from '@plugin/theme/lib/utils'; +import { heading } from '@theme/lib/markdown'; +import { escapeChars } from '@theme/lib/utils'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { DeclarationReflection } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** * Renders an constructor member. diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.declaration.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.declaration.ts similarity index 97% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.declaration.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.declaration.ts index bf59f9be6..f25e7a0a7 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.declaration.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.declaration.ts @@ -1,4 +1,5 @@ -import { heading } from '@plugin/theme/lib/markdown'; +import { heading } from '@theme/lib/markdown'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { DeclarationReflection, IntersectionType, @@ -6,7 +7,6 @@ import { ReflectionKind, ReflectionType, } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** * Renders a standard declaration member. diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.declarationTitle.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.declarationTitle.ts similarity index 91% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.declarationTitle.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.declarationTitle.ts index 42bd12bb8..efac3be28 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.declarationTitle.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.declarationTitle.ts @@ -1,7 +1,7 @@ -import { backTicks, bold, codeBlock } from '@plugin/theme/lib/markdown'; -import { escapeChars, stripComments } from '@plugin/theme/lib/utils'; +import { backTicks, bold, codeBlock } from '@theme/lib/markdown'; +import { escapeChars, stripComments } from '@theme/lib/utils'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { DeclarationReflection } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** * Remders a declaration title. diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.enumMembersTable.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.enumMembersTable.ts similarity index 93% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.enumMembersTable.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.enumMembersTable.ts index 0768d2ff5..ec01e83f2 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.enumMembersTable.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.enumMembersTable.ts @@ -1,10 +1,10 @@ -import { backTicks } from '@plugin/theme/lib/markdown'; +import { backTicks } from '@theme/lib/markdown'; import { formatTableDescriptionCol, formatTableTypeCol, -} from '@plugin/theme/lib/utils'; +} from '@theme/lib/utils'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { DeclarationReflection, ReflectionType } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** * Renders enum members as a table. diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.hierarchy.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.hierarchy.ts similarity index 90% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.hierarchy.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.hierarchy.ts index 9cbbae49b..5c0bd4561 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.hierarchy.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.hierarchy.ts @@ -1,11 +1,6 @@ -import { - backTicks, - bold, - heading, - unorderedList, -} from '@plugin/theme/lib/markdown'; +import { backTicks, bold, heading, unorderedList } from '@theme/lib/markdown'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { DeclarationHierarchy, SomeType, Type } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** * Renders an declaration hierachy section. diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.indexSignature.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.indexSignature.ts similarity index 85% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.indexSignature.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.indexSignature.ts index a7e008a45..fe784cc96 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.indexSignature.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.indexSignature.ts @@ -1,6 +1,6 @@ -import { backTicks } from '@plugin/theme/lib/markdown'; +import { backTicks } from '@theme/lib/markdown'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { SignatureReflection } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** * Renders an index signature block diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.inheritance.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.inheritance.ts similarity index 94% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.inheritance.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.inheritance.ts index 750502c24..690bd2204 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.inheritance.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.inheritance.ts @@ -1,11 +1,11 @@ -import { backTicks, heading, link } from '@plugin/theme/lib/markdown'; +import { backTicks, heading, link } from '@theme/lib/markdown'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { ArrayType, DeclarationReflection, ReferenceType, SignatureReflection, } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** * Renders an inheritance section. diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.memberTitle.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.memberTitle.ts similarity index 88% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.memberTitle.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.memberTitle.ts index d61550bda..00f3f09ff 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.memberTitle.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.memberTitle.ts @@ -1,5 +1,5 @@ -import { backTicks, strikeThrough } from '@plugin/theme/lib/markdown'; -import { escapeChars } from '@plugin/theme/lib/utils'; +import { backTicks, strikeThrough } from '@theme/lib/markdown'; +import { escapeChars } from '@theme/lib/utils'; import { DeclarationReflection, ReflectionKind, ReflectionType } from 'typedoc'; import { MarkdownThemeRenderContext } from '../../..'; @@ -37,7 +37,7 @@ export function memberTitle( name.push('()'); } - if (reflection.typeParameters) { + if (reflection.typeParameters?.length) { const typeParameters = reflection.typeParameters .map((typeParameter) => typeParameter.name) .join(', '); diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.memberWithGroups.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.memberWithGroups.ts similarity index 87% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.memberWithGroups.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.memberWithGroups.ts index ee853053e..28bf6d551 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.memberWithGroups.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.memberWithGroups.ts @@ -1,6 +1,6 @@ -import { heading, unorderedList } from '@plugin/theme/lib/markdown'; +import { heading, unorderedList } from '@theme/lib/markdown'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { DeclarationReflection } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** * Renders a top-level member that contains group and child members such as Classes, Interfaces and Enums. @@ -22,7 +22,7 @@ export function memberWithGroups( md.push(context.partials.hierarchy(model.typeHierarchy, headingLevel)); } - if (model.typeParameters) { + if (model.typeParameters?.length) { md.push( heading( headingLevel, @@ -36,7 +36,7 @@ export function memberWithGroups( } } - if (model.implementedTypes) { + if (model.implementedTypes?.length) { md.push(heading(headingLevel, context.helpers.getText('label.implements'))); md.push( unorderedList( @@ -47,7 +47,7 @@ export function memberWithGroups( ); } - if ('signatures' in model && model.signatures) { + if ('signatures' in model && model.signatures?.length) { model.signatures.forEach((signature) => { md.push(context.partials.signature(signature, headingLevel)); }); diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.parametersList.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.parametersList.ts similarity index 92% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.parametersList.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.parametersList.ts index 9f64fc382..5aa290745 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.parametersList.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.parametersList.ts @@ -1,7 +1,7 @@ -import { backTicks, bold } from '@plugin/theme/lib/markdown'; -import { escapeChars } from '@plugin/theme/lib/utils'; +import { backTicks, bold } from '@theme/lib/markdown'; +import { escapeChars } from '@theme/lib/utils'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { ParameterReflection, ReflectionKind, ReflectionType } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** * Renders parameters section as a list. diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.parametersTable.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.parametersTable.ts similarity index 95% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.parametersTable.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.parametersTable.ts index 8c9965d16..ec9c86abc 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.parametersTable.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.parametersTable.ts @@ -1,10 +1,10 @@ -import { backTicks, table } from '@plugin/theme/lib/markdown'; +import { backTicks, table } from '@theme/lib/markdown'; import { formatTableDescriptionCol, formatTableTypeCol, -} from '@plugin/theme/lib/utils'; +} from '@theme/lib/utils'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { ParameterReflection, ReflectionKind, ReflectionType } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** * Renders parameters section as a table. diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.propertiesTable.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.propertiesTable.ts similarity index 95% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.propertiesTable.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.propertiesTable.ts index a88bd3481..84d7535f1 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.propertiesTable.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.propertiesTable.ts @@ -1,10 +1,10 @@ -import { backTicks, strikeThrough, table } from '@plugin/theme/lib/markdown'; +import { backTicks, strikeThrough, table } from '@theme/lib/markdown'; import { formatTableDescriptionCol, formatTableTypeCol, -} from '@plugin/theme/lib/utils'; +} from '@theme/lib/utils'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { DeclarationReflection } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** * Renders a collection of properties in a table. diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.reference.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.reference.ts similarity index 90% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.reference.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.reference.ts index 57c079908..5bf144fbd 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.reference.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.reference.ts @@ -1,6 +1,6 @@ -import { link } from '@plugin/theme/lib/markdown'; +import { link } from '@theme/lib/markdown'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { ReferenceReflection, ReflectionKind } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** * Renders an reference member. diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.reflection.flags.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.reflection.flags.ts similarity index 79% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.reflection.flags.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.reflection.flags.ts index e5517000d..ddceecc03 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.reflection.flags.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.reflection.flags.ts @@ -1,7 +1,7 @@ -import { backTicks } from '@plugin/theme/lib/markdown'; -import { camelToTitleCase } from '@plugin/theme/lib/utils'; +import { backTicks } from '@theme/lib/markdown'; +import { camelToTitleCase } from '@theme/lib/utils'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { Reflection } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** * Renders the flags of a reflection. diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.reflection.index.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.reflection.index.ts similarity index 88% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.reflection.index.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.reflection.index.ts index 9cf6e1f3c..ecc7f57c0 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.reflection.index.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.reflection.index.ts @@ -1,10 +1,11 @@ -import { heading, link, table } from '@plugin/theme/lib/markdown'; +import { heading, link, table } from '@theme/lib/markdown'; import { escapeChars, formatTableDescriptionCol, getFirstParagrph, pipe, -} from '@plugin/theme/lib/utils'; +} from '@theme/lib/utils'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { DeclarationReflection, ProjectReflection, @@ -12,7 +13,6 @@ import { ReflectionGroup, ReflectionKind, } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** * Renders the index section of a reflection. @@ -31,6 +31,11 @@ export function reflectionIndex( if (reflection.categories) { reflection.categories.forEach((categoryGroup) => { md.push(heading(subHeadingLevel, categoryGroup.title) + '\n'); + if (categoryGroup.description) { + md.push( + context.partials.commentParts(categoryGroup.description) + '\n', + ); + } md.push(getGroup(context, categoryGroup) + '\n'); }); } else { @@ -53,6 +58,11 @@ export function reflectionIndex( md.push(heading(subHeadingLevel, reflectionGroup.title) + '\n'); reflectionGroup.categories.forEach((categoryGroup) => { md.push(heading(subHeadingLevel + 1, categoryGroup.title) + '\n'); + if (categoryGroup.description) { + md.push( + context.partials.commentParts(categoryGroup.description) + '\n', + ); + } md.push(getGroup(context, categoryGroup) + '\n'); }); } else { diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.signature.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.signature.ts similarity index 94% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.signature.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.signature.ts index 4b35f3623..b7a3864de 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.signature.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.signature.ts @@ -1,6 +1,6 @@ -import { heading } from '@plugin/theme/lib/markdown'; +import { heading } from '@theme/lib/markdown'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { ReflectionKind, SignatureReflection } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** * Renders a signature member. diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.signatureParameters.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.signatureParameters.ts similarity index 87% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.signatureParameters.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.signatureParameters.ts index 8b4cb4c57..69cb81ca0 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.signatureParameters.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.signatureParameters.ts @@ -1,10 +1,8 @@ -import { backTicks } from '@plugin/theme/lib/markdown'; +import { backTicks } from '@theme/lib/markdown'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { ParameterReflection, SomeType } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Renders tha parameters of a signature in parenthisis. - * * @category Member Partials */ export function signatureParameters( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.signatureReturns.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.signatureReturns.ts similarity index 94% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.signatureReturns.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.signatureReturns.ts index 9b18eee5e..21559ce05 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.signatureReturns.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.signatureReturns.ts @@ -3,7 +3,8 @@ import { blockQuoteBlock, codeBlock, heading, -} from '@plugin/theme/lib/markdown'; +} from '@theme/lib/markdown'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { DeclarationReflection, ReferenceType, @@ -11,11 +12,8 @@ import { SignatureReflection, SomeType, } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Renders the return section of a signature. - * * @category Member Partials */ export function signatureReturns( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.signatureTitle.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.signatureTitle.ts similarity index 87% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.signatureTitle.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.signatureTitle.ts index fb1ffbd63..d6190e842 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.signatureTitle.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.signatureTitle.ts @@ -1,11 +1,9 @@ -import { backTicks, bold, codeBlock } from '@plugin/theme/lib/markdown'; -import { escapeChars } from '@plugin/theme/lib/utils'; +import { backTicks, bold, codeBlock } from '@theme/lib/markdown'; +import { escapeChars } from '@theme/lib/utils'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { SignatureReflection } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Renders a signature title. - * * @category Member Partials */ export function signatureTitle( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.sources.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.sources.ts similarity index 77% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.sources.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.sources.ts index c9cebbdee..9a736e725 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.sources.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.sources.ts @@ -1,11 +1,9 @@ -import { heading, link } from '@plugin/theme/lib/markdown'; -import { escapeChars } from '@plugin/theme/lib/utils'; +import { heading, link } from '@theme/lib/markdown'; +import { escapeChars } from '@theme/lib/utils'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { DeclarationReflection, SignatureReflection } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Renders the sources section of a member. - * * @category Member Partials */ export function sources( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.ts similarity index 92% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.ts index 1a47ce611..9c870926b 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.ts @@ -1,15 +1,13 @@ -import { heading } from '@plugin/theme/lib/markdown'; -import { escapeChars } from '@plugin/theme/lib/utils'; +import { heading } from '@theme/lib/markdown'; +import { escapeChars } from '@theme/lib/utils'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { DeclarationReflection, ReferenceReflection, ReflectionKind, } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Renders a container member. - * * @category Member Partials */ export function member( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.typeArguments.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.typeArguments.ts similarity index 81% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.typeArguments.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.typeArguments.ts index d9a0a6858..d5bc127af 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.typeArguments.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.typeArguments.ts @@ -1,9 +1,7 @@ +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { ReflectionType, SomeType } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; -/** - * Renders type arguments in angle brackets. - * +/**å * @category Member Partials */ export function typeArguments( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.typeDeclaration.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.typeDeclaration.ts similarity index 82% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.typeDeclaration.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.typeDeclaration.ts index 402472314..360f72f62 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.typeDeclaration.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.typeDeclaration.ts @@ -1,9 +1,7 @@ +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { DeclarationReflection } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; -/** - * Renders type declarations of a parent member. - * +/**å * @category Member Partials */ export function typeDeclaration( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.typeDeclarationList.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.typeDeclarationList.ts similarity index 84% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.typeDeclarationList.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.typeDeclarationList.ts index e7d7edd7e..aa098a64e 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.typeDeclarationList.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.typeDeclarationList.ts @@ -1,9 +1,7 @@ +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { DeclarationReflection } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Renders type declarations as a list. - * * @category Member Partials */ export function typeDeclarationList( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.typeDeclarationTable.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.typeDeclarationTable.ts similarity index 90% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.typeDeclarationTable.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.typeDeclarationTable.ts index 9db961a36..963708a36 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.typeDeclarationTable.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.typeDeclarationTable.ts @@ -1,15 +1,13 @@ -import { table } from '@plugin/theme/lib/markdown'; +import { table } from '@theme/lib/markdown'; import { escapeChars, formatTableDescriptionCol, formatTableNameCol, -} from '@plugin/theme/lib/utils'; +} from '@theme/lib/utils'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { DeclarationReflection, SomeType } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Renders type declarations as a table. - * * @category Member Partials */ export function typeDeclarationTable( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.typeParametersList.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.typeParametersList.ts similarity index 84% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.typeParametersList.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.typeParametersList.ts index 957f0c4bd..370e7bd05 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.typeParametersList.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.typeParametersList.ts @@ -1,10 +1,8 @@ -import { bold } from '@plugin/theme/lib/markdown'; +import { bold } from '@theme/lib/markdown'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { TypeParameterReflection } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Renders type parameters section as a list. - * * @category Member Partials */ export function typeParametersList( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.typeParametersTable.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.typeParametersTable.ts similarity index 86% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.typeParametersTable.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/member.typeParametersTable.ts index 1cf18d6ad..7326df4a1 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/member.typeParametersTable.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/member.typeParametersTable.ts @@ -1,11 +1,9 @@ -import { backTicks, table } from '@plugin/theme/lib/markdown'; -import { formatTableDescriptionCol } from '@plugin/theme/lib/utils'; +import { backTicks, table } from '@theme/lib/markdown'; +import { formatTableDescriptionCol } from '@theme/lib/utils'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { TypeParameterReflection } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Renders type parameters section as a table. - * * @category Member Partials */ export function typeParametersTable( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/page.breadcrumbs.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/page.breadcrumbs.ts similarity index 87% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/page.breadcrumbs.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/page.breadcrumbs.ts index 9a80b31df..89da8f930 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/page.breadcrumbs.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/page.breadcrumbs.ts @@ -1,11 +1,9 @@ -import { link } from '@plugin/theme/lib/markdown'; -import { escapeChars } from '@plugin/theme/lib/utils'; +import { link } from '@theme/lib/markdown'; +import { escapeChars } from '@theme/lib/utils'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import * as path from 'path'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Renders breadcrumbs for a page from the context's `page` property. - * * @category Page Partials */ export function breadcrumbs(context: MarkdownThemeRenderContext): string { diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/page.header.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/page.header.ts similarity index 97% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/page.header.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/page.header.ts index cb9d90435..167cf40b4 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/page.header.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/page.header.ts @@ -1,4 +1,5 @@ -import { bold, link } from '@plugin/theme/lib/markdown'; +import { bold, link } from '@theme/lib/markdown'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import * as path from 'path'; import { DeclarationReflection, @@ -6,11 +7,8 @@ import { ProjectReflection, ReflectionKind, } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Returns the page header. - * * @category Page Partials */ export function header(context: MarkdownThemeRenderContext): string { diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/page.packagesIndex.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/page.packagesIndex.ts similarity index 90% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/page.packagesIndex.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/page.packagesIndex.ts index 742077111..5686f98a1 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/page.packagesIndex.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/page.packagesIndex.ts @@ -1,12 +1,10 @@ -import { MarkdownThemeRenderContext } from '@plugin/theme'; -import { heading, link, table } from '@plugin/theme/lib/markdown'; -import { escapeChars } from '@plugin/theme/lib/utils'; +import { heading, link, table } from '@theme/lib/markdown'; +import { escapeChars } from '@theme/lib/utils'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import * as path from 'path'; import { ProjectReflection } from 'typedoc'; /** - * Renders the page title. - * * @category Page Partials */ export function packagesIndex( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/page.pageTtitle.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/page.pageTtitle.ts similarity index 97% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/page.pageTtitle.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/page.pageTtitle.ts index 587934542..11cd6e735 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/page.pageTtitle.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/page.pageTtitle.ts @@ -2,8 +2,6 @@ import { DeclarationReflection, ReflectionKind } from 'typedoc'; import { MarkdownThemeRenderContext } from '../../..'; /** - * Renders the page title. - * * @category Page Partials */ export function pageTitle(context: MarkdownThemeRenderContext): string { diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.array.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.array.ts similarity index 75% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.array.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/type.array.ts index 6c0a46f3f..d3f76e719 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.array.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.array.ts @@ -1,9 +1,7 @@ +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { ArrayType } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Transforms an ArrayType model to a string. - * * @category Type Partials */ export function arrayType( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.conditional.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.conditional.ts similarity index 85% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.conditional.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/type.conditional.ts index 6589cd904..d500cec36 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.conditional.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.conditional.ts @@ -1,9 +1,7 @@ +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { ConditionalType } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Transforms an ConditionalType model to a string. - * * @category Type Partials */ export function conditionalType( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.index-access.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.index-access.ts similarity index 79% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.index-access.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/type.index-access.ts index 6ef494d9d..4256ca6ea 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.index-access.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.index-access.ts @@ -1,9 +1,7 @@ +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { IndexedAccessType } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Transforms an IndexedAccessType model to a string. - * * @category Type Partials */ export function indexAccessType( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.inferred.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.inferred.ts similarity index 58% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.inferred.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/type.inferred.ts index c2fb3b06b..67f364b58 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.inferred.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.inferred.ts @@ -1,10 +1,8 @@ -import { escapeChars } from '@plugin/theme/lib/utils'; +import { escapeChars } from '@theme/lib/utils'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { InferredType } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Transforms an InferredType model to a string. - * * @category Type Partials */ export function inferredType( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.intersection.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.intersection.ts similarity index 74% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.intersection.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/type.intersection.ts index 46bddf478..815e959c9 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.intersection.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.intersection.ts @@ -1,9 +1,7 @@ +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { IntersectionType } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Transforms an IntersectionType model to a string. - * * @category Type Partials */ export function intersectionType( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.intrinsic.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.intrinsic.ts similarity index 57% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.intrinsic.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/type.intrinsic.ts index 844f8e1e7..4cb39f384 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.intrinsic.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.intrinsic.ts @@ -1,10 +1,8 @@ -import { backTicks } from '@plugin/theme/lib/markdown'; +import { backTicks } from '@theme/lib/markdown'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { IntrinsicType } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Transforms an IntrinsicType model to a string. - * * @category Type Partials */ export function intrinsicType( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.literal.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.literal.ts similarity index 75% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.literal.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/type.literal.ts index e10bb199c..4668da6cd 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.literal.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.literal.ts @@ -1,9 +1,7 @@ +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { LiteralType } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Transforms an LiteralType model to a string. - * * @category Type Partials */ export function literalType( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.named-tuple.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.named-tuple.ts similarity index 69% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.named-tuple.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/type.named-tuple.ts index 2e27b607d..41988f6fa 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.named-tuple.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.named-tuple.ts @@ -1,9 +1,7 @@ +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { NamedTupleMember } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Transforms an NamedTupleMember model to a string. - * * @category Type Partials */ export function namedTupleType( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.query.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.query.ts similarity index 61% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.query.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/type.query.ts index 1244752e1..75fb74580 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.query.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.query.ts @@ -1,10 +1,8 @@ -import { italic } from '@plugin/theme/lib/markdown'; +import { italic } from '@theme/lib/markdown'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { QueryType } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Transforms an QueryType model to a string. - * * @category Type Partials */ export function queryType( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.reference.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.reference.ts similarity index 86% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.reference.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/type.reference.ts index f40d20549..752e6d459 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.reference.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.reference.ts @@ -1,10 +1,8 @@ -import { backTicks, link } from '@plugin/theme/lib/markdown'; +import { backTicks, link } from '@theme/lib/markdown'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { ReferenceType } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Transforms an ReferenceType model to a string. - * * @category Type Partials */ export function referenceType( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.reflection.declaration.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.reflection.declaration.ts similarity index 92% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.reflection.declaration.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/type.reflection.declaration.ts index abe71abe3..5e76ba812 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.reflection.declaration.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.reflection.declaration.ts @@ -1,10 +1,8 @@ -import { backTicks } from '@plugin/theme/lib/markdown'; +import { backTicks } from '@theme/lib/markdown'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { DeclarationReflection, SomeType } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Transforms an ReferenceType declaration model to a string. - * * @category Type Partials */ export function declarationType( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.reflection.function.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.reflection.function.ts similarity index 87% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.reflection.function.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/type.reflection.function.ts index 3820bb928..3e6a1e389 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.reflection.function.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.reflection.function.ts @@ -1,10 +1,8 @@ -import { backTicks } from '@plugin/theme/lib/markdown'; +import { backTicks } from '@theme/lib/markdown'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { SignatureReflection, SomeType } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Transforms an ReferenceType functions model to a string. - * * @category Type Partials */ export function functionType( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.reflection.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.reflection.ts similarity index 77% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.reflection.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/type.reflection.ts index fd6cf6084..46fdd763f 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.reflection.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.reflection.ts @@ -1,10 +1,8 @@ -import { backTicks } from '@plugin/theme/lib/markdown'; +import { backTicks } from '@theme/lib/markdown'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { ReflectionType } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Transforms an ReflectionType model to a string. - * * @category Type Partials */ export function reflectionType( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.some.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.some.ts similarity index 94% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.some.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/type.some.ts index ad9659884..c525dff5f 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.some.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.some.ts @@ -1,4 +1,5 @@ -import { backTicks } from '@plugin/theme/lib/markdown'; +import { backTicks } from '@theme/lib/markdown'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { ArrayType, ConditionalType, @@ -16,7 +17,6 @@ import { UnionType, UnknownType, } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** * Takes a generic Type and returns the appropriate partial for it. diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.tuple.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.tuple.ts similarity index 71% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.tuple.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/type.tuple.ts index 12e44e37d..e96cea5a5 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.tuple.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.tuple.ts @@ -1,9 +1,7 @@ +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { TupleType } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Transforms an TupleType functions model to a string. - * * @category Type Partials */ export function tupleType( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.type-operator.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.type-operator.ts similarity index 69% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.type-operator.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/type.type-operator.ts index 37a316385..ddef98f0d 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.type-operator.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.type-operator.ts @@ -1,9 +1,7 @@ +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { TypeOperatorType } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Transforms an TypeOperatorType functions model to a string. - * * @category Type Partials */ export function typeOperatorType( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.union.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.union.ts similarity index 82% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.union.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/type.union.ts index 086190e42..f21190ca5 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.union.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.union.ts @@ -1,9 +1,7 @@ +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { UnionType } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Transforms an UnionType model to a string. - * * @category Type Partials */ export function unionType( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.unknown.ts b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.unknown.ts similarity index 57% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.unknown.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/partials/type.unknown.ts index c29894228..f42c57d39 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/partials/type.unknown.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/partials/type.unknown.ts @@ -1,10 +1,8 @@ -import { escapeChars } from '@plugin/theme/lib/utils'; +import { escapeChars } from '@theme/lib/utils'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { UnknownType } from 'typedoc'; -import { MarkdownThemeRenderContext } from '../..'; /** - * Transforms an UnknownType model to a string. - * * @category Type Partials */ export function unknownType( diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/templates/project.ts b/packages/typedoc-plugin-markdown/src/theme/resources/templates/project.ts similarity index 83% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/templates/project.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/templates/project.ts index 7bb007a00..81968e16d 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/templates/project.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/templates/project.ts @@ -1,16 +1,15 @@ -import { heading } from '@plugin/theme/lib/markdown'; -import { MarkdownThemeRenderContext } from 'theme'; +import { heading } from '@theme/lib/markdown'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { EntryPointStrategy, ProjectReflection } from 'typedoc'; /** * Template that maps to the root project reflection. This will be the index page / documentation root page. */ -export function project( - this: MarkdownThemeRenderContext, - model: ProjectReflection, -) { +export function project(this: MarkdownThemeRenderContext) { const md: string[] = []; + const model = this.page.model as ProjectReflection; + md.push(this.hook('index.page.begin').join('\n')); if (!this.options.getValue('hidePageHeader')) { @@ -32,7 +31,7 @@ export function project( md.push(heading(1, this.partials.pageTitle())); } - md.push(this.hook('index.content.begin').join('\n')); + md.push(this.hook('content.begin').join('\n')); if (model.comment) { md.push(this.partials.comment(model.comment, { headingLevel: 2 })); diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/templates/read-me.ts b/packages/typedoc-plugin-markdown/src/theme/resources/templates/read-me.ts similarity index 75% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/templates/read-me.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/templates/read-me.ts index a79d74975..43bfdaec6 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/templates/read-me.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/templates/read-me.ts @@ -1,15 +1,14 @@ -import { MarkdownThemeRenderContext } from '@plugin/theme'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { CommentDisplayPart, ProjectReflection } from 'typedoc'; /** * Template that specifically maps to the resolved readme file. This template is not used when 'readme' is set to 'none'. */ -export function readme( - this: MarkdownThemeRenderContext, - model: ProjectReflection, -) { +export function readme(this: MarkdownThemeRenderContext) { const md: string[] = []; + const model = this.page.model as ProjectReflection; + if (!this.options.getValue('hidePageHeader')) { md.push(this.partials.header()); } diff --git a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/templates/reflection.ts b/packages/typedoc-plugin-markdown/src/theme/resources/templates/reflection.ts similarity index 79% rename from packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/templates/reflection.ts rename to packages/typedoc-plugin-markdown/src/theme/resources/templates/reflection.ts index dff30f810..9c703f4ae 100644 --- a/packages/typedoc-plugin-markdown/src/theme/markdown-theme-render-context/templates/reflection.ts +++ b/packages/typedoc-plugin-markdown/src/theme/resources/templates/reflection.ts @@ -1,17 +1,15 @@ -import { heading } from '@plugin/theme/lib/markdown'; - -import { MarkdownThemeRenderContext } from 'theme'; +import { heading } from '@theme/lib/markdown'; +import { MarkdownThemeRenderContext } from '@theme/render-context'; import { DeclarationReflection, ReflectionKind } from 'typedoc'; /** * Template that maps to individual reflection models. */ -export function reflection( - this: MarkdownThemeRenderContext, - model: DeclarationReflection, -) { +export function reflection(this: MarkdownThemeRenderContext) { const md: string[] = []; + const model = this.page.model as DeclarationReflection; + md.push(this.hook('page.begin').join('\n')); if (!this.options.getValue('hidePageHeader')) { diff --git a/packages/typedoc-plugin-markdown/src/theme/theme-types.ts b/packages/typedoc-plugin-markdown/src/theme/theme-types.ts index b77495a5e..551d7d64a 100644 --- a/packages/typedoc-plugin-markdown/src/theme/theme-types.ts +++ b/packages/typedoc-plugin-markdown/src/theme/theme-types.ts @@ -1,25 +1,32 @@ -import { MarkdownPageEvent } from '@plugin/app/events'; - +import { MarkdownPageEvent } from '@app/events/markdown-page-event'; import { ReflectionKind } from 'typedoc'; +/** + * The model used to define the URL mapping structure. + * + * @category Custom Theme + */ +export interface UrlMapping { + url: string; + model: Model; + template: (data: MarkdownPageEvent) => string; +} + +/** + * The model used to define the navigation structure. + * + * @category Custom Theme + */ export interface NavigationItem { title: string; url?: string | null; children?: NavigationItem[]; - isReadme?: boolean; - isGroup?: boolean; } +export type RenderTemplate = (data: T) => string; + export interface TemplateMapping { directory: string | null; template: any; kind: ReflectionKind; } - -export interface UrlMapping { - url: string; - model: Model; - template: RenderTemplate>; -} - -export type RenderTemplate = (data: T) => string; diff --git a/packages/typedoc-plugin-markdown/test/fixtures/src/reflections/classes.ts b/packages/typedoc-plugin-markdown/test/fixtures/src/reflections/classes.ts index d0ec0417a..03519575d 100644 --- a/packages/typedoc-plugin-markdown/test/fixtures/src/reflections/classes.ts +++ b/packages/typedoc-plugin-markdown/test/fixtures/src/reflections/classes.ts @@ -4,6 +4,8 @@ /** * Comments for BasicClass + * + * @category Basic */ export class BasicClass { /** @@ -27,6 +29,10 @@ export class BasicClass { }; } +/** + * @category Inheritance + */ + export abstract class AbstractClass { /** * Comments for abstractProp @@ -41,6 +47,8 @@ export abstract class AbstractClass { /** * Comments for DerivedClassA + * + * @category Inheritance */ export class DerivedClassA extends AbstractClass { abstractProp = 'abstractProp'; @@ -55,6 +63,8 @@ export class DerivedClassA extends AbstractClass { /** * Comments for DerivedClassB + * + * @category Inheritance */ export class DerivedClassB extends AbstractClass { abstractProp = 'abstractProp'; @@ -63,8 +73,18 @@ export class DerivedClassB extends AbstractClass { } } +/** + * @category Inheritance + */ + +export class DisposableClass implements Disposable { + [Symbol.dispose]() {} +} + /** * Comments for ClassWithConstructorOverloads + * + * @category Overloads */ export class ClassWithConstructorOverloads { /** @@ -87,11 +107,15 @@ export class ClassWithConstructorOverloads { * * @param A Comments for param A * @param B Comments for param B + * + * @category Overloads */ export class ClassWithTypeParameters {} /** * Comments for ClassWithAccessors + * + * @category Accessors */ export class ClassWithAccessors { private privateProp: string; @@ -117,12 +141,10 @@ export class ClassWithAccessors { set noGetter(x: string) {} } -/** - * Comments for AbstractClass - */ - /** * Comments for ClassWithModifiers + * + * @Modifiers */ export abstract class ClassWithModifiers { /** @@ -168,10 +190,6 @@ export abstract class ClassWithModifiers { static staticMethod() {} } -export class DisposableClass implements Disposable { - [Symbol.dispose]() {} -} - export class CallbacksOptions

{} /** diff --git a/packages/typedoc-plugin-markdown/test/specs/__snapshots__/customization.spec.ts.snap b/packages/typedoc-plugin-markdown/test/specs/__snapshots__/customization.spec.ts.snap index 85739af71..fcab877d4 100644 --- a/packages/typedoc-plugin-markdown/test/specs/__snapshots__/customization.spec.ts.snap +++ b/packages/typedoc-plugin-markdown/test/specs/__snapshots__/customization.spec.ts.snap @@ -14,7 +14,7 @@ exports[`Customization should insert content from hooks and apply custom theme i # typedoc-stubs -> \`content.index.begin\` hook +> \`content.begin\` hook Module commments diff --git a/packages/typedoc-plugin-markdown/test/specs/__snapshots__/navigation.spec.ts.snap b/packages/typedoc-plugin-markdown/test/specs/__snapshots__/navigation.spec.ts.snap index 1116b96d0..fc2c84f6a 100644 --- a/packages/typedoc-plugin-markdown/test/specs/__snapshots__/navigation.spec.ts.snap +++ b/packages/typedoc-plugin-markdown/test/specs/__snapshots__/navigation.spec.ts.snap @@ -1666,52 +1666,29 @@ exports[`Navigation should gets Navigation Json for multiple entry points: (Outp exports[`Navigation should gets Navigation Json for single entry point: (Output File Strategy "members") (Option Group "1") 1`] = ` "[ { - "title": "Enumerations", + "title": "Accessors", "children": [ { - "title": "BasicEnum", - "url": "enumerations/BasicEnum.md" - }, - { - "title": "EnumWithValues", - "url": "enumerations/EnumWithValues.md" + "title": "ClassWithAccessors", + "url": "classes/ClassWithAccessors.md" } ] }, { - "title": "Classes", + "title": "Basic", "children": [ - { - "title": "AbstractClass", - "url": "classes/AbstractClass.md" - }, { "title": "BasicClass", "url": "classes/BasicClass.md" - }, - { - "title": "CallbacksOptions", - "url": "classes/CallbacksOptions.md" - }, - { - "title": "ClassWithAccessors", - "url": "classes/ClassWithAccessors.md" - }, - { - "title": "ClassWithConstructorOverloads", - "url": "classes/ClassWithConstructorOverloads.md" - }, - { - "title": "ClassWithFlags", - "url": "classes/ClassWithFlags.md" - }, - { - "title": "ClassWithModifiers", - "url": "classes/ClassWithModifiers.md" - }, + } + ] + }, + { + "title": "Inheritance", + "children": [ { - "title": "ClassWithTypeParameters", - "url": "classes/ClassWithTypeParameters.md" + "title": "AbstractClass", + "url": "classes/AbstractClass.md" }, { "title": "DerivedClassA", @@ -1728,8 +1705,28 @@ exports[`Navigation should gets Navigation Json for single entry point: (Output ] }, { - "title": "Interfaces", + "title": "Other", "children": [ + { + "title": "BasicEnum", + "url": "enumerations/BasicEnum.md" + }, + { + "title": "EnumWithValues", + "url": "enumerations/EnumWithValues.md" + }, + { + "title": "CallbacksOptions", + "url": "classes/CallbacksOptions.md" + }, + { + "title": "ClassWithFlags", + "url": "classes/ClassWithFlags.md" + }, + { + "title": "ClassWithModifiers", + "url": "classes/ClassWithModifiers.md" + }, { "title": "BasicInterface", "url": "interfaces/BasicInterface.md" @@ -1757,12 +1754,7 @@ exports[`Navigation should gets Navigation Json for single entry point: (Output { "title": "InterfaceWithTypeParameters", "url": "interfaces/InterfaceWithTypeParameters.md" - } - ] - }, - { - "title": "Type Aliases", - "children": [ + }, { "title": "ArrayOfStuff", "url": "type-aliases/ArrayOfStuff.md" @@ -1842,12 +1834,7 @@ exports[`Navigation should gets Navigation Json for single entry point: (Output { "title": "UnionTypeWithTemplateStrings", "url": "type-aliases/UnionTypeWithTemplateStrings.md" - } - ] - }, - { - "title": "Variables", - "children": [ + }, { "title": "objectLiteralVariable", "url": "variables/objectLiteralVariable.md" @@ -1867,12 +1854,7 @@ exports[`Navigation should gets Navigation Json for single entry point: (Output { "title": "typeOperatorVariable", "url": "variables/typeOperatorVariable.md" - } - ] - }, - { - "title": "Functions", - "children": [ + }, { "title": "basicFunction", "url": "functions/basicFunction.md" @@ -1930,8 +1912,44 @@ exports[`Navigation should gets Navigation Json for single entry point: (Output "url": "functions/functionWithTypeParameters.md" } ] + }, + { + "title": "Overloads", + "children": [ + { + "title": "ClassWithConstructorOverloads", + "url": "classes/ClassWithConstructorOverloads.md" + }, + { + "title": "ClassWithTypeParameters", + "url": "classes/ClassWithTypeParameters.md" + } + ] } ]" `; -exports[`Navigation should gets Navigation Json for single entry point: (Output File Strategy "modules") (Option Group "1") 1`] = `"[]"`; +exports[`Navigation should gets Navigation Json for single entry point: (Output File Strategy "modules") (Option Group "1") 1`] = ` +"[ + { + "title": "Accessors", + "children": [] + }, + { + "title": "Basic", + "children": [] + }, + { + "title": "Inheritance", + "children": [] + }, + { + "title": "Other", + "children": [] + }, + { + "title": "Overloads", + "children": [] + } +]" +`; diff --git a/packages/typedoc-plugin-markdown/test/specs/__snapshots__/reflection.class.spec.ts.snap b/packages/typedoc-plugin-markdown/test/specs/__snapshots__/reflection.class.spec.ts.snap index 08ce0594a..53d921e96 100644 --- a/packages/typedoc-plugin-markdown/test/specs/__snapshots__/reflection.class.spec.ts.snap +++ b/packages/typedoc-plugin-markdown/test/specs/__snapshots__/reflection.class.spec.ts.snap @@ -28,7 +28,7 @@ Comments for abstractProp #### Source -[classes.ts:34](http://source-url) +[classes.ts:40](http://source-url) ## Methods @@ -44,7 +44,7 @@ Comments for abstractMethod #### Source -[classes.ts:39](http://source-url) +[classes.ts:45](http://source-url) " `; @@ -90,7 +90,7 @@ Comments for abstractMethod #### Source -[classes.ts:39](http://source-url) +[classes.ts:45](http://source-url) " `; @@ -137,7 +137,7 @@ Comments for someProp #### Source -[classes.ts:16](http://source-url) +[classes.ts:18](http://source-url) *** @@ -149,7 +149,7 @@ Comments for prop1 #### Source -[classes.ts:12](http://source-url) +[classes.ts:14](http://source-url) " `; @@ -204,7 +204,7 @@ Comments for ClassWithAccessors #### Source -[classes.ts:97](http://source-url) +[classes.ts:121](http://source-url) ## Accessors @@ -230,7 +230,7 @@ Param comments #### Source -[classes.ts:101](http://source-url) +[classes.ts:125](http://source-url) *** @@ -244,7 +244,7 @@ Param comments #### Source -[classes.ts:117](http://source-url) +[classes.ts:141](http://source-url) *** @@ -258,7 +258,7 @@ Param comments #### Source -[classes.ts:113](http://source-url) +[classes.ts:137](http://source-url) " `; @@ -313,7 +313,7 @@ Comments for setter #### Source -[classes.ts:101](http://source-url) +[classes.ts:125](http://source-url) *** @@ -331,7 +331,7 @@ set noGetter(x: string): void #### Source -[classes.ts:117](http://source-url) +[classes.ts:141](http://source-url) *** @@ -347,7 +347,7 @@ get noSetter(): string #### Source -[classes.ts:113](http://source-url) +[classes.ts:137](http://source-url) " `; @@ -376,7 +376,7 @@ Comments for x number #### Source -[classes.ts:75](http://source-url) +[classes.ts:95](http://source-url) ### new ClassWithConstructorOverloads(x) @@ -394,7 +394,7 @@ Comments for x string #### Source -[classes.ts:80](http://source-url) +[classes.ts:100](http://source-url) ### new ClassWithConstructorOverloads(s) @@ -410,7 +410,7 @@ Comments for x string #### Source -[classes.ts:81](http://source-url) +[classes.ts:101](http://source-url) " `; @@ -440,7 +440,7 @@ new ClassWithConstructorOverloads(x: number, y: string): ClassWithConstructorOve #### Source -[classes.ts:75](http://source-url) +[classes.ts:95](http://source-url) ### new ClassWithConstructorOverloads(x) @@ -460,7 +460,7 @@ new ClassWithConstructorOverloads(x: string): ClassWithConstructorOverloads #### Source -[classes.ts:80](http://source-url) +[classes.ts:100](http://source-url) ### new ClassWithConstructorOverloads(s) @@ -480,7 +480,7 @@ new ClassWithConstructorOverloads(s: string): ClassWithConstructorOverloads #### Source -[classes.ts:81](http://source-url) +[classes.ts:101](http://source-url) " `; @@ -509,7 +509,7 @@ Comment for ClassWithFlags #### Source -[classes.ts:182](http://source-url) +[classes.ts:200](http://source-url) *** @@ -521,7 +521,7 @@ Comment for ClassWithFlags #### Source -[classes.ts:184](http://source-url) +[classes.ts:202](http://source-url) ## Methods @@ -537,7 +537,7 @@ Comment for ClassWithFlags #### Source -[classes.ts:186](http://source-url) +[classes.ts:204](http://source-url) *** @@ -553,7 +553,7 @@ Comment for ClassWithFlags #### Source -[classes.ts:190](http://source-url) +[classes.ts:208](http://source-url) " `; @@ -597,7 +597,7 @@ expermintalMethod(): void #### Source -[classes.ts:186](http://source-url) +[classes.ts:204](http://source-url) *** @@ -615,7 +615,7 @@ protected internalMethod(): void #### Source -[classes.ts:190](http://source-url) +[classes.ts:208](http://source-url) " `; @@ -624,6 +624,8 @@ exports[`Class Reflection should compile class with modifiers: (Output File Stra Comments for ClassWithModifiers +## Modifiers + ## Constructors ### new ClassWithModifiers() @@ -644,7 +646,7 @@ Comments for privateProp #### Source -[classes.ts:136](http://source-url) +[classes.ts:158](http://source-url) *** @@ -656,7 +658,7 @@ Comments for protectedProp #### Source -[classes.ts:146](http://source-url) +[classes.ts:168](http://source-url) *** @@ -668,7 +670,7 @@ Comments for propWithDefault #### Source -[classes.ts:151](http://source-url) +[classes.ts:173](http://source-url) *** @@ -680,7 +682,7 @@ Comments for abstractProperty #### Source -[classes.ts:141](http://source-url) +[classes.ts:163](http://source-url) *** @@ -692,7 +694,7 @@ Comments for staticProp #### Source -[classes.ts:131](http://source-url) +[classes.ts:153](http://source-url) ## Methods @@ -708,7 +710,7 @@ Comment for privateMethod #### Source -[classes.ts:163](http://source-url) +[classes.ts:185](http://source-url) *** @@ -724,7 +726,7 @@ Comment for publicMethod #### Source -[classes.ts:156](http://source-url) +[classes.ts:178](http://source-url) *** @@ -740,7 +742,7 @@ Comment for staticMethod #### Source -[classes.ts:168](http://source-url) +[classes.ts:190](http://source-url) " `; @@ -749,6 +751,8 @@ exports[`Class Reflection should compile class with modifiers: (Output File Stra Comments for ClassWithModifiers +## Modifiers + ## Constructors ### new ClassWithModifiers() @@ -787,7 +791,7 @@ Comment for privateMethod #### Source -[classes.ts:163](http://source-url) +[classes.ts:185](http://source-url) *** @@ -805,7 +809,7 @@ Comment for publicMethod #### Source -[classes.ts:156](http://source-url) +[classes.ts:178](http://source-url) *** @@ -823,7 +827,7 @@ Comment for staticMethod #### Source -[classes.ts:168](http://source-url) +[classes.ts:190](http://source-url) " `; @@ -920,7 +924,7 @@ Comments for abstractProp #### Source -[classes.ts:46](http://source-url) +[classes.ts:54](http://source-url) *** @@ -930,7 +934,7 @@ Comments for abstractProp #### Source -[classes.ts:47](http://source-url) +[classes.ts:55](http://source-url) ## Methods @@ -950,7 +954,7 @@ Comments for abstractMethod #### Source -[classes.ts:48](http://source-url) +[classes.ts:56](http://source-url) *** @@ -964,7 +968,7 @@ Comments for abstractMethod #### Source -[classes.ts:51](http://source-url) +[classes.ts:59](http://source-url) " `; @@ -1020,7 +1024,7 @@ Comments for abstractMethod #### Source -[classes.ts:48](http://source-url) +[classes.ts:56](http://source-url) *** @@ -1036,7 +1040,7 @@ derivedMethod(): string #### Source -[classes.ts:51](http://source-url) +[classes.ts:59](http://source-url) " `; @@ -1073,6 +1077,6 @@ exports[`Class Reflection should compile disposable class: (Output File Strategy #### Source -[classes.ts:172](http://source-url) +[classes.ts:81](http://source-url) " `; diff --git a/packages/typedoc-plugin-markdown/tsconfig.json b/packages/typedoc-plugin-markdown/tsconfig.json index d0e3e242a..69dbaff06 100644 --- a/packages/typedoc-plugin-markdown/tsconfig.json +++ b/packages/typedoc-plugin-markdown/tsconfig.json @@ -4,9 +4,11 @@ "outDir": "./dist", "baseUrl": "src", "paths": { - "@plugin/*": ["*"] + "@app/*": ["./app/*"], + "@theme/*": ["./theme/*"], + "@options/*": ["./options/*"] } }, "include": ["src/**/*.ts"], - "exclude": ["./dist", "./test", "./scripts", "**/*.spec.ts"] + "exclude": ["./dist", "./test", ".scripts", "**/*.spec.ts"] } diff --git a/packages/typedoc-plugin-markdown/typedoc.json b/packages/typedoc-plugin-markdown/typedoc.json deleted file mode 100644 index ce684cb75..000000000 --- a/packages/typedoc-plugin-markdown/typedoc.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": ["../../typedoc.base.json"], - "entryPoints": ["./src/app/*", "./src/theme", "./src/theme/lib/*"] -} diff --git a/packages/typedoc-plugin-remark/src/index.ts b/packages/typedoc-plugin-remark/src/index.ts index 4c1ae9397..2bb20ba0f 100644 --- a/packages/typedoc-plugin-remark/src/index.ts +++ b/packages/typedoc-plugin-remark/src/index.ts @@ -5,7 +5,7 @@ import { ReflectionKind, RendererEvent, } from 'typedoc'; -import { MarkdownPageEvent, OutputFileStrategy } from 'typedoc-plugin-markdown'; +import { MarkdownPageEvent } from 'typedoc-plugin-markdown'; import * as options from './options/declarations'; export function load(app: Application) { @@ -41,7 +41,7 @@ export function load(app: Application) { ReflectionKind.Interface, ]; - if (outputFileStrategy === OutputFileStrategy.Modules) { + if (outputFileStrategy === 'modules') { kindsWithToc.push(ReflectionKind.Module); } diff --git a/packages/typedoc-plugin-remark/src/options/option-types.ts b/packages/typedoc-plugin-remark/src/options/option-types.ts index 6b653aaaa..fb5016da2 100644 --- a/packages/typedoc-plugin-remark/src/options/option-types.ts +++ b/packages/typedoc-plugin-remark/src/options/option-types.ts @@ -8,8 +8,21 @@ declare module 'typedoc' { } } +/** + * Describes the options declared by the plugin. + * + * @category Options + */ export interface PluginOptions { - remarkPlugins: ManuallyValidatedOption; + /** + * An array of remark plugin names. + */ + remarkPlugins: RemarkPlugins; } +/** + * + * + * @category Options + */ export interface RemarkPlugins {} diff --git a/packages/typedoc-vitepress-theme/src/index.ts b/packages/typedoc-vitepress-theme/src/index.ts index b3e61f826..552f98659 100644 --- a/packages/typedoc-vitepress-theme/src/index.ts +++ b/packages/typedoc-vitepress-theme/src/index.ts @@ -5,7 +5,6 @@ import { DeclarationOption, Options, OptionsReader, - Reflection, } from 'typedoc'; import { MarkdownPageEvent, @@ -37,22 +36,19 @@ export function load(app: Application) { })(), ); - app.renderer.on( - MarkdownPageEvent.END, - (page: MarkdownPageEvent) => { - page.contents = page.contents?.replace( - /\[([^\]]+)\]\((?!https?:|\/|\.)([^)]*#?[^)]*)\)/g, - (match: string, text: string, url: string) => { - const urlWithAnchor = url.split('#'); - if (urlWithAnchor.length > 1) { - const anchorPart = slugifyAnchor(urlWithAnchor[1]); - return `[${text}](${encodeURI(`${urlWithAnchor[0]}#${anchorPart}`)})`; - } - return `[${text}](${encodeURI(url)})`; - }, - ); - }, - ); + app.renderer.on(MarkdownPageEvent.END, (page: MarkdownPageEvent) => { + page.contents = page.contents?.replace( + /\[([^\]]+)\]\((?!https?:|\/|\.)([^)]*#?[^)]*)\)/g, + (match: string, text: string, url: string) => { + const urlWithAnchor = url.split('#'); + if (urlWithAnchor.length > 1) { + const anchorPart = slugifyAnchor(urlWithAnchor[1]); + return `[${text}](${encodeURI(`${urlWithAnchor[0]}#${anchorPart}`)})`; + } + return `[${text}](${encodeURI(url)})`; + }, + ); + }); app.renderer.postRenderAsyncJobs.push( async (output: MarkdownRendererEvent) => { @@ -60,7 +56,7 @@ export function load(app: Application) { ...DEFAULT_SIDEBAR_OPTIONS, ...app.options.getValue('sidebar'), }; - if (sidebarOptions.autoConfiguration) { + if (sidebarOptions.autoConfiguration && output.navigation) { const outDir = app.options.getValue('out'); const sidebarPath = path.resolve(outDir, 'typedoc-sidebar.json'); const basePath = path.relative( diff --git a/packages/typedoc-vitepress-theme/src/options/option-types.ts b/packages/typedoc-vitepress-theme/src/options/option-types.ts index db7847cf9..78f88acdf 100644 --- a/packages/typedoc-vitepress-theme/src/options/option-types.ts +++ b/packages/typedoc-vitepress-theme/src/options/option-types.ts @@ -9,11 +9,28 @@ declare module 'typedoc' { } } +/** + * Describes the options declared by the plugin. + * + * @category Options + */ export interface PluginOptions { + /** + * The path to the VitePress project root. + */ docsRoot: string; - sidebar: ManuallyValidatedOption; + + /** + * Configures the autogenerated VitePress sidebar. + */ + sidebar: Sidebar; } +/** + * + * + * @category Options + */ export interface Sidebar { autoConfiguration: boolean; format: string; diff --git a/typedoc.base.json b/typedoc.base.json deleted file mode 100644 index ce88d7e12..000000000 --- a/typedoc.base.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "includeVersion": true, - "readme": "none" -} diff --git a/typedoc.html.json b/typedoc.html.json deleted file mode 100644 index d5eff1b16..000000000 --- a/typedoc.html.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "entryPoints": [ - "packages/typedoc-plugin-markdown", - "packages/typedoc-plugin-frontmatter" - ], - "out": "devdocs-html", - "name": "HTML Documentation", - "entryPointStrategy": "packages", - "readme": "none" -} diff --git a/typedoc.json b/typedoc.json deleted file mode 100644 index 814c259de..000000000 --- a/typedoc.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "entryPoints": [ - "packages/typedoc-plugin-markdown", - "packages/typedoc-plugin-frontmatter" - ], - "plugin": ["typedoc-plugin-markdown"], - "out": "devdocs", - "name": "Markdown Documentation", - "entryPointStrategy": "packages", - "readme": "none", - "indexFormat": "table", - "sortEntryPoints": true, - "sort": ["required-first", "source-order"] -}