@terrazzo/parser 0.7.2 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/index.d.ts +707 -12
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +4598 -12
  5. package/dist/index.js.map +1 -1
  6. package/package.json +11 -7
  7. package/rolldown.config.ts +24 -0
  8. package/src/build/index.ts +2 -2
  9. package/src/index.ts +76 -1
  10. package/src/parse/index.ts +72 -13
  11. package/src/parse/json.ts +35 -29
  12. package/src/parse/normalize.ts +4 -14
  13. package/src/parse/validate.ts +81 -68
  14. package/dist/build/index.d.ts +0 -20
  15. package/dist/build/index.d.ts.map +0 -1
  16. package/dist/build/index.js +0 -166
  17. package/dist/build/index.js.map +0 -1
  18. package/dist/config.d.ts +0 -8
  19. package/dist/config.d.ts.map +0 -1
  20. package/dist/config.js +0 -290
  21. package/dist/config.js.map +0 -1
  22. package/dist/lib/code-frame.d.ts +0 -31
  23. package/dist/lib/code-frame.d.ts.map +0 -1
  24. package/dist/lib/code-frame.js +0 -108
  25. package/dist/lib/code-frame.js.map +0 -1
  26. package/dist/lint/index.d.ts +0 -12
  27. package/dist/lint/index.d.ts.map +0 -1
  28. package/dist/lint/index.js +0 -105
  29. package/dist/lint/index.js.map +0 -1
  30. package/dist/lint/plugin-core/index.d.ts +0 -13
  31. package/dist/lint/plugin-core/index.d.ts.map +0 -1
  32. package/dist/lint/plugin-core/index.js +0 -40
  33. package/dist/lint/plugin-core/index.js.map +0 -1
  34. package/dist/lint/plugin-core/lib/docs.d.ts +0 -2
  35. package/dist/lint/plugin-core/lib/docs.d.ts.map +0 -1
  36. package/dist/lint/plugin-core/lib/docs.js +0 -4
  37. package/dist/lint/plugin-core/lib/docs.js.map +0 -1
  38. package/dist/lint/plugin-core/rules/a11y-min-contrast.d.ts +0 -40
  39. package/dist/lint/plugin-core/rules/a11y-min-contrast.d.ts.map +0 -1
  40. package/dist/lint/plugin-core/rules/a11y-min-contrast.js +0 -58
  41. package/dist/lint/plugin-core/rules/a11y-min-contrast.js.map +0 -1
  42. package/dist/lint/plugin-core/rules/a11y-min-font-size.d.ts +0 -14
  43. package/dist/lint/plugin-core/rules/a11y-min-font-size.d.ts.map +0 -1
  44. package/dist/lint/plugin-core/rules/a11y-min-font-size.js +0 -45
  45. package/dist/lint/plugin-core/rules/a11y-min-font-size.js.map +0 -1
  46. package/dist/lint/plugin-core/rules/colorspace.d.ts +0 -15
  47. package/dist/lint/plugin-core/rules/colorspace.d.ts.map +0 -1
  48. package/dist/lint/plugin-core/rules/colorspace.js +0 -85
  49. package/dist/lint/plugin-core/rules/colorspace.js.map +0 -1
  50. package/dist/lint/plugin-core/rules/consistent-naming.d.ts +0 -12
  51. package/dist/lint/plugin-core/rules/consistent-naming.d.ts.map +0 -1
  52. package/dist/lint/plugin-core/rules/consistent-naming.js +0 -49
  53. package/dist/lint/plugin-core/rules/consistent-naming.js.map +0 -1
  54. package/dist/lint/plugin-core/rules/descriptions.d.ts +0 -10
  55. package/dist/lint/plugin-core/rules/descriptions.d.ts.map +0 -1
  56. package/dist/lint/plugin-core/rules/descriptions.js +0 -32
  57. package/dist/lint/plugin-core/rules/descriptions.js.map +0 -1
  58. package/dist/lint/plugin-core/rules/duplicate-values.d.ts +0 -10
  59. package/dist/lint/plugin-core/rules/duplicate-values.d.ts.map +0 -1
  60. package/dist/lint/plugin-core/rules/duplicate-values.js +0 -65
  61. package/dist/lint/plugin-core/rules/duplicate-values.js.map +0 -1
  62. package/dist/lint/plugin-core/rules/max-gamut.d.ts +0 -15
  63. package/dist/lint/plugin-core/rules/max-gamut.d.ts.map +0 -1
  64. package/dist/lint/plugin-core/rules/max-gamut.js +0 -101
  65. package/dist/lint/plugin-core/rules/max-gamut.js.map +0 -1
  66. package/dist/lint/plugin-core/rules/required-children.d.ts +0 -19
  67. package/dist/lint/plugin-core/rules/required-children.d.ts.map +0 -1
  68. package/dist/lint/plugin-core/rules/required-children.js +0 -78
  69. package/dist/lint/plugin-core/rules/required-children.js.map +0 -1
  70. package/dist/lint/plugin-core/rules/required-modes.d.ts +0 -14
  71. package/dist/lint/plugin-core/rules/required-modes.d.ts.map +0 -1
  72. package/dist/lint/plugin-core/rules/required-modes.js +0 -52
  73. package/dist/lint/plugin-core/rules/required-modes.js.map +0 -1
  74. package/dist/lint/plugin-core/rules/required-typography-properties.d.ts +0 -11
  75. package/dist/lint/plugin-core/rules/required-typography-properties.d.ts.map +0 -1
  76. package/dist/lint/plugin-core/rules/required-typography-properties.js +0 -38
  77. package/dist/lint/plugin-core/rules/required-typography-properties.js.map +0 -1
  78. package/dist/logger.d.ts +0 -77
  79. package/dist/logger.d.ts.map +0 -1
  80. package/dist/logger.js +0 -136
  81. package/dist/logger.js.map +0 -1
  82. package/dist/parse/alias.d.ts +0 -34
  83. package/dist/parse/alias.d.ts.map +0 -1
  84. package/dist/parse/alias.js +0 -302
  85. package/dist/parse/alias.js.map +0 -1
  86. package/dist/parse/index.d.ts +0 -36
  87. package/dist/parse/index.d.ts.map +0 -1
  88. package/dist/parse/index.js +0 -226
  89. package/dist/parse/index.js.map +0 -1
  90. package/dist/parse/json.d.ts +0 -52
  91. package/dist/parse/json.d.ts.map +0 -1
  92. package/dist/parse/json.js +0 -161
  93. package/dist/parse/json.js.map +0 -1
  94. package/dist/parse/normalize.d.ts +0 -24
  95. package/dist/parse/normalize.d.ts.map +0 -1
  96. package/dist/parse/normalize.js +0 -185
  97. package/dist/parse/normalize.js.map +0 -1
  98. package/dist/parse/validate.d.ts +0 -63
  99. package/dist/parse/validate.d.ts.map +0 -1
  100. package/dist/parse/validate.js +0 -798
  101. package/dist/parse/validate.js.map +0 -1
  102. package/dist/types.d.ts +0 -265
  103. package/dist/types.d.ts.map +0 -1
  104. package/dist/types.js +0 -2
  105. package/dist/types.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/parse/json.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,SAAS,EAGf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,OAAO;IACtB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC7E,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC7E;AAED,eAAO,MAAM,UAAU;;;;;;;;;;;;;CAatB,CAAC;AAEF,kDAAkD;AAClD,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE9C;AAED,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/D,uCAAuC;AACvC,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,kBAAkB,CAAC,CAa3F;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,GAAE,UAAU,EAAO,QAK5E;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,QAwCvD;AAED,oDAAoD;AACpD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,0CAA0C;AAC1C,wBAAgB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAgClF;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,WAAW,CAAC;CAClC;AAED,wBAAgB,OAAO,CACrB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,cAAc,GACjE,WAAW,CAwCb"}
@@ -1,161 +0,0 @@
1
- import { parse as parseJSON, print, } from '@humanwhocodes/momoa';
2
- export const CHILD_KEYS = {
3
- Document: ['body'],
4
- Object: ['members'],
5
- Member: ['name', 'value'],
6
- Element: ['value'],
7
- Array: ['elements'],
8
- String: [],
9
- Number: [],
10
- Boolean: [],
11
- Null: [],
12
- Identifier: [],
13
- NaN: [],
14
- Infinity: [],
15
- };
16
- /** Determines if a given value is an AST node. */
17
- export function isNode(value) {
18
- return !!value && typeof value === 'object' && 'type' in value && typeof value.type === 'string';
19
- }
20
- /** Get ObjectNode members as object */
21
- export function getObjMembers(node) {
22
- const members = {};
23
- if (node.type !== 'Object') {
24
- return members;
25
- }
26
- for (let i = 0; i < node.members.length; i++) {
27
- const m = node.members[i];
28
- if (m.name.type !== 'String') {
29
- continue;
30
- }
31
- members[m.name.value] = { ...m.value, index: i };
32
- }
33
- return members;
34
- }
35
- /**
36
- * Inject members to ObjectNode
37
- * @param {ObjectNode} node
38
- * @param {MemberNode[]} members
39
- */
40
- export function injectObjMembers(node, members = []) {
41
- if (node.type !== 'Object') {
42
- return;
43
- }
44
- node.members.push(...members);
45
- }
46
- /**
47
- * Variation of Momoa’s traverse(), which keeps track of global path.
48
- * Allows mutation of AST (along with any consequences)
49
- */
50
- export function traverse(root, visitor) {
51
- /**
52
- * Recursively visits a node.
53
- * @param {AnyNode} node The node to visit.
54
- * @param {AnyNode} [parent] The parent of the node to visit.
55
- * @return {void}
56
- */
57
- function visitNode(node, parent, path = []) {
58
- const nextPath = [...path];
59
- if (node.type === 'Member') {
60
- const { name } = node;
61
- nextPath.push('value' in name ? name.value : String(name));
62
- }
63
- visitor.enter?.(node, parent, nextPath);
64
- const childNode = CHILD_KEYS[node.type];
65
- for (const key of childNode ?? []) {
66
- const value = node[key];
67
- if (value && typeof value === 'object') {
68
- if (Array.isArray(value)) {
69
- for (let i = 0; i < value.length; i++) {
70
- visitNode(
71
- // @ts-expect-error this is safe
72
- value[i], node, key === 'elements' ? [...nextPath, String(i)] : nextPath);
73
- }
74
- }
75
- else if (isNode(value)) {
76
- visitNode(value, node, nextPath);
77
- }
78
- }
79
- }
80
- visitor.exit?.(node, parent, nextPath);
81
- }
82
- visitNode(root, undefined, []);
83
- }
84
- /** Determine if an input is likely a JSON string */
85
- export function maybeRawJSON(input) {
86
- return typeof input === 'string' && input.trim().startsWith('{');
87
- }
88
- /** Find Momoa node by traversing paths */
89
- export function findNode(node, path) {
90
- if (!path.length) {
91
- return;
92
- }
93
- let nextNode;
94
- switch (node.type) {
95
- // for Document nodes, dive into body for “free” (not part of the path)
96
- case 'Document': {
97
- return findNode(node.body, path);
98
- }
99
- case 'Object': {
100
- const [member, ...rest] = path;
101
- nextNode = node.members.find((m) => m.name.type === 'String' && m.name.value === member)?.value;
102
- if (nextNode && rest.length) {
103
- return findNode(nextNode, path.slice(1));
104
- }
105
- break;
106
- }
107
- case 'Array': {
108
- const [_index, ...rest] = path;
109
- const index = Number.parseInt(_index, 10);
110
- nextNode = node.elements[index]?.value;
111
- if (nextNode && rest.length) {
112
- return findNode(nextNode, path.slice(1));
113
- }
114
- break;
115
- }
116
- }
117
- return nextNode;
118
- }
119
- export function toMomoa(input, { continueOnError, filename, logger, yamlToMomoa }) {
120
- let src = '';
121
- if (typeof input === 'string') {
122
- src = input;
123
- }
124
- let document = {};
125
- if (typeof input === 'string' && !maybeRawJSON(input)) {
126
- if (yamlToMomoa) {
127
- try {
128
- document = yamlToMomoa(input); // if string, but not JSON, attempt YAML
129
- }
130
- catch (err) {
131
- logger.error({ group: 'parser', label: 'json', message: String(err), filename, src: input, continueOnError });
132
- }
133
- }
134
- else {
135
- logger.error({
136
- group: 'parser',
137
- label: 'yaml',
138
- message: `Install \`yaml-to-momoa\` package to parse YAML, and pass in as option, e.g.:
139
-
140
- import { parse } from '@terrazzo/parser';
141
- import yamlToMomoa from 'yaml-to-momoa';
142
-
143
- parse(yamlString, { yamlToMomoa });`,
144
- continueOnError: false, // fail here; no point in continuing
145
- });
146
- }
147
- }
148
- else {
149
- document = parseJSON(typeof input === 'string' ? input : JSON.stringify(input, undefined, 2), // everything else: assert it’s JSON-serializable
150
- {
151
- mode: 'jsonc',
152
- ranges: true,
153
- tokens: true,
154
- });
155
- }
156
- if (!src) {
157
- src = print(document, { indent: 2 });
158
- }
159
- return { src, document };
160
- }
161
- //# sourceMappingURL=json.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/parse/json.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import { type Token } from '@terrazzo/token-tools';
2
- export declare const FONT_WEIGHT_MAP: {
3
- thin: number;
4
- hairline: number;
5
- 'extra-light': number;
6
- 'ultra-light': number;
7
- light: number;
8
- normal: number;
9
- regular: number;
10
- book: number;
11
- medium: number;
12
- 'semi-bold': number;
13
- 'demi-bold': number;
14
- bold: number;
15
- 'extra-bold': number;
16
- 'ultra-bold': number;
17
- black: number;
18
- heavy: number;
19
- 'extra-black': number;
20
- 'ultra-black': number;
21
- };
22
- /** Fill in defaults, and return predictable shapes for tokens */
23
- export default function normalizeValue<T extends Token>(token: T): T['$value'];
24
- //# sourceMappingURL=normalize.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/parse/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,KAAK,EAKX,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;CAmB3B,CAAC;AAOF,iEAAiE;AACjE,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAsK7E"}
@@ -1,185 +0,0 @@
1
- import { isAlias, parseColor, } from '@terrazzo/token-tools';
2
- export const FONT_WEIGHT_MAP = {
3
- thin: 100,
4
- hairline: 100,
5
- 'extra-light': 200,
6
- 'ultra-light': 200,
7
- light: 300,
8
- normal: 400,
9
- regular: 400,
10
- book: 400,
11
- medium: 500,
12
- 'semi-bold': 600,
13
- 'demi-bold': 600,
14
- bold: 700,
15
- 'extra-bold': 800,
16
- 'ultra-bold': 800,
17
- black: 900,
18
- heavy: 900,
19
- 'extra-black': 950,
20
- 'ultra-black': 950,
21
- };
22
- // Note: because we’re handling a lot of input values, the type inference gets lost.
23
- // This file is expected to have a lot of `@ts-ignore` comments.
24
- const NUMBER_WITH_UNIT_RE = /(-?\d*\.?\d+)(.*)/;
25
- /** Fill in defaults, and return predictable shapes for tokens */
26
- export default function normalizeValue(token) {
27
- if (typeof token.$value === 'string' && isAlias(token.$value)) {
28
- return token.$value;
29
- }
30
- switch (token.$type) {
31
- case 'boolean': {
32
- return !!token.$value;
33
- }
34
- case 'border': {
35
- if (typeof token.$value === 'string') {
36
- return token.$value;
37
- }
38
- return {
39
- color: normalizeValue({ $type: 'color', $value: token.$value.color ?? '#000000' }),
40
- style: normalizeValue({ $type: 'strokeStyle', $value: token.$value.style ?? 'solid' }),
41
- width: normalizeValue({ $type: 'dimension', $value: token.$value.width }),
42
- };
43
- }
44
- case 'color': {
45
- if (typeof token.$value === 'string') {
46
- return parseColor(token.$value);
47
- }
48
- const newValue = {
49
- colorSpace: token.$value.colorSpace,
50
- components: token.$value.components ?? token.$value.channels,
51
- alpha: token.$value.alpha ?? 1,
52
- };
53
- if ('hex' in token.$value) {
54
- newValue.hex = token.$value.hex;
55
- }
56
- return newValue;
57
- }
58
- case 'cubicBezier': {
59
- if (typeof token.$value === 'string') {
60
- return token.$value;
61
- }
62
- return token.$value.map((value) => typeof value === 'number' ? normalizeValue({ $type: 'number', $value: value }) : value);
63
- }
64
- case 'dimension': {
65
- if (token.$value === 0) {
66
- return { value: 0, unit: 'px' };
67
- }
68
- // Backwards compat: handle string
69
- if (typeof token.$value === 'string') {
70
- const match = token.$value.match(NUMBER_WITH_UNIT_RE);
71
- return { value: Number.parseFloat(match?.[1] || token.$value), unit: match?.[2] || 'px' };
72
- }
73
- return token.$value;
74
- }
75
- case 'duration': {
76
- if (token.$value === 0) {
77
- return { value: 0, unit: 'ms' };
78
- }
79
- // Backwards compat: handle string
80
- if (typeof token.$value === 'string') {
81
- const match = token.$value.match(NUMBER_WITH_UNIT_RE);
82
- return { value: Number.parseFloat(match?.[1] || token.$value), unit: match?.[2] || 'ms' };
83
- }
84
- return token.$value;
85
- }
86
- case 'fontFamily': {
87
- return Array.isArray(token.$value) ? token.$value : [token.$value];
88
- }
89
- case 'fontWeight': {
90
- if (typeof token.$value === 'string' && FONT_WEIGHT_MAP[token.$value]) {
91
- return FONT_WEIGHT_MAP[token.$value];
92
- }
93
- return Math.min(999, Math.max(1, typeof token.$value === 'string' ? Number.parseInt(token.$value) : token.$value));
94
- }
95
- case 'gradient': {
96
- if (typeof token.$value === 'string') {
97
- return token.$value;
98
- }
99
- const output = [];
100
- for (let i = 0; i < token.$value.length; i++) {
101
- const stop = structuredClone(token.$value[i]);
102
- stop.color = normalizeValue({ $type: 'color', $value: stop.color });
103
- if (stop.position === undefined) {
104
- stop.position = i / (token.$value.length - 1);
105
- }
106
- output.push(stop);
107
- }
108
- return output;
109
- }
110
- case 'number': {
111
- return typeof token.$value === 'number' ? token.$value : Number.parseFloat(token.$value);
112
- }
113
- case 'shadow': {
114
- if (typeof token.$value === 'string') {
115
- return token.$value;
116
- }
117
- return (Array.isArray(token.$value) ? token.$value : [token.$value]).map((layer) => ({
118
- color: normalizeValue({ $type: 'color', $value: layer.color }),
119
- // @ts-ignore
120
- offsetX: normalizeValue({ $type: 'dimension', $value: layer.offsetX ?? 0 }),
121
- // @ts-ignore
122
- offsetY: normalizeValue({ $type: 'dimension', $value: layer.offsetY ?? 0 }),
123
- // @ts-ignore
124
- blur: normalizeValue({ $type: 'dimension', $value: layer.blur ?? 0 }),
125
- // @ts-ignore
126
- spread: normalizeValue({ $type: 'dimension', $value: layer.spread ?? 0 }),
127
- inset: layer.inset === true,
128
- }));
129
- }
130
- case 'strokeStyle': {
131
- return token.$value;
132
- }
133
- case 'string': {
134
- return String(token.$value);
135
- }
136
- case 'transition': {
137
- if (typeof token.$value === 'string') {
138
- return token.$value;
139
- }
140
- return {
141
- // @ts-ignore
142
- duration: normalizeValue({ $type: 'duration', $value: token.$value.duration ?? 0 }),
143
- // @ts-ignore
144
- delay: normalizeValue({ $type: 'duration', $value: token.$value.delay ?? 0 }),
145
- // @ts-ignore
146
- timingFunction: normalizeValue({ $type: 'cubicBezier', $value: token.$value.timingFunction }),
147
- };
148
- }
149
- case 'typography': {
150
- if (typeof token.$value === 'string') {
151
- return token.$value;
152
- }
153
- const output = {};
154
- for (const [k, $value] of Object.entries(token.$value)) {
155
- switch (k) {
156
- case 'fontFamily': {
157
- output[k] = normalizeValue({ $type: 'fontFamily', $value: $value });
158
- break;
159
- }
160
- case 'fontSize':
161
- case 'letterSpacing': {
162
- output[k] = normalizeValue({ $type: 'dimension', $value: $value });
163
- break;
164
- }
165
- case 'lineHeight': {
166
- output[k] = normalizeValue({
167
- $type: typeof token.$value === 'number' ? 'number' : 'dimension',
168
- $value: $value,
169
- });
170
- break;
171
- }
172
- default: {
173
- output[k] = $value;
174
- break;
175
- }
176
- }
177
- }
178
- return output;
179
- }
180
- default: {
181
- return token.$value;
182
- }
183
- }
184
- }
185
- //# sourceMappingURL=normalize.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/parse/normalize.ts"],"names":[],"mappings":"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"}
@@ -1,63 +0,0 @@
1
- import { type AnyNode, type MemberNode, type ValueNode } from '@humanwhocodes/momoa';
2
- import { type Token, type TokenNormalized } from '@terrazzo/token-tools';
3
- import type Logger from '../logger.js';
4
- import type { ConfigInit } from '../types.js';
5
- export interface ValidateOptions {
6
- filename?: URL;
7
- src: string;
8
- logger: Logger;
9
- }
10
- export declare const VALID_COLORSPACES: Set<string>;
11
- export declare const FONT_WEIGHT_VALUES: Set<string>;
12
- export declare const STROKE_STYLE_VALUES: Set<string>;
13
- export declare const STROKE_STYLE_LINE_CAP_VALUES: Set<string>;
14
- /** Verify an Alias $value is formatted correctly */
15
- export declare function validateAliasSyntax($value: ValueNode, _node: AnyNode, { filename, src, logger }: ValidateOptions): void;
16
- /** Verify a Border token is valid */
17
- export declare function validateBorder($value: ValueNode, node: AnyNode, { filename, src, logger }: ValidateOptions): void;
18
- /** Verify a Color token is valid */
19
- export declare function validateColor($value: ValueNode, node: AnyNode, { filename, src, logger }: ValidateOptions): void;
20
- /** Verify a Cubic Bézier token is valid */
21
- export declare function validateCubicBezier($value: ValueNode, _node: AnyNode, { filename, src, logger }: ValidateOptions): void;
22
- /** Verify a Dimension token is valid */
23
- export declare function validateDimension($value: ValueNode, _node: AnyNode, { filename, src, logger }: ValidateOptions): void;
24
- /** Verify a Duration token is valid */
25
- export declare function validateDuration($value: ValueNode, _node: AnyNode, { filename, src, logger }: ValidateOptions): void;
26
- /** Verify a Font Family token is valid */
27
- export declare function validateFontFamily($value: ValueNode, _node: AnyNode, { filename, src, logger }: ValidateOptions): void;
28
- /** Verify a Font Weight token is valid */
29
- export declare function validateFontWeight($value: ValueNode, _node: AnyNode, { filename, src, logger }: ValidateOptions): void;
30
- /** Verify a Gradient token is valid */
31
- export declare function validateGradient($value: ValueNode, _node: AnyNode, { filename, src, logger }: ValidateOptions): void;
32
- /** Verify a Number token is valid */
33
- export declare function validateNumber($value: ValueNode, _node: AnyNode, { filename, src, logger }: ValidateOptions): void;
34
- /** Verify a Boolean token is valid */
35
- export declare function validateBoolean($value: ValueNode, _node: AnyNode, { filename, src, logger }: ValidateOptions): void;
36
- /** Verify a Shadow token’s value is valid */
37
- export declare function validateShadowLayer($value: ValueNode, node: AnyNode, { filename, src, logger }: ValidateOptions): void;
38
- /** Verify a Stroke Style token is valid. */
39
- export declare function validateStrokeStyle($value: ValueNode, node: AnyNode, { filename, src, logger }: ValidateOptions): void;
40
- /** Verify a Transition token is valid */
41
- export declare function validateTransition($value: ValueNode, node: AnyNode, { filename, src, logger }: ValidateOptions): void;
42
- /**
43
- * Validate a MemberNode (the entire token object, plus its key in the parent
44
- * object) to see if it’s a valid DTCG token or not. Keeping the parent key
45
- * really helps in debug messages.
46
- */
47
- export declare function validateTokenMemberNode(node: MemberNode, { filename, src, logger }: ValidateOptions): void;
48
- export interface ValidateTokenNodeOptions {
49
- subpath: string[];
50
- src: string;
51
- filename: URL;
52
- config: ConfigInit;
53
- logger: Logger;
54
- parent?: AnyNode;
55
- $typeInheritance?: Record<string, Token['$type']>;
56
- }
57
- /**
58
- * Validate does a little more than validate; it also converts to TokenNormalized
59
- * and sets up the basic data structure. But aliases are unresolved, and we need
60
- * a 2nd normalization pass afterward.
61
- */
62
- export default function validateTokenNode(node: MemberNode, { config, filename, logger, parent, src, subpath, $typeInheritance }: ValidateTokenNodeOptions): TokenNormalized | undefined;
63
- //# sourceMappingURL=validate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/parse/validate.ts"],"names":[],"mappings":"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"}