@dsgraph/core 0.3.0 → 0.5.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.
package/dist/code.d.ts CHANGED
@@ -22,10 +22,14 @@ export interface CodeLoc {
22
22
  line: number;
23
23
  column: number;
24
24
  }
25
- /** One `var(--name)` in a style. */
25
+ /** One use of a token in code: `var(--name)` in a style, or a utility class such as `bg-primary`. */
26
26
  export interface TokenUse extends CodeLoc {
27
- /** The custom property as written, `--color-accent`. */
27
+ /** The custom property, `--color-accent`; for a class, its first candidate. */
28
28
  name: string;
29
+ /** Other custom properties a class may stand for (`bg-primary` → `--color-primary`, `--primary`). */
30
+ candidates?: string[];
31
+ /** As written in the code when it is not `var()`: the class `bg-primary`. */
32
+ text?: string;
29
33
  /** CSS property it is used in (`color`, `padding`, or a custom property it defines). */
30
34
  property: string;
31
35
  selector?: string;
@@ -38,6 +42,8 @@ export interface StyleLiteral extends CodeLoc {
38
42
  selector?: string;
39
43
  /** The value as written, `#3366ff`, `12px`. */
40
44
  text: string;
45
+ /** Where it was written when that is not a declaration: the class `bg-[#3366ff]`. */
46
+ source?: string;
41
47
  type: 'color' | 'dimension';
42
48
  /** Canonical DTCG value. */
43
49
  value: unknown;
@@ -50,14 +56,35 @@ export interface StyleLiteral extends CodeLoc {
50
56
  export declare class VarMatcher {
51
57
  private readonly graph;
52
58
  private readonly prefixes;
59
+ private suffixes?;
53
60
  constructor(graph: DsGraph, names?: Iterable<string>, prefix?: string);
54
61
  /** The token a custom property names, or undefined. */
55
62
  token(name: string): Token | undefined;
63
+ /** The token a use reads: its name, or else the first of its candidates that names a token. */
64
+ tokenOfUse(u: Pick<TokenUse, 'name' | 'candidates'>): Token | undefined;
56
65
  /** Whether a custom property is meant to be a design-system variable (carries a known prefix). */
57
66
  isSystemName(name: string): boolean;
58
67
  get prefix(): string | undefined;
68
+ /**
69
+ * A token by normalized name: the whole path, or else the end of exactly one path. Exports that
70
+ * group variables by category (`colors.--gray-9`, `spacing.space.4`) match their names in code.
71
+ */
59
72
  private byName;
60
73
  }
74
+ /** Names to learn a prefix from: `var()` uses as written, not the guesses behind a class. */
75
+ export declare const varNames: (code: CodeIndex) => string[];
76
+ export interface Coverage {
77
+ /** Uses of tokens: `var()` and classes that name one. */
78
+ fromTokens: number;
79
+ /** Colors and scale values written by hand. */
80
+ byHand: number;
81
+ /** fromTokens / (fromTokens + byHand); null when the code has neither. */
82
+ share: number | null;
83
+ }
84
+ /** How much of the code's design values come from tokens. */
85
+ export declare function coverageOf(code: CodeIndex, vars: VarMatcher): Coverage;
86
+ /** `On tokens: 92% of the design values in the code (120 from tokens, 10 written by hand).` */
87
+ export declare function formatCoverage(c: Coverage): string;
61
88
  /** How far apart two values of a type are, in the unit people think in; undefined when not comparable. */
62
89
  export declare function valueDistance(type: string, a: unknown, b: unknown, remBase?: number): number | undefined;
63
90
  export interface NearestToken {
@@ -1 +1 @@
1
- {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../src/code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAIjD;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,IAAI,EAAE,QAAQ,EAAE,CAAA;IAChB,QAAQ,EAAE,YAAY,EAAE,CAAA;IACxB,8CAA8C;IAC9C,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAClD;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf;AAED,oCAAoC;AACpC,MAAM,WAAW,QAAS,SAAQ,OAAO;IACvC,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAA;IACZ,wFAAwF;IACxF,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,2DAA2D;AAC3D,MAAM,WAAW,YAAa,SAAQ,OAAO;IAC3C,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,GAAG,WAAW,CAAA;IAC3B,4BAA4B;IAC5B,KAAK,EAAE,OAAO,CAAA;CACf;AAED;;;;GAIG;AACH,qBAAa,UAAU;IAInB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IAEnC,YACmB,KAAK,EAAE,OAAO,EAC/B,KAAK,GAAE,QAAQ,CAAC,MAAM,CAAM,EAC5B,MAAM,CAAC,EAAE,MAAM,EAGhB;IAED,uDAAuD;IACvD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CASrC;IAED,kGAAkG;IAClG,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGlC;IAED,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAED,OAAO,CAAC,MAAM;CAIf;AAwBD,0GAA0G;AAC1G,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,SAAM,GAAG,MAAM,GAAG,SAAS,CAcrG;AAQD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAA;IAChB,8EAA8E;IAC9E,KAAK,EAAE,OAAO,CAAA;CACf;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,EACd,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,EACxC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,GACZ,YAAY,EAAE,CAuBhB"}
1
+ {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../src/code.ts"],"names":[],"mappings":"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"}
package/dist/code.js CHANGED
@@ -10,9 +10,12 @@ import { toPx } from './values/dimension.js';
10
10
  export class VarMatcher {
11
11
  graph;
12
12
  prefixes;
13
+ suffixes;
13
14
  constructor(graph, names = [], prefix) {
14
15
  this.graph = graph;
15
- this.prefixes = prefix ? [normalizeName(prefix.replace(/^--/, ''))] : learnPrefixes(graph, names);
16
+ this.prefixes = prefix
17
+ ? [normalizeName(prefix.replace(/^--/, ''))]
18
+ : learnPrefixes(graph, names, (n) => this.byName(n));
16
19
  }
17
20
  /** The token a custom property names, or undefined. */
18
21
  token(name) {
@@ -29,6 +32,18 @@ export class VarMatcher {
29
32
  return this.byName(n.slice(p.length + 1));
30
33
  return undefined;
31
34
  }
35
+ /** The token a use reads: its name, or else the first of its candidates that names a token. */
36
+ tokenOfUse(u) {
37
+ const direct = this.token(u.name);
38
+ if (direct || !u.candidates)
39
+ return direct;
40
+ for (const c of u.candidates) {
41
+ const t = this.token(c);
42
+ if (t)
43
+ return t;
44
+ }
45
+ return undefined;
46
+ }
32
47
  /** Whether a custom property is meant to be a design-system variable (carries a known prefix). */
33
48
  isSystemName(name) {
34
49
  const n = normalizeName(name.replace(/^--/, ''));
@@ -37,17 +52,37 @@ export class VarMatcher {
37
52
  get prefix() {
38
53
  return this.prefixes[0];
39
54
  }
55
+ /**
56
+ * A token by normalized name: the whole path, or else the end of exactly one path. Exports that
57
+ * group variables by category (`colors.--gray-9`, `spacing.space.4`) match their names in code.
58
+ */
40
59
  byName(n) {
41
60
  const hits = this.graph.byCssVar(`--${n}`);
42
- return hits.length === 1 ? hits[0] : undefined;
61
+ if (hits.length)
62
+ return hits.length === 1 ? hits[0] : undefined;
63
+ if (!this.suffixes) {
64
+ this.suffixes = new Map();
65
+ for (const t of this.graph.tokens()) {
66
+ const segs = normalizeName(t.id).split('.');
67
+ for (let i = 1; i < segs.length; i++) {
68
+ const key = segs.slice(i).join('.');
69
+ this.suffixes.set(key, [...(this.suffixes.get(key) ?? []), t]);
70
+ }
71
+ }
72
+ }
73
+ // One word (`sm`, `primary`) is too common to stand for the end of a path.
74
+ if (!n.includes('.'))
75
+ return undefined;
76
+ const tail = this.suffixes.get(n);
77
+ return tail?.length === 1 ? tail[0] : undefined;
43
78
  }
44
79
  }
45
80
  /** Leading segments that, removed, turn most names that carry them into token names. */
46
- function learnPrefixes(graph, names) {
81
+ function learnPrefixes(graph, names, byName) {
47
82
  const stats = new Map();
48
83
  for (const name of new Set(names)) {
49
84
  const n = normalizeName(name.replace(/^--/, ''));
50
- if (graph.token(name.replace(/^--/, '')) || graph.byCssVar(`--${n}`).length)
85
+ if (graph.token(name.replace(/^--/, '')) || byName(n))
51
86
  continue;
52
87
  const dot = n.indexOf('.');
53
88
  if (dot < 0)
@@ -55,7 +90,7 @@ function learnPrefixes(graph, names) {
55
90
  const head = n.slice(0, dot);
56
91
  const s = stats.get(head) ?? { total: 0, hits: 0 };
57
92
  s.total++;
58
- if (graph.byCssVar(`--${n.slice(dot + 1)}`).length === 1)
93
+ if (byName(n.slice(dot + 1)))
59
94
  s.hits++;
60
95
  stats.set(head, s);
61
96
  }
@@ -64,6 +99,21 @@ function learnPrefixes(graph, names) {
64
99
  .sort((a, b) => b[1].hits - a[1].hits || a[0].localeCompare(b[0]))
65
100
  .map(([p]) => p);
66
101
  }
102
+ /** Names to learn a prefix from: `var()` uses as written, not the guesses behind a class. */
103
+ export const varNames = (code) => code.uses.filter((u) => !u.text).map((u) => u.name);
104
+ /** How much of the code's design values come from tokens. */
105
+ export function coverageOf(code, vars) {
106
+ const fromTokens = code.uses.filter((u) => vars.tokenOfUse(u)).length;
107
+ const byHand = code.literals.length;
108
+ const total = fromTokens + byHand;
109
+ return { fromTokens, byHand, share: total ? fromTokens / total : null };
110
+ }
111
+ /** `On tokens: 92% of the design values in the code (120 from tokens, 10 written by hand).` */
112
+ export function formatCoverage(c) {
113
+ if (c.share === null)
114
+ return 'On tokens: no colors or sizes in the code.';
115
+ return `On tokens: ${Math.round(c.share * 100)}% of the design values in the code (${c.fromTokens} from tokens, ${c.byHand} written by hand).`;
116
+ }
67
117
  const REM = 16;
68
118
  /** How far apart two values of a type are, in the unit people think in; undefined when not comparable. */
69
119
  export function valueDistance(type, a, b, remBase = REM) {
package/dist/code.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"code.js","sourceRoot":"","sources":["../src/code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code.js","sourceRoot":"","sources":["../src/code.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"impact.d.ts","sourceRoot":"","sources":["../src/impact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAC/D,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAc,MAAM,WAAW,CAAA;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEzC,qFAAqF;AACrF,MAAM,WAAW,UAAW,SAAQ,QAAQ;IAC1C,8FAA8F;IAC9F,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,KAAK,CAAA;IACZ,wHAAwH;IACxH,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAA;IAC5B,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAoCD;;;;;GAKG;AACH,wBAAgB,QAAQ,CACtB,EAAE,EAAE,SAAS,EACb,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,SAAS,EACf,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7B,MAAM,CAgDR"}
1
+ {"version":3,"file":"impact.d.ts","sourceRoot":"","sources":["../src/impact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAC/D,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAwB,MAAM,WAAW,CAAA;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEzC,qFAAqF;AACrF,MAAM,WAAW,UAAW,SAAQ,QAAQ;IAC1C,8FAA8F;IAC9F,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,KAAK,CAAA;IACZ,wHAAwH;IACxH,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAA;IAC5B,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAgCD;;;;;GAKG;AACH,wBAAgB,QAAQ,CACtB,EAAE,EAAE,SAAS,EACb,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,SAAS,EACf,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7B,MAAM,CAgDR"}
package/dist/impact.js CHANGED
@@ -1,4 +1,4 @@
1
- import { VarMatcher } from './code.js';
1
+ import { VarMatcher, varNames } from './code.js';
2
2
  const BREAKS = new Set([
3
3
  'token.removed',
4
4
  'token.renamed',
@@ -17,16 +17,16 @@ const IGNORED = new Set([
17
17
  ]);
18
18
  /** Uses of each token in a graph, by token id. */
19
19
  function usesByToken(graph, code, prefix) {
20
- const vars = new VarMatcher(graph, code.uses.map((u) => u.name), prefix);
20
+ const vars = new VarMatcher(graph, varNames(code), prefix);
21
21
  const out = new Map();
22
22
  for (const u of code.uses) {
23
- const t = vars.token(u.name);
23
+ const t = vars.tokenOfUse(u);
24
24
  if (t)
25
25
  out.set(t.id, [...(out.get(t.id) ?? []), u]);
26
26
  }
27
27
  return out;
28
28
  }
29
- const siteKey = (s) => `${s.file}:${s.line}:${s.column}:${s.name}`;
29
+ const siteKey = (s) => `${s.file}:${s.line}:${s.column}:${s.text ?? s.name}`;
30
30
  /**
31
31
  * Where a changeset reaches into the code (spec section 5.4): for every direct change, the `var()`
32
32
  * uses of the changed token and of every token that takes its value from it. Removed and renamed
@@ -1 +1 @@
1
- {"version":3,"file":"impact.js","sourceRoot":"","sources":["../src/impact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"impact.js","sourceRoot":"","sources":["../src/impact.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export * from '@dsgraph/schema';
2
- export { type CodeIndex, type CodeLoc, type NearestToken, nearestTokens, type StyleLiteral, type TokenUse, VarMatcher, valueDistance, } from './code.js';
2
+ export { type CodeIndex, type CodeLoc, type Coverage, coverageOf, formatCoverage, type NearestToken, nearestTokens, type StyleLiteral, type TokenUse, VarMatcher, valueDistance, varNames, } from './code.js';
3
3
  export { DiagnosticBag } from './diagnostics.js';
4
4
  export { type DiffOptions, diff } from './diff/diff.js';
5
5
  export { detectRenames, pathSimilarity, stableIdOf } from './diff/rename.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export * from '@dsgraph/schema';
2
- export { nearestTokens, VarMatcher, valueDistance, } from './code.js';
2
+ export { coverageOf, formatCoverage, nearestTokens, VarMatcher, valueDistance, varNames, } from './code.js';
3
3
  export { DiagnosticBag } from './diagnostics.js';
4
4
  export { diff } from './diff/diff.js';
5
5
  export { detectRenames, pathSimilarity, stableIdOf } from './diff/rename.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAIL,aAAa,EAGb,UAAU,EACV,aAAa,GACd,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAoB,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC5E,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAqB,MAAM,kBAAkB,CAAA;AACpG,OAAO,EAAgB,eAAe,EAAgC,MAAM,mBAAmB,CAAA;AAC/F,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAwC,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACpF,OAAO,EAAE,OAAO,EAAoB,MAAM,YAAY,CAAA;AACtD,OAAO,EAAmD,QAAQ,EAAE,MAAM,aAAa,CAAA;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACpG,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAuB,MAAM,uBAAuB,CAAA;AAC3E,OAAO,EACL,YAAY,EACZ,eAAe,EAEf,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAGlB,aAAa,GACd,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,eAAe,EACf,UAAU,EACV,UAAU,EAGV,IAAI,GAEL,MAAM,WAAW,CAAA;AAClB,OAAO,EAAqB,aAAa,EAAE,SAAS,EAAoB,MAAM,eAAe,CAAA;AAC7F,OAAO,EAAE,QAAQ,EAAe,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtF,OAAO,EACL,YAAY,EAGZ,UAAU,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,QAAQ,EACR,aAAa,EACb,UAAU,EACV,QAAQ,EACR,OAAO,GACR,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAA2C,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC7G,OAAO,EAAuB,cAAc,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AACjF,OAAO,EAGL,kBAAkB,EAClB,YAAY,EACZ,WAAW,GAEZ,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAIL,UAAU,EACV,cAAc,EAEd,aAAa,EAGb,UAAU,EACV,aAAa,EACb,QAAQ,GACT,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAoB,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC5E,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAqB,MAAM,kBAAkB,CAAA;AACpG,OAAO,EAAgB,eAAe,EAAgC,MAAM,mBAAmB,CAAA;AAC/F,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAwC,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACpF,OAAO,EAAE,OAAO,EAAoB,MAAM,YAAY,CAAA;AACtD,OAAO,EAAmD,QAAQ,EAAE,MAAM,aAAa,CAAA;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACpG,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAuB,MAAM,uBAAuB,CAAA;AAC3E,OAAO,EACL,YAAY,EACZ,eAAe,EAEf,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAGlB,aAAa,GACd,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,eAAe,EACf,UAAU,EACV,UAAU,EAGV,IAAI,GAEL,MAAM,WAAW,CAAA;AAClB,OAAO,EAAqB,aAAa,EAAE,SAAS,EAAoB,MAAM,eAAe,CAAA;AAC7F,OAAO,EAAE,QAAQ,EAAe,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtF,OAAO,EACL,YAAY,EAGZ,UAAU,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,QAAQ,EACR,aAAa,EACb,UAAU,EACV,QAAQ,EACR,OAAO,GACR,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAA2C,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC7G,OAAO,EAAuB,cAAc,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AACjF,OAAO,EAGL,kBAAkB,EAClB,YAAY,EACZ,WAAW,GAEZ,MAAM,wBAAwB,CAAA"}
@@ -14,7 +14,7 @@ export interface BuildOptions {
14
14
  diagnostics?: DiagnosticBag;
15
15
  meta?: Record<string, unknown>;
16
16
  }
17
- export declare const GENERATOR = "dsgraph@0.3.0";
17
+ export declare const GENERATOR = "dsgraph@0.5.0";
18
18
  /** Builds a canonical snapshot by resolving every permutation of contexts (Resolver 2025.10). */
19
19
  export declare function buildSnapshot(system: TokenSystem, opts?: BuildOptions): Promise<Snapshot>;
20
20
  //# sourceMappingURL=snapshot.d.ts.map
package/dist/snapshot.js CHANGED
@@ -3,7 +3,7 @@ import { DiagnosticBag } from './diagnostics.js';
3
3
  import { matchPath } from './path.js';
4
4
  import { createResolver } from './resolver/resolve.js';
5
5
  import { defaultInput, enumerateInputs, modifiersOf, } from './resolver/system.js';
6
- export const GENERATOR = 'dsgraph@0.3.0';
6
+ export const GENERATOR = 'dsgraph@0.5.0';
7
7
  const inputKey = (input) => canonicalize(input);
8
8
  /** Builds a canonical snapshot by resolving every permutation of contexts (Resolver 2025.10). */
9
9
  export async function buildSnapshot(system, opts = {}) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dsgraph/core",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "description": "Design-system graph core: DTCG 2025.10 + Resolver parsing, canonical values, snapshots, diff and semver. Isomorphic (browser + Node).",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -27,7 +27,7 @@
27
27
  "semver"
28
28
  ],
29
29
  "dependencies": {
30
- "@dsgraph/schema": "0.3.0",
30
+ "@dsgraph/schema": "0.5.0",
31
31
  "culori": "4.0.2",
32
32
  "json5": "2.2.3"
33
33
  },