@git.zone/cli 1.15.5 → 1.16.1
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/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/gitzone.cli.js +26 -2
- package/dist_ts/gitzone.logging.d.ts +3 -0
- package/dist_ts/gitzone.logging.js +20 -2
- package/dist_ts/mod_format/classes.baseformatter.d.ts +21 -0
- package/dist_ts/mod_format/classes.baseformatter.js +73 -0
- package/dist_ts/mod_format/classes.changecache.d.ts +25 -0
- package/dist_ts/mod_format/classes.changecache.js +105 -0
- package/dist_ts/mod_format/classes.dependency-analyzer.d.ts +13 -0
- package/dist_ts/mod_format/classes.dependency-analyzer.js +87 -0
- package/dist_ts/mod_format/classes.diffreporter.d.ts +13 -0
- package/dist_ts/mod_format/classes.diffreporter.js +94 -0
- package/dist_ts/mod_format/classes.formatcontext.d.ts +19 -0
- package/dist_ts/mod_format/classes.formatcontext.js +51 -0
- package/dist_ts/mod_format/classes.formatplanner.d.ts +13 -0
- package/dist_ts/mod_format/classes.formatplanner.js +164 -0
- package/dist_ts/mod_format/classes.formatstats.d.ts +40 -0
- package/dist_ts/mod_format/classes.formatstats.js +161 -0
- package/dist_ts/mod_format/classes.rollbackmanager.d.ts +21 -0
- package/dist_ts/mod_format/classes.rollbackmanager.js +170 -0
- package/dist_ts/mod_format/format.copy.d.ts +22 -0
- package/dist_ts/mod_format/format.copy.js +66 -2
- package/dist_ts/mod_format/format.packagejson.js +48 -2
- package/dist_ts/mod_format/formatters/cleanup.formatter.d.ts +7 -0
- package/dist_ts/mod_format/formatters/cleanup.formatter.js +33 -0
- package/dist_ts/mod_format/formatters/copy.formatter.d.ts +4 -0
- package/dist_ts/mod_format/formatters/copy.formatter.js +8 -0
- package/dist_ts/mod_format/formatters/gitignore.formatter.d.ts +4 -0
- package/dist_ts/mod_format/formatters/gitignore.formatter.js +8 -0
- package/dist_ts/mod_format/formatters/legacy.formatter.d.ts +11 -0
- package/dist_ts/mod_format/formatters/legacy.formatter.js +29 -0
- package/dist_ts/mod_format/formatters/license.formatter.d.ts +4 -0
- package/dist_ts/mod_format/formatters/license.formatter.js +8 -0
- package/dist_ts/mod_format/formatters/npmextra.formatter.d.ts +4 -0
- package/dist_ts/mod_format/formatters/npmextra.formatter.js +8 -0
- package/dist_ts/mod_format/formatters/packagejson.formatter.d.ts +4 -0
- package/dist_ts/mod_format/formatters/packagejson.formatter.js +8 -0
- package/dist_ts/mod_format/formatters/prettier.formatter.d.ts +9 -0
- package/dist_ts/mod_format/formatters/prettier.formatter.js +111 -0
- package/dist_ts/mod_format/formatters/readme.formatter.d.ts +7 -0
- package/dist_ts/mod_format/formatters/readme.formatter.js +19 -0
- package/dist_ts/mod_format/formatters/templates.formatter.d.ts +4 -0
- package/dist_ts/mod_format/formatters/templates.formatter.js +8 -0
- package/dist_ts/mod_format/formatters/tsconfig.formatter.d.ts +4 -0
- package/dist_ts/mod_format/formatters/tsconfig.formatter.js +8 -0
- package/dist_ts/mod_format/index.d.ts +14 -1
- package/dist_ts/mod_format/index.js +202 -28
- package/dist_ts/mod_format/interfaces.format.d.ts +43 -0
- package/dist_ts/mod_format/interfaces.format.js +2 -0
- package/dist_ts/mod_format/mod.plugins.d.ts +5 -1
- package/dist_ts/mod_format/mod.plugins.js +6 -2
- package/package.json +2 -1
- package/readme.hints.md +187 -0
- package/readme.plan.md +170 -0
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/gitzone.cli.ts +29 -1
- package/ts/gitzone.logging.ts +23 -1
- package/ts/mod_format/classes.baseformatter.ts +93 -0
- package/ts/mod_format/classes.changecache.ts +144 -0
- package/ts/mod_format/classes.dependency-analyzer.ts +107 -0
- package/ts/mod_format/classes.diffreporter.ts +108 -0
- package/ts/mod_format/classes.formatcontext.ts +65 -0
- package/ts/mod_format/classes.formatplanner.ts +184 -0
- package/ts/mod_format/classes.formatstats.ts +209 -0
- package/ts/mod_format/classes.rollbackmanager.ts +218 -0
- package/ts/mod_format/format.copy.ts +77 -1
- package/ts/mod_format/format.packagejson.ts +50 -1
- package/ts/mod_format/formatters/cleanup.formatter.ts +39 -0
- package/ts/mod_format/formatters/copy.formatter.ts +8 -0
- package/ts/mod_format/formatters/gitignore.formatter.ts +8 -0
- package/ts/mod_format/formatters/legacy.formatter.ts +36 -0
- package/ts/mod_format/formatters/license.formatter.ts +8 -0
- package/ts/mod_format/formatters/npmextra.formatter.ts +8 -0
- package/ts/mod_format/formatters/packagejson.formatter.ts +8 -0
- package/ts/mod_format/formatters/prettier.formatter.ts +125 -0
- package/ts/mod_format/formatters/readme.formatter.ts +22 -0
- package/ts/mod_format/formatters/templates.formatter.ts +8 -0
- package/ts/mod_format/formatters/tsconfig.formatter.ts +8 -0
- package/ts/mod_format/index.ts +241 -33
- package/ts/mod_format/interfaces.format.ts +45 -0
- package/ts/mod_format/mod.plugins.ts +8 -0
|
@@ -1,5 +1,69 @@
|
|
|
1
|
-
import * as plugins from '
|
|
1
|
+
import * as plugins from './mod.plugins.js';
|
|
2
|
+
import { logger } from '../gitzone.logging.js';
|
|
2
3
|
export const run = async (projectArg) => {
|
|
3
4
|
const gitzoneConfig = await projectArg.gitzoneConfig;
|
|
5
|
+
// Get copy configuration from npmextra.json
|
|
6
|
+
const npmextraConfig = new plugins.npmextra.Npmextra();
|
|
7
|
+
const copyConfig = npmextraConfig.dataFor('gitzone.format.copy', {
|
|
8
|
+
patterns: []
|
|
9
|
+
});
|
|
10
|
+
if (!copyConfig.patterns || copyConfig.patterns.length === 0) {
|
|
11
|
+
logger.log('info', 'No copy patterns configured in npmextra.json');
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
for (const pattern of copyConfig.patterns) {
|
|
15
|
+
if (!pattern.from || !pattern.to) {
|
|
16
|
+
logger.log('warn', 'Invalid copy pattern - missing "from" or "to" field');
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
try {
|
|
20
|
+
// Handle glob patterns
|
|
21
|
+
const files = await plugins.smartfile.fs.listFileTree('.', pattern.from);
|
|
22
|
+
for (const file of files) {
|
|
23
|
+
const sourcePath = file;
|
|
24
|
+
let destPath = pattern.to;
|
|
25
|
+
// If destination is a directory, preserve filename
|
|
26
|
+
if (pattern.to.endsWith('/')) {
|
|
27
|
+
const filename = plugins.path.basename(file);
|
|
28
|
+
destPath = plugins.path.join(pattern.to, filename);
|
|
29
|
+
}
|
|
30
|
+
// Handle template variables in destination path
|
|
31
|
+
if (pattern.preservePath) {
|
|
32
|
+
const relativePath = plugins.path.relative(plugins.path.dirname(pattern.from.replace(/\*/g, '')), file);
|
|
33
|
+
destPath = plugins.path.join(pattern.to, relativePath);
|
|
34
|
+
}
|
|
35
|
+
// Ensure destination directory exists
|
|
36
|
+
await plugins.smartfile.fs.ensureDir(plugins.path.dirname(destPath));
|
|
37
|
+
// Copy file
|
|
38
|
+
await plugins.smartfile.fs.copy(sourcePath, destPath);
|
|
39
|
+
logger.log('info', `Copied ${sourcePath} to ${destPath}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
logger.log('error', `Failed to copy pattern ${pattern.from}: ${error.message}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
4
46
|
};
|
|
5
|
-
|
|
47
|
+
/**
|
|
48
|
+
* Example npmextra.json configuration:
|
|
49
|
+
* {
|
|
50
|
+
* "gitzone": {
|
|
51
|
+
* "format": {
|
|
52
|
+
* "copy": {
|
|
53
|
+
* "patterns": [
|
|
54
|
+
* {
|
|
55
|
+
* "from": "src/assets/*",
|
|
56
|
+
* "to": "dist/assets/",
|
|
57
|
+
* "preservePath": true
|
|
58
|
+
* },
|
|
59
|
+
* {
|
|
60
|
+
* "from": "config/*.json",
|
|
61
|
+
* "to": "dist/"
|
|
62
|
+
* }
|
|
63
|
+
* ]
|
|
64
|
+
* }
|
|
65
|
+
* }
|
|
66
|
+
* }
|
|
67
|
+
* }
|
|
68
|
+
*/
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmNvcHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfZm9ybWF0L2Zvcm1hdC5jb3B5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsVUFBbUIsRUFBRSxFQUFFO0lBQy9DLE1BQU0sYUFBYSxHQUFHLE1BQU0sVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUVyRCw0Q0FBNEM7SUFDNUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3ZELE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQU0scUJBQXFCLEVBQUU7UUFDcEUsUUFBUSxFQUFFLEVBQUU7S0FDYixDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM3RCxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSw4Q0FBOEMsQ0FBQyxDQUFDO1FBQ25FLE9BQU87SUFDVCxDQUFDO0lBRUQsS0FBSyxNQUFNLE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDakMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUscURBQXFELENBQUMsQ0FBQztZQUMxRSxTQUFTO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILHVCQUF1QjtZQUN2QixNQUFNLEtBQUssR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXpFLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ3pCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQztnQkFDeEIsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFFMUIsbURBQW1EO2dCQUNuRCxJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQzdCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUM3QyxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDckQsQ0FBQztnQkFFRCxnREFBZ0Q7Z0JBQ2hELElBQUksT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUN6QixNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FDeEMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ3JELElBQUksQ0FDTCxDQUFDO29CQUNGLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDO2dCQUN6RCxDQUFDO2dCQUVELHNDQUFzQztnQkFDdEMsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFFckUsWUFBWTtnQkFDWixNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ3RELE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFVBQVUsVUFBVSxPQUFPLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDNUQsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsMEJBQTBCLE9BQU8sQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbEYsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHIn0=
|
|
@@ -6,7 +6,53 @@ import { logger } from '../gitzone.logging.js';
|
|
|
6
6
|
/**
|
|
7
7
|
* ensures a certain dependency
|
|
8
8
|
*/
|
|
9
|
-
const ensureDependency = async (packageJsonObjectArg, position, constraint, dependencyArg) => {
|
|
9
|
+
const ensureDependency = async (packageJsonObjectArg, position, constraint, dependencyArg) => {
|
|
10
|
+
const [packageName, version] = dependencyArg.includes('@')
|
|
11
|
+
? dependencyArg.split('@').filter(Boolean)
|
|
12
|
+
: [dependencyArg, 'latest'];
|
|
13
|
+
const targetSections = [];
|
|
14
|
+
switch (position) {
|
|
15
|
+
case 'dep':
|
|
16
|
+
targetSections.push('dependencies');
|
|
17
|
+
break;
|
|
18
|
+
case 'devDep':
|
|
19
|
+
targetSections.push('devDependencies');
|
|
20
|
+
break;
|
|
21
|
+
case 'everywhere':
|
|
22
|
+
targetSections.push('dependencies', 'devDependencies');
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
for (const section of targetSections) {
|
|
26
|
+
if (!packageJsonObjectArg[section]) {
|
|
27
|
+
packageJsonObjectArg[section] = {};
|
|
28
|
+
}
|
|
29
|
+
switch (constraint) {
|
|
30
|
+
case 'exclude':
|
|
31
|
+
delete packageJsonObjectArg[section][packageName];
|
|
32
|
+
break;
|
|
33
|
+
case 'include':
|
|
34
|
+
if (!packageJsonObjectArg[section][packageName]) {
|
|
35
|
+
packageJsonObjectArg[section][packageName] = version === 'latest' ? '^1.0.0' : version;
|
|
36
|
+
}
|
|
37
|
+
break;
|
|
38
|
+
case 'latest':
|
|
39
|
+
// Fetch latest version from npm
|
|
40
|
+
try {
|
|
41
|
+
const registry = new plugins.smartnpm.NpmRegistry();
|
|
42
|
+
const packageInfo = await registry.getPackageInfo(packageName);
|
|
43
|
+
const latestVersion = packageInfo['dist-tags'].latest;
|
|
44
|
+
packageJsonObjectArg[section][packageName] = `^${latestVersion}`;
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
logger.log('warn', `Could not fetch latest version for ${packageName}, using existing or default`);
|
|
48
|
+
if (!packageJsonObjectArg[section][packageName]) {
|
|
49
|
+
packageJsonObjectArg[section][packageName] = version === 'latest' ? '^1.0.0' : version;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
10
56
|
export const run = async (projectArg) => {
|
|
11
57
|
const formatStreamWrapper = new plugins.smartstream.StreamWrapper([
|
|
12
58
|
plugins.smartgulp.src([`package.json`]),
|
|
@@ -89,4 +135,4 @@ export const run = async (projectArg) => {
|
|
|
89
135
|
console.log(error);
|
|
90
136
|
});
|
|
91
137
|
};
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LnBhY2thZ2Vqc29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbW9kX2Zvcm1hdC9mb3JtYXQucGFja2FnZWpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEtBQUssWUFBWSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFNLGdCQUFnQixHQUFHLEtBQUssRUFDNUIsb0JBQXlCLEVBQ3pCLFFBQXlDLEVBQ3pDLFVBQTRDLEVBQzVDLGFBQXFCLEVBQ3JCLEVBQUU7SUFDRixNQUFNLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1FBQ3hELENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRTlCLE1BQU0sY0FBYyxHQUFhLEVBQUUsQ0FBQztJQUVwQyxRQUFRLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLEtBQUssS0FBSztZQUNSLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDcEMsTUFBTTtRQUNSLEtBQUssUUFBUTtZQUNYLGNBQWMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUN2QyxNQUFNO1FBQ1IsS0FBSyxZQUFZO1lBQ2YsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUN2RCxNQUFNO0lBQ1YsQ0FB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
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BaseFormatter } from '../classes.baseformatter.js';
|
|
2
|
+
import type { IPlannedChange } from '../interfaces.format.js';
|
|
3
|
+
export declare class CleanupFormatter extends BaseFormatter {
|
|
4
|
+
get name(): string;
|
|
5
|
+
analyze(): Promise<IPlannedChange[]>;
|
|
6
|
+
applyChange(change: IPlannedChange): Promise<void>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { BaseFormatter } from '../classes.baseformatter.js';
|
|
2
|
+
import * as plugins from '../mod.plugins.js';
|
|
3
|
+
import * as cleanupFormatter from '../format.cleanup.js';
|
|
4
|
+
export class CleanupFormatter extends BaseFormatter {
|
|
5
|
+
get name() {
|
|
6
|
+
return 'cleanup';
|
|
7
|
+
}
|
|
8
|
+
async analyze() {
|
|
9
|
+
const changes = [];
|
|
10
|
+
// List of files to remove
|
|
11
|
+
const filesToRemove = ['yarn.lock', 'package-lock.json', 'tslint.json', 'defaults.yml'];
|
|
12
|
+
for (const file of filesToRemove) {
|
|
13
|
+
const exists = await plugins.smartfile.fs.fileExists(file);
|
|
14
|
+
if (exists) {
|
|
15
|
+
changes.push({
|
|
16
|
+
type: 'delete',
|
|
17
|
+
path: file,
|
|
18
|
+
module: this.name,
|
|
19
|
+
description: `Remove obsolete file`
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return changes;
|
|
24
|
+
}
|
|
25
|
+
async applyChange(change) {
|
|
26
|
+
switch (change.type) {
|
|
27
|
+
case 'delete':
|
|
28
|
+
await this.deleteFile(change.path);
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYW51cC5mb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9tb2RfZm9ybWF0L2Zvcm1hdHRlcnMvY2xlYW51cC5mb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTVELE9BQU8sS0FBSyxPQUFPLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxLQUFLLGdCQUFnQixNQUFNLHNCQUFzQixDQUFDO0FBRXpELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxhQUFhO0lBQ2pELElBQUksSUFBSTtRQUNOLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sT0FBTyxHQUFxQixFQUFFLENBQUM7UUFFckMsMEJBQTBCO1FBQzFCLE1BQU0sYUFBYSxHQUFHLENBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUV4RixLQUFLLE1BQU0sSUFBSSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNELElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQztvQkFDWCxJQUFJLEVBQUUsUUFBUTtvQkFDZCxJQUFJLEVBQUUsSUFBSTtvQkFDVixNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUk7b0JBQ2pCLFdBQVcsRUFBRSxzQkFBc0I7aUJBQ3BDLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBc0I7UUFDdEMsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEIsS0FBSyxRQUFRO2dCQUNYLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ25DLE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LegacyFormatter } from './legacy.formatter.js';
|
|
2
|
+
import * as formatCopy from '../format.copy.js';
|
|
3
|
+
export class CopyFormatter extends LegacyFormatter {
|
|
4
|
+
constructor(context, project) {
|
|
5
|
+
super(context, project, 'copy', formatCopy);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS5mb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9tb2RfZm9ybWF0L2Zvcm1hdHRlcnMvY29weS5mb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sS0FBSyxVQUFVLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQsTUFBTSxPQUFPLGFBQWMsU0FBUSxlQUFlO0lBQ2hELFlBQVksT0FBWSxFQUFFLE9BQVk7UUFDcEMsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7Q0FDRiJ9
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LegacyFormatter } from './legacy.formatter.js';
|
|
2
|
+
import * as formatGitignore from '../format.gitignore.js';
|
|
3
|
+
export class GitignoreFormatter extends LegacyFormatter {
|
|
4
|
+
constructor(context, project) {
|
|
5
|
+
super(context, project, 'gitignore', formatGitignore);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aWdub3JlLmZvcm1hdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL21vZF9mb3JtYXQvZm9ybWF0dGVycy9naXRpZ25vcmUuZm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEtBQUssZUFBZSxNQUFNLHdCQUF3QixDQUFDO0FBRTFELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxlQUFlO0lBQ3JELFlBQVksT0FBWSxFQUFFLE9BQVk7UUFDcEMsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7Q0FDRiJ9
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BaseFormatter } from '../classes.baseformatter.js';
|
|
2
|
+
import type { IPlannedChange } from '../interfaces.format.js';
|
|
3
|
+
import { Project } from '../../classes.project.js';
|
|
4
|
+
export declare class LegacyFormatter extends BaseFormatter {
|
|
5
|
+
private moduleName;
|
|
6
|
+
private formatModule;
|
|
7
|
+
constructor(context: any, project: Project, moduleName: string, formatModule: any);
|
|
8
|
+
get name(): string;
|
|
9
|
+
analyze(): Promise<IPlannedChange[]>;
|
|
10
|
+
applyChange(change: IPlannedChange): Promise<void>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { BaseFormatter } from '../classes.baseformatter.js';
|
|
2
|
+
import { Project } from '../../classes.project.js';
|
|
3
|
+
import * as plugins from '../mod.plugins.js';
|
|
4
|
+
// This is a wrapper for existing format modules
|
|
5
|
+
export class LegacyFormatter extends BaseFormatter {
|
|
6
|
+
constructor(context, project, moduleName, formatModule) {
|
|
7
|
+
super(context, project);
|
|
8
|
+
this.moduleName = moduleName;
|
|
9
|
+
this.formatModule = formatModule;
|
|
10
|
+
}
|
|
11
|
+
get name() {
|
|
12
|
+
return this.moduleName;
|
|
13
|
+
}
|
|
14
|
+
async analyze() {
|
|
15
|
+
// For legacy modules, we can't easily predict changes
|
|
16
|
+
// So we'll return a generic change that indicates the module will run
|
|
17
|
+
return [{
|
|
18
|
+
type: 'modify',
|
|
19
|
+
path: '<various files>',
|
|
20
|
+
module: this.name,
|
|
21
|
+
description: `Run ${this.name} formatter`
|
|
22
|
+
}];
|
|
23
|
+
}
|
|
24
|
+
async applyChange(change) {
|
|
25
|
+
// Run the legacy format module
|
|
26
|
+
await this.formatModule.run(this.project);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnYWN5LmZvcm1hdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL21vZF9mb3JtYXQvZm9ybWF0dGVycy9sZWdhY3kuZm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkQsT0FBTyxLQUFLLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQztBQUU3QyxnREFBZ0Q7QUFDaEQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsYUFBYTtJQUloRCxZQUFZLE9BQVksRUFBRSxPQUFnQixFQUFFLFVBQWtCLEVBQUUsWUFBaUI7UUFDL0UsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTztRQUNYLHNEQUFzRDtRQUN0RCxzRUFBc0U7UUFDdEUsT0FBTyxDQUFDO2dCQUNOLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDakIsV0FBVyxFQUFFLE9BQU8sSUFBSSxDQUFDLElBQUksWUFBWTthQUMxQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFzQjtRQUN0QywrQkFBK0I7UUFDL0IsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUNGIn0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LegacyFormatter } from './legacy.formatter.js';
|
|
2
|
+
import * as formatLicense from '../format.license.js';
|
|
3
|
+
export class LicenseFormatter extends LegacyFormatter {
|
|
4
|
+
constructor(context, project) {
|
|
5
|
+
super(context, project, 'license', formatLicense);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGljZW5zZS5mb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9tb2RfZm9ybWF0L2Zvcm1hdHRlcnMvbGljZW5zZS5mb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sS0FBSyxhQUFhLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGVBQWU7SUFDbkQsWUFBWSxPQUFZLEVBQUUsT0FBWTtRQUNwQyxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDcEQsQ0FBQztDQUNGIn0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LegacyFormatter } from './legacy.formatter.js';
|
|
2
|
+
import * as formatNpmextra from '../format.npmextra.js';
|
|
3
|
+
export class NpmextraFormatter extends LegacyFormatter {
|
|
4
|
+
constructor(context, project) {
|
|
5
|
+
super(context, project, 'npmextra', formatNpmextra);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtZXh0cmEuZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvbW9kX2Zvcm1hdC9mb3JtYXR0ZXJzL25wbWV4dHJhLmZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxLQUFLLGNBQWMsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZUFBZTtJQUNwRCxZQUFZLE9BQVksRUFBRSxPQUFZO1FBQ3BDLEtBQUssQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN0RCxDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LegacyFormatter } from './legacy.formatter.js';
|
|
2
|
+
import * as formatPackageJson from '../format.packagejson.js';
|
|
3
|
+
export class PackageJsonFormatter extends LegacyFormatter {
|
|
4
|
+
constructor(context, project) {
|
|
5
|
+
super(context, project, 'packagejson', formatPackageJson);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZWpzb24uZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvbW9kX2Zvcm1hdC9mb3JtYXR0ZXJzL3BhY2thZ2Vqc29uLmZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxLQUFLLGlCQUFpQixNQUFNLDBCQUEwQixDQUFDO0FBRTlELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxlQUFlO0lBQ3ZELFlBQVksT0FBWSxFQUFFLE9BQVk7UUFDcEMsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDNUQsQ0FBQztDQUNGIn0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseFormatter } from '../classes.baseformatter.js';
|
|
2
|
+
import type { IPlannedChange } from '../interfaces.format.js';
|
|
3
|
+
export declare class PrettierFormatter extends BaseFormatter {
|
|
4
|
+
get name(): string;
|
|
5
|
+
analyze(): Promise<IPlannedChange[]>;
|
|
6
|
+
execute(changes: IPlannedChange[]): Promise<void>;
|
|
7
|
+
applyChange(change: IPlannedChange): Promise<void>;
|
|
8
|
+
private getPrettierConfig;
|
|
9
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { BaseFormatter } from '../classes.baseformatter.js';
|
|
2
|
+
import * as plugins from '../mod.plugins.js';
|
|
3
|
+
import { logger, logVerbose } from '../../gitzone.logging.js';
|
|
4
|
+
export class PrettierFormatter extends BaseFormatter {
|
|
5
|
+
get name() {
|
|
6
|
+
return 'prettier';
|
|
7
|
+
}
|
|
8
|
+
async analyze() {
|
|
9
|
+
const changes = [];
|
|
10
|
+
const globPattern = '**/*.{ts,tsx,js,jsx,json,md,css,scss,html,xml,yaml,yml}';
|
|
11
|
+
// Get all files that match the pattern
|
|
12
|
+
const files = await plugins.smartfile.fs.listFileTree('.', globPattern);
|
|
13
|
+
// Check which files need formatting
|
|
14
|
+
for (const file of files) {
|
|
15
|
+
// Skip files that haven't changed
|
|
16
|
+
if (!await this.shouldProcessFile(file)) {
|
|
17
|
+
logVerbose(`Skipping ${file} - no changes detected`);
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
changes.push({
|
|
21
|
+
type: 'modify',
|
|
22
|
+
path: file,
|
|
23
|
+
module: this.name,
|
|
24
|
+
description: 'Format with Prettier'
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
logger.log('info', `Found ${changes.length} files to format with Prettier`);
|
|
28
|
+
return changes;
|
|
29
|
+
}
|
|
30
|
+
async execute(changes) {
|
|
31
|
+
const startTime = this.stats.moduleStartTime(this.name);
|
|
32
|
+
this.stats.startModule(this.name);
|
|
33
|
+
try {
|
|
34
|
+
await this.preExecute();
|
|
35
|
+
// Batch process files
|
|
36
|
+
const batchSize = 10; // Process 10 files at a time
|
|
37
|
+
const batches = [];
|
|
38
|
+
for (let i = 0; i < changes.length; i += batchSize) {
|
|
39
|
+
batches.push(changes.slice(i, i + batchSize));
|
|
40
|
+
}
|
|
41
|
+
logVerbose(`Processing ${changes.length} files in ${batches.length} batches`);
|
|
42
|
+
for (let i = 0; i < batches.length; i++) {
|
|
43
|
+
const batch = batches[i];
|
|
44
|
+
logVerbose(`Processing batch ${i + 1}/${batches.length} (${batch.length} files)`);
|
|
45
|
+
// Process batch in parallel
|
|
46
|
+
const promises = batch.map(async (change) => {
|
|
47
|
+
try {
|
|
48
|
+
await this.applyChange(change);
|
|
49
|
+
this.stats.recordFileOperation(this.name, change.type, true);
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
this.stats.recordFileOperation(this.name, change.type, false);
|
|
53
|
+
logger.log('error', `Failed to format ${change.path}: ${error.message}`);
|
|
54
|
+
// Don't throw - continue with other files
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
await Promise.all(promises);
|
|
58
|
+
}
|
|
59
|
+
await this.postExecute();
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
await this.context.rollbackOperation();
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
65
|
+
finally {
|
|
66
|
+
this.stats.endModule(this.name, startTime);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async applyChange(change) {
|
|
70
|
+
if (change.type !== 'modify')
|
|
71
|
+
return;
|
|
72
|
+
try {
|
|
73
|
+
// Read current content
|
|
74
|
+
const content = await plugins.smartfile.fs.toStringSync(change.path);
|
|
75
|
+
// Format with prettier
|
|
76
|
+
const prettier = await import('prettier');
|
|
77
|
+
const formatted = await prettier.format(content, {
|
|
78
|
+
filepath: change.path,
|
|
79
|
+
...(await this.getPrettierConfig())
|
|
80
|
+
});
|
|
81
|
+
// Only write if content actually changed
|
|
82
|
+
if (formatted !== content) {
|
|
83
|
+
await this.modifyFile(change.path, formatted);
|
|
84
|
+
logVerbose(`Formatted ${change.path}`);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
// Still update cache even if content didn't change
|
|
88
|
+
await this.cache.updateFileCache(change.path);
|
|
89
|
+
logVerbose(`No formatting changes for ${change.path}`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
logger.log('error', `Failed to format ${change.path}: ${error.message}`);
|
|
94
|
+
throw error;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
async getPrettierConfig() {
|
|
98
|
+
// Try to load prettier config from the project
|
|
99
|
+
const prettierConfig = new plugins.npmextra.Npmextra();
|
|
100
|
+
return prettierConfig.dataFor('prettier', {
|
|
101
|
+
// Default prettier config
|
|
102
|
+
singleQuote: true,
|
|
103
|
+
trailingComma: 'all',
|
|
104
|
+
printWidth: 80,
|
|
105
|
+
tabWidth: 2,
|
|
106
|
+
semi: true,
|
|
107
|
+
arrowParens: 'always'
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldHRpZXIuZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvbW9kX2Zvcm1hdC9mb3JtYXR0ZXJzL3ByZXR0aWVyLmZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUQsT0FBTyxLQUFLLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTlELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxhQUFhO0lBQ2xELElBQUksSUFBSTtRQUNOLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sT0FBTyxHQUFxQixFQUFFLENBQUM7UUFDckMsTUFBTSxXQUFXLEdBQUcseURBQXlELENBQUM7UUFFOUUsdUNBQXVDO1FBQ3ZDLE1BQU0sS0FBSyxHQUFHLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUV4RSxvQ0FBb0M7UUFDcEMsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN6QixrQ0FBa0M7WUFDbEMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3hDLFVBQVUsQ0FBQyxZQUFZLElBQUksd0JBQXdCLENBQUMsQ0FBQztnQkFDckQsU0FBUztZQUNYLENBQUM7WUFFRCxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNYLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxJQUFJO2dCQUNWLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDakIsV0FBVyxFQUFFLHNCQUFzQjthQUNwQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FB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
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BaseFormatter } from '../classes.baseformatter.js';
|
|
2
|
+
import type { IPlannedChange } from '../interfaces.format.js';
|
|
3
|
+
export declare class ReadmeFormatter extends BaseFormatter {
|
|
4
|
+
get name(): string;
|
|
5
|
+
analyze(): Promise<IPlannedChange[]>;
|
|
6
|
+
applyChange(change: IPlannedChange): Promise<void>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { BaseFormatter } from '../classes.baseformatter.js';
|
|
2
|
+
import * as formatReadme from '../format.readme.js';
|
|
3
|
+
export class ReadmeFormatter extends BaseFormatter {
|
|
4
|
+
get name() {
|
|
5
|
+
return 'readme';
|
|
6
|
+
}
|
|
7
|
+
async analyze() {
|
|
8
|
+
return [{
|
|
9
|
+
type: 'modify',
|
|
10
|
+
path: 'readme.md',
|
|
11
|
+
module: this.name,
|
|
12
|
+
description: 'Ensure readme files exist'
|
|
13
|
+
}];
|
|
14
|
+
}
|
|
15
|
+
async applyChange(change) {
|
|
16
|
+
await formatReadme.run();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG1lLmZvcm1hdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL21vZF9mb3JtYXQvZm9ybWF0dGVycy9yZWFkbWUuZm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU1RCxPQUFPLEtBQUssWUFBWSxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE1BQU0sT0FBTyxlQUFnQixTQUFRLGFBQWE7SUFDaEQsSUFBSSxJQUFJO1FBQ04sT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPO1FBQ1gsT0FBTyxDQUFDO2dCQUNOLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxXQUFXO2dCQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2pCLFdBQVcsRUFBRSwyQkFBMkI7YUFDekMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBc0I7UUFDdEMsTUFBTSxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDM0IsQ0FBQztDQUNGIn0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LegacyFormatter } from './legacy.formatter.js';
|
|
2
|
+
import * as formatTemplates from '../format.templates.js';
|
|
3
|
+
export class TemplatesFormatter extends LegacyFormatter {
|
|
4
|
+
constructor(context, project) {
|
|
5
|
+
super(context, project, 'templates', formatTemplates);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGVzLmZvcm1hdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL21vZF9mb3JtYXQvZm9ybWF0dGVycy90ZW1wbGF0ZXMuZm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEtBQUssZUFBZSxNQUFNLHdCQUF3QixDQUFDO0FBRTFELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxlQUFlO0lBQ3JELFlBQVksT0FBWSxFQUFFLE9BQVk7UUFDcEMsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7Q0FDRiJ9
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LegacyFormatter } from './legacy.formatter.js';
|
|
2
|
+
import * as formatTsconfig from '../format.tsconfig.js';
|
|
3
|
+
export class TsconfigFormatter extends LegacyFormatter {
|
|
4
|
+
constructor(context, project) {
|
|
5
|
+
super(context, project, 'tsconfig', formatTsconfig);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNjb25maWcuZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvbW9kX2Zvcm1hdC9mb3JtYXR0ZXJzL3RzY29uZmlnLmZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxLQUFLLGNBQWMsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZUFBZTtJQUNwRCxZQUFZLE9BQVksRUFBRSxPQUFZO1FBQ3BDLEtBQUssQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN0RCxDQUFDO0NBQ0YifQ==
|
|
@@ -1 +1,14 @@
|
|
|
1
|
-
export declare let run: (
|
|
1
|
+
export declare let run: (options?: {
|
|
2
|
+
dryRun?: boolean;
|
|
3
|
+
yes?: boolean;
|
|
4
|
+
planOnly?: boolean;
|
|
5
|
+
savePlan?: string;
|
|
6
|
+
fromPlan?: string;
|
|
7
|
+
detailed?: boolean;
|
|
8
|
+
interactive?: boolean;
|
|
9
|
+
parallel?: boolean;
|
|
10
|
+
verbose?: boolean;
|
|
11
|
+
}) => Promise<any>;
|
|
12
|
+
export declare const handleRollback: (operationId?: string) => Promise<void>;
|
|
13
|
+
export declare const handleListBackups: () => Promise<void>;
|
|
14
|
+
export declare const handleCleanBackups: () => Promise<void>;
|