@aneuhold/core-ts-lib 2.3.3 → 2.3.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/CHANGELOG.md +23 -0
- package/lib/services/FileSystemService/FileSystemService.d.ts +1 -1
- package/lib/services/FileSystemService/FileSystemService.js +12 -11
- package/lib/services/FileSystemService/FileSystemService.js.map +1 -1
- package/lib/services/FileSystemService/FileSystemService.ts +15 -15
- package/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,27 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## 🔖 [2.3.5] (2025-11-02)
|
|
9
|
+
|
|
10
|
+
### ✅ Added
|
|
11
|
+
|
|
12
|
+
- New tests for `FileSystemService.getAllFilePaths` and `getAllFilePathsRelative` to verify handling of circular symlinks
|
|
13
|
+
|
|
14
|
+
### 🏗️ Changed
|
|
15
|
+
|
|
16
|
+
- Refactored `getAllFilePaths` to use `readdir` with `recursive` and `withFileTypes` for improved performance and reliability
|
|
17
|
+
- Updated logic to skip symlinks and prevent infinite loops when traversing directories
|
|
18
|
+
|
|
19
|
+
### 🩹 Fixed
|
|
20
|
+
|
|
21
|
+
- Fixed infinite loop issue when traversing directories with circular symlinks in `FileSystemService`
|
|
22
|
+
|
|
23
|
+
## 🔖 [2.3.4] (2025-10-25)
|
|
24
|
+
|
|
25
|
+
### 🏗️ Changed
|
|
26
|
+
|
|
27
|
+
- Updated dependencies in package.json for compatibility and security improvements
|
|
28
|
+
|
|
8
29
|
## 🔖 [2.3.3] (2025-10-16)
|
|
9
30
|
|
|
10
31
|
### 🏗️ Changed
|
|
@@ -66,6 +87,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
|
66
87
|
|
|
67
88
|
<!-- Link References -->
|
|
68
89
|
|
|
90
|
+
[2.3.5]: https://github.com/aneuhold/ts-libs/compare/core-ts-lib-v2.3.4...core-ts-lib-v2.3.5
|
|
91
|
+
[2.3.4]: https://github.com/aneuhold/ts-libs/compare/core-ts-lib-v2.3.3...core-ts-lib-v2.3.4
|
|
69
92
|
[2.3.3]: https://github.com/aneuhold/ts-libs/compare/core-ts-lib-v2.3.2...core-ts-lib-v2.3.3
|
|
70
93
|
[2.3.2]: https://github.com/aneuhold/ts-libs/compare/core-ts-lib-v2.2.14...core-ts-lib-v2.3.2
|
|
71
94
|
[2.2.14]: https://github.com/aneuhold/ts-libs/compare/core-ts-lib-v2.2.13...core-ts-lib-v2.2.14
|
|
@@ -98,7 +98,7 @@ export default class FileSystemService {
|
|
|
98
98
|
*
|
|
99
99
|
* @param absolutePath Optional absolute path to check for changes. If not provided, uses current working directory.
|
|
100
100
|
* @returns true if there are changes compared to main, false otherwise
|
|
101
|
-
* @throws Error if not in a git repository
|
|
101
|
+
* @throws {Error} if not in a git repository
|
|
102
102
|
*/
|
|
103
103
|
static hasChangesComparedToMain(absolutePath?: string): Promise<boolean>;
|
|
104
104
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { exec } from 'child_process';
|
|
2
|
-
import { access, appendFile, cp, mkdir, readFile, readdir, rm,
|
|
2
|
+
import { access, appendFile, cp, mkdir, readFile, readdir, rm, writeFile } from 'fs/promises';
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import { promisify } from 'util';
|
|
5
5
|
import ErrorUtils from '../../utils/ErrorUtils.js';
|
|
@@ -101,18 +101,19 @@ export default class FileSystemService {
|
|
|
101
101
|
* @param dirPath the directory path to search for files in
|
|
102
102
|
*/
|
|
103
103
|
static async getAllFilePaths(dirPath) {
|
|
104
|
+
const entries = await readdir(dirPath, { recursive: true, withFileTypes: true });
|
|
104
105
|
const filePaths = [];
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
if (fileStat.isDirectory()) {
|
|
110
|
-
filePaths.push(...(await this.getAllFilePaths(absolutePath)));
|
|
106
|
+
for (const entry of entries) {
|
|
107
|
+
// Skip symlinks to avoid potential infinite loops
|
|
108
|
+
if (entry.isSymbolicLink()) {
|
|
109
|
+
continue;
|
|
111
110
|
}
|
|
112
|
-
|
|
113
|
-
|
|
111
|
+
// Only include files, not directories
|
|
112
|
+
if (entry.isFile()) {
|
|
113
|
+
const fullPath = path.join(entry.parentPath, entry.name);
|
|
114
|
+
filePaths.push(fullPath);
|
|
114
115
|
}
|
|
115
|
-
}
|
|
116
|
+
}
|
|
116
117
|
return filePaths;
|
|
117
118
|
}
|
|
118
119
|
/**
|
|
@@ -183,7 +184,7 @@ export default class FileSystemService {
|
|
|
183
184
|
*
|
|
184
185
|
* @param absolutePath Optional absolute path to check for changes. If not provided, uses current working directory.
|
|
185
186
|
* @returns true if there are changes compared to main, false otherwise
|
|
186
|
-
* @throws Error if not in a git repository
|
|
187
|
+
* @throws {Error} if not in a git repository
|
|
187
188
|
*/
|
|
188
189
|
static async hasChangesComparedToMain(absolutePath) {
|
|
189
190
|
const targetDir = absolutePath ?? process.cwd();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileSystemService.js","sourceRoot":"","sources":["../../../src/services/FileSystemService/FileSystemService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"FileSystemService.js","sourceRoot":"","sources":["../../../src/services/FileSystemService/FileSystemService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { exec } from 'child_process';
|
|
2
|
-
import { access, appendFile, cp, mkdir, readFile, readdir, rm,
|
|
2
|
+
import { access, appendFile, cp, mkdir, readFile, readdir, rm, writeFile } from 'fs/promises';
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import { promisify } from 'util';
|
|
5
5
|
import ErrorUtils from '../../utils/ErrorUtils.js';
|
|
@@ -140,21 +140,21 @@ export default class FileSystemService {
|
|
|
140
140
|
* @param dirPath the directory path to search for files in
|
|
141
141
|
*/
|
|
142
142
|
static async getAllFilePaths(dirPath: string): Promise<string[]> {
|
|
143
|
+
const entries = await readdir(dirPath, { recursive: true, withFileTypes: true });
|
|
143
144
|
const filePaths: string[] = [];
|
|
144
|
-
const fileOrFolderNames = await readdir(dirPath);
|
|
145
145
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
}
|
|
157
|
-
|
|
146
|
+
for (const entry of entries) {
|
|
147
|
+
// Skip symlinks to avoid potential infinite loops
|
|
148
|
+
if (entry.isSymbolicLink()) {
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// Only include files, not directories
|
|
153
|
+
if (entry.isFile()) {
|
|
154
|
+
const fullPath = path.join(entry.parentPath, entry.name);
|
|
155
|
+
filePaths.push(fullPath);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
158
|
|
|
159
159
|
return filePaths;
|
|
160
160
|
}
|
|
@@ -246,7 +246,7 @@ export default class FileSystemService {
|
|
|
246
246
|
*
|
|
247
247
|
* @param absolutePath Optional absolute path to check for changes. If not provided, uses current working directory.
|
|
248
248
|
* @returns true if there are changes compared to main, false otherwise
|
|
249
|
-
* @throws Error if not in a git repository
|
|
249
|
+
* @throws {Error} if not in a git repository
|
|
250
250
|
*/
|
|
251
251
|
static async hasChangesComparedToMain(absolutePath?: string): Promise<boolean> {
|
|
252
252
|
const targetDir = absolutePath ?? process.cwd();
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@aneuhold/core-ts-lib",
|
|
3
3
|
"author": "Anton G. Neuhold Jr.",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "2.3.
|
|
5
|
+
"version": "2.3.5",
|
|
6
6
|
"description": "A core library for all of my TypeScript projects",
|
|
7
7
|
"packageManager": "pnpm@10.12.1",
|
|
8
8
|
"type": "module",
|
|
@@ -46,14 +46,14 @@
|
|
|
46
46
|
"Node.js"
|
|
47
47
|
],
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@types/node": "^
|
|
50
|
-
"eslint": "^9.
|
|
51
|
-
"jsr": "
|
|
49
|
+
"@types/node": "^24.9.1",
|
|
50
|
+
"eslint": "^9.38.0",
|
|
51
|
+
"jsr": "^0.13.5",
|
|
52
52
|
"nodemon": "^3.1.10",
|
|
53
|
-
"prettier": "^3.
|
|
53
|
+
"prettier": "^3.6.2",
|
|
54
54
|
"rimraf": "^6.0.1",
|
|
55
|
-
"tsx": "^4.20.
|
|
56
|
-
"typescript": "~5.
|
|
57
|
-
"vitest": "^
|
|
55
|
+
"tsx": "^4.20.6",
|
|
56
|
+
"typescript": "~5.9.3",
|
|
57
|
+
"vitest": "^4.0.3"
|
|
58
58
|
}
|
|
59
59
|
}
|