@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.
- package/README.md +22 -0
- package/dist/adapters/gradle/constants.d.ts +13 -0
- package/dist/adapters/gradle/constants.d.ts.map +1 -0
- package/dist/adapters/gradle/constants.js +12 -0
- package/dist/adapters/gradle/gradle-project-information.d.ts +18 -0
- package/dist/adapters/gradle/gradle-project-information.d.ts.map +1 -0
- package/dist/adapters/gradle/gradle-project-information.js +93 -0
- package/dist/adapters/gradle/gradle-properties.d.ts +15 -0
- package/dist/adapters/gradle/gradle-properties.d.ts.map +1 -0
- package/dist/adapters/gradle/gradle-properties.js +46 -0
- package/dist/adapters/gradle/init-project-information.gradle.kts +143 -0
- package/dist/adapters/gradle/services/gradle-adapter-identifier.d.ts +21 -0
- package/dist/adapters/gradle/services/gradle-adapter-identifier.d.ts.map +1 -0
- package/dist/adapters/gradle/services/gradle-adapter-identifier.js +44 -0
- package/dist/adapters/gradle/services/gradle-module-detector.d.ts +18 -0
- package/dist/adapters/gradle/services/gradle-module-detector.d.ts.map +1 -0
- package/dist/adapters/gradle/services/gradle-module-detector.js +26 -0
- package/dist/adapters/gradle/services/gradle-module-system-factory.d.ts +23 -0
- package/dist/adapters/gradle/services/gradle-module-system-factory.d.ts.map +1 -0
- package/dist/adapters/gradle/services/gradle-module-system-factory.js +27 -0
- package/dist/adapters/gradle/services/gradle-version-update-strategy.d.ts +21 -0
- package/dist/adapters/gradle/services/gradle-version-update-strategy.d.ts.map +1 -0
- package/dist/adapters/gradle/services/gradle-version-update-strategy.js +36 -0
- package/dist/adapters/project-information.d.ts +58 -0
- package/dist/adapters/project-information.d.ts.map +1 -0
- package/dist/adapters/project-information.js +1 -0
- package/dist/changelog/index.d.ts +27 -0
- package/dist/changelog/index.d.ts.map +1 -0
- package/dist/changelog/index.js +204 -0
- package/dist/config/index.d.ts +122 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +115 -0
- package/dist/factories/adapter-identifier-registry.d.ts +12 -0
- package/dist/factories/adapter-identifier-registry.d.ts.map +1 -0
- package/dist/factories/adapter-identifier-registry.js +24 -0
- package/dist/factories/module-system-factory.d.ts +10 -0
- package/dist/factories/module-system-factory.d.ts.map +1 -0
- package/dist/factories/module-system-factory.js +18 -0
- package/dist/git/index.d.ts +253 -0
- package/dist/git/index.d.ts.map +1 -0
- package/dist/git/index.js +581 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/semver/index.d.ts +85 -0
- package/dist/semver/index.d.ts.map +1 -0
- package/dist/semver/index.js +176 -0
- package/dist/services/adapter-identifier-registry.d.ts +38 -0
- package/dist/services/adapter-identifier-registry.d.ts.map +1 -0
- package/dist/services/adapter-identifier-registry.js +59 -0
- package/dist/services/adapter-identifier.d.ts +31 -0
- package/dist/services/adapter-identifier.d.ts.map +1 -0
- package/dist/services/adapter-identifier.js +1 -0
- package/dist/services/adapter-metadata-provider.d.ts +51 -0
- package/dist/services/adapter-metadata-provider.d.ts.map +1 -0
- package/dist/services/adapter-metadata-provider.js +66 -0
- package/dist/services/changelog-generator.d.ts +13 -0
- package/dist/services/changelog-generator.d.ts.map +1 -0
- package/dist/services/changelog-generator.js +26 -0
- package/dist/services/commit-analyzer.d.ts +44 -0
- package/dist/services/commit-analyzer.d.ts.map +1 -0
- package/dist/services/commit-analyzer.js +86 -0
- package/dist/services/configuration-loader.d.ts +23 -0
- package/dist/services/configuration-loader.d.ts.map +1 -0
- package/dist/services/configuration-loader.js +79 -0
- package/dist/services/configuration-validator.d.ts +16 -0
- package/dist/services/configuration-validator.d.ts.map +1 -0
- package/dist/services/configuration-validator.js +24 -0
- package/dist/services/git-operations.d.ts +16 -0
- package/dist/services/git-operations.d.ts.map +1 -0
- package/dist/services/git-operations.js +89 -0
- package/dist/services/module-detector.d.ts +24 -0
- package/dist/services/module-detector.d.ts.map +1 -0
- package/dist/services/module-detector.js +1 -0
- package/dist/services/module-registry.d.ts +45 -0
- package/dist/services/module-registry.d.ts.map +1 -0
- package/dist/services/module-registry.js +57 -0
- package/dist/services/module-system-factory.d.ts +24 -0
- package/dist/services/module-system-factory.d.ts.map +1 -0
- package/dist/services/module-system-factory.js +1 -0
- package/dist/services/verse-runner.d.ts +45 -0
- package/dist/services/verse-runner.d.ts.map +1 -0
- package/dist/services/verse-runner.js +182 -0
- package/dist/services/version-applier.d.ts +26 -0
- package/dist/services/version-applier.d.ts.map +1 -0
- package/dist/services/version-applier.js +63 -0
- package/dist/services/version-bumper.d.ts +156 -0
- package/dist/services/version-bumper.d.ts.map +1 -0
- package/dist/services/version-bumper.js +291 -0
- package/dist/services/version-manager.d.ts +68 -0
- package/dist/services/version-manager.d.ts.map +1 -0
- package/dist/services/version-manager.js +94 -0
- package/dist/services/version-update-strategy.d.ts +18 -0
- package/dist/services/version-update-strategy.d.ts.map +1 -0
- package/dist/services/version-update-strategy.js +1 -0
- package/dist/utils/banner.d.ts +2 -0
- package/dist/utils/banner.d.ts.map +1 -0
- package/dist/utils/banner.js +8 -0
- package/dist/utils/commits.d.ts +12 -0
- package/dist/utils/commits.d.ts.map +1 -0
- package/dist/utils/commits.js +24 -0
- package/dist/utils/file.d.ts +7 -0
- package/dist/utils/file.d.ts.map +1 -0
- package/dist/utils/file.js +19 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +5 -0
- package/dist/utils/logger.d.ts +14 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +22 -0
- package/dist/utils/properties.d.ts +16 -0
- package/dist/utils/properties.d.ts.map +1 -0
- package/dist/utils/properties.js +62 -0
- package/dist/utils/versioning.d.ts +8 -0
- package/dist/utils/versioning.d.ts.map +1 -0
- package/dist/utils/versioning.js +17 -0
- 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
|
+
}
|