@adobe/design-data-wasm 0.9.0 → 0.10.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adobe/design-data-wasm",
3
- "version": "0.9.0",
3
+ "version": "0.10.1",
4
4
  "description": "WebAssembly bindings for design-data-core — query, validate, resolve, diff, and registry helpers for Spectrum design tokens",
5
5
  "type": "module",
6
6
  "main": "./pkg/node/design_data_wasm.js",
@@ -28,6 +28,16 @@ export type TokenResultArray = TokenResult[];
28
28
  */
29
29
  export type ResolutionContext = Map<string, string>;
30
30
 
31
+ /**
32
+ * A non-winning candidate returned with a property resolution.
33
+ */
34
+ export interface ResolveAlternative {
35
+ name: string;
36
+ uuid: string | undefined;
37
+ deprecated: boolean;
38
+ deprecatedIn: string | undefined;
39
+ }
40
+
31
41
  /**
32
42
  * A registry vocabulary object as read from `registry/*.json`.
33
43
  */
@@ -80,6 +90,11 @@ export interface SuggestResult {
80
90
  export interface ResolveResult {
81
91
  token: TokenResult;
82
92
  specificity: number;
93
+ deprecated: boolean;
94
+ deprecatedIn: string | undefined;
95
+ candidateCount: number;
96
+ ambiguous: boolean;
97
+ alternatives: ResolveAlternative[];
83
98
  }
84
99
 
85
100
  /**
@@ -161,6 +176,17 @@ export interface RenamedToken {
161
176
  propertyChanges: PropertyChange[];
162
177
  }
163
178
 
179
+ /**
180
+ * Optional name-object fields used to narrow property resolution.
181
+ */
182
+ export interface ResolveNarrowing {
183
+ component: string | undefined;
184
+ variant: string | undefined;
185
+ state: string | undefined;
186
+ colorRole: string | undefined;
187
+ excludeDeprecated?: boolean;
188
+ }
189
+
164
190
  /**
165
191
  * Severity level of a validation diagnostic.
166
192
  */
@@ -293,8 +319,13 @@ export class Dataset {
293
319
  *
294
320
  * **Syntax:** `key=value` pairs separated by `,` (AND) or `|` (OR).
295
321
  * Use `!=` for negation and `*` as a wildcard suffix or prefix.
296
- * Valid keys: `property`, `component`, `variant`, `state`, `colorScheme`,
297
- * `scale`, `contrast`, `uuid`, `$schema`.
322
+ * Valid parser keys: `property`, `component`, `variant`, `state`,
323
+ * `colorScheme`, `scale`, `contrast`, `uuid`, `$schema`.
324
+ *
325
+ * `component` remains accepted for compatibility, but it is not a
326
+ * meaningfully indexed field in the embedded dataset and usually returns no
327
+ * matches. Prefer `describe_component` and `tokenBindings` metadata for
328
+ * component-aware discovery.
298
329
  *
299
330
  * ```js
300
331
  * const results = ds.query("property=color,colorScheme=dark");
@@ -312,11 +343,14 @@ export class Dataset {
312
343
  * no token matches the property+context combination.
313
344
  *
314
345
  * ```js
315
- * const result = ds.resolve("background", { colorScheme: "dark", scale: "medium" });
346
+ * const result = ds.resolve("background", { colorScheme: "dark", scale: "medium" }, {
347
+ * variant: "accent",
348
+ * state: "hover",
349
+ * });
316
350
  * if (result) console.log(result.token.raw.value);
317
351
  * ```
318
352
  */
319
- resolve(property: string, context: ResolutionContext): ResolveResult | undefined;
353
+ resolve(property: string, context: ResolutionContext, narrowing?: ResolveNarrowing | null): ResolveResult | undefined;
320
354
  /**
321
355
  * Resolve a legacy token reference by slug in a given context, returning
322
356
  * the terminal value and the full alias chain.
@@ -118,8 +118,13 @@ class Dataset {
118
118
  *
119
119
  * **Syntax:** `key=value` pairs separated by `,` (AND) or `|` (OR).
120
120
  * Use `!=` for negation and `*` as a wildcard suffix or prefix.
121
- * Valid keys: `property`, `component`, `variant`, `state`, `colorScheme`,
122
- * `scale`, `contrast`, `uuid`, `$schema`.
121
+ * Valid parser keys: `property`, `component`, `variant`, `state`,
122
+ * `colorScheme`, `scale`, `contrast`, `uuid`, `$schema`.
123
+ *
124
+ * `component` remains accepted for compatibility, but it is not a
125
+ * meaningfully indexed field in the embedded dataset and usually returns no
126
+ * matches. Prefer `describe_component` and `tokenBindings` metadata for
127
+ * component-aware discovery.
123
128
  *
124
129
  * ```js
125
130
  * const results = ds.query("property=color,colorScheme=dark");
@@ -147,17 +152,21 @@ class Dataset {
147
152
  * no token matches the property+context combination.
148
153
  *
149
154
  * ```js
150
- * const result = ds.resolve("background", { colorScheme: "dark", scale: "medium" });
155
+ * const result = ds.resolve("background", { colorScheme: "dark", scale: "medium" }, {
156
+ * variant: "accent",
157
+ * state: "hover",
158
+ * });
151
159
  * if (result) console.log(result.token.raw.value);
152
160
  * ```
153
161
  * @param {string} property
154
162
  * @param {ResolutionContext} context
163
+ * @param {ResolveNarrowing | null} [narrowing]
155
164
  * @returns {ResolveResult | undefined}
156
165
  */
157
- resolve(property, context) {
166
+ resolve(property, context, narrowing) {
158
167
  const ptr0 = passStringToWasm0(property, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
159
168
  const len0 = WASM_VECTOR_LEN;
160
- const ret = wasm.dataset_resolve(this.__wbg_ptr, ptr0, len0, context);
169
+ const ret = wasm.dataset_resolve(this.__wbg_ptr, ptr0, len0, context, isLikeNone(narrowing) ? 0 : addToExternrefTable0(narrowing));
161
170
  if (ret[2]) {
162
171
  throw takeFromExternrefTable0(ret[1]);
163
172
  }
Binary file
@@ -8,7 +8,7 @@ export const dataset_primer: (a: number) => [number, number, number];
8
8
  export const dataset_query: (a: number, b: number, c: number) => [number, number, number];
9
9
  export const dataset_suggest: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
10
10
  export const dataset_validate: (a: number) => any;
11
- export const dataset_resolve: (a: number, b: number, c: number, d: any) => [number, number, number];
11
+ export const dataset_resolve: (a: number, b: number, c: number, d: any, e: number) => [number, number, number];
12
12
  export const dataset_resolveReference: (a: number, b: number, c: number, d: any) => [number, number, number];
13
13
  export const dataset_diff: (a: number, b: number) => [number, number, number];
14
14
  export const dataset_tokenCount: (a: number) => number;
@@ -28,6 +28,16 @@ export type TokenResultArray = TokenResult[];
28
28
  */
29
29
  export type ResolutionContext = Map<string, string>;
30
30
 
31
+ /**
32
+ * A non-winning candidate returned with a property resolution.
33
+ */
34
+ export interface ResolveAlternative {
35
+ name: string;
36
+ uuid: string | undefined;
37
+ deprecated: boolean;
38
+ deprecatedIn: string | undefined;
39
+ }
40
+
31
41
  /**
32
42
  * A registry vocabulary object as read from `registry/*.json`.
33
43
  */
@@ -80,6 +90,11 @@ export interface SuggestResult {
80
90
  export interface ResolveResult {
81
91
  token: TokenResult;
82
92
  specificity: number;
93
+ deprecated: boolean;
94
+ deprecatedIn: string | undefined;
95
+ candidateCount: number;
96
+ ambiguous: boolean;
97
+ alternatives: ResolveAlternative[];
83
98
  }
84
99
 
85
100
  /**
@@ -161,6 +176,17 @@ export interface RenamedToken {
161
176
  propertyChanges: PropertyChange[];
162
177
  }
163
178
 
179
+ /**
180
+ * Optional name-object fields used to narrow property resolution.
181
+ */
182
+ export interface ResolveNarrowing {
183
+ component: string | undefined;
184
+ variant: string | undefined;
185
+ state: string | undefined;
186
+ colorRole: string | undefined;
187
+ excludeDeprecated?: boolean;
188
+ }
189
+
164
190
  /**
165
191
  * Severity level of a validation diagnostic.
166
192
  */
@@ -293,8 +319,13 @@ export class Dataset {
293
319
  *
294
320
  * **Syntax:** `key=value` pairs separated by `,` (AND) or `|` (OR).
295
321
  * Use `!=` for negation and `*` as a wildcard suffix or prefix.
296
- * Valid keys: `property`, `component`, `variant`, `state`, `colorScheme`,
297
- * `scale`, `contrast`, `uuid`, `$schema`.
322
+ * Valid parser keys: `property`, `component`, `variant`, `state`,
323
+ * `colorScheme`, `scale`, `contrast`, `uuid`, `$schema`.
324
+ *
325
+ * `component` remains accepted for compatibility, but it is not a
326
+ * meaningfully indexed field in the embedded dataset and usually returns no
327
+ * matches. Prefer `describe_component` and `tokenBindings` metadata for
328
+ * component-aware discovery.
298
329
  *
299
330
  * ```js
300
331
  * const results = ds.query("property=color,colorScheme=dark");
@@ -312,11 +343,14 @@ export class Dataset {
312
343
  * no token matches the property+context combination.
313
344
  *
314
345
  * ```js
315
- * const result = ds.resolve("background", { colorScheme: "dark", scale: "medium" });
346
+ * const result = ds.resolve("background", { colorScheme: "dark", scale: "medium" }, {
347
+ * variant: "accent",
348
+ * state: "hover",
349
+ * });
316
350
  * if (result) console.log(result.token.raw.value);
317
351
  * ```
318
352
  */
319
- resolve(property: string, context: ResolutionContext): ResolveResult | undefined;
353
+ resolve(property: string, context: ResolutionContext, narrowing?: ResolveNarrowing | null): ResolveResult | undefined;
320
354
  /**
321
355
  * Resolve a legacy token reference by slug in a given context, returning
322
356
  * the terminal value and the full alias chain.
@@ -462,7 +496,7 @@ export interface InitOutput {
462
496
  readonly dataset_query: (a: number, b: number, c: number) => [number, number, number];
463
497
  readonly dataset_suggest: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
464
498
  readonly dataset_validate: (a: number) => any;
465
- readonly dataset_resolve: (a: number, b: number, c: number, d: any) => [number, number, number];
499
+ readonly dataset_resolve: (a: number, b: number, c: number, d: any, e: number) => [number, number, number];
466
500
  readonly dataset_resolveReference: (a: number, b: number, c: number, d: any) => [number, number, number];
467
501
  readonly dataset_diff: (a: number, b: number) => [number, number, number];
468
502
  readonly dataset_tokenCount: (a: number) => number;
@@ -118,8 +118,13 @@ export class Dataset {
118
118
  *
119
119
  * **Syntax:** `key=value` pairs separated by `,` (AND) or `|` (OR).
120
120
  * Use `!=` for negation and `*` as a wildcard suffix or prefix.
121
- * Valid keys: `property`, `component`, `variant`, `state`, `colorScheme`,
122
- * `scale`, `contrast`, `uuid`, `$schema`.
121
+ * Valid parser keys: `property`, `component`, `variant`, `state`,
122
+ * `colorScheme`, `scale`, `contrast`, `uuid`, `$schema`.
123
+ *
124
+ * `component` remains accepted for compatibility, but it is not a
125
+ * meaningfully indexed field in the embedded dataset and usually returns no
126
+ * matches. Prefer `describe_component` and `tokenBindings` metadata for
127
+ * component-aware discovery.
123
128
  *
124
129
  * ```js
125
130
  * const results = ds.query("property=color,colorScheme=dark");
@@ -147,17 +152,21 @@ export class Dataset {
147
152
  * no token matches the property+context combination.
148
153
  *
149
154
  * ```js
150
- * const result = ds.resolve("background", { colorScheme: "dark", scale: "medium" });
155
+ * const result = ds.resolve("background", { colorScheme: "dark", scale: "medium" }, {
156
+ * variant: "accent",
157
+ * state: "hover",
158
+ * });
151
159
  * if (result) console.log(result.token.raw.value);
152
160
  * ```
153
161
  * @param {string} property
154
162
  * @param {ResolutionContext} context
163
+ * @param {ResolveNarrowing | null} [narrowing]
155
164
  * @returns {ResolveResult | undefined}
156
165
  */
157
- resolve(property, context) {
166
+ resolve(property, context, narrowing) {
158
167
  const ptr0 = passStringToWasm0(property, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
159
168
  const len0 = WASM_VECTOR_LEN;
160
- const ret = wasm.dataset_resolve(this.__wbg_ptr, ptr0, len0, context);
169
+ const ret = wasm.dataset_resolve(this.__wbg_ptr, ptr0, len0, context, isLikeNone(narrowing) ? 0 : addToExternrefTable0(narrowing));
161
170
  if (ret[2]) {
162
171
  throw takeFromExternrefTable0(ret[1]);
163
172
  }
Binary file
@@ -8,7 +8,7 @@ export const dataset_primer: (a: number) => [number, number, number];
8
8
  export const dataset_query: (a: number, b: number, c: number) => [number, number, number];
9
9
  export const dataset_suggest: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
10
10
  export const dataset_validate: (a: number) => any;
11
- export const dataset_resolve: (a: number, b: number, c: number, d: any) => [number, number, number];
11
+ export const dataset_resolve: (a: number, b: number, c: number, d: any, e: number) => [number, number, number];
12
12
  export const dataset_resolveReference: (a: number, b: number, c: number, d: any) => [number, number, number];
13
13
  export const dataset_diff: (a: number, b: number) => [number, number, number];
14
14
  export const dataset_tokenCount: (a: number) => number;