@detergent-software/atk 9.3.0-dev.9 → 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.
- package/CHANGELOG.md +78 -0
- package/README.md +20 -0
- package/build/cli.js +11 -0
- package/build/cli.js.map +1 -1
- package/build/command-manifest.json +17 -0
- package/build/commands/cache.d.ts +1 -1
- package/build/commands/checkout.d.ts.map +1 -1
- package/build/commands/checkout.js +14 -1
- package/build/commands/checkout.js.map +1 -1
- package/build/commands/completion.d.ts +13 -0
- package/build/commands/completion.d.ts.map +1 -0
- package/build/commands/completion.js +22 -0
- package/build/commands/completion.js.map +1 -0
- package/build/commands/freeze.d.ts.map +1 -1
- package/build/commands/freeze.js +17 -10
- package/build/commands/freeze.js.map +1 -1
- package/build/commands/pin.d.ts.map +1 -1
- package/build/commands/pin.js +16 -10
- package/build/commands/pin.js.map +1 -1
- package/build/commands/schema.d.ts +2 -2
- package/build/commands/thaw.d.ts.map +1 -1
- package/build/commands/thaw.js +19 -12
- package/build/commands/thaw.js.map +1 -1
- package/build/commands/unpin.d.ts.map +1 -1
- package/build/commands/unpin.js +13 -9
- package/build/commands/unpin.js.map +1 -1
- package/build/lib/atk-api/index.d.ts +2 -2
- package/build/lib/atk-api/index.d.ts.map +1 -1
- package/build/lib/atk-api/index.js +1 -1
- package/build/lib/atk-api/index.js.map +1 -1
- package/build/lib/atk-api/web-routes.d.ts +23 -0
- package/build/lib/atk-api/web-routes.d.ts.map +1 -1
- package/build/lib/atk-api/web-routes.js +31 -0
- package/build/lib/atk-api/web-routes.js.map +1 -1
- package/build/lib/completion/candidates.d.ts +18 -0
- package/build/lib/completion/candidates.d.ts.map +1 -0
- package/build/lib/completion/candidates.js +281 -0
- package/build/lib/completion/candidates.js.map +1 -0
- package/build/lib/completion/scripts.d.ts +13 -0
- package/build/lib/completion/scripts.d.ts.map +1 -0
- package/build/lib/completion/scripts.js +96 -0
- package/build/lib/completion/scripts.js.map +1 -0
- package/build/lib/config.d.ts +11 -12
- package/build/lib/config.d.ts.map +1 -1
- package/build/lib/config.js +16 -11
- package/build/lib/config.js.map +1 -1
- package/build/lib/registry-change-json.d.ts +2 -2
- package/build/lib/registry.d.ts +3 -0
- package/build/lib/registry.d.ts.map +1 -1
- package/build/lib/registry.js +20 -6
- package/build/lib/registry.js.map +1 -1
- package/build/lib/schemas/adapter.d.ts +2 -2
- package/build/lib/scope.d.ts.map +1 -1
- package/build/lib/scope.js +2 -9
- package/build/lib/scope.js.map +1 -1
- package/build/lib/uninstaller.d.ts +7 -6
- package/build/lib/uninstaller.d.ts.map +1 -1
- package/build/lib/uninstaller.js +11 -55
- package/build/lib/uninstaller.js.map +1 -1
- package/build/lib/user-paths.d.ts +8 -0
- package/build/lib/user-paths.d.ts.map +1 -0
- package/build/lib/user-paths.js +24 -0
- package/build/lib/user-paths.js.map +1 -0
- 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"}
|
package/build/lib/config.d.ts
CHANGED
|
@@ -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
|
|
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:
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
117
|
-
* each one
|
|
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":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAKpD,OAAO,EACL,KAAK,MAAM,EAGX,KAAK,aAAa,EAGlB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
package/build/lib/config.js
CHANGED
|
@@ -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
|
|
42
|
-
if (frozenAssets.some((entry) => entry
|
|
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
|
|
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
|
|
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
|
|
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
|
|
276
|
-
* each one
|
|
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((
|
|
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.
|
package/build/lib/config.js.map
CHANGED
|
@@ -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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"}
|