@orchestrator-claude/cli 1.7.2 → 1.7.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.
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/templates/base/.orchestrator/patterns/legacy/README.md +360 -0
- package/dist/templates/base/.orchestrator/patterns/legacy/php/laravel.patterns.json +396 -0
- package/dist/templates/base/.orchestrator/templates/legacy/README.md +296 -0
- package/dist/templates/base/.orchestrator/templates/legacy/analysis-report.md.hbs +342 -0
- package/dist/templates/base/.orchestrator/templates/legacy/api-spec.yaml.hbs +263 -0
- package/dist/templates/base/.orchestrator/templates/legacy/business-rules.md.hbs +449 -0
- package/dist/templates/base/.orchestrator/templates/legacy/database-schema.md.hbs +356 -0
- package/dist/templates/base/.orchestrator/templates/legacy/dead-code-report.md.hbs +330 -0
- package/dist/templates/base/.orchestrator/templates/legacy/discovery-report.md.hbs +267 -0
- package/dist/templates/base/.orchestrator/templates/legacy/final-report.md.hbs +451 -0
- package/dist/templates/base/.orchestrator/templates/legacy/inventory.json.schema +346 -0
- package/dist/templates/base/.orchestrator/templates/legacy/migration-roadmap.md.hbs +571 -0
- package/dist/templates/base/.orchestrator/templates/legacy/tech-debt.md.hbs +412 -0
- package/dist/templates/base/claude/agents/api-extractor.md +665 -0
- package/dist/templates/base/claude/agents/business-rule-miner.md +734 -0
- package/dist/templates/base/claude/agents/code-archaeologist.md +715 -0
- package/dist/templates/base/claude/agents/legacy-discoverer.md +578 -0
- package/dist/templates/base/claude/agents/legacy-synthesizer.md +1097 -0
- package/dist/templates/base/claude/agents/schema-extractor.md +767 -0
- package/dist/templates/workflows/README.md +137 -0
- package/dist/templates/workflows/bug-fix.json +73 -0
- package/dist/templates/workflows/feature-development.json +87 -0
- package/dist/templates/workflows/legacy-analysis.json +288 -0
- package/dist/templates/workflows/refactoring.json +73 -0
- package/package.json +1 -1
- package/templates/base/.orchestrator/patterns/legacy/README.md +360 -0
- package/templates/base/.orchestrator/patterns/legacy/php/laravel.patterns.json +396 -0
- package/templates/base/.orchestrator/templates/legacy/README.md +296 -0
- package/templates/base/.orchestrator/templates/legacy/analysis-report.md.hbs +342 -0
- package/templates/base/.orchestrator/templates/legacy/api-spec.yaml.hbs +263 -0
- package/templates/base/.orchestrator/templates/legacy/business-rules.md.hbs +449 -0
- package/templates/base/.orchestrator/templates/legacy/database-schema.md.hbs +356 -0
- package/templates/base/.orchestrator/templates/legacy/dead-code-report.md.hbs +330 -0
- package/templates/base/.orchestrator/templates/legacy/discovery-report.md.hbs +267 -0
- package/templates/base/.orchestrator/templates/legacy/final-report.md.hbs +451 -0
- package/templates/base/.orchestrator/templates/legacy/inventory.json.schema +346 -0
- package/templates/base/.orchestrator/templates/legacy/migration-roadmap.md.hbs +571 -0
- package/templates/base/.orchestrator/templates/legacy/tech-debt.md.hbs +412 -0
- package/templates/base/claude/agents/api-extractor.md +665 -0
- package/templates/base/claude/agents/business-rule-miner.md +734 -0
- package/templates/base/claude/agents/code-archaeologist.md +715 -0
- package/templates/base/claude/agents/legacy-discoverer.md +578 -0
- package/templates/base/claude/agents/legacy-synthesizer.md +1097 -0
- package/templates/base/claude/agents/schema-extractor.md +767 -0
- package/templates/workflows/README.md +137 -0
- package/templates/workflows/bug-fix.json +73 -0
- package/templates/workflows/feature-development.json +87 -0
- package/templates/workflows/legacy-analysis.json +288 -0
- package/templates/workflows/refactoring.json +73 -0
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
# Analysis Report: {{projectName}}
|
|
2
|
+
|
|
3
|
+
**Generated:** {{generatedAt}}
|
|
4
|
+
**Agent:** code-archaeologist
|
|
5
|
+
**Workflow Phase:** ANALYZE
|
|
6
|
+
**Codebase Path:** {{codebasePath}}
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Executive Summary
|
|
11
|
+
|
|
12
|
+
{{summary}}
|
|
13
|
+
|
|
14
|
+
**Risk Score:** {{riskScore}}/100 ({{riskLevel}})
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Findings Overview
|
|
19
|
+
|
|
20
|
+
| Severity | Count | Percentage |
|
|
21
|
+
|----------|-------|------------|
|
|
22
|
+
| ❌ CRITICAL | {{counts.critical}} | {{percentages.critical}}% |
|
|
23
|
+
| ⚠️ HIGH | {{counts.high}} | {{percentages.high}}% |
|
|
24
|
+
| ⚡ MEDIUM | {{counts.medium}} | {{percentages.medium}}% |
|
|
25
|
+
| ℹ️ LOW | {{counts.low}} | {{percentages.low}}% |
|
|
26
|
+
| **Total** | **{{counts.total}}** | **100%** |
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## ❌ CRITICAL Issues
|
|
31
|
+
|
|
32
|
+
{{#if findings.critical}}
|
|
33
|
+
{{#each findings.critical}}
|
|
34
|
+
### {{id}}: {{title}}
|
|
35
|
+
|
|
36
|
+
- **Category:** {{category}}
|
|
37
|
+
- **Location:** `{{location.file}}:{{location.line}}`
|
|
38
|
+
- **Impact:** {{impact}}
|
|
39
|
+
- **Risk:** {{risk}}
|
|
40
|
+
|
|
41
|
+
**Description:**
|
|
42
|
+
{{description}}
|
|
43
|
+
|
|
44
|
+
**Evidence:**
|
|
45
|
+
```{{language}}
|
|
46
|
+
{{codeSnippet}}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Recommendation:**
|
|
50
|
+
{{recommendation}}
|
|
51
|
+
|
|
52
|
+
**Estimated Fix Time:** {{estimatedFixTime}}
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
{{/each}}
|
|
57
|
+
{{else}}
|
|
58
|
+
✅ No critical issues found.
|
|
59
|
+
{{/if}}
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## ⚠️ HIGH Priority Issues
|
|
64
|
+
|
|
65
|
+
{{#if findings.high}}
|
|
66
|
+
{{#each findings.high}}
|
|
67
|
+
### {{id}}: {{title}}
|
|
68
|
+
|
|
69
|
+
- **Category:** {{category}}
|
|
70
|
+
- **Location:** `{{location.file}}:{{location.line}}`
|
|
71
|
+
- **Impact:** {{impact}}
|
|
72
|
+
|
|
73
|
+
**Description:**
|
|
74
|
+
{{description}}
|
|
75
|
+
|
|
76
|
+
**Recommendation:**
|
|
77
|
+
{{recommendation}}
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
{{/each}}
|
|
82
|
+
{{else}}
|
|
83
|
+
✅ No high priority issues found.
|
|
84
|
+
{{/if}}
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## ⚡ MEDIUM Priority Issues
|
|
89
|
+
|
|
90
|
+
{{#if findings.medium}}
|
|
91
|
+
Total: {{findings.medium.length}} issues
|
|
92
|
+
|
|
93
|
+
{{#each findings.medium}}
|
|
94
|
+
- **{{id}}**: {{title}} - `{{location.file}}:{{location.line}}`
|
|
95
|
+
{{/each}}
|
|
96
|
+
|
|
97
|
+
**Detailed findings in:** `tech-debt.md`
|
|
98
|
+
{{else}}
|
|
99
|
+
✅ No medium priority issues found.
|
|
100
|
+
{{/if}}
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## ℹ️ LOW Priority Issues
|
|
105
|
+
|
|
106
|
+
{{#if findings.low}}
|
|
107
|
+
Total: {{findings.low.length}} minor improvements suggested
|
|
108
|
+
|
|
109
|
+
**See full list in:** `tech-debt.md`
|
|
110
|
+
{{else}}
|
|
111
|
+
✅ No low priority issues found.
|
|
112
|
+
{{/if}}
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Code Quality Metrics
|
|
117
|
+
|
|
118
|
+
### Complexity
|
|
119
|
+
|
|
120
|
+
| Metric | Value | Threshold | Status |
|
|
121
|
+
|--------|-------|-----------|--------|
|
|
122
|
+
| **Average Cyclomatic Complexity** | {{metrics.complexity.average}} | <= 10 | {{#if metrics.complexity.averageExceeds}}⚠️{{else}}✅{{/if}} |
|
|
123
|
+
| **Maximum Cyclomatic Complexity** | {{metrics.complexity.max}} | <= 20 | {{#if metrics.complexity.maxExceeds}}⚠️{{else}}✅{{/if}} |
|
|
124
|
+
| **Files Above Threshold** | {{metrics.complexity.filesAbove}} | 0 | {{#if metrics.complexity.filesAbove}}⚠️{{else}}✅{{/if}} |
|
|
125
|
+
| **God Classes (>500 LOC)** | {{metrics.complexity.godClasses}} | 0 | {{#if metrics.complexity.godClasses}}⚠️{{else}}✅{{/if}} |
|
|
126
|
+
|
|
127
|
+
### Maintainability
|
|
128
|
+
|
|
129
|
+
| Metric | Value | Threshold | Status |
|
|
130
|
+
|--------|-------|-----------|--------|
|
|
131
|
+
| **Maintainability Index** | {{metrics.maintainability.index}} | >= 65 | {{#if metrics.maintainability.indexBelow}}⚠️{{else}}✅{{/if}} |
|
|
132
|
+
| **Comment Ratio** | {{metrics.maintainability.commentRatio}}% | >= 15% | {{#if metrics.maintainability.commentRatioBelow}}⚠️{{else}}✅{{/if}} |
|
|
133
|
+
| **Duplicate Code** | {{metrics.maintainability.duplication}}% | <= 5% | {{#if metrics.maintainability.duplicationAbove}}⚠️{{else}}✅{{/if}} |
|
|
134
|
+
|
|
135
|
+
### Test Coverage
|
|
136
|
+
|
|
137
|
+
| Metric | Value | Threshold | Status |
|
|
138
|
+
|--------|-------|-----------|--------|
|
|
139
|
+
| **Line Coverage** | {{metrics.coverage.lines}}% | >= 80% | {{#if metrics.coverage.linesBelow}}⚠️{{else}}✅{{/if}} |
|
|
140
|
+
| **Branch Coverage** | {{metrics.coverage.branches}}% | >= 75% | {{#if metrics.coverage.branchesBelow}}⚠️{{else}}✅{{/if}} |
|
|
141
|
+
| **Files Without Tests** | {{metrics.coverage.untested}} | 0 | {{#if metrics.coverage.untested}}⚠️{{else}}✅{{/if}} |
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Security Analysis
|
|
146
|
+
|
|
147
|
+
### Vulnerabilities Detected
|
|
148
|
+
|
|
149
|
+
{{#if security.vulnerabilities}}
|
|
150
|
+
❌ **{{security.vulnerabilities.length}} security vulnerabilities found**
|
|
151
|
+
|
|
152
|
+
{{#each security.vulnerabilities}}
|
|
153
|
+
#### {{id}}: {{title}}
|
|
154
|
+
- **Severity:** {{severity}}
|
|
155
|
+
- **Category:** {{category}}
|
|
156
|
+
- **Location:** `{{location.file}}:{{location.line}}`
|
|
157
|
+
- **CWE:** {{cwe}}
|
|
158
|
+
- **Fix:** {{fix}}
|
|
159
|
+
|
|
160
|
+
{{/each}}
|
|
161
|
+
{{else}}
|
|
162
|
+
✅ No security vulnerabilities detected.
|
|
163
|
+
{{/if}}
|
|
164
|
+
|
|
165
|
+
### Hardcoded Secrets
|
|
166
|
+
|
|
167
|
+
{{#if security.secrets}}
|
|
168
|
+
❌ **{{security.secrets.length}} hardcoded secrets found**
|
|
169
|
+
|
|
170
|
+
**IMPORTANT:** All secrets have been sanitized in this report and replaced with `[REDACTED]`.
|
|
171
|
+
|
|
172
|
+
{{#each security.secrets}}
|
|
173
|
+
- **{{type}}** in `{{location.file}}:{{location.line}}` - **Action:** Rotate immediately
|
|
174
|
+
{{/each}}
|
|
175
|
+
{{else}}
|
|
176
|
+
✅ No hardcoded secrets detected.
|
|
177
|
+
{{/if}}
|
|
178
|
+
|
|
179
|
+
### Insecure Patterns
|
|
180
|
+
|
|
181
|
+
{{#if security.insecurePatterns}}
|
|
182
|
+
{{#each security.insecurePatterns}}
|
|
183
|
+
- **{{pattern}}** ({{count}} occurrences) - {{description}}
|
|
184
|
+
{{/each}}
|
|
185
|
+
{{else}}
|
|
186
|
+
✅ No insecure patterns detected.
|
|
187
|
+
{{/if}}
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Architectural Issues
|
|
192
|
+
|
|
193
|
+
### Dependency Analysis
|
|
194
|
+
|
|
195
|
+
{{#if architecture.circularDependencies}}
|
|
196
|
+
⚠️ **Circular dependencies detected**
|
|
197
|
+
|
|
198
|
+
{{#each architecture.circularDependencies}}
|
|
199
|
+
- {{cycle}}
|
|
200
|
+
{{/each}}
|
|
201
|
+
{{else}}
|
|
202
|
+
✅ No circular dependencies.
|
|
203
|
+
{{/if}}
|
|
204
|
+
|
|
205
|
+
### Coupling & Cohesion
|
|
206
|
+
|
|
207
|
+
| Metric | Value | Threshold | Status |
|
|
208
|
+
|--------|-------|-----------|--------|
|
|
209
|
+
| **Afferent Coupling** | {{architecture.coupling.afferent}} | - | - |
|
|
210
|
+
| **Efferent Coupling** | {{architecture.coupling.efferent}} | - | - |
|
|
211
|
+
| **Instability** | {{architecture.coupling.instability}} | <= 0.5 | {{#if architecture.coupling.unstable}}⚠️{{else}}✅{{/if}} |
|
|
212
|
+
|
|
213
|
+
### SOLID Violations
|
|
214
|
+
|
|
215
|
+
{{#if architecture.solidViolations}}
|
|
216
|
+
{{#each architecture.solidViolations}}
|
|
217
|
+
- **{{principle}}**: {{description}} (`{{location.file}}`)
|
|
218
|
+
{{/each}}
|
|
219
|
+
{{else}}
|
|
220
|
+
✅ No obvious SOLID violations detected.
|
|
221
|
+
{{/if}}
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Dead Code Analysis
|
|
226
|
+
|
|
227
|
+
**See detailed report in:** `dead-code-report.md`
|
|
228
|
+
|
|
229
|
+
| Category | Count | Estimated LOC |
|
|
230
|
+
|----------|-------|---------------|
|
|
231
|
+
| Unused Functions | {{deadCode.unusedFunctions}} | {{deadCode.unusedFunctionsLOC}} |
|
|
232
|
+
| Unused Classes | {{deadCode.unusedClasses}} | {{deadCode.unusedClassesLOC}} |
|
|
233
|
+
| Unused Variables | {{deadCode.unusedVariables}} | - |
|
|
234
|
+
| Unreachable Code | {{deadCode.unreachable}} | {{deadCode.unreachableLOC}} |
|
|
235
|
+
| **Total** | **{{deadCode.total}}** | **{{deadCode.totalLOC}}** (~{{deadCode.percentageOfCodebase}}% of codebase) |
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## Code Smells
|
|
240
|
+
|
|
241
|
+
{{#if codeSmells}}
|
|
242
|
+
{{#each codeSmells}}
|
|
243
|
+
### {{name}}
|
|
244
|
+
- **Occurrences:** {{count}}
|
|
245
|
+
- **Severity:** {{severity}}
|
|
246
|
+
- **Description:** {{description}}
|
|
247
|
+
- **Refactoring:** {{refactoring}}
|
|
248
|
+
|
|
249
|
+
{{/each}}
|
|
250
|
+
{{else}}
|
|
251
|
+
✅ No major code smells detected.
|
|
252
|
+
{{/if}}
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## SQL & Database Issues
|
|
257
|
+
|
|
258
|
+
{{#if database.issues}}
|
|
259
|
+
{{#each database.issues}}
|
|
260
|
+
- **{{type}}**: {{description}} (`{{location.file}}:{{location.line}}`)
|
|
261
|
+
{{/each}}
|
|
262
|
+
{{else}}
|
|
263
|
+
✅ No database-related issues detected.
|
|
264
|
+
{{/if}}
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Performance Concerns
|
|
269
|
+
|
|
270
|
+
{{#if performance.concerns}}
|
|
271
|
+
{{#each performance.concerns}}
|
|
272
|
+
### {{title}}
|
|
273
|
+
- **Impact:** {{impact}}
|
|
274
|
+
- **Location:** `{{location.file}}:{{location.line}}`
|
|
275
|
+
- **Recommendation:** {{recommendation}}
|
|
276
|
+
|
|
277
|
+
{{/each}}
|
|
278
|
+
{{else}}
|
|
279
|
+
✅ No performance concerns identified.
|
|
280
|
+
{{/if}}
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
## Technical Debt Score
|
|
285
|
+
|
|
286
|
+
**Total Tech Debt:** {{techDebt.score}}/100
|
|
287
|
+
|
|
288
|
+
| Category | Score | Weight | Contribution |
|
|
289
|
+
|----------|-------|--------|--------------|
|
|
290
|
+
| Code Quality | {{techDebt.categories.quality.score}} | {{techDebt.categories.quality.weight}}% | {{techDebt.categories.quality.contribution}} |
|
|
291
|
+
| Security | {{techDebt.categories.security.score}} | {{techDebt.categories.security.weight}}% | {{techDebt.categories.security.contribution}} |
|
|
292
|
+
| Architecture | {{techDebt.categories.architecture.score}} | {{techDebt.categories.architecture.weight}}% | {{techDebt.categories.architecture.contribution}} |
|
|
293
|
+
| Testing | {{techDebt.categories.testing.score}} | {{techDebt.categories.testing.weight}}% | {{techDebt.categories.testing.contribution}} |
|
|
294
|
+
| Documentation | {{techDebt.categories.documentation.score}} | {{techDebt.categories.documentation.weight}}% | {{techDebt.categories.documentation.contribution}} |
|
|
295
|
+
|
|
296
|
+
**Estimated Remediation Effort:** {{techDebt.remediationEffort}} hours
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## Recommendations
|
|
301
|
+
|
|
302
|
+
### Immediate Actions (Critical)
|
|
303
|
+
|
|
304
|
+
{{#each recommendations.immediate}}
|
|
305
|
+
{{@index}}. {{text}}
|
|
306
|
+
{{/each}}
|
|
307
|
+
|
|
308
|
+
### Short-Term (High Priority)
|
|
309
|
+
|
|
310
|
+
{{#each recommendations.shortTerm}}
|
|
311
|
+
{{@index}}. {{text}}
|
|
312
|
+
{{/each}}
|
|
313
|
+
|
|
314
|
+
### Long-Term (Medium/Low Priority)
|
|
315
|
+
|
|
316
|
+
{{#each recommendations.longTerm}}
|
|
317
|
+
{{@index}}. {{text}}
|
|
318
|
+
{{/each}}
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
## Next Steps
|
|
323
|
+
|
|
324
|
+
1. Review and prioritize CRITICAL issues
|
|
325
|
+
2. Address security vulnerabilities immediately
|
|
326
|
+
3. Rotate any hardcoded secrets
|
|
327
|
+
4. Proceed to MAP phase to extract API and database schema
|
|
328
|
+
5. Use findings for migration roadmap in RECOMMEND phase
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
## Artifacts Generated
|
|
333
|
+
|
|
334
|
+
- `analysis-report.md` (this file)
|
|
335
|
+
- `dead-code-report.md` - Detailed dead code findings
|
|
336
|
+
- `tech-debt.md` - Full technical debt catalog
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
**Generated by:** code-archaeologist agent
|
|
341
|
+
**Standards:** AGENT-PROMPT-STANDARDS v1.1
|
|
342
|
+
**RFC:** RFC-004-LEGACY-ANALYSIS-WORKFLOW
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
openapi: 3.0.3
|
|
2
|
+
info:
|
|
3
|
+
title: {{projectName}} API
|
|
4
|
+
description: |
|
|
5
|
+
API specification extracted from legacy codebase.
|
|
6
|
+
|
|
7
|
+
**Generated:** {{generatedAt}}
|
|
8
|
+
**Agent:** api-extractor
|
|
9
|
+
**Workflow Phase:** MAP
|
|
10
|
+
|
|
11
|
+
This specification was automatically generated from code analysis.
|
|
12
|
+
Request/response schemas are inferred and may require manual verification.
|
|
13
|
+
version: "{{apiVersion}}"
|
|
14
|
+
contact:
|
|
15
|
+
name: Generated by Orchestrator
|
|
16
|
+
url: https://github.com/orchestrator
|
|
17
|
+
|
|
18
|
+
servers:
|
|
19
|
+
{{#each servers}}
|
|
20
|
+
- url: {{url}}
|
|
21
|
+
description: {{description}}
|
|
22
|
+
{{/each}}
|
|
23
|
+
|
|
24
|
+
tags:
|
|
25
|
+
{{#each tags}}
|
|
26
|
+
- name: {{name}}
|
|
27
|
+
description: {{description}}
|
|
28
|
+
{{/each}}
|
|
29
|
+
|
|
30
|
+
paths:
|
|
31
|
+
{{#each endpoints}}
|
|
32
|
+
{{path}}:
|
|
33
|
+
{{#each methods}}
|
|
34
|
+
{{method}}:
|
|
35
|
+
summary: {{summary}}
|
|
36
|
+
description: {{description}}
|
|
37
|
+
operationId: {{operationId}}
|
|
38
|
+
tags:
|
|
39
|
+
{{#each tags}}
|
|
40
|
+
- {{this}}
|
|
41
|
+
{{/each}}
|
|
42
|
+
{{#if parameters}}
|
|
43
|
+
parameters:
|
|
44
|
+
{{#each parameters}}
|
|
45
|
+
- name: {{name}}
|
|
46
|
+
in: {{in}}
|
|
47
|
+
required: {{required}}
|
|
48
|
+
description: {{description}}
|
|
49
|
+
schema:
|
|
50
|
+
type: {{schema.type}}
|
|
51
|
+
{{#if schema.format}}
|
|
52
|
+
format: {{schema.format}}
|
|
53
|
+
{{/if}}
|
|
54
|
+
{{#if schema.enum}}
|
|
55
|
+
enum:
|
|
56
|
+
{{#each schema.enum}}
|
|
57
|
+
- {{this}}
|
|
58
|
+
{{/each}}
|
|
59
|
+
{{/if}}
|
|
60
|
+
{{/each}}
|
|
61
|
+
{{/if}}
|
|
62
|
+
{{#if requestBody}}
|
|
63
|
+
requestBody:
|
|
64
|
+
description: {{requestBody.description}}
|
|
65
|
+
required: {{requestBody.required}}
|
|
66
|
+
content:
|
|
67
|
+
{{#each requestBody.content}}
|
|
68
|
+
{{@key}}:
|
|
69
|
+
schema:
|
|
70
|
+
{{#if ref}}
|
|
71
|
+
$ref: '{{ref}}'
|
|
72
|
+
{{else}}
|
|
73
|
+
type: {{schema.type}}
|
|
74
|
+
{{#if schema.properties}}
|
|
75
|
+
properties:
|
|
76
|
+
{{#each schema.properties}}
|
|
77
|
+
{{@key}}:
|
|
78
|
+
type: {{type}}
|
|
79
|
+
{{#if description}}
|
|
80
|
+
description: {{description}}
|
|
81
|
+
{{/if}}
|
|
82
|
+
{{#if format}}
|
|
83
|
+
format: {{format}}
|
|
84
|
+
{{/if}}
|
|
85
|
+
{{/each}}
|
|
86
|
+
{{/if}}
|
|
87
|
+
{{#if schema.required}}
|
|
88
|
+
required:
|
|
89
|
+
{{#each schema.required}}
|
|
90
|
+
- {{this}}
|
|
91
|
+
{{/each}}
|
|
92
|
+
{{/if}}
|
|
93
|
+
{{/if}}
|
|
94
|
+
examples:
|
|
95
|
+
example1:
|
|
96
|
+
value: {{example}}
|
|
97
|
+
{{/each}}
|
|
98
|
+
{{/if}}
|
|
99
|
+
responses:
|
|
100
|
+
{{#each responses}}
|
|
101
|
+
'{{statusCode}}':
|
|
102
|
+
description: {{description}}
|
|
103
|
+
{{#if content}}
|
|
104
|
+
content:
|
|
105
|
+
{{#each content}}
|
|
106
|
+
{{@key}}:
|
|
107
|
+
schema:
|
|
108
|
+
{{#if ref}}
|
|
109
|
+
$ref: '{{ref}}'
|
|
110
|
+
{{else}}
|
|
111
|
+
type: {{schema.type}}
|
|
112
|
+
{{#if schema.properties}}
|
|
113
|
+
properties:
|
|
114
|
+
{{#each schema.properties}}
|
|
115
|
+
{{@key}}:
|
|
116
|
+
type: {{type}}
|
|
117
|
+
{{#if description}}
|
|
118
|
+
description: {{description}}
|
|
119
|
+
{{/if}}
|
|
120
|
+
{{/each}}
|
|
121
|
+
{{/if}}
|
|
122
|
+
{{/if}}
|
|
123
|
+
examples:
|
|
124
|
+
example1:
|
|
125
|
+
value: {{example}}
|
|
126
|
+
{{/each}}
|
|
127
|
+
{{/if}}
|
|
128
|
+
{{/each}}
|
|
129
|
+
{{#if security}}
|
|
130
|
+
security:
|
|
131
|
+
{{#each security}}
|
|
132
|
+
- {{@key}}: [{{#each this}}{{this}}{{#unless @last}}, {{/unless}}{{/each}}]
|
|
133
|
+
{{/each}}
|
|
134
|
+
{{/if}}
|
|
135
|
+
{{#if middleware}}
|
|
136
|
+
x-middleware:
|
|
137
|
+
{{#each middleware}}
|
|
138
|
+
- {{this}}
|
|
139
|
+
{{/each}}
|
|
140
|
+
{{/if}}
|
|
141
|
+
x-source:
|
|
142
|
+
controller: {{source.controller}}
|
|
143
|
+
method: {{source.method}}
|
|
144
|
+
file: {{source.file}}
|
|
145
|
+
line: {{source.line}}
|
|
146
|
+
{{/each}}
|
|
147
|
+
|
|
148
|
+
{{/each}}
|
|
149
|
+
|
|
150
|
+
components:
|
|
151
|
+
schemas:
|
|
152
|
+
{{#each schemas}}
|
|
153
|
+
{{name}}:
|
|
154
|
+
type: {{type}}
|
|
155
|
+
{{#if description}}
|
|
156
|
+
description: {{description}}
|
|
157
|
+
{{/if}}
|
|
158
|
+
{{#if properties}}
|
|
159
|
+
properties:
|
|
160
|
+
{{#each properties}}
|
|
161
|
+
{{@key}}:
|
|
162
|
+
type: {{type}}
|
|
163
|
+
{{#if description}}
|
|
164
|
+
description: {{description}}
|
|
165
|
+
{{/if}}
|
|
166
|
+
{{#if format}}
|
|
167
|
+
format: {{format}}
|
|
168
|
+
{{/if}}
|
|
169
|
+
{{#if enum}}
|
|
170
|
+
enum:
|
|
171
|
+
{{#each enum}}
|
|
172
|
+
- {{this}}
|
|
173
|
+
{{/each}}
|
|
174
|
+
{{/if}}
|
|
175
|
+
{{#if items}}
|
|
176
|
+
items:
|
|
177
|
+
{{#if items.ref}}
|
|
178
|
+
$ref: '{{items.ref}}'
|
|
179
|
+
{{else}}
|
|
180
|
+
type: {{items.type}}
|
|
181
|
+
{{/if}}
|
|
182
|
+
{{/if}}
|
|
183
|
+
{{/each}}
|
|
184
|
+
{{/if}}
|
|
185
|
+
{{#if required}}
|
|
186
|
+
required:
|
|
187
|
+
{{#each required}}
|
|
188
|
+
- {{this}}
|
|
189
|
+
{{/each}}
|
|
190
|
+
{{/if}}
|
|
191
|
+
x-source:
|
|
192
|
+
model: {{source.model}}
|
|
193
|
+
file: {{source.file}}
|
|
194
|
+
{{/each}}
|
|
195
|
+
|
|
196
|
+
securitySchemes:
|
|
197
|
+
{{#each securitySchemes}}
|
|
198
|
+
{{name}}:
|
|
199
|
+
type: {{type}}
|
|
200
|
+
{{#if description}}
|
|
201
|
+
description: {{description}}
|
|
202
|
+
{{/if}}
|
|
203
|
+
{{#if scheme}}
|
|
204
|
+
scheme: {{scheme}}
|
|
205
|
+
{{/if}}
|
|
206
|
+
{{#if bearerFormat}}
|
|
207
|
+
bearerFormat: {{bearerFormat}}
|
|
208
|
+
{{/if}}
|
|
209
|
+
{{#if in}}
|
|
210
|
+
in: {{in}}
|
|
211
|
+
{{/if}}
|
|
212
|
+
{{#if name}}
|
|
213
|
+
name: {{paramName}}
|
|
214
|
+
{{/if}}
|
|
215
|
+
{{/each}}
|
|
216
|
+
|
|
217
|
+
parameters:
|
|
218
|
+
{{#each commonParameters}}
|
|
219
|
+
{{name}}:
|
|
220
|
+
name: {{paramName}}
|
|
221
|
+
in: {{in}}
|
|
222
|
+
required: {{required}}
|
|
223
|
+
description: {{description}}
|
|
224
|
+
schema:
|
|
225
|
+
type: {{schema.type}}
|
|
226
|
+
{{#if schema.format}}
|
|
227
|
+
format: {{schema.format}}
|
|
228
|
+
{{/if}}
|
|
229
|
+
{{/each}}
|
|
230
|
+
|
|
231
|
+
responses:
|
|
232
|
+
{{#each commonResponses}}
|
|
233
|
+
{{name}}:
|
|
234
|
+
description: {{description}}
|
|
235
|
+
content:
|
|
236
|
+
{{#each content}}
|
|
237
|
+
{{@key}}:
|
|
238
|
+
schema:
|
|
239
|
+
type: {{schema.type}}
|
|
240
|
+
{{#if schema.properties}}
|
|
241
|
+
properties:
|
|
242
|
+
{{#each schema.properties}}
|
|
243
|
+
{{@key}}:
|
|
244
|
+
type: {{type}}
|
|
245
|
+
{{#if description}}
|
|
246
|
+
description: {{description}}
|
|
247
|
+
{{/if}}
|
|
248
|
+
{{/each}}
|
|
249
|
+
{{/if}}
|
|
250
|
+
{{/each}}
|
|
251
|
+
{{/each}}
|
|
252
|
+
|
|
253
|
+
x-metadata:
|
|
254
|
+
generatedBy: api-extractor
|
|
255
|
+
generatedAt: {{generatedAt}}
|
|
256
|
+
codebasePath: {{codebasePath}}
|
|
257
|
+
framework: {{framework}}
|
|
258
|
+
totalEndpoints: {{totalEndpoints}}
|
|
259
|
+
coverage: {{coverage}}%
|
|
260
|
+
warnings:
|
|
261
|
+
{{#each warnings}}
|
|
262
|
+
- {{this}}
|
|
263
|
+
{{/each}}
|