@common-stack/common-tools 8.2.4-alpha.7
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/LICENSE +34 -0
- package/README.md +186 -0
- package/bin/common-tools.js +26 -0
- package/bin/generate-resolutions.js +22 -0
- package/bin/sort-package-json.js +23 -0
- package/bin/update-dependencies.js +23 -0
- package/bin/update-dependency-version.js +22 -0
- package/lib/cli/generateResolutions.d.ts +25 -0
- package/lib/cli/generateResolutions.d.ts.map +1 -0
- package/lib/cli/generateResolutions.js +75 -0
- package/lib/cli/generateResolutions.js.map +1 -0
- package/lib/cli/sortPackageJson.d.ts +42 -0
- package/lib/cli/sortPackageJson.d.ts.map +1 -0
- package/lib/cli/sortPackageJson.js +163 -0
- package/lib/cli/sortPackageJson.js.map +1 -0
- package/lib/cli/updateDependencies.d.ts +27 -0
- package/lib/cli/updateDependencies.d.ts.map +1 -0
- package/lib/cli/updateDependencies.js +85 -0
- package/lib/cli/updateDependencies.js.map +1 -0
- package/lib/cli/updateDependencyVersion.d.ts +39 -0
- package/lib/cli/updateDependencyVersion.d.ts.map +1 -0
- package/lib/cli/updateDependencyVersion.js +170 -0
- package/lib/cli/updateDependencyVersion.js.map +1 -0
- package/lib/config/index.d.ts +6 -0
- package/lib/config/index.d.ts.map +1 -0
- package/lib/config/loader.d.ts +30 -0
- package/lib/config/loader.d.ts.map +1 -0
- package/lib/config/loader.js +109 -0
- package/lib/config/loader.js.map +1 -0
- package/lib/config/types.d.ts +82 -0
- package/lib/config/types.d.ts.map +1 -0
- package/lib/config/types.js +43 -0
- package/lib/config/types.js.map +1 -0
- package/lib/index.d.ts +376 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +11 -0
- package/lib/index.js.map +1 -0
- package/lib/utils/dependencies.d.ts +47 -0
- package/lib/utils/dependencies.d.ts.map +1 -0
- package/lib/utils/dependencies.js +96 -0
- package/lib/utils/dependencies.js.map +1 -0
- package/lib/utils/monorepo.d.ts +29 -0
- package/lib/utils/monorepo.d.ts.map +1 -0
- package/lib/utils/monorepo.js +104 -0
- package/lib/utils/monorepo.js.map +1 -0
- package/lib/utils/packageJson.d.ts +53 -0
- package/lib/utils/packageJson.d.ts.map +1 -0
- package/lib/utils/packageJson.js +76 -0
- package/lib/utils/packageJson.js.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI for updating dependencies from @common-stack packages
|
|
3
|
+
*
|
|
4
|
+
* Reads configuration from cdecode-config.json:
|
|
5
|
+
* - updateDependencies.packagesToCheck: Packages to check for updates
|
|
6
|
+
* - updateDependencies.packagePaths: Server package.json paths by category
|
|
7
|
+
*/
|
|
8
|
+
import { Command } from 'commander';
|
|
9
|
+
import { type DependencyUpdateConfig } from '../utils/dependencies.js';
|
|
10
|
+
export interface UpdateDependenciesOptions {
|
|
11
|
+
packages?: string[];
|
|
12
|
+
skipNcu?: boolean;
|
|
13
|
+
skipYarn?: boolean;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Creates the update-dependencies command
|
|
17
|
+
*/
|
|
18
|
+
export declare function createUpdateDependenciesCommand(): Command;
|
|
19
|
+
/**
|
|
20
|
+
* Runs the update dependencies CLI action
|
|
21
|
+
*/
|
|
22
|
+
export declare function runUpdateDependenciesCLIAction(rootDir: string, options: UpdateDependenciesOptions, configPackagePaths?: DependencyUpdateConfig['packagePaths']): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Standalone CLI entry point
|
|
25
|
+
*/
|
|
26
|
+
export declare function runUpdateDependenciesCLI(args?: string[]): Promise<void>;
|
|
27
|
+
//# sourceMappingURL=updateDependencies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateDependencies.d.ts","sourceRoot":"","sources":["../../src/cli/updateDependencies.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAGH,KAAK,sBAAsB,EAC9B,MAAM,0BAA0B,CAAC;AAGlC,MAAM,WAAW,yBAAyB;IACtC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,OAAO,CAuCzD;AAED;;GAEG;AACH,wBAAsB,8BAA8B,CAChD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,yBAAyB,EAClC,kBAAkB,CAAC,EAAE,sBAAsB,CAAC,cAAc,CAAC,GAC5D,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3F"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { DEFAULT_COMMON_STACK_PACKAGES, runUpdateDependenciesWorkflow } from '../utils/dependencies.js';
|
|
4
|
+
import { loadConfigWithDefaults, resolveConfigPaths } from '../config/loader.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* CLI for updating dependencies from @common-stack packages
|
|
8
|
+
*
|
|
9
|
+
* Reads configuration from cdecode-config.json:
|
|
10
|
+
* - updateDependencies.packagesToCheck: Packages to check for updates
|
|
11
|
+
* - updateDependencies.packagePaths: Server package.json paths by category
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Creates the update-dependencies command
|
|
15
|
+
*/
|
|
16
|
+
function createUpdateDependenciesCommand() {
|
|
17
|
+
const command = new Command('update-dependencies')
|
|
18
|
+
.description('Update dependencies from @common-stack packages (reads from cdecode-config.json)')
|
|
19
|
+
.option('-r, --root <path>', 'Repository root path (auto-detected from cdecode-config.json)')
|
|
20
|
+
.option('-p, --packages <list>', 'Packages to check (comma-separated, overrides cdecode-config.json)', (val) => val.split(',').map((p) => p.trim()))
|
|
21
|
+
.option('--skip-ncu', 'Skip npm-check-updates step', false)
|
|
22
|
+
.option('--skip-yarn', 'Skip yarn install step', false)
|
|
23
|
+
.action(async (options) => {
|
|
24
|
+
// Load config from cdecode-config.json
|
|
25
|
+
let repoRoot = options.root;
|
|
26
|
+
let configPackages;
|
|
27
|
+
let configPackagePaths;
|
|
28
|
+
try {
|
|
29
|
+
const { config, repoRoot: detectedRoot } = loadConfigWithDefaults(options.root);
|
|
30
|
+
const resolvedConfig = resolveConfigPaths(config, detectedRoot);
|
|
31
|
+
repoRoot = detectedRoot;
|
|
32
|
+
configPackages = resolvedConfig.updateDependencies?.packagesToCheck;
|
|
33
|
+
configPackagePaths = resolvedConfig.updateDependencies?.packagePaths;
|
|
34
|
+
console.log(`📄 Loaded configuration from cdecode-config.json`);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
if (!options.root) {
|
|
38
|
+
console.warn('⚠️ Could not find cdecode-config.json, using defaults');
|
|
39
|
+
repoRoot = process.cwd();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
await runUpdateDependenciesCLIAction(repoRoot, {
|
|
43
|
+
packages: options.packages || configPackages,
|
|
44
|
+
skipNcu: options.skipNcu,
|
|
45
|
+
skipYarn: options.skipYarn,
|
|
46
|
+
}, configPackagePaths);
|
|
47
|
+
});
|
|
48
|
+
return command;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Runs the update dependencies CLI action
|
|
52
|
+
*/
|
|
53
|
+
async function runUpdateDependenciesCLIAction(rootDir, options, configPackagePaths) {
|
|
54
|
+
console.log(`\n📁 Repo root: ${rootDir}`);
|
|
55
|
+
console.log('🔄 Starting dependency update process...\n');
|
|
56
|
+
const packagePaths = configPackagePaths || {
|
|
57
|
+
backend: [path.resolve(rootDir, 'servers/backend-server/package.json')],
|
|
58
|
+
frontend: [path.resolve(rootDir, 'servers/frontend-server/package.json')],
|
|
59
|
+
mobile: [path.resolve(rootDir, 'portable-devices/mobile/package.json')],
|
|
60
|
+
};
|
|
61
|
+
const packagesToCheck = options.packages || DEFAULT_COMMON_STACK_PACKAGES;
|
|
62
|
+
const config = {
|
|
63
|
+
rootDir,
|
|
64
|
+
packagePaths,
|
|
65
|
+
packagesToCheck,
|
|
66
|
+
};
|
|
67
|
+
try {
|
|
68
|
+
await runUpdateDependenciesWorkflow(config);
|
|
69
|
+
console.log('\n✅ Dependency update completed successfully!');
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
console.error('❌ Error:', error.message);
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Standalone CLI entry point
|
|
78
|
+
*/
|
|
79
|
+
async function runUpdateDependenciesCLI(args = process.argv) {
|
|
80
|
+
const program = createUpdateDependenciesCommand();
|
|
81
|
+
await program.parseAsync(args);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export { createUpdateDependenciesCommand, runUpdateDependenciesCLI, runUpdateDependenciesCLIAction };
|
|
85
|
+
//# sourceMappingURL=updateDependencies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateDependencies.js","sources":["../../src/cli/updateDependencies.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI for updating dependency versions across monorepo packages
|
|
3
|
+
*
|
|
4
|
+
* Reads configuration from cdecode-config.json:
|
|
5
|
+
* - updateDependencyVersion.roots: Root directories to scan
|
|
6
|
+
* - updateDependencyVersion.ignorePattern: Pattern to ignore
|
|
7
|
+
* - updateDependencyVersion.jsonSpacing: JSON indentation
|
|
8
|
+
* - updateDependencyVersion.addEndNewLine: Add newline at end
|
|
9
|
+
* - updateDependencyVersion.commitMessage: Git commit message
|
|
10
|
+
*
|
|
11
|
+
* This tool updates all package.json files to use consistent versions
|
|
12
|
+
* for internal monorepo packages and replaces link: references with actual versions.
|
|
13
|
+
*/
|
|
14
|
+
import { Command } from 'commander';
|
|
15
|
+
import { type UpdateDependencyVersionConfig } from '../config/index.js';
|
|
16
|
+
export interface UpdateDependencyVersionOptions {
|
|
17
|
+
commit?: boolean;
|
|
18
|
+
dryRun?: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Creates the update-dependency-version command
|
|
22
|
+
*/
|
|
23
|
+
export declare function createUpdateDependencyVersionCommand(): Command;
|
|
24
|
+
/**
|
|
25
|
+
* Updates all package.json files in the monorepo
|
|
26
|
+
*/
|
|
27
|
+
export declare function updateDependencyVersions(monorepoRoot: string, options?: {
|
|
28
|
+
dryRun?: boolean;
|
|
29
|
+
config?: UpdateDependencyVersionConfig;
|
|
30
|
+
}): Promise<string[]>;
|
|
31
|
+
/**
|
|
32
|
+
* Runs the update dependency version process
|
|
33
|
+
*/
|
|
34
|
+
export declare function runUpdateDependencyVersion(rootDir: string, options: UpdateDependencyVersionOptions, config?: UpdateDependencyVersionConfig): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Standalone CLI entry point
|
|
37
|
+
*/
|
|
38
|
+
export declare function runUpdateDependencyVersionCLI(args?: string[]): Promise<void>;
|
|
39
|
+
//# sourceMappingURL=updateDependencyVersion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateDependencyVersion.d.ts","sourceRoot":"","sources":["../../src/cli/updateDependencyVersion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,OAAO,EAA8C,KAAK,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAEpH,MAAM,WAAW,8BAA8B;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,oCAAoC,IAAI,OAAO,CA8B9D;AA4DD;;GAEG;AACH,wBAAsB,wBAAwB,CAC1C,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,6BAA6B,CAAA;CAAO,GAC3E,OAAO,CAAC,MAAM,EAAE,CAAC,CAgCnB;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC5C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,8BAA8B,EACvC,MAAM,CAAC,EAAE,6BAA6B,GACvC,OAAO,CAAC,IAAI,CAAC,CA8Bf;AAED;;GAEG;AACH,wBAAsB,6BAA6B,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhG"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { glob } from 'glob';
|
|
4
|
+
import { readPackageJsonSync, writePackageJsonSync } from '../utils/packageJson.js';
|
|
5
|
+
import { buildPackageMap } from '../utils/monorepo.js';
|
|
6
|
+
import { loadConfigWithDefaults } from '../config/loader.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* CLI for updating dependency versions across monorepo packages
|
|
10
|
+
*
|
|
11
|
+
* Reads configuration from cdecode-config.json:
|
|
12
|
+
* - updateDependencyVersion.roots: Root directories to scan
|
|
13
|
+
* - updateDependencyVersion.ignorePattern: Pattern to ignore
|
|
14
|
+
* - updateDependencyVersion.jsonSpacing: JSON indentation
|
|
15
|
+
* - updateDependencyVersion.addEndNewLine: Add newline at end
|
|
16
|
+
* - updateDependencyVersion.commitMessage: Git commit message
|
|
17
|
+
*
|
|
18
|
+
* This tool updates all package.json files to use consistent versions
|
|
19
|
+
* for internal monorepo packages and replaces link: references with actual versions.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Creates the update-dependency-version command
|
|
23
|
+
*/
|
|
24
|
+
function createUpdateDependencyVersionCommand() {
|
|
25
|
+
const command = new Command('update-dependency-version')
|
|
26
|
+
.description('Update dependency versions across monorepo packages (reads from cdecode-config.json)')
|
|
27
|
+
.option('-r, --root <path>', 'Repository root path (auto-detected from cdecode-config.json)')
|
|
28
|
+
.option('--commit', 'Commit changes after updating', false)
|
|
29
|
+
.option('--dry-run', 'Preview changes without writing', false)
|
|
30
|
+
.action(async (options) => {
|
|
31
|
+
// Load config from cdecode-config.json
|
|
32
|
+
let repoRoot = options.root;
|
|
33
|
+
let versionConfig;
|
|
34
|
+
try {
|
|
35
|
+
const { config, repoRoot: detectedRoot } = loadConfigWithDefaults(options.root);
|
|
36
|
+
repoRoot = detectedRoot;
|
|
37
|
+
versionConfig = config.updateDependencyVersion;
|
|
38
|
+
console.log(`📄 Loaded configuration from cdecode-config.json`);
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
if (!options.root) {
|
|
42
|
+
console.warn('⚠️ Could not find cdecode-config.json, using defaults');
|
|
43
|
+
repoRoot = process.cwd();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
await runUpdateDependencyVersion(repoRoot, {
|
|
47
|
+
commit: options.commit,
|
|
48
|
+
dryRun: options.dryRun,
|
|
49
|
+
}, versionConfig);
|
|
50
|
+
});
|
|
51
|
+
return command;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Finds all package.json files in the monorepo based on config
|
|
55
|
+
*/
|
|
56
|
+
async function findPackageJsonFiles(monorepoRoot, config) {
|
|
57
|
+
const roots = config?.roots || ['servers', 'portable-devices', 'packages', 'packages-modules'];
|
|
58
|
+
const ignorePattern = config?.ignorePattern || '**/node_modules/**';
|
|
59
|
+
const pattern = `${monorepoRoot}/+(${roots.join('|')})/**/package.json`;
|
|
60
|
+
return glob(pattern, {
|
|
61
|
+
ignore: [ignorePattern],
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Updates dependencies in a package.json to use correct versions
|
|
66
|
+
*/
|
|
67
|
+
function searchAndUpdate(dependencies, filePath, packageJson, packageMap) {
|
|
68
|
+
if (!dependencies)
|
|
69
|
+
return false;
|
|
70
|
+
let modified = false;
|
|
71
|
+
for (const key in dependencies) {
|
|
72
|
+
if (dependencies[key].startsWith('link:')) {
|
|
73
|
+
// Handle link: references
|
|
74
|
+
const relativeDepFolder = dependencies[key].split('link:')[1];
|
|
75
|
+
const dependencyFolder = path.join(path.dirname(filePath), relativeDepFolder);
|
|
76
|
+
try {
|
|
77
|
+
const packageJsonPath = path.join(dependencyFolder, 'package.json');
|
|
78
|
+
const depPackageJson = readPackageJsonSync(packageJsonPath);
|
|
79
|
+
if (depPackageJson.version && dependencies[key] !== depPackageJson.version) {
|
|
80
|
+
dependencies[key] = depPackageJson.version;
|
|
81
|
+
modified = true;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch (err) {
|
|
85
|
+
console.error(`Error updating ${key} in ${filePath}: ${err.message}`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
else if (packageMap.has(key)) {
|
|
89
|
+
// Handle internal monorepo packages
|
|
90
|
+
const version = packageMap.get(key).version;
|
|
91
|
+
if (dependencies[key] !== version) {
|
|
92
|
+
dependencies[key] = version;
|
|
93
|
+
modified = true;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return modified;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Updates all package.json files in the monorepo
|
|
101
|
+
*/
|
|
102
|
+
async function updateDependencyVersions(monorepoRoot, options = {}) {
|
|
103
|
+
const { dryRun = false, config } = options;
|
|
104
|
+
const packageMap = await buildPackageMap(monorepoRoot);
|
|
105
|
+
const packageJsonFiles = await findPackageJsonFiles(monorepoRoot, config);
|
|
106
|
+
const modifiedFiles = [];
|
|
107
|
+
for (const file of packageJsonFiles) {
|
|
108
|
+
if (file.includes('node_modules'))
|
|
109
|
+
continue;
|
|
110
|
+
try {
|
|
111
|
+
const packageJson = readPackageJsonSync(file);
|
|
112
|
+
let modified = false;
|
|
113
|
+
modified = searchAndUpdate(packageJson.dependencies, file, packageJson, packageMap) || modified;
|
|
114
|
+
modified = searchAndUpdate(packageJson.peerDependencies, file, packageJson, packageMap) || modified;
|
|
115
|
+
modified = searchAndUpdate(packageJson.devDependencies, file, packageJson, packageMap) || modified;
|
|
116
|
+
if (modified) {
|
|
117
|
+
if (!dryRun) {
|
|
118
|
+
writePackageJsonSync(file, packageJson, {
|
|
119
|
+
spacing: config?.jsonSpacing,
|
|
120
|
+
endNewline: config?.addEndNewLine,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
modifiedFiles.push(file);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
catch (err) {
|
|
127
|
+
console.error(`Unable to read file ${file}: ${err.message}`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return modifiedFiles;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Runs the update dependency version process
|
|
134
|
+
*/
|
|
135
|
+
async function runUpdateDependencyVersion(rootDir, options, config) {
|
|
136
|
+
const { dryRun = false, commit = false } = options;
|
|
137
|
+
const commitMessage = config?.commitMessage || 'Updated packages to use correct versions';
|
|
138
|
+
console.log(`\n📁 Repo root: ${rootDir}`);
|
|
139
|
+
if (dryRun) {
|
|
140
|
+
console.log('🔍 Dry run mode - no files will be modified\n');
|
|
141
|
+
}
|
|
142
|
+
try {
|
|
143
|
+
const modifiedFiles = await updateDependencyVersions(rootDir, { dryRun, config });
|
|
144
|
+
if (modifiedFiles.length === 0) {
|
|
145
|
+
console.log('\n✅ All package versions are already up to date!');
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
console.log(`\n📝 ${dryRun ? 'Would update' : 'Updated'} ${modifiedFiles.length} file(s):`);
|
|
149
|
+
modifiedFiles.forEach((f) => console.log(` - ${path.relative(rootDir, f)}`));
|
|
150
|
+
if (commit && !dryRun) {
|
|
151
|
+
console.log('\n📦 Use git to stage and commit the changes.');
|
|
152
|
+
console.log(` git add -A && git commit -m "${commitMessage}"`);
|
|
153
|
+
}
|
|
154
|
+
console.log('');
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
console.error('❌ Error:', error.message);
|
|
158
|
+
process.exit(1);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Standalone CLI entry point
|
|
163
|
+
*/
|
|
164
|
+
async function runUpdateDependencyVersionCLI(args = process.argv) {
|
|
165
|
+
const program = createUpdateDependencyVersionCommand();
|
|
166
|
+
await program.parseAsync(args);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
export { createUpdateDependencyVersionCommand, runUpdateDependencyVersion, runUpdateDependencyVersionCLI, updateDependencyVersions };
|
|
170
|
+
//# sourceMappingURL=updateDependencyVersion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateDependencyVersion.js","sources":["../../src/cli/updateDependencyVersion.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration loader for cdecode-config.json
|
|
3
|
+
*/
|
|
4
|
+
import { type CDecodeConfig } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Finds the cdecode-config.json file by walking up the directory tree
|
|
7
|
+
*/
|
|
8
|
+
export declare function findConfigFile(startDir?: string): string | null;
|
|
9
|
+
/**
|
|
10
|
+
* Loads and parses the cdecode-config.json file
|
|
11
|
+
*/
|
|
12
|
+
export declare function loadConfig(rootDir?: string): {
|
|
13
|
+
config: CDecodeConfig;
|
|
14
|
+
configPath: string;
|
|
15
|
+
repoRoot: string;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Loads config with defaults merged in
|
|
19
|
+
*/
|
|
20
|
+
export declare function loadConfigWithDefaults(rootDir?: string): {
|
|
21
|
+
config: CDecodeConfig;
|
|
22
|
+
configPath: string;
|
|
23
|
+
repoRoot: string;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Resolves relative paths in config to absolute paths
|
|
27
|
+
*/
|
|
28
|
+
export declare function resolveConfigPaths(config: CDecodeConfig, repoRoot: string): CDecodeConfig;
|
|
29
|
+
export { type CDecodeConfig } from './types.js';
|
|
30
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,KAAK,aAAa,EAAkB,MAAM,YAAY,CAAC;AAIhE;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAY9E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAoB5G;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CA8BxH;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,CAgCzF;AAED,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { DEFAULT_CONFIG } from './types.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Configuration loader for cdecode-config.json
|
|
7
|
+
*/
|
|
8
|
+
const CONFIG_FILENAME = 'cdecode-config.json';
|
|
9
|
+
/**
|
|
10
|
+
* Finds the cdecode-config.json file by walking up the directory tree
|
|
11
|
+
*/
|
|
12
|
+
function findConfigFile(startDir = process.cwd()) {
|
|
13
|
+
let currentDir = startDir;
|
|
14
|
+
while (currentDir !== path.dirname(currentDir)) {
|
|
15
|
+
const configPath = path.join(currentDir, CONFIG_FILENAME);
|
|
16
|
+
if (fs.existsSync(configPath)) {
|
|
17
|
+
return configPath;
|
|
18
|
+
}
|
|
19
|
+
currentDir = path.dirname(currentDir);
|
|
20
|
+
}
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Loads and parses the cdecode-config.json file
|
|
25
|
+
*/
|
|
26
|
+
function loadConfig(rootDir) {
|
|
27
|
+
let configPath;
|
|
28
|
+
if (rootDir) {
|
|
29
|
+
configPath = path.join(rootDir, CONFIG_FILENAME);
|
|
30
|
+
if (!fs.existsSync(configPath)) {
|
|
31
|
+
throw new Error(`Configuration file not found at ${configPath}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
configPath = findConfigFile();
|
|
36
|
+
if (!configPath) {
|
|
37
|
+
throw new Error(`Could not find ${CONFIG_FILENAME} in current directory or any parent directory`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const repoRoot = path.dirname(configPath);
|
|
41
|
+
const content = fs.readFileSync(configPath, 'utf-8');
|
|
42
|
+
const config = JSON.parse(content);
|
|
43
|
+
return { config, configPath, repoRoot };
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Loads config with defaults merged in
|
|
47
|
+
*/
|
|
48
|
+
function loadConfigWithDefaults(rootDir) {
|
|
49
|
+
const { config, configPath, repoRoot } = loadConfig(rootDir);
|
|
50
|
+
// Deep merge with defaults
|
|
51
|
+
const mergedConfig = {
|
|
52
|
+
...DEFAULT_CONFIG,
|
|
53
|
+
...config,
|
|
54
|
+
updateDependencies: {
|
|
55
|
+
...DEFAULT_CONFIG.updateDependencies,
|
|
56
|
+
...config.updateDependencies,
|
|
57
|
+
packagePaths: {
|
|
58
|
+
...DEFAULT_CONFIG.updateDependencies?.packagePaths,
|
|
59
|
+
...config.updateDependencies?.packagePaths,
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
updateDependencyVersion: {
|
|
63
|
+
...DEFAULT_CONFIG.updateDependencyVersion,
|
|
64
|
+
...config.updateDependencyVersion,
|
|
65
|
+
},
|
|
66
|
+
sortPackageJson: {
|
|
67
|
+
...DEFAULT_CONFIG.sortPackageJson,
|
|
68
|
+
...config.sortPackageJson,
|
|
69
|
+
},
|
|
70
|
+
projectPaths: {
|
|
71
|
+
...DEFAULT_CONFIG.projectPaths,
|
|
72
|
+
...config.projectPaths,
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
return { config: mergedConfig, configPath, repoRoot };
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Resolves relative paths in config to absolute paths
|
|
79
|
+
*/
|
|
80
|
+
function resolveConfigPaths(config, repoRoot) {
|
|
81
|
+
const resolved = { ...config };
|
|
82
|
+
// Resolve updateDependencies.packagePaths
|
|
83
|
+
if (resolved.updateDependencies?.packagePaths) {
|
|
84
|
+
const paths = resolved.updateDependencies.packagePaths;
|
|
85
|
+
resolved.updateDependencies = {
|
|
86
|
+
...resolved.updateDependencies,
|
|
87
|
+
packagePaths: {
|
|
88
|
+
backend: paths.backend?.map(p => path.resolve(repoRoot, p)),
|
|
89
|
+
frontend: paths.frontend?.map(p => path.resolve(repoRoot, p)),
|
|
90
|
+
mobile: paths.mobile?.map(p => path.resolve(repoRoot, p)),
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
// Resolve sortPackageJson.directories
|
|
95
|
+
if (resolved.sortPackageJson?.directories) {
|
|
96
|
+
resolved.sortPackageJson = {
|
|
97
|
+
...resolved.sortPackageJson,
|
|
98
|
+
directories: resolved.sortPackageJson.directories.map(d => d === '.' ? repoRoot : path.resolve(repoRoot, d)),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
// Resolve servers paths
|
|
102
|
+
if (resolved.servers) {
|
|
103
|
+
resolved.servers = resolved.servers.map(s => path.resolve(repoRoot, s));
|
|
104
|
+
}
|
|
105
|
+
return resolved;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export { findConfigFile, loadConfig, loadConfigWithDefaults, resolveConfigPaths };
|
|
109
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sources":["../../src/config/loader.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Central configuration types for cdecode-config.json
|
|
3
|
+
*
|
|
4
|
+
* This file defines the structure of the cdecode-config.json configuration file
|
|
5
|
+
* that drives all the common-tools utilities.
|
|
6
|
+
*/
|
|
7
|
+
export interface CDecodeConfig {
|
|
8
|
+
/** Server config.json paths for codegen */
|
|
9
|
+
servers?: string[];
|
|
10
|
+
/** Codegen configuration */
|
|
11
|
+
codegen?: CodegenConfig;
|
|
12
|
+
/** Update dependencies configuration */
|
|
13
|
+
updateDependencies?: UpdateDependenciesConfig;
|
|
14
|
+
/** Update dependency version configuration */
|
|
15
|
+
updateDependencyVersion?: UpdateDependencyVersionConfig;
|
|
16
|
+
/** Sort package.json configuration */
|
|
17
|
+
sortPackageJson?: SortPackageJsonConfig;
|
|
18
|
+
/** Deploy version update configuration */
|
|
19
|
+
deployVersionUpdate?: DeployVersionUpdateConfig;
|
|
20
|
+
/** Project paths configuration */
|
|
21
|
+
projectPaths?: ProjectPathsConfig;
|
|
22
|
+
/** Service schemas configuration */
|
|
23
|
+
serviceSchemas?: ServiceSchemasConfig;
|
|
24
|
+
}
|
|
25
|
+
export interface CodegenConfig {
|
|
26
|
+
outputFile?: string;
|
|
27
|
+
rootSchema?: string;
|
|
28
|
+
fullConfig?: Record<string, unknown>;
|
|
29
|
+
}
|
|
30
|
+
export interface UpdateDependenciesConfig {
|
|
31
|
+
/** Packages to check for updates */
|
|
32
|
+
packagesToCheck?: string[];
|
|
33
|
+
/** Package paths by category */
|
|
34
|
+
packagePaths?: {
|
|
35
|
+
backend?: string[];
|
|
36
|
+
frontend?: string[];
|
|
37
|
+
mobile?: string[];
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export interface UpdateDependencyVersionConfig {
|
|
41
|
+
/** Root directories to scan */
|
|
42
|
+
roots?: string[];
|
|
43
|
+
/** Pattern to ignore */
|
|
44
|
+
ignorePattern?: string;
|
|
45
|
+
/** JSON indentation spacing */
|
|
46
|
+
jsonSpacing?: number;
|
|
47
|
+
/** Add newline at end of files */
|
|
48
|
+
addEndNewLine?: boolean;
|
|
49
|
+
/** Git commit message */
|
|
50
|
+
commitMessage?: string;
|
|
51
|
+
}
|
|
52
|
+
export interface SortPackageJsonConfig {
|
|
53
|
+
/** Directories to process */
|
|
54
|
+
directories?: string[];
|
|
55
|
+
/** Skip node_modules directories */
|
|
56
|
+
skipNodeModules?: boolean;
|
|
57
|
+
}
|
|
58
|
+
export interface DeployVersionUpdateConfig {
|
|
59
|
+
lernaJsonPath?: string;
|
|
60
|
+
jenkinsfilePath?: string;
|
|
61
|
+
valuesDevYamlPath?: string;
|
|
62
|
+
valuesProdYamlPath?: string;
|
|
63
|
+
}
|
|
64
|
+
export interface ProjectPathsConfig {
|
|
65
|
+
packages?: string;
|
|
66
|
+
packagesModules?: string;
|
|
67
|
+
servers?: string;
|
|
68
|
+
portableDevices?: string;
|
|
69
|
+
}
|
|
70
|
+
export interface ServiceSchemasConfig {
|
|
71
|
+
servicesDir?: string;
|
|
72
|
+
outputFile?: string;
|
|
73
|
+
skipServices?: string[];
|
|
74
|
+
knownEnums?: string[];
|
|
75
|
+
constEnumSchemas?: string[];
|
|
76
|
+
graphqlSchemasPath?: string;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Default configuration values
|
|
80
|
+
*/
|
|
81
|
+
export declare const DEFAULT_CONFIG: Partial<CDecodeConfig>;
|
|
82
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,aAAa;IAC1B,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB,wCAAwC;IACxC,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IAE9C,8CAA8C;IAC9C,uBAAuB,CAAC,EAAE,6BAA6B,CAAC;IAExD,sCAAsC;IACtC,eAAe,CAAC,EAAE,qBAAqB,CAAC;IAExC,0CAA0C;IAC1C,mBAAmB,CAAC,EAAE,yBAAyB,CAAC;IAEhD,kCAAkC;IAClC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAElC,oCAAoC;IACpC,cAAc,CAAC,EAAE,oBAAoB,CAAC;CACzC;AAED,MAAM,WAAW,aAAa;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,wBAAwB;IACrC,oCAAoC;IACpC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,gCAAgC;IAChC,YAAY,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACL;AAED,MAAM,WAAW,6BAA6B;IAC1C,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,wBAAwB;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,yBAAyB;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IAClC,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,oCAAoC;IACpC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,yBAAyB;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,aAAa,CA8BjD,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Central configuration types for cdecode-config.json
|
|
3
|
+
*
|
|
4
|
+
* This file defines the structure of the cdecode-config.json configuration file
|
|
5
|
+
* that drives all the common-tools utilities.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Default configuration values
|
|
9
|
+
*/
|
|
10
|
+
const DEFAULT_CONFIG = {
|
|
11
|
+
updateDependencies: {
|
|
12
|
+
packagesToCheck: [
|
|
13
|
+
'@common-stack/server-stack',
|
|
14
|
+
'@common-stack/frontend-stack-react',
|
|
15
|
+
'@common-stack/mobile-stack-react',
|
|
16
|
+
],
|
|
17
|
+
packagePaths: {
|
|
18
|
+
backend: ['servers/backend-server/package.json'],
|
|
19
|
+
frontend: ['servers/frontend-server/package.json'],
|
|
20
|
+
mobile: ['portable-devices/mobile/package.json'],
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
updateDependencyVersion: {
|
|
24
|
+
roots: ['servers', 'portable-devices', 'packages', 'packages-modules'],
|
|
25
|
+
ignorePattern: '**/node_modules/**',
|
|
26
|
+
jsonSpacing: 4,
|
|
27
|
+
addEndNewLine: true,
|
|
28
|
+
commitMessage: 'Updated packages to use correct versions',
|
|
29
|
+
},
|
|
30
|
+
sortPackageJson: {
|
|
31
|
+
directories: ['.', 'packages', 'packages-modules', 'servers', 'portable-devices'],
|
|
32
|
+
skipNodeModules: true,
|
|
33
|
+
},
|
|
34
|
+
projectPaths: {
|
|
35
|
+
packages: 'packages',
|
|
36
|
+
packagesModules: 'packages-modules',
|
|
37
|
+
servers: 'servers',
|
|
38
|
+
portableDevices: 'portable-devices',
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export { DEFAULT_CONFIG };
|
|
43
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../src/config/types.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;AAKG;AAwFH;;AAEG;AACI,MAAM,cAAc,GAA2B;AAClD,IAAA,kBAAkB,EAAE;AAChB,QAAA,eAAe,EAAE;YACb,4BAA4B;YAC5B,oCAAoC;YACpC,kCAAkC;AACrC,SAAA;AACD,QAAA,YAAY,EAAE;YACV,OAAO,EAAE,CAAC,qCAAqC,CAAC;YAChD,QAAQ,EAAE,CAAC,sCAAsC,CAAC;YAClD,MAAM,EAAE,CAAC,sCAAsC,CAAC;AACnD,SAAA;AACJ,KAAA;AACD,IAAA,uBAAuB,EAAE;QACrB,KAAK,EAAE,CAAC,SAAS,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,CAAC;AACtE,QAAA,aAAa,EAAE,oBAAoB;AACnC,QAAA,WAAW,EAAE,CAAC;AACd,QAAA,aAAa,EAAE,IAAI;AACnB,QAAA,aAAa,EAAE,0CAA0C;AAC5D,KAAA;AACD,IAAA,eAAe,EAAE;QACb,WAAW,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,kBAAkB,CAAC;AACjF,QAAA,eAAe,EAAE,IAAI;AACxB,KAAA;AACD,IAAA,YAAY,EAAE;AACV,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,eAAe,EAAE,kBAAkB;AACnC,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,eAAe,EAAE,kBAAkB;AACtC,KAAA;;;;;"}
|