@pnpm/cafs
Advanced tools
Comparing version 7.0.4 to 7.0.5
@@ -8,2 +8,3 @@ "use strict"; | ||
const gunzip_maybe_1 = __importDefault(require("gunzip-maybe")); | ||
const safe_promise_defer_1 = __importDefault(require("safe-promise-defer")); | ||
const tar_stream_1 = __importDefault(require("tar-stream")); | ||
@@ -15,2 +16,4 @@ const parseJson_1 = require("./parseJson"); | ||
const filesIndex = {}; | ||
let unpipeManifestStream; | ||
let lastManifest; | ||
await new Promise((resolve, reject) => { | ||
@@ -21,6 +24,7 @@ extract.on('entry', (header, fileStream, next) => { | ||
// which are the same file. | ||
// Hence, we are normalizing the file name, replacing // with / and checking for duplicates. | ||
// Hence, we are normalizing the file name, replacing // with /. | ||
// When there are duplicate files, the last instances are picked. | ||
// Example of such package: @pnpm/colorize-semver-diff@1.0.1 | ||
const filename = header.name.slice(header.name.indexOf('/') + 1).replace(/\/\//g, '/'); | ||
if (header.type !== 'file' || ignore(filename) || filesIndex[filename]) { | ||
if (header.type !== 'file' || ignore(filename)) { | ||
fileStream.resume(); | ||
@@ -31,3 +35,5 @@ next(); | ||
if (filename === 'package.json' && (manifest != null)) { | ||
(0, parseJson_1.parseJsonStream)(fileStream, manifest); | ||
unpipeManifestStream?.(); | ||
lastManifest = (0, safe_promise_defer_1.default)(); | ||
unpipeManifestStream = (0, parseJson_1.parseJsonStream)(fileStream, lastManifest); | ||
} | ||
@@ -56,2 +62,5 @@ const writeResult = addStreamToCafs(fileStream, header.mode); | ||
} | ||
else if (lastManifest && manifest) { | ||
lastManifest().then(manifest.resolve).catch(manifest.reject); | ||
} | ||
return filesIndex; | ||
@@ -58,0 +67,0 @@ } |
@@ -10,3 +10,3 @@ "use strict"; | ||
const get_stream_1 = __importDefault(require("get-stream")); | ||
const path_temp_1 = __importDefault(require("path-temp")); | ||
const path_temp_1 = require("path-temp"); | ||
const rename_overwrite_1 = __importDefault(require("rename-overwrite")); | ||
@@ -73,3 +73,3 @@ const ssri_1 = __importDefault(require("ssri")); | ||
// to the final file directly. | ||
const temp = (0, path_temp_1.default)(path_1.default.dirname(fileDest)); | ||
const temp = (0, path_temp_1.fastPathTemp)(fileDest); | ||
await (0, writeFile_1.writeFile)(temp, buffer, mode); | ||
@@ -76,0 +76,0 @@ // Unfortunately, "birth time" (time of file creation) is available not on all filesystems. |
@@ -6,2 +6,2 @@ /// <reference types="node" /> | ||
export declare function parseJsonBuffer(buffer: Buffer, deferred: DeferredManifestPromise): void; | ||
export declare function parseJsonStream(stream: PassThrough, deferred: DeferredManifestPromise): void; | ||
export declare function parseJsonStream(stream: PassThrough, deferred: DeferredManifestPromise): () => void; |
@@ -19,7 +19,11 @@ "use strict"; | ||
function parseJsonStream(stream, deferred) { | ||
stream.pipe((0, concat_stream_1.default)((buffer) => { | ||
const _concatStream = (0, concat_stream_1.default)((buffer) => { | ||
parseJsonBuffer(buffer, deferred); | ||
})); | ||
}); | ||
stream.pipe(_concatStream); | ||
return () => { | ||
stream.unpipe(_concatStream); | ||
}; | ||
} | ||
exports.parseJsonStream = parseJsonStream; | ||
//# sourceMappingURL=parseJson.js.map |
{ | ||
"name": "@pnpm/cafs", | ||
"version": "7.0.4", | ||
"version": "7.0.5", | ||
"description": "A content-addressable filesystem for the packages storage", | ||
@@ -17,10 +17,11 @@ "main": "lib/index.js", | ||
"p-limit": "^3.1.0", | ||
"path-temp": "^2.0.0", | ||
"path-temp": "^2.1.0", | ||
"rename-overwrite": "^4.0.3", | ||
"safe-promise-defer": "^1.0.1", | ||
"ssri": "10.0.4", | ||
"strip-bom": "^4.0.0", | ||
"tar-stream": "^2.2.0", | ||
"@pnpm/fetcher-base": "14.0.1", | ||
"@pnpm/fetcher-base": "14.0.2", | ||
"@pnpm/graceful-fs": "3.0.0", | ||
"@pnpm/store-controller-types": "15.0.1" | ||
"@pnpm/store-controller-types": "15.0.2" | ||
}, | ||
@@ -30,3 +31,3 @@ "devDependencies": { | ||
"@types/gunzip-maybe": "1.4.0", | ||
"@types/node": "^14.18.52", | ||
"@types/node": "^14.18.53", | ||
"@types/ssri": "^7.1.1", | ||
@@ -36,5 +37,5 @@ "@types/tar-stream": "^2.2.2", | ||
"tempy": "^1.0.1", | ||
"@pnpm/cafs": "7.0.4", | ||
"@pnpm/cafs": "7.0.5", | ||
"@pnpm/cafs-types": "2.0.0", | ||
"@pnpm/types": "9.1.0" | ||
"@pnpm/types": "9.2.0" | ||
}, | ||
@@ -41,0 +42,0 @@ "bugs": { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
42058
514
14
+ Addedsafe-promise-defer@^1.0.1
+ Added@pnpm/fetcher-base@14.0.2(transitive)
+ Added@pnpm/resolver-base@10.0.2(transitive)
+ Added@pnpm/store-controller-types@15.0.2(transitive)
+ Added@pnpm/types@9.2.0(transitive)
+ Addedp-reflect@2.1.0(transitive)
+ Addedpromise-share@1.0.0(transitive)
+ Addedsafe-promise-defer@1.0.1(transitive)
- Removed@pnpm/fetcher-base@14.0.1(transitive)
- Removed@pnpm/resolver-base@10.0.1(transitive)
- Removed@pnpm/store-controller-types@15.0.1(transitive)
- Removed@pnpm/types@9.1.0(transitive)
Updated@pnpm/fetcher-base@14.0.2
Updatedpath-temp@^2.1.0