@aneuhold/core-ts-lib 2.4.3 → 2.4.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 +27 -1
- package/lib/browser.d.ts +10 -6
- package/lib/browser.d.ts.map +1 -1
- package/lib/browser.js +7 -4
- package/lib/browser.js.map +1 -1
- package/lib/browser.ts +21 -5
- package/lib/index.d.ts +4 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +4 -4
- package/lib/index.js.map +1 -1
- package/lib/index.ts +4 -4
- package/lib/services/{ArrayService.d.ts → Array.service.d.ts} +1 -1
- package/lib/services/Array.service.d.ts.map +1 -0
- package/lib/services/{ArrayService.js → Array.service.js} +1 -1
- package/lib/services/Array.service.js.map +1 -0
- package/lib/services/ChangelogService/{ChangelogService.d.ts → Changelog.service.d.ts} +2 -28
- package/lib/services/ChangelogService/Changelog.service.d.ts.map +1 -0
- package/lib/services/ChangelogService/{ChangelogService.js → Changelog.service.js} +11 -11
- package/lib/services/ChangelogService/Changelog.service.js.map +1 -0
- package/lib/services/ChangelogService/{ChangelogService.ts → Changelog.service.ts} +10 -10
- package/lib/services/ChangelogService/{ChangelogFileService.d.ts → ChangelogFile.service.d.ts} +1 -1
- package/lib/services/ChangelogService/ChangelogFile.service.d.ts.map +1 -0
- package/lib/services/ChangelogService/{ChangelogFileService.js → ChangelogFile.service.js} +1 -1
- package/lib/services/ChangelogService/ChangelogFile.service.js.map +1 -0
- package/lib/services/ChangelogService/ChangelogGenerator.js +1 -1
- package/lib/services/ChangelogService/ChangelogGenerator.js.map +1 -1
- package/lib/services/ChangelogService/ChangelogGenerator.ts +1 -1
- package/lib/services/ChangelogService/ChangelogParser.d.ts +1 -7
- package/lib/services/ChangelogService/ChangelogParser.d.ts.map +1 -1
- package/lib/services/ChangelogService/ChangelogParser.js +4 -4
- package/lib/services/ChangelogService/ChangelogParser.js.map +1 -1
- package/lib/services/ChangelogService/ChangelogParser.ts +6 -6
- package/lib/services/ChangelogService/{GitTagService.d.ts → GitTag.service.d.ts} +2 -8
- package/lib/services/ChangelogService/GitTag.service.d.ts.map +1 -0
- package/lib/services/ChangelogService/{GitTagService.js → GitTag.service.js} +4 -4
- package/lib/services/ChangelogService/GitTag.service.js.map +1 -0
- package/lib/services/ChangelogService/{GitTagService.ts → GitTag.service.ts} +3 -3
- package/lib/services/ChangelogService/{RepositoryInfoService.d.ts → RepositoryInfo.service.d.ts} +1 -1
- package/lib/services/ChangelogService/RepositoryInfo.service.d.ts.map +1 -0
- package/lib/services/ChangelogService/{RepositoryInfoService.js → RepositoryInfo.service.js} +1 -1
- package/lib/services/ChangelogService/RepositoryInfo.service.js.map +1 -0
- package/lib/services/ChangelogService/{RepositoryInfoService.ts → RepositoryInfo.service.ts} +1 -1
- package/lib/services/ChangelogService/index.d.ts +1 -1
- package/lib/services/ChangelogService/index.d.ts.map +1 -1
- package/lib/services/ChangelogService/index.js +1 -1
- package/lib/services/ChangelogService/index.js.map +1 -1
- package/lib/services/ChangelogService/index.ts +1 -1
- package/lib/services/ChangelogService/types.d.ts +7 -0
- package/lib/services/ChangelogService/types.d.ts.map +1 -1
- package/lib/services/ChangelogService/types.js +7 -0
- package/lib/services/ChangelogService/types.js.map +1 -1
- package/lib/services/ChangelogService/types.ts +9 -0
- package/lib/services/DateService/{DateService.d.ts → Date.service.d.ts} +2 -3
- package/lib/services/DateService/Date.service.d.ts.map +1 -0
- package/lib/services/DateService/{DateService.js → Date.service.js} +12 -10
- package/lib/services/DateService/Date.service.js.map +1 -0
- package/lib/services/DateService/{DateService.ts → Date.service.ts} +12 -9
- package/lib/services/{DependencyService.d.ts → Dependency.service.d.ts} +2 -10
- package/lib/services/Dependency.service.d.ts.map +1 -0
- package/lib/services/{DependencyService.js → Dependency.service.js} +13 -10
- package/lib/services/Dependency.service.js.map +1 -0
- package/lib/services/{DependencyService.ts → Dependency.service.ts} +15 -11
- package/lib/services/DependencyRegistry.d.ts +1 -2
- package/lib/services/DependencyRegistry.d.ts.map +1 -1
- package/lib/services/DependencyRegistry.js +6 -6
- package/lib/services/DependencyRegistry.js.map +1 -1
- package/lib/services/DependencyRegistry.ts +6 -6
- package/lib/services/FileSystemService/{FileSystemService.d.ts → FileSystem.service.d.ts} +2 -25
- package/lib/services/FileSystemService/FileSystem.service.d.ts.map +1 -0
- package/lib/services/FileSystemService/{FileSystemService.js → FileSystem.service.js} +15 -15
- package/lib/services/FileSystemService/FileSystem.service.js.map +1 -0
- package/lib/services/FileSystemService/{FileSystemService.ts → FileSystem.service.ts} +20 -17
- package/lib/services/FileSystemService/{GlobMatchingService.d.ts → GlobMatching.service.d.ts} +2 -18
- package/lib/services/FileSystemService/GlobMatching.service.d.ts.map +1 -0
- package/lib/services/FileSystemService/{GlobMatchingService.js → GlobMatching.service.js} +6 -6
- package/lib/services/FileSystemService/GlobMatching.service.js.map +1 -0
- package/lib/services/FileSystemService/{GlobMatchingService.ts → GlobMatching.service.ts} +5 -5
- package/lib/services/PackageService/JsrPackage.service.d.ts +29 -0
- package/lib/services/PackageService/JsrPackage.service.d.ts.map +1 -0
- package/lib/services/PackageService/{JsrPackageService.js → JsrPackage.service.js} +25 -22
- package/lib/services/PackageService/JsrPackage.service.js.map +1 -0
- package/lib/services/PackageService/{JsrPackageService.ts → JsrPackage.service.ts} +31 -28
- package/lib/services/PackageService/{NpmPackageService.d.ts → NpmPackage.service.d.ts} +2 -20
- package/lib/services/PackageService/NpmPackage.service.d.ts.map +1 -0
- package/lib/services/PackageService/{NpmPackageService.js → NpmPackage.service.js} +10 -10
- package/lib/services/PackageService/NpmPackage.service.js.map +1 -0
- package/lib/services/PackageService/{NpmPackageService.ts → NpmPackage.service.ts} +10 -13
- package/lib/services/PackageService/{PackageService.d.ts → Package.service.d.ts} +1 -1
- package/lib/services/PackageService/Package.service.d.ts.map +1 -0
- package/lib/services/PackageService/{PackageService.js → Package.service.js} +3 -3
- package/lib/services/PackageService/Package.service.js.map +1 -0
- package/lib/services/PackageService/{PackageService.ts → Package.service.ts} +2 -2
- package/lib/services/PackageService/PackageServiceUtils.d.ts +1 -10
- package/lib/services/PackageService/PackageServiceUtils.d.ts.map +1 -1
- package/lib/services/PackageService/PackageServiceUtils.js +8 -6
- package/lib/services/PackageService/PackageServiceUtils.js.map +1 -1
- package/lib/services/PackageService/PackageServiceUtils.ts +11 -7
- package/lib/services/{StringService.d.ts → String.service.d.ts} +1 -1
- package/lib/services/String.service.d.ts.map +1 -0
- package/lib/services/{StringService.js → String.service.js} +1 -1
- package/lib/services/String.service.js.map +1 -0
- package/lib/types/DeepPartial.d.ts +1 -1
- package/lib/types/DeepPartial.d.ts.map +1 -1
- package/lib/types/DeepPartial.ts +1 -1
- package/lib/types/JsonWithVersionProperty.d.ts +7 -0
- package/lib/types/JsonWithVersionProperty.d.ts.map +1 -1
- package/lib/types/JsonWithVersionProperty.js +10 -1
- package/lib/types/JsonWithVersionProperty.js.map +1 -1
- package/lib/types/JsonWithVersionProperty.ts +12 -0
- package/lib/types/PackageJson.d.ts +22 -0
- package/lib/types/PackageJson.d.ts.map +1 -1
- package/lib/types/PackageJson.js +15 -1
- package/lib/types/PackageJson.js.map +1 -1
- package/lib/types/PackageJson.ts +28 -0
- package/lib/utils/ConsoleLogger.d.ts +1 -11
- package/lib/utils/ConsoleLogger.d.ts.map +1 -1
- package/lib/utils/ConsoleLogger.js +8 -8
- package/lib/utils/ConsoleLogger.js.map +1 -1
- package/lib/utils/ConsoleLogger.ts +8 -8
- package/lib/utils/ErrorUtils.d.ts +2 -2
- package/lib/utils/ErrorUtils.d.ts.map +1 -1
- package/lib/utils/ErrorUtils.js.map +1 -1
- package/lib/utils/ErrorUtils.ts +2 -2
- package/lib/utils/JsonUtils.d.ts +14 -0
- package/lib/utils/JsonUtils.d.ts.map +1 -0
- package/lib/utils/JsonUtils.js +20 -0
- package/lib/utils/JsonUtils.js.map +1 -0
- package/lib/utils/JsonUtils.ts +23 -0
- package/lib/utils/TestUtils.d.ts +1 -1
- package/lib/utils/TestUtils.d.ts.map +1 -1
- package/lib/utils/TestUtils.js +5 -5
- package/lib/utils/TestUtils.js.map +1 -1
- package/lib/utils/TestUtils.ts +5 -5
- package/package.json +2 -2
- package/lib/services/ArrayService.d.ts.map +0 -1
- package/lib/services/ArrayService.js.map +0 -1
- package/lib/services/ChangelogService/ChangelogFileService.d.ts.map +0 -1
- package/lib/services/ChangelogService/ChangelogFileService.js.map +0 -1
- package/lib/services/ChangelogService/ChangelogService.d.ts.map +0 -1
- package/lib/services/ChangelogService/ChangelogService.js.map +0 -1
- package/lib/services/ChangelogService/GitTagService.d.ts.map +0 -1
- package/lib/services/ChangelogService/GitTagService.js.map +0 -1
- package/lib/services/ChangelogService/RepositoryInfoService.d.ts.map +0 -1
- package/lib/services/ChangelogService/RepositoryInfoService.js.map +0 -1
- package/lib/services/DateService/DateService.d.ts.map +0 -1
- package/lib/services/DateService/DateService.js.map +0 -1
- package/lib/services/DependencyService.d.ts.map +0 -1
- package/lib/services/DependencyService.js.map +0 -1
- package/lib/services/FileSystemService/FileSystemService.d.ts.map +0 -1
- package/lib/services/FileSystemService/FileSystemService.js.map +0 -1
- package/lib/services/FileSystemService/GlobMatchingService.d.ts.map +0 -1
- package/lib/services/FileSystemService/GlobMatchingService.js.map +0 -1
- package/lib/services/PackageService/JsrPackageService.d.ts +0 -83
- package/lib/services/PackageService/JsrPackageService.d.ts.map +0 -1
- package/lib/services/PackageService/JsrPackageService.js.map +0 -1
- package/lib/services/PackageService/NpmPackageService.d.ts.map +0 -1
- package/lib/services/PackageService/NpmPackageService.js.map +0 -1
- package/lib/services/PackageService/PackageService.d.ts.map +0 -1
- package/lib/services/PackageService/PackageService.js.map +0 -1
- package/lib/services/StringService.d.ts.map +0 -1
- package/lib/services/StringService.js.map +0 -1
- /package/lib/services/{ArrayService.ts → Array.service.ts} +0 -0
- /package/lib/services/ChangelogService/{ChangelogFileService.ts → ChangelogFile.service.ts} +0 -0
- /package/lib/services/{StringService.ts → String.service.ts} +0 -0
|
@@ -5,8 +5,7 @@ import type { ITracer } from '../interfaces/ITracer.js';
|
|
|
5
5
|
* Provides a central point for accessing shared services throughout an application.
|
|
6
6
|
*/
|
|
7
7
|
export declare class DependencyRegistry {
|
|
8
|
-
private
|
|
9
|
-
private static tracerInstance;
|
|
8
|
+
#private;
|
|
10
9
|
/**
|
|
11
10
|
* Registers a logger implementation, overwriting the existing one.
|
|
12
11
|
* Should typically be called once at application startup if a custom logger is needed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DependencyRegistry.d.ts","sourceRoot":"","sources":["../../src/services/DependencyRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAIxD;;;GAGG;AACH,qBAAa,kBAAkB
|
|
1
|
+
{"version":3,"file":"DependencyRegistry.d.ts","sourceRoot":"","sources":["../../src/services/DependencyRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAIxD;;;GAGG;AACH,qBAAa,kBAAkB;;IAK7B;;;;;OAKG;WACW,cAAc,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAIrD;;;;;OAKG;IACH,WAAkB,MAAM,IAAI,OAAO,CAElC;IAED;;;;;OAKG;WACW,cAAc,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAIrD;;;;;OAKG;IACH,WAAkB,MAAM,IAAI,OAAO,CAElC;CACF;AAED;;GAEG;AACH,eAAO,MAAM,EAAE,2BAAqB,CAAC"}
|
|
@@ -6,8 +6,8 @@ import ConsoleLogger from '../utils/ConsoleLogger.js';
|
|
|
6
6
|
*/
|
|
7
7
|
export class DependencyRegistry {
|
|
8
8
|
// Initialize with concrete defaults
|
|
9
|
-
static loggerInstance = new ConsoleLogger();
|
|
10
|
-
static tracerInstance = new NoopTracer();
|
|
9
|
+
static #loggerInstance = new ConsoleLogger();
|
|
10
|
+
static #tracerInstance = new NoopTracer();
|
|
11
11
|
/**
|
|
12
12
|
* Registers a logger implementation, overwriting the existing one.
|
|
13
13
|
* Should typically be called once at application startup if a custom logger is needed.
|
|
@@ -15,7 +15,7 @@ export class DependencyRegistry {
|
|
|
15
15
|
* @param instance - The ILogger instance to register.
|
|
16
16
|
*/
|
|
17
17
|
static registerLogger(instance) {
|
|
18
|
-
this
|
|
18
|
+
this.#loggerInstance = instance;
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
21
|
* Gets the currently registered logger instance.
|
|
@@ -24,7 +24,7 @@ export class DependencyRegistry {
|
|
|
24
24
|
* @returns The registered ILogger instance.
|
|
25
25
|
*/
|
|
26
26
|
static get logger() {
|
|
27
|
-
return this
|
|
27
|
+
return this.#loggerInstance;
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
30
|
* Registers a tracer implementation, overwriting the existing one.
|
|
@@ -33,7 +33,7 @@ export class DependencyRegistry {
|
|
|
33
33
|
* @param instance - The ITracer instance to register.
|
|
34
34
|
*/
|
|
35
35
|
static registerTracer(instance) {
|
|
36
|
-
this
|
|
36
|
+
this.#tracerInstance = instance;
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
39
|
* Gets the currently registered tracer instance.
|
|
@@ -42,7 +42,7 @@ export class DependencyRegistry {
|
|
|
42
42
|
* @returns The registered ITracer instance.
|
|
43
43
|
*/
|
|
44
44
|
static get tracer() {
|
|
45
|
-
return this
|
|
45
|
+
return this.#tracerInstance;
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DependencyRegistry.js","sourceRoot":"","sources":["../../src/services/DependencyRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,aAAa,MAAM,2BAA2B,CAAC;AAEtD;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IAC7B,oCAAoC;
|
|
1
|
+
{"version":3,"file":"DependencyRegistry.js","sourceRoot":"","sources":["../../src/services/DependencyRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,aAAa,MAAM,2BAA2B,CAAC;AAEtD;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IAC7B,oCAAoC;IACpC,MAAM,CAAC,eAAe,GAAY,IAAI,aAAa,EAAE,CAAC;IACtD,MAAM,CAAC,eAAe,GAAY,IAAI,UAAU,EAAE,CAAC;IAEnD;;;;;OAKG;IACI,MAAM,CAAC,cAAc,CAAC,QAAiB;QAC5C,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACI,MAAM,KAAK,MAAM;QACtB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,cAAc,CAAC,QAAiB;QAC5C,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACI,MAAM,KAAK,MAAM;QACtB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;;AAGH;;GAEG;AACH,MAAM,CAAC,MAAM,EAAE,GAAG,kBAAkB,CAAC"}
|
|
@@ -9,8 +9,8 @@ import ConsoleLogger from '../utils/ConsoleLogger.js';
|
|
|
9
9
|
*/
|
|
10
10
|
export class DependencyRegistry {
|
|
11
11
|
// Initialize with concrete defaults
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
static #loggerInstance: ILogger = new ConsoleLogger();
|
|
13
|
+
static #tracerInstance: ITracer = new NoopTracer();
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Registers a logger implementation, overwriting the existing one.
|
|
@@ -19,7 +19,7 @@ export class DependencyRegistry {
|
|
|
19
19
|
* @param instance - The ILogger instance to register.
|
|
20
20
|
*/
|
|
21
21
|
public static registerLogger(instance: ILogger): void {
|
|
22
|
-
this
|
|
22
|
+
this.#loggerInstance = instance;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
/**
|
|
@@ -29,7 +29,7 @@ export class DependencyRegistry {
|
|
|
29
29
|
* @returns The registered ILogger instance.
|
|
30
30
|
*/
|
|
31
31
|
public static get logger(): ILogger {
|
|
32
|
-
return this
|
|
32
|
+
return this.#loggerInstance;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
/**
|
|
@@ -39,7 +39,7 @@ export class DependencyRegistry {
|
|
|
39
39
|
* @param instance - The ITracer instance to register.
|
|
40
40
|
*/
|
|
41
41
|
public static registerTracer(instance: ITracer): void {
|
|
42
|
-
this
|
|
42
|
+
this.#tracerInstance = instance;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
/**
|
|
@@ -49,7 +49,7 @@ export class DependencyRegistry {
|
|
|
49
49
|
* @returns The registered ITracer instance.
|
|
50
50
|
*/
|
|
51
51
|
public static get tracer(): ITracer {
|
|
52
|
-
return this
|
|
52
|
+
return this.#tracerInstance;
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
|
|
@@ -22,6 +22,7 @@ export type ReplaceInFilesOptions = {
|
|
|
22
22
|
* steps.
|
|
23
23
|
*/
|
|
24
24
|
export default class FileSystemService {
|
|
25
|
+
#private;
|
|
25
26
|
/**
|
|
26
27
|
* Tries to add the provided snippet of text to the path provided. If the file
|
|
27
28
|
* doesn't exist, it creates it. If the folders to the file don't exist, it
|
|
@@ -108,29 +109,5 @@ export default class FileSystemService {
|
|
|
108
109
|
* @param options Configuration object for the replacement operation
|
|
109
110
|
*/
|
|
110
111
|
static replaceInFiles(options: ReplaceInFilesOptions): Promise<void>;
|
|
111
|
-
/**
|
|
112
|
-
* Determines the appropriate git diff command to use.
|
|
113
|
-
*
|
|
114
|
-
* @param repoRoot The git repository root directory
|
|
115
|
-
* @returns The git diff command to use
|
|
116
|
-
*/
|
|
117
|
-
private static getGitDiffCommand;
|
|
118
|
-
/**
|
|
119
|
-
* Internal helper method that traverses up the directory tree looking for files.
|
|
120
|
-
*
|
|
121
|
-
* @param startDir - The directory to start searching from
|
|
122
|
-
* @param fileName - The name of the file to search for
|
|
123
|
-
* @param stopAt - Optional directory path to stop searching at (defaults to root)
|
|
124
|
-
* @param findFirst - If true, stops after finding the first file
|
|
125
|
-
*/
|
|
126
|
-
private static traverseDirectoryTree;
|
|
127
|
-
/**
|
|
128
|
-
* Checks if a file should be ignored based on the provided extensions.
|
|
129
|
-
* Supports both simple extensions (e.g., '.ts') and multi-part extensions (e.g., '.spec.ts').
|
|
130
|
-
*
|
|
131
|
-
* @param filePath the path to the file to check
|
|
132
|
-
* @param ignoreExtensions array of extensions to ignore
|
|
133
|
-
*/
|
|
134
|
-
private static shouldIgnoreFile;
|
|
135
112
|
}
|
|
136
|
-
//# sourceMappingURL=
|
|
113
|
+
//# sourceMappingURL=FileSystem.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileSystem.service.d.ts","sourceRoot":"","sources":["../../../src/services/FileSystemService/FileSystem.service.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,kFAAkF;IAClF,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;;IAGpC;;;;;;;;;OASG;WACU,iBAAiB,CAC5B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAsBhB;;;;;;;;OAQG;WACU,kBAAkB,CAC7B,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAC1B,OAAO,CAAC,IAAI,CAAC;WA4BH,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;WAStD,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5D;;;;;;;;OAQG;WACU,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAoBhE;;;;;;;;OAQG;WACU,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAWxE;;;;;OAKG;WACU,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAUlD;;;;;;;;;OASG;WACU,cAAc,CACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUzB;;;;;;;;OAQG;WACU,kBAAkB,CAC7B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,EAAE,CAAC;IASpB;;;;;;OAMG;WACU,wBAAwB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4C9E;;;;;OAKG;WACU,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;CAsK3E"}
|
|
@@ -4,14 +4,14 @@ import path from 'path';
|
|
|
4
4
|
import { promisify } from 'util';
|
|
5
5
|
import ErrorUtils from '../../utils/ErrorUtils.js';
|
|
6
6
|
import { DR } from '../DependencyRegistry.js';
|
|
7
|
-
import StringService from '../
|
|
8
|
-
import GlobMatchingService from './
|
|
9
|
-
const execAsync = promisify(exec);
|
|
7
|
+
import StringService from '../String.service.js';
|
|
8
|
+
import GlobMatchingService from './GlobMatching.service.js';
|
|
10
9
|
/**
|
|
11
10
|
* A service which can be used to interact with the file system, only in build
|
|
12
11
|
* steps.
|
|
13
12
|
*/
|
|
14
13
|
export default class FileSystemService {
|
|
14
|
+
static #execAsync = promisify(exec);
|
|
15
15
|
/**
|
|
16
16
|
* Tries to add the provided snippet of text to the path provided. If the file
|
|
17
17
|
* doesn't exist, it creates it. If the folders to the file don't exist, it
|
|
@@ -66,7 +66,7 @@ export default class FileSystemService {
|
|
|
66
66
|
const sourceFile = path.join(sourceFolderPath, sourceFilePath);
|
|
67
67
|
const targetFile = path.join(targetFolderPath, sourceFilePath);
|
|
68
68
|
// Check if the file should be ignored based on extensions
|
|
69
|
-
if (ignoreExtensions && FileSystemService
|
|
69
|
+
if (ignoreExtensions && FileSystemService.#shouldIgnoreFile(sourceFile, ignoreExtensions)) {
|
|
70
70
|
return;
|
|
71
71
|
}
|
|
72
72
|
await cp(sourceFile, targetFile, { recursive: true });
|
|
@@ -143,7 +143,7 @@ export default class FileSystemService {
|
|
|
143
143
|
*/
|
|
144
144
|
static async hasPendingChanges() {
|
|
145
145
|
try {
|
|
146
|
-
const { stdout } = await execAsync('git status --porcelain');
|
|
146
|
+
const { stdout } = await FileSystemService.#execAsync('git status --porcelain');
|
|
147
147
|
return stdout.trim().length > 0;
|
|
148
148
|
}
|
|
149
149
|
catch (error) {
|
|
@@ -162,7 +162,7 @@ export default class FileSystemService {
|
|
|
162
162
|
* @param stopAt - Optional directory path to stop searching at (defaults to root)
|
|
163
163
|
*/
|
|
164
164
|
static async findFileUpTree(startDir, fileName, stopAt) {
|
|
165
|
-
const results = await this
|
|
165
|
+
const results = await this.#traverseDirectoryTree(startDir, fileName, stopAt, true // findFirst = true
|
|
166
166
|
);
|
|
167
167
|
return results.length > 0 ? results[0] : null;
|
|
168
168
|
}
|
|
@@ -176,7 +176,7 @@ export default class FileSystemService {
|
|
|
176
176
|
* @param stopAt - Optional directory path to stop searching at (defaults to root)
|
|
177
177
|
*/
|
|
178
178
|
static async findAllFilesUpTree(startDir, fileName, stopAt) {
|
|
179
|
-
return this
|
|
179
|
+
return this.#traverseDirectoryTree(startDir, fileName, stopAt, false // findFirst = false
|
|
180
180
|
);
|
|
181
181
|
}
|
|
182
182
|
/**
|
|
@@ -190,14 +190,14 @@ export default class FileSystemService {
|
|
|
190
190
|
const targetDir = absolutePath ?? process.cwd();
|
|
191
191
|
try {
|
|
192
192
|
// Get git repository root
|
|
193
|
-
const { stdout: gitRoot } = await execAsync('git rev-parse --show-toplevel', {
|
|
193
|
+
const { stdout: gitRoot } = await FileSystemService.#execAsync('git rev-parse --show-toplevel', {
|
|
194
194
|
cwd: targetDir
|
|
195
195
|
});
|
|
196
196
|
const repoRoot = gitRoot.trim();
|
|
197
197
|
// Determine git diff command - prefer origin/main, fallback to HEAD~1
|
|
198
|
-
const gitCommand = await this
|
|
198
|
+
const gitCommand = await this.#getGitDiffCommand(repoRoot);
|
|
199
199
|
// Get changed files
|
|
200
|
-
const { stdout } = await execAsync(gitCommand, { cwd: repoRoot });
|
|
200
|
+
const { stdout } = await FileSystemService.#execAsync(gitCommand, { cwd: repoRoot });
|
|
201
201
|
const changedFiles = stdout.trim().split('\n').filter(Boolean);
|
|
202
202
|
// Get relative path from git root to target directory
|
|
203
203
|
const relativePath = path.relative(repoRoot, targetDir).replace(/\\/g, '/');
|
|
@@ -276,9 +276,9 @@ export default class FileSystemService {
|
|
|
276
276
|
* @param repoRoot The git repository root directory
|
|
277
277
|
* @returns The git diff command to use
|
|
278
278
|
*/
|
|
279
|
-
static async getGitDiffCommand(repoRoot) {
|
|
279
|
+
static async #getGitDiffCommand(repoRoot) {
|
|
280
280
|
try {
|
|
281
|
-
await execAsync('git show-ref --verify --quiet refs/remotes/origin/main', {
|
|
281
|
+
await FileSystemService.#execAsync('git show-ref --verify --quiet refs/remotes/origin/main', {
|
|
282
282
|
cwd: repoRoot
|
|
283
283
|
});
|
|
284
284
|
// Returns all changed files compared to origin/main, including uncommitted changes
|
|
@@ -297,7 +297,7 @@ export default class FileSystemService {
|
|
|
297
297
|
* @param stopAt - Optional directory path to stop searching at (defaults to root)
|
|
298
298
|
* @param findFirst - If true, stops after finding the first file
|
|
299
299
|
*/
|
|
300
|
-
static async traverseDirectoryTree(startDir, fileName, stopAt, findFirst = false) {
|
|
300
|
+
static async #traverseDirectoryTree(startDir, fileName, stopAt, findFirst = false) {
|
|
301
301
|
const results = [];
|
|
302
302
|
let currentDir = path.resolve(startDir);
|
|
303
303
|
const rootDir = stopAt ? path.resolve(stopAt) : path.parse(currentDir).root;
|
|
@@ -338,7 +338,7 @@ export default class FileSystemService {
|
|
|
338
338
|
* @param filePath the path to the file to check
|
|
339
339
|
* @param ignoreExtensions array of extensions to ignore
|
|
340
340
|
*/
|
|
341
|
-
static shouldIgnoreFile(filePath, ignoreExtensions) {
|
|
341
|
+
static #shouldIgnoreFile(filePath, ignoreExtensions) {
|
|
342
342
|
const fileName = path.basename(filePath);
|
|
343
343
|
return ignoreExtensions.some((extension) => {
|
|
344
344
|
// Handle multi-part extensions like '.spec.ts'
|
|
@@ -351,4 +351,4 @@ export default class FileSystemService {
|
|
|
351
351
|
});
|
|
352
352
|
}
|
|
353
353
|
}
|
|
354
|
-
//# sourceMappingURL=
|
|
354
|
+
//# sourceMappingURL=FileSystem.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileSystem.service.js","sourceRoot":"","sources":["../../../src/services/FileSystemService/FileSystem.service.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,SAAS,EAAE,MAAM,aAAa,CAAC;AAC9F,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,UAAU,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,aAAa,MAAM,sBAAsB,CAAC;AACjD,OAAO,mBAAmB,MAAM,2BAA2B,CAAC;AAsB5D;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAEpC;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAC5B,UAAkB,EAClB,QAAgB,EAChB,YAAoB;QAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEjD,MAAM,iBAAiB,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAExD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;YACvB,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBACzC,MAAM,UAAU,CAAC,QAAQ,EAAE,KAAK,YAAY,EAAE,CAAC,CAAC;gBAChD,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,YAAY,SAAS,QAAQ,GAAG,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,wBAAwB,QAAQ,GAAG,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,EAAE,CAAC,MAAM,CAAC,IAAI,CACZ,YAAY,QAAQ,+CAA+C,YAAY,UAAU,CAC1F,CAAC;YACF,MAAM,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAC7B,gBAAwB,EACxB,gBAAwB,EACxB,gBAA2B;QAE3B,6CAA6C;QAC7C,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,gBAAgB,mBAAmB,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QACD,MAAM,iBAAiB,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;QAE9D,wCAAwC;QACxC,MAAM,eAAe,GAAG,MAAM,iBAAiB,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;QAE1F,MAAM,OAAO,CAAC,GAAG,CACf,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE;YAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;YAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;YAE/D,0DAA0D;YAC1D,IAAI,gBAAgB,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,UAAU,EAAE,gBAAgB,CAAC,EAAE,CAAC;gBAC1F,OAAO;YACT,CAAC;YAED,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,UAAkB;QACjD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,UAAU,sCAAsC,CAAC,CAAC;YACvF,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,UAAkB;QAC1C,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,UAAU,mBAAmB,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QACD,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,OAAe;QAC1C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACjF,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,kDAAkD;YAClD,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,sCAAsC;YACtC,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,OAAe;QAClD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACtD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAChC,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACnD,2CAA2C;YAC3C,OAAO,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC;gBAClE,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;gBACvB,CAAC,CAAC,YAAY,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,iBAAiB;QAC5B,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;YAChF,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5F,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAK,CAAC,cAAc,CACzB,QAAgB,EAChB,QAAgB,EAChB,MAAe;QAEf,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAC/C,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,IAAI,CAAC,mBAAmB;SACzB,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAC7B,QAAgB,EAChB,QAAgB,EAChB,MAAe;QAEf,OAAO,IAAI,CAAC,sBAAsB,CAChC,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,KAAK,CAAC,oBAAoB;SAC3B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,YAAqB;QACzD,MAAM,SAAS,GAAG,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAEhD,IAAI,CAAC;YACH,0BAA0B;YAC1B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAC5D,+BAA+B,EAC/B;gBACE,GAAG,EAAE,SAAS;aACf,CACF,CAAC;YACF,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YAEhC,sEAAsE;YACtE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAE3D,oBAAoB;YACpB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;YACrF,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAE/D,sDAAsD;YACtD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAE5E,wCAAwC;YACxC,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,GAAG,EAAE,CAAC;gBAC1C,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YACjC,CAAC;YAED,6DAA6D;YAC7D,OAAO,YAAY,CAAC,IAAI,CACtB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,YAAY,GAAG,CAAC,IAAI,IAAI,KAAK,YAAY,CACvE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAEtD,IAAI,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAI,KAAK,CAAC,4BAA4B,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7E,CAAC;YAED,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,YAAY,EAAE,CAAC,CAAC;YACjF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,OAA8B;QACxD,MAAM,EACJ,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,eAAe,GAAG,CAAC,MAAM,CAAC,EAC1B,eAAe,GAAG,CAAC,oBAAoB,EAAE,UAAU,CAAC,EACpD,iBAAiB,GAAG,IAAI,EACxB,MAAM,GAAG,KAAK,EACf,GAAG,OAAO,CAAC;QAEZ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,YAAY,WAAW,aAAa,QAAQ,QAAQ,EAAE,CAAC,CAAC;QAErF,IAAI,MAAM,EAAE,CAAC;YACX,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,cAAc,GAAG,mBAAmB,CAAC,gBAAgB,CACzD,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,eAAe,CAChB,CAAC;QAEF,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACjD,IAAI,UAAU,GAAG,KAAK,CAAC;gBACvB,IAAI,cAAc,GAAG,OAAO,CAAC;gBAE7B,0BAA0B;gBAC1B,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;oBACnC,cAAc,GAAG,cAAc,CAAC,UAAU,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;oBACxE,UAAU,GAAG,IAAI,CAAC;gBACpB,CAAC;gBAED,2CAA2C;gBAC3C,IAAI,iBAAiB,EAAE,CAAC;oBACtB,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;oBAC7D,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;oBAE/D,IAAI,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;wBACjD,cAAc,GAAG,cAAc,CAAC,UAAU,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;wBACtF,UAAU,GAAG,IAAI,CAAC;oBACpB,CAAC;gBACH,CAAC;gBAED,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBACvD,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,IAAI,YAAY,KAAK,CAAC,CAAC;oBAE7E,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,MAAM,SAAS,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;oBACpD,CAAC;oBAED,aAAa,EAAE,CAAC;gBAClB,CAAC;gBAED,cAAc,EAAE,CAAC;YACnB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,2CAA2C;gBAC3C,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,QAAQ,KAAK,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACpF,SAAS;YACX,CAAC;QACH,CAAC;QAED,EAAE,CAAC,MAAM,CAAC,IAAI,CACZ,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,IAAI,cAAc,WAAW,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,IAAI,aAAa,QAAQ,CACpI,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAgB;QAC9C,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC,UAAU,CAAC,wDAAwD,EAAE;gBAC3F,GAAG,EAAE,QAAQ;aACd,CAAC,CAAC;YACH,mFAAmF;YACnF,OAAO,yDAAyD,CAAC;QACnE,CAAC;QAAC,MAAM,CAAC;YACP,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YACrE,OAAO,6BAA6B,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CAAC,sBAAsB,CACjC,QAAgB,EAChB,QAAgB,EAChB,MAAe,EACf,SAAS,GAAG,KAAK;QAEjB,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;QAE5E,OAAO,UAAU,KAAK,OAAO,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAEjD,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvB,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,OAAO,CAAC;gBACjB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,yCAAyC;YAC3C,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;gBAC7B,6BAA6B;gBAC7B,MAAM;YACR,CAAC;YACD,UAAU,GAAG,SAAS,CAAC;QACzB,CAAC;QAED,wCAAwC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB;QACnB,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,iBAAiB,CAAC,QAAgB,EAAE,gBAA0B;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEzC,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YACzC,+CAA+C;YAC/C,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC/B,OAAO,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC;YAED,sCAAsC;YACtC,MAAM,aAAa,GAAG,aAAa,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACnE,OAAO,aAAa,KAAK,SAAS,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC"}
|
|
@@ -4,10 +4,8 @@ import path from 'path';
|
|
|
4
4
|
import { promisify } from 'util';
|
|
5
5
|
import ErrorUtils from '../../utils/ErrorUtils.js';
|
|
6
6
|
import { DR } from '../DependencyRegistry.js';
|
|
7
|
-
import StringService from '../
|
|
8
|
-
import GlobMatchingService from './
|
|
9
|
-
|
|
10
|
-
const execAsync = promisify(exec);
|
|
7
|
+
import StringService from '../String.service.js';
|
|
8
|
+
import GlobMatchingService from './GlobMatching.service.js';
|
|
11
9
|
|
|
12
10
|
/**
|
|
13
11
|
* Options for the replaceInFiles method
|
|
@@ -34,6 +32,8 @@ export type ReplaceInFilesOptions = {
|
|
|
34
32
|
* steps.
|
|
35
33
|
*/
|
|
36
34
|
export default class FileSystemService {
|
|
35
|
+
static #execAsync = promisify(exec);
|
|
36
|
+
|
|
37
37
|
/**
|
|
38
38
|
* Tries to add the provided snippet of text to the path provided. If the file
|
|
39
39
|
* doesn't exist, it creates it. If the folders to the file don't exist, it
|
|
@@ -102,7 +102,7 @@ export default class FileSystemService {
|
|
|
102
102
|
const targetFile = path.join(targetFolderPath, sourceFilePath);
|
|
103
103
|
|
|
104
104
|
// Check if the file should be ignored based on extensions
|
|
105
|
-
if (ignoreExtensions && FileSystemService
|
|
105
|
+
if (ignoreExtensions && FileSystemService.#shouldIgnoreFile(sourceFile, ignoreExtensions)) {
|
|
106
106
|
return;
|
|
107
107
|
}
|
|
108
108
|
|
|
@@ -187,7 +187,7 @@ export default class FileSystemService {
|
|
|
187
187
|
*/
|
|
188
188
|
static async hasPendingChanges(): Promise<boolean> {
|
|
189
189
|
try {
|
|
190
|
-
const { stdout } = await execAsync('git status --porcelain');
|
|
190
|
+
const { stdout } = await FileSystemService.#execAsync('git status --porcelain');
|
|
191
191
|
return stdout.trim().length > 0;
|
|
192
192
|
} catch (error) {
|
|
193
193
|
DR.logger.error(`Failed to check for pending changes: ${ErrorUtils.getErrorString(error)}`);
|
|
@@ -210,7 +210,7 @@ export default class FileSystemService {
|
|
|
210
210
|
fileName: string,
|
|
211
211
|
stopAt?: string
|
|
212
212
|
): Promise<string | null> {
|
|
213
|
-
const results = await this
|
|
213
|
+
const results = await this.#traverseDirectoryTree(
|
|
214
214
|
startDir,
|
|
215
215
|
fileName,
|
|
216
216
|
stopAt,
|
|
@@ -233,7 +233,7 @@ export default class FileSystemService {
|
|
|
233
233
|
fileName: string,
|
|
234
234
|
stopAt?: string
|
|
235
235
|
): Promise<string[]> {
|
|
236
|
-
return this
|
|
236
|
+
return this.#traverseDirectoryTree(
|
|
237
237
|
startDir,
|
|
238
238
|
fileName,
|
|
239
239
|
stopAt,
|
|
@@ -253,16 +253,19 @@ export default class FileSystemService {
|
|
|
253
253
|
|
|
254
254
|
try {
|
|
255
255
|
// Get git repository root
|
|
256
|
-
const { stdout: gitRoot } = await execAsync(
|
|
257
|
-
|
|
258
|
-
|
|
256
|
+
const { stdout: gitRoot } = await FileSystemService.#execAsync(
|
|
257
|
+
'git rev-parse --show-toplevel',
|
|
258
|
+
{
|
|
259
|
+
cwd: targetDir
|
|
260
|
+
}
|
|
261
|
+
);
|
|
259
262
|
const repoRoot = gitRoot.trim();
|
|
260
263
|
|
|
261
264
|
// Determine git diff command - prefer origin/main, fallback to HEAD~1
|
|
262
|
-
const gitCommand = await this
|
|
265
|
+
const gitCommand = await this.#getGitDiffCommand(repoRoot);
|
|
263
266
|
|
|
264
267
|
// Get changed files
|
|
265
|
-
const { stdout } = await execAsync(gitCommand, { cwd: repoRoot });
|
|
268
|
+
const { stdout } = await FileSystemService.#execAsync(gitCommand, { cwd: repoRoot });
|
|
266
269
|
const changedFiles = stdout.trim().split('\n').filter(Boolean);
|
|
267
270
|
|
|
268
271
|
// Get relative path from git root to target directory
|
|
@@ -376,9 +379,9 @@ export default class FileSystemService {
|
|
|
376
379
|
* @param repoRoot The git repository root directory
|
|
377
380
|
* @returns The git diff command to use
|
|
378
381
|
*/
|
|
379
|
-
|
|
382
|
+
static async #getGitDiffCommand(repoRoot: string): Promise<string> {
|
|
380
383
|
try {
|
|
381
|
-
await execAsync('git show-ref --verify --quiet refs/remotes/origin/main', {
|
|
384
|
+
await FileSystemService.#execAsync('git show-ref --verify --quiet refs/remotes/origin/main', {
|
|
382
385
|
cwd: repoRoot
|
|
383
386
|
});
|
|
384
387
|
// Returns all changed files compared to origin/main, including uncommitted changes
|
|
@@ -397,7 +400,7 @@ export default class FileSystemService {
|
|
|
397
400
|
* @param stopAt - Optional directory path to stop searching at (defaults to root)
|
|
398
401
|
* @param findFirst - If true, stops after finding the first file
|
|
399
402
|
*/
|
|
400
|
-
|
|
403
|
+
static async #traverseDirectoryTree(
|
|
401
404
|
startDir: string,
|
|
402
405
|
fileName: string,
|
|
403
406
|
stopAt?: string,
|
|
@@ -447,7 +450,7 @@ export default class FileSystemService {
|
|
|
447
450
|
* @param filePath the path to the file to check
|
|
448
451
|
* @param ignoreExtensions array of extensions to ignore
|
|
449
452
|
*/
|
|
450
|
-
|
|
453
|
+
static #shouldIgnoreFile(filePath: string, ignoreExtensions: string[]): boolean {
|
|
451
454
|
const fileName = path.basename(filePath);
|
|
452
455
|
|
|
453
456
|
return ignoreExtensions.some((extension) => {
|
package/lib/services/FileSystemService/{GlobMatchingService.d.ts → GlobMatching.service.d.ts}
RENAMED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* but simplified for basic use cases.
|
|
7
7
|
*/
|
|
8
8
|
export default class GlobMatchingService {
|
|
9
|
+
#private;
|
|
9
10
|
/**
|
|
10
11
|
* Gets files matching the include patterns while excluding those that match exclude patterns.
|
|
11
12
|
* Uses simple glob-like matching for common patterns.
|
|
@@ -27,22 +28,5 @@ export default class GlobMatchingService {
|
|
|
27
28
|
* @param pattern The pattern to match against
|
|
28
29
|
*/
|
|
29
30
|
static matchesPattern(filePath: string, pattern: string): boolean;
|
|
30
|
-
/**
|
|
31
|
-
* Match path segments against pattern segments with support for globstar (**).
|
|
32
|
-
*
|
|
33
|
-
* The idea is that each segment doesn't cross path separators. It should
|
|
34
|
-
* be split by '/' and then matched segment by segment.
|
|
35
|
-
*
|
|
36
|
-
* @param pathSegments Array of path segments
|
|
37
|
-
* @param patternSegments Array of pattern segments
|
|
38
|
-
*/
|
|
39
|
-
private static matchSegments;
|
|
40
|
-
/**
|
|
41
|
-
* Match a single segment with support for * wildcard
|
|
42
|
-
*
|
|
43
|
-
* @param pathSegment Single path segment
|
|
44
|
-
* @param patternSegment Single pattern segment
|
|
45
|
-
*/
|
|
46
|
-
private static matchSingleSegment;
|
|
47
31
|
}
|
|
48
|
-
//# sourceMappingURL=
|
|
32
|
+
//# sourceMappingURL=GlobMatching.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobMatching.service.d.ts","sourceRoot":"","sources":["../../../src/services/FileSystemService/GlobMatching.service.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAmB;;IACtC;;;;;;;;OAQG;IACH,MAAM,CAAC,gBAAgB,CACrB,QAAQ,EAAE,MAAM,EAAE,EAClB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EAAE,EACzB,eAAe,EAAE,MAAM,EAAE,GACxB,MAAM,EAAE;IAcX;;;;;;;;;OASG;IACH,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;CAwGlE"}
|
|
@@ -48,7 +48,7 @@ export default class GlobMatchingService {
|
|
|
48
48
|
// Split into segments for more precise matching
|
|
49
49
|
const pathSegments = normalizedPath.split('/');
|
|
50
50
|
const patternSegments = normalizedPattern.split('/');
|
|
51
|
-
return this
|
|
51
|
+
return this.#matchSegments(pathSegments, patternSegments);
|
|
52
52
|
}
|
|
53
53
|
/**
|
|
54
54
|
* Match path segments against pattern segments with support for globstar (**).
|
|
@@ -59,7 +59,7 @@ export default class GlobMatchingService {
|
|
|
59
59
|
* @param pathSegments Array of path segments
|
|
60
60
|
* @param patternSegments Array of pattern segments
|
|
61
61
|
*/
|
|
62
|
-
static matchSegments(pathSegments, patternSegments) {
|
|
62
|
+
static #matchSegments(pathSegments, patternSegments) {
|
|
63
63
|
let pathIndex = 0;
|
|
64
64
|
let patternIndex = 0;
|
|
65
65
|
while (pathIndex < pathSegments.length && patternIndex < patternSegments.length) {
|
|
@@ -77,13 +77,13 @@ export default class GlobMatchingService {
|
|
|
77
77
|
// Try matching from current position onwards
|
|
78
78
|
for (let i = pathIndex; i <= pathSegments.length; i++) {
|
|
79
79
|
const remainingPath = pathSegments.slice(i);
|
|
80
|
-
if (this
|
|
80
|
+
if (this.#matchSegments(remainingPath, remainingPattern)) {
|
|
81
81
|
return true;
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
return false;
|
|
85
85
|
}
|
|
86
|
-
else if (this
|
|
86
|
+
else if (this.#matchSingleSegment(pathSegment, patternSegment)) {
|
|
87
87
|
// Regular segment match
|
|
88
88
|
pathIndex++;
|
|
89
89
|
patternIndex++;
|
|
@@ -111,7 +111,7 @@ export default class GlobMatchingService {
|
|
|
111
111
|
* @param pathSegment Single path segment
|
|
112
112
|
* @param patternSegment Single pattern segment
|
|
113
113
|
*/
|
|
114
|
-
static matchSingleSegment(pathSegment, patternSegment) {
|
|
114
|
+
static #matchSingleSegment(pathSegment, patternSegment) {
|
|
115
115
|
if (patternSegment === '*') {
|
|
116
116
|
return true;
|
|
117
117
|
}
|
|
@@ -126,4 +126,4 @@ export default class GlobMatchingService {
|
|
|
126
126
|
return regex.test(pathSegment);
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
|
-
//# sourceMappingURL=
|
|
129
|
+
//# sourceMappingURL=GlobMatching.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobMatching.service.js","sourceRoot":"","sources":["../../../src/services/FileSystemService/GlobMatching.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,7 +60,7 @@ export default class GlobMatchingService {
|
|
|
60
60
|
const pathSegments = normalizedPath.split('/');
|
|
61
61
|
const patternSegments = normalizedPattern.split('/');
|
|
62
62
|
|
|
63
|
-
return this
|
|
63
|
+
return this.#matchSegments(pathSegments, patternSegments);
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
/**
|
|
@@ -72,7 +72,7 @@ export default class GlobMatchingService {
|
|
|
72
72
|
* @param pathSegments Array of path segments
|
|
73
73
|
* @param patternSegments Array of pattern segments
|
|
74
74
|
*/
|
|
75
|
-
|
|
75
|
+
static #matchSegments(pathSegments: string[], patternSegments: string[]): boolean {
|
|
76
76
|
let pathIndex = 0;
|
|
77
77
|
let patternIndex = 0;
|
|
78
78
|
|
|
@@ -95,13 +95,13 @@ export default class GlobMatchingService {
|
|
|
95
95
|
// Try matching from current position onwards
|
|
96
96
|
for (let i = pathIndex; i <= pathSegments.length; i++) {
|
|
97
97
|
const remainingPath = pathSegments.slice(i);
|
|
98
|
-
if (this
|
|
98
|
+
if (this.#matchSegments(remainingPath, remainingPattern)) {
|
|
99
99
|
return true;
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
return false;
|
|
104
|
-
} else if (this
|
|
104
|
+
} else if (this.#matchSingleSegment(pathSegment, patternSegment)) {
|
|
105
105
|
// Regular segment match
|
|
106
106
|
pathIndex++;
|
|
107
107
|
patternIndex++;
|
|
@@ -133,7 +133,7 @@ export default class GlobMatchingService {
|
|
|
133
133
|
* @param pathSegment Single path segment
|
|
134
134
|
* @param patternSegment Single pattern segment
|
|
135
135
|
*/
|
|
136
|
-
|
|
136
|
+
static #matchSingleSegment(pathSegment: string, patternSegment: string): boolean {
|
|
137
137
|
if (patternSegment === '*') {
|
|
138
138
|
return true;
|
|
139
139
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service for handling JSR-specific package operations including validation and publishing.
|
|
3
|
+
*/
|
|
4
|
+
export default class JsrPackageService {
|
|
5
|
+
#private;
|
|
6
|
+
/**
|
|
7
|
+
* Validates the current project for publishing to JSR. This will check if the
|
|
8
|
+
* project has any pending changes first, then update the version of the
|
|
9
|
+
* jsr.json to match the package.json file, then run the
|
|
10
|
+
* `jsr publish --dry-run` command, and finally cleanup the changes made.
|
|
11
|
+
*
|
|
12
|
+
* @param alternativePackageNames Optional array of alternative package names to validate publishing under
|
|
13
|
+
*
|
|
14
|
+
* **Warning:** This method uses simple string replacement for package names, which may have unintended effects
|
|
15
|
+
* if the package name appears in unexpected places. Use with caution.
|
|
16
|
+
* @param allowSlowTypes Whether to allow slow types during publishing
|
|
17
|
+
*/
|
|
18
|
+
static validatePublish(alternativePackageNames?: string[], allowSlowTypes?: boolean): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Publishes the current project to JSR.
|
|
21
|
+
*
|
|
22
|
+
* @param alternativePackageNames Optional array of alternative package names to publish under
|
|
23
|
+
*
|
|
24
|
+
* **Warning:** This method uses simple string replacement for package names, which may have unintended effects
|
|
25
|
+
* if the package name appears in unexpected places. Use with caution.
|
|
26
|
+
*/
|
|
27
|
+
static publish(alternativePackageNames?: string[]): Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=JsrPackage.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsrPackage.service.d.ts","sourceRoot":"","sources":["../../../src/services/PackageService/JsrPackage.service.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;;IAGpC;;;;;;;;;;;OAWG;WACU,eAAe,CAC1B,uBAAuB,CAAC,EAAE,MAAM,EAAE,EAClC,cAAc,UAAQ,GACrB,OAAO,CAAC,IAAI,CAAC;IAmChB;;;;;;;OAOG;WACU,OAAO,CAAC,uBAAuB,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAoVxE"}
|