@git.zone/cli 2.9.2 → 2.10.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/dist_ts/00_commitinfo_data.js +2 -2
- package/dist_ts/mod_format/formatters/copy.formatter.d.ts +6 -3
- package/dist_ts/mod_format/formatters/copy.formatter.js +90 -6
- package/dist_ts/mod_format/formatters/gitignore.formatter.d.ts +6 -3
- package/dist_ts/mod_format/formatters/gitignore.formatter.js +101 -6
- package/dist_ts/mod_format/formatters/license.formatter.d.ts +7 -3
- package/dist_ts/mod_format/formatters/license.formatter.js +48 -6
- package/dist_ts/mod_format/formatters/npmextra.formatter.d.ts +6 -3
- package/dist_ts/mod_format/formatters/npmextra.formatter.js +130 -6
- package/dist_ts/mod_format/formatters/packagejson.formatter.d.ts +6 -3
- package/dist_ts/mod_format/formatters/packagejson.formatter.js +162 -6
- package/dist_ts/mod_format/formatters/prettier.formatter.d.ts +5 -1
- package/dist_ts/mod_format/formatters/prettier.formatter.js +46 -1
- package/dist_ts/mod_format/formatters/readme.formatter.js +35 -9
- package/dist_ts/mod_format/formatters/templates.formatter.d.ts +7 -3
- package/dist_ts/mod_format/formatters/templates.formatter.js +135 -6
- package/dist_ts/mod_format/formatters/tsconfig.formatter.d.ts +6 -3
- package/dist_ts/mod_format/formatters/tsconfig.formatter.js +61 -6
- package/package.json +30 -20
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/mod_format/formatters/copy.formatter.ts +114 -5
- package/ts/mod_format/formatters/gitignore.formatter.ts +108 -5
- package/ts/mod_format/formatters/license.formatter.ts +59 -5
- package/ts/mod_format/formatters/npmextra.formatter.ts +162 -5
- package/ts/mod_format/formatters/packagejson.formatter.ts +201 -5
- package/ts/mod_format/formatters/prettier.formatter.ts +50 -1
- package/ts/mod_format/formatters/readme.formatter.ts +39 -8
- package/ts/mod_format/formatters/templates.formatter.ts +152 -5
- package/ts/mod_format/formatters/tsconfig.formatter.ts +70 -5
- package/dist_ts/mod_format/formatters/legacy.formatter.d.ts +0 -11
- package/dist_ts/mod_format/formatters/legacy.formatter.js +0 -31
- package/ts/mod_format/formatters/legacy.formatter.ts +0 -43
|
@@ -1,8 +1,164 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import * as
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { BaseFormatter } from '../classes.baseformatter.js';
|
|
2
|
+
import * as plugins from '../mod.plugins.js';
|
|
3
|
+
import * as paths from '../../paths.js';
|
|
4
|
+
import { logger, logVerbose } from '../../gitzone.logging.js';
|
|
5
|
+
/**
|
|
6
|
+
* Ensures a certain dependency exists or is excluded
|
|
7
|
+
*/
|
|
8
|
+
const ensureDependency = async (packageJsonObject, position, constraint, dependencyArg) => {
|
|
9
|
+
const [packageName, version] = dependencyArg.includes('@')
|
|
10
|
+
? dependencyArg.split('@').filter(Boolean)
|
|
11
|
+
: [dependencyArg, 'latest'];
|
|
12
|
+
const targetSections = [];
|
|
13
|
+
switch (position) {
|
|
14
|
+
case 'dep':
|
|
15
|
+
targetSections.push('dependencies');
|
|
16
|
+
break;
|
|
17
|
+
case 'devDep':
|
|
18
|
+
targetSections.push('devDependencies');
|
|
19
|
+
break;
|
|
20
|
+
case 'everywhere':
|
|
21
|
+
targetSections.push('dependencies', 'devDependencies');
|
|
22
|
+
break;
|
|
23
|
+
}
|
|
24
|
+
for (const section of targetSections) {
|
|
25
|
+
if (!packageJsonObject[section]) {
|
|
26
|
+
packageJsonObject[section] = {};
|
|
27
|
+
}
|
|
28
|
+
switch (constraint) {
|
|
29
|
+
case 'exclude':
|
|
30
|
+
delete packageJsonObject[section][packageName];
|
|
31
|
+
break;
|
|
32
|
+
case 'include':
|
|
33
|
+
if (!packageJsonObject[section][packageName]) {
|
|
34
|
+
packageJsonObject[section][packageName] =
|
|
35
|
+
version === 'latest' ? '^1.0.0' : version;
|
|
36
|
+
}
|
|
37
|
+
break;
|
|
38
|
+
case 'latest':
|
|
39
|
+
try {
|
|
40
|
+
const registry = new plugins.smartnpm.NpmRegistry();
|
|
41
|
+
const packageInfo = await registry.getPackageInfo(packageName);
|
|
42
|
+
const latestVersion = packageInfo['dist-tags'].latest;
|
|
43
|
+
packageJsonObject[section][packageName] = `^${latestVersion}`;
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
logVerbose(`Could not fetch latest version for ${packageName}, using existing or default`);
|
|
47
|
+
if (!packageJsonObject[section][packageName]) {
|
|
48
|
+
packageJsonObject[section][packageName] =
|
|
49
|
+
version === 'latest' ? '^1.0.0' : version;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
export class PackageJsonFormatter extends BaseFormatter {
|
|
57
|
+
get name() {
|
|
58
|
+
return 'packagejson';
|
|
59
|
+
}
|
|
60
|
+
async analyze() {
|
|
61
|
+
const changes = [];
|
|
62
|
+
const packageJsonPath = 'package.json';
|
|
63
|
+
// Check if file exists
|
|
64
|
+
const exists = await plugins.smartfs.file(packageJsonPath).exists();
|
|
65
|
+
if (!exists) {
|
|
66
|
+
logVerbose('package.json does not exist, skipping');
|
|
67
|
+
return changes;
|
|
68
|
+
}
|
|
69
|
+
// Read current content
|
|
70
|
+
const currentContent = (await plugins.smartfs
|
|
71
|
+
.file(packageJsonPath)
|
|
72
|
+
.encoding('utf8')
|
|
73
|
+
.read());
|
|
74
|
+
// Parse and compute new content
|
|
75
|
+
const packageJson = JSON.parse(currentContent);
|
|
76
|
+
// Get gitzone config from npmextra
|
|
77
|
+
const npmextraConfig = new plugins.npmextra.Npmextra(paths.cwd);
|
|
78
|
+
const gitzoneData = npmextraConfig.dataFor('@git.zone/cli', {});
|
|
79
|
+
// Set metadata from gitzone config
|
|
80
|
+
if (gitzoneData.module) {
|
|
81
|
+
packageJson.repository = {
|
|
82
|
+
type: 'git',
|
|
83
|
+
url: `https://${gitzoneData.module.githost}/${gitzoneData.module.gitscope}/${gitzoneData.module.gitrepo}.git`,
|
|
84
|
+
};
|
|
85
|
+
packageJson.bugs = {
|
|
86
|
+
url: `https://${gitzoneData.module.githost}/${gitzoneData.module.gitscope}/${gitzoneData.module.gitrepo}/issues`,
|
|
87
|
+
};
|
|
88
|
+
packageJson.homepage = `https://${gitzoneData.module.githost}/${gitzoneData.module.gitscope}/${gitzoneData.module.gitrepo}#readme`;
|
|
89
|
+
}
|
|
90
|
+
// Ensure module type
|
|
91
|
+
if (!packageJson.type) {
|
|
92
|
+
packageJson.type = 'module';
|
|
93
|
+
}
|
|
94
|
+
// Ensure private field exists
|
|
95
|
+
if (packageJson.private === undefined) {
|
|
96
|
+
packageJson.private = true;
|
|
97
|
+
}
|
|
98
|
+
// Ensure license field exists
|
|
99
|
+
if (!packageJson.license) {
|
|
100
|
+
packageJson.license = 'UNLICENSED';
|
|
101
|
+
}
|
|
102
|
+
// Ensure scripts object exists
|
|
103
|
+
if (!packageJson.scripts) {
|
|
104
|
+
packageJson.scripts = {};
|
|
105
|
+
}
|
|
106
|
+
// Ensure build script exists
|
|
107
|
+
if (!packageJson.scripts.build) {
|
|
108
|
+
packageJson.scripts.build = `echo "Not needed for now"`;
|
|
109
|
+
}
|
|
110
|
+
// Ensure buildDocs script exists
|
|
111
|
+
if (!packageJson.scripts.buildDocs) {
|
|
112
|
+
packageJson.scripts.buildDocs = `tsdoc`;
|
|
113
|
+
}
|
|
114
|
+
// Set files array
|
|
115
|
+
packageJson.files = [
|
|
116
|
+
'ts/**/*',
|
|
117
|
+
'ts_web/**/*',
|
|
118
|
+
'dist/**/*',
|
|
119
|
+
'dist_*/**/*',
|
|
120
|
+
'dist_ts/**/*',
|
|
121
|
+
'dist_ts_web/**/*',
|
|
122
|
+
'assets/**/*',
|
|
123
|
+
'cli.js',
|
|
124
|
+
'npmextra.json',
|
|
125
|
+
'readme.md',
|
|
126
|
+
];
|
|
127
|
+
// Handle dependencies
|
|
128
|
+
await ensureDependency(packageJson, 'devDep', 'exclude', '@push.rocks/tapbundle');
|
|
129
|
+
await ensureDependency(packageJson, 'devDep', 'latest', '@git.zone/tstest');
|
|
130
|
+
await ensureDependency(packageJson, 'devDep', 'latest', '@git.zone/tsbuild');
|
|
131
|
+
// Set pnpm overrides from assets
|
|
132
|
+
try {
|
|
133
|
+
const overridesContent = (await plugins.smartfs
|
|
134
|
+
.file(plugins.path.join(paths.assetsDir, 'overrides.json'))
|
|
135
|
+
.encoding('utf8')
|
|
136
|
+
.read());
|
|
137
|
+
const overrides = JSON.parse(overridesContent);
|
|
138
|
+
packageJson.pnpm = packageJson.pnpm || {};
|
|
139
|
+
packageJson.pnpm.overrides = overrides;
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
logVerbose(`Could not read overrides.json: ${error.message}`);
|
|
143
|
+
}
|
|
144
|
+
const newContent = JSON.stringify(packageJson, null, 2);
|
|
145
|
+
// Only add change if content differs
|
|
146
|
+
if (newContent !== currentContent) {
|
|
147
|
+
changes.push({
|
|
148
|
+
type: 'modify',
|
|
149
|
+
path: packageJsonPath,
|
|
150
|
+
module: this.name,
|
|
151
|
+
description: 'Format package.json',
|
|
152
|
+
content: newContent,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
return changes;
|
|
156
|
+
}
|
|
157
|
+
async applyChange(change) {
|
|
158
|
+
if (change.type !== 'modify' || !change.content)
|
|
159
|
+
return;
|
|
160
|
+
await this.modifyFile(change.path, change.content);
|
|
161
|
+
logger.log('info', 'Updated package.json');
|
|
6
162
|
}
|
|
7
163
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZWpzb24uZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvbW9kX2Zvcm1hdC9mb3JtYXR0ZXJzL3BhY2thZ2Vqc29uLmZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUQsT0FBTyxLQUFLLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFOUQ7O0dBRUc7QUFDSCxNQUFNLGdCQUFnQixHQUFHLEtBQUssRUFDNUIsaUJBQXNCLEVBQ3RCLFFBQXlDLEVBQ3pDLFVBQTRDLEVBQzVDLGFBQXFCLEVBQ04sRUFBRTtJQUNqQixNQUFNLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1FBQ3hELENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRTlCLE1BQU0sY0FBYyxHQUFhLEVBQUUsQ0FBQztJQUVwQyxRQUFRLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLEtBQUssS0FBSztZQUNSLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDcEMsTUFBTTtRQUNSLEtBQUssUUFBUTtZQUNYLGNBQWMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUN2QyxNQUFNO1FBQ1IsS0FBSyxZQUFZO1lBQ2YsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUN2RCxNQUFNO0lBQ1YsQ0FBQztJQUVE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
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { BaseFormatter } from '../classes.baseformatter.js';
|
|
2
|
-
import type { IPlannedChange } from '../interfaces.format.js';
|
|
2
|
+
import type { IPlannedChange, ICheckResult } from '../interfaces.format.js';
|
|
3
3
|
export declare class PrettierFormatter extends BaseFormatter {
|
|
4
4
|
get name(): string;
|
|
5
5
|
analyze(): Promise<IPlannedChange[]>;
|
|
6
6
|
execute(changes: IPlannedChange[]): Promise<void>;
|
|
7
7
|
applyChange(change: IPlannedChange): Promise<void>;
|
|
8
8
|
private getPrettierConfig;
|
|
9
|
+
/**
|
|
10
|
+
* Override check() to compute diffs on-the-fly by running prettier
|
|
11
|
+
*/
|
|
12
|
+
check(): Promise<ICheckResult>;
|
|
9
13
|
}
|
|
@@ -205,5 +205,50 @@ export class PrettierFormatter extends BaseFormatter {
|
|
|
205
205
|
arrowParens: 'always',
|
|
206
206
|
});
|
|
207
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* Override check() to compute diffs on-the-fly by running prettier
|
|
210
|
+
*/
|
|
211
|
+
async check() {
|
|
212
|
+
const changes = await this.analyze();
|
|
213
|
+
const diffs = [];
|
|
214
|
+
for (const change of changes) {
|
|
215
|
+
if (change.type !== 'modify')
|
|
216
|
+
continue;
|
|
217
|
+
try {
|
|
218
|
+
// Read current content
|
|
219
|
+
const currentContent = (await plugins.smartfs
|
|
220
|
+
.file(change.path)
|
|
221
|
+
.encoding('utf8')
|
|
222
|
+
.read());
|
|
223
|
+
// Skip files without extension (prettier can't infer parser)
|
|
224
|
+
const fileExt = plugins.path.extname(change.path).toLowerCase();
|
|
225
|
+
if (!fileExt)
|
|
226
|
+
continue;
|
|
227
|
+
// Format with prettier to get what it would produce
|
|
228
|
+
const prettier = await import('prettier');
|
|
229
|
+
const formatted = await prettier.format(currentContent, {
|
|
230
|
+
filepath: change.path,
|
|
231
|
+
...(await this.getPrettierConfig()),
|
|
232
|
+
});
|
|
233
|
+
// Only add to diffs if content differs
|
|
234
|
+
if (formatted !== currentContent) {
|
|
235
|
+
diffs.push({
|
|
236
|
+
path: change.path,
|
|
237
|
+
type: 'modify',
|
|
238
|
+
before: currentContent,
|
|
239
|
+
after: formatted,
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
catch (error) {
|
|
244
|
+
// Skip files that can't be processed
|
|
245
|
+
logVerbose(`Skipping diff for ${change.path}: ${error.message}`);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
return {
|
|
249
|
+
hasDiff: diffs.length > 0,
|
|
250
|
+
diffs,
|
|
251
|
+
};
|
|
252
|
+
}
|
|
208
253
|
}
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldHRpZXIuZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvbW9kX2Zvcm1hdC9mb3JtYXR0ZXJzL3ByZXR0aWVyLmZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUQsT0FBTyxLQUFLLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTlELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxhQUFhO0lBQ2xELElBQUksSUFBSTtRQUNOLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sT0FBTyxHQUFxQixFQUFFLENBQUM7UUFFckMsbUVBQW1FO1FBQ25FLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFcEQsNEJBQTRCO1FBQzVCLE1BQU0sVUFBVSxHQUFHLG9EQUFvRCxDQUFDO1FBRXhFLHNDQUFzQztRQUN0QyxNQUFNLGVBQWUsR0FBRztZQUN0QixjQUFjO1lBQ2QsZUFBZTtZQUNmLGVBQWU7WUFDZixhQUFhO1lBQ2Isa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixXQUFXO1lBQ1gsV0FBVztZQUNYLGNBQWM7WUFDZCxjQUFjO1lBQ2QsK0RBQStEO1lBQy9ELGFBQWE7WUFDYixhQUFhO1lBQ2IsTUFBTTtTQUNQLENBQUM7UUFFRiw4QkFBOEI7UUFDOUIsTUFBTSxRQUFRLEdBQWEsRUFBRSxDQUFDO1FBRTlCLHdDQUF3QztRQUN4QyxLQUFLLE1BQU0sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQztnQkFDSCxNQUFNLFdBQVcsR0FBRyxHQUFHLEdBQUcsU0FBUyxVQUFVLEVBQUUs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
|
|
254
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldHRpZXIuZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvbW9kX2Zvcm1hdC9mb3JtYXR0ZXJzL3ByZXR0aWVyLmZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUQsT0FBTyxLQUFLLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTlELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxhQUFhO0lBQ2xELElBQUksSUFBSTtRQUNOLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sT0FBTyxHQUFxQixFQUFFLENBQUM7UUFFckMsbUVBQW1FO1FBQ25FLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFcEQsNEJBQTRCO1FBQzVCLE1BQU0sVUFBVSxHQUFHLG9EQUFvRCxDQUFDO1FBRXhFLHNDQUFzQztRQUN0QyxNQUFNLGVBQWUsR0FBRztZQUN0QixjQUFjO1lBQ2QsZUFBZTtZQUNmLGVBQWU7WUFDZixhQUFhO1lBQ2Isa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixXQUFXO1lBQ1gsV0FBVztZQUNYLGNBQWM7WUFDZCxjQUFjO1lBQ2QsK0RBQStEO1lBQy9ELGFBQWE7WUFDYixhQUFhO1lBQ2IsTUFBTTtTQUNQLENBQUM7UUFFRiw4QkFBOEI7UUFDOUIsTUFBTSxRQUFRLEdBQWEsRUFBRSxDQUFDO1FBRTlCLHdDQUF3QztRQUN4QyxLQUFLLE1BQU0sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQztnQkFDSCxNQUFNLFdBQVcsR0FBRyxHQUFHLEdBQUcsU0FBUyxVQUFVLEVBQUUs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
|
|
@@ -1,21 +1,47 @@
|
|
|
1
1
|
import { BaseFormatter } from '../classes.baseformatter.js';
|
|
2
|
-
import * as
|
|
2
|
+
import * as plugins from '../mod.plugins.js';
|
|
3
|
+
import { logger } from '../../gitzone.logging.js';
|
|
4
|
+
const DEFAULT_README_CONTENT = `# Project Readme
|
|
5
|
+
|
|
6
|
+
This is the initial readme file.`;
|
|
7
|
+
const DEFAULT_README_HINTS_CONTENT = `# Project Readme Hints
|
|
8
|
+
|
|
9
|
+
This is the initial readme hints file.`;
|
|
3
10
|
export class ReadmeFormatter extends BaseFormatter {
|
|
4
11
|
get name() {
|
|
5
12
|
return 'readme';
|
|
6
13
|
}
|
|
7
14
|
async analyze() {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
15
|
+
const changes = [];
|
|
16
|
+
// Check readme.md
|
|
17
|
+
const readmeExists = await plugins.smartfs.file('readme.md').exists();
|
|
18
|
+
if (!readmeExists) {
|
|
19
|
+
changes.push({
|
|
20
|
+
type: 'create',
|
|
11
21
|
path: 'readme.md',
|
|
12
22
|
module: this.name,
|
|
13
|
-
description: '
|
|
14
|
-
|
|
15
|
-
|
|
23
|
+
description: 'Create readme.md',
|
|
24
|
+
content: DEFAULT_README_CONTENT,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
// Check readme.hints.md
|
|
28
|
+
const hintsExists = await plugins.smartfs.file('readme.hints.md').exists();
|
|
29
|
+
if (!hintsExists) {
|
|
30
|
+
changes.push({
|
|
31
|
+
type: 'create',
|
|
32
|
+
path: 'readme.hints.md',
|
|
33
|
+
module: this.name,
|
|
34
|
+
description: 'Create readme.hints.md',
|
|
35
|
+
content: DEFAULT_README_HINTS_CONTENT,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
return changes;
|
|
16
39
|
}
|
|
17
40
|
async applyChange(change) {
|
|
18
|
-
|
|
41
|
+
if (change.type !== 'create' || !change.content)
|
|
42
|
+
return;
|
|
43
|
+
await this.createFile(change.path, change.content);
|
|
44
|
+
logger.log('info', `Created ${change.path}`);
|
|
19
45
|
}
|
|
20
46
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG1lLmZvcm1hdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL21vZF9mb3JtYXQvZm9ybWF0dGVycy9yZWFkbWUuZm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU1RCxPQUFPLEtBQUssT0FBTyxNQUFNLG1CQUFtQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVsRCxNQUFNLHNCQUFzQixHQUFHOztpQ0FFRSxDQUFDO0FBRWxDLE1BQU0sNEJBQTRCLEdBQUc7O3VDQUVFLENBQUM7QUFFeEMsTUFBTSxPQUFPLGVBQWdCLFNBQVEsYUFBYTtJQUNoRCxJQUFJLElBQUk7UUFDTixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLE9BQU8sR0FBcUIsRUFBRSxDQUFDO1FBRXJDLGtCQUFrQjtRQUNsQixNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNYLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxXQUFXO2dCQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2pCLFdBQVcsRUFBRSxrQkFBa0I7Z0JBQy9CLE9BQU8sRUFBRSxzQkFBc0I7YUFDaEMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELHdCQUF3QjtRQUN4QixNQUFNLFdBQVcsR0FBRyxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0UsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ1gsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLGlCQUFpQjtnQkFDdkIsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNqQixXQUFXLEVBQUUsd0JBQXdCO2dCQUNyQyxPQUFPLEVBQUUsNEJBQTRCO2FBQ3RDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFzQjtRQUN0QyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBRXhELE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRCxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxXQUFXLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7Q0FDRiJ9
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { BaseFormatter } from '../classes.baseformatter.js';
|
|
2
|
+
import type { IPlannedChange } from '../interfaces.format.js';
|
|
3
|
+
export declare class TemplatesFormatter extends BaseFormatter {
|
|
4
|
+
get name(): string;
|
|
5
|
+
analyze(): Promise<IPlannedChange[]>;
|
|
6
|
+
private analyzeTemplate;
|
|
7
|
+
applyChange(change: IPlannedChange): Promise<void>;
|
|
4
8
|
}
|
|
@@ -1,8 +1,137 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import * as
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { BaseFormatter } from '../classes.baseformatter.js';
|
|
2
|
+
import * as plugins from '../mod.plugins.js';
|
|
3
|
+
import * as paths from '../../paths.js';
|
|
4
|
+
import { logger, logVerbose } from '../../gitzone.logging.js';
|
|
5
|
+
export class TemplatesFormatter extends BaseFormatter {
|
|
6
|
+
get name() {
|
|
7
|
+
return 'templates';
|
|
8
|
+
}
|
|
9
|
+
async analyze() {
|
|
10
|
+
const changes = [];
|
|
11
|
+
const project = this.project;
|
|
12
|
+
const projectType = project.gitzoneConfig?.data?.projectType;
|
|
13
|
+
// VSCode template - for all projects
|
|
14
|
+
const vscodeChanges = await this.analyzeTemplate('vscode', [
|
|
15
|
+
{ templatePath: '.vscode/settings.json', destPath: '.vscode/settings.json' },
|
|
16
|
+
{ templatePath: '.vscode/launch.json', destPath: '.vscode/launch.json' },
|
|
17
|
+
]);
|
|
18
|
+
changes.push(...vscodeChanges);
|
|
19
|
+
// CI and other templates based on projectType
|
|
20
|
+
switch (projectType) {
|
|
21
|
+
case 'npm':
|
|
22
|
+
case 'wcc':
|
|
23
|
+
const accessLevel = project.gitzoneConfig?.data?.npmciOptions?.npmAccessLevel;
|
|
24
|
+
const ciTemplate = accessLevel === 'public' ? 'ci_default' : 'ci_default_private';
|
|
25
|
+
const ciChanges = await this.analyzeTemplate(ciTemplate, [
|
|
26
|
+
{ templatePath: '.gitea/workflows/default_nottags.yaml', destPath: '.gitea/workflows/default_nottags.yaml' },
|
|
27
|
+
{ templatePath: '.gitea/workflows/default_tags.yaml', destPath: '.gitea/workflows/default_tags.yaml' },
|
|
28
|
+
]);
|
|
29
|
+
changes.push(...ciChanges);
|
|
30
|
+
break;
|
|
31
|
+
case 'service':
|
|
32
|
+
case 'website':
|
|
33
|
+
const dockerCiChanges = await this.analyzeTemplate('ci_docker', [
|
|
34
|
+
{ templatePath: '.gitea/workflows/docker_nottags.yaml', destPath: '.gitea/workflows/docker_nottags.yaml' },
|
|
35
|
+
{ templatePath: '.gitea/workflows/docker_tags.yaml', destPath: '.gitea/workflows/docker_tags.yaml' },
|
|
36
|
+
]);
|
|
37
|
+
changes.push(...dockerCiChanges);
|
|
38
|
+
const dockerfileChanges = await this.analyzeTemplate('dockerfile_service', [
|
|
39
|
+
{ templatePath: 'Dockerfile', destPath: 'Dockerfile' },
|
|
40
|
+
{ templatePath: 'dockerignore', destPath: '.dockerignore' },
|
|
41
|
+
]);
|
|
42
|
+
changes.push(...dockerfileChanges);
|
|
43
|
+
const cliChanges = await this.analyzeTemplate('cli', [
|
|
44
|
+
{ templatePath: 'cli.js', destPath: 'cli.js' },
|
|
45
|
+
{ templatePath: 'cli.ts.js', destPath: 'cli.ts.js' },
|
|
46
|
+
]);
|
|
47
|
+
changes.push(...cliChanges);
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
// Update templates based on projectType
|
|
51
|
+
if (projectType === 'website') {
|
|
52
|
+
const websiteChanges = await this.analyzeTemplate('website_update', [
|
|
53
|
+
{ templatePath: 'html/index.html', destPath: 'html/index.html' },
|
|
54
|
+
]);
|
|
55
|
+
changes.push(...websiteChanges);
|
|
56
|
+
}
|
|
57
|
+
else if (projectType === 'service') {
|
|
58
|
+
const serviceChanges = await this.analyzeTemplate('service_update', []);
|
|
59
|
+
changes.push(...serviceChanges);
|
|
60
|
+
}
|
|
61
|
+
else if (projectType === 'wcc') {
|
|
62
|
+
const wccChanges = await this.analyzeTemplate('wcc_update', [
|
|
63
|
+
{ templatePath: 'html/index.html', destPath: 'html/index.html' },
|
|
64
|
+
{ templatePath: 'html/index.ts', destPath: 'html/index.ts' },
|
|
65
|
+
]);
|
|
66
|
+
changes.push(...wccChanges);
|
|
67
|
+
}
|
|
68
|
+
return changes;
|
|
69
|
+
}
|
|
70
|
+
async analyzeTemplate(templateName, files) {
|
|
71
|
+
const changes = [];
|
|
72
|
+
const templateDir = plugins.path.join(paths.templatesDir, templateName);
|
|
73
|
+
// Check if template exists
|
|
74
|
+
const templateExists = await plugins.smartfs.directory(templateDir).exists();
|
|
75
|
+
if (!templateExists) {
|
|
76
|
+
logVerbose(`Template ${templateName} not found`);
|
|
77
|
+
return changes;
|
|
78
|
+
}
|
|
79
|
+
for (const file of files) {
|
|
80
|
+
const templateFilePath = plugins.path.join(templateDir, file.templatePath);
|
|
81
|
+
const destFilePath = file.destPath;
|
|
82
|
+
// Check if template file exists
|
|
83
|
+
const fileExists = await plugins.smartfs.file(templateFilePath).exists();
|
|
84
|
+
if (!fileExists) {
|
|
85
|
+
logVerbose(`Template file ${templateFilePath} not found`);
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
try {
|
|
89
|
+
// Read template content
|
|
90
|
+
const templateContent = (await plugins.smartfs
|
|
91
|
+
.file(templateFilePath)
|
|
92
|
+
.encoding('utf8')
|
|
93
|
+
.read());
|
|
94
|
+
// Check if destination file exists
|
|
95
|
+
const destExists = await plugins.smartfs.file(destFilePath).exists();
|
|
96
|
+
let currentContent = '';
|
|
97
|
+
if (destExists) {
|
|
98
|
+
currentContent = (await plugins.smartfs
|
|
99
|
+
.file(destFilePath)
|
|
100
|
+
.encoding('utf8')
|
|
101
|
+
.read());
|
|
102
|
+
}
|
|
103
|
+
// Only add change if content differs
|
|
104
|
+
if (templateContent !== currentContent) {
|
|
105
|
+
changes.push({
|
|
106
|
+
type: destExists ? 'modify' : 'create',
|
|
107
|
+
path: destFilePath,
|
|
108
|
+
module: this.name,
|
|
109
|
+
description: `Apply template ${templateName}/${file.templatePath}`,
|
|
110
|
+
content: templateContent,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
logVerbose(`Failed to read template ${templateFilePath}: ${error.message}`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return changes;
|
|
119
|
+
}
|
|
120
|
+
async applyChange(change) {
|
|
121
|
+
if (!change.content)
|
|
122
|
+
return;
|
|
123
|
+
// Ensure destination directory exists
|
|
124
|
+
const destDir = plugins.path.dirname(change.path);
|
|
125
|
+
if (destDir && destDir !== '.') {
|
|
126
|
+
await plugins.smartfs.directory(destDir).recursive().create();
|
|
127
|
+
}
|
|
128
|
+
if (change.type === 'create') {
|
|
129
|
+
await this.createFile(change.path, change.content);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
await this.modifyFile(change.path, change.content);
|
|
133
|
+
}
|
|
134
|
+
logger.log('info', `Applied template to ${change.path}`);
|
|
6
135
|
}
|
|
7
136
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGVzLmZvcm1hdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL21vZF9mb3JtYXQvZm9ybWF0dGVycy90ZW1wbGF0ZXMuZm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU1RCxPQUFPLEtBQUssT0FBTyxNQUFNLG1CQUFtQixDQUFDO0FBQzdDLE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5RCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsYUFBYTtJQUNuRCxJQUFJLElBQUk7UUFDTixPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLE9BQU8sR0FBcUIsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0IsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDO1FBRTdELHFDQUFxQztRQUNyQyxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFO1lBQ3pELEVBQUUsWUFBWSxFQUFFLHVCQUF1QixFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBRTtZQUM1RSxFQUFFLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUU7U0FDekUsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDO1FBRS9CLDhDQUE4QztRQUM5QyxRQUFRLFdBQVcsRUFBRSxDQUFDO1lBQ3BCLEtBQUssS0FBSyxDQUFDO1lBQ1gsS0FBSyxLQUFLO2dCQUNSLE1BQU0sV0FBVyxHQUFHLE9BQU8s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LENBQUMsQ0FBQztRQUNsRCxJQUFJLE9BQU8sSUFBSSxPQUFPLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDL0IsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoRSxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzdCLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQ0QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsdUJBQXVCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7Q0FDRiJ9
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { BaseFormatter } from '../classes.baseformatter.js';
|
|
2
|
+
import type { IPlannedChange } from '../interfaces.format.js';
|
|
3
|
+
export declare class TsconfigFormatter extends BaseFormatter {
|
|
4
|
+
get name(): string;
|
|
5
|
+
analyze(): Promise<IPlannedChange[]>;
|
|
6
|
+
applyChange(change: IPlannedChange): Promise<void>;
|
|
4
7
|
}
|
|
@@ -1,8 +1,63 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import * as
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { BaseFormatter } from '../classes.baseformatter.js';
|
|
2
|
+
import * as plugins from '../mod.plugins.js';
|
|
3
|
+
import * as paths from '../../paths.js';
|
|
4
|
+
import { logger, logVerbose } from '../../gitzone.logging.js';
|
|
5
|
+
export class TsconfigFormatter extends BaseFormatter {
|
|
6
|
+
get name() {
|
|
7
|
+
return 'tsconfig';
|
|
8
|
+
}
|
|
9
|
+
async analyze() {
|
|
10
|
+
const changes = [];
|
|
11
|
+
const tsconfigPath = 'tsconfig.json';
|
|
12
|
+
// Check if file exists
|
|
13
|
+
const exists = await plugins.smartfs.file(tsconfigPath).exists();
|
|
14
|
+
if (!exists) {
|
|
15
|
+
logVerbose('tsconfig.json does not exist, skipping');
|
|
16
|
+
return changes;
|
|
17
|
+
}
|
|
18
|
+
// Read current content
|
|
19
|
+
const currentContent = (await plugins.smartfs
|
|
20
|
+
.file(tsconfigPath)
|
|
21
|
+
.encoding('utf8')
|
|
22
|
+
.read());
|
|
23
|
+
// Parse and compute new content
|
|
24
|
+
const tsconfigObject = JSON.parse(currentContent);
|
|
25
|
+
tsconfigObject.compilerOptions = tsconfigObject.compilerOptions || {};
|
|
26
|
+
tsconfigObject.compilerOptions.baseUrl = '.';
|
|
27
|
+
tsconfigObject.compilerOptions.paths = {};
|
|
28
|
+
// Get module paths from tspublish
|
|
29
|
+
try {
|
|
30
|
+
const tsPublishMod = await import('@git.zone/tspublish');
|
|
31
|
+
const tsPublishInstance = new tsPublishMod.TsPublish();
|
|
32
|
+
const publishModules = await tsPublishInstance.getModuleSubDirs(paths.cwd);
|
|
33
|
+
for (const publishModule of Object.keys(publishModules)) {
|
|
34
|
+
const publishConfig = publishModules[publishModule];
|
|
35
|
+
tsconfigObject.compilerOptions.paths[`${publishConfig.name}`] = [
|
|
36
|
+
`./${publishModule}/index.js`,
|
|
37
|
+
];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
logVerbose(`Could not get tspublish modules: ${error.message}`);
|
|
42
|
+
}
|
|
43
|
+
const newContent = JSON.stringify(tsconfigObject, null, 2);
|
|
44
|
+
// Only add change if content differs
|
|
45
|
+
if (newContent !== currentContent) {
|
|
46
|
+
changes.push({
|
|
47
|
+
type: 'modify',
|
|
48
|
+
path: tsconfigPath,
|
|
49
|
+
module: this.name,
|
|
50
|
+
description: 'Format tsconfig.json with path mappings',
|
|
51
|
+
content: newContent,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return changes;
|
|
55
|
+
}
|
|
56
|
+
async applyChange(change) {
|
|
57
|
+
if (change.type !== 'modify' || !change.content)
|
|
58
|
+
return;
|
|
59
|
+
await this.modifyFile(change.path, change.content);
|
|
60
|
+
logger.log('info', 'Updated tsconfig.json');
|
|
6
61
|
}
|
|
7
62
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNjb25maWcuZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvbW9kX2Zvcm1hdC9mb3JtYXR0ZXJzL3RzY29uZmlnLmZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUQsT0FBTyxLQUFLLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFOUQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGFBQWE7SUFDbEQsSUFBSSxJQUFJO1FBQ04sT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPO1FBQ1gsTUFBTSxPQUFPLEdBQXFCLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUM7UUFFckMsdUJBQXVCO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osVUFBVSxDQUFDLHdDQUF3QyxDQUFDLENBQUM7WUFDckQsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUVELHVCQUF1QjtRQUN2QixNQUFNLGNBQWMsR0FBRyxDQUFDLE1BQU0sT0FBTyxDQUFDLE9BQU87YUFDMUMsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUNsQixRQUFRLENBQUMsTUFBTSxDQUFDO2FBQ2hCLElBQUksRUFBRSxDQUFXLENBQUM7UUFFckIsZ0NBQWdDO1FBQ2hDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEQsY0FBYyxDQUFDLGVBQWUsR0FBRyxjQUFjLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQztRQUN0RSxjQUFjLENBQUMsZUFBZSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDN0MsY0FBYyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBRTFDLGtDQUFrQztRQUNsQyxJQUFJLENBQUM7WUFDSCxNQUFNLFlBQVksR0FBRyxNQUFNLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3pELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdkQsTUFBTSxjQUFjLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFM0UsS0FBSyxNQUFNLGFBQWEsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hELE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDcEQsY0FBYyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRztvQkFDOUQsS0FBSyxhQUFhLFdBQVc7aUJBQzlCLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixVQUFVLENBQUMsb0NBQW9DLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFM0QscUNBQXFDO1FBQ3JDLElBQUksVUFBVSxLQUFLLGNBQWMsRUFBRSxDQUFDO1lBQ2xDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ1gsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDakIsV0FBVyxFQUFFLHlDQUF5QztnQkFDdEQsT0FBTyxFQUFFLFVBQVU7YUFDcEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQXNCO1FBQ3RDLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTztZQUFFLE9BQU87UUFFeEQsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLHVCQUF1QixDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUNGIn0=
|