@aneuhold/core-ts-lib 2.2.9 → 2.2.11

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.
Files changed (89) hide show
  1. package/lib/index.d.ts +5 -3
  2. package/lib/index.d.ts.map +1 -1
  3. package/lib/index.js +3 -2
  4. package/lib/index.js.map +1 -1
  5. package/lib/index.ts +5 -2
  6. package/lib/services/ChangelogService/ChangelogFileService.d.ts +42 -0
  7. package/lib/services/ChangelogService/ChangelogFileService.d.ts.map +1 -0
  8. package/lib/services/ChangelogService/ChangelogFileService.js +65 -0
  9. package/lib/services/ChangelogService/ChangelogFileService.js.map +1 -0
  10. package/lib/services/ChangelogService/ChangelogFileService.ts +68 -0
  11. package/lib/services/ChangelogService/ChangelogGenerator.d.ts +58 -0
  12. package/lib/services/ChangelogService/ChangelogGenerator.d.ts.map +1 -0
  13. package/lib/services/ChangelogService/ChangelogGenerator.js +145 -0
  14. package/lib/services/ChangelogService/ChangelogGenerator.js.map +1 -0
  15. package/lib/services/ChangelogService/ChangelogGenerator.ts +188 -0
  16. package/lib/services/ChangelogService/ChangelogParser.d.ts +21 -0
  17. package/lib/services/ChangelogService/ChangelogParser.d.ts.map +1 -0
  18. package/lib/services/ChangelogService/ChangelogParser.js +76 -0
  19. package/lib/services/ChangelogService/ChangelogParser.js.map +1 -0
  20. package/lib/services/ChangelogService/ChangelogParser.ts +94 -0
  21. package/lib/services/ChangelogService/ChangelogService.d.ts +54 -0
  22. package/lib/services/ChangelogService/ChangelogService.d.ts.map +1 -0
  23. package/lib/services/ChangelogService/ChangelogService.js +201 -0
  24. package/lib/services/ChangelogService/ChangelogService.js.map +1 -0
  25. package/lib/services/ChangelogService/ChangelogService.ts +293 -0
  26. package/lib/services/ChangelogService/ChangelogValidator.d.ts +15 -0
  27. package/lib/services/ChangelogService/ChangelogValidator.d.ts.map +1 -0
  28. package/lib/services/ChangelogService/ChangelogValidator.js +44 -0
  29. package/lib/services/ChangelogService/ChangelogValidator.js.map +1 -0
  30. package/lib/services/ChangelogService/ChangelogValidator.ts +55 -0
  31. package/lib/services/ChangelogService/GitTagService.d.ts +29 -0
  32. package/lib/services/ChangelogService/GitTagService.d.ts.map +1 -0
  33. package/lib/services/ChangelogService/GitTagService.js +57 -0
  34. package/lib/services/ChangelogService/GitTagService.js.map +1 -0
  35. package/lib/services/ChangelogService/GitTagService.ts +60 -0
  36. package/lib/services/ChangelogService/RepositoryInfoService.d.ts +14 -0
  37. package/lib/services/ChangelogService/RepositoryInfoService.d.ts.map +1 -0
  38. package/lib/services/ChangelogService/RepositoryInfoService.js +55 -0
  39. package/lib/services/ChangelogService/RepositoryInfoService.js.map +1 -0
  40. package/lib/services/ChangelogService/RepositoryInfoService.ts +64 -0
  41. package/lib/services/ChangelogService/index.d.ts +2 -0
  42. package/lib/services/ChangelogService/index.d.ts.map +1 -0
  43. package/lib/services/ChangelogService/index.js +2 -0
  44. package/lib/services/ChangelogService/index.js.map +1 -0
  45. package/lib/services/ChangelogService/index.ts +1 -0
  46. package/lib/services/ChangelogService/types.d.ts +27 -0
  47. package/lib/services/ChangelogService/types.d.ts.map +1 -0
  48. package/lib/services/ChangelogService/types.js +3 -0
  49. package/lib/services/ChangelogService/types.js.map +1 -0
  50. package/lib/services/ChangelogService/types.ts +30 -0
  51. package/lib/services/DependencyService.d.ts +2 -9
  52. package/lib/services/DependencyService.d.ts.map +1 -1
  53. package/lib/services/DependencyService.js +2 -11
  54. package/lib/services/DependencyService.js.map +1 -1
  55. package/lib/services/DependencyService.ts +2 -11
  56. package/lib/services/PackageService/JsrPackageService.d.ts +81 -0
  57. package/lib/services/PackageService/JsrPackageService.d.ts.map +1 -0
  58. package/lib/services/{PackageService.js → PackageService/JsrPackageService.js} +70 -312
  59. package/lib/services/PackageService/JsrPackageService.js.map +1 -0
  60. package/lib/services/{PackageService.ts → PackageService/JsrPackageService.ts} +79 -372
  61. package/lib/services/PackageService/NpmPackageService.d.ts +45 -0
  62. package/lib/services/PackageService/NpmPackageService.d.ts.map +1 -0
  63. package/lib/services/PackageService/NpmPackageService.js +146 -0
  64. package/lib/services/PackageService/NpmPackageService.js.map +1 -0
  65. package/lib/services/PackageService/NpmPackageService.ts +178 -0
  66. package/lib/services/PackageService/PackageService.d.ts +77 -0
  67. package/lib/services/PackageService/PackageService.d.ts.map +1 -0
  68. package/lib/services/PackageService/PackageService.js +96 -0
  69. package/lib/services/PackageService/PackageService.js.map +1 -0
  70. package/lib/services/PackageService/PackageService.ts +108 -0
  71. package/lib/services/PackageService/PackageServiceUtils.d.ts +69 -0
  72. package/lib/services/PackageService/PackageServiceUtils.d.ts.map +1 -0
  73. package/lib/services/PackageService/PackageServiceUtils.js +185 -0
  74. package/lib/services/PackageService/PackageServiceUtils.js.map +1 -0
  75. package/lib/services/PackageService/PackageServiceUtils.ts +239 -0
  76. package/lib/services/StringService.d.ts +12 -0
  77. package/lib/services/StringService.d.ts.map +1 -1
  78. package/lib/services/StringService.js +56 -0
  79. package/lib/services/StringService.js.map +1 -1
  80. package/lib/services/StringService.ts +72 -0
  81. package/lib/types/VersionType.d.ts +9 -0
  82. package/lib/types/VersionType.d.ts.map +1 -0
  83. package/lib/types/VersionType.js +10 -0
  84. package/lib/types/VersionType.js.map +1 -0
  85. package/lib/types/VersionType.ts +8 -0
  86. package/package.json +7 -6
  87. package/lib/services/PackageService.d.ts +0 -159
  88. package/lib/services/PackageService.d.ts.map +0 -1
  89. package/lib/services/PackageService.js.map +0 -1
@@ -1,3 +1,5 @@
1
+ import { VersionType } from '../types/VersionType.js';
2
+
1
3
  /**
2
4
  * A service which can be used to interact with strings.
3
5
  */
@@ -36,4 +38,74 @@ export default class StringService {
36
38
 
37
39
  return 0;
38
40
  }
41
+
42
+ /**
43
+ * Checks if a version needs to be bumped based on the desired version type.
44
+ * This considers both registry conflicts and whether the requested version type
45
+ * has been incremented from the published version.
46
+ *
47
+ * @param currentVersion The current version from package.json
48
+ * @param publishedVersion The latest published version (or null if not published)
49
+ * @param requestedVersionType The type of version bump requested
50
+ * @returns true if a version bump is needed, false otherwise
51
+ */
52
+ static shouldBumpVersion(
53
+ currentVersion: string,
54
+ publishedVersion: string | null,
55
+ requestedVersionType: VersionType
56
+ ): boolean {
57
+ // If no published version exists, no bump needed for first publish
58
+ if (!publishedVersion) {
59
+ return false;
60
+ }
61
+
62
+ const currentParts = currentVersion.split('.').map(Number);
63
+ const publishedParts = publishedVersion.split('.').map(Number);
64
+
65
+ const [currentMajor, currentMinor, currentPatch] = [
66
+ currentParts[0] || 0,
67
+ currentParts[1] || 0,
68
+ currentParts[2] || 0
69
+ ];
70
+ const [publishedMajor, publishedMinor, publishedPatch] = [
71
+ publishedParts[0] || 0,
72
+ publishedParts[1] || 0,
73
+ publishedParts[2] || 0
74
+ ];
75
+
76
+ // If current version is lower than or equal to published, always bump
77
+ const comparison = StringService.compareSemanticVersions(currentVersion, publishedVersion);
78
+ if (comparison <= 0) {
79
+ return true;
80
+ }
81
+
82
+ // Current version is higher than published, check if requested version type has been bumped
83
+ switch (requestedVersionType) {
84
+ case VersionType.Major:
85
+ // Need to bump if major version hasn't been incremented
86
+ return currentMajor <= publishedMajor;
87
+
88
+ case VersionType.Minor:
89
+ // Need to bump if major is same and minor hasn't been incremented
90
+ if (currentMajor > publishedMajor) {
91
+ return false; // Major was already bumped, no need for minor
92
+ }
93
+ return currentMajor === publishedMajor && currentMinor <= publishedMinor;
94
+
95
+ case VersionType.Patch:
96
+ default:
97
+ // Need to bump if major and minor are same and patch hasn't been incremented
98
+ if (
99
+ currentMajor > publishedMajor ||
100
+ (currentMajor === publishedMajor && currentMinor > publishedMinor)
101
+ ) {
102
+ return false; // Major or minor was already bumped, no need for patch
103
+ }
104
+ return (
105
+ currentMajor === publishedMajor &&
106
+ currentMinor === publishedMinor &&
107
+ currentPatch <= publishedPatch
108
+ );
109
+ }
110
+ }
39
111
  }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Standard Semantic Versioning bump types.
3
+ */
4
+ export declare enum VersionType {
5
+ Patch = "patch",
6
+ Minor = "minor",
7
+ Major = "major"
8
+ }
9
+ //# sourceMappingURL=VersionType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VersionType.d.ts","sourceRoot":"","sources":["../../src/types/VersionType.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,WAAW;IACrB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,KAAK,UAAU;CAChB"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Standard Semantic Versioning bump types.
3
+ */
4
+ export var VersionType;
5
+ (function (VersionType) {
6
+ VersionType["Patch"] = "patch";
7
+ VersionType["Minor"] = "minor";
8
+ VersionType["Major"] = "major";
9
+ })(VersionType || (VersionType = {}));
10
+ //# sourceMappingURL=VersionType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VersionType.js","sourceRoot":"","sources":["../../src/types/VersionType.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,8BAAe,CAAA;IACf,8BAAe,CAAA;AACjB,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Standard Semantic Versioning bump types.
3
+ */
4
+ export enum VersionType {
5
+ Patch = 'patch',
6
+ Minor = 'minor',
7
+ Major = 'major'
8
+ }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@aneuhold/core-ts-lib",
3
3
  "author": "Anton G. Neuhold Jr.",
4
4
  "license": "MIT",
5
- "version": "2.2.9",
5
+ "version": "2.2.11",
6
6
  "description": "A core library for all of my TypeScript projects",
7
7
  "packageManager": "pnpm@10.12.1",
8
8
  "type": "module",
@@ -11,6 +11,7 @@
11
11
  "watch": "nodemon --ignore lib/ -e ts --exec \"tsc --project tsconfig.build.json && tsx ./scripts/copyTsFiles.ts\"",
12
12
  "lint": "eslint",
13
13
  "test": "vitest run",
14
+ "prepare": "tsx ./scripts/bumpVersionAndInitializeChangelog.ts",
14
15
  "jsr:validate": "tsx ./scripts/validateJsrPublish.ts",
15
16
  "npm:validate": "tsx ./scripts/validateNpmPublish.ts",
16
17
  "checkAll": "pnpm build && pnpm lint && pnpm test && pnpm jsr:validate",
@@ -43,14 +44,14 @@
43
44
  "Node.js"
44
45
  ],
45
46
  "devDependencies": {
46
- "@types/node": "^22.15.3",
47
- "eslint": "^9.26.0",
47
+ "@types/node": "^22.15.32",
48
+ "eslint": "^9.29.0",
48
49
  "jsr": "*",
49
50
  "nodemon": "^3.1.10",
50
51
  "prettier": "^3.5.3",
51
52
  "rimraf": "^6.0.1",
52
- "tsx": "^4.19.4",
53
+ "tsx": "^4.20.3",
53
54
  "typescript": "~5.8.3",
54
- "vitest": "^3.2.3"
55
+ "vitest": "^3.2.4"
55
56
  }
56
- }
57
+ }
@@ -1,159 +0,0 @@
1
- /**
2
- * A service which can be used to assist in publishing or validating packages
3
- * for the current project.
4
- */
5
- export default class PackageService {
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
- */
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.
25
- */
26
- static publishToJsr(alternativePackageNames?: string[]): Promise<void>;
27
- /**
28
- * Validates the current project for publishing to npm. This will run
29
- * `npm publish --access public --dry-run` and check for version conflicts
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.
45
- */
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>;
58
- /**
59
- * Updates the jsr.json file from the package.json file and resolves wildcard
60
- * dependencies in package.json for JSR compatibility.
61
- *
62
- * @returns An object containing the package name and version from jsr.json and package.json
63
- */
64
- private static updateJsrFromPackageJson;
65
- /**
66
- * Resolves wildcard dependencies in package.json by replacing them with actual
67
- * version constraints (e.g., "*1.2.3") for JSR compatibility. This will
68
- * write the modified package.json back to disk.
69
- *
70
- * @param packageJsonData The package.json data to modify
71
- * @param packageJsonPath The path to the package.json file
72
- */
73
- private static resolveWildcardDependenciesInPackageJson;
74
- /**
75
- * Executes a dry run of JSR publishing. Returns true if the dry run was
76
- * successful, false otherwise. Also checks for existing versions on JSR
77
- * and throws an error if the current version already exists or if a higher
78
- * version is already published.
79
- *
80
- * @param packageName The package name from jsr.json
81
- * @param currentVersion The current version from package.json
82
- */
83
- private static publishJsrDryRun;
84
- /**
85
- * Publishes the current project to JSR.
86
- *
87
- * @returns true if the publish was successful, false otherwise.
88
- */
89
- private static publishJsr;
90
- /**
91
- * Gets the package name and version from package.json.
92
- *
93
- * @returns An object containing the package name and version
94
- */
95
- private static getPackageInfo;
96
- /**
97
- * Executes a dry run of npm publishing.
98
- *
99
- * @returns true if the dry run was successful, false otherwise.
100
- */
101
- private static publishNpmDryRun;
102
- /**
103
- * Checks npm registry for package information and performs version conflict checks.
104
- *
105
- * @param packageName The package name from package.json
106
- * @param currentVersion The current version from package.json
107
- */
108
- private static checkNpmVersionConflicts;
109
- /**
110
- * Replaces imports of monorepo dependencies with npm: specifiers in all TypeScript files.
111
- * This is needed for JSR compatibility when publishing packages that depend on other packages in the monorepo.
112
- *
113
- * This helps prevent the following error that comes up as of 5/26/2025:
114
- *
115
- * ```sh
116
- * error: Failed to publish @aneuhold/be-ts-lib@2.0.67
117
- * Caused by: Failed to publish @aneuhold/be-ts-lib at 2.0.67: failed to build module graph: Module not found "file:///src/services/@aneuhold/core-ts-lib".
118
- * at file:///src/services/GitHubService.ts:1:20
119
- * ```
120
- */
121
- private static replaceMonorepoImportsWithNpmSpecifiers;
122
- /**
123
- * Checks for version conflicts on JSR by looking up the current package
124
- * and comparing versions. Throws an error if the current version already
125
- * exists or if a higher version is already published.
126
- *
127
- * @param packageName The package name from jsr.json
128
- * @param currentVersion The current version from package.json
129
- */
130
- private static checkJsrVersionConflicts;
131
- /**
132
- * Common logic for checking version conflicts between current and latest versions.
133
- *
134
- * @param currentVersion The current version from package.json
135
- * @param latestVersion The latest published version
136
- * @param registryName The name of the registry (for error messages)
137
- */
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;
158
- }
159
- //# sourceMappingURL=PackageService.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PackageService.js","sourceRoot":"","sources":["../../src/services/PackageService.ts"],"names":[],"mappings":"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"}