@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.
Files changed (94) hide show
  1. package/README.md +0 -35
  2. package/bin/nan0release.js +33 -2
  3. package/bin/serve.js +73 -0
  4. package/package.json +46 -17
  5. package/src/Release/Document.js +1 -0
  6. package/src/Release/Scanner.js +3 -2
  7. package/src/Release.js +7 -7
  8. package/src/domain/App.js +33 -2
  9. package/src/domain/BumpCommand.js +10 -3
  10. package/src/domain/CheckCommand.js +504 -146
  11. package/src/domain/CheckCommand.story.js +92 -0
  12. package/src/domain/CloseCommand.js +13 -9
  13. package/src/domain/Dashboard/Dashboard.story.js +155 -0
  14. package/src/domain/Dashboard/DashboardModel.js +308 -0
  15. package/src/domain/Dashboard/ReleaseDiscovery.js +132 -0
  16. package/src/domain/Dashboard/ReleaseParser.js +226 -0
  17. package/src/domain/Dashboard/index.js +19 -0
  18. package/src/domain/DepsCommand.js +5 -2
  19. package/src/domain/InitCommand.js +18 -16
  20. package/src/domain/ListCommand.js +45 -0
  21. package/src/domain/PMaCParser.js +418 -0
  22. package/src/domain/PMaCParser.story.js +152 -0
  23. package/src/domain/PreviewCommand.js +39 -0
  24. package/src/domain/PublishCommand.js +7 -3
  25. package/src/domain/Registry/Registry.story.js +82 -0
  26. package/src/domain/Registry/RegistryModel.js +124 -0
  27. package/src/domain/ServeCommand.js +165 -0
  28. package/src/domain/ServeCommand.story.js +88 -0
  29. package/src/domain/SpecCommand.js +3 -1
  30. package/src/domain/StatusCommand.js +249 -3
  31. package/src/domain/ValidateCommand.js +426 -0
  32. package/src/domain/ValidateCommand.story.js +92 -0
  33. package/src/domain/ViewCommand.js +99 -0
  34. package/src/domain/WebCommand.js +140 -0
  35. package/src/domain/inspect/ReleaseAuditor.js +508 -0
  36. package/src/domain/inspect/ReleaseAuditor.story.js +136 -0
  37. package/src/domain/models/ReleaseIssueModel.js +27 -0
  38. package/src/domain/models/ReleaseMemberModel.js +21 -0
  39. package/src/domain/models/ReleaseModel.js +191 -0
  40. package/src/domain/models/ReleaseParityModel.js +27 -0
  41. package/src/domain/models/ReleaseTaskModel.js +33 -0
  42. package/src/domain/models/index.js +6 -0
  43. package/src/domain/templates/release.html +34 -0
  44. package/src/domain/templates/release.html.template.js +34 -0
  45. package/src/index.js +15 -0
  46. package/src/inspectors/inspect-js.js +32 -0
  47. package/src/releases/1/0/v1.0.3/task.test.js +1 -1
  48. package/src/utils/nodejs/GitTelemetry.js +154 -0
  49. package/types/Release/Document.d.ts +24 -27
  50. package/types/Release/MarkdownToTest.d.ts +1 -1
  51. package/types/Release/Person.d.ts +9 -7
  52. package/types/Release/Scanner.d.ts +41 -41
  53. package/types/Release.d.ts +42 -42
  54. package/types/architecture/ProjectManagementAsCode.d.ts +59 -64
  55. package/types/domain/App.d.ts +25 -7
  56. package/types/domain/BumpCommand.d.ts +11 -6
  57. package/types/domain/CheckCommand.d.ts +128 -16
  58. package/types/domain/CheckCommand.story.d.ts +1 -0
  59. package/types/domain/CloseCommand.d.ts +4 -6
  60. package/types/domain/Dashboard/Dashboard.story.d.ts +1 -0
  61. package/types/domain/Dashboard/DashboardModel.d.ts +273 -0
  62. package/types/domain/Dashboard/GitTelemetry.d.ts +23 -0
  63. package/types/domain/Dashboard/ReleaseDiscovery.d.ts +47 -0
  64. package/types/domain/Dashboard/ReleaseParser.d.ts +79 -0
  65. package/types/domain/Dashboard/index.d.ts +3 -0
  66. package/types/domain/DepsCommand.d.ts +6 -6
  67. package/types/domain/InitCommand.d.ts +4 -6
  68. package/types/domain/ListCommand.d.ts +18 -0
  69. package/types/domain/PMaCParser.d.ts +64 -0
  70. package/types/domain/PMaCParser.story.d.ts +1 -0
  71. package/types/domain/PreviewCommand.d.ts +6 -0
  72. package/types/domain/PublishCommand.d.ts +8 -6
  73. package/types/domain/Registry/Registry.story.d.ts +1 -0
  74. package/types/domain/Registry/RegistryModel.d.ts +61 -0
  75. package/types/domain/ServeCommand.d.ts +59 -0
  76. package/types/domain/ServeCommand.story.d.ts +1 -0
  77. package/types/domain/SpecCommand.d.ts +4 -6
  78. package/types/domain/StatusCommand.d.ts +38 -3
  79. package/types/domain/ValidateCommand.d.ts +69 -0
  80. package/types/domain/ValidateCommand.story.d.ts +1 -0
  81. package/types/domain/ViewCommand.d.ts +27 -0
  82. package/types/domain/WebCommand.d.ts +47 -0
  83. package/types/domain/inspect/ReleaseAuditor.d.ts +134 -0
  84. package/types/domain/inspect/ReleaseAuditor.story.d.ts +1 -0
  85. package/types/domain/models/ReleaseIssueModel.d.ts +35 -0
  86. package/types/domain/models/ReleaseMemberModel.d.ts +25 -0
  87. package/types/domain/models/ReleaseModel.d.ts +122 -0
  88. package/types/domain/models/ReleaseParityModel.d.ts +37 -0
  89. package/types/domain/models/ReleaseTaskModel.d.ts +46 -0
  90. package/types/domain/models/index.d.ts +5 -0
  91. package/types/domain/templates/release.html.template.d.ts +2 -0
  92. package/types/index.d.ts +21 -10
  93. package/types/inspectors/inspect-js.d.ts +2 -0
  94. 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: string);
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
+ };
@@ -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 declare class ProjectManagement {
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 declare class ReleaseManager {
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 declare class TaskTestSuite extends TestSuite {
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 declare class ChangelogTaskManager {
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 {};
@@ -1,16 +1,34 @@
1
- import { ModelAsApp } from "@nan0web/ui";
2
- import CheckCommand from './CheckCommand.js';
3
- import StatusCommand from './StatusCommand.js';
4
- export declare class ReleaseApp extends ModelAsApp {
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: null;
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('@nan0web/ui').ModelAsAppOptions>);
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('@nan0web/ui').ModelAsAppOptions>);
36
- /**
37
- * @returns {AsyncGenerator<import('@nan0web/ui').Intent, import('@nan0web/ui').ResultIntent, any>}
38
- */
39
- run(): AsyncGenerator<import('@nan0web/ui').Intent, import('@nan0web/ui').ResultIntent, any>;
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
- import { ModelAsApp } from '@nan0web/ui';
2
- export default class CheckCommand extends ModelAsApp {
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
- icon: string;
6
- description: string;
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 {string} absDir
15
- * @returns {Promise<string[]>}
109
+ * @param {Partial<CheckCommand>} [data]
110
+ * @param {Partial<import('@nan0web/ui').ModelAsAppOptions>} [options]
16
111
  */
17
- _scanLocal(absDir: string): Promise<string[]>;
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
- * @param {string} base
20
- * @param {string} [dir]
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
- _scanDirRecursive(base: string, dir?: string): Promise<string[]>;
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('@nan0web/ui').ModelAsAppOptions>);
16
- /**
17
- * @returns {AsyncGenerator<import('@nan0web/ui').Intent, import('@nan0web/ui').ResultIntent, any>}
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 {};