@detergent-software/atk 7.13.0 → 8.0.0-dev.1

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.
Files changed (131) hide show
  1. package/README.md +7 -6
  2. package/build/commands/browse.js +5 -5
  3. package/build/commands/browse.js.map +1 -1
  4. package/build/commands/info.js +4 -4
  5. package/build/commands/info.js.map +1 -1
  6. package/build/commands/list.js +3 -3
  7. package/build/commands/list.js.map +1 -1
  8. package/build/commands/promote.d.ts +10 -1
  9. package/build/commands/promote.d.ts.map +1 -1
  10. package/build/commands/promote.js +30 -31
  11. package/build/commands/promote.js.map +1 -1
  12. package/build/commands/publish.js +1 -1
  13. package/build/commands/publish.js.map +1 -1
  14. package/build/commands/release-notes.js +1 -1
  15. package/build/commands/release-notes.js.map +1 -1
  16. package/build/commands/search.js +6 -6
  17. package/build/commands/search.js.map +1 -1
  18. package/build/commands/unpublish.d.ts +10 -1
  19. package/build/commands/unpublish.d.ts.map +1 -1
  20. package/build/commands/unpublish.js +30 -19
  21. package/build/commands/unpublish.js.map +1 -1
  22. package/build/components/AssetDetail.js +3 -3
  23. package/build/components/AssetDetail.js.map +1 -1
  24. package/build/components/AssetTable.d.ts +2 -2
  25. package/build/components/AssetTable.d.ts.map +1 -1
  26. package/build/components/AssetTable.js +6 -6
  27. package/build/components/AssetTable.js.map +1 -1
  28. package/build/components/BrowseExpandedBundle.d.ts +4 -4
  29. package/build/components/BrowseExpandedBundle.d.ts.map +1 -1
  30. package/build/components/BrowseExpandedBundle.js +4 -4
  31. package/build/components/BrowseExpandedBundle.js.map +1 -1
  32. package/build/components/BrowseExpandedRow.d.ts +4 -4
  33. package/build/components/BrowseExpandedRow.d.ts.map +1 -1
  34. package/build/components/BrowseExpandedRow.js +4 -4
  35. package/build/components/BrowseExpandedRow.js.map +1 -1
  36. package/build/components/BrowseList.d.ts +3 -3
  37. package/build/components/BrowseList.d.ts.map +1 -1
  38. package/build/components/BrowseList.js +8 -8
  39. package/build/components/BrowseList.js.map +1 -1
  40. package/build/components/BundleDetail.d.ts +2 -2
  41. package/build/components/BundleDetail.d.ts.map +1 -1
  42. package/build/components/BundleDetail.js +2 -2
  43. package/build/components/BundleDetail.js.map +1 -1
  44. package/build/components/ListBrowseList.d.ts +3 -3
  45. package/build/components/ListBrowseList.d.ts.map +1 -1
  46. package/build/components/ListBrowseList.js +3 -3
  47. package/build/components/ListBrowseList.js.map +1 -1
  48. package/build/components/ListExpandedRow.d.ts +4 -4
  49. package/build/components/ListExpandedRow.d.ts.map +1 -1
  50. package/build/components/ListExpandedRow.js +4 -4
  51. package/build/components/ListExpandedRow.js.map +1 -1
  52. package/build/components/RegistryChangeSummary.d.ts +21 -0
  53. package/build/components/RegistryChangeSummary.d.ts.map +1 -0
  54. package/build/components/RegistryChangeSummary.js +24 -0
  55. package/build/components/RegistryChangeSummary.js.map +1 -0
  56. package/build/components/index.d.ts +1 -0
  57. package/build/components/index.d.ts.map +1 -1
  58. package/build/components/index.js +1 -0
  59. package/build/components/index.js.map +1 -1
  60. package/build/hooks/useInitState.js +6 -6
  61. package/build/hooks/useInitState.js.map +1 -1
  62. package/build/hooks/usePublishState.js +2 -2
  63. package/build/hooks/usePublishState.js.map +1 -1
  64. package/build/hooks/useRegistryChangeState.d.ts +57 -0
  65. package/build/hooks/useRegistryChangeState.d.ts.map +1 -0
  66. package/build/hooks/useRegistryChangeState.js +112 -0
  67. package/build/hooks/useRegistryChangeState.js.map +1 -0
  68. package/build/lib/api/index.d.ts +2 -2
  69. package/build/lib/api/index.d.ts.map +1 -1
  70. package/build/lib/api/index.js +1 -1
  71. package/build/lib/api/index.js.map +1 -1
  72. package/build/lib/api/sdk.gen.d.ts +21 -1
  73. package/build/lib/api/sdk.gen.d.ts.map +1 -1
  74. package/build/lib/api/sdk.gen.js +56 -0
  75. package/build/lib/api/sdk.gen.js.map +1 -1
  76. package/build/lib/api/types.gen.d.ts +387 -0
  77. package/build/lib/api/types.gen.d.ts.map +1 -1
  78. package/build/lib/api-client.d.ts +5 -0
  79. package/build/lib/api-client.d.ts.map +1 -1
  80. package/build/lib/api-client.js +32 -1
  81. package/build/lib/api-client.js.map +1 -1
  82. package/build/lib/auth.d.ts +1 -14
  83. package/build/lib/auth.d.ts.map +1 -1
  84. package/build/lib/auth.js +1 -30
  85. package/build/lib/auth.js.map +1 -1
  86. package/build/lib/diagnostics.d.ts.map +1 -1
  87. package/build/lib/diagnostics.js +1 -19
  88. package/build/lib/diagnostics.js.map +1 -1
  89. package/build/lib/init.d.ts +10 -4
  90. package/build/lib/init.d.ts.map +1 -1
  91. package/build/lib/init.js +17 -11
  92. package/build/lib/init.js.map +1 -1
  93. package/build/lib/publisher.d.ts.map +1 -1
  94. package/build/lib/publisher.js +1 -7
  95. package/build/lib/publisher.js.map +1 -1
  96. package/build/lib/registry-mutate.d.ts +23 -64
  97. package/build/lib/registry-mutate.d.ts.map +1 -1
  98. package/build/lib/registry-mutate.js +50 -409
  99. package/build/lib/registry-mutate.js.map +1 -1
  100. package/build/lib/registry.d.ts.map +1 -1
  101. package/build/lib/registry.js +0 -23
  102. package/build/lib/registry.js.map +1 -1
  103. package/build/lib/release-notes.d.ts +18 -14
  104. package/build/lib/release-notes.d.ts.map +1 -1
  105. package/build/lib/release-notes.js +10 -42
  106. package/build/lib/release-notes.js.map +1 -1
  107. package/build/lib/schemas/config.d.ts +0 -1
  108. package/build/lib/schemas/config.d.ts.map +1 -1
  109. package/build/lib/schemas/config.js +0 -1
  110. package/build/lib/schemas/config.js.map +1 -1
  111. package/build/lib/schemas/lockfile.d.ts +0 -1
  112. package/build/lib/schemas/lockfile.d.ts.map +1 -1
  113. package/build/lib/schemas/lockfile.js +0 -1
  114. package/build/lib/schemas/lockfile.js.map +1 -1
  115. package/build/lib/web-app.d.ts +34 -0
  116. package/build/lib/web-app.d.ts.map +1 -0
  117. package/build/lib/web-app.js +39 -0
  118. package/build/lib/web-app.js.map +1 -0
  119. package/package.json +1 -1
  120. package/build/hooks/usePromoteState.d.ts +0 -51
  121. package/build/hooks/usePromoteState.d.ts.map +0 -1
  122. package/build/hooks/usePromoteState.js +0 -139
  123. package/build/hooks/usePromoteState.js.map +0 -1
  124. package/build/hooks/useUnpublishState.d.ts +0 -52
  125. package/build/hooks/useUnpublishState.d.ts.map +0 -1
  126. package/build/hooks/useUnpublishState.js +0 -140
  127. package/build/hooks/useUnpublishState.js.map +0 -1
  128. package/build/lib/registry-repo.d.ts +0 -34
  129. package/build/lib/registry-repo.d.ts.map +0 -1
  130. package/build/lib/registry-repo.js +0 -35
  131. package/build/lib/registry-repo.js.map +0 -1
@@ -1,417 +1,58 @@
1
- import { execFile } from 'node:child_process';
2
- import { existsSync } from 'node:fs';
3
- import { cp, mkdir, readdir, rm } from 'node:fs/promises';
4
- import { tmpdir } from 'node:os';
5
- import { join } from 'node:path';
6
- import { promisify } from 'node:util';
7
- import { updateManifestField } from './publisher.js';
8
- import { DEFAULT_REGISTRY_BRANCH, DEFAULT_REGISTRY_REPO } from './registry-repo.js';
9
- import { findAsset, findBundle, getAssetsByOrg } from './registry.js';
10
- const execFileAsync = promisify(execFile);
11
- // ---------------------------------------------------------------------------
12
- // Promote
13
- // ---------------------------------------------------------------------------
14
- export function buildPromotePlan(registry, rawName, org) {
15
- if (!org) {
16
- throw new Error("Promote requires an org-scoped name like '@org/name'.");
17
- }
18
- // Look for org-scoped entries only — promote has no meaning for already-global assets.
19
- const orgAssets = getAssetsByOrg(registry, org);
20
- const asset = orgAssets.find((a) => a.name === rawName);
21
- const orgBundle = asset ? undefined : findBundle(registry, rawName, org);
22
- if (!asset && !orgBundle) {
23
- throw new Error(`Org-scoped asset or bundle '@${org}/${rawName}' not found in the registry.`);
24
- }
25
- let target;
26
- let sourceBase;
27
- let destBase;
28
- let manifestFile;
29
- let versions;
30
- if (asset) {
31
- // Fail fast if a global entry with the same name+type already exists.
32
- const global = registry.assets.find((a) => a.name === rawName && a.type === asset.type && a.org === undefined);
33
- if (global) {
34
- throw new Error(`Cannot promote '@${org}/${rawName}': a global ${asset.type} '${rawName}' already exists in the registry.`);
35
- }
36
- // Block if any published bundle references this asset in its current
37
- // (org) scope — promoting it to global would change its identity and
38
- // break those bundles' unqualified/own-org refs.
39
- const referencing = findReferencingBundles(registry, rawName, asset.type, org);
40
- if (referencing.length > 0) {
41
- throw new Error(`Cannot promote '@${org}/${rawName}': it is referenced by published bundle(s):\n` +
42
- referencing.map((b) => ` - ${b}`).join('\n') +
43
- `\nPromoting it would change its scope and break those bundles. Update or unpublish them first.`);
44
- }
45
- target = { assetType: asset.type, name: rawName, org, type: 'asset' };
46
- sourceBase = `assets/${asset.type}s/@${org}/${rawName}`;
47
- destBase = `assets/${asset.type}s/${rawName}`;
48
- manifestFile = 'manifest.json';
49
- versions = Object.keys(asset.versions);
50
- }
51
- else {
52
- const globalBundle = findBundle(registry, rawName);
53
- if (globalBundle) {
54
- throw new Error(`Cannot promote '@${org}/${rawName}': a global bundle '${rawName}' already exists in the registry.`);
55
- }
56
- // A promoted bundle becomes global and must satisfy the global-bundle rule:
57
- // no org-scoped refs, and every unqualified ref must resolve globally
58
- // (bundle-org fallback disappears with the promotion).
59
- const offendingRefs = [];
60
- for (const ref of orgBundle.assets ?? []) {
61
- if (ref.org) {
62
- offendingRefs.push(`${ref.type}:@${ref.org}/${ref.name} — org-scoped refs are not allowed in global bundles`);
63
- }
64
- else if (!findAsset(registry, ref.name, ref.type, ref.version)) {
65
- offendingRefs.push(`${ref.type}:${ref.name} — does not resolve in the global scope`);
66
- }
67
- }
68
- if (offendingRefs.length > 0) {
69
- throw new Error(`Cannot promote '@${org}/${rawName}': a global bundle may only reference global assets.\n` +
70
- offendingRefs.map((r) => ` - ${r}`).join('\n'));
71
- }
72
- target = { name: rawName, org, type: 'bundle' };
73
- sourceBase = `bundles/@${org}/${rawName}`;
74
- destBase = `bundles/${rawName}`;
75
- manifestFile = 'bundle.json';
76
- versions = [orgBundle.version];
77
- }
78
- const pairs = versions.map((version) => ({
79
- from: `${sourceBase}/${version}`,
80
- manifestFile,
81
- to: `${destBase}/${version}`,
82
- }));
83
- const branchName = buildPromoteBranchName(target);
84
- const prTitle = buildPromotePrTitle(target);
85
- const prBody = buildPromotePrBody(target, versions, pairs);
86
- return {
87
- branchName,
88
- name: target.name,
89
- org,
90
- pairs,
91
- prBody,
92
- prTitle,
93
- removePath: sourceBase,
94
- target,
95
- versions,
96
- };
97
- }
98
- export function buildUnpublishPlan(registry, rawName, org, version) {
99
- let asset = findAsset(registry, rawName, undefined, undefined, org);
100
- // An explicit org names an org-scoped entry: never let findAsset's global
101
- // fallback silently substitute a same-named global asset.
102
- if (asset && org && asset.asset.org !== org) {
103
- asset = undefined;
104
- }
105
- // Bundle identity is (name, org) with exact matching — `@org/name` targets
106
- // only the org bundle, never a same-named global one (and vice versa).
107
- const bundle = asset ? undefined : findBundle(registry, rawName, org);
108
- if (!asset && !bundle) {
109
- const orgSuffix = org ? ` in org '${org}'` : '';
110
- throw new Error(`Asset or bundle '${rawName}'${orgSuffix} not found in the registry.`);
111
- }
112
- let target;
113
- let basePath;
114
- if (asset) {
115
- const resolvedOrg = asset.asset.org;
116
- target = {
117
- assetType: asset.asset.type,
118
- name: rawName,
119
- org: resolvedOrg,
120
- type: 'asset',
121
- };
122
- basePath = resolvedOrg
123
- ? `assets/${asset.asset.type}s/@${resolvedOrg}/${rawName}`
124
- : `assets/${asset.asset.type}s/${rawName}`;
125
- }
126
- else {
127
- target = { name: rawName, ...(org !== undefined ? { org } : {}), type: 'bundle' };
128
- basePath = org ? `bundles/@${org}/${rawName}` : `bundles/${rawName}`;
129
- }
130
- if (version) {
131
- // Validate the version exists so we fail fast instead of opening an empty PR.
132
- if (asset) {
133
- const versions = Object.keys(asset.asset.versions);
134
- if (!versions.includes(version)) {
135
- throw new Error(`Version '${version}' of '${rawName}' not found in the registry.`);
136
- }
137
- }
138
- else if (bundle && bundle.version !== version) {
139
- throw new Error(`Version '${version}' of bundle '${rawName}' not found in the registry.`);
140
- }
141
- }
142
- // Block unpublishing an asset that published bundles depend on. A whole-asset
143
- // removal breaks every referencing bundle; a version-scoped removal only
144
- // breaks bundles whose refs pin that exact version.
145
- if (asset) {
146
- const referencing = findReferencingBundles(registry, rawName, asset.asset.type, target.org, version);
147
- if (referencing.length > 0) {
148
- const scopeLabel = target.org ? `@${target.org}/${rawName}` : rawName;
149
- const versionLabel = version ? ` version '${version}'` : '';
150
- throw new Error(`Cannot unpublish '${scopeLabel}'${versionLabel}: it is referenced by published bundle(s):\n` +
151
- referencing.map((b) => ` - ${b}`).join('\n') +
152
- `\nUnpublishing it would break those bundles. Update or unpublish them first.`);
153
- }
154
- }
155
- const paths = [version ? `${basePath}/${version}` : basePath];
156
- const branchName = buildUnpublishBranchName(target, version);
157
- const prTitle = buildUnpublishPrTitle(target, version);
158
- const prBody = buildUnpublishPrBody(target, version, paths);
159
- return {
160
- branchName,
161
- name: target.name,
162
- ...(target.org !== undefined ? { org: target.org } : {}),
163
- paths,
164
- prBody,
165
- prTitle,
166
- target,
167
- ...(version !== undefined ? { version } : {}),
168
- };
169
- }
170
- export async function executePromote(plan, token, progressCallback) {
171
- const tempDir = join(tmpdir(), `atk-promote-${crypto.randomUUID()}`);
172
- try {
173
- progressCallback('Cloning registry repository...');
174
- await execFileAsync('git', [
175
- '-c',
176
- 'credential.helper=',
177
- 'clone',
178
- '--depth',
179
- '1',
180
- '--branch',
181
- DEFAULT_REGISTRY_BRANCH,
182
- `https://x-access-token:${token}@github.com/${DEFAULT_REGISTRY_REPO}.git`,
183
- tempDir,
184
- ]);
185
- progressCallback('Creating branch...');
186
- await execFileAsync('git', ['-C', tempDir, 'checkout', '-b', plan.branchName]);
187
- progressCallback('Copying versioned files...');
188
- for (const pair of plan.pairs) {
189
- const fromAbs = join(tempDir, pair.from);
190
- const toAbs = join(tempDir, pair.to);
191
- if (!existsSync(fromAbs)) {
192
- throw new Error(`Source path '${pair.from}' does not exist.`);
193
- }
194
- await mkdir(toAbs, { recursive: true });
195
- await copyDirectoryContents(fromAbs, toAbs);
196
- await updateManifestField(toAbs, pair.manifestFile, 'org', undefined);
197
- }
198
- progressCallback('Removing original org path...');
199
- const removeAbs = join(tempDir, plan.removePath);
200
- if (existsSync(removeAbs)) {
201
- await rm(removeAbs, { force: true, recursive: true });
202
- }
203
- return await commitPushAndOpenPr(tempDir, plan.branchName, plan.prTitle, plan.prBody, progressCallback);
204
- }
205
- finally {
206
- await rm(tempDir, { force: true, recursive: true }).catch(() => { });
207
- }
208
- }
209
- export async function executeUnpublish(plan, token, progressCallback) {
210
- const tempDir = join(tmpdir(), `atk-unpublish-${crypto.randomUUID()}`);
211
- try {
212
- progressCallback('Cloning registry repository...');
213
- await execFileAsync('git', [
214
- '-c',
215
- 'credential.helper=',
216
- 'clone',
217
- '--depth',
218
- '1',
219
- '--branch',
220
- DEFAULT_REGISTRY_BRANCH,
221
- `https://x-access-token:${token}@github.com/${DEFAULT_REGISTRY_REPO}.git`,
222
- tempDir,
223
- ]);
224
- progressCallback('Creating branch...');
225
- await execFileAsync('git', ['-C', tempDir, 'checkout', '-b', plan.branchName]);
226
- progressCallback('Removing files...');
227
- for (const relPath of plan.paths) {
228
- const absPath = join(tempDir, relPath);
229
- if (!existsSync(absPath)) {
230
- throw new Error(`Registry path '${relPath}' does not exist.`);
231
- }
232
- await rm(absPath, { force: true, recursive: true });
233
- }
234
- return await commitPushAndOpenPr(tempDir, plan.branchName, plan.prTitle, plan.prBody, progressCallback);
235
- }
236
- finally {
237
- await rm(tempDir, { force: true, recursive: true }).catch(() => { });
238
- }
239
- }
240
1
  /**
241
- * Find published bundles whose refs resolve to a specific asset in its current
242
- * scope, so an asset promote/unpublish can hard-block instead of silently
243
- * breaking them (design §6.6, B4). Returns bundle display names (`@org/name`
244
- * for org bundles, bare `name` for global ones).
2
+ * Registry mutations other than publish — `atk unpublish` and `atk promote` —
3
+ * through the ATK API.
245
4
  *
246
- * A ref resolves to the asset when it explicitly targets the asset's org, or
247
- * when it is unqualified and the bundle's own-org-then-global fallback lands on
248
- * this asset (mirroring `resolveBundleInstallPlan`). When `version` is given,
249
- * only refs pinned to that exact version are considered — a version-scoped
250
- * removal cannot break an unpinned ref, which simply tracks the new latest.
5
+ * The API owns target resolution, every guard (referencing bundles, global
6
+ * twins, bundle scope rules, ambiguous names) and the pull request itself, so
7
+ * the CLI only builds the request, shows the server's plan and asks it to
8
+ * open the PR. registry.json is regenerated by the registry repo's CI from the
9
+ * resulting tree, so neither side touches it here.
251
10
  */
252
- export function findReferencingBundles(registry, name, type, assetOrg, version) {
253
- const names = [];
254
- for (const bundle of registry.bundles ?? []) {
255
- const referenced = (bundle.assets ?? []).some((ref) => {
256
- if (ref.name !== name || ref.type !== type)
257
- return false;
258
- if (version && ref.version !== version)
259
- return false;
260
- if (ref.org != null)
261
- return ref.org === assetOrg;
262
- // Unqualified ref: resolve in the bundle's own org first, then global.
263
- if (assetOrg === bundle.org)
264
- return true;
265
- if (assetOrg === undefined) {
266
- // Global asset: an org bundle's unqualified ref only lands globally when
267
- // no same-named asset shadows it in the bundle's own org.
268
- const shadowed = registry.assets.some((a) => a.name === name && a.type === type && a.org === bundle.org);
269
- return !shadowed;
270
- }
271
- return false;
272
- });
273
- if (referenced) {
274
- names.push(bundle.org ? `@${bundle.org}/${bundle.name}` : bundle.name);
275
- }
276
- }
277
- return names;
278
- }
279
- // ---------------------------------------------------------------------------
280
- // Error mapping (shared with publisher)
281
- // ---------------------------------------------------------------------------
282
- export function mapRegistryMutateError(error) {
283
- const msg = error instanceof Error ? error.message : String(error);
284
- if (msg.includes('already exists') && msg.includes('branch')) {
285
- return 'Branch already exists. A PR may already be open for this change.';
286
- }
287
- if (msg.includes('rejected')) {
288
- return 'Branch already exists on remote. A PR may already be open for this change.';
289
- }
290
- if (msg.includes('Authentication') || msg.includes('auth') || msg.includes('403') || msg.includes('401')) {
291
- return "GitHub authentication failed. Run 'gh auth login' or set GITHUB_TOKEN.";
292
- }
293
- if (msg.includes('ENOENT') || msg.includes('not recognized') || msg.includes('command not found')) {
294
- return 'GitHub CLI (gh) is required. Install it from https://cli.github.com';
295
- }
296
- if (msg.includes('Could not resolve host') || msg.includes('ENOTFOUND') || msg.includes('network')) {
297
- return 'Failed to reach GitHub. Check your internet connection.';
298
- }
299
- if (msg.includes('permission') || msg.includes('denied')) {
300
- return 'Push failed. Check that you have write access to the repository.';
301
- }
302
- return msg;
303
- }
304
- // ---------------------------------------------------------------------------
305
- // Helpers
306
- // ---------------------------------------------------------------------------
307
- function buildPromoteBranchName(target) {
308
- const kind = target.type === 'bundle' ? 'bundle' : target.assetType;
309
- return `promote/${kind}/${target.org}/${target.name}`;
310
- }
311
- function buildPromotePrBody(target, versions, pairs) {
312
- const kind = target.type === 'bundle' ? 'bundle' : target.assetType;
313
- const lines = [
314
- `## Promote ${kind}: ${target.name}`,
315
- '',
316
- `**From:** \`@${target.org}/${target.name}\``,
317
- `**To:** \`${target.name}\` (global)`,
318
- '',
319
- '### Versions',
320
- '',
321
- ];
322
- for (const v of versions) {
323
- lines.push(`- ${v}`);
324
- }
325
- lines.push('', '### Path Moves', '');
326
- for (const pair of pairs) {
327
- lines.push(`- \`${pair.from}/\` → \`${pair.to}/\``);
328
- }
329
- lines.push('', '### Notes', '', '- The `org` field is removed from each manifest.');
330
- lines.push('- The original org-scoped directory is deleted.');
331
- lines.push('- `registry.json` will be regenerated by the registry repo CI on merge.');
332
- lines.push('', '---', '*Submitted via `atk promote`*');
333
- return lines.join('\n');
334
- }
335
- function buildPromotePrTitle(target) {
336
- const kind = target.type === 'bundle' ? 'bundle' : target.assetType;
337
- return `refactor(registry): promote ${kind} ${target.name} from @${target.org} to global`;
338
- }
339
- function buildUnpublishBranchName(target, version) {
340
- const kind = target.type === 'bundle' ? 'bundle' : target.assetType;
341
- const orgSegment = target.org ? `${target.org}/` : '';
342
- const versionSegment = version ? `/${version}` : '';
343
- return `unpublish/${kind}/${orgSegment}${target.name}${versionSegment}`;
11
+ import { errorCodeOf, getApiClient, unwrap } from './api-client.js';
12
+ import { promote as apiPromote, promotePlan as apiPromotePlan, unpublish as apiUnpublish, unpublishPlan as apiUnpublishPlan, } from './api/sdk.gen.js';
13
+ /**
14
+ * Map a `--type` flag (an asset type, or `bundle`) to the request fields that
15
+ * pin the target when a name exists more than once in a scope.
16
+ */
17
+ export function changeTargetFields(type) {
18
+ if (type === undefined)
19
+ return {};
20
+ return type === 'bundle' ? { kind: 'bundle' } : { kind: 'asset', type };
21
+ }
22
+ /** Ask the API to open the promote PR, replacing a leftover branch once if needed. */
23
+ export async function executePromote(request, progressCallback) {
24
+ const client = await getApiClient();
25
+ return openWithBranchRetry((replaceExistingBranch) => apiPromote({ body: withClient(request, replaceExistingBranch), client }), 'promote', progressCallback);
26
+ }
27
+ /** Ask the API to open the unpublish PR, replacing a leftover branch once if needed. */
28
+ export async function executeUnpublish(request, progressCallback) {
29
+ const client = await getApiClient();
30
+ return openWithBranchRetry((replaceExistingBranch) => apiUnpublish({ body: withClient(request, replaceExistingBranch), client }), 'unpublish', progressCallback);
31
+ }
32
+ /** The server's promote plan (the dry run): what the PR would move, without opening it. */
33
+ export async function planPromote(request) {
34
+ const client = await getApiClient();
35
+ return unwrap(await apiPromotePlan({ body: withClient(request), client }), 'promote plan');
36
+ }
37
+ /** The server's unpublish plan (the dry run): what the PR would remove, without opening it. */
38
+ export async function planUnpublish(request) {
39
+ const client = await getApiClient();
40
+ return unwrap(await apiUnpublishPlan({ body: withClient(request), client }), 'unpublish plan');
344
41
  }
345
- function buildUnpublishPrBody(target, version, paths) {
346
- const kind = target.type === 'bundle' ? 'bundle' : target.assetType;
347
- const display = target.org ? `@${target.org}/${target.name}` : target.name;
348
- const suffix = version ? `@${version}` : '';
349
- const lines = [
350
- `## Unpublish ${kind}: ${display}${suffix}`,
351
- '',
352
- version
353
- ? `Removes only version **${version}** from the registry.`
354
- : `Removes **all versions** of this ${kind} from the registry.`,
355
- '',
356
- '### Paths Removed',
357
- '',
358
- ];
359
- for (const p of paths) {
360
- lines.push(`- \`${p}/\``);
42
+ /**
43
+ * Open the PR; when the branch already exists from an earlier attempt, retry
44
+ * once replacing it (the same single retry `executePublish` does).
45
+ */
46
+ async function openWithBranchRetry(send, resource, progressCallback) {
47
+ progressCallback('Opening pull request...');
48
+ let result = await send(false);
49
+ if (result.response?.status === 409 && errorCodeOf(result.error) === 'branch_exists') {
50
+ progressCallback('Replacing existing branch...');
51
+ result = await send(true);
361
52
  }
362
- lines.push('', '### Notes', '', '- `registry.json` will be regenerated by the registry repo CI on merge.');
363
- lines.push('', '---', '*Submitted via `atk unpublish`*');
364
- return lines.join('\n');
365
- }
366
- function buildUnpublishPrTitle(target, version) {
367
- const kind = target.type === 'bundle' ? 'bundle' : target.assetType;
368
- const display = target.org ? `@${target.org}/${target.name}` : target.name;
369
- const suffix = version ? `@${version}` : '';
370
- return `chore(registry): unpublish ${kind} ${display}${suffix}`;
53
+ return unwrap(result, resource);
371
54
  }
372
- async function commitPushAndOpenPr(tempDir, branchName, prTitle, prBody, progressCallback) {
373
- progressCallback('Committing changes...');
374
- await execFileAsync('git', ['-C', tempDir, 'add', '-A']);
375
- await execFileAsync('git', ['-C', tempDir, 'commit', '-m', prTitle]);
376
- progressCallback('Pushing changes...');
377
- await execFileAsync('git', [
378
- '-C',
379
- tempDir,
380
- '-c',
381
- 'credential.helper=',
382
- 'push',
383
- 'origin',
384
- '--delete',
385
- branchName,
386
- ]).catch(() => { });
387
- await execFileAsync('git', ['-C', tempDir, '-c', 'credential.helper=', 'push', 'origin', branchName]);
388
- progressCallback('Creating pull request...');
389
- const { stdout } = await execFileAsync('gh', [
390
- 'pr',
391
- 'create',
392
- '--repo',
393
- DEFAULT_REGISTRY_REPO,
394
- '--base',
395
- DEFAULT_REGISTRY_BRANCH,
396
- '--head',
397
- branchName,
398
- '--title',
399
- prTitle,
400
- '--body',
401
- prBody,
402
- ]);
403
- return {
404
- branchName,
405
- mode: 'pr',
406
- prUrl: stdout.trim(),
407
- };
408
- }
409
- async function copyDirectoryContents(from, to) {
410
- const entries = await readdir(from, { withFileTypes: true });
411
- for (const entry of entries) {
412
- const src = join(from, entry.name);
413
- const dst = join(to, entry.name);
414
- await cp(src, dst, { recursive: true });
415
- }
55
+ function withClient(request, replaceExistingBranch = false) {
56
+ return { ...request, client: 'cli', replaceExistingBranch };
416
57
  }
417
58
  //# sourceMappingURL=registry-mutate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry-mutate.js","sourceRoot":"","sources":["../../src/lib/registry-mutate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry-mutate.js","sourceRoot":"","sources":["../../src/lib/registry-mutate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,OAAO,EAAkB,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EACL,OAAO,IAAI,UAAU,EACrB,WAAW,IAAI,cAAc,EAC7B,SAAS,IAAI,YAAY,EACzB,aAAa,IAAI,gBAAgB,GAClC,MAAM,kBAAkB,CAAC;AAI1B;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAsC;IAEtC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAClC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC1E,CAAC;AAED,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAuB,EACvB,gBAAuC;IAEvC,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;IACpC,OAAO,mBAAmB,CACxB,CAAC,qBAAqB,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC,EACnG,SAAS,EACT,gBAAgB,CACjB,CAAC;AACJ,CAAC;AAED,wFAAwF;AACxF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAyB,EACzB,gBAAuC;IAEvC,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;IACpC,OAAO,mBAAmB,CACxB,CAAC,qBAAqB,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC,EACrG,WAAW,EACX,gBAAgB,CACjB,CAAC;AACJ,CAAC;AAED,2FAA2F;AAC3F,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAuB;IACvD,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;IACpC,OAAO,MAAM,CAAC,MAAM,cAAc,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;AAC7F,CAAC;AAED,+FAA+F;AAC/F,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAyB;IAC3D,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;IACpC,OAAO,MAAM,CAAC,MAAM,gBAAgB,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC;AACjG,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,mBAAmB,CAChC,IAAoF,EACpF,QAAgB,EAChB,gBAAuC;IAEvC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;IAC5C,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,eAAe,EAAE,CAAC;QACrF,gBAAgB,CAAC,8BAA8B,CAAC,CAAC;QACjD,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,UAAU,CAA8C,OAAU,EAAE,qBAAqB,GAAG,KAAK;IACxG,OAAO,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;AAC9D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/lib/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/lib/registry.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,6 @@ import { ApiRequestError, getApiClient, unwrap } from './api-client.js';
6
6
  import { listAssetFiles as apiListAssetFiles, checkout, getAssetFile, getAssetManifest, getAssetReadme, getBundleManifest, getBundleReadme, getRegistry, } from './api/sdk.gen.js';
7
7
  import { getCacheDir, loadConfig } from './config.js';
8
8
  import {} from './errors.js';
9
- import { fetchWithRetry } from './fetch-retry.js';
10
9
  import { parseAndValidate, safeParseJson } from './parse-json.js';
11
10
  import { sanitizeRegistryData } from './sanitize.js';
12
11
  import { ManifestSchema } from './schemas/manifest.js';
@@ -189,12 +188,6 @@ export async function fetchRegistry(options) {
189
188
  return cached;
190
189
  }
191
190
  }
192
- // Custom registry URL: plain unauthenticated GET, no ETag handling
193
- if (config.registryUrl) {
194
- const registry = await fetchRegistryFromUrl(config.registryUrl);
195
- await writeCacheFile(cachePath, cacheDir, registry);
196
- return registry;
197
- }
198
191
  // Fetch fresh from the ATK API (conditional on the cached ETag, even when forced)
199
192
  return fetchRegistryFromApi(cachePath, cacheDir);
200
193
  }
@@ -520,22 +513,6 @@ async function fetchRegistryFromApi(cachePath, cacheDir) {
520
513
  }
521
514
  return registry;
522
515
  }
523
- /**
524
- * Fetch registry from a custom URL (for custom registryUrl in config).
525
- */
526
- async function fetchRegistryFromUrl(url) {
527
- const response = await fetchWithRetry(url);
528
- if (!response.ok) {
529
- throw new RegistryError(`Failed to fetch registry from ${url}: HTTP ${response.status}`);
530
- }
531
- const raw = await response.text();
532
- try {
533
- return sanitizeRegistryData(parseAndValidate(raw, RegistrySchema, `Invalid registry data from ${url}`));
534
- }
535
- catch (err) {
536
- throw new RegistryError(err.message);
537
- }
538
- }
539
516
  /**
540
517
  * Read the cached registry file if it exists and is not expired.
541
518
  */