@nahisaho/musubix-core 1.0.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 (214) hide show
  1. package/bin/musubix.js +18 -0
  2. package/dist/__tests__/index.test.d.ts +2 -0
  3. package/dist/__tests__/index.test.d.ts.map +1 -0
  4. package/dist/__tests__/index.test.js +27 -0
  5. package/dist/__tests__/index.test.js.map +1 -0
  6. package/dist/auth/auth-manager.d.ts +320 -0
  7. package/dist/auth/auth-manager.d.ts.map +1 -0
  8. package/dist/auth/auth-manager.js +580 -0
  9. package/dist/auth/auth-manager.js.map +1 -0
  10. package/dist/cli/base.d.ts +58 -0
  11. package/dist/cli/base.d.ts.map +1 -0
  12. package/dist/cli/base.js +93 -0
  13. package/dist/cli/base.js.map +1 -0
  14. package/dist/cli/commands/help.d.ts +17 -0
  15. package/dist/cli/commands/help.d.ts.map +1 -0
  16. package/dist/cli/commands/help.js +228 -0
  17. package/dist/cli/commands/help.js.map +1 -0
  18. package/dist/cli/commands/index.d.ts +14 -0
  19. package/dist/cli/commands/index.d.ts.map +1 -0
  20. package/dist/cli/commands/index.js +25 -0
  21. package/dist/cli/commands/index.js.map +1 -0
  22. package/dist/cli/commands/init.d.ts +38 -0
  23. package/dist/cli/commands/init.d.ts.map +1 -0
  24. package/dist/cli/commands/init.js +258 -0
  25. package/dist/cli/commands/init.js.map +1 -0
  26. package/dist/cli/index.d.ts +9 -0
  27. package/dist/cli/index.d.ts.map +1 -0
  28. package/dist/cli/index.js +9 -0
  29. package/dist/cli/index.js.map +1 -0
  30. package/dist/codegen/coding-standards.d.ts +250 -0
  31. package/dist/codegen/coding-standards.d.ts.map +1 -0
  32. package/dist/codegen/coding-standards.js +976 -0
  33. package/dist/codegen/coding-standards.js.map +1 -0
  34. package/dist/codegen/coverage-reporter.d.ts +264 -0
  35. package/dist/codegen/coverage-reporter.d.ts.map +1 -0
  36. package/dist/codegen/coverage-reporter.js +697 -0
  37. package/dist/codegen/coverage-reporter.js.map +1 -0
  38. package/dist/codegen/dependency-analyzer.d.ts +271 -0
  39. package/dist/codegen/dependency-analyzer.d.ts.map +1 -0
  40. package/dist/codegen/dependency-analyzer.js +661 -0
  41. package/dist/codegen/dependency-analyzer.js.map +1 -0
  42. package/dist/codegen/generator.d.ts +275 -0
  43. package/dist/codegen/generator.d.ts.map +1 -0
  44. package/dist/codegen/generator.js +781 -0
  45. package/dist/codegen/generator.js.map +1 -0
  46. package/dist/codegen/index.d.ts +18 -0
  47. package/dist/codegen/index.d.ts.map +1 -0
  48. package/dist/codegen/index.js +27 -0
  49. package/dist/codegen/index.js.map +1 -0
  50. package/dist/codegen/integration-test-generator.d.ts +312 -0
  51. package/dist/codegen/integration-test-generator.d.ts.map +1 -0
  52. package/dist/codegen/integration-test-generator.js +765 -0
  53. package/dist/codegen/integration-test-generator.js.map +1 -0
  54. package/dist/codegen/pattern-conformance.d.ts +309 -0
  55. package/dist/codegen/pattern-conformance.d.ts.map +1 -0
  56. package/dist/codegen/pattern-conformance.js +590 -0
  57. package/dist/codegen/pattern-conformance.js.map +1 -0
  58. package/dist/codegen/quality-metrics.d.ts +235 -0
  59. package/dist/codegen/quality-metrics.d.ts.map +1 -0
  60. package/dist/codegen/quality-metrics.js +439 -0
  61. package/dist/codegen/quality-metrics.js.map +1 -0
  62. package/dist/codegen/security-scanner.d.ts +179 -0
  63. package/dist/codegen/security-scanner.d.ts.map +1 -0
  64. package/dist/codegen/security-scanner.js +495 -0
  65. package/dist/codegen/security-scanner.js.map +1 -0
  66. package/dist/codegen/static-analyzer.d.ts +188 -0
  67. package/dist/codegen/static-analyzer.d.ts.map +1 -0
  68. package/dist/codegen/static-analyzer.js +490 -0
  69. package/dist/codegen/static-analyzer.js.map +1 -0
  70. package/dist/codegen/unit-test-generator.d.ts +289 -0
  71. package/dist/codegen/unit-test-generator.d.ts.map +1 -0
  72. package/dist/codegen/unit-test-generator.js +634 -0
  73. package/dist/codegen/unit-test-generator.js.map +1 -0
  74. package/dist/design/adr-generator.d.ts +227 -0
  75. package/dist/design/adr-generator.d.ts.map +1 -0
  76. package/dist/design/adr-generator.js +423 -0
  77. package/dist/design/adr-generator.js.map +1 -0
  78. package/dist/design/c4-generator.d.ts +267 -0
  79. package/dist/design/c4-generator.d.ts.map +1 -0
  80. package/dist/design/c4-generator.js +453 -0
  81. package/dist/design/c4-generator.js.map +1 -0
  82. package/dist/design/framework-optimizer.d.ts +190 -0
  83. package/dist/design/framework-optimizer.d.ts.map +1 -0
  84. package/dist/design/framework-optimizer.js +589 -0
  85. package/dist/design/framework-optimizer.js.map +1 -0
  86. package/dist/design/index.d.ts +12 -0
  87. package/dist/design/index.d.ts.map +1 -0
  88. package/dist/design/index.js +13 -0
  89. package/dist/design/index.js.map +1 -0
  90. package/dist/design/pattern-detector.d.ts +270 -0
  91. package/dist/design/pattern-detector.d.ts.map +1 -0
  92. package/dist/design/pattern-detector.js +621 -0
  93. package/dist/design/pattern-detector.js.map +1 -0
  94. package/dist/design/solid-validator.d.ts +188 -0
  95. package/dist/design/solid-validator.d.ts.map +1 -0
  96. package/dist/design/solid-validator.js +579 -0
  97. package/dist/design/solid-validator.js.map +1 -0
  98. package/dist/error/data-persistence.d.ts +311 -0
  99. package/dist/error/data-persistence.d.ts.map +1 -0
  100. package/dist/error/data-persistence.js +586 -0
  101. package/dist/error/data-persistence.js.map +1 -0
  102. package/dist/error/graceful-degradation.d.ts +309 -0
  103. package/dist/error/graceful-degradation.d.ts.map +1 -0
  104. package/dist/error/graceful-degradation.js +510 -0
  105. package/dist/error/graceful-degradation.js.map +1 -0
  106. package/dist/error/index.d.ts +11 -0
  107. package/dist/error/index.d.ts.map +1 -0
  108. package/dist/error/index.js +19 -0
  109. package/dist/error/index.js.map +1 -0
  110. package/dist/explanation/explanation-generator.d.ts +228 -0
  111. package/dist/explanation/explanation-generator.d.ts.map +1 -0
  112. package/dist/explanation/explanation-generator.js +662 -0
  113. package/dist/explanation/explanation-generator.js.map +1 -0
  114. package/dist/explanation/index.d.ts +11 -0
  115. package/dist/explanation/index.d.ts.map +1 -0
  116. package/dist/explanation/index.js +19 -0
  117. package/dist/explanation/index.js.map +1 -0
  118. package/dist/explanation/reasoning-chain.d.ts +314 -0
  119. package/dist/explanation/reasoning-chain.d.ts.map +1 -0
  120. package/dist/explanation/reasoning-chain.js +414 -0
  121. package/dist/explanation/reasoning-chain.js.map +1 -0
  122. package/dist/explanation/visual-explanation.d.ts +315 -0
  123. package/dist/explanation/visual-explanation.d.ts.map +1 -0
  124. package/dist/explanation/visual-explanation.js +667 -0
  125. package/dist/explanation/visual-explanation.js.map +1 -0
  126. package/dist/index.d.ts +33 -0
  127. package/dist/index.d.ts.map +1 -0
  128. package/dist/index.js +47 -0
  129. package/dist/index.js.map +1 -0
  130. package/dist/requirements/decomposer.d.ts +235 -0
  131. package/dist/requirements/decomposer.d.ts.map +1 -0
  132. package/dist/requirements/decomposer.js +587 -0
  133. package/dist/requirements/decomposer.js.map +1 -0
  134. package/dist/requirements/related-finder.d.ts +261 -0
  135. package/dist/requirements/related-finder.d.ts.map +1 -0
  136. package/dist/requirements/related-finder.js +629 -0
  137. package/dist/requirements/related-finder.js.map +1 -0
  138. package/dist/traceability/impact.d.ts +196 -0
  139. package/dist/traceability/impact.d.ts.map +1 -0
  140. package/dist/traceability/impact.js +438 -0
  141. package/dist/traceability/impact.js.map +1 -0
  142. package/dist/traceability/index.d.ts +9 -0
  143. package/dist/traceability/index.d.ts.map +1 -0
  144. package/dist/traceability/index.js +10 -0
  145. package/dist/traceability/index.js.map +1 -0
  146. package/dist/traceability/manager.d.ts +266 -0
  147. package/dist/traceability/manager.d.ts.map +1 -0
  148. package/dist/traceability/manager.js +412 -0
  149. package/dist/traceability/manager.js.map +1 -0
  150. package/dist/types/common.d.ts +294 -0
  151. package/dist/types/common.d.ts.map +1 -0
  152. package/dist/types/common.js +15 -0
  153. package/dist/types/common.js.map +1 -0
  154. package/dist/types/ears.d.ts +158 -0
  155. package/dist/types/ears.d.ts.map +1 -0
  156. package/dist/types/ears.js +33 -0
  157. package/dist/types/ears.js.map +1 -0
  158. package/dist/types/errors.d.ts +176 -0
  159. package/dist/types/errors.d.ts.map +1 -0
  160. package/dist/types/errors.js +55 -0
  161. package/dist/types/errors.js.map +1 -0
  162. package/dist/types/index.d.ts +10 -0
  163. package/dist/types/index.d.ts.map +1 -0
  164. package/dist/types/index.js +10 -0
  165. package/dist/types/index.js.map +1 -0
  166. package/dist/utils/data-protector.d.ts +122 -0
  167. package/dist/utils/data-protector.d.ts.map +1 -0
  168. package/dist/utils/data-protector.js +275 -0
  169. package/dist/utils/data-protector.js.map +1 -0
  170. package/dist/utils/error-handler.d.ts +101 -0
  171. package/dist/utils/error-handler.d.ts.map +1 -0
  172. package/dist/utils/error-handler.js +324 -0
  173. package/dist/utils/error-handler.js.map +1 -0
  174. package/dist/utils/i18n-manager.d.ts +259 -0
  175. package/dist/utils/i18n-manager.d.ts.map +1 -0
  176. package/dist/utils/i18n-manager.js +554 -0
  177. package/dist/utils/i18n-manager.js.map +1 -0
  178. package/dist/utils/index.d.ts +10 -0
  179. package/dist/utils/index.d.ts.map +1 -0
  180. package/dist/utils/index.js +10 -0
  181. package/dist/utils/index.js.map +1 -0
  182. package/dist/utils/logger.d.ts +120 -0
  183. package/dist/utils/logger.d.ts.map +1 -0
  184. package/dist/utils/logger.js +237 -0
  185. package/dist/utils/logger.js.map +1 -0
  186. package/dist/utils/performance-profiler.d.ts +251 -0
  187. package/dist/utils/performance-profiler.d.ts.map +1 -0
  188. package/dist/utils/performance-profiler.js +458 -0
  189. package/dist/utils/performance-profiler.js.map +1 -0
  190. package/dist/utils/scalability-optimizer.d.ts +294 -0
  191. package/dist/utils/scalability-optimizer.d.ts.map +1 -0
  192. package/dist/utils/scalability-optimizer.js +606 -0
  193. package/dist/utils/scalability-optimizer.js.map +1 -0
  194. package/dist/utils/structured-logger.d.ts +294 -0
  195. package/dist/utils/structured-logger.d.ts.map +1 -0
  196. package/dist/utils/structured-logger.js +630 -0
  197. package/dist/utils/structured-logger.js.map +1 -0
  198. package/dist/utils/version-compatibility.d.ts +217 -0
  199. package/dist/utils/version-compatibility.d.ts.map +1 -0
  200. package/dist/utils/version-compatibility.js +443 -0
  201. package/dist/utils/version-compatibility.js.map +1 -0
  202. package/dist/validators/ears-validator.d.ts +182 -0
  203. package/dist/validators/ears-validator.d.ts.map +1 -0
  204. package/dist/validators/ears-validator.js +357 -0
  205. package/dist/validators/ears-validator.js.map +1 -0
  206. package/dist/validators/index.d.ts +8 -0
  207. package/dist/validators/index.d.ts.map +1 -0
  208. package/dist/validators/index.js +9 -0
  209. package/dist/validators/index.js.map +1 -0
  210. package/dist/version.d.ts +8 -0
  211. package/dist/version.d.ts.map +1 -0
  212. package/dist/version.js +8 -0
  213. package/dist/version.js.map +1 -0
  214. package/package.json +100 -0
@@ -0,0 +1,188 @@
1
+ /**
2
+ * SOLID Validator
3
+ *
4
+ * Validates code against SOLID principles
5
+ *
6
+ * @packageDocumentation
7
+ * @module design/solid-validator
8
+ *
9
+ * @see REQ-DES-003 - SOLID Principles Validation
10
+ * @see Article III - Design Validation
11
+ */
12
+ import type { CodeStructure } from './pattern-detector.js';
13
+ /**
14
+ * SOLID principle
15
+ */
16
+ export type SOLIDPrinciple = 'S' | 'O' | 'L' | 'I' | 'D';
17
+ /**
18
+ * SOLID principle info
19
+ */
20
+ export interface SOLIDPrincipleInfo {
21
+ /** Principle code */
22
+ code: SOLIDPrinciple;
23
+ /** Full name */
24
+ name: string;
25
+ /** Description */
26
+ description: string;
27
+ /** Violation indicators */
28
+ violationIndicators: string[];
29
+ }
30
+ /**
31
+ * SOLID principles information
32
+ */
33
+ export declare const SOLID_PRINCIPLES: Record<SOLIDPrinciple, SOLIDPrincipleInfo>;
34
+ /**
35
+ * SOLID violation
36
+ */
37
+ export interface SOLIDViolation {
38
+ /** Principle violated */
39
+ principle: SOLIDPrinciple;
40
+ /** Severity */
41
+ severity: 'high' | 'medium' | 'low';
42
+ /** Class/element involved */
43
+ element: string;
44
+ /** Description */
45
+ description: string;
46
+ /** Suggestion */
47
+ suggestion: string;
48
+ /** Code location */
49
+ location?: {
50
+ file?: string;
51
+ line?: number;
52
+ };
53
+ }
54
+ /**
55
+ * SOLID validation result
56
+ */
57
+ export interface SOLIDValidationResult {
58
+ /** Overall score (0-100) */
59
+ score: number;
60
+ /** Score by principle */
61
+ principleScores: Record<SOLIDPrinciple, number>;
62
+ /** Violations found */
63
+ violations: SOLIDViolation[];
64
+ /** Recommendations */
65
+ recommendations: string[];
66
+ /** Summary */
67
+ summary: SOLIDSummary;
68
+ }
69
+ /**
70
+ * SOLID summary
71
+ */
72
+ export interface SOLIDSummary {
73
+ /** Total classes analyzed */
74
+ classesAnalyzed: number;
75
+ /** Classes with violations */
76
+ classesWithViolations: number;
77
+ /** Total violations */
78
+ totalViolations: number;
79
+ /** Violations by principle */
80
+ violationsByPrinciple: Record<SOLIDPrinciple, number>;
81
+ /** Compliance level */
82
+ complianceLevel: 'excellent' | 'good' | 'moderate' | 'poor';
83
+ }
84
+ /**
85
+ * SOLID validator configuration
86
+ */
87
+ export interface SOLIDValidatorConfig {
88
+ /** Methods threshold for SRP */
89
+ srpMethodThreshold: number;
90
+ /** Interface methods threshold for ISP */
91
+ ispMethodThreshold: number;
92
+ /** Enable strict mode */
93
+ strictMode: boolean;
94
+ /** Principles to validate */
95
+ enabledPrinciples: SOLIDPrinciple[];
96
+ }
97
+ /**
98
+ * Default configuration
99
+ */
100
+ export declare const DEFAULT_SOLID_CONFIG: SOLIDValidatorConfig;
101
+ /**
102
+ * SOLID Validator
103
+ */
104
+ export declare class SOLIDValidator {
105
+ private config;
106
+ constructor(config?: Partial<SOLIDValidatorConfig>);
107
+ /**
108
+ * Validate code structure against SOLID
109
+ */
110
+ validate(structure: CodeStructure): SOLIDValidationResult;
111
+ /**
112
+ * Validate source code string
113
+ */
114
+ validateCode(code: string): SOLIDValidationResult;
115
+ /**
116
+ * Validate Single Responsibility Principle
117
+ */
118
+ private validateSRP;
119
+ /**
120
+ * Validate Open/Closed Principle
121
+ */
122
+ private validateOCP;
123
+ /**
124
+ * Validate Liskov Substitution Principle
125
+ */
126
+ private validateLSP;
127
+ /**
128
+ * Validate Interface Segregation Principle
129
+ */
130
+ private validateISP;
131
+ /**
132
+ * Validate Dependency Inversion Principle
133
+ */
134
+ private validateDIP;
135
+ /**
136
+ * Detect god class indicators
137
+ */
138
+ private detectGodClassIndicators;
139
+ /**
140
+ * Check if method name suggests type checking
141
+ */
142
+ private suggestsTypeChecking;
143
+ /**
144
+ * Build inheritance hierarchy
145
+ */
146
+ private buildHierarchy;
147
+ /**
148
+ * Group methods by purpose
149
+ */
150
+ private groupMethodsByPurpose;
151
+ /**
152
+ * Calculate score from violations
153
+ */
154
+ private calculateScore;
155
+ /**
156
+ * Generate recommendations
157
+ */
158
+ private generateRecommendations;
159
+ /**
160
+ * Generate summary
161
+ */
162
+ private generateSummary;
163
+ /**
164
+ * Parse code into structure (simplified)
165
+ */
166
+ private parseCodeStructure;
167
+ /**
168
+ * Extract methods
169
+ */
170
+ private extractMethods;
171
+ /**
172
+ * Extract properties
173
+ */
174
+ private extractProperties;
175
+ /**
176
+ * Get principle information
177
+ */
178
+ static getPrincipleInfo(principle: SOLIDPrinciple): SOLIDPrincipleInfo;
179
+ /**
180
+ * Get all principles
181
+ */
182
+ static getAllPrinciples(): SOLIDPrincipleInfo[];
183
+ }
184
+ /**
185
+ * Create SOLID validator instance
186
+ */
187
+ export declare function createSOLIDValidator(config?: Partial<SOLIDValidatorConfig>): SOLIDValidator;
188
+ //# sourceMappingURL=solid-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solid-validator.d.ts","sourceRoot":"","sources":["../../src/design/solid-validator.ts"],"names":[],"mappings":"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"}