filedist 0.31.0 → 0.34.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/README.md +301 -254
- package/dist/cli/actions/check.d.ts +5 -2
- package/dist/cli/actions/check.d.ts.map +1 -1
- package/dist/cli/actions/check.js +9 -3
- package/dist/cli/actions/check.js.map +1 -1
- package/dist/cli/actions/init.d.ts.map +1 -1
- package/dist/cli/actions/init.js +10 -3
- package/dist/cli/actions/init.js.map +1 -1
- package/dist/cli/actions/install.d.ts +7 -0
- package/dist/cli/actions/install.d.ts.map +1 -0
- package/dist/cli/actions/{extract.js → install.js} +15 -13
- package/dist/cli/actions/install.js.map +1 -0
- package/dist/cli/actions/list.d.ts +1 -1
- package/dist/cli/actions/list.d.ts.map +1 -1
- package/dist/cli/actions/list.js +4 -2
- package/dist/cli/actions/list.js.map +1 -1
- package/dist/cli/actions/remove.d.ts +20 -0
- package/dist/cli/actions/remove.d.ts.map +1 -0
- package/dist/cli/actions/remove.js +133 -0
- package/dist/cli/actions/remove.js.map +1 -0
- package/dist/cli/actions/update.d.ts +8 -0
- package/dist/cli/actions/update.d.ts.map +1 -0
- package/dist/cli/actions/update.js +40 -0
- package/dist/cli/actions/update.js.map +1 -0
- package/dist/cli/argv.d.ts +8 -5
- package/dist/cli/argv.d.ts.map +1 -1
- package/dist/cli/argv.js +40 -15
- package/dist/cli/argv.js.map +1 -1
- package/dist/cli/binpkg.d.ts +1 -12
- package/dist/cli/binpkg.d.ts.map +1 -1
- package/dist/cli/binpkg.js +65 -12
- package/dist/cli/binpkg.js.map +1 -1
- package/dist/cli/cli.d.ts.map +1 -1
- package/dist/cli/cli.js +80 -41
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/usage.d.ts.map +1 -1
- package/dist/cli/usage.js +65 -33
- package/dist/cli/usage.js.map +1 -1
- package/dist/fileset/check.d.ts +0 -1
- package/dist/fileset/check.d.ts.map +1 -1
- package/dist/fileset/check.js +7 -8
- package/dist/fileset/check.js.map +1 -1
- package/dist/fileset/constants.d.ts.map +1 -1
- package/dist/fileset/constants.js +3 -2
- package/dist/fileset/constants.js.map +1 -1
- package/dist/fileset/execute.d.ts.map +1 -1
- package/dist/fileset/execute.js +2 -1
- package/dist/fileset/execute.js.map +1 -1
- package/dist/fileset/gitignore.js +3 -3
- package/dist/fileset/gitignore.js.map +1 -1
- package/dist/fileset/markers.d.ts +1 -2
- package/dist/fileset/markers.d.ts.map +1 -1
- package/dist/fileset/markers.js +6 -14
- package/dist/fileset/markers.js.map +1 -1
- package/dist/fileset/test-utils.d.ts.map +1 -1
- package/dist/fileset/test-utils.js +2 -1
- package/dist/fileset/test-utils.js.map +1 -1
- package/dist/index.d.ts +9 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -5
- package/dist/index.js.map +1 -1
- package/dist/package/action-check.d.ts +19 -9
- package/dist/package/action-check.d.ts.map +1 -1
- package/dist/package/action-check.js +76 -32
- package/dist/package/action-check.js.map +1 -1
- package/dist/package/action-init.d.ts +6 -2
- package/dist/package/action-init.d.ts.map +1 -1
- package/dist/package/action-init.js +26 -15
- package/dist/package/action-init.js.map +1 -1
- package/dist/package/action-install.d.ts +22 -0
- package/dist/package/action-install.d.ts.map +1 -0
- package/dist/package/{action-extract.js → action-install.js} +205 -32
- package/dist/package/action-install.js.map +1 -0
- package/dist/package/action-list.d.ts +5 -2
- package/dist/package/action-list.d.ts.map +1 -1
- package/dist/package/action-list.js +5 -4
- package/dist/package/action-list.js.map +1 -1
- package/dist/package/action-remove.d.ts +65 -0
- package/dist/package/action-remove.d.ts.map +1 -0
- package/dist/package/action-remove.js +171 -0
- package/dist/package/action-remove.js.map +1 -0
- package/dist/package/action-update.d.ts +28 -0
- package/dist/package/action-update.d.ts.map +1 -0
- package/dist/package/action-update.js +45 -0
- package/dist/package/action-update.js.map +1 -0
- package/dist/package/calculate-diff.d.ts +1 -1
- package/dist/package/calculate-diff.d.ts.map +1 -1
- package/dist/package/calculate-diff.js +11 -13
- package/dist/package/calculate-diff.js.map +1 -1
- package/dist/package/config.d.ts +40 -27
- package/dist/package/config.d.ts.map +1 -1
- package/dist/package/config.js +164 -113
- package/dist/package/config.js.map +1 -1
- package/dist/package/index.d.ts +6 -4
- package/dist/package/index.d.ts.map +1 -1
- package/dist/package/index.js +7 -5
- package/dist/package/index.js.map +1 -1
- package/dist/package/lockfile.d.ts +69 -0
- package/dist/package/lockfile.d.ts.map +1 -0
- package/dist/package/lockfile.js +192 -0
- package/dist/package/lockfile.js.map +1 -0
- package/dist/package/resolve-files.d.ts +14 -0
- package/dist/package/resolve-files.d.ts.map +1 -1
- package/dist/package/resolve-files.js +5 -1
- package/dist/package/resolve-files.js.map +1 -1
- package/dist/package/source.d.ts +13 -0
- package/dist/package/source.d.ts.map +1 -1
- package/dist/package/source.js +32 -11
- package/dist/package/source.js.map +1 -1
- package/dist/package/symlinks.d.ts.map +1 -1
- package/dist/package/symlinks.js +8 -3
- package/dist/package/symlinks.js.map +1 -1
- package/dist/types.d.ts +7 -6
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -2
- package/dist/cli/actions/extract.d.ts +0 -7
- package/dist/cli/actions/extract.d.ts.map +0 -1
- package/dist/cli/actions/extract.js.map +0 -1
- package/dist/cli/actions/purge.d.ts +0 -6
- package/dist/cli/actions/purge.d.ts.map +0 -1
- package/dist/cli/actions/purge.js +0 -42
- package/dist/cli/actions/purge.js.map +0 -1
- package/dist/package/action-extract.d.ts +0 -20
- package/dist/package/action-extract.d.ts.map +0 -1
- package/dist/package/action-extract.js.map +0 -1
- package/dist/package/action-purge.d.ts +0 -19
- package/dist/package/action-purge.d.ts.map +0 -1
- package/dist/package/action-purge.js +0 -135
- package/dist/package/action-purge.js.map +0 -1
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import { FiledistConfig } from '../../types';
|
|
2
1
|
/**
|
|
3
2
|
* `check` CLI action handler.
|
|
3
|
+
*
|
|
4
|
+
* Always operates in frozen-lockfile mode: reads set definitions and pinned
|
|
5
|
+
* package versions from .filedist.lock. Fails if no lock file is found.
|
|
6
|
+
* The user configuration file is not used.
|
|
4
7
|
*/
|
|
5
|
-
export declare function runCheck(
|
|
8
|
+
export declare function runCheck(argv: string[], cwd: string, lockfilePath: string): Promise<void>;
|
|
6
9
|
//# sourceMappingURL=check.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/cli/actions/check.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/cli/actions/check.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B/F"}
|
|
@@ -1,24 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.runCheck = runCheck;
|
|
4
|
+
/* eslint-disable no-console */
|
|
4
5
|
const argv_1 = require("../argv");
|
|
5
6
|
const usage_1 = require("../usage");
|
|
6
7
|
const action_check_1 = require("../../package/action-check");
|
|
7
8
|
/**
|
|
8
9
|
* `check` CLI action handler.
|
|
10
|
+
*
|
|
11
|
+
* Always operates in frozen-lockfile mode: reads set definitions and pinned
|
|
12
|
+
* package versions from .filedist.lock. Fails if no lock file is found.
|
|
13
|
+
* The user configuration file is not used.
|
|
9
14
|
*/
|
|
10
|
-
async function runCheck(
|
|
15
|
+
async function runCheck(argv, cwd, lockfilePath) {
|
|
11
16
|
if (argv.includes('--help')) {
|
|
12
17
|
(0, usage_1.printUsage)('check');
|
|
13
18
|
return;
|
|
14
19
|
}
|
|
15
20
|
const parsed = (0, argv_1.parseArgv)(argv);
|
|
16
|
-
const entries = (0, argv_1.resolveEntriesFromConfigAndArgs)(config, argv);
|
|
17
21
|
const summary = await (0, action_check_1.actionCheck)({
|
|
18
|
-
entries,
|
|
22
|
+
entries: [],
|
|
19
23
|
cwd,
|
|
20
24
|
verbose: parsed.verbose,
|
|
25
|
+
lockfilePath,
|
|
21
26
|
localOnly: parsed.localOnly,
|
|
27
|
+
frozenLockfile: true,
|
|
22
28
|
});
|
|
23
29
|
const hasDrift = summary.missing.length > 0 || summary.conflict.length > 0 || summary.extra.length > 0;
|
|
24
30
|
if (hasDrift) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/cli/actions/check.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/cli/actions/check.ts"],"names":[],"mappings":";;AAYA,4BA4BC;AAxCD,+BAA+B;AAC/B,kCAAoC;AACpC,oCAAsC;AACtC,6DAAyD;AAEzD;;;;;;GAMG;AACI,KAAK,UAAU,QAAQ,CAAC,IAAc,EAAE,GAAW,EAAE,YAAoB;IAC9E,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,IAAA,kBAAU,EAAC,OAAO,CAAC,CAAC;QACpB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,CAAC;IAE/B,MAAM,OAAO,GAAG,MAAM,IAAA,0BAAW,EAAC;QAChC,OAAO,EAAE,EAAE;QACX,GAAG;QACH,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,YAAY;QACZ,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,cAAc,EAAE,IAAI;KACrB,CAAC,CAAC;IAEH,MAAM,QAAQ,GACZ,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAExF,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC9D,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ;YAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAChE,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/actions/init.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAK7C;;GAEG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/actions/init.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAK7C;;GAEG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
|
package/dist/cli/actions/init.js
CHANGED
|
@@ -19,12 +19,19 @@ async function runInit(config, argv, cwd) {
|
|
|
19
19
|
}
|
|
20
20
|
const parsed = (0, argv_1.parseArgv)(argv);
|
|
21
21
|
const outputDir = parsed.output ? node_path_1.default.resolve(cwd, parsed.output) : cwd;
|
|
22
|
-
const { verbose, files
|
|
22
|
+
const { verbose, files } = parsed;
|
|
23
|
+
// Parse --package-config: config filename to embed in the generated bin shim
|
|
24
|
+
const pkgConfigIdx = argv.indexOf('--package-config');
|
|
25
|
+
let baseConfigFile;
|
|
26
|
+
if (pkgConfigIdx !== -1 && pkgConfigIdx + 1 < argv.length) {
|
|
27
|
+
baseConfigFile = argv[pkgConfigIdx + 1];
|
|
28
|
+
}
|
|
23
29
|
const initConfig = {
|
|
24
30
|
files,
|
|
25
|
-
packages,
|
|
26
31
|
};
|
|
32
|
+
if (baseConfigFile)
|
|
33
|
+
initConfig.baseConfigFile = baseConfigFile;
|
|
27
34
|
await (0, action_init_1.actionInit)(outputDir, verbose ?? false, initConfig);
|
|
28
|
-
console.log('Init complete. Scaffolded package.json and bin/filedist.js.');
|
|
35
|
+
console.log('Init complete. Scaffolded package.json, .filedist-package.yml, and bin/filedist.js.');
|
|
29
36
|
}
|
|
30
37
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/actions/init.ts"],"names":[],"mappings":";;;;;AAWA,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/actions/init.ts"],"names":[],"mappings":";;;;;AAWA,0BA8BC;AAzCD,+BAA+B;AAC/B,0DAA6B;AAG7B,kCAAoC;AACpC,oCAAsC;AACtC,2DAAuD;AAEvD;;GAEG;AACI,KAAK,UAAU,OAAO,CAC3B,MAA6B,EAC7B,IAAc,EACd,GAAW;IAEX,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAC;QACnB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACzE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAElC,6EAA6E;IAC7E,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACtD,IAAI,cAAkC,CAAC;IACvC,IAAI,YAAY,KAAK,CAAC,CAAC,IAAI,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1D,cAAc,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,UAAU,GAAkD;QAChE,KAAK;KACN,CAAC;IACF,IAAI,cAAc;QAAE,UAAU,CAAC,cAAc,GAAG,cAAc,CAAC;IAE/D,MAAM,IAAA,wBAAU,EAAC,SAAS,EAAE,OAAO,IAAI,KAAK,EAAE,UAAU,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CACT,qFAAqF,CACtF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { FiledistConfig } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* `install` CLI action handler.
|
|
4
|
+
* Parses argv, merges with config, calls actionInstall, prints summary.
|
|
5
|
+
*/
|
|
6
|
+
export declare function runInstall(config: FiledistConfig | null, argv: string[], cwd: string, lockfilePath: string): Promise<void>;
|
|
7
|
+
//# sourceMappingURL=install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/actions/install.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAiB,MAAM,aAAa,CAAC;AA+B5D;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CA+Df"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/* eslint-disable no-console */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.
|
|
4
|
+
exports.runInstall = runInstall;
|
|
5
5
|
const argv_1 = require("../argv");
|
|
6
6
|
const usage_1 = require("../usage");
|
|
7
7
|
const progress_1 = require("../progress");
|
|
8
|
-
const
|
|
8
|
+
const action_install_1 = require("../../package/action-install");
|
|
9
9
|
const utils_1 = require("../../utils");
|
|
10
10
|
const POST_EXTRACT_CMD_EXAMPLE = '["node", "scripts/post-extract.js"]';
|
|
11
11
|
function resolvePostExtractCmd(postExtractCmd, argv) {
|
|
@@ -24,29 +24,31 @@ function resolvePostExtractCmd(postExtractCmd, argv) {
|
|
|
24
24
|
return { command, args, display };
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
|
-
* `
|
|
28
|
-
* Parses argv, merges with config, calls
|
|
27
|
+
* `install` CLI action handler.
|
|
28
|
+
* Parses argv, merges with config, calls actionInstall, prints summary.
|
|
29
29
|
*/
|
|
30
|
-
async function
|
|
30
|
+
async function runInstall(config, argv, cwd, lockfilePath) {
|
|
31
31
|
if (argv.includes('--help')) {
|
|
32
|
-
(0, usage_1.printUsage)('
|
|
32
|
+
(0, usage_1.printUsage)('install');
|
|
33
33
|
return;
|
|
34
34
|
}
|
|
35
35
|
const parsed = (0, argv_1.parseArgv)(argv);
|
|
36
36
|
const entries = (0, argv_1.resolveEntriesFromConfigAndArgs)(config, argv);
|
|
37
37
|
if (entries.length === 0) {
|
|
38
38
|
if (parsed.verbose) {
|
|
39
|
-
console.log('[verbose] No packages match the specified preset filter. Nothing to
|
|
39
|
+
console.log('[verbose] No packages match the specified preset filter. Nothing to install.');
|
|
40
40
|
}
|
|
41
41
|
return;
|
|
42
42
|
}
|
|
43
43
|
if (parsed.verbose) {
|
|
44
|
-
console.log(`[verbose] Running CLI
|
|
44
|
+
console.log(`[verbose] Running CLI install with entries: ${entries.map((e) => e.package + ' ' + JSON.stringify(e.selector)).join(', ')}`);
|
|
45
45
|
}
|
|
46
|
-
const result = await (0,
|
|
46
|
+
const result = await (0, action_install_1.actionInstall)({
|
|
47
47
|
entries,
|
|
48
48
|
cwd,
|
|
49
49
|
verbose: parsed.verbose,
|
|
50
|
+
lockfilePath,
|
|
51
|
+
frozenLockfile: parsed.frozenLockfile,
|
|
50
52
|
onProgress: (event) => {
|
|
51
53
|
if (entries[0]?.silent)
|
|
52
54
|
return;
|
|
@@ -69,14 +71,14 @@ async function runExtract(config, argv, cwd) {
|
|
|
69
71
|
if (!isDryRun && config?.postExtractCmd !== undefined) {
|
|
70
72
|
const command = resolvePostExtractCmd(config.postExtractCmd, argv);
|
|
71
73
|
if (parsed.verbose) {
|
|
72
|
-
console.log(`[verbose] Running post-
|
|
74
|
+
console.log(`[verbose] Running post-install command: ${command.display}`);
|
|
73
75
|
}
|
|
74
76
|
(0, utils_1.spawnWithLog)(command.command, command.args, cwd, parsed.verbose, true);
|
|
75
77
|
if (parsed.verbose) {
|
|
76
|
-
console.log(`[verbose] Post-
|
|
78
|
+
console.log(`[verbose] Post-install command completed successfully.`);
|
|
77
79
|
}
|
|
78
80
|
}
|
|
79
|
-
console.log(`
|
|
81
|
+
console.log(`Install complete: ${result.added} added, ${result.modified} modified, ` +
|
|
80
82
|
`${result.deleted} deleted, ${result.skipped} skipped.`);
|
|
81
83
|
}
|
|
82
|
-
//# sourceMappingURL=
|
|
84
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/actions/install.ts"],"names":[],"mappings":";AAAA,+BAA+B;;AAqC/B,gCAoEC;AAtGD,kCAAqE;AACrE,oCAAsC;AACtC,0CAAiD;AACjD,iEAA6D;AAC7D,uCAA2C;AAE3C,MAAM,wBAAwB,GAAG,qCAAqC,CAAC;AAEvE,SAAS,qBAAqB,CAC5B,cAAuB,EACvB,IAAc;IAEd,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC9F,MAAM,IAAI,KAAK,CACb,6DAA6D,wBAAwB,IAAI;YACvF,sEAAsE,CACzE,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,GAAG,cAAc,CAAC;IAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;SAC/B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAC9D,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACpC,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,UAAU,CAC9B,MAA6B,EAC7B,IAAc,EACd,GAAW,EACX,YAAoB;IAEpB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,IAAA,kBAAU,EAAC,SAAS,CAAC,CAAC;QACtB,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAA,sCAA+B,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE9D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CACT,+CAA+C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7H,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAa,EAAC;QACjC,OAAO;QACP,GAAG;QACH,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,YAAY;QACZ,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,UAAU,EAAE,CAAC,KAAoB,EAAE,EAAE;YACnC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM;gBAAE,OAAO;YAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;gBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAA,6BAAkB,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC;iBAC5E,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe;gBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAA,6BAAkB,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC;iBACpF,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;gBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAA,6BAAkB,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1F,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,uBAAuB,GAC3B,MACD,EAAE,iBAAiB,CAAC;IACrB,wCAAwC;IACxC,IAAI,uBAAuB,KAAK,SAAS,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,8EAA8E,wBAAwB,GAAG,CAC1G,CAAC;IACJ,CAAC;IAED,mDAAmD;IACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvD,wCAAwC;IACxC,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE,cAAc,KAAK,SAAS,EAAE,CAAC;QACtD,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QACnE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,2CAA2C,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,IAAA,oBAAY,EAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACvE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CACT,qBAAqB,MAAM,CAAC,KAAK,WAAW,MAAM,CAAC,QAAQ,aAAa;QACtE,GAAG,MAAM,CAAC,OAAO,aAAa,MAAM,CAAC,OAAO,WAAW,CAC1D,CAAC;AACJ,CAAC"}
|
|
@@ -3,5 +3,5 @@ import { FiledistConfig } from '../../types';
|
|
|
3
3
|
* `list` CLI action handler.
|
|
4
4
|
* Note: list always ignores --presets.
|
|
5
5
|
*/
|
|
6
|
-
export declare function runList(config: FiledistConfig | null, argv: string[], cwd: string): Promise<void>;
|
|
6
|
+
export declare function runList(config: FiledistConfig | null, argv: string[], cwd: string, lockfilePath: string): Promise<void>;
|
|
7
7
|
//# sourceMappingURL=list.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/cli/actions/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAK7C;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/cli/actions/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAK7C;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAsBf"}
|
package/dist/cli/actions/list.js
CHANGED
|
@@ -8,15 +8,17 @@ const action_list_1 = require("../../package/action-list");
|
|
|
8
8
|
* `list` CLI action handler.
|
|
9
9
|
* Note: list always ignores --presets.
|
|
10
10
|
*/
|
|
11
|
-
async function runList(config, argv, cwd) {
|
|
11
|
+
async function runList(config, argv, cwd, lockfilePath) {
|
|
12
12
|
if (argv.includes('--help')) {
|
|
13
13
|
(0, usage_1.printUsage)('list');
|
|
14
14
|
return;
|
|
15
15
|
}
|
|
16
16
|
const parsed = (0, argv_1.parseArgv)(argv);
|
|
17
|
-
const files =
|
|
17
|
+
const files = (0, action_list_1.actionList)({
|
|
18
|
+
cwd,
|
|
18
19
|
outputDir: parsed.output ?? cwd,
|
|
19
20
|
verbose: parsed.verbose,
|
|
21
|
+
lockfilePath,
|
|
20
22
|
});
|
|
21
23
|
if (files.length === 0) {
|
|
22
24
|
console.log('No managed files found');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/cli/actions/list.ts"],"names":[],"mappings":";;AAUA,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/cli/actions/list.ts"],"names":[],"mappings":";;AAUA,0BA2BC;AAnCD,kCAAoC;AACpC,oCAAsC;AACtC,2DAAuD;AAEvD;;;GAGG;AACI,KAAK,UAAU,OAAO,CAC3B,MAA6B,EAC7B,IAAc,EACd,GAAW,EACX,YAAoB;IAEpB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAC;QACnB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,CAAC;IAE/B,MAAM,KAAK,GAAG,IAAA,wBAAU,EAAC;QACvB,GAAG;QACH,SAAS,EAAE,MAAM,CAAC,MAAM,IAAI,GAAG;QAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,YAAY;KACb,CAAC,CAAC;IAEH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `remove` CLI action handler.
|
|
3
|
+
*
|
|
4
|
+
* Requires either a package name (positional argument) or the --all flag.
|
|
5
|
+
*
|
|
6
|
+
* When --all is given, removes every set entry from the config file and runs
|
|
7
|
+
* install with zero entries so all managed files are deleted and the lockfile
|
|
8
|
+
* is cleared.
|
|
9
|
+
*
|
|
10
|
+
* When a package name is given, removes matching entries from the config file
|
|
11
|
+
* (optionally filtered by --output, --presets), then runs a full install with
|
|
12
|
+
* the remaining entries so orphaned files are deleted and the lockfile is updated.
|
|
13
|
+
* Fails if no matching entry is found.
|
|
14
|
+
*
|
|
15
|
+
* Usage:
|
|
16
|
+
* filedist remove <package-name> [--output <path>] [--presets <tags>] [--dry-run] [--config <file>]
|
|
17
|
+
* filedist remove --all [--dry-run]
|
|
18
|
+
*/
|
|
19
|
+
export declare function runRemove(argv: string[], cwd: string, lockfilePath: string, configFilePath: string): Promise<void>;
|
|
20
|
+
//# sourceMappingURL=remove.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../src/cli/actions/remove.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CAwEf"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.runRemove = runRemove;
|
|
7
|
+
/* eslint-disable no-console */
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
const argv_1 = require("../argv");
|
|
10
|
+
const usage_1 = require("../usage");
|
|
11
|
+
const progress_1 = require("../progress");
|
|
12
|
+
const action_remove_1 = require("../../package/action-remove");
|
|
13
|
+
/**
|
|
14
|
+
* `remove` CLI action handler.
|
|
15
|
+
*
|
|
16
|
+
* Requires either a package name (positional argument) or the --all flag.
|
|
17
|
+
*
|
|
18
|
+
* When --all is given, removes every set entry from the config file and runs
|
|
19
|
+
* install with zero entries so all managed files are deleted and the lockfile
|
|
20
|
+
* is cleared.
|
|
21
|
+
*
|
|
22
|
+
* When a package name is given, removes matching entries from the config file
|
|
23
|
+
* (optionally filtered by --output, --presets), then runs a full install with
|
|
24
|
+
* the remaining entries so orphaned files are deleted and the lockfile is updated.
|
|
25
|
+
* Fails if no matching entry is found.
|
|
26
|
+
*
|
|
27
|
+
* Usage:
|
|
28
|
+
* filedist remove <package-name> [--output <path>] [--presets <tags>] [--dry-run] [--config <file>]
|
|
29
|
+
* filedist remove --all [--dry-run]
|
|
30
|
+
*/
|
|
31
|
+
async function runRemove(argv, cwd, lockfilePath, configFilePath) {
|
|
32
|
+
if (argv.includes('--help')) {
|
|
33
|
+
(0, usage_1.printUsage)('remove');
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const parsed = (0, argv_1.parseArgv)(argv);
|
|
37
|
+
// Extract positional package name — first arg that is not a flag or flag value.
|
|
38
|
+
const packageSpec = extractPackageSpec(argv) ?? parsed.package;
|
|
39
|
+
if (!packageSpec && !parsed.all) {
|
|
40
|
+
console.error('filedist remove: requires a <package> argument or the --all flag.\n' +
|
|
41
|
+
'Usage:\n' +
|
|
42
|
+
' filedist remove <package> [--output <path>] [--presets <tags>]\n' +
|
|
43
|
+
' filedist remove --all');
|
|
44
|
+
process.exitCode = 1;
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
// Resolve config file path: --config flag takes precedence, then auto-discovered path
|
|
48
|
+
const resolvedConfigFilePath = parsed.configFile
|
|
49
|
+
? node_path_1.default.resolve(cwd, parsed.configFile)
|
|
50
|
+
: configFilePath;
|
|
51
|
+
if (parsed.all && !packageSpec) {
|
|
52
|
+
const summary = await (0, action_remove_1.actionRemove)({
|
|
53
|
+
all: true,
|
|
54
|
+
cwd,
|
|
55
|
+
lockfilePath,
|
|
56
|
+
configFilePath: resolvedConfigFilePath,
|
|
57
|
+
dryRun: parsed.dryRun,
|
|
58
|
+
verbose: parsed.verbose,
|
|
59
|
+
onProgress: (event) => {
|
|
60
|
+
if (parsed.silent)
|
|
61
|
+
return;
|
|
62
|
+
if (event.type === 'file-deleted')
|
|
63
|
+
console.log(` - ${(0, progress_1.formatProgressFile)(event)}`);
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
console.log(`Remove complete: ${summary.removedEntries} config entries removed, ` +
|
|
67
|
+
`${summary.install.added} added, ${summary.install.modified} modified, ` +
|
|
68
|
+
`${summary.install.deleted} deleted.`);
|
|
69
|
+
if (summary.lockfileDeleted)
|
|
70
|
+
console.log('Lock file deleted.');
|
|
71
|
+
if (summary.configFileDeleted)
|
|
72
|
+
console.log('Config file deleted.');
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const summary = await (0, action_remove_1.actionRemove)({
|
|
76
|
+
cwd,
|
|
77
|
+
packageSpec,
|
|
78
|
+
outputPath: parsed.output,
|
|
79
|
+
presets: parsed.presets,
|
|
80
|
+
lockfilePath,
|
|
81
|
+
configFilePath: resolvedConfigFilePath,
|
|
82
|
+
dryRun: parsed.dryRun,
|
|
83
|
+
verbose: parsed.verbose,
|
|
84
|
+
onProgress: (event) => {
|
|
85
|
+
if (parsed.silent)
|
|
86
|
+
return;
|
|
87
|
+
if (event.type === 'file-added')
|
|
88
|
+
console.log(` + ${(0, progress_1.formatProgressFile)(event)}`);
|
|
89
|
+
else if (event.type === 'file-modified')
|
|
90
|
+
console.log(` ~ ${(0, progress_1.formatProgressFile)(event)}`);
|
|
91
|
+
else if (event.type === 'file-deleted')
|
|
92
|
+
console.log(` - ${(0, progress_1.formatProgressFile)(event)}`);
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
console.log(`Remove complete: ${summary.removedEntries} config entries removed, ` +
|
|
96
|
+
`${summary.install.added} added, ${summary.install.modified} modified, ` +
|
|
97
|
+
`${summary.install.deleted} deleted.`);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Extract the first positional argument from an argv array, skipping flags and
|
|
101
|
+
* their values.
|
|
102
|
+
*
|
|
103
|
+
* Flags that consume the next token (known value flags) are handled so their
|
|
104
|
+
* values are not mistakenly treated as the package name.
|
|
105
|
+
*/
|
|
106
|
+
function extractPackageSpec(argv) {
|
|
107
|
+
const valueFlags = new Set([
|
|
108
|
+
'--output',
|
|
109
|
+
'-o',
|
|
110
|
+
'--files',
|
|
111
|
+
'--exclude',
|
|
112
|
+
'--content-regex',
|
|
113
|
+
'--presets',
|
|
114
|
+
'--config',
|
|
115
|
+
'--packages',
|
|
116
|
+
]);
|
|
117
|
+
let i = 0;
|
|
118
|
+
while (i < argv.length) {
|
|
119
|
+
const arg = argv[i];
|
|
120
|
+
if (valueFlags.has(arg)) {
|
|
121
|
+
i += 2; // skip flag and its value
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
if (arg.startsWith('-')) {
|
|
125
|
+
i += 1; // skip boolean flag
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
return arg; // first non-flag positional argument
|
|
129
|
+
}
|
|
130
|
+
// eslint-disable-next-line no-undefined
|
|
131
|
+
return undefined;
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=remove.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/cli/actions/remove.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `update` CLI action handler.
|
|
3
|
+
*
|
|
4
|
+
* Reads set definitions from .filedist.lock, bumps all packages to their
|
|
5
|
+
* latest available versions, runs a full install and writes an updated lockfile.
|
|
6
|
+
*/
|
|
7
|
+
export declare function runUpdate(argv: string[], cwd: string, lockfilePath: string): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/cli/actions/update.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBhG"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable no-console */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.runUpdate = runUpdate;
|
|
5
|
+
const argv_1 = require("../argv");
|
|
6
|
+
const usage_1 = require("../usage");
|
|
7
|
+
const progress_1 = require("../progress");
|
|
8
|
+
const action_update_1 = require("../../package/action-update");
|
|
9
|
+
/**
|
|
10
|
+
* `update` CLI action handler.
|
|
11
|
+
*
|
|
12
|
+
* Reads set definitions from .filedist.lock, bumps all packages to their
|
|
13
|
+
* latest available versions, runs a full install and writes an updated lockfile.
|
|
14
|
+
*/
|
|
15
|
+
async function runUpdate(argv, cwd, lockfilePath) {
|
|
16
|
+
if (argv.includes('--help')) {
|
|
17
|
+
(0, usage_1.printUsage)('update');
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const parsed = (0, argv_1.parseArgv)(argv);
|
|
21
|
+
const result = await (0, action_update_1.actionUpdate)({
|
|
22
|
+
cwd,
|
|
23
|
+
verbose: parsed.verbose,
|
|
24
|
+
dryRun: parsed.dryRun,
|
|
25
|
+
lockfilePath,
|
|
26
|
+
onProgress: (event) => {
|
|
27
|
+
if (parsed.silent)
|
|
28
|
+
return;
|
|
29
|
+
if (event.type === 'file-added')
|
|
30
|
+
console.log(` + ${(0, progress_1.formatProgressFile)(event)}`);
|
|
31
|
+
else if (event.type === 'file-modified')
|
|
32
|
+
console.log(` ~ ${(0, progress_1.formatProgressFile)(event)}`);
|
|
33
|
+
else if (event.type === 'file-deleted')
|
|
34
|
+
console.log(` - ${(0, progress_1.formatProgressFile)(event)}`);
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
console.log(`Update complete: ${result.added} added, ${result.modified} modified, ` +
|
|
38
|
+
`${result.deleted} deleted, ${result.skipped} skipped.`);
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/actions/update.ts"],"names":[],"mappings":";AAAA,+BAA+B;;AAc/B,8BAyBC;AApCD,kCAAoC;AACpC,oCAAsC;AACtC,0CAAiD;AACjD,+DAA2D;AAE3D;;;;;GAKG;AACI,KAAK,UAAU,SAAS,CAAC,IAAc,EAAE,GAAW,EAAE,YAAoB;IAC/E,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,IAAA,kBAAU,EAAC,QAAQ,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,CAAC;IAE/B,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAY,EAAC;QAChC,GAAG;QACH,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,YAAY;QACZ,UAAU,EAAE,CAAC,KAAoB,EAAE,EAAE;YACnC,IAAI,MAAM,CAAC,MAAM;gBAAE,OAAO;YAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;gBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAA,6BAAkB,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC;iBAC5E,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe;gBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAA,6BAAkB,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC;iBACpF,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;gBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAA,6BAAkB,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1F,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CACT,oBAAoB,MAAM,CAAC,KAAK,WAAW,MAAM,CAAC,QAAQ,aAAa;QACrE,GAAG,MAAM,CAAC,OAAO,aAAa,MAAM,CAAC,OAAO,WAAW,CAC1D,CAAC;AACJ,CAAC"}
|
package/dist/cli/argv.d.ts
CHANGED
|
@@ -8,7 +8,8 @@ export type FiledistCliConfig = FiledistConfig & {
|
|
|
8
8
|
* defaults are applied downstream in the library.
|
|
9
9
|
*/
|
|
10
10
|
export type ParsedArgv = {
|
|
11
|
-
|
|
11
|
+
/** Positional package spec: filedist install <package_definition> */
|
|
12
|
+
package?: string;
|
|
12
13
|
output?: string;
|
|
13
14
|
files?: string[];
|
|
14
15
|
exclude?: string[];
|
|
@@ -28,10 +29,12 @@ export type ParsedArgv = {
|
|
|
28
29
|
upgrade?: boolean;
|
|
29
30
|
silent?: boolean;
|
|
30
31
|
verbose?: boolean;
|
|
31
|
-
/** --no-save: skip saving config to .
|
|
32
|
+
/** --no-save: skip saving config to .filedist.yml */
|
|
32
33
|
ignoreConfig?: boolean;
|
|
33
34
|
/** --local-only: skip package installs/git clones; verify only against .filedist markers */
|
|
34
35
|
localOnly?: boolean;
|
|
36
|
+
/** --frozen-lockfile: use .filedist.lock exclusively; fail if lock file is missing */
|
|
37
|
+
frozenLockfile?: boolean;
|
|
35
38
|
};
|
|
36
39
|
export declare function resolveEffectivePresets(parsed: ParsedArgv, config?: FiledistCliConfig | null): string[];
|
|
37
40
|
/**
|
|
@@ -40,8 +43,8 @@ export declare function resolveEffectivePresets(parsed: ParsedArgv, config?: Fil
|
|
|
40
43
|
*/
|
|
41
44
|
export declare function parseArgv(argv: string[]): ParsedArgv;
|
|
42
45
|
/**
|
|
43
|
-
* Build FiledistExtractEntry
|
|
44
|
-
* Returns null if
|
|
46
|
+
* Build a FiledistExtractEntry from the positional package arg + CLI flags.
|
|
47
|
+
* Returns null if no positional package arg is present.
|
|
45
48
|
*/
|
|
46
49
|
export declare function buildEntriesFromArgv(parsed: ParsedArgv, presets?: string[]): FiledistExtractEntry[] | null;
|
|
47
50
|
/**
|
|
@@ -51,7 +54,7 @@ export declare function buildEntriesFromArgv(parsed: ParsedArgv, presets?: strin
|
|
|
51
54
|
export declare function applyArgvOverrides(entries: FiledistExtractEntry[], parsed: ParsedArgv): FiledistExtractEntry[];
|
|
52
55
|
/**
|
|
53
56
|
* Build and preset-filter extract entries from parsed CLI args and/or config.
|
|
54
|
-
* When
|
|
57
|
+
* When a positional package arg is provided, one entry is built from CLI flags.
|
|
55
58
|
* Otherwise, entries come from the config sets with CLI overrides applied.
|
|
56
59
|
* Results are filtered by any requested --presets.
|
|
57
60
|
* Throws if no packages are configured.
|
package/dist/cli/argv.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argv.d.ts","sourceRoot":"","sources":["../../src/cli/argv.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAgC,MAAM,UAAU,CAAC;AAG9F,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG;IAC/C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,
|
|
1
|
+
{"version":3,"file":"argv.d.ts","sourceRoot":"","sources":["../../src/cli/argv.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAgC,MAAM,UAAU,CAAC;AAG9F,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG;IAC/C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qCAAqC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qDAAqD;IACrD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sFAAsF;IACtF,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,UAAU,EAClB,MAAM,CAAC,EAAE,iBAAiB,GAAG,IAAI,GAChC,MAAM,EAAE,CAMV;AA0BD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAwFpD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE,MAAM,EAAyB,GACvC,oBAAoB,EAAE,GAAG,IAAI,CAsB/B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,oBAAoB,EAAE,EAC/B,MAAM,EAAE,UAAU,GACjB,oBAAoB,EAAE,CA8BxB;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,IAAI,EAAE,MAAM,EAAE,GACb,oBAAoB,EAAE,CAiBxB"}
|
package/dist/cli/argv.js
CHANGED
|
@@ -75,7 +75,29 @@ function parseArgv(argv) {
|
|
|
75
75
|
if (force === true && mutable === true) {
|
|
76
76
|
throw new Error('--force and --mutable are mutually exclusive');
|
|
77
77
|
}
|
|
78
|
-
|
|
78
|
+
// Positional package arg: first element that does not start with '-' and is
|
|
79
|
+
// not the value of a known flag-with-value (--output, --files, --exclude,
|
|
80
|
+
// --content-regex, --presets, --config).
|
|
81
|
+
const flagsWithValue = new Set([
|
|
82
|
+
'--output',
|
|
83
|
+
'-o',
|
|
84
|
+
'--files',
|
|
85
|
+
'--exclude',
|
|
86
|
+
'--content-regex',
|
|
87
|
+
'--presets',
|
|
88
|
+
'--config',
|
|
89
|
+
]);
|
|
90
|
+
let positionalPkg;
|
|
91
|
+
for (let i = 0; i < argv.length; i++) {
|
|
92
|
+
if (argv[i].startsWith('-')) {
|
|
93
|
+
if (flagsWithValue.has(argv[i]))
|
|
94
|
+
i++; // skip the value following the flag
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
positionalPkg = argv[i];
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
79
101
|
const all = getBoolFlag('--all');
|
|
80
102
|
const presets = getCommaSplit('--presets');
|
|
81
103
|
if (all === true && presets && presets.length > 0) {
|
|
@@ -83,7 +105,7 @@ function parseArgv(argv) {
|
|
|
83
105
|
}
|
|
84
106
|
const verboseFlag = getBoolFlag('--verbose');
|
|
85
107
|
return {
|
|
86
|
-
|
|
108
|
+
package: positionalPkg,
|
|
87
109
|
output: getValue('--output', '-o'),
|
|
88
110
|
files: getCommaSplit('--files'),
|
|
89
111
|
exclude: getCommaSplit('--exclude'),
|
|
@@ -102,30 +124,33 @@ function parseArgv(argv) {
|
|
|
102
124
|
verbose: argv.includes('-v') ? true : verboseFlag,
|
|
103
125
|
ignoreConfig: getBoolFlag('--no-save'),
|
|
104
126
|
localOnly: getBoolFlag('--local-only'),
|
|
127
|
+
frozenLockfile: getBoolFlag('--frozen-lockfile'),
|
|
105
128
|
};
|
|
106
129
|
}
|
|
107
130
|
/**
|
|
108
|
-
* Build FiledistExtractEntry
|
|
109
|
-
* Returns null if
|
|
131
|
+
* Build a FiledistExtractEntry from the positional package arg + CLI flags.
|
|
132
|
+
* Returns null if no positional package arg is present.
|
|
110
133
|
*/
|
|
111
134
|
function buildEntriesFromArgv(parsed, presets = parsed.presets ?? []) {
|
|
112
|
-
if (!parsed.
|
|
135
|
+
if (!parsed.package) {
|
|
113
136
|
// eslint-disable-next-line unicorn/no-null
|
|
114
137
|
return null;
|
|
115
138
|
}
|
|
116
|
-
// In
|
|
139
|
+
// In positional-package mode there is no entry-level presets tag, so we place
|
|
117
140
|
// --presets into selector.presets. filterEntriesByPresets checks both fields,
|
|
118
141
|
// which keeps --presets filtering working in this mode.
|
|
119
142
|
// selector.presets is also forwarded to the target package's nested set extraction.
|
|
120
143
|
const selector = buildSelectorFromArgv(parsed, presets);
|
|
121
144
|
const output = buildOutputFromArgv(parsed);
|
|
122
|
-
return
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
145
|
+
return [
|
|
146
|
+
{
|
|
147
|
+
package: parsed.package,
|
|
148
|
+
output,
|
|
149
|
+
selector,
|
|
150
|
+
...(parsed.silent !== undefined ? { silent: parsed.silent } : {}),
|
|
151
|
+
...(parsed.verbose !== undefined ? { verbose: parsed.verbose } : {}),
|
|
152
|
+
},
|
|
153
|
+
];
|
|
129
154
|
}
|
|
130
155
|
/**
|
|
131
156
|
* Apply CLI overrides from ParsedArgv to each FiledistExtractEntry.
|
|
@@ -161,7 +186,7 @@ function applyArgvOverrides(entries, parsed) {
|
|
|
161
186
|
}
|
|
162
187
|
/**
|
|
163
188
|
* Build and preset-filter extract entries from parsed CLI args and/or config.
|
|
164
|
-
* When
|
|
189
|
+
* When a positional package arg is provided, one entry is built from CLI flags.
|
|
165
190
|
* Otherwise, entries come from the config sets with CLI overrides applied.
|
|
166
191
|
* Results are filtered by any requested --presets.
|
|
167
192
|
* Throws if no packages are configured.
|
|
@@ -172,7 +197,7 @@ function resolveEntriesFromConfigAndArgs(config, argv) {
|
|
|
172
197
|
let entries = buildEntriesFromArgv(parsed, effectivePresets);
|
|
173
198
|
if (!entries) {
|
|
174
199
|
if (!config || config.sets.length === 0) {
|
|
175
|
-
throw new Error(`No packages specified. Use
|
|
200
|
+
throw new Error(`No packages specified. Use 'filedist install <package>' or a config file with sets.`);
|
|
176
201
|
}
|
|
177
202
|
entries = applyArgvOverrides(config.sets, parsed);
|
|
178
203
|
}
|