npmdata 0.18.11 → 0.18.12
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/dist/cli/actions/check.js +3 -3
- package/dist/cli/actions/extract.d.ts.map +1 -1
- package/dist/cli/actions/extract.js +4 -3
- package/dist/cli/actions/extract.js.map +1 -1
- package/dist/cli/actions/purge.d.ts.map +1 -1
- package/dist/cli/actions/purge.js +2 -3
- package/dist/cli/actions/purge.js.map +1 -1
- package/dist/cli/progress.d.ts +6 -0
- package/dist/cli/progress.d.ts.map +1 -0
- package/dist/cli/progress.js +12 -0
- package/dist/cli/progress.js.map +1 -0
- package/dist/fileset/execute.d.ts.map +1 -1
- package/dist/fileset/execute.js +8 -7
- package/dist/fileset/execute.js.map +1 -1
- package/dist/fileset/gitignore.d.ts +4 -0
- package/dist/fileset/gitignore.d.ts.map +1 -1
- package/dist/fileset/gitignore.js +12 -0
- package/dist/fileset/gitignore.js.map +1 -1
- package/dist/fileset/package-files.d.ts.map +1 -1
- package/dist/fileset/package-files.js +8 -0
- package/dist/fileset/package-files.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/npmdata-0.0.1.tgz +0 -0
- package/dist/package/action-check.d.ts +11 -3
- package/dist/package/action-check.d.ts.map +1 -1
- package/dist/package/action-check.js +44 -110
- package/dist/package/action-check.js.map +1 -1
- package/dist/package/action-extract.d.ts +6 -3
- package/dist/package/action-extract.d.ts.map +1 -1
- package/dist/package/action-extract.js +211 -234
- package/dist/package/action-extract.js.map +1 -1
- package/dist/package/action-init.d.ts.map +1 -1
- package/dist/package/action-init.js +1 -3
- package/dist/package/action-init.js.map +1 -1
- package/dist/package/action-purge.d.ts +6 -11
- package/dist/package/action-purge.d.ts.map +1 -1
- package/dist/package/action-purge.js +103 -138
- package/dist/package/action-purge.js.map +1 -1
- package/dist/package/calculate-diff.d.ts +12 -0
- package/dist/package/calculate-diff.d.ts.map +1 -0
- package/dist/package/calculate-diff.js +119 -0
- package/dist/package/calculate-diff.js.map +1 -0
- package/dist/package/config-merge.d.ts +2 -1
- package/dist/package/config-merge.d.ts.map +1 -1
- package/dist/package/config-merge.js +20 -4
- package/dist/package/config-merge.js.map +1 -1
- package/dist/package/resolve-files.d.ts +21 -0
- package/dist/package/resolve-files.d.ts.map +1 -0
- package/dist/package/resolve-files.js +198 -0
- package/dist/package/resolve-files.js.map +1 -0
- package/dist/types.d.ts +86 -19
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +4 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +22 -10
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -19,12 +19,12 @@ async function runCheck(config, argv, cwd) {
|
|
|
19
19
|
cwd,
|
|
20
20
|
verbose: parsed.verbose,
|
|
21
21
|
});
|
|
22
|
-
const hasDrift = summary.missing.length > 0 || summary.
|
|
22
|
+
const hasDrift = summary.missing.length > 0 || summary.conflict.length > 0 || summary.extra.length > 0;
|
|
23
23
|
if (hasDrift) {
|
|
24
24
|
for (const f of summary.missing)
|
|
25
25
|
console.log(`missing: ${f}`);
|
|
26
|
-
for (const f of summary.
|
|
27
|
-
console.log(`
|
|
26
|
+
for (const f of summary.conflict)
|
|
27
|
+
console.log(`conflict: ${f}`);
|
|
28
28
|
for (const f of summary.extra)
|
|
29
29
|
console.log(`extra: ${f}`);
|
|
30
30
|
throw new Error('Check failed: some managed files are out of sync');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../../src/cli/actions/extract.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAiB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../../src/cli/actions/extract.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAiB,MAAM,aAAa,CAAC;AAO3D;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,aAAa,GAAG,IAAI,EAC5B,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAkDf"}
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.runExtract = runExtract;
|
|
5
5
|
const argv_1 = require("../argv");
|
|
6
6
|
const usage_1 = require("../usage");
|
|
7
|
+
const progress_1 = require("../progress");
|
|
7
8
|
const action_extract_1 = require("../../package/action-extract");
|
|
8
9
|
const utils_1 = require("../../utils");
|
|
9
10
|
/**
|
|
@@ -34,11 +35,11 @@ async function runExtract(config, argv, cwd) {
|
|
|
34
35
|
if (entries[0]?.silent)
|
|
35
36
|
return;
|
|
36
37
|
if (event.type === 'file-added')
|
|
37
|
-
console.log(` + ${event
|
|
38
|
+
console.log(` + ${(0, progress_1.formatProgressFile)(event)}`);
|
|
38
39
|
else if (event.type === 'file-modified')
|
|
39
|
-
console.log(` ~ ${event
|
|
40
|
+
console.log(` ~ ${(0, progress_1.formatProgressFile)(event)}`);
|
|
40
41
|
else if (event.type === 'file-deleted')
|
|
41
|
-
console.log(` - ${event
|
|
42
|
+
console.log(` - ${(0, progress_1.formatProgressFile)(event)}`);
|
|
42
43
|
},
|
|
43
44
|
});
|
|
44
45
|
// Run postExtractScript if configured and not dry-run
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../src/cli/actions/extract.ts"],"names":[],"mappings":";AAAA,+BAA+B;;
|
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../src/cli/actions/extract.ts"],"names":[],"mappings":";AAAA,+BAA+B;;AAa/B,gCAsDC;AAhED,kCAAqE;AACrE,oCAAsC;AACtC,0CAAiD;AACjD,iEAA6D;AAC7D,uCAA2C;AAE3C;;;GAGG;AACI,KAAK,UAAU,UAAU,CAC9B,MAA4B,EAC5B,IAAc,EACd,GAAW;IAEX,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,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,sDAAsD;IACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvD,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE,iBAAiB,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,GAAG,MAAM,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QACzE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,0CAA0C,SAAS,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,IAAA,oBAAY,EAAC,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACvD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACvE,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"purge.d.ts","sourceRoot":"","sources":["../../../src/cli/actions/purge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAuB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"purge.d.ts","sourceRoot":"","sources":["../../../src/cli/actions/purge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAuB,MAAM,aAAa,CAAC;AAMjE;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,aAAa,GAAG,IAAI,EAC5B,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CA4Bf"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.runPurge = runPurge;
|
|
4
4
|
const argv_1 = require("../argv");
|
|
5
5
|
const usage_1 = require("../usage");
|
|
6
|
+
const progress_1 = require("../progress");
|
|
6
7
|
const action_purge_1 = require("../../package/action-purge");
|
|
7
8
|
/**
|
|
8
9
|
* `purge` CLI action handler.
|
|
@@ -24,15 +25,13 @@ async function runPurge(config, argv, cwd) {
|
|
|
24
25
|
const summary = await (0, action_purge_1.actionPurge)({
|
|
25
26
|
entries,
|
|
26
27
|
cwd,
|
|
27
|
-
...(config ? { config } : {}),
|
|
28
|
-
presets: parsed.presets ?? [],
|
|
29
28
|
dryRun: parsed.dryRun,
|
|
30
29
|
verbose: parsed.verbose,
|
|
31
30
|
onProgress: (event) => {
|
|
32
31
|
if (parsed.silent)
|
|
33
32
|
return;
|
|
34
33
|
if (event.type === 'file-deleted')
|
|
35
|
-
console.log(` - ${event
|
|
34
|
+
console.log(` - ${(0, progress_1.formatProgressFile)(event)}`);
|
|
36
35
|
},
|
|
37
36
|
});
|
|
38
37
|
console.log(`Purge complete: ${summary.deleted} deleted.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"purge.js","sourceRoot":"","sources":["../../../src/cli/actions/purge.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"purge.js","sourceRoot":"","sources":["../../../src/cli/actions/purge.ts"],"names":[],"mappings":";;AAUA,4BAgCC;AAxCD,kCAA8E;AAC9E,oCAAsC;AACtC,0CAAiD;AACjD,6DAAyD;AAEzD;;GAEG;AACI,KAAK,UAAU,QAAQ,CAC5B,MAA4B,EAC5B,IAAc,EACd,GAAW;IAEX,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,IAAI,OAAO,GAA0B,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,IAAA,2BAAoB,EAAC,MAAM,CAAC,CAAC;IAChD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,GAAG,UAAU,CAAC;IACvB,CAAC;SAAM,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,OAAO,GAAG,IAAA,yBAAkB,EAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,IAAA,0BAAW,EAAC;QAChC,OAAO;QACP,GAAG;QACH,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,UAAU,EAAE,CAAC,KAA0C,EAAE,EAAE;YACzD,IAAI,MAAM,CAAC,MAAM;gBAAE,OAAO;YAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;gBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAA,6BAAkB,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrF,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/cli/progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAInE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatProgressFile = formatProgressFile;
|
|
4
|
+
/**
|
|
5
|
+
* Render per-file progress labels with explicit managed and gitignore state.
|
|
6
|
+
*/
|
|
7
|
+
function formatProgressFile(event) {
|
|
8
|
+
const managedFlag = event.managed ? 'M' : 'U';
|
|
9
|
+
const gitignoreFlag = event.gitignore ? 'I' : 'G';
|
|
10
|
+
return `${event.file} (${managedFlag},${gitignoreFlag})`;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/cli/progress.ts"],"names":[],"mappings":";;AAKA,gDAIC;AAPD;;GAEG;AACH,SAAgB,kBAAkB,CAAC,KAAwB;IACzD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9C,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAClD,OAAO,GAAG,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,aAAa,GAAG,CAAC;AAC3D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/fileset/execute.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,EACb,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAOlB;;;;;;;;;;;;;;;;GAgBG;AAEH,wBAAsB,OAAO,CAC3B,GAAG,EAAE,aAAa,EAClB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,aAAa,EAClB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,mBAAmB,EAAE,EAErC,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/fileset/execute.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,EACb,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAOlB;;;;;;;;;;;;;;;;GAgBG;AAEH,wBAAsB,OAAO,CAC3B,GAAG,EAAE,aAAa,EAClB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,aAAa,EAClB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,mBAAmB,EAAE,EAErC,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,aAAa,CAAC,CAgHxB;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBvF;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE"}
|
package/dist/fileset/execute.js
CHANGED
|
@@ -35,6 +35,7 @@ async function execute(map, outputDir, outputConfig, pkg, pkgVersion, existingMa
|
|
|
35
35
|
const dryRun = outputConfig.dryRun ?? false;
|
|
36
36
|
const unmanaged = outputConfig.managed === false;
|
|
37
37
|
const updateGitignore = outputConfig.gitignore !== false;
|
|
38
|
+
const displayBaseDir = _cwd ?? process.cwd();
|
|
38
39
|
const result = {
|
|
39
40
|
newlyCreated: [],
|
|
40
41
|
added: 0,
|
|
@@ -45,7 +46,7 @@ async function execute(map, outputDir, outputConfig, pkg, pkgVersion, existingMa
|
|
|
45
46
|
// Write toAdd files
|
|
46
47
|
for (const op of map.toAdd) {
|
|
47
48
|
if (verbose) {
|
|
48
|
-
console.log(`[verbose] execute: adding file ${op.destPath}`);
|
|
49
|
+
console.log(`[verbose] execute: adding file ${(0, utils_1.formatDisplayPath)(op.destPath, displayBaseDir)}`);
|
|
49
50
|
}
|
|
50
51
|
if (!dryRun) {
|
|
51
52
|
(0, utils_1.ensureDir)(node_path_1.default.dirname(op.destPath));
|
|
@@ -64,7 +65,7 @@ async function execute(map, outputDir, outputConfig, pkg, pkgVersion, existingMa
|
|
|
64
65
|
// Write toModify files
|
|
65
66
|
for (const op of map.toModify) {
|
|
66
67
|
if (verbose) {
|
|
67
|
-
console.log(`[verbose] execute: modifying file ${op.destPath}`);
|
|
68
|
+
console.log(`[verbose] execute: modifying file ${(0, utils_1.formatDisplayPath)(op.destPath, displayBaseDir)}`);
|
|
68
69
|
}
|
|
69
70
|
if (!dryRun) {
|
|
70
71
|
(0, utils_1.ensureDir)(node_path_1.default.dirname(op.destPath));
|
|
@@ -100,13 +101,13 @@ async function execute(map, outputDir, outputConfig, pkg, pkgVersion, existingMa
|
|
|
100
101
|
});
|
|
101
102
|
}
|
|
102
103
|
if (verbose) {
|
|
103
|
-
console.log(`[verbose] execute: writing marker file at ${marker} (${updatedEntries.length} entries)`);
|
|
104
|
+
console.log(`[verbose] execute: writing marker file at ${(0, utils_1.formatDisplayPath)(marker, displayBaseDir)} (${updatedEntries.length} entries)`);
|
|
104
105
|
}
|
|
105
106
|
await (0, markers_1.writeMarker)(marker, updatedEntries);
|
|
106
107
|
if (updateGitignore) {
|
|
107
108
|
const managedPaths = updatedEntries.map((m) => m.path);
|
|
108
109
|
if (verbose) {
|
|
109
|
-
console.log(`[verbose] execute: updating .gitignore at ${outputDir} (${managedPaths.length} paths)`);
|
|
110
|
+
console.log(`[verbose] execute: updating .gitignore at ${(0, utils_1.formatDisplayPath)(outputDir, displayBaseDir)} (${managedPaths.length} paths)`);
|
|
110
111
|
}
|
|
111
112
|
await (0, gitignore_1.addToGitignore)(outputDir, managedPaths);
|
|
112
113
|
}
|
|
@@ -114,7 +115,7 @@ async function execute(map, outputDir, outputConfig, pkg, pkgVersion, existingMa
|
|
|
114
115
|
// Apply content replacements
|
|
115
116
|
if (!dryRun && outputConfig.contentReplacements && outputConfig.contentReplacements.length > 0) {
|
|
116
117
|
if (verbose) {
|
|
117
|
-
console.log(`[verbose] execute: applying ${outputConfig.contentReplacements.length} content replacement(s) in ${outputDir}`);
|
|
118
|
+
console.log(`[verbose] execute: applying ${outputConfig.contentReplacements.length} content replacement(s) in ${(0, utils_1.formatDisplayPath)(outputDir, displayBaseDir)}`);
|
|
118
119
|
}
|
|
119
120
|
await (0, content_replacements_1.applyContentReplacements)(outputDir, outputConfig.contentReplacements);
|
|
120
121
|
}
|
|
@@ -129,7 +130,7 @@ async function deleteFiles(filePaths, verbose) {
|
|
|
129
130
|
if (!node_fs_1.default.existsSync(filePath))
|
|
130
131
|
continue;
|
|
131
132
|
if (verbose) {
|
|
132
|
-
console.log(`[verbose] execute: deleting file ${filePath}`);
|
|
133
|
+
console.log(`[verbose] execute: deleting file ${(0, utils_1.formatDisplayPath)(filePath)}`);
|
|
133
134
|
}
|
|
134
135
|
try {
|
|
135
136
|
node_fs_1.default.chmodSync(filePath, 0o644);
|
|
@@ -138,7 +139,7 @@ async function deleteFiles(filePaths, verbose) {
|
|
|
138
139
|
catch (error) {
|
|
139
140
|
// Ignore errors for files that could not be deleted
|
|
140
141
|
if (verbose) {
|
|
141
|
-
console.error(`[verbose] execute: failed to delete ${filePath}: ${error}`);
|
|
142
|
+
console.error(`[verbose] execute: failed to delete ${(0, utils_1.formatDisplayPath)(filePath)}: ${error}`);
|
|
142
143
|
}
|
|
143
144
|
}
|
|
144
145
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/fileset/execute.ts"],"names":[],"mappings":";;;;;AAmCA,
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/fileset/execute.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
* Always includes the MARKER_FILE itself in the managed section.
|
|
5
5
|
*/
|
|
6
6
|
export declare function addToGitignore(markerDir: string, paths: string[]): Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Read the paths currently listed in the npmdata-managed section.
|
|
9
|
+
*/
|
|
10
|
+
export declare function readManagedGitignoreEntries(markerDir: string): Set<string>;
|
|
7
11
|
/**
|
|
8
12
|
* Remove specific paths from the npmdata-managed section in .gitignore.
|
|
9
13
|
* Removes the entire section if no paths remain. Deletes the file if empty.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitignore.d.ts","sourceRoot":"","sources":["../../src/fileset/gitignore.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtF;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAY3F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EAAE,EACtB,eAAe,EAAE,OAAO,GACvB,IAAI,CAaN"}
|
|
1
|
+
{"version":3,"file":"gitignore.d.ts","sourceRoot":"","sources":["../../src/fileset/gitignore.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtF;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAO1E;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAY3F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EAAE,EACtB,eAAe,EAAE,OAAO,GACvB,IAAI,CAaN"}
|
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.addToGitignore = addToGitignore;
|
|
7
|
+
exports.readManagedGitignoreEntries = readManagedGitignoreEntries;
|
|
7
8
|
exports.removeFromGitignore = removeFromGitignore;
|
|
8
9
|
exports.updateGitignoreSection = updateGitignoreSection;
|
|
9
10
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
@@ -17,6 +18,17 @@ const constants_1 = require("./constants");
|
|
|
17
18
|
async function addToGitignore(markerDir, paths) {
|
|
18
19
|
updateGitignoreSection(markerDir, paths, true);
|
|
19
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Read the paths currently listed in the npmdata-managed section.
|
|
23
|
+
*/
|
|
24
|
+
function readManagedGitignoreEntries(markerDir) {
|
|
25
|
+
const gitignorePath = node_path_1.default.join(markerDir, constants_1.GITIGNORE_FILE);
|
|
26
|
+
if (!node_fs_1.default.existsSync(gitignorePath))
|
|
27
|
+
return new Set();
|
|
28
|
+
const existingContent = node_fs_1.default.readFileSync(gitignorePath, 'utf8');
|
|
29
|
+
const { managedEntries } = parseSections(existingContent);
|
|
30
|
+
return new Set(managedEntries);
|
|
31
|
+
}
|
|
20
32
|
/**
|
|
21
33
|
* Remove specific paths from the npmdata-managed section in .gitignore.
|
|
22
34
|
* Removes the entire section if no paths remain. Deletes the file if empty.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../../src/fileset/gitignore.ts"],"names":[],"mappings":";;;;;AAUA,wCAEC;AAMD,kDAYC;AAKD,wDAiBC;
|
|
1
|
+
{"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../../src/fileset/gitignore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-files.d.ts","sourceRoot":"","sources":["../../src/fileset/package-files.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAK1C;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ9E;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"package-files.d.ts","sourceRoot":"","sources":["../../src/fileset/package-files.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAK1C;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ9E;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,EAAE,CAAC,CAyDnB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAYhF"}
|
|
@@ -33,6 +33,9 @@ function installedPackagePath(name, cwd) {
|
|
|
33
33
|
* @returns Array of relative file paths from the package root.
|
|
34
34
|
*/
|
|
35
35
|
async function enumeratePackageFiles(pkgPath, selector) {
|
|
36
|
+
if (selector.files && selector.files.length === 0) {
|
|
37
|
+
return [];
|
|
38
|
+
}
|
|
36
39
|
// `selector.presets` is purely for filtering recursive npmdata.sets; it has no effect on
|
|
37
40
|
// which files are selected from the package itself. When presets is specified without an
|
|
38
41
|
// explicit `files` pattern the caller intends only set-level recursion, so we return an
|
|
@@ -41,6 +44,7 @@ async function enumeratePackageFiles(pkgPath, selector) {
|
|
|
41
44
|
return [];
|
|
42
45
|
}
|
|
43
46
|
const filePatterns = selector.files ?? constants_1.DEFAULT_FILE_PATTERNS;
|
|
47
|
+
const filePatternGroups = selector.filePatternGroups ?? (selector.files ? [selector.files] : []);
|
|
44
48
|
const activeDefaultExcludes = constants_1.DEFAULT_EXCLUDE_PATTERNS.filter((p) => !filePatterns.includes(p));
|
|
45
49
|
const excludePatterns = [...activeDefaultExcludes, ...(selector.exclude ?? [])];
|
|
46
50
|
const contentRegexes = (selector.contentRegexes ?? []).map((r) => new RegExp(r));
|
|
@@ -62,6 +66,8 @@ async function enumeratePackageFiles(pkgPath, selector) {
|
|
|
62
66
|
// Apply glob filter
|
|
63
67
|
if (!matchesFilePatterns(relPath, filePatterns))
|
|
64
68
|
continue;
|
|
69
|
+
if (filePatternGroups.some((group) => !matchesFilePatterns(relPath, group)))
|
|
70
|
+
continue;
|
|
65
71
|
// Apply exclude patterns
|
|
66
72
|
if (excludePatterns.some((pat) => (0, minimatch_1.minimatch)(relPath, pat, { dot: true })))
|
|
67
73
|
continue;
|
|
@@ -85,6 +91,8 @@ async function enumeratePackageFiles(pkgPath, selector) {
|
|
|
85
91
|
* Handles negative patterns (prefix !) and positive patterns.
|
|
86
92
|
*/
|
|
87
93
|
function matchesFilePatterns(relPath, patterns) {
|
|
94
|
+
if (patterns.length === 0)
|
|
95
|
+
return false;
|
|
88
96
|
const includes = patterns.filter((p) => !p.startsWith('!'));
|
|
89
97
|
const excludes = patterns.filter((p) => p.startsWith('!')).map((p) => p.slice(1));
|
|
90
98
|
const matchesIncludes = includes.length === 0 || includes.some((pat) => (0, minimatch_1.minimatch)(relPath, pat, { dot: true }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-files.js","sourceRoot":"","sources":["../../src/fileset/package-files.ts"],"names":[],"mappings":";;;;;AAaA,oDAQC;AAWD,
|
|
1
|
+
{"version":3,"file":"package-files.js","sourceRoot":"","sources":["../../src/fileset/package-files.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,9 @@ export { actionList } from './package/action-list';
|
|
|
6
6
|
export type { ListOptions } from './package/action-list';
|
|
7
7
|
export { actionPurge } from './package/action-purge';
|
|
8
8
|
export type { PurgeOptions, PurgeSummary } from './package/action-purge';
|
|
9
|
+
export { resolveFiles } from './package/resolve-files';
|
|
10
|
+
export type { ResolveOptions } from './package/resolve-files';
|
|
11
|
+
export { calculateDiff } from './package/calculate-diff';
|
|
9
12
|
export { binpkg } from './cli/binpkg';
|
|
10
|
-
export type { NpmdataConfig, NpmdataExtractEntry, PackageConfig, SelectorConfig, OutputConfig, SymlinkConfig, ContentReplacementConfig, ManagedFileMetadata, ProgressEvent, ExtractionMap, CheckResult, PurgeResult, ExecuteResult, } from './types';
|
|
13
|
+
export type { NpmdataConfig, NpmdataExtractEntry, PackageConfig, SelectorConfig, OutputConfig, SymlinkConfig, ContentReplacementConfig, ManagedFileMetadata, ProgressEvent, ExtractionMap, CheckResult, PurgeResult, ExecuteResult, ResolvedFile, DiffStatus, DiffEntry, DiffResult, } from './types';
|
|
11
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEzE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,aAAa,EACb,wBAAwB,EACxB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,WAAW,EACX,WAAW,EACX,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,aAAa,EACb,wBAAwB,EACxB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,WAAW,EACX,WAAW,EACX,aAAa,EACb,YAAY,EACZ,UAAU,EACV,SAAS,EACT,UAAU,GACX,MAAM,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Public library exports for npmdata v2
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.binpkg = exports.actionPurge = exports.actionList = exports.actionCheck = exports.actionExtract = void 0;
|
|
4
|
+
exports.binpkg = exports.calculateDiff = exports.resolveFiles = exports.actionPurge = exports.actionList = exports.actionCheck = exports.actionExtract = void 0;
|
|
5
5
|
var action_extract_1 = require("./package/action-extract");
|
|
6
6
|
Object.defineProperty(exports, "actionExtract", { enumerable: true, get: function () { return action_extract_1.actionExtract; } });
|
|
7
7
|
var action_check_1 = require("./package/action-check");
|
|
@@ -10,6 +10,10 @@ var action_list_1 = require("./package/action-list");
|
|
|
10
10
|
Object.defineProperty(exports, "actionList", { enumerable: true, get: function () { return action_list_1.actionList; } });
|
|
11
11
|
var action_purge_1 = require("./package/action-purge");
|
|
12
12
|
Object.defineProperty(exports, "actionPurge", { enumerable: true, get: function () { return action_purge_1.actionPurge; } });
|
|
13
|
+
var resolve_files_1 = require("./package/resolve-files");
|
|
14
|
+
Object.defineProperty(exports, "resolveFiles", { enumerable: true, get: function () { return resolve_files_1.resolveFiles; } });
|
|
15
|
+
var calculate_diff_1 = require("./package/calculate-diff");
|
|
16
|
+
Object.defineProperty(exports, "calculateDiff", { enumerable: true, get: function () { return calculate_diff_1.calculateDiff; } });
|
|
13
17
|
var binpkg_1 = require("./cli/binpkg");
|
|
14
18
|
Object.defineProperty(exports, "binpkg", { enumerable: true, get: function () { return binpkg_1.binpkg; } });
|
|
15
19
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,wCAAwC;;;AAExC,2DAAyD;AAAhD,+GAAA,aAAa,OAAA;AAGtB,uDAAqD;AAA5C,2GAAA,WAAW,OAAA;AAGpB,qDAAmD;AAA1C,yGAAA,UAAU,OAAA;AAGnB,uDAAqD;AAA5C,2GAAA,WAAW,OAAA;AAGpB,uCAAsC;AAA7B,gGAAA,MAAM,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,wCAAwC;;;AAExC,2DAAyD;AAAhD,+GAAA,aAAa,OAAA;AAGtB,uDAAqD;AAA5C,2GAAA,WAAW,OAAA;AAGpB,qDAAmD;AAA1C,yGAAA,UAAU,OAAA;AAGnB,uDAAqD;AAA5C,2GAAA,WAAW,OAAA;AAGpB,yDAAuD;AAA9C,6GAAA,YAAY,OAAA;AAGrB,2DAAyD;AAAhD,+GAAA,aAAa,OAAA;AAEtB,uCAAsC;AAA7B,gGAAA,MAAM,OAAA"}
|
package/dist/npmdata-0.0.1.tgz
CHANGED
|
Binary file
|
|
@@ -1,12 +1,20 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ProgressEvent, BasicPackageOptions } from '../types';
|
|
2
2
|
export type CheckOptions = BasicPackageOptions & {
|
|
3
3
|
onProgress?: (event: ProgressEvent) => void;
|
|
4
|
-
visitedEntries?: Set<string>;
|
|
5
4
|
};
|
|
6
5
|
export type CheckSummary = {
|
|
7
6
|
missing: string[];
|
|
8
|
-
|
|
7
|
+
conflict: string[];
|
|
9
8
|
extra: string[];
|
|
10
9
|
};
|
|
10
|
+
/**
|
|
11
|
+
* Check whether the output directories are in sync with the desired file state.
|
|
12
|
+
*
|
|
13
|
+
* Uses resolveFiles() to build the desired file list (installing packages as needed),
|
|
14
|
+
* then calculateDiff() to find files that are missing, conflicting, or extra.
|
|
15
|
+
* Conflict detection reports content/managed mismatches only — gitignore-only
|
|
16
|
+
* conflicts are excluded since gitignore state is managed by extract, not a data
|
|
17
|
+
* integrity issue.
|
|
18
|
+
*/
|
|
11
19
|
export declare function actionCheck(options: CheckOptions): Promise<CheckSummary>;
|
|
12
20
|
//# sourceMappingURL=action-check.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-check.d.ts","sourceRoot":"","sources":["../../src/package/action-check.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"action-check.d.ts","sourceRoot":"","sources":["../../src/package/action-check.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAM9D,MAAM,MAAM,YAAY,GAAG,mBAAmB,GAAG;IAC/C,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAkD9E"}
|
|
@@ -1,123 +1,57 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/* eslint-disable no-console */
|
|
3
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
-
};
|
|
6
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
3
|
exports.actionCheck = actionCheck;
|
|
8
|
-
const node_fs_1 = __importDefault(require("node:fs"));
|
|
9
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
10
4
|
const utils_1 = require("../utils");
|
|
11
|
-
const
|
|
12
|
-
const
|
|
5
|
+
const resolve_files_1 = require("./resolve-files");
|
|
6
|
+
const calculate_diff_1 = require("./calculate-diff");
|
|
13
7
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
8
|
+
* Check whether the output directories are in sync with the desired file state.
|
|
9
|
+
*
|
|
10
|
+
* Uses resolveFiles() to build the desired file list (installing packages as needed),
|
|
11
|
+
* then calculateDiff() to find files that are missing, conflicting, or extra.
|
|
12
|
+
* Conflict detection reports content/managed mismatches only — gitignore-only
|
|
13
|
+
* conflicts are excluded since gitignore state is managed by extract, not a data
|
|
14
|
+
* integrity issue.
|
|
16
15
|
*/
|
|
17
|
-
/** Unique key for a set entry: same package with different selectors is a distinct entry. */
|
|
18
|
-
const entryKey = (entry) => `${(0, utils_1.parsePackageSpec)(entry.package).name}|${JSON.stringify(entry.selector ?? {})}`;
|
|
19
|
-
// eslint-disable-next-line complexity
|
|
20
16
|
async function actionCheck(options) {
|
|
21
|
-
const { entries, cwd, verbose = false, onProgress
|
|
22
|
-
const summary = { missing: [],
|
|
23
|
-
// Skip already-visited entries to break recursion cycles; mark the rest as visited.
|
|
24
|
-
const entriesToProcess = entries.filter((entry) => !visitedEntries.has(entryKey(entry)));
|
|
25
|
-
for (const entry of entriesToProcess) {
|
|
26
|
-
visitedEntries.add(entryKey(entry));
|
|
27
|
-
}
|
|
17
|
+
const { entries, cwd, verbose = false, onProgress } = options;
|
|
18
|
+
const summary = { missing: [], conflict: [], extra: [] };
|
|
28
19
|
if (verbose) {
|
|
29
|
-
console.log(`[verbose]
|
|
20
|
+
console.log(`[verbose] actionCheck: resolving files (cwd: ${(0, utils_1.formatDisplayPath)(cwd, cwd)})`);
|
|
30
21
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
packageVersion: pkg.version ?? 'latest',
|
|
45
|
-
});
|
|
46
|
-
// Check if package is installed
|
|
47
|
-
const pkgPath = (0, utils_1.getInstalledPackagePath)(pkg.name, cwd);
|
|
48
|
-
// Read existing marker and filter to entries owned by this package only.
|
|
49
|
-
// Multiple packages may share the same outputDir; passing the full marker to
|
|
50
|
-
// checkFileset would cause files owned by other packages to be checked against
|
|
51
|
-
// the current package's source, producing false positives.
|
|
52
|
-
const existingMarker = await (0, markers_1.readOutputDirMarker)(outputDir);
|
|
53
|
-
const pkgMarker = existingMarker.filter((m) => m.packageName === pkg.name);
|
|
54
|
-
if (!pkgPath) {
|
|
55
|
-
console.error(`Package ${pkg.name} is not installed. Run 'extract' first.`);
|
|
56
|
-
summary.missing.push(...pkgMarker.map((m) => m.path));
|
|
57
|
-
continue;
|
|
58
|
-
}
|
|
59
|
-
const result = await (0, check_1.checkFileset)(pkgPath, outputDir, entry.selector ?? {}, entry.output ?? {}, pkgMarker);
|
|
60
|
-
summary.missing.push(...result.missing);
|
|
61
|
-
summary.modified.push(...result.modified);
|
|
62
|
-
summary.extra.push(...result.extra);
|
|
63
|
-
onProgress?.({
|
|
64
|
-
type: 'package-end',
|
|
65
|
-
packageName: pkg.name,
|
|
66
|
-
packageVersion: pkg.version ?? 'latest',
|
|
22
|
+
// Skip entries with managed=false — they write no marker so there is nothing to check.
|
|
23
|
+
const managedEntries = entries.filter((e) => e.output?.managed !== false);
|
|
24
|
+
if (managedEntries.length === 0)
|
|
25
|
+
return summary;
|
|
26
|
+
let resolvedFiles;
|
|
27
|
+
try {
|
|
28
|
+
resolvedFiles = await (0, resolve_files_1.resolveFiles)(managedEntries, {
|
|
29
|
+
cwd,
|
|
30
|
+
verbose,
|
|
31
|
+
onProgress: (e) => {
|
|
32
|
+
if (e.type === 'package-start' || e.type === 'package-end')
|
|
33
|
+
onProgress?.(e);
|
|
34
|
+
},
|
|
67
35
|
});
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
visitedEntries.add(entryKey(e));
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
// Self-referencing sets only recurse when presets are active; external sets always recurse.
|
|
91
|
-
const filteredSets = presetFilteredSets.filter((e) => (0, utils_1.parsePackageSpec)(e.package).name !== pkg.name ||
|
|
92
|
-
(entry.selector?.presets?.length ?? 0) > 0);
|
|
93
|
-
if (filteredSets.length > 0) {
|
|
94
|
-
const outputConfig = entry.output ?? {};
|
|
95
|
-
const inheritedEntries = filteredSets.map((depEntry) => {
|
|
96
|
-
const { path: depPath, ...restOutput } = depEntry.output ?? {};
|
|
97
|
-
return {
|
|
98
|
-
...depEntry,
|
|
99
|
-
output: {
|
|
100
|
-
...restOutput,
|
|
101
|
-
path: node_path_1.default.join(outputConfig.path ?? '.', depPath ?? '.'),
|
|
102
|
-
},
|
|
103
|
-
};
|
|
104
|
-
});
|
|
105
|
-
if (verbose) {
|
|
106
|
-
console.log(`[verbose] check: recursing into ${filteredSets.length} set(s) from ${pkg.name}`);
|
|
107
|
-
}
|
|
108
|
-
const subResult = await actionCheck({
|
|
109
|
-
entries: inheritedEntries,
|
|
110
|
-
cwd,
|
|
111
|
-
verbose,
|
|
112
|
-
onProgress,
|
|
113
|
-
visitedEntries,
|
|
114
|
-
});
|
|
115
|
-
summary.missing.push(...subResult.missing);
|
|
116
|
-
summary.modified.push(...subResult.modified);
|
|
117
|
-
summary.extra.push(...subResult.extra);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
36
|
+
}
|
|
37
|
+
finally {
|
|
38
|
+
(0, utils_1.cleanupTempPackageJson)(cwd, verbose);
|
|
39
|
+
}
|
|
40
|
+
if (verbose) {
|
|
41
|
+
console.log(`[verbose] actionCheck: resolved ${resolvedFiles.length} desired file(s)`);
|
|
42
|
+
}
|
|
43
|
+
const managedResolvedFiles = resolvedFiles.filter((f) => f.managed);
|
|
44
|
+
const diff = await (0, calculate_diff_1.calculateDiff)(managedResolvedFiles, verbose, cwd);
|
|
45
|
+
summary.missing.push(...diff.missing.map((e) => e.relPath));
|
|
46
|
+
summary.extra.push(...diff.extra.map((e) => e.relPath));
|
|
47
|
+
// Only report conflicts where content or managed-state differ; gitignore-only
|
|
48
|
+
// mismatches are not a data integrity issue.
|
|
49
|
+
summary.conflict.push(...diff.conflict
|
|
50
|
+
.filter((e) => (e.conflictReasons ?? []).some((r) => r !== 'gitignore'))
|
|
51
|
+
.map((e) => e.relPath));
|
|
52
|
+
if (verbose) {
|
|
53
|
+
console.log(`[verbose] actionCheck: missing=${summary.missing.length}` +
|
|
54
|
+
` conflict=${summary.conflict.length} extra=${summary.extra.length}`);
|
|
121
55
|
}
|
|
122
56
|
return summary;
|
|
123
57
|
}
|