New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@pnpm/store.cafs

Package Overview
Dependencies
Maintainers
2
Versions
38
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@pnpm/store.cafs - npm Package Compare versions

Comparing version 2.0.13 to 3.0.0

5

lib/addFilesFromDir.d.ts
/// <reference types="node" />
import { type AddToStoreResult, type FileWriteResult } from '@pnpm/cafs-types';
export declare function addFilesFromDir(addBuffer: (buffer: Buffer, mode: number) => FileWriteResult, dirname: string, readManifest?: boolean): AddToStoreResult;
export declare function addFilesFromDir(addBuffer: (buffer: Buffer, mode: number) => FileWriteResult, dirname: string, opts?: {
files?: string[];
readManifest?: boolean;
}): AddToStoreResult;

78

lib/addFilesFromDir.js

@@ -7,2 +7,3 @@ "use strict";

exports.addFilesFromDir = void 0;
const util_1 = __importDefault(require("util"));
const fs_1 = __importDefault(require("fs"));

@@ -12,21 +13,61 @@ const path_1 = __importDefault(require("path"));

const parseJson_1 = require("./parseJson");
function addFilesFromDir(addBuffer, dirname, readManifest) {
function addFilesFromDir(addBuffer, dirname, opts = {}) {
const filesIndex = {};
const manifest = _retrieveFileIntegrities(addBuffer, dirname, dirname, filesIndex, readManifest);
return { filesIndex, manifest };
let manifest;
let files;
if (opts.files) {
files = [];
for (const file of opts.files) {
const absolutePath = path_1.default.join(dirname, file);
let stat;
try {
stat = fs_1.default.statSync(absolutePath);
}
catch (err) {
if (!(util_1.default.types.isNativeError(err) && 'code' in err && err.code === 'ENOENT')) {
throw err;
}
continue;
}
files.push({
absolutePath,
relativePath: file,
stat,
});
}
}
else {
files = findFilesInDir(dirname);
}
for (const { absolutePath, relativePath, stat } of files) {
const buffer = graceful_fs_1.default.readFileSync(absolutePath);
if (opts.readManifest && relativePath === 'package.json') {
manifest = (0, parseJson_1.parseJsonBufferSync)(buffer);
}
filesIndex[relativePath] = {
mode: stat.mode,
size: stat.size,
...addBuffer(buffer, stat.mode),
};
}
return { manifest, filesIndex };
}
exports.addFilesFromDir = addFilesFromDir;
function _retrieveFileIntegrities(addBuffer, rootDir, currDir, index, readManifest) {
const files = fs_1.default.readdirSync(currDir, { withFileTypes: true });
let manifest;
function findFilesInDir(dir) {
const files = [];
findFiles(files, dir);
return files;
}
function findFiles(filesList, dir, relativeDir = '') {
const files = fs_1.default.readdirSync(dir, { withFileTypes: true });
for (const file of files) {
const fullPath = path_1.default.join(currDir, file.name);
const relativeSubdir = `${relativeDir}${relativeDir ? '/' : ''}${file.name}`;
if (file.isDirectory()) {
_retrieveFileIntegrities(addBuffer, rootDir, fullPath, index);
findFiles(filesList, path_1.default.join(dir, file.name), relativeSubdir);
continue;
}
const relativePath = path_1.default.relative(rootDir, fullPath);
const absolutePath = path_1.default.join(dir, file.name);
let stat;
try {
stat = fs_1.default.statSync(fullPath);
stat = fs_1.default.statSync(absolutePath);
}

@@ -40,17 +81,12 @@ catch (err) { // eslint-disable-line

if (stat.isDirectory()) {
_retrieveFileIntegrities(addBuffer, rootDir, fullPath, index);
findFiles(filesList, path_1.default.join(dir, file.name), relativeSubdir);
continue;
}
const buffer = graceful_fs_1.default.readFileSync(fullPath);
if (rootDir === currDir && readManifest && file.name === 'package.json') {
manifest = (0, parseJson_1.parseJsonBufferSync)(buffer);
}
index[relativePath] = {
mode: stat.mode,
size: stat.size,
...addBuffer(buffer, stat.mode),
};
filesList.push({
relativePath: relativeSubdir,
absolutePath,
stat,
});
}
return manifest;
}
//# sourceMappingURL=addFilesFromDir.js.map

@@ -8,7 +8,9 @@ import type { PackageFileInfo } from '@pnpm/cafs-types';

}
export type SideEffects = Record<string, Record<string, PackageFileInfo>>;
export interface PackageFilesIndex {
name?: string;
version?: string;
requiresBuild?: boolean;
files: Record<string, PackageFileInfo>;
sideEffects?: Record<string, Record<string, PackageFileInfo>>;
sideEffects?: SideEffects;
}

@@ -15,0 +17,0 @@ export declare function checkPkgFilesIntegrity(cafsDir: string, pkgIndex: PackageFilesIndex, readManifest?: boolean): VerifyResult;

@@ -8,2 +8,3 @@ "use strict";

const fs_1 = __importDefault(require("fs"));
const util_1 = __importDefault(require("util"));
const graceful_fs_1 = __importDefault(require("@pnpm/graceful-fs"));

@@ -109,4 +110,4 @@ const rimraf_1 = __importDefault(require("@zkochan/rimraf"));

}
catch (err) { // eslint-disable-line
switch (err.code) {
catch (err) {
switch (util_1.default.types.isNativeError(err) && 'code' in err && err.code) {
case 'ENOENT': return { passed: false };

@@ -131,4 +132,4 @@ case 'EINTEGRITY': {

}
catch (err) { // eslint-disable-line
if (err.code === 'ENOENT')
catch (err) {
if (util_1.default.types.isNativeError(err) && 'code' in err && err.code === 'ENOENT')
return null;

@@ -135,0 +136,0 @@ throw err;

/// <reference types="node" />
import { type PackageFileInfo, type FilesIndex } from '@pnpm/cafs-types';
import ssri from 'ssri';
import { checkPkgFilesIntegrity, type PackageFilesIndex, type VerifyResult } from './checkPkgFilesIntegrity';
import { checkPkgFilesIntegrity, type PackageFilesIndex, type SideEffects, type VerifyResult } from './checkPkgFilesIntegrity';
import { readManifestFromStore } from './readManifestFromStore';

@@ -9,3 +9,3 @@ import { getFilePathInCafs, type FileType, getFilePathByModeInCafs } from './getFilePathInCafs';

export type { IntegrityLike } from 'ssri';
export { checkPkgFilesIntegrity, readManifestFromStore, type FileType, getFilePathByModeInCafs, getFilePathInCafs, type PackageFileInfo, type PackageFilesIndex, optimisticRenameOverwrite, type FilesIndex, type VerifyResult, };
export { checkPkgFilesIntegrity, readManifestFromStore, type FileType, getFilePathByModeInCafs, getFilePathInCafs, type PackageFileInfo, type PackageFilesIndex, type SideEffects, optimisticRenameOverwrite, type FilesIndex, type VerifyResult, };
export type CafsLocker = Map<string, number>;

@@ -17,3 +17,6 @@ export interface CreateCafsOpts {

export declare function createCafs(cafsDir: string, { ignoreFile, cafsLocker }?: CreateCafsOpts): {
addFilesFromDir: (dirname: string, readManifest?: boolean | undefined) => import("@pnpm/cafs-types").AddToStoreResult;
addFilesFromDir: (dirname: string, opts?: {
files?: string[] | undefined;
readManifest?: boolean | undefined;
} | undefined) => import("@pnpm/cafs-types").AddToStoreResult;
addFilesFromTarball: (tarballBuffer: Buffer, readManifest?: boolean | undefined) => import("@pnpm/cafs-types").AddToStoreResult;

@@ -20,0 +23,0 @@ getFilePathInCafs: (integrity: string | ssri.IntegrityLike, fileType: FileType) => string;

@@ -9,2 +9,3 @@ "use strict";

const path_1 = __importDefault(require("path"));
const util_1 = __importDefault(require("util"));
const rename_overwrite_1 = __importDefault(require("rename-overwrite"));

@@ -58,4 +59,4 @@ const checkPkgFilesIntegrity_1 = require("./checkPkgFilesIntegrity");

}
catch (err) { // eslint-disable-line
if (err.code !== 'ENOENT' || !fs_1.default.existsSync(fileDest))
catch (err) {
if (!(util_1.default.types.isNativeError(err) && 'code' in err && err.code === 'ENOENT') || !fs_1.default.existsSync(fileDest))
throw err;

@@ -62,0 +63,0 @@ // The temporary file path is created by appending the process ID to the target file name.

{
"name": "@pnpm/store.cafs",
"version": "2.0.13",
"version": "3.0.0",
"description": "A content-addressable filesystem for the packages storage",

@@ -8,3 +8,3 @@ "main": "lib/index.js",

"keywords": [
"pnpm8"
"pnpm9"
],

@@ -19,15 +19,15 @@ "license": "MIT",

"strip-bom": "^4.0.0",
"@pnpm/fetcher-base": "15.0.7",
"@pnpm/graceful-fs": "3.2.0",
"@pnpm/store-controller-types": "17.2.0"
"@pnpm/fetcher-base": "16.0.0",
"@pnpm/graceful-fs": "4.0.0",
"@pnpm/store-controller-types": "18.0.0"
},
"devDependencies": {
"@types/is-gzip": "2.0.0",
"@types/node": "^18.14.6",
"@types/ssri": "^7.1.4",
"@types/node": "^18.19.24",
"@types/ssri": "^7.1.5",
"symlink-dir": "^5.2.1",
"tempy": "^1.0.1",
"@pnpm/cafs-types": "4.0.0",
"@pnpm/store.cafs": "2.0.13",
"@pnpm/types": "9.4.2"
"@pnpm/cafs-types": "5.0.0",
"@pnpm/store.cafs": "3.0.0",
"@pnpm/types": "10.0.0"
},

@@ -38,3 +38,3 @@ "bugs": {

"engines": {
"node": ">=16.14"
"node": ">=18.12"
},

@@ -41,0 +41,0 @@ "files": [

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

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc