dsh-config-manager 0.1.5 → 0.1.7
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/README.md +5 -1
- package/README.zh-CN.md +5 -1
- package/lib/adapters/workspaces.js +14 -2
- package/lib/adapters/workspaces.js.map +1 -1
- package/lib/client.d.ts +2 -1
- package/lib/client.js +80 -88
- package/lib/client.js.map +1 -1
- package/lib/core/analyzer.js +4 -1
- package/lib/core/analyzer.js.map +1 -1
- package/lib/core/rollback.js +4 -2
- package/lib/core/rollback.js.map +1 -1
- package/lib/core/types.d.ts +5 -1
- package/lib/core/types.js.map +1 -1
- package/lib/profiles/profile-manager.js +3 -1
- package/lib/profiles/profile-manager.js.map +1 -1
- package/lib/ui/report.d.ts +3 -2
- package/lib/ui/report.js +12 -13
- package/lib/ui/report.js.map +1 -1
- package/lib/ui/types.d.ts +2 -1
- package/lib/ui/types.js.map +1 -1
- package/package.json +1 -1
- package/src/adapters/workspaces.test.ts +27 -0
- package/src/adapters/workspaces.ts +13 -2
- package/src/client/import/ImportWizardView.tsx +1 -4
- package/src/core/analyzer.ts +4 -1
- package/src/core/rollback.ts +4 -2
- package/src/core/types.ts +5 -2
- package/src/profiles/profile-manager.ts +3 -1
- package/src/ui/report.test.ts +3 -3
- package/src/ui/report.ts +10 -11
- package/src/ui/types.ts +2 -1
package/README.md
CHANGED
|
@@ -73,7 +73,11 @@ dsh plugin --profile web add dsh-config-manager@latest --config.auto-install-pee
|
|
|
73
73
|
|
|
74
74
|
> 💡 Just copy-paste the command: `--config.auto-install-peers=false` skips a few DSH core packages that aren't on the public registry yet (the DSH runtime provides them), and `@latest` ensures you get the newest build.
|
|
75
75
|
>
|
|
76
|
-
> 🐛 **`@latest` installed an old version?** pnpm
|
|
76
|
+
> 🐛 **`@latest` installed an old version?** That's pnpm 11's `minimumReleaseAge` supply-chain policy, not a cache issue: versions published less than ~30 days ago are excluded from resolution until whitelisted. Install an exact version once (it auto-whitelists, then `@latest` works):
|
|
77
|
+
> ```bash
|
|
78
|
+
> dsh plugin --profile web add dsh-config-manager@0.1.5 --config.auto-install-peers=false
|
|
79
|
+
> ```
|
|
80
|
+
> (Or set `minimumReleaseAge: 0` in the profile's `pnpm-workspace.yaml` to disable the age gate.)
|
|
77
81
|
|
|
78
82
|
---
|
|
79
83
|
|
package/README.zh-CN.md
CHANGED
|
@@ -73,7 +73,11 @@ dsh plugin --profile web add dsh-config-manager@latest --config.auto-install-pee
|
|
|
73
73
|
|
|
74
74
|
> 💡 照着复制就行:`--config.auto-install-peers=false` 跳过几个尚未公开发布的 DSH 核心依赖(运行时由 DSH 自己提供),`@latest` 确保装到最新版。
|
|
75
75
|
>
|
|
76
|
-
> 🐛 **`@latest` 装到了旧版?** pnpm
|
|
76
|
+
> 🐛 **`@latest` 装到了旧版?** 这是 **pnpm 11 的 `minimumReleaseAge` 供应链发布年龄策略**(不是缓存):发布不足约 30 天的新版本会被排除出版本解析,直到进入白名单。装一次精确版本即可自动白名单,之后 `@latest` 正常:
|
|
77
|
+
> ```bash
|
|
78
|
+
> dsh plugin --profile web add dsh-config-manager@0.1.5 --config.auto-install-peers=false
|
|
79
|
+
> ```
|
|
80
|
+
> (或在 profile 的 `pnpm-workspace.yaml` 加 `minimumReleaseAge: 0` 彻底关闭年龄门槛。)
|
|
77
81
|
|
|
78
82
|
---
|
|
79
83
|
|
|
@@ -65,8 +65,20 @@ export class WorkspacesAdapter {
|
|
|
65
65
|
const rec = data?.workspaces.find((r) => r.id === ref);
|
|
66
66
|
if (!rec)
|
|
67
67
|
return { ok: false, message: `导入数据缺少工作区 ${ref}` };
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
try {
|
|
69
|
+
await ctx.target.workspace.writeRecord(rec);
|
|
70
|
+
return { ok: true };
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
// 目标端无法写入(如路径 realpath 失败/目录不存在)→ 非致命警告(§34.17),
|
|
74
|
+
// 不触发整体回滚——否则一个失效路径会拖垮已成功导入的其余配置。
|
|
75
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
76
|
+
return {
|
|
77
|
+
ok: false,
|
|
78
|
+
warning: true,
|
|
79
|
+
message: `工作区 ${ref} 未能写入:${msg}(需映射路径或先在目标创建目录)`,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
70
82
|
}
|
|
71
83
|
async validate(data) {
|
|
72
84
|
const issues = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../src/adapters/workspaces.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../src/adapters/workspaces.ts"],"names":[],"mappings":"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"}
|
package/lib/client.d.ts
CHANGED
|
@@ -134,7 +134,8 @@ interface ImportPlan {
|
|
|
134
134
|
}
|
|
135
135
|
interface ExecutedItem {
|
|
136
136
|
itemId: string;
|
|
137
|
-
|
|
137
|
+
/** warning = 未应用但非致命(目标不可达等),不计入失败、不触发回滚 */
|
|
138
|
+
status: 'ok' | 'skipped' | 'warning' | 'failed';
|
|
138
139
|
message?: string;
|
|
139
140
|
}
|
|
140
141
|
interface ImportResult {
|
package/lib/client.js
CHANGED
|
@@ -328,6 +328,7 @@ function importSectionStats(executed) {
|
|
|
328
328
|
section,
|
|
329
329
|
ok: 0,
|
|
330
330
|
skipped: 0,
|
|
331
|
+
warned: 0,
|
|
331
332
|
failed: 0,
|
|
332
333
|
items: []
|
|
333
334
|
};
|
|
@@ -335,6 +336,7 @@ function importSectionStats(executed) {
|
|
|
335
336
|
}
|
|
336
337
|
if (e.status === "ok") stat.ok += 1;
|
|
337
338
|
else if (e.status === "skipped") stat.skipped += 1;
|
|
339
|
+
else if (e.status === "warning") stat.warned += 1;
|
|
338
340
|
else stat.failed += 1;
|
|
339
341
|
stat.items.push(e);
|
|
340
342
|
}
|
|
@@ -348,9 +350,10 @@ function renderImportReport(result) {
|
|
|
348
350
|
const parts = [];
|
|
349
351
|
if (s.ok > 0) parts.push(`✓ ${s.ok} imported/restored`);
|
|
350
352
|
if (s.skipped > 0) parts.push(`- ${s.skipped} skipped`);
|
|
353
|
+
if (s.warned > 0) parts.push(`⚠ ${s.warned} need attention`);
|
|
351
354
|
if (s.failed > 0) parts.push(`✗ ${s.failed} failed`);
|
|
352
355
|
lines.push(`${s.section}: ${parts.join(" ") || "no changes"}`);
|
|
353
|
-
for (const it of s.items) if (it.status === "failed") lines.push(` Reason: ${it.message ?? "未知原因"}`);
|
|
356
|
+
for (const it of s.items) if (it.status === "failed" || it.status === "warning") lines.push(` ${it.status === "failed" ? "Reason" : "Note"}: ${it.message ?? "未知原因"}`);
|
|
354
357
|
}
|
|
355
358
|
if (result.missingSecrets.length > 0) lines.push(`Secrets: ⚠ ${result.missingSecrets.length} credentials need to be entered`);
|
|
356
359
|
if (result.needsRestart) lines.push("Restart required: 插件/MCP 变更将在重启 DSH 后生效");
|
|
@@ -361,13 +364,10 @@ function renderImportReport(result) {
|
|
|
361
364
|
}
|
|
362
365
|
return lines.join("\n");
|
|
363
366
|
}
|
|
364
|
-
/** 结果页动作按钮(§22
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
if (result.executed.length > 0 || result.warnings.length > 0) actions.push("viewDetails");
|
|
369
|
-
actions.push("done");
|
|
370
|
-
return actions;
|
|
367
|
+
/** 结果页动作按钮(§22)。报告已内联展示全部失败/警告项的原因与回滚详情(§23),
|
|
368
|
+
* 不再提供空操作的 Fix Issues / View Details 按钮——仅保留「完成」。 */
|
|
369
|
+
function suggestedActions(_result) {
|
|
370
|
+
return ["done"];
|
|
371
371
|
}
|
|
372
372
|
/** 回滚报告渲染(full / partial + 人工恢复清单) */
|
|
373
373
|
function renderRollbackReport(rr) {
|
|
@@ -559,93 +559,93 @@ if (typeof document !== "undefined" && document.querySelector("style[data-tag=\"
|
|
|
559
559
|
document.head.appendChild(tag);
|
|
560
560
|
}
|
|
561
561
|
var config_manager_module_css_default = {
|
|
562
|
-
"
|
|
563
|
-
"
|
|
564
|
-
"
|
|
565
|
-
"
|
|
566
|
-
"
|
|
567
|
-
"
|
|
568
|
-
"
|
|
569
|
-
"
|
|
562
|
+
"modeTab": "_367UGW_modeTab",
|
|
563
|
+
"badgeWarn": "_367UGW_badgeWarn",
|
|
564
|
+
"progressIndeterminate": "_367UGW_progressIndeterminate",
|
|
565
|
+
"viewBody": "_367UGW_viewBody",
|
|
566
|
+
"spinnerWrap": "_367UGW_spinnerWrap",
|
|
567
|
+
"sectionSubtitle": "_367UGW_sectionSubtitle",
|
|
568
|
+
"hint": "_367UGW_hint",
|
|
569
|
+
"progressBarDone": "_367UGW_progressBarDone",
|
|
570
|
+
"progressBlock": "_367UGW_progressBlock",
|
|
570
571
|
"reportText": "_367UGW_reportText",
|
|
571
|
-
"card": "_367UGW_card",
|
|
572
|
-
"primaryButton": "_367UGW_primaryButton",
|
|
573
|
-
"categoryName": "_367UGW_categoryName",
|
|
574
|
-
"groupCard": "_367UGW_groupCard",
|
|
575
|
-
"reportView": "_367UGW_reportView",
|
|
576
|
-
"errorReason": "_367UGW_errorReason",
|
|
577
|
-
"pathRow": "_367UGW_pathRow",
|
|
578
|
-
"pathIssueKind": "_367UGW_pathIssueKind",
|
|
579
572
|
"empty": "_367UGW_empty",
|
|
580
|
-
"pathMappingList": "_367UGW_pathMappingList",
|
|
581
|
-
"groupNote": "_367UGW_groupNote",
|
|
582
|
-
"pathNew": "_367UGW_pathNew",
|
|
583
|
-
"sectionBody": "_367UGW_sectionBody",
|
|
584
573
|
"dshCmSpin": "_367UGW_dshCmSpin",
|
|
585
|
-
"
|
|
586
|
-
"
|
|
587
|
-
"
|
|
588
|
-
"
|
|
589
|
-
"
|
|
590
|
-
"
|
|
591
|
-
"
|
|
592
|
-
"spinnerWrap": "_367UGW_spinnerWrap",
|
|
593
|
-
"progressBlock": "_367UGW_progressBlock",
|
|
594
|
-
"progressBar": "_367UGW_progressBar",
|
|
574
|
+
"sectionBody": "_367UGW_sectionBody",
|
|
575
|
+
"categoryItem": "_367UGW_categoryItem",
|
|
576
|
+
"conflictOptions": "_367UGW_conflictOptions",
|
|
577
|
+
"conflictItem": "_367UGW_conflictItem",
|
|
578
|
+
"viewTabs": "_367UGW_viewTabs",
|
|
579
|
+
"ghostButton": "_367UGW_ghostButton",
|
|
580
|
+
"sectionTitleBlock": "_367UGW_sectionTitleBlock",
|
|
595
581
|
"dangerButton": "_367UGW_dangerButton",
|
|
596
|
-
"
|
|
597
|
-
"
|
|
598
|
-
"
|
|
599
|
-
"
|
|
600
|
-
"
|
|
601
|
-
"
|
|
582
|
+
"banner": "_367UGW_banner",
|
|
583
|
+
"card": "_367UGW_card",
|
|
584
|
+
"iconButton": "_367UGW_iconButton",
|
|
585
|
+
"categoryDesc": "_367UGW_categoryDesc",
|
|
586
|
+
"statRow": "_367UGW_statRow",
|
|
587
|
+
"reportFooter": "_367UGW_reportFooter",
|
|
588
|
+
"conflictId": "_367UGW_conflictId",
|
|
602
589
|
"conflictList": "_367UGW_conflictList",
|
|
590
|
+
"groupList": "_367UGW_groupList",
|
|
603
591
|
"secretsList": "_367UGW_secretsList",
|
|
604
|
-
"
|
|
605
|
-
"
|
|
606
|
-
"
|
|
592
|
+
"spinner": "_367UGW_spinner",
|
|
593
|
+
"progressMeta": "_367UGW_progressMeta",
|
|
594
|
+
"input": "_367UGW_input",
|
|
595
|
+
"viewTab": "_367UGW_viewTab",
|
|
596
|
+
"pathRow": "_367UGW_pathRow",
|
|
597
|
+
"section": "_367UGW_section",
|
|
598
|
+
"formError": "_367UGW_formError",
|
|
599
|
+
"progressTrack": "_367UGW_progressTrack",
|
|
607
600
|
"severityError": "_367UGW_severityError",
|
|
608
|
-
"
|
|
609
|
-
"
|
|
601
|
+
"radioLabel": "_367UGW_radioLabel",
|
|
602
|
+
"conflictDetail": "_367UGW_conflictDetail",
|
|
610
603
|
"errorFooter": "_367UGW_errorFooter",
|
|
611
|
-
"rollbackBox": "_367UGW_rollbackBox",
|
|
612
|
-
"pathOld": "_367UGW_pathOld",
|
|
613
604
|
"badgeInfo": "_367UGW_badgeInfo",
|
|
614
|
-
"
|
|
615
|
-
"
|
|
616
|
-
"
|
|
617
|
-
"progressMeta": "_367UGW_progressMeta",
|
|
618
|
-
"progressLabel": "_367UGW_progressLabel",
|
|
605
|
+
"primaryButton": "_367UGW_primaryButton",
|
|
606
|
+
"errorBanner": "_367UGW_errorBanner",
|
|
607
|
+
"groupNote": "_367UGW_groupNote",
|
|
619
608
|
"errorLine": "_367UGW_errorLine",
|
|
609
|
+
"conflictHead": "_367UGW_conflictHead",
|
|
610
|
+
"hiddenFile": "_367UGW_hiddenFile",
|
|
611
|
+
"groupItems": "_367UGW_groupItems",
|
|
612
|
+
"progressBar": "_367UGW_progressBar",
|
|
613
|
+
"errorReason": "_367UGW_errorReason",
|
|
614
|
+
"dshCmIndeterminate": "_367UGW_dshCmIndeterminate",
|
|
620
615
|
"errorActionLabel": "_367UGW_errorActionLabel",
|
|
616
|
+
"groupHeader": "_367UGW_groupHeader",
|
|
617
|
+
"errorAction": "_367UGW_errorAction",
|
|
618
|
+
"fieldLabel": "_367UGW_fieldLabel",
|
|
619
|
+
"progressPercent": "_367UGW_progressPercent",
|
|
620
|
+
"rollbackBox": "_367UGW_rollbackBox",
|
|
621
|
+
"reportView": "_367UGW_reportView",
|
|
622
|
+
"errorItem": "_367UGW_errorItem",
|
|
623
|
+
"field": "_367UGW_field",
|
|
621
624
|
"errorList": "_367UGW_errorList",
|
|
622
|
-
"
|
|
625
|
+
"pathMappingList": "_367UGW_pathMappingList",
|
|
626
|
+
"pathOld": "_367UGW_pathOld",
|
|
627
|
+
"pathValue": "_367UGW_pathValue",
|
|
628
|
+
"badge": "_367UGW_badge",
|
|
629
|
+
"categoryName": "_367UGW_categoryName",
|
|
630
|
+
"actionRow": "_367UGW_actionRow",
|
|
631
|
+
"badgeError": "_367UGW_badgeError",
|
|
623
632
|
"modeHint": "_367UGW_modeHint",
|
|
624
|
-
"
|
|
625
|
-
"sectionSubtitle": "_367UGW_sectionSubtitle",
|
|
626
|
-
"sectionTitle": "_367UGW_sectionTitle",
|
|
627
|
-
"ghostButton": "_367UGW_ghostButton",
|
|
628
|
-
"progressTrack": "_367UGW_progressTrack",
|
|
633
|
+
"groupLabel": "_367UGW_groupLabel",
|
|
629
634
|
"secretFields": "_367UGW_secretFields",
|
|
635
|
+
"progressDetail": "_367UGW_progressDetail",
|
|
636
|
+
"pathIssueKind": "_367UGW_pathIssueKind",
|
|
637
|
+
"sectionHeader": "_367UGW_sectionHeader",
|
|
638
|
+
"modeTabs": "_367UGW_modeTabs",
|
|
639
|
+
"warnList": "_367UGW_warnList",
|
|
630
640
|
"errorTitle": "_367UGW_errorTitle",
|
|
631
|
-
"
|
|
632
|
-
"
|
|
633
|
-
"statRow": "_367UGW_statRow",
|
|
634
|
-
"badgeError": "_367UGW_badgeError",
|
|
635
|
-
"hint": "_367UGW_hint",
|
|
636
|
-
"progressIndeterminate": "_367UGW_progressIndeterminate",
|
|
637
|
-
"conflictDetail": "_367UGW_conflictDetail",
|
|
638
|
-
"modeTab": "_367UGW_modeTab",
|
|
639
|
-
"categoryItem": "_367UGW_categoryItem",
|
|
640
|
-
"sectionTitleBlock": "_367UGW_sectionTitleBlock",
|
|
641
|
-
"conflictOptions": "_367UGW_conflictOptions",
|
|
642
|
-
"viewBody": "_367UGW_viewBody",
|
|
643
|
-
"banner": "_367UGW_banner",
|
|
644
|
-
"pathValue": "_367UGW_pathValue",
|
|
641
|
+
"pathNew": "_367UGW_pathNew",
|
|
642
|
+
"spinnerLabel": "_367UGW_spinnerLabel",
|
|
645
643
|
"badgeOk": "_367UGW_badgeOk",
|
|
646
|
-
"
|
|
647
|
-
"
|
|
648
|
-
"
|
|
644
|
+
"groupCard": "_367UGW_groupCard",
|
|
645
|
+
"optionsCard": "_367UGW_optionsCard",
|
|
646
|
+
"progressLabel": "_367UGW_progressLabel",
|
|
647
|
+
"checkboxRow": "_367UGW_checkboxRow",
|
|
648
|
+
"sectionTitle": "_367UGW_sectionTitle"
|
|
649
649
|
};
|
|
650
650
|
//#endregion
|
|
651
651
|
//#region src/client/common/ui.tsx
|
|
@@ -2333,15 +2333,7 @@ function ImportWizardView({ api, t }) {
|
|
|
2333
2333
|
kind: "warn",
|
|
2334
2334
|
children: t("report.needsRestart")
|
|
2335
2335
|
}),
|
|
2336
|
-
error !== null && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ErrorBanner, { error })
|
|
2337
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2338
|
-
className: config_manager_module_css_default.actionRow,
|
|
2339
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
|
|
2340
|
-
variant: "ghost",
|
|
2341
|
-
onClick: resetWizard,
|
|
2342
|
-
children: t("common.done")
|
|
2343
|
-
})
|
|
2344
|
-
})
|
|
2336
|
+
error !== null && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ErrorBanner, { error })
|
|
2345
2337
|
]
|
|
2346
2338
|
});
|
|
2347
2339
|
}
|