@detergent-software/atk 9.3.0-dev.8 → 9.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/CHANGELOG.md +88 -0
  2. package/README.md +20 -0
  3. package/build/cli.js +11 -0
  4. package/build/cli.js.map +1 -1
  5. package/build/command-manifest.json +17 -0
  6. package/build/commands/cache.d.ts +1 -1
  7. package/build/commands/checkout.d.ts.map +1 -1
  8. package/build/commands/checkout.js +14 -1
  9. package/build/commands/checkout.js.map +1 -1
  10. package/build/commands/completion.d.ts +13 -0
  11. package/build/commands/completion.d.ts.map +1 -0
  12. package/build/commands/completion.js +22 -0
  13. package/build/commands/completion.js.map +1 -0
  14. package/build/commands/freeze.d.ts.map +1 -1
  15. package/build/commands/freeze.js +17 -10
  16. package/build/commands/freeze.js.map +1 -1
  17. package/build/commands/pin.d.ts.map +1 -1
  18. package/build/commands/pin.js +16 -10
  19. package/build/commands/pin.js.map +1 -1
  20. package/build/commands/schema.d.ts +2 -2
  21. package/build/commands/thaw.d.ts.map +1 -1
  22. package/build/commands/thaw.js +19 -12
  23. package/build/commands/thaw.js.map +1 -1
  24. package/build/commands/unpin.d.ts.map +1 -1
  25. package/build/commands/unpin.js +13 -9
  26. package/build/commands/unpin.js.map +1 -1
  27. package/build/components/DiffView.d.ts +2 -0
  28. package/build/components/DiffView.d.ts.map +1 -1
  29. package/build/components/DiffView.js.map +1 -1
  30. package/build/lib/atk-api/index.d.ts +2 -2
  31. package/build/lib/atk-api/index.d.ts.map +1 -1
  32. package/build/lib/atk-api/index.js +1 -1
  33. package/build/lib/atk-api/index.js.map +1 -1
  34. package/build/lib/atk-api/web-routes.d.ts +23 -0
  35. package/build/lib/atk-api/web-routes.d.ts.map +1 -1
  36. package/build/lib/atk-api/web-routes.js +31 -0
  37. package/build/lib/atk-api/web-routes.js.map +1 -1
  38. package/build/lib/completion/candidates.d.ts +18 -0
  39. package/build/lib/completion/candidates.d.ts.map +1 -0
  40. package/build/lib/completion/candidates.js +281 -0
  41. package/build/lib/completion/candidates.js.map +1 -0
  42. package/build/lib/completion/scripts.d.ts +13 -0
  43. package/build/lib/completion/scripts.d.ts.map +1 -0
  44. package/build/lib/completion/scripts.js +96 -0
  45. package/build/lib/completion/scripts.js.map +1 -0
  46. package/build/lib/config.d.ts +11 -12
  47. package/build/lib/config.d.ts.map +1 -1
  48. package/build/lib/config.js +16 -11
  49. package/build/lib/config.js.map +1 -1
  50. package/build/lib/diff-command.js +25 -16
  51. package/build/lib/diff-command.js.map +1 -1
  52. package/build/lib/registry-change-json.d.ts +2 -2
  53. package/build/lib/registry.d.ts +3 -0
  54. package/build/lib/registry.d.ts.map +1 -1
  55. package/build/lib/registry.js +20 -6
  56. package/build/lib/registry.js.map +1 -1
  57. package/build/lib/schemas/adapter.d.ts +2 -2
  58. package/build/lib/scope.d.ts.map +1 -1
  59. package/build/lib/scope.js +2 -9
  60. package/build/lib/scope.js.map +1 -1
  61. package/build/lib/uninstaller.d.ts +7 -6
  62. package/build/lib/uninstaller.d.ts.map +1 -1
  63. package/build/lib/uninstaller.js +11 -55
  64. package/build/lib/uninstaller.js.map +1 -1
  65. package/build/lib/user-paths.d.ts +8 -0
  66. package/build/lib/user-paths.d.ts.map +1 -0
  67. package/build/lib/user-paths.js +24 -0
  68. package/build/lib/user-paths.js.map +1 -0
  69. package/package.json +1 -1
@@ -0,0 +1,281 @@
1
+ /**
2
+ * The candidates behind `atk completion`'s scripts: `cli.tsx` answers `atk __complete <cword> <words…>` with
3
+ * {@link complete} before Pastel starts (ATK-611). Every TAB runs it, so it reads only the command manifest,
4
+ * `~/.atkrc.json`, the scope's lockfile and the cached registry, as plain JSON: no Zod, no Ink, no command module,
5
+ * and never the ATK API.
6
+ */
7
+ import { readFileSync } from 'node:fs';
8
+ import { homedir } from 'node:os';
9
+ import { join, resolve } from 'node:path';
10
+ import commandManifest from '../../command-manifest.json' with { type: 'json' };
11
+ import { GLOBAL_OPTIONS } from '../offline.js';
12
+ import { findProjectRoot } from '../paths.js';
13
+ import { cacheDirFor, userRootFor } from '../user-paths.js';
14
+ /** The one line that tells a completion script to complete file paths itself. */
15
+ export const FILES = ':files';
16
+ /** Commands whose names complete from the scope's lockfile. */
17
+ const INSTALLED_NAME_COMMANDS = new Set([
18
+ 'diff',
19
+ 'freeze',
20
+ 'move',
21
+ 'pin',
22
+ 'sync',
23
+ 'thaw',
24
+ 'uninstall',
25
+ 'unpin',
26
+ 'update',
27
+ 'why',
28
+ ]);
29
+ /** Commands whose first name completes from the cached registry (`install`'s every name). */
30
+ const REGISTRY_NAME_COMMANDS = new Set(['checkout', 'info', 'install']);
31
+ /** Arguments that name a path on disk, by their commander name. */
32
+ const PATH_ARGUMENT = /^[<[](dest|path|paths)(\.\.\.)?[\]>]$/;
33
+ /** Program flags every command takes, besides `GLOBAL_OPTIONS`. */
34
+ const PROGRAM_FLAGS = ['--help'];
35
+ /**
36
+ * The candidates for the word at `cword` in `words` (the words after `atk`; an index past the end is an empty
37
+ * word), already filtered by that word's prefix. `[FILES]` asks the shell for file paths. Never throws: anything
38
+ * it can't read gives no candidates.
39
+ */
40
+ export function complete(words, cword, sources = {}) {
41
+ try {
42
+ return candidates(words, cword, sources);
43
+ }
44
+ catch {
45
+ return [];
46
+ }
47
+ }
48
+ /** The org a bare name resolves in, as `resolveActiveOrg`: `--org`, then the lockfile's, then the config's. */
49
+ function activeOrg(line, lockfile, sources) {
50
+ const configured = userConfig(sources)['org'];
51
+ return line.values.get('--org') ?? lockfile?.org ?? (typeof configured === 'string' ? configured : undefined);
52
+ }
53
+ /** The command's argument at a position, the variadic last one for every position past it. */
54
+ function argumentAt(args, position) {
55
+ const last = args.at(-1);
56
+ return args[position] ?? (last && isVariadic(last) ? last : undefined);
57
+ }
58
+ function candidates(words, cword, sources) {
59
+ const commands = (sources.commands ?? commandManifest).filter((command) => command.name !== 'index');
60
+ const current = words[cword] ?? '';
61
+ const before = words.slice(0, Math.max(0, cword));
62
+ const programFlags = [...GLOBAL_OPTIONS, ...PROGRAM_FLAGS.map((flags) => ({ flags }))].map(parseFlag);
63
+ const commandIndex = before.findIndex((word) => !word.startsWith('-'));
64
+ if (commandIndex === -1) {
65
+ if (current.startsWith('-')) {
66
+ return matching([...longFlags(programFlags), '--version'], current);
67
+ }
68
+ return matching(['help', ...commands.map((command) => command.name)], current);
69
+ }
70
+ const name = before[commandIndex] ?? '';
71
+ if (name === 'help') {
72
+ return cword === commandIndex + 1
73
+ ? matching(commands.map((command) => command.name), current)
74
+ : [];
75
+ }
76
+ const command = commands.find((candidate) => candidate.name === name);
77
+ if (!command) {
78
+ return [];
79
+ }
80
+ const flags = [...(command.options ?? []).map(parseFlag), ...programFlags];
81
+ const line = readLine(before.slice(commandIndex + 1), flags);
82
+ const { pendingFlag } = line;
83
+ if (pendingFlag && !(pendingFlag.optionalValue && current.startsWith('-'))) {
84
+ if (pendingFlag.choices) {
85
+ return matching(pendingFlag.choices, current);
86
+ }
87
+ return pendingFlag.long === '--project-root' ? [FILES] : [];
88
+ }
89
+ if (current.startsWith('-') && !line.afterDoubleDash) {
90
+ return current.includes('=') ? flagValues(current, flags) : matching(longFlags(flags), current);
91
+ }
92
+ const position = line.positionals.length;
93
+ const argument = argumentAt(command.args ?? [], position);
94
+ if (INSTALLED_NAME_COMMANDS.has(name) && (position === 0 || isVariadic(argument))) {
95
+ return matching(installedNames(name, line, sources), current);
96
+ }
97
+ if (REGISTRY_NAME_COMMANDS.has(name) && (position === 0 || (name === 'install' && isVariadic(argument)))) {
98
+ return matching(registryNames(name, line, sources), current);
99
+ }
100
+ if (argument?.choices) {
101
+ return matching(argument.choices, current);
102
+ }
103
+ if (argument && PATH_ARGUMENT.test(argument.name)) {
104
+ return [FILES];
105
+ }
106
+ return [];
107
+ }
108
+ function findFlag(flags, word) {
109
+ return flags.find((flag) => flag.long === word || flag.short === word);
110
+ }
111
+ /** `--flag=<prefix>`: the flag's choices, each as `--flag=<choice>`. */
112
+ function flagValues(current, flags) {
113
+ const [flagWord = ''] = current.split('=', 1);
114
+ const flag = findFlag(flags, flagWord);
115
+ return flag?.takesValue && flag.choices
116
+ ? matching(flag.choices.map((choice) => `${flagWord}=${choice}`), current)
117
+ : [];
118
+ }
119
+ function installedNames(command, line, sources) {
120
+ const lockfile = readLockfile(lockfileRoot(command, line, sources));
121
+ if (!lockfile) {
122
+ return [];
123
+ }
124
+ const entries = [...lockfile.assets];
125
+ if (command === 'uninstall') {
126
+ entries.push(...lockfile.assets.flatMap((asset) => (asset.bundleOrigin ? [asset.bundleOrigin] : [])));
127
+ }
128
+ const org = activeOrg(line, lockfile, sources);
129
+ return entries.flatMap((entry) => names(entry, org));
130
+ }
131
+ function isRecord(value) {
132
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
133
+ }
134
+ function isVariadic(argument) {
135
+ return argument?.name.includes('...') ?? false;
136
+ }
137
+ /**
138
+ * The root whose lockfile names the installed assets: the user root with `--user`, and for `move` the scope it
139
+ * moves from (the user root with `--to project`); else `--project-root`'s, else the project's from the cwd.
140
+ */
141
+ function lockfileRoot(command, line, sources) {
142
+ const fromUser = command === 'move' ? line.values.get('--to') === 'project' : line.user;
143
+ if (fromUser) {
144
+ return userRoot(sources);
145
+ }
146
+ const projectRoot = line.values.get('--project-root');
147
+ if (projectRoot !== undefined) {
148
+ // The shell hasn't expanded `~` in the words it hands over.
149
+ return resolve(projectRoot.replace(/^~(?=$|[\\/])/, sources.home ?? homedir()));
150
+ }
151
+ return sources.projectRoot ?? findProjectRoot();
152
+ }
153
+ function longFlags(flags) {
154
+ return flags.flatMap((flag) => (flag.long ? [flag.long] : []));
155
+ }
156
+ /** The words that start with `prefix`, de-duplicated and sorted. */
157
+ function matching(words, prefix) {
158
+ return [...new Set(words.filter((word) => word.startsWith(prefix)))].sort();
159
+ }
160
+ /** The entries of a JSON array that have a string `name`, with their string `org`. */
161
+ function namedEntries(value) {
162
+ if (!Array.isArray(value)) {
163
+ return [];
164
+ }
165
+ return value.flatMap((entry) => {
166
+ if (!isRecord(entry) || typeof entry['name'] !== 'string') {
167
+ return [];
168
+ }
169
+ const org = typeof entry['org'] === 'string' ? entry['org'] : undefined;
170
+ return [{ ...entry, name: entry['name'], ...(org ? { org } : {}) }];
171
+ });
172
+ }
173
+ /** An entry's names: `@org/name` for an org's, and the bare name for a global one or one of `bareOrg`. */
174
+ function names(entry, bareOrg) {
175
+ if (!entry.org) {
176
+ return [entry.name];
177
+ }
178
+ const scoped = `@${entry.org}/${entry.name}`;
179
+ return entry.org === bareOrg ? [entry.name, scoped] : [scoped];
180
+ }
181
+ /** An option's `-t, --type [type]` as its short and long forms, its choices, and how it reads a value. */
182
+ function parseFlag({ choices, flags }) {
183
+ const parts = flags.split(/[ ,]+/);
184
+ return {
185
+ choices,
186
+ long: parts.find((part) => part.startsWith('--')),
187
+ optionalValue: flags.includes('['),
188
+ short: parts.find((part) => /^-[^-]$/.test(part)),
189
+ takesValue: /[<[]/.test(flags),
190
+ };
191
+ }
192
+ function readJson(path) {
193
+ try {
194
+ return JSON.parse(readFileSync(path, 'utf8'));
195
+ }
196
+ catch {
197
+ return undefined;
198
+ }
199
+ }
200
+ /** Read the words between the command and the current word as commander would: positionals, and flag values. */
201
+ function readLine(words, flags) {
202
+ const line = { afterDoubleDash: false, positionals: [], user: false, values: new Map() };
203
+ for (let index = 0; index < words.length; index++) {
204
+ const word = words[index] ?? '';
205
+ if (line.afterDoubleDash || !word.startsWith('-')) {
206
+ line.positionals.push(word);
207
+ continue;
208
+ }
209
+ if (word === '--') {
210
+ line.afterDoubleDash = true;
211
+ continue;
212
+ }
213
+ const equals = word.indexOf('=');
214
+ const flag = findFlag(flags, equals === -1 ? word : word.slice(0, equals));
215
+ if (flag?.long === '--user') {
216
+ line.user = true;
217
+ }
218
+ if (!flag?.takesValue) {
219
+ continue;
220
+ }
221
+ if (equals !== -1) {
222
+ setValue(line, flag, word.slice(equals + 1));
223
+ continue;
224
+ }
225
+ const value = words[index + 1];
226
+ if (value === undefined) {
227
+ line.pendingFlag = flag;
228
+ break;
229
+ }
230
+ if (flag.optionalValue && value.startsWith('-')) {
231
+ continue;
232
+ }
233
+ setValue(line, flag, value);
234
+ index++;
235
+ }
236
+ return line;
237
+ }
238
+ /** The names, org and bundles of the lockfile in `root`; undefined when there is none or it isn't JSON. */
239
+ function readLockfile(root) {
240
+ const lockfile = readJson(join(root, '.atk-lock.json'));
241
+ if (!isRecord(lockfile)) {
242
+ return undefined;
243
+ }
244
+ const assets = namedEntries(lockfile['assets']).map((asset) => {
245
+ const origin = namedEntries([asset['bundleOrigin']])[0];
246
+ return origin ? { ...asset, bundleOrigin: origin } : asset;
247
+ });
248
+ const org = typeof lockfile['org'] === 'string' ? lockfile['org'] : undefined;
249
+ return { assets, org };
250
+ }
251
+ /**
252
+ * The cached registry's names. `checkout` takes assets only and resolves a bare name as the global asset (ATK-740),
253
+ * so an org's asset completes there as `@org/name` alone; `install` also takes `@org`.
254
+ */
255
+ function registryNames(command, line, sources) {
256
+ const config = userConfig(sources);
257
+ const configuredCache = config['cacheDir'];
258
+ const registry = readJson(join(cacheDirFor(typeof configuredCache === 'string' ? configuredCache : undefined, sources.home), 'registry.json'));
259
+ if (!isRecord(registry)) {
260
+ return [];
261
+ }
262
+ const checkout = command === 'checkout';
263
+ const entries = [...namedEntries(registry['assets']), ...(checkout ? [] : namedEntries(registry['bundles']))];
264
+ const bareOrg = checkout ? undefined : activeOrg(line, readLockfile(lockfileRoot(command, line, sources)), sources);
265
+ const orgs = command === 'install' ? entries.flatMap((entry) => (entry.org ? [`@${entry.org}`] : [])) : [];
266
+ return [...entries.flatMap((entry) => names(entry, bareOrg)), ...orgs];
267
+ }
268
+ function setValue(line, flag, value) {
269
+ if (flag.long) {
270
+ line.values.set(flag.long, value);
271
+ }
272
+ }
273
+ function userConfig(sources) {
274
+ const config = readJson(join(sources.home ?? homedir(), '.atkrc.json'));
275
+ return isRecord(config) ? config : {};
276
+ }
277
+ function userRoot(sources) {
278
+ const configured = userConfig(sources)['userRoot'];
279
+ return userRootFor((sources.env ?? process.env)['ATK_USER_ROOT'], typeof configured === 'string' ? configured : undefined, sources.home);
280
+ }
281
+ //# sourceMappingURL=candidates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"candidates.js","sourceRoot":"","sources":["../../../src/lib/completion/candidates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * The scripts `atk completion <shell>` prints (ATK-611). Each one calls `atk __complete <cword> <words…>`: the words
3
+ * after `atk` up to the cursor and the index of the one being completed, past the end when it is empty (Windows
4
+ * PowerShell drops an empty argument, so the index stands in for it). The CLI prints one candidate per line, or
5
+ * `:files` (`FILES` in `candidates.ts`) for the shell's own path completion.
6
+ */
7
+ export declare const SHELLS: readonly ["bash", "pwsh", "zsh"];
8
+ export type Shell = (typeof SHELLS)[number];
9
+ /** The line that loads each shell's completion, for its profile. */
10
+ export declare const SETUP: Record<Shell, string>;
11
+ /** The completion script for a shell, headed by a comment that says how to load it. */
12
+ export declare function completionScript(shell: Shell): string;
13
+ //# sourceMappingURL=scripts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts.d.ts","sourceRoot":"","sources":["../../../src/lib/completion/scripts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,MAAM,kCAAmC,CAAC;AAEvD,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5C,oEAAoE;AACpE,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAIvC,CAAC;AAmFF,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAIrD"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * The scripts `atk completion <shell>` prints (ATK-611). Each one calls `atk __complete <cword> <words…>`: the words
3
+ * after `atk` up to the cursor and the index of the one being completed, past the end when it is empty (Windows
4
+ * PowerShell drops an empty argument, so the index stands in for it). The CLI prints one candidate per line, or
5
+ * `:files` (`FILES` in `candidates.ts`) for the shell's own path completion.
6
+ */
7
+ export const SHELLS = ['bash', 'pwsh', 'zsh'];
8
+ /** The line that loads each shell's completion, for its profile. */
9
+ export const SETUP = {
10
+ bash: 'eval "$(atk completion bash)"',
11
+ pwsh: 'atk completion pwsh | Out-String | Invoke-Expression',
12
+ zsh: 'eval "$(atk completion zsh)"',
13
+ };
14
+ const PROFILE = {
15
+ bash: '~/.bashrc',
16
+ pwsh: '$PROFILE',
17
+ zsh: '~/.zshrc, after compinit',
18
+ };
19
+ // COMP_WORDS splits at COMP_WORDBREAKS, which has @ and = (so @org/name and --type=skill would arrive in pieces), so
20
+ // the words come from the line up to the cursor, split at blanks. Readline replaces only the text after the last
21
+ // break character, so the part of the word before it is cut from each candidate. bash 3.2 (macOS) has no `mapfile`
22
+ // or `compopt`: the lines are split with IFS, and `:files` falls back to `compgen -f` there.
23
+ const BASH = `_atk_completion() {
24
+ local line="\${COMP_LINE:0:COMP_POINT}"
25
+ local -a words candidates
26
+ IFS=$' \\t\\n' read -r -a words <<< "$line"
27
+ case "$line" in *[[:space:]]) words+=('') ;; esac
28
+ local cur="\${words[\${#words[@]}-1]}" replaced="\${words[\${#words[@]}-1]}"
29
+ if [ -n "$COMP_WORDBREAKS" ]; then
30
+ replaced="\${line##*[$COMP_WORDBREAKS]}"
31
+ fi
32
+ local typed="\${cur%"$replaced"}"
33
+ local IFS=$'\\n'
34
+ candidates=($(atk __complete "$((\${#words[@]} - 2))" "\${words[@]:1}" 2>/dev/null))
35
+ if [ "\${candidates[0]}" = ':files' ]; then
36
+ if type compopt >/dev/null 2>&1; then
37
+ compopt -o default
38
+ COMPREPLY=()
39
+ else
40
+ COMPREPLY=($(compgen -f -- "$replaced"))
41
+ fi
42
+ return
43
+ fi
44
+ COMPREPLY=("\${candidates[@]#"$typed"}")
45
+ }
46
+ complete -F _atk_completion atk
47
+ `;
48
+ // Sourced (eval), it registers itself with compdef; as an autoloaded \`_atk\` on fpath, it runs as the completer.
49
+ const ZSH = `#compdef atk
50
+ _atk() {
51
+ local -a candidates
52
+ candidates=("\${(@f)$(atk __complete $((CURRENT - 2)) "\${(@)words[2,CURRENT]}" 2>/dev/null)}")
53
+ if [[ "\${candidates[1]}" == ':files' ]]; then
54
+ _files
55
+ return
56
+ fi
57
+ candidates=(\${candidates:#})
58
+ (( \${#candidates} )) && compadd -- "\${candidates[@]}"
59
+ }
60
+ if [[ "\${funcstack[1]}" == "_atk" ]]; then
61
+ _atk "$@"
62
+ else
63
+ compdef _atk atk
64
+ fi
65
+ `;
66
+ // A name that starts with @ would splat a variable in PowerShell, so it completes quoted. Returning nothing on
67
+ // :files lets PowerShell complete paths.
68
+ const PWSH = `Register-ArgumentCompleter -Native -CommandName 'atk' -ScriptBlock {
69
+ param($wordToComplete, $commandAst, $cursorPosition)
70
+ $words = @()
71
+ foreach ($element in @($commandAst.CommandElements | Select-Object -Skip 1)) {
72
+ if ($element.Extent.StartOffset -ge $cursorPosition) { break }
73
+ if ($element -is [System.Management.Automation.Language.StringConstantExpressionAst]) {
74
+ $words += $element.Value
75
+ } else {
76
+ $words += $element.Extent.Text
77
+ }
78
+ }
79
+ $cword = if ($wordToComplete -eq '') { $words.Count } else { [Math]::Max(0, $words.Count - 1) }
80
+ if ($wordToComplete -ne '' -and $words.Count -gt 0) { $words[$cword] = $wordToComplete.Trim("'", '"') }
81
+ $candidates = @(& atk __complete $cword @words 2>$null)
82
+ if ($candidates.Count -eq 0 -or $candidates[0] -eq ':files') { return }
83
+ foreach ($candidate in $candidates) {
84
+ $text = if ($candidate -match '^@|[\\s''"\`$;,(){}]') { "'" + ($candidate -replace "'", "''") + "'" } else { $candidate }
85
+ [System.Management.Automation.CompletionResult]::new($text, $candidate, 'ParameterValue', $candidate)
86
+ }
87
+ }
88
+ `;
89
+ const BODY = { bash: BASH, pwsh: PWSH, zsh: ZSH };
90
+ /** The completion script for a shell, headed by a comment that says how to load it. */
91
+ export function completionScript(shell) {
92
+ const header = `# atk completion for ${shell}. Load it from ${PROFILE[shell]}:\n# ${SETUP[shell]}\n`;
93
+ // zsh's #compdef has to be the first line of an autoloaded file.
94
+ return shell === 'zsh' ? ZSH.replace('#compdef atk\n', `#compdef atk\n${header}`) : `${header}${BODY[shell]}`;
95
+ }
96
+ //# sourceMappingURL=scripts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../../src/lib/completion/scripts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAU,CAAC;AAIvD,oEAAoE;AACpE,MAAM,CAAC,MAAM,KAAK,GAA0B;IAC1C,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE,sDAAsD;IAC5D,GAAG,EAAE,8BAA8B;CACpC,CAAC;AAEF,MAAM,OAAO,GAA0B;IACrC,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,0BAA0B;CAChC,CAAC;AAEF,qHAAqH;AACrH,iHAAiH;AACjH,mHAAmH;AACnH,6FAA6F;AAC7F,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBZ,CAAC;AAEF,kHAAkH;AAClH,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;CAgBX,CAAC;AAEF,+GAA+G;AAC/G,yCAAyC;AACzC,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;CAoBZ,CAAC;AAEF,MAAM,IAAI,GAA0B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEzE,uFAAuF;AACvF,MAAM,UAAU,gBAAgB,CAAC,KAAY;IAC3C,MAAM,MAAM,GAAG,wBAAwB,KAAK,kBAAkB,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;IACvG,iEAAiE;IACjE,OAAO,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,iBAAiB,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AAChH,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import type { AssetType } from './schemas/index.js';
2
2
  import { type Config, type ProjectConfig, type ResolvedConfig } from './schemas/config.js';
3
- /** An asset named to `freezeAssetsInConfig` or `thawAssetsInConfig`. */
3
+ /** An asset named to `freezeAssetsInConfig` or `thawAssetsInConfig`; no org is the global entry. */
4
4
  export interface FrozenAssetSpec {
5
5
  name: string;
6
6
  org?: string;
7
- type?: AssetType;
7
+ type: AssetType;
8
8
  }
9
9
  /**
10
10
  * Freeze an asset by adding it to the `frozenAssets` of the scope at `projectDir` (the project's
@@ -16,9 +16,7 @@ export declare function freezeAssetInConfig(projectDir: string, name: string, ty
16
16
  * Freeze several assets in the scope at `projectDir` with one config write.
17
17
  * Assets already frozen with the same name, type, and org are left as they are; when every one is, nothing is written.
18
18
  */
19
- export declare function freezeAssetsInConfig(projectDir: string, assets: Array<FrozenAssetSpec & {
20
- type: AssetType;
21
- }>): Promise<void>;
19
+ export declare function freezeAssetsInConfig(projectDir: string, assets: FrozenAssetSpec[]): Promise<void>;
22
20
  /**
23
21
  * Get the path to the ATK cache directory (~/.atk/cache/).
24
22
  */
@@ -48,13 +46,14 @@ export declare function hasUserScopeSection(): Promise<boolean>;
48
46
  * Check whether an asset is frozen in the config of the scope at `projectDir`.
49
47
  * Loads the config from disk each time — for batch checks use `isFrozenInConfig` instead.
50
48
  */
51
- export declare function isAssetFrozen(projectDir: string, name: string, type?: AssetType, org?: string): Promise<boolean>;
49
+ export declare function isAssetFrozen(projectDir: string, name: string, type: AssetType, org?: string): Promise<boolean>;
52
50
  /**
53
- * Synchronous check whether an asset is frozen in a pre-loaded project config.
51
+ * Synchronous check whether an asset is frozen in a pre-loaded project config: an entry with
52
+ * this name, type and org (no org is the global entry, not any org's).
54
53
  * Useful for batch operations (sync, update, outdated) where loading config once
55
54
  * and checking many assets is more efficient.
56
55
  */
57
- export declare function isFrozenInConfig(config: null | ProjectConfig, name: string, type?: AssetType, org?: string): boolean;
56
+ export declare function isFrozenInConfig(config: null | ProjectConfig, name: string, type: AssetType, org?: string): boolean;
58
57
  /**
59
58
  * List all known config keys with their current values and defaults.
60
59
  */
@@ -109,12 +108,12 @@ export declare function saveUserScopeConfig(userRoot: string, config: ProjectCon
109
108
  export declare function setConfigValue(config: ResolvedConfig, key: string, value: string): ResolvedConfig;
110
109
  /**
111
110
  * Thaw an asset by removing it from the `frozenAssets` of the scope at `projectDir`.
112
- * Removes all entries matching the given name, and optionally type and org.
111
+ * Removes only the entry with this name, type and org (no org is the global entry).
113
112
  */
114
- export declare function thawAssetInConfig(projectDir: string, name: string, type?: AssetType, org?: string): Promise<void>;
113
+ export declare function thawAssetInConfig(projectDir: string, name: string, type: AssetType, org?: string): Promise<void>;
115
114
  /**
116
- * Thaw several assets in the scope at `projectDir` with one config write, removing the entries
117
- * each one matches as `thawAssetInConfig` does.
115
+ * Thaw several assets in the scope at `projectDir` with one config write, removing the entry
116
+ * each one names as `thawAssetInConfig` does.
118
117
  */
119
118
  export declare function thawAssetsInConfig(projectDir: string, assets: FrozenAssetSpec[]): Promise<void>;
120
119
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import { formatZodIssues, parseAndValidate } from './parse-json.js';
8
8
  import { isSamePath } from './same-path.js';
9
9
  import { ConfigSchema, DEFAULT_CONFIG, ProjectConfigBase, ProjectConfigSchema, } from './schemas/config.js';
10
10
  import { loadScopeConfig, saveScopeConfig, setupGuidance } from './scope.js';
11
+ import { cacheDirFor } from './user-paths.js';
11
12
  import { writeJsonFile } from './write-file.js';
12
13
  const ATKRC_FILENAME = '.atkrc.json';
13
14
  // ~/.atkrc.json is the user config, holds the user scope's `user` section, and is the config of a
@@ -38,10 +39,11 @@ export async function freezeAssetsInConfig(projectDir, assets) {
38
39
  }
39
40
  const frozenAssets = [...(config.frozenAssets ?? [])];
40
41
  let added = false;
41
- for (const { name, org, type } of assets) {
42
- if (frozenAssets.some((entry) => entry.name === name && entry.type === type && entry.org === org)) {
42
+ for (const asset of assets) {
43
+ if (frozenAssets.some((entry) => isSameFrozenAsset(entry, asset))) {
43
44
  continue;
44
45
  }
46
+ const { name, org, type } = asset;
45
47
  const entry = { name, type };
46
48
  if (org !== undefined) {
47
49
  entry.org = org;
@@ -61,7 +63,7 @@ export async function freezeAssetsInConfig(projectDir, assets) {
61
63
  * Get the path to the ATK cache directory (~/.atk/cache/).
62
64
  */
63
65
  export function getCacheDir(config) {
64
- return config?.cacheDir ?? join(homedir(), '.atk', 'cache');
66
+ return cacheDirFor(config?.cacheDir);
65
67
  }
66
68
  /**
67
69
  * Get the path to the user's config file (~/.atkrc.json).
@@ -109,7 +111,8 @@ export async function isAssetFrozen(projectDir, name, type, org) {
109
111
  return isFrozenInConfig(config, name, type, org);
110
112
  }
111
113
  /**
112
- * Synchronous check whether an asset is frozen in a pre-loaded project config.
114
+ * Synchronous check whether an asset is frozen in a pre-loaded project config: an entry with
115
+ * this name, type and org (no org is the global entry, not any org's).
113
116
  * Useful for batch operations (sync, update, outdated) where loading config once
114
117
  * and checking many assets is more efficient.
115
118
  */
@@ -117,7 +120,7 @@ export function isFrozenInConfig(config, name, type, org) {
117
120
  if (!config?.frozenAssets) {
118
121
  return false;
119
122
  }
120
- return config.frozenAssets.some((entry) => entry.name === name && (type === undefined || entry.type === type) && (org === undefined || entry.org === org));
123
+ return config.frozenAssets.some((entry) => isSameFrozenAsset(entry, { name, org, type }));
121
124
  }
122
125
  /**
123
126
  * List all known config keys with their current values and defaults.
@@ -266,14 +269,14 @@ export function setConfigValue(config, key, value) {
266
269
  }
267
270
  /**
268
271
  * Thaw an asset by removing it from the `frozenAssets` of the scope at `projectDir`.
269
- * Removes all entries matching the given name, and optionally type and org.
272
+ * Removes only the entry with this name, type and org (no org is the global entry).
270
273
  */
271
274
  export async function thawAssetInConfig(projectDir, name, type, org) {
272
275
  await thawAssetsInConfig(projectDir, [{ name, org, type }]);
273
276
  }
274
277
  /**
275
- * Thaw several assets in the scope at `projectDir` with one config write, removing the entries
276
- * each one matches as `thawAssetInConfig` does.
278
+ * Thaw several assets in the scope at `projectDir` with one config write, removing the entry
279
+ * each one names as `thawAssetInConfig` does.
277
280
  */
278
281
  export async function thawAssetsInConfig(projectDir, assets) {
279
282
  const config = await loadScopeConfig(projectDir);
@@ -281,9 +284,7 @@ export async function thawAssetsInConfig(projectDir, assets) {
281
284
  throw await noScopeConfigError(projectDir);
282
285
  }
283
286
  const frozenAssets = config.frozenAssets ?? [];
284
- const filtered = frozenAssets.filter((entry) => !assets.some(({ name, org, type }) => entry.name === name &&
285
- (type === undefined || entry.type === type) &&
286
- (org === undefined || entry.org === org)));
287
+ const filtered = frozenAssets.filter((entry) => !assets.some((asset) => isSameFrozenAsset(entry, asset)));
287
288
  await saveScopeConfig(projectDir, {
288
289
  ...config,
289
290
  frozenAssets: filtered,
@@ -307,6 +308,10 @@ export async function writeUserScopeSection(config, { dropLegacy }) {
307
308
  function isRecord(value) {
308
309
  return typeof value === 'object' && value !== null && !Array.isArray(value);
309
310
  }
311
+ /** Whether a frozen entry is this asset's: the same name, type and org. */
312
+ function isSameFrozenAsset(entry, asset) {
313
+ return entry.name === asset.name && entry.type === asset.type && entry.org === asset.org;
314
+ }
310
315
  /**
311
316
  * Merge a save's own keys into the existing .atkrc.json: keep the keys it doesn't own, drop the owned
312
317
  * keys it no longer sets, and update the rest in place so the key order (and a no-op save) is stable.
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}