@aneuhold/core-ts-lib 2.2.7 → 2.2.8
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 +38 -12
- package/lib/services/FileSystemService/FileSystemService.d.ts.map +1 -1
- package/lib/services/FileSystemService/FileSystemService.js +83 -26
- package/lib/services/FileSystemService/FileSystemService.js.map +1 -1
- package/lib/services/FileSystemService/FileSystemService.ts +138 -53
- 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 +60 -4
- package/lib/services/PackageService.d.ts.map +1 -1
- package/lib/services/PackageService.js +182 -43
- package/lib/services/PackageService.js.map +1 -1
- package/lib/services/PackageService.ts +241 -119
- 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
- package/lib/services/DateService/DateService.spec.ts +0 -98
- package/lib/services/FileSystemService/FileSystemService.spec.ts +0 -133
|
@@ -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
|
+
}
|
|
@@ -8,15 +8,53 @@ export default class PackageService {
|
|
|
8
8
|
* project has any pending changes first, then update the version of the
|
|
9
9
|
* jsr.json to match the package.json file, then run the
|
|
10
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
|
+
*/
|
|
17
|
+
static validateJsrPublish(alternativePackageNames?: string[]): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Publishes the current project to JSR.
|
|
20
|
+
*
|
|
21
|
+
* @param alternativePackageNames Optional array of alternative package names to publish under
|
|
22
|
+
*
|
|
23
|
+
* **Warning:** This method uses simple string replacement for package names, which may have unintended effects
|
|
24
|
+
* if the package name appears in unexpected places. Use with caution.
|
|
11
25
|
*/
|
|
12
|
-
static
|
|
13
|
-
static publishToJsr(): Promise<void>;
|
|
26
|
+
static publishToJsr(alternativePackageNames?: string[]): Promise<void>;
|
|
14
27
|
/**
|
|
15
28
|
* Validates the current project for publishing to npm. This will run
|
|
16
29
|
* `npm publish --access public --dry-run` and check for version conflicts
|
|
17
30
|
* on the npm registry.
|
|
31
|
+
*
|
|
32
|
+
* @param alternativePackageNames Optional array of alternative package names to validate publishing under
|
|
33
|
+
*
|
|
34
|
+
* **Warning:** This method uses simple string replacement for package names, which may have unintended effects
|
|
35
|
+
* if the package name appears in unexpected places. Use with caution.
|
|
36
|
+
*/
|
|
37
|
+
static validateNpmPublish(alternativePackageNames?: string[]): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Publishes the current project to npm.
|
|
40
|
+
*
|
|
41
|
+
* @param alternativePackageNames Optional array of alternative package names to publish under
|
|
42
|
+
*
|
|
43
|
+
* **Warning:** This method uses simple string replacement for package names, which may have unintended effects
|
|
44
|
+
* if the package name appears in unexpected places. Use with caution.
|
|
18
45
|
*/
|
|
19
|
-
static
|
|
46
|
+
static publishToNpm(alternativePackageNames?: string[]): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Test method for string replacement functionality. This method allows testing
|
|
49
|
+
* the string replacement behavior without performing actual publishing operations.
|
|
50
|
+
*
|
|
51
|
+
* @param originalString The original string to replace
|
|
52
|
+
* @param newString The new string to replace it with
|
|
53
|
+
*
|
|
54
|
+
* **Warning:** This method uses simple string replacement, which may have unintended effects
|
|
55
|
+
* if the string appears in unexpected places. Use with caution.
|
|
56
|
+
*/
|
|
57
|
+
static testStringReplacement(originalString: string, newString: string): Promise<void>;
|
|
20
58
|
/**
|
|
21
59
|
* Updates the jsr.json file from the package.json file and resolves wildcard
|
|
22
60
|
* dependencies in package.json for JSR compatibility.
|
|
@@ -81,7 +119,6 @@ export default class PackageService {
|
|
|
81
119
|
* ```
|
|
82
120
|
*/
|
|
83
121
|
private static replaceMonorepoImportsWithNpmSpecifiers;
|
|
84
|
-
private static revertGitChanges;
|
|
85
122
|
/**
|
|
86
123
|
* Checks for version conflicts on JSR by looking up the current package
|
|
87
124
|
* and comparing versions. Throws an error if the current version already
|
|
@@ -99,5 +136,24 @@ export default class PackageService {
|
|
|
99
136
|
* @param registryName The name of the registry (for error messages)
|
|
100
137
|
*/
|
|
101
138
|
private static checkVersionConflict;
|
|
139
|
+
/**
|
|
140
|
+
* Replaces the package name in all files in the root directory, but no child directories,
|
|
141
|
+
* with a new name.
|
|
142
|
+
*
|
|
143
|
+
* @param originalPackageName The original package name to replace
|
|
144
|
+
* @param newPackageName The new package name to use
|
|
145
|
+
*/
|
|
146
|
+
private static replacePackageName;
|
|
147
|
+
/**
|
|
148
|
+
* Performs a git reset to discard all changes in the working directory.
|
|
149
|
+
* This is used between alternative package name operations.
|
|
150
|
+
*/
|
|
151
|
+
private static resetGitChanges;
|
|
152
|
+
/**
|
|
153
|
+
* Publishes the current project to npm.
|
|
154
|
+
*
|
|
155
|
+
* @returns true if the publish was successful, false otherwise.
|
|
156
|
+
*/
|
|
157
|
+
private static publishNpm;
|
|
102
158
|
}
|
|
103
159
|
//# sourceMappingURL=PackageService.d.ts.map
|
|
@@ -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
|
|
1
|
+
{"version":3,"file":"PackageService.d.ts","sourceRoot":"","sources":["../../src/services/PackageService.ts"],"names":[],"mappings":"AAcA;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC;;;;;;;;;;OAUG;WACU,kBAAkB,CAAC,uBAAuB,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgClF;;;;;;;OAOG;WACU,YAAY,CAAC,uBAAuB,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC5E;;;;;;;;;OASG;WACU,kBAAkB,CAAC,uBAAuB,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqClF;;;;;;;OAOG;WACU,YAAY,CAAC,uBAAuB,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC5E;;;;;;;;;OASG;WACU,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5F;;;;;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;IAwG5D;;;;;;;OAOG;mBACkB,wBAAwB;IAmC7C;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAyBnC;;;;;;OAMG;mBACkB,kBAAkB;IAoBvC;;;OAGG;mBACkB,eAAe;IAUpC;;;;OAIG;mBACkB,UAAU;CAiBhC"}
|
|
@@ -18,52 +18,148 @@ export default class PackageService {
|
|
|
18
18
|
* project has any pending changes first, then update the version of the
|
|
19
19
|
* jsr.json to match the package.json file, then run the
|
|
20
20
|
* `jsr publish --dry-run` command, and finally cleanup the changes made.
|
|
21
|
+
*
|
|
22
|
+
* @param alternativePackageNames Optional array of alternative package names to validate publishing 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.
|
|
21
26
|
*/
|
|
22
|
-
static async validateJsrPublish() {
|
|
27
|
+
static async validateJsrPublish(alternativePackageNames) {
|
|
23
28
|
if (await FileSystemService.hasPendingChanges()) {
|
|
24
29
|
DR.logger.error('Please commit or stash your changes before publishing.');
|
|
25
30
|
process.exit(1);
|
|
26
31
|
}
|
|
27
|
-
await PackageService.
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
const { packageName: originalPackageName } = await PackageService.getPackageInfo();
|
|
33
|
+
const packageNamesToValidate = [originalPackageName, ...(alternativePackageNames || [])];
|
|
34
|
+
for (const packageName of packageNamesToValidate) {
|
|
35
|
+
const isAlternativeName = packageName !== originalPackageName;
|
|
36
|
+
DR.logger.info(`Validating JSR publishing for package: ${packageName}`);
|
|
37
|
+
if (isAlternativeName) {
|
|
38
|
+
await PackageService.replacePackageName(originalPackageName, packageName);
|
|
39
|
+
}
|
|
40
|
+
await PackageService.replaceMonorepoImportsWithNpmSpecifiers();
|
|
41
|
+
const { version: currentVersion } = await PackageService.updateJsrFromPackageJson();
|
|
42
|
+
const successfulDryRun = await PackageService.publishJsrDryRun(packageName, currentVersion);
|
|
43
|
+
await PackageService.resetGitChanges();
|
|
44
|
+
if (!successfulDryRun) {
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
36
47
|
}
|
|
48
|
+
DR.logger.success('Successfully validated JSR publishing for all package names.');
|
|
37
49
|
}
|
|
38
|
-
|
|
50
|
+
/**
|
|
51
|
+
* Publishes the current project to JSR.
|
|
52
|
+
*
|
|
53
|
+
* @param alternativePackageNames Optional array of alternative package names to publish under
|
|
54
|
+
*
|
|
55
|
+
* **Warning:** This method uses simple string replacement for package names, which may have unintended effects
|
|
56
|
+
* if the package name appears in unexpected places. Use with caution.
|
|
57
|
+
*/
|
|
58
|
+
static async publishToJsr(alternativePackageNames) {
|
|
39
59
|
if (await FileSystemService.hasPendingChanges()) {
|
|
40
60
|
DR.logger.error('Please commit or stash your changes before publishing.');
|
|
41
61
|
process.exit(1);
|
|
42
62
|
}
|
|
43
|
-
await PackageService.
|
|
44
|
-
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
63
|
+
const { packageName: originalPackageName } = await PackageService.getPackageInfo();
|
|
64
|
+
const packageNamesToPublish = [originalPackageName, ...(alternativePackageNames || [])];
|
|
65
|
+
for (const packageName of packageNamesToPublish) {
|
|
66
|
+
const isAlternativeName = packageName !== originalPackageName;
|
|
67
|
+
DR.logger.info(`Publishing to JSR for package: ${packageName}`);
|
|
68
|
+
if (isAlternativeName) {
|
|
69
|
+
await PackageService.replacePackageName(originalPackageName, packageName);
|
|
70
|
+
}
|
|
71
|
+
await PackageService.replaceMonorepoImportsWithNpmSpecifiers();
|
|
72
|
+
await PackageService.updateJsrFromPackageJson();
|
|
73
|
+
const result = await PackageService.publishJsr();
|
|
74
|
+
await PackageService.resetGitChanges();
|
|
75
|
+
if (!result) {
|
|
76
|
+
process.exit(1);
|
|
77
|
+
}
|
|
52
78
|
}
|
|
79
|
+
DR.logger.success('Successfully published to JSR for all package names.');
|
|
53
80
|
}
|
|
54
81
|
/**
|
|
55
82
|
* Validates the current project for publishing to npm. This will run
|
|
56
83
|
* `npm publish --access public --dry-run` and check for version conflicts
|
|
57
84
|
* on the npm registry.
|
|
85
|
+
*
|
|
86
|
+
* @param alternativePackageNames Optional array of alternative package names to validate publishing under
|
|
87
|
+
*
|
|
88
|
+
* **Warning:** This method uses simple string replacement for package names, which may have unintended effects
|
|
89
|
+
* if the package name appears in unexpected places. Use with caution.
|
|
90
|
+
*/
|
|
91
|
+
static async validateNpmPublish(alternativePackageNames) {
|
|
92
|
+
if (await FileSystemService.hasPendingChanges()) {
|
|
93
|
+
DR.logger.error('Please commit or stash your changes before publishing.');
|
|
94
|
+
process.exit(1);
|
|
95
|
+
}
|
|
96
|
+
const { packageName: originalPackageName, version: currentVersion } = await PackageService.getPackageInfo();
|
|
97
|
+
const packageNamesToValidate = [originalPackageName, ...(alternativePackageNames || [])];
|
|
98
|
+
for (const packageName of packageNamesToValidate) {
|
|
99
|
+
const isAlternativeName = packageName !== originalPackageName;
|
|
100
|
+
DR.logger.info(`Validating npm publishing for package: ${packageName}`);
|
|
101
|
+
if (isAlternativeName) {
|
|
102
|
+
await PackageService.replacePackageName(originalPackageName, packageName);
|
|
103
|
+
}
|
|
104
|
+
const successfulDryRun = await PackageService.publishNpmDryRun();
|
|
105
|
+
if (!successfulDryRun) {
|
|
106
|
+
if (isAlternativeName) {
|
|
107
|
+
await PackageService.resetGitChanges();
|
|
108
|
+
}
|
|
109
|
+
process.exit(1);
|
|
110
|
+
}
|
|
111
|
+
await PackageService.checkNpmVersionConflicts(packageName, currentVersion);
|
|
112
|
+
if (isAlternativeName) {
|
|
113
|
+
await PackageService.resetGitChanges();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
DR.logger.success('Successfully validated npm publishing for all package names.');
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Publishes the current project to npm.
|
|
120
|
+
*
|
|
121
|
+
* @param alternativePackageNames Optional array of alternative package names to publish under
|
|
122
|
+
*
|
|
123
|
+
* **Warning:** This method uses simple string replacement for package names, which may have unintended effects
|
|
124
|
+
* if the package name appears in unexpected places. Use with caution.
|
|
58
125
|
*/
|
|
59
|
-
static async
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
if (!successfulDryRun) {
|
|
126
|
+
static async publishToNpm(alternativePackageNames) {
|
|
127
|
+
if (await FileSystemService.hasPendingChanges()) {
|
|
128
|
+
DR.logger.error('Please commit or stash your changes before publishing.');
|
|
63
129
|
process.exit(1);
|
|
64
130
|
}
|
|
65
|
-
await PackageService.
|
|
66
|
-
|
|
131
|
+
const { packageName: originalPackageName } = await PackageService.getPackageInfo();
|
|
132
|
+
const packageNamesToPublish = [originalPackageName, ...(alternativePackageNames || [])];
|
|
133
|
+
for (const packageName of packageNamesToPublish) {
|
|
134
|
+
const isAlternativeName = packageName !== originalPackageName;
|
|
135
|
+
DR.logger.info(`Publishing to npm for package: ${packageName}`);
|
|
136
|
+
if (isAlternativeName) {
|
|
137
|
+
await PackageService.replacePackageName(originalPackageName, packageName);
|
|
138
|
+
}
|
|
139
|
+
const result = await PackageService.publishNpm();
|
|
140
|
+
if (isAlternativeName) {
|
|
141
|
+
await PackageService.resetGitChanges();
|
|
142
|
+
}
|
|
143
|
+
if (!result) {
|
|
144
|
+
process.exit(1);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
DR.logger.success('Successfully published to npm for all package names.');
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Test method for string replacement functionality. This method allows testing
|
|
151
|
+
* the string replacement behavior without performing actual publishing operations.
|
|
152
|
+
*
|
|
153
|
+
* @param originalString The original string to replace
|
|
154
|
+
* @param newString The new string to replace it with
|
|
155
|
+
*
|
|
156
|
+
* **Warning:** This method uses simple string replacement, which may have unintended effects
|
|
157
|
+
* if the string appears in unexpected places. Use with caution.
|
|
158
|
+
*/
|
|
159
|
+
static async testStringReplacement(originalString, newString) {
|
|
160
|
+
DR.logger.info(`Testing string replacement from "${originalString}" to "${newString}"`);
|
|
161
|
+
await PackageService.replacePackageName(originalString, newString);
|
|
162
|
+
DR.logger.info('Test completed - package name replacement has been applied');
|
|
67
163
|
}
|
|
68
164
|
/**
|
|
69
165
|
* Updates the jsr.json file from the package.json file and resolves wildcard
|
|
@@ -121,8 +217,7 @@ export default class PackageService {
|
|
|
121
217
|
for (const [depName, depVersion] of Object.entries(deps)) {
|
|
122
218
|
if (depVersion === '*' && depName in childPackages) {
|
|
123
219
|
// Replace wildcard with "*" + actual version from the monorepo
|
|
124
|
-
deps[depName] =
|
|
125
|
-
`*${childPackages[depName].packageJsonContents.version}`;
|
|
220
|
+
deps[depName] = `*${childPackages[depName].packageJsonContents.version}`;
|
|
126
221
|
}
|
|
127
222
|
}
|
|
128
223
|
};
|
|
@@ -259,8 +354,7 @@ export default class PackageService {
|
|
|
259
354
|
return;
|
|
260
355
|
}
|
|
261
356
|
// Re-throw version conflict errors
|
|
262
|
-
if (errorString.includes('already exists') ||
|
|
263
|
-
errorString.includes('is lower than')) {
|
|
357
|
+
if (errorString.includes('already exists') || errorString.includes('is lower than')) {
|
|
264
358
|
throw error;
|
|
265
359
|
}
|
|
266
360
|
// For other npm command errors, log but don't block
|
|
@@ -358,15 +452,6 @@ export default class PackageService {
|
|
|
358
452
|
}
|
|
359
453
|
DR.logger.info(`Completed monorepo import replacement: ${totalReplacements} total replacements made`);
|
|
360
454
|
}
|
|
361
|
-
static async revertGitChanges() {
|
|
362
|
-
DR.logger.info('Reverting changes made to jsr.json, package.json, and source files');
|
|
363
|
-
try {
|
|
364
|
-
await execAsync('git checkout -- jsr.json package.json src/');
|
|
365
|
-
}
|
|
366
|
-
catch (error) {
|
|
367
|
-
DR.logger.error(`Failed to revert changes: ${ErrorUtils.getErrorString(error)}`);
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
455
|
/**
|
|
371
456
|
* Checks for version conflicts on JSR by looking up the current package
|
|
372
457
|
* and comparing versions. Throws an error if the current version already
|
|
@@ -389,14 +474,12 @@ export default class PackageService {
|
|
|
389
474
|
catch (error) {
|
|
390
475
|
const errorString = ErrorUtils.getErrorString(error);
|
|
391
476
|
// 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')) {
|
|
477
|
+
if (errorString.includes('Package not found') || errorString.includes('404')) {
|
|
394
478
|
DR.logger.info('Package not found on JSR - this appears to be a first publish.');
|
|
395
479
|
return;
|
|
396
480
|
}
|
|
397
481
|
// Re-throw version conflict errors
|
|
398
|
-
if (errorString.includes('already exists') ||
|
|
399
|
-
errorString.includes('is lower than')) {
|
|
482
|
+
if (errorString.includes('already exists') || errorString.includes('is lower than')) {
|
|
400
483
|
throw error;
|
|
401
484
|
}
|
|
402
485
|
// For other JSR command errors, log but don't block
|
|
@@ -422,5 +505,61 @@ export default class PackageService {
|
|
|
422
505
|
}
|
|
423
506
|
DR.logger.info('Version check passed - ready to publish.');
|
|
424
507
|
}
|
|
508
|
+
/**
|
|
509
|
+
* Replaces the package name in all files in the root directory, but no child directories,
|
|
510
|
+
* with a new name.
|
|
511
|
+
*
|
|
512
|
+
* @param originalPackageName The original package name to replace
|
|
513
|
+
* @param newPackageName The new package name to use
|
|
514
|
+
*/
|
|
515
|
+
static async replacePackageName(originalPackageName, newPackageName) {
|
|
516
|
+
DR.logger.info(`Replacing package name from "${originalPackageName}" to "${newPackageName}"`);
|
|
517
|
+
const rootDir = process.cwd();
|
|
518
|
+
// Replace in all files in the root directory
|
|
519
|
+
await FileSystemService.replaceInFiles({
|
|
520
|
+
searchString: originalPackageName,
|
|
521
|
+
replaceString: newPackageName,
|
|
522
|
+
rootPath: rootDir,
|
|
523
|
+
includePatterns: ['*'],
|
|
524
|
+
excludePatterns: []
|
|
525
|
+
});
|
|
526
|
+
DR.logger.info(`Successfully replaced package name in configuration files`);
|
|
527
|
+
}
|
|
528
|
+
/**
|
|
529
|
+
* Performs a git reset to discard all changes in the working directory.
|
|
530
|
+
* This is used between alternative package name operations.
|
|
531
|
+
*/
|
|
532
|
+
static async resetGitChanges() {
|
|
533
|
+
DR.logger.info('Resetting git changes');
|
|
534
|
+
try {
|
|
535
|
+
await execAsync('git reset --hard HEAD');
|
|
536
|
+
}
|
|
537
|
+
catch (error) {
|
|
538
|
+
DR.logger.error(`Failed to reset git changes: ${ErrorUtils.getErrorString(error)}`);
|
|
539
|
+
throw error;
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
/**
|
|
543
|
+
* Publishes the current project to npm.
|
|
544
|
+
*
|
|
545
|
+
* @returns true if the publish was successful, false otherwise.
|
|
546
|
+
*/
|
|
547
|
+
static async publishNpm() {
|
|
548
|
+
DR.logger.info('Running `npm publish --access public`');
|
|
549
|
+
return new Promise((resolve) => {
|
|
550
|
+
const child = spawn('npm publish', ['--access', 'public'], {
|
|
551
|
+
stdio: 'inherit',
|
|
552
|
+
shell: true
|
|
553
|
+
});
|
|
554
|
+
child.on('exit', (code) => {
|
|
555
|
+
if (code === 0) {
|
|
556
|
+
resolve(true);
|
|
557
|
+
}
|
|
558
|
+
else {
|
|
559
|
+
resolve(false);
|
|
560
|
+
}
|
|
561
|
+
});
|
|
562
|
+
});
|
|
563
|
+
}
|
|
425
564
|
}
|
|
426
565
|
//# sourceMappingURL=PackageService.js.map
|
|
@@ -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":"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"}
|