@detergent-software/atk 9.1.0 → 9.2.0-dev.10
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/CHANGELOG.md +128 -0
- package/README.md +37 -17
- package/build/command-manifest.json +89 -7
- package/build/commands/_app.d.ts +2 -1
- package/build/commands/_app.d.ts.map +1 -1
- package/build/commands/audit.d.ts +1 -1
- package/build/commands/audit.d.ts.map +1 -1
- package/build/commands/browse.d.ts +1 -1
- package/build/commands/browse.d.ts.map +1 -1
- package/build/commands/browse.js +119 -16
- package/build/commands/browse.js.map +1 -1
- package/build/commands/cache.d.ts +1 -1
- package/build/commands/cache.d.ts.map +1 -1
- package/build/commands/checkout.d.ts +1 -1
- package/build/commands/checkout.d.ts.map +1 -1
- package/build/commands/config.d.ts +1 -1
- package/build/commands/config.d.ts.map +1 -1
- package/build/commands/deprecate.d.ts +1 -1
- package/build/commands/deprecate.d.ts.map +1 -1
- package/build/commands/diff.d.ts +4 -2
- package/build/commands/diff.d.ts.map +1 -1
- package/build/commands/diff.js +86 -13
- package/build/commands/diff.js.map +1 -1
- package/build/commands/doctor.d.ts +1 -1
- package/build/commands/doctor.d.ts.map +1 -1
- package/build/commands/drift.d.ts +2 -1
- package/build/commands/drift.d.ts.map +1 -1
- package/build/commands/drift.js +8 -3
- package/build/commands/drift.js.map +1 -1
- package/build/commands/freeze.d.ts +2 -2
- package/build/commands/freeze.d.ts.map +1 -1
- package/build/commands/freeze.js +45 -22
- package/build/commands/freeze.js.map +1 -1
- package/build/commands/index.d.ts +1 -1
- package/build/commands/index.d.ts.map +1 -1
- package/build/commands/info.d.ts +1 -1
- package/build/commands/info.d.ts.map +1 -1
- package/build/commands/info.js +24 -4
- package/build/commands/info.js.map +1 -1
- package/build/commands/init.d.ts +1 -1
- package/build/commands/init.d.ts.map +1 -1
- package/build/commands/install.d.ts +2 -2
- package/build/commands/install.d.ts.map +1 -1
- package/build/commands/install.js +284 -66
- package/build/commands/install.js.map +1 -1
- package/build/commands/list.d.ts +2 -1
- package/build/commands/list.d.ts.map +1 -1
- package/build/commands/list.js +64 -6
- package/build/commands/list.js.map +1 -1
- package/build/commands/login.d.ts +1 -1
- package/build/commands/login.d.ts.map +1 -1
- package/build/commands/logout.d.ts +1 -1
- package/build/commands/logout.d.ts.map +1 -1
- package/build/commands/move.d.ts +1 -1
- package/build/commands/move.d.ts.map +1 -1
- package/build/commands/outdated.d.ts +2 -1
- package/build/commands/outdated.d.ts.map +1 -1
- package/build/commands/outdated.js +11 -1
- package/build/commands/outdated.js.map +1 -1
- package/build/commands/pin.d.ts +2 -2
- package/build/commands/pin.d.ts.map +1 -1
- package/build/commands/pin.js +77 -46
- package/build/commands/pin.js.map +1 -1
- package/build/commands/promote.d.ts +1 -1
- package/build/commands/promote.d.ts.map +1 -1
- package/build/commands/prune.d.ts +1 -1
- package/build/commands/prune.d.ts.map +1 -1
- package/build/commands/publish.d.ts +1 -1
- package/build/commands/publish.d.ts.map +1 -1
- package/build/commands/register.d.ts +1 -1
- package/build/commands/register.d.ts.map +1 -1
- package/build/commands/release-notes.d.ts +1 -1
- package/build/commands/release-notes.d.ts.map +1 -1
- package/build/commands/reviewer.d.ts +1 -1
- package/build/commands/reviewer.d.ts.map +1 -1
- package/build/commands/schema.d.ts +2 -2
- package/build/commands/schema.d.ts.map +1 -1
- package/build/commands/search.d.ts +2 -1
- package/build/commands/search.d.ts.map +1 -1
- package/build/commands/search.js +4 -2
- package/build/commands/search.js.map +1 -1
- package/build/commands/setup.d.ts +1 -1
- package/build/commands/setup.d.ts.map +1 -1
- package/build/commands/sync.d.ts +14 -2
- package/build/commands/sync.d.ts.map +1 -1
- package/build/commands/sync.js +86 -17
- package/build/commands/sync.js.map +1 -1
- package/build/commands/thaw.d.ts +2 -2
- package/build/commands/thaw.d.ts.map +1 -1
- package/build/commands/thaw.js +44 -21
- package/build/commands/thaw.js.map +1 -1
- package/build/commands/uninstall.d.ts +2 -2
- package/build/commands/uninstall.d.ts.map +1 -1
- package/build/commands/uninstall.js +35 -11
- package/build/commands/uninstall.js.map +1 -1
- package/build/commands/unpin.d.ts +2 -2
- package/build/commands/unpin.d.ts.map +1 -1
- package/build/commands/unpin.js +54 -25
- package/build/commands/unpin.js.map +1 -1
- package/build/commands/unpublish.d.ts +1 -1
- package/build/commands/unpublish.d.ts.map +1 -1
- package/build/commands/update.d.ts +3 -2
- package/build/commands/update.d.ts.map +1 -1
- package/build/commands/update.js +270 -74
- package/build/commands/update.js.map +1 -1
- package/build/commands/validate.d.ts +1 -1
- package/build/commands/validate.d.ts.map +1 -1
- package/build/commands/whoami.d.ts +1 -1
- package/build/commands/whoami.d.ts.map +1 -1
- package/build/commands/why.d.ts +1 -1
- package/build/commands/why.d.ts.map +1 -1
- package/build/components/AssetDetail.d.ts +6 -1
- package/build/components/AssetDetail.d.ts.map +1 -1
- package/build/components/AssetDetail.js +9 -2
- package/build/components/AssetDetail.js.map +1 -1
- package/build/components/AssetTable.d.ts +1 -1
- package/build/components/AssetTable.d.ts.map +1 -1
- package/build/components/AssetVersionLine.d.ts +1 -1
- package/build/components/AssetVersionLine.d.ts.map +1 -1
- package/build/components/BrowseExpandedBundle.d.ts +1 -1
- package/build/components/BrowseExpandedBundle.d.ts.map +1 -1
- package/build/components/BrowseExpandedRow.d.ts +1 -1
- package/build/components/BrowseExpandedRow.d.ts.map +1 -1
- package/build/components/BrowseList.d.ts +3 -1
- package/build/components/BrowseList.d.ts.map +1 -1
- package/build/components/BrowseList.js +12 -6
- package/build/components/BrowseList.js.map +1 -1
- package/build/components/BundleDetail.d.ts +3 -1
- package/build/components/BundleDetail.d.ts.map +1 -1
- package/build/components/BundleDetail.js +4 -2
- package/build/components/BundleDetail.js.map +1 -1
- package/build/components/CrossScopeWarning.d.ts +1 -1
- package/build/components/CrossScopeWarning.d.ts.map +1 -1
- package/build/components/DependencyTree.d.ts +1 -1
- package/build/components/DependencyTree.d.ts.map +1 -1
- package/build/components/DeprecationSummary.d.ts +2 -2
- package/build/components/DeprecationSummary.d.ts.map +1 -1
- package/build/components/DiagnosticList.d.ts +1 -1
- package/build/components/DiagnosticList.d.ts.map +1 -1
- package/build/components/DiffView.d.ts +34 -5
- package/build/components/DiffView.d.ts.map +1 -1
- package/build/components/DiffView.js +47 -8
- package/build/components/DiffView.js.map +1 -1
- package/build/components/DryRunBanner.d.ts +1 -1
- package/build/components/DryRunBanner.d.ts.map +1 -1
- package/build/components/ErrorView.d.ts +2 -2
- package/build/components/ErrorView.d.ts.map +1 -1
- package/build/components/ExcludedSkippedHint.d.ts +1 -1
- package/build/components/ExcludedSkippedHint.d.ts.map +1 -1
- package/build/components/Field.d.ts +1 -1
- package/build/components/Field.d.ts.map +1 -1
- package/build/components/Field.js +1 -1
- package/build/components/Field.js.map +1 -1
- package/build/components/FilterBar.d.ts +1 -1
- package/build/components/FilterBar.d.ts.map +1 -1
- package/build/components/FrozenSkippedHint.d.ts +1 -1
- package/build/components/FrozenSkippedHint.d.ts.map +1 -1
- package/build/components/Header.d.ts +1 -1
- package/build/components/Header.d.ts.map +1 -1
- package/build/components/HelpBar.d.ts +5 -1
- package/build/components/HelpBar.d.ts.map +1 -1
- package/build/components/HelpBar.js +18 -4
- package/build/components/HelpBar.js.map +1 -1
- package/build/components/InitSuccess.d.ts +1 -1
- package/build/components/InitSuccess.d.ts.map +1 -1
- package/build/components/InstallConfirmBar.d.ts +5 -3
- package/build/components/InstallConfirmBar.d.ts.map +1 -1
- package/build/components/InstallConfirmBar.js +15 -2
- package/build/components/InstallConfirmBar.js.map +1 -1
- package/build/components/InstallSummary.d.ts +1 -1
- package/build/components/InstallSummary.d.ts.map +1 -1
- package/build/components/InstalledTree.d.ts +17 -0
- package/build/components/InstalledTree.d.ts.map +1 -0
- package/build/components/InstalledTree.js +31 -0
- package/build/components/InstalledTree.js.map +1 -0
- package/build/components/Link.d.ts +1 -1
- package/build/components/Link.d.ts.map +1 -1
- package/build/components/ListActionBar.d.ts +1 -1
- package/build/components/ListActionBar.d.ts.map +1 -1
- package/build/components/ListBrowseList.d.ts +1 -1
- package/build/components/ListBrowseList.d.ts.map +1 -1
- package/build/components/ListExpandedRow.d.ts +1 -1
- package/build/components/ListExpandedRow.d.ts.map +1 -1
- package/build/components/ListHelpBar.d.ts +1 -1
- package/build/components/ListHelpBar.d.ts.map +1 -1
- package/build/components/LocalEditsHint.d.ts +1 -1
- package/build/components/LocalEditsHint.d.ts.map +1 -1
- package/build/components/MultiSelectList.d.ts +1 -1
- package/build/components/MultiSelectList.d.ts.map +1 -1
- package/build/components/NoticeBanner.d.ts +1 -1
- package/build/components/NoticeBanner.d.ts.map +1 -1
- package/build/components/OrphanListItem.d.ts +1 -1
- package/build/components/OrphanListItem.d.ts.map +1 -1
- package/build/components/PromptField.d.ts +1 -1
- package/build/components/PromptField.d.ts.map +1 -1
- package/build/components/ReadmeSection.d.ts +1 -1
- package/build/components/ReadmeSection.d.ts.map +1 -1
- package/build/components/RegistryChangeSummary.d.ts +2 -2
- package/build/components/RegistryChangeSummary.d.ts.map +1 -1
- package/build/components/RunStoppedHint.d.ts +1 -1
- package/build/components/RunStoppedHint.d.ts.map +1 -1
- package/build/components/SchemaTable.d.ts +1 -1
- package/build/components/SchemaTable.d.ts.map +1 -1
- package/build/components/SectionDivider.d.ts +1 -1
- package/build/components/SectionDivider.d.ts.map +1 -1
- package/build/components/SkippedAssetSection.d.ts +1 -1
- package/build/components/SkippedAssetSection.d.ts.map +1 -1
- package/build/components/Spinner.d.ts +1 -1
- package/build/components/Spinner.d.ts.map +1 -1
- package/build/components/StatusBadge.d.ts +2 -2
- package/build/components/StatusBadge.d.ts.map +1 -1
- package/build/components/SyncAllInSync.d.ts +1 -1
- package/build/components/SyncAllInSync.d.ts.map +1 -1
- package/build/components/SyncDriftedList.d.ts +1 -1
- package/build/components/SyncDriftedList.d.ts.map +1 -1
- package/build/components/SyncNoAssets.d.ts +1 -1
- package/build/components/SyncNoAssets.d.ts.map +1 -1
- package/build/components/UndeclaredRemovedHint.d.ts +1 -1
- package/build/components/UndeclaredRemovedHint.d.ts.map +1 -1
- package/build/components/UpdateBanner.d.ts +1 -1
- package/build/components/UpdateBanner.d.ts.map +1 -1
- package/build/components/index.d.ts +2 -1
- package/build/components/index.d.ts.map +1 -1
- package/build/components/index.js +2 -1
- package/build/components/index.js.map +1 -1
- package/build/hooks/useBrowseState.d.ts +31 -1
- package/build/hooks/useBrowseState.d.ts.map +1 -1
- package/build/hooks/useBrowseState.js +99 -15
- package/build/hooks/useBrowseState.js.map +1 -1
- package/build/hooks/useUninstallState.d.ts +22 -2
- package/build/hooks/useUninstallState.d.ts.map +1 -1
- package/build/hooks/useUninstallState.js +161 -16
- package/build/hooks/useUninstallState.js.map +1 -1
- package/build/lib/atk-api/generated/types.gen.d.ts +8 -8
- package/build/lib/atk-schemas/claude-plugin.d.ts +56 -0
- package/build/lib/atk-schemas/claude-plugin.d.ts.map +1 -0
- package/build/lib/atk-schemas/claude-plugin.js +199 -0
- package/build/lib/atk-schemas/claude-plugin.js.map +1 -0
- package/build/lib/atk-schemas/index.d.ts +3 -0
- package/build/lib/atk-schemas/index.d.ts.map +1 -1
- package/build/lib/atk-schemas/index.js +3 -0
- package/build/lib/atk-schemas/index.js.map +1 -1
- package/build/lib/atk-schemas/manifest.d.ts +2 -2
- package/build/lib/atk-schemas/manifest.d.ts.map +1 -1
- package/build/lib/atk-schemas/null-optionals.d.ts +1 -1
- package/build/lib/atk-schemas/null-optionals.d.ts.map +1 -1
- package/build/lib/atk-schemas/registry.d.ts +6 -0
- package/build/lib/atk-schemas/registry.d.ts.map +1 -1
- package/build/lib/atk-schemas/registry.js +2 -0
- package/build/lib/atk-schemas/registry.js.map +1 -1
- package/build/lib/config.d.ts +18 -0
- package/build/lib/config.d.ts.map +1 -1
- package/build/lib/config.js +32 -9
- package/build/lib/config.js.map +1 -1
- package/build/lib/diff-command.d.ts +43 -3
- package/build/lib/diff-command.d.ts.map +1 -1
- package/build/lib/diff-command.js +93 -15
- package/build/lib/diff-command.js.map +1 -1
- package/build/lib/format.d.ts +5 -0
- package/build/lib/format.d.ts.map +1 -1
- package/build/lib/format.js +7 -0
- package/build/lib/format.js.map +1 -1
- package/build/lib/install-targets.d.ts +90 -0
- package/build/lib/install-targets.d.ts.map +1 -0
- package/build/lib/install-targets.js +146 -0
- package/build/lib/install-targets.js.map +1 -0
- package/build/lib/installed-tree.d.ts +47 -0
- package/build/lib/installed-tree.d.ts.map +1 -0
- package/build/lib/installed-tree.js +72 -0
- package/build/lib/installed-tree.js.map +1 -0
- package/build/lib/installer.js +3 -2
- package/build/lib/installer.js.map +1 -1
- package/build/lib/named-entry.d.ts +24 -0
- package/build/lib/named-entry.d.ts.map +1 -0
- package/build/lib/named-entry.js +33 -0
- package/build/lib/named-entry.js.map +1 -0
- package/build/lib/pastel/_app.d.ts +1 -1
- package/build/lib/pastel/_app.d.ts.map +1 -1
- package/build/lib/registry.d.ts +43 -0
- package/build/lib/registry.d.ts.map +1 -1
- package/build/lib/registry.js +73 -0
- package/build/lib/registry.js.map +1 -1
- package/build/lib/resolver.d.ts +35 -0
- package/build/lib/resolver.d.ts.map +1 -1
- package/build/lib/resolver.js +65 -21
- package/build/lib/resolver.js.map +1 -1
- package/build/lib/schemas/config.d.ts +2 -2
- package/build/lib/schemas/config.d.ts.map +1 -1
- package/build/lib/search.d.ts +9 -2
- package/build/lib/search.d.ts.map +1 -1
- package/build/lib/search.js +18 -1
- package/build/lib/search.js.map +1 -1
- package/build/lib/sync.d.ts +9 -0
- package/build/lib/sync.d.ts.map +1 -1
- package/build/lib/sync.js +13 -8
- package/build/lib/sync.js.map +1 -1
- package/build/lib/uninstaller.d.ts +51 -3
- package/build/lib/uninstaller.d.ts.map +1 -1
- package/build/lib/uninstaller.js +134 -39
- package/build/lib/uninstaller.js.map +1 -1
- package/build/lib/updater.d.ts +6 -7
- package/build/lib/updater.d.ts.map +1 -1
- package/build/lib/updater.js +23 -33
- package/build/lib/updater.js.map +1 -1
- package/package.json +21 -21
package/build/commands/sync.js
CHANGED
|
@@ -1,17 +1,29 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box } from 'ink';
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { assetCount, ErrorView, LocalEditsHint, RunStoppedHint, Spinner, SyncAllInSync, SyncDriftedList, SyncNoAssets, UndeclaredRemovedHint, } from '../components/index.js';
|
|
5
5
|
import { useCommand } from '../hooks/useCommand.js';
|
|
6
6
|
import { useResolvedScope } from '../hooks/useResolvedScope.js';
|
|
7
|
+
import { identityKey, readLockfile } from '../lib/lockfile.js';
|
|
8
|
+
import { findNamedEntry } from '../lib/named-entry.js';
|
|
9
|
+
import { formatOrgName } from '../lib/org.js';
|
|
7
10
|
import { renderJson, useNonInteractive } from '../lib/output.js';
|
|
8
|
-
import { option } from '../lib/pastel/index.js';
|
|
11
|
+
import { argument, option } from '../lib/pastel/index.js';
|
|
9
12
|
import { fetchRegistry } from '../lib/registry.js';
|
|
13
|
+
import { AssetType } from '../lib/schemas/index.js';
|
|
10
14
|
import { loadScopeConfig, scopedCommand, scopeLabel } from '../lib/scope.js';
|
|
11
|
-
import { dryRunSync, syncAssets } from '../lib/sync.js';
|
|
15
|
+
import { dryRunSync, syncAssets, SyncError } from '../lib/sync.js';
|
|
12
16
|
import { resolvePlacingTools } from '../lib/tool-resolver.js';
|
|
13
|
-
|
|
17
|
+
import { reportUsageError } from '../lib/usage-error.js';
|
|
18
|
+
import { parseNameVersion } from '../lib/version.js';
|
|
19
|
+
export const description = 'Re-apply drifted installed assets, or only the named ones, keeping local edits (use --force to re-apply them all)';
|
|
14
20
|
export const options = z.object({
|
|
21
|
+
check: z
|
|
22
|
+
.boolean()
|
|
23
|
+
.optional()
|
|
24
|
+
.describe(option({
|
|
25
|
+
description: "Exit 1 when installed files don't match the lockfile, local edits included; changes nothing (for CI)",
|
|
26
|
+
})),
|
|
15
27
|
dryRun: z
|
|
16
28
|
.boolean()
|
|
17
29
|
.default(false)
|
|
@@ -24,7 +36,7 @@ export const options = z.object({
|
|
|
24
36
|
.default(false)
|
|
25
37
|
.describe(option({
|
|
26
38
|
alias: 'f',
|
|
27
|
-
description: 'Force re-sync all assets, not just drifted ones, overwriting local edits',
|
|
39
|
+
description: 'Force re-sync all assets (or the named ones), not just drifted ones, overwriting local edits',
|
|
28
40
|
})),
|
|
29
41
|
json: z
|
|
30
42
|
.boolean()
|
|
@@ -54,6 +66,10 @@ export const options = z.object({
|
|
|
54
66
|
alias: 'T',
|
|
55
67
|
description: 'Target tool (e.g., claude-code)',
|
|
56
68
|
})),
|
|
69
|
+
type: AssetType.optional().describe(option({
|
|
70
|
+
alias: 't',
|
|
71
|
+
description: 'Type of a named asset, when the name is installed as more than one type',
|
|
72
|
+
})),
|
|
57
73
|
user: z
|
|
58
74
|
.boolean()
|
|
59
75
|
.optional()
|
|
@@ -61,18 +77,33 @@ export const options = z.object({
|
|
|
61
77
|
description: 'Use the user scope (the user root, ~ by default) instead of the project',
|
|
62
78
|
})),
|
|
63
79
|
});
|
|
64
|
-
export
|
|
80
|
+
export const args = z.tuple([]).rest(z.string().describe(argument({
|
|
81
|
+
description: 'Installed assets to sync, as @org/name or name (all of them when omitted)',
|
|
82
|
+
name: 'names',
|
|
83
|
+
})));
|
|
84
|
+
export default function Sync({ args: names = [], options: { check, dryRun, force, json, projectRoot, refresh, tool, type, user }, }) {
|
|
65
85
|
const { json: effectiveJson } = useNonInteractive(json);
|
|
66
86
|
const { fields, resolve, resolved } = useResolvedScope({ projectRoot, user });
|
|
67
87
|
const state = useCommand(async (progress) => {
|
|
88
|
+
if (check && force) {
|
|
89
|
+
reportUsageError('error: --check and --force contradict each other: --check changes nothing', effectiveJson);
|
|
90
|
+
}
|
|
91
|
+
if (type && names.length === 0) {
|
|
92
|
+
reportUsageError('error: --type picks the type of a named asset: name the assets to sync', effectiveJson);
|
|
93
|
+
}
|
|
68
94
|
const { root: projectDir, scope } = await resolve();
|
|
69
95
|
const tools = await resolvePlacingTools(tool, projectDir);
|
|
96
|
+
// Every name is resolved before anything is fetched or written, so one that isn't
|
|
97
|
+
// installed stops the run with nothing changed.
|
|
98
|
+
const only = names.length > 0 ? await namedKeys(projectDir, names, { scope, type }) : undefined;
|
|
70
99
|
progress('Fetching registry...');
|
|
71
|
-
|
|
100
|
+
// The check writes nothing, so a cached registry serves when the API can't be read.
|
|
101
|
+
const registry = await fetchRegistry({ force: refresh, ...(check ? { stale: true } : {}) });
|
|
72
102
|
const projectConfig = await loadScopeConfig(projectDir);
|
|
73
|
-
if (dryRun) {
|
|
103
|
+
if (dryRun || check) {
|
|
74
104
|
const toolResults = await dryRunSync({
|
|
75
105
|
force,
|
|
106
|
+
...(only ? { only } : {}),
|
|
76
107
|
onProgress: progress,
|
|
77
108
|
projectConfig,
|
|
78
109
|
projectDir,
|
|
@@ -84,6 +115,7 @@ export default function Sync({ options: { dryRun, force, json, projectRoot, refr
|
|
|
84
115
|
}
|
|
85
116
|
const toolResults = await syncAssets({
|
|
86
117
|
force,
|
|
118
|
+
...(only ? { only } : {}),
|
|
87
119
|
onProgress: progress,
|
|
88
120
|
projectConfig,
|
|
89
121
|
projectDir,
|
|
@@ -93,7 +125,7 @@ export default function Sync({ options: { dryRun, force, json, projectRoot, refr
|
|
|
93
125
|
});
|
|
94
126
|
const notRunTools = tools.slice(toolResults.length).map((t) => t.tool);
|
|
95
127
|
return { ...(notRunTools.length > 0 ? { notRunTools } : {}), outcome: 'synced', scope, toolResults };
|
|
96
|
-
}, [dryRun, force, projectRoot, refresh, tool, user]);
|
|
128
|
+
}, [check, dryRun, force, names.join(' '), projectRoot, refresh, tool, type, user]);
|
|
97
129
|
if (state.status === 'loading') {
|
|
98
130
|
return _jsx(Spinner, { message: state.message });
|
|
99
131
|
}
|
|
@@ -112,13 +144,16 @@ export default function Sync({ options: { dryRun, force, json, projectRoot, refr
|
|
|
112
144
|
}
|
|
113
145
|
const { data } = state;
|
|
114
146
|
const where = resolved ? scopeLabel(resolved) : undefined;
|
|
115
|
-
const
|
|
116
|
-
|
|
147
|
+
const named = { named: names.length > 0, type };
|
|
148
|
+
const mismatched = data.outcome === 'dry-run' && check ? mismatchCount(data.toolResults) : 0;
|
|
149
|
+
const outcome = data.outcome === 'dry-run' ? (check ? 'sync-check' : 'sync-dry-run') : liveSyncOutcome(data.toolResults);
|
|
150
|
+
if (outcome === 'failed' || outcome === 'partial' || mismatched > 0) {
|
|
117
151
|
process.exitCode = 1;
|
|
118
152
|
}
|
|
119
153
|
if (effectiveJson) {
|
|
120
154
|
const notRunTools = data.outcome === 'synced' ? data.notRunTools : undefined;
|
|
121
155
|
return renderJson({
|
|
156
|
+
...(check ? { hasFailures: mismatched > 0 } : {}),
|
|
122
157
|
...(notRunTools ? { notRunTools } : {}),
|
|
123
158
|
outcome,
|
|
124
159
|
toolResults: data.toolResults,
|
|
@@ -126,10 +161,11 @@ export default function Sync({ options: { dryRun, force, json, projectRoot, refr
|
|
|
126
161
|
});
|
|
127
162
|
}
|
|
128
163
|
if (data.outcome === 'dry-run') {
|
|
129
|
-
return (
|
|
164
|
+
return (_jsxs(Box, { flexDirection: 'column', children: [data.toolResults.map((result) => (_jsxs(Box, { flexDirection: 'column', children: [_jsx(DryRunToolResult, { result: result, scope: data.scope, where: where }), _jsx(LocalEditsHint, { assets: result.localEdits ?? [], heading: localEditsHeading(result.localEdits ?? [], data.scope, true, named) }), _jsx(UndeclaredRemovedHint, { assets: result.wouldRemove ?? [], dryRun: true, tool: result.tool })] }, result.tool))), check &&
|
|
165
|
+
(mismatched > 0 ? (_jsxs(Text, { color: 'red', children: ["\u2717 ", assetCount(mismatched), " ", mismatched === 1 ? "doesn't" : "don't", " match the lockfile."] })) : (_jsx(Text, { color: 'green', children: "\u2713 Installed assets match the lockfile." })))] }));
|
|
130
166
|
}
|
|
131
167
|
const stoppedAt = data.toolResults.find((r) => r.notAttempted);
|
|
132
|
-
return (_jsxs(Box, { flexDirection: 'column', children: [data.toolResults.map((result) => (_jsxs(Box, { flexDirection: 'column', children: [_jsx(LiveToolResult, { result: result, scope: data.scope, where: where }), _jsx(LocalEditsHint, { assets: result.localEdits ?? [], heading: localEditsHeading(result.localEdits
|
|
168
|
+
return (_jsxs(Box, { flexDirection: 'column', children: [data.toolResults.map((result) => (_jsxs(Box, { flexDirection: 'column', children: [_jsx(LiveToolResult, { result: result, scope: data.scope, where: where }), _jsx(LocalEditsHint, { assets: result.localEdits ?? [], heading: localEditsHeading(result.localEdits ?? [], data.scope, false, named) }), _jsx(UndeclaredRemovedHint, { assets: result.removed ?? [], tool: result.tool })] }, result.tool))), stoppedAt?.notAttempted && (_jsx(RunStoppedHint, { notAttempted: stoppedAt.notAttempted, notRunTools: data.notRunTools ?? [] }))] }));
|
|
133
169
|
}
|
|
134
170
|
/** Render a single dry-run tool result using the appropriate presentational component. */
|
|
135
171
|
function DryRunToolResult({ result, scope, where }) {
|
|
@@ -169,9 +205,42 @@ function LiveToolResult({ result, scope, where }) {
|
|
|
169
205
|
}
|
|
170
206
|
return (_jsx(SyncDriftedList, { dryRun: false, entries: synced, excludedSkipped: excludedSkipped, failures: failures, frozenSkipped: frozenSkipped, scope: scope, skipped: skipped, tool: tool, where: where }));
|
|
171
207
|
}
|
|
172
|
-
/**
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
208
|
+
/**
|
|
209
|
+
* The line above the assets sync left alone for their local edits, with the command that overwrites
|
|
210
|
+
* them: for those assets alone when the run named assets, or for every asset.
|
|
211
|
+
*/
|
|
212
|
+
function localEditsHeading(edits, scope, dryRun, { named, type }) {
|
|
213
|
+
const spec = [...edits.map((e) => formatOrgName(e.org, e.name)), ...(type ? [`--type ${type}`] : [])].join(' ');
|
|
214
|
+
const force = scopedCommand(named ? `atk sync ${spec} --force` : 'atk sync --force', scope);
|
|
215
|
+
return `${dryRun ? 'Would keep' : 'Kept'} local edits in ${assetCount(edits.length)}, not synced (run ${force} to overwrite them):`;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* How many assets `--check` fails on, each once across tools: those a sync would re-apply or
|
|
219
|
+
* refuse, those whose edits a sync keeps, and hook copies a sync would remove. Frozen and excluded
|
|
220
|
+
* assets don't count.
|
|
221
|
+
*/
|
|
222
|
+
function mismatchCount(toolResults) {
|
|
223
|
+
const keys = new Set();
|
|
224
|
+
for (const r of toolResults) {
|
|
225
|
+
for (const { asset } of r.toSync)
|
|
226
|
+
keys.add(identityKey(asset));
|
|
227
|
+
for (const a of [...(r.localEdits ?? []), ...(r.wouldRemove ?? [])])
|
|
228
|
+
keys.add(identityKey(a));
|
|
229
|
+
for (const f of r.wouldFail ?? [])
|
|
230
|
+
keys.add(identityKey({ name: f.assetName, org: f.org, type: f.assetType }));
|
|
231
|
+
}
|
|
232
|
+
return keys.size;
|
|
233
|
+
}
|
|
234
|
+
/** The identity keys of the lockfile entries the names name, read from `projectDir`'s lockfile. */
|
|
235
|
+
async function namedKeys(projectDir, names, { scope, type }) {
|
|
236
|
+
// Sync re-applies the version the lockfile records, so a name with a version names nothing it does.
|
|
237
|
+
for (const spec of names) {
|
|
238
|
+
const { name, version } = parseNameVersion(spec);
|
|
239
|
+
if (version) {
|
|
240
|
+
throw new SyncError(`"${spec}" names a version, but sync re-applies the version the lockfile records. Name the asset without @${version}, or run atk update ${spec} to change its version.`, { command: scopedCommand(`atk sync ${name}`, scope) });
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
const lockfile = await readLockfile(projectDir);
|
|
244
|
+
return new Set(names.map((name) => identityKey(findNamedEntry(lockfile, name, { command: 'sync', error: SyncError, root: projectDir, scope, type }))));
|
|
176
245
|
}
|
|
177
246
|
//# sourceMappingURL=sync.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.tsx"],"names":[],"mappings":"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"}
|
package/build/commands/thaw.d.ts
CHANGED
|
@@ -13,11 +13,11 @@ export declare const options: z.ZodObject<{
|
|
|
13
13
|
}>>;
|
|
14
14
|
user: z.ZodOptional<z.ZodBoolean>;
|
|
15
15
|
}, z.core.$strip>;
|
|
16
|
-
export declare const args: z.ZodTuple<[z.ZodString],
|
|
16
|
+
export declare const args: z.ZodTuple<[z.ZodString], z.ZodString>;
|
|
17
17
|
type Props = {
|
|
18
18
|
args: z.infer<typeof args>;
|
|
19
19
|
options: z.infer<typeof options>;
|
|
20
20
|
};
|
|
21
|
-
export default function Thaw({ args: [rawName], options: { json, projectRoot, type, user } }: Props): import("react
|
|
21
|
+
export default function Thaw({ args: [rawName, ...more], options: { json, projectRoot, type, user } }: Props): import("react").JSX.Element;
|
|
22
22
|
export {};
|
|
23
23
|
//# sourceMappingURL=thaw.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thaw.d.ts","sourceRoot":"","sources":["../../src/commands/thaw.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"thaw.d.ts","sourceRoot":"","sources":["../../src/commands/thaw.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,WAAW,uEAAuE,CAAC;AAEhG,eAAO,MAAM,OAAO;;;;;;;;;;;;iBAiClB,CAAC;AAEH,eAAO,MAAM,IAAI,wCAId,CAAC;AAUJ,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AAMF,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,+BAuF3G"}
|
package/build/commands/thaw.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Text } from 'ink';
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { ErrorView, Spinner } from '../components/index.js';
|
|
5
5
|
import { useCommand } from '../hooks/useCommand.js';
|
|
6
6
|
import { useResolvedScope } from '../hooks/useResolvedScope.js';
|
|
7
|
-
import { isAssetFrozen,
|
|
8
|
-
import { readLockfile, requireDirectInstall } from '../lib/lockfile.js';
|
|
9
|
-
import { parseOrgFromName } from '../lib/org.js';
|
|
7
|
+
import { isAssetFrozen, thawAssetsInConfig } from '../lib/config.js';
|
|
8
|
+
import { identityKey, readLockfile, requireDirectInstall } from '../lib/lockfile.js';
|
|
9
|
+
import { formatOrgName, parseOrgFromName } from '../lib/org.js';
|
|
10
10
|
import { renderJson, useNonInteractive } from '../lib/output.js';
|
|
11
11
|
import { argument, option } from '../lib/pastel/index.js';
|
|
12
12
|
import { AssetType } from '../lib/schemas/index.js';
|
|
@@ -38,11 +38,13 @@ export const options = z.object({
|
|
|
38
38
|
description: 'Use the user scope (the user root, ~ by default) instead of the project',
|
|
39
39
|
})),
|
|
40
40
|
});
|
|
41
|
-
export const args = z
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
export const args = z
|
|
42
|
+
.tuple([z.string().describe(argument({ description: 'Asset name to thaw', name: 'name' }))])
|
|
43
|
+
.rest(z.string().describe(argument({ description: 'More assets to thaw with the first, in one pass', name: 'names' })));
|
|
44
|
+
export default function Thaw({ args: [rawName, ...more], options: { json, projectRoot, type, user } }) {
|
|
44
45
|
const { json: effectiveJson } = useNonInteractive(json);
|
|
45
46
|
const { fields, resolve, resolved } = useResolvedScope({ projectRoot, user });
|
|
47
|
+
const specs = [rawName, ...more];
|
|
46
48
|
const state = useCommand(async (progress) => {
|
|
47
49
|
const where = await resolve();
|
|
48
50
|
const projectDir = where.root;
|
|
@@ -50,17 +52,32 @@ export default function Thaw({ args: [rawName], options: { json, projectRoot, ty
|
|
|
50
52
|
// frozen state in the project config and does not place or modify any files.
|
|
51
53
|
progress('Reading lockfile...');
|
|
52
54
|
const lockfile = await readLockfile(projectDir);
|
|
53
|
-
//
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
// Check every name before anything is written; a name naming an entry already named is dropped
|
|
56
|
+
const named = [];
|
|
57
|
+
const seen = new Set();
|
|
58
|
+
for (const spec of specs) {
|
|
59
|
+
const { name, org } = parseOrgFromName(spec);
|
|
60
|
+
// Verify the asset is installed and is a direct install
|
|
61
|
+
const installed = requireDirectInstall(lockfile, name, 'thawed', type, org, scopeLabel(where));
|
|
62
|
+
if (seen.has(identityKey(installed)))
|
|
63
|
+
continue;
|
|
64
|
+
seen.add(identityKey(installed));
|
|
65
|
+
// Check if the asset is actually frozen (via project config)
|
|
66
|
+
const frozen = await isAssetFrozen(projectDir, name, type, org);
|
|
67
|
+
const asset = { name, ...(org ? { org } : {}), type: installed.type };
|
|
68
|
+
named.push({ ...asset, outcome: frozen ? 'thawed' : 'not-frozen' });
|
|
59
69
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
70
|
+
// Thaw in project config (.atkrc.json), in one write, matching on --type as given
|
|
71
|
+
const toThaw = named.filter((a) => a.outcome === 'thawed');
|
|
72
|
+
if (toThaw.length > 0) {
|
|
73
|
+
progress(more.length > 0 ? 'Thawing assets...' : 'Thawing asset...');
|
|
74
|
+
await thawAssetsInConfig(projectDir, toThaw.map(({ name, org }) => ({ name, org, type })));
|
|
75
|
+
}
|
|
76
|
+
if (more.length > 0) {
|
|
77
|
+
return { assets: named, outcome: toThaw.length > 0 ? 'thawed' : 'not-frozen' };
|
|
78
|
+
}
|
|
79
|
+
return { name: rawName, outcome: named[0].outcome };
|
|
80
|
+
}, [specs.join(' '), projectRoot, type, user]);
|
|
64
81
|
if (state.status === 'loading') {
|
|
65
82
|
return _jsx(Spinner, { message: state.message });
|
|
66
83
|
}
|
|
@@ -82,10 +99,16 @@ export default function Thaw({ args: [rawName], options: { json, projectRoot, ty
|
|
|
82
99
|
return renderJson({ ...data, ...fields });
|
|
83
100
|
}
|
|
84
101
|
const where = resolved ? _jsxs(Text, { dimColor: true, children: [" in ", scopeLabel(resolved)] }) : null;
|
|
85
|
-
if (
|
|
86
|
-
return (
|
|
102
|
+
if ('assets' in data) {
|
|
103
|
+
return (_jsx(Box, { flexDirection: 'column', children: data.assets.map((a) => (_jsx(ThawLine, { name: formatOrgName(a.org, a.name), outcome: a.outcome, where: where }, identityKey(a)))) }));
|
|
104
|
+
}
|
|
105
|
+
return _jsx(ThawLine, { name: data.name, outcome: data.outcome, where: where });
|
|
106
|
+
}
|
|
107
|
+
function ThawLine({ name, outcome, where }) {
|
|
108
|
+
if (outcome === 'not-frozen') {
|
|
109
|
+
return (_jsxs(Text, { children: [_jsx(Text, { color: 'yellow', children: "!" }), " ", _jsx(Text, { bold: true, children: name }), " is not currently frozen", where] }));
|
|
87
110
|
}
|
|
88
|
-
//
|
|
89
|
-
return (_jsxs(Text, { color: 'green', children: ["Thawed ", _jsx(Text, { bold: true, children:
|
|
111
|
+
// outcome === 'thawed'
|
|
112
|
+
return (_jsxs(Text, { color: 'green', children: ["Thawed ", _jsx(Text, { bold: true, children: name }), where] }));
|
|
90
113
|
}
|
|
91
114
|
//# sourceMappingURL=thaw.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thaw.js","sourceRoot":"","sources":["../../src/commands/thaw.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"thaw.js","sourceRoot":"","sources":["../../src/commands/thaw.tsx"],"names":[],"mappings":"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"}
|
|
@@ -19,11 +19,11 @@ export declare const options: z.ZodObject<{
|
|
|
19
19
|
user: z.ZodOptional<z.ZodBoolean>;
|
|
20
20
|
yes: z.ZodDefault<z.ZodBoolean>;
|
|
21
21
|
}, z.core.$strip>;
|
|
22
|
-
export declare const args: z.ZodTuple<[z.ZodString],
|
|
22
|
+
export declare const args: z.ZodTuple<[z.ZodString], z.ZodString>;
|
|
23
23
|
type Props = {
|
|
24
24
|
args: z.infer<typeof args>;
|
|
25
25
|
options: z.infer<typeof options>;
|
|
26
26
|
};
|
|
27
|
-
export default function Uninstall({ args: [name], options: { cascade, dryRun, json, org, projectRoot, refresh, tool, type, user, yes }, }: Props): import("react
|
|
27
|
+
export default function Uninstall({ args: [name, ...more], options: { cascade, dryRun, json, org, projectRoot, refresh, tool, type, user, yes }, }: Props): import("react").JSX.Element | null;
|
|
28
28
|
export {};
|
|
29
29
|
//# sourceMappingURL=uninstall.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/commands/uninstall.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB,eAAO,MAAM,WAAW,iCAAiC,CAAC;AAE1D,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;iBAwFlB,CAAC;AAEH,eAAO,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/commands/uninstall.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB,eAAO,MAAM,WAAW,iCAAiC,CAAC;AAE1D,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;iBAwFlB,CAAC;AAEH,eAAO,MAAM,IAAI,wCAQd,CAAC;AAkBJ,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AAUF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EACrB,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GACrF,EAAE,KAAK,sCAujBP"}
|
|
@@ -81,15 +81,18 @@ export const options = z.object({
|
|
|
81
81
|
description: 'Skip confirmation prompt',
|
|
82
82
|
})),
|
|
83
83
|
});
|
|
84
|
-
export const args = z
|
|
85
|
-
z.string().describe(argument({ description: 'Asset or bundle name to uninstall', name: 'name' }))
|
|
86
|
-
|
|
87
|
-
|
|
84
|
+
export const args = z
|
|
85
|
+
.tuple([z.string().describe(argument({ description: 'Asset or bundle name to uninstall', name: 'name' }))])
|
|
86
|
+
.rest(z
|
|
87
|
+
.string()
|
|
88
|
+
.describe(argument({ description: 'More assets or bundles to uninstall with the first, in one pass', name: 'names' })));
|
|
89
|
+
export default function Uninstall({ args: [name, ...more], options: { cascade, dryRun, json, org, projectRoot, refresh, tool, type, user, yes }, }) {
|
|
88
90
|
const { exit } = useApp();
|
|
89
91
|
const { json: effectiveJson } = useNonInteractive(json);
|
|
90
92
|
const flags = {
|
|
91
93
|
cascade,
|
|
92
94
|
dryRun,
|
|
95
|
+
...(more.length > 0 ? { more } : {}),
|
|
93
96
|
name,
|
|
94
97
|
org,
|
|
95
98
|
projectRoot,
|
|
@@ -141,7 +144,9 @@ export default function Uninstall({ args: [name], options: { cascade, dryRun, js
|
|
|
141
144
|
if (doneOutcome === 'not-installed' ||
|
|
142
145
|
doneOutcome === 'bundle-not-installed' ||
|
|
143
146
|
doneOutcome === 'bundle-partial' ||
|
|
144
|
-
doneOutcome === 'bundle-failed'
|
|
147
|
+
doneOutcome === 'bundle-failed' ||
|
|
148
|
+
doneOutcome === 'assets-partial' ||
|
|
149
|
+
doneOutcome === 'assets-failed') {
|
|
145
150
|
process.exitCode = 1;
|
|
146
151
|
}
|
|
147
152
|
exit();
|
|
@@ -182,16 +187,22 @@ export default function Uninstall({ args: [name], options: { cascade, dryRun, js
|
|
|
182
187
|
// --- Done phase: render based on outcome ---
|
|
183
188
|
const { outcome } = state;
|
|
184
189
|
// Cancelled at the prompt: the outcome is still the plan that was awaiting confirmation.
|
|
185
|
-
const cancelled = outcome?.outcome === 'confirming' ||
|
|
190
|
+
const cancelled = outcome?.outcome === 'confirming' ||
|
|
191
|
+
outcome?.outcome === 'bundle-confirming' ||
|
|
192
|
+
outcome?.outcome === 'assets-confirming';
|
|
186
193
|
// JSON path: emit the outcome shape directly once we have one
|
|
187
194
|
if (effectiveJson && state.phase === 'done' && outcome) {
|
|
188
|
-
return renderJson({
|
|
195
|
+
return renderJson({
|
|
196
|
+
...(cancelled ? { name, ...(more.length > 0 ? { names: [name, ...more] } : {}), outcome: 'cancelled' } : outcome),
|
|
197
|
+
...fields,
|
|
198
|
+
});
|
|
189
199
|
}
|
|
190
200
|
// Cancelled from confirming (done phase with no outcome change — cancelled before execution)
|
|
191
201
|
if (state.phase === 'done' && outcome?.outcome === 'confirming') {
|
|
192
202
|
return confirmation.isTTY ? (_jsx(Text, { color: 'yellow', children: "Cancelled." })) : (_jsx(Text, { color: 'yellow', children: "Confirmation required. Use --yes (-y) to skip the prompt." }));
|
|
193
203
|
}
|
|
194
|
-
if (state.phase === 'done' &&
|
|
204
|
+
if (state.phase === 'done' &&
|
|
205
|
+
(outcome?.outcome === 'bundle-confirming' || outcome?.outcome === 'assets-confirming')) {
|
|
195
206
|
return confirmation.isTTY ? (_jsx(Text, { color: 'yellow', children: "Cancelled." })) : (_jsx(Text, { color: 'yellow', children: "Confirmation required. Use --yes (-y) to skip the prompt." }));
|
|
196
207
|
}
|
|
197
208
|
if (!outcome) {
|
|
@@ -238,14 +249,27 @@ export default function Uninstall({ args: [name], options: { cascade, dryRun, js
|
|
|
238
249
|
if (outcome.outcome === 'bundle-success' ||
|
|
239
250
|
outcome.outcome === 'bundle-partial' ||
|
|
240
251
|
outcome.outcome === 'bundle-failed') {
|
|
241
|
-
return _jsx(BundleUninstallSummary, {
|
|
252
|
+
return _jsx(BundleUninstallSummary, { bundle: outcome.plan, result: outcome.result, tools: outcome.tools, where: where });
|
|
253
|
+
}
|
|
254
|
+
// --- Several named assets ---
|
|
255
|
+
if (outcome.outcome === 'dry-run-assets' || outcome.outcome === 'assets-confirming') {
|
|
256
|
+
const { lockfileEffects, plan } = outcome;
|
|
257
|
+
const tools = outcome.outcome === 'dry-run-assets' ? outcome.tools : outcome.tools.map((t) => t.tool);
|
|
258
|
+
const totalRemovals = plan.assetsToRemove.length + plan.orphansToRemove.length;
|
|
259
|
+
const isDryRun = outcome.outcome === 'dry-run-assets';
|
|
260
|
+
return (_jsxs(Box, { flexDirection: 'column', children: [isDryRun && (_jsxs(_Fragment, { children: [_jsx(DryRunBanner, { action: 'uninstall', count: totalRemovals, tools: tools, where: label }), _jsx(Text, { children: " " })] })), (plan.bundles ?? []).map((b) => (_jsxs(Text, { children: [_jsxs(Text, { bold: true, color: 'magenta', children: ["Bundle: ", formatOrgName(b.bundleOrg, b.bundleName)] }), _jsxs(Text, { dimColor: true, children: [" v", b.bundleVersion] })] }, `bundle-${formatOrgName(b.bundleOrg, b.bundleName)}`))), (plan.bundles ?? []).length > 0 && _jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "Assets to remove:" }), plan.assetsToRemove.map((a) => (_jsxs(Text, { children: [' ', _jsxs(Text, { color: 'red', children: ["- ", formatOrgName(a.org, a.name)] }), _jsxs(Text, { dimColor: true, children: [' ', "(", a.type, ") v", a.version] })] }, `remove-${identityKey(a)}`))), (plan.assetsToSkip ?? []).length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "Skipped (still needed):" }), (plan.assetsToSkip ?? []).map((a) => (_jsxs(Text, { children: [' ', _jsxs(Text, { color: 'yellow', children: ["~ ", formatOrgName(a.org, a.name)] }), _jsxs(Text, { dimColor: true, children: [" \u2014 ", a.reason] })] }, `skip-${identityKey(a)}`)))] })), plan.orphansToRemove.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsxs(Text, { dimColor: true, children: ["Orphaned dependencies ", isDryRun ? 'that would also be removed' : 'to remove', ":"] }), plan.orphansToRemove.map((a) => (_jsx(OrphanListItem, { name: a.name, org: a.org, type: a.type, version: a.version }, `orphan-${identityKey(a)}`)))] })), plan.dependents.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(Text, { color: 'yellow', children: "Warning: the following assets depend on assets being removed:" }), plan.dependents.map((d) => (_jsxs(Text, { color: 'yellow', children: [' ', "- ", formatOrgName(d.org, d.name), " (", d.type, ")"] }, `dep-${identityKey(d)}`)))] })), _jsx(LockfileEffects, { effects: lockfileEffects, keptOnly: !isDryRun, tools: tools }), !isDryRun && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsxs(Text, { children: ["Remove ", totalRemovals, " asset", totalRemovals !== 1 ? 's' : '', where, "? (y/n)"] })] }))] }));
|
|
261
|
+
}
|
|
262
|
+
if (outcome.outcome === 'assets-success' ||
|
|
263
|
+
outcome.outcome === 'assets-partial' ||
|
|
264
|
+
outcome.outcome === 'assets-failed') {
|
|
265
|
+
return (_jsxs(Box, { flexDirection: 'column', children: [(outcome.plan.bundles ?? []).map((b) => (_jsxs(Text, { children: [_jsxs(Text, { bold: true, color: 'magenta', children: ["Bundle: ", formatOrgName(b.bundleOrg, b.bundleName)] }), _jsxs(Text, { dimColor: true, children: [" v", b.bundleVersion] })] }, `bundle-${formatOrgName(b.bundleOrg, b.bundleName)}`))), (outcome.plan.bundles ?? []).length > 0 && _jsx(Text, { children: " " }), _jsx(BundleUninstallSummary, { result: outcome.result, tools: outcome.tools, where: where })] }));
|
|
242
266
|
}
|
|
243
267
|
// This should never be reached, but TypeScript exhaustiveness
|
|
244
268
|
return null;
|
|
245
269
|
}
|
|
246
|
-
function BundleUninstallSummary({
|
|
270
|
+
function BundleUninstallSummary({ bundle, result, tools, where }) {
|
|
247
271
|
const totalRemoved = result.removedAssets.length + result.removedOrphans.length;
|
|
248
|
-
return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { children: [_jsxs(Text, { bold: true, color: 'magenta', children: ["Bundle: ",
|
|
272
|
+
return (_jsxs(Box, { flexDirection: 'column', children: [bundle && (_jsxs(_Fragment, { children: [_jsxs(Text, { children: [_jsxs(Text, { bold: true, color: 'magenta', children: ["Bundle: ", bundle.bundleName] }), _jsxs(Text, { dimColor: true, children: [" v", bundle.bundleVersion] })] }), _jsx(Text, { children: " " })] })), _jsxs(Text, { color: result.errors.length === 0 ? 'green' : totalRemoved > 0 ? 'yellow' : 'red', children: [result.errors.length === 0 ? '✓' : totalRemoved > 0 ? '!' : '✕', " Removed ", totalRemoved, " asset", totalRemoved !== 1 ? 's' : '', " from ", tools.join(', '), where, result.errors.length > 0 ? `; ${result.errors.length} could not be removed` : ''] }), result.removedAssets.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "Removed assets:" }), result.removedAssets.map((a) => (_jsxs(Text, { children: [' ', _jsxs(Text, { color: 'green', children: ["\u2713 ", formatOrgName(a.org, a.name)] }), _jsxs(Text, { dimColor: true, children: [' ', "(", a.type, ") v", a.version] })] }, `remove-${identityKey(a)}`)))] })), result.removedOrphans.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "Removed orphaned dependencies:" }), result.removedOrphans.map((a) => (_jsx(OrphanListItem, { color: 'green', icon: '\u2713', name: a.name, org: a.org, type: a.type, version: a.version }, `orphan-${identityKey(a)}`)))] })), result.skippedAssets.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "Skipped (still needed):" }), result.skippedAssets.map((a) => (_jsxs(Text, { children: [' ', _jsxs(Text, { color: 'yellow', children: ["~ ", formatOrgName(a.org, a.name)] }), _jsxs(Text, { dimColor: true, children: [" \u2014 ", a.reason] })] }, `skip-${identityKey(a)}`)))] })), _jsx(LockfileEffects, { effects: (result.keptEntries ?? []).map((k) => ({ ...k, entryKept: true })), keptOnly: true, tools: tools }), result.errors.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(Text, { color: 'red', children: "Errors:" }), result.errors.map((e) => (_jsxs(Text, { color: 'red', children: [' ', "\u2715 ", formatOrgName(e.org, e.asset), ": ", e.error] }, `err-${identityKey({ name: e.asset, org: e.org, type: e.type })}`)))] }))] }));
|
|
249
273
|
}
|
|
250
274
|
/**
|
|
251
275
|
* Says what happens to each asset's lockfile entry. A `--tool` uninstall keeps the entry while
|