@typespec/tspd 0.47.0-dev.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.
Files changed (47) hide show
  1. package/LICENSE +21 -0
  2. package/cmd/tspd.js +2 -0
  3. package/dist/src/cli.d.ts +2 -0
  4. package/dist/src/cli.d.ts.map +1 -0
  5. package/dist/src/cli.js +99 -0
  6. package/dist/src/cli.js.map +1 -0
  7. package/dist/src/ref-doc/api-docs.d.ts +4 -0
  8. package/dist/src/ref-doc/api-docs.d.ts.map +1 -0
  9. package/dist/src/ref-doc/api-docs.js +71 -0
  10. package/dist/src/ref-doc/api-docs.js.map +1 -0
  11. package/dist/src/ref-doc/emitters/docusaurus.d.ts +24 -0
  12. package/dist/src/ref-doc/emitters/docusaurus.d.ts.map +1 -0
  13. package/dist/src/ref-doc/emitters/docusaurus.js +232 -0
  14. package/dist/src/ref-doc/emitters/docusaurus.js.map +1 -0
  15. package/dist/src/ref-doc/emitters/markdown.d.ts +32 -0
  16. package/dist/src/ref-doc/emitters/markdown.d.ts.map +1 -0
  17. package/dist/src/ref-doc/emitters/markdown.js +229 -0
  18. package/dist/src/ref-doc/emitters/markdown.js.map +1 -0
  19. package/dist/src/ref-doc/experimental.d.ts +9 -0
  20. package/dist/src/ref-doc/experimental.d.ts.map +1 -0
  21. package/dist/src/ref-doc/experimental.js +63 -0
  22. package/dist/src/ref-doc/experimental.js.map +1 -0
  23. package/dist/src/ref-doc/extractor.d.ts +11 -0
  24. package/dist/src/ref-doc/extractor.d.ts.map +1 -0
  25. package/dist/src/ref-doc/extractor.js +497 -0
  26. package/dist/src/ref-doc/extractor.js.map +1 -0
  27. package/dist/src/ref-doc/index.d.ts +5 -0
  28. package/dist/src/ref-doc/index.d.ts.map +1 -0
  29. package/dist/src/ref-doc/index.js +5 -0
  30. package/dist/src/ref-doc/index.js.map +1 -0
  31. package/dist/src/ref-doc/lib.d.ts +63 -0
  32. package/dist/src/ref-doc/lib.d.ts.map +1 -0
  33. package/dist/src/ref-doc/lib.js +24 -0
  34. package/dist/src/ref-doc/lib.js.map +1 -0
  35. package/dist/src/ref-doc/types.d.ts +109 -0
  36. package/dist/src/ref-doc/types.d.ts.map +1 -0
  37. package/dist/src/ref-doc/types.js +2 -0
  38. package/dist/src/ref-doc/types.js.map +1 -0
  39. package/dist/src/ref-doc/utils/markdown.d.ts +27 -0
  40. package/dist/src/ref-doc/utils/markdown.d.ts.map +1 -0
  41. package/dist/src/ref-doc/utils/markdown.js +70 -0
  42. package/dist/src/ref-doc/utils/markdown.js.map +1 -0
  43. package/dist/src/ref-doc/utils/type-signature.d.ts +5 -0
  44. package/dist/src/ref-doc/utils/type-signature.d.ts.map +1 -0
  45. package/dist/src/ref-doc/utils/type-signature.js +136 -0
  46. package/dist/src/ref-doc/utils/type-signature.js.map +1 -0
  47. package/package.json +81 -0
@@ -0,0 +1,497 @@
1
+ import { compile, compilerAssert, createDiagnosticCollector, getDoc, getLocationContext, getSourceLocation, getTypeName, isDeclaredType, isTemplateDeclaration, joinPaths, navigateProgram, navigateTypesInNamespace, NodeHost, NoTarget, resolvePath, SyntaxKind, } from "@typespec/compiler";
2
+ import { readFile } from "fs/promises";
3
+ import { pathToFileURL } from "url";
4
+ import { reportDiagnostic } from "./lib.js";
5
+ import { getQualifier, getTypeSignature } from "./utils/type-signature.js";
6
+ export async function extractLibraryRefDocs(libraryPath) {
7
+ var _a, _b, _c;
8
+ const diagnostics = createDiagnosticCollector();
9
+ const pkgJson = await readPackageJson(libraryPath);
10
+ const refDoc = {
11
+ name: pkgJson.name,
12
+ description: pkgJson.description,
13
+ packageJson: pkgJson,
14
+ namespaces: [],
15
+ };
16
+ if (pkgJson.tspMain) {
17
+ const main = resolvePath(libraryPath, pkgJson.tspMain);
18
+ const program = await compile(NodeHost, main, {
19
+ parseOptions: { comments: true, docs: true },
20
+ });
21
+ refDoc.namespaces = diagnostics.pipe(extractRefDocs(program)).namespaces;
22
+ for (const diag of (_a = program.diagnostics) !== null && _a !== void 0 ? _a : []) {
23
+ diagnostics.add(diag);
24
+ }
25
+ }
26
+ if (pkgJson.main) {
27
+ const entrypoint = await import(pathToFileURL(resolvePath(libraryPath, pkgJson.main)).href);
28
+ const lib = entrypoint.$lib;
29
+ if ((_b = lib === null || lib === void 0 ? void 0 : lib.emitter) === null || _b === void 0 ? void 0 : _b.options) {
30
+ refDoc.emitter = {
31
+ options: extractEmitterOptionsRefDoc(lib.emitter.options),
32
+ };
33
+ }
34
+ // eslint-disable-next-line deprecation/deprecation
35
+ const linter = (_c = entrypoint.$linter) !== null && _c !== void 0 ? _c : lib === null || lib === void 0 ? void 0 : lib.linter;
36
+ if (lib && linter) {
37
+ refDoc.linter = extractLinterRefDoc(lib.name, linter);
38
+ }
39
+ }
40
+ return diagnostics.wrap(refDoc);
41
+ }
42
+ async function readPackageJson(libraryPath) {
43
+ const buffer = await readFile(joinPaths(libraryPath, "package.json"));
44
+ return JSON.parse(buffer.toString());
45
+ }
46
+ function resolveNamespaces(program, options) {
47
+ var _a;
48
+ const diagnostics = createDiagnosticCollector();
49
+ let namespaceTypes = [];
50
+ const { include, exclude } = (_a = options === null || options === void 0 ? void 0 : options.namespaces) !== null && _a !== void 0 ? _a : {};
51
+ if (include) {
52
+ namespaceTypes = include
53
+ .map((x) => diagnostics.pipe(program.resolveTypeReference(x)))
54
+ .filter((x) => x !== undefined);
55
+ }
56
+ navigateProgram(program, {
57
+ namespace(namespace) {
58
+ if (getLocationContext(program, namespace).type !== "project") {
59
+ return;
60
+ }
61
+ if (namespace.name === "Private") {
62
+ return;
63
+ }
64
+ namespaceTypes.push(namespace);
65
+ },
66
+ });
67
+ if (exclude !== undefined) {
68
+ namespaceTypes = namespaceTypes.filter((x) => {
69
+ return exclude.includes(getTypeName(x));
70
+ });
71
+ }
72
+ return diagnostics.wrap(namespaceTypes);
73
+ }
74
+ export function extractRefDocs(program, options = {}) {
75
+ const diagnostics = createDiagnosticCollector();
76
+ const namespaceTypes = diagnostics.pipe(resolveNamespaces(program, options));
77
+ const refDoc = {
78
+ namespaces: [],
79
+ };
80
+ for (const namespace of namespaceTypes) {
81
+ const namespaceDoc = {
82
+ id: getTypeName(namespace),
83
+ decorators: [],
84
+ operations: [],
85
+ interfaces: [],
86
+ models: [],
87
+ enums: [],
88
+ unions: [],
89
+ scalars: [],
90
+ };
91
+ refDoc.namespaces.push(namespaceDoc);
92
+ navigateTypesInNamespace(namespace, {
93
+ decorator(dec) {
94
+ namespaceDoc.decorators.push(extractDecoratorRefDoc(program, dec));
95
+ },
96
+ operation(operation) {
97
+ if (!isDeclaredType(operation)) {
98
+ return;
99
+ }
100
+ if (operation.interface === undefined) {
101
+ namespaceDoc.operations.push(extractOperationRefDoc(program, operation, undefined));
102
+ }
103
+ },
104
+ interface(iface) {
105
+ if (!isDeclaredType(iface)) {
106
+ return;
107
+ }
108
+ namespaceDoc.interfaces.push(extractInterfaceRefDocs(program, iface));
109
+ },
110
+ model(model) {
111
+ if (!isDeclaredType(model)) {
112
+ return;
113
+ }
114
+ if (model.name === "") {
115
+ return;
116
+ }
117
+ namespaceDoc.models.push(extractModelRefDocs(program, model));
118
+ },
119
+ enum(e) {
120
+ if (!isDeclaredType(e)) {
121
+ return;
122
+ }
123
+ namespaceDoc.enums.push(extractEnumRefDoc(program, e));
124
+ },
125
+ union(union) {
126
+ if (!isDeclaredType(union)) {
127
+ return;
128
+ }
129
+ if (union.name !== undefined) {
130
+ namespaceDoc.unions.push(extractUnionRefDocs(program, union));
131
+ }
132
+ },
133
+ scalar(scalar) {
134
+ namespaceDoc.scalars.push(extractScalarRefDocs(program, scalar));
135
+ },
136
+ }, { includeTemplateDeclaration: true, skipSubNamespaces: true });
137
+ }
138
+ sort(refDoc.namespaces);
139
+ for (const namespace of refDoc.namespaces) {
140
+ sort(namespace.decorators);
141
+ sort(namespace.enums);
142
+ sort(namespace.interfaces);
143
+ sort(namespace.models);
144
+ sort(namespace.operations);
145
+ sort(namespace.unions);
146
+ sort(namespace.scalars);
147
+ }
148
+ function sort(arr) {
149
+ arr.sort((a, b) => a.id.localeCompare(b.id, "en"));
150
+ }
151
+ return diagnostics.wrap(refDoc);
152
+ }
153
+ function extractTemplateParameterDocs(program, type) {
154
+ if (isTemplateDeclaration(type)) {
155
+ const templateParamsDocs = getTemplateParameterDocs(type);
156
+ return type.node.templateParameters.map((x) => {
157
+ var _a, _b;
158
+ const doc = templateParamsDocs.get(x.id.sv);
159
+ if (doc === undefined || doc === "") {
160
+ reportDiagnostic(program, {
161
+ code: "documentation-missing",
162
+ messageId: "templateParam",
163
+ format: { name: (_a = type.name) !== null && _a !== void 0 ? _a : "", param: x.id.sv },
164
+ target: NoTarget,
165
+ });
166
+ }
167
+ return {
168
+ name: x.id.sv,
169
+ doc: (_b = templateParamsDocs.get(x.id.sv)) !== null && _b !== void 0 ? _b : "",
170
+ };
171
+ });
172
+ }
173
+ else {
174
+ return undefined;
175
+ }
176
+ }
177
+ function extractInterfaceRefDocs(program, iface) {
178
+ var _a;
179
+ const doc = extractMainDoc(program, iface);
180
+ if (doc === undefined || doc === "") {
181
+ reportDiagnostic(program, {
182
+ code: "documentation-missing",
183
+ messageId: "interface",
184
+ format: { name: (_a = iface.name) !== null && _a !== void 0 ? _a : "" },
185
+ target: NoTarget,
186
+ });
187
+ }
188
+ return {
189
+ id: getNamedTypeId(iface),
190
+ name: iface.name,
191
+ signature: getTypeSignature(iface),
192
+ type: iface,
193
+ templateParameters: extractTemplateParameterDocs(program, iface),
194
+ interfaceOperations: [...iface.operations.values()].map((x) => extractOperationRefDoc(program, x, iface.name)),
195
+ doc: doc,
196
+ examples: extractExamples(iface),
197
+ };
198
+ }
199
+ function extractOperationRefDoc(program, operation, interfaceName) {
200
+ var _a, _b;
201
+ const doc = extractMainDoc(program, operation);
202
+ if (doc === undefined || doc === "") {
203
+ if (operation.interface !== undefined) {
204
+ reportDiagnostic(program, {
205
+ code: "documentation-missing",
206
+ messageId: "interfaceOperation",
207
+ format: { name: (_a = `${operation.interface.name}.${operation.name}`) !== null && _a !== void 0 ? _a : "" },
208
+ target: NoTarget,
209
+ });
210
+ }
211
+ else {
212
+ reportDiagnostic(program, {
213
+ code: "documentation-missing",
214
+ messageId: "operation",
215
+ format: { name: (_b = operation.name) !== null && _b !== void 0 ? _b : "" },
216
+ target: NoTarget,
217
+ });
218
+ }
219
+ }
220
+ return {
221
+ id: getNamedTypeId(operation),
222
+ name: interfaceName ? `${interfaceName}.${operation.name}` : operation.name,
223
+ signature: getTypeSignature(operation),
224
+ type: operation,
225
+ templateParameters: extractTemplateParameterDocs(program, operation),
226
+ doc: doc,
227
+ examples: extractExamples(operation),
228
+ };
229
+ }
230
+ function extractDecoratorRefDoc(program, decorator) {
231
+ var _a;
232
+ const paramDoc = getParmeterDocs(decorator);
233
+ const parameters = decorator.parameters.map((x) => {
234
+ var _a;
235
+ const docVal = paramDoc.get(x.name);
236
+ if (docVal === undefined || docVal === "") {
237
+ reportDiagnostic(program, {
238
+ code: "documentation-missing",
239
+ messageId: "decoratorParam",
240
+ format: { name: decorator.name, param: x.name },
241
+ target: NoTarget,
242
+ });
243
+ }
244
+ return {
245
+ type: x,
246
+ doc: (_a = paramDoc.get(x.name)) !== null && _a !== void 0 ? _a : "",
247
+ name: x.name,
248
+ optional: x.optional,
249
+ rest: x.rest,
250
+ };
251
+ });
252
+ const examples = extractExamples(decorator);
253
+ const mainDoc = extractMainDoc(program, decorator);
254
+ if (mainDoc === undefined || mainDoc === "") {
255
+ reportDiagnostic(program, {
256
+ code: "documentation-missing",
257
+ messageId: "decorator",
258
+ format: { name: decorator.name },
259
+ target: NoTarget,
260
+ });
261
+ }
262
+ return {
263
+ id: getNamedTypeId(decorator),
264
+ name: decorator.name,
265
+ type: decorator,
266
+ signature: getTypeSignature(decorator),
267
+ doc: mainDoc,
268
+ parameters,
269
+ examples,
270
+ otherTags: [],
271
+ target: {
272
+ type: decorator.target,
273
+ doc: (_a = paramDoc.get(decorator.target.name)) !== null && _a !== void 0 ? _a : "",
274
+ name: decorator.target.name,
275
+ optional: decorator.target.optional,
276
+ rest: decorator.target.rest,
277
+ },
278
+ };
279
+ }
280
+ function extractModelRefDocs(program, type) {
281
+ var _a;
282
+ const doc = extractMainDoc(program, type);
283
+ if (doc === undefined || doc === "") {
284
+ reportDiagnostic(program, {
285
+ code: "documentation-missing",
286
+ messageId: "model",
287
+ format: { name: (_a = type.name) !== null && _a !== void 0 ? _a : "" },
288
+ target: NoTarget,
289
+ });
290
+ }
291
+ return {
292
+ id: getNamedTypeId(type),
293
+ name: type.name,
294
+ signature: getTypeSignature(type),
295
+ type,
296
+ templateParameters: extractTemplateParameterDocs(program, type),
297
+ doc: doc,
298
+ examples: extractExamples(type),
299
+ };
300
+ }
301
+ function extractEnumRefDoc(program, type) {
302
+ var _a;
303
+ const doc = extractMainDoc(program, type);
304
+ if (doc === undefined || doc === "") {
305
+ reportDiagnostic(program, {
306
+ code: "documentation-missing",
307
+ messageId: "enum",
308
+ format: { name: (_a = type.name) !== null && _a !== void 0 ? _a : "" },
309
+ target: NoTarget,
310
+ });
311
+ }
312
+ return {
313
+ id: getNamedTypeId(type),
314
+ name: type.name,
315
+ signature: getTypeSignature(type),
316
+ type,
317
+ doc: doc,
318
+ examples: extractExamples(type),
319
+ };
320
+ }
321
+ function extractUnionRefDocs(program, type) {
322
+ var _a;
323
+ const doc = extractMainDoc(program, type);
324
+ if (doc === undefined || doc === "") {
325
+ reportDiagnostic(program, {
326
+ code: "documentation-missing",
327
+ messageId: "union",
328
+ format: { name: (_a = type.name) !== null && _a !== void 0 ? _a : "" },
329
+ target: NoTarget,
330
+ });
331
+ }
332
+ return {
333
+ id: getNamedTypeId(type),
334
+ name: type.name,
335
+ signature: getTypeSignature(type),
336
+ type,
337
+ templateParameters: extractTemplateParameterDocs(program, type),
338
+ doc: doc,
339
+ examples: extractExamples(type),
340
+ };
341
+ }
342
+ function extractScalarRefDocs(program, type) {
343
+ var _a;
344
+ const doc = extractMainDoc(program, type);
345
+ if (doc === undefined || doc === "") {
346
+ reportDiagnostic(program, {
347
+ code: "documentation-missing",
348
+ messageId: "scalar",
349
+ format: { name: (_a = type.name) !== null && _a !== void 0 ? _a : "" },
350
+ target: NoTarget,
351
+ });
352
+ }
353
+ return {
354
+ id: getNamedTypeId(type),
355
+ name: type.name,
356
+ signature: getTypeSignature(type),
357
+ type,
358
+ doc: doc,
359
+ examples: extractExamples(type),
360
+ };
361
+ }
362
+ function extractMainDoc(program, type) {
363
+ var _a, _b, _c;
364
+ let mainDoc = "";
365
+ for (const doc of (_b = (_a = type.node) === null || _a === void 0 ? void 0 : _a.docs) !== null && _b !== void 0 ? _b : []) {
366
+ for (const dContent of doc.content) {
367
+ mainDoc += dContent.text + "\n";
368
+ }
369
+ }
370
+ return mainDoc !== "" ? mainDoc : (_c = getDoc(program, type)) !== null && _c !== void 0 ? _c : "";
371
+ }
372
+ function extractExamples(type) {
373
+ var _a, _b;
374
+ const examples = [];
375
+ for (const doc of (_b = (_a = type.node) === null || _a === void 0 ? void 0 : _a.docs) !== null && _b !== void 0 ? _b : []) {
376
+ for (const dTag of doc.tags) {
377
+ if (dTag.kind === SyntaxKind.DocUnknownTag) {
378
+ if (dTag.tagName.sv === "example") {
379
+ examples.push(extractExample(dTag));
380
+ }
381
+ }
382
+ }
383
+ }
384
+ return examples;
385
+ }
386
+ function getNamedTypeId(type) {
387
+ var _a;
388
+ switch (type.kind) {
389
+ case "Decorator":
390
+ return getDecoratorId(type);
391
+ case "Operation":
392
+ return getQualifier((_a = type.interface) !== null && _a !== void 0 ? _a : type.namespace) + type.name;
393
+ default:
394
+ return "namespace" in type ? getQualifier(type.namespace) + type.name : type.name;
395
+ }
396
+ }
397
+ function getDecoratorId(decorator) {
398
+ return "@" + getQualifier(decorator.namespace) + decorator.name.slice(1);
399
+ }
400
+ function checkIfTagHasDocOnSameLine(tag) {
401
+ var _a, _b;
402
+ const start = (_a = tag.content[0]) === null || _a === void 0 ? void 0 : _a.pos;
403
+ const end = (_b = tag.content[0]) === null || _b === void 0 ? void 0 : _b.end;
404
+ const file = getSourceLocation(tag.content[0]).file;
405
+ let hasFirstLine = false;
406
+ for (let i = start; i < end; i++) {
407
+ const ch = file.text[i];
408
+ if (ch === "\n") {
409
+ break;
410
+ }
411
+ // Todo reuse compiler whitespace logic or have a way to get this info from the parser.
412
+ if (ch !== " ") {
413
+ hasFirstLine = true;
414
+ }
415
+ }
416
+ return hasFirstLine;
417
+ }
418
+ function extractExample(tag) {
419
+ const content = getDocContent(tag.content);
420
+ const hasInfoOnFirstLine = checkIfTagHasDocOnSameLine(tag);
421
+ if (hasInfoOnFirstLine) {
422
+ const [title, ...contents] = content.split("\n");
423
+ return { title, content: contents.join("\n") };
424
+ }
425
+ else {
426
+ return { content };
427
+ }
428
+ }
429
+ function getParmeterDocs(type) {
430
+ var _a, _b;
431
+ const map = new Map();
432
+ for (const d of (_b = (_a = type === null || type === void 0 ? void 0 : type.node) === null || _a === void 0 ? void 0 : _a.docs) !== null && _b !== void 0 ? _b : []) {
433
+ for (const tag of d.tags) {
434
+ if (tag.kind === SyntaxKind.DocParamTag) {
435
+ map.set(tag.paramName.sv, getDocContent(tag.content));
436
+ }
437
+ }
438
+ }
439
+ return map;
440
+ }
441
+ function getTemplateParameterDocs(type) {
442
+ var _a, _b;
443
+ const map = new Map();
444
+ for (const d of (_b = (_a = type === null || type === void 0 ? void 0 : type.node) === null || _a === void 0 ? void 0 : _a.docs) !== null && _b !== void 0 ? _b : []) {
445
+ for (const tag of d.tags) {
446
+ if (tag.kind === SyntaxKind.DocTemplateTag) {
447
+ map.set(tag.paramName.sv, getDocContent(tag.content));
448
+ }
449
+ }
450
+ }
451
+ return map;
452
+ }
453
+ function getDocContent(content) {
454
+ const docs = [];
455
+ for (const node of content) {
456
+ compilerAssert(node.kind === SyntaxKind.DocText, "No other doc content node kinds exist yet. Update this code appropriately when more are added.");
457
+ docs.push(node.text);
458
+ }
459
+ return docs.join("");
460
+ }
461
+ function extractEmitterOptionsRefDoc(options) {
462
+ return Object.entries(options.properties).map(([name, value]) => {
463
+ var _a;
464
+ return {
465
+ name,
466
+ type: value.enum
467
+ ? value.enum.map((x) => (typeof x === "string" ? `"${x}"` : x)).join(" | ")
468
+ : value.type,
469
+ doc: (_a = value.description) !== null && _a !== void 0 ? _a : "",
470
+ };
471
+ });
472
+ }
473
+ function extractLinterRefDoc(libName, linter) {
474
+ return {
475
+ ruleSets: linter.ruleSets && extractLinterRuleSetsRefDoc(libName, linter.ruleSets),
476
+ rules: linter.rules.map((rule) => extractLinterRuleRefDoc(libName, rule)),
477
+ };
478
+ }
479
+ function extractLinterRuleSetsRefDoc(libName, ruleSets) {
480
+ return Object.entries(ruleSets).map(([name, ruleSet]) => {
481
+ const fullName = `${libName}/${name}`;
482
+ return {
483
+ id: fullName,
484
+ name: fullName,
485
+ ruleSet,
486
+ };
487
+ });
488
+ }
489
+ function extractLinterRuleRefDoc(libName, rule) {
490
+ const fullName = `${libName}/${rule.name}`;
491
+ return {
492
+ id: fullName,
493
+ name: fullName,
494
+ rule,
495
+ };
496
+ }
497
+ //# sourceMappingURL=extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../../src/ref-doc/extractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from "./api-docs.js";
2
+ export * from "./experimental.js";
3
+ export * from "./extractor.js";
4
+ export * from "./lib.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ref-doc/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "./api-docs.js";
2
+ export * from "./experimental.js";
3
+ export * from "./extractor.js";
4
+ export * from "./lib.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ref-doc/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC"}
@@ -0,0 +1,63 @@
1
+ export declare const libDef: {
2
+ readonly name: "@typespec/tspd";
3
+ readonly diagnostics: {
4
+ readonly "documentation-missing": {
5
+ readonly severity: "warning";
6
+ readonly messages: {
7
+ readonly decorator: import("@typespec/compiler").CallableMessage<["name"]>;
8
+ readonly decoratorParam: import("@typespec/compiler").CallableMessage<["name", "param"]>;
9
+ readonly templateParam: import("@typespec/compiler").CallableMessage<["name", "param"]>;
10
+ readonly model: import("@typespec/compiler").CallableMessage<["name"]>;
11
+ readonly union: import("@typespec/compiler").CallableMessage<["name"]>;
12
+ readonly enum: import("@typespec/compiler").CallableMessage<["name"]>;
13
+ readonly interface: import("@typespec/compiler").CallableMessage<["name"]>;
14
+ readonly interfaceOperation: import("@typespec/compiler").CallableMessage<["name"]>;
15
+ readonly operation: import("@typespec/compiler").CallableMessage<["name"]>;
16
+ readonly scalar: import("@typespec/compiler").CallableMessage<["name"]>;
17
+ };
18
+ };
19
+ };
20
+ };
21
+ export declare const $lib: import("@typespec/compiler").TypeSpecLibrary<{
22
+ "documentation-missing": {
23
+ readonly decorator: import("@typespec/compiler").CallableMessage<["name"]>;
24
+ readonly decoratorParam: import("@typespec/compiler").CallableMessage<["name", "param"]>;
25
+ readonly templateParam: import("@typespec/compiler").CallableMessage<["name", "param"]>;
26
+ readonly model: import("@typespec/compiler").CallableMessage<["name"]>;
27
+ readonly union: import("@typespec/compiler").CallableMessage<["name"]>;
28
+ readonly enum: import("@typespec/compiler").CallableMessage<["name"]>;
29
+ readonly interface: import("@typespec/compiler").CallableMessage<["name"]>;
30
+ readonly interfaceOperation: import("@typespec/compiler").CallableMessage<["name"]>;
31
+ readonly operation: import("@typespec/compiler").CallableMessage<["name"]>;
32
+ readonly scalar: import("@typespec/compiler").CallableMessage<["name"]>;
33
+ };
34
+ }, Record<string, any>, never>;
35
+ export declare const reportDiagnostic: <C extends "documentation-missing", M extends keyof {
36
+ "documentation-missing": {
37
+ readonly decorator: import("@typespec/compiler").CallableMessage<["name"]>;
38
+ readonly decoratorParam: import("@typespec/compiler").CallableMessage<["name", "param"]>;
39
+ readonly templateParam: import("@typespec/compiler").CallableMessage<["name", "param"]>;
40
+ readonly model: import("@typespec/compiler").CallableMessage<["name"]>;
41
+ readonly union: import("@typespec/compiler").CallableMessage<["name"]>;
42
+ readonly enum: import("@typespec/compiler").CallableMessage<["name"]>;
43
+ readonly interface: import("@typespec/compiler").CallableMessage<["name"]>;
44
+ readonly interfaceOperation: import("@typespec/compiler").CallableMessage<["name"]>;
45
+ readonly operation: import("@typespec/compiler").CallableMessage<["name"]>;
46
+ readonly scalar: import("@typespec/compiler").CallableMessage<["name"]>;
47
+ };
48
+ }[C]>(program: import("@typespec/compiler").Program, diag: import("@typespec/compiler").DiagnosticReport<{
49
+ "documentation-missing": {
50
+ readonly decorator: import("@typespec/compiler").CallableMessage<["name"]>;
51
+ readonly decoratorParam: import("@typespec/compiler").CallableMessage<["name", "param"]>;
52
+ readonly templateParam: import("@typespec/compiler").CallableMessage<["name", "param"]>;
53
+ readonly model: import("@typespec/compiler").CallableMessage<["name"]>;
54
+ readonly union: import("@typespec/compiler").CallableMessage<["name"]>;
55
+ readonly enum: import("@typespec/compiler").CallableMessage<["name"]>;
56
+ readonly interface: import("@typespec/compiler").CallableMessage<["name"]>;
57
+ readonly interfaceOperation: import("@typespec/compiler").CallableMessage<["name"]>;
58
+ readonly operation: import("@typespec/compiler").CallableMessage<["name"]>;
59
+ readonly scalar: import("@typespec/compiler").CallableMessage<["name"]>;
60
+ };
61
+ }, C, M>) => void, createStateSymbol: (name: string) => symbol;
62
+ export type RefDocLibrary = typeof $lib;
63
+ //# sourceMappingURL=lib.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../../src/ref-doc/lib.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;CAmBT,CAAC;AAEX,eAAO,MAAM,IAAI;;;;;;;;;;;;;8BAAgC,CAAC;AAClD,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAE,iBAAiB,0BAAS,CAAC;AAE5D,MAAM,MAAM,aAAa,GAAG,OAAO,IAAI,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { createTypeSpecLibrary, paramMessage } from "@typespec/compiler";
2
+ export const libDef = {
3
+ name: "@typespec/tspd",
4
+ diagnostics: {
5
+ "documentation-missing": {
6
+ severity: "warning",
7
+ messages: {
8
+ decorator: paramMessage `Missing documentation for decorator '${"name"}'.`,
9
+ decoratorParam: paramMessage `Missing documentation for decorator parameter '${"name"}.${"param"}'.`,
10
+ templateParam: paramMessage `Missing documentation for template parameter '${"name"}.${"param"}'.`,
11
+ model: paramMessage `Missing documentation for model '${"name"}'.`,
12
+ union: paramMessage `Missing documentation for union '${"name"}'.`,
13
+ enum: paramMessage `Missing documentation for enum '${"name"}'.`,
14
+ interface: paramMessage `Missing documentation for interface '${"name"}'.`,
15
+ interfaceOperation: paramMessage `Missing documentation for interface operation '${"name"}'.`,
16
+ operation: paramMessage `Missing documentation for operation '${"name"}'.`,
17
+ scalar: paramMessage `Missing documentation for scalar '${"name"}'.`,
18
+ },
19
+ },
20
+ },
21
+ };
22
+ export const $lib = createTypeSpecLibrary(libDef);
23
+ export const { reportDiagnostic, createStateSymbol } = $lib;
24
+ //# sourceMappingURL=lib.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../../src/ref-doc/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEzE,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE;QACX,uBAAuB,EAAE;YACvB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,SAAS,EAAE,YAAY,CAAA,wCAAwC,MAAM,IAAI;gBACzE,cAAc,EAAE,YAAY,CAAA,kDAAkD,MAAM,IAAI,OAAO,IAAI;gBACnG,aAAa,EAAE,YAAY,CAAA,iDAAiD,MAAM,IAAI,OAAO,IAAI;gBACjG,KAAK,EAAE,YAAY,CAAA,oCAAoC,MAAM,IAAI;gBACjE,KAAK,EAAE,YAAY,CAAA,oCAAoC,MAAM,IAAI;gBACjE,IAAI,EAAE,YAAY,CAAA,mCAAmC,MAAM,IAAI;gBAC/D,SAAS,EAAE,YAAY,CAAA,wCAAwC,MAAM,IAAI;gBACzE,kBAAkB,EAAE,YAAY,CAAA,kDAAkD,MAAM,IAAI;gBAC5F,SAAS,EAAE,YAAY,CAAA,wCAAwC,MAAM,IAAI;gBACzE,MAAM,EAAE,YAAY,CAAA,qCAAqC,MAAM,IAAI;aACpE;SACF;KACF;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC"}