@aneuhold/core-ts-lib 2.2.4 → 2.2.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/lib/index.d.ts +4 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/index.ts +7 -5
- package/lib/interfaces/ITracer.d.ts.map +1 -1
- package/lib/interfaces/ITracer.js.map +1 -1
- package/lib/interfaces/ITracer.ts +2 -8
- package/lib/services/ArrayService.d.ts.map +1 -1
- package/lib/services/ArrayService.js.map +1 -1
- package/lib/services/ArrayService.ts +1 -4
- package/lib/services/DateService/DateService.d.ts.map +1 -1
- package/lib/services/DateService/DateService.js +1 -3
- package/lib/services/DateService/DateService.js.map +1 -1
- package/lib/services/DateService/DateService.ts +7 -25
- package/lib/services/DependencyService.d.ts.map +1 -1
- package/lib/services/DependencyService.js +1 -3
- package/lib/services/DependencyService.js.map +1 -1
- package/lib/services/DependencyService.ts +10 -32
- package/lib/services/FileSystemService/FileSystemService.d.ts +30 -4
- package/lib/services/FileSystemService/FileSystemService.d.ts.map +1 -1
- package/lib/services/FileSystemService/FileSystemService.js +64 -7
- package/lib/services/FileSystemService/FileSystemService.js.map +1 -1
- package/lib/services/FileSystemService/FileSystemService.ts +117 -32
- package/lib/services/FileSystemService/GlobMatchingService.d.ts +48 -0
- package/lib/services/FileSystemService/GlobMatchingService.d.ts.map +1 -0
- package/lib/services/FileSystemService/GlobMatchingService.js +129 -0
- package/lib/services/FileSystemService/GlobMatchingService.js.map +1 -0
- package/lib/services/FileSystemService/GlobMatchingService.ts +153 -0
- package/lib/services/PackageService.d.ts.map +1 -1
- package/lib/services/PackageService.js +4 -8
- package/lib/services/PackageService.js.map +1 -1
- package/lib/services/PackageService.ts +27 -90
- package/lib/utils/ErrorUtils.d.ts.map +1 -1
- package/lib/utils/ErrorUtils.js.map +1 -1
- package/lib/utils/ErrorUtils.ts +1 -3
- package/package.json +1 -1
|
@@ -1,23 +1,34 @@
|
|
|
1
1
|
import { exec } from 'child_process';
|
|
2
|
-
import {
|
|
3
|
-
access,
|
|
4
|
-
appendFile,
|
|
5
|
-
cp,
|
|
6
|
-
mkdir,
|
|
7
|
-
readFile,
|
|
8
|
-
readdir,
|
|
9
|
-
rm,
|
|
10
|
-
stat,
|
|
11
|
-
writeFile
|
|
12
|
-
} from 'fs/promises';
|
|
2
|
+
import { access, appendFile, cp, mkdir, readFile, readdir, rm, stat, writeFile } from 'fs/promises';
|
|
13
3
|
import path from 'path';
|
|
14
4
|
import { promisify } from 'util';
|
|
15
5
|
import ErrorUtils from '../../utils/ErrorUtils.js';
|
|
16
6
|
import { DR } from '../DependencyRegistry.js';
|
|
17
7
|
import StringService from '../StringService.js';
|
|
8
|
+
import GlobMatchingService from './GlobMatchingService.js';
|
|
18
9
|
|
|
19
10
|
const execAsync = promisify(exec);
|
|
20
11
|
|
|
12
|
+
/**
|
|
13
|
+
* Options for the replaceInFiles method
|
|
14
|
+
*/
|
|
15
|
+
export type ReplaceInFilesOptions = {
|
|
16
|
+
/** The string to search for */
|
|
17
|
+
searchString: string;
|
|
18
|
+
/** The string to replace it with */
|
|
19
|
+
replaceString: string;
|
|
20
|
+
/** The root directory to search in */
|
|
21
|
+
rootPath: string;
|
|
22
|
+
/** Array of glob-like patterns to include (defaults to all files) */
|
|
23
|
+
includePatterns?: string[];
|
|
24
|
+
/** Array of glob-like patterns to exclude (defaults to common ignore patterns) */
|
|
25
|
+
excludePatterns?: string[];
|
|
26
|
+
/** Whether to also replace URL-encoded versions of the strings */
|
|
27
|
+
includeUrlEncoded?: boolean;
|
|
28
|
+
/** If true, only shows what would be changed without making changes */
|
|
29
|
+
dryRun?: boolean;
|
|
30
|
+
};
|
|
31
|
+
|
|
21
32
|
/**
|
|
22
33
|
* A service which can be used to interact with the file system, only in build
|
|
23
34
|
* steps.
|
|
@@ -30,8 +41,8 @@ export default class FileSystemService {
|
|
|
30
41
|
*
|
|
31
42
|
* @param folderPath the path to the folder which contains the file that should
|
|
32
43
|
* be updated
|
|
33
|
-
* @param fileName
|
|
34
|
-
* @param textToInsert
|
|
44
|
+
* @param fileName the name of the file to update
|
|
45
|
+
* @param textToInsert the text to insert into the file
|
|
35
46
|
*/
|
|
36
47
|
static async findAndInsertText(
|
|
37
48
|
folderPath: string,
|
|
@@ -62,8 +73,8 @@ export default class FileSystemService {
|
|
|
62
73
|
/**
|
|
63
74
|
* Copies the contents of one folder to another folder.
|
|
64
75
|
*
|
|
65
|
-
* @param sourceFolderPath
|
|
66
|
-
* @param targetFolderPath
|
|
76
|
+
* @param sourceFolderPath the path to the source folder
|
|
77
|
+
* @param targetFolderPath the path to the target folder
|
|
67
78
|
* @param ignoreExtensions is an array with extensions that should be
|
|
68
79
|
* ignored. For example, if you want to ignore all .ts files, you would pass
|
|
69
80
|
* in ['.ts']. Multi-part extensions like '.spec.ts' are also supported.
|
|
@@ -83,8 +94,7 @@ export default class FileSystemService {
|
|
|
83
94
|
await FileSystemService.checkOrCreateFolder(targetFolderPath);
|
|
84
95
|
|
|
85
96
|
// Get the files in the source directory
|
|
86
|
-
const sourceFilePaths =
|
|
87
|
-
await FileSystemService.getAllFilePathsRelative(sourceFolderPath);
|
|
97
|
+
const sourceFilePaths = await FileSystemService.getAllFilePathsRelative(sourceFolderPath);
|
|
88
98
|
|
|
89
99
|
await Promise.all(
|
|
90
100
|
sourceFilePaths.map(async (sourceFilePath) => {
|
|
@@ -92,10 +102,7 @@ export default class FileSystemService {
|
|
|
92
102
|
const targetFile = path.join(targetFolderPath, sourceFilePath);
|
|
93
103
|
|
|
94
104
|
// Check if the file should be ignored based on extensions
|
|
95
|
-
if (
|
|
96
|
-
ignoreExtensions &&
|
|
97
|
-
FileSystemService.shouldIgnoreFile(sourceFile, ignoreExtensions)
|
|
98
|
-
) {
|
|
105
|
+
if (ignoreExtensions && FileSystemService.shouldIgnoreFile(sourceFile, ignoreExtensions)) {
|
|
99
106
|
return;
|
|
100
107
|
}
|
|
101
108
|
|
|
@@ -111,10 +118,7 @@ export default class FileSystemService {
|
|
|
111
118
|
* @param filePath the path to the file to check
|
|
112
119
|
* @param ignoreExtensions array of extensions to ignore
|
|
113
120
|
*/
|
|
114
|
-
private static shouldIgnoreFile(
|
|
115
|
-
filePath: string,
|
|
116
|
-
ignoreExtensions: string[]
|
|
117
|
-
): boolean {
|
|
121
|
+
private static shouldIgnoreFile(filePath: string, ignoreExtensions: string[]): boolean {
|
|
118
122
|
const fileName = path.basename(filePath);
|
|
119
123
|
|
|
120
124
|
return ignoreExtensions.some((extension) => {
|
|
@@ -133,9 +137,7 @@ export default class FileSystemService {
|
|
|
133
137
|
try {
|
|
134
138
|
await access(folderPath);
|
|
135
139
|
} catch {
|
|
136
|
-
DR.logger.verbose.info(
|
|
137
|
-
`Directory "${folderPath}" does not exist. Creating it now...`
|
|
138
|
-
);
|
|
140
|
+
DR.logger.verbose.info(`Directory "${folderPath}" does not exist. Creating it now...`);
|
|
139
141
|
await mkdir(folderPath, { recursive: true });
|
|
140
142
|
}
|
|
141
143
|
}
|
|
@@ -191,7 +193,11 @@ export default class FileSystemService {
|
|
|
191
193
|
static async getAllFilePathsRelative(dirPath: string): Promise<string[]> {
|
|
192
194
|
const filePaths = await this.getAllFilePaths(dirPath);
|
|
193
195
|
return filePaths.map((filePath) => {
|
|
194
|
-
|
|
196
|
+
const relativePath = filePath.replace(dirPath, '');
|
|
197
|
+
// Remove leading path separator if present
|
|
198
|
+
return relativePath.startsWith('/') || relativePath.startsWith('\\')
|
|
199
|
+
? relativePath.slice(1)
|
|
200
|
+
: relativePath;
|
|
195
201
|
});
|
|
196
202
|
}
|
|
197
203
|
|
|
@@ -206,9 +212,7 @@ export default class FileSystemService {
|
|
|
206
212
|
const { stdout } = await execAsync('git status --porcelain');
|
|
207
213
|
return stdout.trim().length > 0;
|
|
208
214
|
} catch (error) {
|
|
209
|
-
DR.logger.error(
|
|
210
|
-
`Failed to check for pending changes: ${ErrorUtils.getErrorString(error)}`
|
|
211
|
-
);
|
|
215
|
+
DR.logger.error(`Failed to check for pending changes: ${ErrorUtils.getErrorString(error)}`);
|
|
212
216
|
return false;
|
|
213
217
|
}
|
|
214
218
|
}
|
|
@@ -309,4 +313,85 @@ export default class FileSystemService {
|
|
|
309
313
|
|
|
310
314
|
return results;
|
|
311
315
|
}
|
|
316
|
+
|
|
317
|
+
/**
|
|
318
|
+
* Replaces all occurrences of a string in files within a directory.
|
|
319
|
+
* Supports glob patterns for including/excluding files and handles URL encoding.
|
|
320
|
+
*
|
|
321
|
+
* @param options Configuration object for the replacement operation
|
|
322
|
+
*/
|
|
323
|
+
static async replaceInFiles(options: ReplaceInFilesOptions): Promise<void> {
|
|
324
|
+
const {
|
|
325
|
+
searchString,
|
|
326
|
+
replaceString,
|
|
327
|
+
rootPath,
|
|
328
|
+
includePatterns = ['**/*'],
|
|
329
|
+
excludePatterns = ['**/node_modules/**', '**/.*/**'],
|
|
330
|
+
includeUrlEncoded = true,
|
|
331
|
+
dryRun = false
|
|
332
|
+
} = options;
|
|
333
|
+
|
|
334
|
+
DR.logger.info(`Replacing "${searchString}" with "${replaceString}" in ${rootPath}`);
|
|
335
|
+
|
|
336
|
+
if (dryRun) {
|
|
337
|
+
DR.logger.info('DRY RUN MODE - No files will be modified');
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
const allFiles = await this.getAllFilePaths(rootPath);
|
|
341
|
+
const filesToProcess = GlobMatchingService.getMatchingFiles(
|
|
342
|
+
allFiles,
|
|
343
|
+
rootPath,
|
|
344
|
+
includePatterns,
|
|
345
|
+
excludePatterns
|
|
346
|
+
);
|
|
347
|
+
|
|
348
|
+
let processedCount = 0;
|
|
349
|
+
let modifiedCount = 0;
|
|
350
|
+
|
|
351
|
+
for (const filePath of filesToProcess) {
|
|
352
|
+
try {
|
|
353
|
+
const content = await readFile(filePath, 'utf8');
|
|
354
|
+
let hasChanges = false;
|
|
355
|
+
let updatedContent = content;
|
|
356
|
+
|
|
357
|
+
// Replace the main string
|
|
358
|
+
if (content.includes(searchString)) {
|
|
359
|
+
updatedContent = updatedContent.replaceAll(searchString, replaceString);
|
|
360
|
+
hasChanges = true;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
// Replace URL-encoded version if requested
|
|
364
|
+
if (includeUrlEncoded) {
|
|
365
|
+
const encodedSearchString = encodeURIComponent(searchString);
|
|
366
|
+
const encodedReplaceString = encodeURIComponent(replaceString);
|
|
367
|
+
|
|
368
|
+
if (updatedContent.includes(encodedSearchString)) {
|
|
369
|
+
updatedContent = updatedContent.replaceAll(encodedSearchString, encodedReplaceString);
|
|
370
|
+
hasChanges = true;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
if (hasChanges) {
|
|
375
|
+
const relativePath = path.relative(rootPath, filePath);
|
|
376
|
+
DR.logger.info(`${dryRun ? 'Would update' : 'Updating'} ${relativePath}...`);
|
|
377
|
+
|
|
378
|
+
if (!dryRun) {
|
|
379
|
+
await writeFile(filePath, updatedContent, 'utf8');
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
modifiedCount++;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
processedCount++;
|
|
386
|
+
} catch (error) {
|
|
387
|
+
// Skip binary files or files we can't read
|
|
388
|
+
DR.logger.verbose.info(`Skipping ${filePath}: ${ErrorUtils.getErrorString(error)}`);
|
|
389
|
+
continue;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
DR.logger.info(
|
|
394
|
+
`${dryRun ? 'Would process' : 'Processed'} ${processedCount} files, ${dryRun ? 'would modify' : 'modified'} ${modifiedCount} files`
|
|
395
|
+
);
|
|
396
|
+
}
|
|
312
397
|
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A service for handling glob-like pattern matching operations.
|
|
3
|
+
* Supports common glob patterns like **, *, and exact matches.
|
|
4
|
+
*
|
|
5
|
+
* Inspired by the isaacs/node-glob library (ISC License)
|
|
6
|
+
* but simplified for basic use cases.
|
|
7
|
+
*/
|
|
8
|
+
export default class GlobMatchingService {
|
|
9
|
+
/**
|
|
10
|
+
* Gets files matching the include patterns while excluding those that match exclude patterns.
|
|
11
|
+
* Uses simple glob-like matching for common patterns.
|
|
12
|
+
*
|
|
13
|
+
* @param allFiles Array of all file paths to filter
|
|
14
|
+
* @param rootPath The root directory path for computing relative paths
|
|
15
|
+
* @param includePatterns Array of glob-like patterns to include
|
|
16
|
+
* @param excludePatterns Array of glob-like patterns to exclude
|
|
17
|
+
*/
|
|
18
|
+
static getMatchingFiles(allFiles: string[], rootPath: string, includePatterns: string[], excludePatterns: string[]): string[];
|
|
19
|
+
/**
|
|
20
|
+
* Simple glob-like pattern matching for common use cases.
|
|
21
|
+
* Supports:
|
|
22
|
+
* - ** for any number of directories (globstar)
|
|
23
|
+
* - * for any characters except path separators
|
|
24
|
+
* - Exact matches
|
|
25
|
+
*
|
|
26
|
+
* @param filePath The file path to test
|
|
27
|
+
* @param pattern The pattern to match against
|
|
28
|
+
*/
|
|
29
|
+
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
|
+
}
|
|
48
|
+
//# sourceMappingURL=GlobMatchingService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobMatchingService.d.ts","sourceRoot":"","sources":["../../../src/services/FileSystemService/GlobMatchingService.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;IAiBjE;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAuD5B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;CAiBlC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
/**
|
|
3
|
+
* A service for handling glob-like pattern matching operations.
|
|
4
|
+
* Supports common glob patterns like **, *, and exact matches.
|
|
5
|
+
*
|
|
6
|
+
* Inspired by the isaacs/node-glob library (ISC License)
|
|
7
|
+
* but simplified for basic use cases.
|
|
8
|
+
*/
|
|
9
|
+
export default class GlobMatchingService {
|
|
10
|
+
/**
|
|
11
|
+
* Gets files matching the include patterns while excluding those that match exclude patterns.
|
|
12
|
+
* Uses simple glob-like matching for common patterns.
|
|
13
|
+
*
|
|
14
|
+
* @param allFiles Array of all file paths to filter
|
|
15
|
+
* @param rootPath The root directory path for computing relative paths
|
|
16
|
+
* @param includePatterns Array of glob-like patterns to include
|
|
17
|
+
* @param excludePatterns Array of glob-like patterns to exclude
|
|
18
|
+
*/
|
|
19
|
+
static getMatchingFiles(allFiles, rootPath, includePatterns, excludePatterns) {
|
|
20
|
+
return allFiles.filter((filePath) => {
|
|
21
|
+
const relativePath = path.relative(rootPath, filePath);
|
|
22
|
+
// Check if file matches any exclude pattern
|
|
23
|
+
if (excludePatterns.some((pattern) => this.matchesPattern(relativePath, pattern))) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
// Check if file matches any include pattern
|
|
27
|
+
return includePatterns.some((pattern) => this.matchesPattern(relativePath, pattern));
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Simple glob-like pattern matching for common use cases.
|
|
32
|
+
* Supports:
|
|
33
|
+
* - ** for any number of directories (globstar)
|
|
34
|
+
* - * for any characters except path separators
|
|
35
|
+
* - Exact matches
|
|
36
|
+
*
|
|
37
|
+
* @param filePath The file path to test
|
|
38
|
+
* @param pattern The pattern to match against
|
|
39
|
+
*/
|
|
40
|
+
static matchesPattern(filePath, pattern) {
|
|
41
|
+
// Normalize path separators to forward slashes
|
|
42
|
+
const normalizedPath = filePath.replace(/\\/g, '/');
|
|
43
|
+
const normalizedPattern = pattern.replace(/\\/g, '/');
|
|
44
|
+
// Handle special case of **/* which should match everything
|
|
45
|
+
if (normalizedPattern === '**/*') {
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
// Split into segments for more precise matching
|
|
49
|
+
const pathSegments = normalizedPath.split('/');
|
|
50
|
+
const patternSegments = normalizedPattern.split('/');
|
|
51
|
+
return this.matchSegments(pathSegments, patternSegments);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Match path segments against pattern segments with support for globstar (**).
|
|
55
|
+
*
|
|
56
|
+
* The idea is that each segment doesn't cross path separators. It should
|
|
57
|
+
* be split by '/' and then matched segment by segment.
|
|
58
|
+
*
|
|
59
|
+
* @param pathSegments Array of path segments
|
|
60
|
+
* @param patternSegments Array of pattern segments
|
|
61
|
+
*/
|
|
62
|
+
static matchSegments(pathSegments, patternSegments) {
|
|
63
|
+
let pathIndex = 0;
|
|
64
|
+
let patternIndex = 0;
|
|
65
|
+
while (pathIndex < pathSegments.length && patternIndex < patternSegments.length) {
|
|
66
|
+
const pathSegment = pathSegments[pathIndex];
|
|
67
|
+
const patternSegment = patternSegments[patternIndex];
|
|
68
|
+
if (patternSegment === '**') {
|
|
69
|
+
// Handle globstar - it can match zero or more segments
|
|
70
|
+
patternIndex++;
|
|
71
|
+
// If ** is the last segment, it matches everything remaining
|
|
72
|
+
if (patternIndex >= patternSegments.length) {
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
// Try to match the rest of the pattern against remaining path segments
|
|
76
|
+
const remainingPattern = patternSegments.slice(patternIndex);
|
|
77
|
+
// Try matching from current position onwards
|
|
78
|
+
for (let i = pathIndex; i <= pathSegments.length; i++) {
|
|
79
|
+
const remainingPath = pathSegments.slice(i);
|
|
80
|
+
if (this.matchSegments(remainingPath, remainingPattern)) {
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
else if (this.matchSingleSegment(pathSegment, patternSegment)) {
|
|
87
|
+
// Regular segment match
|
|
88
|
+
pathIndex++;
|
|
89
|
+
patternIndex++;
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// Check if we've consumed both path and pattern completely
|
|
96
|
+
// or if remaining pattern segments are only globstars
|
|
97
|
+
const remainingPattern = patternSegments.slice(patternIndex);
|
|
98
|
+
const pathConsumed = pathIndex >= pathSegments.length;
|
|
99
|
+
const patternConsumed = patternIndex >= patternSegments.length;
|
|
100
|
+
if (pathConsumed && patternConsumed) {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
if (pathConsumed && remainingPattern.every((seg) => seg === '**')) {
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Match a single segment with support for * wildcard
|
|
110
|
+
*
|
|
111
|
+
* @param pathSegment Single path segment
|
|
112
|
+
* @param patternSegment Single pattern segment
|
|
113
|
+
*/
|
|
114
|
+
static matchSingleSegment(pathSegment, patternSegment) {
|
|
115
|
+
if (patternSegment === '*') {
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
if (patternSegment === pathSegment) {
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
// Convert pattern to regex for more complex matching
|
|
122
|
+
const regexPattern = patternSegment
|
|
123
|
+
.replace(/\./g, '\\.') // Escape dots
|
|
124
|
+
.replace(/\*/g, '[^/]*'); // * matches anything except slashes
|
|
125
|
+
const regex = new RegExp(`^${regexPattern}$`);
|
|
126
|
+
return regex.test(pathSegment);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=GlobMatchingService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobMatchingService.js","sourceRoot":"","sources":["../../../src/services/FileSystemService/GlobMatchingService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A service for handling glob-like pattern matching operations.
|
|
5
|
+
* Supports common glob patterns like **, *, and exact matches.
|
|
6
|
+
*
|
|
7
|
+
* Inspired by the isaacs/node-glob library (ISC License)
|
|
8
|
+
* but simplified for basic use cases.
|
|
9
|
+
*/
|
|
10
|
+
export default class GlobMatchingService {
|
|
11
|
+
/**
|
|
12
|
+
* Gets files matching the include patterns while excluding those that match exclude patterns.
|
|
13
|
+
* Uses simple glob-like matching for common patterns.
|
|
14
|
+
*
|
|
15
|
+
* @param allFiles Array of all file paths to filter
|
|
16
|
+
* @param rootPath The root directory path for computing relative paths
|
|
17
|
+
* @param includePatterns Array of glob-like patterns to include
|
|
18
|
+
* @param excludePatterns Array of glob-like patterns to exclude
|
|
19
|
+
*/
|
|
20
|
+
static getMatchingFiles(
|
|
21
|
+
allFiles: string[],
|
|
22
|
+
rootPath: string,
|
|
23
|
+
includePatterns: string[],
|
|
24
|
+
excludePatterns: string[]
|
|
25
|
+
): string[] {
|
|
26
|
+
return allFiles.filter((filePath) => {
|
|
27
|
+
const relativePath = path.relative(rootPath, filePath);
|
|
28
|
+
|
|
29
|
+
// Check if file matches any exclude pattern
|
|
30
|
+
if (excludePatterns.some((pattern) => this.matchesPattern(relativePath, pattern))) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Check if file matches any include pattern
|
|
35
|
+
return includePatterns.some((pattern) => this.matchesPattern(relativePath, pattern));
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Simple glob-like pattern matching for common use cases.
|
|
41
|
+
* Supports:
|
|
42
|
+
* - ** for any number of directories (globstar)
|
|
43
|
+
* - * for any characters except path separators
|
|
44
|
+
* - Exact matches
|
|
45
|
+
*
|
|
46
|
+
* @param filePath The file path to test
|
|
47
|
+
* @param pattern The pattern to match against
|
|
48
|
+
*/
|
|
49
|
+
static matchesPattern(filePath: string, pattern: string): boolean {
|
|
50
|
+
// Normalize path separators to forward slashes
|
|
51
|
+
const normalizedPath = filePath.replace(/\\/g, '/');
|
|
52
|
+
const normalizedPattern = pattern.replace(/\\/g, '/');
|
|
53
|
+
|
|
54
|
+
// Handle special case of **/* which should match everything
|
|
55
|
+
if (normalizedPattern === '**/*') {
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Split into segments for more precise matching
|
|
60
|
+
const pathSegments = normalizedPath.split('/');
|
|
61
|
+
const patternSegments = normalizedPattern.split('/');
|
|
62
|
+
|
|
63
|
+
return this.matchSegments(pathSegments, patternSegments);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Match path segments against pattern segments with support for globstar (**).
|
|
68
|
+
*
|
|
69
|
+
* The idea is that each segment doesn't cross path separators. It should
|
|
70
|
+
* be split by '/' and then matched segment by segment.
|
|
71
|
+
*
|
|
72
|
+
* @param pathSegments Array of path segments
|
|
73
|
+
* @param patternSegments Array of pattern segments
|
|
74
|
+
*/
|
|
75
|
+
private static matchSegments(pathSegments: string[], patternSegments: string[]): boolean {
|
|
76
|
+
let pathIndex = 0;
|
|
77
|
+
let patternIndex = 0;
|
|
78
|
+
|
|
79
|
+
while (pathIndex < pathSegments.length && patternIndex < patternSegments.length) {
|
|
80
|
+
const pathSegment = pathSegments[pathIndex];
|
|
81
|
+
const patternSegment = patternSegments[patternIndex];
|
|
82
|
+
|
|
83
|
+
if (patternSegment === '**') {
|
|
84
|
+
// Handle globstar - it can match zero or more segments
|
|
85
|
+
patternIndex++;
|
|
86
|
+
|
|
87
|
+
// If ** is the last segment, it matches everything remaining
|
|
88
|
+
if (patternIndex >= patternSegments.length) {
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Try to match the rest of the pattern against remaining path segments
|
|
93
|
+
const remainingPattern = patternSegments.slice(patternIndex);
|
|
94
|
+
|
|
95
|
+
// Try matching from current position onwards
|
|
96
|
+
for (let i = pathIndex; i <= pathSegments.length; i++) {
|
|
97
|
+
const remainingPath = pathSegments.slice(i);
|
|
98
|
+
if (this.matchSegments(remainingPath, remainingPattern)) {
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return false;
|
|
104
|
+
} else if (this.matchSingleSegment(pathSegment, patternSegment)) {
|
|
105
|
+
// Regular segment match
|
|
106
|
+
pathIndex++;
|
|
107
|
+
patternIndex++;
|
|
108
|
+
} else {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Check if we've consumed both path and pattern completely
|
|
114
|
+
// or if remaining pattern segments are only globstars
|
|
115
|
+
const remainingPattern = patternSegments.slice(patternIndex);
|
|
116
|
+
const pathConsumed = pathIndex >= pathSegments.length;
|
|
117
|
+
const patternConsumed = patternIndex >= patternSegments.length;
|
|
118
|
+
|
|
119
|
+
if (pathConsumed && patternConsumed) {
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
if (pathConsumed && remainingPattern.every((seg) => seg === '**')) {
|
|
124
|
+
return true;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Match a single segment with support for * wildcard
|
|
132
|
+
*
|
|
133
|
+
* @param pathSegment Single path segment
|
|
134
|
+
* @param patternSegment Single pattern segment
|
|
135
|
+
*/
|
|
136
|
+
private static matchSingleSegment(pathSegment: string, patternSegment: string): boolean {
|
|
137
|
+
if (patternSegment === '*') {
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
if (patternSegment === pathSegment) {
|
|
142
|
+
return true;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// Convert pattern to regex for more complex matching
|
|
146
|
+
const regexPattern = patternSegment
|
|
147
|
+
.replace(/\./g, '\\.') // Escape dots
|
|
148
|
+
.replace(/\*/g, '[^/]*'); // * matches anything except slashes
|
|
149
|
+
|
|
150
|
+
const regex = new RegExp(`^${regexPattern}$`);
|
|
151
|
+
return regex.test(pathSegment);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PackageService.d.ts","sourceRoot":"","sources":["../../src/services/PackageService.ts"],"names":[],"mappings":"AAcA;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC;;;;;OAKG;WACU,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"PackageService.d.ts","sourceRoot":"","sources":["../../src/services/PackageService.ts"],"names":[],"mappings":"AAcA;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC;;;;;OAKG;WACU,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;WAkBnC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB1C;;;;OAIG;WACU,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAYhD;;;;;OAKG;mBACkB,wBAAwB;IAyC7C;;;;;;;OAOG;mBACkB,wCAAwC;IAqC7D;;;;;;;;OAQG;mBACkB,gBAAgB;IAqBrC;;;;OAIG;mBACkB,UAAU;IAkB/B;;;;OAIG;mBACkB,cAAc;IA2BnC;;;;OAIG;mBACkB,gBAAgB;IAarC;;;;;OAKG;mBACkB,wBAAwB;IAkC7C;;;;;;;;;;;OAWG;mBACkB,uCAAuC;mBAwGvC,gBAAgB;IASrC;;;;;;;OAOG;mBACkB,wBAAwB;IAmC7C;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;CAwBpC"}
|
|
@@ -121,8 +121,7 @@ export default class PackageService {
|
|
|
121
121
|
for (const [depName, depVersion] of Object.entries(deps)) {
|
|
122
122
|
if (depVersion === '*' && depName in childPackages) {
|
|
123
123
|
// Replace wildcard with "*" + actual version from the monorepo
|
|
124
|
-
deps[depName] =
|
|
125
|
-
`*${childPackages[depName].packageJsonContents.version}`;
|
|
124
|
+
deps[depName] = `*${childPackages[depName].packageJsonContents.version}`;
|
|
126
125
|
}
|
|
127
126
|
}
|
|
128
127
|
};
|
|
@@ -259,8 +258,7 @@ export default class PackageService {
|
|
|
259
258
|
return;
|
|
260
259
|
}
|
|
261
260
|
// Re-throw version conflict errors
|
|
262
|
-
if (errorString.includes('already exists') ||
|
|
263
|
-
errorString.includes('is lower than')) {
|
|
261
|
+
if (errorString.includes('already exists') || errorString.includes('is lower than')) {
|
|
264
262
|
throw error;
|
|
265
263
|
}
|
|
266
264
|
// For other npm command errors, log but don't block
|
|
@@ -389,14 +387,12 @@ export default class PackageService {
|
|
|
389
387
|
catch (error) {
|
|
390
388
|
const errorString = ErrorUtils.getErrorString(error);
|
|
391
389
|
// If the package doesn't exist on JSR, that's fine for first publish
|
|
392
|
-
if (errorString.includes('Package not found') ||
|
|
393
|
-
errorString.includes('404')) {
|
|
390
|
+
if (errorString.includes('Package not found') || errorString.includes('404')) {
|
|
394
391
|
DR.logger.info('Package not found on JSR - this appears to be a first publish.');
|
|
395
392
|
return;
|
|
396
393
|
}
|
|
397
394
|
// Re-throw version conflict errors
|
|
398
|
-
if (errorString.includes('already exists') ||
|
|
399
|
-
errorString.includes('is lower than')) {
|
|
395
|
+
if (errorString.includes('already exists') || errorString.includes('is lower than')) {
|
|
400
396
|
throw error;
|
|
401
397
|
}
|
|
402
398
|
// For other JSR command errors, log but don't block
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PackageService.js","sourceRoot":"","sources":["../../src/services/PackageService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PackageService.js","sourceRoot":"","sources":["../../src/services/PackageService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAGjC,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,EAAE,EAAE,MAAM,yBAAyB,CAAC;AAC7C,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,iBAAiB,MAAM,0CAA0C,CAAC;AACzE,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,kBAAkB;QAC7B,IAAI,MAAM,iBAAiB,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAChD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,cAAc,CAAC,uCAAuC,EAAE,CAAC;QAC/D,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,GAC5C,MAAM,cAAc,CAAC,wBAAwB,EAAE,CAAC;QAClD,MAAM,gBAAgB,GAAG,MAAM,cAAc,CAAC,gBAAgB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAC5F,MAAM,cAAc,CAAC,gBAAgB,EAAE,CAAC;QAExC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,YAAY;QACvB,IAAI,MAAM,iBAAiB,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAChD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,cAAc,CAAC,uCAAuC,EAAE,CAAC;QAC/D,MAAM,cAAc,CAAC,wBAAwB,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,UAAU,EAAE,CAAC;QACjD,MAAM,cAAc,CAAC,gBAAgB,EAAE,CAAC;QAExC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,kBAAkB;QAC7B,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,MAAM,cAAc,CAAC,cAAc,EAAE,CAAC;QAEvF,MAAM,gBAAgB,GAAG,MAAM,cAAc,CAAC,gBAAgB,EAAE,CAAC;QACjE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,cAAc,CAAC,wBAAwB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAC3E,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,KAAK,CAAC,wBAAwB;QAI3C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAEnD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,MAAM,cAAc,CAAC,cAAc,EAAE,CAAC;YACvE,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAgB,CAAC;YAC5F,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,MAAM,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CACV,CAAC;YAE7B,qBAAqB;YACrB,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;YAE9B,sEAAsE;YACtE,MAAM,IAAI,CAAC,wCAAwC,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;YAEtF,MAAM,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACnE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,gDAAgD,GAAG,OAAO,CAAC,CAAC;YAE3E,OAAO;gBACL,WAAW;gBACX,OAAO;aACR,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACrD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,gDAAgD,WAAW,EAAE,CAAC,CAAC;YAC/E,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAC3D,eAA4B,EAC5B,eAAuB;QAEvB,IAAI,CAAC;YACH,2EAA2E;YAC3E,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAE1E,0CAA0C;YAC1C,MAAM,mBAAmB,GAAG,CAAC,IAAwC,EAAQ,EAAE;gBAC7E,IAAI,CAAC,IAAI;oBAAE,OAAO;gBAElB,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACzD,IAAI,UAAU,KAAK,GAAG,IAAI,OAAO,IAAI,aAAa,EAAE,CAAC;wBACnD,+DAA+D;wBAC/D,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;oBAC3E,CAAC;gBACH,CAAC;YACH,CAAC,CAAC;YAEF,+BAA+B;YAC/B,mBAAmB,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YAClD,mBAAmB,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;YACrD,mBAAmB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;YACtD,mBAAmB,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;YAE1D,iCAAiC;YACjC,MAAM,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAE3E,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;QACzF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACrD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,WAAW,EAAE,CAAC,CAAC;YAC3E,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,MAAM,CAAC,KAAK,CAAC,gBAAgB,CACnC,WAAmB,EACnB,cAAsB;QAEtB,2CAA2C;QAC3C,MAAM,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAEjE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAClD,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,qCAAqC,CAAC,CAAC;YAClF,IAAI,MAAM,EAAE,CAAC;gBACX,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;YACD,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC9F,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACxC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,eAAe,CAAC,EAAE;gBACpD,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,KAAK,CAAC,cAAc;QAIjC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAE3D,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAgB,CAAC;YAE5F,OAAO;gBACL,WAAW,EAAE,eAAe,CAAC,IAAI;gBACjC,OAAO,EAAE,eAAe,CAAC,OAAO;aACjC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACrD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,WAAW,EAAE,CAAC,CAAC;YAC/D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,KAAK,CAAC,gBAAgB;QACnC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,uCAAuC,CAAC,CAAC;YACzD,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACrD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,WAAW,EAAE,CAAC,CAAC;YACtD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAC3C,WAAmB,EACnB,cAAsB;QAEtB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,kDAAkD,WAAW,KAAK,CAAC,CAAC;QAEnF,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,YAAY,WAAW,EAAE,CAAC,CAAC;YAE9D,0DAA0D;YAC1D,MAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAC/D,IAAI,kBAAkB,EAAE,CAAC;gBACvB,MAAM,aAAa,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;gBAC5C,cAAc,CAAC,oBAAoB,CAAC,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAErD,qEAAqE;YACrE,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACrE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;gBACjF,OAAO;YACT,CAAC;YAED,mCAAmC;YACnC,IAAI,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBACpF,MAAM,KAAK,CAAC;YACd,CAAC;YAED,oDAAoD;YACpD,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,WAAW,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACK,MAAM,CAAC,KAAK,CAAC,uCAAuC;QAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEzC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACpE,OAAO;QACT,CAAC;QAED,iEAAiE;QACjE,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC1E,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEhD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QAED,qEAAqE;QACrE,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACtD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;QAElD,KAAK,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YACvE,MAAM,OAAO,GAAG,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC;YACxD,sFAAsF;YACtF,4EAA4E;YAC5E,2EAA2E;YAC3E,kDAAkD;YAClD,kEAAkE;YAClE,QAAQ;YACR,sEAAsE;YACtE,2CAA2C;YAC3C,2BAA2B;YAC3B,aAAa;YACb,SAAS;YACT,gIAAgI;YAChI,MAAM;YACN,MAAM,YAAY,GAAG,OAAO,WAAW,KAAK,OAAO,EAAE,CAAC;YACtD,mBAAmB,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YAEnD,6CAA6C;YAC7C,MAAM,WAAW,GAAG,IAAI,MAAM,CAC5B,gCAAgC,WAAW,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,QAAQ,EAC1F,GAAG,CACJ,CAAC;YACF,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAChD,CAAC;QAED,gDAAgD;QAChD,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACzE,MAAM,OAAO,GAAG,QAAQ;aACrB,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;aAChF,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QAElD,EAAE,CAAC,MAAM,CAAC,IAAI,CACZ,sDAAsD,OAAO,CAAC,MAAM,sBAAsB,CAC3F,CAAC;QAEF,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAE1B,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAClD,IAAI,UAAU,GAAG,OAAO,CAAC;gBACzB,IAAI,gBAAgB,GAAG,CAAC,CAAC;gBAEzB,KAAK,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,IAAI,mBAAmB,EAAE,CAAC;oBAC9D,qCAAqC;oBACrC,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBACrD,IAAI,CAAC,WAAW;wBAAE,SAAS;oBAE3B,mEAAmE;oBACnE,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC;oBAE1B,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;oBAE9C,IAAI,OAAO,EAAE,CAAC;wBACZ,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,YAAY,IAAI,CAAC,CAAC;wBACpE,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;wBACnC,EAAE,CAAC,MAAM,CAAC,IAAI,CACZ,gBAAgB,WAAW,SAAS,YAAY,KAAK,OAAO,CAAC,MAAM,eAAe,CACnF,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;oBACzB,MAAM,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;oBACtC,iBAAiB,IAAI,gBAAgB,CAAC;oBACtC,EAAE,CAAC,MAAM,CAAC,IAAI,CACZ,cAAc,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,gBAAgB,gBAAgB,CACpF,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,QAAQ,KAAK,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;QAED,EAAE,CAAC,MAAM,CAAC,IAAI,CACZ,0CAA0C,iBAAiB,0BAA0B,CACtF,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,gBAAgB;QACnC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;QACrF,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAC3C,WAAmB,EACnB,cAAsB;QAEtB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,WAAW,KAAK,CAAC,CAAC;QAE1E,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,YAAY,WAAW,EAAE,CAAC,CAAC;YAE9D,0DAA0D;YAC1D,MAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAC/D,IAAI,kBAAkB,EAAE,CAAC;gBACvB,MAAM,aAAa,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;gBAE5C,cAAc,CAAC,oBAAoB,CAAC,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAErD,qEAAqE;YACrE,IAAI,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7E,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;gBACjF,OAAO;YACT,CAAC;YAED,mCAAmC;YACnC,IAAI,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBACpF,MAAM,KAAK,CAAC;YACd,CAAC;YAED,oDAAoD;YACpD,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,WAAW,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,oBAAoB,CACjC,cAAsB,EACtB,aAAqB,EACrB,YAAoB;QAEpB,EAAE,CAAC,MAAM,CAAC,IAAI,CACZ,oBAAoB,cAAc,eAAe,YAAY,KAAK,aAAa,EAAE,CAClF,CAAC;QAEF,gDAAgD;QAChD,MAAM,UAAU,GAAG,aAAa,CAAC,uBAAuB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QAExF,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,WAAW,cAAc,sBAAsB,YAAY,8CAA8C,CAC1G,CAAC;QACJ,CAAC;aAAM,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,mBAAmB,cAAc,+CAA+C,aAAa,OAAO,YAAY,4BAA4B,CAC7I,CAAC;QACJ,CAAC;QAED,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IAC7D,CAAC;CACF"}
|