@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,41 +0,0 @@
1
- import { type TokenNormalized } from '@terrazzo/token-tools';
2
- import type ytm from 'yaml-to-momoa';
3
- import Logger from '../logger.js';
4
- import type { ConfigInit, InputSource } from '../types.js';
5
- import normalize from './normalize.js';
6
- import validateTokenNode, { type Visitors } from './validate.js';
7
- export * from './alias.js';
8
- export * from './normalize.js';
9
- export * from './json.js';
10
- export * from './validate.js';
11
- export { normalize, validateTokenNode };
12
- export interface ParseOptions {
13
- logger?: Logger;
14
- config: ConfigInit;
15
- /**
16
- * Skip lint step
17
- * @default false
18
- */
19
- skipLint?: boolean;
20
- /**
21
- * Continue on error? (Useful for `tz check`)
22
- * @default false
23
- */
24
- continueOnError?: boolean;
25
- /** Provide yamlToMomoa module to parse YAML (by default, this isn’t shipped to cut down on package weight) */
26
- yamlToMomoa?: typeof ytm;
27
- /**
28
- * Transform API
29
- * @see https://terrazzo.app/docs/api/js#transform-api
30
- */
31
- transform?: Visitors;
32
- /** (internal cache; do not use) */
33
- _sources?: Record<string, InputSource>;
34
- }
35
- export interface ParseResult {
36
- tokens: Record<string, TokenNormalized>;
37
- sources: InputSource[];
38
- }
39
- /** Parse */
40
- export default function parse(_input: Omit<InputSource, 'document'> | Omit<InputSource, 'document'>[], { logger, skipLint, config, continueOnError, yamlToMomoa, transform, _sources, }?: ParseOptions): Promise<ParseResult>;
41
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parse/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,eAAe,EAAsB,MAAM,uBAAuB,CAAC;AAC7F,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AAErC,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG3D,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,iBAAiB,EAAE,EAAE,KAAK,QAAQ,EAAoB,MAAM,eAAe,CAAC;AAEnF,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;AAExC,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,8GAA8G;IAC9G,WAAW,CAAC,EAAE,OAAO,GAAG,CAAC;IACzB;;;OAGG;IACH,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACxC,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,YAAY;AACZ,wBAA8B,KAAK,CACjC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,EACvE,EACE,MAAqB,EACrB,QAAgB,EAChB,MAAyB,EACzB,eAAuB,EACvB,WAAW,EACX,SAAS,EACT,QAAa,GACd,GAAE,YAAiC,GACnC,OAAO,CAAC,WAAW,CAAC,CA0GtB"}
@@ -1,273 +0,0 @@
1
- import { evaluate } from '@humanwhocodes/momoa';
2
- import { pluralize, splitID } from '@terrazzo/token-tools';
3
- import lintRunner from '../lint/index.js';
4
- import Logger from '../logger.js';
5
- import applyAliases from './alias.js';
6
- import { getObjMembers, parseJSON, replaceObjMembers, toMomoa, traverse } from './json.js';
7
- import normalize from './normalize.js';
8
- import validateTokenNode, { getInheritedType } from './validate.js';
9
- export * from './alias.js';
10
- export * from './normalize.js';
11
- export * from './json.js';
12
- export * from './validate.js';
13
- export { normalize, validateTokenNode };
14
- /** Parse */
15
- export default async function parse(_input, { logger = new Logger(), skipLint = false, config = {}, continueOnError = false, yamlToMomoa, transform, _sources = {}, } = {}) {
16
- const input = Array.isArray(_input) ? _input : [_input];
17
- let tokensSet = {};
18
- if (!Array.isArray(input)) {
19
- logger.error({ group: 'parser', label: 'init', message: 'Input must be an array of input objects.' });
20
- }
21
- await Promise.all(input.map(async (src, i) => {
22
- if (!src || typeof src !== 'object') {
23
- logger.error({ group: 'parser', label: 'init', message: `Input (${i}) must be an object.` });
24
- }
25
- if (!src.src || (typeof src.src !== 'string' && typeof src.src !== 'object')) {
26
- logger.error({
27
- message: `Input (${i}) missing "src" with a JSON/YAML string, or JSON object.`,
28
- group: 'parser',
29
- label: 'init',
30
- });
31
- }
32
- if (src.filename) {
33
- if (!(src.filename instanceof URL)) {
34
- logger.error({
35
- message: `Input (${i}) "filename" must be a URL (remote or file URL).`,
36
- group: 'parser',
37
- label: 'init',
38
- });
39
- }
40
- // if already parsed/scanned, skip
41
- if (_sources[src.filename.href]) {
42
- return;
43
- }
44
- }
45
- const result = await parseSingle(src.src, {
46
- filename: src.filename,
47
- logger,
48
- config,
49
- skipLint,
50
- continueOnError,
51
- yamlToMomoa,
52
- transform,
53
- });
54
- tokensSet = Object.assign(tokensSet, result.tokens);
55
- if (src.filename) {
56
- _sources[src.filename.href] = {
57
- filename: src.filename,
58
- src: result.src,
59
- document: result.document,
60
- };
61
- }
62
- }));
63
- const totalStart = performance.now();
64
- // 5. Resolve aliases and populate groups
65
- const aliasesStart = performance.now();
66
- let aliasCount = 0;
67
- for (const [id, token] of Object.entries(tokensSet)) {
68
- applyAliases(token, {
69
- tokensSet,
70
- filename: _sources[token.source.loc]?.filename,
71
- src: _sources[token.source.loc]?.src,
72
- node: getObjMembers(token.source.node).$value || token.source.node,
73
- logger,
74
- });
75
- aliasCount++;
76
- const { group: parentGroup } = splitID(id);
77
- if (parentGroup) {
78
- for (const siblingID of Object.keys(tokensSet)) {
79
- const { group: siblingGroup } = splitID(siblingID);
80
- if (siblingGroup?.startsWith(parentGroup)) {
81
- token.group.tokens.push(siblingID);
82
- }
83
- }
84
- }
85
- }
86
- logger.debug({
87
- message: `Resolved ${aliasCount} aliases`,
88
- group: 'parser',
89
- label: 'alias',
90
- timing: performance.now() - aliasesStart,
91
- });
92
- logger.debug({
93
- message: 'Finish all parser tasks',
94
- group: 'parser',
95
- label: 'core',
96
- timing: performance.now() - totalStart,
97
- });
98
- if (continueOnError) {
99
- const { errorCount } = logger.stats();
100
- if (errorCount > 0) {
101
- logger.error({
102
- group: 'parser',
103
- message: `Parser encountered ${errorCount} ${pluralize(errorCount, 'error', 'errors')}. Exiting.`,
104
- });
105
- }
106
- }
107
- return {
108
- tokens: tokensSet,
109
- sources: Object.values(_sources),
110
- };
111
- }
112
- /** Parse a single input */
113
- async function parseSingle(input, { filename, logger, config, skipLint, continueOnError = false, transform, yamlToMomoa, // optional dependency, declared here so the parser itself doesn’t have to load a heavy dep in-browser
114
- }) {
115
- // 1. Build AST
116
- const startParsing = performance.now();
117
- let { src, document } = toMomoa(input, { filename, logger, continueOnError, yamlToMomoa });
118
- logger.debug({
119
- group: 'parser',
120
- label: 'json',
121
- message: 'Finish JSON parsing',
122
- timing: performance.now() - startParsing,
123
- });
124
- const tokensSet = {};
125
- // 1a. if there’s a root() transformer, then re-parse
126
- if (transform?.root) {
127
- const json = typeof input === 'string' ? JSON.parse(input) : input;
128
- const result = transform?.root(json, '.', document);
129
- if (result) {
130
- const reRunResult = toMomoa(result, { filename, logger, continueOnError /* YAML not needed in transform() */ });
131
- src = reRunResult.src;
132
- document = reRunResult.document;
133
- }
134
- }
135
- // 2. Walk AST to validate tokens
136
- let tokenCount = 0;
137
- const startValidate = performance.now();
138
- const $typeInheritance = {};
139
- traverse(document, {
140
- enter(node, parent, subpath) {
141
- // if $type appears at root of tokens.json, collect it
142
- if (node.type === 'Document' && node.body.type === 'Object' && node.body.members) {
143
- const { members: rootMembers } = node.body;
144
- const root$type = rootMembers.find((m) => m.name.type === 'String' && m.name.value === '$type');
145
- const root$value = rootMembers.find((m) => m.name.type === 'String' && m.name.value === '$value');
146
- if (root$type && !root$value) {
147
- $typeInheritance['.'] = root$type;
148
- }
149
- }
150
- // for transform() visitors, all non-tokens MUST be handled at this point (besides "root", which was handled above)
151
- if (node.type === 'Object' && // JSON object
152
- subpath.length &&
153
- !node.members.some((m) => m.name.type === 'String' && m.name.value === '$value') && // not the token node itself
154
- !subpath.includes('$value') && // not a child of a token node, either
155
- !subpath.includes('$extensions') // not metadata
156
- ) {
157
- if (transform?.group) {
158
- const newJSON = transform?.group(evaluate(node), subpath.join('.'), node);
159
- if (newJSON) {
160
- replaceObjMembers(node, parseJSON(newJSON));
161
- }
162
- }
163
- }
164
- // handle tokens
165
- if (node.type === 'Member') {
166
- const inheritedTypeNode = getInheritedType(node, { subpath, $typeInheritance });
167
- if (node.value.type === 'Object') {
168
- const $type = node.value.members.find((m) => m.name.type === 'String' && m.name.value === '$type') || inheritedTypeNode;
169
- const $value = node.value.members.find((m) => m.name.type === 'String' && m.name.value === '$value');
170
- if ($value && $type?.value.type === 'String' && transform?.[$type.value.value]) {
171
- const result = transform[$type.value.value]?.(evaluate(node.value), subpath.join('.'), node);
172
- if (result) {
173
- node.value = parseJSON(result).body;
174
- }
175
- }
176
- const token = validateTokenNode(node, {
177
- filename,
178
- src,
179
- config,
180
- logger,
181
- parent,
182
- subpath,
183
- transform,
184
- inheritedTypeNode,
185
- });
186
- if (token) {
187
- tokensSet[token.id] = token;
188
- tokenCount++;
189
- }
190
- }
191
- }
192
- },
193
- });
194
- logger.debug({
195
- message: `Validated ${tokenCount} tokens`,
196
- group: 'parser',
197
- label: 'validate',
198
- timing: performance.now() - startValidate,
199
- });
200
- // 3. normalize values
201
- const normalizeStart = performance.now();
202
- for (const [id, token] of Object.entries(tokensSet)) {
203
- try {
204
- tokensSet[id].$value = normalize(token);
205
- }
206
- catch (err) {
207
- let { node } = token.source;
208
- const members = getObjMembers(node);
209
- if (members.$value) {
210
- node = members.$value;
211
- }
212
- logger.error({
213
- group: 'parser',
214
- label: 'normalize',
215
- message: err.message,
216
- filename,
217
- src,
218
- node,
219
- continueOnError,
220
- });
221
- }
222
- for (const [mode, modeValue] of Object.entries(token.mode)) {
223
- if (mode === '.') {
224
- continue;
225
- }
226
- try {
227
- tokensSet[id].mode[mode].$value = normalize({ $type: token.$type, ...modeValue });
228
- }
229
- catch (err) {
230
- let { node } = token.source;
231
- const members = getObjMembers(node);
232
- if (members.$value) {
233
- node = members.$value;
234
- }
235
- logger.error({
236
- group: 'parser',
237
- label: 'normalize',
238
- message: err.message,
239
- filename,
240
- src,
241
- node: modeValue.source.node,
242
- continueOnError,
243
- });
244
- }
245
- }
246
- }
247
- logger.debug({
248
- message: `Normalized ${tokenCount} tokens`,
249
- group: 'parser',
250
- label: 'normalize',
251
- timing: performance.now() - normalizeStart,
252
- });
253
- // 4. Execute lint runner with loaded plugins
254
- if (!skipLint && config?.plugins?.length) {
255
- const lintStart = performance.now();
256
- await lintRunner({ tokens: tokensSet, src, config, logger });
257
- logger.debug({
258
- message: `Linted ${tokenCount} tokens`,
259
- group: 'parser',
260
- label: 'lint',
261
- timing: performance.now() - lintStart,
262
- });
263
- }
264
- else {
265
- logger.debug({ message: 'Linting skipped', group: 'parser', label: 'lint' });
266
- }
267
- return {
268
- tokens: tokensSet,
269
- document,
270
- src,
271
- };
272
- }
273
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parse/index.ts"],"names":[],"mappings":"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"}
@@ -1,52 +0,0 @@
1
- import { type AnyNode, type DocumentNode, type MemberNode, type ObjectNode, type ParseOptions, type ValueNode } from '@humanwhocodes/momoa';
2
- import type yamlToMomoa from 'yaml-to-momoa';
3
- import type Logger from '../logger.js';
4
- import type { InputSource } from '../types.js';
5
- export interface JSONVisitor {
6
- enter?: (node: AnyNode, parent: AnyNode | undefined, path: string[]) => void;
7
- exit?: (node: AnyNode, parent: AnyNode | undefined, path: string[]) => void;
8
- }
9
- export declare const CHILD_KEYS: {
10
- Document: readonly ["body"];
11
- Object: readonly ["members"];
12
- Member: readonly ["name", "value"];
13
- Element: readonly ["value"];
14
- Array: readonly ["elements"];
15
- String: readonly [];
16
- Number: readonly [];
17
- Boolean: readonly [];
18
- Null: readonly [];
19
- Identifier: readonly [];
20
- NaN: readonly [];
21
- Infinity: readonly [];
22
- };
23
- /** Determines if a given value is an AST node. */
24
- export declare function isNode(value: unknown): boolean;
25
- export type ValueNodeWithIndex = ValueNode & {
26
- index: number;
27
- };
28
- /** Get ObjectNode members as object */
29
- export declare function getObjMembers(node: ObjectNode): Record<string | number, ValueNodeWithIndex>;
30
- /** Inject members to ObjectNode */
31
- export declare function injectObjMembers(node: ObjectNode, members?: MemberNode[]): void;
32
- /** Replace an ObjectNode’s contents outright with another */
33
- export declare function replaceObjMembers(a: ObjectNode, b: DocumentNode | ObjectNode): void;
34
- /**
35
- * Variation of Momoa’s traverse(), which keeps track of global path.
36
- * Allows mutation of AST (along with any consequences)
37
- */
38
- export declare function traverse(root: AnyNode, visitor: JSONVisitor): void;
39
- /** Determine if an input is likely a JSON string */
40
- export declare function maybeRawJSON(input: string): boolean;
41
- /** Find Momoa node by traversing paths */
42
- export declare function findNode<T = AnyNode>(node: AnyNode, path: string[]): T | undefined;
43
- export interface ToMomoaOptions {
44
- filename?: URL;
45
- continueOnError?: boolean;
46
- logger: Logger;
47
- yamlToMomoa?: typeof yamlToMomoa;
48
- }
49
- export declare function toMomoa(input: string | Record<string, any>, { continueOnError, filename, logger, yamlToMomoa }: ToMomoaOptions): InputSource;
50
- /** Momoa, just with default options pre-set */
51
- export declare function parseJSON(input: string | Record<string, any>, options?: ParseOptions): any;
52
- //# sourceMappingURL=json.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/parse/json.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,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,WAAW;IAC1B,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,mCAAmC;AACnC,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,GAAE,UAAU,EAAO,QAK5E;AAED,6DAA6D;AAC7D,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,YAAY,GAAG,UAAU,QAE5E;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,QAmC3D;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,CAiCb;AAED,+CAA+C;AAC/C,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,GAAG,CAa1F"}
@@ -1,168 +0,0 @@
1
- import { parse as momoaParse, 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
- /** Inject members to ObjectNode */
36
- export function injectObjMembers(node, members = []) {
37
- if (node.type !== 'Object') {
38
- return;
39
- }
40
- node.members.push(...members);
41
- }
42
- /** Replace an ObjectNode’s contents outright with another */
43
- export function replaceObjMembers(a, b) {
44
- a.members = (b.type === 'Document' && b.body?.members) || b.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) {
68
- continue;
69
- }
70
- if (Array.isArray(value)) {
71
- for (let i = 0; i < value.length; i++) {
72
- visitNode(value[i], node, key === 'elements' ? [...nextPath, String(i)] : nextPath);
73
- }
74
- }
75
- else if (isNode(value)) {
76
- visitNode(value, node, nextPath);
77
- }
78
- }
79
- visitor.exit?.(node, parent, nextPath);
80
- }
81
- visitNode(root, undefined, []);
82
- }
83
- /** Determine if an input is likely a JSON string */
84
- export function maybeRawJSON(input) {
85
- return typeof input === 'string' && input.trim().startsWith('{');
86
- }
87
- /** Find Momoa node by traversing paths */
88
- export function findNode(node, path) {
89
- if (!path.length) {
90
- return;
91
- }
92
- let nextNode;
93
- switch (node.type) {
94
- // for Document nodes, dive into body for “free” (not part of the path)
95
- case 'Document': {
96
- return findNode(node.body, path);
97
- }
98
- case 'Object': {
99
- const [member, ...rest] = path;
100
- nextNode = node.members.find((m) => m.name.type === 'String' && m.name.value === member)?.value;
101
- if (nextNode && rest.length) {
102
- return findNode(nextNode, path.slice(1));
103
- }
104
- break;
105
- }
106
- case 'Array': {
107
- const [_index, ...rest] = path;
108
- const index = Number.parseInt(_index, 10);
109
- nextNode = node.elements[index]?.value;
110
- if (nextNode && rest.length) {
111
- return findNode(nextNode, path.slice(1));
112
- }
113
- break;
114
- }
115
- }
116
- return nextNode;
117
- }
118
- export function toMomoa(input, { continueOnError, filename, logger, yamlToMomoa }) {
119
- let src = '';
120
- if (typeof input === 'string') {
121
- src = input;
122
- }
123
- let document = {};
124
- if (typeof input === 'string' && !maybeRawJSON(input)) {
125
- if (yamlToMomoa) {
126
- try {
127
- document = yamlToMomoa(input); // if string, but not JSON, attempt YAML
128
- }
129
- catch (err) {
130
- logger.error({ group: 'parser', label: 'json', message: String(err), filename, src: input, continueOnError });
131
- }
132
- }
133
- else {
134
- logger.error({
135
- group: 'parser',
136
- label: 'yaml',
137
- message: `Install \`yaml-to-momoa\` package to parse YAML, and pass in as option, e.g.:
138
-
139
- import { parse } from '@terrazzo/parser';
140
- import yamlToMomoa from 'yaml-to-momoa';
141
-
142
- parse(yamlString, { yamlToMomoa });`,
143
- continueOnError: false, // fail here; no point in continuing
144
- });
145
- }
146
- }
147
- else {
148
- document = parseJSON(input);
149
- }
150
- if (!src) {
151
- src = print(document, { indent: 2 });
152
- }
153
- return { src, document };
154
- }
155
- /** Momoa, just with default options pre-set */
156
- export function parseJSON(input, options) {
157
- return momoaParse(
158
- // note: it seems silly, at first glance, to have JSON.stringify() inside an actual JSON parser. But
159
- // this provides a common interface to generate a Momoa AST for JSON created in-memory, which we already
160
- // know is 100% valid because it’s already deserialized.
161
- typeof input === 'string' ? input : JSON.stringify(input, undefined, 2), {
162
- mode: 'jsonc',
163
- ranges: true,
164
- tokens: true,
165
- ...options,
166
- });
167
- }
168
- //# 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;AAIF,iEAAiE;AACjE,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CA+J7E"}