@muverse/core 0.1.0

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 (117) hide show
  1. package/README.md +22 -0
  2. package/dist/adapters/gradle/constants.d.ts +13 -0
  3. package/dist/adapters/gradle/constants.d.ts.map +1 -0
  4. package/dist/adapters/gradle/constants.js +12 -0
  5. package/dist/adapters/gradle/gradle-project-information.d.ts +18 -0
  6. package/dist/adapters/gradle/gradle-project-information.d.ts.map +1 -0
  7. package/dist/adapters/gradle/gradle-project-information.js +93 -0
  8. package/dist/adapters/gradle/gradle-properties.d.ts +15 -0
  9. package/dist/adapters/gradle/gradle-properties.d.ts.map +1 -0
  10. package/dist/adapters/gradle/gradle-properties.js +46 -0
  11. package/dist/adapters/gradle/init-project-information.gradle.kts +143 -0
  12. package/dist/adapters/gradle/services/gradle-adapter-identifier.d.ts +21 -0
  13. package/dist/adapters/gradle/services/gradle-adapter-identifier.d.ts.map +1 -0
  14. package/dist/adapters/gradle/services/gradle-adapter-identifier.js +44 -0
  15. package/dist/adapters/gradle/services/gradle-module-detector.d.ts +18 -0
  16. package/dist/adapters/gradle/services/gradle-module-detector.d.ts.map +1 -0
  17. package/dist/adapters/gradle/services/gradle-module-detector.js +26 -0
  18. package/dist/adapters/gradle/services/gradle-module-system-factory.d.ts +23 -0
  19. package/dist/adapters/gradle/services/gradle-module-system-factory.d.ts.map +1 -0
  20. package/dist/adapters/gradle/services/gradle-module-system-factory.js +27 -0
  21. package/dist/adapters/gradle/services/gradle-version-update-strategy.d.ts +21 -0
  22. package/dist/adapters/gradle/services/gradle-version-update-strategy.d.ts.map +1 -0
  23. package/dist/adapters/gradle/services/gradle-version-update-strategy.js +36 -0
  24. package/dist/adapters/project-information.d.ts +58 -0
  25. package/dist/adapters/project-information.d.ts.map +1 -0
  26. package/dist/adapters/project-information.js +1 -0
  27. package/dist/changelog/index.d.ts +27 -0
  28. package/dist/changelog/index.d.ts.map +1 -0
  29. package/dist/changelog/index.js +204 -0
  30. package/dist/config/index.d.ts +122 -0
  31. package/dist/config/index.d.ts.map +1 -0
  32. package/dist/config/index.js +115 -0
  33. package/dist/factories/adapter-identifier-registry.d.ts +12 -0
  34. package/dist/factories/adapter-identifier-registry.d.ts.map +1 -0
  35. package/dist/factories/adapter-identifier-registry.js +24 -0
  36. package/dist/factories/module-system-factory.d.ts +10 -0
  37. package/dist/factories/module-system-factory.d.ts.map +1 -0
  38. package/dist/factories/module-system-factory.js +18 -0
  39. package/dist/git/index.d.ts +253 -0
  40. package/dist/git/index.d.ts.map +1 -0
  41. package/dist/git/index.js +581 -0
  42. package/dist/index.d.ts +23 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +22 -0
  45. package/dist/semver/index.d.ts +85 -0
  46. package/dist/semver/index.d.ts.map +1 -0
  47. package/dist/semver/index.js +176 -0
  48. package/dist/services/adapter-identifier-registry.d.ts +38 -0
  49. package/dist/services/adapter-identifier-registry.d.ts.map +1 -0
  50. package/dist/services/adapter-identifier-registry.js +59 -0
  51. package/dist/services/adapter-identifier.d.ts +31 -0
  52. package/dist/services/adapter-identifier.d.ts.map +1 -0
  53. package/dist/services/adapter-identifier.js +1 -0
  54. package/dist/services/adapter-metadata-provider.d.ts +51 -0
  55. package/dist/services/adapter-metadata-provider.d.ts.map +1 -0
  56. package/dist/services/adapter-metadata-provider.js +66 -0
  57. package/dist/services/changelog-generator.d.ts +13 -0
  58. package/dist/services/changelog-generator.d.ts.map +1 -0
  59. package/dist/services/changelog-generator.js +26 -0
  60. package/dist/services/commit-analyzer.d.ts +44 -0
  61. package/dist/services/commit-analyzer.d.ts.map +1 -0
  62. package/dist/services/commit-analyzer.js +86 -0
  63. package/dist/services/configuration-loader.d.ts +23 -0
  64. package/dist/services/configuration-loader.d.ts.map +1 -0
  65. package/dist/services/configuration-loader.js +79 -0
  66. package/dist/services/configuration-validator.d.ts +16 -0
  67. package/dist/services/configuration-validator.d.ts.map +1 -0
  68. package/dist/services/configuration-validator.js +24 -0
  69. package/dist/services/git-operations.d.ts +16 -0
  70. package/dist/services/git-operations.d.ts.map +1 -0
  71. package/dist/services/git-operations.js +89 -0
  72. package/dist/services/module-detector.d.ts +24 -0
  73. package/dist/services/module-detector.d.ts.map +1 -0
  74. package/dist/services/module-detector.js +1 -0
  75. package/dist/services/module-registry.d.ts +45 -0
  76. package/dist/services/module-registry.d.ts.map +1 -0
  77. package/dist/services/module-registry.js +57 -0
  78. package/dist/services/module-system-factory.d.ts +24 -0
  79. package/dist/services/module-system-factory.d.ts.map +1 -0
  80. package/dist/services/module-system-factory.js +1 -0
  81. package/dist/services/verse-runner.d.ts +45 -0
  82. package/dist/services/verse-runner.d.ts.map +1 -0
  83. package/dist/services/verse-runner.js +182 -0
  84. package/dist/services/version-applier.d.ts +26 -0
  85. package/dist/services/version-applier.d.ts.map +1 -0
  86. package/dist/services/version-applier.js +63 -0
  87. package/dist/services/version-bumper.d.ts +156 -0
  88. package/dist/services/version-bumper.d.ts.map +1 -0
  89. package/dist/services/version-bumper.js +291 -0
  90. package/dist/services/version-manager.d.ts +68 -0
  91. package/dist/services/version-manager.d.ts.map +1 -0
  92. package/dist/services/version-manager.js +94 -0
  93. package/dist/services/version-update-strategy.d.ts +18 -0
  94. package/dist/services/version-update-strategy.d.ts.map +1 -0
  95. package/dist/services/version-update-strategy.js +1 -0
  96. package/dist/utils/banner.d.ts +2 -0
  97. package/dist/utils/banner.d.ts.map +1 -0
  98. package/dist/utils/banner.js +8 -0
  99. package/dist/utils/commits.d.ts +12 -0
  100. package/dist/utils/commits.d.ts.map +1 -0
  101. package/dist/utils/commits.js +24 -0
  102. package/dist/utils/file.d.ts +7 -0
  103. package/dist/utils/file.d.ts.map +1 -0
  104. package/dist/utils/file.js +19 -0
  105. package/dist/utils/index.d.ts +6 -0
  106. package/dist/utils/index.d.ts.map +1 -0
  107. package/dist/utils/index.js +5 -0
  108. package/dist/utils/logger.d.ts +14 -0
  109. package/dist/utils/logger.d.ts.map +1 -0
  110. package/dist/utils/logger.js +22 -0
  111. package/dist/utils/properties.d.ts +16 -0
  112. package/dist/utils/properties.d.ts.map +1 -0
  113. package/dist/utils/properties.js +62 -0
  114. package/dist/utils/versioning.d.ts +8 -0
  115. package/dist/utils/versioning.d.ts.map +1 -0
  116. package/dist/utils/versioning.js +17 -0
  117. package/package.json +70 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"properties.d.ts","sourceRoot":"","sources":["../../src/utils/properties.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC,CAgDf"}
@@ -0,0 +1,62 @@
1
+ import { promises as fs } from "fs";
2
+ import { exists } from "./file.js";
3
+ /**
4
+ * Updates or inserts a single property in a Java-style properties file.
5
+ * @param propertiesPath - Path to the properties file
6
+ * @param key - Property key to update or insert
7
+ * @param value - Property value to set
8
+ */
9
+ export async function upsertProperty(propertiesPath, key, value) {
10
+ // Delegate to batch function with single-entry map
11
+ await upsertProperties(propertiesPath, new Map([[key, value]]));
12
+ }
13
+ /**
14
+ * Updates or inserts multiple properties in a Java-style properties file.
15
+ * Updates existing properties in place, appends new ones to the end.
16
+ * @param propertiesPath - Path to the properties file
17
+ * @param properties - Map of property keys to values
18
+ * @throws {Error} If file operations fail
19
+ */
20
+ export async function upsertProperties(propertiesPath, properties) {
21
+ // Early return for empty updates (optimization)
22
+ if (properties.size === 0) {
23
+ return; // Nothing to update
24
+ }
25
+ // Check if properties file already exists
26
+ const propertiesExist = await exists(propertiesPath);
27
+ let updatedContent;
28
+ if (propertiesExist) {
29
+ // File exists - read current content and update properties
30
+ let content = await fs.readFile(propertiesPath, "utf8");
31
+ // Process each property update
32
+ for (const [key, value] of properties) {
33
+ // Escape special regex characters in property key
34
+ // This ensures keys like 'my.app.version' don't become regex patterns
35
+ const escapedKey = key.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
36
+ // Match property lines: key=value or key:value (with optional whitespace)
37
+ // Anchored to line start (^) and end ($) with multiline flag (m)
38
+ const propertyRegex = new RegExp(`^${escapedKey}\\s*[=:]\\s*.*$`, "m");
39
+ if (propertyRegex.test(content)) {
40
+ // Property exists - replace the line with updated value
41
+ content = content.replace(propertyRegex, `${key}=${value}`);
42
+ }
43
+ else {
44
+ // Property doesn't exist - append to end of file
45
+ // Add newline separator if file doesn't end with one
46
+ const separator = content.endsWith("\n") ? "" : "\n";
47
+ content = content + separator + `${key}=${value}\n`;
48
+ }
49
+ }
50
+ updatedContent = content;
51
+ }
52
+ else {
53
+ // File doesn't exist - create new properties content
54
+ const lines = [];
55
+ for (const [key, value] of properties) {
56
+ lines.push(`${key}=${value}`);
57
+ }
58
+ updatedContent = lines.join("\n") + "\n";
59
+ }
60
+ // Write updated content to file (creates or overwrites)
61
+ await fs.writeFile(propertiesPath, updatedContent, "utf8");
62
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Applies the '-SNAPSHOT' suffix to a version string.
3
+ * Idempotent - returns unchanged if already ends with '-SNAPSHOT'.
4
+ * @param version - Version string to convert to a snapshot version
5
+ * @returns Version string with '-SNAPSHOT' suffix
6
+ */
7
+ export declare function applySnapshotSuffix(version: string): string;
8
+ //# sourceMappingURL=versioning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versioning.d.ts","sourceRoot":"","sources":["../../src/utils/versioning.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAS3D"}
@@ -0,0 +1,17 @@
1
+ /** Suffix appended to version strings to denote a snapshot (development) version ('-SNAPSHOT'). */
2
+ const SNAPSHOT_SUFFIX = "-SNAPSHOT";
3
+ /**
4
+ * Applies the '-SNAPSHOT' suffix to a version string.
5
+ * Idempotent - returns unchanged if already ends with '-SNAPSHOT'.
6
+ * @param version - Version string to convert to a snapshot version
7
+ * @returns Version string with '-SNAPSHOT' suffix
8
+ */
9
+ export function applySnapshotSuffix(version) {
10
+ // Don't add -SNAPSHOT if it's already there
11
+ // This makes the function idempotent and prevents duplicates like '1.0.0-SNAPSHOT-SNAPSHOT'
12
+ if (version.endsWith(SNAPSHOT_SUFFIX)) {
13
+ return version;
14
+ }
15
+ // Append the snapshot suffix to mark this as a development version
16
+ return `${version}${SNAPSHOT_SUFFIX}`;
17
+ }
package/package.json ADDED
@@ -0,0 +1,70 @@
1
+ {
2
+ "name": "@muverse/core",
3
+ "version": "0.1.0",
4
+ "description": "μVERSE Core - Version Engine for Repo Semantic Evolution (core business logic)",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./dist/index.js",
10
+ "require": "./dist/index.cjs"
11
+ }
12
+ },
13
+ "scripts": {
14
+ "build": "npm run build:esm",
15
+ "build:esm": "tsc --project tsconfig.json --outDir dist && npm run copy-assets",
16
+ "build:cjs": "tsc --project tsconfig.cjs.json --outDir dist && npm run copy-assets",
17
+ "test": "vitest",
18
+ "test:coverage": "vitest --coverage",
19
+ "lint": "eslint src/**/*.ts",
20
+ "format": "prettier --write src/**/*.ts",
21
+ "copy-assets": "cpx \"src/adapters/gradle/init-project-information.gradle.kts\" \"dist/adapters/gradle/\""
22
+ },
23
+ "keywords": [
24
+ "muverse",
25
+ "core",
26
+ "semantic-versioning",
27
+ "conventional-commits",
28
+ "version-engine",
29
+ "dependency-cascade",
30
+ "monorepo"
31
+ ],
32
+ "author": "tvcsantos",
33
+ "license": "MIT",
34
+ "repository": {
35
+ "type": "git",
36
+ "url": "git+https://github.com/tvcsantos/muverse.git"
37
+ },
38
+ "bugs": {
39
+ "url": "https://github.com/tvcsantos/muverse/issues"
40
+ },
41
+ "homepage": "https://github.com/tvcsantos/muverse#readme",
42
+ "files": [
43
+ "dist"
44
+ ],
45
+ "types": "dist/index.d.ts",
46
+ "dependencies": {
47
+ "conventional-commits-parser": "^6.2.1",
48
+ "cosmiconfig": "^9.0.0",
49
+ "deepmerge": "^4.3.1",
50
+ "execa": "^9.6.1",
51
+ "semver": "^7.5.4",
52
+ "yaml": "^2.3.4",
53
+ "zod": "^4.1.12"
54
+ },
55
+ "devDependencies": {
56
+ "@types/node": "^20.19.23",
57
+ "@types/semver": "^7.5.6",
58
+ "@typescript-eslint/eslint-plugin": "^6.15.0",
59
+ "@typescript-eslint/parser": "^6.15.0",
60
+ "@vitest/coverage-v8": "^1.1.0",
61
+ "cpx": "^1.5.0",
62
+ "eslint": "^8.56.0",
63
+ "prettier": "^3.1.1",
64
+ "typescript": "^5.3.3",
65
+ "vitest": "^1.1.0"
66
+ },
67
+ "engines": {
68
+ "node": ">=20"
69
+ }
70
+ }