typedoc 0.23.26 → 0.24.0-beta.1

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.
Files changed (158) hide show
  1. package/bin/typedoc +1 -130
  2. package/dist/index.d.ts +4 -5
  3. package/dist/index.js +15 -5
  4. package/dist/lib/application-events.d.ts +1 -1
  5. package/dist/lib/application-events.js +1 -1
  6. package/dist/lib/application.d.ts +24 -13
  7. package/dist/lib/application.js +136 -69
  8. package/dist/lib/cli.d.ts +1 -0
  9. package/dist/lib/cli.js +129 -0
  10. package/dist/lib/converter/comments/declarationReference.d.ts +1 -1
  11. package/dist/lib/converter/comments/declarationReferenceResolver.js +11 -5
  12. package/dist/lib/converter/comments/discovery.d.ts +1 -1
  13. package/dist/lib/converter/comments/discovery.js +96 -76
  14. package/dist/lib/converter/comments/index.d.ts +1 -1
  15. package/dist/lib/converter/comments/index.js +41 -21
  16. package/dist/lib/converter/comments/linkResolver.d.ts +2 -8
  17. package/dist/lib/converter/comments/linkResolver.js +42 -145
  18. package/dist/lib/converter/context.d.ts +1 -1
  19. package/dist/lib/converter/context.js +27 -14
  20. package/dist/lib/converter/convert-expression.d.ts +1 -1
  21. package/dist/lib/converter/convert-expression.js +35 -15
  22. package/dist/lib/converter/converter.d.ts +4 -6
  23. package/dist/lib/converter/converter.js +38 -27
  24. package/dist/lib/converter/factories/index-signature.d.ts +1 -1
  25. package/dist/lib/converter/factories/index-signature.js +26 -3
  26. package/dist/lib/converter/factories/signature.d.ts +2 -2
  27. package/dist/lib/converter/factories/signature.js +76 -52
  28. package/dist/lib/converter/index.d.ts +0 -1
  29. package/dist/lib/converter/jsdoc.d.ts +1 -1
  30. package/dist/lib/converter/jsdoc.js +39 -17
  31. package/dist/lib/converter/plugins/CommentPlugin.d.ts +0 -2
  32. package/dist/lib/converter/plugins/CommentPlugin.js +7 -28
  33. package/dist/lib/converter/plugins/GroupPlugin.d.ts +1 -39
  34. package/dist/lib/converter/plugins/GroupPlugin.js +3 -61
  35. package/dist/lib/converter/plugins/ImplementsPlugin.d.ts +1 -4
  36. package/dist/lib/converter/plugins/ImplementsPlugin.js +49 -28
  37. package/dist/lib/converter/plugins/InheritDocPlugin.d.ts +0 -3
  38. package/dist/lib/converter/plugins/InheritDocPlugin.js +6 -7
  39. package/dist/lib/converter/plugins/LinkResolverPlugin.d.ts +2 -3
  40. package/dist/lib/converter/plugins/LinkResolverPlugin.js +12 -18
  41. package/dist/lib/converter/plugins/PackagePlugin.d.ts +5 -14
  42. package/dist/lib/converter/plugins/PackagePlugin.js +44 -56
  43. package/dist/lib/converter/plugins/SourcePlugin.js +31 -6
  44. package/dist/lib/converter/plugins/TypePlugin.d.ts +4 -10
  45. package/dist/lib/converter/plugins/TypePlugin.js +23 -13
  46. package/dist/lib/converter/symbols.d.ts +1 -1
  47. package/dist/lib/converter/symbols.js +153 -132
  48. package/dist/lib/converter/types.d.ts +1 -1
  49. package/dist/lib/converter/types.js +121 -95
  50. package/dist/lib/converter/utils/nodes.d.ts +1 -1
  51. package/dist/lib/converter/utils/nodes.js +24 -4
  52. package/dist/lib/converter/utils/symbols.d.ts +1 -1
  53. package/dist/lib/converter/utils/symbols.js +24 -4
  54. package/dist/lib/models/ReflectionCategory.d.ts +2 -1
  55. package/dist/lib/models/ReflectionCategory.js +12 -0
  56. package/dist/lib/models/ReflectionGroup.d.ts +3 -2
  57. package/dist/lib/models/ReflectionGroup.js +20 -0
  58. package/dist/lib/models/comments/comment.d.ts +12 -7
  59. package/dist/lib/models/comments/comment.js +77 -64
  60. package/dist/lib/models/reflections/ReflectionSymbolId.d.ts +29 -0
  61. package/dist/lib/models/reflections/ReflectionSymbolId.js +94 -0
  62. package/dist/lib/models/reflections/abstract.d.ts +12 -37
  63. package/dist/lib/models/reflections/abstract.js +27 -35
  64. package/dist/lib/models/reflections/container.d.ts +6 -10
  65. package/dist/lib/models/reflections/container.js +8 -1
  66. package/dist/lib/models/reflections/declaration.d.ts +19 -4
  67. package/dist/lib/models/reflections/declaration.js +54 -1
  68. package/dist/lib/models/reflections/index.d.ts +2 -0
  69. package/dist/lib/models/reflections/index.js +3 -1
  70. package/dist/lib/models/reflections/kind.d.ts +15 -1
  71. package/dist/lib/models/reflections/kind.js +43 -1
  72. package/dist/lib/models/reflections/parameter.d.ts +3 -1
  73. package/dist/lib/models/reflections/parameter.js +10 -0
  74. package/dist/lib/models/reflections/project.d.ts +32 -5
  75. package/dist/lib/models/reflections/project.js +84 -20
  76. package/dist/lib/models/reflections/reference.d.ts +5 -9
  77. package/dist/lib/models/reflections/reference.js +13 -29
  78. package/dist/lib/models/reflections/signature.d.ts +8 -1
  79. package/dist/lib/models/reflections/signature.js +14 -0
  80. package/dist/lib/models/reflections/type-parameter.d.ts +7 -4
  81. package/dist/lib/models/reflections/type-parameter.js +9 -3
  82. package/dist/lib/models/reflections/variant.d.ts +18 -0
  83. package/dist/lib/models/reflections/variant.js +2 -0
  84. package/dist/lib/models/sources/file.d.ts +2 -0
  85. package/dist/lib/models/sources/file.js +3 -0
  86. package/dist/lib/models/types.d.ts +24 -20
  87. package/dist/lib/models/types.js +132 -33
  88. package/dist/lib/output/plugins/JavascriptIndexPlugin.js +3 -7
  89. package/dist/lib/output/renderer.d.ts +21 -14
  90. package/dist/lib/output/renderer.js +25 -25
  91. package/dist/lib/output/themes/MarkedPlugin.js +2 -3
  92. package/dist/lib/output/themes/default/DefaultTheme.d.ts +2 -20
  93. package/dist/lib/output/themes/default/DefaultTheme.js +4 -75
  94. package/dist/lib/output/themes/default/DefaultThemeRenderContext.d.ts +10 -9
  95. package/dist/lib/output/themes/default/DefaultThemeRenderContext.js +55 -1
  96. package/dist/lib/output/themes/default/partials/header.js +2 -5
  97. package/dist/lib/output/themes/default/partials/index.js +2 -2
  98. package/dist/lib/output/themes/default/partials/member.getterSetter.d.ts +2 -2
  99. package/dist/lib/output/themes/default/partials/member.getterSetter.js +4 -1
  100. package/dist/lib/output/themes/default/partials/member.js +1 -1
  101. package/dist/lib/output/themes/default/partials/member.signatures.js +2 -1
  102. package/dist/lib/output/themes/default/partials/members.d.ts +1 -1
  103. package/dist/lib/output/themes/default/partials/members.js +3 -1
  104. package/dist/lib/output/themes/default/partials/navigation.js +6 -4
  105. package/dist/lib/output/themes/default/partials/parameter.js +1 -1
  106. package/dist/lib/output/themes/default/partials/type.js +4 -4
  107. package/dist/lib/output/themes/default/templates/reflection.js +1 -1
  108. package/dist/lib/output/themes/lib.d.ts +4 -1
  109. package/dist/lib/output/themes/lib.js +53 -3
  110. package/dist/lib/serialization/deserializer.d.ts +54 -0
  111. package/dist/lib/serialization/deserializer.js +212 -0
  112. package/dist/lib/serialization/events.d.ts +0 -15
  113. package/dist/lib/serialization/index.d.ts +2 -3
  114. package/dist/lib/serialization/index.js +4 -3
  115. package/dist/lib/serialization/schema.d.ts +23 -17
  116. package/dist/lib/serialization/serializer.d.ts +5 -5
  117. package/dist/lib/serialization/serializer.js +4 -15
  118. package/dist/lib/utils/array.d.ts +0 -1
  119. package/dist/lib/utils/array.js +1 -2
  120. package/dist/lib/utils/entry-point.d.ts +15 -4
  121. package/dist/lib/utils/entry-point.js +45 -28
  122. package/dist/lib/utils/enum.d.ts +4 -1
  123. package/dist/lib/utils/enum.js +2 -3
  124. package/dist/lib/utils/fs.d.ts +3 -1
  125. package/dist/lib/utils/fs.js +36 -73
  126. package/dist/lib/utils/index.d.ts +4 -3
  127. package/dist/lib/utils/index.js +3 -3
  128. package/dist/lib/utils/loggers.d.ts +5 -26
  129. package/dist/lib/utils/loggers.js +38 -42
  130. package/dist/lib/utils/map.d.ts +17 -0
  131. package/dist/lib/utils/map.js +49 -1
  132. package/dist/lib/utils/options/declaration.d.ts +20 -6
  133. package/dist/lib/utils/options/help.js +1 -1
  134. package/dist/lib/utils/options/options.d.ts +27 -18
  135. package/dist/lib/utils/options/options.js +68 -14
  136. package/dist/lib/utils/options/readers/arguments.d.ts +2 -1
  137. package/dist/lib/utils/options/readers/arguments.js +9 -2
  138. package/dist/lib/utils/options/readers/tsconfig.d.ts +3 -7
  139. package/dist/lib/utils/options/readers/tsconfig.js +35 -36
  140. package/dist/lib/utils/options/readers/typedoc.d.ts +4 -5
  141. package/dist/lib/utils/options/readers/typedoc.js +9 -21
  142. package/dist/lib/utils/options/sources/typedoc.js +18 -64
  143. package/dist/lib/utils/package-manifest.js +1 -2
  144. package/dist/lib/utils/paths.js +2 -0
  145. package/dist/lib/utils/plugins.d.ts +1 -2
  146. package/dist/lib/utils/plugins.js +22 -106
  147. package/dist/lib/utils/sort.d.ts +1 -1
  148. package/dist/lib/utils/sort.js +8 -11
  149. package/dist/lib/utils/tsconfig.d.ts +4 -0
  150. package/dist/lib/utils/tsconfig.js +36 -0
  151. package/dist/lib/utils/tsutils.d.ts +3 -2
  152. package/dist/lib/utils/tsutils.js +46 -12
  153. package/dist/lib/validation/documentation.d.ts +1 -1
  154. package/dist/lib/validation/documentation.js +6 -29
  155. package/dist/lib/validation/exports.js +18 -21
  156. package/dist/lib/validation/links.js +1 -1
  157. package/package.json +18 -19
  158. package/static/main.js +1 -55
@@ -1,65 +1,68 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
4
24
  };
5
25
  Object.defineProperty(exports, "__esModule", { value: true });
6
26
  exports.resolvePartLinks = exports.resolveLinks = void 0;
7
- const typescript_1 = __importDefault(require("typescript"));
27
+ const ts = __importStar(require("typescript"));
8
28
  const models_1 = require("../../models");
9
29
  const declarationReference_1 = require("./declarationReference");
10
30
  const declarationReferenceResolver_1 = require("./declarationReferenceResolver");
11
31
  const urlPrefix = /^(http|ftp)s?:\/\//;
12
- const brackets = /\[\[(?!include:)([^\]]+)\]\]/g;
13
- function resolveLinks(comment, reflection, validation, logger, externalResolver) {
14
- let warned = false;
15
- const warn = () => {
16
- if (!warned) {
17
- warned = true;
18
- logger.warn(`${reflection.getFriendlyFullName()}: Comment [[target]] style links are deprecated and will be removed in 0.24`);
19
- }
20
- };
21
- comment.summary = resolvePartLinks(reflection, comment.summary, warn, validation, logger, externalResolver);
32
+ function resolveLinks(comment, reflection, attemptExternalResolve) {
33
+ comment.summary = resolvePartLinks(reflection, comment.summary, attemptExternalResolve);
22
34
  for (const tag of comment.blockTags) {
23
- tag.content = resolvePartLinks(reflection, tag.content, warn, validation, logger, externalResolver);
35
+ tag.content = resolvePartLinks(reflection, tag.content, attemptExternalResolve);
24
36
  }
25
37
  if (reflection instanceof models_1.DeclarationReflection && reflection.readme) {
26
- reflection.readme = resolvePartLinks(reflection, reflection.readme, warn, validation, logger, externalResolver);
38
+ reflection.readme = resolvePartLinks(reflection, reflection.readme, attemptExternalResolve);
27
39
  }
28
40
  }
29
41
  exports.resolveLinks = resolveLinks;
30
- function resolvePartLinks(reflection, parts, warn, validation, logger, externalResolver) {
31
- return parts.flatMap((part) => processPart(reflection, part, warn, validation, logger, externalResolver));
42
+ function resolvePartLinks(reflection, parts, attemptExternalResolve) {
43
+ return parts.flatMap((part) => processPart(reflection, part, attemptExternalResolve));
32
44
  }
33
45
  exports.resolvePartLinks = resolvePartLinks;
34
- function processPart(reflection, part, warn, validation, logger, externalResolver) {
35
- if (part.kind === "text" && brackets.test(part.text)) {
36
- warn();
37
- return replaceBrackets(reflection, part.text, validation, logger);
38
- }
46
+ function processPart(reflection, part, attemptExternalResolve) {
39
47
  if (part.kind === "inline-tag") {
40
48
  if (part.tag === "@link" ||
41
49
  part.tag === "@linkcode" ||
42
50
  part.tag === "@linkplain") {
43
- return resolveLinkTag(reflection, part, externalResolver, (msg) => {
44
- if (validation.invalidLink) {
45
- logger.warn(msg);
46
- }
47
- });
51
+ return resolveLinkTag(reflection, part, attemptExternalResolve);
48
52
  }
49
53
  }
50
54
  return part;
51
55
  }
52
- function resolveLinkTag(reflection, part, externalResolver, warn) {
56
+ function resolveLinkTag(reflection, part, attemptExternalResolve) {
53
57
  let pos = 0;
54
58
  const end = part.text.length;
55
- while (pos < end && typescript_1.default.isWhiteSpaceLike(part.text.charCodeAt(pos))) {
59
+ while (pos < end && ts.isWhiteSpaceLike(part.text.charCodeAt(pos))) {
56
60
  pos++;
57
61
  }
58
- const origText = part.text;
59
62
  // Try to parse one
60
63
  const declRef = (0, declarationReference_1.parseDeclarationReference)(part.text, pos, end);
61
64
  let target;
62
- let defaultDisplayText = "";
65
+ let defaultDisplayText;
63
66
  if (declRef) {
64
67
  // Got one, great! Try to resolve the link
65
68
  target = (0, declarationReferenceResolver_1.resolveDeclarationReference)(reflection, declRef[0]);
@@ -69,16 +72,9 @@ function resolveLinkTag(reflection, part, externalResolver, warn) {
69
72
  }
70
73
  else {
71
74
  // If we didn't find a link, it might be a @link tag to an external symbol, check that next.
72
- const externalResolveResult = externalResolver(declRef[0], reflection, part);
73
- defaultDisplayText = part.text.substring(0, pos);
74
- switch (typeof externalResolveResult) {
75
- case "string":
76
- target = externalResolveResult;
77
- break;
78
- case "object":
79
- target = externalResolveResult.target;
80
- defaultDisplayText =
81
- externalResolveResult.caption || defaultDisplayText;
75
+ target = attemptExternalResolve(declRef[0]);
76
+ if (target) {
77
+ defaultDisplayText = part.text.substring(0, pos);
82
78
  }
83
79
  }
84
80
  }
@@ -91,117 +87,18 @@ function resolveLinkTag(reflection, part, externalResolver, warn) {
91
87
  defaultDisplayText = target;
92
88
  }
93
89
  }
94
- // If resolution via a declaration reference failed, revert to the legacy "split and check"
95
- // method... this should go away in 0.24, once people have had a chance to migrate any failing links.
96
- if (!target) {
97
- const resolved = legacyResolveLinkTag(reflection, part);
98
- if (resolved.target) {
99
- warn(`Failed to resolve {@link ${origText}} in ${reflection.getFriendlyFullName()} with declaration references. This link will break in v0.24.`);
100
- }
101
- return resolved;
102
- }
103
90
  // Remaining text after an optional pipe is the link text, so advance
104
91
  // until that's consumed.
105
- while (pos < end && typescript_1.default.isWhiteSpaceLike(part.text.charCodeAt(pos))) {
92
+ while (pos < end && ts.isWhiteSpaceLike(part.text.charCodeAt(pos))) {
106
93
  pos++;
107
94
  }
108
95
  if (pos < end && part.text[pos] === "|") {
109
96
  pos++;
110
97
  }
111
- part.target = target;
112
- part.text =
113
- part.text.substring(pos).trim() || defaultDisplayText || part.text;
114
- return part;
115
- }
116
- function legacyResolveLinkTag(reflection, part) {
117
- const { caption, target } = splitLinkText(part.text);
118
- if (urlPrefix.test(target)) {
119
- part.text = caption;
120
- part.target = target;
121
- }
122
- else {
123
- const targetRefl = reflection.findReflectionByName(target);
124
- if (targetRefl) {
125
- part.text = caption;
126
- part.target = targetRefl;
127
- }
98
+ if (!target) {
99
+ return part;
128
100
  }
101
+ part.target = target;
102
+ part.text = part.text.substring(pos).trim() || defaultDisplayText;
129
103
  return part;
130
104
  }
131
- function replaceBrackets(reflection, text, validation, logger) {
132
- const parts = [];
133
- let begin = 0;
134
- brackets.lastIndex = 0;
135
- for (const match of text.matchAll(brackets)) {
136
- if (begin != match.index) {
137
- parts.push({
138
- kind: "text",
139
- text: text.substring(begin, match.index),
140
- });
141
- }
142
- begin = match.index + match[0].length;
143
- const content = match[1];
144
- const { target, caption } = splitLinkText(content);
145
- if (urlPrefix.test(target)) {
146
- parts.push({
147
- kind: "inline-tag",
148
- tag: "@link",
149
- text: caption,
150
- target,
151
- });
152
- }
153
- else {
154
- const targetRefl = reflection.findReflectionByName(target);
155
- if (targetRefl) {
156
- parts.push({
157
- kind: "inline-tag",
158
- tag: "@link",
159
- text: caption,
160
- target: targetRefl,
161
- });
162
- }
163
- else {
164
- if (validation.invalidLink) {
165
- logger.warn("Failed to find target: " + content);
166
- }
167
- parts.push({
168
- kind: "inline-tag",
169
- tag: "@link",
170
- text: content,
171
- });
172
- }
173
- }
174
- }
175
- parts.push({
176
- kind: "text",
177
- text: text.substring(begin),
178
- });
179
- return parts;
180
- }
181
- /**
182
- * Split the given link into text and target at first pipe or space.
183
- *
184
- * @param text The source string that should be checked for a split character.
185
- * @returns An object containing the link text and target.
186
- */
187
- function splitLinkText(text) {
188
- let splitIndex = text.indexOf("|");
189
- if (splitIndex === -1) {
190
- splitIndex = text.search(/\s/);
191
- }
192
- if (splitIndex !== -1) {
193
- return {
194
- caption: text
195
- .substring(splitIndex + 1)
196
- .replace(/\n+/, " ")
197
- .trim(),
198
- target: text.substring(0, splitIndex).trim(),
199
- };
200
- }
201
- else {
202
- return {
203
- caption: text,
204
- target: text,
205
- };
206
- }
207
- }
@@ -1,4 +1,4 @@
1
- import ts from "typescript";
1
+ import * as ts from "typescript";
2
2
  import { Reflection, ProjectReflection, DeclarationReflection, ReflectionKind } from "../models/index";
3
3
  import type { Converter } from "./converter";
4
4
  /**
@@ -1,16 +1,37 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
4
24
  };
5
25
  Object.defineProperty(exports, "__esModule", { value: true });
6
26
  exports.Context = void 0;
7
27
  const assert_1 = require("assert");
8
- const typescript_1 = __importDefault(require("typescript"));
28
+ const ts = __importStar(require("typescript"));
9
29
  const index_1 = require("../models/index");
10
30
  const nodes_1 = require("./utils/nodes");
11
31
  const converter_events_1 = require("./converter-events");
12
32
  const symbols_1 = require("./utils/symbols");
13
33
  const comments_1 = require("./comments");
34
+ const tsutils_1 = require("../utils/tsutils");
14
35
  /**
15
36
  * The context describes the current state the converter is in.
16
37
  */
@@ -99,8 +120,8 @@ class Context {
99
120
  expectSymbolAtLocation(node) {
100
121
  const symbol = this.getSymbolAtLocation(node);
101
122
  if (!symbol) {
102
- const { line } = typescript_1.default.getLineAndCharacterOfPosition(node.getSourceFile(), node.pos);
103
- throw new Error(`Expected a symbol for node with kind ${typescript_1.default.SyntaxKind[node.kind]} at ${node.getSourceFile().fileName}:${line + 1}`);
123
+ const { line } = ts.getLineAndCharacterOfPosition(node.getSourceFile(), node.pos);
124
+ throw new Error(`Expected a symbol for node with kind ${ts.SyntaxKind[node.kind]} at ${node.getSourceFile().fileName}:${line + 1}`);
104
125
  }
105
126
  return symbol;
106
127
  }
@@ -110,7 +131,7 @@ class Context {
110
131
  createDeclarationReflection(kind, symbol, exportSymbol,
111
132
  // We need this because modules don't always have symbols.
112
133
  nameOverride) {
113
- const name = getHumanName(nameOverride ?? exportSymbol?.name ?? symbol?.name ?? "unknown");
134
+ const name = (0, tsutils_1.getHumanName)(nameOverride ?? exportSymbol?.name ?? symbol?.name ?? "unknown");
114
135
  const reflection = new index_1.DeclarationReflection(name, kind, this.scope);
115
136
  this.postReflectionCreation(reflection, symbol, exportSymbol);
116
137
  return reflection;
@@ -189,11 +210,3 @@ class Context {
189
210
  }
190
211
  }
191
212
  exports.Context = Context;
192
- const uniqueSymbolRegExp = /^__@(.*)@\d+$/;
193
- function getHumanName(name) {
194
- const match = uniqueSymbolRegExp.exec(name);
195
- if (match) {
196
- return `[${match[1]}]`;
197
- }
198
- return name;
199
- }
@@ -1,4 +1,4 @@
1
- import ts from "typescript";
1
+ import * as ts from "typescript";
2
2
  /**
3
3
  * Return the default value of the given node.
4
4
  *
@@ -1,10 +1,30 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
4
24
  };
5
25
  Object.defineProperty(exports, "__esModule", { value: true });
6
26
  exports.convertExpression = exports.convertDefaultValue = void 0;
7
- const typescript_1 = __importDefault(require("typescript"));
27
+ const ts = __importStar(require("typescript"));
8
28
  /**
9
29
  * Return the default value of the given node.
10
30
  *
@@ -23,32 +43,32 @@ function convertDefaultValue(node) {
23
43
  exports.convertDefaultValue = convertDefaultValue;
24
44
  function convertExpression(expression) {
25
45
  switch (expression.kind) {
26
- case typescript_1.default.SyntaxKind.StringLiteral:
27
- case typescript_1.default.SyntaxKind.TrueKeyword:
28
- case typescript_1.default.SyntaxKind.FalseKeyword:
29
- case typescript_1.default.SyntaxKind.NullKeyword:
30
- case typescript_1.default.SyntaxKind.NumericLiteral:
31
- case typescript_1.default.SyntaxKind.PrefixUnaryExpression:
32
- case typescript_1.default.SyntaxKind.Identifier:
46
+ case ts.SyntaxKind.StringLiteral:
47
+ case ts.SyntaxKind.TrueKeyword:
48
+ case ts.SyntaxKind.FalseKeyword:
49
+ case ts.SyntaxKind.NullKeyword:
50
+ case ts.SyntaxKind.NumericLiteral:
51
+ case ts.SyntaxKind.PrefixUnaryExpression:
52
+ case ts.SyntaxKind.Identifier:
33
53
  return expression.getText();
34
54
  }
35
- if (typescript_1.default.isArrayLiteralExpression(expression) &&
55
+ if (ts.isArrayLiteralExpression(expression) &&
36
56
  expression.elements.length === 0) {
37
57
  return "[]";
38
58
  }
39
- if (typescript_1.default.isObjectLiteralExpression(expression) &&
59
+ if (ts.isObjectLiteralExpression(expression) &&
40
60
  expression.properties.length === 0) {
41
61
  return "{}";
42
62
  }
43
63
  // a.b.c.d
44
- if (typescript_1.default.isPropertyAccessExpression(expression)) {
64
+ if (ts.isPropertyAccessExpression(expression)) {
45
65
  const parts = [expression.name.getText()];
46
66
  let iter = expression.expression;
47
- while (typescript_1.default.isPropertyAccessExpression(iter)) {
67
+ while (ts.isPropertyAccessExpression(iter)) {
48
68
  parts.unshift(iter.name.getText());
49
69
  iter = iter.expression;
50
70
  }
51
- if (typescript_1.default.isIdentifier(iter)) {
71
+ if (ts.isIdentifier(iter)) {
52
72
  parts.unshift(iter.text);
53
73
  return parts.join(".");
54
74
  }
@@ -1,4 +1,4 @@
1
- import ts from "typescript";
1
+ import * as ts from "typescript";
2
2
  import type { Application } from "../application";
3
3
  import { Comment, CommentDisplayPart, ProjectReflection, Reflection, SomeType } from "../models/index";
4
4
  import { Context } from "./context";
@@ -8,7 +8,6 @@ import { MinimalSourceFile } from "../utils";
8
8
  import type { DocumentationEntryPoint } from "../utils/entry-point";
9
9
  import { CommentParserConfig } from "./comments";
10
10
  import type { CommentStyle, ValidationOptions } from "../utils/options/declaration";
11
- import { ExternalSymbolResolver, ExternalResolveResult } from "./comments/linkResolver";
12
11
  import type { DeclarationReference } from "./comments/declarationReference";
13
12
  /**
14
13
  * Compiles source files using TypeScript and converts compiler symbols to reflections.
@@ -129,13 +128,12 @@ export declare class Converter extends ChildableComponent<Application, Converter
129
128
  *
130
129
  * Note: This will be used for both references to types declared in node_modules (in which case the
131
130
  * reference passed will have the `moduleSource` set and the `symbolReference` will navigate via `.`)
132
- * and user defined \{\@link\} tags which cannot be resolved. If the link being resolved is inferred
133
- * from a type, then no `part` will be passed to the resolver function.
131
+ * and user defined \{\@link\} tags which cannot be resolved.
134
132
  * @since 0.22.14
135
133
  */
136
- addUnknownSymbolResolver(resolver: ExternalSymbolResolver): void;
134
+ addUnknownSymbolResolver(resolver: (ref: DeclarationReference) => string | undefined): void;
137
135
  /** @internal */
138
- resolveExternalLink(ref: DeclarationReference, refl: Reflection, part?: CommentDisplayPart): ExternalResolveResult | string | undefined;
136
+ resolveExternalLink(ref: DeclarationReference): string | undefined;
139
137
  resolveLinks(comment: Comment, owner: Reflection): void;
140
138
  resolveLinks(parts: readonly CommentDisplayPart[], owner: Reflection): CommentDisplayPart[];
141
139
  /**
@@ -1,17 +1,37 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
2
18
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
19
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
20
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
21
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
22
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
23
  };
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
10
30
  };
11
31
  var Converter_1;
12
32
  Object.defineProperty(exports, "__esModule", { value: true });
13
33
  exports.Converter = void 0;
14
- const typescript_1 = __importDefault(require("typescript"));
34
+ const ts = __importStar(require("typescript"));
15
35
  const index_1 = require("../models/index");
16
36
  const context_1 = require("./context");
17
37
  const components_1 = require("./components");
@@ -72,9 +92,8 @@ let Converter = Converter_1 = class Converter extends component_1.ChildableCompo
72
92
  this.trigger(Converter_1.EVENT_BEGIN, context);
73
93
  this.compile(entryPoints, context);
74
94
  this.resolve(context);
75
- // This should only do anything if a plugin does something bad.
76
- project.removeDanglingReferences();
77
95
  this.trigger(Converter_1.EVENT_END, context);
96
+ project.forgetTsReferences();
78
97
  return project;
79
98
  }
80
99
  /** @internal */
@@ -107,34 +126,26 @@ let Converter = Converter_1 = class Converter extends component_1.ChildableCompo
107
126
  *
108
127
  * Note: This will be used for both references to types declared in node_modules (in which case the
109
128
  * reference passed will have the `moduleSource` set and the `symbolReference` will navigate via `.`)
110
- * and user defined \{\@link\} tags which cannot be resolved. If the link being resolved is inferred
111
- * from a type, then no `part` will be passed to the resolver function.
129
+ * and user defined \{\@link\} tags which cannot be resolved.
112
130
  * @since 0.22.14
113
131
  */
114
132
  addUnknownSymbolResolver(resolver) {
115
133
  this._externalSymbolResolvers.push(resolver);
116
134
  }
117
135
  /** @internal */
118
- resolveExternalLink(ref, refl, part) {
136
+ resolveExternalLink(ref) {
119
137
  for (const resolver of this._externalSymbolResolvers) {
120
- const resolved = resolver(ref, refl, part);
138
+ const resolved = resolver(ref);
121
139
  if (resolved)
122
140
  return resolved;
123
141
  }
124
142
  }
125
143
  resolveLinks(comment, owner) {
126
144
  if (comment instanceof index_1.Comment) {
127
- (0, linkResolver_1.resolveLinks)(comment, owner, this.validation, this.owner.logger, (ref, part, refl) => this.resolveExternalLink(ref, part, refl));
145
+ (0, linkResolver_1.resolveLinks)(comment, owner, (ref) => this.resolveExternalLink(ref));
128
146
  }
129
147
  else {
130
- let warned = false;
131
- const warn = () => {
132
- if (!warned) {
133
- warned = true;
134
- this.application.logger.warn(`${owner.name}: Comment [[target]] style links are deprecated and will be removed in 0.24`);
135
- }
136
- };
137
- return (0, linkResolver_1.resolvePartLinks)(owner, comment, warn, this.validation, this.owner.logger, (ref, part, refl) => this.resolveExternalLink(ref, part, refl));
148
+ return (0, linkResolver_1.resolvePartLinks)(owner, comment, (ref) => this.resolveExternalLink(ref));
138
149
  }
139
150
  }
140
151
  /**
@@ -192,7 +203,7 @@ let Converter = Converter_1 = class Converter extends component_1.ChildableCompo
192
203
  }
193
204
  reflection.readme = comment.summary;
194
205
  }
195
- reflection.version = entryPoint.version;
206
+ reflection.packageVersion = entryPoint.version;
196
207
  context.finalizeDeclarationReflection(reflection);
197
208
  moduleContext = context.withScope(reflection);
198
209
  }
@@ -360,15 +371,15 @@ function getSymbolForModuleLike(context, node) {
360
371
  // "globals" file, but this is uncommon enough that I'm skipping it for now.
361
372
  const sourceFile = node.getSourceFile();
362
373
  const globalSymbols = context.checker
363
- .getSymbolsInScope(node, typescript_1.default.SymbolFlags.ModuleMember)
374
+ .getSymbolsInScope(node, ts.SymbolFlags.ModuleMember)
364
375
  .filter((s) => s.getDeclarations()?.some((d) => d.getSourceFile() === sourceFile));
365
376
  // Detect declaration files with declare module "foo" as their only export
366
377
  // and lift that up one level as the source file symbol
367
378
  if (globalSymbols.length === 1 &&
368
379
  globalSymbols[0]
369
380
  .getDeclarations()
370
- ?.every((declaration) => typescript_1.default.isModuleDeclaration(declaration) &&
371
- typescript_1.default.isStringLiteral(declaration.name))) {
381
+ ?.every((declaration) => ts.isModuleDeclaration(declaration) &&
382
+ ts.isStringLiteral(declaration.name))) {
372
383
  return globalSymbols[0];
373
384
  }
374
385
  }
@@ -383,15 +394,15 @@ function getExports(context, node, symbol) {
383
394
  // members of the export= class and as functions if a class is directly exported.
384
395
  result = [exportEq].concat(context.checker
385
396
  .getExportsOfModule(symbol)
386
- .filter((s) => !(0, enum_1.hasAnyFlag)(s.flags, typescript_1.default.SymbolFlags.Prototype | typescript_1.default.SymbolFlags.Value)));
397
+ .filter((s) => !(0, enum_1.hasAnyFlag)(s.flags, ts.SymbolFlags.Prototype | ts.SymbolFlags.Value)));
387
398
  }
388
399
  else if (symbol) {
389
400
  result = context.checker
390
401
  .getExportsOfModule(symbol)
391
- .filter((s) => !(0, enum_1.hasAllFlags)(s.flags, typescript_1.default.SymbolFlags.Prototype));
402
+ .filter((s) => !(0, enum_1.hasAllFlags)(s.flags, ts.SymbolFlags.Prototype));
392
403
  if (result.length === 0) {
393
- const globalDecl = node.statements.find((s) => typescript_1.default.isModuleDeclaration(s) &&
394
- s.flags & typescript_1.default.NodeFlags.GlobalAugmentation);
404
+ const globalDecl = node.statements.find((s) => ts.isModuleDeclaration(s) &&
405
+ s.flags & ts.NodeFlags.GlobalAugmentation);
395
406
  if (globalDecl) {
396
407
  const globalSymbol = context.getSymbolAtLocation(globalDecl);
397
408
  if (globalSymbol) {
@@ -406,7 +417,7 @@ function getExports(context, node, symbol) {
406
417
  // Global file with no inferred top level symbol, get all symbols declared in this file.
407
418
  const sourceFile = node.getSourceFile();
408
419
  result = context.checker
409
- .getSymbolsInScope(node, typescript_1.default.SymbolFlags.ModuleMember)
420
+ .getSymbolsInScope(node, ts.SymbolFlags.ModuleMember)
410
421
  .filter((s) => s
411
422
  .getDeclarations()
412
423
  ?.some((d) => d.getSourceFile() === sourceFile));
@@ -1,3 +1,3 @@
1
- import ts from "typescript";
1
+ import * as ts from "typescript";
2
2
  import type { Context } from "../context";
3
3
  export declare function convertIndexSignature(context: Context, symbol: ts.Symbol): void;
@@ -1,11 +1,34 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
27
  };
5
28
  Object.defineProperty(exports, "__esModule", { value: true });
6
29
  exports.convertIndexSignature = void 0;
7
30
  const assert_1 = __importDefault(require("assert"));
8
- const typescript_1 = __importDefault(require("typescript"));
31
+ const ts = __importStar(require("typescript"));
9
32
  const models_1 = require("../../models");
10
33
  const converter_events_1 = require("../converter-events");
11
34
  function convertIndexSignature(context, symbol) {
@@ -16,9 +39,9 @@ function convertIndexSignature(context, symbol) {
16
39
  // and number index signatures... { [x: string]: 1 | 2; [x: number]: 2 }
17
40
  // will be misrepresented.
18
41
  const indexDeclaration = indexSymbol.getDeclarations()?.[0];
19
- (0, assert_1.default)(indexDeclaration && typescript_1.default.isIndexSignatureDeclaration(indexDeclaration));
42
+ (0, assert_1.default)(indexDeclaration && ts.isIndexSignatureDeclaration(indexDeclaration));
20
43
  const param = indexDeclaration.parameters[0];
21
- (0, assert_1.default)(param && typescript_1.default.isParameter(param));
44
+ (0, assert_1.default)(param && ts.isParameter(param));
22
45
  const index = new models_1.SignatureReflection("__index", models_1.ReflectionKind.IndexSignature, context.scope);
23
46
  index.parameters = [
24
47
  new models_1.ParameterReflection(param.name.getText(), models_1.ReflectionKind.Parameter, index),
@@ -1,7 +1,7 @@
1
- import ts from "typescript";
1
+ import * as ts from "typescript";
2
2
  import { ParameterReflection, ReflectionKind, SignatureReflection, TypeParameterReflection } from "../../models";
3
3
  import type { Context } from "../context";
4
- export declare function createSignature(context: Context, kind: ReflectionKind.CallSignature | ReflectionKind.ConstructorSignature | ReflectionKind.GetSignature | ReflectionKind.SetSignature, signature: ts.Signature, declaration?: ts.SignatureDeclaration | ts.JSDocSignature): void;
4
+ export declare function createSignature(context: Context, kind: ReflectionKind.CallSignature | ReflectionKind.ConstructorSignature | ReflectionKind.GetSignature | ReflectionKind.SetSignature, signature: ts.Signature, symbol: ts.Symbol | undefined, declaration?: ts.SignatureDeclaration | ts.JSDocSignature): void;
5
5
  export declare function convertParameterNodes(context: Context, sigRef: SignatureReflection, parameters: readonly (ts.JSDocParameterTag | ts.ParameterDeclaration)[]): ParameterReflection[];
6
6
  export declare function convertTypeParameterNodes(context: Context, parameters: readonly ts.TypeParameterDeclaration[] | undefined): TypeParameterReflection[] | undefined;
7
7
  export declare function createTypeParamReflection(param: ts.TypeParameterDeclaration, context: Context): TypeParameterReflection;