@contentful/experience-design-system-cli 2.11.4-dev-build-9dcef24.0 → 2.11.4-dev-build-7e11bc8.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contentful/experience-design-system-cli",
3
- "version": "2.11.4-dev-build-9dcef24.0",
3
+ "version": "2.11.4-dev-build-7e11bc8.0",
4
4
  "description": "Contentful Experiences design system import CLI",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -200,11 +200,15 @@ export function registerAnalyzeCommand(program) {
200
200
  // are rendered under that component in the TUI; global ones (retry summaries,
201
201
  // non-authorable skips, anything else) are rendered at the top of the warnings panel
202
202
  // so they don't disappear into the count.
203
- const componentNames = new Set(componentRows.map((r) => r.name));
204
- const globalWarnings = allWarnings.filter((w) => {
205
- const prefix = w.split(':', 1)[0]?.trim();
206
- return !prefix || !componentNames.has(prefix);
207
- });
203
+ //
204
+ // The matching rule MUST stay aligned with build-analyze-view-rows.ts which
205
+ // attaches per-component warnings via `w.startsWith(c.name + ':')`. Using
206
+ // the same `startsWith(name + ':')` here keeps the two halves symmetric —
207
+ // any warning attached to a component's row is excluded from globals (no
208
+ // double-render), and any warning not attached to any row falls through
209
+ // to globals (no silent drop).
210
+ const componentNames = componentRows.map((r) => r.name);
211
+ const globalWarnings = allWarnings.filter((w) => !componentNames.some((name) => w.startsWith(name + ':')));
208
212
  const analyzeResult = {
209
213
  sourceDirectory,
210
214
  sessionId,
@@ -1174,7 +1174,7 @@ function extractJsdocText(comments) {
1174
1174
  // ---------------------------------------------------------------------------
1175
1175
  // Extraction: ObjectPattern destructure + type-members
1176
1176
  // ---------------------------------------------------------------------------
1177
- function extractFromDestructure(propsCall, ctx, typeMembers, warnings, additionalReasons) {
1177
+ function extractFromDestructure(propsCall, _ctx, typeMembers, warnings, additionalReasons) {
1178
1178
  const id = propsCall['id'];
1179
1179
  const properties = id['properties'] ?? [];
1180
1180
  const typeByName = new Map();
@@ -1230,9 +1230,14 @@ function extractFromDestructure(propsCall, ctx, typeMembers, warnings, additiona
1230
1230
  // are collected into the rest binding and are not individually addressable. Authoring
1231
1231
  // contract = the destructure list. (Type-members-only path runs separately for the
1232
1232
  // `const props: Props = $props()` no-destructure case.)
1233
- if (dropsRest) {
1234
- warnings.push(`${ctx.componentName}: rest element in $props() destructure dropped (${ctx.filePath}); cannot enumerate`);
1235
- }
1233
+ // Note: a `...rest` element in the destructure is intentionally NOT warned on.
1234
+ // Nearly every Svelte 5 component in real libraries uses rest-spread to pass
1235
+ // arbitrary HTML attributes through to the underlying element, so this would
1236
+ // fire on most components. The downstream pipeline already strips DOM/a11y
1237
+ // pass-through attributes globally (see `project_dsi-dom-prop-exclusion-decision`),
1238
+ // and the named props we DID extract from the destructure are the meaningful
1239
+ // authoring API. Tracking the rest spread isn't useful signal.
1240
+ void dropsRest;
1236
1241
  return {
1237
1242
  props: props.sort((a, b) => sortStable(a.name, b.name, propertyOrder(properties))),
1238
1243
  snippetNames,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contentful/experience-design-system-cli",
3
- "version": "2.11.4-dev-build-9dcef24.0",
3
+ "version": "2.11.4-dev-build-7e11bc8.0",
4
4
  "description": "Contentful Experiences design system import CLI",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -37,7 +37,7 @@
37
37
  "svelte": "^5.56.4",
38
38
  "ts-morph": "^27.0.2",
39
39
  "typescript": "^5.9.3",
40
- "@contentful/experience-design-system-types": "2.11.4-dev-build-9dcef24.0"
40
+ "@contentful/experience-design-system-types": "2.11.4-dev-build-7e11bc8.0"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@tsconfig/node24": "^24.0.3",