@azerothjs/language-service 0.5.0-beta.1 → 0.6.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 (84) hide show
  1. package/dist/docgen.d.ts +24 -0
  2. package/dist/docgen.d.ts.map +1 -0
  3. package/dist/docgen.js +195 -0
  4. package/dist/docgen.js.map +1 -0
  5. package/dist/index.d.ts +4 -2
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +5 -2
  8. package/dist/index.js.map +1 -1
  9. package/dist/language-data.d.ts +1 -1
  10. package/dist/language-data.d.ts.map +1 -1
  11. package/dist/language-data.js +39 -29
  12. package/dist/language-data.js.map +1 -1
  13. package/dist/markup-model.d.ts.map +1 -1
  14. package/dist/markup-model.js +12 -0
  15. package/dist/markup-model.js.map +1 -1
  16. package/dist/perf.d.ts +18 -0
  17. package/dist/perf.d.ts.map +1 -0
  18. package/dist/perf.js +32 -0
  19. package/dist/perf.js.map +1 -0
  20. package/dist/protocol.d.ts +103 -2
  21. package/dist/protocol.d.ts.map +1 -1
  22. package/dist/protocol.js +21 -2
  23. package/dist/protocol.js.map +1 -1
  24. package/dist/providers/call-hierarchy.d.ts +9 -0
  25. package/dist/providers/call-hierarchy.d.ts.map +1 -0
  26. package/dist/providers/call-hierarchy.js +184 -0
  27. package/dist/providers/call-hierarchy.js.map +1 -0
  28. package/dist/providers/code-lens.d.ts +11 -0
  29. package/dist/providers/code-lens.d.ts.map +1 -0
  30. package/dist/providers/code-lens.js +70 -0
  31. package/dist/providers/code-lens.js.map +1 -0
  32. package/dist/providers/color.d.ts +11 -0
  33. package/dist/providers/color.d.ts.map +1 -0
  34. package/dist/providers/color.js +58 -0
  35. package/dist/providers/color.js.map +1 -0
  36. package/dist/providers/completion.d.ts +19 -1
  37. package/dist/providers/completion.d.ts.map +1 -1
  38. package/dist/providers/completion.js +136 -7
  39. package/dist/providers/completion.js.map +1 -1
  40. package/dist/providers/css-service.d.ts +35 -3
  41. package/dist/providers/css-service.d.ts.map +1 -1
  42. package/dist/providers/css-service.js +78 -6
  43. package/dist/providers/css-service.js.map +1 -1
  44. package/dist/providers/diagnostics.d.ts.map +1 -1
  45. package/dist/providers/diagnostics.js +35 -3
  46. package/dist/providers/diagnostics.js.map +1 -1
  47. package/dist/providers/document-links.d.ts +10 -0
  48. package/dist/providers/document-links.d.ts.map +1 -0
  49. package/dist/providers/document-links.js +94 -0
  50. package/dist/providers/document-links.js.map +1 -0
  51. package/dist/providers/hover.d.ts.map +1 -1
  52. package/dist/providers/hover.js +117 -6
  53. package/dist/providers/hover.js.map +1 -1
  54. package/dist/providers/html-service.d.ts.map +1 -1
  55. package/dist/providers/html-service.js +6 -2
  56. package/dist/providers/html-service.js.map +1 -1
  57. package/dist/providers/inlay-hints.js +1 -1
  58. package/dist/providers/inlay-hints.js.map +1 -1
  59. package/dist/providers/navigation.d.ts +7 -1
  60. package/dist/providers/navigation.d.ts.map +1 -1
  61. package/dist/providers/navigation.js +20 -0
  62. package/dist/providers/navigation.js.map +1 -1
  63. package/dist/providers/semantic-tokens.d.ts +6 -1
  64. package/dist/providers/semantic-tokens.d.ts.map +1 -1
  65. package/dist/providers/semantic-tokens.js +114 -11
  66. package/dist/providers/semantic-tokens.js.map +1 -1
  67. package/dist/providers/structure.d.ts +1 -1
  68. package/dist/providers/structure.d.ts.map +1 -1
  69. package/dist/providers/structure.js +4 -2
  70. package/dist/providers/structure.js.map +1 -1
  71. package/dist/providers/symbols.d.ts.map +1 -1
  72. package/dist/providers/symbols.js +32 -2
  73. package/dist/providers/symbols.js.map +1 -1
  74. package/dist/service.d.ts +44 -1
  75. package/dist/service.d.ts.map +1 -1
  76. package/dist/service.js +94 -1
  77. package/dist/service.js.map +1 -1
  78. package/dist/ts-project.d.ts.map +1 -1
  79. package/dist/ts-project.js +25 -12
  80. package/dist/ts-project.js.map +1 -1
  81. package/dist/virtual-code.d.ts.map +1 -1
  82. package/dist/virtual-code.js +32 -9
  83. package/dist/virtual-code.js.map +1 -1
  84. package/package.json +2 -2
@@ -0,0 +1,24 @@
1
+ import { AzerothLanguageService } from './service.ts';
2
+ /** One row of the rendered **Props** table. */
3
+ export interface PropDoc {
4
+ name: string;
5
+ type: string;
6
+ optional: boolean;
7
+ /** First-paragraph JSDoc summary for the prop, or '' when undocumented. */
8
+ summary: string;
9
+ }
10
+ /** The extracted shape a `.azeroth` component exposes, before rendering. */
11
+ export interface ComponentDoc {
12
+ name: string;
13
+ /** The component's own JSDoc/doc comment, or '' when undocumented. */
14
+ summary: string;
15
+ props: PropDoc[];
16
+ /** False when the component declares no props parameter at all. */
17
+ hasProps: boolean;
18
+ }
19
+ /**
20
+ * Renders a markdown API reference for the component exported by `uri`. Returns
21
+ * a best-effort document (at minimum a heading) and never throws.
22
+ */
23
+ export declare function generateComponentDocs(service: AzerothLanguageService, uri: string): string;
24
+ //# sourceMappingURL=docgen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docgen.d.ts","sourceRoot":"","sources":["../src/docgen.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAItD,+CAA+C;AAC/C,MAAM,WAAW,OAAO;IAEpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,4EAA4E;AAC5E,MAAM,WAAW,YAAY;IAEzB,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,mEAAmE;IACnE,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAa1F"}
package/dist/docgen.js ADDED
@@ -0,0 +1,195 @@
1
+ // Documentation extraction (Phase 5 seed). Renders a GitHub-flavoured markdown
2
+ // API reference for the component a `.azeroth` file exports, read from the file's
3
+ // REAL TypeScript types: the same engine hover/symbols query. We resolve the
4
+ // exported component symbol in the file's virtual module, take the first
5
+ // parameter of its call signature (the props object), and enumerate that type's
6
+ // properties - so the table's names, types, optionality, and per-prop summaries
7
+ // are whatever the compiler actually sees, not a re-parse of the source.
8
+ //
9
+ // Every step is best-effort: a missing program, an un-typed component, or a
10
+ // props parameter that isn't an object simply yields a thinner doc. Nothing here
11
+ // throws - a documentation pass over a half-typed file must degrade, not crash.
12
+ import ts from 'typescript';
13
+ import { toVirtualFile } from "./ts-project.js";
14
+ import { uriToPath } from "./uri.js";
15
+ /**
16
+ * Renders a markdown API reference for the component exported by `uri`. Returns
17
+ * a best-effort document (at minimum a heading) and never throws.
18
+ */
19
+ export function generateComponentDocs(service, uri) {
20
+ let doc;
21
+ try {
22
+ doc = extractComponentDoc(service, uri);
23
+ }
24
+ catch {
25
+ // A documentation pass must never break the caller; fall back below.
26
+ doc = null;
27
+ }
28
+ return render(doc ?? { name: fallbackName(uri), summary: '', props: [], hasProps: false });
29
+ }
30
+ /**
31
+ * Reaches the TypeScript program behind the service and extracts the exported
32
+ * component's doc shape, or null when the file/program can't be resolved.
33
+ */
34
+ function extractComponentDoc(service, uri) {
35
+ const program = service.getProgram();
36
+ if (!program) {
37
+ return null;
38
+ }
39
+ const virtualFile = toVirtualFile(uriToPath(uri));
40
+ const sourceFile = findSourceFile(program, virtualFile);
41
+ if (!sourceFile) {
42
+ return null;
43
+ }
44
+ const checker = program.getTypeChecker();
45
+ const moduleSymbol = checker.getSymbolAtLocation(sourceFile);
46
+ if (!moduleSymbol) {
47
+ return null;
48
+ }
49
+ const component = resolveComponentSymbol(checker, moduleSymbol);
50
+ if (!component) {
51
+ return null;
52
+ }
53
+ const name = component.exportName ?? component.symbol.getName();
54
+ const summary = ts.displayPartsToString(component.symbol.getDocumentationComment(checker));
55
+ const propsType = componentPropsType(checker, component.symbol);
56
+ if (propsType === null) {
57
+ return { name, summary, props: [], hasProps: false };
58
+ }
59
+ return { name, summary, props: propRows(checker, propsType), hasProps: true };
60
+ }
61
+ /**
62
+ * Picks the component to document from a module's exports: the default export
63
+ * first (the convention for `.azeroth` components), then the first
64
+ * PascalCase-named function/variable export. Aliases are followed to the real
65
+ * declaration so its type and JSDoc resolve.
66
+ */
67
+ function resolveComponentSymbol(checker, moduleSymbol) {
68
+ const exports = checker.getExportsOfModule(moduleSymbol);
69
+ const defaultExport = exports.find(symbol => symbol.getName() === 'default');
70
+ if (defaultExport) {
71
+ const resolved = unalias(checker, defaultExport);
72
+ return { symbol: resolved, exportName: declaredName(resolved) ?? 'default' };
73
+ }
74
+ for (const symbol of exports) {
75
+ const resolved = unalias(checker, symbol);
76
+ if (/^[A-Z]/.test(symbol.getName()) && isCallable(checker, resolved)) {
77
+ return { symbol: resolved, exportName: symbol.getName() };
78
+ }
79
+ }
80
+ return null;
81
+ }
82
+ /**
83
+ * The author-given name of a default-exported component. The export key is
84
+ * `default`, so the readable heading comes from the declaration's own
85
+ * identifier (`export default function Greeting` -> `Greeting`); an anonymous
86
+ * default export has none.
87
+ */
88
+ function declaredName(symbol) {
89
+ const named = symbol.getName();
90
+ if (named && named !== 'default') {
91
+ return named;
92
+ }
93
+ for (const declaration of symbol.declarations ?? []) {
94
+ const identifier = declaration.name;
95
+ if (identifier && ts.isIdentifier(identifier)) {
96
+ return identifier.text;
97
+ }
98
+ }
99
+ return undefined;
100
+ }
101
+ /** Resolves an export alias to the symbol it points at, leaving others as-is. */
102
+ function unalias(checker, symbol) {
103
+ return symbol.flags & ts.SymbolFlags.Alias ? checker.getAliasedSymbol(symbol) : symbol;
104
+ }
105
+ /** True when the symbol's type has at least one call signature. */
106
+ function isCallable(checker, symbol) {
107
+ const type = symbolType(checker, symbol);
108
+ return type !== null && type.getCallSignatures().length > 0;
109
+ }
110
+ /**
111
+ * The component's props type - the first parameter of its call signature - or
112
+ * null when the component is parameterless (a no-props component) or isn't a
113
+ * function at all.
114
+ */
115
+ function componentPropsType(checker, symbol) {
116
+ const type = symbolType(checker, symbol);
117
+ if (type === null) {
118
+ return null;
119
+ }
120
+ const signature = type.getCallSignatures()[0];
121
+ if (!signature) {
122
+ return null;
123
+ }
124
+ const parameter = signature.getParameters()[0];
125
+ if (!parameter) {
126
+ return null;
127
+ }
128
+ return checker.getTypeOfSymbolAtLocation(parameter, declarationOf(parameter));
129
+ }
130
+ /** One table row per apparent property of the props type. */
131
+ function propRows(checker, propsType) {
132
+ return checker.getApparentType(propsType).getProperties().map(member => {
133
+ const declaration = declarationOf(member);
134
+ const memberType = checker.getTypeOfSymbolAtLocation(member, declaration);
135
+ return {
136
+ name: member.getName(),
137
+ type: checker.typeToString(memberType),
138
+ optional: (member.getFlags() & ts.SymbolFlags.Optional) !== 0,
139
+ summary: ts.displayPartsToString(member.getDocumentationComment(checker))
140
+ };
141
+ });
142
+ }
143
+ /** The type of a symbol at its declaration, or null when it has none. */
144
+ function symbolType(checker, symbol) {
145
+ const declaration = symbol.valueDeclaration ?? symbol.declarations?.[0];
146
+ return declaration ? checker.getTypeOfSymbolAtLocation(symbol, declaration) : null;
147
+ }
148
+ /**
149
+ * A declaration node to anchor a `getTypeOfSymbolAtLocation` query. The checker
150
+ * tolerates a best-effort node for synthetic members; the source file is a safe
151
+ * fallback when a symbol carries no declaration of its own.
152
+ */
153
+ function declarationOf(symbol) {
154
+ return symbol.valueDeclaration ?? symbol.declarations?.[0] ?? undefined;
155
+ }
156
+ /** Locates the virtual source file by name, tolerant of path normalization. */
157
+ function findSourceFile(program, virtualFile) {
158
+ const direct = program.getSourceFile(virtualFile);
159
+ if (direct) {
160
+ return direct;
161
+ }
162
+ const target = virtualFile.replace(/\\/g, '/');
163
+ return program.getSourceFiles().find(file => file.fileName.replace(/\\/g, '/') === target);
164
+ }
165
+ /** A heading name derived from the file when no component can be resolved. */
166
+ function fallbackName(uri) {
167
+ const base = uriToPath(uri).replace(/\\/g, '/').split('/').pop() ?? 'Component';
168
+ return base.replace(/\.azeroth$/, '') || 'Component';
169
+ }
170
+ /** Renders the extracted doc as GitHub-flavoured markdown. */
171
+ function render(doc) {
172
+ const lines = [`# ${doc.name}`];
173
+ if (doc.summary) {
174
+ lines.push('', doc.summary);
175
+ }
176
+ lines.push('', '## Props');
177
+ if (!doc.hasProps) {
178
+ lines.push('', 'This component takes no props.');
179
+ return lines.join('\n') + '\n';
180
+ }
181
+ if (doc.props.length === 0) {
182
+ lines.push('', 'This component takes no props.');
183
+ return lines.join('\n') + '\n';
184
+ }
185
+ lines.push('', '| Name | Type | Optional | Description |', '| --- | --- | --- | --- |');
186
+ for (const prop of doc.props) {
187
+ lines.push(`| ${prop.name} | ${cell(prop.type)} | ${prop.optional ? 'Yes' : 'No'} | ${cell(prop.summary)} |`);
188
+ }
189
+ return lines.join('\n') + '\n';
190
+ }
191
+ /** Escapes a value for a one-line markdown table cell. */
192
+ function cell(value) {
193
+ return value.replace(/\|/g, '\\|').replace(/\r?\n/g, ' ').trim() || '-';
194
+ }
195
+ //# sourceMappingURL=docgen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docgen.js","sourceRoot":"","sources":["../src/docgen.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,12 +1,14 @@
1
1
  export { AzerothLanguageService } from './service.ts';
2
- export type { CompletionOptions } from './providers/completion.ts';
2
+ export { registerCompletionSource, clearCompletionSources, type CompletionOptions, type CompletionSource } from './providers/completion.ts';
3
3
  export type { InlayHintOptions } from './providers/inlay-hints.ts';
4
+ export { generateComponentDocs, type ComponentDoc, type PropDoc } from './docgen.ts';
4
5
  export { AzerothProject, isVirtualFile, toVirtualFile, toAzerothPath } from './ts-project.ts';
5
6
  export { generateVirtualCode, BUILTIN_COMPONENTS, type VirtualCode } from './virtual-code.ts';
6
7
  export { CodeMapping, type MappingSegment, type MappingKind } from './mapping.ts';
8
+ export { setEnabled as setMetricsEnabled, snapshot as getMetrics, type Metrics } from './perf.ts';
7
9
  export { classifyPosition, collectMarkupNodes, type PositionContext } from './markup-model.ts';
8
10
  export { BUILTIN_COMPONENT_MAP, DOM_EVENTS, type BuiltinComponent } from './language-data.ts';
9
11
  export { LineIndex } from './text.ts';
10
12
  export { uriToPath, pathToUri } from './uri.ts';
11
- export { CompletionItemKind, SymbolKind, DiagnosticSeverity, SEMANTIC_TOKEN_TYPES, type Position, type Range, type Location, type CompletionItem, type Hover, type SignatureHelp, type SignatureInformation, type TextEdit, type WorkspaceEdit, type DocumentSymbol, type DocumentHighlight, type WorkspaceSymbol, type Diagnostic, type FoldingRange, type InlayHint, type SelectionRange, type CodeAction, type SemanticTokens, type SemanticTokenType } from './protocol.ts';
13
+ export { CompletionItemKind, SymbolKind, DiagnosticSeverity, SEMANTIC_TOKEN_TYPES, SEMANTIC_TOKEN_MODIFIERS, type Position, type Range, type Location, type CompletionItem, type Hover, type SignatureHelp, type SignatureInformation, type TextEdit, type WorkspaceEdit, type PrepareRenameResult, type DocumentSymbol, type DocumentHighlight, type DocumentLink, type Color, type ColorInformation, type ColorPresentation, type WorkspaceSymbol, type CallHierarchyItem, type CallHierarchyIncomingCall, type CallHierarchyOutgoingCall, type Diagnostic, type FoldingRange, type InlayHint, type SelectionRange, type CodeAction, type Command, type CodeLens, type SemanticTokens, type SemanticTokenType, type SemanticTokenModifier } from './protocol.ts';
12
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EACH,cAAc,EACd,aAAa,EACb,aAAa,EACb,aAAa,EAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACH,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,WAAW,EACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAElF,OAAO,EACH,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,eAAe,EACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACH,qBAAqB,EACrB,UAAU,EACV,KAAK,gBAAgB,EACxB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EACH,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,QAAQ,EACb,KAAK,KAAK,EACV,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,KAAK,EACV,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACzB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EACH,wBAAwB,EACxB,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACxB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EACH,qBAAqB,EACrB,KAAK,YAAY,EACjB,KAAK,OAAO,EACf,MAAM,aAAa,CAAC;AAErB,OAAO,EACH,cAAc,EACd,aAAa,EACb,aAAa,EACb,aAAa,EAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACH,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,WAAW,EACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAElF,OAAO,EACH,UAAU,IAAI,iBAAiB,EAC/B,QAAQ,IAAI,UAAU,EACtB,KAAK,OAAO,EACf,MAAM,WAAW,CAAC;AAEnB,OAAO,EACH,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,eAAe,EACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACH,qBAAqB,EACrB,UAAU,EACV,KAAK,gBAAgB,EACxB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EACH,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,KAAK,QAAQ,EACb,KAAK,KAAK,EACV,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,KAAK,EACV,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC7B,MAAM,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -10,7 +10,7 @@
10
10
  // precise offset mapping for every user-authored span
11
11
  // ts-project - run a single ts.LanguageService over those virtual modules
12
12
  // (the engine for type inference, completion, hover, etc.)
13
- // markup-model - classify the caret (tag name / attribute / expression / )
13
+ // markup-model - classify the caret (tag name / attribute / expression / ...)
14
14
  // so the providers know which vocabulary to offer
15
15
  // providers - one focused module per editor feature
16
16
  // service - the AzerothLanguageService facade that ties them together
@@ -18,12 +18,15 @@
18
18
  // The core depends only on `typescript` and `@azerothjs/compiler`, so it runs
19
19
  // (and is tested) without an editor in the loop.
20
20
  export { AzerothLanguageService } from "./service.js";
21
+ export { registerCompletionSource, clearCompletionSources } from "./providers/completion.js";
22
+ export { generateComponentDocs } from "./docgen.js";
21
23
  export { AzerothProject, isVirtualFile, toVirtualFile, toAzerothPath } from "./ts-project.js";
22
24
  export { generateVirtualCode, BUILTIN_COMPONENTS } from "./virtual-code.js";
23
25
  export { CodeMapping } from "./mapping.js";
26
+ export { setEnabled as setMetricsEnabled, snapshot as getMetrics } from "./perf.js";
24
27
  export { classifyPosition, collectMarkupNodes } from "./markup-model.js";
25
28
  export { BUILTIN_COMPONENT_MAP, DOM_EVENTS } from "./language-data.js";
26
29
  export { LineIndex } from "./text.js";
27
30
  export { uriToPath, pathToUri } from "./uri.js";
28
- export { CompletionItemKind, SymbolKind, DiagnosticSeverity, SEMANTIC_TOKEN_TYPES } from "./protocol.js";
31
+ export { CompletionItemKind, SymbolKind, DiagnosticSeverity, SEMANTIC_TOKEN_TYPES, SEMANTIC_TOKEN_MODIFIERS } from "./protocol.js";
29
32
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,0CAA0C;AAC1C,EAAE;AACF,uEAAuE;AACvE,sEAAsE;AACtE,iFAAiF;AACjF,uEAAuE;AACvE,8EAA8E;AAC9E,4EAA4E;AAC5E,8EAA8E;AAC9E,mEAAmE;AACnE,yDAAyD;AACzD,6EAA6E;AAC7E,EAAE;AACF,8EAA8E;AAC9E,iDAAiD;AAEjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAItD,OAAO,EACH,cAAc,EACd,aAAa,EACb,aAAa,EACb,aAAa,EAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACH,mBAAmB,EACnB,kBAAkB,EAErB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAyC,MAAM,cAAc,CAAC;AAElF,OAAO,EACH,gBAAgB,EAChB,kBAAkB,EAErB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACH,qBAAqB,EACrB,UAAU,EAEb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EACH,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EAoBvB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,0CAA0C;AAC1C,EAAE;AACF,uEAAuE;AACvE,sEAAsE;AACtE,iFAAiF;AACjF,uEAAuE;AACvE,8EAA8E;AAC9E,4EAA4E;AAC5E,gFAAgF;AAChF,mEAAmE;AACnE,yDAAyD;AACzD,6EAA6E;AAC7E,EAAE;AACF,8EAA8E;AAC9E,iDAAiD;AAEjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EACH,wBAAwB,EACxB,sBAAsB,EAGzB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACH,qBAAqB,EAGxB,MAAM,aAAa,CAAC;AAErB,OAAO,EACH,cAAc,EACd,aAAa,EACb,aAAa,EACb,aAAa,EAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACH,mBAAmB,EACnB,kBAAkB,EAErB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAyC,MAAM,cAAc,CAAC;AAElF,OAAO,EACH,UAAU,IAAI,iBAAiB,EAC/B,QAAQ,IAAI,UAAU,EAEzB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACH,gBAAgB,EAChB,kBAAkB,EAErB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACH,qBAAqB,EACrB,UAAU,EAEb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EACH,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EA+B3B,MAAM,eAAe,CAAC"}
@@ -30,7 +30,7 @@ export declare const DOM_EVENTS: string[];
30
30
  /**
31
31
  * Concise documentation for common element attributes that the standard HTML
32
32
  * dataset ships *without* a description (form/input attributes especially), so
33
- * `type`, `placeholder`, `value`, aren't left blank on hover/completion.
33
+ * `type`, `placeholder`, `value`, ... aren't left blank on hover/completion.
34
34
  * Global attributes (`class`, `id`, `title`, `style`, `aria-*`) and many tag
35
35
  * attributes already carry MDN docs straight from the HTML engine; this only
36
36
  * fills the gaps.
@@ -1 +1 @@
1
- {"version":3,"file":"language-data.d.ts","sourceRoot":"","sources":["../src/language-data.ts"],"names":[],"mappings":"AAWA,8DAA8D;AAC9D,MAAM,WAAW,gBAAgB;IAE7B,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;CAC7D;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,EAsFhD,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,qBAAqB,+BAA4E,CAAC;AAQ/G;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,EAW9B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0BjD,CAAC;AAEF,2EAA2E;AAC3E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGvE"}
1
+ {"version":3,"file":"language-data.d.ts","sourceRoot":"","sources":["../src/language-data.ts"],"names":[],"mappings":"AAWA,8DAA8D;AAC9D,MAAM,WAAW,gBAAgB;IAE7B,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;CAC7D;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,EAgGhD,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,qBAAqB,+BAA4E,CAAC;AAQ/G;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,EAW9B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0BjD,CAAC;AAEF,2EAA2E;AAC3E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGvE"}
@@ -16,87 +16,97 @@
16
16
  export const BUILTIN_COMPONENTS = [
17
17
  {
18
18
  name: 'Show',
19
- detail: '<Show when={} fallback={}>…</Show>',
19
+ detail: '<Show when={...} fallback={...}>...</Show>',
20
20
  doc: 'Conditionally renders its children when `when` is truthy, otherwise the optional `fallback`. Swaps automatically when the reactive condition changes.',
21
21
  props: [
22
- { name: 'when', doc: 'Reactive condition. Children show while truthy.', required: true },
23
- { name: 'fallback', doc: 'Rendered when `when` is false. Optional.', required: false }
22
+ { name: 'when', doc: 'Reactive condition (`() => boolean`). Children show while truthy.', required: true },
23
+ { name: 'fallback', doc: 'Rendered when `when` is false: `() => element`. Optional.', required: false },
24
+ { name: 'children', doc: 'Content shown while `when` is truthy: `() => element`.', required: true }
24
25
  ]
25
26
  },
26
27
  {
27
28
  name: 'For',
28
- detail: '<For each={} key={}>{(item, i) => }</For>',
29
+ detail: '<For each={...} key={...}>{(item, i) => ...}</For>',
29
30
  doc: 'Keyed list rendering. Re-uses DOM elements across updates by `key`, so only changed rows touch the DOM. The child is a render function `(item, index) => element`.',
30
31
  props: [
31
- { name: 'each', doc: 'Reactive getter returning the array of items.', required: true },
32
- { name: 'key', doc: 'Returns a stable unique key per item: `(item, index) => string | number`.', required: true }
32
+ { name: 'each', doc: 'Reactive getter returning the array of items: `() => T[]`.', required: true },
33
+ { name: 'key', doc: 'Returns a stable unique key per item: `(item, index) => string | number`.', required: true },
34
+ { name: 'children', doc: 'Per-item render function: `(item, index: () => number) => element`.', required: true }
33
35
  ]
34
36
  },
35
37
  {
36
38
  name: 'Switch',
37
- detail: '<Switch fallback={}><Match/>…</Switch>',
39
+ detail: '<Switch fallback={...}><Match/>...</Switch>',
38
40
  doc: 'Renders the first `<Match>` whose `when` is truthy (priority order). Optional `fallback` when none match.',
39
41
  props: [
40
- { name: 'fallback', doc: 'Rendered when no `<Match>` matches. Optional.', required: false }
42
+ { name: 'children', doc: 'The `<Match>` cases, in priority order (first match wins).', required: true },
43
+ { name: 'fallback', doc: 'Rendered when no `<Match>` matches: `() => element`. Optional.', required: false }
41
44
  ]
42
45
  },
43
46
  {
44
47
  name: 'Match',
45
- detail: '<Match when={}>…</Match>',
48
+ detail: '<Match when={...}>...</Match>',
46
49
  doc: 'A single case inside `<Switch>`. Rendered when its `when` condition is the first truthy one.',
47
50
  props: [
48
- { name: 'when', doc: 'Reactive condition for this case.', required: true }
51
+ { name: 'when', doc: 'Reactive condition for this case: `() => boolean`.', required: true },
52
+ { name: 'children', doc: 'Content rendered when this case wins: `() => element`.', required: true }
49
53
  ]
50
54
  },
51
55
  {
52
56
  name: 'Portal',
53
- detail: '<Portal target={}>…</Portal>',
57
+ detail: '<Portal target={...}>...</Portal>',
54
58
  doc: 'Renders its children into a different DOM node (defaults to `document.body`). Useful for modals, tooltips, and overlays.',
55
59
  props: [
56
- { name: 'target', doc: 'Destination element. Defaults to `document.body`.', required: false }
60
+ { name: 'target', doc: 'Destination element. Defaults to `document.body`. Optional.', required: false },
61
+ { name: 'children', doc: 'Content portaled into `target`: `() => element`.', required: true }
57
62
  ]
58
63
  },
59
64
  {
60
65
  name: 'Dynamic',
61
- detail: '<Dynamic component={} props={} />',
66
+ detail: '<Dynamic component={...} props={...} />',
62
67
  doc: 'Renders a component chosen at runtime. When the `component` getter changes, the old one is removed and the new one mounted.',
63
68
  props: [
64
- { name: 'component', doc: 'Reactive getter returning the component to render (or null).', required: true },
65
- { name: 'props', doc: 'Optional reactive getter returning props for the component.', required: false }
69
+ { name: 'component', doc: 'Reactive getter returning the component to render, or `null`.', required: true },
70
+ { name: 'props', doc: 'Reactive getter returning props for the component. Optional.', required: false }
66
71
  ]
67
72
  },
68
73
  {
69
74
  name: 'Suspense',
70
- detail: '<Suspense on={[]} fallback={}>…</Suspense>',
75
+ detail: '<Suspense on={[...]} fallback={...}>...</Suspense>',
71
76
  doc: 'Shows `fallback` while any watched resource is loading, then reveals children once all have settled.',
72
77
  props: [
78
+ { name: 'fallback', doc: 'Rendered while any watched resource is loading: `() => element`.', required: true },
73
79
  { name: 'on', doc: 'Array of resources to watch (captured once, not reactive to array mutation).', required: true },
74
- { name: 'fallback', doc: 'Rendered while any watched resource is loading.', required: true }
80
+ { name: 'children', doc: 'Subtree revealed once all watched resources settle: `() => element`.', required: true }
75
81
  ]
76
82
  },
77
83
  {
78
84
  name: 'Transition',
79
- detail: '<Transition when={} name="">…</Transition>',
85
+ detail: '<Transition when={...} name="...">...</Transition>',
80
86
  doc: 'Animated show/hide. With a `name`, auto-generates the 6-class enter/leave family; without one, falls back to an instant swap.',
81
87
  props: [
82
- { name: 'when', doc: 'Reactive boolean: true to show, false to hide.', required: true },
83
- { name: 'name', doc: 'Class-name prefix for the enter/leave transition classes.', required: false },
84
- { name: 'duration', doc: 'Fallback transition timeout in ms. Default 1000.', required: false }
88
+ { name: 'when', doc: 'Reactive boolean (`() => boolean`): true to show, false to hide.', required: true },
89
+ { name: 'children', doc: 'Element built when entering: `() => element`.', required: true },
90
+ { name: 'name', doc: 'Class-name prefix for the enter/leave transition classes. Optional.', required: false },
91
+ { name: 'duration', doc: 'Fallback transition timeout in ms. Default 1000. Optional.', required: false }
85
92
  ]
86
93
  },
87
94
  {
88
95
  name: 'ErrorBoundary',
89
- detail: '<ErrorBoundary fallback={(err, reset) => }>…</ErrorBoundary>',
96
+ detail: '<ErrorBoundary fallback={(err, reset) => ...}>...</ErrorBoundary>',
90
97
  doc: 'Catches errors thrown while rendering its subtree and shows `fallback(error, reset)` instead. Call `reset` to retry.',
91
98
  props: [
92
- { name: 'fallback', doc: 'Renders the error UI: `(error, reset) => element`.', required: true }
99
+ { name: 'fallback', doc: 'Renders the error UI: `(error, reset) => element`. Call `reset` to retry.', required: true },
100
+ { name: 'children', doc: 'Protected subtree, re-evaluated on each reset: `() => element`.', required: true }
93
101
  ]
94
102
  },
95
103
  {
96
104
  name: 'Outlet',
97
105
  detail: '<Outlet />',
98
106
  doc: 'Renders nested-route content inside a layout component. Provided automatically by `<Routes>`.',
99
- props: []
107
+ props: [
108
+ { name: 'children', doc: 'Nested-route content, forwarded from the layout. Optional.', required: false }
109
+ ]
100
110
  }
101
111
  ];
102
112
  /** Fast lookup of built-in component data by name. */
@@ -126,30 +136,30 @@ export const DOM_EVENTS = [
126
136
  /**
127
137
  * Concise documentation for common element attributes that the standard HTML
128
138
  * dataset ships *without* a description (form/input attributes especially), so
129
- * `type`, `placeholder`, `value`, aren't left blank on hover/completion.
139
+ * `type`, `placeholder`, `value`, ... aren't left blank on hover/completion.
130
140
  * Global attributes (`class`, `id`, `title`, `style`, `aria-*`) and many tag
131
141
  * attributes already carry MDN docs straight from the HTML engine; this only
132
142
  * fills the gaps.
133
143
  */
134
144
  export const ATTRIBUTE_DOCS = {
135
145
  type: 'The kind of control to render (e.g. `text`, `checkbox`, `email`, `number`, `password`).',
136
- value: 'The controls current value. In AzerothJS, bind it reactively: `value={signal()}`.',
146
+ value: 'The control\'s current value. In AzerothJS, bind it reactively: `value={signal()}`.',
137
147
  placeholder: 'Hint text shown while the field is empty.',
138
148
  checked: 'Whether a checkbox/radio is selected. Bind reactively: `checked={done()}`.',
139
149
  disabled: 'When present, the control is non-interactive.',
140
- readonly: 'When present, the value cant be edited (but is still submitted).',
150
+ readonly: 'When present, the value can\'t be edited (but is still submitted).',
141
151
  required: 'Marks the field as required for form submission.',
142
152
  name: 'The control name, submitted with the form data.',
143
153
  min: 'Minimum allowed value (numeric/date inputs).',
144
154
  max: 'Maximum allowed value (numeric/date inputs).',
145
155
  step: 'Granularity of allowed values (numeric/date inputs).',
146
156
  pattern: 'A regular expression the value must match.',
147
- autocomplete: 'Hint for the browsers autofill behaviour.',
157
+ autocomplete: 'Hint for the browser\'s autofill behaviour.',
148
158
  selected: 'Marks an `<option>` as initially selected.',
149
159
  multiple: 'Allows selecting or entering multiple values.',
150
160
  rows: 'Visible number of text rows in a `<textarea>`.',
151
161
  cols: 'Visible width, in characters, of a `<textarea>`.',
152
- src: 'The URL of the resource (image, script, media, ).',
162
+ src: 'The URL of the resource (image, script, media, ...).',
153
163
  alt: 'Alternative text describing an image.',
154
164
  for: 'Associates a `<label>` with a control by its `id`.',
155
165
  action: 'The URL that processes the form submission.',
@@ -1 +1 @@
1
- {"version":3,"file":"language-data.js","sourceRoot":"","sources":["../src/language-data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"language-data.js","sourceRoot":"","sources":["../src/language-data.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"markup-model.d.ts","sourceRoot":"","sources":["../src/markup-model.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAe,MAAM,qBAAqB,CAAC;AAEtF,kFAAkF;AAClF,MAAM,MAAM,eAAe;AACvB,gEAAgE;AAC9D;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE;AACxD,4DAA4D;GAC1D;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACzD,0CAA0C;GACxC;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAC5D,oEAAoE;GAClE;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE;AACxB,4BAA4B;GAC1B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;AAClB,6CAA6C;GAC3C;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEzB;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAYhF;AA4QD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC,EAAE,CAKrF;AAyDD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAgBrF"}
1
+ {"version":3,"file":"markup-model.d.ts","sourceRoot":"","sources":["../src/markup-model.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAe,MAAM,qBAAqB,CAAC;AAEtF,kFAAkF;AAClF,MAAM,MAAM,eAAe;AACvB,gEAAgE;AAC9D;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE;AACxD,4DAA4D;GAC1D;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACzD,0CAA0C;GACxC;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAC5D,oEAAoE;GAClE;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE;AACxB,4BAA4B;GAC1B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;AAClB,6CAA6C;GAC3C;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEzB;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAYhF;AA4QD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC,EAAE,CAKrF;AAqED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAgBrF"}
@@ -247,6 +247,13 @@ export function collectMarkupNodes(source) {
247
247
  collectInRange(source, 0, source.length, nodes);
248
248
  return nodes;
249
249
  }
250
+ /**
251
+ * Scans `source` between `lo` and `hi` for markup that begins there, handing
252
+ * each parsed node to {@link collectNode}. Split out from the public
253
+ * {@link collectMarkupNodes} so the recursion can re-enter any sub-range - the
254
+ * inside of an attribute or child expression's braces - and find markup nested
255
+ * within it. A parse failure ends the scan for this range instead of throwing.
256
+ */
250
257
  function collectInRange(source, lo, hi, out) {
251
258
  let i = lo;
252
259
  for (;;) {
@@ -266,6 +273,11 @@ function collectInRange(source, lo, hi, out) {
266
273
  i = end;
267
274
  }
268
275
  }
276
+ /**
277
+ * Adds `node` to `out`, then descends into the expression slots it owns - an
278
+ * element's `{ ... }` attribute values and children, a fragment's children - so
279
+ * markup written inside those expressions is collected as well.
280
+ */
269
281
  function collectNode(source, node, out) {
270
282
  out.push(node);
271
283
  if (node.kind === 'element') {
@@ -1 +1 @@
1
- {"version":3,"file":"markup-model.js","sourceRoot":"","sources":["../src/markup-model.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,0EAA0E;AAC1E,6EAA6E;AAC7E,6EAA6E;AAC7E,gCAAgC;AAChC,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,+EAA+E;AAC/E,4EAA4E;AAC5E,gFAAgF;AAChF,0EAA0E;AAE1E,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAkBhE;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,MAAc;IAE3D,yEAAyE;IACzE,yEAAyE;IACzE,mEAAmE;IACnE,0EAA0E;IAC1E,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,KAAK,KAAK,IAAI,EAClB,CAAC;QACG,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IAC/E,CAAC;IACD,OAAO,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AACvE,CAAC;AAED,kFAAkF;AAClF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAChC;IACG,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY;CAChH,CAAC,CAAC;AAEH;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,MAAc,EAAE,MAAc;IAErD,IAAI,CAAC,GAAG,MAAM,CAAC;IACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,EAC9F,CAAC;QACG,CAAC,EAAE,CAAC;IACR,CAAC;IAED,IAAI,EAAU,CAAC;IACf,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAClC,CAAC;QACG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;SACI,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAChE,CAAC;QACG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACX,OAAO,GAAG,IAAI,CAAC;IACnB,CAAC;SAED,CAAC;QACG,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,iEAAiE;IACjE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACf,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAC1D,CAAC;QACG,CAAC,EAAE,CAAC;IACR,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,GAAG,CAAC,EACT,CAAC;QACG,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAChC,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,WAAW,CAAC,IAAI,CAAC,EACrB,CAAC;QACG,wEAAwE;QACxE,qEAAqE;QACrE,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EACvC,CAAC;YACG,CAAC,EAAE,CAAC;QACR,CAAC;QACD,OAAO,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3F,CAAC;IACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAChC,CAAC;QACG,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,MAAc,EAAE,EAAU,EAAE,EAAU,EAAE,MAAc,EAAE,IAA6B;IAE1G,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,SACA,CAAC;QACG,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,EACrC,CAAC;YACG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,IAAoC,CAAC;QACzC,IAAI,GAAW,CAAC;QAChB,IACA,CAAC;YACG,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,GAAG,EACV,CAAC;YACG,8DAA8D;YAC9D,2DAA2D;YAC3D,IAAI,GAAG,YAAY,YAAY,IAAI,MAAM,IAAI,CAAC,EAC9C,CAAC;gBACG,OAAO,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YACxC,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,MAAM,GAAG,GAAG,EAChB,CAAC;YACG,OAAO,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QACD,CAAC,GAAG,GAAG,CAAC;IACZ,CAAC;AACL,CAAC;AAED,yEAAyE;AACzE,SAAS,YAAY,CAAC,MAAc,EAAE,IAAoC,EAAE,MAAc;IAEtF,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAC3B,CAAC;QACG,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QAE5C,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,IAAI,OAAO,EAC5C,CAAC;YACG,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACzF,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,MAAM,IAAI,OAAO,EACrB,CAAC;YACG,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAClC,CAAC;gBACG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,MAAM,EACnD,CAAC;oBACG,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;oBACvB,IAAI,MAAM,GAAG,KAAK,IAAI,MAAM,GAAG,KAAK,EACpC,CAAC;wBACG,OAAO,eAAe,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;oBAC/E,CAAC;gBACL,CAAC;qBACI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,EACrC,CAAC;oBACG,mEAAmE;oBACnE,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC3C,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM,GAAG,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,EACjD,CAAC;wBACG,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;oBACjF,CAAC;gBACL,CAAC;YACL,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAC/F,CAAC;IACL,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EACjC,CAAC;QACG,IAAI,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,MAAM,GAAG,KAAK,CAAC,GAAG,EAC/C,CAAC;YACG,OAAO,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC;AAED,uDAAuD;AACvD,SAAS,aAAa,CAAC,MAAc,EAAE,KAAkB,EAAE,MAAc;IAErE,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAC/B,CAAC;QACG,OAAO,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EACzD,CAAC;QACG,OAAO,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,MAAc,EAAE,OAAe,EAAE,MAAc;IAE9D,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IACpB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;IAClC,IAAI,OAAO,EACX,CAAC;QACG,CAAC,EAAE,CAAC;IACR,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,CAAC;IACpB,OAAO,CAAC,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EACvF,CAAC;QACG,CAAC,EAAE,CAAC;IACR,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAEvC,IAAI,MAAM,IAAI,CAAC,EACf,CAAC;QACG,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IAClF,CAAC;IAED,qDAAqD;IACrD,OAAO,CAAC,GAAG,MAAM,EACjB,CAAC;QACG,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,EAAE,KAAK,GAAG,EACd,CAAC;YACG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC5B,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EACd,CAAC;YACG,CAAC,EAAE,CAAC;YACJ,OAAO,CAAC,GAAG,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAC5C,CAAC;gBACG,CAAC,EAAE,CAAC;YACR,CAAC;YACD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,EACb,CAAC;gBACG,OAAO,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YAC5E,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAC3B,CAAC;gBACG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,OAAO,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EACpC,CAAC;oBACG,CAAC,EAAE,CAAC;gBACR,CAAC;gBACD,IAAI,CAAC,IAAI,MAAM,EACf,CAAC;oBACG,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;gBAC1D,CAAC;gBACD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACV,SAAS;YACb,CAAC;YACD,CAAC,EAAE,CAAC;YACJ,SAAS;QACb,CAAC;QACD,CAAC,EAAE,CAAC;IACR,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;AACrF,CAAC;AAED,mFAAmF;AACnF,SAAS,gBAAgB,CAAC,MAAc,EAAE,MAAc;IAEpD,IAAI,CAAC,GAAG,MAAM,CAAC;IACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,EAC9F,CAAC;QACG,CAAC,EAAE,CAAC;IACR,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,+DAA+D;AAC/D,SAAS,UAAU,CAAC,MAAc,EAAE,IAAmB;IAEnD,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAClC,CAAC;QACG,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,EAChB,CAAC;YACG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;QACjB,CAAC;IACL,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAClC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAE7C,MAAM,KAAK,GAAuC,EAAE,CAAC;IACrD,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,MAAc,EAAE,EAAU,EAAE,EAAU,EAAE,GAAuC;IAEnG,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,SACA,CAAC;QACG,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EACvB,CAAC;YACG,OAAO;QACX,CAAC;QACD,IAAI,IAAoC,CAAC;QACzC,IAAI,GAAW,CAAC;QAChB,IACA,CAAC;YACG,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,MACA,CAAC;YACG,OAAO;QACX,CAAC;QACD,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC,GAAG,GAAG,CAAC;IACZ,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,IAAoC,EAAE,GAAuC;IAE9G,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAC3B,CAAC;QACG,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAClC,CAAC;YACG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,MAAM,EACnD,CAAC;gBACG,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC9C,IAAI,KAAK,KAAK,CAAC,CAAC,EAChB,CAAC;oBACG,cAAc,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC5E,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EACjC,CAAC;QACG,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAC/B,CAAC;YACG,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;aACI,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAC9D,CAAC;YACG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,MAAc;IAE3D,IAAI,IAAI,GAAyB,IAAI,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAC7C,CAAC;QACG,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAC3B,CAAC;YACG,SAAS;QACb,CAAC;QACD,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAC3F,CAAC;YACG,IAAI,GAAG,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"markup-model.js","sourceRoot":"","sources":["../src/markup-model.ts"],"names":[],"mappings":"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"}
package/dist/perf.d.ts ADDED
@@ -0,0 +1,18 @@
1
+ /** Per-request timings, in milliseconds. */
2
+ export interface Metrics {
3
+ /** Time spent in generateVirtualCode for the request. */
4
+ virtualCodeMs: number;
5
+ /** Wall-clock time for the whole request entry. */
6
+ totalMs: number;
7
+ }
8
+ /** Toggles instrumentation. Off by default; when off, `record` is a no-op. */
9
+ export declare function setEnabled(value: boolean): void;
10
+ /** Whether instrumentation is currently recording. */
11
+ export declare function isEnabled(): boolean;
12
+ /** Records a measured duration under `label`, overwriting the previous value. */
13
+ export declare function record(label: string, ms: number): void;
14
+ /** The most recent timings as a Metrics object. Absent labels read as 0. */
15
+ export declare function snapshot(): Metrics;
16
+ /** Clears all accumulated timings. */
17
+ export declare function reset(): void;
18
+ //# sourceMappingURL=perf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perf.d.ts","sourceRoot":"","sources":["../src/perf.ts"],"names":[],"mappings":"AAKA,4CAA4C;AAC5C,MAAM,WAAW,OAAO;IAEpB,yDAAyD;IACzD,aAAa,EAAE,MAAM,CAAC;IAEtB,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;CACnB;AAKD,8EAA8E;AAC9E,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAG/C;AAED,sDAAsD;AACtD,wBAAgB,SAAS,IAAI,OAAO,CAGnC;AAED,iFAAiF;AACjF,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAGtD;AAED,4EAA4E;AAC5E,wBAAgB,QAAQ,IAAI,OAAO,CAMlC;AAED,sCAAsC;AACtC,wBAAgB,KAAK,IAAI,IAAI,CAM5B"}