@depup/typedoc 0.28.17-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +34 -0
- package/bin/package.json +3 -0
- package/bin/typedoc +24 -0
- package/changes.json +22 -0
- package/dist/browser-locales/de.d.ts +2 -0
- package/dist/browser-locales/de.js +62 -0
- package/dist/browser-locales/en.d.ts +2 -0
- package/dist/browser-locales/en.js +62 -0
- package/dist/browser-locales/ja.d.ts +2 -0
- package/dist/browser-locales/ja.js +62 -0
- package/dist/browser-locales/ko.d.ts +2 -0
- package/dist/browser-locales/ko.js +62 -0
- package/dist/browser-locales/zh.d.ts +2 -0
- package/dist/browser-locales/zh.js +62 -0
- package/dist/browser-utils.d.ts +3 -0
- package/dist/browser-utils.js +3 -0
- package/dist/index.d.ts +49 -0
- package/dist/index.js +46 -0
- package/dist/lib/application-events.d.ts +5 -0
- package/dist/lib/application-events.js +5 -0
- package/dist/lib/application.d.ts +195 -0
- package/dist/lib/application.js +715 -0
- package/dist/lib/cli.d.ts +1 -0
- package/dist/lib/cli.js +111 -0
- package/dist/lib/converter/comments/blockLexer.d.ts +4 -0
- package/dist/lib/converter/comments/blockLexer.js +391 -0
- package/dist/lib/converter/comments/declarationReferenceResolver.d.ts +3 -0
- package/dist/lib/converter/comments/declarationReferenceResolver.js +218 -0
- package/dist/lib/converter/comments/discovery.d.ts +14 -0
- package/dist/lib/converter/comments/discovery.js +563 -0
- package/dist/lib/converter/comments/index.d.ts +37 -0
- package/dist/lib/converter/comments/index.js +241 -0
- package/dist/lib/converter/comments/lexer.d.ts +17 -0
- package/dist/lib/converter/comments/lexer.js +10 -0
- package/dist/lib/converter/comments/lineLexer.d.ts +3 -0
- package/dist/lib/converter/comments/lineLexer.js +279 -0
- package/dist/lib/converter/comments/linkResolver.d.ts +20 -0
- package/dist/lib/converter/comments/linkResolver.js +186 -0
- package/dist/lib/converter/comments/parser.d.ts +18 -0
- package/dist/lib/converter/comments/parser.js +538 -0
- package/dist/lib/converter/comments/rawLexer.d.ts +8 -0
- package/dist/lib/converter/comments/rawLexer.js +218 -0
- package/dist/lib/converter/comments/tagName.d.ts +8 -0
- package/dist/lib/converter/comments/tagName.js +58 -0
- package/dist/lib/converter/comments/textParser.d.ts +33 -0
- package/dist/lib/converter/comments/textParser.js +372 -0
- package/dist/lib/converter/components.d.ts +4 -0
- package/dist/lib/converter/components.js +3 -0
- package/dist/lib/converter/context.d.ts +101 -0
- package/dist/lib/converter/context.js +311 -0
- package/dist/lib/converter/convert-expression.d.ts +9 -0
- package/dist/lib/converter/convert-expression.js +58 -0
- package/dist/lib/converter/converter-events.d.ts +13 -0
- package/dist/lib/converter/converter-events.js +13 -0
- package/dist/lib/converter/converter.d.ts +238 -0
- package/dist/lib/converter/converter.js +705 -0
- package/dist/lib/converter/factories/index-signature.d.ts +3 -0
- package/dist/lib/converter/factories/index-signature.js +50 -0
- package/dist/lib/converter/factories/signature.d.ts +14 -0
- package/dist/lib/converter/factories/signature.js +353 -0
- package/dist/lib/converter/factories/symbol-id.d.ts +3 -0
- package/dist/lib/converter/factories/symbol-id.js +47 -0
- package/dist/lib/converter/index.d.ts +5 -0
- package/dist/lib/converter/index.js +3 -0
- package/dist/lib/converter/jsdoc.d.ts +4 -0
- package/dist/lib/converter/jsdoc.js +135 -0
- package/dist/lib/converter/plugins/CategoryPlugin.d.ts +48 -0
- package/dist/lib/converter/plugins/CategoryPlugin.js +278 -0
- package/dist/lib/converter/plugins/CommentPlugin.d.ts +128 -0
- package/dist/lib/converter/plugins/CommentPlugin.js +770 -0
- package/dist/lib/converter/plugins/GroupPlugin.d.ts +48 -0
- package/dist/lib/converter/plugins/GroupPlugin.js +281 -0
- package/dist/lib/converter/plugins/ImplementsPlugin.d.ts +42 -0
- package/dist/lib/converter/plugins/ImplementsPlugin.js +438 -0
- package/dist/lib/converter/plugins/IncludePlugin.d.ts +14 -0
- package/dist/lib/converter/plugins/IncludePlugin.js +254 -0
- package/dist/lib/converter/plugins/InheritDocPlugin.d.ts +32 -0
- package/dist/lib/converter/plugins/InheritDocPlugin.js +220 -0
- package/dist/lib/converter/plugins/LinkResolverPlugin.d.ts +13 -0
- package/dist/lib/converter/plugins/LinkResolverPlugin.js +88 -0
- package/dist/lib/converter/plugins/MergeModuleWithPlugin.d.ts +12 -0
- package/dist/lib/converter/plugins/MergeModuleWithPlugin.js +50 -0
- package/dist/lib/converter/plugins/PackagePlugin.d.ts +31 -0
- package/dist/lib/converter/plugins/PackagePlugin.js +188 -0
- package/dist/lib/converter/plugins/SourcePlugin.d.ts +36 -0
- package/dist/lib/converter/plugins/SourcePlugin.js +215 -0
- package/dist/lib/converter/plugins/TypePlugin.d.ts +16 -0
- package/dist/lib/converter/plugins/TypePlugin.js +108 -0
- package/dist/lib/converter/plugins/index.d.ts +10 -0
- package/dist/lib/converter/plugins/index.js +10 -0
- package/dist/lib/converter/symbols.d.ts +3 -0
- package/dist/lib/converter/symbols.js +861 -0
- package/dist/lib/converter/types.d.ts +10 -0
- package/dist/lib/converter/types.js +833 -0
- package/dist/lib/converter/utils/nodes.d.ts +7 -0
- package/dist/lib/converter/utils/nodes.js +26 -0
- package/dist/lib/converter/utils/reflections.d.ts +2 -0
- package/dist/lib/converter/utils/reflections.js +17 -0
- package/dist/lib/converter/utils/repository.d.ts +96 -0
- package/dist/lib/converter/utils/repository.js +295 -0
- package/dist/lib/converter/utils/symbols.d.ts +2 -0
- package/dist/lib/converter/utils/symbols.js +12 -0
- package/dist/lib/debug/index.d.ts +2 -0
- package/dist/lib/debug/index.js +2 -0
- package/dist/lib/debug/reflectionLifetimes.d.ts +3 -0
- package/dist/lib/debug/reflectionLifetimes.js +27 -0
- package/dist/lib/debug/rendererUrls.d.ts +6 -0
- package/dist/lib/debug/rendererUrls.js +68 -0
- package/dist/lib/internationalization/index.d.ts +7 -0
- package/dist/lib/internationalization/index.js +7 -0
- package/dist/lib/internationalization/internationalization.d.ts +65 -0
- package/dist/lib/internationalization/internationalization.js +64 -0
- package/dist/lib/internationalization/locale-utils.cjs +8 -0
- package/dist/lib/internationalization/locale-utils.d.cts +8 -0
- package/dist/lib/internationalization/locales/de.cjs +401 -0
- package/dist/lib/internationalization/locales/de.d.cts +368 -0
- package/dist/lib/internationalization/locales/en.cjs +411 -0
- package/dist/lib/internationalization/locales/en.d.cts +380 -0
- package/dist/lib/internationalization/locales/ja.cjs +320 -0
- package/dist/lib/internationalization/locales/ja.d.cts +307 -0
- package/dist/lib/internationalization/locales/ko.cjs +233 -0
- package/dist/lib/internationalization/locales/ko.d.cts +221 -0
- package/dist/lib/internationalization/locales/zh.cjs +488 -0
- package/dist/lib/internationalization/locales/zh.d.cts +452 -0
- package/dist/lib/internationalization/translatable.d.ts +21 -0
- package/dist/lib/internationalization/translatable.js +8 -0
- package/dist/lib/models/Comment.d.ts +241 -0
- package/dist/lib/models/Comment.js +534 -0
- package/dist/lib/models/ContainerReflection.d.ts +56 -0
- package/dist/lib/models/ContainerReflection.js +159 -0
- package/dist/lib/models/DeclarationReflection.d.ts +149 -0
- package/dist/lib/models/DeclarationReflection.js +287 -0
- package/dist/lib/models/DocumentReflection.d.ts +32 -0
- package/dist/lib/models/DocumentReflection.js +66 -0
- package/dist/lib/models/FileRegistry.d.ts +46 -0
- package/dist/lib/models/FileRegistry.js +133 -0
- package/dist/lib/models/ParameterReflection.d.ts +21 -0
- package/dist/lib/models/ParameterReflection.js +39 -0
- package/dist/lib/models/ProjectReflection.d.ts +112 -0
- package/dist/lib/models/ProjectReflection.js +417 -0
- package/dist/lib/models/ReferenceReflection.d.ts +49 -0
- package/dist/lib/models/ReferenceReflection.js +85 -0
- package/dist/lib/models/Reflection.d.ts +229 -0
- package/dist/lib/models/Reflection.js +495 -0
- package/dist/lib/models/ReflectionCategory.d.ts +31 -0
- package/dist/lib/models/ReflectionCategory.js +56 -0
- package/dist/lib/models/ReflectionGroup.d.ts +38 -0
- package/dist/lib/models/ReflectionGroup.js +72 -0
- package/dist/lib/models/ReflectionSymbolId.d.ts +63 -0
- package/dist/lib/models/ReflectionSymbolId.js +85 -0
- package/dist/lib/models/SignatureReflection.d.ts +50 -0
- package/dist/lib/models/SignatureReflection.js +96 -0
- package/dist/lib/models/SourceReference.d.ts +33 -0
- package/dist/lib/models/SourceReference.js +50 -0
- package/dist/lib/models/TypeParameterReflection.d.ts +30 -0
- package/dist/lib/models/TypeParameterReflection.js +45 -0
- package/dist/lib/models/index.d.ts +19 -0
- package/dist/lib/models/index.js +19 -0
- package/dist/lib/models/kind.d.ts +84 -0
- package/dist/lib/models/kind.js +231 -0
- package/dist/lib/models/types.d.ts +553 -0
- package/dist/lib/models/types.js +1296 -0
- package/dist/lib/models/utils.d.ts +1 -0
- package/dist/lib/models/utils.js +26 -0
- package/dist/lib/models/variant.d.ts +21 -0
- package/dist/lib/models/variant.js +1 -0
- package/dist/lib/output/components.d.ts +53 -0
- package/dist/lib/output/components.js +133 -0
- package/dist/lib/output/events.d.ts +175 -0
- package/dist/lib/output/events.js +195 -0
- package/dist/lib/output/formatter.d.ts +88 -0
- package/dist/lib/output/formatter.js +660 -0
- package/dist/lib/output/index.d.ts +9 -0
- package/dist/lib/output/index.js +7 -0
- package/dist/lib/output/output.d.ts +14 -0
- package/dist/lib/output/output.js +92 -0
- package/dist/lib/output/plugins/AssetsPlugin.d.ts +20 -0
- package/dist/lib/output/plugins/AssetsPlugin.js +160 -0
- package/dist/lib/output/plugins/HierarchyPlugin.d.ts +7 -0
- package/dist/lib/output/plugins/HierarchyPlugin.js +65 -0
- package/dist/lib/output/plugins/IconsPlugin.d.ts +12 -0
- package/dist/lib/output/plugins/IconsPlugin.js +54 -0
- package/dist/lib/output/plugins/JavascriptIndexPlugin.d.ts +22 -0
- package/dist/lib/output/plugins/JavascriptIndexPlugin.js +222 -0
- package/dist/lib/output/plugins/NavigationPlugin.d.ts +7 -0
- package/dist/lib/output/plugins/NavigationPlugin.js +23 -0
- package/dist/lib/output/plugins/SitemapPlugin.d.ts +8 -0
- package/dist/lib/output/plugins/SitemapPlugin.js +82 -0
- package/dist/lib/output/plugins/index.d.ts +7 -0
- package/dist/lib/output/plugins/index.js +7 -0
- package/dist/lib/output/renderer.d.ts +227 -0
- package/dist/lib/output/renderer.js +387 -0
- package/dist/lib/output/router.d.ts +187 -0
- package/dist/lib/output/router.js +520 -0
- package/dist/lib/output/theme.d.ts +22 -0
- package/dist/lib/output/theme.js +17 -0
- package/dist/lib/output/themes/MarkedPlugin.d.ts +62 -0
- package/dist/lib/output/themes/MarkedPlugin.js +461 -0
- package/dist/lib/output/themes/default/DefaultTheme.d.ts +72 -0
- package/dist/lib/output/themes/default/DefaultTheme.js +367 -0
- package/dist/lib/output/themes/default/DefaultThemeRenderContext.d.ts +105 -0
- package/dist/lib/output/themes/default/DefaultThemeRenderContext.js +151 -0
- package/dist/lib/output/themes/default/Slugger.d.ts +13 -0
- package/dist/lib/output/themes/default/Slugger.js +60 -0
- package/dist/lib/output/themes/default/layouts/default.d.ts +6 -0
- package/dist/lib/output/themes/default/layouts/default.js +89 -0
- package/dist/lib/output/themes/default/partials/anchor-icon.d.ts +5 -0
- package/dist/lib/output/themes/default/partials/anchor-icon.js +9 -0
- package/dist/lib/output/themes/default/partials/breadcrumb.d.ts +4 -0
- package/dist/lib/output/themes/default/partials/breadcrumb.js +11 -0
- package/dist/lib/output/themes/default/partials/comment.d.ts +8 -0
- package/dist/lib/output/themes/default/partials/comment.js +80 -0
- package/dist/lib/output/themes/default/partials/footer.d.ts +3 -0
- package/dist/lib/output/themes/default/partials/footer.js +37 -0
- package/dist/lib/output/themes/default/partials/header.d.ts +5 -0
- package/dist/lib/output/themes/default/partials/header.js +39 -0
- package/dist/lib/output/themes/default/partials/hierarchy.d.ts +4 -0
- package/dist/lib/output/themes/default/partials/hierarchy.js +32 -0
- package/dist/lib/output/themes/default/partials/icon.d.ts +20 -0
- package/dist/lib/output/themes/default/partials/icon.js +101 -0
- package/dist/lib/output/themes/default/partials/index.d.ts +4 -0
- package/dist/lib/output/themes/default/partials/index.js +24 -0
- package/dist/lib/output/themes/default/partials/member.d.ts +4 -0
- package/dist/lib/output/themes/default/partials/member.declaration.d.ts +4 -0
- package/dist/lib/output/themes/default/partials/member.declaration.js +35 -0
- package/dist/lib/output/themes/default/partials/member.getterSetter.d.ts +4 -0
- package/dist/lib/output/themes/default/partials/member.getterSetter.js +12 -0
- package/dist/lib/output/themes/default/partials/member.js +36 -0
- package/dist/lib/output/themes/default/partials/member.signature.body.d.ts +6 -0
- package/dist/lib/output/themes/default/partials/member.signature.body.js +33 -0
- package/dist/lib/output/themes/default/partials/member.signature.title.d.ts +5 -0
- package/dist/lib/output/themes/default/partials/member.signature.title.js +9 -0
- package/dist/lib/output/themes/default/partials/member.signatures.d.ts +4 -0
- package/dist/lib/output/themes/default/partials/member.signatures.js +9 -0
- package/dist/lib/output/themes/default/partials/member.sources.d.ts +4 -0
- package/dist/lib/output/themes/default/partials/member.sources.js +55 -0
- package/dist/lib/output/themes/default/partials/members.d.ts +4 -0
- package/dist/lib/output/themes/default/partials/members.js +17 -0
- package/dist/lib/output/themes/default/partials/moduleReflection.d.ts +5 -0
- package/dist/lib/output/themes/default/partials/moduleReflection.js +68 -0
- package/dist/lib/output/themes/default/partials/navigation.d.ts +10 -0
- package/dist/lib/output/themes/default/partials/navigation.js +144 -0
- package/dist/lib/output/themes/default/partials/reflectionPreview.d.ts +4 -0
- package/dist/lib/output/themes/default/partials/reflectionPreview.js +26 -0
- package/dist/lib/output/themes/default/partials/toolbar.d.ts +5 -0
- package/dist/lib/output/themes/default/partials/toolbar.js +13 -0
- package/dist/lib/output/themes/default/partials/type.d.ts +5 -0
- package/dist/lib/output/themes/default/partials/type.js +9 -0
- package/dist/lib/output/themes/default/partials/typeAndParent.d.ts +4 -0
- package/dist/lib/output/themes/default/partials/typeAndParent.js +28 -0
- package/dist/lib/output/themes/default/partials/typeDetails.d.ts +8 -0
- package/dist/lib/output/themes/default/partials/typeDetails.js +284 -0
- package/dist/lib/output/themes/default/partials/typeParameters.d.ts +4 -0
- package/dist/lib/output/themes/default/partials/typeParameters.js +26 -0
- package/dist/lib/output/themes/default/templates/document.d.ts +5 -0
- package/dist/lib/output/themes/default/templates/document.js +3 -0
- package/dist/lib/output/themes/default/templates/hierarchy.d.ts +5 -0
- package/dist/lib/output/themes/default/templates/hierarchy.js +31 -0
- package/dist/lib/output/themes/default/templates/index.d.ts +5 -0
- package/dist/lib/output/themes/default/templates/index.js +3 -0
- package/dist/lib/output/themes/default/templates/reflection.d.ts +5 -0
- package/dist/lib/output/themes/default/templates/reflection.js +53 -0
- package/dist/lib/output/themes/lib.d.ts +44 -0
- package/dist/lib/output/themes/lib.js +218 -0
- package/dist/lib/serialization/components.d.ts +22 -0
- package/dist/lib/serialization/components.js +1 -0
- package/dist/lib/serialization/deserializer.d.ts +70 -0
- package/dist/lib/serialization/deserializer.js +235 -0
- package/dist/lib/serialization/events.d.ts +17 -0
- package/dist/lib/serialization/events.js +18 -0
- package/dist/lib/serialization/index.d.ts +5 -0
- package/dist/lib/serialization/index.js +4 -0
- package/dist/lib/serialization/schema.d.ts +283 -0
- package/dist/lib/serialization/schema.js +32 -0
- package/dist/lib/serialization/serializer.d.ts +52 -0
- package/dist/lib/serialization/serializer.js +65 -0
- package/dist/lib/utils/ValidatingFileRegistry.d.ts +12 -0
- package/dist/lib/utils/ValidatingFileRegistry.js +52 -0
- package/dist/lib/utils/component.d.ts +38 -0
- package/dist/lib/utils/component.js +41 -0
- package/dist/lib/utils/compress.d.ts +7 -0
- package/dist/lib/utils/compress.js +13 -0
- package/dist/lib/utils/declaration-maps.d.ts +3 -0
- package/dist/lib/utils/declaration-maps.js +51 -0
- package/dist/lib/utils/entry-point.d.ts +50 -0
- package/dist/lib/utils/entry-point.js +330 -0
- package/dist/lib/utils/fs.d.ts +65 -0
- package/dist/lib/utils/fs.js +372 -0
- package/dist/lib/utils/general.d.ts +4 -0
- package/dist/lib/utils/general.js +25 -0
- package/dist/lib/utils/highlighter.d.ts +9 -0
- package/dist/lib/utils/highlighter.js +150 -0
- package/dist/lib/utils/html-entities.d.ts +8926 -0
- package/dist/lib/utils/html-entities.js +2329 -0
- package/dist/lib/utils/html.d.ts +67 -0
- package/dist/lib/utils/html.js +635 -0
- package/dist/lib/utils/index.d.ts +17 -0
- package/dist/lib/utils/index.js +15 -0
- package/dist/lib/utils/loggers.d.ts +10 -0
- package/dist/lib/utils/loggers.js +71 -0
- package/dist/lib/utils/options/declaration.d.ts +514 -0
- package/dist/lib/utils/options/declaration.js +443 -0
- package/dist/lib/utils/options/defaults.d.ts +20 -0
- package/dist/lib/utils/options/defaults.js +104 -0
- package/dist/lib/utils/options/help.d.ts +7 -0
- package/dist/lib/utils/options/help.js +63 -0
- package/dist/lib/utils/options/index.d.ts +6 -0
- package/dist/lib/utils/options/index.js +4 -0
- package/dist/lib/utils/options/options.d.ts +199 -0
- package/dist/lib/utils/options/options.js +273 -0
- package/dist/lib/utils/options/readers/arguments.d.ts +15 -0
- package/dist/lib/utils/options/readers/arguments.js +109 -0
- package/dist/lib/utils/options/readers/index.d.ts +4 -0
- package/dist/lib/utils/options/readers/index.js +4 -0
- package/dist/lib/utils/options/readers/package-json.d.ts +9 -0
- package/dist/lib/utils/options/readers/package-json.js +40 -0
- package/dist/lib/utils/options/readers/tsconfig.d.ts +14 -0
- package/dist/lib/utils/options/readers/tsconfig.js +172 -0
- package/dist/lib/utils/options/readers/typedoc.d.ts +33 -0
- package/dist/lib/utils/options/readers/typedoc.js +136 -0
- package/dist/lib/utils/options/sources/index.d.ts +1 -0
- package/dist/lib/utils/options/sources/index.js +1 -0
- package/dist/lib/utils/options/sources/typedoc.d.ts +2 -0
- package/dist/lib/utils/options/sources/typedoc.js +876 -0
- package/dist/lib/utils/options/tsdoc-defaults.d.ts +6 -0
- package/dist/lib/utils/options/tsdoc-defaults.js +94 -0
- package/dist/lib/utils/package-manifest.d.ts +11 -0
- package/dist/lib/utils/package-manifest.js +84 -0
- package/dist/lib/utils/paths.d.ts +27 -0
- package/dist/lib/utils/paths.js +127 -0
- package/dist/lib/utils/perf.d.ts +6 -0
- package/dist/lib/utils/perf.js +86 -0
- package/dist/lib/utils/plugins.d.ts +3 -0
- package/dist/lib/utils/plugins.js +61 -0
- package/dist/lib/utils/reflections.d.ts +5 -0
- package/dist/lib/utils/reflections.js +64 -0
- package/dist/lib/utils/sort.d.ts +11 -0
- package/dist/lib/utils/sort.js +153 -0
- package/dist/lib/utils/tsconfig.d.ts +5 -0
- package/dist/lib/utils/tsconfig.js +60 -0
- package/dist/lib/utils/tsutils.d.ts +3 -0
- package/dist/lib/utils/tsutils.js +23 -0
- package/dist/lib/utils-common/array.d.ts +57 -0
- package/dist/lib/utils-common/array.js +152 -0
- package/dist/lib/utils-common/declarationReference.d.ts +42 -0
- package/dist/lib/utils-common/declarationReference.js +341 -0
- package/dist/lib/utils-common/enum.d.ts +9 -0
- package/dist/lib/utils-common/enum.js +27 -0
- package/dist/lib/utils-common/events.d.ts +29 -0
- package/dist/lib/utils-common/events.js +49 -0
- package/dist/lib/utils-common/general.d.ts +40 -0
- package/dist/lib/utils-common/general.js +22 -0
- package/dist/lib/utils-common/hooks.d.ts +51 -0
- package/dist/lib/utils-common/hooks.js +90 -0
- package/dist/lib/utils-common/i18n.d.ts +18 -0
- package/dist/lib/utils-common/i18n.js +39 -0
- package/dist/lib/utils-common/index.d.ts +16 -0
- package/dist/lib/utils-common/index.js +17 -0
- package/dist/lib/utils-common/jsx.d.ts +53 -0
- package/dist/lib/utils-common/jsx.elements.d.ts +949 -0
- package/dist/lib/utils-common/jsx.elements.js +3 -0
- package/dist/lib/utils-common/jsx.js +187 -0
- package/dist/lib/utils-common/logger.d.ts +97 -0
- package/dist/lib/utils-common/logger.js +129 -0
- package/dist/lib/utils-common/map.d.ts +23 -0
- package/dist/lib/utils-common/map.js +63 -0
- package/dist/lib/utils-common/minimalSourceFile.d.ts +12 -0
- package/dist/lib/utils-common/minimalSourceFile.js +43 -0
- package/dist/lib/utils-common/path.d.ts +42 -0
- package/dist/lib/utils-common/path.js +130 -0
- package/dist/lib/utils-common/set.d.ts +3 -0
- package/dist/lib/utils-common/set.js +23 -0
- package/dist/lib/utils-common/string.d.ts +11 -0
- package/dist/lib/utils-common/string.js +84 -0
- package/dist/lib/utils-common/validation.d.ts +33 -0
- package/dist/lib/utils-common/validation.js +50 -0
- package/dist/lib/validation/documentation.d.ts +3 -0
- package/dist/lib/validation/documentation.js +91 -0
- package/dist/lib/validation/exports.d.ts +3 -0
- package/dist/lib/validation/exports.js +65 -0
- package/dist/lib/validation/links.d.ts +3 -0
- package/dist/lib/validation/links.js +78 -0
- package/dist/lib/validation/unusedMergeModuleWith.d.ts +3 -0
- package/dist/lib/validation/unusedMergeModuleWith.js +12 -0
- package/package.json +161 -0
- package/static/main.js +58 -0
- package/static/style.css +1633 -0
- package/tsdoc.json +247 -0
- package/typedoc-config.schema.json +941 -0
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import { ConverterComponent } from "../components.js";
|
|
3
|
+
import { ConverterEvents } from "../converter-events.js";
|
|
4
|
+
import { MinimalSourceFile } from "#utils";
|
|
5
|
+
import { isFile, readFile } from "../../utils/fs.js";
|
|
6
|
+
import { dedent, escapeRegExp, i18n } from "#utils";
|
|
7
|
+
import { normalizePath } from "#node-utils";
|
|
8
|
+
/**
|
|
9
|
+
* Handles `@include` and `@includeCode` within comments/documents.
|
|
10
|
+
*/
|
|
11
|
+
export class IncludePlugin extends ConverterComponent {
|
|
12
|
+
get logger() {
|
|
13
|
+
return this.application.logger;
|
|
14
|
+
}
|
|
15
|
+
constructor(owner) {
|
|
16
|
+
super(owner);
|
|
17
|
+
const onCreate = this.onCreate.bind(this);
|
|
18
|
+
owner.on(ConverterEvents.CREATE_PROJECT, onCreate);
|
|
19
|
+
owner.on(ConverterEvents.CREATE_DOCUMENT, onCreate);
|
|
20
|
+
owner.on(ConverterEvents.CREATE_DECLARATION, onCreate);
|
|
21
|
+
owner.on(ConverterEvents.CREATE_PARAMETER, onCreate);
|
|
22
|
+
owner.on(ConverterEvents.CREATE_SIGNATURE, onCreate);
|
|
23
|
+
owner.on(ConverterEvents.CREATE_TYPE_PARAMETER, onCreate);
|
|
24
|
+
}
|
|
25
|
+
onCreate(_context, refl) {
|
|
26
|
+
if (refl.isDocument()) {
|
|
27
|
+
// We know it must be present as documents are always associated with a file.
|
|
28
|
+
const relative = this.application.files.getReflectionPath(refl);
|
|
29
|
+
this.checkIncludeTagsParts(refl, path.dirname(relative), refl.content);
|
|
30
|
+
}
|
|
31
|
+
if (!refl.comment?.sourcePath)
|
|
32
|
+
return;
|
|
33
|
+
const relative = path.dirname(refl.comment.sourcePath);
|
|
34
|
+
this.checkIncludeTagsParts(refl, relative, refl.comment.summary);
|
|
35
|
+
for (const tag of refl.comment.blockTags) {
|
|
36
|
+
this.checkIncludeTagsParts(refl, relative, tag.content);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
checkIncludeTagsParts(refl, relative, parts, included = []) {
|
|
40
|
+
for (let i = 0; i < parts.length; ++i) {
|
|
41
|
+
const part = parts[i];
|
|
42
|
+
if (part.kind !== "inline-tag" ||
|
|
43
|
+
!["@include", "@includeCode"].includes(part.tag)) {
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
const { filename, regionTarget, requestedLines } = parseIncludeCodeTextPart(part.text);
|
|
47
|
+
const file = normalizePath(path.resolve(relative, filename));
|
|
48
|
+
this.application.watchFile(file);
|
|
49
|
+
if (included.includes(file) && part.tag === "@include") {
|
|
50
|
+
this.logger.error(i18n.include_0_in_1_specified_2_circular_include_3(part.tag, refl.getFriendlyFullName(), part.text, included.join("\n\t")));
|
|
51
|
+
}
|
|
52
|
+
else if (isFile(file)) {
|
|
53
|
+
const text = readFile(file).replaceAll("\r\n", "\n");
|
|
54
|
+
const ext = path.extname(file).substring(1);
|
|
55
|
+
const includedText = regionTarget
|
|
56
|
+
? this.getRegions(refl, file, ext, part.text, text, regionTarget, part.tag, part.tag === "@includeCode")
|
|
57
|
+
: requestedLines
|
|
58
|
+
? this.getLines(refl, file, part.text, text, requestedLines, part.tag)
|
|
59
|
+
: text;
|
|
60
|
+
if (part.tag === "@include") {
|
|
61
|
+
const sf = new MinimalSourceFile(includedText, file);
|
|
62
|
+
const { content } = this.owner.parseRawComment(sf, refl.project.files);
|
|
63
|
+
this.checkIncludeTagsParts(refl, path.dirname(file), content, [...included, file]);
|
|
64
|
+
parts.splice(i, 1, ...content);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
parts[i] = {
|
|
68
|
+
kind: "code",
|
|
69
|
+
text: makeCodeBlock(ext, includedText),
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
this.logger.error(i18n.include_0_in_1_specified_2_resolved_to_3_does_not_exist(part.tag, refl.getFriendlyFullName(), part.text, file));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
getRegions(refl, file, ext, textPart, text, regionTargets, tag, ignoreIndent) {
|
|
79
|
+
const regionTagsList = regionTagREsByExt[ext];
|
|
80
|
+
if (!regionTagsList) {
|
|
81
|
+
this.logger.error(i18n.include_0_tag_in_1_region_2_region_not_supported(tag, refl.getFriendlyFullName(), textPart));
|
|
82
|
+
return "";
|
|
83
|
+
}
|
|
84
|
+
const targets = regionTargets.split(",").map((s) => s.trim());
|
|
85
|
+
let content = "";
|
|
86
|
+
for (const target of targets) {
|
|
87
|
+
let found = false;
|
|
88
|
+
for (const [startTag, endTag] of regionTagsList) {
|
|
89
|
+
const safeTarget = escapeRegExp(target);
|
|
90
|
+
const start = text.match(startTag(safeTarget));
|
|
91
|
+
const end = text.match(endTag(safeTarget));
|
|
92
|
+
const foundStart = start && start.length > 0;
|
|
93
|
+
const foundEnd = end && end.length > 0;
|
|
94
|
+
if (foundStart && !foundEnd) {
|
|
95
|
+
this.logger.error(i18n.include_0_tag_in_1_specified_2_file_3_region_4_region_close_not_found(tag, refl.getFriendlyFullName(), textPart, file, target));
|
|
96
|
+
return "";
|
|
97
|
+
}
|
|
98
|
+
if (!foundStart && foundEnd) {
|
|
99
|
+
this.logger.error(i18n.include_0_tag_in_1_specified_2_file_3_region_4_region_open_not_found(tag, refl.getFriendlyFullName(), textPart, file, target));
|
|
100
|
+
return "";
|
|
101
|
+
}
|
|
102
|
+
if (foundStart && foundEnd) {
|
|
103
|
+
if (start.length > 1) {
|
|
104
|
+
this.logger.error(i18n
|
|
105
|
+
.include_0_tag_in_1_specified_2_file_3_region_4_region_open_found_multiple_times(tag, refl.getFriendlyFullName(), textPart, file, target));
|
|
106
|
+
return "";
|
|
107
|
+
}
|
|
108
|
+
if (end.length > 1) {
|
|
109
|
+
this.logger.error(i18n
|
|
110
|
+
.include_0_tag_in_1_specified_2_file_3_region_4_region_close_found_multiple_times(tag, refl.getFriendlyFullName(), textPart, file, target));
|
|
111
|
+
return "";
|
|
112
|
+
}
|
|
113
|
+
if (found) {
|
|
114
|
+
this.logger.error(i18n.include_0_tag_in_1_specified_2_file_3_region_4_region_found_multiple_times(tag, refl.getFriendlyFullName(), textPart, file, target));
|
|
115
|
+
return "";
|
|
116
|
+
}
|
|
117
|
+
found = text.substring(text.indexOf(start[0]) + start[0].length, text.indexOf(end[0]));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (found === false) {
|
|
121
|
+
this.logger.error(i18n.include_0_tag_in_1_specified_2_file_3_region_4_region_not_found(tag, refl.getFriendlyFullName(), textPart, file, target));
|
|
122
|
+
return "";
|
|
123
|
+
}
|
|
124
|
+
if (found.trim() === "") {
|
|
125
|
+
this.logger.warn(i18n.include_0_tag_in_1_specified_2_file_3_region_4_region_empty(tag, refl.getFriendlyFullName(), textPart, file, target));
|
|
126
|
+
}
|
|
127
|
+
content += ignoreIndent ? dedent(found) + "\n" : found;
|
|
128
|
+
}
|
|
129
|
+
return content;
|
|
130
|
+
}
|
|
131
|
+
getLines(refl, file, textPart, text, requestedLines, tag) {
|
|
132
|
+
let output = "";
|
|
133
|
+
const lines = text.split(/\r\n|\r|\n/);
|
|
134
|
+
requestedLines.split(",").forEach((requestedLineString) => {
|
|
135
|
+
if (requestedLineString.includes("-")) {
|
|
136
|
+
const [start, end] = requestedLineString.split("-").map(Number);
|
|
137
|
+
if (start > end) {
|
|
138
|
+
this.logger.error(i18n.include_0_tag_in_1_specified_2_file_3_lines_4_invalid_range(tag, refl.getFriendlyFullName(), textPart, file, requestedLines));
|
|
139
|
+
return "";
|
|
140
|
+
}
|
|
141
|
+
if (start > lines.length || end > lines.length) {
|
|
142
|
+
this.logger.error(i18n.include_0_tag_in_1_specified_2_file_3_lines_4_but_only_5_lines(tag, refl.getFriendlyFullName(), textPart, file, requestedLines, lines.length.toString()));
|
|
143
|
+
return "";
|
|
144
|
+
}
|
|
145
|
+
output += lines.slice(start - 1, end).join("\n") + "\n";
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
const requestedLine = Number(requestedLineString);
|
|
149
|
+
if (requestedLine > lines.length) {
|
|
150
|
+
this.logger.error(i18n.include_0_tag_in_1_specified_2_file_3_lines_4_but_only_5_lines(tag, refl.getFriendlyFullName(), textPart, file, requestedLines, lines.length.toString()));
|
|
151
|
+
return "";
|
|
152
|
+
}
|
|
153
|
+
output += lines[requestedLine - 1] + "\n";
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
return output;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
function makeCodeBlock(lang, code) {
|
|
160
|
+
const escaped = code.replace(/`(?=`)/g, "`\u200B");
|
|
161
|
+
return "\n\n```" + lang + "\n" + escaped.trimEnd() + "\n```";
|
|
162
|
+
}
|
|
163
|
+
function parseIncludeCodeTextPart(text) {
|
|
164
|
+
let filename = text.trim();
|
|
165
|
+
let regionTarget;
|
|
166
|
+
let requestedLines;
|
|
167
|
+
if (filename.includes("#")) {
|
|
168
|
+
const parsed = filename.split("#");
|
|
169
|
+
filename = parsed[0];
|
|
170
|
+
regionTarget = parsed[1];
|
|
171
|
+
}
|
|
172
|
+
else if (filename.includes(":")) {
|
|
173
|
+
const parsed = filename.split(":");
|
|
174
|
+
filename = parsed[0];
|
|
175
|
+
requestedLines = parsed[1];
|
|
176
|
+
}
|
|
177
|
+
return { filename, regionTarget, requestedLines };
|
|
178
|
+
}
|
|
179
|
+
const regionTagREsByExt = {
|
|
180
|
+
bat: [
|
|
181
|
+
[
|
|
182
|
+
(regionName) => new RegExp(`:: *#region *${regionName} *\n`, "g"),
|
|
183
|
+
(regionName) => new RegExp(`:: *#endregion *${regionName} *\n`, "g"),
|
|
184
|
+
],
|
|
185
|
+
[
|
|
186
|
+
(regionName) => new RegExp(`REM *#region *${regionName} *\n`, "g"),
|
|
187
|
+
(regionName) => new RegExp(`REM *#endregion *${regionName} *\n`, "g"),
|
|
188
|
+
],
|
|
189
|
+
],
|
|
190
|
+
cs: [
|
|
191
|
+
[
|
|
192
|
+
(regionName) => new RegExp(`#region *${regionName} *\n`, "g"),
|
|
193
|
+
(regionName) => new RegExp(`#endregion *${regionName} *\n`, "g"),
|
|
194
|
+
],
|
|
195
|
+
],
|
|
196
|
+
c: [
|
|
197
|
+
[
|
|
198
|
+
(regionName) => new RegExp(`#pragma *region *${regionName} *\n`, "g"),
|
|
199
|
+
(regionName) => new RegExp(`#pragma *endregion *${regionName} *\n`, "g"),
|
|
200
|
+
],
|
|
201
|
+
],
|
|
202
|
+
css: [
|
|
203
|
+
[
|
|
204
|
+
(regionName) => new RegExp(`/\\* *#region *\\*/ *${regionName} *\n`, "g"),
|
|
205
|
+
(regionName) => new RegExp(`/\\* *#endregion *\\*/ *${regionName} *\n`, "g"),
|
|
206
|
+
],
|
|
207
|
+
],
|
|
208
|
+
md: [
|
|
209
|
+
[
|
|
210
|
+
(regionName) => new RegExp(`<!-- *#region *${regionName} *--> *\n`, "g"),
|
|
211
|
+
(regionName) => new RegExp(`<!-- *#endregion *${regionName} *--> *\n`, "g"),
|
|
212
|
+
],
|
|
213
|
+
],
|
|
214
|
+
ts: [
|
|
215
|
+
[
|
|
216
|
+
(regionName) => new RegExp(`// *#region *${regionName} *\n`, "g"),
|
|
217
|
+
(regionName) => new RegExp(`// *#endregion *${regionName} *\n`, "g"),
|
|
218
|
+
],
|
|
219
|
+
],
|
|
220
|
+
vb: [
|
|
221
|
+
[
|
|
222
|
+
(regionName) => new RegExp(`#Region *${regionName} *\n`, "g"),
|
|
223
|
+
(regionName) => new RegExp(`#End Region *${regionName} *\n`, "g"),
|
|
224
|
+
],
|
|
225
|
+
],
|
|
226
|
+
};
|
|
227
|
+
regionTagREsByExt["fs"] = [
|
|
228
|
+
...regionTagREsByExt["ts"],
|
|
229
|
+
[
|
|
230
|
+
(regionName) => new RegExp(`(#_region) *${regionName} *\n`, "g"),
|
|
231
|
+
(regionName) => new RegExp(`(#_endregion) *${regionName} *\n`, "g"),
|
|
232
|
+
],
|
|
233
|
+
];
|
|
234
|
+
regionTagREsByExt["java"] = [
|
|
235
|
+
...regionTagREsByExt["ts"],
|
|
236
|
+
[
|
|
237
|
+
(regionName) => new RegExp(`// *<editor-fold> *${regionName} *\n`, "g"),
|
|
238
|
+
(regionName) => new RegExp(`// *</editor-fold> *${regionName} *\n`, "g"),
|
|
239
|
+
],
|
|
240
|
+
];
|
|
241
|
+
regionTagREsByExt["cpp"] = regionTagREsByExt["c"];
|
|
242
|
+
regionTagREsByExt["less"] = regionTagREsByExt["css"];
|
|
243
|
+
regionTagREsByExt["scss"] = regionTagREsByExt["css"];
|
|
244
|
+
regionTagREsByExt["coffee"] = regionTagREsByExt["cs"];
|
|
245
|
+
regionTagREsByExt["php"] = regionTagREsByExt["cs"];
|
|
246
|
+
regionTagREsByExt["ps1"] = regionTagREsByExt["cs"];
|
|
247
|
+
regionTagREsByExt["py"] = regionTagREsByExt["cs"];
|
|
248
|
+
regionTagREsByExt["js"] = regionTagREsByExt["ts"];
|
|
249
|
+
regionTagREsByExt["mjs"] = regionTagREsByExt["ts"];
|
|
250
|
+
regionTagREsByExt["mts"] = regionTagREsByExt["ts"];
|
|
251
|
+
regionTagREsByExt["cjs"] = regionTagREsByExt["ts"];
|
|
252
|
+
regionTagREsByExt["cts"] = regionTagREsByExt["ts"];
|
|
253
|
+
regionTagREsByExt["jsx"] = regionTagREsByExt["ts"];
|
|
254
|
+
regionTagREsByExt["tsx"] = regionTagREsByExt["ts"];
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ConverterComponent } from "../components.js";
|
|
2
|
+
import { type ValidationOptions } from "../../utils/index.js";
|
|
3
|
+
import type { Converter } from "../converter.js";
|
|
4
|
+
/**
|
|
5
|
+
* A plugin that handles `@inheritDoc` tags by copying documentation from another API item.
|
|
6
|
+
* It is NOT responsible for handling bare JSDoc style `@inheritDoc` tags which do not specify
|
|
7
|
+
* a target to inherit from. Those are handled by the ImplementsPlugin class.
|
|
8
|
+
*
|
|
9
|
+
* What gets copied:
|
|
10
|
+
* - short text
|
|
11
|
+
* - text
|
|
12
|
+
* - `@remarks` block
|
|
13
|
+
* - `@params` block
|
|
14
|
+
* - `@typeParam` block
|
|
15
|
+
* - `@return` block
|
|
16
|
+
*/
|
|
17
|
+
export declare class InheritDocPlugin extends ConverterComponent {
|
|
18
|
+
accessor validation: ValidationOptions;
|
|
19
|
+
private dependencies;
|
|
20
|
+
/**
|
|
21
|
+
* Create a new InheritDocPlugin instance.
|
|
22
|
+
*/
|
|
23
|
+
constructor(owner: Converter);
|
|
24
|
+
/**
|
|
25
|
+
* Traverse through reflection descendant to check for `inheritDoc` tag.
|
|
26
|
+
* If encountered, the parameter of the tag is used to determine a source reflection
|
|
27
|
+
* that will provide actual comment.
|
|
28
|
+
*/
|
|
29
|
+
private processInheritDoc;
|
|
30
|
+
private copyComment;
|
|
31
|
+
private createCircularDependencyWarnings;
|
|
32
|
+
}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
27
|
+
};
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
34
|
+
};
|
|
35
|
+
import { Comment, DeclarationReflection, ReflectionKind, ReflectionType, SignatureReflection, } from "../../models/index.js";
|
|
36
|
+
import { ConverterComponent } from "../components.js";
|
|
37
|
+
import { Option } from "../../utils/index.js";
|
|
38
|
+
import { DefaultMap, i18n, parseDeclarationReference, zip } from "#utils";
|
|
39
|
+
import { resolveDeclarationReference } from "../comments/declarationReferenceResolver.js";
|
|
40
|
+
import { ApplicationEvents } from "../../application-events.js";
|
|
41
|
+
import { ConverterEvents } from "../converter-events.js";
|
|
42
|
+
/**
|
|
43
|
+
* A plugin that handles `@inheritDoc` tags by copying documentation from another API item.
|
|
44
|
+
* It is NOT responsible for handling bare JSDoc style `@inheritDoc` tags which do not specify
|
|
45
|
+
* a target to inherit from. Those are handled by the ImplementsPlugin class.
|
|
46
|
+
*
|
|
47
|
+
* What gets copied:
|
|
48
|
+
* - short text
|
|
49
|
+
* - text
|
|
50
|
+
* - `@remarks` block
|
|
51
|
+
* - `@params` block
|
|
52
|
+
* - `@typeParam` block
|
|
53
|
+
* - `@return` block
|
|
54
|
+
*/
|
|
55
|
+
let InheritDocPlugin = (() => {
|
|
56
|
+
let _classSuper = ConverterComponent;
|
|
57
|
+
let _validation_decorators;
|
|
58
|
+
let _validation_initializers = [];
|
|
59
|
+
let _validation_extraInitializers = [];
|
|
60
|
+
return class InheritDocPlugin extends _classSuper {
|
|
61
|
+
static {
|
|
62
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
63
|
+
_validation_decorators = [Option("validation")];
|
|
64
|
+
__esDecorate(this, null, _validation_decorators, { kind: "accessor", name: "validation", static: false, private: false, access: { has: obj => "validation" in obj, get: obj => obj.validation, set: (obj, value) => { obj.validation = value; } }, metadata: _metadata }, _validation_initializers, _validation_extraInitializers);
|
|
65
|
+
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
66
|
+
}
|
|
67
|
+
#validation_accessor_storage = __runInitializers(this, _validation_initializers, void 0);
|
|
68
|
+
get validation() { return this.#validation_accessor_storage; }
|
|
69
|
+
set validation(value) { this.#validation_accessor_storage = value; }
|
|
70
|
+
// Key is depended on by Values
|
|
71
|
+
dependencies = (__runInitializers(this, _validation_extraInitializers), new DefaultMap(() => []));
|
|
72
|
+
/**
|
|
73
|
+
* Create a new InheritDocPlugin instance.
|
|
74
|
+
*/
|
|
75
|
+
constructor(owner) {
|
|
76
|
+
super(owner);
|
|
77
|
+
this.owner.on(ConverterEvents.RESOLVE_END, (context) => this.processInheritDoc(context.project));
|
|
78
|
+
this.application.on(ApplicationEvents.REVIVE, this.processInheritDoc.bind(this));
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Traverse through reflection descendant to check for `inheritDoc` tag.
|
|
82
|
+
* If encountered, the parameter of the tag is used to determine a source reflection
|
|
83
|
+
* that will provide actual comment.
|
|
84
|
+
*/
|
|
85
|
+
processInheritDoc(project) {
|
|
86
|
+
for (const id in project.reflections) {
|
|
87
|
+
const reflection = project.reflections[id];
|
|
88
|
+
const source = extractInheritDocTagReference(reflection);
|
|
89
|
+
if (!source)
|
|
90
|
+
continue;
|
|
91
|
+
const declRef = parseDeclarationReference(source, 0, source.length);
|
|
92
|
+
if (!declRef || /\S/.test(source.substring(declRef[1]))) {
|
|
93
|
+
this.application.logger.warn(i18n.declaration_reference_in_inheritdoc_for_0_not_fully_parsed(reflection.getFriendlyFullName()));
|
|
94
|
+
}
|
|
95
|
+
let sourceRefl = declRef && resolveDeclarationReference(reflection, declRef[0]);
|
|
96
|
+
if (reflection instanceof SignatureReflection) {
|
|
97
|
+
// Assumes that if there are overloads, they are declared in the same order as the parent.
|
|
98
|
+
// TS doesn't check this, but if a user messes this up then they are almost
|
|
99
|
+
// guaranteed to run into bugs where they can't call a method on a child class
|
|
100
|
+
// but if they assign (without a type assertion) that child to a variable of the parent class
|
|
101
|
+
// then they can call the method.
|
|
102
|
+
if (sourceRefl instanceof DeclarationReflection) {
|
|
103
|
+
const index = reflection.parent
|
|
104
|
+
.getAllSignatures()
|
|
105
|
+
.indexOf(reflection);
|
|
106
|
+
sourceRefl = sourceRefl.getAllSignatures()[index] || sourceRefl;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if (sourceRefl instanceof DeclarationReflection &&
|
|
110
|
+
sourceRefl.kindOf(ReflectionKind.Accessor)) {
|
|
111
|
+
// Accessors, like functions, never have comments on their actual root reflection.
|
|
112
|
+
// If the user didn't specify whether to inherit from the getter or setter, then implicitly
|
|
113
|
+
// try to inherit from the getter, #1968.
|
|
114
|
+
sourceRefl = sourceRefl.getSignature || sourceRefl.setSignature;
|
|
115
|
+
}
|
|
116
|
+
if (!sourceRefl) {
|
|
117
|
+
if (this.validation.invalidLink) {
|
|
118
|
+
this.application.logger.warn(i18n.failed_to_find_0_to_inherit_comment_from_in_1(source, reflection.getFriendlyFullName()));
|
|
119
|
+
}
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
this.copyComment(sourceRefl, reflection);
|
|
123
|
+
}
|
|
124
|
+
this.createCircularDependencyWarnings();
|
|
125
|
+
this.dependencies.clear();
|
|
126
|
+
}
|
|
127
|
+
copyComment(source, target) {
|
|
128
|
+
if (!target.comment)
|
|
129
|
+
return;
|
|
130
|
+
if (!source.comment &&
|
|
131
|
+
source instanceof DeclarationReflection &&
|
|
132
|
+
source.signatures) {
|
|
133
|
+
source = source.signatures[0];
|
|
134
|
+
}
|
|
135
|
+
if (!source.comment &&
|
|
136
|
+
source instanceof DeclarationReflection &&
|
|
137
|
+
source.type instanceof ReflectionType &&
|
|
138
|
+
source.type.declaration.signatures) {
|
|
139
|
+
source = source.type.declaration.signatures[0];
|
|
140
|
+
}
|
|
141
|
+
if (!source.comment) {
|
|
142
|
+
this.application.logger.warn(i18n.reflection_0_tried_to_copy_comment_from_1_but_source_had_no_comment(target.getFullName(), source.getFullName()));
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
// If the source also has a @inheritDoc tag, we can't do anything yet.
|
|
146
|
+
// We'll try again later, once we've resolved the source's @inheritDoc reference.
|
|
147
|
+
if (extractInheritDocTagReference(source)) {
|
|
148
|
+
this.dependencies.get(source).push(target);
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
target.comment.removeTags("@inheritDoc");
|
|
152
|
+
target.comment.removeTags("@remarks");
|
|
153
|
+
target.comment.removeTags("@returns");
|
|
154
|
+
target.comment.summary = Comment.cloneDisplayParts(source.comment.summary);
|
|
155
|
+
const remarks = source.comment.getTag("@remarks");
|
|
156
|
+
if (remarks) {
|
|
157
|
+
target.comment.blockTags.unshift(remarks.clone());
|
|
158
|
+
}
|
|
159
|
+
const returns = source.comment.getTag("@returns");
|
|
160
|
+
if (returns) {
|
|
161
|
+
target.comment.blockTags.push(returns.clone());
|
|
162
|
+
}
|
|
163
|
+
if (source instanceof SignatureReflection &&
|
|
164
|
+
target instanceof SignatureReflection) {
|
|
165
|
+
copySummaries(source.parameters, target.parameters);
|
|
166
|
+
copySummaries(source.typeParameters, target.typeParameters);
|
|
167
|
+
}
|
|
168
|
+
else if (source instanceof DeclarationReflection &&
|
|
169
|
+
target instanceof DeclarationReflection) {
|
|
170
|
+
copySummaries(source.typeParameters, target.typeParameters);
|
|
171
|
+
}
|
|
172
|
+
// Now copy the comment for anyone who depends on me.
|
|
173
|
+
const dependent = this.dependencies.get(target);
|
|
174
|
+
this.dependencies.delete(target);
|
|
175
|
+
for (const target2 of dependent) {
|
|
176
|
+
this.copyComment(target, target2);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
createCircularDependencyWarnings() {
|
|
180
|
+
const unwarned = new Set(this.dependencies.keys());
|
|
181
|
+
const generateWarning = (orig) => {
|
|
182
|
+
const parts = [orig.name];
|
|
183
|
+
unwarned.delete(orig);
|
|
184
|
+
let work = orig;
|
|
185
|
+
do {
|
|
186
|
+
work = this.dependencies.get(work)[0];
|
|
187
|
+
unwarned.delete(work);
|
|
188
|
+
parts.push(work.name);
|
|
189
|
+
} while (!this.dependencies.get(work).includes(orig));
|
|
190
|
+
parts.push(orig.name);
|
|
191
|
+
this.application.logger.warn(i18n.inheritdoc_circular_inheritance_chain_0(parts.reverse().join(" -> ")));
|
|
192
|
+
};
|
|
193
|
+
for (const orig of this.dependencies.keys()) {
|
|
194
|
+
if (unwarned.has(orig)) {
|
|
195
|
+
generateWarning(orig);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
};
|
|
200
|
+
})();
|
|
201
|
+
export { InheritDocPlugin };
|
|
202
|
+
function copySummaries(source, target) {
|
|
203
|
+
for (const [s, t] of zip(source || [], target || [])) {
|
|
204
|
+
t.comment = new Comment(s.comment?.summary);
|
|
205
|
+
t.comment.sourcePath = s.comment?.sourcePath;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
function extractInheritDocTagReference(reflection) {
|
|
209
|
+
const comment = reflection.comment;
|
|
210
|
+
if (!comment)
|
|
211
|
+
return;
|
|
212
|
+
const blockTag = comment.blockTags.find((tag) => tag.tag === "@inheritDoc");
|
|
213
|
+
if (blockTag) {
|
|
214
|
+
return blockTag.name;
|
|
215
|
+
}
|
|
216
|
+
const inlineTag = comment.summary.find((part) => part.kind === "inline-tag" && part.tag === "@inheritDoc");
|
|
217
|
+
if (inlineTag) {
|
|
218
|
+
return inlineTag.text;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ConverterComponent } from "../components.js";
|
|
2
|
+
import type { Context, Converter } from "../../converter/index.js";
|
|
3
|
+
import { type ValidationOptions } from "../../utils/index.js";
|
|
4
|
+
import type { ProjectReflection } from "../../models/index.js";
|
|
5
|
+
/**
|
|
6
|
+
* A plugin that resolves `{@link Foo}` tags.
|
|
7
|
+
*/
|
|
8
|
+
export declare class LinkResolverPlugin extends ConverterComponent {
|
|
9
|
+
accessor validation: ValidationOptions;
|
|
10
|
+
constructor(owner: Converter);
|
|
11
|
+
onResolve(context: Context): void;
|
|
12
|
+
resolveLinks(project: ProjectReflection): void;
|
|
13
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
27
|
+
};
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
34
|
+
};
|
|
35
|
+
import { ConverterComponent } from "../components.js";
|
|
36
|
+
import { ConverterEvents } from "../converter-events.js";
|
|
37
|
+
import { Option } from "../../utils/index.js";
|
|
38
|
+
import { discoverAllReferenceTypes } from "../../utils/reflections.js";
|
|
39
|
+
import { ApplicationEvents } from "../../application-events.js";
|
|
40
|
+
/**
|
|
41
|
+
* A plugin that resolves `{@link Foo}` tags.
|
|
42
|
+
*/
|
|
43
|
+
let LinkResolverPlugin = (() => {
|
|
44
|
+
let _classSuper = ConverterComponent;
|
|
45
|
+
let _validation_decorators;
|
|
46
|
+
let _validation_initializers = [];
|
|
47
|
+
let _validation_extraInitializers = [];
|
|
48
|
+
return class LinkResolverPlugin extends _classSuper {
|
|
49
|
+
static {
|
|
50
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
51
|
+
_validation_decorators = [Option("validation")];
|
|
52
|
+
__esDecorate(this, null, _validation_decorators, { kind: "accessor", name: "validation", static: false, private: false, access: { has: obj => "validation" in obj, get: obj => obj.validation, set: (obj, value) => { obj.validation = value; } }, metadata: _metadata }, _validation_initializers, _validation_extraInitializers);
|
|
53
|
+
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
54
|
+
}
|
|
55
|
+
#validation_accessor_storage = __runInitializers(this, _validation_initializers, void 0);
|
|
56
|
+
get validation() { return this.#validation_accessor_storage; }
|
|
57
|
+
set validation(value) { this.#validation_accessor_storage = value; }
|
|
58
|
+
constructor(owner) {
|
|
59
|
+
super(owner);
|
|
60
|
+
__runInitializers(this, _validation_extraInitializers);
|
|
61
|
+
this.owner.on(ConverterEvents.RESOLVE_END, this.onResolve.bind(this), -300);
|
|
62
|
+
this.application.on(ApplicationEvents.REVIVE, this.resolveLinks.bind(this), -300);
|
|
63
|
+
}
|
|
64
|
+
onResolve(context) {
|
|
65
|
+
this.resolveLinks(context.project);
|
|
66
|
+
}
|
|
67
|
+
resolveLinks(project) {
|
|
68
|
+
for (const id in project.reflections) {
|
|
69
|
+
const reflection = project.reflections[id];
|
|
70
|
+
this.owner.resolveLinks(reflection);
|
|
71
|
+
}
|
|
72
|
+
for (const { type, owner } of discoverAllReferenceTypes(project, false)) {
|
|
73
|
+
if (!type.reflection) {
|
|
74
|
+
const resolveResult = this.owner.resolveExternalLink(type.toDeclarationReference(), owner, undefined, type.symbolId);
|
|
75
|
+
switch (typeof resolveResult) {
|
|
76
|
+
case "string":
|
|
77
|
+
type.externalUrl = resolveResult;
|
|
78
|
+
break;
|
|
79
|
+
case "object":
|
|
80
|
+
type.externalUrl = resolveResult.target;
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
})();
|
|
88
|
+
export { LinkResolverPlugin };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ConverterComponent } from "../components.js";
|
|
2
|
+
import type { Converter } from "../converter.js";
|
|
3
|
+
/**
|
|
4
|
+
* Handles `@mergeModuleWith` tags in comments
|
|
5
|
+
* Warnings if resolution failed are emitted during the validation step, not here.
|
|
6
|
+
*/
|
|
7
|
+
export declare class MergeModuleWithPlugin extends ConverterComponent {
|
|
8
|
+
constructor(owner: Converter);
|
|
9
|
+
private onResolveBegin;
|
|
10
|
+
private onRevive;
|
|
11
|
+
private checkAndMerge;
|
|
12
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { ok } from "assert";
|
|
2
|
+
import { ApplicationEvents } from "../../application-events.js";
|
|
3
|
+
import { Comment, ReflectionKind } from "../../models/index.js";
|
|
4
|
+
import { ConverterComponent } from "../components.js";
|
|
5
|
+
import { ConverterEvents } from "../converter-events.js";
|
|
6
|
+
import { i18n } from "#utils";
|
|
7
|
+
/**
|
|
8
|
+
* Handles `@mergeModuleWith` tags in comments
|
|
9
|
+
* Warnings if resolution failed are emitted during the validation step, not here.
|
|
10
|
+
*/
|
|
11
|
+
export class MergeModuleWithPlugin extends ConverterComponent {
|
|
12
|
+
constructor(owner) {
|
|
13
|
+
super(owner);
|
|
14
|
+
// Note: This happens before grouping/categorizing
|
|
15
|
+
this.owner.on(ConverterEvents.RESOLVE_BEGIN, this.onResolveBegin.bind(this), 10000);
|
|
16
|
+
this.application.on(ApplicationEvents.REVIVE, this.onRevive.bind(this), 10000);
|
|
17
|
+
}
|
|
18
|
+
onResolveBegin(context) {
|
|
19
|
+
this.onRevive(context.project);
|
|
20
|
+
}
|
|
21
|
+
onRevive(project) {
|
|
22
|
+
const mods = project.getReflectionsByKind(ReflectionKind.SomeModule);
|
|
23
|
+
for (const refl of mods) {
|
|
24
|
+
this.checkAndMerge(refl);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
checkAndMerge(refl) {
|
|
28
|
+
ok(refl.isDeclaration());
|
|
29
|
+
const tag = refl.comment?.getTag("@mergeModuleWith");
|
|
30
|
+
if (!tag)
|
|
31
|
+
return;
|
|
32
|
+
const project = refl.project;
|
|
33
|
+
const targetStr = Comment.combineDisplayParts(tag.content);
|
|
34
|
+
const target = targetStr === "<project>"
|
|
35
|
+
? project
|
|
36
|
+
: project.getChildByName(targetStr);
|
|
37
|
+
if (!target?.isDeclaration() && !target?.isProject()) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
let tempRefl = refl;
|
|
41
|
+
while (tempRefl !== project) {
|
|
42
|
+
if (tempRefl === target) {
|
|
43
|
+
this.application.logger.warn(i18n.reflection_0_tried_to_merge_into_child_1(refl.getFriendlyFullName(), target.getFriendlyFullName()));
|
|
44
|
+
}
|
|
45
|
+
tempRefl = tempRefl.parent;
|
|
46
|
+
}
|
|
47
|
+
this.application.logger.verbose(`Merging ${refl.getFullName()} into ${target.getFullName()}`);
|
|
48
|
+
project.mergeReflections(refl, target);
|
|
49
|
+
}
|
|
50
|
+
}
|