@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,11 +0,0 @@
1
- import type { LintRule } from '../../../types.js';
2
- export declare const REQUIRED_TYPOGRAPHY_PROPERTIES = "core/required-typography-properties";
3
- export interface RuleRequiredTypographyPropertiesOptions {
4
- /** Required typography properties */
5
- properties: string[];
6
- /** Token globs to ignore */
7
- ignore?: string[];
8
- }
9
- declare const rule: LintRule<never, RuleRequiredTypographyPropertiesOptions>;
10
- export default rule;
11
- //# sourceMappingURL=required-typography-properties.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"required-typography-properties.d.ts","sourceRoot":"","sources":["../../../../src/lint/plugin-core/rules/required-typography-properties.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGlD,eAAO,MAAM,8BAA8B,wCAAwC,CAAC;AAEpF,MAAM,WAAW,uCAAuC;IACtD,qCAAqC;IACrC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,QAAA,MAAM,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,uCAAuC,CAqClE,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1,38 +0,0 @@
1
- import { isTokenMatch } from '@terrazzo/token-tools';
2
- import { docsLink } from '../lib/docs.js';
3
- export const REQUIRED_TYPOGRAPHY_PROPERTIES = 'core/required-typography-properties';
4
- const rule = {
5
- meta: {
6
- docs: {
7
- description: 'Enforce typography tokens have required properties.',
8
- url: docsLink(REQUIRED_TYPOGRAPHY_PROPERTIES),
9
- },
10
- },
11
- defaultOptions: { properties: [] },
12
- create({ tokens, options, report }) {
13
- if (!options) {
14
- return;
15
- }
16
- if (!options.properties.length) {
17
- throw new Error(`"properties" can’t be empty`);
18
- }
19
- for (const t of Object.values(tokens)) {
20
- if (options.ignore && isTokenMatch(t.id, options.ignore)) {
21
- continue;
22
- }
23
- if (t.$type !== 'typography') {
24
- continue;
25
- }
26
- if (t.aliasOf) {
27
- continue;
28
- }
29
- for (const p of options.properties) {
30
- if (!t.partialAliasOf?.[p] && !(p in t.$value)) {
31
- report({ message: `${t.id} missing required typographic property "${p}"`, node: t.source.node });
32
- }
33
- }
34
- }
35
- },
36
- };
37
- export default rule;
38
- //# sourceMappingURL=required-typography-properties.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"required-typography-properties.js","sourceRoot":"","sources":["../../../../src/lint/plugin-core/rules/required-typography-properties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,8BAA8B,GAAG,qCAAqC,CAAC;AASpF,MAAM,IAAI,GAA6D;IACrE,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,WAAW,EAAE,qDAAqD;YAClE,GAAG,EAAE,QAAQ,CAAC,8BAA8B,CAAC;SAC9C;KACF;IACD,cAAc,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;IAClC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;QAChC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,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,IAAI,CAAC,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;gBAC7B,SAAS;YACX,CAAC;YAED,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBACd,SAAS;YACX,CAAC;YAED,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACnC,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC/C,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,2CAA2C,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACnG,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
package/dist/logger.d.ts DELETED
@@ -1,77 +0,0 @@
1
- import type { AnyNode } from '@humanwhocodes/momoa';
2
- export declare const LOG_ORDER: readonly ["error", "warn", "info", "debug"];
3
- export type LogSeverity = 'error' | 'warn' | 'info' | 'debug';
4
- export type LogLevel = LogSeverity | 'silent';
5
- export type LogGroup = 'config' | 'parser' | 'lint' | 'plugin' | 'server';
6
- export interface LogEntry {
7
- /** Originator of log message */
8
- group: LogGroup;
9
- /** Error message to be logged */
10
- message: string;
11
- /** Prefix message with label */
12
- label?: string;
13
- /** File in disk */
14
- filename?: URL;
15
- /**
16
- * Continue on error?
17
- * @default false
18
- */
19
- continueOnError?: boolean;
20
- /** Show a code frame for the erring node */
21
- node?: AnyNode;
22
- /** To show a code frame, provide the original source code */
23
- src?: string;
24
- }
25
- export interface DebugEntry {
26
- group: LogGroup;
27
- /** Error message to be logged */
28
- message: string;
29
- /** Current subtask or submodule */
30
- label?: string;
31
- /** Show code below message */
32
- codeFrame?: {
33
- src: string;
34
- line: number;
35
- column: number;
36
- };
37
- /** Display performance timing */
38
- timing?: number;
39
- }
40
- /**
41
- * @param {Entry} entry
42
- * @param {Severity} severity
43
- * @return {string}
44
- */
45
- export declare function formatMessage(entry: LogEntry, severity: LogSeverity): string;
46
- export default class Logger {
47
- level: LogLevel;
48
- debugScope: string;
49
- errorCount: number;
50
- warnCount: number;
51
- infoCount: number;
52
- debugCount: number;
53
- constructor(options?: {
54
- level?: LogLevel;
55
- debugScope?: string;
56
- });
57
- setLevel(level: LogLevel): void;
58
- /** Log an error message (always; can’t be silenced) */
59
- error(entry: LogEntry): void;
60
- /** Log an info message (if logging level permits) */
61
- info(entry: LogEntry): void;
62
- /** Log a warning message (if logging level permits) */
63
- warn(entry: LogEntry): void;
64
- /** Log a diagnostics message (if logging level permits) */
65
- debug(entry: DebugEntry): void;
66
- /** Get stats for current logger instance */
67
- stats(): {
68
- errorCount: number;
69
- warnCount: number;
70
- infoCount: number;
71
- debugCount: number;
72
- };
73
- }
74
- export declare class TokensJSONError extends Error {
75
- constructor(message: string);
76
- }
77
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAKpD,eAAO,MAAM,SAAS,6CAA8C,CAAC;AAErE,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE9D,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE9C,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE1E,MAAM,WAAW,QAAQ;IACvB,gCAAgC;IAChC,KAAK,EAAE,QAAQ,CAAC;IAChB,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mBAAmB;IACnB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4CAA4C;IAC5C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,QAAQ,CAAC;IAChB,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,SAAS,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAYD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,UAgBnE;AAED,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,KAAK,EAAa,QAAQ,CAAC;IAC3B,UAAU,SAAO;IACjB,UAAU,SAAK;IACf,SAAS,SAAK;IACd,SAAS,SAAK;IACd,UAAU,SAAK;gBAEH,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,QAAQ,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAS/D,QAAQ,CAAC,KAAK,EAAE,QAAQ;IAIxB,uDAAuD;IACvD,KAAK,CAAC,KAAK,EAAE,QAAQ;IAerB,qDAAqD;IACrD,IAAI,CAAC,KAAK,EAAE,QAAQ;IAUpB,uDAAuD;IACvD,IAAI,CAAC,KAAK,EAAE,QAAQ;IAUpB,2DAA2D;IAC3D,KAAK,CAAC,KAAK,EAAE,UAAU;IAmCvB,4CAA4C;IAC5C,KAAK;;;;;;CAQN;AAED,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B"}
package/dist/logger.js DELETED
@@ -1,136 +0,0 @@
1
- import pc from 'picocolors';
2
- import wcmatch from 'wildcard-match';
3
- import { codeFrameColumns } from './lib/code-frame.js';
4
- export const LOG_ORDER = ['error', 'warn', 'info', 'debug'];
5
- const MESSAGE_COLOR = { error: pc.red, warn: pc.yellow };
6
- const timeFormatter = new Intl.DateTimeFormat('en-us', {
7
- hour: 'numeric',
8
- hour12: false,
9
- minute: 'numeric',
10
- second: 'numeric',
11
- fractionalSecondDigits: 3,
12
- });
13
- /**
14
- * @param {Entry} entry
15
- * @param {Severity} severity
16
- * @return {string}
17
- */
18
- export function formatMessage(entry, severity) {
19
- let message = entry.message;
20
- message = `[${entry.group}${entry.label ? `:${entry.label}` : ''}] ${message}`;
21
- if (severity in MESSAGE_COLOR) {
22
- message = MESSAGE_COLOR[severity](message);
23
- }
24
- if (entry.src) {
25
- const start = entry.node?.loc?.start ?? { line: 0, column: 0 };
26
- // strip "file://" protocol, but not href
27
- const loc = entry.filename
28
- ? `${entry.filename?.href.replace(/^file:\/\//, '')}:${start?.line ?? 0}:${start?.column ?? 0}\n\n`
29
- : '';
30
- const codeFrame = codeFrameColumns(entry.src, { start }, { highlightCode: false });
31
- message = `${message}\n\n${loc}${codeFrame}`;
32
- }
33
- return message;
34
- }
35
- export default class Logger {
36
- level = 'info';
37
- debugScope = '*';
38
- errorCount = 0;
39
- warnCount = 0;
40
- infoCount = 0;
41
- debugCount = 0;
42
- constructor(options) {
43
- if (options?.level) {
44
- this.level = options.level;
45
- }
46
- if (options?.debugScope) {
47
- this.debugScope = options.debugScope;
48
- }
49
- }
50
- setLevel(level) {
51
- this.level = level;
52
- }
53
- /** Log an error message (always; can’t be silenced) */
54
- error(entry) {
55
- this.errorCount++;
56
- const message = formatMessage(entry, 'error');
57
- if (entry.continueOnError) {
58
- // biome-ignore lint/suspicious/noConsole: this is a logger
59
- console.error(message);
60
- return;
61
- }
62
- if (entry.node) {
63
- throw new TokensJSONError(message);
64
- }
65
- else {
66
- throw new Error(message);
67
- }
68
- }
69
- /** Log an info message (if logging level permits) */
70
- info(entry) {
71
- this.infoCount++;
72
- if (this.level === 'silent' || LOG_ORDER.indexOf(this.level) < LOG_ORDER.indexOf('info')) {
73
- return;
74
- }
75
- const message = formatMessage(entry, 'info');
76
- // biome-ignore lint/suspicious/noConsole: this is a logger
77
- console.log(message);
78
- }
79
- /** Log a warning message (if logging level permits) */
80
- warn(entry) {
81
- this.warnCount++;
82
- if (this.level === 'silent' || LOG_ORDER.indexOf(this.level) < LOG_ORDER.indexOf('warn')) {
83
- return;
84
- }
85
- const message = formatMessage(entry, 'warn');
86
- // biome-ignore lint/suspicious/noConsole: this is a logger
87
- console.warn(message);
88
- }
89
- /** Log a diagnostics message (if logging level permits) */
90
- debug(entry) {
91
- if (this.level === 'silent' || LOG_ORDER.indexOf(this.level) < LOG_ORDER.indexOf('debug')) {
92
- return;
93
- }
94
- this.debugCount++;
95
- let message = formatMessage(entry, 'debug');
96
- const debugPrefix = entry.label ? `${entry.group}:${entry.label}` : entry.group;
97
- if (this.debugScope !== '*' && !wcmatch(this.debugScope)(debugPrefix)) {
98
- return;
99
- }
100
- // debug color
101
- message
102
- .replace(/\[config[^\]]+\]/, (match) => pc.green(match))
103
- .replace(/\[parser[^\]]+\]/, (match) => pc.magenta(match))
104
- .replace(/\[lint[^\]]+\]/, (match) => pc.yellow(match))
105
- .replace(/\[plugin[^\]]+\]/, (match) => pc.cyan(match));
106
- message = `${pc.dim(timeFormatter.format(performance.now()))} ${message}`;
107
- if (typeof entry.timing === 'number') {
108
- let timing = '';
109
- if (entry.timing < 1_000) {
110
- timing = `${Math.round(entry.timing * 100) / 100}ms`;
111
- }
112
- else if (entry.timing < 60_000) {
113
- timing = `${Math.round(entry.timing * 100) / 100_000}s`;
114
- }
115
- message = `${message} ${pc.dim(`[${timing}]`)}`;
116
- }
117
- // biome-ignore lint/suspicious/noConsole: this is a logger
118
- console.log(message);
119
- }
120
- /** Get stats for current logger instance */
121
- stats() {
122
- return {
123
- errorCount: this.errorCount,
124
- warnCount: this.warnCount,
125
- infoCount: this.infoCount,
126
- debugCount: this.debugCount,
127
- };
128
- }
129
- }
130
- export class TokensJSONError extends Error {
131
- constructor(message) {
132
- super(message);
133
- this.name = 'TokensJSONError';
134
- }
135
- }
136
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- import type { ObjectNode } from '@humanwhocodes/momoa';
2
- import { type TokenNormalized, type TokenNormalizedSet } from '@terrazzo/token-tools';
3
- import type Logger from '../logger.js';
4
- export interface ApplyAliasOptions {
5
- tokensSet: TokenNormalizedSet;
6
- filename: URL;
7
- src: string;
8
- node: ObjectNode;
9
- logger: Logger;
10
- }
11
- export type PreAliased<T extends TokenNormalized> = {
12
- $value: T['$value'] | string;
13
- mode: Record<string, T['mode'][string] & {
14
- $value: T['$value'] | string;
15
- }>;
16
- };
17
- /**
18
- * Resolve aliases and update the token nodes.
19
- *
20
- * Data structures are in an awkward in-between phase, where they have
21
- * placeholders for data but we still need to resolve everything. As such,
22
- * TypeScript will raise errors expecting the final shape.
23
- *
24
- * This is also a bit tricky because different token types alias slightly
25
- * differently. For example, color tokens and other “primitive” tokens behave
26
- * as-expected. But composite tokens like Typography, Gradient, Border, etc. can
27
- * either fully- or partially-alias their values. Then we add modes to the mix,
28
- * and we have to do the work all over again for each mode declared.
29
- *
30
- * All that to say, there are a generous amount of TypeScript overrides here rather
31
- * than try to codify indeterminate shapes.
32
- */
33
- export default function applyAliases(token: TokenNormalized, options: ApplyAliasOptions): void;
34
- //# sourceMappingURL=alias.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"alias.d.ts","sourceRoot":"","sources":["../../src/parse/alias.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EAKxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAGvC,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,QAAQ,EAAE,GAAG,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,eAAe,IAAI;IAClD,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG;QAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5E,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CA4E7F"}
@@ -1,302 +0,0 @@
1
- import { isAlias, parseAlias, } from '@terrazzo/token-tools';
2
- import { getObjMembers } from './json.js';
3
- /**
4
- * Resolve aliases and update the token nodes.
5
- *
6
- * Data structures are in an awkward in-between phase, where they have
7
- * placeholders for data but we still need to resolve everything. As such,
8
- * TypeScript will raise errors expecting the final shape.
9
- *
10
- * This is also a bit tricky because different token types alias slightly
11
- * differently. For example, color tokens and other “primitive” tokens behave
12
- * as-expected. But composite tokens like Typography, Gradient, Border, etc. can
13
- * either fully- or partially-alias their values. Then we add modes to the mix,
14
- * and we have to do the work all over again for each mode declared.
15
- *
16
- * All that to say, there are a generous amount of TypeScript overrides here rather
17
- * than try to codify indeterminate shapes.
18
- */
19
- export default function applyAliases(token, options) {
20
- // prepopulate default mode (if not set)
21
- token.mode['.'] ??= {};
22
- token.mode['.'].$value = token.$value;
23
- token.mode['.'].originalValue ??= token.originalValue.$value;
24
- token.mode['.'].source ??= token.source;
25
- // resolve root
26
- if (typeof token.$value === 'string' && isAlias(token.$value)) {
27
- const { aliasChain, resolvedToken } = resolveAlias(token.$value, { ...options, token });
28
- token.aliasOf = resolvedToken.id;
29
- token.aliasChain = aliasChain;
30
- token.$value = resolvedToken.$value;
31
- }
32
- // resolve modes
33
- for (const mode of Object.keys(token.mode)) {
34
- const modeValue = token.mode[mode].$value;
35
- // if the entire mode value is a simple alias, resolve & continue
36
- if (typeof modeValue === 'string' && isAlias(modeValue)) {
37
- const expectedType = [token.$type];
38
- const { aliasChain, resolvedToken } = resolveAlias(modeValue, {
39
- ...options,
40
- token,
41
- expectedType,
42
- node: token.mode[mode].source?.node || options.node,
43
- });
44
- token.mode[mode].aliasOf = resolvedToken.id;
45
- token.mode[mode].aliasChain = aliasChain;
46
- token.mode[mode].$value = resolvedToken.$value;
47
- continue;
48
- }
49
- // object types: expand default $value into current mode
50
- if (typeof token.$value === 'object' &&
51
- typeof token.mode[mode].$value === 'object' &&
52
- !Array.isArray(token.$value)) {
53
- for (const [k, v] of Object.entries(token.$value)) {
54
- if (!(k in token.mode[mode].$value)) {
55
- token.mode[mode].$value[k] = v;
56
- }
57
- }
58
- }
59
- // if the mode is an object or array that’s partially aliased, do work per-token type
60
- const node = getObjMembers(options.node).$value || options.node;
61
- switch (token.$type) {
62
- case 'border': {
63
- applyBorderPartialAlias(token, mode, { ...options, node });
64
- break;
65
- }
66
- case 'gradient': {
67
- applyGradientPartialAlias(token, mode, { ...options, node });
68
- break;
69
- }
70
- case 'shadow': {
71
- applyShadowPartialAlias(token, mode, { ...options, node });
72
- break;
73
- }
74
- case 'strokeStyle': {
75
- applyStrokeStylePartialAlias(token, mode, { ...options, node });
76
- break;
77
- }
78
- case 'transition': {
79
- applyTransitionPartialAlias(token, mode, { ...options, node });
80
- break;
81
- }
82
- case 'typography': {
83
- applyTypographyPartialAlias(token, mode, { ...options, node });
84
- break;
85
- }
86
- }
87
- }
88
- }
89
- const LIST_FORMAT = new Intl.ListFormat('en-us', { type: 'disjunction' });
90
- /**
91
- * Resolve alias. Also add info on root node if it’s the root token (has .id)
92
- */
93
- function resolveAlias(alias, options) {
94
- const baseMessage = {
95
- group: 'parser',
96
- label: 'alias',
97
- node: options?.node,
98
- filename: options.filename,
99
- src: options.src,
100
- };
101
- const { logger, token, tokensSet } = options;
102
- const shallowAliasID = parseAlias(alias);
103
- const { token: resolvedToken, chain } = _resolveAliasInner(shallowAliasID, options);
104
- // Apply missing $types while resolving
105
- if (!tokensSet[token.id].$type) {
106
- tokensSet[token.id].$type = resolvedToken.$type;
107
- }
108
- // throw error if expectedType differed
109
- const expectedType = [...(options.expectedType ?? [])];
110
- if (token.$type && !expectedType?.length) {
111
- expectedType.push(token.$type);
112
- }
113
- if (expectedType?.length && !expectedType.includes(resolvedToken.$type)) {
114
- logger.error({
115
- ...baseMessage,
116
- message: `Invalid alias: expected $type: ${LIST_FORMAT.format(expectedType)}, received $type: ${resolvedToken.$type}.`,
117
- node: (options.node?.type === 'Object' && getObjMembers(options.node).$value) || baseMessage.node,
118
- });
119
- }
120
- // Apply reverse aliases as we’re traversing the graph
121
- if (chain?.length && resolvedToken) {
122
- let needsSort = false;
123
- for (const id of chain) {
124
- if (id !== resolvedToken.id && !resolvedToken.aliasedBy?.includes(id)) {
125
- resolvedToken.aliasedBy ??= [];
126
- resolvedToken.aliasedBy.push(id);
127
- needsSort = true;
128
- }
129
- if (token && !resolvedToken.aliasedBy?.includes(token.id)) {
130
- resolvedToken.aliasedBy ??= [];
131
- resolvedToken.aliasedBy.push(token.id);
132
- needsSort = true;
133
- }
134
- }
135
- if (needsSort) {
136
- resolvedToken.aliasedBy.sort((a, b) => a.localeCompare(b, 'en-us', { numeric: true }));
137
- }
138
- }
139
- return { resolvedToken: resolvedToken, aliasChain: chain };
140
- }
141
- function _resolveAliasInner(alias, { scanned = [], ...options }) {
142
- const { logger, filename, src, node, tokensSet } = options;
143
- const baseMessage = { group: 'parser', label: 'alias', filename, src, node };
144
- const id = parseAlias(alias);
145
- if (!tokensSet[id]) {
146
- logger.error({ ...baseMessage, message: `Alias {${alias}} not found.` });
147
- }
148
- if (scanned.includes(id)) {
149
- logger.error({ ...baseMessage, message: `Circular alias detected from ${alias}.` });
150
- }
151
- const token = tokensSet[id];
152
- scanned.push(id);
153
- // important: use originalValue to trace the full alias path correctly
154
- // finish resolution
155
- if (typeof token.originalValue.$value !== 'string' || !isAlias(token.originalValue.$value)) {
156
- return { token, chain: scanned };
157
- }
158
- // continue resolving
159
- return _resolveAliasInner(token.originalValue.$value, { ...options, scanned });
160
- }
161
- function applyBorderPartialAlias(token, mode, options) {
162
- for (const [k, v] of Object.entries(token.mode[mode].$value)) {
163
- if (typeof v === 'string' && isAlias(v)) {
164
- token.mode[mode].partialAliasOf ??= {};
165
- const node = getObjMembers(options.node)[k] || options.node;
166
- const { resolvedToken } = resolveAlias(v, {
167
- ...options,
168
- token,
169
- expectedType: { color: ['color'], width: ['dimension'], style: ['strokeStyle'] }[k],
170
- node,
171
- });
172
- token.mode[mode].partialAliasOf[k] = parseAlias(v);
173
- if (mode === '.') {
174
- token.partialAliasOf ??= {};
175
- token.partialAliasOf[k] = parseAlias(v);
176
- }
177
- token.mode[mode].$value[k] = resolvedToken.$value;
178
- }
179
- }
180
- }
181
- function applyGradientPartialAlias(token, mode, options) {
182
- for (let i = 0; i < token.mode[mode].$value.length; i++) {
183
- const step = token.mode[mode].$value[i];
184
- for (const [k, v] of Object.entries(step)) {
185
- if (typeof v === 'string' && isAlias(v)) {
186
- token.mode[mode].partialAliasOf ??= [];
187
- token.mode[mode].partialAliasOf[i] ??= {};
188
- const expectedType = { color: ['color'], position: ['number'] }[k];
189
- let node = options.node?.elements?.[i]?.value || options.node;
190
- if (node.type === 'Object') {
191
- node = getObjMembers(node)[k] || node;
192
- }
193
- const { resolvedToken } = resolveAlias(v, { ...options, token, expectedType, node });
194
- token.mode[mode].partialAliasOf[i][k] = parseAlias(v);
195
- if (mode === '.') {
196
- token.partialAliasOf ??= [];
197
- token.partialAliasOf[i] ??= {};
198
- token.partialAliasOf[i][k] = parseAlias(v);
199
- }
200
- step[k] = resolvedToken.$value;
201
- }
202
- }
203
- }
204
- }
205
- function applyShadowPartialAlias(token, mode, options) {
206
- // shadow-only fix: historically this token type may or may not allow an array
207
- // of values, and at this stage in parsing, they all might not have been
208
- // normalized yet.
209
- if (!Array.isArray(token.mode[mode].$value)) {
210
- token.mode[mode].$value = [token.mode[mode].$value];
211
- }
212
- for (let i = 0; i < token.mode[mode].$value.length; i++) {
213
- const layer = token.mode[mode].$value[i];
214
- for (const [k, v] of Object.entries(layer)) {
215
- if (typeof v === 'string' && isAlias(v)) {
216
- token.mode[mode].partialAliasOf ??= [];
217
- token.mode[mode].partialAliasOf[i] ??= {};
218
- const expectedType = {
219
- offsetX: ['dimension'],
220
- offsetY: ['dimension'],
221
- blur: ['dimension'],
222
- spread: ['dimension'],
223
- color: ['color'],
224
- inset: ['boolean'],
225
- }[k];
226
- let node = options.node?.elements?.[i] || options.node;
227
- if (node.type === 'Object') {
228
- node = getObjMembers(node)[k] || node;
229
- }
230
- const { resolvedToken } = resolveAlias(v, { ...options, token, expectedType, node });
231
- token.mode[mode].partialAliasOf[i][k] = parseAlias(v);
232
- if (mode === '.') {
233
- token.partialAliasOf ??= [];
234
- token.partialAliasOf[i] ??= {};
235
- token.partialAliasOf[i][k] = parseAlias(v);
236
- }
237
- layer[k] = resolvedToken.$value;
238
- }
239
- }
240
- }
241
- }
242
- function applyStrokeStylePartialAlias(token, mode, options) {
243
- // only dashArray can be aliased
244
- if (typeof token.mode[mode].$value !== 'object' || !('dashArray' in token.mode[mode].$value)) {
245
- return;
246
- }
247
- for (let i = 0; i < token.mode[mode].$value.dashArray.length; i++) {
248
- const dash = token.mode[mode].$value.dashArray[i];
249
- if (typeof dash === 'string' && isAlias(dash)) {
250
- let node = getObjMembers(options.node).dashArray || options.node;
251
- if (node.type === 'Array') {
252
- node = node?.elements?.[i]?.value || node;
253
- }
254
- const { resolvedToken } = resolveAlias(dash, {
255
- ...options,
256
- token,
257
- expectedType: ['dimension'],
258
- node,
259
- });
260
- token.mode[mode].$value.dashArray[i] = resolvedToken.$value;
261
- }
262
- }
263
- }
264
- function applyTransitionPartialAlias(token, mode, options) {
265
- for (const [k, v] of Object.entries(token.mode[mode].$value)) {
266
- if (typeof v === 'string' && isAlias(v)) {
267
- token.mode[mode].partialAliasOf ??= {};
268
- const expectedType = { duration: ['duration'], delay: ['duration'], timingFunction: ['cubicBezier'] }[k];
269
- const node = getObjMembers(options.node)[k] || options.node;
270
- const { resolvedToken } = resolveAlias(v, { ...options, token, expectedType, node });
271
- token.mode[mode].partialAliasOf[k] = parseAlias(v);
272
- if (mode === '.') {
273
- token.partialAliasOf ??= {};
274
- token.partialAliasOf[k] = parseAlias(v);
275
- }
276
- token.mode[mode].$value[k] = resolvedToken.$value;
277
- }
278
- }
279
- }
280
- function applyTypographyPartialAlias(token, mode, options) {
281
- for (const [k, v] of Object.entries(token.mode[mode].$value)) {
282
- if (typeof v === 'string' && isAlias(v)) {
283
- token.partialAliasOf ??= {};
284
- token.mode[mode].partialAliasOf ??= {};
285
- const expectedType = {
286
- fontFamily: ['fontFamily'],
287
- fontSize: ['dimension'],
288
- fontWeight: ['fontWeight'],
289
- letterSpacing: ['dimension'],
290
- lineHeight: ['dimension', 'number'],
291
- }[k] || ['string'];
292
- const node = getObjMembers(options.node)[k] || options.node;
293
- const { resolvedToken } = resolveAlias(v, { ...options, token, expectedType, node });
294
- token.mode[mode].partialAliasOf[k] = parseAlias(v);
295
- if (mode === '.') {
296
- token.partialAliasOf[k] = parseAlias(v);
297
- }
298
- token.mode[mode].$value[k] = resolvedToken.$value;
299
- }
300
- }
301
- }
302
- //# sourceMappingURL=alias.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"alias.js","sourceRoot":"","sources":["../../src/parse/alias.ts"],"names":[],"mappings":"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"}