@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,241 @@
|
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
import { Comment, ReflectionKind } from "../../models/index.js";
|
|
3
|
+
import { lexBlockComment } from "./blockLexer.js";
|
|
4
|
+
import { discoverComment, discoverFileComments, discoverNodeComment, discoverSignatureComment, } from "./discovery.js";
|
|
5
|
+
import { lexLineComments } from "./lineLexer.js";
|
|
6
|
+
import { parseComment } from "./parser.js";
|
|
7
|
+
import { assertNever, i18n, Logger, setUnion } from "#utils";
|
|
8
|
+
const jsDocCommentKinds = [
|
|
9
|
+
ts.SyntaxKind.JSDocPropertyTag,
|
|
10
|
+
ts.SyntaxKind.JSDocCallbackTag,
|
|
11
|
+
ts.SyntaxKind.JSDocTypedefTag,
|
|
12
|
+
ts.SyntaxKind.JSDocTemplateTag,
|
|
13
|
+
ts.SyntaxKind.JSDocEnumTag,
|
|
14
|
+
];
|
|
15
|
+
let commentDiscoveryId = 0;
|
|
16
|
+
let commentCache = new WeakMap();
|
|
17
|
+
// We need to do this for tests so that changing the tsLinkResolution option
|
|
18
|
+
// actually works. Without it, we'd get the old parsed comment which doesn't
|
|
19
|
+
// have the TS symbols attached.
|
|
20
|
+
export function clearCommentCache() {
|
|
21
|
+
commentCache = new WeakMap();
|
|
22
|
+
commentDiscoveryId = 0;
|
|
23
|
+
}
|
|
24
|
+
function getCommentIgnoringCacheNoDiscoveryId(discovered, context) {
|
|
25
|
+
if (!discovered)
|
|
26
|
+
return;
|
|
27
|
+
const { file, ranges, jsDoc } = discovered;
|
|
28
|
+
let comment;
|
|
29
|
+
switch (ranges[0].kind) {
|
|
30
|
+
case ts.SyntaxKind.MultiLineCommentTrivia:
|
|
31
|
+
comment = parseComment(lexBlockComment(file.text, ranges[0].pos, ranges[0].end, context.createSymbolId, jsDoc, context.checker), file, context);
|
|
32
|
+
break;
|
|
33
|
+
case ts.SyntaxKind.SingleLineCommentTrivia:
|
|
34
|
+
comment = parseComment(lexLineComments(file.text, ranges), file, context);
|
|
35
|
+
break;
|
|
36
|
+
default:
|
|
37
|
+
assertNever(ranges[0].kind);
|
|
38
|
+
}
|
|
39
|
+
comment.inheritedFromParentDeclaration = discovered.inheritedFromParentDeclaration;
|
|
40
|
+
return comment;
|
|
41
|
+
}
|
|
42
|
+
function getCommentWithCache(discovered, context) {
|
|
43
|
+
if (!discovered)
|
|
44
|
+
return;
|
|
45
|
+
const { file, ranges } = discovered;
|
|
46
|
+
const cache = commentCache.get(file) || new Map();
|
|
47
|
+
if (cache.has(ranges[0].pos)) {
|
|
48
|
+
const clone = cache.get(ranges[0].pos).clone();
|
|
49
|
+
clone.inheritedFromParentDeclaration = discovered.inheritedFromParentDeclaration;
|
|
50
|
+
return clone;
|
|
51
|
+
}
|
|
52
|
+
const comment = getCommentIgnoringCacheNoDiscoveryId(discovered, context);
|
|
53
|
+
if (!comment)
|
|
54
|
+
return;
|
|
55
|
+
comment.discoveryId = ++commentDiscoveryId;
|
|
56
|
+
cache.set(ranges[0].pos, comment);
|
|
57
|
+
commentCache.set(file, cache);
|
|
58
|
+
return comment.clone();
|
|
59
|
+
}
|
|
60
|
+
function getCommentImpl(commentSource, moduleComment, context) {
|
|
61
|
+
const comment = getCommentWithCache(commentSource, {
|
|
62
|
+
...context,
|
|
63
|
+
checker: context.config.useTsLinkResolution ? context.checker : undefined,
|
|
64
|
+
});
|
|
65
|
+
if (comment?.getTag("@import") || comment?.getTag("@license")) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
if (moduleComment && comment) {
|
|
69
|
+
// Module comment, make sure it is tagged with @packageDocumentation or @module.
|
|
70
|
+
// If it isn't then the comment applies to the first statement in the file, so throw it away.
|
|
71
|
+
if (!comment.hasModifier("@packageDocumentation") &&
|
|
72
|
+
!comment.getTag("@module")) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (!moduleComment && comment) {
|
|
77
|
+
// Ensure module comments are not attached to non-module reflections.
|
|
78
|
+
if (comment.hasModifier("@packageDocumentation") ||
|
|
79
|
+
comment.getTag("@module")) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return comment;
|
|
84
|
+
}
|
|
85
|
+
export function getComment(symbol, kind, context) {
|
|
86
|
+
const declarations = symbol.declarations || [];
|
|
87
|
+
if (declarations.length &&
|
|
88
|
+
declarations.every((d) => jsDocCommentKinds.includes(d.kind))) {
|
|
89
|
+
return getJsDocComment(declarations[0], context);
|
|
90
|
+
}
|
|
91
|
+
const sf = declarations.find(ts.isSourceFile);
|
|
92
|
+
if (sf) {
|
|
93
|
+
return getFileComment(sf, context);
|
|
94
|
+
}
|
|
95
|
+
const isModule = declarations.some((decl) => {
|
|
96
|
+
if (ts.isModuleDeclaration(decl) && ts.isStringLiteral(decl.name)) {
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
return false;
|
|
100
|
+
});
|
|
101
|
+
const comment = getCommentImpl(discoverComment(symbol, kind, context.logger, context.config.commentStyle, context.checker, !context.config.suppressCommentWarningsInDeclarationFiles), isModule, context);
|
|
102
|
+
if (!comment && kind === ReflectionKind.Property) {
|
|
103
|
+
return getConstructorParamPropertyComment(symbol, context);
|
|
104
|
+
}
|
|
105
|
+
return comment;
|
|
106
|
+
}
|
|
107
|
+
export function getNodeComment(node, moduleComment, context) {
|
|
108
|
+
return getCommentImpl(discoverNodeComment(node, context.config.commentStyle), moduleComment, context);
|
|
109
|
+
}
|
|
110
|
+
export function getFileComment(file, context) {
|
|
111
|
+
const quietContext = {
|
|
112
|
+
...context,
|
|
113
|
+
logger: new Logger(),
|
|
114
|
+
};
|
|
115
|
+
for (const commentSource of discoverFileComments(file, context.config.commentStyle)) {
|
|
116
|
+
// First parse the comment without adding the parse to the cache
|
|
117
|
+
// and without logging any messages. If we end up not using this as
|
|
118
|
+
// a file comment we want to avoid parsing it with warnings here as
|
|
119
|
+
// it might be associated with a JSDoc parse which has special
|
|
120
|
+
// handling to allow modifier tags to be specified as {@mod}
|
|
121
|
+
// and if it gets added to the cache here we'll get unwanted warnings
|
|
122
|
+
const comment = getCommentIgnoringCacheNoDiscoveryId(commentSource, quietContext);
|
|
123
|
+
if (comment?.getTag("@license") || comment?.getTag("@import")) {
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
if (comment?.getTag("@module") ||
|
|
127
|
+
comment?.hasModifier("@packageDocumentation")) {
|
|
128
|
+
return getCommentWithCache(commentSource, context);
|
|
129
|
+
}
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
function getConstructorParamPropertyComment(symbol, context) {
|
|
134
|
+
const decl = symbol.declarations?.find(ts.isParameter);
|
|
135
|
+
if (!decl)
|
|
136
|
+
return;
|
|
137
|
+
const ctor = decl.parent;
|
|
138
|
+
const comment = getSignatureComment(ctor, context);
|
|
139
|
+
const paramTag = comment?.getIdentifiedTag(symbol.name, "@param");
|
|
140
|
+
if (paramTag) {
|
|
141
|
+
const result = new Comment(paramTag.content);
|
|
142
|
+
result.sourcePath = comment.sourcePath;
|
|
143
|
+
return result;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
export function getSignatureComment(declaration, context) {
|
|
147
|
+
return getCommentImpl(discoverSignatureComment(declaration, context.checker, context.config.commentStyle), false, context);
|
|
148
|
+
}
|
|
149
|
+
function buildJsDocCommentFromParts(declaration, parts, sourceComment, context) {
|
|
150
|
+
if (!parts) {
|
|
151
|
+
return undefined;
|
|
152
|
+
}
|
|
153
|
+
const comment = new Comment(Comment.cloneDisplayParts(parts));
|
|
154
|
+
comment.sourcePath = sourceComment.sourcePath;
|
|
155
|
+
for (let i = 0; i < comment.summary.length;) {
|
|
156
|
+
const part = comment.summary[i];
|
|
157
|
+
if (part.kind === "inline-tag" &&
|
|
158
|
+
!part.text.trim() &&
|
|
159
|
+
context.config.modifierTags.has(part.tag)) {
|
|
160
|
+
comment.modifierTags.add(part.tag);
|
|
161
|
+
comment.summary.splice(i, 1);
|
|
162
|
+
}
|
|
163
|
+
else if (part.kind === "inline-tag" &&
|
|
164
|
+
part.text.trim() &&
|
|
165
|
+
context.config.modifierTags.has(part.tag) &&
|
|
166
|
+
!context.config.inlineTags.has(part.tag)) {
|
|
167
|
+
context.logger.warn(i18n.inline_tag_0_not_parsed_as_modifier_tag_1(part.tag, part.text.trim()), declaration);
|
|
168
|
+
++i;
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
++i;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return comment;
|
|
175
|
+
}
|
|
176
|
+
export function getJsDocComment(declaration, context) {
|
|
177
|
+
const file = declaration.getSourceFile();
|
|
178
|
+
// First, get the whole comment. We know we'll need all of it.
|
|
179
|
+
let parent = declaration.parent;
|
|
180
|
+
while (!ts.isJSDoc(parent)) {
|
|
181
|
+
parent = parent.parent;
|
|
182
|
+
}
|
|
183
|
+
// Build a custom context to allow modifier tags to be written as inline
|
|
184
|
+
// tags as otherwise there's no way to specify them here #2916 #3050
|
|
185
|
+
const contextWithInline = {
|
|
186
|
+
...context,
|
|
187
|
+
config: {
|
|
188
|
+
...context.config,
|
|
189
|
+
inlineTags: setUnion(context.config.inlineTags, context.config.modifierTags),
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
// Then parse it.
|
|
193
|
+
const comment = getCommentWithCache({
|
|
194
|
+
file,
|
|
195
|
+
ranges: [
|
|
196
|
+
{
|
|
197
|
+
kind: ts.SyntaxKind.MultiLineCommentTrivia,
|
|
198
|
+
pos: parent.pos,
|
|
199
|
+
end: parent.end,
|
|
200
|
+
},
|
|
201
|
+
],
|
|
202
|
+
jsDoc: parent,
|
|
203
|
+
inheritedFromParentDeclaration: false,
|
|
204
|
+
}, contextWithInline);
|
|
205
|
+
// And pull out the tag we actually care about.
|
|
206
|
+
if (ts.isJSDocEnumTag(declaration)) {
|
|
207
|
+
return buildJsDocCommentFromParts(declaration, comment.getTag("@enum")?.content, comment, context);
|
|
208
|
+
}
|
|
209
|
+
if (ts.isJSDocTemplateTag(declaration) &&
|
|
210
|
+
declaration.comment &&
|
|
211
|
+
declaration.typeParameters.length > 1) {
|
|
212
|
+
// We could just put the same comment on everything, but due to how comment parsing works,
|
|
213
|
+
// we'd have to search for any @template with a name starting with the first type parameter's name
|
|
214
|
+
// which feels horribly hacky.
|
|
215
|
+
context.logger.warn(i18n.multiple_type_parameters_on_template_tag_unsupported(), declaration);
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
let name;
|
|
219
|
+
if (ts.isJSDocTemplateTag(declaration)) {
|
|
220
|
+
// This isn't really ideal.
|
|
221
|
+
name = declaration.typeParameters[0].name.text;
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
name = declaration.name?.getText();
|
|
225
|
+
}
|
|
226
|
+
if (!name) {
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
const tag = comment.getIdentifiedTag(name, `@${declaration.tagName.text}`);
|
|
230
|
+
if (!tag) {
|
|
231
|
+
// If this is a template tag with multiple declarations, we warned already if there
|
|
232
|
+
// was a comment attached. If there wasn't, then don't error about failing to find
|
|
233
|
+
// a tag because this is unsupported.
|
|
234
|
+
if (!ts.isJSDocTemplateTag(declaration)) {
|
|
235
|
+
context.logger.error(i18n.failed_to_find_jsdoc_tag_for_name_0(name), declaration);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
return buildJsDocCommentFromParts(declaration, tag.content, comment, context);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ReflectionSymbolId } from "../../models/index.js";
|
|
2
|
+
export declare enum TokenSyntaxKind {
|
|
3
|
+
Text = "text",
|
|
4
|
+
NewLine = "new_line",
|
|
5
|
+
OpenBrace = "open_brace",
|
|
6
|
+
CloseBrace = "close_brace",
|
|
7
|
+
Tag = "tag",
|
|
8
|
+
Code = "code",
|
|
9
|
+
TypeAnnotation = "type"
|
|
10
|
+
}
|
|
11
|
+
export interface Token {
|
|
12
|
+
kind: TokenSyntaxKind;
|
|
13
|
+
text: string;
|
|
14
|
+
pos: number;
|
|
15
|
+
tsLinkTarget?: ReflectionSymbolId;
|
|
16
|
+
tsLinkText?: string;
|
|
17
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export var TokenSyntaxKind;
|
|
2
|
+
(function (TokenSyntaxKind) {
|
|
3
|
+
TokenSyntaxKind["Text"] = "text";
|
|
4
|
+
TokenSyntaxKind["NewLine"] = "new_line";
|
|
5
|
+
TokenSyntaxKind["OpenBrace"] = "open_brace";
|
|
6
|
+
TokenSyntaxKind["CloseBrace"] = "close_brace";
|
|
7
|
+
TokenSyntaxKind["Tag"] = "tag";
|
|
8
|
+
TokenSyntaxKind["Code"] = "code";
|
|
9
|
+
TokenSyntaxKind["TypeAnnotation"] = "type";
|
|
10
|
+
})(TokenSyntaxKind || (TokenSyntaxKind = {}));
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
import { TokenSyntaxKind } from "./lexer.js";
|
|
2
|
+
export function* lexLineComments(file, ranges) {
|
|
3
|
+
// Wrapper around our real lex function to collapse adjacent text tokens.
|
|
4
|
+
let textToken;
|
|
5
|
+
for (const token of lexLineComments2(file, ranges[0].pos, ranges[ranges.length - 1].end)) {
|
|
6
|
+
if (token.kind === TokenSyntaxKind.Text) {
|
|
7
|
+
if (textToken) {
|
|
8
|
+
textToken.text += token.text;
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
textToken = token;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
if (textToken) {
|
|
16
|
+
yield textToken;
|
|
17
|
+
textToken = void 0;
|
|
18
|
+
}
|
|
19
|
+
yield token;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (textToken) {
|
|
23
|
+
yield textToken;
|
|
24
|
+
}
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
function* lexLineComments2(file, pos, end) {
|
|
28
|
+
// Trailing whitespace
|
|
29
|
+
while (pos < end && /\s/.test(file[end - 1])) {
|
|
30
|
+
end--;
|
|
31
|
+
}
|
|
32
|
+
let lineStart = true;
|
|
33
|
+
let braceStartsType = false;
|
|
34
|
+
for (;;) {
|
|
35
|
+
if (lineStart) {
|
|
36
|
+
pos = skipLeadingLineTrivia(pos);
|
|
37
|
+
lineStart = false;
|
|
38
|
+
}
|
|
39
|
+
if (pos >= end) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
switch (file[pos]) {
|
|
43
|
+
case "\n":
|
|
44
|
+
yield makeToken(TokenSyntaxKind.NewLine, 1);
|
|
45
|
+
lineStart = true;
|
|
46
|
+
break;
|
|
47
|
+
case "{":
|
|
48
|
+
if (braceStartsType && nextNonWs(pos + 1) !== "@") {
|
|
49
|
+
yield makeToken(TokenSyntaxKind.TypeAnnotation, findEndOfType(pos) - pos);
|
|
50
|
+
braceStartsType = false;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
yield makeToken(TokenSyntaxKind.OpenBrace, 1);
|
|
54
|
+
}
|
|
55
|
+
break;
|
|
56
|
+
case "}":
|
|
57
|
+
yield makeToken(TokenSyntaxKind.CloseBrace, 1);
|
|
58
|
+
braceStartsType = false;
|
|
59
|
+
break;
|
|
60
|
+
case "`": {
|
|
61
|
+
// Markdown's code rules are a royal pain. This could be one of several things.
|
|
62
|
+
// 1. Inline code: <1-n ticks><text><same number of ticks>
|
|
63
|
+
// 2. Code block: <3 ticks><language, no ticks>\n<text>\n<3 ticks>\n
|
|
64
|
+
// 3. Unmatched tick(s), not code, but part of some text.
|
|
65
|
+
// We don't quite handle #2 correctly yet. PR welcome!
|
|
66
|
+
braceStartsType = false;
|
|
67
|
+
let tickCount = 1;
|
|
68
|
+
let lookahead = pos - 1;
|
|
69
|
+
let atNewline = true;
|
|
70
|
+
while (lookahead > 0 && file[lookahead] !== "\n") {
|
|
71
|
+
if (/\S/.test(file[lookahead])) {
|
|
72
|
+
atNewline = false;
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
--lookahead;
|
|
76
|
+
}
|
|
77
|
+
lookahead = pos;
|
|
78
|
+
while (lookahead + 1 < end && file[lookahead + 1] === "`") {
|
|
79
|
+
tickCount++;
|
|
80
|
+
lookahead++;
|
|
81
|
+
}
|
|
82
|
+
const isCodeBlock = atNewline && tickCount >= 3;
|
|
83
|
+
let lookaheadStart = pos;
|
|
84
|
+
const codeText = [];
|
|
85
|
+
lookahead++;
|
|
86
|
+
while (lookahead < end) {
|
|
87
|
+
if (lookaheadExactlyNTicks(lookahead, tickCount)) {
|
|
88
|
+
lookahead += tickCount;
|
|
89
|
+
codeText.push(file.substring(lookaheadStart, lookahead));
|
|
90
|
+
const codeTextStr = codeText.join("");
|
|
91
|
+
if (isCodeBlock || !/\n\s*\n/.test(codeTextStr)) {
|
|
92
|
+
yield {
|
|
93
|
+
kind: TokenSyntaxKind.Code,
|
|
94
|
+
text: codeTextStr,
|
|
95
|
+
pos,
|
|
96
|
+
};
|
|
97
|
+
pos = lookahead;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
yield makeToken(TokenSyntaxKind.Text, tickCount);
|
|
101
|
+
}
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
else if (file[lookahead] === "`") {
|
|
105
|
+
while (lookahead < end && file[lookahead] === "`") {
|
|
106
|
+
lookahead++;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
else if (file[lookahead] === "\\" &&
|
|
110
|
+
lookahead + 1 < end &&
|
|
111
|
+
file[lookahead + 1] !== "\n") {
|
|
112
|
+
lookahead += 2;
|
|
113
|
+
}
|
|
114
|
+
else if (file[lookahead] === "\n") {
|
|
115
|
+
lookahead++;
|
|
116
|
+
codeText.push(file.substring(lookaheadStart, lookahead));
|
|
117
|
+
lookahead = skipLeadingLineTrivia(lookahead);
|
|
118
|
+
lookaheadStart = lookahead;
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
lookahead++;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (lookahead >= end && pos !== lookahead) {
|
|
125
|
+
if (tickCount === 3 &&
|
|
126
|
+
file.substring(pos, end).includes("\n")) {
|
|
127
|
+
codeText.push(file.substring(lookaheadStart, end));
|
|
128
|
+
yield {
|
|
129
|
+
kind: TokenSyntaxKind.Code,
|
|
130
|
+
text: codeText.join(""),
|
|
131
|
+
pos,
|
|
132
|
+
};
|
|
133
|
+
pos = lookahead;
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
yield makeToken(TokenSyntaxKind.Text, tickCount);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
case "@": {
|
|
142
|
+
let lookahead = pos + 1;
|
|
143
|
+
while (lookahead < end && /[a-z]/i.test(file[lookahead])) {
|
|
144
|
+
lookahead++;
|
|
145
|
+
}
|
|
146
|
+
if (lookahead !== pos + 1) {
|
|
147
|
+
while (lookahead < end &&
|
|
148
|
+
/[a-z0-9-]/i.test(file[lookahead])) {
|
|
149
|
+
lookahead++;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
if (lookahead !== pos + 1 &&
|
|
153
|
+
(lookahead === end || /[\s}]/.test(file[lookahead]))) {
|
|
154
|
+
braceStartsType = true;
|
|
155
|
+
yield makeToken(TokenSyntaxKind.Tag, lookahead - pos);
|
|
156
|
+
break;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// fall through if we didn't find something that looks like a tag
|
|
160
|
+
default: {
|
|
161
|
+
const textParts = [];
|
|
162
|
+
let lookaheadStart = pos;
|
|
163
|
+
let lookahead = pos;
|
|
164
|
+
while (lookahead < end) {
|
|
165
|
+
if ("{}\n`".includes(file[lookahead]))
|
|
166
|
+
break;
|
|
167
|
+
if (lookahead !== pos &&
|
|
168
|
+
file[lookahead] === "@" &&
|
|
169
|
+
/\s/.test(file[lookahead - 1])) {
|
|
170
|
+
// Probably the start of a modifier tag
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
if (file[lookahead] === "\\" &&
|
|
174
|
+
lookahead + 1 < end &&
|
|
175
|
+
"{}@`".includes(file[lookahead + 1])) {
|
|
176
|
+
textParts.push(file.substring(lookaheadStart, lookahead), file[lookahead + 1]);
|
|
177
|
+
lookahead++;
|
|
178
|
+
lookaheadStart = lookahead + 1;
|
|
179
|
+
}
|
|
180
|
+
lookahead++;
|
|
181
|
+
}
|
|
182
|
+
textParts.push(file.substring(lookaheadStart, lookahead));
|
|
183
|
+
if (textParts.some((part) => /\S/.test(part))) {
|
|
184
|
+
braceStartsType = false;
|
|
185
|
+
}
|
|
186
|
+
// This piece of text had line continuations or escaped text
|
|
187
|
+
yield {
|
|
188
|
+
kind: TokenSyntaxKind.Text,
|
|
189
|
+
text: textParts.join(""),
|
|
190
|
+
pos,
|
|
191
|
+
};
|
|
192
|
+
pos = lookahead;
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
function makeToken(kind, size) {
|
|
198
|
+
const start = pos;
|
|
199
|
+
pos += size;
|
|
200
|
+
return {
|
|
201
|
+
kind,
|
|
202
|
+
text: file.substring(start, pos),
|
|
203
|
+
pos: start,
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
function skipLeadingLineTrivia(pos) {
|
|
207
|
+
let lookahead = pos;
|
|
208
|
+
while (lookahead < end && /\s/.test(file[lookahead])) {
|
|
209
|
+
lookahead++;
|
|
210
|
+
}
|
|
211
|
+
while (lookahead < end && file[lookahead] === "/") {
|
|
212
|
+
lookahead++;
|
|
213
|
+
}
|
|
214
|
+
if (lookahead < end && file[lookahead] === " ") {
|
|
215
|
+
lookahead++;
|
|
216
|
+
}
|
|
217
|
+
return lookahead;
|
|
218
|
+
}
|
|
219
|
+
function lookaheadExactlyNTicks(pos, n) {
|
|
220
|
+
if (pos + n > end) {
|
|
221
|
+
return false;
|
|
222
|
+
}
|
|
223
|
+
return file.startsWith("`".repeat(n), pos) && file[pos + n] !== "`";
|
|
224
|
+
}
|
|
225
|
+
function findEndOfType(pos) {
|
|
226
|
+
let openBraces = 0;
|
|
227
|
+
while (pos < end) {
|
|
228
|
+
if (file[pos] === "{") {
|
|
229
|
+
openBraces++;
|
|
230
|
+
}
|
|
231
|
+
else if (file[pos] === "}") {
|
|
232
|
+
if (--openBraces === 0) {
|
|
233
|
+
break;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
else if ("`'\"".includes(file[pos])) {
|
|
237
|
+
pos = findEndOfString(pos);
|
|
238
|
+
}
|
|
239
|
+
pos++;
|
|
240
|
+
}
|
|
241
|
+
if (pos < end && file[pos] === "}") {
|
|
242
|
+
pos++;
|
|
243
|
+
}
|
|
244
|
+
return pos;
|
|
245
|
+
}
|
|
246
|
+
function findEndOfString(pos) {
|
|
247
|
+
const endOfString = file[pos];
|
|
248
|
+
pos++;
|
|
249
|
+
while (pos < end) {
|
|
250
|
+
if (file[pos] === endOfString) {
|
|
251
|
+
break;
|
|
252
|
+
}
|
|
253
|
+
else if (file[pos] === "\\") {
|
|
254
|
+
pos++; // Skip escaped character
|
|
255
|
+
}
|
|
256
|
+
else if (endOfString === "`" &&
|
|
257
|
+
file[pos] === "$" &&
|
|
258
|
+
file[pos + 1] === "{") {
|
|
259
|
+
// Template literal with data inside a ${}
|
|
260
|
+
while (pos < end && file[pos] !== "}") {
|
|
261
|
+
if ("`'\"".includes(file[pos])) {
|
|
262
|
+
pos = findEndOfString(pos) + 1;
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
pos++;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
pos++;
|
|
270
|
+
}
|
|
271
|
+
return pos;
|
|
272
|
+
}
|
|
273
|
+
function nextNonWs(pos) {
|
|
274
|
+
while (pos < end && /\s/.test(file[pos])) {
|
|
275
|
+
pos++;
|
|
276
|
+
}
|
|
277
|
+
return file[pos];
|
|
278
|
+
}
|
|
279
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type CommentDisplayPart, Reflection, ReflectionSymbolId } from "../../models/index.js";
|
|
2
|
+
import { type DeclarationReference } from "#utils";
|
|
3
|
+
export type ExternalResolveResult = {
|
|
4
|
+
target: string;
|
|
5
|
+
caption?: string;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* @param ref - Parsed declaration reference to resolve. This may be created automatically for some symbol, or
|
|
9
|
+
* parsed from user input.
|
|
10
|
+
* @param refl - Reflection that contains the resolved link
|
|
11
|
+
* @param part - If the declaration reference was created from a comment, the originating part.
|
|
12
|
+
* @param symbolId - If the declaration reference was created from a symbol, or `useTsLinkResolution` is turned
|
|
13
|
+
* on and TypeScript resolved the link to some symbol, the ID of that symbol.
|
|
14
|
+
*/
|
|
15
|
+
export type ExternalSymbolResolver = (ref: DeclarationReference, refl: Reflection, part: Readonly<CommentDisplayPart> | undefined, symbolId: ReflectionSymbolId | undefined) => ExternalResolveResult | string | undefined;
|
|
16
|
+
export type LinkResolverOptions = {
|
|
17
|
+
preserveLinkText: boolean;
|
|
18
|
+
};
|
|
19
|
+
export declare function resolveLinks(reflection: Reflection, externalResolver: ExternalSymbolResolver, options: LinkResolverOptions): void;
|
|
20
|
+
export declare function resolvePartLinks(reflection: Reflection, parts: readonly CommentDisplayPart[], externalResolver: ExternalSymbolResolver, options: LinkResolverOptions): CommentDisplayPart[];
|