Skip to content

Commit c0d269f

Browse files
authored
test: use node:crypto randomUUID instead of uuid dependency (#143)
The uuid package was a devDependency only used to generate temp file names in tests. Node's built-in crypto.randomUUID() covers this since Node 14.17 and the package requires Node >= 18, so this drops the dependency entirely. This also resolves the CVE-2026-41907 advisory flagged by Renovate, making #139 obsolete. Verified with npm run lint and npm run test:js (171 passing, 3 pending). <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Removed the unused UUID development dependency. * Updated temporary test file and directory generation to use Node.js’s built-in UUID support. * **Tests** * Preserved existing archive, extraction, streaming, and security test behavior while improving temporary path isolation. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
1 parent 5c725e6 commit c0d269f

19 files changed

Lines changed: 155 additions & 156 deletions

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,7 @@
5656
"eslint-config-egg": "12",
5757
"mm": "^2.0.0",
5858
"mz-modules": "^2.1.0",
59-
"typescript": "5",
60-
"uuid": "^3.0.1"
59+
"typescript": "5"
6160
},
6261
"engines": {
6362
"node": ">= 18.0.0"

test/gzip/file_stream.test.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
const fs = require('fs');
22
const os = require('os');
33
const path = require('path');
4-
const uuid = require('uuid');
4+
const { randomUUID } = require('node:crypto');
55
const { pipeline: pump } = require('stream');
66
const compressing = require('../..');
77
const assert = require('assert');
@@ -10,7 +10,7 @@ describe('test/gzip/file_stream.test.js', () => {
1010
it('should be a transform stream', done => {
1111
const sourceFile = path.join(__dirname, '..', 'fixtures', 'xx.log');
1212
const sourceStream = fs.createReadStream(sourceFile);
13-
const destFile = path.join(os.tmpdir(), uuid.v4() + '.log.gz');
13+
const destFile = path.join(os.tmpdir(), randomUUID() + '.log.gz');
1414
// console.log('destFile', destFile);
1515
const gzipStream = new compressing.gzip.FileStream();
1616
const destStream = fs.createWriteStream(destFile);
@@ -23,7 +23,7 @@ describe('test/gzip/file_stream.test.js', () => {
2323

2424
it('should compress according to file path', done => {
2525
const sourceFile = path.join(__dirname, '..', 'fixtures', 'xx.log');
26-
const destFile = path.join(os.tmpdir(), uuid.v4() + '.log.gz');
26+
const destFile = path.join(os.tmpdir(), randomUUID() + '.log.gz');
2727
// console.log('destFile', destFile);
2828
const gzipStream = new compressing.gzip.FileStream({ source: sourceFile });
2929
const destStream = fs.createWriteStream(destFile);
@@ -42,15 +42,15 @@ describe('test/gzip/file_stream.test.js', () => {
4242
gzipChunks.push(chunk);
4343
}
4444

45-
const destFile = path.join(os.tmpdir(), uuid.v4() + '.log.gz');
45+
const destFile = path.join(os.tmpdir(), randomUUID() + '.log.gz');
4646
await fs.promises.writeFile(destFile, Buffer.concat(gzipChunks));
4747
// console.log(destFile);
4848
});
4949

5050
it('should compress buffer', done => {
5151
const sourceFile = path.join(__dirname, '..', 'fixtures', 'xx.log');
5252
const sourceBuffer = fs.readFileSync(sourceFile);
53-
const destFile = path.join(os.tmpdir(), uuid.v4() + '.log.gz');
53+
const destFile = path.join(os.tmpdir(), randomUUID() + '.log.gz');
5454
// console.log('destFile', destFile);
5555
const destStream = fs.createWriteStream(destFile);
5656
const gzipStream = new compressing.gzip.FileStream({ source: sourceBuffer });
@@ -65,7 +65,7 @@ describe('test/gzip/file_stream.test.js', () => {
6565
it('should compress stream', done => {
6666
const sourceFile = path.join(__dirname, '..', 'fixtures', 'xx.log');
6767
const sourceStream = fs.createReadStream(sourceFile);
68-
const destFile = path.join(os.tmpdir(), uuid.v4() + '.log.gz');
68+
const destFile = path.join(os.tmpdir(), randomUUID() + '.log.gz');
6969
// console.log('destFile', destFile);
7070
const destStream = fs.createWriteStream(destFile);
7171
const gzipStream = new compressing.gzip.FileStream({ source: sourceStream });

test/gzip/index.test.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
const fs = require('fs');
44
const os = require('os');
55
const path = require('path');
6-
const uuid = require('uuid');
6+
const { randomUUID } = require('node:crypto');
77
const compressing = require('../..');
88
const assert = require('assert');
99
const isWindows = os.platform() === 'win32';
@@ -12,7 +12,7 @@ describe('test/gzip/index.test.js', () => {
1212
describe('gzip.compressFile()', () => {
1313
it('gzip.compressFile(file, stream)', async () => {
1414
const sourceFile = path.join(__dirname, '..', 'fixtures', 'xx.log');
15-
const destFile = path.join(os.tmpdir(), uuid.v4() + '.log.gz');
15+
const destFile = path.join(os.tmpdir(), randomUUID() + '.log.gz');
1616
// console.log('destFile', destFile);
1717
const fileStream = fs.createWriteStream(destFile);
1818
await compressing.gzip.compressFile(sourceFile, fileStream);
@@ -21,7 +21,7 @@ describe('test/gzip/index.test.js', () => {
2121

2222
it('gzip.compressFile(file, destStream) should error if destStream emit error', async () => {
2323
const sourceFile = path.join(__dirname, '..', 'fixtures', 'xx.log');
24-
const destFile = path.join(os.tmpdir(), uuid.v4() + '.gz');
24+
const destFile = path.join(os.tmpdir(), randomUUID() + '.gz');
2525
const fileStream = fs.createWriteStream(destFile);
2626
setImmediate(() => fileStream.emit('error', new Error('xx')));
2727

@@ -37,7 +37,7 @@ describe('test/gzip/index.test.js', () => {
3737
it('gzip.compressFile(buffer, stream)', async () => {
3838
const sourceFile = path.join(__dirname, '..', 'fixtures', 'xx.log');
3939
const sourceBuffer = fs.readFileSync(sourceFile);
40-
const destFile = path.join(os.tmpdir(), uuid.v4() + '.log.gz');
40+
const destFile = path.join(os.tmpdir(), randomUUID() + '.log.gz');
4141
// console.log('destFile', destFile);
4242
const fileStream = fs.createWriteStream(destFile);
4343
await compressing.gzip.compressFile(sourceBuffer, fileStream);
@@ -47,7 +47,7 @@ describe('test/gzip/index.test.js', () => {
4747
it('gzip.compressFile(sourceStream, destStream)', async () => {
4848
const sourceFile = path.join(__dirname, '..', 'fixtures', 'xx.log');
4949
const sourceStream = fs.createReadStream(sourceFile);
50-
const destFile = path.join(os.tmpdir(), uuid.v4() + '.log.gz');
50+
const destFile = path.join(os.tmpdir(), randomUUID() + '.log.gz');
5151
// console.log('destFile', destFile);
5252
const fileStream = fs.createWriteStream(destFile);
5353
await compressing.gzip.compressFile(sourceStream, fileStream);
@@ -59,7 +59,7 @@ describe('test/gzip/index.test.js', () => {
5959
it('gzip.uncompress(sourceFile, destStream)', async () => {
6060
const sourceFile = path.join(__dirname, '..', 'fixtures', 'xx.log.gz');
6161
const originalFile = path.join(__dirname, '..', 'fixtures', 'xx.log');
62-
const destFile = path.join(os.tmpdir(), uuid.v4() + '.log');
62+
const destFile = path.join(os.tmpdir(), randomUUID() + '.log');
6363
const fileStream = fs.createWriteStream(destFile);
6464
await compressing.gzip.uncompress(sourceFile, fileStream);
6565
assert(fs.existsSync(destFile));
@@ -72,7 +72,7 @@ describe('test/gzip/index.test.js', () => {
7272
it('gzip.uncompress(sourceStream, destStream)', async () => {
7373
const sourceStream = fs.createReadStream(path.join(__dirname, '..', 'fixtures', 'xx.log.gz'));
7474
const originalFile = path.join(__dirname, '..', 'fixtures', 'xx.log');
75-
const destFile = path.join(os.tmpdir(), uuid.v4() + '.log');
75+
const destFile = path.join(os.tmpdir(), randomUUID() + '.log');
7676
const fileStream = fs.createWriteStream(destFile);
7777
await compressing.gzip.uncompress(sourceStream, fileStream);
7878
assert(fs.existsSync(destFile));
@@ -85,7 +85,7 @@ describe('test/gzip/index.test.js', () => {
8585
it('gzip.uncompress(sourceStream, destFile)', async () => {
8686
const sourceStream = fs.createReadStream(path.join(__dirname, '..', 'fixtures', 'xx.log.gz'));
8787
const originalFile = path.join(__dirname, '..', 'fixtures', 'xx.log');
88-
const destFile = path.join(os.tmpdir(), uuid.v4() + '.log');
88+
const destFile = path.join(os.tmpdir(), randomUUID() + '.log');
8989
await compressing.gzip.uncompress(sourceStream, destFile);
9090
assert(fs.existsSync(destFile));
9191
if (!isWindows) {
@@ -97,7 +97,7 @@ describe('test/gzip/index.test.js', () => {
9797
it('gzip.uncompress(sourceFile, destFile)', async () => {
9898
const sourceFile = path.join(__dirname, '..', 'fixtures', 'xx.log.gz');
9999
const originalFile = path.join(__dirname, '..', 'fixtures', 'xx.log');
100-
const destFile = path.join(os.tmpdir(), uuid.v4() + '.log');
100+
const destFile = path.join(os.tmpdir(), randomUUID() + '.log');
101101
await compressing.gzip.uncompress(sourceFile, destFile);
102102
assert(fs.existsSync(destFile));
103103
if (!isWindows) {
@@ -109,7 +109,7 @@ describe('test/gzip/index.test.js', () => {
109109
it('gzip.uncompress(buffer, destFile)', async () => {
110110
const sourceBuffer = fs.readFileSync(path.join(__dirname, '..', 'fixtures', 'xx.log.gz'));
111111
const originalFile = path.join(__dirname, '..', 'fixtures', 'xx.log');
112-
const destFile = path.join(os.tmpdir(), uuid.v4() + '.log');
112+
const destFile = path.join(os.tmpdir(), randomUUID() + '.log');
113113
await compressing.gzip.uncompress(sourceBuffer, destFile);
114114
assert(fs.existsSync(destFile));
115115
if (!isWindows) {

test/gzip/uncompress_stream.test.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
const fs = require('fs');
22
const mm = require('mm');
33
const os = require('os');
4-
const uuid = require('uuid');
4+
const { randomUUID } = require('node:crypto');
55
const path = require('path');
66
const assert = require('assert');
77
const { pipeline: pump } = require('stream');
@@ -16,7 +16,7 @@ describe('test/gzip/uncompress_stream.test.js', () => {
1616
afterEach(mm.restore);
1717

1818
it('should be transform stream', done => {
19-
const destFile = path.join(os.tmpdir(), uuid.v4() + '.log');
19+
const destFile = path.join(os.tmpdir(), randomUUID() + '.log');
2020

2121
const sourceStream = fs.createReadStream(sourceFile);
2222
const uncompressStream = new compressing.gzip.UncompressStream();
@@ -36,7 +36,7 @@ describe('test/gzip/uncompress_stream.test.js', () => {
3636
});
3737

3838
it('should uncompress according to file path', done => {
39-
const destFile = path.join(os.tmpdir(), uuid.v4() + '.log');
39+
const destFile = path.join(os.tmpdir(), randomUUID() + '.log');
4040

4141
const uncompressStream = new compressing.gzip.UncompressStream({ source: sourceFile });
4242
const destStream = fs.createWriteStream(destFile);
@@ -55,7 +55,7 @@ describe('test/gzip/uncompress_stream.test.js', () => {
5555

5656
it('should uncompress buffer', done => {
5757
const sourceBuffer = fs.readFileSync(sourceFile);
58-
const destFile = path.join(os.tmpdir(), uuid.v4() + '.log');
58+
const destFile = path.join(os.tmpdir(), randomUUID() + '.log');
5959

6060
const destStream = fs.createWriteStream(destFile);
6161
const uncompressStream = new compressing.gzip.UncompressStream({ source: sourceBuffer });
@@ -74,7 +74,7 @@ describe('test/gzip/uncompress_stream.test.js', () => {
7474

7575
it('should uncompress stream', done => {
7676
const sourceStream = fs.createReadStream(sourceFile);
77-
const destFile = path.join(os.tmpdir(), uuid.v4() + '.log');
77+
const destFile = path.join(os.tmpdir(), randomUUID() + '.log');
7878

7979
const destStream = fs.createWriteStream(destFile);
8080
const uncompressStream = new compressing.gzip.UncompressStream({ source: sourceStream });

test/tar/file_stream.test.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ const mm = require('mm');
44
const fs = require('fs');
55
const os = require('os');
66
const path = require('path');
7-
const uuid = require('uuid');
7+
const { randomUUID } = require('node:crypto');
88
const assert = require('assert');
99
const { pipeline: pump } = require('stream');
1010
const compressing = require('../..');
@@ -14,7 +14,7 @@ describe('test/tar/file_stream.test.js', () => {
1414
it('tar.FileStream without size', done => {
1515
const sourceFile = path.join(__dirname, '..', 'fixtures', 'xx.log');
1616
const sourceStream = fs.createReadStream(sourceFile);
17-
const destFile = path.join(os.tmpdir(), uuid.v4() + '.tar');
17+
const destFile = path.join(os.tmpdir(), randomUUID() + '.tar');
1818
// console.log('dest', destFile);
1919

2020
mm(console, 'warn', msg => {
@@ -33,7 +33,7 @@ describe('test/tar/file_stream.test.js', () => {
3333
it('tar.FileStream with size', done => {
3434
const sourceFile = path.join(__dirname, '..', 'fixtures', 'xx.log');
3535
const sourceStream = fs.createReadStream(sourceFile);
36-
const destFile = path.join(os.tmpdir(), uuid.v4() + '.tar');
36+
const destFile = path.join(os.tmpdir(), randomUUID() + '.tar');
3737
// console.log('dest', destFile);
3838

3939
mm(console, 'warn', msg => {

0 commit comments

Comments
 (0)