@contentful/experience-design-system-cli 2.37.1-dev-build-c5e75ab7.0 → 2.37.1-dev-build-ed4a0d5c.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/app.js +63 -11
- package/dist/index.js +62 -11
- package/dist/package.json +1 -1
- package/dist/src/tui/import/steps/07-scope-gate/sidebar/components/GroupedSidebar.d.ts +1 -0
- package/dist/src/tui/import/steps/07-scope-gate/sidebar/step-filters.d.ts +4 -0
- package/dist/src/tui/import/steps/07-scope-gate/use-scope-gate.d.ts +1 -0
- package/dist/src/tui/import/steps/10-flow/flow/preview.d.ts +2 -0
- package/dist/src/tui/import/steps/10-flow/flow/push.d.ts +2 -0
- package/legacy/package.json +1 -1
- package/package.json +3 -3
package/dist/app.js
CHANGED
|
@@ -15165,6 +15165,35 @@ async function emitInvokedIfReady() {
|
|
|
15165
15165
|
}, state.sessionId, { flush: true });
|
|
15166
15166
|
}
|
|
15167
15167
|
|
|
15168
|
+
// packages/experience-design-system-backend-pipeline/dist/src/analytics/apply.js
|
|
15169
|
+
function countWriteResult(items, entityType) {
|
|
15170
|
+
const subset = items.filter((item) => item.entityType === entityType);
|
|
15171
|
+
return {
|
|
15172
|
+
created_count: subset.filter((item) => item.action === "create" && item.status === "succeeded").length,
|
|
15173
|
+
updated_count: subset.filter((item) => item.action === "update" && item.status === "succeeded").length,
|
|
15174
|
+
failed_count: subset.filter((item) => item.status === "failed").length
|
|
15175
|
+
};
|
|
15176
|
+
}
|
|
15177
|
+
function recordApplyOutcome(client2, spaceId, environmentId, operation) {
|
|
15178
|
+
setCommandContext({
|
|
15179
|
+
space_key: spaceId,
|
|
15180
|
+
environment_key: environmentId,
|
|
15181
|
+
x_contentful_request_id: client2.getLastRequestId()
|
|
15182
|
+
});
|
|
15183
|
+
enrichCommandResult({
|
|
15184
|
+
dsi_operation_id: operation.sys.id,
|
|
15185
|
+
component_type_result: countWriteResult(operation.items ?? [], "ComponentType"),
|
|
15186
|
+
design_token_result: countWriteResult(operation.items ?? [], "DesignToken")
|
|
15187
|
+
});
|
|
15188
|
+
}
|
|
15189
|
+
function recordContentfulContext(client2, spaceId, environmentId) {
|
|
15190
|
+
setCommandContext({
|
|
15191
|
+
space_key: spaceId,
|
|
15192
|
+
environment_key: environmentId,
|
|
15193
|
+
x_contentful_request_id: client2.getLastRequestId()
|
|
15194
|
+
});
|
|
15195
|
+
}
|
|
15196
|
+
|
|
15168
15197
|
// packages/experience-design-system-backend-pipeline/dist/src/steps/generation/src/controller/map-tokens/run-map-tokens.js
|
|
15169
15198
|
var DEFAULT_TIMEOUT_MS2 = 5 * 60 * 1e3;
|
|
15170
15199
|
var MapTokensRunFailure = class _MapTokensRunFailure extends Error {
|
|
@@ -19157,7 +19186,8 @@ function GroupedSidebar(props) {
|
|
|
19157
19186
|
dimPredicate,
|
|
19158
19187
|
visibleRows: providedRows,
|
|
19159
19188
|
graph,
|
|
19160
|
-
filterVisibleKeys
|
|
19189
|
+
filterVisibleKeys,
|
|
19190
|
+
emptyMessage
|
|
19161
19191
|
} = props;
|
|
19162
19192
|
const allRows = providedRows ?? buildVisibleRows({
|
|
19163
19193
|
items,
|
|
@@ -19174,6 +19204,10 @@ function GroupedSidebar(props) {
|
|
|
19174
19204
|
const end = windowed ? start + (visibleCount ?? allRows.length) : allRows.length;
|
|
19175
19205
|
const rows = windowed ? allRows.slice(start, end) : allRows;
|
|
19176
19206
|
return /* @__PURE__ */ jsxs18(WindowedPanel, { width, height: props.height, title, focused, children: [
|
|
19207
|
+
allRows.length === 0 && emptyMessage !== void 0 && /* @__PURE__ */ jsxs18(Text19, { color: PALETTE2.warning, children: [
|
|
19208
|
+
" ",
|
|
19209
|
+
emptyMessage
|
|
19210
|
+
] }),
|
|
19177
19211
|
windowed && /* @__PURE__ */ jsx21(WindowIndicator, { direction: "up", count: start }),
|
|
19178
19212
|
rows.map((row, i) => {
|
|
19179
19213
|
const absoluteRowIdx = start + i;
|
|
@@ -19489,9 +19523,9 @@ function createSidebarViewsHelpSection(includeBreaking) {
|
|
|
19489
19523
|
{ keys: "L", label: "Flat view" },
|
|
19490
19524
|
{ keys: "i", label: "Focus lineage" }
|
|
19491
19525
|
];
|
|
19492
|
-
if (includeBreaking) entries.push({ keys: "w", label: "
|
|
19526
|
+
if (includeBreaking) entries.push({ keys: "w", label: "Show only components with breaking changes" });
|
|
19493
19527
|
entries.push(
|
|
19494
|
-
{ keys: "o", label: "
|
|
19528
|
+
{ keys: "o", label: "Show only components in slot cycles" },
|
|
19495
19529
|
{ keys: "space", label: "Expand/collapse group" },
|
|
19496
19530
|
{ keys: "E / C", label: "Expand/collapse all" }
|
|
19497
19531
|
);
|
|
@@ -20058,6 +20092,17 @@ function computeFilterKeys(input) {
|
|
|
20058
20092
|
if (active.has("deleted")) for (const k of input.data.deleted ?? []) out.add(k);
|
|
20059
20093
|
return out;
|
|
20060
20094
|
}
|
|
20095
|
+
var FILTER_LABELS = {
|
|
20096
|
+
broken: "components with breaking changes",
|
|
20097
|
+
cycles: "slot cycles",
|
|
20098
|
+
deleted: "removed components"
|
|
20099
|
+
};
|
|
20100
|
+
function describeEmptyFilter(input) {
|
|
20101
|
+
const names = [...input.filters].map((f) => FILTER_LABELS[f]);
|
|
20102
|
+
if (input.slotDependencies) names.push("slot dependencies");
|
|
20103
|
+
if (names.length === 0) return void 0;
|
|
20104
|
+
return `Nothing to show: no ${names.join(" or ")} in this import.`;
|
|
20105
|
+
}
|
|
20061
20106
|
function intersectFilterKeys(a, b) {
|
|
20062
20107
|
if (a === void 0) return b;
|
|
20063
20108
|
if (b === void 0) return a;
|
|
@@ -20253,6 +20298,7 @@ function useScopeGate({ components, onConfirm, onQuit }) {
|
|
|
20253
20298
|
}),
|
|
20254
20299
|
[groupedItems, cycleParticipants, expandedGroups, columnOneView, graph, filterVisibleKeys]
|
|
20255
20300
|
);
|
|
20301
|
+
const emptyMessage = visibleRows.length === 0 && filterVisibleKeys !== void 0 && !jumpFilterTarget ? describeEmptyFilter({ filters: activeFilters, slotDependencies: showDependencies }) : void 0;
|
|
20256
20302
|
const total = visibleRows.length;
|
|
20257
20303
|
const safeCursor = Math.min(nav.cursor, Math.max(0, total - 1));
|
|
20258
20304
|
const currentRow = visibleRows[safeCursor];
|
|
@@ -20574,6 +20620,7 @@ function useScopeGate({ components, onConfirm, onQuit }) {
|
|
|
20574
20620
|
expandedGroups,
|
|
20575
20621
|
toggleExpanded,
|
|
20576
20622
|
visibleRows,
|
|
20623
|
+
emptyMessage,
|
|
20577
20624
|
safeCursor,
|
|
20578
20625
|
scrollOffset: nav.scrollOffset,
|
|
20579
20626
|
selectionStateByKey,
|
|
@@ -20627,7 +20674,7 @@ var HELP_SECTIONS = [
|
|
|
20627
20674
|
title: "Panels",
|
|
20628
20675
|
entries: [
|
|
20629
20676
|
{ keys: "c", label: "Cycle list" },
|
|
20630
|
-
{ keys: "d", label: "Show slot
|
|
20677
|
+
{ keys: "d", label: "Show slot dependenciess" },
|
|
20631
20678
|
{ keys: "x", label: "Review flags" }
|
|
20632
20679
|
]
|
|
20633
20680
|
},
|
|
@@ -20696,6 +20743,7 @@ function ScopeGateView({ components, onConfirm, onQuit }) {
|
|
|
20696
20743
|
aiFlaggedByKey: gate.aiFlaggedByKey,
|
|
20697
20744
|
dimPredicate: gate.dimPredicate,
|
|
20698
20745
|
visibleRows: gate.visibleRows,
|
|
20746
|
+
emptyMessage: gate.emptyMessage,
|
|
20699
20747
|
viewMode: gate.columnOneView,
|
|
20700
20748
|
graph: graph.nodes
|
|
20701
20749
|
}
|
|
@@ -25455,12 +25503,12 @@ var HELP_SECTIONS2 = [
|
|
|
25455
25503
|
title: "Panels",
|
|
25456
25504
|
entries: [
|
|
25457
25505
|
{ keys: "c", label: "Cycle list" },
|
|
25458
|
-
{ keys: "b", label: "
|
|
25459
|
-
{ keys: "w", label: "
|
|
25460
|
-
{ keys: "o", label: "
|
|
25506
|
+
{ keys: "b", label: "Show breaking changes" },
|
|
25507
|
+
{ keys: "w", label: "Filter components with breaking changes" },
|
|
25508
|
+
{ keys: "o", label: "Filter components in slot cycles" },
|
|
25461
25509
|
{ keys: "p", label: "Prop rationale" },
|
|
25462
25510
|
{ keys: "P", label: "Component rationale" },
|
|
25463
|
-
{ keys: "s", label: "Source" },
|
|
25511
|
+
{ keys: "s", label: "Source code snippet" },
|
|
25464
25512
|
{ keys: "J", label: "Toggle JSON" },
|
|
25465
25513
|
{ keys: "t", label: "Token review" }
|
|
25466
25514
|
]
|
|
@@ -26179,18 +26227,18 @@ function GenerateReviewStepView({
|
|
|
26179
26227
|
}
|
|
26180
26228
|
return;
|
|
26181
26229
|
}
|
|
26182
|
-
if (input === "c" && !key.ctrl && !key.meta && cycleRows.length > 0) {
|
|
26230
|
+
if (input === "c" && !reviewEditor.textEntryActive && !key.ctrl && !key.meta && cycleRows.length > 0) {
|
|
26183
26231
|
cyclePanel.open();
|
|
26184
26232
|
setCyclePanelScroll(0);
|
|
26185
26233
|
setCyclesCursor(0);
|
|
26186
26234
|
return;
|
|
26187
26235
|
}
|
|
26188
|
-
if (input === "b" && sidebarFocused && breakingChanges.length > 0) {
|
|
26236
|
+
if (input === "b" && !reviewEditor.textEntryActive && sidebarFocused && breakingChanges.length > 0) {
|
|
26189
26237
|
breakingPanel.open();
|
|
26190
26238
|
setBreakingCursor(0);
|
|
26191
26239
|
return;
|
|
26192
26240
|
}
|
|
26193
|
-
if (input === "o" || input === "w") {
|
|
26241
|
+
if (!reviewEditor.textEntryActive && (input === "o" || input === "w")) {
|
|
26194
26242
|
const category = input === "o" ? "cycles" : "broken";
|
|
26195
26243
|
setActiveFilters((prev) => {
|
|
26196
26244
|
const next = new Set(prev);
|
|
@@ -26576,6 +26624,7 @@ function GenerateReviewStepView({
|
|
|
26576
26624
|
visibleCount,
|
|
26577
26625
|
dimPredicate,
|
|
26578
26626
|
visibleRows: visibleRowsMemo,
|
|
26627
|
+
emptyMessage: visibleRowsMemo.length === 0 && filterVisibleKeys !== void 0 && !jumpFilterTarget ? describeEmptyFilter({ filters: activeFilters }) : void 0,
|
|
26579
26628
|
viewMode: columnOneView,
|
|
26580
26629
|
graph: sidebarGraph
|
|
26581
26630
|
}
|
|
@@ -27652,6 +27701,7 @@ function clearedValidationErrorState() {
|
|
|
27652
27701
|
}
|
|
27653
27702
|
async function runPreview(input, deps) {
|
|
27654
27703
|
if (shouldBypassPreview(input.state)) return buildSkippedPreviewTransition();
|
|
27704
|
+
setCommandContext({ space_key: input.spaceId, environment_key: input.environmentId });
|
|
27655
27705
|
try {
|
|
27656
27706
|
const client2 = deps.createClient({
|
|
27657
27707
|
cmaToken: input.cmaToken,
|
|
@@ -27700,6 +27750,7 @@ async function runPreview(input, deps) {
|
|
|
27700
27750
|
db.close();
|
|
27701
27751
|
}
|
|
27702
27752
|
}
|
|
27753
|
+
recordContentfulContext(client2, input.spaceId, input.environmentId);
|
|
27703
27754
|
if (isEmptyPreview(preview)) {
|
|
27704
27755
|
return {
|
|
27705
27756
|
step: "done",
|
|
@@ -27865,6 +27916,7 @@ async function runPush(input, deps, onPatch) {
|
|
|
27865
27916
|
} catch (logErr) {
|
|
27866
27917
|
safeLog(deps, { pollLogError: String(logErr) });
|
|
27867
27918
|
}
|
|
27919
|
+
recordApplyOutcome(client2, input.spaceId, input.environmentId, operation);
|
|
27868
27920
|
const pushResult = resultOf(operation, preview);
|
|
27869
27921
|
const pushSucceeded = pushResult.componentTypes.failed === 0 && pushResult.designTokens.failed === 0 && operation.sys.status !== "failed";
|
|
27870
27922
|
if (pushSucceeded && input.state.lastRunId) {
|
package/dist/index.js
CHANGED
|
@@ -16270,6 +16270,33 @@ var init_tracker = __esm({
|
|
|
16270
16270
|
});
|
|
16271
16271
|
|
|
16272
16272
|
// packages/experience-design-system-backend-pipeline/dist/src/analytics/apply.js
|
|
16273
|
+
function countWriteResult(items, entityType) {
|
|
16274
|
+
const subset = items.filter((item) => item.entityType === entityType);
|
|
16275
|
+
return {
|
|
16276
|
+
created_count: subset.filter((item) => item.action === "create" && item.status === "succeeded").length,
|
|
16277
|
+
updated_count: subset.filter((item) => item.action === "update" && item.status === "succeeded").length,
|
|
16278
|
+
failed_count: subset.filter((item) => item.status === "failed").length
|
|
16279
|
+
};
|
|
16280
|
+
}
|
|
16281
|
+
function recordApplyOutcome(client2, spaceId, environmentId, operation) {
|
|
16282
|
+
setCommandContext({
|
|
16283
|
+
space_key: spaceId,
|
|
16284
|
+
environment_key: environmentId,
|
|
16285
|
+
x_contentful_request_id: client2.getLastRequestId()
|
|
16286
|
+
});
|
|
16287
|
+
enrichCommandResult({
|
|
16288
|
+
dsi_operation_id: operation.sys.id,
|
|
16289
|
+
component_type_result: countWriteResult(operation.items ?? [], "ComponentType"),
|
|
16290
|
+
design_token_result: countWriteResult(operation.items ?? [], "DesignToken")
|
|
16291
|
+
});
|
|
16292
|
+
}
|
|
16293
|
+
function recordContentfulContext(client2, spaceId, environmentId) {
|
|
16294
|
+
setCommandContext({
|
|
16295
|
+
space_key: spaceId,
|
|
16296
|
+
environment_key: environmentId,
|
|
16297
|
+
x_contentful_request_id: client2.getLastRequestId()
|
|
16298
|
+
});
|
|
16299
|
+
}
|
|
16273
16300
|
var init_apply2 = __esm({
|
|
16274
16301
|
"packages/experience-design-system-backend-pipeline/dist/src/analytics/apply.js"() {
|
|
16275
16302
|
"use strict";
|
|
@@ -22530,7 +22557,8 @@ function GroupedSidebar(props) {
|
|
|
22530
22557
|
dimPredicate,
|
|
22531
22558
|
visibleRows: providedRows,
|
|
22532
22559
|
graph,
|
|
22533
|
-
filterVisibleKeys
|
|
22560
|
+
filterVisibleKeys,
|
|
22561
|
+
emptyMessage
|
|
22534
22562
|
} = props;
|
|
22535
22563
|
const allRows = providedRows ?? buildVisibleRows({
|
|
22536
22564
|
items,
|
|
@@ -22547,6 +22575,10 @@ function GroupedSidebar(props) {
|
|
|
22547
22575
|
const end = windowed ? start + (visibleCount ?? allRows.length) : allRows.length;
|
|
22548
22576
|
const rows = windowed ? allRows.slice(start, end) : allRows;
|
|
22549
22577
|
return /* @__PURE__ */ jsxs18(WindowedPanel, { width, height: props.height, title, focused, children: [
|
|
22578
|
+
allRows.length === 0 && emptyMessage !== void 0 && /* @__PURE__ */ jsxs18(Text19, { color: PALETTE2.warning, children: [
|
|
22579
|
+
" ",
|
|
22580
|
+
emptyMessage
|
|
22581
|
+
] }),
|
|
22550
22582
|
windowed && /* @__PURE__ */ jsx21(WindowIndicator, { direction: "up", count: start }),
|
|
22551
22583
|
rows.map((row, i) => {
|
|
22552
22584
|
const absoluteRowIdx = start + i;
|
|
@@ -22911,9 +22943,9 @@ function createSidebarViewsHelpSection(includeBreaking) {
|
|
|
22911
22943
|
{ keys: "L", label: "Flat view" },
|
|
22912
22944
|
{ keys: "i", label: "Focus lineage" }
|
|
22913
22945
|
];
|
|
22914
|
-
if (includeBreaking) entries.push({ keys: "w", label: "
|
|
22946
|
+
if (includeBreaking) entries.push({ keys: "w", label: "Show only components with breaking changes" });
|
|
22915
22947
|
entries.push(
|
|
22916
|
-
{ keys: "o", label: "
|
|
22948
|
+
{ keys: "o", label: "Show only components in slot cycles" },
|
|
22917
22949
|
{ keys: "space", label: "Expand/collapse group" },
|
|
22918
22950
|
{ keys: "E / C", label: "Expand/collapse all" }
|
|
22919
22951
|
);
|
|
@@ -23557,6 +23589,12 @@ function computeFilterKeys(input) {
|
|
|
23557
23589
|
if (active.has("deleted")) for (const k of input.data.deleted ?? []) out.add(k);
|
|
23558
23590
|
return out;
|
|
23559
23591
|
}
|
|
23592
|
+
function describeEmptyFilter(input) {
|
|
23593
|
+
const names = [...input.filters].map((f) => FILTER_LABELS[f]);
|
|
23594
|
+
if (input.slotDependencies) names.push("slot dependencies");
|
|
23595
|
+
if (names.length === 0) return void 0;
|
|
23596
|
+
return `Nothing to show: no ${names.join(" or ")} in this import.`;
|
|
23597
|
+
}
|
|
23560
23598
|
function intersectFilterKeys(a, b) {
|
|
23561
23599
|
if (a === void 0) return b;
|
|
23562
23600
|
if (b === void 0) return a;
|
|
@@ -23575,10 +23613,16 @@ function buildFlatDimPredicate(input) {
|
|
|
23575
23613
|
return false;
|
|
23576
23614
|
};
|
|
23577
23615
|
}
|
|
23616
|
+
var FILTER_LABELS;
|
|
23578
23617
|
var init_step_filters = __esm({
|
|
23579
23618
|
"packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/sidebar/step-filters.ts"() {
|
|
23580
23619
|
"use strict";
|
|
23581
23620
|
init_fuzzy_search();
|
|
23621
|
+
FILTER_LABELS = {
|
|
23622
|
+
broken: "components with breaking changes",
|
|
23623
|
+
cycles: "slot cycles",
|
|
23624
|
+
deleted: "removed components"
|
|
23625
|
+
};
|
|
23582
23626
|
}
|
|
23583
23627
|
});
|
|
23584
23628
|
|
|
@@ -23766,6 +23810,7 @@ function useScopeGate({ components, onConfirm, onQuit }) {
|
|
|
23766
23810
|
}),
|
|
23767
23811
|
[groupedItems, cycleParticipants, expandedGroups, columnOneView, graph, filterVisibleKeys]
|
|
23768
23812
|
);
|
|
23813
|
+
const emptyMessage = visibleRows.length === 0 && filterVisibleKeys !== void 0 && !jumpFilterTarget ? describeEmptyFilter({ filters: activeFilters, slotDependencies: showDependencies }) : void 0;
|
|
23769
23814
|
const total = visibleRows.length;
|
|
23770
23815
|
const safeCursor = Math.min(nav.cursor, Math.max(0, total - 1));
|
|
23771
23816
|
const currentRow = visibleRows[safeCursor];
|
|
@@ -24087,6 +24132,7 @@ function useScopeGate({ components, onConfirm, onQuit }) {
|
|
|
24087
24132
|
expandedGroups,
|
|
24088
24133
|
toggleExpanded,
|
|
24089
24134
|
visibleRows,
|
|
24135
|
+
emptyMessage,
|
|
24090
24136
|
safeCursor,
|
|
24091
24137
|
scrollOffset: nav.scrollOffset,
|
|
24092
24138
|
selectionStateByKey,
|
|
@@ -24196,6 +24242,7 @@ function ScopeGateView({ components, onConfirm, onQuit }) {
|
|
|
24196
24242
|
aiFlaggedByKey: gate.aiFlaggedByKey,
|
|
24197
24243
|
dimPredicate: gate.dimPredicate,
|
|
24198
24244
|
visibleRows: gate.visibleRows,
|
|
24245
|
+
emptyMessage: gate.emptyMessage,
|
|
24199
24246
|
viewMode: gate.columnOneView,
|
|
24200
24247
|
graph: graph.nodes
|
|
24201
24248
|
}
|
|
@@ -24278,7 +24325,7 @@ var init_screen7 = __esm({
|
|
|
24278
24325
|
title: "Panels",
|
|
24279
24326
|
entries: [
|
|
24280
24327
|
{ keys: "c", label: "Cycle list" },
|
|
24281
|
-
{ keys: "d", label: "Show slot
|
|
24328
|
+
{ keys: "d", label: "Show slot dependenciess" },
|
|
24282
24329
|
{ keys: "x", label: "Review flags" }
|
|
24283
24330
|
]
|
|
24284
24331
|
},
|
|
@@ -30107,18 +30154,18 @@ function GenerateReviewStepView({
|
|
|
30107
30154
|
}
|
|
30108
30155
|
return;
|
|
30109
30156
|
}
|
|
30110
|
-
if (input === "c" && !key.ctrl && !key.meta && cycleRows.length > 0) {
|
|
30157
|
+
if (input === "c" && !reviewEditor.textEntryActive && !key.ctrl && !key.meta && cycleRows.length > 0) {
|
|
30111
30158
|
cyclePanel.open();
|
|
30112
30159
|
setCyclePanelScroll(0);
|
|
30113
30160
|
setCyclesCursor(0);
|
|
30114
30161
|
return;
|
|
30115
30162
|
}
|
|
30116
|
-
if (input === "b" && sidebarFocused && breakingChanges.length > 0) {
|
|
30163
|
+
if (input === "b" && !reviewEditor.textEntryActive && sidebarFocused && breakingChanges.length > 0) {
|
|
30117
30164
|
breakingPanel.open();
|
|
30118
30165
|
setBreakingCursor(0);
|
|
30119
30166
|
return;
|
|
30120
30167
|
}
|
|
30121
|
-
if (input === "o" || input === "w") {
|
|
30168
|
+
if (!reviewEditor.textEntryActive && (input === "o" || input === "w")) {
|
|
30122
30169
|
const category = input === "o" ? "cycles" : "broken";
|
|
30123
30170
|
setActiveFilters((prev) => {
|
|
30124
30171
|
const next = new Set(prev);
|
|
@@ -30504,6 +30551,7 @@ function GenerateReviewStepView({
|
|
|
30504
30551
|
visibleCount,
|
|
30505
30552
|
dimPredicate,
|
|
30506
30553
|
visibleRows: visibleRowsMemo,
|
|
30554
|
+
emptyMessage: visibleRowsMemo.length === 0 && filterVisibleKeys !== void 0 && !jumpFilterTarget ? describeEmptyFilter({ filters: activeFilters }) : void 0,
|
|
30507
30555
|
viewMode: columnOneView,
|
|
30508
30556
|
graph: sidebarGraph
|
|
30509
30557
|
}
|
|
@@ -30644,12 +30692,12 @@ var init_generate_review_step = __esm({
|
|
|
30644
30692
|
title: "Panels",
|
|
30645
30693
|
entries: [
|
|
30646
30694
|
{ keys: "c", label: "Cycle list" },
|
|
30647
|
-
{ keys: "b", label: "
|
|
30648
|
-
{ keys: "w", label: "
|
|
30649
|
-
{ keys: "o", label: "
|
|
30695
|
+
{ keys: "b", label: "Show breaking changes" },
|
|
30696
|
+
{ keys: "w", label: "Filter components with breaking changes" },
|
|
30697
|
+
{ keys: "o", label: "Filter components in slot cycles" },
|
|
30650
30698
|
{ keys: "p", label: "Prop rationale" },
|
|
30651
30699
|
{ keys: "P", label: "Component rationale" },
|
|
30652
|
-
{ keys: "s", label: "Source" },
|
|
30700
|
+
{ keys: "s", label: "Source code snippet" },
|
|
30653
30701
|
{ keys: "J", label: "Toggle JSON" },
|
|
30654
30702
|
{ keys: "t", label: "Token review" }
|
|
30655
30703
|
]
|
|
@@ -31786,6 +31834,7 @@ function clearedValidationErrorState() {
|
|
|
31786
31834
|
}
|
|
31787
31835
|
async function runPreview(input, deps) {
|
|
31788
31836
|
if (shouldBypassPreview(input.state)) return buildSkippedPreviewTransition();
|
|
31837
|
+
setCommandContext({ space_key: input.spaceId, environment_key: input.environmentId });
|
|
31789
31838
|
try {
|
|
31790
31839
|
const client2 = deps.createClient({
|
|
31791
31840
|
cmaToken: input.cmaToken,
|
|
@@ -31834,6 +31883,7 @@ async function runPreview(input, deps) {
|
|
|
31834
31883
|
db.close();
|
|
31835
31884
|
}
|
|
31836
31885
|
}
|
|
31886
|
+
recordContentfulContext(client2, input.spaceId, input.environmentId);
|
|
31837
31887
|
if (isEmptyPreview(preview)) {
|
|
31838
31888
|
return {
|
|
31839
31889
|
step: "done",
|
|
@@ -32004,6 +32054,7 @@ async function runPush(input, deps, onPatch) {
|
|
|
32004
32054
|
} catch (logErr) {
|
|
32005
32055
|
safeLog(deps, { pollLogError: String(logErr) });
|
|
32006
32056
|
}
|
|
32057
|
+
recordApplyOutcome(client2, input.spaceId, input.environmentId, operation);
|
|
32007
32058
|
const pushResult = resultOf(operation, preview);
|
|
32008
32059
|
const pushSucceeded = pushResult.componentTypes.failed === 0 && pushResult.designTokens.failed === 0 && operation.sys.status !== "failed";
|
|
32009
32060
|
if (pushSucceeded && input.state.lastRunId) {
|
package/dist/package.json
CHANGED
|
@@ -33,6 +33,7 @@ export interface GroupedSidebarProps {
|
|
|
33
33
|
visibleRows?: VisibleRow[];
|
|
34
34
|
graph: ComponentGraphNode[];
|
|
35
35
|
filterVisibleKeys?: Set<string>;
|
|
36
|
+
emptyMessage?: string;
|
|
36
37
|
}
|
|
37
38
|
type RowKind = 'cycle' | 'empty' | 'group-root' | 'group-child' | 'standalone' | 'flat' | 'flat-header';
|
|
38
39
|
export interface VisibleRow {
|
|
@@ -11,6 +11,10 @@ export declare function computeFilterKeys(input: {
|
|
|
11
11
|
filters: Iterable<FilterCategory>;
|
|
12
12
|
data: FilterDataSources;
|
|
13
13
|
}): Set<string> | undefined;
|
|
14
|
+
export declare function describeEmptyFilter(input: {
|
|
15
|
+
filters: Iterable<FilterCategory>;
|
|
16
|
+
slotDependencies?: boolean;
|
|
17
|
+
}): string | undefined;
|
|
14
18
|
export declare function intersectFilterKeys(a: Set<string> | undefined, b: Set<string> | undefined): Set<string> | undefined;
|
|
15
19
|
export declare function buildFlatDimPredicate(input: {
|
|
16
20
|
viewMode: 'grouped' | 'flat';
|
|
@@ -26,6 +26,7 @@ export declare function useScopeGate({ components, onConfirm, onQuit }: UseScope
|
|
|
26
26
|
expandedGroups: Set<string>;
|
|
27
27
|
toggleExpanded: (rootName: string) => void;
|
|
28
28
|
visibleRows: import("./sidebar/components/GroupedSidebar.js").VisibleRow[];
|
|
29
|
+
emptyMessage: string | undefined;
|
|
29
30
|
safeCursor: number;
|
|
30
31
|
scrollOffset: number;
|
|
31
32
|
selectionStateByKey: Map<string, "accepted" | "rejected" | "undecided">;
|
|
@@ -4,6 +4,8 @@ import { type CDFDocument, type DTCGTokenEntry, type ServerPreviewResponse } fro
|
|
|
4
4
|
import type { FlowPatch, FlowState } from './types.js';
|
|
5
5
|
type PreviewClient = {
|
|
6
6
|
previewImport(cdf: CDFDocument): Promise<ServerPreviewResponse>;
|
|
7
|
+
/** Request id of the most recent response, used by `recordContentfulContext` for analytics correlation. */
|
|
8
|
+
getLastRequestId(): string | undefined;
|
|
7
9
|
};
|
|
8
10
|
/** The outside world `runPreview` talks to, so each branch can be tested without a database or a network. */
|
|
9
11
|
export interface PreviewDeps {
|
|
@@ -8,6 +8,8 @@ type PushClient = {
|
|
|
8
8
|
pollOperation(operationId: string, options: {
|
|
9
9
|
onProgress?: (operation: ApplyOperationResponse) => void;
|
|
10
10
|
}): Promise<ApplyOperationResponse>;
|
|
11
|
+
/** Request id of the most recent response, used by `recordApplyOutcome` for analytics correlation. */
|
|
12
|
+
getLastRequestId(): string | undefined;
|
|
11
13
|
};
|
|
12
14
|
/** The outside world `runPush` talks to, so each branch can be tested without a network or a run history. */
|
|
13
15
|
export interface PushDeps {
|
package/legacy/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contentful/experience-design-system-cli",
|
|
3
|
-
"version": "2.37.1-dev-build-
|
|
3
|
+
"version": "2.37.1-dev-build-ed4a0d5c.0",
|
|
4
4
|
"description": "Contentful Experiences design system import CLI",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"ts-morph": "^27.0.2",
|
|
46
46
|
"typescript": "^5.9.3",
|
|
47
47
|
"zod": "^4.6.5",
|
|
48
|
-
"@contentful/experience-design-system-backend-pipeline": "2.37.1-dev-build-
|
|
49
|
-
"@contentful/experience-design-system-types": "2.37.1-dev-build-
|
|
48
|
+
"@contentful/experience-design-system-backend-pipeline": "2.37.1-dev-build-ed4a0d5c.0",
|
|
49
|
+
"@contentful/experience-design-system-types": "2.37.1-dev-build-ed4a0d5c.0"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@tsconfig/node24": "^24.0.4",
|