@contentful/experience-design-system-cli 2.11.4-dev-build-601ef74.0 → 2.11.4-dev-build-3c16094.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-601ef74.0",
3
+ "version": "2.11.4-dev-build-3c16094.0",
4
4
  "description": "Contentful Experiences design system import CLI",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -202,11 +202,12 @@ async function retryComponentWithProject(component, ctx, project, warnings) {
202
202
  }
203
203
  if (!members || members.length === 0)
204
204
  return false;
205
- // If the resolver returned a complete member list even when it's
206
- // Snippet-only that's a real answer, not a partial one. Apply it and
207
- // drop `props-type-unresolved`. Whether the resulting component still
208
- // needs review will be decided by the standard heuristics
209
- // (no-props-or-slots, infra-fetch, etc.) downstream.
205
+ // Snippet-only resolution is still useful it confirms the slot surface
206
+ // and lets us replace the original (which may have had fewer slot entries
207
+ // because the cold AST-only pass missed members declared in heritage).
208
+ // Apply the recovered slots, but DON'T drop `props-type-unresolved` from
209
+ // reasons (the prop side genuinely has no resolvable members).
210
+ const onlySnippets = members.every((m) => m.isSnippet);
210
211
  const { props, snippetSlots } = extractFromTypeMembersOnly(members);
211
212
  // Merge any template <slot> entries that survived the original pass — we
212
213
  // can't easily re-derive those without re-parsing the fragment, but the
@@ -219,18 +220,23 @@ async function retryComponentWithProject(component, ctx, project, warnings) {
219
220
  const slotNames = new Set(finalSlots.map((s) => s.name));
220
221
  component.props = props.filter((p) => !slotNames.has(p.name));
221
222
  component.slots = finalSlots;
222
- // Drop `props-type-unresolved` from reasons: the type DID resolve. Other
223
- // heuristics (no-props-or-slots, infra-fetch, etc.) decide whether the
224
- // recovered component still needs review.
225
- const remainingReasons = (component.reviewReasons ?? []).filter((r) => r !== 'props-type-unresolved');
223
+ // Recompute confidence. When only Snippets came back, keep the
224
+ // `props-type-unresolved` reason slot surface is real but the prop side
225
+ // is still legitimately unresolved (the extends-from-node_modules failed).
226
+ // When real props came back, drop the reason: full recovery.
227
+ const remainingReasons = onlySnippets
228
+ ? (component.reviewReasons ?? [])
229
+ : (component.reviewReasons ?? []).filter((r) => r !== 'props-type-unresolved');
226
230
  const score = computeExtractionScore(component, {
227
231
  additionalIssueCount: remainingReasons.length,
228
232
  additionalReasons: remainingReasons,
229
233
  });
230
234
  component.extractionConfidence = score.confidence;
231
235
  component.reviewReasons = score.reasons;
232
- component.needsReview = deriveNeedsReview(score.confidence);
233
- // Remove the per-component unresolved-type warning recovery is complete.
236
+ component.needsReview = deriveNeedsReview(score.confidence) || remainingReasons.includes('props-type-unresolved');
237
+ // Remove the per-component unresolved-type warning. The `props-type-unresolved`
238
+ // reason on the component itself still carries the signal for TUI drill-down;
239
+ // the warnings array is replaced by the collapsed summary upstream.
234
240
  const componentName = component.name;
235
241
  const idx = warnings.findIndex((w) => w.startsWith(`${componentName}: declared Props type `) && /resolved to /.test(w));
236
242
  if (idx >= 0)
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-601ef74.0",
3
+ "version": "2.11.4-dev-build-3c16094.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-601ef74.0"
40
+ "@contentful/experience-design-system-types": "2.11.4-dev-build-3c16094.0"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@tsconfig/node24": "^24.0.3",