npmdata 0.19.0 → 0.20.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 +83 -46
- package/dist/cli/argv.d.ts +4 -1
- package/dist/cli/argv.d.ts.map +1 -1
- package/dist/cli/argv.js +13 -0
- package/dist/cli/argv.js.map +1 -1
- package/dist/cli/usage.d.ts.map +1 -1
- package/dist/cli/usage.js +4 -0
- package/dist/cli/usage.js.map +1 -1
- package/dist/fileset/constants.d.ts.map +1 -1
- package/dist/fileset/constants.js +3 -0
- package/dist/fileset/constants.js.map +1 -1
- package/dist/fileset/test-utils.d.ts +9 -0
- package/dist/fileset/test-utils.d.ts.map +1 -1
- package/dist/fileset/test-utils.js +32 -1
- package/dist/fileset/test-utils.js.map +1 -1
- package/dist/package/action-check.d.ts.map +1 -1
- package/dist/package/action-check.js +4 -0
- package/dist/package/action-check.js.map +1 -1
- package/dist/package/action-extract.d.ts.map +1 -1
- package/dist/package/action-extract.js +27 -14
- package/dist/package/action-extract.js.map +1 -1
- package/dist/package/action-purge.d.ts.map +1 -1
- package/dist/package/action-purge.js +4 -0
- package/dist/package/action-purge.js.map +1 -1
- package/dist/package/config-merge.d.ts +1 -1
- package/dist/package/config-merge.d.ts.map +1 -1
- package/dist/package/config-merge.js +2 -1
- package/dist/package/config-merge.js.map +1 -1
- package/dist/package/config.d.ts +4 -0
- package/dist/package/config.d.ts.map +1 -1
- package/dist/package/config.js +36 -0
- package/dist/package/config.js.map +1 -1
- package/dist/package/resolve-files.d.ts +3 -0
- package/dist/package/resolve-files.d.ts.map +1 -1
- package/dist/package/resolve-files.js +35 -34
- package/dist/package/resolve-files.js.map +1 -1
- package/dist/package/source.d.ts +20 -0
- package/dist/package/source.d.ts.map +1 -0
- package/dist/package/source.js +193 -0
- package/dist/package/source.js.map +1 -0
- package/dist/types.d.ts +15 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,193 @@
|
|
|
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.parsePackageTarget = parsePackageTarget;
|
|
7
|
+
exports.createSourceRuntime = createSourceRuntime;
|
|
8
|
+
/* eslint-disable no-console */
|
|
9
|
+
const node_crypto_1 = __importDefault(require("node:crypto"));
|
|
10
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
11
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
12
|
+
const utils_1 = require("../utils");
|
|
13
|
+
const GIT_SOURCE_REGEX = /^(?:https?|ssh|git|file):\/\/|^git@/i;
|
|
14
|
+
function parsePackageTarget(spec, requestedSource = 'auto') {
|
|
15
|
+
const source = resolveSourceKind(spec, requestedSource);
|
|
16
|
+
if (source === 'npm') {
|
|
17
|
+
const atIdx = spec.lastIndexOf('@');
|
|
18
|
+
if (atIdx > 0) {
|
|
19
|
+
const requestedVersion = spec.slice(atIdx + 1);
|
|
20
|
+
return {
|
|
21
|
+
source,
|
|
22
|
+
packageName: spec.slice(0, atIdx),
|
|
23
|
+
...(requestedVersion ? { requestedVersion } : {}),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
return { source, packageName: spec };
|
|
27
|
+
}
|
|
28
|
+
const { repository, ref } = splitGitSpec(spec);
|
|
29
|
+
return {
|
|
30
|
+
source,
|
|
31
|
+
packageName: normalizeGitRepository(repository),
|
|
32
|
+
...(ref ? { requestedVersion: ref } : {}),
|
|
33
|
+
repository,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function createSourceRuntime(cwd, verbose = false) {
|
|
37
|
+
const packageCache = new Map();
|
|
38
|
+
const cloneDirs = new Set();
|
|
39
|
+
const tempRoot = node_path_1.default.join(cwd, '.npmdata-tmp');
|
|
40
|
+
const ensureTempRoot = () => {
|
|
41
|
+
if (!node_fs_1.default.existsSync(tempRoot)) {
|
|
42
|
+
node_fs_1.default.mkdirSync(tempRoot, { recursive: true });
|
|
43
|
+
if (verbose) {
|
|
44
|
+
console.log(`[verbose] source: created temp git directory ${(0, utils_1.formatDisplayPath)(tempRoot, cwd)}`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
ensureGitignoreContains(cwd, '.npmdata-tmp');
|
|
48
|
+
};
|
|
49
|
+
return {
|
|
50
|
+
async resolvePackage(entry, upgrade) {
|
|
51
|
+
if (!entry.package) {
|
|
52
|
+
throw new Error('resolvePackage requires an entry with a package spec');
|
|
53
|
+
}
|
|
54
|
+
const target = parsePackageTarget(entry.package, entry.source);
|
|
55
|
+
const cacheKey = `${target.source}|${target.packageName}|${target.requestedVersion ?? ''}`;
|
|
56
|
+
if (!upgrade) {
|
|
57
|
+
const cached = packageCache.get(cacheKey);
|
|
58
|
+
if (cached)
|
|
59
|
+
return cached;
|
|
60
|
+
}
|
|
61
|
+
const resolved = target.source === 'git'
|
|
62
|
+
? resolveGitPackage(target, cwd, tempRoot, ensureTempRoot, verbose)
|
|
63
|
+
: resolveNpmPackage(target, upgrade, cwd, verbose);
|
|
64
|
+
const packageSource = await resolved;
|
|
65
|
+
packageCache.set(cacheKey, packageSource);
|
|
66
|
+
if (packageSource.source === 'git') {
|
|
67
|
+
cloneDirs.add(packageSource.packagePath);
|
|
68
|
+
}
|
|
69
|
+
return packageSource;
|
|
70
|
+
},
|
|
71
|
+
cleanup() {
|
|
72
|
+
for (const cloneDir of cloneDirs) {
|
|
73
|
+
if (node_fs_1.default.existsSync(cloneDir)) {
|
|
74
|
+
node_fs_1.default.rmSync(cloneDir, { recursive: true, force: true });
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
cloneDirs.clear();
|
|
78
|
+
if (node_fs_1.default.existsSync(tempRoot)) {
|
|
79
|
+
try {
|
|
80
|
+
if (node_fs_1.default.readdirSync(tempRoot).length === 0) {
|
|
81
|
+
node_fs_1.default.rmdirSync(tempRoot);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
// ignore cleanup failures
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
function resolveSourceKind(spec, requestedSource) {
|
|
92
|
+
if (requestedSource === 'npm' || requestedSource === 'git')
|
|
93
|
+
return requestedSource;
|
|
94
|
+
return GIT_SOURCE_REGEX.test(spec) ? 'git' : 'npm';
|
|
95
|
+
}
|
|
96
|
+
function splitGitSpec(spec) {
|
|
97
|
+
if (spec.startsWith('git@')) {
|
|
98
|
+
const firstAt = spec.indexOf('@');
|
|
99
|
+
const lastAt = spec.lastIndexOf('@');
|
|
100
|
+
if (lastAt > firstAt) {
|
|
101
|
+
const ref = spec.slice(lastAt + 1);
|
|
102
|
+
return { repository: spec.slice(0, lastAt), ...(ref ? { ref } : {}) };
|
|
103
|
+
}
|
|
104
|
+
return { repository: spec };
|
|
105
|
+
}
|
|
106
|
+
const schemeEnd = spec.indexOf('://');
|
|
107
|
+
if (schemeEnd !== -1) {
|
|
108
|
+
const authStart = schemeEnd + 3;
|
|
109
|
+
const pathStart = spec.indexOf('/', authStart);
|
|
110
|
+
const authEnd = pathStart === -1 ? spec.length : pathStart;
|
|
111
|
+
const lastAt = spec.lastIndexOf('@');
|
|
112
|
+
if (lastAt >= authEnd) {
|
|
113
|
+
const ref = spec.slice(lastAt + 1);
|
|
114
|
+
return { repository: spec.slice(0, lastAt), ...(ref ? { ref } : {}) };
|
|
115
|
+
}
|
|
116
|
+
return { repository: spec };
|
|
117
|
+
}
|
|
118
|
+
throw new Error(`Git source requires a URL-like package spec. Received "${spec}". ` +
|
|
119
|
+
'Use source="git" with a full repository URL such as https://host/org/repo@ref.');
|
|
120
|
+
}
|
|
121
|
+
function normalizeGitRepository(repository) {
|
|
122
|
+
return repository.replace(/\/+$/, '');
|
|
123
|
+
}
|
|
124
|
+
async function resolveNpmPackage(target, upgrade, cwd, verbose) {
|
|
125
|
+
const packagePath = await (0, utils_1.installOrUpgradePackage)(target.packageName, target.requestedVersion, upgrade, cwd, verbose);
|
|
126
|
+
let installedVersion = '0.0.0';
|
|
127
|
+
try {
|
|
128
|
+
const pkgJsonContent = JSON.parse(node_fs_1.default.readFileSync(node_path_1.default.join(packagePath, 'package.json')).toString());
|
|
129
|
+
installedVersion = pkgJsonContent.version;
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
// fallback
|
|
133
|
+
}
|
|
134
|
+
return {
|
|
135
|
+
source: 'npm',
|
|
136
|
+
packageName: target.packageName,
|
|
137
|
+
packageVersion: installedVersion,
|
|
138
|
+
packagePath,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
async function resolveGitPackage(target, cwd, tempRoot, ensureTempRoot, verbose) {
|
|
142
|
+
ensureTempRoot();
|
|
143
|
+
const cloneDir = node_path_1.default.join(tempRoot, buildCloneDirName(target));
|
|
144
|
+
if (node_fs_1.default.existsSync(cloneDir)) {
|
|
145
|
+
node_fs_1.default.rmSync(cloneDir, { recursive: true, force: true });
|
|
146
|
+
}
|
|
147
|
+
if (verbose) {
|
|
148
|
+
console.log(`[verbose] source: cloning ${target.repository} into ${(0, utils_1.formatDisplayPath)(cloneDir, cwd)}`);
|
|
149
|
+
}
|
|
150
|
+
(0, utils_1.spawnWithLog)('git', ['clone', target.repository, cloneDir], cwd, verbose, true);
|
|
151
|
+
if (target.requestedVersion) {
|
|
152
|
+
(0, utils_1.spawnWithLog)('git', ['-C', cloneDir, 'checkout', target.requestedVersion], cwd, verbose, true);
|
|
153
|
+
}
|
|
154
|
+
const revision = (0, utils_1.spawnWithLog)('git', ['-C', cloneDir, 'rev-parse', 'HEAD'], cwd, verbose, true)
|
|
155
|
+
.stdout.toString()
|
|
156
|
+
.trim();
|
|
157
|
+
const gitDir = node_path_1.default.join(cloneDir, '.git');
|
|
158
|
+
if (node_fs_1.default.existsSync(gitDir)) {
|
|
159
|
+
node_fs_1.default.rmSync(gitDir, { recursive: true, force: true });
|
|
160
|
+
}
|
|
161
|
+
return {
|
|
162
|
+
source: 'git',
|
|
163
|
+
packageName: target.packageName,
|
|
164
|
+
packageVersion: revision || target.requestedVersion || 'HEAD',
|
|
165
|
+
packagePath: cloneDir,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
function buildCloneDirName(target) {
|
|
169
|
+
const pathSegments = target.packageName.split(/[/:]/).filter(Boolean);
|
|
170
|
+
const lastPathSegment = pathSegments.at(-1);
|
|
171
|
+
const baseName = lastPathSegment?.replace(/\.git$/, '')?.replace(/[^\w.-]+/g, '-') ?? 'repo';
|
|
172
|
+
const digest = node_crypto_1.default
|
|
173
|
+
.createHash('sha1')
|
|
174
|
+
.update(`${target.packageName}@${target.requestedVersion ?? ''}`)
|
|
175
|
+
.digest('hex')
|
|
176
|
+
.slice(0, 12);
|
|
177
|
+
return `${baseName}-${digest}`;
|
|
178
|
+
}
|
|
179
|
+
function ensureGitignoreContains(cwd, entry) {
|
|
180
|
+
const gitignorePath = node_path_1.default.join(cwd, '.gitignore');
|
|
181
|
+
if (!node_fs_1.default.existsSync(gitignorePath)) {
|
|
182
|
+
node_fs_1.default.writeFileSync(gitignorePath, `${entry}\n`);
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
const lines = node_fs_1.default
|
|
186
|
+
.readFileSync(gitignorePath, 'utf8')
|
|
187
|
+
.split(/\r?\n/)
|
|
188
|
+
.map((line) => line.trim());
|
|
189
|
+
if (!lines.includes(entry)) {
|
|
190
|
+
node_fs_1.default.appendFileSync(gitignorePath, `\n${entry}\n`);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/package/source.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Internal parsed representation of an npm package specifier.
|
|
3
3
|
*/
|
|
4
|
+
export type SourceKind = 'auto' | 'npm' | 'git';
|
|
5
|
+
/**
|
|
6
|
+
* Internal parsed representation of a package specifier.
|
|
7
|
+
*/
|
|
4
8
|
export type PackageConfig = {
|
|
5
|
-
/**
|
|
9
|
+
/** Package name or repository URL. */
|
|
6
10
|
name: string;
|
|
7
|
-
/**
|
|
11
|
+
/** Version/range for npm packages, or git ref for git sources. */
|
|
8
12
|
version?: string;
|
|
9
13
|
};
|
|
10
14
|
export type BasicPackageOptions = {
|
|
@@ -73,6 +77,11 @@ export type OutputConfig = {
|
|
|
73
77
|
* Takes precedence over force. Defaults to true (managed).
|
|
74
78
|
*/
|
|
75
79
|
managed?: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Keep stale managed files on disk instead of deleting them during extract.
|
|
82
|
+
* Check still reports them as extra drift until they are removed or synced.
|
|
83
|
+
*/
|
|
84
|
+
noSync?: boolean;
|
|
76
85
|
/**
|
|
77
86
|
* Report what would change; no disk writes.
|
|
78
87
|
*/
|
|
@@ -130,6 +139,8 @@ export type NpmdataExtractEntry = {
|
|
|
130
139
|
* self-package entry — files are drawn from the package that owns this sets array.
|
|
131
140
|
*/
|
|
132
141
|
package?: string;
|
|
142
|
+
/** Resolve package from npm, git, or auto-detect from the package spec. */
|
|
143
|
+
source?: SourceKind;
|
|
133
144
|
/** Where/how to write files. Defaults to current directory with no special flags. */
|
|
134
145
|
output?: OutputConfig;
|
|
135
146
|
/** Which files to select and install options. */
|
|
@@ -289,6 +300,8 @@ export type ResolvedFile = {
|
|
|
289
300
|
force: boolean;
|
|
290
301
|
/** Whether to skip files that already exist in the output. Default: false. */
|
|
291
302
|
ignoreIfExisting: boolean;
|
|
303
|
+
/** Whether extract should leave stale managed files in place for this output. */
|
|
304
|
+
noSync: boolean;
|
|
292
305
|
/** Content replacement rules applied to this file before comparison. */
|
|
293
306
|
contentReplacements: ContentReplacementConfig[];
|
|
294
307
|
/** Symlink operations to apply in the output directory after extraction. */
|
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,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|