@nan0web/release 3.3.0 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -35
- package/bin/nan0release.js +33 -2
- package/bin/serve.js +73 -0
- package/package.json +46 -17
- package/src/Release/Document.js +1 -0
- package/src/Release/Scanner.js +3 -2
- package/src/Release.js +7 -7
- package/src/domain/App.js +33 -2
- package/src/domain/BumpCommand.js +10 -3
- package/src/domain/CheckCommand.js +504 -146
- package/src/domain/CheckCommand.story.js +92 -0
- package/src/domain/CloseCommand.js +13 -9
- package/src/domain/Dashboard/Dashboard.story.js +155 -0
- package/src/domain/Dashboard/DashboardModel.js +308 -0
- package/src/domain/Dashboard/ReleaseDiscovery.js +132 -0
- package/src/domain/Dashboard/ReleaseParser.js +226 -0
- package/src/domain/Dashboard/index.js +19 -0
- package/src/domain/DepsCommand.js +5 -2
- package/src/domain/InitCommand.js +18 -16
- package/src/domain/ListCommand.js +45 -0
- package/src/domain/PMaCParser.js +418 -0
- package/src/domain/PMaCParser.story.js +152 -0
- package/src/domain/PreviewCommand.js +39 -0
- package/src/domain/PublishCommand.js +7 -3
- package/src/domain/Registry/Registry.story.js +82 -0
- package/src/domain/Registry/RegistryModel.js +124 -0
- package/src/domain/ServeCommand.js +165 -0
- package/src/domain/ServeCommand.story.js +88 -0
- package/src/domain/SpecCommand.js +3 -1
- package/src/domain/StatusCommand.js +249 -3
- package/src/domain/ValidateCommand.js +426 -0
- package/src/domain/ValidateCommand.story.js +92 -0
- package/src/domain/ViewCommand.js +99 -0
- package/src/domain/WebCommand.js +140 -0
- package/src/domain/inspect/ReleaseAuditor.js +508 -0
- package/src/domain/inspect/ReleaseAuditor.story.js +136 -0
- package/src/domain/models/ReleaseIssueModel.js +27 -0
- package/src/domain/models/ReleaseMemberModel.js +21 -0
- package/src/domain/models/ReleaseModel.js +191 -0
- package/src/domain/models/ReleaseParityModel.js +27 -0
- package/src/domain/models/ReleaseTaskModel.js +33 -0
- package/src/domain/models/index.js +6 -0
- package/src/domain/templates/release.html +34 -0
- package/src/domain/templates/release.html.template.js +34 -0
- package/src/index.js +15 -0
- package/src/inspectors/inspect-js.js +32 -0
- package/src/releases/1/0/v1.0.3/task.test.js +1 -1
- package/src/utils/nodejs/GitTelemetry.js +154 -0
- package/types/Release/Document.d.ts +24 -27
- package/types/Release/MarkdownToTest.d.ts +1 -1
- package/types/Release/Person.d.ts +9 -7
- package/types/Release/Scanner.d.ts +41 -41
- package/types/Release.d.ts +42 -42
- package/types/architecture/ProjectManagementAsCode.d.ts +59 -64
- package/types/domain/App.d.ts +25 -7
- package/types/domain/BumpCommand.d.ts +11 -6
- package/types/domain/CheckCommand.d.ts +128 -16
- package/types/domain/CheckCommand.story.d.ts +1 -0
- package/types/domain/CloseCommand.d.ts +4 -6
- package/types/domain/Dashboard/Dashboard.story.d.ts +1 -0
- package/types/domain/Dashboard/DashboardModel.d.ts +273 -0
- package/types/domain/Dashboard/GitTelemetry.d.ts +23 -0
- package/types/domain/Dashboard/ReleaseDiscovery.d.ts +47 -0
- package/types/domain/Dashboard/ReleaseParser.d.ts +79 -0
- package/types/domain/Dashboard/index.d.ts +3 -0
- package/types/domain/DepsCommand.d.ts +6 -6
- package/types/domain/InitCommand.d.ts +4 -6
- package/types/domain/ListCommand.d.ts +18 -0
- package/types/domain/PMaCParser.d.ts +64 -0
- package/types/domain/PMaCParser.story.d.ts +1 -0
- package/types/domain/PreviewCommand.d.ts +6 -0
- package/types/domain/PublishCommand.d.ts +8 -6
- package/types/domain/Registry/Registry.story.d.ts +1 -0
- package/types/domain/Registry/RegistryModel.d.ts +61 -0
- package/types/domain/ServeCommand.d.ts +59 -0
- package/types/domain/ServeCommand.story.d.ts +1 -0
- package/types/domain/SpecCommand.d.ts +4 -6
- package/types/domain/StatusCommand.d.ts +38 -3
- package/types/domain/ValidateCommand.d.ts +69 -0
- package/types/domain/ValidateCommand.story.d.ts +1 -0
- package/types/domain/ViewCommand.d.ts +27 -0
- package/types/domain/WebCommand.d.ts +47 -0
- package/types/domain/inspect/ReleaseAuditor.d.ts +134 -0
- package/types/domain/inspect/ReleaseAuditor.story.d.ts +1 -0
- package/types/domain/models/ReleaseIssueModel.d.ts +35 -0
- package/types/domain/models/ReleaseMemberModel.d.ts +25 -0
- package/types/domain/models/ReleaseModel.d.ts +122 -0
- package/types/domain/models/ReleaseParityModel.d.ts +37 -0
- package/types/domain/models/ReleaseTaskModel.d.ts +46 -0
- package/types/domain/models/index.d.ts +5 -0
- package/types/domain/templates/release.html.template.d.ts +2 -0
- package/types/index.d.ts +21 -10
- package/types/inspectors/inspect-js.d.ts +2 -0
- package/types/utils/nodejs/GitTelemetry.d.ts +23 -0
|
@@ -1,39 +1,3 @@
|
|
|
1
|
-
export type ContractEntry = {
|
|
2
|
-
/**
|
|
3
|
-
* - Release version (e.g. "v1.0.0")
|
|
4
|
-
*/
|
|
5
|
-
version: string;
|
|
6
|
-
/**
|
|
7
|
-
* - Absolute path to the contract file
|
|
8
|
-
*/
|
|
9
|
-
path: string;
|
|
10
|
-
/**
|
|
11
|
-
* - "spec" or "test"
|
|
12
|
-
*/
|
|
13
|
-
type: string;
|
|
14
|
-
/**
|
|
15
|
-
* - Directory containing the contract
|
|
16
|
-
*/
|
|
17
|
-
dir: string;
|
|
18
|
-
};
|
|
19
|
-
export type VersionStatus = {
|
|
20
|
-
/**
|
|
21
|
-
* - Release version
|
|
22
|
-
*/
|
|
23
|
-
version: string;
|
|
24
|
-
/**
|
|
25
|
-
* - Version state
|
|
26
|
-
*/
|
|
27
|
-
state: 'wip' | 'closed' | 'mixed';
|
|
28
|
-
/**
|
|
29
|
-
* - Paths to spec files
|
|
30
|
-
*/
|
|
31
|
-
specs: string[];
|
|
32
|
-
/**
|
|
33
|
-
* - Paths to test files
|
|
34
|
-
*/
|
|
35
|
-
tests: string[];
|
|
36
|
-
};
|
|
37
1
|
/**
|
|
38
2
|
* @typedef {Object} ContractEntry
|
|
39
3
|
* @property {string} version - Release version (e.g. "v1.0.0")
|
|
@@ -54,13 +18,12 @@ export type VersionStatus = {
|
|
|
54
18
|
* та плоску: releases/v{version}/
|
|
55
19
|
*/
|
|
56
20
|
export default class Scanner {
|
|
57
|
-
#private;
|
|
58
|
-
/** @type {string} */
|
|
59
|
-
root: string;
|
|
60
21
|
/**
|
|
61
|
-
* @param {string} root - Root directory of the project
|
|
22
|
+
* @param {string} [root] - Root directory of the project
|
|
62
23
|
*/
|
|
63
|
-
constructor(root
|
|
24
|
+
constructor(root?: string);
|
|
25
|
+
/** @type {string} */
|
|
26
|
+
root: string;
|
|
64
27
|
/**
|
|
65
28
|
* Find all .spec.js files (WIP contracts)
|
|
66
29
|
* @param {string} [version] - Optional version filter
|
|
@@ -87,4 +50,41 @@ export default class Scanner {
|
|
|
87
50
|
closed: number;
|
|
88
51
|
files: string[];
|
|
89
52
|
};
|
|
53
|
+
#private;
|
|
90
54
|
}
|
|
55
|
+
export type ContractEntry = {
|
|
56
|
+
/**
|
|
57
|
+
* - Release version (e.g. "v1.0.0")
|
|
58
|
+
*/
|
|
59
|
+
version: string;
|
|
60
|
+
/**
|
|
61
|
+
* - Absolute path to the contract file
|
|
62
|
+
*/
|
|
63
|
+
path: string;
|
|
64
|
+
/**
|
|
65
|
+
* - "spec" or "test"
|
|
66
|
+
*/
|
|
67
|
+
type: string;
|
|
68
|
+
/**
|
|
69
|
+
* - Directory containing the contract
|
|
70
|
+
*/
|
|
71
|
+
dir: string;
|
|
72
|
+
};
|
|
73
|
+
export type VersionStatus = {
|
|
74
|
+
/**
|
|
75
|
+
* - Release version
|
|
76
|
+
*/
|
|
77
|
+
version: string;
|
|
78
|
+
/**
|
|
79
|
+
* - Version state
|
|
80
|
+
*/
|
|
81
|
+
state: "wip" | "closed" | "mixed";
|
|
82
|
+
/**
|
|
83
|
+
* - Paths to spec files
|
|
84
|
+
*/
|
|
85
|
+
specs: string[];
|
|
86
|
+
/**
|
|
87
|
+
* - Paths to test files
|
|
88
|
+
*/
|
|
89
|
+
tests: string[];
|
|
90
|
+
};
|
package/types/Release.d.ts
CHANGED
|
@@ -1,39 +1,3 @@
|
|
|
1
|
-
import ReleaseDocument from './Release/Document.js';
|
|
2
|
-
import Logger from '@nan0web/log';
|
|
3
|
-
export type ReleaseConfig = {
|
|
4
|
-
/**
|
|
5
|
-
* - Release version
|
|
6
|
-
*/
|
|
7
|
-
version?: string;
|
|
8
|
-
/**
|
|
9
|
-
* -
|
|
10
|
-
*/
|
|
11
|
-
createdAt?: string | number | Date | undefined;
|
|
12
|
-
/**
|
|
13
|
-
* - Alias for createdAt
|
|
14
|
-
*/
|
|
15
|
-
date?: string | number | Date | undefined;
|
|
16
|
-
/**
|
|
17
|
-
* -
|
|
18
|
-
*/
|
|
19
|
-
startAt?: string | number | Date | undefined;
|
|
20
|
-
/**
|
|
21
|
-
* -
|
|
22
|
-
*/
|
|
23
|
-
planAt?: string | number | Date | undefined;
|
|
24
|
-
/**
|
|
25
|
-
* -
|
|
26
|
-
*/
|
|
27
|
-
completeAt?: string | number | Date | undefined;
|
|
28
|
-
/**
|
|
29
|
-
* -
|
|
30
|
-
*/
|
|
31
|
-
document?: string | ReleaseDocument;
|
|
32
|
-
/**
|
|
33
|
-
* - Task map with test functions
|
|
34
|
-
*/
|
|
35
|
-
tasks?: Map<string, Function>;
|
|
36
|
-
};
|
|
37
1
|
/**
|
|
38
2
|
* @typedef {Object} ReleaseConfig
|
|
39
3
|
* @property {string} [version] - Release version
|
|
@@ -49,6 +13,11 @@ export type ReleaseConfig = {
|
|
|
49
13
|
* Release management class that coordinates task validation and release execution
|
|
50
14
|
*/
|
|
51
15
|
export default class Release {
|
|
16
|
+
/**
|
|
17
|
+
* Creates a Release instance
|
|
18
|
+
* @param {ReleaseConfig} config - Release configuration
|
|
19
|
+
*/
|
|
20
|
+
constructor(config?: ReleaseConfig);
|
|
52
21
|
/** @type {string} */
|
|
53
22
|
version: string;
|
|
54
23
|
/** @type {Date} */
|
|
@@ -65,11 +34,6 @@ export default class Release {
|
|
|
65
34
|
document: ReleaseDocument;
|
|
66
35
|
/** @type {Logger} */
|
|
67
36
|
logger: Logger;
|
|
68
|
-
/**
|
|
69
|
-
* Creates a Release instance
|
|
70
|
-
* @param {ReleaseConfig} config - Release configuration
|
|
71
|
-
*/
|
|
72
|
-
constructor(config?: ReleaseConfig);
|
|
73
37
|
get path(): string;
|
|
74
38
|
/**
|
|
75
39
|
* Validate release by running all task tests
|
|
@@ -83,7 +47,7 @@ export default class Release {
|
|
|
83
47
|
* @returns {Promise<boolean>} Release success status
|
|
84
48
|
*/
|
|
85
49
|
execute(options?: {
|
|
86
|
-
ignoreFailTests?: boolean;
|
|
50
|
+
ignoreFailTests?: boolean | undefined;
|
|
87
51
|
}): Promise<boolean>;
|
|
88
52
|
/**
|
|
89
53
|
* Get release progress statistics
|
|
@@ -91,3 +55,39 @@ export default class Release {
|
|
|
91
55
|
*/
|
|
92
56
|
getProgress(): Promise<any>;
|
|
93
57
|
}
|
|
58
|
+
export type ReleaseConfig = {
|
|
59
|
+
/**
|
|
60
|
+
* - Release version
|
|
61
|
+
*/
|
|
62
|
+
version?: string | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* -
|
|
65
|
+
*/
|
|
66
|
+
createdAt?: string | number | Date | undefined;
|
|
67
|
+
/**
|
|
68
|
+
* - Alias for createdAt
|
|
69
|
+
*/
|
|
70
|
+
date?: string | number | Date | undefined;
|
|
71
|
+
/**
|
|
72
|
+
* -
|
|
73
|
+
*/
|
|
74
|
+
startAt?: string | number | Date | undefined;
|
|
75
|
+
/**
|
|
76
|
+
* -
|
|
77
|
+
*/
|
|
78
|
+
planAt?: string | number | Date | undefined;
|
|
79
|
+
/**
|
|
80
|
+
* -
|
|
81
|
+
*/
|
|
82
|
+
completeAt?: string | number | Date | undefined;
|
|
83
|
+
/**
|
|
84
|
+
* -
|
|
85
|
+
*/
|
|
86
|
+
document?: string | ReleaseDocument | undefined;
|
|
87
|
+
/**
|
|
88
|
+
* - Task map with test functions
|
|
89
|
+
*/
|
|
90
|
+
tasks?: Map<string, Function> | undefined;
|
|
91
|
+
};
|
|
92
|
+
import ReleaseDocument from './Release/Document.js';
|
|
93
|
+
import Logger from '@nan0web/log';
|
|
@@ -1,42 +1,18 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* # Project Management as Code Architecture
|
|
3
|
-
*
|
|
4
|
-
* This architecture implements project management through automated testing,
|
|
5
|
-
* where each task is represented as a test case that validates system behavior.
|
|
6
|
-
*
|
|
7
|
-
* ## Core Concepts
|
|
8
|
-
*
|
|
9
|
-
* 1. **Tasks as Tests**: Each project task becomes a test suite that validates
|
|
10
|
-
* implementation correctness
|
|
11
|
-
* 2. **Status Tracking**: Task status moves automatically through CI/CD pipeline
|
|
12
|
-
* when tests pass/fail
|
|
13
|
-
* 3. **Release Validation**: Releases are validated by running task tests as
|
|
14
|
-
* part of the release process
|
|
15
|
-
*
|
|
16
|
-
* ## Implementation Details
|
|
17
|
-
*/
|
|
18
|
-
/**
|
|
19
|
-
* Base TestSuite class for task management
|
|
20
|
-
*/
|
|
21
|
-
declare class TestSuite {
|
|
22
|
-
name: string;
|
|
23
|
-
fn: Function;
|
|
24
|
-
/**
|
|
25
|
-
* @param {string} name - Suite name
|
|
26
|
-
* @param {Function} fn - Test function
|
|
27
|
-
*/
|
|
28
|
-
constructor(name: string, fn: Function);
|
|
29
|
-
/**
|
|
30
|
-
* Run the test suite
|
|
31
|
-
* @returns {Promise<Object>}
|
|
32
|
-
*/
|
|
33
|
-
run(): Promise<any>;
|
|
34
|
-
}
|
|
35
1
|
/**
|
|
36
2
|
* Task management through node:test infrastructure
|
|
37
3
|
* @class ProjectManagement
|
|
38
4
|
*/
|
|
39
|
-
export
|
|
5
|
+
export class ProjectManagement {
|
|
6
|
+
/**
|
|
7
|
+
* Initialize project management system
|
|
8
|
+
* @param {Object} [config] - Configuration options
|
|
9
|
+
* @param {string} [config.projectPath] - Path to project root
|
|
10
|
+
* @param {boolean} [config.autoTrack] - Enable automatic status tracking
|
|
11
|
+
*/
|
|
12
|
+
constructor(config?: {
|
|
13
|
+
projectPath?: string | undefined;
|
|
14
|
+
autoTrack?: boolean | undefined;
|
|
15
|
+
});
|
|
40
16
|
/** @type {string} */
|
|
41
17
|
projectPath: string;
|
|
42
18
|
/** @type {boolean} */
|
|
@@ -46,16 +22,6 @@ export declare class ProjectManagement {
|
|
|
46
22
|
* @type {Map<string, string>}
|
|
47
23
|
*/
|
|
48
24
|
tasks: Map<string, string>;
|
|
49
|
-
/**
|
|
50
|
-
* Initialize project management system
|
|
51
|
-
* @param {Object} [config] - Configuration options
|
|
52
|
-
* @param {string} [config.projectPath] - Path to project root
|
|
53
|
-
* @param {boolean} [config.autoTrack] - Enable automatic status tracking
|
|
54
|
-
*/
|
|
55
|
-
constructor(config?: {
|
|
56
|
-
projectPath?: string;
|
|
57
|
-
autoTrack?: boolean;
|
|
58
|
-
});
|
|
59
25
|
/**
|
|
60
26
|
* Register a task with its validation test
|
|
61
27
|
* @param {string} taskId - Unique task identifier
|
|
@@ -84,16 +50,16 @@ export declare class ProjectManagement {
|
|
|
84
50
|
* Release management system that coordinates task validation
|
|
85
51
|
* @class ReleaseManager
|
|
86
52
|
*/
|
|
87
|
-
export
|
|
88
|
-
/**
|
|
89
|
-
* @type {ProjectManagement}
|
|
90
|
-
*/
|
|
91
|
-
projectManager: ProjectManagement;
|
|
53
|
+
export class ReleaseManager {
|
|
92
54
|
/**
|
|
93
55
|
* Initialize release manager
|
|
94
56
|
* @param {ProjectManagement} projectManager - Project management instance
|
|
95
57
|
*/
|
|
96
58
|
constructor(projectManager: ProjectManagement);
|
|
59
|
+
/**
|
|
60
|
+
* @type {ProjectManagement}
|
|
61
|
+
*/
|
|
62
|
+
projectManager: ProjectManagement;
|
|
97
63
|
/**
|
|
98
64
|
* Execute release process with task validation
|
|
99
65
|
* @param {string} type - Release type (patch, minor, major)
|
|
@@ -119,7 +85,14 @@ export declare class ReleaseManager {
|
|
|
119
85
|
* Task test suite definition following node:test format
|
|
120
86
|
* @extends TestSuite
|
|
121
87
|
*/
|
|
122
|
-
export
|
|
88
|
+
export class TaskTestSuite extends TestSuite {
|
|
89
|
+
/**
|
|
90
|
+
* Initialize task test suite
|
|
91
|
+
* @param {string} taskId - Unique task identifier
|
|
92
|
+
* @param {string} description - Human-readable task description
|
|
93
|
+
* @param {Function} testFunction - Test implementation function
|
|
94
|
+
*/
|
|
95
|
+
constructor(taskId: string, description: string, testFunction: Function);
|
|
123
96
|
/**
|
|
124
97
|
* Task ID this test suite validates
|
|
125
98
|
* @type {string}
|
|
@@ -130,24 +103,12 @@ export declare class TaskTestSuite extends TestSuite {
|
|
|
130
103
|
* @type {string}
|
|
131
104
|
*/
|
|
132
105
|
description: string;
|
|
133
|
-
/**
|
|
134
|
-
* Initialize task test suite
|
|
135
|
-
* @param {string} taskId - Unique task identifier
|
|
136
|
-
* @param {string} description - Human-readable task description
|
|
137
|
-
* @param {Function} testFunction - Test implementation function
|
|
138
|
-
*/
|
|
139
|
-
constructor(taskId: string, description: string, testFunction: Function);
|
|
140
|
-
/**
|
|
141
|
-
* Execute task validation test
|
|
142
|
-
* @returns {Promise<Object>} Test execution result
|
|
143
|
-
*/
|
|
144
|
-
run(): Promise<any>;
|
|
145
106
|
}
|
|
146
107
|
/**
|
|
147
108
|
* Changelog-based task management for LLM-assisted development
|
|
148
109
|
* @class ChangelogTaskManager
|
|
149
110
|
*/
|
|
150
|
-
export
|
|
111
|
+
export class ChangelogTaskManager {
|
|
151
112
|
/**
|
|
152
113
|
* Parse changelog to extract tasks and their statuses
|
|
153
114
|
* @param {string} changelogContent - Raw changelog markdown
|
|
@@ -161,4 +122,38 @@ export declare class ChangelogTaskManager {
|
|
|
161
122
|
*/
|
|
162
123
|
generateTaskTests(tasks: Array<any>): Promise<void>;
|
|
163
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* # Project Management as Code Architecture
|
|
127
|
+
*
|
|
128
|
+
* This architecture implements project management through automated testing,
|
|
129
|
+
* where each task is represented as a test case that validates system behavior.
|
|
130
|
+
*
|
|
131
|
+
* ## Core Concepts
|
|
132
|
+
*
|
|
133
|
+
* 1. **Tasks as Tests**: Each project task becomes a test suite that validates
|
|
134
|
+
* implementation correctness
|
|
135
|
+
* 2. **Status Tracking**: Task status moves automatically through CI/CD pipeline
|
|
136
|
+
* when tests pass/fail
|
|
137
|
+
* 3. **Release Validation**: Releases are validated by running task tests as
|
|
138
|
+
* part of the release process
|
|
139
|
+
*
|
|
140
|
+
* ## Implementation Details
|
|
141
|
+
*/
|
|
142
|
+
/**
|
|
143
|
+
* Base TestSuite class for task management
|
|
144
|
+
*/
|
|
145
|
+
declare class TestSuite {
|
|
146
|
+
/**
|
|
147
|
+
* @param {string} name - Suite name
|
|
148
|
+
* @param {Function} fn - Test function
|
|
149
|
+
*/
|
|
150
|
+
constructor(name: string, fn: Function);
|
|
151
|
+
name: string;
|
|
152
|
+
fn: Function;
|
|
153
|
+
/**
|
|
154
|
+
* Run the test suite
|
|
155
|
+
* @returns {Promise<Object>}
|
|
156
|
+
*/
|
|
157
|
+
run(): Promise<any>;
|
|
158
|
+
}
|
|
164
159
|
export {};
|
package/types/domain/App.d.ts
CHANGED
|
@@ -1,16 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
export class ReleaseApp extends ModelAsApp {
|
|
2
|
+
static alias: string;
|
|
3
|
+
static UI: {
|
|
4
|
+
title: string;
|
|
5
|
+
};
|
|
5
6
|
static command: {
|
|
6
7
|
help: string;
|
|
7
|
-
options: (typeof CheckCommand | typeof StatusCommand)[];
|
|
8
|
+
options: (typeof CheckCommand | typeof CloseCommand | typeof DepsCommand | typeof PublishCommand | typeof StatusCommand | typeof WebCommand | typeof ListCommand | typeof ServeCommand | typeof ValidateCommand)[];
|
|
8
9
|
positional: boolean;
|
|
9
|
-
default:
|
|
10
|
+
default: typeof ViewCommand;
|
|
10
11
|
};
|
|
11
12
|
/**
|
|
12
13
|
* @param {Partial<ReleaseApp>} [data]
|
|
13
14
|
* @param {Partial<import('@nan0web/ui').ModelAsAppOptions>} [options]
|
|
14
15
|
*/
|
|
15
|
-
constructor(data?: Partial<ReleaseApp>, options?: Partial<import(
|
|
16
|
+
constructor(data?: Partial<ReleaseApp>, options?: Partial<import("@nan0web/ui").ModelAsAppOptions>);
|
|
17
|
+
/**
|
|
18
|
+
* Run the main controller logic.
|
|
19
|
+
* @returns {AsyncGenerator<import('@nan0web/ui').Intent, any, any>}
|
|
20
|
+
*/
|
|
21
|
+
run(): AsyncGenerator<import("@nan0web/ui").Intent, any, any>;
|
|
16
22
|
}
|
|
23
|
+
export default ReleaseApp;
|
|
24
|
+
import { ModelAsApp } from "@nan0web/ui";
|
|
25
|
+
import CheckCommand from './CheckCommand.js';
|
|
26
|
+
import CloseCommand from './CloseCommand.js';
|
|
27
|
+
import DepsCommand from './DepsCommand.js';
|
|
28
|
+
import PublishCommand from './PublishCommand.js';
|
|
29
|
+
import StatusCommand from './StatusCommand.js';
|
|
30
|
+
import WebCommand from './WebCommand.js';
|
|
31
|
+
import ListCommand from './ListCommand.js';
|
|
32
|
+
import ServeCommand from './ServeCommand.js';
|
|
33
|
+
import ValidateCommand from './ValidateCommand.js';
|
|
34
|
+
import ViewCommand from './ViewCommand.js';
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { ModelAsApp } from '@nan0web/ui';
|
|
2
1
|
/**
|
|
3
2
|
* Command to bump the version of changed packages in the monorepo.
|
|
3
|
+
* @property {string} version Target version to set
|
|
4
|
+
* @property {string} since Git reference to diff against
|
|
5
|
+
* @property {boolean} dryRun Run the command without making any changes
|
|
4
6
|
*/
|
|
5
7
|
export default class BumpCommand extends ModelAsApp {
|
|
6
8
|
static version: {
|
|
@@ -32,9 +34,12 @@ export default class BumpCommand extends ModelAsApp {
|
|
|
32
34
|
* @param {Partial<BumpCommand>} [data]
|
|
33
35
|
* @param {Partial<import('@nan0web/ui').ModelAsAppOptions>} [options]
|
|
34
36
|
*/
|
|
35
|
-
constructor(data?: Partial<BumpCommand>, options?: Partial<import(
|
|
36
|
-
/**
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
constructor(data?: Partial<BumpCommand>, options?: Partial<import("@nan0web/ui").ModelAsAppOptions>);
|
|
38
|
+
/** @type {string} Target version */
|
|
39
|
+
version: string;
|
|
40
|
+
/** @type {string} Git reference to diff against */
|
|
41
|
+
since: string;
|
|
42
|
+
/** @type {boolean} Run without making changes */
|
|
43
|
+
dryRun: boolean;
|
|
40
44
|
}
|
|
45
|
+
import { ModelAsApp } from '@nan0web/ui';
|
|
@@ -1,24 +1,136 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {Object} DiagnosticItem
|
|
3
|
+
* @property {'error' | 'warning' | 'info'} level
|
|
4
|
+
* @property {string} code
|
|
5
|
+
* @property {string} project
|
|
6
|
+
* @property {string} message
|
|
7
|
+
* @property {string} file
|
|
8
|
+
* @property {string} fix
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* CheckCommand - PM-as-Code Release Structure & Compliance Validator.
|
|
12
|
+
*/
|
|
13
|
+
export class CheckCommand extends ModelAsApp {
|
|
14
|
+
static alias: string;
|
|
3
15
|
static UI: {
|
|
16
|
+
errorDbRequired: string;
|
|
4
17
|
title: string;
|
|
5
|
-
|
|
6
|
-
|
|
18
|
+
header: string;
|
|
19
|
+
scanningCount: string;
|
|
20
|
+
projectHeader: string;
|
|
21
|
+
missingPackageJson: string;
|
|
22
|
+
packageJsonValid: string;
|
|
23
|
+
noReleasesDir: string;
|
|
24
|
+
releasesDirFound: string;
|
|
25
|
+
releaseHeader: string;
|
|
26
|
+
releaseDocCompleted: string;
|
|
27
|
+
missingReleaseDoc: string;
|
|
28
|
+
missingUserDoc: string;
|
|
29
|
+
incompleteUserMetrics: string;
|
|
30
|
+
userMetricsValid: string;
|
|
31
|
+
ambiguousContracts: string;
|
|
32
|
+
missingContract: string;
|
|
33
|
+
activeContractWip: string;
|
|
34
|
+
sealedRegressionClosed: string;
|
|
35
|
+
orphanFile: string;
|
|
36
|
+
recommendationsHeader: string;
|
|
37
|
+
recommendationItem: string;
|
|
38
|
+
summary: string;
|
|
39
|
+
Diagnostics: {
|
|
40
|
+
MISSING_PACKAGE_JSON: {
|
|
41
|
+
level: string;
|
|
42
|
+
code: string;
|
|
43
|
+
message: string;
|
|
44
|
+
fix: string;
|
|
45
|
+
};
|
|
46
|
+
MISSING_RELEASES_DIR: {
|
|
47
|
+
level: string;
|
|
48
|
+
code: string;
|
|
49
|
+
message: string;
|
|
50
|
+
fix: string;
|
|
51
|
+
};
|
|
52
|
+
MISSING_RELEASE_MD: {
|
|
53
|
+
level: string;
|
|
54
|
+
code: string;
|
|
55
|
+
message: string;
|
|
56
|
+
fix: string;
|
|
57
|
+
};
|
|
58
|
+
MISSING_USER_MD: {
|
|
59
|
+
level: string;
|
|
60
|
+
code: string;
|
|
61
|
+
message: string;
|
|
62
|
+
fix: string;
|
|
63
|
+
};
|
|
64
|
+
INCOMPLETE_USER_METRICS: {
|
|
65
|
+
level: string;
|
|
66
|
+
code: string;
|
|
67
|
+
message: string;
|
|
68
|
+
fix: string;
|
|
69
|
+
};
|
|
70
|
+
AMBIGUOUS_CONTRACTS: {
|
|
71
|
+
level: string;
|
|
72
|
+
code: string;
|
|
73
|
+
message: string;
|
|
74
|
+
fix: string;
|
|
75
|
+
};
|
|
76
|
+
MISSING_CONTRACT: {
|
|
77
|
+
level: string;
|
|
78
|
+
code: string;
|
|
79
|
+
message: string;
|
|
80
|
+
fix: string;
|
|
81
|
+
};
|
|
82
|
+
ORPHAN_RELEASE_FILE: {
|
|
83
|
+
level: string;
|
|
84
|
+
code: string;
|
|
85
|
+
message: string;
|
|
86
|
+
fix: string;
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
static target: {
|
|
91
|
+
help: string;
|
|
92
|
+
default: string;
|
|
93
|
+
type: string;
|
|
94
|
+
positional: boolean;
|
|
95
|
+
};
|
|
96
|
+
static registryFile: {
|
|
97
|
+
help: string;
|
|
98
|
+
default: string;
|
|
99
|
+
type: string;
|
|
100
|
+
alias: string;
|
|
101
|
+
};
|
|
102
|
+
static all: {
|
|
103
|
+
help: string;
|
|
104
|
+
default: boolean;
|
|
105
|
+
type: string;
|
|
106
|
+
alias: string;
|
|
7
107
|
};
|
|
8
|
-
static name: string;
|
|
9
|
-
/**
|
|
10
|
-
* @returns {AsyncGenerator<any, any, any>}
|
|
11
|
-
*/
|
|
12
|
-
run(): AsyncGenerator<any, any, any>;
|
|
13
108
|
/**
|
|
14
|
-
* @param {
|
|
15
|
-
* @
|
|
109
|
+
* @param {Partial<CheckCommand>} [data]
|
|
110
|
+
* @param {Partial<import('@nan0web/ui').ModelAsAppOptions>} [options]
|
|
16
111
|
*/
|
|
17
|
-
|
|
112
|
+
constructor(data?: Partial<CheckCommand>, options?: Partial<import("@nan0web/ui").ModelAsAppOptions>);
|
|
113
|
+
/** @type {string} */ target: string;
|
|
114
|
+
/** @type {string} */ registryFile: string;
|
|
115
|
+
/** @type {boolean} */ all: boolean;
|
|
18
116
|
/**
|
|
19
|
-
*
|
|
20
|
-
* @
|
|
21
|
-
* @returns {Promise<string[]>}
|
|
117
|
+
* Execute release structure check
|
|
118
|
+
* @returns {AsyncGenerator<import('@nan0web/ui').Intent, { success: boolean, diagnostics: DiagnosticItem[], checkedProjects: any[] }, any>}
|
|
22
119
|
*/
|
|
23
|
-
|
|
120
|
+
run(): AsyncGenerator<import("@nan0web/ui").Intent, {
|
|
121
|
+
success: boolean;
|
|
122
|
+
diagnostics: DiagnosticItem[];
|
|
123
|
+
checkedProjects: any[];
|
|
124
|
+
}, any>;
|
|
125
|
+
#private;
|
|
24
126
|
}
|
|
127
|
+
export default CheckCommand;
|
|
128
|
+
export type DiagnosticItem = {
|
|
129
|
+
level: "error" | "warning" | "info";
|
|
130
|
+
code: string;
|
|
131
|
+
project: string;
|
|
132
|
+
message: string;
|
|
133
|
+
file: string;
|
|
134
|
+
fix: string;
|
|
135
|
+
};
|
|
136
|
+
import { ModelAsApp } from '@nan0web/ui';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { ModelAsApp } from '@nan0web/ui';
|
|
2
1
|
export default class CloseCommand extends ModelAsApp {
|
|
3
2
|
static version: {
|
|
4
3
|
help: string;
|
|
@@ -12,9 +11,8 @@ export default class CloseCommand extends ModelAsApp {
|
|
|
12
11
|
* @param {Partial<CloseCommand>} [data]
|
|
13
12
|
* @param {Partial<import('@nan0web/ui').ModelAsAppOptions>} [options]
|
|
14
13
|
*/
|
|
15
|
-
constructor(data?: Partial<CloseCommand>, options?: Partial<import(
|
|
16
|
-
/**
|
|
17
|
-
|
|
18
|
-
*/
|
|
19
|
-
run(): AsyncGenerator<import('@nan0web/ui').Intent, import('@nan0web/ui').ResultIntent, any>;
|
|
14
|
+
constructor(data?: Partial<CloseCommand>, options?: Partial<import("@nan0web/ui").ModelAsAppOptions>);
|
|
15
|
+
/** @type {string} Release version */
|
|
16
|
+
version: string;
|
|
20
17
|
}
|
|
18
|
+
import { ModelAsApp } from '@nan0web/ui';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|