specweave 0.32.2 → 0.32.3

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 (191) hide show
  1. package/CLAUDE.md +39 -0
  2. package/bin/specweave.js +34 -0
  3. package/dist/plugins/specweave-ado/lib/ado-duplicate-detector.d.ts +100 -0
  4. package/dist/plugins/specweave-ado/lib/ado-duplicate-detector.d.ts.map +1 -0
  5. package/dist/plugins/specweave-ado/lib/ado-duplicate-detector.js +291 -0
  6. package/dist/plugins/specweave-ado/lib/ado-duplicate-detector.js.map +1 -0
  7. package/dist/plugins/specweave-jira/lib/jira-duplicate-detector.d.ts +103 -0
  8. package/dist/plugins/specweave-jira/lib/jira-duplicate-detector.d.ts.map +1 -0
  9. package/dist/plugins/specweave-jira/lib/jira-duplicate-detector.js +310 -0
  10. package/dist/plugins/specweave-jira/lib/jira-duplicate-detector.js.map +1 -0
  11. package/dist/plugins/specweave-jira/lib/jira-permission-gate.d.ts +126 -0
  12. package/dist/plugins/specweave-jira/lib/jira-permission-gate.d.ts.map +1 -0
  13. package/dist/plugins/specweave-jira/lib/jira-permission-gate.js +207 -0
  14. package/dist/plugins/specweave-jira/lib/jira-permission-gate.js.map +1 -0
  15. package/dist/src/adapters/codex/README.md +1 -1
  16. package/dist/src/adapters/codex/adapter.js +1 -1
  17. package/dist/src/cli/commands/archive.d.ts +2 -0
  18. package/dist/src/cli/commands/archive.d.ts.map +1 -1
  19. package/dist/src/cli/commands/archive.js +33 -0
  20. package/dist/src/cli/commands/archive.js.map +1 -1
  21. package/dist/src/cli/commands/context.d.ts +92 -0
  22. package/dist/src/cli/commands/context.d.ts.map +1 -0
  23. package/dist/src/cli/commands/context.js +205 -0
  24. package/dist/src/cli/commands/context.js.map +1 -0
  25. package/dist/src/cli/commands/init.d.ts.map +1 -1
  26. package/dist/src/cli/commands/init.js +111 -69
  27. package/dist/src/cli/commands/init.js.map +1 -1
  28. package/dist/src/cli/helpers/init/external-import.d.ts +3 -0
  29. package/dist/src/cli/helpers/init/external-import.d.ts.map +1 -1
  30. package/dist/src/cli/helpers/init/external-import.js +17 -4
  31. package/dist/src/cli/helpers/init/external-import.js.map +1 -1
  32. package/dist/src/cli/helpers/init/index.d.ts +1 -0
  33. package/dist/src/cli/helpers/init/index.d.ts.map +1 -1
  34. package/dist/src/cli/helpers/init/index.js +2 -0
  35. package/dist/src/cli/helpers/init/index.js.map +1 -1
  36. package/dist/src/cli/helpers/init/jira-ado-auto-detect.d.ts +70 -0
  37. package/dist/src/cli/helpers/init/jira-ado-auto-detect.d.ts.map +1 -1
  38. package/dist/src/cli/helpers/init/jira-ado-auto-detect.js +214 -4
  39. package/dist/src/cli/helpers/init/jira-ado-auto-detect.js.map +1 -1
  40. package/dist/src/cli/helpers/init/living-docs-preflight.d.ts +4 -0
  41. package/dist/src/cli/helpers/init/living-docs-preflight.d.ts.map +1 -1
  42. package/dist/src/cli/helpers/init/living-docs-preflight.js +34 -3
  43. package/dist/src/cli/helpers/init/living-docs-preflight.js.map +1 -1
  44. package/dist/src/cli/helpers/init/testing-config.d.ts +3 -0
  45. package/dist/src/cli/helpers/init/testing-config.d.ts.map +1 -1
  46. package/dist/src/cli/helpers/init/testing-config.js +9 -2
  47. package/dist/src/cli/helpers/init/testing-config.js.map +1 -1
  48. package/dist/src/cli/helpers/init/translation-config.d.ts +3 -0
  49. package/dist/src/cli/helpers/init/translation-config.d.ts.map +1 -1
  50. package/dist/src/cli/helpers/init/translation-config.js +21 -4
  51. package/dist/src/cli/helpers/init/translation-config.js.map +1 -1
  52. package/dist/src/cli/helpers/init/wizard-navigation.d.ts +45 -0
  53. package/dist/src/cli/helpers/init/wizard-navigation.d.ts.map +1 -0
  54. package/dist/src/cli/helpers/init/wizard-navigation.js +97 -0
  55. package/dist/src/cli/helpers/init/wizard-navigation.js.map +1 -0
  56. package/dist/src/core/increment/increment-archiver.d.ts +25 -4
  57. package/dist/src/core/increment/increment-archiver.d.ts.map +1 -1
  58. package/dist/src/core/increment/increment-archiver.js +64 -20
  59. package/dist/src/core/increment/increment-archiver.js.map +1 -1
  60. package/dist/src/core/increment/increment-utils.d.ts +65 -0
  61. package/dist/src/core/increment/increment-utils.d.ts.map +1 -1
  62. package/dist/src/core/increment/increment-utils.js +114 -0
  63. package/dist/src/core/increment/increment-utils.js.map +1 -1
  64. package/dist/src/core/living-docs/feature-archiver.d.ts +4 -0
  65. package/dist/src/core/living-docs/feature-archiver.d.ts.map +1 -1
  66. package/dist/src/core/living-docs/feature-archiver.js +32 -10
  67. package/dist/src/core/living-docs/feature-archiver.js.map +1 -1
  68. package/dist/src/core/living-docs/feature-id-manager.d.ts.map +1 -1
  69. package/dist/src/core/living-docs/feature-id-manager.js +7 -3
  70. package/dist/src/core/living-docs/feature-id-manager.js.map +1 -1
  71. package/dist/src/core/living-docs/governance/ecosystem-detector.d.ts +38 -0
  72. package/dist/src/core/living-docs/governance/ecosystem-detector.d.ts.map +1 -0
  73. package/dist/src/core/living-docs/governance/ecosystem-detector.js +325 -0
  74. package/dist/src/core/living-docs/governance/ecosystem-detector.js.map +1 -0
  75. package/dist/src/core/living-docs/governance/frontend-standards-parser.d.ts +74 -0
  76. package/dist/src/core/living-docs/governance/frontend-standards-parser.d.ts.map +1 -0
  77. package/dist/src/core/living-docs/governance/frontend-standards-parser.js +366 -0
  78. package/dist/src/core/living-docs/governance/frontend-standards-parser.js.map +1 -0
  79. package/dist/src/core/living-docs/governance/go-standards-parser.d.ts +64 -0
  80. package/dist/src/core/living-docs/governance/go-standards-parser.d.ts.map +1 -0
  81. package/dist/src/core/living-docs/governance/go-standards-parser.js +229 -0
  82. package/dist/src/core/living-docs/governance/go-standards-parser.js.map +1 -0
  83. package/dist/src/core/living-docs/governance/index.d.ts +50 -0
  84. package/dist/src/core/living-docs/governance/index.d.ts.map +1 -0
  85. package/dist/src/core/living-docs/governance/index.js +56 -0
  86. package/dist/src/core/living-docs/governance/index.js.map +1 -0
  87. package/dist/src/core/living-docs/governance/java-standards-parser.d.ts +89 -0
  88. package/dist/src/core/living-docs/governance/java-standards-parser.d.ts.map +1 -0
  89. package/dist/src/core/living-docs/governance/java-standards-parser.js +356 -0
  90. package/dist/src/core/living-docs/governance/java-standards-parser.js.map +1 -0
  91. package/dist/src/core/living-docs/governance/python-standards-parser.d.ts +83 -0
  92. package/dist/src/core/living-docs/governance/python-standards-parser.d.ts.map +1 -0
  93. package/dist/src/core/living-docs/governance/python-standards-parser.js +347 -0
  94. package/dist/src/core/living-docs/governance/python-standards-parser.js.map +1 -0
  95. package/dist/src/core/living-docs/governance/standards-generator.d.ts +38 -0
  96. package/dist/src/core/living-docs/governance/standards-generator.d.ts.map +1 -0
  97. package/dist/src/core/living-docs/governance/standards-generator.js +476 -0
  98. package/dist/src/core/living-docs/governance/standards-generator.js.map +1 -0
  99. package/dist/src/core/living-docs/intelligent-analyzer/architecture-generator.d.ts.map +1 -1
  100. package/dist/src/core/living-docs/intelligent-analyzer/architecture-generator.js +54 -2
  101. package/dist/src/core/living-docs/intelligent-analyzer/architecture-generator.js.map +1 -1
  102. package/dist/src/core/living-docs/intelligent-analyzer/organization-synthesizer.d.ts +5 -1
  103. package/dist/src/core/living-docs/intelligent-analyzer/organization-synthesizer.d.ts.map +1 -1
  104. package/dist/src/core/living-docs/intelligent-analyzer/organization-synthesizer.js +358 -30
  105. package/dist/src/core/living-docs/intelligent-analyzer/organization-synthesizer.js.map +1 -1
  106. package/dist/src/core/living-docs/intelligent-analyzer/types.d.ts +44 -0
  107. package/dist/src/core/living-docs/intelligent-analyzer/types.d.ts.map +1 -1
  108. package/dist/src/core/living-docs/living-docs-sync.d.ts +6 -3
  109. package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -1
  110. package/dist/src/core/living-docs/living-docs-sync.js +17 -8
  111. package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
  112. package/dist/src/core/living-docs/module-analyzer.d.ts +22 -0
  113. package/dist/src/core/living-docs/module-analyzer.d.ts.map +1 -1
  114. package/dist/src/core/living-docs/module-analyzer.js +123 -19
  115. package/dist/src/core/living-docs/module-analyzer.js.map +1 -1
  116. package/dist/src/core/llm/provider-factory.js +2 -2
  117. package/dist/src/core/llm/provider-factory.js.map +1 -1
  118. package/dist/src/core/llm/providers/anthropic-provider.js +1 -1
  119. package/dist/src/core/llm/providers/bedrock-provider.d.ts.map +1 -1
  120. package/dist/src/core/llm/providers/bedrock-provider.js +8 -4
  121. package/dist/src/core/llm/providers/bedrock-provider.js.map +1 -1
  122. package/dist/src/importers/jira-importer.d.ts +14 -0
  123. package/dist/src/importers/jira-importer.d.ts.map +1 -1
  124. package/dist/src/importers/jira-importer.js +75 -0
  125. package/dist/src/importers/jira-importer.js.map +1 -1
  126. package/dist/src/integrations/jira/jira-token-provider.d.ts +93 -0
  127. package/dist/src/integrations/jira/jira-token-provider.d.ts.map +1 -0
  128. package/dist/src/integrations/jira/jira-token-provider.js +160 -0
  129. package/dist/src/integrations/jira/jira-token-provider.js.map +1 -0
  130. package/dist/src/sync/ado-reconciler.d.ts +92 -0
  131. package/dist/src/sync/ado-reconciler.d.ts.map +1 -0
  132. package/dist/src/sync/ado-reconciler.js +335 -0
  133. package/dist/src/sync/ado-reconciler.js.map +1 -0
  134. package/dist/src/sync/jira-reconciler.d.ts +106 -0
  135. package/dist/src/sync/jira-reconciler.d.ts.map +1 -0
  136. package/dist/src/sync/jira-reconciler.js +405 -0
  137. package/dist/src/sync/jira-reconciler.js.map +1 -0
  138. package/dist/src/types/model-selection.d.ts +6 -4
  139. package/dist/src/types/model-selection.d.ts.map +1 -1
  140. package/dist/src/types/model-selection.js +3 -1
  141. package/dist/src/types/model-selection.js.map +1 -1
  142. package/dist/src/utils/external-tool-drift-detector.d.ts +1 -1
  143. package/dist/src/utils/external-tool-drift-detector.d.ts.map +1 -1
  144. package/dist/src/utils/external-tool-drift-detector.js +5 -4
  145. package/dist/src/utils/external-tool-drift-detector.js.map +1 -1
  146. package/dist/src/utils/feature-id-derivation.d.ts +8 -3
  147. package/dist/src/utils/feature-id-derivation.d.ts.map +1 -1
  148. package/dist/src/utils/feature-id-derivation.js +14 -6
  149. package/dist/src/utils/feature-id-derivation.js.map +1 -1
  150. package/dist/src/utils/model-selection.d.ts +3 -4
  151. package/dist/src/utils/model-selection.d.ts.map +1 -1
  152. package/dist/src/utils/model-selection.js +3 -4
  153. package/dist/src/utils/model-selection.js.map +1 -1
  154. package/package.json +1 -1
  155. package/plugins/specweave/agents/code-standards-detective/AGENT.md +48 -0
  156. package/plugins/specweave/commands/specweave-costs.md +4 -4
  157. package/plugins/specweave/commands/specweave-do.md +9 -9
  158. package/plugins/specweave/commands/specweave-done.md +13 -0
  159. package/plugins/specweave/commands/specweave-validate.md +27 -1
  160. package/plugins/specweave/hooks/hooks.json +10 -0
  161. package/plugins/specweave/hooks/spec-project-validator.sh +80 -25
  162. package/plugins/specweave/hooks/v2/guards/increment-duplicate-guard.sh +135 -0
  163. package/plugins/specweave/scripts/read-costs.sh +3 -3
  164. package/plugins/specweave/skills/code-standards-analyzer/SKILL.md +58 -6
  165. package/plugins/specweave/skills/increment-planner/SKILL.md +56 -25
  166. package/plugins/specweave/skills/increment-planner/templates/spec-multi-project.md +4 -2
  167. package/plugins/specweave/skills/increment-planner/templates/spec-single-project.md +2 -1
  168. package/plugins/specweave/skills/increment-planner/templates/tasks-multi-project.md +1 -1
  169. package/plugins/specweave/skills/increment-planner/templates/tasks-single-project.md +1 -1
  170. package/plugins/specweave-ado/commands/cleanup-duplicates.md +212 -0
  171. package/plugins/specweave-ado/commands/reconcile.md +120 -0
  172. package/plugins/specweave-ado/lib/ado-duplicate-detector.js +279 -0
  173. package/plugins/specweave-ado/lib/ado-duplicate-detector.ts +407 -0
  174. package/plugins/specweave-github/agents/github-manager/AGENT.md +2 -2
  175. package/plugins/specweave-infrastructure/skills/hetzner-provisioner/README.md +1 -1
  176. package/plugins/specweave-jira/agents/jira-manager/AGENT.md +1 -1
  177. package/plugins/specweave-jira/agents/jira-multi-project-mapper/AGENT.md +530 -0
  178. package/plugins/specweave-jira/agents/jira-sync-judge/AGENT.md +438 -0
  179. package/plugins/specweave-jira/commands/cleanup-duplicates.md +219 -0
  180. package/plugins/specweave-jira/commands/close.md +297 -0
  181. package/plugins/specweave-jira/commands/create.md +198 -0
  182. package/plugins/specweave-jira/commands/reconcile.md +123 -0
  183. package/plugins/specweave-jira/commands/status.md +215 -0
  184. package/plugins/specweave-jira/lib/jira-duplicate-detector.js +296 -0
  185. package/plugins/specweave-jira/lib/jira-duplicate-detector.ts +434 -0
  186. package/plugins/specweave-jira/lib/jira-permission-gate.js +160 -0
  187. package/plugins/specweave-jira/lib/jira-permission-gate.ts +276 -0
  188. package/plugins/specweave-jira/lib/jira-profile-resolver.js +222 -0
  189. package/plugins/specweave-jira/lib/jira-profile-resolver.ts +427 -0
  190. package/plugins/specweave-jira/reference/jira-specweave-mapping.md +16 -11
  191. package/plugins/specweave-release/commands/specweave-release-npm.md +140 -14
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go-standards-parser.js","sourceRoot":"","sources":["../../../../../src/core/living-docs/governance/go-standards-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Governance Module - Multi-Technology Coding Standards Detection
3
+ *
4
+ * This module provides comprehensive coding standards detection for polyglot codebases.
5
+ * It detects and documents standards for TypeScript, Python, Go, Java, Kotlin, .NET,
6
+ * Rust, React, Angular, Vue, and Svelte.
7
+ *
8
+ * Usage:
9
+ * ```typescript
10
+ * import {
11
+ * detectEcosystems,
12
+ * parsePythonStandards,
13
+ * parseGoStandards,
14
+ * parseJavaStandards,
15
+ * parseFrontendStandards,
16
+ * generateStandardsMarkdown,
17
+ * generateUnifiedSummary
18
+ * } from './governance/index.js';
19
+ *
20
+ * // 1. Detect all ecosystems in the project
21
+ * const ecosystems = await detectEcosystems('/path/to/project');
22
+ *
23
+ * // 2. Parse standards for each ecosystem
24
+ * const files: GeneratedFile[] = [];
25
+ * for (const eco of ecosystems) {
26
+ * let standards;
27
+ * switch (eco.name) {
28
+ * case 'python':
29
+ * standards = await parsePythonStandards(projectPath, eco.configFiles);
30
+ * break;
31
+ * case 'go':
32
+ * standards = await parseGoStandards(projectPath, eco.configFiles);
33
+ * break;
34
+ * // ... etc
35
+ * }
36
+ * const markdown = generateStandardsMarkdown(eco.name, standards);
37
+ * files.push({ path: `governance/standards/${eco.name}.md`, content: markdown });
38
+ * }
39
+ *
40
+ * // 3. Generate unified summary
41
+ * const summary = generateUnifiedSummary(ecosystems, files);
42
+ * ```
43
+ */
44
+ export { EcosystemDetector, detectEcosystems, type DetectedEcosystem, type EcosystemName, type ConfidenceLevel, type EcosystemDetectorOptions, } from './ecosystem-detector.js';
45
+ export { PythonStandardsParser, parsePythonStandards, type PythonStandards, type FormatterConfig, type LinterConfig, type TypeCheckerConfig, type ImportSorterConfig, type NamingConventions, type DocstringConfig, type PythonStandardsParserOptions, } from './python-standards-parser.js';
46
+ export { GoStandardsParser, parseGoStandards, type GoStandards, type GolangciLintConfig, type StaticcheckConfig, type GoNamingConventions, type ErrorHandlingConfig, type FormattingConfig as GoFormattingConfig, type GoStandardsParserOptions, } from './go-standards-parser.js';
47
+ export { JavaStandardsParser, parseJavaStandards, type JavaStandards, type CheckstyleConfig, type CheckstyleRule, type PmdConfig, type SpotbugsConfig, type KotlinConfig, type DetektConfig, type KtlintConfig, type JavaNamingConventions, type JavaFormattingConfig, type JavaStandardsParserOptions, } from './java-standards-parser.js';
48
+ export { FrontendStandardsParser, parseFrontendStandards, type FrontendStandards, type FrontendFramework, type StateManagementConfig, type CssMethodologyConfig, type TestingConfig, type BundlerConfig, type ComponentNamingConfig, type HooksConfig, type RoutingConfig, type FrontendStandardsParserOptions, } from './frontend-standards-parser.js';
49
+ export { StandardsGenerator, generateStandardsMarkdown, generateUnifiedSummary, type GeneratedFile, type StandardsGeneratorOptions, } from './standards-generator.js';
50
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/living-docs/governance/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAGH,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,wBAAwB,GAC9B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,4BAA4B,GAClC,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,IAAI,kBAAkB,EAC3C,KAAK,wBAAwB,GAC9B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,GAChC,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,8BAA8B,GACpC,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,sBAAsB,EACtB,KAAK,aAAa,EAClB,KAAK,yBAAyB,GAC/B,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Governance Module - Multi-Technology Coding Standards Detection
3
+ *
4
+ * This module provides comprehensive coding standards detection for polyglot codebases.
5
+ * It detects and documents standards for TypeScript, Python, Go, Java, Kotlin, .NET,
6
+ * Rust, React, Angular, Vue, and Svelte.
7
+ *
8
+ * Usage:
9
+ * ```typescript
10
+ * import {
11
+ * detectEcosystems,
12
+ * parsePythonStandards,
13
+ * parseGoStandards,
14
+ * parseJavaStandards,
15
+ * parseFrontendStandards,
16
+ * generateStandardsMarkdown,
17
+ * generateUnifiedSummary
18
+ * } from './governance/index.js';
19
+ *
20
+ * // 1. Detect all ecosystems in the project
21
+ * const ecosystems = await detectEcosystems('/path/to/project');
22
+ *
23
+ * // 2. Parse standards for each ecosystem
24
+ * const files: GeneratedFile[] = [];
25
+ * for (const eco of ecosystems) {
26
+ * let standards;
27
+ * switch (eco.name) {
28
+ * case 'python':
29
+ * standards = await parsePythonStandards(projectPath, eco.configFiles);
30
+ * break;
31
+ * case 'go':
32
+ * standards = await parseGoStandards(projectPath, eco.configFiles);
33
+ * break;
34
+ * // ... etc
35
+ * }
36
+ * const markdown = generateStandardsMarkdown(eco.name, standards);
37
+ * files.push({ path: `governance/standards/${eco.name}.md`, content: markdown });
38
+ * }
39
+ *
40
+ * // 3. Generate unified summary
41
+ * const summary = generateUnifiedSummary(ecosystems, files);
42
+ * ```
43
+ */
44
+ // Ecosystem Detection
45
+ export { EcosystemDetector, detectEcosystems, } from './ecosystem-detector.js';
46
+ // Python Standards
47
+ export { PythonStandardsParser, parsePythonStandards, } from './python-standards-parser.js';
48
+ // Go Standards
49
+ export { GoStandardsParser, parseGoStandards, } from './go-standards-parser.js';
50
+ // Java Standards
51
+ export { JavaStandardsParser, parseJavaStandards, } from './java-standards-parser.js';
52
+ // Frontend Standards (React, Angular, Vue, Svelte)
53
+ export { FrontendStandardsParser, parseFrontendStandards, } from './frontend-standards-parser.js';
54
+ // Markdown Generation
55
+ export { StandardsGenerator, generateStandardsMarkdown, generateUnifiedSummary, } from './standards-generator.js';
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/living-docs/governance/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,sBAAsB;AACtB,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GAKjB,MAAM,yBAAyB,CAAC;AAEjC,mBAAmB;AACnB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,GASrB,MAAM,8BAA8B,CAAC;AAEtC,eAAe;AACf,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GAQjB,MAAM,0BAA0B,CAAC;AAElC,iBAAiB;AACjB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GAYnB,MAAM,4BAA4B,CAAC;AAEpC,mDAAmD;AACnD,OAAO,EACL,uBAAuB,EACvB,sBAAsB,GAWvB,MAAM,gCAAgC,CAAC;AAExC,sBAAsB;AACtB,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,sBAAsB,GAGvB,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Java Standards Parser - Parse Java/Kotlin config files for coding standards
3
+ *
4
+ * Supports: checkstyle.xml, pmd.xml, spotbugs.xml, .editorconfig, detekt.yml
5
+ */
6
+ import { Logger } from '../../../utils/logger.js';
7
+ export interface JavaStandards {
8
+ javaVersion?: string;
9
+ buildTool: 'maven' | 'gradle' | 'unknown';
10
+ checkstyle?: CheckstyleConfig;
11
+ pmd?: PmdConfig;
12
+ spotbugs?: SpotbugsConfig;
13
+ kotlin?: KotlinConfig;
14
+ namingConventions: JavaNamingConventions;
15
+ formatting: JavaFormattingConfig;
16
+ warnings: string[];
17
+ }
18
+ export interface CheckstyleConfig {
19
+ enabled: boolean;
20
+ configStyle: 'google' | 'sun' | 'custom';
21
+ rules: CheckstyleRule[];
22
+ suppressions: string[];
23
+ }
24
+ export interface CheckstyleRule {
25
+ module: string;
26
+ properties: Record<string, string>;
27
+ }
28
+ export interface PmdConfig {
29
+ enabled: boolean;
30
+ rulesets: string[];
31
+ excludedRules: string[];
32
+ minimumPriority?: number;
33
+ }
34
+ export interface SpotbugsConfig {
35
+ enabled: boolean;
36
+ effort: 'min' | 'default' | 'max';
37
+ reportLevel: 'low' | 'medium' | 'high';
38
+ excludeFilterFile?: string;
39
+ }
40
+ export interface KotlinConfig {
41
+ enabled: boolean;
42
+ detekt?: DetektConfig;
43
+ ktlint?: KtlintConfig;
44
+ }
45
+ export interface DetektConfig {
46
+ enabled: boolean;
47
+ configFile?: string;
48
+ rules: string[];
49
+ }
50
+ export interface KtlintConfig {
51
+ enabled: boolean;
52
+ androidMode: boolean;
53
+ }
54
+ export interface JavaNamingConventions {
55
+ classes: string;
56
+ methods: string;
57
+ constants: string;
58
+ packages: string;
59
+ interfaces: string;
60
+ typeParameters: string;
61
+ }
62
+ export interface JavaFormattingConfig {
63
+ indentation: 'spaces' | 'tabs';
64
+ indentSize: number;
65
+ maxLineLength: number;
66
+ braceStyle: 'same_line' | 'next_line';
67
+ }
68
+ export interface JavaStandardsParserOptions {
69
+ logger?: Logger;
70
+ }
71
+ export declare class JavaStandardsParser {
72
+ private logger;
73
+ constructor(options?: JavaStandardsParserOptions);
74
+ parse(projectPath: string, configFiles: string[]): Promise<JavaStandards>;
75
+ private parsePomXml;
76
+ private parseGradleBuild;
77
+ private parseCheckstyle;
78
+ private parsePmd;
79
+ private parseSpotbugs;
80
+ private parseEditorconfig;
81
+ private parseDetekt;
82
+ private extractEditorconfigSection;
83
+ private fileExists;
84
+ }
85
+ /**
86
+ * Convenience function for quick Java standards parsing
87
+ */
88
+ export declare function parseJavaStandards(projectPath: string, configFiles: string[], options?: JavaStandardsParserOptions): Promise<JavaStandards>;
89
+ //# sourceMappingURL=java-standards-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"java-standards-parser.d.ts","sourceRoot":"","sources":["../../../../../src/core/living-docs/governance/java-standards-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,MAAM,EAAiB,MAAM,0BAA0B,CAAC;AAKjE,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC1C,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,iBAAiB,EAAE,qBAAqB,CAAC;IACzC,UAAU,EAAE,oBAAoB,CAAC;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;IACzC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC;IAClC,WAAW,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,WAAW,GAAG,WAAW,CAAC;CACvC;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,GAAE,0BAA+B;IAI9C,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;YAoEjE,WAAW;YA6CX,gBAAgB;YAkDhB,eAAe;YAkEf,QAAQ;YA4CR,aAAa;YAoBb,iBAAiB;YAkCjB,WAAW;IA0CzB,OAAO,CAAC,0BAA0B;YAOpB,UAAU;CAQzB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAAC,aAAa,CAAC,CAGxB"}
@@ -0,0 +1,356 @@
1
+ /**
2
+ * Java Standards Parser - Parse Java/Kotlin config files for coding standards
3
+ *
4
+ * Supports: checkstyle.xml, pmd.xml, spotbugs.xml, .editorconfig, detekt.yml
5
+ */
6
+ import * as fs from 'fs';
7
+ import * as path from 'path';
8
+ import { promisify } from 'util';
9
+ import { consoleLogger } from '../../../utils/logger.js';
10
+ const readFile = promisify(fs.readFile);
11
+ const stat = promisify(fs.stat);
12
+ export class JavaStandardsParser {
13
+ constructor(options = {}) {
14
+ this.logger = options.logger ?? consoleLogger;
15
+ }
16
+ async parse(projectPath, configFiles) {
17
+ const warnings = [];
18
+ const result = {
19
+ buildTool: 'unknown',
20
+ namingConventions: {
21
+ classes: 'PascalCase (UpperCamelCase)',
22
+ methods: 'camelCase (lowerCamelCase)',
23
+ constants: 'UPPER_SNAKE_CASE',
24
+ packages: 'all.lowercase.dotted',
25
+ interfaces: 'PascalCase (often prefixed with I)',
26
+ typeParameters: 'Single uppercase letter (T, E, K, V)',
27
+ },
28
+ formatting: {
29
+ indentation: 'spaces',
30
+ indentSize: 4,
31
+ maxLineLength: 120,
32
+ braceStyle: 'same_line',
33
+ },
34
+ warnings,
35
+ };
36
+ // Detect build tool
37
+ if (configFiles.includes('pom.xml')) {
38
+ result.buildTool = 'maven';
39
+ await this.parsePomXml(path.join(projectPath, 'pom.xml'), result);
40
+ }
41
+ else if (configFiles.includes('build.gradle') || configFiles.includes('build.gradle.kts')) {
42
+ result.buildTool = 'gradle';
43
+ const gradleFile = configFiles.includes('build.gradle.kts')
44
+ ? 'build.gradle.kts'
45
+ : 'build.gradle';
46
+ await this.parseGradleBuild(path.join(projectPath, gradleFile), result);
47
+ }
48
+ // Parse checkstyle config
49
+ const checkstyleFile = configFiles.find((f) => f === 'checkstyle.xml' || f === 'checkstyle/checkstyle.xml');
50
+ if (checkstyleFile) {
51
+ await this.parseCheckstyle(path.join(projectPath, checkstyleFile), result);
52
+ }
53
+ // Parse PMD config
54
+ const pmdFile = configFiles.find((f) => f === 'pmd.xml' || f === 'pmd/pmd.xml');
55
+ if (pmdFile) {
56
+ await this.parsePmd(path.join(projectPath, pmdFile), result);
57
+ }
58
+ // Parse SpotBugs config
59
+ if (configFiles.includes('spotbugs.xml') || configFiles.includes('spotbugs-exclude.xml')) {
60
+ const spotbugsFile = configFiles.includes('spotbugs.xml')
61
+ ? 'spotbugs.xml'
62
+ : 'spotbugs-exclude.xml';
63
+ await this.parseSpotbugs(path.join(projectPath, spotbugsFile), result);
64
+ }
65
+ // Parse .editorconfig for formatting preferences
66
+ if (configFiles.includes('.editorconfig')) {
67
+ await this.parseEditorconfig(path.join(projectPath, '.editorconfig'), result);
68
+ }
69
+ // Parse Kotlin config (detekt)
70
+ if (configFiles.includes('detekt.yml')) {
71
+ await this.parseDetekt(path.join(projectPath, 'detekt.yml'), result);
72
+ }
73
+ return result;
74
+ }
75
+ async parsePomXml(filePath, result) {
76
+ try {
77
+ const content = await readFile(filePath, 'utf-8');
78
+ // Extract Java version
79
+ const javaVersionMatch = content.match(/<java\.version>([^<]+)<\/java\.version>/);
80
+ const mavenCompilerSource = content.match(/<maven\.compiler\.source>([^<]+)<\/maven\.compiler\.source>/);
81
+ result.javaVersion = javaVersionMatch?.[1] ?? mavenCompilerSource?.[1];
82
+ // Check for checkstyle plugin
83
+ if (content.includes('maven-checkstyle-plugin')) {
84
+ result.checkstyle = result.checkstyle ?? {
85
+ enabled: true,
86
+ configStyle: 'custom',
87
+ rules: [],
88
+ suppressions: [],
89
+ };
90
+ }
91
+ // Check for PMD plugin
92
+ if (content.includes('maven-pmd-plugin')) {
93
+ result.pmd = result.pmd ?? {
94
+ enabled: true,
95
+ rulesets: [],
96
+ excludedRules: [],
97
+ };
98
+ }
99
+ // Check for SpotBugs plugin
100
+ if (content.includes('spotbugs-maven-plugin')) {
101
+ result.spotbugs = result.spotbugs ?? {
102
+ enabled: true,
103
+ effort: 'default',
104
+ reportLevel: 'medium',
105
+ };
106
+ }
107
+ this.logger.debug(`Parsed pom.xml: Java ${result.javaVersion}`);
108
+ }
109
+ catch (error) {
110
+ result.warnings.push(`Failed to parse pom.xml: ${error}`);
111
+ }
112
+ }
113
+ async parseGradleBuild(filePath, result) {
114
+ try {
115
+ const content = await readFile(filePath, 'utf-8');
116
+ // Extract Java version
117
+ const sourceCompatMatch = content.match(/sourceCompatibility\s*=\s*['"]?(\d+)['"]?/);
118
+ const javaVersionMatch = content.match(/JavaVersion\.VERSION_(\d+)/);
119
+ result.javaVersion = sourceCompatMatch?.[1] ?? javaVersionMatch?.[1];
120
+ // Check for checkstyle plugin
121
+ if (content.includes('checkstyle')) {
122
+ result.checkstyle = result.checkstyle ?? {
123
+ enabled: true,
124
+ configStyle: 'custom',
125
+ rules: [],
126
+ suppressions: [],
127
+ };
128
+ }
129
+ // Check for PMD plugin
130
+ if (content.includes('pmd')) {
131
+ result.pmd = result.pmd ?? {
132
+ enabled: true,
133
+ rulesets: [],
134
+ excludedRules: [],
135
+ };
136
+ }
137
+ // Check for SpotBugs plugin
138
+ if (content.includes('spotbugs')) {
139
+ result.spotbugs = result.spotbugs ?? {
140
+ enabled: true,
141
+ effort: 'default',
142
+ reportLevel: 'medium',
143
+ };
144
+ }
145
+ // Check for Kotlin
146
+ if (filePath.endsWith('.kts') || content.includes('kotlin')) {
147
+ result.kotlin = result.kotlin ?? {
148
+ enabled: true,
149
+ };
150
+ }
151
+ this.logger.debug(`Parsed Gradle build: Java ${result.javaVersion}`);
152
+ }
153
+ catch (error) {
154
+ result.warnings.push(`Failed to parse Gradle build file: ${error}`);
155
+ }
156
+ }
157
+ async parseCheckstyle(filePath, result) {
158
+ try {
159
+ const content = await readFile(filePath, 'utf-8');
160
+ const rules = [];
161
+ const suppressions = [];
162
+ let configStyle = 'custom';
163
+ // Detect style based on content
164
+ if (content.includes('google_checks') || content.includes('GoogleStyle')) {
165
+ configStyle = 'google';
166
+ }
167
+ else if (content.includes('sun_checks')) {
168
+ configStyle = 'sun';
169
+ }
170
+ // Parse modules (simplified XML parsing)
171
+ const moduleRegex = /<module\s+name="([^"]+)"([^>]*>[\s\S]*?<\/module>|[^>]*\/>)/g;
172
+ let match;
173
+ while ((match = moduleRegex.exec(content)) !== null) {
174
+ const moduleName = match[1];
175
+ const moduleContent = match[2];
176
+ const properties = {};
177
+ // Extract properties
178
+ const propRegex = /<property\s+name="([^"]+)"\s+value="([^"]+)"/g;
179
+ let propMatch;
180
+ while ((propMatch = propRegex.exec(moduleContent)) !== null) {
181
+ properties[propMatch[1]] = propMatch[2];
182
+ }
183
+ // Skip Checker and TreeWalker modules (containers)
184
+ if (moduleName !== 'Checker' && moduleName !== 'TreeWalker') {
185
+ rules.push({ module: moduleName, properties });
186
+ }
187
+ }
188
+ // Extract suppressions
189
+ const suppressionRegex = /<suppress\s+files="([^"]+)"/g;
190
+ while ((match = suppressionRegex.exec(content)) !== null) {
191
+ suppressions.push(match[1]);
192
+ }
193
+ // Update formatting based on checkstyle rules
194
+ const lineLength = rules.find((r) => r.module === 'LineLength');
195
+ if (lineLength?.properties?.max) {
196
+ result.formatting.maxLineLength = parseInt(lineLength.properties.max, 10);
197
+ }
198
+ const indentation = rules.find((r) => r.module === 'Indentation');
199
+ if (indentation?.properties?.basicOffset) {
200
+ result.formatting.indentSize = parseInt(indentation.properties.basicOffset, 10);
201
+ }
202
+ result.checkstyle = {
203
+ enabled: true,
204
+ configStyle,
205
+ rules,
206
+ suppressions,
207
+ };
208
+ this.logger.debug(`Parsed checkstyle.xml: ${configStyle} style, ${rules.length} rules`);
209
+ }
210
+ catch (error) {
211
+ result.warnings.push(`Failed to parse checkstyle.xml: ${error}`);
212
+ }
213
+ }
214
+ async parsePmd(filePath, result) {
215
+ try {
216
+ const content = await readFile(filePath, 'utf-8');
217
+ const rulesets = [];
218
+ const excludedRules = [];
219
+ // Parse rulesets
220
+ const rulesetRefRegex = /<ruleset-ref\s+ref="([^"]+)"/g;
221
+ let match;
222
+ while ((match = rulesetRefRegex.exec(content)) !== null) {
223
+ rulesets.push(match[1]);
224
+ }
225
+ // Parse individual rules
226
+ const ruleRegex = /<rule\s+ref="([^"]+)"/g;
227
+ while ((match = ruleRegex.exec(content)) !== null) {
228
+ const rulePath = match[1];
229
+ const ruleName = rulePath.split('/').pop()?.replace('.xml', '') ?? rulePath;
230
+ rulesets.push(ruleName);
231
+ }
232
+ // Parse exclusions
233
+ const excludeRegex = /<exclude\s+name="([^"]+)"/g;
234
+ while ((match = excludeRegex.exec(content)) !== null) {
235
+ excludedRules.push(match[1]);
236
+ }
237
+ // Parse minimum priority
238
+ const priorityMatch = content.match(/minimumPriority\s*=\s*["']?(\d)["']?/);
239
+ result.pmd = {
240
+ enabled: true,
241
+ rulesets,
242
+ excludedRules,
243
+ minimumPriority: priorityMatch ? parseInt(priorityMatch[1], 10) : undefined,
244
+ };
245
+ this.logger.debug(`Parsed pmd.xml: ${rulesets.length} rulesets, ${excludedRules.length} excluded`);
246
+ }
247
+ catch (error) {
248
+ result.warnings.push(`Failed to parse pmd.xml: ${error}`);
249
+ }
250
+ }
251
+ async parseSpotbugs(filePath, result) {
252
+ try {
253
+ const content = await readFile(filePath, 'utf-8');
254
+ // SpotBugs exclude filter is typically just exclusion patterns
255
+ const isExcludeFilter = filePath.includes('exclude');
256
+ result.spotbugs = {
257
+ enabled: true,
258
+ effort: 'default',
259
+ reportLevel: 'medium',
260
+ excludeFilterFile: isExcludeFilter ? path.basename(filePath) : undefined,
261
+ };
262
+ this.logger.debug('Parsed SpotBugs config');
263
+ }
264
+ catch (error) {
265
+ result.warnings.push(`Failed to parse SpotBugs config: ${error}`);
266
+ }
267
+ }
268
+ async parseEditorconfig(filePath, result) {
269
+ try {
270
+ const content = await readFile(filePath, 'utf-8');
271
+ // Look for Java-specific or general settings
272
+ const javaSection = this.extractEditorconfigSection(content, '*.java');
273
+ const generalSection = this.extractEditorconfigSection(content, '*');
274
+ const section = javaSection || generalSection || content;
275
+ // Parse indent style
276
+ const indentStyleMatch = section.match(/indent_style\s*=\s*(spaces|tabs)/i);
277
+ if (indentStyleMatch) {
278
+ result.formatting.indentation = indentStyleMatch[1].toLowerCase();
279
+ }
280
+ // Parse indent size
281
+ const indentSizeMatch = section.match(/indent_size\s*=\s*(\d+)/);
282
+ if (indentSizeMatch) {
283
+ result.formatting.indentSize = parseInt(indentSizeMatch[1], 10);
284
+ }
285
+ // Parse max line length
286
+ const maxLineLengthMatch = section.match(/max_line_length\s*=\s*(\d+)/);
287
+ if (maxLineLengthMatch) {
288
+ result.formatting.maxLineLength = parseInt(maxLineLengthMatch[1], 10);
289
+ }
290
+ this.logger.debug('Parsed .editorconfig for Java formatting');
291
+ }
292
+ catch (error) {
293
+ result.warnings.push(`Failed to parse .editorconfig: ${error}`);
294
+ }
295
+ }
296
+ async parseDetekt(filePath, result) {
297
+ try {
298
+ const content = await readFile(filePath, 'utf-8');
299
+ const rules = [];
300
+ // Simple detection of enabled rule sets
301
+ const ruleSets = [
302
+ 'complexity',
303
+ 'coroutines',
304
+ 'empty-blocks',
305
+ 'exceptions',
306
+ 'naming',
307
+ 'performance',
308
+ 'potential-bugs',
309
+ 'style',
310
+ ];
311
+ for (const ruleSet of ruleSets) {
312
+ if (content.includes(`${ruleSet}:`)) {
313
+ const activeMatch = content.match(new RegExp(`${ruleSet}:[\\s\\S]*?active:\\s*(true|false)`));
314
+ if (!activeMatch || activeMatch[1] === 'true') {
315
+ rules.push(ruleSet);
316
+ }
317
+ }
318
+ }
319
+ result.kotlin = {
320
+ enabled: true,
321
+ detekt: {
322
+ enabled: true,
323
+ configFile: 'detekt.yml',
324
+ rules,
325
+ },
326
+ };
327
+ this.logger.debug(`Parsed detekt.yml: ${rules.length} rule sets`);
328
+ }
329
+ catch (error) {
330
+ result.warnings.push(`Failed to parse detekt.yml: ${error}`);
331
+ }
332
+ }
333
+ extractEditorconfigSection(content, pattern) {
334
+ const escapedPattern = pattern.replace(/\*/g, '\\*').replace(/\./g, '\\.');
335
+ const sectionRegex = new RegExp(`\\[${escapedPattern}\\]([\\s\\S]*?)(?=\\n\\[|$)`, 'i');
336
+ const match = content.match(sectionRegex);
337
+ return match ? match[1] : null;
338
+ }
339
+ async fileExists(filePath) {
340
+ try {
341
+ await stat(filePath);
342
+ return true;
343
+ }
344
+ catch {
345
+ return false;
346
+ }
347
+ }
348
+ }
349
+ /**
350
+ * Convenience function for quick Java standards parsing
351
+ */
352
+ export async function parseJavaStandards(projectPath, configFiles, options) {
353
+ const parser = new JavaStandardsParser(options);
354
+ return parser.parse(projectPath, configFiles);
355
+ }
356
+ //# sourceMappingURL=java-standards-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"java-standards-parser.js","sourceRoot":"","sources":["../../../../../src/core/living-docs/governance/java-standards-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAU,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEjE,MAAM,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AACxC,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AA6EhC,MAAM,OAAO,mBAAmB;IAG9B,YAAY,UAAsC,EAAE;QAClD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,WAAmB,EAAE,WAAqB;QACpD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAkB;YAC5B,SAAS,EAAE,SAAS;YACpB,iBAAiB,EAAE;gBACjB,OAAO,EAAE,6BAA6B;gBACtC,OAAO,EAAE,4BAA4B;gBACrC,SAAS,EAAE,kBAAkB;gBAC7B,QAAQ,EAAE,sBAAsB;gBAChC,UAAU,EAAE,oCAAoC;gBAChD,cAAc,EAAE,sCAAsC;aACvD;YACD,UAAU,EAAE;gBACV,WAAW,EAAE,QAAQ;gBACrB,UAAU,EAAE,CAAC;gBACb,aAAa,EAAE,GAAG;gBAClB,UAAU,EAAE,WAAW;aACxB;YACD,QAAQ;SACT,CAAC;QAEF,oBAAoB;QACpB,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC;YAC3B,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;QACpE,CAAC;aAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC5F,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC5B,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC;gBACzD,CAAC,CAAC,kBAAkB;gBACpB,CAAC,CAAC,cAAc,CAAC;YACnB,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;QAC1E,CAAC;QAED,0BAA0B;QAC1B,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,gBAAgB,IAAI,CAAC,KAAK,2BAA2B,CACnE,CAAC;QACF,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;QAC7E,CAAC;QAED,mBAAmB;QACnB,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,aAAa,CAAC,CAAC;QAChF,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/D,CAAC;QAED,wBAAwB;QACxB,IAAI,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;YACzF,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC;gBACvD,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,sBAAsB,CAAC;YAC3B,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;QACzE,CAAC;QAED,iDAAiD;QACjD,IAAI,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC;QAChF,CAAC;QAED,+BAA+B;QAC/B,IAAI,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,MAAqB;QAC/D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAElD,uBAAuB;YACvB,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAClF,MAAM,mBAAmB,GAAG,OAAO,CAAC,KAAK,CACvC,6DAA6D,CAC9D,CAAC;YACF,MAAM,CAAC,WAAW,GAAG,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC;YAEvE,8BAA8B;YAC9B,IAAI,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;gBAChD,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI;oBACvC,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,QAAQ;oBACrB,KAAK,EAAE,EAAE;oBACT,YAAY,EAAE,EAAE;iBACjB,CAAC;YACJ,CAAC;YAED,uBAAuB;YACvB,IAAI,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACzC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI;oBACzB,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,EAAE;oBACZ,aAAa,EAAE,EAAE;iBAClB,CAAC;YACJ,CAAC;YAED,4BAA4B;YAC5B,IAAI,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;gBAC9C,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI;oBACnC,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,SAAS;oBACjB,WAAW,EAAE,QAAQ;iBACtB,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,MAAqB;QACpE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAElD,uBAAuB;YACvB,MAAM,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACrF,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YACrE,MAAM,CAAC,WAAW,GAAG,iBAAiB,EAAE,CAAC,CAAC,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;YAErE,8BAA8B;YAC9B,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBACnC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI;oBACvC,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,QAAQ;oBACrB,KAAK,EAAE,EAAE;oBACT,YAAY,EAAE,EAAE;iBACjB,CAAC;YACJ,CAAC;YAED,uBAAuB;YACvB,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI;oBACzB,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,EAAE;oBACZ,aAAa,EAAE,EAAE;iBAClB,CAAC;YACJ,CAAC;YAED,4BAA4B;YAC5B,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACjC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI;oBACnC,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,SAAS;oBACjB,WAAW,EAAE,QAAQ;iBACtB,CAAC;YACJ,CAAC;YAED,mBAAmB;YACnB,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5D,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI;oBAC/B,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,sCAAsC,KAAK,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,MAAqB;QACnE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAElD,MAAM,KAAK,GAAqB,EAAE,CAAC;YACnC,MAAM,YAAY,GAAa,EAAE,CAAC;YAClC,IAAI,WAAW,GAAgC,QAAQ,CAAC;YAExD,gCAAgC;YAChC,IAAI,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBACzE,WAAW,GAAG,QAAQ,CAAC;YACzB,CAAC;iBAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC1C,WAAW,GAAG,KAAK,CAAC;YACtB,CAAC;YAED,yCAAyC;YACzC,MAAM,WAAW,GAAG,8DAA8D,CAAC;YACnF,IAAI,KAAK,CAAC;YACV,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACpD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,UAAU,GAA2B,EAAE,CAAC;gBAE9C,qBAAqB;gBACrB,MAAM,SAAS,GAAG,+CAA+C,CAAC;gBAClE,IAAI,SAAS,CAAC;gBACd,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;oBAC5D,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC1C,CAAC;gBAED,mDAAmD;gBACnD,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;oBAC5D,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;YAED,uBAAuB;YACvB,MAAM,gBAAgB,GAAG,8BAA8B,CAAC;YACxD,OAAO,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACzD,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;YAED,8CAA8C;YAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC;YAChE,IAAI,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;gBAChC,MAAM,CAAC,UAAU,CAAC,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC5E,CAAC;YAED,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC;YAClE,IAAI,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;gBACzC,MAAM,CAAC,UAAU,CAAC,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAClF,CAAC;YAED,MAAM,CAAC,UAAU,GAAG;gBAClB,OAAO,EAAE,IAAI;gBACb,WAAW;gBACX,KAAK;gBACL,YAAY;aACb,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,WAAW,WAAW,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC;QAC1F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,QAAgB,EAAE,MAAqB;QAC5D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAElD,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,MAAM,aAAa,GAAa,EAAE,CAAC;YAEnC,iBAAiB;YACjB,MAAM,eAAe,GAAG,+BAA+B,CAAC;YACxD,IAAI,KAAK,CAAC;YACV,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACxD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;YAED,yBAAyB;YACzB,MAAM,SAAS,GAAG,wBAAwB,CAAC;YAC3C,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC1B,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC;gBAC5E,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1B,CAAC;YAED,mBAAmB;YACnB,MAAM,YAAY,GAAG,4BAA4B,CAAC;YAClD,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACrD,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,CAAC;YAED,yBAAyB;YACzB,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAE5E,MAAM,CAAC,GAAG,GAAG;gBACX,OAAO,EAAE,IAAI;gBACb,QAAQ;gBACR,aAAa;gBACb,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;aAC5E,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,QAAQ,CAAC,MAAM,cAAc,aAAa,CAAC,MAAM,WAAW,CAAC,CAAC;QACrG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,MAAqB;QACjE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAElD,+DAA+D;YAC/D,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAErD,MAAM,CAAC,QAAQ,GAAG;gBAChB,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,SAAS;gBACjB,WAAW,EAAE,QAAQ;gBACrB,iBAAiB,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;aACzE,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,QAAgB,EAAE,MAAqB;QACrE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAElD,6CAA6C;YAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACvE,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAErE,MAAM,OAAO,GAAG,WAAW,IAAI,cAAc,IAAI,OAAO,CAAC;YAEzD,qBAAqB;YACrB,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAC5E,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,CAAC,UAAU,CAAC,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,WAAW,EAAuB,CAAC;YACzF,CAAC;YAED,oBAAoB;YACpB,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACjE,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,CAAC,UAAU,CAAC,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClE,CAAC;YAED,wBAAwB;YACxB,MAAM,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACxE,IAAI,kBAAkB,EAAE,CAAC;gBACvB,MAAM,CAAC,UAAU,CAAC,aAAa,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxE,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,MAAqB;QAC/D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAElD,MAAM,KAAK,GAAa,EAAE,CAAC;YAE3B,wCAAwC;YACxC,MAAM,QAAQ,GAAG;gBACf,YAAY;gBACZ,YAAY;gBACZ,cAAc;gBACd,YAAY;gBACZ,QAAQ;gBACR,aAAa;gBACb,gBAAgB;gBAChB,OAAO;aACR,CAAC;YAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC;oBACpC,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,oCAAoC,CAAC,CAAC,CAAC;oBAC9F,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;wBAC9C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACtB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,CAAC,MAAM,GAAG;gBACd,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACN,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,YAAY;oBACxB,KAAK;iBACN;aACF,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,KAAK,CAAC,MAAM,YAAY,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAEO,0BAA0B,CAAC,OAAe,EAAE,OAAe;QACjE,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3E,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,MAAM,cAAc,6BAA6B,EAAE,GAAG,CAAC,CAAC;QACxF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,QAAgB;QACvC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,WAAmB,EACnB,WAAqB,EACrB,OAAoC;IAEpC,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAChD,CAAC"}