registry-sync 6.1.0 → 6.1.1
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/package.json +13 -13
- package/src/client.js +2 -3
- package/src/download.js +1 -2
- package/src/integrity.js +3 -4
- package/src/metadata.js +4 -5
- package/src/normalize-yarn-pattern.js +1 -2
- package/src/pregyp.js +2 -3
- package/src/resolve.js +3 -4
- package/src/sync.js +1 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "registry-sync",
|
|
3
|
-
"version": "6.1.
|
|
3
|
+
"version": "6.1.1",
|
|
4
4
|
"description": "synchronize a remote npm registry for private use",
|
|
5
5
|
"repository": "https://github.com/heikkipora/registry-sync",
|
|
6
6
|
"bin": {
|
|
@@ -13,26 +13,26 @@
|
|
|
13
13
|
"eslint": "eslint --fix --format=codeframe --ext .ts .",
|
|
14
14
|
"eslint:check": "eslint --max-warnings=0 --format=codeframe --ext .ts .",
|
|
15
15
|
"lint-staged": "lint-staged --verbose",
|
|
16
|
-
"test": "mocha -r ts-node/register --timeout 120000 test/*.ts",
|
|
16
|
+
"test": "mocha -r ts-node/register --config test/.mocharc.js --timeout 120000 test/*.ts",
|
|
17
17
|
"release-test": "cd release-test && ./run-sync-install-cycle.sh"
|
|
18
18
|
},
|
|
19
19
|
"author": "Heikki Pora",
|
|
20
20
|
"license": "MIT",
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@yarnpkg/lockfile": "1.1.0",
|
|
23
|
-
"axios": "1.7.
|
|
23
|
+
"axios": "1.7.4",
|
|
24
24
|
"commander": "12.1.0",
|
|
25
25
|
"lru-cache": "10.2.2",
|
|
26
|
-
"semver": "7.6.
|
|
26
|
+
"semver": "7.6.3",
|
|
27
27
|
"ssri": "10.0.6",
|
|
28
28
|
"tar-fs": "3.0.6"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@arkweid/lefthook": "0.7.7",
|
|
32
|
-
"@types/chai": "4.3.
|
|
33
|
-
"@types/lodash": "4.17.
|
|
34
|
-
"@types/mocha": "10.0.
|
|
35
|
-
"@types/node": "20.
|
|
32
|
+
"@types/chai": "4.3.17",
|
|
33
|
+
"@types/lodash": "4.17.7",
|
|
34
|
+
"@types/mocha": "10.0.7",
|
|
35
|
+
"@types/node": "20.14.8",
|
|
36
36
|
"@types/semver": "7.5.8",
|
|
37
37
|
"@types/ssri": "7.1.5",
|
|
38
38
|
"@types/tar-fs": "2.0.4",
|
|
@@ -43,13 +43,13 @@
|
|
|
43
43
|
"eslint": "8.56.0",
|
|
44
44
|
"eslint-config-prettier": "9.1.0",
|
|
45
45
|
"eslint-formatter-codeframe": "7.32.1",
|
|
46
|
-
"eslint-plugin-mocha": "10.
|
|
46
|
+
"eslint-plugin-mocha": "10.5.0",
|
|
47
47
|
"express": "4.19.2",
|
|
48
|
-
"lint-staged": "15.2.
|
|
49
|
-
"mocha": "10.
|
|
50
|
-
"prettier": "3.
|
|
48
|
+
"lint-staged": "15.2.9",
|
|
49
|
+
"mocha": "10.7.3",
|
|
50
|
+
"prettier": "3.3.3",
|
|
51
51
|
"ts-node": "10.9.2",
|
|
52
|
-
"typescript": "5.4
|
|
52
|
+
"typescript": "5.5.4"
|
|
53
53
|
},
|
|
54
54
|
"keywords": [
|
|
55
55
|
"registry",
|
package/src/client.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.fetchJsonWithCacheCloned = fetchJsonWithCacheCloned;
|
|
4
|
+
exports.fetchBinaryData = fetchBinaryData;
|
|
4
5
|
const https = require("https");
|
|
5
6
|
const axios_1 = require("axios");
|
|
6
7
|
const lru_cache_1 = require("lru-cache");
|
|
@@ -17,11 +18,9 @@ async function fetchJsonWithCacheCloned(url, token) {
|
|
|
17
18
|
metadataCache.set(url, value);
|
|
18
19
|
return structuredClone(value);
|
|
19
20
|
}
|
|
20
|
-
exports.fetchJsonWithCacheCloned = fetchJsonWithCacheCloned;
|
|
21
21
|
function fetchBinaryData(url, token) {
|
|
22
22
|
return fetch(url, 'arraybuffer', token);
|
|
23
23
|
}
|
|
24
|
-
exports.fetchBinaryData = fetchBinaryData;
|
|
25
24
|
async function fetch(url, responseType, token) {
|
|
26
25
|
const config = { responseType };
|
|
27
26
|
if (token !== '') {
|
package/src/download.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.downloadAll =
|
|
3
|
+
exports.downloadAll = downloadAll;
|
|
4
4
|
const fs = require("fs");
|
|
5
5
|
const path = require("path");
|
|
6
6
|
const semver = require("semver");
|
|
@@ -15,7 +15,6 @@ async function downloadAll(packages, { localUrl, prebuiltBinaryProperties, regis
|
|
|
15
15
|
await downloadFromRegistry(pkg);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
exports.downloadAll = downloadAll;
|
|
19
18
|
async function download(registryUrl, registryToken, localUrl, rootFolder, prebuiltBinaryProperties, enforceTarballsOverHttps, { name, version }) {
|
|
20
19
|
const registryMetadata = await fetchMetadataCloned(name, registryUrl, registryToken);
|
|
21
20
|
const versionMetadata = registryMetadata.versions[version];
|
package/src/integrity.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.verifyIntegrity = verifyIntegrity;
|
|
4
|
+
exports.sha1 = sha1;
|
|
5
|
+
exports.sha512 = sha512;
|
|
4
6
|
const ssri = require("ssri");
|
|
5
7
|
function verifyIntegrity(data, id, { integrity, shasum }) {
|
|
6
8
|
if (!integrity && !shasum) {
|
|
@@ -15,12 +17,9 @@ function verifyIntegrity(data, id, { integrity, shasum }) {
|
|
|
15
17
|
throw new Error(`Integrity check with SHA1 failed for failed for ${id}`);
|
|
16
18
|
}
|
|
17
19
|
}
|
|
18
|
-
exports.verifyIntegrity = verifyIntegrity;
|
|
19
20
|
function sha1(data) {
|
|
20
21
|
return ssri.fromData(data, { algorithms: ['sha1'] }).hexDigest();
|
|
21
22
|
}
|
|
22
|
-
exports.sha1 = sha1;
|
|
23
23
|
function sha512(data) {
|
|
24
24
|
return ssri.fromData(data, { algorithms: ['sha512'] }).toString();
|
|
25
25
|
}
|
|
26
|
-
exports.sha512 = sha512;
|
package/src/metadata.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.rewriteVersionMetadata = rewriteVersionMetadata;
|
|
4
|
+
exports.rewriteMetadataInTarball = rewriteMetadataInTarball;
|
|
5
|
+
exports.extractTgz = extractTgz;
|
|
6
|
+
exports.tarballFilename = tarballFilename;
|
|
4
7
|
const fs = require("fs");
|
|
5
8
|
const path = require("path");
|
|
6
9
|
const tar = require("tar-fs");
|
|
@@ -17,7 +20,6 @@ function rewriteVersionMetadata(versionMetadata, data, localUrl) {
|
|
|
17
20
|
versionMetadata.dist.shasum = (0, integrity_1.sha1)(data);
|
|
18
21
|
}
|
|
19
22
|
}
|
|
20
|
-
exports.rewriteVersionMetadata = rewriteVersionMetadata;
|
|
21
23
|
async function rewriteMetadataInTarball(data, versionMetadata, localUrl, localFolder) {
|
|
22
24
|
const tmpFolder = path.join(localFolder, '.tmp');
|
|
23
25
|
await fs.promises.mkdir(tmpFolder, { recursive: true });
|
|
@@ -32,7 +34,6 @@ async function rewriteMetadataInTarball(data, versionMetadata, localUrl, localFo
|
|
|
32
34
|
await fs.promises.rm(tmpFolder, { recursive: true });
|
|
33
35
|
return updatedData;
|
|
34
36
|
}
|
|
35
|
-
exports.rewriteMetadataInTarball = rewriteMetadataInTarball;
|
|
36
37
|
function createPrebuiltBinaryRemotePath(url, versionMetadata) {
|
|
37
38
|
return `${removeTrailingSlash(url.pathname)}/${versionMetadata.name}/${versionMetadata.version}/`;
|
|
38
39
|
}
|
|
@@ -43,7 +44,6 @@ function extractTgz(data, folder) {
|
|
|
43
44
|
tgz.on('error', reject);
|
|
44
45
|
});
|
|
45
46
|
}
|
|
46
|
-
exports.extractTgz = extractTgz;
|
|
47
47
|
function compressTgz(folder) {
|
|
48
48
|
return new Promise((resolve, reject) => {
|
|
49
49
|
const chunks = [];
|
|
@@ -60,7 +60,6 @@ function tarballFilename(name, version) {
|
|
|
60
60
|
const normalized = name.replace(/\//g, '-');
|
|
61
61
|
return `${normalized}-${version}.tgz`;
|
|
62
62
|
}
|
|
63
|
-
exports.tarballFilename = tarballFilename;
|
|
64
63
|
function removeTrailingSlash(str) {
|
|
65
64
|
return str.replace(/\/$/, '');
|
|
66
65
|
}
|
|
@@ -29,7 +29,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
29
29
|
*/
|
|
30
30
|
// From https://github.com/yarnpkg/yarn/blob/953c8b6a20e360b097625d64189e6e56ed813e0f/src/util/normalize-pattern.js#L2
|
|
31
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
-
exports.normalizeYarnPackagePattern =
|
|
32
|
+
exports.normalizeYarnPackagePattern = normalizeYarnPackagePattern;
|
|
33
33
|
function normalizeYarnPackagePattern(pattern) {
|
|
34
34
|
let hasVersion = false;
|
|
35
35
|
let range = 'latest';
|
|
@@ -58,4 +58,3 @@ function normalizeYarnPackagePattern(pattern) {
|
|
|
58
58
|
}
|
|
59
59
|
return { name, range, hasVersion };
|
|
60
60
|
}
|
|
61
|
-
exports.normalizeYarnPackagePattern = normalizeYarnPackagePattern;
|
package/src/pregyp.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.hasPrebuiltBinaries = hasPrebuiltBinaries;
|
|
4
|
+
exports.downloadPrebuiltBinaries = downloadPrebuiltBinaries;
|
|
4
5
|
const fs = require("fs");
|
|
5
6
|
const path = require("path");
|
|
6
7
|
const semver = require("semver");
|
|
@@ -9,7 +10,6 @@ const client_1 = require("./client");
|
|
|
9
10
|
function hasPrebuiltBinaries({ binary }) {
|
|
10
11
|
return Boolean(binary && binary.module_name);
|
|
11
12
|
}
|
|
12
|
-
exports.hasPrebuiltBinaries = hasPrebuiltBinaries;
|
|
13
13
|
async function downloadPrebuiltBinaries(versionMetadata, localFolder, prebuiltBinaryProperties) {
|
|
14
14
|
const { binary, name, version } = versionMetadata;
|
|
15
15
|
if (!binary.napi_versions) {
|
|
@@ -24,7 +24,6 @@ async function downloadPrebuiltBinaries(versionMetadata, localFolder, prebuiltBi
|
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
exports.downloadPrebuiltBinaries = downloadPrebuiltBinaries;
|
|
28
27
|
async function downloadPrebuiltBinary(localFolder, name, version, binary, abi, platform, arch, napiVersion) {
|
|
29
28
|
try {
|
|
30
29
|
const data = await fetchPrebuiltBinary(name, version, binary, abi, platform, arch, napiVersion);
|
package/src/resolve.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.updateDependenciesCache = updateDependenciesCache;
|
|
4
|
+
exports.dependenciesNotInCache = dependenciesNotInCache;
|
|
5
|
+
exports.dependenciesFromPackageLock = dependenciesFromPackageLock;
|
|
4
6
|
const fs = require("fs");
|
|
5
7
|
const pathLib = require("path");
|
|
6
8
|
const readline = require("readline");
|
|
@@ -19,7 +21,6 @@ async function updateDependenciesCache(newDependencies, cacheFilePath, prebuiltB
|
|
|
19
21
|
};
|
|
20
22
|
return fs.promises.writeFile(cacheFilePath, JSON.stringify(data), 'utf8');
|
|
21
23
|
}
|
|
22
|
-
exports.updateDependenciesCache = updateDependenciesCache;
|
|
23
24
|
async function dependenciesNotInCache(dependencies, cacheFilePath, prebuiltBinaryProperties) {
|
|
24
25
|
const { dependencies: cachedDependencies, prebuiltBinaryProperties: cachedPrebuiltBinaryProperties, prebuiltBinaryNApiSupport } = await loadCache(cacheFilePath);
|
|
25
26
|
if (cachedDependencies.length > 0 &&
|
|
@@ -30,7 +31,6 @@ async function dependenciesNotInCache(dependencies, cacheFilePath, prebuiltBinar
|
|
|
30
31
|
const packageIdsInCache = cachedDependencies.map(pkg => pkg.id);
|
|
31
32
|
return dependencies.filter(pkg => !packageIdsInCache.includes(pkg.id));
|
|
32
33
|
}
|
|
33
|
-
exports.dependenciesNotInCache = dependenciesNotInCache;
|
|
34
34
|
async function loadCache(cacheFilePath) {
|
|
35
35
|
try {
|
|
36
36
|
const data = JSON.parse(await fs.promises.readFile(cacheFilePath, 'utf8'));
|
|
@@ -169,7 +169,6 @@ async function dependenciesFromPackageLock(path, includeDevDependencies) {
|
|
|
169
169
|
: await parseDependenciesFromNpmLockFile(path, includeDevDependencies);
|
|
170
170
|
return dependencies.sort(sortById).filter(uniqueById).filter(isNotLocal);
|
|
171
171
|
}
|
|
172
|
-
exports.dependenciesFromPackageLock = dependenciesFromPackageLock;
|
|
173
172
|
function sortById(a, b) {
|
|
174
173
|
return a.id.localeCompare(b.id);
|
|
175
174
|
}
|
package/src/sync.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.synchronize =
|
|
3
|
+
exports.synchronize = synchronize;
|
|
4
4
|
const download_1 = require("./download");
|
|
5
5
|
const resolve_1 = require("./resolve");
|
|
6
6
|
async function synchronize(options) {
|
|
@@ -18,4 +18,3 @@ async function synchronize(options) {
|
|
|
18
18
|
}
|
|
19
19
|
return newPackages;
|
|
20
20
|
}
|
|
21
|
-
exports.synchronize = synchronize;
|