pwd-fs 3.5.4 → 3.5.5
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/bitmask.d.ts +10 -0
- package/dist/bitmask.js +10 -0
- package/dist/powered-file-system/append.d.ts +10 -0
- package/dist/powered-file-system/append.js +10 -0
- package/dist/powered-file-system/chmod.d.ts +10 -0
- package/dist/powered-file-system/chmod.js +10 -0
- package/dist/powered-file-system/chown.d.ts +10 -0
- package/dist/powered-file-system/chown.js +10 -0
- package/dist/powered-file-system/copy.d.ts +10 -0
- package/dist/powered-file-system/copy.js +10 -0
- package/dist/powered-file-system/empty-dir.d.ts +10 -0
- package/dist/powered-file-system/empty-dir.js +10 -0
- package/dist/powered-file-system/mkdir.d.ts +10 -0
- package/dist/powered-file-system/mkdir.js +10 -0
- package/dist/powered-file-system/read.d.ts +10 -0
- package/dist/powered-file-system/read.js +10 -0
- package/dist/powered-file-system/readdir.d.ts +10 -0
- package/dist/powered-file-system/readdir.js +10 -0
- package/dist/powered-file-system/readlink.d.ts +10 -0
- package/dist/powered-file-system/readlink.js +10 -0
- package/dist/powered-file-system/realpath.d.ts +10 -0
- package/dist/powered-file-system/realpath.js +10 -0
- package/dist/powered-file-system/remove.d.ts +10 -0
- package/dist/powered-file-system/remove.js +10 -0
- package/dist/powered-file-system/rename.d.ts +10 -0
- package/dist/powered-file-system/rename.js +10 -0
- package/dist/powered-file-system/stat.d.ts +10 -0
- package/dist/powered-file-system/stat.js +10 -0
- package/dist/powered-file-system/symlink.d.ts +10 -0
- package/dist/powered-file-system/symlink.js +10 -0
- package/dist/powered-file-system/test.d.ts +10 -0
- package/dist/powered-file-system/test.js +10 -0
- package/dist/powered-file-system/write.d.ts +10 -0
- package/dist/powered-file-system/write.js +10 -0
- package/dist/powered-file-system.d.ts +10 -0
- package/dist/powered-file-system.js +10 -0
- package/dist/recurse-io-sync.d.ts +10 -0
- package/dist/recurse-io-sync.js +10 -0
- package/dist/recurse-io.d.ts +10 -0
- package/dist/recurse-io.js +10 -0
- package/package.json +8 -19
- package/readme.md +273 -426
- package/dist/bitmask.test.d.ts +0 -1
- package/dist/bitmask.test.js +0 -29
- package/dist/powered-file-system/append.test.d.ts +0 -1
- package/dist/powered-file-system/append.test.js +0 -47
- package/dist/powered-file-system/chmod.test.d.ts +0 -1
- package/dist/powered-file-system/chmod.test.js +0 -71
- package/dist/powered-file-system/chown.test.d.ts +0 -1
- package/dist/powered-file-system/chown.test.js +0 -82
- package/dist/powered-file-system/copy.test.d.ts +0 -1
- package/dist/powered-file-system/copy.test.js +0 -128
- package/dist/powered-file-system/empty-dir.test.d.ts +0 -1
- package/dist/powered-file-system/empty-dir.test.js +0 -61
- package/dist/powered-file-system/mkdir.test.d.ts +0 -1
- package/dist/powered-file-system/mkdir.test.js +0 -116
- package/dist/powered-file-system/read.test.d.ts +0 -1
- package/dist/powered-file-system/read.test.js +0 -75
- package/dist/powered-file-system/readdir.test.d.ts +0 -1
- package/dist/powered-file-system/readdir.test.js +0 -72
- package/dist/powered-file-system/readlink.test.d.ts +0 -1
- package/dist/powered-file-system/readlink.test.js +0 -44
- package/dist/powered-file-system/realpath.test.d.ts +0 -1
- package/dist/powered-file-system/realpath.test.js +0 -44
- package/dist/powered-file-system/remove.test.d.ts +0 -1
- package/dist/powered-file-system/remove.test.js +0 -78
- package/dist/powered-file-system/rename.test.d.ts +0 -1
- package/dist/powered-file-system/rename.test.js +0 -70
- package/dist/powered-file-system/stat.test.d.ts +0 -1
- package/dist/powered-file-system/stat.test.js +0 -79
- package/dist/powered-file-system/symlink.test.d.ts +0 -1
- package/dist/powered-file-system/symlink.test.js +0 -77
- package/dist/powered-file-system/test.test.d.ts +0 -1
- package/dist/powered-file-system/test.test.js +0 -76
- package/dist/powered-file-system/write.test.d.ts +0 -1
- package/dist/powered-file-system/write.test.js +0 -97
- package/dist/powered-file-system.test.d.ts +0 -1
- package/dist/powered-file-system.test.js +0 -46
- package/dist/suite.test.d.ts +0 -1
- package/dist/suite.test.js +0 -40
- package/dist/test-utils.d.ts +0 -18
- package/dist/test-utils.js +0 -72
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,46 +0,0 @@
|
|
|
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
|
-
const node_assert_1 = __importDefault(require("node:assert"));
|
|
7
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
-
const node_test_1 = require("node:test");
|
|
9
|
-
const index_1 = require("./index");
|
|
10
|
-
const test_utils_1 = require("./test-utils");
|
|
11
|
-
/**
|
|
12
|
-
* Verifies constructor path resolution semantics for the main API surface.
|
|
13
|
-
*/
|
|
14
|
-
(0, node_test_1.describe)('#constructor: new PoweredFileSystem(pwd?)', () => {
|
|
15
|
-
(0, node_test_1.it)('Positive: An empty path must match the context of the cwd', () => {
|
|
16
|
-
const { pwd } = new index_1.PoweredFileSystem();
|
|
17
|
-
(0, node_assert_1.default)(pwd === process.cwd());
|
|
18
|
-
});
|
|
19
|
-
(0, node_test_1.it)('Positive: Absolute path must match the context of the pwd', () => {
|
|
20
|
-
const { pwd } = new index_1.PoweredFileSystem(__dirname);
|
|
21
|
-
(0, node_assert_1.default)(pwd === __dirname);
|
|
22
|
-
});
|
|
23
|
-
(0, node_test_1.it)('Positive: Resolve should accept paths inside the working directory', () => {
|
|
24
|
-
const tmpDir = (0, test_utils_1.createTmpDir)();
|
|
25
|
-
try {
|
|
26
|
-
const pfs = new index_1.PoweredFileSystem(tmpDir);
|
|
27
|
-
const resolved = pfs.resolve('./nested/file.txt');
|
|
28
|
-
(0, node_assert_1.default)(resolved === node_path_1.default.join(tmpDir, 'nested', 'file.txt'));
|
|
29
|
-
}
|
|
30
|
-
finally {
|
|
31
|
-
(0, test_utils_1.restore)(tmpDir);
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
(0, node_test_1.it)('Positive: Resolve should preserve absolute paths outside the working directory', () => {
|
|
35
|
-
const tmpDir = (0, test_utils_1.createTmpDir)();
|
|
36
|
-
const outsidePath = node_path_1.default.resolve(node_path_1.default.dirname(tmpDir), 'outside.txt');
|
|
37
|
-
try {
|
|
38
|
-
const pfs = new index_1.PoweredFileSystem(tmpDir);
|
|
39
|
-
const resolved = pfs.resolve(outsidePath);
|
|
40
|
-
(0, node_assert_1.default)(resolved === outsidePath);
|
|
41
|
-
}
|
|
42
|
-
finally {
|
|
43
|
-
(0, test_utils_1.restore)(tmpDir);
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
});
|
package/dist/suite.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/suite.test.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
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
|
-
const node_child_process_1 = require("node:child_process");
|
|
7
|
-
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
-
/**
|
|
10
|
-
* Recursively collects compiled test files emitted into `dist/`.
|
|
11
|
-
*/
|
|
12
|
-
function collectTestFiles(dir) {
|
|
13
|
-
let files = [];
|
|
14
|
-
for (const entry of node_fs_1.default.readdirSync(dir)) {
|
|
15
|
-
const fullPath = node_path_1.default.join(dir, entry);
|
|
16
|
-
const stat = node_fs_1.default.statSync(fullPath);
|
|
17
|
-
if (stat.isDirectory()) {
|
|
18
|
-
if (entry === 'src' || entry === 'test') {
|
|
19
|
-
continue;
|
|
20
|
-
}
|
|
21
|
-
files = files.concat(collectTestFiles(fullPath));
|
|
22
|
-
}
|
|
23
|
-
else if (/\.test\.js$/.test(entry)) {
|
|
24
|
-
files.push(fullPath);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return files;
|
|
28
|
-
}
|
|
29
|
-
// The compiled output directory is the root for the test runner.
|
|
30
|
-
const distDir = node_path_1.default.resolve(__dirname);
|
|
31
|
-
// The runner skips itself and forwards the rest to Node's native test harness.
|
|
32
|
-
const testFiles = collectTestFiles(distDir).filter((file) => file !== __filename);
|
|
33
|
-
if (!testFiles.length) {
|
|
34
|
-
console.warn("No test files found in dist/");
|
|
35
|
-
process.exit(0);
|
|
36
|
-
}
|
|
37
|
-
const { status } = (0, node_child_process_1.spawnSync)(process.execPath, ['--test', ...testFiles], {
|
|
38
|
-
stdio: 'inherit'
|
|
39
|
-
});
|
|
40
|
-
process.exitCode = status ?? 1;
|
package/dist/test-utils.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lightweight in-memory-like description of a temporary file system tree.
|
|
3
|
-
*/
|
|
4
|
-
export interface Iframe {
|
|
5
|
-
[key: string]: any;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Creates an isolated temporary directory for a single test case.
|
|
9
|
-
*/
|
|
10
|
-
export declare function createTmpDir(): string;
|
|
11
|
-
/**
|
|
12
|
-
* Materializes a test fixture tree on disk from a declarative frame description.
|
|
13
|
-
*/
|
|
14
|
-
export declare function fmock(frame: Iframe): void;
|
|
15
|
-
/**
|
|
16
|
-
* Removes the temporary fixture tree while resetting restrictive permissions first.
|
|
17
|
-
*/
|
|
18
|
-
export declare function restore(tmpDir: string): void;
|
package/dist/test-utils.js
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
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.createTmpDir = createTmpDir;
|
|
7
|
-
exports.fmock = fmock;
|
|
8
|
-
exports.restore = restore;
|
|
9
|
-
const node_fs_1 = __importDefault(require("node:fs"));
|
|
10
|
-
const node_os_1 = __importDefault(require("node:os"));
|
|
11
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
12
|
-
/**
|
|
13
|
-
* Creates an isolated temporary directory for a single test case.
|
|
14
|
-
*/
|
|
15
|
-
function createTmpDir() {
|
|
16
|
-
return node_fs_1.default.mkdtempSync(node_path_1.default.join(node_os_1.default.tmpdir(), 'pwd-fs-'));
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Materializes a test fixture tree on disk from a declarative frame description.
|
|
20
|
-
*/
|
|
21
|
-
function fmock(frame) {
|
|
22
|
-
for (const src of Object.keys(frame)) {
|
|
23
|
-
const { dir } = node_path_1.default.parse(src);
|
|
24
|
-
const value = frame[src];
|
|
25
|
-
node_fs_1.default.mkdirSync(dir, { recursive: true });
|
|
26
|
-
if (value.type === 'directory') {
|
|
27
|
-
node_fs_1.default.mkdirSync(src);
|
|
28
|
-
}
|
|
29
|
-
if (value.type === 'file') {
|
|
30
|
-
node_fs_1.default.writeFileSync(src, value.data);
|
|
31
|
-
}
|
|
32
|
-
if (value.type === 'symlink') {
|
|
33
|
-
let type;
|
|
34
|
-
if (process.platform === 'win32') {
|
|
35
|
-
const stats = node_fs_1.default.lstatSync(value.target);
|
|
36
|
-
type = stats.isDirectory() ? 'junction' : 'file';
|
|
37
|
-
}
|
|
38
|
-
node_fs_1.default.symlinkSync(value.target, src, type);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Removes the temporary fixture tree while resetting restrictive permissions first.
|
|
44
|
-
*/
|
|
45
|
-
function restore(tmpDir) {
|
|
46
|
-
const removeRecursive = (src) => {
|
|
47
|
-
if (node_fs_1.default.existsSync(src)) {
|
|
48
|
-
const stats = node_fs_1.default.lstatSync(src);
|
|
49
|
-
if (stats.isSymbolicLink()) {
|
|
50
|
-
node_fs_1.default.unlinkSync(src);
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
node_fs_1.default.chmodSync(src, 0o755);
|
|
54
|
-
node_fs_1.default.readdirSync(src).forEach((item) => {
|
|
55
|
-
const curl = node_path_1.default.join(src, item);
|
|
56
|
-
const stats = node_fs_1.default.lstatSync(curl);
|
|
57
|
-
if (stats.isSymbolicLink()) {
|
|
58
|
-
node_fs_1.default.unlinkSync(curl);
|
|
59
|
-
}
|
|
60
|
-
else if (stats.isDirectory()) {
|
|
61
|
-
removeRecursive(curl);
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
node_fs_1.default.chmodSync(curl, 0o666);
|
|
65
|
-
node_fs_1.default.unlinkSync(curl);
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
node_fs_1.default.rmdirSync(src);
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
removeRecursive(tmpDir);
|
|
72
|
-
}
|