@oddkin/analyzer 0.0.0-stage → 1.0.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 (103) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +40 -2
  3. package/dist/bin.d.ts +3 -0
  4. package/dist/bin.d.ts.map +1 -0
  5. package/dist/bin.js +65 -0
  6. package/dist/bin.js.map +1 -0
  7. package/dist/contracts.d.ts +29 -0
  8. package/dist/contracts.d.ts.map +1 -0
  9. package/dist/contracts.js +57 -0
  10. package/dist/contracts.js.map +1 -0
  11. package/dist/docs.d.ts +34 -0
  12. package/dist/docs.d.ts.map +1 -0
  13. package/dist/docs.js +63 -0
  14. package/dist/docs.js.map +1 -0
  15. package/dist/emit.d.ts +38 -0
  16. package/dist/emit.d.ts.map +1 -0
  17. package/dist/emit.js +406 -0
  18. package/dist/emit.js.map +1 -0
  19. package/dist/examples.d.ts +35 -0
  20. package/dist/examples.d.ts.map +1 -0
  21. package/dist/examples.js +345 -0
  22. package/dist/examples.js.map +1 -0
  23. package/dist/extract.d.ts +208 -0
  24. package/dist/extract.d.ts.map +1 -0
  25. package/dist/extract.js +1570 -0
  26. package/dist/extract.js.map +1 -0
  27. package/dist/foundations.d.ts +36 -0
  28. package/dist/foundations.d.ts.map +1 -0
  29. package/dist/foundations.js +108 -0
  30. package/dist/foundations.js.map +1 -0
  31. package/dist/history.d.ts +10 -0
  32. package/dist/history.d.ts.map +1 -0
  33. package/dist/history.js +62 -0
  34. package/dist/history.js.map +1 -0
  35. package/dist/impact-bin.d.ts +3 -0
  36. package/dist/impact-bin.d.ts.map +1 -0
  37. package/dist/impact-bin.js +7 -0
  38. package/dist/impact-bin.js.map +1 -0
  39. package/dist/impact-cli.d.ts +8 -0
  40. package/dist/impact-cli.d.ts.map +1 -0
  41. package/dist/impact-cli.js +121 -0
  42. package/dist/impact-cli.js.map +1 -0
  43. package/dist/impact.d.ts +282 -0
  44. package/dist/impact.d.ts.map +1 -0
  45. package/dist/impact.js +744 -0
  46. package/dist/impact.js.map +1 -0
  47. package/dist/index.d.ts +82 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +228 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/kit/agents-md.d.ts +10 -0
  52. package/dist/kit/agents-md.d.ts.map +1 -0
  53. package/dist/kit/agents-md.js +64 -0
  54. package/dist/kit/agents-md.js.map +1 -0
  55. package/dist/kit/cli.d.ts +8 -0
  56. package/dist/kit/cli.d.ts.map +1 -0
  57. package/dist/kit/cli.js +214 -0
  58. package/dist/kit/cli.js.map +1 -0
  59. package/dist/kit/context.d.ts +104 -0
  60. package/dist/kit/context.d.ts.map +1 -0
  61. package/dist/kit/context.js +323 -0
  62. package/dist/kit/context.js.map +1 -0
  63. package/dist/kit/index.d.ts +12 -0
  64. package/dist/kit/index.d.ts.map +1 -0
  65. package/dist/kit/index.js +12 -0
  66. package/dist/kit/index.js.map +1 -0
  67. package/dist/kit/kit.d.ts +62 -0
  68. package/dist/kit/kit.d.ts.map +1 -0
  69. package/dist/kit/kit.js +626 -0
  70. package/dist/kit/kit.js.map +1 -0
  71. package/dist/kit/llms.d.ts +22 -0
  72. package/dist/kit/llms.d.ts.map +1 -0
  73. package/dist/kit/llms.js +58 -0
  74. package/dist/kit/llms.js.map +1 -0
  75. package/dist/kit/package-kit.d.ts +18 -0
  76. package/dist/kit/package-kit.d.ts.map +1 -0
  77. package/dist/kit/package-kit.js +224 -0
  78. package/dist/kit/package-kit.js.map +1 -0
  79. package/dist/kit-bin.d.ts +3 -0
  80. package/dist/kit-bin.d.ts.map +1 -0
  81. package/dist/kit-bin.js +7 -0
  82. package/dist/kit-bin.js.map +1 -0
  83. package/dist/published.d.ts +43 -0
  84. package/dist/published.d.ts.map +1 -0
  85. package/dist/published.js +62 -0
  86. package/dist/published.js.map +1 -0
  87. package/dist/references.d.ts +70 -0
  88. package/dist/references.d.ts.map +1 -0
  89. package/dist/references.js +255 -0
  90. package/dist/references.js.map +1 -0
  91. package/dist/style-mappings.d.ts +46 -0
  92. package/dist/style-mappings.d.ts.map +1 -0
  93. package/dist/style-mappings.js +246 -0
  94. package/dist/style-mappings.js.map +1 -0
  95. package/dist/stylesheets.d.ts +56 -0
  96. package/dist/stylesheets.d.ts.map +1 -0
  97. package/dist/stylesheets.js +83 -0
  98. package/dist/stylesheets.js.map +1 -0
  99. package/dist/verification.d.ts +62 -0
  100. package/dist/verification.d.ts.map +1 -0
  101. package/dist/verification.js +115 -0
  102. package/dist/verification.js.map +1 -0
  103. package/package.json +45 -4
package/dist/emit.js ADDED
@@ -0,0 +1,406 @@
1
+ const byName = (a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0;
2
+ const optional = (key, value) => value === undefined || value === false || (Array.isArray(value) && value.length === 0)
3
+ ? {}
4
+ : { [key]: value };
5
+ const knownDefault = (value) => (value.known ? value.value : undefined);
6
+ const categoryId = (label) => `category:${label.toLowerCase().replace(/\s+/g, '-')}`;
7
+ const authoredCategory = (component) => {
8
+ const tag = component?.tags['category']?.[0];
9
+ const label = tag?.value.trim();
10
+ return tag && label ? { label, location: tag.location } : undefined;
11
+ };
12
+ /**
13
+ * Category records from the `@category` tags of registered components: the label is the first
14
+ * spelling in tag order, and a different spelling of the same id is reported, not merged.
15
+ */
16
+ export function categoryRecords(extraction) {
17
+ const byClass = new Map(extraction.components.map((c) => [`${c.file}#${c.name}`, c]));
18
+ const first = new Map();
19
+ const diagnostics = [];
20
+ for (const registration of [...extraction.registrations].sort((a, b) => a.tag < b.tag ? -1 : 1)) {
21
+ const authored = authoredCategory(byClass.get(`${registration.classFile}#${registration.className}`));
22
+ if (!authored)
23
+ continue;
24
+ const { label } = authored;
25
+ const id = categoryId(label);
26
+ const known = first.get(id);
27
+ if (!known)
28
+ first.set(id, { label, tag: registration.tag });
29
+ else if (known.label !== label)
30
+ diagnostics.push({
31
+ code: 'analyzer.category.conflict',
32
+ severity: 'warning',
33
+ message: `<${registration.tag}> writes @category "${label}", but <${known.tag}> writes the same category as "${known.label}"; the label "${known.label}" is used.`,
34
+ source: authored.location,
35
+ suggestion: `Write @category ${known.label}.`,
36
+ });
37
+ }
38
+ const categories = Object.fromEntries([...first]
39
+ .sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))
40
+ .map(([id, { label }]) => [id, { label }]));
41
+ return { categories, diagnostics };
42
+ }
43
+ export function buildManifest(extraction, paths) {
44
+ const tags = new Map(extraction.registrations.map((r) => [`${r.classFile}#${r.className}`, r.tag]));
45
+ const modules = new Map();
46
+ const moduleEntry = (path) => {
47
+ let entry = modules.get(path);
48
+ if (!entry) {
49
+ entry = { declarations: [], exports: [] };
50
+ modules.set(path, entry);
51
+ }
52
+ return entry;
53
+ };
54
+ const reference = (from) => from
55
+ ? from.package
56
+ ? { name: from.name, package: from.package, module: from.file }
57
+ : { name: from.name, module: paths.moduleOf(from.file) }
58
+ : undefined;
59
+ for (const component of extraction.components) {
60
+ const module = paths.moduleOf(component.file);
61
+ const tagName = tags.get(`${component.file}#${component.name}`);
62
+ const superclass = component.superclass.package
63
+ ? { name: component.superclass.name, package: component.superclass.package }
64
+ : {
65
+ name: component.superclass.name,
66
+ module: paths.moduleOf(component.superclass.file),
67
+ };
68
+ const fields = component.properties.map((p) => ({
69
+ kind: 'field',
70
+ name: p.name,
71
+ type: { text: p.type },
72
+ ...optional('default', knownDefault(p.default)),
73
+ ...optional('description', p.description),
74
+ ...optional('deprecated', p.deprecated && (p.deprecated.reason ?? true)),
75
+ ...optional('attribute', p.attribute ?? undefined),
76
+ ...optional('reflects', p.reflects || undefined),
77
+ ...optional('inheritedFrom', reference(p.inheritedFrom)),
78
+ }));
79
+ const members = component.members.map((m) => m.kind === 'field'
80
+ ? {
81
+ kind: 'field',
82
+ name: m.name,
83
+ type: { text: m.type },
84
+ ...optional('readonly', m.readonly || undefined),
85
+ ...optional('description', m.description),
86
+ }
87
+ : { kind: 'method', name: m.name, ...optional('description', m.description) });
88
+ const declaration = {
89
+ kind: 'class',
90
+ name: component.name,
91
+ ...optional('description', component.description),
92
+ ...optional('deprecated', component.tags['deprecated'] && (component.tags['deprecated'][0]?.value || true)),
93
+ customElement: true,
94
+ ...optional('tagName', tagName),
95
+ superclass,
96
+ members: [...fields, ...members],
97
+ attributes: component.properties
98
+ .filter((p) => p.attribute)
99
+ .map((p) => ({
100
+ name: p.attribute,
101
+ type: { text: p.type },
102
+ fieldName: p.name,
103
+ ...optional('default', knownDefault(p.default)),
104
+ ...optional('description', p.description),
105
+ ...optional('deprecated', p.deprecated && (p.deprecated.reason ?? true)),
106
+ ...optional('inheritedFrom', reference(p.inheritedFrom)),
107
+ })),
108
+ events: component.events.map((e) => ({
109
+ name: e.name,
110
+ type: { text: e.detailType === 'void' ? 'CustomEvent' : `CustomEvent<${e.detailType}>` },
111
+ ...optional('description', e.description),
112
+ ...optional('deprecated', e.deprecated && (e.deprecated.reason ?? true)),
113
+ ...optional('inheritedFrom', reference(e.inheritedFrom)),
114
+ })),
115
+ slots: [...component.slots]
116
+ .sort(byName)
117
+ .map((s) => ({ name: s.name, description: s.description ?? '' })),
118
+ cssParts: [...component.parts]
119
+ .sort(byName)
120
+ .map((s) => ({ name: s.name, description: s.description ?? '' })),
121
+ cssProperties: [...component.cssProperties]
122
+ .sort(byName)
123
+ .map((s) => ({ name: s.name, description: s.description ?? '' })),
124
+ cssStates: [...component.cssStates]
125
+ .sort(byName)
126
+ .map((s) => ({ name: s.name, description: s.description ?? '' })),
127
+ };
128
+ const entry = moduleEntry(module);
129
+ entry.declarations.push(declaration);
130
+ if (component.exported)
131
+ entry.exports.push({
132
+ kind: 'js',
133
+ name: component.name,
134
+ declaration: { name: component.name, module },
135
+ });
136
+ }
137
+ for (const registration of extraction.registrations) {
138
+ moduleEntry(paths.moduleOf(registration.file)).exports.push({
139
+ kind: 'custom-element-definition',
140
+ name: registration.tag,
141
+ declaration: { name: registration.className, module: paths.moduleOf(registration.classFile) },
142
+ });
143
+ }
144
+ // Re-exports: a module exporting a component class declared in another module.
145
+ const declaredIn = new Map();
146
+ for (const component of extraction.components)
147
+ declaredIn.set(component.name, [...(declaredIn.get(component.name) ?? []), component.file]);
148
+ for (const [file, names] of [...extraction.exports].sort(([a], [b]) => (a < b ? -1 : 1))) {
149
+ for (const name of names) {
150
+ const sources = declaredIn.get(name);
151
+ if (!sources || sources.length !== 1 || sources[0] === file)
152
+ continue;
153
+ moduleEntry(paths.moduleOf(file)).exports.push({
154
+ kind: 'js',
155
+ name,
156
+ declaration: { name, module: paths.moduleOf(sources[0]) },
157
+ });
158
+ }
159
+ }
160
+ return {
161
+ schemaVersion: '2.1.0',
162
+ modules: [...modules.entries()]
163
+ .sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))
164
+ .map(([path, entry]) => ({
165
+ kind: 'javascript-module',
166
+ path,
167
+ declarations: entry.declarations,
168
+ exports: entry.exports,
169
+ })),
170
+ };
171
+ }
172
+ const definitionOf = (definition, paths) => {
173
+ if (!definition)
174
+ return undefined;
175
+ const ref = (source) => source.package
176
+ ? { package: source.package, module: source.file, name: source.name }
177
+ : { module: source.external ? source.file : paths.moduleOf(source.file), name: source.name };
178
+ return {
179
+ ...optional('ref', definition.ref && ref(definition.ref)),
180
+ ...optional('extends', definition.extends && `component:${definition.extends}`),
181
+ ...optional('template', definition.template && ref(definition.template)),
182
+ ...optional('styles', definition.styles.map(ref)),
183
+ ...optional('dependencies', Object.keys(definition.dependencies).length
184
+ ? Object.fromEntries(Object.entries(definition.dependencies)
185
+ .sort(([a], [b]) => (a < b ? -1 : 1))
186
+ .map(([role, tag]) => [role, `component:${tag}`]))
187
+ : undefined),
188
+ };
189
+ };
190
+ const FACT_TAGS = {
191
+ a11y: 'a11y',
192
+ keyboard: 'keyboard',
193
+ useFor: 'useFor',
194
+ notFor: 'notFor',
195
+ limitation: 'limitations',
196
+ };
197
+ /**
198
+ * Deprecations (component, properties, events) with their authored replacement and migration,
199
+ * `@since`, and the customization paths: authored ladder levels (unknown when not declared) and
200
+ * the documented variables, parts, and slots that level 2 works through.
201
+ */
202
+ function lifecycle(component, tag) {
203
+ const authored = (location) => location
204
+ ? {
205
+ provenance: 'authored',
206
+ source: { file: location.file, line: location.line, column: location.column },
207
+ }
208
+ : { provenance: 'authored' };
209
+ const first = (name) => component.tags[name]?.[0];
210
+ // A replacement is written as a tag, a member name, or a stable id; ids are kept as written.
211
+ const id = (value, kind) => !value
212
+ ? undefined
213
+ : value.includes(':')
214
+ ? value
215
+ : kind === 'component'
216
+ ? `component:${value.replace(/^<|>$/g, '')}`
217
+ : `${kind}:${tag}#${value}`;
218
+ const entry = (subject, kind, d) => ({
219
+ id: subject,
220
+ ...optional('reason', d.reason),
221
+ ...optional('replacement', id(d.replacement, kind)),
222
+ ...optional('migration', d.migration),
223
+ ...authored(d.location),
224
+ });
225
+ const deprecated = first('deprecated');
226
+ const deprecations = [
227
+ ...(deprecated
228
+ ? [
229
+ entry(`component:${tag}`, 'component', {
230
+ ...(deprecated.value ? { reason: deprecated.value } : {}),
231
+ ...(first('replacement') ? { replacement: first('replacement').value } : {}),
232
+ ...(first('migration') ? { migration: first('migration').value } : {}),
233
+ location: deprecated.location,
234
+ }),
235
+ ]
236
+ : []),
237
+ ...component.properties
238
+ .filter((p) => p.deprecated)
239
+ .map((p) => entry(`property:${tag}#${p.name}`, 'property', p.deprecated)),
240
+ ...component.events
241
+ .filter((e) => e.deprecated)
242
+ .map((e) => entry(`event:${tag}#${e.name}`, 'event', e.deprecated)),
243
+ ];
244
+ const since = first('since');
245
+ const levels = first('customization');
246
+ const valid = levels && /^[1-5]( [1-5])*$/.test(levels.value.replace(/\s+/g, ' '));
247
+ return {
248
+ ...optional('since', since && { value: since.value, ...authored(since.location) }),
249
+ ...optional('deprecations', deprecations),
250
+ customization: {
251
+ levels: valid
252
+ ? {
253
+ value: [...new Set(levels.value.split(/\s+/).map(Number))].sort(),
254
+ ...authored(levels.location),
255
+ }
256
+ : { known: false, provenance: 'extracted' },
257
+ variables: [...component.cssProperties].sort(byName).map((c) => `cssprop:${tag}#${c.name}`),
258
+ parts: [...component.parts].sort(byName).map((p) => `part:${tag}#${p.name}`),
259
+ slots: [...component.slots].sort(byName).map((s) => `slot:${tag}#${s.name || 'default'}`),
260
+ },
261
+ };
262
+ }
263
+ export function buildMetadata(extraction, paths, library, oddkinVersion) {
264
+ const components = {};
265
+ const byClass = new Map(extraction.components.map((c) => [`${c.file}#${c.name}`, c]));
266
+ for (const registration of [...extraction.registrations].sort((a, b) => a.tag < b.tag ? -1 : 1)) {
267
+ const component = byClass.get(`${registration.classFile}#${registration.className}`);
268
+ if (!component)
269
+ continue;
270
+ const facts = {};
271
+ for (const [tag, entries] of Object.entries(component.tags)) {
272
+ const key = FACT_TAGS[tag];
273
+ if (!key)
274
+ continue;
275
+ facts[key] = entries.map((e) => ({
276
+ value: e.value,
277
+ provenance: 'authored',
278
+ source: { file: e.location.file, line: e.location.line, column: e.location.column },
279
+ }));
280
+ }
281
+ const category = authoredCategory(component)?.label;
282
+ const related = (component.tags['related'] ?? [])
283
+ .flatMap((e) => e.value.split(/[\s,]+/))
284
+ .filter(Boolean)
285
+ .map((tag) => `component:${tag.replace(/^<|>$/g, '')}`);
286
+ const module = paths.moduleOf(registration.file);
287
+ components[`component:${registration.tag}`] = {
288
+ tag: registration.tag,
289
+ cem: { module: paths.moduleOf(component.file), name: component.name },
290
+ registration: paths.specifierOf(module) ?? module,
291
+ ...optional('definition', definitionOf(registration.definition, paths)),
292
+ ...optional('category', category ? categoryId(category) : undefined),
293
+ ...optional('syncPairs', component.events
294
+ .filter((e) => e.syncs)
295
+ .map((e) => ({ property: e.syncs, event: e.name }))),
296
+ // Rich values (arrays, objects, functions) and accessors have no attribute.
297
+ ...optional('propertyOnly', [
298
+ ...component.properties.filter((p) => p.attribute === null).map((p) => p.name),
299
+ ...component.members.filter((m) => m.kind === 'field' && !m.readonly).map((m) => m.name),
300
+ ]
301
+ .sort()
302
+ .map((name) => ({
303
+ property: `property:${registration.tag}#${name}`,
304
+ provenance: 'extracted',
305
+ }))),
306
+ ...optional('events', [...component.events].sort(byName).map((e) => ({
307
+ event: `event:${registration.tag}#${e.name}`,
308
+ intent: e.intent
309
+ ? {
310
+ value: e.intent.value,
311
+ provenance: 'authored',
312
+ ...(e.intent.source ? { source: e.intent.source } : {}),
313
+ }
314
+ : { known: false, provenance: 'extracted' },
315
+ }))),
316
+ ...optional('tokenReads', component.tokenReads.map((t) => ({
317
+ token: t.token,
318
+ kind: 'declared',
319
+ readThrough: t.readThrough,
320
+ }))),
321
+ ...optional('styleMappings', [...(component.styleMappings ?? [])]),
322
+ ...optional('previewRoles', (component.tags['previewRole'] ?? [])
323
+ .flatMap((e) => e.value.split(/[\s,]+/))
324
+ .filter(Boolean)
325
+ .map((role) => `role:${role}`)),
326
+ ...facts,
327
+ ...lifecycle(component, registration.tag),
328
+ ...optional('related', related),
329
+ ...optional('authored', component.authored?.ids.map((id) => {
330
+ const [kind, name] = id.split('#');
331
+ return {
332
+ id: `${kind}:${registration.tag}#${name}`,
333
+ provenance: 'authored',
334
+ source: { file: component.authored?.file, line: 1 },
335
+ };
336
+ })),
337
+ };
338
+ }
339
+ const recipes = Object.fromEntries([...extraction.recipes].sort(byName).map((r) => [
340
+ `recipe:${r.name}`,
341
+ {
342
+ name: r.name,
343
+ ...optional('container', r.container),
344
+ regions: Object.fromEntries(Object.entries(r.regions).map(([region, helper]) => [
345
+ region,
346
+ {
347
+ helper: ['stack', 'row', 'grid', 'autoGrid', 'split'].includes(helper)
348
+ ? helper
349
+ : 'custom',
350
+ },
351
+ ])),
352
+ ...optional('variants', Object.keys(r.variants).length ? r.variants : undefined),
353
+ ...optional('conditions', r.conditions),
354
+ ...optional('parts', r.parts),
355
+ layers: ['recipe.base', 'recipe.variant', 'recipe.condition'],
356
+ },
357
+ ]));
358
+ const models = Object.fromEntries([...extraction.models].sort(byName).map((m) => [
359
+ `model:${m.name}`,
360
+ {
361
+ name: m.name,
362
+ version: m.version,
363
+ schema: `schemas/${m.name}.v${m.version}.json`,
364
+ ...optional('kinds', m.kinds),
365
+ },
366
+ ]));
367
+ const sourceEntries = (list, facts) => Object.fromEntries(list
368
+ .map((source) => {
369
+ const module = paths.moduleOf(source.ref.file);
370
+ return [
371
+ `${module}#${source.ref.name}`,
372
+ { module, name: source.ref.name, ...facts(source) },
373
+ ];
374
+ })
375
+ .sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0)));
376
+ const unique = (list) => [...new Set(list)].sort();
377
+ const templates = sourceEntries(extraction.sources.templates, (t) => ({
378
+ ...optional('slots', unique(t.slots)),
379
+ ...optional('parts', unique(t.parts)),
380
+ }));
381
+ const styles = sourceEntries(extraction.sources.styles, (s) => ({
382
+ ...optional('cssProperties', unique(s.cssProperties)),
383
+ ...optional('tokens', unique(s.tokens)),
384
+ ...optional('css', s.css),
385
+ }));
386
+ const { categories } = categoryRecords(extraction);
387
+ return {
388
+ schema: 'https://oddkin.dev/schemas/oddkin-metadata/v1.json',
389
+ oddkinVersion,
390
+ library,
391
+ components,
392
+ ...optional('categories', Object.keys(categories).length ? categories : undefined),
393
+ ...optional('recipes', Object.keys(recipes).length ? recipes : undefined),
394
+ ...optional('models', Object.keys(models).length ? models : undefined),
395
+ ...optional('templates', Object.keys(templates).length ? templates : undefined),
396
+ ...optional('styles', Object.keys(styles).length ? styles : undefined),
397
+ diagnostics: sortDiagnostics(extraction.diagnostics),
398
+ };
399
+ }
400
+ export function sortDiagnostics(diagnostics) {
401
+ const key = (d) => `${d.source?.file ?? ''}\u0000${String(d.source?.line ?? 0).padStart(8, '0')}\u0000${String(d.source?.column ?? 0).padStart(8, '0')}\u0000${d.code}`;
402
+ return [...diagnostics].sort((a, b) => (key(a) < key(b) ? -1 : key(a) > key(b) ? 1 : 0));
403
+ }
404
+ /** Stable JSON text: two-space indentation and a trailing newline. */
405
+ export const stableJson = (value) => `${JSON.stringify(value, null, 2)}\n`;
406
+ //# sourceMappingURL=emit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit.js","sourceRoot":"","sources":["../src/emit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { AnalyzerDiagnostic, SourceLocation } from './extract.js';
2
+ import type { AuthoredText } from './references.js';
3
+ export interface ExampleInfo {
4
+ readonly component: string;
5
+ readonly name: string;
6
+ readonly file: string;
7
+ readonly hasFixture: boolean;
8
+ readonly previewRoles?: readonly string[];
9
+ /** A common mistake: the diagnostic it demonstrates and the correct example to use instead. */
10
+ readonly incorrect?: {
11
+ readonly diagnostic: string;
12
+ readonly correct: string;
13
+ };
14
+ /** Other custom elements its fixture renders, read from literal markup and `createElement()`. */
15
+ readonly uses?: readonly string[];
16
+ /** Literal label, guidance, and mistake explanation, for the authored-reference check. */
17
+ readonly texts?: readonly AuthoredText[];
18
+ /**
19
+ * The example's values as `toExamplesJSON()` serializes them (label, props, attributes, slots,
20
+ * preset, guidance, and `hasFixture` for a fixture), when every one is spelled out in the source.
21
+ */
22
+ readonly definition?: Readonly<Record<string, JsonValue>>;
23
+ readonly location: SourceLocation;
24
+ }
25
+ type JsonValue = null | boolean | number | string | JsonValue[] | {
26
+ [key: string]: JsonValue;
27
+ };
28
+ /** Example files under `dir`, sorted. */
29
+ export declare function findExampleFiles(dir: string): string[];
30
+ export declare function extractExamples(files: readonly string[], root: string): {
31
+ examples: ExampleInfo[];
32
+ diagnostics: AnalyzerDiagnostic[];
33
+ };
34
+ export {};
35
+ //# sourceMappingURL=examples.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"examples.d.ts","sourceRoot":"","sources":["../src/examples.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,+FAA+F;IAC/F,QAAQ,CAAC,SAAS,CAAC,EAAE;QAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/E,iGAAiG;IACjG,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,0FAA0F;IAC1F,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACzC;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;CACnC;AAED,KAAK,SAAS,GAAG,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AA6J/F,yCAAyC;AACzC,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAkBtD;AAqCD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,IAAI,EAAE,MAAM,GACX;IAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;IAAC,WAAW,EAAE,kBAAkB,EAAE,CAAA;CAAE,CA8IhE"}