npmdata 0.18.11 → 0.18.13
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 +42 -109
- 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 +206 -229
- 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 +101 -137
- 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 +37 -10
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,198 @@
|
|
|
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.resolveFiles = resolveFiles;
|
|
7
|
+
/* eslint-disable no-console */
|
|
8
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
9
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
const utils_1 = require("../utils");
|
|
11
|
+
const package_files_1 = require("../fileset/package-files");
|
|
12
|
+
const config_merge_1 = require("./config-merge");
|
|
13
|
+
/** Unique key for an entry used for recursion-cycle detection. */
|
|
14
|
+
function entryKey(entry, output, selector, currentPkgPath) {
|
|
15
|
+
const packageScope = entry.package ?? `__self__:${currentPkgPath ?? ''}`;
|
|
16
|
+
return `${packageScope}|${JSON.stringify(selector)}|${JSON.stringify(output)}`;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Recursively resolve all entries into a flat list of desired files.
|
|
20
|
+
*
|
|
21
|
+
* Two entry types are handled:
|
|
22
|
+
* - Self-package entry (no `package` field): enumerates files directly from the
|
|
23
|
+
* package context provided by the parent recursion level.
|
|
24
|
+
* - External-package entry (`package` field set): installs the package, reads its
|
|
25
|
+
* npmdata.sets, and recurses; when the package has no sets, files are enumerated
|
|
26
|
+
* directly (leaf behaviour).
|
|
27
|
+
*
|
|
28
|
+
* Duplicate (outputDir, relPath) pairs are deduplicated; conflicting managed/gitignore
|
|
29
|
+
* settings for the same destination path throw an error.
|
|
30
|
+
*/
|
|
31
|
+
async function resolveFiles(entries, options) {
|
|
32
|
+
const visited = new Set();
|
|
33
|
+
const raw = await resolveFilesInternal(entries, { path: '.' }, {},
|
|
34
|
+
// eslint-disable-next-line no-undefined
|
|
35
|
+
undefined,
|
|
36
|
+
// eslint-disable-next-line no-undefined
|
|
37
|
+
undefined,
|
|
38
|
+
// eslint-disable-next-line no-undefined
|
|
39
|
+
undefined, options, visited);
|
|
40
|
+
return deduplicateAndCheckConflicts(raw);
|
|
41
|
+
}
|
|
42
|
+
// eslint-disable-next-line complexity
|
|
43
|
+
async function resolveFilesInternal(entries, inheritedOutput, inheritedSelector, currentPkgPath, currentPkgName, currentPkgVersion, options, visited) {
|
|
44
|
+
const { cwd, verbose, onProgress } = options;
|
|
45
|
+
const resolvedEntries = entries.map((entry) => {
|
|
46
|
+
const mergedOutput = (0, config_merge_1.mergeOutputConfig)(inheritedOutput, entry.output ?? {});
|
|
47
|
+
const entrySelector = entry.selector ?? {};
|
|
48
|
+
const mergedSelector = (0, config_merge_1.mergeSelectorConfig)(inheritedSelector, entrySelector);
|
|
49
|
+
return {
|
|
50
|
+
entry,
|
|
51
|
+
mergedOutput,
|
|
52
|
+
mergedSelector,
|
|
53
|
+
key: entryKey(entry, mergedOutput, mergedSelector, currentPkgPath),
|
|
54
|
+
};
|
|
55
|
+
});
|
|
56
|
+
const entriesToProcess = resolvedEntries.filter(({ key }) => !visited.has(key));
|
|
57
|
+
for (const { key } of entriesToProcess)
|
|
58
|
+
visited.add(key);
|
|
59
|
+
if (verbose && entriesToProcess.length > 0) {
|
|
60
|
+
console.log(`[verbose] resolveFiles: processing ${entriesToProcess.length} entr${entriesToProcess.length === 1 ? 'y' : 'ies'}`);
|
|
61
|
+
}
|
|
62
|
+
const results = [];
|
|
63
|
+
for (const { entry, mergedOutput, mergedSelector } of entriesToProcess) {
|
|
64
|
+
if (!entry.package) {
|
|
65
|
+
// ── Self-package entry (no package field) ────────────────────────────
|
|
66
|
+
// Enumerates files directly from the current package context.
|
|
67
|
+
if (!currentPkgPath || !currentPkgName) {
|
|
68
|
+
throw new Error('A self-package entry (no "package" field) can only appear inside a ' +
|
|
69
|
+
"package's own npmdata.sets.");
|
|
70
|
+
}
|
|
71
|
+
const outputDir = node_path_1.default.resolve(cwd, mergedOutput.path ?? '.');
|
|
72
|
+
const files = await (0, package_files_1.enumeratePackageFiles)(currentPkgPath, mergedSelector);
|
|
73
|
+
if (verbose) {
|
|
74
|
+
console.log(`[verbose] resolveFiles: self-package "${currentPkgName}" → ${files.length} file(s) to ${(0, utils_1.formatDisplayPath)(outputDir, cwd)}`);
|
|
75
|
+
}
|
|
76
|
+
for (const relPath of files) {
|
|
77
|
+
results.push(buildResolvedFile(relPath, currentPkgPath, currentPkgName, currentPkgVersion ?? '0.0.0', outputDir, mergedOutput));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
// ── External-package entry ────────────────────────────────────────────
|
|
82
|
+
const pkg = (0, utils_1.parsePackageSpec)(entry.package);
|
|
83
|
+
const upgrade = mergedSelector.upgrade ?? false;
|
|
84
|
+
onProgress?.({
|
|
85
|
+
type: 'package-start',
|
|
86
|
+
packageName: pkg.name,
|
|
87
|
+
packageVersion: pkg.version ?? 'latest',
|
|
88
|
+
});
|
|
89
|
+
const pkgPath = await (0, utils_1.installOrUpgradePackage)(pkg.name, pkg.version, upgrade, cwd, verbose);
|
|
90
|
+
let installedVersion = '0.0.0';
|
|
91
|
+
try {
|
|
92
|
+
const pkgJsonContent = JSON.parse(node_fs_1.default.readFileSync(node_path_1.default.join(pkgPath, 'package.json')).toString());
|
|
93
|
+
installedVersion = pkgJsonContent.version;
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// fallback
|
|
97
|
+
}
|
|
98
|
+
if (verbose) {
|
|
99
|
+
console.log(`[verbose] resolveFiles: resolved "${pkg.name}@${installedVersion}" at ${(0, utils_1.formatDisplayPath)(pkgPath, cwd)}`);
|
|
100
|
+
}
|
|
101
|
+
// Check whether this package declares its own npmdata.sets
|
|
102
|
+
let pkgNpmdataSets;
|
|
103
|
+
try {
|
|
104
|
+
const depPkgJson = JSON.parse(node_fs_1.default.readFileSync(node_path_1.default.join(pkgPath, 'package.json')).toString());
|
|
105
|
+
pkgNpmdataSets = depPkgJson.npmdata?.sets;
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
// no sets
|
|
109
|
+
}
|
|
110
|
+
const outputDir = node_path_1.default.resolve(cwd, mergedOutput.path ?? '.');
|
|
111
|
+
const hasSelfSet = (pkgNpmdataSets ?? []).some((setEntry) => !setEntry.package);
|
|
112
|
+
// When a package declares self sets, those sets define how its own files are split
|
|
113
|
+
// across outputs and managed flags. In that case, skip the blanket own-file pass.
|
|
114
|
+
const ownFiles = hasSelfSet ? [] : await (0, package_files_1.enumeratePackageFiles)(pkgPath, mergedSelector);
|
|
115
|
+
if (verbose) {
|
|
116
|
+
console.log(`[verbose] resolveFiles: "${pkg.name}" own files → ${ownFiles.length} file(s) to ${(0, utils_1.formatDisplayPath)(outputDir, cwd)}`);
|
|
117
|
+
}
|
|
118
|
+
for (const relPath of ownFiles) {
|
|
119
|
+
results.push(buildResolvedFile(relPath, pkgPath, pkg.name, installedVersion, outputDir, mergedOutput));
|
|
120
|
+
}
|
|
121
|
+
if (pkgNpmdataSets && pkgNpmdataSets.length > 0) {
|
|
122
|
+
// Apply preset filter
|
|
123
|
+
const presetFilteredSets = (0, utils_1.filterEntriesByPresets)(pkgNpmdataSets, mergedSelector.presets);
|
|
124
|
+
if (mergedSelector.presets &&
|
|
125
|
+
mergedSelector.presets.length > 0 &&
|
|
126
|
+
pkgNpmdataSets.length > 0 &&
|
|
127
|
+
presetFilteredSets.length === 0) {
|
|
128
|
+
throw new Error(`Presets (${mergedSelector.presets.join(', ')}) not found in any set of package "${pkg.name}"`);
|
|
129
|
+
}
|
|
130
|
+
// Preemptively mark preset-excluded sets as visited
|
|
131
|
+
for (const e of pkgNpmdataSets) {
|
|
132
|
+
if (!presetFilteredSets.includes(e)) {
|
|
133
|
+
const presetMergedOutput = (0, config_merge_1.mergeOutputConfig)(mergedOutput, e.output ?? {});
|
|
134
|
+
const presetMergedSelector = (0, config_merge_1.mergeSelectorConfig)(mergedSelector, e.selector ?? {});
|
|
135
|
+
visited.add(entryKey(e, presetMergedOutput, presetMergedSelector, pkgPath));
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// Self-package sets are followed whenever the package declares them,
|
|
139
|
+
// because they define the package's own extraction semantics. When a
|
|
140
|
+
// caller filters by selector.presets, those self sets are filtered by
|
|
141
|
+
// the preset selection above.
|
|
142
|
+
const setsToFollow = presetFilteredSets.filter((e) => typeof e.package === 'string' || hasSelfSet);
|
|
143
|
+
if (verbose && setsToFollow.length > 0) {
|
|
144
|
+
console.log(`[verbose] resolveFiles: "${pkg.name}" has ${pkgNpmdataSets.length} set(s)` +
|
|
145
|
+
`, ${setsToFollow.length} to follow after preset/self-ref filter`);
|
|
146
|
+
}
|
|
147
|
+
if (setsToFollow.length > 0) {
|
|
148
|
+
const subResults = await resolveFilesInternal(setsToFollow, mergedOutput, mergedSelector, pkgPath, pkg.name, installedVersion, options, visited);
|
|
149
|
+
results.push(...subResults);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
onProgress?.({
|
|
153
|
+
type: 'package-end',
|
|
154
|
+
packageName: pkg.name,
|
|
155
|
+
packageVersion: installedVersion,
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return results;
|
|
160
|
+
}
|
|
161
|
+
function buildResolvedFile(relPath, pkgPath, packageName, packageVersion, outputDir, output) {
|
|
162
|
+
return {
|
|
163
|
+
relPath,
|
|
164
|
+
sourcePath: node_path_1.default.join(pkgPath, relPath),
|
|
165
|
+
packageName,
|
|
166
|
+
packageVersion,
|
|
167
|
+
outputDir,
|
|
168
|
+
managed: output.managed !== false,
|
|
169
|
+
gitignore: output.gitignore !== false,
|
|
170
|
+
force: output.force ?? false,
|
|
171
|
+
ignoreIfExisting: output.keepExisting ?? false,
|
|
172
|
+
contentReplacements: output.contentReplacements ?? [],
|
|
173
|
+
symlinks: output.symlinks ?? [],
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Remove duplicate (outputDir, relPath) pairs, checking that duplicates have
|
|
178
|
+
* compatible managed and gitignore settings. Throws on conflict.
|
|
179
|
+
*/
|
|
180
|
+
function deduplicateAndCheckConflicts(files) {
|
|
181
|
+
const byKey = new Map();
|
|
182
|
+
for (const file of files) {
|
|
183
|
+
const key = `${file.outputDir}|${file.relPath}`;
|
|
184
|
+
const existing = byKey.get(key);
|
|
185
|
+
if (!existing) {
|
|
186
|
+
byKey.set(key, file);
|
|
187
|
+
}
|
|
188
|
+
else if (existing.managed !== file.managed || existing.gitignore !== file.gitignore) {
|
|
189
|
+
throw new Error(`Conflict in resolve: file "${file.relPath}" in "${file.outputDir}" is resolved by ` +
|
|
190
|
+
`"${existing.packageName}" (managed=${existing.managed}, gitignore=${existing.gitignore}) ` +
|
|
191
|
+
`and "${file.packageName}" (managed=${file.managed}, gitignore=${file.gitignore}) ` +
|
|
192
|
+
`with different settings.`);
|
|
193
|
+
}
|
|
194
|
+
// Same settings — keep first occurrence (idempotent)
|
|
195
|
+
}
|
|
196
|
+
return [...byKey.values()];
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=resolve-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-files.js","sourceRoot":"","sources":["../../src/package/resolve-files.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -23,6 +23,10 @@ export type SelectorConfig = {
|
|
|
23
23
|
* Default: all files except package.json, bin/**, README.md, node_modules/**
|
|
24
24
|
*/
|
|
25
25
|
files?: string[];
|
|
26
|
+
/**
|
|
27
|
+
* Internal: grouped file patterns that must all match during recursive selector merges.
|
|
28
|
+
*/
|
|
29
|
+
filePatternGroups?: string[][];
|
|
26
30
|
/**
|
|
27
31
|
* Glob patterns; files matching any of these are excluded even if they match `files`.
|
|
28
32
|
*/
|
|
@@ -113,10 +117,19 @@ export type ContentReplacementConfig = {
|
|
|
113
117
|
};
|
|
114
118
|
/**
|
|
115
119
|
* One entry in the npmdata.sets array. Represents a single extraction target.
|
|
120
|
+
*
|
|
121
|
+
* Two variants:
|
|
122
|
+
* - Self-package entry (no `package` field): leaf of recursion; files come from the
|
|
123
|
+
* package whose npmdata.sets contains this entry.
|
|
124
|
+
* - External-package entry (`package` field set): recurses into the named package's own
|
|
125
|
+
* npmdata.sets (or enumerates its files directly when it has no sets).
|
|
116
126
|
*/
|
|
117
127
|
export type NpmdataExtractEntry = {
|
|
118
|
-
/**
|
|
119
|
-
|
|
128
|
+
/**
|
|
129
|
+
* Flat package spec string ("my-pkg@^1.2.3"). When absent the entry is a
|
|
130
|
+
* self-package entry — files are drawn from the package that owns this sets array.
|
|
131
|
+
*/
|
|
132
|
+
package?: string;
|
|
120
133
|
/** Where/how to write files. Defaults to current directory with no special flags. */
|
|
121
134
|
output?: OutputConfig;
|
|
122
135
|
/** Which files to select and install options. */
|
|
@@ -198,6 +211,13 @@ export type ManagedFileMetadata = {
|
|
|
198
211
|
/**
|
|
199
212
|
* Event emitted by extract/check/purge for UI progress reporting.
|
|
200
213
|
*/
|
|
214
|
+
export type FileProgressEvent = {
|
|
215
|
+
type: 'file-added' | 'file-modified' | 'file-deleted' | 'file-skipped';
|
|
216
|
+
packageName: string;
|
|
217
|
+
file: string;
|
|
218
|
+
managed: boolean;
|
|
219
|
+
gitignore: boolean;
|
|
220
|
+
};
|
|
201
221
|
export type ProgressEvent = {
|
|
202
222
|
type: 'package-start';
|
|
203
223
|
packageName: string;
|
|
@@ -206,23 +226,7 @@ export type ProgressEvent = {
|
|
|
206
226
|
type: 'package-end';
|
|
207
227
|
packageName: string;
|
|
208
228
|
packageVersion: string;
|
|
209
|
-
} |
|
|
210
|
-
type: 'file-added';
|
|
211
|
-
packageName: string;
|
|
212
|
-
file: string;
|
|
213
|
-
} | {
|
|
214
|
-
type: 'file-modified';
|
|
215
|
-
packageName: string;
|
|
216
|
-
file: string;
|
|
217
|
-
} | {
|
|
218
|
-
type: 'file-deleted';
|
|
219
|
-
packageName: string;
|
|
220
|
-
file: string;
|
|
221
|
-
} | {
|
|
222
|
-
type: 'file-skipped';
|
|
223
|
-
packageName: string;
|
|
224
|
-
file: string;
|
|
225
|
-
};
|
|
229
|
+
} | FileProgressEvent;
|
|
226
230
|
/**
|
|
227
231
|
* Result of a check operation for a single fileset.
|
|
228
232
|
*/
|
|
@@ -260,4 +264,67 @@ export type ExecuteResult = {
|
|
|
260
264
|
/** Number of files skipped. */
|
|
261
265
|
skipped: number;
|
|
262
266
|
};
|
|
267
|
+
/**
|
|
268
|
+
* A single resolved file produced by resolveFiles().
|
|
269
|
+
* Carries all metadata needed to apply disk changes without further config lookups.
|
|
270
|
+
*/
|
|
271
|
+
export type ResolvedFile = {
|
|
272
|
+
/** Relative path within the output directory. */
|
|
273
|
+
relPath: string;
|
|
274
|
+
/** Absolute path of the source file in the installed package directory. */
|
|
275
|
+
sourcePath: string;
|
|
276
|
+
/** Name of the npm package that owns this file. */
|
|
277
|
+
packageName: string;
|
|
278
|
+
/** Installed version of the source package. */
|
|
279
|
+
packageVersion: string;
|
|
280
|
+
/** Absolute path of the output directory where the file should be written. */
|
|
281
|
+
outputDir: string;
|
|
282
|
+
/** Whether the file should be tracked in the .npmdata marker. Default: true. */
|
|
283
|
+
managed: boolean;
|
|
284
|
+
/** Whether the file should be added to .gitignore. Default: true. */
|
|
285
|
+
gitignore: boolean;
|
|
286
|
+
/** Whether to overwrite an existing unmanaged file. Default: false. */
|
|
287
|
+
force: boolean;
|
|
288
|
+
/** Whether to skip files that already exist in the output. Default: false. */
|
|
289
|
+
ignoreIfExisting: boolean;
|
|
290
|
+
/** Content replacement rules applied to this file before comparison. */
|
|
291
|
+
contentReplacements: ContentReplacementConfig[];
|
|
292
|
+
/** Symlink operations to apply in the output directory after extraction. */
|
|
293
|
+
symlinks: SymlinkConfig[];
|
|
294
|
+
};
|
|
295
|
+
/** Classification of a single file in the calculateDiff result. */
|
|
296
|
+
export type DiffStatus = 'ok' | 'missing' | 'extra' | 'conflict';
|
|
297
|
+
/**
|
|
298
|
+
* One entry in a DiffResult.
|
|
299
|
+
* - ok: desired file exists, content and state match
|
|
300
|
+
* - missing: desired file is absent from the output directory
|
|
301
|
+
* - extra: managed file in the marker is not present in the desired file list
|
|
302
|
+
* - conflict: desired file exists but content, managed state, or gitignore state differs
|
|
303
|
+
*/
|
|
304
|
+
export type DiffEntry = {
|
|
305
|
+
status: DiffStatus;
|
|
306
|
+
/** Relative path within the output directory. */
|
|
307
|
+
relPath: string;
|
|
308
|
+
/** Absolute path to the output directory. */
|
|
309
|
+
outputDir: string;
|
|
310
|
+
/** Desired file metadata (absent for 'extra' entries). */
|
|
311
|
+
desired?: ResolvedFile;
|
|
312
|
+
/** Existing marker entry (absent for 'missing' entries and unmanaged conflicts). */
|
|
313
|
+
existing?: ManagedFileMetadata;
|
|
314
|
+
/** Reasons for conflict (only set for 'conflict' status). */
|
|
315
|
+
conflictReasons?: Array<'content' | 'managed' | 'gitignore'>;
|
|
316
|
+
};
|
|
317
|
+
/**
|
|
318
|
+
* Aggregate result of calculateDiff().
|
|
319
|
+
*/
|
|
320
|
+
export type DiffResult = {
|
|
321
|
+
/** Desired files that already match the output directory. */
|
|
322
|
+
ok: DiffEntry[];
|
|
323
|
+
/** Desired files absent from the output directory. */
|
|
324
|
+
missing: DiffEntry[];
|
|
325
|
+
/** Managed files in the marker that are not in the desired file list. */
|
|
326
|
+
extra: DiffEntry[];
|
|
327
|
+
/** Desired files with content, managed-state, or gitignore-state mismatch. */
|
|
328
|
+
conflict: DiffEntry[];
|
|
329
|
+
};
|
|
263
330
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B;;OAEG;IACH,mBAAmB,CAAC,EAAE,wBAAwB,EAAE,CAAC;CAClD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,+DAA+D;IAC/D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -41,6 +41,10 @@ export declare function getInstalledPackagePath(name: string, cwd?: string): str
|
|
|
41
41
|
* Ensure a directory exists, creating it recursively if needed.
|
|
42
42
|
*/
|
|
43
43
|
export declare function ensureDir(dir: string): void;
|
|
44
|
+
/**
|
|
45
|
+
* Format a path for logs relative to the current working directory used by the action.
|
|
46
|
+
*/
|
|
47
|
+
export declare function formatDisplayPath(targetPath: string, cwd?: string): string;
|
|
44
48
|
/**
|
|
45
49
|
* Filter entries by requested presets.
|
|
46
50
|
* When no presets are requested, all entries pass through.
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAM/C,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAM/C,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAY7D;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAO5D;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQhE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAE3D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAUtD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAef;AA2CD;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,OAAO,EAChB,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,MAAM,CAAC,CAgFjB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQjF;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAI3C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ1E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,mBAAmB,EAAE,EAC9B,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,GAC5B,mBAAmB,EAAE,CASvB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAyB5E;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CA0C3E;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,GAAG,SAAS,EAC5B,WAAW,EAAE,OAAO,GACnB,UAAU,CAAC,OAAO,SAAS,CAAC,CAqC9B"}
|
package/dist/utils.js
CHANGED
|
@@ -12,6 +12,7 @@ exports.getInstalledIfSatisfies = getInstalledIfSatisfies;
|
|
|
12
12
|
exports.installOrUpgradePackage = installOrUpgradePackage;
|
|
13
13
|
exports.getInstalledPackagePath = getInstalledPackagePath;
|
|
14
14
|
exports.ensureDir = ensureDir;
|
|
15
|
+
exports.formatDisplayPath = formatDisplayPath;
|
|
15
16
|
exports.filterEntriesByPresets = filterEntriesByPresets;
|
|
16
17
|
exports.initTempPackageJson = initTempPackageJson;
|
|
17
18
|
exports.cleanupTempPackageJson = cleanupTempPackageJson;
|
|
@@ -25,6 +26,15 @@ const node_child_process_1 = require("node:child_process");
|
|
|
25
26
|
const semver_1 = __importDefault(require("semver"));
|
|
26
27
|
const detect_1 = require("package-manager-detector/detect");
|
|
27
28
|
const commands_1 = require("package-manager-detector/commands");
|
|
29
|
+
const PACKAGE_MANAGER_LOCK_FILES = [
|
|
30
|
+
'package-lock.json',
|
|
31
|
+
'npm-shrinkwrap.json',
|
|
32
|
+
'pnpm-lock.yaml',
|
|
33
|
+
'yarn.lock',
|
|
34
|
+
'bun.lock',
|
|
35
|
+
'bun.lockb',
|
|
36
|
+
'deno.lock',
|
|
37
|
+
];
|
|
28
38
|
/**
|
|
29
39
|
* Parse a package spec like "my-pkg@^1.2.3" or "@scope/pkg@2.x" into name and version.
|
|
30
40
|
* The version separator is the LAST "@" so that scoped packages ("@scope/name") are handled.
|
|
@@ -101,7 +111,7 @@ function getInstalledIfSatisfies(name, version, workDir) {
|
|
|
101
111
|
*/
|
|
102
112
|
async function runPackageManagerCommand(spec, commandType, workDir, verbose) {
|
|
103
113
|
if (verbose) {
|
|
104
|
-
console.log(`[verbose] Running package manager command for spec "${spec}" with type "${commandType}" in directory "${workDir}"`);
|
|
114
|
+
console.log(`[verbose] Running package manager command for spec "${spec}" with type "${commandType}" in directory "${formatDisplayPath(workDir, workDir)}"`);
|
|
105
115
|
}
|
|
106
116
|
const detected = await (0, detect_1.detect)({ cwd: workDir });
|
|
107
117
|
const agent = detected?.agent ?? 'npm';
|
|
@@ -129,10 +139,10 @@ async function runPackageManagerCommand(spec, commandType, workDir, verbose) {
|
|
|
129
139
|
* If no package.json exists in the working directory, one is initialised automatically.
|
|
130
140
|
*/
|
|
131
141
|
async function installOrUpgradePackage(name, version, upgrade, cwd, verbose) {
|
|
142
|
+
const workDir = cwd ?? process.cwd();
|
|
132
143
|
if (verbose) {
|
|
133
|
-
console.log(`[verbose] installing/upgrading package="${name}", version="${version}", upgrade=${upgrade}, cwd="${
|
|
144
|
+
console.log(`[verbose] installing/upgrading package="${name}", version="${version}", upgrade=${upgrade}, cwd="${formatDisplayPath(workDir, workDir)}"`);
|
|
134
145
|
}
|
|
135
|
-
const workDir = cwd ?? process.cwd();
|
|
136
146
|
const spec = version ? `${name}@${version}` : `${name}@latest`;
|
|
137
147
|
// Check if already installed with a satisfying version (skip install if not upgrading)
|
|
138
148
|
if (!upgrade) {
|
|
@@ -149,7 +159,7 @@ async function installOrUpgradePackage(name, version, upgrade, cwd, verbose) {
|
|
|
149
159
|
const pkgJsonPath = node_path_1.default.join(workDir, 'package.json');
|
|
150
160
|
if (!node_fs_1.default.existsSync(pkgJsonPath)) {
|
|
151
161
|
if (verbose) {
|
|
152
|
-
console.log(`[verbose] No package.json found in ${workDir}, initializing one`);
|
|
162
|
+
console.log(`[verbose] No package.json found in ${formatDisplayPath(workDir, workDir)}, initializing one`);
|
|
153
163
|
}
|
|
154
164
|
initTempPackageJson(workDir, verbose);
|
|
155
165
|
// reinstall itself to ensure it's present in node_modules for later use (e.g. to access its own package.json)
|
|
@@ -158,7 +168,7 @@ async function installOrUpgradePackage(name, version, upgrade, cwd, verbose) {
|
|
|
158
168
|
const selfPkg = JSON.parse(node_fs_1.default.readFileSync(selfPkgJsonPath).toString());
|
|
159
169
|
const selfSpec = `${selfPkg.name}@${selfPkg.version}`;
|
|
160
170
|
if (verbose) {
|
|
161
|
-
console.log(`[verbose] reinstalling self (${selfSpec}) in dir ${workDir} to ensure it's upgraded`);
|
|
171
|
+
console.log(`[verbose] reinstalling self (${selfSpec}) in dir ${formatDisplayPath(workDir, workDir)} to ensure it's upgraded`);
|
|
162
172
|
}
|
|
163
173
|
await runPackageManagerCommand(selfSpec, 'add', workDir, verbose);
|
|
164
174
|
}
|
|
@@ -173,13 +183,13 @@ async function installOrUpgradePackage(name, version, upgrade, cwd, verbose) {
|
|
|
173
183
|
// Fall back to Node.js module resolution, which handles pnpm workspaces where the
|
|
174
184
|
// package may be installed in the workspace root's node_modules rather than locally.
|
|
175
185
|
if (verbose) {
|
|
176
|
-
console.warn(`[verbose] ${pkgPath} not found, trying require.resolve fallback`);
|
|
186
|
+
console.warn(`[verbose] ${formatDisplayPath(pkgPath, workDir)} not found, trying require.resolve fallback`);
|
|
177
187
|
}
|
|
178
188
|
try {
|
|
179
189
|
const resolved = require.resolve(`${name}/package.json`, { paths: [workDir] });
|
|
180
190
|
pkgPath = node_path_1.default.dirname(resolved);
|
|
181
191
|
if (verbose) {
|
|
182
|
-
console.log(`[verbose] resolved ${name} via require.resolve to ${pkgPath}`);
|
|
192
|
+
console.log(`[verbose] resolved ${name} via require.resolve to ${formatDisplayPath(pkgPath, workDir)}`);
|
|
183
193
|
}
|
|
184
194
|
}
|
|
185
195
|
catch {
|
|
@@ -209,6 +219,17 @@ function ensureDir(dir) {
|
|
|
209
219
|
node_fs_1.default.mkdirSync(dir, { recursive: true });
|
|
210
220
|
}
|
|
211
221
|
}
|
|
222
|
+
/**
|
|
223
|
+
* Format a path for logs relative to the current working directory used by the action.
|
|
224
|
+
*/
|
|
225
|
+
function formatDisplayPath(targetPath, cwd) {
|
|
226
|
+
const baseDir = node_path_1.default.resolve(cwd ?? process.cwd());
|
|
227
|
+
const resolvedTarget = node_path_1.default.isAbsolute(targetPath)
|
|
228
|
+
? node_path_1.default.normalize(targetPath)
|
|
229
|
+
: node_path_1.default.resolve(baseDir, targetPath);
|
|
230
|
+
const relativePath = node_path_1.default.relative(baseDir, resolvedTarget);
|
|
231
|
+
return relativePath.length === 0 ? '.' : relativePath;
|
|
232
|
+
}
|
|
212
233
|
/**
|
|
213
234
|
* Filter entries by requested presets.
|
|
214
235
|
* When no presets are requested, all entries pass through.
|
|
@@ -231,7 +252,7 @@ function filterEntriesByPresets(entries, presets) {
|
|
|
231
252
|
function initTempPackageJson(workDir, verbose) {
|
|
232
253
|
const pkgJsonPath = node_path_1.default.join(workDir, 'package.json');
|
|
233
254
|
if (verbose) {
|
|
234
|
-
console.log(`[verbose] extract: creating temporary package.json at ${pkgJsonPath} for this extraction`);
|
|
255
|
+
console.log(`[verbose] extract: creating temporary package.json at ${formatDisplayPath(pkgJsonPath, workDir)} for this extraction`);
|
|
235
256
|
}
|
|
236
257
|
node_fs_1.default.writeFileSync(pkgJsonPath, JSON.stringify({ name: 'npmdata-tmp', version: '99.99.99', private: true }, undefined, 2));
|
|
237
258
|
// Ensure node_modules is ignored in .gitignore
|
|
@@ -257,7 +278,7 @@ function cleanupTempPackageJson(cwd, verbose) {
|
|
|
257
278
|
if (tempPkgJsonContent.name !== 'npmdata-tmp' || tempPkgJsonContent.version !== '99.99.99')
|
|
258
279
|
return;
|
|
259
280
|
if (verbose) {
|
|
260
|
-
console.log(`[verbose] extract: removing temporary package.json and node_modules at ${tempPkgJsonPath} created for this extraction`);
|
|
281
|
+
console.log(`[verbose] extract: removing temporary package.json and node_modules at ${formatDisplayPath(tempPkgJsonPath, cwd)} created for this extraction`);
|
|
261
282
|
}
|
|
262
283
|
// remove package.json
|
|
263
284
|
node_fs_1.default.unlinkSync(tempPkgJsonPath);
|
|
@@ -266,6 +287,12 @@ function cleanupTempPackageJson(cwd, verbose) {
|
|
|
266
287
|
if (node_fs_1.default.existsSync(tempNodeModulesPath)) {
|
|
267
288
|
node_fs_1.default.rmSync(tempNodeModulesPath, { recursive: true, force: true });
|
|
268
289
|
}
|
|
290
|
+
for (const lockFileName of PACKAGE_MANAGER_LOCK_FILES) {
|
|
291
|
+
const lockFilePath = node_path_1.default.join(cwd, lockFileName);
|
|
292
|
+
if (node_fs_1.default.existsSync(lockFilePath)) {
|
|
293
|
+
node_fs_1.default.rmSync(lockFilePath, { force: true });
|
|
294
|
+
}
|
|
295
|
+
}
|
|
269
296
|
// cleanup .gitignore if it only contains node_modules (optional, can be left as is)
|
|
270
297
|
const gitignorePath = node_path_1.default.join(cwd, '.gitignore');
|
|
271
298
|
if (node_fs_1.default.existsSync(gitignorePath)) {
|
|
@@ -282,7 +309,7 @@ function cleanupTempPackageJson(cwd, verbose) {
|
|
|
282
309
|
function spawnWithLog(command, args, workDir, verbose, failOnError) {
|
|
283
310
|
const scriptCmd = `${command} ${args.join(' ')}`;
|
|
284
311
|
if (verbose) {
|
|
285
|
-
console.log(`[verbose] Running command: ${scriptCmd} in ${workDir}`);
|
|
312
|
+
console.log(`[verbose] Running command: ${scriptCmd} in ${formatDisplayPath(workDir, workDir)}`);
|
|
286
313
|
}
|
|
287
314
|
const result = (0, node_child_process_1.spawnSync)(scriptCmd, undefined, {
|
|
288
315
|
cwd: workDir,
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|