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
|
@@ -7,19 +7,26 @@ exports.actionInit = actionInit;
|
|
|
7
7
|
/* eslint-disable no-console */
|
|
8
8
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
9
9
|
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
10
11
|
const detect_1 = require("package-manager-detector/detect");
|
|
11
12
|
const commands_1 = require("package-manager-detector/commands");
|
|
12
13
|
const utils_1 = require("../utils");
|
|
14
|
+
const config_1 = require("./config");
|
|
13
15
|
/**
|
|
14
16
|
* Scaffold or update a publishable npm data package.
|
|
15
17
|
* If package.json already exists, updates it in place.
|
|
16
18
|
* Creates bin/filedist.js if it does not already exist.
|
|
19
|
+
* Writes .filedist-package.yml with the sets configuration.
|
|
17
20
|
*/
|
|
18
21
|
async function actionInit(outputDir, verbose, config) {
|
|
19
22
|
const pkgJsonPath = node_path_1.default.join(outputDir, 'package.json');
|
|
20
23
|
const binDir = node_path_1.default.join(outputDir, 'bin');
|
|
21
24
|
const binPath = node_path_1.default.join(binDir, 'filedist.js');
|
|
22
|
-
const
|
|
25
|
+
const packageConfigPath = node_path_1.default.join(outputDir, config_1.PACKAGE_CONFIG_FILENAME);
|
|
26
|
+
const baseConfigFileArg = config?.baseConfigFile;
|
|
27
|
+
const binShim = baseConfigFileArg
|
|
28
|
+
? `#!/usr/bin/env node\n'use strict';\nrequire('filedist').binpkg(__dirname, process.argv.slice(2), ${JSON.stringify(baseConfigFileArg)});\n`
|
|
29
|
+
: `#!/usr/bin/env node\n'use strict';\nrequire('filedist').binpkg(__dirname, process.argv.slice(2));\n`;
|
|
23
30
|
node_fs_1.default.mkdirSync(outputDir, { recursive: true });
|
|
24
31
|
// Read existing package.json or create a new skeleton
|
|
25
32
|
let pkgJson;
|
|
@@ -36,26 +43,29 @@ async function actionInit(outputDir, verbose, config) {
|
|
|
36
43
|
};
|
|
37
44
|
}
|
|
38
45
|
const filePatterns = config?.files ?? [];
|
|
39
|
-
const externalPackages = config?.packages ?? [];
|
|
40
46
|
// Set bin entry
|
|
41
47
|
pkgJson.bin = 'bin/filedist.js';
|
|
42
|
-
// Update npm files list to include data patterns and the
|
|
43
|
-
const npmFiles = new Set([
|
|
48
|
+
// Update npm files list to include data patterns, the bin shim, and the package config
|
|
49
|
+
const npmFiles = new Set([
|
|
50
|
+
...filePatterns,
|
|
51
|
+
'package.json',
|
|
52
|
+
'bin/filedist.js',
|
|
53
|
+
config_1.PACKAGE_CONFIG_FILENAME,
|
|
54
|
+
]);
|
|
44
55
|
pkgJson.files = Array.from(npmFiles);
|
|
45
|
-
//
|
|
56
|
+
// Remove legacy filedist field if present (config now lives in .filedist-package.yml)
|
|
57
|
+
delete pkgJson.filedist;
|
|
58
|
+
// Write updated package.json (dependencies are managed by the `add` command below)
|
|
59
|
+
// eslint-disable-next-line unicorn/no-null
|
|
60
|
+
node_fs_1.default.writeFileSync(pkgJsonPath, `${JSON.stringify(pkgJson, null, 2)}\n`, 'utf8');
|
|
61
|
+
// Build filedist sets: self entry only (local files). Additional upstream packages
|
|
62
|
+
// must be added manually to .filedist-package.yml.
|
|
46
63
|
const selfEntry = {
|
|
47
64
|
output: { path: '.' },
|
|
48
65
|
...(filePatterns.length > 0 ? { selector: { files: filePatterns } } : {}),
|
|
49
66
|
};
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
output: { path: '.' },
|
|
53
|
-
...(filePatterns.length > 0 ? { selector: { files: filePatterns } } : {}),
|
|
54
|
-
}));
|
|
55
|
-
pkgJson.filedist = { sets: [selfEntry, ...externalEntries] };
|
|
56
|
-
// Write updated package.json (dependencies are managed by the `add` command below)
|
|
57
|
-
// eslint-disable-next-line unicorn/no-null
|
|
58
|
-
node_fs_1.default.writeFileSync(pkgJsonPath, `${JSON.stringify(pkgJson, null, 2)}\n`, 'utf8');
|
|
67
|
+
const packageConfigData = { sets: [selfEntry] };
|
|
68
|
+
node_fs_1.default.writeFileSync(packageConfigPath, js_yaml_1.default.dump(packageConfigData, { indent: 2 }), 'utf8');
|
|
59
69
|
// Create bin/filedist.js only if it does not already exist
|
|
60
70
|
if (!node_fs_1.default.existsSync(binPath)) {
|
|
61
71
|
node_fs_1.default.mkdirSync(binDir, { recursive: true });
|
|
@@ -66,13 +76,14 @@ async function actionInit(outputDir, verbose, config) {
|
|
|
66
76
|
// and package.json dependencies are updated with the correct resolved versions.
|
|
67
77
|
const detected = await (0, detect_1.detect)({ cwd: outputDir });
|
|
68
78
|
const agent = detected?.agent ?? 'npm';
|
|
69
|
-
const packagesToAdd = ['filedist'
|
|
79
|
+
const packagesToAdd = ['filedist'];
|
|
70
80
|
const addResolved = (0, commands_1.resolveCommand)(agent, 'add', packagesToAdd);
|
|
71
81
|
if (addResolved) {
|
|
72
82
|
(0, utils_1.spawnWithLog)(addResolved.command, addResolved.args, outputDir, verbose, true);
|
|
73
83
|
}
|
|
74
84
|
if (verbose) {
|
|
75
85
|
console.log(`Updated: ${pkgJsonPath}`);
|
|
86
|
+
console.log(`Written: ${packageConfigPath}`);
|
|
76
87
|
console.log(`Created: ${binPath}`);
|
|
77
88
|
}
|
|
78
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-init.js","sourceRoot":"","sources":["../../src/package/action-init.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"action-init.js","sourceRoot":"","sources":["../../src/package/action-init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ProgressEvent, BasicPackageOptions } from '../types';
|
|
2
|
+
export type InstallOptions = BasicPackageOptions & {
|
|
3
|
+
onProgress?: (event: ProgressEvent) => void;
|
|
4
|
+
/**
|
|
5
|
+
* Absolute path to the lock file. Derived from the config file path via getLockfilePath().
|
|
6
|
+
*/
|
|
7
|
+
lockfilePath: string;
|
|
8
|
+
/**
|
|
9
|
+
* When true, read the lock file and use it to pin package versions.
|
|
10
|
+
* Fails if no lock file is found. Does not update the lock file.
|
|
11
|
+
* When false (default), resolve normally and write/update the lock file.
|
|
12
|
+
*/
|
|
13
|
+
frozenLockfile?: boolean;
|
|
14
|
+
};
|
|
15
|
+
export type InstallResult = {
|
|
16
|
+
added: number;
|
|
17
|
+
modified: number;
|
|
18
|
+
deleted: number;
|
|
19
|
+
skipped: number;
|
|
20
|
+
};
|
|
21
|
+
export declare function actionInstall(options: InstallOptions): Promise<InstallResult>;
|
|
22
|
+
//# sourceMappingURL=action-install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-install.d.ts","sourceRoot":"","sources":["../../src/package/action-install.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,aAAa,EACb,mBAAmB,EAEpB,MAAM,UAAU,CAAC;AA8BlB,MAAM,MAAM,cAAc,GAAG,mBAAmB,GAAG;IACjD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC5C;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAkCF,wBAAsB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAkWnF"}
|
|
@@ -3,31 +3,89 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.actionInstall = actionInstall;
|
|
7
7
|
/* eslint-disable no-console */
|
|
8
8
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
9
9
|
const node_path_1 = __importDefault(require("node:path"));
|
|
10
10
|
const utils_1 = require("../utils");
|
|
11
|
-
const markers_1 = require("../fileset/markers");
|
|
12
11
|
const gitignore_1 = require("../fileset/gitignore");
|
|
13
12
|
const symlinks_1 = require("./symlinks");
|
|
14
13
|
const content_replacements_1 = require("./content-replacements");
|
|
15
14
|
const resolve_files_1 = require("./resolve-files");
|
|
16
15
|
const calculate_diff_1 = require("./calculate-diff");
|
|
17
16
|
const source_1 = require("./source");
|
|
17
|
+
const lockfile_1 = require("./lockfile");
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* Install managed files into the output directories.
|
|
20
20
|
*
|
|
21
21
|
* Two-phase approach:
|
|
22
22
|
* 1. resolveFiles — installs packages and builds the complete desired file list.
|
|
23
23
|
* 2. calculateDiff — compares desired files against each output directory.
|
|
24
24
|
* 3. Apply disk changes: delete extra, add missing, resolve conflicts.
|
|
25
|
+
*
|
|
26
|
+
* Lock file behaviour:
|
|
27
|
+
* - Without frozenLockfile: resolve with latest package versions,
|
|
28
|
+
* then write/update .filedist.lock (packages + sets + managed files).
|
|
29
|
+
* - With frozenLockfile: read .filedist.lock (error if missing), use pinned versions
|
|
30
|
+
* and set definitions from lockfile, validate that the resolved managed-files list
|
|
31
|
+
* matches the lockfile — fail on any difference.
|
|
25
32
|
*/
|
|
33
|
+
function mergePackagesFromLockfile(cwd, relevantPackagesByOutputDir, managedFiles) {
|
|
34
|
+
for (const [relKey, lines] of Object.entries(managedFiles)) {
|
|
35
|
+
const outputDir = node_path_1.default.resolve(cwd, relKey);
|
|
36
|
+
const existing = relevantPackagesByOutputDir.get(outputDir) ?? new Set();
|
|
37
|
+
for (const line of lines) {
|
|
38
|
+
const pkg = line.split('|')[1];
|
|
39
|
+
if (pkg)
|
|
40
|
+
existing.add(pkg);
|
|
41
|
+
}
|
|
42
|
+
relevantPackagesByOutputDir.set(outputDir, existing);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
26
45
|
// eslint-disable-next-line complexity
|
|
27
|
-
async function
|
|
28
|
-
const {
|
|
29
|
-
const
|
|
46
|
+
async function actionInstall(options) {
|
|
47
|
+
const { cwd, verbose = false, onProgress, dryRun, entries: configEntries } = options;
|
|
48
|
+
const frozenLockfile = options.frozenLockfile ?? false;
|
|
49
|
+
const { lockfilePath } = options;
|
|
50
|
+
const hasForce = configEntries.some((e) => e.output?.force === true);
|
|
30
51
|
const sourceRuntime = (0, source_1.createSourceRuntime)(cwd, verbose);
|
|
52
|
+
// ── Corrupt lockfile recovery — when force is set, reset corrupt lockfile upfront ──────
|
|
53
|
+
// This must happen before any readLockfile / readManagedFilesForDir calls so all
|
|
54
|
+
// downstream reads get a valid (empty) lockfile rather than throwing.
|
|
55
|
+
if (hasForce && !frozenLockfile) {
|
|
56
|
+
try {
|
|
57
|
+
(0, lockfile_1.readLockfile)(lockfilePath);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
const lockName = node_path_1.default.basename(lockfilePath);
|
|
61
|
+
console.warn(`Warning: ${lockName} is corrupt and will be recreated from scratch. ` +
|
|
62
|
+
`Dependencies may be bumped to newer versions.`);
|
|
63
|
+
(0, lockfile_1.writeLockfile)(lockfilePath, { version: 1, packages: {} });
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// ── Lock file handling — resolve locked versions and entries before resolution phase ────
|
|
67
|
+
let lockedVersions;
|
|
68
|
+
let entries = configEntries;
|
|
69
|
+
if (frozenLockfile) {
|
|
70
|
+
const lockfileData = (0, lockfile_1.readLockfile)(lockfilePath);
|
|
71
|
+
if (!lockfileData) {
|
|
72
|
+
const lockName = node_path_1.default.basename(lockfilePath);
|
|
73
|
+
throw new Error(`Lock file ${lockName} not found. ` +
|
|
74
|
+
`Run 'filedist install' without --frozen-lockfile first.`);
|
|
75
|
+
}
|
|
76
|
+
lockedVersions = new Map(Object.entries(lockfileData.packages).map(([spec, ref]) => [spec, ref]));
|
|
77
|
+
// Use set definitions from lockfile if available
|
|
78
|
+
if (lockfileData.sets && lockfileData.sets.length > 0) {
|
|
79
|
+
entries = lockfileData.sets;
|
|
80
|
+
if (verbose) {
|
|
81
|
+
console.log(`[verbose] actionInstall: frozen mode — using ${entries.length} set(s) from lock file`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (verbose) {
|
|
85
|
+
console.log(`[verbose] actionInstall: using frozen lock file (${lockedVersions.size} package(s))`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
const isDryRun = dryRun ?? entries.some((e) => e.output?.dryRun === true);
|
|
31
89
|
const result = { added: 0, modified: 0, deleted: 0, skipped: 0 };
|
|
32
90
|
try {
|
|
33
91
|
// ── Phase 1: Resolve desired files ──────────────────────────────────────
|
|
@@ -36,26 +94,54 @@ async function actionExtract(options) {
|
|
|
36
94
|
verbose,
|
|
37
95
|
onProgress,
|
|
38
96
|
sourceRuntime,
|
|
97
|
+
lockedVersions,
|
|
39
98
|
});
|
|
40
99
|
const resolvedFiles = resolved.files;
|
|
41
|
-
const { noSyncOutputDirs, relevantPackagesByOutputDir } = resolved;
|
|
100
|
+
const { noSyncOutputDirs, relevantPackagesByOutputDir, resolvedPackages } = resolved;
|
|
42
101
|
if (verbose) {
|
|
43
|
-
console.log(`[verbose]
|
|
102
|
+
console.log(`[verbose] actionInstall: resolved ${resolvedFiles.length} desired file(s)`);
|
|
103
|
+
}
|
|
104
|
+
// ── Supplement output dirs from lockfile for orphan cleanup ──────────────
|
|
105
|
+
// When entries shrink (e.g. after `remove`), output directories that were
|
|
106
|
+
// previously managed may no longer be fully referenced by the current entries.
|
|
107
|
+
// Merge all packages from the lockfile's managed_files into
|
|
108
|
+
// relevantPackagesByOutputDir so calculateDiff identifies files from removed
|
|
109
|
+
// packages as "extra" and cleans them up. Skip in frozen mode.
|
|
110
|
+
if (!frozenLockfile) {
|
|
111
|
+
const existingLock = (0, lockfile_1.readLockfile)(lockfilePath);
|
|
112
|
+
if (existingLock?.files) {
|
|
113
|
+
mergePackagesFromLockfile(cwd, relevantPackagesByOutputDir, existingLock.files);
|
|
114
|
+
}
|
|
44
115
|
}
|
|
45
116
|
// ── Phase 2: Calculate diff ──────────────────────────────────────────────
|
|
46
|
-
const diff = await (0, calculate_diff_1.calculateDiff)(resolvedFiles, verbose, cwd, relevantPackagesByOutputDir, true);
|
|
117
|
+
const diff = await (0, calculate_diff_1.calculateDiff)(resolvedFiles, verbose, cwd, relevantPackagesByOutputDir, true, lockfilePath);
|
|
47
118
|
if (verbose) {
|
|
48
|
-
console.log(`[verbose]
|
|
119
|
+
console.log(`[verbose] actionInstall: diff ok=${diff.ok.length} missing=${diff.missing.length}` +
|
|
49
120
|
` conflict=${diff.conflict.length} extra=${diff.extra.length}`);
|
|
50
121
|
}
|
|
51
122
|
const fileMissingEntries = diff.missing.filter((entry) => entry.desired);
|
|
52
123
|
const fileOkEntries = diff.ok.filter((entry) => entry.desired);
|
|
53
124
|
const fileConflictEntries = diff.conflict.filter((entry) => entry.desired);
|
|
125
|
+
// ── Frozen managed-files validation ───────────────────────────────────
|
|
126
|
+
// In frozen mode the managed files list must not change. Fail early if the
|
|
127
|
+
// desired file set differs from what is recorded in the lock file.
|
|
128
|
+
if (frozenLockfile && !isDryRun) {
|
|
129
|
+
const frozenLockData = (0, lockfile_1.readLockfile)(lockfilePath);
|
|
130
|
+
if (frozenLockData?.files) {
|
|
131
|
+
const outputDirs = new Set([
|
|
132
|
+
...resolvedFiles.map((f) => f.outputDir),
|
|
133
|
+
...relevantPackagesByOutputDir.keys(),
|
|
134
|
+
]);
|
|
135
|
+
for (const outputDir of outputDirs) {
|
|
136
|
+
validateFrozenManagedFiles(cwd, outputDir, resolvedFiles, frozenLockData.files);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
54
140
|
// ── Pre-flight conflict check ──────────────────────────────────────────
|
|
55
141
|
// Detect unmanaged-file conflicts before any disk writes.
|
|
56
142
|
if (!isDryRun) {
|
|
57
143
|
if (verbose) {
|
|
58
|
-
console.log(`[verbose]
|
|
144
|
+
console.log(`[verbose] actionInstall: checking for possible file conflicts...`);
|
|
59
145
|
}
|
|
60
146
|
for (const entry of fileConflictEntries) {
|
|
61
147
|
const desired = entry.desired;
|
|
@@ -89,7 +175,7 @@ async function actionExtract(options) {
|
|
|
89
175
|
]);
|
|
90
176
|
// Delete extra managed files
|
|
91
177
|
if (verbose) {
|
|
92
|
-
console.log(`[verbose]
|
|
178
|
+
console.log(`[verbose] actionInstall: removing extra managed files...`);
|
|
93
179
|
}
|
|
94
180
|
for (const entry of diff.extra.filter((diffEntry) => (0, symlinks_1.isManagedFileEntry)(diffEntry.existing) && !noSyncOutputDirs.has(diffEntry.outputDir))) {
|
|
95
181
|
const { outputDir, relPath, existing } = entry;
|
|
@@ -98,6 +184,7 @@ async function actionExtract(options) {
|
|
|
98
184
|
if (node_fs_1.default.existsSync(fullPath)) {
|
|
99
185
|
node_fs_1.default.chmodSync(fullPath, 0o644);
|
|
100
186
|
node_fs_1.default.unlinkSync(fullPath);
|
|
187
|
+
removeEmptyDirsUpTo(node_path_1.default.dirname(fullPath), outputDir);
|
|
101
188
|
}
|
|
102
189
|
onProgress?.({
|
|
103
190
|
type: 'file-deleted',
|
|
@@ -109,7 +196,7 @@ async function actionExtract(options) {
|
|
|
109
196
|
}
|
|
110
197
|
// Add missing files
|
|
111
198
|
if (verbose) {
|
|
112
|
-
console.log(`[verbose]
|
|
199
|
+
console.log(`[verbose] actionInstall: adding missing files...`);
|
|
113
200
|
}
|
|
114
201
|
for (const entry of fileMissingEntries) {
|
|
115
202
|
const desired = entry.desired;
|
|
@@ -135,7 +222,7 @@ async function actionExtract(options) {
|
|
|
135
222
|
}
|
|
136
223
|
// Resolve conflicts
|
|
137
224
|
if (verbose) {
|
|
138
|
-
console.log(`[verbose]
|
|
225
|
+
console.log(`[verbose] actionInstall: resolving file conflicts...`);
|
|
139
226
|
}
|
|
140
227
|
for (const entry of fileConflictEntries) {
|
|
141
228
|
const desired = entry.desired;
|
|
@@ -161,12 +248,13 @@ async function actionExtract(options) {
|
|
|
161
248
|
}
|
|
162
249
|
// Apply symlinks and content replacements per output directory
|
|
163
250
|
if (verbose) {
|
|
164
|
-
console.log(`[verbose]
|
|
251
|
+
console.log(`[verbose] actionInstall: applying symlinks and content replacements...`);
|
|
165
252
|
}
|
|
253
|
+
const managedFilesByOutputDir = new Map();
|
|
166
254
|
for (const outputDir of outputDirs) {
|
|
167
255
|
const dirFiles = resolvedFiles.filter((f) => f.outputDir === outputDir);
|
|
168
256
|
const relevantPackages = relevantPackagesByOutputDir.get(outputDir);
|
|
169
|
-
const existingMarker =
|
|
257
|
+
const existingMarker = (0, lockfile_1.readManagedFilesForDir)(lockfilePath, cwd, outputDir);
|
|
170
258
|
const desiredSymlinkEntries = (0, symlinks_1.collectManagedSymlinkEntries)(outputDir, dirFiles);
|
|
171
259
|
const desiredSymlinkPaths = new Set(desiredSymlinkEntries.map((entry) => entry.path));
|
|
172
260
|
const managedSymlinks = (0, symlinks_1.findManagedSymlinkEntries)(existingMarker, relevantPackages);
|
|
@@ -181,6 +269,7 @@ async function actionExtract(options) {
|
|
|
181
269
|
managed: true,
|
|
182
270
|
gitignore: false,
|
|
183
271
|
});
|
|
272
|
+
removeEmptyDirsUpTo(node_path_1.default.dirname(node_path_1.default.join(outputDir, relPath)), outputDir);
|
|
184
273
|
}
|
|
185
274
|
}
|
|
186
275
|
const symlinkConfigs = (0, symlinks_1.uniqueSymlinkConfigs)(dirFiles);
|
|
@@ -191,12 +280,44 @@ async function actionExtract(options) {
|
|
|
191
280
|
if (contentReplacements.length > 0) {
|
|
192
281
|
await (0, content_replacements_1.applyContentReplacements)(outputDir, contentReplacements);
|
|
193
282
|
}
|
|
194
|
-
await updateOutputDirMetadata(outputDir, diff, dirFiles, desiredSymlinkEntries, relevantPackages, noSyncOutputDirs.has(outputDir), cwd, verbose);
|
|
283
|
+
const updatedEntries = await updateOutputDirMetadata(outputDir, diff, dirFiles, desiredSymlinkEntries, relevantPackages, noSyncOutputDirs.has(outputDir), cwd, lockfilePath, verbose);
|
|
284
|
+
managedFilesByOutputDir.set(outputDir, updatedEntries);
|
|
195
285
|
}
|
|
196
286
|
if (verbose) {
|
|
197
|
-
console.log(`[verbose]
|
|
287
|
+
console.log(`[verbose] actionInstall: complete — added=${result.added} modified=${result.modified}` +
|
|
198
288
|
` deleted=${result.deleted} skipped=${result.skipped}`);
|
|
199
289
|
}
|
|
290
|
+
// ── Write/update lock file ───────────────────────────────────────────────
|
|
291
|
+
// Skip all lock file writes when dry-run or frozen.
|
|
292
|
+
if (!isDryRun && !frozenLockfile) {
|
|
293
|
+
const existingLock = (0, lockfile_1.readLockfile)(lockfilePath) ?? { version: 1, packages: {} };
|
|
294
|
+
const managedFilesMap = {};
|
|
295
|
+
for (const [outputDir, entries] of managedFilesByOutputDir) {
|
|
296
|
+
if (entries.length > 0) {
|
|
297
|
+
const key = (0, lockfile_1.outputDirKey)(cwd, outputDir);
|
|
298
|
+
// Serialize using the same format as lockfile helpers
|
|
299
|
+
managedFilesMap[key] = serializeManagedEntries(entries);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
const { packages } = (0, lockfile_1.buildLockfileData)(resolvedPackages);
|
|
303
|
+
const updatedLock = {
|
|
304
|
+
...existingLock,
|
|
305
|
+
packages,
|
|
306
|
+
// Store the set definitions so check/purge/frozen-install can operate without config
|
|
307
|
+
sets: configEntries,
|
|
308
|
+
// Always override files with the freshly computed map so entries
|
|
309
|
+
// from removed sets are not carried over from the existingLock spread.
|
|
310
|
+
// writeLockfile deletes the key when the map is empty.
|
|
311
|
+
files: managedFilesMap,
|
|
312
|
+
};
|
|
313
|
+
(0, lockfile_1.writeLockfile)(lockfilePath, updatedLock);
|
|
314
|
+
if (verbose) {
|
|
315
|
+
const pkgCount = Object.keys(updatedLock.packages).length;
|
|
316
|
+
const dirCount = Object.keys(managedFilesMap).length;
|
|
317
|
+
console.log(`[verbose] actionInstall: lock file updated (${pkgCount} package(s), ` +
|
|
318
|
+
`${updatedLock.sets?.length ?? 0} set(s), ${dirCount} managed dir(s))`);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
200
321
|
return result;
|
|
201
322
|
}
|
|
202
323
|
finally {
|
|
@@ -204,6 +325,24 @@ async function actionExtract(options) {
|
|
|
204
325
|
(0, utils_1.cleanupTempPackageJson)(cwd, verbose);
|
|
205
326
|
}
|
|
206
327
|
}
|
|
328
|
+
/**
|
|
329
|
+
* Recursively remove empty directories up to (but not including) the output root.
|
|
330
|
+
* Stops as soon as a non-empty directory is encountered.
|
|
331
|
+
*/
|
|
332
|
+
function removeEmptyDirsUpTo(dir, rootDir) {
|
|
333
|
+
if (dir === rootDir || !dir.startsWith(rootDir))
|
|
334
|
+
return;
|
|
335
|
+
try {
|
|
336
|
+
const entries = node_fs_1.default.readdirSync(dir);
|
|
337
|
+
if (entries.length === 0) {
|
|
338
|
+
node_fs_1.default.rmdirSync(dir);
|
|
339
|
+
removeEmptyDirsUpTo(node_path_1.default.dirname(dir), rootDir);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
catch {
|
|
343
|
+
// Ignore errors (e.g. dir already removed by a parallel operation)
|
|
344
|
+
}
|
|
345
|
+
}
|
|
207
346
|
/** Copy a source file to dest, creating parent dirs if needed, and set permissions. */
|
|
208
347
|
function writeFileToOutput(srcPath, destPath, managed) {
|
|
209
348
|
(0, utils_1.ensureDir)(node_path_1.default.dirname(destPath));
|
|
@@ -213,12 +352,23 @@ function writeFileToOutput(srcPath, destPath, managed) {
|
|
|
213
352
|
if (managed)
|
|
214
353
|
node_fs_1.default.chmodSync(destPath, 0o444);
|
|
215
354
|
}
|
|
355
|
+
/** Serialize ManagedFileMetadata entries to pipe-separated strings for the lock file. */
|
|
356
|
+
function serializeManagedEntries(entries) {
|
|
357
|
+
return entries.map((e) => {
|
|
358
|
+
const kindField = e.kind === 'symlink' ? 'symlink' : 'file';
|
|
359
|
+
const checksumField = e.checksum;
|
|
360
|
+
const mutableField = e.mutable ? '1' : '0';
|
|
361
|
+
return `${e.path}|${e.packageName}|${e.packageVersion}|${kindField}|${checksumField}|${mutableField}`;
|
|
362
|
+
});
|
|
363
|
+
}
|
|
216
364
|
/**
|
|
217
|
-
* Update
|
|
218
|
-
* disk changes have been applied.
|
|
365
|
+
* Update managed file metadata and .gitignore for one output directory after
|
|
366
|
+
* disk changes have been applied. Returns the updated entries (to be stored
|
|
367
|
+
* in .filedist.lock by the caller).
|
|
219
368
|
*/
|
|
220
|
-
async function updateOutputDirMetadata(outputDir, diff, resolvedFiles, desiredSymlinkEntries, relevantPackages, noSync, cwd, verbose) {
|
|
221
|
-
const
|
|
369
|
+
async function updateOutputDirMetadata(outputDir, diff, resolvedFiles, desiredSymlinkEntries, relevantPackages, noSync, cwd, lockfilePath, verbose) {
|
|
370
|
+
const effectiveLockfilePath = lockfilePath;
|
|
371
|
+
const existingMarker = (0, lockfile_1.readManagedFilesForDir)(effectiveLockfilePath, cwd, outputDir);
|
|
222
372
|
// Paths removed by this run (extra files that were deleted)
|
|
223
373
|
const deletedPaths = new Set(diff.extra
|
|
224
374
|
.filter((e) => e.outputDir === outputDir && (0, symlinks_1.isManagedFileEntry)(e.existing) && !noSync)
|
|
@@ -237,8 +387,8 @@ async function updateOutputDirMetadata(outputDir, diff, resolvedFiles, desiredSy
|
|
|
237
387
|
packageName: e.desired.packageName,
|
|
238
388
|
packageVersion: e.desired.packageVersion,
|
|
239
389
|
kind: 'file',
|
|
240
|
-
|
|
241
|
-
|
|
390
|
+
checksum: checksumValue,
|
|
391
|
+
mutable: e.desired.mutable,
|
|
242
392
|
};
|
|
243
393
|
}),
|
|
244
394
|
...diff.conflict
|
|
@@ -253,8 +403,8 @@ async function updateOutputDirMetadata(outputDir, diff, resolvedFiles, desiredSy
|
|
|
253
403
|
packageName: e.desired.packageName,
|
|
254
404
|
packageVersion: e.desired.packageVersion,
|
|
255
405
|
kind: 'file',
|
|
256
|
-
|
|
257
|
-
|
|
406
|
+
checksum: checksumValue,
|
|
407
|
+
mutable: e.desired.mutable,
|
|
258
408
|
};
|
|
259
409
|
}),
|
|
260
410
|
];
|
|
@@ -263,7 +413,7 @@ async function updateOutputDirMetadata(outputDir, diff, resolvedFiles, desiredSy
|
|
|
263
413
|
const updatedByPath = new Map(existingMarker
|
|
264
414
|
.filter((m) => !deletedPaths.has(m.path) &&
|
|
265
415
|
!addedEntries.some((e) => e.path === m.path) &&
|
|
266
|
-
!(
|
|
416
|
+
!(m.kind === 'symlink' &&
|
|
267
417
|
currentRelevantPackages.has(m.packageName) &&
|
|
268
418
|
!desiredSymlinkEntries.some((entry) => entry.path === m.path)))
|
|
269
419
|
.map((m) => [m.path, m]));
|
|
@@ -272,21 +422,20 @@ async function updateOutputDirMetadata(outputDir, diff, resolvedFiles, desiredSy
|
|
|
272
422
|
for (const entry of desiredSymlinkEntries) {
|
|
273
423
|
const existingEntry = updatedByPath.get(entry.path);
|
|
274
424
|
if (existingEntry &&
|
|
275
|
-
|
|
425
|
+
existingEntry.kind === 'symlink' &&
|
|
276
426
|
existingEntry.packageName === entry.packageName) {
|
|
277
427
|
continue;
|
|
278
428
|
}
|
|
279
429
|
updatedByPath.set(entry.path, entry);
|
|
280
430
|
}
|
|
281
431
|
const updatedEntries = [...updatedByPath.values()];
|
|
282
|
-
await (0, markers_1.writeMarker)((0, markers_1.markerPath)(outputDir), updatedEntries);
|
|
283
432
|
if (verbose) {
|
|
284
|
-
console.log(`[verbose] updateOutputDirMetadata: ${(0, utils_1.formatDisplayPath)(outputDir, cwd)}: marker
|
|
433
|
+
console.log(`[verbose] updateOutputDirMetadata: ${(0, utils_1.formatDisplayPath)(outputDir, cwd)}: marker prepared (${updatedEntries.length} entries)`);
|
|
285
434
|
}
|
|
286
435
|
// Update gitignore: include all remaining managed entries whose gitignore=true
|
|
287
436
|
const resolvedByPath = new Map(resolvedFiles.filter((f) => f.outputDir === outputDir).map((f) => [f.relPath, f]));
|
|
288
437
|
const gitignorePaths = updatedEntries
|
|
289
|
-
.filter((e) =>
|
|
438
|
+
.filter((e) => e.kind !== 'symlink')
|
|
290
439
|
.filter((e) => {
|
|
291
440
|
const resolved = resolvedByPath.get(e.path);
|
|
292
441
|
// For files resolved in this run, honour their gitignore setting.
|
|
@@ -295,5 +444,29 @@ async function updateOutputDirMetadata(outputDir, diff, resolvedFiles, desiredSy
|
|
|
295
444
|
})
|
|
296
445
|
.map((e) => e.path);
|
|
297
446
|
await (0, gitignore_1.addToGitignore)(outputDir, gitignorePaths);
|
|
447
|
+
return updatedEntries;
|
|
448
|
+
}
|
|
449
|
+
/**
|
|
450
|
+
* Validate that the desired managed-file paths for an output directory match
|
|
451
|
+
* what is recorded in the lock file's managed_files map.
|
|
452
|
+
* Throws a descriptive error when files have been added or removed.
|
|
453
|
+
*/
|
|
454
|
+
function validateFrozenManagedFiles(cwd, outputDir, resolvedFiles, managedFilesRecord) {
|
|
455
|
+
const key = (0, lockfile_1.outputDirKey)(cwd, outputDir);
|
|
456
|
+
const lockedPaths = new Set();
|
|
457
|
+
for (const line of managedFilesRecord[key] ?? []) {
|
|
458
|
+
const relPath = line.split('|')[0];
|
|
459
|
+
if (relPath)
|
|
460
|
+
lockedPaths.add(relPath);
|
|
461
|
+
}
|
|
462
|
+
const desiredPaths = new Set(resolvedFiles.filter((f) => f.outputDir === outputDir && f.managed).map((f) => f.relPath));
|
|
463
|
+
const missingInLock = [...desiredPaths].filter((p) => !lockedPaths.has(p));
|
|
464
|
+
const extraInLock = [...lockedPaths].filter((p) => !desiredPaths.has(p));
|
|
465
|
+
if (missingInLock.length > 0 || extraInLock.length > 0) {
|
|
466
|
+
throw new Error(`Frozen lockfile violation: managed file list changed for "${key}".\n` +
|
|
467
|
+
(missingInLock.length > 0 ? ` New files not in lock: ${missingInLock.join(', ')}\n` : '') +
|
|
468
|
+
(extraInLock.length > 0 ? ` Files removed from source: ${extraInLock.join(', ')}\n` : '') +
|
|
469
|
+
`Run 'filedist install' without --frozen-lockfile to update the lock file.`);
|
|
470
|
+
}
|
|
298
471
|
}
|
|
299
|
-
//# sourceMappingURL=action-
|
|
472
|
+
//# sourceMappingURL=action-install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-install.js","sourceRoot":"","sources":["../../src/package/action-install.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { ManagedFileMetadata } from '../types';
|
|
2
2
|
export type ListOptions = {
|
|
3
|
+
cwd: string;
|
|
3
4
|
outputDir: string;
|
|
4
5
|
verbose?: boolean;
|
|
6
|
+
/** Absolute path to the lock file. */
|
|
7
|
+
lockfilePath: string;
|
|
5
8
|
};
|
|
6
9
|
/**
|
|
7
|
-
*
|
|
10
|
+
* List all managed files for an output directory from the central lock file.
|
|
8
11
|
* Note: list always ignores --presets; reports all managed files.
|
|
9
12
|
*/
|
|
10
|
-
export declare function actionList(options: ListOptions):
|
|
13
|
+
export declare function actionList(options: ListOptions): ManagedFileMetadata[];
|
|
11
14
|
//# sourceMappingURL=action-list.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-list.d.ts","sourceRoot":"","sources":["../../src/package/action-list.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"action-list.d.ts","sourceRoot":"","sources":["../../src/package/action-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAI/C,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,mBAAmB,EAAE,CAGtE"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.actionList = actionList;
|
|
4
|
-
const
|
|
4
|
+
const lockfile_1 = require("./lockfile");
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* List all managed files for an output directory from the central lock file.
|
|
7
7
|
* Note: list always ignores --presets; reports all managed files.
|
|
8
8
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
function actionList(options) {
|
|
10
|
+
const { lockfilePath, cwd, outputDir } = options;
|
|
11
|
+
return (0, lockfile_1.readManagedFilesForDir)(lockfilePath, cwd, outputDir);
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=action-list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-list.js","sourceRoot":"","sources":["../../src/package/action-list.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"action-list.js","sourceRoot":"","sources":["../../src/package/action-list.ts"],"names":[],"mappings":";;AAgBA,gCAGC;AAjBD,yCAAoD;AAUpD;;;GAGG;AACH,SAAgB,UAAU,CAAC,OAAoB;IAC7C,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACjD,OAAO,IAAA,iCAAsB,EAAC,YAAY,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;AAC9D,CAAC"}
|