@versu/core 0.6.18 → 0.7.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 +3 -3
- package/dist/git/index.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/plugins/constants.d.ts +2 -0
- package/dist/plugins/constants.d.ts.map +1 -0
- package/dist/plugins/constants.js +6 -0
- package/dist/plugins/constants.js.map +1 -0
- package/dist/plugins/plugin-loader.d.ts +5 -10
- package/dist/plugins/plugin-loader.d.ts.map +1 -1
- package/dist/plugins/plugin-loader.js +9 -53
- package/dist/plugins/plugin-loader.js.map +1 -1
- package/dist/plugins/plugin-manager.d.ts +3 -0
- package/dist/plugins/plugin-manager.d.ts.map +1 -0
- package/dist/plugins/plugin-manager.js +22 -0
- package/dist/plugins/plugin-manager.js.map +1 -0
- package/dist/plugins/types.d.ts +14 -0
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/services/configuration-loader.d.ts +2 -2
- package/dist/services/configuration-loader.js +2 -2
- package/dist/services/configuration-validator.d.ts +1 -1
- package/dist/services/configuration-validator.js +1 -1
- package/dist/services/version-bumper.d.ts +1 -1
- package/dist/services/version-bumper.js +1 -1
- package/dist/services/versu-runner.d.ts +0 -1
- package/dist/services/versu-runner.d.ts.map +1 -1
- package/dist/services/versu-runner.js +3 -6
- package/dist/services/versu-runner.js.map +1 -1
- package/dist/utils/node.d.ts +7 -1
- package/dist/utils/node.d.ts.map +1 -1
- package/dist/utils/node.js +64 -1
- package/dist/utils/node.js.map +1 -1
- package/dist/utils/version.d.ts +1 -1
- package/dist/utils/version.d.ts.map +1 -1
- package/dist/utils/version.js +1 -1
- package/dist/utils/version.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
# @versu/core - Core Library
|
|
8
8
|
|
|
9
|
-
The core business logic powering
|
|
9
|
+
The core business logic powering Versu. This package is completely framework-agnostic and can be integrated into any TypeScript/JavaScript project, CI/CD system, or custom tooling.
|
|
10
10
|
|
|
11
11
|
## Installation
|
|
12
12
|
|
|
@@ -75,7 +75,7 @@ interface RunnerResult {
|
|
|
75
75
|
|
|
76
76
|
## Configuration
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
Versu core uses [cosmiconfig](https://github.com/davidtheclark/cosmiconfig) for configuration loading and [Zod](https://github.com/colinhacks/zod) for validation.
|
|
79
79
|
|
|
80
80
|
### Supported Configuration Files
|
|
81
81
|
|
|
@@ -124,7 +124,7 @@ VERSU core uses [cosmiconfig](https://github.com/davidtheclark/cosmiconfig) for
|
|
|
124
124
|
- `context.prependPlaceholder` - Placeholder string in changelog files where new entries are inserted
|
|
125
125
|
- `options` - Advanced changelog generation options (templates, grouping, sorting)
|
|
126
126
|
|
|
127
|
-
|
|
127
|
+
Versu uses [conventional-changelog-writer](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-writer) for changelog generation. You can pass any options supported by conventional-changelog-writer through the `options` field. For advanced customization with functions (like `transform`, `commitsGroupsSort`), use JavaScript configuration files (`.versurc.js` or `versu.config.js`).
|
|
128
128
|
|
|
129
129
|
## Adapters
|
|
130
130
|
|
package/dist/git/index.js
CHANGED
|
@@ -331,7 +331,7 @@ export function getModuleTagName(moduleName, version) {
|
|
|
331
331
|
* Parses a git tag name to extract module and version components.
|
|
332
332
|
*
|
|
333
333
|
* This internal utility function handles multiple tag naming conventions used in
|
|
334
|
-
*
|
|
334
|
+
* Versu and returns a structured object with extracted metadata. It supports:
|
|
335
335
|
* - **Module tags**: `moduleName@version` (monorepo convention)
|
|
336
336
|
* - **Version tags**: `v{version}` or `{version}` (single repo convention)
|
|
337
337
|
* - **Custom tags**: Returns empty object for unrecognized formats
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './config/index.js';
|
|
2
2
|
export type { VersuConfig, VersuConfigWithDefaults } from './config/types.js';
|
|
3
3
|
export type { PluginContract, AdapterPluginContract } from './plugins/types.js';
|
|
4
|
+
export { pluginManager } from './plugins/plugin-manager.js';
|
|
4
5
|
export { VersuRunner } from './services/versu-runner.js';
|
|
5
6
|
export type { RunnerOptions, RunnerResult } from './services/versu-runner.js';
|
|
6
7
|
export { VersionManager } from './services/version-manager.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,mBAAmB,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAG9E,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,mBAAmB,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAG9E,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAC3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,YAAY,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,YAAY,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAGnF,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAGvH,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,YAAY,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAG/E,cAAc,gBAAgB,CAAC;AAG/B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
// Core
|
|
1
|
+
// Core Versu exports - business logic without GitHub Actions dependency
|
|
2
2
|
// Configuration
|
|
3
3
|
export * from './config/index.js';
|
|
4
|
+
export { pluginManager } from './plugins/plugin-manager.js';
|
|
4
5
|
// Services
|
|
5
6
|
export { VersuRunner } from './services/versu-runner.js';
|
|
6
7
|
export { VersionManager } from './services/version-manager.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAExE,gBAAgB;AAChB,cAAc,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAExE,gBAAgB;AAChB,cAAc,mBAAmB,CAAC;AAKlC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,WAAW;AACX,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAOtF,YAAY;AACZ,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAGjF,gBAAgB;AAChB,cAAc,gBAAgB,CAAC;AAE/B,mBAAmB;AACnB,cAAc,mBAAmB,CAAC;AAElC,YAAY;AACZ,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/plugins/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,qEAIlB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/plugins/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,gBAAgB;IAChB,mBAAmB;IACnB,iBAAiB;CACT,CAAC"}
|
|
@@ -1,17 +1,10 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import { PluginContract } from "./types.js";
|
|
3
|
-
|
|
1
|
+
import { type ConfigurationValidator } from "../services/configuration-validator.js";
|
|
2
|
+
import { PluginContract, PluginLoader } from "./types.js";
|
|
3
|
+
declare class DefaultPluginLoader implements PluginLoader {
|
|
4
4
|
private readonly pluginValidator;
|
|
5
5
|
private readonly pluginsMap;
|
|
6
|
-
private localNodeModulesPath?;
|
|
7
|
-
private localNodeModulesPathInitialized;
|
|
8
|
-
private globalNodeModulesPath?;
|
|
9
|
-
private globalNodeModulesPathInitialized;
|
|
10
6
|
constructor(pluginValidator: ConfigurationValidator<PluginContract>);
|
|
11
7
|
get plugins(): PluginContract[];
|
|
12
|
-
private initializeNodeModulesPaths;
|
|
13
|
-
private getCandidateRoots;
|
|
14
|
-
private findPluginsInNodeModules;
|
|
15
8
|
private detect;
|
|
16
9
|
/**
|
|
17
10
|
* 2. Load ONLY the plugins specified in the whitelist
|
|
@@ -23,4 +16,6 @@ export declare class PluginLoader {
|
|
|
23
16
|
*/
|
|
24
17
|
private loadPluginFromPath;
|
|
25
18
|
}
|
|
19
|
+
export declare const pluginLoader: DefaultPluginLoader;
|
|
20
|
+
export {};
|
|
26
21
|
//# sourceMappingURL=plugin-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-loader.d.ts","sourceRoot":"","sources":["../../src/plugins/plugin-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"plugin-loader.d.ts","sourceRoot":"","sources":["../../src/plugins/plugin-loader.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,wCAAwC,CAAC;AAGhD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI1D,cAAM,mBAAoB,YAAW,YAAY;IAI7C,OAAO,CAAC,QAAQ,CAAC,eAAe;IAHlC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0C;gBAGlD,eAAe,EAAE,sBAAsB,CAAC,cAAc,CAAC;IAG1E,IAAI,OAAO,IAAI,cAAc,EAAE,CAE9B;YAEa,MAAM;IA2BpB;;;OAGG;IACU,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBvD;;OAEG;YACW,kBAAkB;CAyCjC;AAED,eAAO,MAAM,YAAY,qBAExB,CAAC"}
|
|
@@ -1,72 +1,27 @@
|
|
|
1
1
|
import * as path from "path";
|
|
2
2
|
import { exists } from "../utils/file.js";
|
|
3
3
|
import { logger } from "../utils/logger.js";
|
|
4
|
-
import {
|
|
4
|
+
import { ConfigurationValidatorFactory, } from "../services/configuration-validator.js";
|
|
5
|
+
import { findPackagesInNodeModules, getCandidateRoots } from "../utils/node.js";
|
|
5
6
|
import { getPluginPath } from "../utils/plugins.js";
|
|
6
|
-
import
|
|
7
|
-
|
|
7
|
+
import { pluginContractSchema } from "./schema.js";
|
|
8
|
+
import { PLUGIN_PATTERNS } from "./constants.js";
|
|
9
|
+
class DefaultPluginLoader {
|
|
8
10
|
pluginValidator;
|
|
9
11
|
pluginsMap = new Map();
|
|
10
|
-
localNodeModulesPath;
|
|
11
|
-
localNodeModulesPathInitialized = false;
|
|
12
|
-
globalNodeModulesPath;
|
|
13
|
-
globalNodeModulesPathInitialized = false;
|
|
14
12
|
constructor(pluginValidator) {
|
|
15
13
|
this.pluginValidator = pluginValidator;
|
|
16
14
|
}
|
|
17
15
|
get plugins() {
|
|
18
16
|
return Array.from(this.pluginsMap.values());
|
|
19
17
|
}
|
|
20
|
-
async initializeNodeModulesPaths() {
|
|
21
|
-
if (!this.localNodeModulesPathInitialized) {
|
|
22
|
-
this.localNodeModulesPath = await getNodeModulesPath(false);
|
|
23
|
-
this.localNodeModulesPathInitialized = true;
|
|
24
|
-
}
|
|
25
|
-
if (!this.globalNodeModulesPathInitialized) {
|
|
26
|
-
this.globalNodeModulesPath = await getNodeModulesPath(true);
|
|
27
|
-
this.globalNodeModulesPathInitialized = true;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
async getCandidateRoots() {
|
|
31
|
-
await this.initializeNodeModulesPaths();
|
|
32
|
-
const candidateRoots = [
|
|
33
|
-
this.localNodeModulesPath,
|
|
34
|
-
this.globalNodeModulesPath,
|
|
35
|
-
].filter((root) => !!root);
|
|
36
|
-
if (candidateRoots.length === 0) {
|
|
37
|
-
throw new Error("No node_modules paths available to search for plugins");
|
|
38
|
-
}
|
|
39
|
-
return candidateRoots;
|
|
40
|
-
}
|
|
41
|
-
async findPluginsInNodeModules(nodeModulesPath) {
|
|
42
|
-
logger.debug("Searching for plugins in node_modules", { nodeModulesPath });
|
|
43
|
-
const patterns = [
|
|
44
|
-
`${nodeModulesPath}/versu-plugin-*/package.json`,
|
|
45
|
-
`${nodeModulesPath}/@*/versu-plugin-*/package.json`,
|
|
46
|
-
`${nodeModulesPath}/@versu/plugin-*/package.json`,
|
|
47
|
-
];
|
|
48
|
-
const entries = await fg(patterns, { absolute: true });
|
|
49
|
-
const plugins = entries
|
|
50
|
-
.map((entry) => {
|
|
51
|
-
const parts = entry.split(path.sep);
|
|
52
|
-
const packageIndex = parts.findIndex((part) => part === "node_modules") + 1;
|
|
53
|
-
if (packageIndex > 0 && packageIndex < parts.length) {
|
|
54
|
-
return {
|
|
55
|
-
name: parts.slice(packageIndex, parts.length - 1).join(path.sep),
|
|
56
|
-
path: path.join(path.sep, ...parts.slice(0, parts.length - 1)),
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
})
|
|
60
|
-
.filter((plugin) => !!plugin);
|
|
61
|
-
return plugins;
|
|
62
|
-
}
|
|
63
18
|
async detect() {
|
|
64
19
|
logger.info("Loading all plugins from node_modules");
|
|
65
|
-
const candidateRoots = await
|
|
20
|
+
const candidateRoots = await getCandidateRoots();
|
|
66
21
|
const loadedPluginIds = new Set();
|
|
67
22
|
const loadedPluginPaths = new Map();
|
|
68
23
|
for (const root of candidateRoots) {
|
|
69
|
-
const plugins = await
|
|
24
|
+
const plugins = await findPackagesInNodeModules(root, PLUGIN_PATTERNS);
|
|
70
25
|
for (const plugin of plugins) {
|
|
71
26
|
if (loadedPluginIds.has(plugin.name)) {
|
|
72
27
|
logger.warning("Plugin already loaded, skipping duplicate", {
|
|
@@ -95,7 +50,7 @@ export class PluginLoader {
|
|
|
95
50
|
}
|
|
96
51
|
logger.info("Loading plugins", { count: pluginNames.length });
|
|
97
52
|
logger.debug("Plugin loading configuration", { pluginNames });
|
|
98
|
-
const candidateRoots = await
|
|
53
|
+
const candidateRoots = await getCandidateRoots();
|
|
99
54
|
for (const pluginName of pluginNames) {
|
|
100
55
|
const pluginPath = await getPluginPath(candidateRoots, pluginName);
|
|
101
56
|
if (pluginPath) {
|
|
@@ -146,4 +101,5 @@ export class PluginLoader {
|
|
|
146
101
|
return true;
|
|
147
102
|
}
|
|
148
103
|
}
|
|
104
|
+
export const pluginLoader = new DefaultPluginLoader(ConfigurationValidatorFactory.create(pluginContractSchema));
|
|
149
105
|
//# sourceMappingURL=plugin-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-loader.js","sourceRoot":"","sources":["../../src/plugins/plugin-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin-loader.js","sourceRoot":"","sources":["../../src/plugins/plugin-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-manager.d.ts","sourceRoot":"","sources":["../../src/plugins/plugin-manager.ts"],"names":[],"mappings":"AAOA,OAAO,EAAqB,aAAa,EAAE,MAAM,YAAY,CAAC;AA+B9D,eAAO,MAAM,aAAa,EAAE,aAA0C,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { findPackagesInNodeModules, getCandidateRoots, installPackage, isGlobalPath, uninstallPackage, } from "../utils/node.js";
|
|
2
|
+
import { PLUGIN_PATTERNS } from "./constants.js";
|
|
3
|
+
class DefaultPluginManager {
|
|
4
|
+
async list() {
|
|
5
|
+
const candidateRoots = await getCandidateRoots();
|
|
6
|
+
const foundPlugins = [];
|
|
7
|
+
for (const root of candidateRoots) {
|
|
8
|
+
const pluginsInRoot = await findPackagesInNodeModules(root, PLUGIN_PATTERNS);
|
|
9
|
+
const global = await isGlobalPath(root);
|
|
10
|
+
pluginsInRoot.forEach((plugin) => foundPlugins.push({ ...plugin, global }));
|
|
11
|
+
}
|
|
12
|
+
return foundPlugins;
|
|
13
|
+
}
|
|
14
|
+
async install(pluginName, global = false) {
|
|
15
|
+
installPackage(pluginName, global);
|
|
16
|
+
}
|
|
17
|
+
async uninstall(pluginName, global = false) {
|
|
18
|
+
uninstallPackage(pluginName, global);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export const pluginManager = new DefaultPluginManager();
|
|
22
|
+
//# sourceMappingURL=plugin-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-manager.js","sourceRoot":"","sources":["../../src/plugins/plugin-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,oBAAoB;IACxB,KAAK,CAAC,IAAI;QACR,MAAM,cAAc,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAEjD,MAAM,YAAY,GAAwB,EAAE,CAAC;QAC7C,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YAClC,MAAM,aAAa,GAAG,MAAM,yBAAyB,CACnD,IAAI,EACJ,eAAe,CAChB,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;YACxC,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAC/B,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,CACzC,CAAC;QACJ,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,SAAkB,KAAK;QACvD,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,UAAkB,EAAE,SAAkB,KAAK;QACzD,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,aAAa,GAAkB,IAAI,oBAAoB,EAAE,CAAC"}
|
package/dist/plugins/types.d.ts
CHANGED
|
@@ -13,4 +13,18 @@ export type AdapterPluginContract = {
|
|
|
13
13
|
adapterIdentifier: () => AdapterIdentifier;
|
|
14
14
|
moduleSystemFactory: (repoRoot: string) => ModuleSystemFactory;
|
|
15
15
|
};
|
|
16
|
+
export type PluginInformation = {
|
|
17
|
+
readonly name: string;
|
|
18
|
+
readonly path: string;
|
|
19
|
+
readonly global: boolean;
|
|
20
|
+
};
|
|
21
|
+
export interface PluginLoader {
|
|
22
|
+
get plugins(): PluginContract[];
|
|
23
|
+
load(pluginNames: string[]): Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
export interface PluginManager {
|
|
26
|
+
list(): Promise<PluginInformation[]>;
|
|
27
|
+
install(pluginName: string, global?: boolean): Promise<void>;
|
|
28
|
+
uninstall(pluginName: string, global?: boolean): Promise<void>;
|
|
29
|
+
}
|
|
16
30
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/plugins/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAE3E,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;IAC3C,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,mBAAmB,CAAC;CAChE,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/plugins/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAE3E,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;IAC3C,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,mBAAmB,CAAC;CAChE,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,IAAI,OAAO,IAAI,cAAc,EAAE,CAAC;IAChC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ConfigurationValidator } from "./configuration-validator.js";
|
|
2
2
|
import { VersuConfigWithDefaults } from "../config/types.js";
|
|
3
3
|
/**
|
|
4
|
-
* Loads and merges
|
|
4
|
+
* Loads and merges Versu configuration from various sources (.versu, versu.config.js, package.json).
|
|
5
5
|
* Uses cosmiconfig for auto-discovery and merges user config with defaults.
|
|
6
6
|
*/
|
|
7
7
|
export declare class ConfigurationLoader {
|
|
@@ -13,7 +13,7 @@ export declare class ConfigurationLoader {
|
|
|
13
13
|
*/
|
|
14
14
|
constructor(configurationValidator: ConfigurationValidator<VersuConfigWithDefaults>);
|
|
15
15
|
/**
|
|
16
|
-
* Loads and validates the
|
|
16
|
+
* Loads and validates the Versu configuration.
|
|
17
17
|
* @param repoRoot - Absolute path to the repository root directory
|
|
18
18
|
* @returns A promise that resolves to the fully merged and validated configuration
|
|
19
19
|
* @throws {Error} If configuration loading or validation fails
|
|
@@ -3,7 +3,7 @@ import { cosmiconfig } from "cosmiconfig";
|
|
|
3
3
|
import deepmerge from "deepmerge";
|
|
4
4
|
import { DEFAULT_CONFIG } from "../config/defaults.js";
|
|
5
5
|
/**
|
|
6
|
-
* Loads and merges
|
|
6
|
+
* Loads and merges Versu configuration from various sources (.versu, versu.config.js, package.json).
|
|
7
7
|
* Uses cosmiconfig for auto-discovery and merges user config with defaults.
|
|
8
8
|
*/
|
|
9
9
|
export class ConfigurationLoader {
|
|
@@ -19,7 +19,7 @@ export class ConfigurationLoader {
|
|
|
19
19
|
this.explorer = cosmiconfig("versu", { searchStrategy: "global" });
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
* Loads and validates the
|
|
22
|
+
* Loads and validates the Versu configuration.
|
|
23
23
|
* @param repoRoot - Absolute path to the repository root directory
|
|
24
24
|
* @returns A promise that resolves to the fully merged and validated configuration
|
|
25
25
|
* @throws {Error} If configuration loading or validation fails
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import zod from "zod";
|
|
2
2
|
/**
|
|
3
|
-
* Validates
|
|
3
|
+
* Validates Versu configuration against Zod schema for type safety and correctness.
|
|
4
4
|
* Ensures all configuration values conform to expected types and constraints,
|
|
5
5
|
* providing detailed error messages for any validation failures.
|
|
6
6
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Validates
|
|
2
|
+
* Validates Versu configuration against Zod schema for type safety and correctness.
|
|
3
3
|
* Ensures all configuration values conform to expected types and constraints,
|
|
4
4
|
* providing detailed error messages for any validation failures.
|
|
5
5
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versu-runner.d.ts","sourceRoot":"","sources":["../../src/services/versu-runner.ts"],"names":[],"mappings":"AASA,OAAO,EAGL,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"versu-runner.d.ts","sourceRoot":"","sources":["../../src/services/versu-runner.ts"],"names":[],"mappings":"AASA,OAAO,EAGL,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAS5D,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACnD,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;CACnC,CAAC;AAEF,qBAAa,WAAW;IACtB,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,OAAO,CAAgB;IAG/B,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,kBAAkB,CAAsB;IAChD,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,yBAAyB,CAA6B;IAC9D,OAAO,CAAC,uBAAuB,CAA2B;IAC1D,OAAO,CAAC,eAAe,CAAU;gBAErB,OAAO,EAAE,aAAa;IAclC,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,eAAe;IA2BjB,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC;YAYpB,iBAAiB;YAKjB,4BAA4B;YAwB5B,gCAAgC;YAwBhC,kCAAkC;YAuDlC,kBAAkB;YAsBlB,oBAAoB;YAwBpB,KAAK;CAwEpB"}
|
|
@@ -14,8 +14,7 @@ import { createAdapterIdentifierRegistry } from "../factories/adapter-identifier
|
|
|
14
14
|
import { ConfigurationValidatorFactory } from "./configuration-validator.js";
|
|
15
15
|
import { banner } from "../utils/banner.js";
|
|
16
16
|
import path from "path";
|
|
17
|
-
import {
|
|
18
|
-
import { pluginContractSchema } from "../plugins/schema.js";
|
|
17
|
+
import { pluginLoader } from "../plugins/plugin-loader.js";
|
|
19
18
|
import { configSchemaWithDefaults } from "../config/schema.js";
|
|
20
19
|
export class VersuRunner {
|
|
21
20
|
moduleSystemFactory; // Will be initialized in run()
|
|
@@ -33,7 +32,6 @@ export class VersuRunner {
|
|
|
33
32
|
gitOperations; // Will be initialized in run()
|
|
34
33
|
adapterIdentifierRegistry;
|
|
35
34
|
adapterMetadataProvider;
|
|
36
|
-
pluginLoader; // Will be initialized in run()
|
|
37
35
|
configDirectory; // Will be initialized in run()
|
|
38
36
|
constructor(options) {
|
|
39
37
|
this.options = {
|
|
@@ -107,9 +105,8 @@ export class VersuRunner {
|
|
|
107
105
|
this.config = await this.configurationLoader.load(this.configDirectory);
|
|
108
106
|
}
|
|
109
107
|
async loadPluginsAndResolveAdapter() {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
const plugins = this.pluginLoader.plugins;
|
|
108
|
+
await pluginLoader.load(this.config.plugins);
|
|
109
|
+
const plugins = pluginLoader.plugins;
|
|
113
110
|
this.adapterIdentifierRegistry = createAdapterIdentifierRegistry(plugins);
|
|
114
111
|
this.adapterMetadataProvider = new AdapterMetadataProvider(this.adapterIdentifierRegistry, {
|
|
115
112
|
repoRoot: this.options.repoRoot,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versu-runner.js","sourceRoot":"","sources":["../../src/services/versu-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAuB,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAwB,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EACL,cAAc,GAGf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAwB,MAAM,qBAAqB,CAAC;AAE1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EAAE,+BAA+B,EAAE,MAAM,6CAA6C,CAAC;AAE9F,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"versu-runner.js","sourceRoot":"","sources":["../../src/services/versu-runner.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/node.d.ts
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
-
export declare function getNodeModulesPath(global: boolean): Promise<string | undefined>;
|
|
2
1
|
export declare function installPackage(packageName: string, global: boolean): Promise<void>;
|
|
2
|
+
export declare function uninstallPackage(packageName: string, global: boolean): Promise<void>;
|
|
3
|
+
export declare function findPackagesInNodeModules(nodeModulesPath: string, patterns: readonly string[]): Promise<{
|
|
4
|
+
name: string;
|
|
5
|
+
path: string;
|
|
6
|
+
}[]>;
|
|
7
|
+
export declare function getCandidateRoots(): Promise<string[]>;
|
|
8
|
+
export declare function isGlobalPath(path: string): Promise<boolean>;
|
|
3
9
|
//# sourceMappingURL=node.d.ts.map
|
package/dist/utils/node.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/utils/node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/utils/node.ts"],"names":[],"mappings":"AA6BA,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAsB,yBAAyB,CAC7C,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAqB3C;AAkBD,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAY3D;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGjE"}
|
package/dist/utils/node.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { execa } from "execa";
|
|
2
2
|
import { logger } from "./logger.js";
|
|
3
3
|
import { exists } from "./file.js";
|
|
4
|
-
|
|
4
|
+
import fg from "fast-glob";
|
|
5
|
+
import * as path from "path";
|
|
6
|
+
async function getNodeModulesPath(global) {
|
|
5
7
|
logger.debug("Determining node_modules path", { global });
|
|
6
8
|
const args = ["root"];
|
|
7
9
|
if (global) {
|
|
@@ -34,4 +36,65 @@ export async function installPackage(packageName, global) {
|
|
|
34
36
|
throw error;
|
|
35
37
|
}
|
|
36
38
|
}
|
|
39
|
+
export async function uninstallPackage(packageName, global) {
|
|
40
|
+
logger.info("Uninstalling package", { packageName, global });
|
|
41
|
+
const args = ["uninstall", packageName];
|
|
42
|
+
if (global) {
|
|
43
|
+
args.push("-g");
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
await execa("npm", args, {
|
|
47
|
+
stdio: "inherit",
|
|
48
|
+
});
|
|
49
|
+
logger.info("Package uninstalled successfully", { packageName, global });
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
logger.error("Failed to uninstall package", { packageName, global, error });
|
|
53
|
+
throw error;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
export async function findPackagesInNodeModules(nodeModulesPath, patterns) {
|
|
57
|
+
logger.debug("Searching for packages in node_modules", { nodeModulesPath });
|
|
58
|
+
const globPatterns = patterns.map((pattern) => `${nodeModulesPath}/${pattern}/package.json`);
|
|
59
|
+
const entries = await fg(globPatterns, { absolute: true });
|
|
60
|
+
const packages = entries
|
|
61
|
+
.map((entry) => {
|
|
62
|
+
const parts = entry.split(path.sep);
|
|
63
|
+
const packageIndex = parts.findIndex((part) => part === "node_modules") + 1;
|
|
64
|
+
if (packageIndex > 0 && packageIndex < parts.length) {
|
|
65
|
+
return {
|
|
66
|
+
name: parts.slice(packageIndex, parts.length - 1).join(path.sep),
|
|
67
|
+
path: path.join(path.sep, ...parts.slice(0, parts.length - 1)),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
})
|
|
71
|
+
.filter((pkg) => !!pkg);
|
|
72
|
+
return packages;
|
|
73
|
+
}
|
|
74
|
+
let localNodeModulesPathInitialized = false;
|
|
75
|
+
let globalNodeModulesPathInitialized = false;
|
|
76
|
+
let localNodeModulesPath;
|
|
77
|
+
let globalNodeModulesPath;
|
|
78
|
+
async function initializeNodeModulesPaths() {
|
|
79
|
+
if (!localNodeModulesPathInitialized) {
|
|
80
|
+
localNodeModulesPath = await getNodeModulesPath(false);
|
|
81
|
+
localNodeModulesPathInitialized = true;
|
|
82
|
+
}
|
|
83
|
+
if (!globalNodeModulesPathInitialized) {
|
|
84
|
+
globalNodeModulesPath = await getNodeModulesPath(true);
|
|
85
|
+
globalNodeModulesPathInitialized = true;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
export async function getCandidateRoots() {
|
|
89
|
+
await initializeNodeModulesPaths();
|
|
90
|
+
const candidateRoots = [localNodeModulesPath, globalNodeModulesPath].filter((root) => !!root);
|
|
91
|
+
if (candidateRoots.length === 0) {
|
|
92
|
+
throw new Error("No node_modules paths available to search for plugins");
|
|
93
|
+
}
|
|
94
|
+
return candidateRoots;
|
|
95
|
+
}
|
|
96
|
+
export async function isGlobalPath(path) {
|
|
97
|
+
await initializeNodeModulesPaths();
|
|
98
|
+
return globalNodeModulesPath == path;
|
|
99
|
+
}
|
|
37
100
|
//# sourceMappingURL=node.js.map
|
package/dist/utils/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/utils/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/utils/node.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,UAAU,CAAC;AAC/B,eAAO,MAAM,YAAY,gBAAgB,CAAC"}
|
package/dist/utils/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,sDAAsD;AACtD,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,sDAAsD;AACtD,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAC/B,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC"}
|