@git.zone/cli 2.13.13 → 2.14.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/gitzone.cli.js +46 -35
- package/dist_ts/helpers.climode.d.ts +22 -0
- package/dist_ts/helpers.climode.js +158 -0
- package/dist_ts/helpers.smartconfig.d.ts +11 -0
- package/dist_ts/helpers.smartconfig.js +139 -0
- package/dist_ts/mod_commit/index.d.ts +2 -0
- package/dist_ts/mod_commit/index.js +204 -92
- package/dist_ts/mod_config/index.d.ts +7 -2
- package/dist_ts/mod_config/index.js +390 -176
- package/dist_ts/mod_format/classes.formatcontext.d.ts +11 -2
- package/dist_ts/mod_format/classes.formatcontext.js +14 -4
- package/dist_ts/mod_format/formatters/packagejson.formatter.js +1 -67
- package/dist_ts/mod_format/formatters/smartconfig.formatter.d.ts +2 -7
- package/dist_ts/mod_format/formatters/smartconfig.formatter.js +57 -93
- package/dist_ts/mod_format/index.d.ts +4 -1
- package/dist_ts/mod_format/index.js +235 -67
- package/dist_ts/mod_format/mod.plugins.d.ts +1 -2
- package/dist_ts/mod_format/mod.plugins.js +2 -3
- package/dist_ts/mod_services/index.d.ts +2 -0
- package/dist_ts/mod_services/index.js +366 -168
- package/dist_ts/mod_standard/index.d.ts +3 -1
- package/dist_ts/mod_standard/index.js +159 -59
- package/package.json +1 -1
- package/readme.hints.md +25 -32
- package/readme.md +87 -65
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/gitzone.cli.ts +50 -38
- package/ts/helpers.climode.ts +212 -0
- package/ts/helpers.smartconfig.ts +192 -0
- package/ts/mod_commit/index.ts +325 -98
- package/ts/mod_config/index.ts +490 -182
- package/ts/mod_format/classes.formatcontext.ts +20 -3
- package/ts/mod_format/formatters/packagejson.formatter.ts +0 -91
- package/ts/mod_format/formatters/smartconfig.formatter.ts +67 -94
- package/ts/mod_format/index.ts +294 -81
- package/ts/mod_format/mod.plugins.ts +0 -2
- package/ts/mod_services/index.ts +550 -183
- package/ts/mod_standard/index.ts +191 -58
|
@@ -1,6 +1,15 @@
|
|
|
1
|
-
import { FormatStats } from
|
|
1
|
+
import { FormatStats } from "./classes.formatstats.js";
|
|
2
|
+
interface IFormatContextOptions {
|
|
3
|
+
interactive?: boolean;
|
|
4
|
+
jsonOutput?: boolean;
|
|
5
|
+
}
|
|
2
6
|
export declare class FormatContext {
|
|
3
7
|
private formatStats;
|
|
4
|
-
|
|
8
|
+
private interactive;
|
|
9
|
+
private jsonOutput;
|
|
10
|
+
constructor(options?: IFormatContextOptions);
|
|
5
11
|
getFormatStats(): FormatStats;
|
|
12
|
+
isInteractive(): boolean;
|
|
13
|
+
isJsonOutput(): boolean;
|
|
6
14
|
}
|
|
15
|
+
export {};
|
|
@@ -1,12 +1,22 @@
|
|
|
1
|
-
import * as plugins from
|
|
2
|
-
import { FormatStats } from
|
|
1
|
+
import * as plugins from "./mod.plugins.js";
|
|
2
|
+
import { FormatStats } from "./classes.formatstats.js";
|
|
3
3
|
export class FormatContext {
|
|
4
4
|
formatStats;
|
|
5
|
-
|
|
5
|
+
interactive;
|
|
6
|
+
jsonOutput;
|
|
7
|
+
constructor(options = {}) {
|
|
6
8
|
this.formatStats = new FormatStats();
|
|
9
|
+
this.interactive = options.interactive ?? true;
|
|
10
|
+
this.jsonOutput = options.jsonOutput ?? false;
|
|
7
11
|
}
|
|
8
12
|
getFormatStats() {
|
|
9
13
|
return this.formatStats;
|
|
10
14
|
}
|
|
15
|
+
isInteractive() {
|
|
16
|
+
return this.interactive;
|
|
17
|
+
}
|
|
18
|
+
isJsonOutput() {
|
|
19
|
+
return this.jsonOutput;
|
|
20
|
+
}
|
|
11
21
|
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5mb3JtYXRjb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbW9kX2Zvcm1hdC9jbGFzc2VzLmZvcm1hdGNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFPdkQsTUFBTSxPQUFPLGFBQWE7SUFDaEIsV0FBVyxDQUFjO0lBQ3pCLFdBQVcsQ0FBVTtJQUNyQixVQUFVLENBQVU7SUFFNUIsWUFBWSxVQUFpQyxFQUFFO1FBQzdDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDO1FBQy9DLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUM7SUFDaEQsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztDQUNGIn0=
|
|
@@ -2,64 +2,6 @@ import { BaseFormatter } from '../classes.baseformatter.js';
|
|
|
2
2
|
import * as plugins from '../mod.plugins.js';
|
|
3
3
|
import * as paths from '../../paths.js';
|
|
4
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
|
-
// Parse package name and version, handling scoped packages like @scope/name@version
|
|
10
|
-
const isScoped = dependencyArg.startsWith('@');
|
|
11
|
-
const lastAtIndex = dependencyArg.lastIndexOf('@');
|
|
12
|
-
// For scoped packages, the version @ must come after the /
|
|
13
|
-
// For unscoped packages, any @ indicates a version
|
|
14
|
-
const hasVersion = isScoped
|
|
15
|
-
? lastAtIndex > dependencyArg.indexOf('/')
|
|
16
|
-
: lastAtIndex >= 0;
|
|
17
|
-
const packageName = hasVersion ? dependencyArg.slice(0, lastAtIndex) : dependencyArg;
|
|
18
|
-
const version = hasVersion ? dependencyArg.slice(lastAtIndex + 1) : 'latest';
|
|
19
|
-
const targetSections = [];
|
|
20
|
-
switch (position) {
|
|
21
|
-
case 'dep':
|
|
22
|
-
targetSections.push('dependencies');
|
|
23
|
-
break;
|
|
24
|
-
case 'devDep':
|
|
25
|
-
targetSections.push('devDependencies');
|
|
26
|
-
break;
|
|
27
|
-
case 'everywhere':
|
|
28
|
-
targetSections.push('dependencies', 'devDependencies');
|
|
29
|
-
break;
|
|
30
|
-
}
|
|
31
|
-
for (const section of targetSections) {
|
|
32
|
-
if (!packageJsonObject[section]) {
|
|
33
|
-
packageJsonObject[section] = {};
|
|
34
|
-
}
|
|
35
|
-
switch (constraint) {
|
|
36
|
-
case 'exclude':
|
|
37
|
-
delete packageJsonObject[section][packageName];
|
|
38
|
-
break;
|
|
39
|
-
case 'include':
|
|
40
|
-
if (!packageJsonObject[section][packageName]) {
|
|
41
|
-
packageJsonObject[section][packageName] =
|
|
42
|
-
version === 'latest' ? '^1.0.0' : version;
|
|
43
|
-
}
|
|
44
|
-
break;
|
|
45
|
-
case 'latest':
|
|
46
|
-
try {
|
|
47
|
-
const registry = new plugins.smartnpm.NpmRegistry();
|
|
48
|
-
const packageInfo = await registry.getPackageInfo(packageName);
|
|
49
|
-
const latestVersion = packageInfo['dist-tags'].latest;
|
|
50
|
-
packageJsonObject[section][packageName] = `^${latestVersion}`;
|
|
51
|
-
}
|
|
52
|
-
catch (error) {
|
|
53
|
-
logVerbose(`Could not fetch latest version for ${packageName}, using existing or default`);
|
|
54
|
-
if (!packageJsonObject[section][packageName]) {
|
|
55
|
-
packageJsonObject[section][packageName] =
|
|
56
|
-
version === 'latest' ? '^1.0.0' : version;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
break;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
5
|
export class PackageJsonFormatter extends BaseFormatter {
|
|
64
6
|
get name() {
|
|
65
7
|
return 'packagejson';
|
|
@@ -114,10 +56,6 @@ export class PackageJsonFormatter extends BaseFormatter {
|
|
|
114
56
|
if (!packageJson.scripts.build) {
|
|
115
57
|
packageJson.scripts.build = `echo "Not needed for now"`;
|
|
116
58
|
}
|
|
117
|
-
// Ensure buildDocs script exists
|
|
118
|
-
if (!packageJson.scripts.buildDocs) {
|
|
119
|
-
packageJson.scripts.buildDocs = `tsdoc`;
|
|
120
|
-
}
|
|
121
59
|
// Set files array
|
|
122
60
|
packageJson.files = [
|
|
123
61
|
'ts/**/*',
|
|
@@ -131,10 +69,6 @@ export class PackageJsonFormatter extends BaseFormatter {
|
|
|
131
69
|
'.smartconfig.json',
|
|
132
70
|
'readme.md',
|
|
133
71
|
];
|
|
134
|
-
// Handle dependencies
|
|
135
|
-
await ensureDependency(packageJson, 'devDep', 'exclude', '@push.rocks/tapbundle');
|
|
136
|
-
await ensureDependency(packageJson, 'devDep', 'latest', '@git.zone/tstest');
|
|
137
|
-
await ensureDependency(packageJson, 'devDep', 'latest', '@git.zone/tsbuild');
|
|
138
72
|
// Set pnpm overrides from assets
|
|
139
73
|
try {
|
|
140
74
|
const overridesContent = (await plugins.smartfs
|
|
@@ -168,4 +102,4 @@ export class PackageJsonFormatter extends BaseFormatter {
|
|
|
168
102
|
logger.log('info', 'Updated package.json');
|
|
169
103
|
}
|
|
170
104
|
}
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZWpzb24uZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvbW9kX2Zvcm1hdC9mb3JtYXR0ZXJzL3BhY2thZ2Vqc29uLmZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUQsT0FBTyxLQUFLLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFOUQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGFBQWE7SUFDckQsSUFBSSxJQUFJO1FBQ04sT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPO1FBQ1gsTUFBTSxPQUFPLEdBQXFCLEVBQUUsQ0FBQztRQUNyQyxNQUFNLGVBQWUsR0FBRyxjQUFjLENBQUM7UUFFdkMsdUJBQXVCO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDcEUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osVUFBVSxDQUFDLHVDQUF1QyxDQUFDLENBQUM7WUFDcEQsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUVELHVCQUF1QjtRQUN2QixNQUFNLGNBQWMsR0FBRyxDQUFDLE1BQU0sT0FBTyxDQUFDLE9BQU87YUFDMUMsSUFBSSxDQUFDLGVBQWUsQ0FBQzthQUNyQixRQUFRLENBQUMsTUFBTSxDQUFDO2FBQ2hCLElBQUksRUFBRSxDQUFXLENBQUM7UUFFckIsZ0NBQWdDO1FBQ2hDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFL0Msc0NB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
|
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
import { BaseFormatter } from
|
|
2
|
-
import type { IPlannedChange } from
|
|
1
|
+
import { BaseFormatter } from "../classes.baseformatter.js";
|
|
2
|
+
import type { IPlannedChange } from "../interfaces.format.js";
|
|
3
3
|
export declare class SmartconfigFormatter extends BaseFormatter {
|
|
4
4
|
get name(): string;
|
|
5
|
-
/**
|
|
6
|
-
* Find the config file, checking in priority order.
|
|
7
|
-
* Returns the path and whether it needs renaming.
|
|
8
|
-
*/
|
|
9
|
-
private findConfigFile;
|
|
10
5
|
analyze(): Promise<IPlannedChange[]>;
|
|
11
6
|
applyChange(change: IPlannedChange): Promise<void>;
|
|
12
7
|
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { BaseFormatter } from
|
|
2
|
-
import * as plugins from
|
|
3
|
-
import { logger, logVerbose } from
|
|
1
|
+
import { BaseFormatter } from "../classes.baseformatter.js";
|
|
2
|
+
import * as plugins from "../mod.plugins.js";
|
|
3
|
+
import { logger, logVerbose } from "../../gitzone.logging.js";
|
|
4
4
|
/**
|
|
5
5
|
* Migrates .smartconfig.json from old namespace keys to new package-scoped keys
|
|
6
6
|
*/
|
|
7
7
|
const migrateNamespaceKeys = (smartconfigJson) => {
|
|
8
8
|
let migrated = false;
|
|
9
9
|
const migrations = [
|
|
10
|
-
{ oldKey:
|
|
11
|
-
{ oldKey:
|
|
12
|
-
{ oldKey:
|
|
13
|
-
{ oldKey:
|
|
14
|
-
{ oldKey:
|
|
10
|
+
{ oldKey: "gitzone", newKey: "@git.zone/cli" },
|
|
11
|
+
{ oldKey: "tsdoc", newKey: "@git.zone/tsdoc" },
|
|
12
|
+
{ oldKey: "npmdocker", newKey: "@git.zone/tsdocker" },
|
|
13
|
+
{ oldKey: "npmci", newKey: "@ship.zone/szci" },
|
|
14
|
+
{ oldKey: "szci", newKey: "@ship.zone/szci" },
|
|
15
15
|
];
|
|
16
16
|
for (const { oldKey, newKey } of migrations) {
|
|
17
17
|
if (smartconfigJson[oldKey]) {
|
|
@@ -34,128 +34,97 @@ const migrateNamespaceKeys = (smartconfigJson) => {
|
|
|
34
34
|
* Migrates npmAccessLevel from @ship.zone/szci to @git.zone/cli.release.accessLevel
|
|
35
35
|
*/
|
|
36
36
|
const migrateAccessLevel = (smartconfigJson) => {
|
|
37
|
-
const szciConfig = smartconfigJson[
|
|
37
|
+
const szciConfig = smartconfigJson["@ship.zone/szci"];
|
|
38
38
|
if (!szciConfig?.npmAccessLevel) {
|
|
39
39
|
return false;
|
|
40
40
|
}
|
|
41
|
-
const gitzoneConfig = smartconfigJson[
|
|
41
|
+
const gitzoneConfig = smartconfigJson["@git.zone/cli"] || {};
|
|
42
42
|
if (gitzoneConfig?.release?.accessLevel) {
|
|
43
43
|
delete szciConfig.npmAccessLevel;
|
|
44
44
|
return true;
|
|
45
45
|
}
|
|
46
|
-
if (!smartconfigJson[
|
|
47
|
-
smartconfigJson[
|
|
46
|
+
if (!smartconfigJson["@git.zone/cli"]) {
|
|
47
|
+
smartconfigJson["@git.zone/cli"] = {};
|
|
48
48
|
}
|
|
49
|
-
if (!smartconfigJson[
|
|
50
|
-
smartconfigJson[
|
|
49
|
+
if (!smartconfigJson["@git.zone/cli"].release) {
|
|
50
|
+
smartconfigJson["@git.zone/cli"].release = {};
|
|
51
51
|
}
|
|
52
|
-
smartconfigJson[
|
|
52
|
+
smartconfigJson["@git.zone/cli"].release.accessLevel =
|
|
53
|
+
szciConfig.npmAccessLevel;
|
|
53
54
|
delete szciConfig.npmAccessLevel;
|
|
54
55
|
return true;
|
|
55
56
|
};
|
|
56
|
-
|
|
57
|
-
const CONFIG_FILE_NAMES = ['.smartconfig.json', 'smartconfig.json', 'npmextra.json'];
|
|
58
|
-
const TARGET_CONFIG_FILE = '.smartconfig.json';
|
|
57
|
+
const CONFIG_FILE = ".smartconfig.json";
|
|
59
58
|
export class SmartconfigFormatter extends BaseFormatter {
|
|
60
59
|
get name() {
|
|
61
|
-
return
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Find the config file, checking in priority order.
|
|
65
|
-
* Returns the path and whether it needs renaming.
|
|
66
|
-
*/
|
|
67
|
-
async findConfigFile() {
|
|
68
|
-
for (const filename of CONFIG_FILE_NAMES) {
|
|
69
|
-
const exists = await plugins.smartfs.file(filename).exists();
|
|
70
|
-
if (exists) {
|
|
71
|
-
return {
|
|
72
|
-
path: filename,
|
|
73
|
-
needsRename: filename !== TARGET_CONFIG_FILE,
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
return null;
|
|
60
|
+
return "smartconfig";
|
|
78
61
|
}
|
|
79
62
|
async analyze() {
|
|
80
63
|
const changes = [];
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
64
|
+
// File rename (npmextra.json/smartconfig.json → .smartconfig.json)
|
|
65
|
+
// is handled by the orchestrator before analysis.
|
|
66
|
+
// This formatter only operates on .smartconfig.json.
|
|
67
|
+
const exists = await plugins.smartfs.file(CONFIG_FILE).exists();
|
|
68
|
+
if (!exists) {
|
|
69
|
+
logVerbose(".smartconfig.json does not exist, skipping");
|
|
84
70
|
return changes;
|
|
85
71
|
}
|
|
86
|
-
// Read current content
|
|
87
72
|
const currentContent = (await plugins.smartfs
|
|
88
|
-
.file(
|
|
89
|
-
.encoding(
|
|
73
|
+
.file(CONFIG_FILE)
|
|
74
|
+
.encoding("utf8")
|
|
90
75
|
.read());
|
|
91
|
-
// Parse and apply migrations
|
|
92
76
|
const smartconfigJson = JSON.parse(currentContent);
|
|
77
|
+
// Apply key migrations
|
|
93
78
|
migrateNamespaceKeys(smartconfigJson);
|
|
94
79
|
migrateAccessLevel(smartconfigJson);
|
|
95
80
|
// Ensure namespaces exist
|
|
96
|
-
if (!smartconfigJson[
|
|
97
|
-
smartconfigJson[
|
|
81
|
+
if (!smartconfigJson["@git.zone/cli"]) {
|
|
82
|
+
smartconfigJson["@git.zone/cli"] = {};
|
|
98
83
|
}
|
|
99
|
-
if (!smartconfigJson[
|
|
100
|
-
smartconfigJson[
|
|
84
|
+
if (!smartconfigJson["@ship.zone/szci"]) {
|
|
85
|
+
smartconfigJson["@ship.zone/szci"] = {};
|
|
101
86
|
}
|
|
102
87
|
const newContent = JSON.stringify(smartconfigJson, null, 2);
|
|
103
|
-
|
|
104
|
-
if (configFile.needsRename) {
|
|
88
|
+
if (newContent !== currentContent) {
|
|
105
89
|
changes.push({
|
|
106
|
-
type:
|
|
107
|
-
path:
|
|
90
|
+
type: "modify",
|
|
91
|
+
path: CONFIG_FILE,
|
|
108
92
|
module: this.name,
|
|
109
|
-
description:
|
|
110
|
-
content: newContent,
|
|
111
|
-
});
|
|
112
|
-
changes.push({
|
|
113
|
-
type: 'delete',
|
|
114
|
-
path: configFile.path,
|
|
115
|
-
module: this.name,
|
|
116
|
-
description: `Remove old ${configFile.path}`,
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
else if (newContent !== currentContent) {
|
|
120
|
-
// File is already .smartconfig.json, just needs content update
|
|
121
|
-
changes.push({
|
|
122
|
-
type: 'modify',
|
|
123
|
-
path: TARGET_CONFIG_FILE,
|
|
124
|
-
module: this.name,
|
|
125
|
-
description: 'Migrate and format .smartconfig.json',
|
|
93
|
+
description: "Migrate and format .smartconfig.json",
|
|
126
94
|
content: newContent,
|
|
127
95
|
});
|
|
128
96
|
}
|
|
129
97
|
return changes;
|
|
130
98
|
}
|
|
131
99
|
async applyChange(change) {
|
|
132
|
-
if (change.type
|
|
133
|
-
await this.deleteFile(change.path);
|
|
134
|
-
logger.log('info', `Removed old config file ${change.path}`);
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
if (!change.content)
|
|
100
|
+
if (change.type !== "modify" || !change.content)
|
|
138
101
|
return;
|
|
139
|
-
// Parse the content to check for missing required fields
|
|
140
102
|
const smartconfigJson = JSON.parse(change.content);
|
|
103
|
+
// Check for missing required module information
|
|
141
104
|
const expectedRepoInformation = [
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
105
|
+
"projectType",
|
|
106
|
+
"module.githost",
|
|
107
|
+
"module.gitscope",
|
|
108
|
+
"module.gitrepo",
|
|
109
|
+
"module.description",
|
|
110
|
+
"module.npmPackagename",
|
|
111
|
+
"module.license",
|
|
149
112
|
];
|
|
150
113
|
const interactInstance = new plugins.smartinteract.SmartInteract();
|
|
114
|
+
const missingRepoInformation = expectedRepoInformation.filter((expectedRepoInformationItem) => {
|
|
115
|
+
return !plugins.smartobject.smartGet(smartconfigJson["@git.zone/cli"], expectedRepoInformationItem);
|
|
116
|
+
});
|
|
117
|
+
if (missingRepoInformation.length > 0 && !this.context.isInteractive()) {
|
|
118
|
+
throw new Error(`Missing required .smartconfig.json fields: ${missingRepoInformation.join(", ")}`);
|
|
119
|
+
}
|
|
151
120
|
for (const expectedRepoInformationItem of expectedRepoInformation) {
|
|
152
|
-
if (!plugins.smartobject.smartGet(smartconfigJson[
|
|
121
|
+
if (!plugins.smartobject.smartGet(smartconfigJson["@git.zone/cli"], expectedRepoInformationItem)) {
|
|
153
122
|
interactInstance.addQuestions([
|
|
154
123
|
{
|
|
155
124
|
message: `What is the value of ${expectedRepoInformationItem}`,
|
|
156
125
|
name: expectedRepoInformationItem,
|
|
157
|
-
type:
|
|
158
|
-
default:
|
|
126
|
+
type: "input",
|
|
127
|
+
default: "undefined variable",
|
|
159
128
|
},
|
|
160
129
|
]);
|
|
161
130
|
}
|
|
@@ -164,17 +133,12 @@ export class SmartconfigFormatter extends BaseFormatter {
|
|
|
164
133
|
for (const expectedRepoInformationItem of expectedRepoInformation) {
|
|
165
134
|
const cliProvidedValue = answerbucket.getAnswerFor(expectedRepoInformationItem);
|
|
166
135
|
if (cliProvidedValue) {
|
|
167
|
-
plugins.smartobject.smartAdd(smartconfigJson[
|
|
136
|
+
plugins.smartobject.smartAdd(smartconfigJson["@git.zone/cli"], expectedRepoInformationItem, cliProvidedValue);
|
|
168
137
|
}
|
|
169
138
|
}
|
|
170
139
|
const finalContent = JSON.stringify(smartconfigJson, null, 2);
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
}
|
|
174
|
-
else {
|
|
175
|
-
await this.modifyFile(change.path, finalContent);
|
|
176
|
-
}
|
|
177
|
-
logger.log('info', `Updated ${change.path}`);
|
|
140
|
+
await this.modifyFile(change.path, finalContent);
|
|
141
|
+
logger.log("info", "Updated .smartconfig.json");
|
|
178
142
|
}
|
|
179
143
|
}
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRjb25maWcuZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvbW9kX2Zvcm1hdC9mb3JtYXR0ZXJzL3NtYXJ0Y29uZmlnLmZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUQsT0FBTyxLQUFLLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTlEOztHQUVHO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLGVBQW9CLEVBQVcsRUFBRTtJQUM3RCxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDckIsTUFBTSxVQUFVLEdBQUc7UUFDakIsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUU7UUFDOUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRTtRQUM5QyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLG9CQUFvQixFQUFFO1FBQ3JELEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUU7UUFDOUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRTtLQUM5QyxDQUFDO0lBQ0YsS0FBSyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzVDLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUM3QixlQUFlLENBQUMsTUFBTSxDQUFDLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BELENBQUM7aUJBQU0sQ0FBQztn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
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ICliMode } from "../helpers.climode.js";
|
|
1
2
|
export declare let run: (options?: {
|
|
2
3
|
write?: boolean;
|
|
3
4
|
dryRun?: boolean;
|
|
@@ -9,8 +10,9 @@ export declare let run: (options?: {
|
|
|
9
10
|
interactive?: boolean;
|
|
10
11
|
verbose?: boolean;
|
|
11
12
|
diff?: boolean;
|
|
13
|
+
[key: string]: any;
|
|
12
14
|
}) => Promise<any>;
|
|
13
|
-
import type { ICheckResult } from
|
|
15
|
+
import type { ICheckResult } from "./interfaces.format.js";
|
|
14
16
|
export type { ICheckResult };
|
|
15
17
|
/**
|
|
16
18
|
* Run a single formatter by name (for use by other modules)
|
|
@@ -20,3 +22,4 @@ export declare const runFormatter: (formatterName: string, options?: {
|
|
|
20
22
|
checkOnly?: boolean;
|
|
21
23
|
showDiff?: boolean;
|
|
22
24
|
}) => Promise<ICheckResult | void>;
|
|
25
|
+
export declare function showHelp(mode?: ICliMode): void;
|