@terrazzo/parser 0.3.3 → 0.3.5

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.
@@ -1,3 +1,4 @@
1
+ import { parse as parseJSON, print, } from '@humanwhocodes/momoa';
1
2
  export const CHILD_KEYS = {
2
3
  Document: ['body'],
3
4
  Object: ['members'],
@@ -22,11 +23,12 @@ export function getObjMembers(node) {
22
23
  if (node.type !== 'Object') {
23
24
  return members;
24
25
  }
25
- for (const m of node.members) {
26
+ for (let i = 0; i < node.members.length; i++) {
27
+ const m = node.members[i];
26
28
  if (m.name.type !== 'String') {
27
29
  continue;
28
30
  }
29
- members[m.name.value] = m.value;
31
+ members[m.name.value] = { ...m.value, index: i };
30
32
  }
31
33
  return members;
32
34
  }
@@ -45,7 +47,8 @@ export function injectObjMembers(node, members = []) {
45
47
  return newNode;
46
48
  }
47
49
  /**
48
- * Variation of Momoa’s traverse(), which keeps track of global path
50
+ * Variation of Momoa’s traverse(), which keeps track of global path.
51
+ * Allows mutation of AST (along with any consequences)
49
52
  */
50
53
  export function traverse(root, visitor) {
51
54
  /**
@@ -82,7 +85,79 @@ export function traverse(root, visitor) {
82
85
  visitNode(root, undefined, []);
83
86
  }
84
87
  /** Determine if an input is likely a JSON string */
85
- export function maybeJSONString(input) {
88
+ export function maybeRawJSON(input) {
86
89
  return typeof input === 'string' && input.trim().startsWith('{');
87
90
  }
91
+ /** Find Momoa node by traversing paths */
92
+ export function findNode(node, path) {
93
+ if (!path.length) {
94
+ return;
95
+ }
96
+ let nextNode;
97
+ switch (node.type) {
98
+ // for Document nodes, dive into body for “free” (not part of the path)
99
+ case 'Document': {
100
+ return findNode(node.body, path);
101
+ }
102
+ case 'Object': {
103
+ const [member, ...rest] = path;
104
+ nextNode = node.members.find((m) => m.name.type === 'String' && m.name.value === member)?.value;
105
+ if (nextNode && rest.length) {
106
+ return findNode(nextNode, path.slice(1));
107
+ }
108
+ break;
109
+ }
110
+ case 'Array': {
111
+ const [_index, ...rest] = path;
112
+ const index = Number.parseInt(_index, 10);
113
+ nextNode = node.elements[index]?.value;
114
+ if (nextNode && rest.length) {
115
+ return findNode(nextNode, path.slice(1));
116
+ }
117
+ break;
118
+ }
119
+ }
120
+ return nextNode;
121
+ }
122
+ export function toMomoa(input, { continueOnError, filename, logger, yamlToMomoa }) {
123
+ let src = '';
124
+ if (typeof input === 'string') {
125
+ src = input;
126
+ }
127
+ let document = {};
128
+ if (typeof input === 'string' && !maybeRawJSON(input)) {
129
+ if (yamlToMomoa) {
130
+ try {
131
+ document = yamlToMomoa(input); // if string, but not JSON, attempt YAML
132
+ }
133
+ catch (err) {
134
+ logger.error({ message: String(err), filename, src: input, continueOnError });
135
+ }
136
+ }
137
+ else {
138
+ logger.error({
139
+ group: 'parser',
140
+ message: `Install \`yaml-to-momoa\` package to parse YAML, and pass in as option, e.g.:
141
+
142
+ import { parse } from '@terrazzo/parser';
143
+ import yamlToMomoa from 'yaml-to-momoa';
144
+
145
+ parse(yamlString, { yamlToMomoa });`,
146
+ continueOnError: false, // fail here; no point in continuing
147
+ });
148
+ }
149
+ }
150
+ else {
151
+ document = parseJSON(typeof input === 'string' ? input : JSON.stringify(input, undefined, 2), // everything else: assert it’s JSON-serializable
152
+ {
153
+ mode: 'jsonc',
154
+ ranges: true,
155
+ tokens: true,
156
+ });
157
+ }
158
+ if (!src) {
159
+ src = print(document, { indent: 2 });
160
+ }
161
+ return { src, document };
162
+ }
88
163
  //# sourceMappingURL=json.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/parse/json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/parse/json.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import { type AnyNode, type MemberNode, type ValueNode } from '@humanwhocodes/momoa';
2
+ import { type Token, type TokenNormalized } from '@terrazzo/token-tools';
2
3
  import type Logger from '../logger.js';
4
+ import type { ConfigInit } from '../types.js';
3
5
  export interface ValidateOptions {
4
6
  filename?: URL;
5
7
  src: string;
@@ -42,4 +44,14 @@ export declare function validateTransition($value: ValueNode, node: AnyNode, { f
42
44
  * object) to see if it’s a valid DTCG token or not. Keeping the parent key
43
45
  * really helps in debug messages.
44
46
  */
45
- export default function validate(node: MemberNode, { filename, src, logger }: ValidateOptions): void;
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
+ export default function validateTokenNode(node: MemberNode, { config, filename, logger, parent, src, subpath, $typeInheritance }: ValidateTokenNodeOptions): TokenNormalized | undefined;
@@ -1,6 +1,6 @@
1
- import { print, } from '@humanwhocodes/momoa';
2
- import { isAlias } from '@terrazzo/token-tools';
3
- import { getObjMembers } from './json.js';
1
+ import { evaluate, print, } from '@humanwhocodes/momoa';
2
+ import { isAlias, isTokenMatch, splitID } from '@terrazzo/token-tools';
3
+ import { getObjMembers, injectObjMembers } from './json.js';
4
4
  const listFormat = new Intl.ListFormat('en-us', { type: 'disjunction' });
5
5
  export const VALID_COLORSPACES = new Set([
6
6
  'adobe-rgb',
@@ -460,7 +460,7 @@ export function validateTransition($value, node, { filename, src, logger }) {
460
460
  * object) to see if it’s a valid DTCG token or not. Keeping the parent key
461
461
  * really helps in debug messages.
462
462
  */
463
- export default function validate(node, { filename, src, logger }) {
463
+ export function validateTokenMemberNode(node, { filename, src, logger }) {
464
464
  if (node.type !== 'Member' && node.type !== 'Object') {
465
465
  logger.error({
466
466
  message: `Expected Object, received ${JSON.stringify(
@@ -598,4 +598,113 @@ export default function validate(node, { filename, src, logger }) {
598
598
  }
599
599
  }
600
600
  }
601
+ export default function validateTokenNode(node, { config, filename, logger, parent, src, subpath, $typeInheritance }) {
602
+ // don’t validate $value
603
+ if (subpath.includes('$value') || node.value.type !== 'Object') {
604
+ return;
605
+ }
606
+ const members = getObjMembers(node.value);
607
+ // keep track of $types
608
+ if ($typeInheritance && members.$type && members.$type.type === 'String' && !members.$value) {
609
+ // @ts-ignore
610
+ $typeInheritance[subpath.join('.') || '.'] = node.value.members.find((m) => m.name.value === '$type');
611
+ }
612
+ // don’t validate $extensions or $defs
613
+ if (!members.$value || subpath.includes('$extensions') || subpath.includes('$deps')) {
614
+ return;
615
+ }
616
+ const id = subpath.join('.');
617
+ if (!subpath.includes('.$value') && members.value) {
618
+ logger.warn({ message: `Group ${id} has "value". Did you mean "$value"?`, filename, node, src });
619
+ }
620
+ const extensions = members.$extensions ? getObjMembers(members.$extensions) : undefined;
621
+ const sourceNode = structuredClone(node);
622
+ // get parent type by taking the closest-scoped $type (length === closer)
623
+ let parent$type;
624
+ let longestPath = '';
625
+ for (const [k, v] of Object.entries($typeInheritance ?? {})) {
626
+ if (k === '.' || id.startsWith(k)) {
627
+ if (k.length > longestPath.length) {
628
+ parent$type = v;
629
+ longestPath = k;
630
+ }
631
+ }
632
+ }
633
+ if (parent$type && !members.$type) {
634
+ sourceNode.value = injectObjMembers(
635
+ // @ts-ignore
636
+ sourceNode.value, [parent$type]);
637
+ }
638
+ validateTokenMemberNode(sourceNode, { filename, src, logger });
639
+ // All tokens must be valid, so we want to validate it up till this
640
+ // point. However, if we are ignoring this token (or respecting
641
+ // $deprecated, we can omit it from the output.
642
+ const $deprecated = members.$deprecated && evaluate(members.$deprecated);
643
+ if ((config.ignore.deprecated && $deprecated) || (config.ignore.tokens && isTokenMatch(id, config.ignore.tokens))) {
644
+ return;
645
+ }
646
+ const group = { id: splitID(id).group, tokens: [] };
647
+ if (parent$type) {
648
+ group.$type =
649
+ // @ts-ignore
650
+ parent$type.value.value;
651
+ }
652
+ // note: this will also include sibling tokens, so be selective about only accessing group-specific properties
653
+ const groupMembers = getObjMembers(
654
+ // @ts-ignore
655
+ parent);
656
+ if (groupMembers.$description) {
657
+ group.$description = evaluate(groupMembers.$description);
658
+ }
659
+ if (groupMembers.$extensions) {
660
+ group.$extensions = evaluate(groupMembers.$extensions);
661
+ }
662
+ const token = {
663
+ // @ts-ignore
664
+ $type: members.$type?.value ?? parent$type?.value.value,
665
+ // @ts-ignore
666
+ $value: evaluate(members.$value),
667
+ id,
668
+ // @ts-ignore
669
+ mode: {},
670
+ // @ts-ignore
671
+ originalValue: evaluate(node.value),
672
+ group,
673
+ source: {
674
+ loc: filename ? filename.href : undefined,
675
+ // @ts-ignore
676
+ node: sourceNode.value,
677
+ },
678
+ };
679
+ // @ts-ignore
680
+ if (members.$description?.value) {
681
+ // @ts-ignore
682
+ token.$description = members.$description.value;
683
+ }
684
+ // handle modes
685
+ // note that circular refs are avoided here, such as not duplicating `modes`
686
+ const modeValues = extensions?.mode
687
+ ? getObjMembers(
688
+ // @ts-ignore
689
+ extensions.mode)
690
+ : {};
691
+ for (const mode of ['.', ...Object.keys(modeValues)]) {
692
+ token.mode[mode] = {
693
+ id: token.id,
694
+ // @ts-ignore
695
+ $type: token.$type,
696
+ // @ts-ignore
697
+ $value: mode === '.' ? token.$value : evaluate(modeValues[mode]),
698
+ source: {
699
+ loc: filename ? filename.href : undefined,
700
+ // @ts-ignore
701
+ node: mode === '.' ? structuredClone(token.source.node) : modeValues[mode],
702
+ },
703
+ };
704
+ if (token.$description) {
705
+ token.mode[mode].$description = token.$description;
706
+ }
707
+ }
708
+ return token;
709
+ }
601
710
  //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/parse/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/parse/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,QAAQ,EACR,KAAK,GACN,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAoC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAGzG,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE5D,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;AAQzE,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IACvC,WAAW;IACX,YAAY;IACZ,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,UAAU;IACV,SAAS;IACT,MAAM;IACN,aAAa;IACb,KAAK;IACL,SAAS;IACT,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACxC,MAAM;IACN,UAAU;IACV,aAAa;IACb,aAAa;IACb,OAAO;IACP,QAAQ;IACR,SAAS;IACT,MAAM;IACN,QAAQ;IACR,WAAW;IACX,WAAW;IACX,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,OAAO;IACP,OAAO;IACP,aAAa;IACb,aAAa;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IACzC,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;CACR,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEjF,qEAAqE;AACrE,SAAS,YAAY,CAAC,IAAa;IACjC,IAAI,IAAI,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8CAA8C;AAC9C,SAAS,iBAAiB,CACxB,MAAkB,EAClB,UAAyF,EACzF,IAAa,EACb,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAmB;IAE1C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAE,CAAC;QACtD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,8BAA8B,QAAQ,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACpG,CAAC;YACD,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;AACH,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,KAAc,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAmB;IAC/G,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,kBAAkB,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5F,CAAC;AACH,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,cAAc,CAAC,MAAiB,EAAE,IAAa,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAmB;IACzG,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,6BAA6B,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACrG,CAAC;SAAM,CAAC;QACN,iBAAiB,CACf,MAAM,EACN;YACE,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;YACnD,KAAK,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE;YACzD,KAAK,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE;SACxD,EACD,IAAI,EACJ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAC1B,CAAC;IACJ,CAAC;AACH,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,aAAa,CAAC,MAAiB,EAAE,IAAa,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAmB;IACxG,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,iDAAiD;QACjD,gBAAgB;QAChB,cAAc;QACd,iGAAiG;QACjG,kBAAkB;QAClB,SAAS;QACT,MAAM;QACN,IAAI,MAAM,CAAC,KAAK,KAAK,EAAE,EAAE,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,uCAAuC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpC,iBAAiB,CACf,MAAM,EACN;YACE,UAAU,EAAE;gBACV,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;oBACf,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBACxB,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,6BAA6B,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC7F,CAAC;oBACD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAE,CAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;wBACpD,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,0BAA0B,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC1F,CAAC;gBACH,CAAC;gBACD,QAAQ,EAAE,IAAI;aACf;YACD,QAAQ,EAAE;gBACR,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;oBACf,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBACvB,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,4BAA4B,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC5F,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;4BAC7B,MAAM,CAAC,KAAK,CAAC;gCACX,OAAO,EAAE,iCAAiC,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,EAAE;gCACnE,QAAQ;gCACR,IAAI,EAAE,CAAC;gCACP,GAAG;6BACJ,CAAC,CAAC;wBACL,CAAC;wBACD,KAAK,MAAM,OAAO,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;4BACjC,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gCACpC,MAAM,CAAC,KAAK,CAAC;oCACX,OAAO,EAAE,6BAA6B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oCAC5D,QAAQ;oCACR,IAAI,EAAE,OAAO;oCACb,GAAG;iCACJ,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,QAAQ,EAAE,IAAI;aACf;YACD,GAAG,EAAE;gBACH,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;oBACf,IACE,CAAC,CAAC,IAAI,KAAK,QAAQ;wBACnB,+DAA+D;wBAC/D,iEAAiE;wBACjE,iEAAiE;wBACjE,2CAA2C;wBAC3C,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC;wBACxB,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC;wBACxB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAClC,CAAC;wBACD,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,qBAAqB,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;oBACrF,CAAC;gBACH,CAAC;aACF;YACD,KAAK,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE;SACrC,EACD,IAAI,EACJ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAC1B,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,6BAA6B,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACrG,CAAC;AACH,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,KAAc,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAmB;IAC/G,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,uCAAuC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACjH,CAAC;SAAM,IACL,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EACjH,CAAC;QACD,MAAM,CAAC,KAAK,CAAC;YACX,OAAO,EAAE,2DAA2D;YACpE,QAAQ;YACR,IAAI,EAAE,MAAM;YACZ,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC;YACX,OAAO,EAAE,4CAA4C,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC7E,QAAQ;YACR,IAAI,EAAE,MAAM;YACZ,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,KAAc,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAmB;IAC7G,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,wBAAwB;IAClC,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,oCAAoC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,mCAAmC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,IAAI,KAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,6BAA6B,KAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACpG,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAE,IAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,MAAM,CAAC,KAAK,CAAC;gBACX,OAAO,EAAE,gDAAgD,KAAK,CAAC,IAAkB,CAAC,EAAE;gBACpF,QAAQ;gBACR,IAAI,EAAE,IAAI;gBACV,GAAG;aACJ,CAAC,CAAC;QACL,CAAC;QACD,OAAO;IACT,CAAC;IACD,2BAA2B;IAC3B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,6BAA6B,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACrG,CAAC;IACD,MAAM,KAAK,GAAI,MAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,IAAI,GAAI,MAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAM,EAAE,EAAE,CAAC,CAAC;IAC9D,IAAK,MAAqB,CAAC,KAAK,KAAK,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,2CAA2C,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACtG,CAAC;SAAM,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC;YACX,OAAO,EAAE,gDAAgD,IAAI,CAAC,SAAS,CAAC,IAAI,IAAK,MAAqB,CAAC,KAAK,CAAC,EAAE;YAC/G,QAAQ;YACR,IAAI,EAAE,MAAM;YACZ,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,KAAM,CAAC,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,2CAA2C,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACrH,CAAC;AACH,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,KAAc,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAmB;IAC5G,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,wBAAwB;IAClC,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,oCAAoC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,mCAAmC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,IAAI,KAAK,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,6BAA6B,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACpG,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAE,IAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,uCAAuC,KAAK,CAAC,IAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9G,CAAC;QACD,OAAO;IACT,CAAC;IACD,2BAA2B;IAC3B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,6BAA6B,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACrG,CAAC;IACD,MAAM,KAAK,GAAI,MAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC;IACrE,MAAM,IAAI,GAAI,MAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC7D,IAAK,MAAqB,CAAC,KAAK,KAAK,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,0CAA0C,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACrG,CAAC;SAAM,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC;YACX,OAAO,EAAE,uCAAuC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAK,MAAqB,CAAC,KAAK,CAAC,EAAE;YACtG,QAAQ;YACR,IAAI,EAAE,MAAM;YACZ,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,0CAA0C,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACpH,CAAC;AACH,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,KAAc,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAmB;IAC9G,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC;YACX,OAAO,EAAE,iDAAiD,MAAM,CAAC,IAAI,EAAE;YACvE,QAAQ;YACR,IAAI,EAAE,MAAM;YACZ,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,EAAE,EAAE,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,kDAAkD,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7G,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC,EAAE,CAAC;QAChH,MAAM,CAAC,KAAK,CAAC;YACX,OAAO,EAAE,0EAA0E;YACnF,QAAQ;YACR,IAAI,EAAE,MAAM;YACZ,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,KAAc,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAmB;IAC9G,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC;YACX,OAAO,EAAE,0DAA0D,MAAM,CAAC,IAAI,EAAE;YAChF,QAAQ;YACR,IAAI,EAAE,MAAM;YACZ,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,MAAM,CAAC,KAAK,CAAC;YACX,OAAO,EAAE,uBAAuB,KAAK,CAAC,MAAM,CAAC,sBAAsB,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,GAAG;YAChH,QAAQ;YACR,IAAI,EAAE,MAAM;YACZ,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC;QAC1E,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,oCAAoC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9G,CAAC;AACH,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,KAAc,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAmB;IAC5G,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC;YACX,OAAO,EAAE,8CAA8C,MAAM,CAAC,IAAI,EAAE;YACpE,QAAQ;YACR,IAAI,EAAE,MAAM;YACZ,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC;YACpC,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC;oBACX,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,sCAAsC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;oBACjF,QAAQ;oBACR,IAAI,EAAE,OAAO;oBACb,GAAG;iBACJ,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;YACD,iBAAiB,CACf,OAAO,CAAC,KAAK,EACb;gBACE,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACnD,QAAQ,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;aACxD,EACD,OAAO,EACP,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAC1B,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,cAAc,CAAC,MAAiB,EAAE,KAAc,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAmB;IAC1G,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,6BAA6B,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACrG,CAAC;AACH,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,eAAe,CAAC,MAAiB,EAAE,KAAc,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAmB;IAC3G,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,8BAA8B,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACtG,CAAC;AACH,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,IAAa,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAmB;IAC9G,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,6BAA6B,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACrG,CAAC;SAAM,CAAC;QACN,iBAAiB,CACf,MAAM,EACN;YACE,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;YACnD,OAAO,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE;YACzD,OAAO,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE;YACzD,IAAI,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE;YACtC,MAAM,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE;YACxC,KAAK,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE;SACtC,EACD,IAAI,EACJ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAC1B,CAAC;IACJ,CAAC;AACH,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,IAAa,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAmB;IAC9G,+FAA+F;IAC/F,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,KAAK,CAAC;gBACX,OAAO,EAAE,wBAAwB,KAAK,CAAC,MAAM,CAAC,sBAAsB,UAAU,CAAC,MAAM,CAAC;oBACpF,GAAG,mBAAmB;iBACvB,CAAC,GAAG;gBACL,QAAQ;gBACR,IAAI,EAAE,MAAM;gBACZ,GAAG;aACJ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpC,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,KAAK,MAAM,QAAQ,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,8BAA8B,QAAQ,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACpG,CAAC;QACH,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC;QAC7C,IAAI,OAAO,EAAE,IAAI,KAAK,QAAQ,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACnF,MAAM,CAAC,KAAK,CAAC;gBACX,OAAO,EAAE,yBAAyB,KAAK,CAAC,OAAQ,CAAC,sBAAsB,UAAU,CAAC,MAAM,CAAC;oBACvF,GAAG,4BAA4B;iBAChC,CAAC,GAAG;aACN,CAAC,CAAC;QACL,CAAC;QACD,IAAI,SAAS,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;YAChC,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACzC,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE,CAAC;oBAClE,IAAI,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;wBAChC,mBAAmB,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC5D,CAAC;yBAAM,CAAC;wBACN,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,KAAK,CAAC;wBACX,OAAO,EAAE,wEAAwE;wBACjF,QAAQ;wBACR,IAAI,EAAE,OAAO;wBACb,GAAG;qBACJ,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,uCAAuC,SAAU,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACnH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,uCAAuC,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/G,CAAC;AACH,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,IAAa,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAmB;IAC7G,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,6BAA6B,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACrG,CAAC;SAAM,CAAC;QACN,iBAAiB,CACf,MAAM,EACN;YACE,QAAQ,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE;YACzD,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,uEAAuE;YAChI,cAAc,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE;SACnE,EACD,IAAI,EACJ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAC1B,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAgB,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAmB;IAClG,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrD,MAAM,CAAC,KAAK,CAAC;YACX,OAAO,EAAE,6BAA6B,IAAI,CAAC,SAAS;YAClD,uFAAuF;YACvF,IAAI,CAAC,IAAI,CACV,EAAE;YACH,QAAQ;YACR,IAAI;YACJ,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,MAAM,MAAM,GAAG,WAAW,CAAC,MAAmB,CAAC;IAC/C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAmB,CAAC;IAE9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,yEAAyE;IACzE,wFAAwF;IACxF,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7C,MAAM;QACR,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACnD,MAAM;QACR,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACjD,MAAM;QACR,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAChD,MAAM;QACR,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAClD,MAAM;QACR,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAClD,MAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAC9C,MAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACrD,CAAC;iBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACnC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACtC,mBAAmB,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC;oBACX,OAAO,EAAE,+DAA+D,MAAM,CAAC,IAAI,EAAE;oBACrF,QAAQ;oBACR,IAAI,EAAE,MAAM;oBACZ,GAAG;iBACJ,CAAC,CAAC;YACL,CAAC;YACD,MAAM;QACR,CAAC;QAED,aAAa;QACb,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,8BAA8B,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACtG,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,6BAA6B,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACrG,CAAC;iBAAM,IAAI,MAAM,CAAC,KAAK,KAAK,EAAE,EAAE,CAAC;gBAC/B,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,qCAAqC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAChG,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,6BAA6B,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACrG,CAAC;YACD,MAAM;QACR,CAAC;QAED,kBAAkB;QAClB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;YACxD,MAAM;QACR,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1D,MAAM;QACR,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7D,MAAM;QACR,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;YAC5D,MAAM;QACR,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,6BAA6B,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACnG,MAAM;YACR,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,KAAK,CAAC;oBACX,OAAO,EAAE,2DAA2D;oBACpE,QAAQ;oBACR,IAAI,EAAE,MAAM;oBACZ,GAAG;iBACJ,CAAC,CAAC;YACL,CAAC;YACD,iBAAiB,CACf,MAAM,EACN;gBACE,UAAU,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE;gBAC7C,UAAU,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE;aAC9C,EACD,IAAI,EACJ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAC1B,CAAC;YACF,MAAM;QACR,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YACR,OAAO;YACP,MAAM;QACR,CAAC;IACH,CAAC;AACH,CAAC;AAYD,MAAM,CAAC,OAAO,UAAU,iBAAiB,CACvC,IAAgB,EAChB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,gBAAgB,EAA4B;IAE9F,wBAAwB;IACxB,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC/D,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAE1C,uBAAuB;IACvB,IAAI,gBAAgB,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC5F,aAAa;QACb,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;IACxG,CAAC;IAED,sCAAsC;IACtC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACpF,OAAO;IACT,CAAC;IAED,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE7B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,sCAAsC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IACnG,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,WAAyB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtG,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAEzC,yEAAyE;IACzE,IAAI,WAAuC,CAAC;IAC5C,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC,EAAE,CAAC;QAC5D,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;gBAClC,WAAW,GAAG,CAAC,CAAC;gBAChB,WAAW,GAAG,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,WAAW,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAClC,UAAU,CAAC,KAAK,GAAG,gBAAgB;QACjC,aAAa;QACb,UAAU,CAAC,KAAK,EAChB,CAAC,WAAW,CAAC,CACd,CAAC;IACJ,CAAC;IAED,uBAAuB,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAE/D,mEAAmE;IACnE,+DAA+D;IAC/D,+CAA+C;IAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAK,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAkC,CAAC;IAC3G,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAClH,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAA6B,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,KAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC/E,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,CAAC,KAAK;YACT,aAAa;YACb,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;IAC5B,CAAC;IACD,8GAA8G;IAC9G,MAAM,YAAY,GAAG,aAAa;IAChC,aAAa;IACb,MAAM,CACP,CAAC;IACF,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;QAC9B,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAW,CAAC;IACrE,CAAC;IACD,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;QAC7B,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,YAAY,CAAC,WAAW,CAA4B,CAAC;IACpF,CAAC;IACD,MAAM,KAAK,GAAoB;QAC7B,aAAa;QACb,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,IAAI,WAAW,EAAE,KAAK,CAAC,KAAK;QACvD,aAAa;QACb,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;QAChC,EAAE;QACF,aAAa;QACb,IAAI,EAAE,EAAE;QACR,aAAa;QACb,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QACnC,KAAK;QACL,MAAM,EAAE;YACN,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACzC,aAAa;YACb,IAAI,EAAE,UAAU,CAAC,KAAK;SACvB;KACF,CAAC;IACF,aAAa;IACb,IAAI,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC;QAChC,aAAa;QACb,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,eAAe;IACf,4EAA4E;IAC5E,MAAM,UAAU,GAAG,UAAU,EAAE,IAAI;QACjC,CAAC,CAAC,aAAa;QACX,aAAa;QACb,UAAU,CAAC,IAAI,CAChB;QACH,CAAC,CAAC,EAAE,CAAC;IACP,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACjB,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,aAAa;YACb,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,aAAa;YACb,MAAM,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAChE,MAAM,EAAE;gBACN,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBACzC,aAAa;gBACb,IAAI,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;aAC3E;SACF,CAAC;QACF,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QACtD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@terrazzo/parser",
3
- "version": "0.3.3",
3
+ "version": "0.3.5",
4
4
  "description": "Parser/validator for the Design Tokens Community Group (DTCG) standard.",
5
5
  "type": "module",
6
6
  "author": {
@@ -22,7 +22,7 @@
22
22
  "lint"
23
23
  ],
24
24
  "main": "./dist/index.js",
25
- "homepage": "https://terrazzoapp.com/docs/cli/api/js",
25
+ "homepage": "https://terrazzo.app/docs/cli/api/js",
26
26
  "repository": {
27
27
  "type": "git",
28
28
  "url": "https://github.com/terrazzoapp/terrazzo.git",
@@ -30,7 +30,7 @@
30
30
  },
31
31
  "license": "MIT",
32
32
  "dependencies": {
33
- "@humanwhocodes/momoa": "^3.3.5",
33
+ "@humanwhocodes/momoa": "^3.3.6",
34
34
  "@types/babel__code-frame": "^7.0.6",
35
35
  "@types/culori": "^2.1.1",
36
36
  "culori": "^4.0.1",
@@ -38,13 +38,13 @@
38
38
  "merge-anything": "^5.1.7",
39
39
  "picocolors": "^1.1.1",
40
40
  "scule": "^1.3.0",
41
- "wildcard-match": "^5.1.3",
42
- "yaml": "^2.6.1",
43
- "@terrazzo/token-tools": "^0.3.3"
41
+ "wildcard-match": "^5.1.4",
42
+ "yaml": "^2.7.0",
43
+ "@terrazzo/token-tools": "^0.3.5"
44
44
  },
45
45
  "devDependencies": {
46
46
  "esbuild": "^0.23.1",
47
- "yaml-to-momoa": "^0.0.1"
47
+ "yaml-to-momoa": "^0.0.3"
48
48
  },
49
49
  "scripts": {
50
50
  "build": "tsc -p tsconfig.build.json",
@@ -120,7 +120,10 @@ export default async function build(
120
120
  formats[params.format] = [];
121
121
  }
122
122
  const foundTokenI = formats[params.format]!.findIndex(
123
- (t) => id === t.id && params.localID === t.localID && (!params.mode || params.mode === t.mode),
123
+ (t) =>
124
+ id === t.id &&
125
+ (!params.localID || params.localID === t.localID) &&
126
+ (!params.mode || params.mode === t.mode),
124
127
  );
125
128
  if (foundTokenI === -1) {
126
129
  formats[params.format]!.push({
@@ -99,6 +99,15 @@ export function applyAliases(
99
99
  });
100
100
  }
101
101
  token.$type = aliasOf.$type;
102
+
103
+ // also update aliased token’s .aliasedBy value
104
+ if (!tokens[aliasOfID]!.aliasedBy) {
105
+ tokens[aliasOfID]!.aliasedBy = [];
106
+ }
107
+ if (!tokens[aliasOfID]!.aliasedBy.includes(token.id)) {
108
+ tokens[aliasOfID]!.aliasedBy.push(token.id);
109
+ tokens[aliasOfID]!.aliasedBy.sort((a, b) => a.localeCompare(b, 'en-us', { numeric: true })); // sort to improve downstream plugins’ determinism
110
+ }
102
111
  }
103
112
 
104
113
  // handle aliases within array values (e.g. cubicBezier, gradient)
@@ -116,7 +125,7 @@ export function applyAliases(
116
125
  const { id: aliasID, mode: aliasMode } = parseAlias(token.$value[i]);
117
126
  token.partialAliasOf![i] = aliasID;
118
127
  // @ts-ignore
119
- token.$value[i] = (aliasMode && tokens[aliasOfID]!.mode[aliasMode]?.$value) || tokens[aliasOfID]!.$value;
128
+ token.$value[i] = (aliasMode && tokens[aliasOfID].mode[aliasMode]?.$value) || tokens[aliasOfID].$value;
120
129
  } else if (typeof token.$value[i] === 'object') {
121
130
  for (const [property, subvalue] of Object.entries(token.$value[i]!)) {
122
131
  if (isAlias(subvalue)) {
@@ -141,9 +150,9 @@ export function applyAliases(
141
150
  }
142
151
 
143
152
  // @ts-ignore
144
- token.partialAliasOf[i]![property] = aliasID; // also keep the shallow alias here, too!
153
+ token.partialAliasOf[i][property] = aliasID; // also keep the shallow alias here, too!
145
154
  // @ts-ignore
146
- token.$value[i]![property] = (aliasMode && aliasToken.mode[aliasMode]?.$value) || aliasToken.$value;
155
+ token.$value[i][property] = (aliasMode && aliasToken.mode[aliasMode]?.$value) || aliasToken.$value;
147
156
  }
148
157
  }
149
158
  }
@@ -177,16 +186,16 @@ export function applyAliases(
177
186
  });
178
187
  }
179
188
  // @ts-ignore
180
- token.$value[property] = aliasToken!.mode[aliasMode]?.$value || aliasToken!.$value;
189
+ token.$value[property] = aliasToken.mode[aliasMode]?.$value || aliasToken.$value;
181
190
  }
182
191
 
183
192
  // strokeStyle has an array within an object
184
193
  // @ts-ignore
185
- else if (Array.isArray(token.$value[property]!)) {
194
+ else if (Array.isArray(token.$value[property])) {
186
195
  // @ts-ignore
187
- for (let i = 0; i < token.$value[property]!.length; i++) {
196
+ for (let i = 0; i < token.$value[property].length; i++) {
188
197
  // @ts-ignore
189
- if (isAlias(token.$value[property]![i])) {
198
+ if (isAlias(token.$value[property][i])) {
190
199
  // @ts-ignore
191
200
  const aliasOfID = resolveAlias(token.$value[property][i], { tokens, logger, filename, node, src });
192
201
  if (!token.partialAliasOf) {
@@ -215,7 +224,7 @@ export function applyAliases(
215
224
  });
216
225
  }
217
226
  // @ts-ignore
218
- token.$value[property]![i] = tokens[aliasOfID]!.mode[aliasMode]?.$value || tokens[aliasOfID]!.$value;
227
+ token.$value[property][i] = tokens[aliasOfID].mode[aliasMode]?.$value || tokens[aliasOfID].$value;
219
228
  }
220
229
  }
221
230
  }