@achieveai/azuredevops-mcp 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 (73) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +478 -0
  3. package/dist/Interfaces/AIAssisted.js +3 -0
  4. package/dist/Interfaces/AIAssisted.js.map +1 -0
  5. package/dist/Interfaces/ArtifactManagement.js +3 -0
  6. package/dist/Interfaces/ArtifactManagement.js.map +1 -0
  7. package/dist/Interfaces/AzureDevOps.js +3 -0
  8. package/dist/Interfaces/AzureDevOps.js.map +1 -0
  9. package/dist/Interfaces/BoardsAndSprints.js +3 -0
  10. package/dist/Interfaces/BoardsAndSprints.js.map +1 -0
  11. package/dist/Interfaces/CodeAndRepositories.js +3 -0
  12. package/dist/Interfaces/CodeAndRepositories.js.map +1 -0
  13. package/dist/Interfaces/Common.js +67 -0
  14. package/dist/Interfaces/Common.js.map +1 -0
  15. package/dist/Interfaces/CostResourceManagement.js +3 -0
  16. package/dist/Interfaces/CostResourceManagement.js.map +1 -0
  17. package/dist/Interfaces/DevSecOps.js +3 -0
  18. package/dist/Interfaces/DevSecOps.js.map +1 -0
  19. package/dist/Interfaces/ExternalIntegrations.js +3 -0
  20. package/dist/Interfaces/ExternalIntegrations.js.map +1 -0
  21. package/dist/Interfaces/HybridCrossPlatform.js +3 -0
  22. package/dist/Interfaces/HybridCrossPlatform.js.map +1 -0
  23. package/dist/Interfaces/ProjectManagement.js +3 -0
  24. package/dist/Interfaces/ProjectManagement.js.map +1 -0
  25. package/dist/Interfaces/TestingCapabilities.js +3 -0
  26. package/dist/Interfaces/TestingCapabilities.js.map +1 -0
  27. package/dist/Interfaces/WorkItems.js +3 -0
  28. package/dist/Interfaces/WorkItems.js.map +1 -0
  29. package/dist/Services/AIAssistedDevelopmentService.js +195 -0
  30. package/dist/Services/AIAssistedDevelopmentService.js.map +1 -0
  31. package/dist/Services/ArtifactManagementService.js +346 -0
  32. package/dist/Services/ArtifactManagementService.js.map +1 -0
  33. package/dist/Services/AzureDevOpsService.js +137 -0
  34. package/dist/Services/AzureDevOpsService.js.map +1 -0
  35. package/dist/Services/BoardsSprintsService.js +247 -0
  36. package/dist/Services/BoardsSprintsService.js.map +1 -0
  37. package/dist/Services/DevSecOpsService.js +307 -0
  38. package/dist/Services/DevSecOpsService.js.map +1 -0
  39. package/dist/Services/EntraAuthHandler.js +85 -0
  40. package/dist/Services/EntraAuthHandler.js.map +1 -0
  41. package/dist/Services/GitService.js +1331 -0
  42. package/dist/Services/GitService.js.map +1 -0
  43. package/dist/Services/ProjectService.js +233 -0
  44. package/dist/Services/ProjectService.js.map +1 -0
  45. package/dist/Services/TestingCapabilitiesService.js +149 -0
  46. package/dist/Services/TestingCapabilitiesService.js.map +1 -0
  47. package/dist/Services/WorkItemService.js +522 -0
  48. package/dist/Services/WorkItemService.js.map +1 -0
  49. package/dist/Tools/AIAssistedDevelopmentTools.js +137 -0
  50. package/dist/Tools/AIAssistedDevelopmentTools.js.map +1 -0
  51. package/dist/Tools/ArtifactManagementTools.js +140 -0
  52. package/dist/Tools/ArtifactManagementTools.js.map +1 -0
  53. package/dist/Tools/BoardsSprintsTools.js +149 -0
  54. package/dist/Tools/BoardsSprintsTools.js.map +1 -0
  55. package/dist/Tools/DevSecOpsTools.js +147 -0
  56. package/dist/Tools/DevSecOpsTools.js.map +1 -0
  57. package/dist/Tools/GitTools.js +1102 -0
  58. package/dist/Tools/GitTools.js.map +1 -0
  59. package/dist/Tools/ProjectTools.js +147 -0
  60. package/dist/Tools/ProjectTools.js.map +1 -0
  61. package/dist/Tools/TestingCapabilitiesTools.js +157 -0
  62. package/dist/Tools/TestingCapabilitiesTools.js.map +1 -0
  63. package/dist/Tools/WorkItemTools.js +532 -0
  64. package/dist/Tools/WorkItemTools.js.map +1 -0
  65. package/dist/config.js +149 -0
  66. package/dist/config.js.map +1 -0
  67. package/dist/index.js +1333 -0
  68. package/dist/index.js.map +1 -0
  69. package/dist/utils/getClassMethods.js +8 -0
  70. package/dist/utils/getClassMethods.js.map +1 -0
  71. package/dist/utils/repositoryResolver.js +40 -0
  72. package/dist/utils/repositoryResolver.js.map +1 -0
  73. package/package.json +54 -0
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AIAssistedDevelopmentService = void 0;
4
+ const AzureDevOpsService_1 = require("./AzureDevOpsService");
5
+ class AIAssistedDevelopmentService extends AzureDevOpsService_1.AzureDevOpsService {
6
+ constructor(config) {
7
+ super(config);
8
+ }
9
+ async getAICodeReview(params) {
10
+ // This would contain actual implementation
11
+ // For now, we're returning a mock response
12
+ return {
13
+ pullRequestId: params.pullRequestId,
14
+ repository: params.repository,
15
+ suggestions: [
16
+ { file: "src/main.ts", line: 45, issue: "Potential null reference", recommendation: "Add null check before accessing properties" },
17
+ { file: "src/utils/helper.ts", line: 23, issue: "Inefficient loop", recommendation: "Consider using map() instead of forEach()" }
18
+ ],
19
+ analysisDate: new Date().toISOString(),
20
+ };
21
+ }
22
+ async suggestCodeOptimization(params) {
23
+ return {
24
+ repository: params.repository,
25
+ filePath: params.filePath,
26
+ lineRange: `${params.lineStart || 1}-${params.lineEnd || 100}`,
27
+ optimizationType: params.optimizationType || "all",
28
+ suggestions: [
29
+ { line: params.lineStart || 10, issue: "Memory leak", recommendation: "Dispose resources properly", code: "resource.dispose();" },
30
+ { line: params.lineEnd || 50, issue: "Performance bottleneck", recommendation: "Cache expensive operation", code: "const cachedResult = memoize(expensiveOperation);" }
31
+ ],
32
+ };
33
+ }
34
+ async identifyCodeSmells(params) {
35
+ return {
36
+ repository: params.repository,
37
+ branch: params.branch || "main",
38
+ codeSmells: [
39
+ { file: params.filePath || "src/components/App.tsx", line: 120, smell: "Long method", severity: "high", recommendation: "Extract logic into smaller methods" },
40
+ { file: params.filePath || "src/services/DataService.ts", line: 45, smell: "Duplicate code", severity: "medium", recommendation: "Create a shared utility function" },
41
+ { file: params.filePath || "src/utils/helpers.ts", line: 78, smell: "God class", severity: "high", recommendation: "Split into multiple focused classes" }
42
+ ],
43
+ severity: params.severity || "all",
44
+ };
45
+ }
46
+ async getPredictiveBugAnalysis(params) {
47
+ return {
48
+ repository: params.repository,
49
+ pullRequestId: params.pullRequestId,
50
+ branch: params.branch || "main",
51
+ potentialIssues: [
52
+ { file: params.filePath || "src/controllers/UserController.ts", line: 58, risk: "high", issue: "Race condition in concurrent user updates", confidence: 0.85 },
53
+ { file: params.filePath || "src/services/AuthService.ts", line: 124, risk: "medium", issue: "Token validation could be bypassed", confidence: 0.72 }
54
+ ],
55
+ analysisDate: new Date().toISOString(),
56
+ };
57
+ }
58
+ async getDeveloperProductivity(params) {
59
+ return {
60
+ userId: params.userId || "current-user",
61
+ teamId: params.teamId,
62
+ timeRange: params.timeRange || "30d",
63
+ metrics: {
64
+ codeCommitted: { lines: 2450, commits: 48, pullRequests: 15 },
65
+ workItemsCompleted: 28,
66
+ codeReviewsPerformed: 32,
67
+ averageReviewTime: "1.5h",
68
+ buildSuccessRate: 94.2,
69
+ testCoverage: 78.5
70
+ },
71
+ trends: {
72
+ productivity: [82, 85, 89, 87, 92],
73
+ qualityScore: [76, 78, 81, 80, 83]
74
+ },
75
+ };
76
+ }
77
+ async getPredictiveEffortEstimation(params) {
78
+ return {
79
+ workItemIds: params.workItemIds || [1001, 1002, 1003],
80
+ estimations: [
81
+ { workItemId: 1001, title: "Implement login page", predictedHours: 12.5, confidenceScore: 0.85, similarWorkItems: [845, 921] },
82
+ { workItemId: 1002, title: "Fix navigation bug", predictedHours: 4.2, confidenceScore: 0.92, similarWorkItems: [678, 782] },
83
+ { workItemId: 1003, title: "Add unit tests", predictedHours: 8.0, confidenceScore: 0.78, similarWorkItems: [512, 634] }
84
+ ],
85
+ modelFactors: ["historical completion time", "complexity", "developer experience", "similar work items"],
86
+ };
87
+ }
88
+ async getCodeQualityTrends(params) {
89
+ return {
90
+ repositoryId: params.repositoryId,
91
+ branch: params.branch || "main",
92
+ timeRange: params.timeRange || "90d",
93
+ metrics: params.metrics || ["complexity", "duplication", "test_coverage", "code_smells"],
94
+ trends: {
95
+ complexity: [24, 26, 23, 21, 20, 18],
96
+ duplication: [12.5, 11.8, 10.5, 9.8, 8.5, 8.2],
97
+ testCoverage: [68.2, 72.5, 75.8, 76.4, 78.2, 81.5],
98
+ codeSmells: [45, 42, 38, 35, 30, 28]
99
+ },
100
+ timePoints: ["Jan", "Feb", "Mar", "Apr", "May", "Jun"],
101
+ };
102
+ }
103
+ async suggestWorkItemRefinements(params) {
104
+ return {
105
+ workItemId: params.workItemId || 1234,
106
+ workItemType: params.workItemType || "User Story",
107
+ suggestions: [
108
+ { field: "Title", issue: "Too vague", recommendation: "Specify the user role and action in the title" },
109
+ { field: "Description", issue: "Missing acceptance criteria", recommendation: "Add clear acceptance criteria with examples" },
110
+ { field: "Effort", issue: "Estimate may be too low", recommendation: "Consider increasing estimate based on similar completed stories" },
111
+ { field: "Tags", issue: "Missing relevant tags", recommendation: "Add 'frontend', 'ux' tags for better categorization" }
112
+ ],
113
+ similarWorkItems: [5678, 5912, 6023],
114
+ };
115
+ }
116
+ async suggestAutomationOpportunities(params) {
117
+ return {
118
+ projectId: params.projectId,
119
+ scopeType: params.scopeType || "all",
120
+ opportunities: [
121
+ {
122
+ type: "build",
123
+ area: "Continuous Integration",
124
+ description: "Automate build verification tests",
125
+ benefit: "Reduce failed builds by 35%",
126
+ complexity: "medium",
127
+ implementation: "Add BVT step to pipeline yaml"
128
+ },
129
+ {
130
+ type: "release",
131
+ area: "Deployment",
132
+ description: "Implement blue-green deployments",
133
+ benefit: "Reduce downtime by 90%",
134
+ complexity: "high",
135
+ implementation: "Configure traffic manager and deployment slots"
136
+ },
137
+ {
138
+ type: "tests",
139
+ area: "Regression Testing",
140
+ description: "Implement test impact analysis",
141
+ benefit: "Reduce test execution time by 45%",
142
+ complexity: "medium",
143
+ implementation: "Configure TIA plugin in test tasks"
144
+ }
145
+ ],
146
+ };
147
+ }
148
+ async createIntelligentAlerts(params) {
149
+ return {
150
+ alertId: "alert-" + Date.now(),
151
+ alertName: params.alertName,
152
+ alertType: params.alertType,
153
+ conditions: params.conditions,
154
+ actions: params.actions || { notificationType: "email" },
155
+ status: "created",
156
+ createdDate: new Date().toISOString(),
157
+ };
158
+ }
159
+ async predictBuildFailures(params) {
160
+ return {
161
+ buildDefinitionId: params.buildDefinitionId,
162
+ lookbackPeriod: params.lookbackPeriod || "30d",
163
+ prediction: {
164
+ failureRisk: 0.35,
165
+ confidenceScore: 0.82,
166
+ potentialIssues: [
167
+ { area: "Dependencies", risk: "high", description: "Outdated NuGet packages may cause conflicts" },
168
+ { area: "Test Coverage", risk: "medium", description: "Recent code changes have low test coverage" },
169
+ { area: "Build Configuration", risk: "low", description: "Build agent pool has capacity issues during peak hours" }
170
+ ],
171
+ recommendedActions: [
172
+ "Update NuGet packages to latest compatible versions",
173
+ "Add tests for the authentication module",
174
+ "Schedule builds during off-peak hours"
175
+ ]
176
+ },
177
+ };
178
+ }
179
+ async optimizeTestSelection(params) {
180
+ return {
181
+ buildId: params.buildId,
182
+ changedFiles: params.changedFiles || ["src/services/authentication.ts", "src/components/login.tsx"],
183
+ selectedTests: [
184
+ { testId: "test-001", name: "AuthenticationTests", priority: "high", reason: "Direct dependency on changed files" },
185
+ { testId: "test-002", name: "LoginComponentTests", priority: "high", reason: "Direct dependency on changed files" },
186
+ { testId: "test-003", name: "UserSessionTests", priority: "medium", reason: "Indirect dependency on authentication" },
187
+ { testId: "test-004", name: "NavigationTests", priority: "low", reason: "Previously failed with similar changes" }
188
+ ],
189
+ excludedTests: params.maxTestCount ? 120 : 0,
190
+ estimatedTimeReduction: "45%",
191
+ };
192
+ }
193
+ }
194
+ exports.AIAssistedDevelopmentService = AIAssistedDevelopmentService;
195
+ //# sourceMappingURL=AIAssistedDevelopmentService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIAssistedDevelopmentService.js","sourceRoot":"","sources":["../../src/Services/AIAssistedDevelopmentService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,346 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArtifactManagementService = void 0;
4
+ const AzureDevOpsService_1 = require("./AzureDevOpsService");
5
+ class ArtifactManagementService extends AzureDevOpsService_1.AzureDevOpsService {
6
+ constructor(config) {
7
+ super(config);
8
+ }
9
+ async listArtifactFeeds(params) {
10
+ // This would contain actual implementation
11
+ // For now, we're returning a mock response
12
+ const feedType = params.feedType || 'all';
13
+ return {
14
+ feeds: [
15
+ {
16
+ id: "feed-npm-1",
17
+ name: "npm-packages",
18
+ description: "NPM packages for the organization",
19
+ type: "npm",
20
+ visibility: "organization",
21
+ url: "https://feeds.dev.azure.com/organization/project/_packaging/npm-packages/npm",
22
+ createdDate: new Date(Date.now() - 90 * 24 * 60 * 60 * 1000).toISOString()
23
+ },
24
+ {
25
+ id: "feed-nuget-1",
26
+ name: "nuget-packages",
27
+ description: "NuGet packages for .NET projects",
28
+ type: "nuget",
29
+ visibility: "project",
30
+ url: "https://feeds.dev.azure.com/organization/project/_packaging/nuget-packages/nuget",
31
+ createdDate: new Date(Date.now() - 60 * 24 * 60 * 60 * 1000).toISOString()
32
+ },
33
+ {
34
+ id: "feed-universal-1",
35
+ name: "universal-packages",
36
+ description: "Universal packages for deployments",
37
+ type: "universal",
38
+ visibility: "organization",
39
+ url: "https://feeds.dev.azure.com/organization/project/_packaging/universal-packages/universal",
40
+ createdDate: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000).toISOString()
41
+ }
42
+ ].filter(feed => feedType === 'all' || feed.type === feedType),
43
+ count: 3,
44
+ includeDeleted: params.includeDeleted || false
45
+ };
46
+ }
47
+ async getPackageVersions(params) {
48
+ const versions = [
49
+ {
50
+ version: "1.0.0",
51
+ publishedDate: new Date(Date.now() - 90 * 24 * 60 * 60 * 1000).toISOString(),
52
+ views: ["release", "prerelease"],
53
+ downloadsCount: 1250,
54
+ isLatest: false
55
+ },
56
+ {
57
+ version: "1.1.0",
58
+ publishedDate: new Date(Date.now() - 60 * 24 * 60 * 60 * 1000).toISOString(),
59
+ views: ["release", "prerelease"],
60
+ downloadsCount: 945,
61
+ isLatest: false
62
+ },
63
+ {
64
+ version: "1.2.0",
65
+ publishedDate: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000).toISOString(),
66
+ views: ["release", "prerelease"],
67
+ downloadsCount: 1587,
68
+ isLatest: true
69
+ }
70
+ ];
71
+ return {
72
+ feedId: params.feedId,
73
+ packageName: params.packageName,
74
+ totalVersions: versions.length,
75
+ versions: params.top ? versions.slice(0, params.top) : versions
76
+ };
77
+ }
78
+ async publishPackage(params) {
79
+ return {
80
+ feedId: params.feedId,
81
+ packageType: params.packageType,
82
+ packageName: params.packagePath.split('/').pop()?.split('.')[0] || 'unknown',
83
+ packageVersion: params.packageVersion || '1.0.0',
84
+ publishDate: new Date().toISOString(),
85
+ status: "published",
86
+ packageUrl: `https://feeds.dev.azure.com/organization/project/_packaging/${params.feedId}/npm/registry/${params.packagePath.split('/').pop()?.split('.')[0]}/v/${params.packageVersion || '1.0.0'}`
87
+ };
88
+ }
89
+ async promotePackage(params) {
90
+ return {
91
+ feedId: params.feedId,
92
+ packageName: params.packageName,
93
+ packageVersion: params.packageVersion,
94
+ sourceView: params.sourceView,
95
+ targetView: params.targetView,
96
+ promotionDate: new Date().toISOString(),
97
+ status: "promoted",
98
+ promotedBy: "user@example.com"
99
+ };
100
+ }
101
+ async deletePackageVersion(params) {
102
+ return {
103
+ feedId: params.feedId,
104
+ packageName: params.packageName,
105
+ packageVersion: params.packageVersion,
106
+ deletionDate: new Date().toISOString(),
107
+ permanent: params.permanent || false,
108
+ status: "deleted",
109
+ deletedBy: "user@example.com"
110
+ };
111
+ }
112
+ async listContainerImages(params) {
113
+ return {
114
+ repositoryName: params.repositoryName || "all",
115
+ images: [
116
+ {
117
+ name: "api-service",
118
+ tags: ["latest", "v1.0.0", "v1.1.0"],
119
+ size: "256MB",
120
+ lastUpdated: new Date(Date.now() - 15 * 24 * 60 * 60 * 1000).toISOString(),
121
+ pullCount: 1250,
122
+ manifest: params.includeManifests ? {
123
+ schemaVersion: 2,
124
+ mediaType: "application/vnd.docker.distribution.manifest.v2+json",
125
+ layers: [
126
+ { digest: "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4", size: 32456234 }
127
+ ]
128
+ } : undefined
129
+ },
130
+ {
131
+ name: "web-frontend",
132
+ tags: ["latest", "v2.0.0", "v2.1.0", "v2.2.0"],
133
+ size: "124MB",
134
+ lastUpdated: new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString(),
135
+ pullCount: 2189,
136
+ manifest: params.includeManifests ? {
137
+ schemaVersion: 2,
138
+ mediaType: "application/vnd.docker.distribution.manifest.v2+json",
139
+ layers: [
140
+ { digest: "sha256:b3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d5", size: 24567890 }
141
+ ]
142
+ } : undefined
143
+ }
144
+ ],
145
+ count: 2,
146
+ includeDeleted: params.includeDeleted || false
147
+ };
148
+ }
149
+ async getContainerImageTags(params) {
150
+ const tags = [
151
+ {
152
+ tag: "latest",
153
+ createdDate: new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString(),
154
+ size: "256MB",
155
+ digest: "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4",
156
+ pullCount: 523
157
+ },
158
+ {
159
+ tag: "v1.0.0",
160
+ createdDate: new Date(Date.now() - 90 * 24 * 60 * 60 * 1000).toISOString(),
161
+ size: "245MB",
162
+ digest: "sha256:b3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d5",
163
+ pullCount: 412
164
+ },
165
+ {
166
+ tag: "v1.1.0",
167
+ createdDate: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000).toISOString(),
168
+ size: "255MB",
169
+ digest: "sha256:c3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d6",
170
+ pullCount: 315
171
+ }
172
+ ];
173
+ return {
174
+ repositoryName: params.repositoryName,
175
+ imageName: params.imageName,
176
+ totalTags: tags.length,
177
+ tags: params.top ? tags.slice(0, params.top) : tags
178
+ };
179
+ }
180
+ async scanContainerImage(params) {
181
+ return {
182
+ repositoryName: params.repositoryName,
183
+ imageTag: params.imageTag,
184
+ scanType: params.scanType || "both",
185
+ scanDate: new Date().toISOString(),
186
+ vulnerabilities: params.scanType === "compliance" ? [] : [
187
+ {
188
+ id: "CVE-2023-1234",
189
+ severity: "high",
190
+ description: "Vulnerability in base image affecting OpenSSL",
191
+ package: "openssl",
192
+ installedVersion: "1.1.1k",
193
+ fixedVersion: "1.1.1l",
194
+ remediation: "Update to latest base image"
195
+ },
196
+ {
197
+ id: "CVE-2023-5678",
198
+ severity: "medium",
199
+ description: "Vulnerability in package manager",
200
+ package: "apt",
201
+ installedVersion: "2.2.4",
202
+ fixedVersion: "2.2.5",
203
+ remediation: "Run apt-get update && apt-get upgrade"
204
+ }
205
+ ],
206
+ complianceIssues: params.scanType === "vulnerability" ? [] : [
207
+ {
208
+ id: "COMP-1",
209
+ severity: "high",
210
+ description: "Root user used for application execution",
211
+ standard: "CIS Docker Benchmark 4.1",
212
+ remediation: "Use non-root user in Dockerfile"
213
+ },
214
+ {
215
+ id: "COMP-2",
216
+ severity: "medium",
217
+ description: "No healthcheck defined",
218
+ standard: "CIS Docker Benchmark 4.6",
219
+ remediation: "Add HEALTHCHECK instruction to Dockerfile"
220
+ }
221
+ ],
222
+ overallRisk: "high",
223
+ scanStatus: "completed"
224
+ };
225
+ }
226
+ async manageContainerPolicies(params) {
227
+ let policyDetails;
228
+ if (params.policyType === "retention") {
229
+ policyDetails = {
230
+ daysToKeep: 90,
231
+ maxImagesPerRepository: 50,
232
+ keepLatestImage: true
233
+ };
234
+ }
235
+ else if (params.policyType === "security") {
236
+ policyDetails = {
237
+ blockHighVulnerabilities: true,
238
+ requireVulnerabilityScan: true,
239
+ complianceStandards: ["CIS", "NIST"]
240
+ };
241
+ }
242
+ else {
243
+ policyDetails = {
244
+ allowedUsers: ["project-admins", "project-contributors"],
245
+ allowAnonymousPull: false,
246
+ requireAuthentication: true
247
+ };
248
+ }
249
+ return {
250
+ repositoryName: params.repositoryName,
251
+ policyType: params.policyType,
252
+ action: params.action,
253
+ status: "success",
254
+ appliedDate: new Date().toISOString(),
255
+ appliedBy: "user@example.com",
256
+ policySettings: params.action === "get" ? policyDetails : (params.policySettings || policyDetails)
257
+ };
258
+ }
259
+ async manageUniversalPackages(params) {
260
+ return {
261
+ packageName: params.packageName,
262
+ action: params.action,
263
+ packageVersion: params.packageVersion || "1.0.0",
264
+ status: "success",
265
+ timestamp: new Date().toISOString(),
266
+ size: "45MB",
267
+ packagePath: params.packagePath || `/path/to/${params.packageName}_${params.packageVersion || '1.0.0'}.zip`,
268
+ packageUrl: `https://feeds.dev.azure.com/organization/_packaging/universal-packages/universal/download/${params.packageName}/${params.packageVersion || '1.0.0'}`
269
+ };
270
+ }
271
+ async createPackageDownloadReport(params) {
272
+ return {
273
+ feedId: params.feedId || "all-feeds",
274
+ packageName: params.packageName || "all-packages",
275
+ timeRange: params.timeRange || "30d",
276
+ format: params.format || "csv",
277
+ reportDate: new Date().toISOString(),
278
+ totalDownloads: 5782,
279
+ reportUrl: `https://dev.azure.com/organization/project/_apis/packaging/reports/${params.feedId || 'all'}-${Date.now()}.${params.format || 'csv'}`,
280
+ packages: [
281
+ {
282
+ name: "core-library",
283
+ version: "3.2.1",
284
+ downloads: 2345,
285
+ lastDownloaded: new Date(Date.now() - 2 * 24 * 60 * 60 * 1000).toISOString()
286
+ },
287
+ {
288
+ name: "ui-components",
289
+ version: "2.0.0",
290
+ downloads: 1897,
291
+ lastDownloaded: new Date(Date.now() - 5 * 24 * 60 * 60 * 1000).toISOString()
292
+ },
293
+ {
294
+ name: "data-access",
295
+ version: "1.5.0",
296
+ downloads: 1540,
297
+ lastDownloaded: new Date(Date.now() - 1 * 24 * 60 * 60 * 1000).toISOString()
298
+ }
299
+ ],
300
+ topConsumers: [
301
+ { name: "API Project", downloads: 1250 },
302
+ { name: "Frontend Project", downloads: 986 },
303
+ { name: "Mobile App", downloads: 754 }
304
+ ]
305
+ };
306
+ }
307
+ async checkPackageDependencies(params) {
308
+ return {
309
+ packageName: params.packageName,
310
+ packageVersion: params.packageVersion || "latest",
311
+ directDependencies: [
312
+ { name: "lodash", version: "4.17.21", isVulnerable: false },
313
+ { name: "axios", version: "0.21.1", isVulnerable: true }
314
+ ],
315
+ transitiveDependencies: params.includeTransitive ? [
316
+ { name: "follow-redirects", version: "1.14.1", isVulnerable: true, parentPackage: "axios" },
317
+ { name: "debug", version: "4.3.2", isVulnerable: false, parentPackage: "axios" }
318
+ ] : [],
319
+ vulnerabilities: params.checkVulnerabilities ? [
320
+ {
321
+ id: "CVE-2021-3749",
322
+ packageName: "axios",
323
+ severity: "medium",
324
+ description: "Server-Side Request Forgery vulnerability",
325
+ fixedVersion: "0.21.2",
326
+ references: ["https://nvd.nist.gov/vuln/detail/CVE-2021-3749"]
327
+ },
328
+ {
329
+ id: "CVE-2021-26500",
330
+ packageName: "follow-redirects",
331
+ severity: "high",
332
+ description: "Memory consumption DoS vulnerability",
333
+ fixedVersion: "1.14.2",
334
+ references: ["https://nvd.nist.gov/vuln/detail/CVE-2021-26500"]
335
+ }
336
+ ] : [],
337
+ summary: {
338
+ totalDependencies: params.includeTransitive ? 4 : 2,
339
+ vulnerableDependencies: params.checkVulnerabilities ? 2 : 0,
340
+ riskLevel: params.checkVulnerabilities ? "medium" : "unknown"
341
+ }
342
+ };
343
+ }
344
+ }
345
+ exports.ArtifactManagementService = ArtifactManagementService;
346
+ //# sourceMappingURL=ArtifactManagementService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArtifactManagementService.js","sourceRoot":"","sources":["../../src/Services/ArtifactManagementService.ts"],"names":[],"mappings":"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"}