@terrazzo/parser 0.7.3 → 0.8.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 (100) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/index.d.ts +705 -12
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +4603 -12
  5. package/dist/index.js.map +1 -1
  6. package/package.json +11 -7
  7. package/src/build/index.ts +8 -6
  8. package/src/index.ts +76 -1
  9. package/dist/build/index.d.ts +0 -20
  10. package/dist/build/index.d.ts.map +0 -1
  11. package/dist/build/index.js +0 -166
  12. package/dist/build/index.js.map +0 -1
  13. package/dist/config.d.ts +0 -8
  14. package/dist/config.d.ts.map +0 -1
  15. package/dist/config.js +0 -290
  16. package/dist/config.js.map +0 -1
  17. package/dist/lib/code-frame.d.ts +0 -31
  18. package/dist/lib/code-frame.d.ts.map +0 -1
  19. package/dist/lib/code-frame.js +0 -108
  20. package/dist/lib/code-frame.js.map +0 -1
  21. package/dist/lint/index.d.ts +0 -12
  22. package/dist/lint/index.d.ts.map +0 -1
  23. package/dist/lint/index.js +0 -105
  24. package/dist/lint/index.js.map +0 -1
  25. package/dist/lint/plugin-core/index.d.ts +0 -13
  26. package/dist/lint/plugin-core/index.d.ts.map +0 -1
  27. package/dist/lint/plugin-core/index.js +0 -40
  28. package/dist/lint/plugin-core/index.js.map +0 -1
  29. package/dist/lint/plugin-core/lib/docs.d.ts +0 -2
  30. package/dist/lint/plugin-core/lib/docs.d.ts.map +0 -1
  31. package/dist/lint/plugin-core/lib/docs.js +0 -4
  32. package/dist/lint/plugin-core/lib/docs.js.map +0 -1
  33. package/dist/lint/plugin-core/rules/a11y-min-contrast.d.ts +0 -40
  34. package/dist/lint/plugin-core/rules/a11y-min-contrast.d.ts.map +0 -1
  35. package/dist/lint/plugin-core/rules/a11y-min-contrast.js +0 -58
  36. package/dist/lint/plugin-core/rules/a11y-min-contrast.js.map +0 -1
  37. package/dist/lint/plugin-core/rules/a11y-min-font-size.d.ts +0 -14
  38. package/dist/lint/plugin-core/rules/a11y-min-font-size.d.ts.map +0 -1
  39. package/dist/lint/plugin-core/rules/a11y-min-font-size.js +0 -45
  40. package/dist/lint/plugin-core/rules/a11y-min-font-size.js.map +0 -1
  41. package/dist/lint/plugin-core/rules/colorspace.d.ts +0 -15
  42. package/dist/lint/plugin-core/rules/colorspace.d.ts.map +0 -1
  43. package/dist/lint/plugin-core/rules/colorspace.js +0 -85
  44. package/dist/lint/plugin-core/rules/colorspace.js.map +0 -1
  45. package/dist/lint/plugin-core/rules/consistent-naming.d.ts +0 -12
  46. package/dist/lint/plugin-core/rules/consistent-naming.d.ts.map +0 -1
  47. package/dist/lint/plugin-core/rules/consistent-naming.js +0 -49
  48. package/dist/lint/plugin-core/rules/consistent-naming.js.map +0 -1
  49. package/dist/lint/plugin-core/rules/descriptions.d.ts +0 -10
  50. package/dist/lint/plugin-core/rules/descriptions.d.ts.map +0 -1
  51. package/dist/lint/plugin-core/rules/descriptions.js +0 -32
  52. package/dist/lint/plugin-core/rules/descriptions.js.map +0 -1
  53. package/dist/lint/plugin-core/rules/duplicate-values.d.ts +0 -10
  54. package/dist/lint/plugin-core/rules/duplicate-values.d.ts.map +0 -1
  55. package/dist/lint/plugin-core/rules/duplicate-values.js +0 -65
  56. package/dist/lint/plugin-core/rules/duplicate-values.js.map +0 -1
  57. package/dist/lint/plugin-core/rules/max-gamut.d.ts +0 -15
  58. package/dist/lint/plugin-core/rules/max-gamut.d.ts.map +0 -1
  59. package/dist/lint/plugin-core/rules/max-gamut.js +0 -101
  60. package/dist/lint/plugin-core/rules/max-gamut.js.map +0 -1
  61. package/dist/lint/plugin-core/rules/required-children.d.ts +0 -19
  62. package/dist/lint/plugin-core/rules/required-children.d.ts.map +0 -1
  63. package/dist/lint/plugin-core/rules/required-children.js +0 -78
  64. package/dist/lint/plugin-core/rules/required-children.js.map +0 -1
  65. package/dist/lint/plugin-core/rules/required-modes.d.ts +0 -14
  66. package/dist/lint/plugin-core/rules/required-modes.d.ts.map +0 -1
  67. package/dist/lint/plugin-core/rules/required-modes.js +0 -52
  68. package/dist/lint/plugin-core/rules/required-modes.js.map +0 -1
  69. package/dist/lint/plugin-core/rules/required-typography-properties.d.ts +0 -11
  70. package/dist/lint/plugin-core/rules/required-typography-properties.d.ts.map +0 -1
  71. package/dist/lint/plugin-core/rules/required-typography-properties.js +0 -38
  72. package/dist/lint/plugin-core/rules/required-typography-properties.js.map +0 -1
  73. package/dist/logger.d.ts +0 -77
  74. package/dist/logger.d.ts.map +0 -1
  75. package/dist/logger.js +0 -136
  76. package/dist/logger.js.map +0 -1
  77. package/dist/parse/alias.d.ts +0 -34
  78. package/dist/parse/alias.d.ts.map +0 -1
  79. package/dist/parse/alias.js +0 -302
  80. package/dist/parse/alias.js.map +0 -1
  81. package/dist/parse/index.d.ts +0 -41
  82. package/dist/parse/index.d.ts.map +0 -1
  83. package/dist/parse/index.js +0 -273
  84. package/dist/parse/index.js.map +0 -1
  85. package/dist/parse/json.d.ts +0 -52
  86. package/dist/parse/json.d.ts.map +0 -1
  87. package/dist/parse/json.js +0 -168
  88. package/dist/parse/json.js.map +0 -1
  89. package/dist/parse/normalize.d.ts +0 -24
  90. package/dist/parse/normalize.d.ts.map +0 -1
  91. package/dist/parse/normalize.js +0 -176
  92. package/dist/parse/normalize.js.map +0 -1
  93. package/dist/parse/validate.d.ts +0 -90
  94. package/dist/parse/validate.d.ts.map +0 -1
  95. package/dist/parse/validate.js +0 -787
  96. package/dist/parse/validate.js.map +0 -1
  97. package/dist/types.d.ts +0 -265
  98. package/dist/types.d.ts.map +0 -1
  99. package/dist/types.js +0 -2
  100. package/dist/types.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- export interface Location {
2
- line: number;
3
- column: number;
4
- }
5
- export interface NodeLocation {
6
- end?: Location;
7
- start: Location;
8
- }
9
- export interface Options {
10
- /** Syntax highlight the code as JavaScript for terminals. default: false */
11
- highlightCode?: boolean;
12
- /** The number of lines to show above the error. default: 2 */
13
- linesAbove?: number;
14
- /** The number of lines to show below the error. default: 3 */
15
- linesBelow?: number;
16
- /**
17
- * Forcibly syntax highlight the code as JavaScript (for non-terminals);
18
- * overrides highlightCode.
19
- * default: false
20
- */
21
- forceColor?: boolean;
22
- /**
23
- * Pass in a string to be displayed inline (if possible) next to the
24
- * highlighted location in the code. If it can't be positioned inline,
25
- * it will be placed above the code frame.
26
- * default: nothing
27
- */
28
- message?: string;
29
- }
30
- export declare function codeFrameColumns(rawLines: string, loc: NodeLocation, opts?: Options): string;
31
- //# sourceMappingURL=code-frame.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-frame.d.ts","sourceRoot":"","sources":["../../src/lib/code-frame.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA4ED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,GAAE,OAAuB,UAwClG"}
@@ -1,108 +0,0 @@
1
- // This is copied from @babel/code-frame package but without the heavyweight color highlighting
2
- // (note: Babel loads both chalk AND picocolors, and doesn’t treeshake well)
3
- // Babel is MIT-licensed and unaffiliated with this project.
4
- /**
5
- * Extract what lines should be marked and highlighted.
6
- */
7
- function getMarkerLines(loc, source, opts = {}) {
8
- const startLoc = {
9
- // @ts-ignore this is fine
10
- column: 0,
11
- // @ts-ignore this is fine
12
- line: -1,
13
- ...loc.start,
14
- };
15
- const endLoc = {
16
- ...startLoc,
17
- ...loc.end,
18
- };
19
- const { linesAbove = 2, linesBelow = 3 } = opts || {};
20
- const startLine = startLoc.line;
21
- const startColumn = startLoc.column;
22
- const endLine = endLoc.line;
23
- const endColumn = endLoc.column;
24
- let start = Math.max(startLine - (linesAbove + 1), 0);
25
- let end = Math.min(source.length, endLine + linesBelow);
26
- if (startLine === -1) {
27
- start = 0;
28
- }
29
- if (endLine === -1) {
30
- end = source.length;
31
- }
32
- const lineDiff = endLine - startLine;
33
- const markerLines = {};
34
- if (lineDiff) {
35
- for (let i = 0; i <= lineDiff; i++) {
36
- const lineNumber = i + startLine;
37
- if (!startColumn) {
38
- markerLines[lineNumber] = true;
39
- }
40
- else if (i === 0) {
41
- const sourceLength = source[lineNumber - 1].length;
42
- markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];
43
- }
44
- else if (i === lineDiff) {
45
- markerLines[lineNumber] = [0, endColumn];
46
- }
47
- else {
48
- const sourceLength = source[lineNumber - i].length;
49
- markerLines[lineNumber] = [0, sourceLength];
50
- }
51
- }
52
- }
53
- else {
54
- if (startColumn === endColumn) {
55
- if (startColumn) {
56
- markerLines[startLine] = [startColumn, 0];
57
- }
58
- else {
59
- markerLines[startLine] = true;
60
- }
61
- }
62
- else {
63
- markerLines[startLine] = [startColumn, endColumn - startColumn];
64
- }
65
- }
66
- return { start, end, markerLines };
67
- }
68
- /**
69
- * RegExp to test for newlines in terminal.
70
- */
71
- const NEWLINE = /\r\n|[\n\r\u2028\u2029]/;
72
- export function codeFrameColumns(rawLines, loc, opts = {}) {
73
- const lines = rawLines.split(NEWLINE);
74
- const { start, end, markerLines } = getMarkerLines(loc, lines, opts);
75
- const hasColumns = loc.start && typeof loc.start.column === 'number';
76
- const numberMaxWidth = String(end).length;
77
- let frame = rawLines
78
- .split(NEWLINE, end)
79
- .slice(start, end)
80
- .map((line, index) => {
81
- const number = start + 1 + index;
82
- const paddedNumber = ` ${number}`.slice(-numberMaxWidth);
83
- const gutter = ` ${paddedNumber} |`;
84
- const hasMarker = markerLines[number];
85
- const lastMarkerLine = !markerLines[number + 1];
86
- if (hasMarker) {
87
- let markerLine = '';
88
- if (Array.isArray(hasMarker)) {
89
- const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, ' ');
90
- const numberOfMarkers = hasMarker[1] || 1;
91
- markerLine = ['\n ', gutter.replace(/\d/g, ' '), ' ', markerSpacing, '^'.repeat(numberOfMarkers)].join('');
92
- if (lastMarkerLine && opts.message) {
93
- markerLine += ` ${opts.message}`;
94
- }
95
- }
96
- return ['>', gutter, line.length > 0 ? ` ${line}` : '', markerLine].join('');
97
- }
98
- else {
99
- return ` ${gutter}${line.length > 0 ? ` ${line}` : ''}`;
100
- }
101
- })
102
- .join('\n');
103
- if (opts.message && !hasColumns) {
104
- frame = `${' '.repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`;
105
- }
106
- return frame;
107
- }
108
- //# sourceMappingURL=code-frame.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-frame.js","sourceRoot":"","sources":["../../src/lib/code-frame.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import { type TokenNormalized } from '@terrazzo/token-tools';
2
- import type { default as Logger } from '../logger.js';
3
- import type { ConfigInit } from '../types.js';
4
- export interface LintRunnerOptions {
5
- tokens: Record<string, TokenNormalized>;
6
- filename?: URL;
7
- config: ConfigInit;
8
- src: string;
9
- logger: Logger;
10
- }
11
- export default function lintRunner({ tokens, filename, config, src, logger, }: LintRunnerOptions): Promise<void>;
12
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lint/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAa,MAAM,uBAAuB,CAAC;AAExE,OAAO,KAAK,EAAY,OAAO,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI9C,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAA8B,UAAU,CAAC,EACvC,MAAM,EACN,QAAQ,EACR,MAAyB,EACzB,GAAG,EACH,MAAM,GACP,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmHnC"}
@@ -1,105 +0,0 @@
1
- import { pluralize } from '@terrazzo/token-tools';
2
- import { merge } from 'merge-anything';
3
- const listFormat = new Intl.ListFormat('en-us');
4
- export default async function lintRunner({ tokens, filename, config = {}, src, logger, }) {
5
- const { plugins = [], lint } = config;
6
- const unusedLintRules = Object.keys(lint?.rules ?? {});
7
- for (const plugin of plugins) {
8
- if (typeof plugin.lint === 'function') {
9
- const s = performance.now();
10
- const linter = plugin.lint();
11
- const errors = [];
12
- const warnings = [];
13
- await Promise.all(Object.entries(linter).map(async ([id, rule]) => {
14
- if (!(id in lint.rules) || lint.rules[id] === null) {
15
- return;
16
- }
17
- const [severity, options] = lint.rules[id];
18
- if (severity === 'off') {
19
- return;
20
- }
21
- // note: this usually isn’t a Promise, but it _might_ be!
22
- await rule.create({
23
- id,
24
- report(descriptor) {
25
- let message = '';
26
- if (!descriptor.message && !descriptor.messageId) {
27
- logger.error({
28
- group: 'lint',
29
- label: `${plugin.name} › lint › ${id}`,
30
- message: 'Unable to report error: missing message or messageId',
31
- });
32
- }
33
- // handle message or messageId
34
- if (descriptor.message) {
35
- message = descriptor.message;
36
- }
37
- else {
38
- if (!(descriptor.messageId in (rule.meta?.messages ?? {}))) {
39
- logger.error({
40
- group: 'lint',
41
- label: `${plugin.name} › lint › ${id}`,
42
- message: `messageId "${descriptor.messageId}" does not exist`,
43
- });
44
- }
45
- message = rule.meta?.messages?.[descriptor.messageId] ?? '';
46
- }
47
- // replace with descriptor.data (if any)
48
- if (descriptor.data && typeof descriptor.data === 'object') {
49
- for (const [k, v] of Object.entries(descriptor.data)) {
50
- // lazy formatting
51
- const formatted = ['string', 'number', 'boolean'].includes(typeof v) ? String(v) : JSON.stringify(v);
52
- message = message.replace(/{{[^}]+}}/g, (inner) => {
53
- const key = inner.substring(2, inner.length - 2).trim();
54
- return key === k ? formatted : inner;
55
- });
56
- }
57
- }
58
- (severity === 'error' ? errors : warnings).push({
59
- group: 'lint',
60
- label: id,
61
- message,
62
- filename,
63
- node: descriptor.node,
64
- src: descriptor.source?.src,
65
- });
66
- },
67
- tokens,
68
- filename,
69
- src,
70
- options: merge(rule.meta?.defaultOptions ?? [], rule.defaultOptions ?? [], // Note: is this the correct order to merge in?
71
- options),
72
- });
73
- // tick off used rule
74
- const unusedLintRuleI = unusedLintRules.indexOf(id);
75
- if (unusedLintRuleI !== -1) {
76
- unusedLintRules.splice(unusedLintRuleI, 1);
77
- }
78
- }));
79
- for (const error of errors) {
80
- logger.error({ ...error, continueOnError: true }); // print out all errors before exiting here
81
- }
82
- for (const warning of warnings) {
83
- logger.warn(warning);
84
- }
85
- logger.debug({ group: 'lint', label: plugin.name, message: 'Finished', timing: performance.now() - s });
86
- if (errors.length) {
87
- const counts = [pluralize(errors.length, 'error', 'errors')];
88
- if (warnings.length) {
89
- counts.push(pluralize(warnings.length, 'warning', 'warnings'));
90
- }
91
- logger.error({
92
- group: 'lint',
93
- message: `Lint failed with ${listFormat.format(counts)}`,
94
- label: plugin.name,
95
- continueOnError: false,
96
- });
97
- }
98
- }
99
- }
100
- // warn user if they have unused lint rules (they might have meant to configure something!)
101
- for (const unusedRule of unusedLintRules) {
102
- logger.warn({ group: 'lint', label: 'lint', message: `Unknown lint rule "${unusedRule}"` });
103
- }
104
- }
105
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lint/index.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import type { Plugin } from '../../types.js';
2
- export * from './rules/a11y-min-contrast.js';
3
- export * from './rules/a11y-min-font-size.js';
4
- export * from './rules/colorspace.js';
5
- export * from './rules/consistent-naming.js';
6
- export * from './rules/descriptions.js';
7
- export * from './rules/duplicate-values.js';
8
- export * from './rules/max-gamut.js';
9
- export * from './rules/required-children.js';
10
- export * from './rules/required-modes.js';
11
- export * from './rules/required-typography-properties.js';
12
- export default function coreLintPlugin(): Plugin;
13
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lint/plugin-core/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2CAA2C,CAAC;AAe1D,MAAM,CAAC,OAAO,UAAU,cAAc,IAAI,MAAM,CAkB/C"}
@@ -1,40 +0,0 @@
1
- export * from './rules/a11y-min-contrast.js';
2
- export * from './rules/a11y-min-font-size.js';
3
- export * from './rules/colorspace.js';
4
- export * from './rules/consistent-naming.js';
5
- export * from './rules/descriptions.js';
6
- export * from './rules/duplicate-values.js';
7
- export * from './rules/max-gamut.js';
8
- export * from './rules/required-children.js';
9
- export * from './rules/required-modes.js';
10
- export * from './rules/required-typography-properties.js';
11
- import a11yMinContrast, { A11Y_MIN_CONTRAST } from './rules/a11y-min-contrast.js';
12
- import a11yMinFontSize, { A11Y_MIN_FONT_SIZE } from './rules/a11y-min-font-size.js';
13
- import colorspace, { COLORSPACE } from './rules/colorspace.js';
14
- import consistentNaming, { CONSISTENT_NAMING } from './rules/consistent-naming.js';
15
- import descriptions, { DESCRIPTIONS } from './rules/descriptions.js';
16
- import duplicateValues, { DUPLICATE_VALUES } from './rules/duplicate-values.js';
17
- import maxGamut, { MAX_GAMUT } from './rules/max-gamut.js';
18
- import requiredChidlren, { REQUIRED_CHILDREN } from './rules/required-children.js';
19
- import requiredModes, { REQUIRED_MODES } from './rules/required-modes.js';
20
- import requiredTypographyProperties, { REQUIRED_TYPOGRAPHY_PROPERTIES, } from './rules/required-typography-properties.js';
21
- export default function coreLintPlugin() {
22
- return {
23
- name: '@terrazzo/plugin-lint-core',
24
- lint() {
25
- return {
26
- [COLORSPACE]: colorspace,
27
- [CONSISTENT_NAMING]: consistentNaming,
28
- [DESCRIPTIONS]: descriptions,
29
- [DUPLICATE_VALUES]: duplicateValues,
30
- [MAX_GAMUT]: maxGamut,
31
- [REQUIRED_CHILDREN]: requiredChidlren,
32
- [REQUIRED_MODES]: requiredModes,
33
- [REQUIRED_TYPOGRAPHY_PROPERTIES]: requiredTypographyProperties,
34
- [A11Y_MIN_CONTRAST]: a11yMinContrast,
35
- [A11Y_MIN_FONT_SIZE]: a11yMinFontSize,
36
- };
37
- },
38
- };
39
- }
40
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lint/plugin-core/index.ts"],"names":[],"mappings":"AAIA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2CAA2C,CAAC;AAE1D,OAAO,eAAe,EAAE,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,eAAe,EAAE,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACpF,OAAO,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,gBAAgB,EAAE,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,YAAY,EAAE,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,eAAe,EAAE,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,gBAAgB,EAAE,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,aAAa,EAAE,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,4BAA4B,EAAE,EACnC,8BAA8B,GAC/B,MAAM,2CAA2C,CAAC;AAEnD,MAAM,CAAC,OAAO,UAAU,cAAc;IACpC,OAAO;QACL,IAAI,EAAE,4BAA4B;QAClC,IAAI;YACF,OAAO;gBACL,CAAC,UAAU,CAAC,EAAE,UAAU;gBACxB,CAAC,iBAAiB,CAAC,EAAE,gBAAgB;gBACrC,CAAC,YAAY,CAAC,EAAE,YAAY;gBAC5B,CAAC,gBAAgB,CAAC,EAAE,eAAe;gBACnC,CAAC,SAAS,CAAC,EAAE,QAAQ;gBACrB,CAAC,iBAAiB,CAAC,EAAE,gBAAgB;gBACrC,CAAC,cAAc,CAAC,EAAE,aAAa;gBAC/B,CAAC,8BAA8B,CAAC,EAAE,4BAA4B;gBAC9D,CAAC,iBAAiB,CAAC,EAAE,eAAe;gBACpC,CAAC,kBAAkB,CAAC,EAAE,eAAe;aACtC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function docsLink(ruleName: string): string;
2
- //# sourceMappingURL=docs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../../src/lint/plugin-core/lib/docs.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEjD"}
@@ -1,4 +0,0 @@
1
- export function docsLink(ruleName) {
2
- return `https://terrazzo.app/docs/cli/lint#${ruleName.replaceAll('/', '')}`;
3
- }
4
- //# sourceMappingURL=docs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../../src/lint/plugin-core/lib/docs.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,QAAgB;IACvC,OAAO,sCAAsC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;AAC9E,CAAC"}
@@ -1,40 +0,0 @@
1
- import type { LintRule } from '../../../types.js';
2
- export declare const A11Y_MIN_CONTRAST = "a11y/min-contrast";
3
- export interface RuleA11yMinContrastOptions {
4
- /**
5
- * Whether to adhere to AA (minimum) or AAA (enhanced) contrast levels.
6
- * @default "AA"
7
- */
8
- level?: 'AA' | 'AAA';
9
- /** Pairs of color tokens (and optionally typography) to test */
10
- pairs: ContrastPair[];
11
- }
12
- export interface ContrastPair {
13
- /** The foreground color token ID */
14
- foreground: string;
15
- /** The background color token ID */
16
- background: string;
17
- /**
18
- * Is this pair for large text? Large text allows a smaller contrast ratio.
19
- *
20
- * Note: while WCAG has _suggested_ sizes and weights, those are merely
21
- * suggestions. It’s always more reliable to determine what constitutes “large
22
- * text” for your designs yourself, based on your typographic stack.
23
- * @see https://www.w3.org/WAI/WCAG22/quickref/#contrast-minimum
24
- */
25
- largeText?: boolean;
26
- }
27
- export declare const WCAG2_MIN_CONTRAST: {
28
- AA: {
29
- default: number;
30
- large: number;
31
- };
32
- AAA: {
33
- default: number;
34
- large: number;
35
- };
36
- };
37
- export declare const ERROR_INSUFFICIENT_CONTRAST = "INSUFFICIENT_CONTRAST";
38
- declare const rule: LintRule<typeof ERROR_INSUFFICIENT_CONTRAST, RuleA11yMinContrastOptions>;
39
- export default rule;
40
- //# sourceMappingURL=a11y-min-contrast.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"a11y-min-contrast.d.ts","sourceRoot":"","sources":["../../../../src/lint/plugin-core/rules/a11y-min-contrast.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGlD,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,KAAK,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;IACrB,gEAAgE;IAChE,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;CAG9B,CAAC;AAEF,eAAO,MAAM,2BAA2B,0BAA0B,CAAC;AAEnE,QAAA,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,2BAA2B,EAAE,0BAA0B,CAgDlF,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1,58 +0,0 @@
1
- import { tokenToCulori } from '@terrazzo/token-tools';
2
- import { wcagContrast } from 'culori';
3
- import { docsLink } from '../lib/docs.js';
4
- export const A11Y_MIN_CONTRAST = 'a11y/min-contrast';
5
- export const WCAG2_MIN_CONTRAST = {
6
- AA: { default: 4.5, large: 3 },
7
- AAA: { default: 7, large: 4.5 },
8
- };
9
- export const ERROR_INSUFFICIENT_CONTRAST = 'INSUFFICIENT_CONTRAST';
10
- const rule = {
11
- meta: {
12
- messages: {
13
- [ERROR_INSUFFICIENT_CONTRAST]: 'Pair {{ index }} failed; expected {{ expected }}, got {{ actual }} ({{ level }})',
14
- },
15
- docs: {
16
- description: 'Enforce colors meet minimum contrast checks for WCAG 2.',
17
- url: docsLink(A11Y_MIN_CONTRAST),
18
- },
19
- },
20
- defaultOptions: { level: 'AA', pairs: [] },
21
- create({ tokens, options, report }) {
22
- for (let i = 0; i < options.pairs.length; i++) {
23
- const { foreground, background, largeText } = options.pairs[i];
24
- if (!tokens[foreground]) {
25
- throw new Error(`Token ${foreground} does not exist`);
26
- }
27
- if (tokens[foreground].$type !== 'color') {
28
- throw new Error(`Token ${foreground} isn’t a color`);
29
- }
30
- if (!tokens[background]) {
31
- throw new Error(`Token ${background} does not exist`);
32
- }
33
- if (tokens[background].$type !== 'color') {
34
- throw new Error(`Token ${background} isn’t a color`);
35
- }
36
- // Note: if these culors were unparseable, they would have already thrown an error before the linter
37
- const a = tokenToCulori(tokens[foreground].$value);
38
- const b = tokenToCulori(tokens[background].$value);
39
- // Note: for the purposes of WCAG 2, foreground and background don’t
40
- // matter. But in other contrast algorithms, they do.
41
- const contrast = wcagContrast(a, b);
42
- const min = WCAG2_MIN_CONTRAST[options.level ?? 'AA'][largeText ? 'large' : 'default'];
43
- if (contrast < min) {
44
- report({
45
- messageId: ERROR_INSUFFICIENT_CONTRAST,
46
- data: {
47
- index: i + 1,
48
- expected: min,
49
- actual: Math.round(contrast * 100) / 100,
50
- level: options.level,
51
- },
52
- });
53
- }
54
- }
55
- },
56
- };
57
- export default rule;
58
- //# sourceMappingURL=a11y-min-contrast.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"a11y-min-contrast.js","sourceRoot":"","sources":["../../../../src/lint/plugin-core/rules/a11y-min-contrast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AA4BrD,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;IAC9B,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,uBAAuB,CAAC;AAEnE,MAAM,IAAI,GAA6E;IACrF,IAAI,EAAE;QACJ,QAAQ,EAAE;YACR,CAAC,2BAA2B,CAAC,EAAE,kFAAkF;SAClH;QACD,IAAI,EAAE;YACJ,WAAW,EAAE,yDAAyD;YACtE,GAAG,EAAE,QAAQ,CAAC,iBAAiB,CAAC;SACjC;KACF;IACD,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1C,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC;YAChE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,SAAS,UAAU,iBAAiB,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,SAAS,UAAU,gBAAgB,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,SAAS,UAAU,iBAAiB,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,SAAS,UAAU,gBAAgB,CAAC,CAAC;YACvD,CAAC;YAED,oGAAoG;YACpG,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAE,CAAC;YACpD,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAE,CAAC;YAEpD,oEAAoE;YACpE,qDAAqD;YACrD,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpC,MAAM,GAAG,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACvF,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC;gBACnB,MAAM,CAAC;oBACL,SAAS,EAAE,2BAA2B;oBACtC,IAAI,EAAE;wBACJ,KAAK,EAAE,CAAC,GAAG,CAAC;wBACZ,QAAQ,EAAE,GAAG;wBACb,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,GAAG;wBACxC,KAAK,EAAE,OAAO,CAAC,KAAK;qBACrB;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1,14 +0,0 @@
1
- import type { LintRule } from '../../../types.js';
2
- export declare const A11Y_MIN_FONT_SIZE = "a11y/min-font-size";
3
- export interface RuleA11yMinFontSizeOptions {
4
- /** Minimum font size (pixels) */
5
- minSizePx?: number;
6
- /** Minimum font size (rems) */
7
- minSizeRem?: number;
8
- /** Token IDs to ignore. Accepts globs. */
9
- ignore?: string[];
10
- }
11
- export declare const ERROR_TOO_SMALL = "TOO_SMALL";
12
- declare const rule: LintRule<typeof ERROR_TOO_SMALL, RuleA11yMinFontSizeOptions>;
13
- export default rule;
14
- //# sourceMappingURL=a11y-min-font-size.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"a11y-min-font-size.d.ts","sourceRoot":"","sources":["../../../../src/lint/plugin-core/rules/a11y-min-font-size.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGlD,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAEvD,MAAM,WAAW,0BAA0B;IACzC,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,eAAO,MAAM,eAAe,cAAc,CAAC;AAE3C,QAAA,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,eAAe,EAAE,0BAA0B,CA4CtE,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1,45 +0,0 @@
1
- import { isTokenMatch } from '@terrazzo/token-tools';
2
- import { docsLink } from '../lib/docs.js';
3
- export const A11Y_MIN_FONT_SIZE = 'a11y/min-font-size';
4
- export const ERROR_TOO_SMALL = 'TOO_SMALL';
5
- const rule = {
6
- meta: {
7
- messages: {
8
- [ERROR_TOO_SMALL]: '{{ id }} font size too small. Expected minimum of {{ min }}',
9
- },
10
- docs: {
11
- description: 'Enforce font sizes are no smaller than the given value.',
12
- url: docsLink(A11Y_MIN_FONT_SIZE),
13
- },
14
- },
15
- defaultOptions: {},
16
- create({ tokens, options, report }) {
17
- if (!options.minSizePx && !options.minSizeRem) {
18
- throw new Error('Must specify at least one of minSizePx or minSizeRem');
19
- }
20
- for (const t of Object.values(tokens)) {
21
- if (options.ignore && isTokenMatch(t.id, options.ignore)) {
22
- continue;
23
- }
24
- // skip aliases
25
- if (t.aliasOf) {
26
- continue;
27
- }
28
- if (t.$type === 'typography' && 'fontSize' in t.$value) {
29
- const fontSize = t.$value.fontSize;
30
- if ((fontSize.unit === 'px' && options.minSizePx && fontSize.value < options.minSizePx) ||
31
- (fontSize.unit === 'rem' && options.minSizeRem && fontSize.value < options.minSizeRem)) {
32
- report({
33
- messageId: ERROR_TOO_SMALL,
34
- data: {
35
- id: t.id,
36
- min: options.minSizePx ? `${options.minSizePx}px` : `${options.minSizeRem}rem`,
37
- },
38
- });
39
- }
40
- }
41
- }
42
- },
43
- };
44
- export default rule;
45
- //# sourceMappingURL=a11y-min-font-size.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"a11y-min-font-size.js","sourceRoot":"","sources":["../../../../src/lint/plugin-core/rules/a11y-min-font-size.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAWvD,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;AAE3C,MAAM,IAAI,GAAiE;IACzE,IAAI,EAAE;QACJ,QAAQ,EAAE;YACR,CAAC,eAAe,CAAC,EAAE,6DAA6D;SACjF;QACD,IAAI,EAAE;YACJ,WAAW,EAAE,yDAAyD;YACtE,GAAG,EAAE,QAAQ,CAAC,kBAAkB,CAAC;SAClC;KACF;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;QAChC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,IAAI,OAAO,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzD,SAAS;YACX,CAAC;YAED,eAAe;YACf,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBACd,SAAS;YACX,CAAC;YAED,IAAI,CAAC,CAAC,KAAK,KAAK,YAAY,IAAI,UAAU,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBACvD,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,QAAS,CAAC;gBAEpC,IACE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC;oBACnF,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,EACtF,CAAC;oBACD,MAAM,CAAC;wBACL,SAAS,EAAE,eAAe;wBAC1B,IAAI,EAAE;4BACJ,EAAE,EAAE,CAAC,CAAC,EAAE;4BACR,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,KAAK;yBAC/E;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1,15 +0,0 @@
1
- import { type ColorValueNormalized } from '@terrazzo/token-tools';
2
- import type { LintRule } from '../../../types.js';
3
- export declare const COLORSPACE = "core/colorspace";
4
- export interface RuleColorspaceOptions {
5
- colorSpace: ColorValueNormalized['colorSpace'];
6
- /** (optional) Token IDs to ignore. Supports globs (`*`). */
7
- ignore?: string[];
8
- }
9
- declare const ERROR_COLOR = "COLOR";
10
- declare const ERROR_BORDER = "BORDER";
11
- declare const ERROR_GRADIENT = "GRADIENT";
12
- declare const ERROR_SHADOW = "SHADOW";
13
- declare const rule: LintRule<typeof ERROR_COLOR | typeof ERROR_BORDER | typeof ERROR_GRADIENT | typeof ERROR_SHADOW, RuleColorspaceOptions>;
14
- export default rule;
15
- //# sourceMappingURL=colorspace.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"colorspace.d.ts","sourceRoot":"","sources":["../../../../src/lint/plugin-core/rules/colorspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,oBAAoB,EAAgB,MAAM,uBAAuB,CAAC;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGlD,eAAO,MAAM,UAAU,oBAAoB,CAAC;AAE5C,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAC/C,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,QAAA,MAAM,WAAW,UAAU,CAAC;AAC5B,QAAA,MAAM,YAAY,WAAW,CAAC;AAC9B,QAAA,MAAM,cAAc,aAAa,CAAC;AAClC,QAAA,MAAM,YAAY,WAAW,CAAC;AAE9B,QAAA,MAAM,IAAI,EAAE,QAAQ,CAClB,OAAO,WAAW,GAAG,OAAO,YAAY,GAAG,OAAO,cAAc,GAAG,OAAO,YAAY,EACtF,qBAAqB,CA+EtB,CAAC;AAEF,eAAe,IAAI,CAAC"}