@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,563 @@
|
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
import { ReflectionKind } from "../../models/index.js";
|
|
3
|
+
import { CommentStyle } from "../../utils/options/declaration.js";
|
|
4
|
+
import { nicePath } from "../../utils/paths.js";
|
|
5
|
+
import { ok } from "assert";
|
|
6
|
+
import { assertNever, filter, firstDefined, i18n } from "#utils";
|
|
7
|
+
import { resolveAliasedSymbol } from "../utils/symbols.js";
|
|
8
|
+
const variablePropertyKinds = [
|
|
9
|
+
ts.SyntaxKind.PropertyDeclaration,
|
|
10
|
+
ts.SyntaxKind.PropertySignature,
|
|
11
|
+
ts.SyntaxKind.BinaryExpression,
|
|
12
|
+
ts.SyntaxKind.PropertyAssignment,
|
|
13
|
+
ts.SyntaxKind.ShorthandPropertyAssignment,
|
|
14
|
+
// class X { constructor(/** Comment */ readonly z: string) }
|
|
15
|
+
ts.SyntaxKind.Parameter,
|
|
16
|
+
// Variable values
|
|
17
|
+
ts.SyntaxKind.VariableDeclaration,
|
|
18
|
+
ts.SyntaxKind.BindingElement,
|
|
19
|
+
ts.SyntaxKind.ExportAssignment,
|
|
20
|
+
ts.SyntaxKind.PropertyAccessExpression,
|
|
21
|
+
];
|
|
22
|
+
// Note: This does NOT include JSDoc syntax kinds. This is important!
|
|
23
|
+
// Comments from @typedef and @callback tags are handled specially by
|
|
24
|
+
// the JSDoc converter because we only want part of the comment when
|
|
25
|
+
// getting them.
|
|
26
|
+
// This also does NOT include kinds which should be checked after the
|
|
27
|
+
// first kind/kinds have been checked for a comment.
|
|
28
|
+
const wantedKinds = {
|
|
29
|
+
[ReflectionKind.Project]: [
|
|
30
|
+
ts.SyntaxKind.SourceFile,
|
|
31
|
+
ts.SyntaxKind.ModuleDeclaration,
|
|
32
|
+
],
|
|
33
|
+
[ReflectionKind.Module]: [
|
|
34
|
+
ts.SyntaxKind.SourceFile,
|
|
35
|
+
ts.SyntaxKind.ModuleDeclaration,
|
|
36
|
+
],
|
|
37
|
+
[ReflectionKind.Namespace]: [
|
|
38
|
+
ts.SyntaxKind.ModuleDeclaration,
|
|
39
|
+
ts.SyntaxKind.SourceFile,
|
|
40
|
+
ts.SyntaxKind.BindingElement,
|
|
41
|
+
ts.SyntaxKind.ExportSpecifier,
|
|
42
|
+
ts.SyntaxKind.NamespaceExport,
|
|
43
|
+
],
|
|
44
|
+
[ReflectionKind.Enum]: [
|
|
45
|
+
ts.SyntaxKind.EnumDeclaration,
|
|
46
|
+
],
|
|
47
|
+
[ReflectionKind.EnumMember]: [
|
|
48
|
+
ts.SyntaxKind.EnumMember,
|
|
49
|
+
],
|
|
50
|
+
[ReflectionKind.Variable]: variablePropertyKinds,
|
|
51
|
+
[ReflectionKind.Function]: [
|
|
52
|
+
ts.SyntaxKind.FunctionDeclaration,
|
|
53
|
+
ts.SyntaxKind.BindingElement,
|
|
54
|
+
ts.SyntaxKind.VariableDeclaration,
|
|
55
|
+
ts.SyntaxKind.ExportAssignment,
|
|
56
|
+
ts.SyntaxKind.PropertyAccessExpression,
|
|
57
|
+
ts.SyntaxKind.PropertyDeclaration,
|
|
58
|
+
ts.SyntaxKind.PropertyAssignment,
|
|
59
|
+
ts.SyntaxKind.ShorthandPropertyAssignment,
|
|
60
|
+
],
|
|
61
|
+
[ReflectionKind.Class]: [
|
|
62
|
+
ts.SyntaxKind.ClassDeclaration,
|
|
63
|
+
ts.SyntaxKind.BindingElement,
|
|
64
|
+
],
|
|
65
|
+
[ReflectionKind.Interface]: [
|
|
66
|
+
ts.SyntaxKind.InterfaceDeclaration,
|
|
67
|
+
],
|
|
68
|
+
[ReflectionKind.Constructor]: [ts.SyntaxKind.Constructor],
|
|
69
|
+
[ReflectionKind.Property]: variablePropertyKinds,
|
|
70
|
+
[ReflectionKind.Method]: [
|
|
71
|
+
ts.SyntaxKind.FunctionDeclaration,
|
|
72
|
+
ts.SyntaxKind.MethodDeclaration,
|
|
73
|
+
],
|
|
74
|
+
[ReflectionKind.CallSignature]: [
|
|
75
|
+
ts.SyntaxKind.FunctionDeclaration,
|
|
76
|
+
ts.SyntaxKind.VariableDeclaration,
|
|
77
|
+
ts.SyntaxKind.MethodDeclaration,
|
|
78
|
+
ts.SyntaxKind.MethodDeclaration,
|
|
79
|
+
ts.SyntaxKind.PropertyDeclaration,
|
|
80
|
+
ts.SyntaxKind.PropertySignature,
|
|
81
|
+
ts.SyntaxKind.CallSignature,
|
|
82
|
+
],
|
|
83
|
+
[ReflectionKind.IndexSignature]: [ts.SyntaxKind.IndexSignature],
|
|
84
|
+
[ReflectionKind.ConstructorSignature]: [ts.SyntaxKind.ConstructSignature],
|
|
85
|
+
[ReflectionKind.Parameter]: [ts.SyntaxKind.Parameter],
|
|
86
|
+
[ReflectionKind.TypeLiteral]: [ts.SyntaxKind.TypeLiteral],
|
|
87
|
+
[ReflectionKind.TypeParameter]: [ts.SyntaxKind.TypeParameter],
|
|
88
|
+
[ReflectionKind.Accessor]: [ts.SyntaxKind.PropertyDeclaration],
|
|
89
|
+
[ReflectionKind.GetSignature]: [ts.SyntaxKind.GetAccessor],
|
|
90
|
+
[ReflectionKind.SetSignature]: [ts.SyntaxKind.SetAccessor],
|
|
91
|
+
[ReflectionKind.TypeAlias]: [
|
|
92
|
+
ts.SyntaxKind.TypeAliasDeclaration,
|
|
93
|
+
],
|
|
94
|
+
[ReflectionKind.Reference]: [
|
|
95
|
+
ts.SyntaxKind.NamespaceExport,
|
|
96
|
+
ts.SyntaxKind.ExportSpecifier,
|
|
97
|
+
],
|
|
98
|
+
// Non-TS kind, will never have comments.
|
|
99
|
+
[ReflectionKind.Document]: [],
|
|
100
|
+
};
|
|
101
|
+
// These kinds are checked after wantedKinds if wantedKinds doesn't result in
|
|
102
|
+
// discovering a comment. This is a rather unfortunate tradeoff between discovering
|
|
103
|
+
// comments for values in unusual circumstances (#2970) and avoiding duplicate
|
|
104
|
+
// comments being discovered for declaration merging nastiness (#3064)
|
|
105
|
+
const backupWantedKinds = {
|
|
106
|
+
[ReflectionKind.Project]: [],
|
|
107
|
+
[ReflectionKind.Module]: [],
|
|
108
|
+
[ReflectionKind.Namespace]: [
|
|
109
|
+
// @namespace support
|
|
110
|
+
ts.SyntaxKind.VariableDeclaration,
|
|
111
|
+
ts.SyntaxKind.BindingElement,
|
|
112
|
+
ts.SyntaxKind.ExportAssignment,
|
|
113
|
+
ts.SyntaxKind.PropertyAccessExpression,
|
|
114
|
+
ts.SyntaxKind.PropertyDeclaration,
|
|
115
|
+
ts.SyntaxKind.PropertyAssignment,
|
|
116
|
+
ts.SyntaxKind.ShorthandPropertyAssignment,
|
|
117
|
+
],
|
|
118
|
+
[ReflectionKind.Enum]: [
|
|
119
|
+
ts.SyntaxKind.VariableDeclaration,
|
|
120
|
+
],
|
|
121
|
+
[ReflectionKind.EnumMember]: [
|
|
122
|
+
// These here so that @enum gets comments
|
|
123
|
+
ts.SyntaxKind.PropertyAssignment,
|
|
124
|
+
ts.SyntaxKind.PropertySignature,
|
|
125
|
+
],
|
|
126
|
+
[ReflectionKind.Variable]: [],
|
|
127
|
+
[ReflectionKind.Function]: [
|
|
128
|
+
ts.SyntaxKind.FunctionDeclaration,
|
|
129
|
+
ts.SyntaxKind.BindingElement,
|
|
130
|
+
ts.SyntaxKind.VariableDeclaration,
|
|
131
|
+
ts.SyntaxKind.ExportAssignment,
|
|
132
|
+
ts.SyntaxKind.PropertyAccessExpression,
|
|
133
|
+
ts.SyntaxKind.PropertyDeclaration,
|
|
134
|
+
ts.SyntaxKind.PropertyAssignment,
|
|
135
|
+
ts.SyntaxKind.ShorthandPropertyAssignment,
|
|
136
|
+
],
|
|
137
|
+
[ReflectionKind.Class]: [
|
|
138
|
+
// If marked with @class
|
|
139
|
+
ts.SyntaxKind.VariableDeclaration,
|
|
140
|
+
ts.SyntaxKind.ExportAssignment,
|
|
141
|
+
ts.SyntaxKind.FunctionDeclaration,
|
|
142
|
+
],
|
|
143
|
+
[ReflectionKind.Interface]: [
|
|
144
|
+
ts.SyntaxKind.TypeAliasDeclaration,
|
|
145
|
+
ts.SyntaxKind.ClassDeclaration, // type only exports
|
|
146
|
+
],
|
|
147
|
+
[ReflectionKind.Constructor]: [],
|
|
148
|
+
[ReflectionKind.Property]: [],
|
|
149
|
+
[ReflectionKind.Method]: [],
|
|
150
|
+
[ReflectionKind.CallSignature]: [],
|
|
151
|
+
[ReflectionKind.IndexSignature]: [],
|
|
152
|
+
[ReflectionKind.ConstructorSignature]: [],
|
|
153
|
+
[ReflectionKind.Parameter]: [],
|
|
154
|
+
[ReflectionKind.TypeLiteral]: [],
|
|
155
|
+
[ReflectionKind.TypeParameter]: [],
|
|
156
|
+
[ReflectionKind.Accessor]: [],
|
|
157
|
+
[ReflectionKind.GetSignature]: [],
|
|
158
|
+
[ReflectionKind.SetSignature]: [],
|
|
159
|
+
[ReflectionKind.TypeAlias]: [
|
|
160
|
+
ts.SyntaxKind.FunctionDeclaration, // type only exports
|
|
161
|
+
ts.SyntaxKind.VariableDeclaration, // type only exports
|
|
162
|
+
],
|
|
163
|
+
[ReflectionKind.Reference]: [],
|
|
164
|
+
// Non-TS kind, will never have comments.
|
|
165
|
+
[ReflectionKind.Document]: [],
|
|
166
|
+
};
|
|
167
|
+
export function discoverFileComments(node, commentStyle) {
|
|
168
|
+
const text = node.text;
|
|
169
|
+
const comments = collectCommentRanges(ts.getLeadingCommentRanges(text, node.pos));
|
|
170
|
+
const selectedDocComments = comments.filter((ranges) => permittedRange(text, ranges, commentStyle));
|
|
171
|
+
return selectedDocComments.map((ranges) => {
|
|
172
|
+
return {
|
|
173
|
+
file: node,
|
|
174
|
+
ranges,
|
|
175
|
+
jsDoc: findJsDocForComment(node, ranges),
|
|
176
|
+
inheritedFromParentDeclaration: false,
|
|
177
|
+
};
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
export function discoverNodeComment(node, commentStyle) {
|
|
181
|
+
const text = node.getSourceFile().text;
|
|
182
|
+
const comments = collectCommentRanges(ts.getLeadingCommentRanges(text, node.pos));
|
|
183
|
+
comments.reverse();
|
|
184
|
+
const selectedDocComment = comments.find((ranges) => permittedRange(text, ranges, commentStyle));
|
|
185
|
+
if (selectedDocComment) {
|
|
186
|
+
return {
|
|
187
|
+
file: node.getSourceFile(),
|
|
188
|
+
ranges: selectedDocComment,
|
|
189
|
+
jsDoc: findJsDocForComment(node, selectedDocComment),
|
|
190
|
+
inheritedFromParentDeclaration: false,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
function checkCommentDeclarations(commentNodes, reverse, commentStyle) {
|
|
195
|
+
const discovered = [];
|
|
196
|
+
for (const { node, inheritedFromParentDeclaration } of commentNodes) {
|
|
197
|
+
const text = node.getSourceFile().text;
|
|
198
|
+
const comments = collectCommentRanges(ts.getLeadingCommentRanges(text, node.pos));
|
|
199
|
+
if (reverse) {
|
|
200
|
+
comments.reverse();
|
|
201
|
+
}
|
|
202
|
+
const selectedDocComment = comments.find((ranges) => permittedRange(text, ranges, commentStyle));
|
|
203
|
+
if (selectedDocComment) {
|
|
204
|
+
discovered.push({
|
|
205
|
+
file: node.getSourceFile(),
|
|
206
|
+
ranges: selectedDocComment,
|
|
207
|
+
jsDoc: findJsDocForComment(node, selectedDocComment),
|
|
208
|
+
inheritedFromParentDeclaration,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
return discovered;
|
|
213
|
+
}
|
|
214
|
+
export function discoverComment(symbol, kind, logger, commentStyle, checker, declarationWarnings) {
|
|
215
|
+
const discovered = discoverCommentWorker(symbol, kind, logger, commentStyle, checker, declarationWarnings, wantedKinds[kind]);
|
|
216
|
+
if (discovered) {
|
|
217
|
+
return discovered;
|
|
218
|
+
}
|
|
219
|
+
return discoverCommentWorker(symbol, kind, logger, commentStyle, checker, declarationWarnings, backupWantedKinds[kind]);
|
|
220
|
+
}
|
|
221
|
+
function discoverCommentWorker(symbol, kind, logger, commentStyle, checker, declarationWarnings, wanted) {
|
|
222
|
+
if (wanted.length === 0) {
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
// For a module comment, we want the first one defined in the file,
|
|
226
|
+
// not the last one, since that will apply to the import or declaration.
|
|
227
|
+
const reverse = !symbol.declarations?.some(ts.isSourceFile);
|
|
228
|
+
const wantedDeclarations = filter(symbol.declarations, (decl) => wanted.includes(decl.kind));
|
|
229
|
+
const commentNodes = wantedDeclarations.flatMap((decl) => declarationToCommentNodes(decl, checker));
|
|
230
|
+
// Special behavior here!
|
|
231
|
+
// Signatures and symbols have two distinct discovery methods as of TypeDoc 0.26.
|
|
232
|
+
// This method discovers comments for symbols, and function-likes will only have
|
|
233
|
+
// a symbol comment if there is more than one signature (== more than one declaration)
|
|
234
|
+
// and there is a comment on the implementation signature.
|
|
235
|
+
if (kind & ReflectionKind.ContainsCallSignatures) {
|
|
236
|
+
const canHaveOverloads = wantedDeclarations.some((node) => [
|
|
237
|
+
ts.SyntaxKind.FunctionDeclaration,
|
|
238
|
+
ts.SyntaxKind.MethodDeclaration,
|
|
239
|
+
ts.SyntaxKind.Constructor,
|
|
240
|
+
].includes(node.kind));
|
|
241
|
+
const isOverloaded = canHaveOverloads && wantedDeclarations.length > 1;
|
|
242
|
+
if (isOverloaded) {
|
|
243
|
+
commentNodes.length = 0;
|
|
244
|
+
const implementationNode = wantedDeclarations.find((node) => node.body);
|
|
245
|
+
if (implementationNode) {
|
|
246
|
+
commentNodes.push({
|
|
247
|
+
node: implementationNode,
|
|
248
|
+
inheritedFromParentDeclaration: false,
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
else if (canHaveOverloads) {
|
|
253
|
+
// Single signature function, function reflection doesn't get a comment,
|
|
254
|
+
// the signatures do.
|
|
255
|
+
commentNodes.length = 0;
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
// Variable declaration which happens to include signatures.
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
const discovered = checkCommentDeclarations(commentNodes, reverse, commentStyle);
|
|
262
|
+
switch (discovered.length) {
|
|
263
|
+
case 0:
|
|
264
|
+
return undefined;
|
|
265
|
+
case 1:
|
|
266
|
+
return discovered[0];
|
|
267
|
+
default: {
|
|
268
|
+
if (discovered.filter((n) => !n.inheritedFromParentDeclaration)
|
|
269
|
+
.length > 1 &&
|
|
270
|
+
(declarationWarnings ||
|
|
271
|
+
discovered.some((dc) => !dc.file.isDeclarationFile))) {
|
|
272
|
+
logger.warn(i18n.symbol_0_has_multiple_declarations_with_comment(symbol.name));
|
|
273
|
+
const locations = discovered.map(({ file, ranges: [{ pos }] }) => {
|
|
274
|
+
const path = nicePath(file.fileName);
|
|
275
|
+
const line = ts.getLineAndCharacterOfPosition(file, pos).line +
|
|
276
|
+
1;
|
|
277
|
+
return `${path}:${line}`;
|
|
278
|
+
});
|
|
279
|
+
logger.info(i18n.comments_for_0_are_declared_at_1(symbol.name, locations.join("\n\t")));
|
|
280
|
+
}
|
|
281
|
+
return discovered[0];
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
export function discoverSignatureComment(declaration, checker, commentStyle) {
|
|
286
|
+
for (const { node, inheritedFromParentDeclaration, } of declarationToCommentNodes(declaration, checker)) {
|
|
287
|
+
if (ts.isJSDocSignature(node)) {
|
|
288
|
+
const comment = node.parent.parent;
|
|
289
|
+
ok(ts.isJSDoc(comment));
|
|
290
|
+
return {
|
|
291
|
+
file: node.getSourceFile(),
|
|
292
|
+
ranges: [
|
|
293
|
+
{
|
|
294
|
+
kind: ts.SyntaxKind.MultiLineCommentTrivia,
|
|
295
|
+
pos: comment.pos,
|
|
296
|
+
end: comment.end,
|
|
297
|
+
},
|
|
298
|
+
],
|
|
299
|
+
jsDoc: comment,
|
|
300
|
+
inheritedFromParentDeclaration,
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
const text = node.getSourceFile().text;
|
|
304
|
+
const comments = collectCommentRanges(ts.getLeadingCommentRanges(text, node.pos));
|
|
305
|
+
comments.reverse();
|
|
306
|
+
const comment = comments.find((ranges) => permittedRange(text, ranges, commentStyle));
|
|
307
|
+
if (comment) {
|
|
308
|
+
return {
|
|
309
|
+
file: node.getSourceFile(),
|
|
310
|
+
ranges: comment,
|
|
311
|
+
jsDoc: findJsDocForComment(node, comment),
|
|
312
|
+
inheritedFromParentDeclaration,
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
function findJsDocForComment(node, ranges) {
|
|
318
|
+
if (ranges[0].kind === ts.SyntaxKind.MultiLineCommentTrivia) {
|
|
319
|
+
const jsDocs = ts
|
|
320
|
+
.getJSDocCommentsAndTags(node)
|
|
321
|
+
.map((doc) => ts.findAncestor(doc, ts.isJSDoc));
|
|
322
|
+
if (ts.isSourceFile(node)) {
|
|
323
|
+
if (node.statements.length) {
|
|
324
|
+
jsDocs.push(...node.statements[0].getChildren().filter(ts.isJSDoc));
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
return jsDocs.find((doc) => doc.pos === ranges[0].pos);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Check whether the given module declaration is the topmost.
|
|
332
|
+
*
|
|
333
|
+
* This function returns TRUE if there is no trailing module defined, in
|
|
334
|
+
* the following example this would be the case only for module `C`.
|
|
335
|
+
*
|
|
336
|
+
* ```
|
|
337
|
+
* module A.B.C { }
|
|
338
|
+
* ```
|
|
339
|
+
*
|
|
340
|
+
* @param node The module definition that should be tested.
|
|
341
|
+
* @return TRUE if the given node is the topmost module declaration, FALSE otherwise.
|
|
342
|
+
*/
|
|
343
|
+
function isTopmostModuleDeclaration(node) {
|
|
344
|
+
return node.getChildren().some(ts.isModuleBlock);
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Return the root module declaration of the given module declaration.
|
|
348
|
+
*
|
|
349
|
+
* In the following example this function would always return module
|
|
350
|
+
* `A` no matter which of the modules was passed in.
|
|
351
|
+
*
|
|
352
|
+
* ```
|
|
353
|
+
* module A.B.C { }
|
|
354
|
+
* ```
|
|
355
|
+
*/
|
|
356
|
+
function getRootModuleDeclaration(node) {
|
|
357
|
+
while (node.parent.kind === ts.SyntaxKind.ModuleDeclaration) {
|
|
358
|
+
const parent = node.parent;
|
|
359
|
+
if (node.name.pos === parent.name.end + 1) {
|
|
360
|
+
node = parent;
|
|
361
|
+
}
|
|
362
|
+
else {
|
|
363
|
+
break;
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
return node;
|
|
367
|
+
}
|
|
368
|
+
function declarationToCommentNodeIgnoringParents(node) {
|
|
369
|
+
// ts.SourceFile is a counterexample
|
|
370
|
+
if (!node.parent)
|
|
371
|
+
return node;
|
|
372
|
+
// function foo(x: number)
|
|
373
|
+
// ^^^^^^^^^
|
|
374
|
+
if (node.kind === ts.SyntaxKind.Parameter) {
|
|
375
|
+
return node;
|
|
376
|
+
}
|
|
377
|
+
// const abc = 123
|
|
378
|
+
// ^^^
|
|
379
|
+
if (node.parent.kind === ts.SyntaxKind.VariableDeclarationList) {
|
|
380
|
+
return node.parent.parent;
|
|
381
|
+
}
|
|
382
|
+
// const a = () => {}
|
|
383
|
+
// ^^^^^^^^
|
|
384
|
+
if (node.parent.kind === ts.SyntaxKind.VariableDeclaration) {
|
|
385
|
+
return node.parent.parent.parent;
|
|
386
|
+
}
|
|
387
|
+
// class X { y = () => {} }
|
|
388
|
+
// ^^^^^^^^
|
|
389
|
+
// function Z() {}
|
|
390
|
+
// Z.method = () => {}
|
|
391
|
+
// ^^^^^^^^
|
|
392
|
+
// export default () => {}
|
|
393
|
+
// ^^^^^^^^
|
|
394
|
+
if ([
|
|
395
|
+
ts.SyntaxKind.PropertyDeclaration,
|
|
396
|
+
ts.SyntaxKind.BinaryExpression,
|
|
397
|
+
ts.SyntaxKind.ExportAssignment,
|
|
398
|
+
].includes(node.parent.kind)) {
|
|
399
|
+
return node.parent;
|
|
400
|
+
}
|
|
401
|
+
if (ts.isModuleDeclaration(node)) {
|
|
402
|
+
if (!isTopmostModuleDeclaration(node)) {
|
|
403
|
+
return;
|
|
404
|
+
}
|
|
405
|
+
else {
|
|
406
|
+
return getRootModuleDeclaration(node);
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
if (node.kind === ts.SyntaxKind.ExportSpecifier) {
|
|
410
|
+
return node.parent.parent;
|
|
411
|
+
}
|
|
412
|
+
if (ts.SyntaxKind.NamespaceExport === node.kind) {
|
|
413
|
+
return node.parent;
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
function declarationToCommentNodes(node, checker) {
|
|
417
|
+
const commentNode = declarationToCommentNodeIgnoringParents(node);
|
|
418
|
+
if (commentNode) {
|
|
419
|
+
return [
|
|
420
|
+
{
|
|
421
|
+
node: commentNode,
|
|
422
|
+
inheritedFromParentDeclaration: false,
|
|
423
|
+
},
|
|
424
|
+
];
|
|
425
|
+
}
|
|
426
|
+
const result = [
|
|
427
|
+
{
|
|
428
|
+
node,
|
|
429
|
+
inheritedFromParentDeclaration: false,
|
|
430
|
+
},
|
|
431
|
+
];
|
|
432
|
+
let overloadIndex = undefined;
|
|
433
|
+
if (ts.isMethodDeclaration(node)) {
|
|
434
|
+
const symbol = checker.getSymbolAtLocation(node.name || node);
|
|
435
|
+
if (symbol) {
|
|
436
|
+
overloadIndex = symbol.declarations
|
|
437
|
+
?.filter((d) => d.kind === node.kind)
|
|
438
|
+
.indexOf(node);
|
|
439
|
+
ok(overloadIndex !== -1, "Should always find declaration");
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
const seenSymbols = new Set();
|
|
443
|
+
const bases = findBaseOfDeclaration(checker, node, (symbol) => {
|
|
444
|
+
if (!seenSymbols.has(symbol)) {
|
|
445
|
+
seenSymbols.add(symbol);
|
|
446
|
+
if (overloadIndex === undefined) {
|
|
447
|
+
return symbol.declarations?.map((node) => declarationToCommentNodeIgnoringParents(node) || node);
|
|
448
|
+
}
|
|
449
|
+
else if (symbol.declarations?.[overloadIndex]) {
|
|
450
|
+
const parentSigNode = symbol.declarations[overloadIndex];
|
|
451
|
+
return [
|
|
452
|
+
declarationToCommentNodeIgnoringParents(parentSigNode) ||
|
|
453
|
+
parentSigNode,
|
|
454
|
+
];
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
});
|
|
458
|
+
for (const parentCommentNode of bases || []) {
|
|
459
|
+
result.push({
|
|
460
|
+
node: parentCommentNode,
|
|
461
|
+
inheritedFromParentDeclaration: true,
|
|
462
|
+
});
|
|
463
|
+
}
|
|
464
|
+
// #2999 automatically pick up comments from the value symbol for shorthand assignments
|
|
465
|
+
if (ts.isShorthandPropertyAssignment(node)) {
|
|
466
|
+
const sourceSymbol = checker.getShorthandAssignmentValueSymbol(node);
|
|
467
|
+
if (sourceSymbol?.valueDeclaration) {
|
|
468
|
+
const commentNode = declarationToCommentNodeIgnoringParents(sourceSymbol.valueDeclaration);
|
|
469
|
+
if (commentNode) {
|
|
470
|
+
result.push({
|
|
471
|
+
node: commentNode,
|
|
472
|
+
inheritedFromParentDeclaration: true,
|
|
473
|
+
});
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
// #3003 even more magic for handling an imported symbol which appears in a shorthand property assignment
|
|
477
|
+
const originalSymbol = sourceSymbol && resolveAliasedSymbol(sourceSymbol, checker);
|
|
478
|
+
if (originalSymbol !== sourceSymbol && originalSymbol?.valueDeclaration) {
|
|
479
|
+
const commentNode = declarationToCommentNodeIgnoringParents(originalSymbol?.valueDeclaration);
|
|
480
|
+
if (commentNode) {
|
|
481
|
+
result.push({
|
|
482
|
+
node: commentNode,
|
|
483
|
+
inheritedFromParentDeclaration: true,
|
|
484
|
+
});
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
// With overloaded functions/methods, TypeScript will use the comment on the first signature
|
|
489
|
+
// declaration
|
|
490
|
+
if ((ts.isFunctionDeclaration(node) || ts.isMethodDeclaration(node)) &&
|
|
491
|
+
node.name) {
|
|
492
|
+
const symbol = checker.getSymbolAtLocation(node.name);
|
|
493
|
+
if (symbol && symbol.declarations[0] !== node) {
|
|
494
|
+
result.push({
|
|
495
|
+
node: symbol.declarations[0],
|
|
496
|
+
inheritedFromParentDeclaration: true,
|
|
497
|
+
});
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
return result;
|
|
501
|
+
}
|
|
502
|
+
// Lifted from the TS source, with a couple minor modifications
|
|
503
|
+
function findBaseOfDeclaration(checker, declaration, cb) {
|
|
504
|
+
const classOrInterfaceDeclaration = declaration.parent?.kind === ts.SyntaxKind.Constructor
|
|
505
|
+
? declaration.parent.parent
|
|
506
|
+
: declaration.parent;
|
|
507
|
+
if (!classOrInterfaceDeclaration)
|
|
508
|
+
return;
|
|
509
|
+
const isStaticMember = ts.getCombinedModifierFlags(declaration) & ts.ModifierFlags.Static;
|
|
510
|
+
return firstDefined(ts.getAllSuperTypeNodes(classOrInterfaceDeclaration), (superTypeNode) => {
|
|
511
|
+
const baseType = checker.getTypeAtLocation(superTypeNode);
|
|
512
|
+
const type = isStaticMember && baseType.symbol
|
|
513
|
+
? checker.getTypeOfSymbol(baseType.symbol)
|
|
514
|
+
: baseType;
|
|
515
|
+
const symbol = checker.getPropertyOfType(type, declaration.symbol.name);
|
|
516
|
+
return symbol ? cb(symbol) : undefined;
|
|
517
|
+
});
|
|
518
|
+
}
|
|
519
|
+
/**
|
|
520
|
+
* Separate comment ranges into arrays so that multiple line comments are kept together
|
|
521
|
+
* and each block comment is left on its own.
|
|
522
|
+
*/
|
|
523
|
+
function collectCommentRanges(ranges) {
|
|
524
|
+
const result = [];
|
|
525
|
+
let collect = [];
|
|
526
|
+
for (const range of ranges || []) {
|
|
527
|
+
collect.push(range);
|
|
528
|
+
switch (range.kind) {
|
|
529
|
+
case ts.SyntaxKind.MultiLineCommentTrivia:
|
|
530
|
+
if (collect.length) {
|
|
531
|
+
result.push(collect);
|
|
532
|
+
collect = [];
|
|
533
|
+
}
|
|
534
|
+
result.push([range]);
|
|
535
|
+
break;
|
|
536
|
+
case ts.SyntaxKind.SingleLineCommentTrivia:
|
|
537
|
+
collect.push(range);
|
|
538
|
+
break;
|
|
539
|
+
/* istanbul ignore next */
|
|
540
|
+
default:
|
|
541
|
+
assertNever(range.kind);
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
if (collect.length) {
|
|
545
|
+
result.push(collect);
|
|
546
|
+
}
|
|
547
|
+
return result;
|
|
548
|
+
}
|
|
549
|
+
function permittedRange(text, ranges, commentStyle) {
|
|
550
|
+
switch (commentStyle) {
|
|
551
|
+
case CommentStyle.All:
|
|
552
|
+
return true;
|
|
553
|
+
case CommentStyle.Block:
|
|
554
|
+
return ranges[0].kind === ts.SyntaxKind.MultiLineCommentTrivia;
|
|
555
|
+
case CommentStyle.Line:
|
|
556
|
+
return ranges[0].kind === ts.SyntaxKind.SingleLineCommentTrivia;
|
|
557
|
+
case CommentStyle.JSDoc:
|
|
558
|
+
return (ranges[0].kind === ts.SyntaxKind.MultiLineCommentTrivia &&
|
|
559
|
+
text[ranges[0].pos] === "/" &&
|
|
560
|
+
text[ranges[0].pos + 1] === "*" &&
|
|
561
|
+
text[ranges[0].pos + 2] === "*");
|
|
562
|
+
}
|
|
563
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
import { Comment, ReflectionKind } from "../../models/index.js";
|
|
3
|
+
import type { CommentStyle, JsDocCompatibility, ValidationOptions } from "../../utils/options/declaration.js";
|
|
4
|
+
import type { FileRegistry } from "../../models/FileRegistry.js";
|
|
5
|
+
import { Logger } from "#utils";
|
|
6
|
+
import type { Context } from "../context.js";
|
|
7
|
+
export interface CommentParserConfig {
|
|
8
|
+
blockTags: Set<string>;
|
|
9
|
+
inlineTags: Set<string>;
|
|
10
|
+
modifierTags: Set<string>;
|
|
11
|
+
preservedTypeAnnotationTags: Set<string>;
|
|
12
|
+
jsDocCompatibility: JsDocCompatibility;
|
|
13
|
+
suppressCommentWarningsInDeclarationFiles: boolean;
|
|
14
|
+
useTsLinkResolution: boolean;
|
|
15
|
+
commentStyle: CommentStyle;
|
|
16
|
+
validationOptions: ValidationOptions;
|
|
17
|
+
}
|
|
18
|
+
export interface CommentContext {
|
|
19
|
+
config: CommentParserConfig;
|
|
20
|
+
logger: Logger;
|
|
21
|
+
checker: ts.TypeChecker;
|
|
22
|
+
files: FileRegistry;
|
|
23
|
+
createSymbolId: Context["createSymbolId"];
|
|
24
|
+
}
|
|
25
|
+
export interface CommentContextOptionalChecker {
|
|
26
|
+
config: CommentParserConfig;
|
|
27
|
+
logger: Logger;
|
|
28
|
+
checker?: ts.TypeChecker | undefined;
|
|
29
|
+
files: FileRegistry;
|
|
30
|
+
createSymbolId: Context["createSymbolId"];
|
|
31
|
+
}
|
|
32
|
+
export declare function clearCommentCache(): void;
|
|
33
|
+
export declare function getComment(symbol: ts.Symbol, kind: ReflectionKind, context: CommentContext): Comment | undefined;
|
|
34
|
+
export declare function getNodeComment(node: ts.Node, moduleComment: boolean, context: CommentContext): Comment | undefined;
|
|
35
|
+
export declare function getFileComment(file: ts.SourceFile, context: CommentContext): Comment | undefined;
|
|
36
|
+
export declare function getSignatureComment(declaration: ts.SignatureDeclaration | ts.JSDocSignature, context: CommentContext): Comment | undefined;
|
|
37
|
+
export declare function getJsDocComment(declaration: ts.JSDocPropertyLikeTag | ts.JSDocCallbackTag | ts.JSDocTypedefTag | ts.JSDocTemplateTag | ts.JSDocEnumTag, context: CommentContext): Comment | undefined;
|