@secustor/backstage-plugin-renovate-backend 0.11.1 → 0.13.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 (34) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +19 -0
  3. package/config.d.ts +3 -3
  4. package/dist/config/index.cjs.js +43 -0
  5. package/dist/config/index.cjs.js.map +1 -0
  6. package/dist/index.cjs.js +4 -1398
  7. package/dist/index.cjs.js.map +1 -1
  8. package/dist/plugin.cjs.js +68 -0
  9. package/dist/plugin.cjs.js.map +1 -0
  10. package/dist/queue/factory.cjs.js +15 -0
  11. package/dist/queue/factory.cjs.js.map +1 -0
  12. package/dist/schema/openapi.generated.cjs.js +636 -0
  13. package/dist/schema/openapi.generated.cjs.js.map +1 -0
  14. package/dist/service/cleanupTask.cjs.js +39 -0
  15. package/dist/service/cleanupTask.cjs.js.map +1 -0
  16. package/dist/service/databaseHandler.cjs.js +255 -0
  17. package/dist/service/databaseHandler.cjs.js.map +1 -0
  18. package/dist/service/jobSync.cjs.js +45 -0
  19. package/dist/service/jobSync.cjs.js.map +1 -0
  20. package/dist/service/router.cjs.js +127 -0
  21. package/dist/service/router.cjs.js.map +1 -0
  22. package/dist/service/schema.cjs.js +13 -0
  23. package/dist/service/schema.cjs.js.map +1 -0
  24. package/dist/service/types.cjs.js +14 -0
  25. package/dist/service/types.cjs.js.map +1 -0
  26. package/dist/wrapper/platforms/github.cjs.js +13 -0
  27. package/dist/wrapper/platforms/github.cjs.js.map +1 -0
  28. package/dist/wrapper/platforms/index.cjs.js +80 -0
  29. package/dist/wrapper/platforms/index.cjs.js.map +1 -0
  30. package/dist/wrapper/renovateRunner.cjs.js +119 -0
  31. package/dist/wrapper/renovateRunner.cjs.js.map +1 -0
  32. package/dist/wrapper/utils.cjs.js +62 -0
  33. package/dist/wrapper/utils.cjs.js.map +1 -0
  34. package/package.json +12 -12
@@ -0,0 +1,636 @@
1
+ 'use strict';
2
+
3
+ var backendOpenapiUtils = require('@backstage/backend-openapi-utils');
4
+
5
+ const spec = {
6
+ openapi: "3.0.0",
7
+ info: {
8
+ title: "renovate",
9
+ description: "Backstage Renovate API",
10
+ version: "0.2.0"
11
+ },
12
+ servers: [
13
+ {
14
+ description: "local test setup",
15
+ url: "http://localhost:7007"
16
+ }
17
+ ],
18
+ paths: {
19
+ "/health": {
20
+ get: {
21
+ summary: "Get health status of the plugin",
22
+ responses: {
23
+ "200": {
24
+ description: "health status is green",
25
+ content: {
26
+ "application/json": {
27
+ schema: {
28
+ type: "string",
29
+ example: "ok"
30
+ }
31
+ }
32
+ }
33
+ }
34
+ }
35
+ }
36
+ },
37
+ "/reports": {
38
+ get: {
39
+ summary: "Get all reports",
40
+ responses: {
41
+ "200": {
42
+ $ref: "#/components/responses/reports"
43
+ }
44
+ }
45
+ },
46
+ delete: {
47
+ summary: "Delete reports based on parameters",
48
+ parameters: [
49
+ {
50
+ $ref: "#/components/parameters/keepLatest"
51
+ }
52
+ ],
53
+ responses: {
54
+ "200": {
55
+ $ref: "#/components/responses/deleted-successful"
56
+ }
57
+ }
58
+ }
59
+ },
60
+ "/reports/{host}": {
61
+ get: {
62
+ summary: "Get reports for host",
63
+ parameters: [
64
+ {
65
+ name: "host",
66
+ in: "path",
67
+ required: true,
68
+ schema: {
69
+ type: "string",
70
+ example: "github.com"
71
+ }
72
+ }
73
+ ],
74
+ responses: {
75
+ "200": {
76
+ $ref: "#/components/responses/reports"
77
+ },
78
+ "404": {
79
+ description: "unknown host"
80
+ }
81
+ }
82
+ },
83
+ delete: {
84
+ summary: "Delete reports based on parameters",
85
+ parameters: [
86
+ {
87
+ $ref: "#/components/parameters/keepLatest"
88
+ }
89
+ ],
90
+ responses: {
91
+ "200": {
92
+ $ref: "#/components/responses/deleted-successful"
93
+ }
94
+ }
95
+ }
96
+ },
97
+ "/reports/{host}/{repository}": {
98
+ get: {
99
+ summary: "Get reports for repository",
100
+ parameters: [
101
+ {
102
+ name: "host",
103
+ in: "path",
104
+ required: true,
105
+ schema: {
106
+ type: "string",
107
+ example: "github.com"
108
+ }
109
+ },
110
+ {
111
+ name: "repository",
112
+ in: "path",
113
+ required: true,
114
+ schema: {
115
+ type: "string",
116
+ example: "myOrg/myRepository"
117
+ }
118
+ }
119
+ ],
120
+ responses: {
121
+ "200": {
122
+ $ref: "#/components/responses/reports"
123
+ },
124
+ "404": {
125
+ description: "unknown repository"
126
+ }
127
+ }
128
+ },
129
+ delete: {
130
+ summary: "Delete reports based on parameters",
131
+ parameters: [
132
+ {
133
+ $ref: "#/components/parameters/keepLatest"
134
+ }
135
+ ],
136
+ responses: {
137
+ "200": {
138
+ $ref: "#/components/responses/deleted-successful"
139
+ }
140
+ }
141
+ }
142
+ },
143
+ "/dependencies": {
144
+ get: {
145
+ summary: "Get dependencies for host",
146
+ parameters: [
147
+ {
148
+ name: "pageSize",
149
+ in: "query",
150
+ description: "size of the page",
151
+ schema: {
152
+ type: "number",
153
+ default: 100
154
+ }
155
+ },
156
+ {
157
+ name: "page",
158
+ in: "query",
159
+ description: "page number. starting with 0",
160
+ schema: {
161
+ type: "number"
162
+ }
163
+ },
164
+ {
165
+ name: "availableValues",
166
+ in: "query",
167
+ description: "if set to true, the response will include all available values for the filters",
168
+ schema: {
169
+ type: "boolean"
170
+ }
171
+ },
172
+ {
173
+ name: "datasource",
174
+ in: "query",
175
+ description: "filter by datasource",
176
+ schema: {
177
+ type: "array",
178
+ items: {
179
+ example: "npm,pypi",
180
+ type: "string"
181
+ }
182
+ }
183
+ },
184
+ {
185
+ name: "depName",
186
+ in: "query",
187
+ description: "filter by dependency name",
188
+ schema: {
189
+ type: "array",
190
+ items: {
191
+ example: "pdm,react",
192
+ type: "string"
193
+ }
194
+ }
195
+ },
196
+ {
197
+ name: "depType",
198
+ in: "query",
199
+ description: "filter by dependency type",
200
+ schema: {
201
+ type: "array",
202
+ items: {
203
+ example: "dev,prod",
204
+ type: "string"
205
+ }
206
+ }
207
+ },
208
+ {
209
+ name: "host",
210
+ in: "query",
211
+ schema: {
212
+ type: "array",
213
+ example: "github.com,gitlab.example.com",
214
+ items: {
215
+ type: "string"
216
+ }
217
+ }
218
+ },
219
+ {
220
+ name: "latestOnly",
221
+ in: "query",
222
+ description: "include only dependencies which have been found in the last extraction",
223
+ schema: {
224
+ type: "boolean"
225
+ }
226
+ },
227
+ {
228
+ name: "manager",
229
+ in: "query",
230
+ description: "filter by manager",
231
+ schema: {
232
+ type: "array",
233
+ items: {
234
+ example: "npm,composer",
235
+ type: "string"
236
+ }
237
+ }
238
+ },
239
+ {
240
+ name: "packageFile",
241
+ in: "query",
242
+ description: "filter by package file",
243
+ schema: {
244
+ type: "array",
245
+ items: {
246
+ example: "package.json,composer.json",
247
+ type: "string"
248
+ }
249
+ }
250
+ },
251
+ {
252
+ name: "repository",
253
+ in: "query",
254
+ schema: {
255
+ type: "array",
256
+ example: "myOrg/myRepository,myOrg/myOtherRepository",
257
+ items: {
258
+ type: "string"
259
+ }
260
+ }
261
+ }
262
+ ],
263
+ responses: {
264
+ "200": {
265
+ $ref: "#/components/responses/dependencies"
266
+ },
267
+ "404": {
268
+ description: "unknown host"
269
+ }
270
+ }
271
+ }
272
+ },
273
+ "/runs": {
274
+ post: {
275
+ summary: "Start or get Renovate runs",
276
+ requestBody: {
277
+ content: {
278
+ "application/json": {
279
+ schema: {
280
+ type: "object",
281
+ required: ["target"],
282
+ properties: {
283
+ target: {
284
+ $ref: "#/components/schemas/target"
285
+ }
286
+ }
287
+ }
288
+ }
289
+ }
290
+ },
291
+ responses: {
292
+ "202": {
293
+ description: "Run has been scheduled",
294
+ content: {
295
+ "application/json": {
296
+ schema: {
297
+ type: "object",
298
+ properties: {
299
+ taskID: {
300
+ description: "id of the scheduler task",
301
+ type: "string",
302
+ example: "9-d_CO9JlaEmd-OM9QfkI"
303
+ }
304
+ }
305
+ }
306
+ }
307
+ }
308
+ },
309
+ "400": {
310
+ description: "Unexpected incoming data",
311
+ content: {
312
+ "application/json": {
313
+ schema: {
314
+ type: "object",
315
+ properties: {
316
+ error: {
317
+ $ref: "#/components/schemas/error"
318
+ }
319
+ }
320
+ }
321
+ }
322
+ }
323
+ }
324
+ }
325
+ }
326
+ }
327
+ },
328
+ components: {
329
+ parameters: {
330
+ keepLatest: {
331
+ name: "keepLatest",
332
+ description: "how many reports of all targets should be kept",
333
+ in: "query",
334
+ required: false,
335
+ example: 3,
336
+ schema: {
337
+ type: "number"
338
+ }
339
+ }
340
+ },
341
+ responses: {
342
+ dependencies: {
343
+ description: "Returns dependencies",
344
+ headers: {
345
+ "X-Total-Count": {
346
+ schema: {
347
+ type: "integer",
348
+ description: "Total number of entries"
349
+ }
350
+ },
351
+ "X-Page-Count": {
352
+ schema: {
353
+ type: "integer",
354
+ description: "Total number of pages"
355
+ }
356
+ },
357
+ "X-Page": {
358
+ schema: {
359
+ type: "integer",
360
+ description: "Current page"
361
+ }
362
+ },
363
+ "X-Page-Size": {
364
+ schema: {
365
+ type: "integer",
366
+ description: "Number of entries per page"
367
+ }
368
+ }
369
+ },
370
+ content: {
371
+ "application/json": {
372
+ schema: {
373
+ type: "object",
374
+ required: ["dependencies"],
375
+ properties: {
376
+ dependencies: {
377
+ type: "array",
378
+ items: {
379
+ $ref: "#/components/schemas/dependency"
380
+ }
381
+ },
382
+ availableValues: {
383
+ type: "object",
384
+ description: "Will only be part of the response if `availableValues` is true. Returns all available values for the applied filters\n",
385
+ properties: {
386
+ datasource: {
387
+ type: "array",
388
+ items: {
389
+ type: "string"
390
+ }
391
+ },
392
+ depName: {
393
+ type: "array",
394
+ items: {
395
+ type: "string"
396
+ }
397
+ },
398
+ depType: {
399
+ type: "array",
400
+ items: {
401
+ type: "string"
402
+ }
403
+ },
404
+ host: {
405
+ type: "array",
406
+ items: {
407
+ type: "string"
408
+ }
409
+ },
410
+ manager: {
411
+ type: "array",
412
+ items: {
413
+ type: "string"
414
+ }
415
+ },
416
+ packageFile: {
417
+ type: "array",
418
+ items: {
419
+ type: "string"
420
+ }
421
+ },
422
+ repository: {
423
+ type: "array",
424
+ items: {
425
+ type: "string"
426
+ }
427
+ }
428
+ }
429
+ }
430
+ }
431
+ }
432
+ }
433
+ }
434
+ },
435
+ "deleted-successful": {
436
+ description: "Successful deleted",
437
+ content: {
438
+ "application/json": {
439
+ schema: {
440
+ type: "object",
441
+ properties: {
442
+ deleted: {
443
+ type: "number",
444
+ example: 15,
445
+ description: "Numbers of reports deleted"
446
+ }
447
+ }
448
+ }
449
+ }
450
+ }
451
+ },
452
+ reports: {
453
+ description: "Returns reports",
454
+ content: {
455
+ "application/json": {
456
+ schema: {
457
+ type: "array",
458
+ items: {
459
+ type: "object",
460
+ additionalProperties: false,
461
+ required: [
462
+ "taskID",
463
+ "repository",
464
+ "host",
465
+ "timestamp",
466
+ "report"
467
+ ],
468
+ properties: {
469
+ taskID: {
470
+ type: "string"
471
+ },
472
+ timestamp: {
473
+ type: "string",
474
+ format: "date-time"
475
+ },
476
+ host: {
477
+ type: "string"
478
+ },
479
+ repository: {
480
+ type: "string"
481
+ },
482
+ report: {
483
+ $ref: "#/components/schemas/repositoryReport"
484
+ }
485
+ }
486
+ }
487
+ }
488
+ }
489
+ }
490
+ }
491
+ },
492
+ schemas: {
493
+ error: {
494
+ anyOf: [
495
+ {
496
+ type: "object",
497
+ example: {
498
+ message: "I'm an error",
499
+ code: 1111
500
+ }
501
+ },
502
+ {
503
+ type: "string",
504
+ example: "I'm an error"
505
+ }
506
+ ]
507
+ },
508
+ target: {
509
+ anyOf: [
510
+ {
511
+ type: "string",
512
+ description: "URL to an repository",
513
+ example: "https://github.com/secustor/renovate-test"
514
+ },
515
+ {
516
+ type: "string",
517
+ description: "stringified Entity with SourceLocation URL annotation",
518
+ example: "component:default/backstage-plugins-example"
519
+ },
520
+ {
521
+ type: "string",
522
+ description: "host and path",
523
+ example: "secustor/backstage-plugins"
524
+ }
525
+ ]
526
+ },
527
+ repositoryReportList: {
528
+ type: "array",
529
+ items: {
530
+ $ref: "#/components/schemas/repositoryReport"
531
+ }
532
+ },
533
+ repositoryReport: {
534
+ description: "report for a specific repository",
535
+ type: "object",
536
+ additionalProperties: false,
537
+ required: ["branches", "packageFiles", "problems"],
538
+ properties: {
539
+ branches: {
540
+ type: "array",
541
+ items: {
542
+ type: "object"
543
+ }
544
+ },
545
+ packageFiles: {
546
+ type: "object"
547
+ },
548
+ problems: {
549
+ type: "array",
550
+ items: {
551
+ type: "object"
552
+ }
553
+ }
554
+ }
555
+ },
556
+ dependency: {
557
+ type: "object",
558
+ additionalProperties: false,
559
+ required: [
560
+ "id",
561
+ "runID",
562
+ "host",
563
+ "repository",
564
+ "extractionTimestamp",
565
+ "manager",
566
+ "datasource",
567
+ "packageFile",
568
+ "depName"
569
+ ],
570
+ properties: {
571
+ id: {
572
+ type: "string"
573
+ },
574
+ runID: {
575
+ type: "string"
576
+ },
577
+ host: {
578
+ type: "string"
579
+ },
580
+ repository: {
581
+ type: "string"
582
+ },
583
+ extractionTimestamp: {
584
+ type: "string",
585
+ format: "date-time"
586
+ },
587
+ manager: {
588
+ type: "string"
589
+ },
590
+ datasource: {
591
+ type: "string"
592
+ },
593
+ packageFile: {
594
+ type: "string"
595
+ },
596
+ packageFileUrl: {
597
+ type: "string"
598
+ },
599
+ depName: {
600
+ type: "string"
601
+ },
602
+ packageName: {
603
+ type: "string"
604
+ },
605
+ depType: {
606
+ type: "string"
607
+ },
608
+ currentValue: {
609
+ type: "string"
610
+ },
611
+ currentVersion: {
612
+ type: "string"
613
+ },
614
+ currentVersionTimestamp: {
615
+ type: "string",
616
+ format: "date-time"
617
+ },
618
+ skipReason: {
619
+ type: "string"
620
+ },
621
+ registryUrl: {
622
+ type: "string"
623
+ },
624
+ sourceUrl: {
625
+ type: "string"
626
+ }
627
+ }
628
+ }
629
+ }
630
+ }
631
+ };
632
+ const createOpenApiRouter = async (options) => backendOpenapiUtils.createValidatedOpenApiRouter(spec, options);
633
+
634
+ exports.createOpenApiRouter = createOpenApiRouter;
635
+ exports.spec = spec;
636
+ //# sourceMappingURL=openapi.generated.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi.generated.cjs.js","sources":["../../src/schema/openapi.generated.ts"],"sourcesContent":["//\n\n// ******************************************************************\n// * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. *\n// ******************************************************************\nimport { createValidatedOpenApiRouter } from '@backstage/backend-openapi-utils';\n\nexport const spec = {\n openapi: '3.0.0',\n info: {\n title: 'renovate',\n description: 'Backstage Renovate API',\n version: '0.2.0',\n },\n servers: [\n {\n description: 'local test setup',\n url: 'http://localhost:7007',\n },\n ],\n paths: {\n '/health': {\n get: {\n summary: 'Get health status of the plugin',\n responses: {\n '200': {\n description: 'health status is green',\n content: {\n 'application/json': {\n schema: {\n type: 'string',\n example: 'ok',\n },\n },\n },\n },\n },\n },\n },\n '/reports': {\n get: {\n summary: 'Get all reports',\n responses: {\n '200': {\n $ref: '#/components/responses/reports',\n },\n },\n },\n delete: {\n summary: 'Delete reports based on parameters',\n parameters: [\n {\n $ref: '#/components/parameters/keepLatest',\n },\n ],\n responses: {\n '200': {\n $ref: '#/components/responses/deleted-successful',\n },\n },\n },\n },\n '/reports/{host}': {\n get: {\n summary: 'Get reports for host',\n parameters: [\n {\n name: 'host',\n in: 'path',\n required: true,\n schema: {\n type: 'string',\n example: 'github.com',\n },\n },\n ],\n responses: {\n '200': {\n $ref: '#/components/responses/reports',\n },\n '404': {\n description: 'unknown host',\n },\n },\n },\n delete: {\n summary: 'Delete reports based on parameters',\n parameters: [\n {\n $ref: '#/components/parameters/keepLatest',\n },\n ],\n responses: {\n '200': {\n $ref: '#/components/responses/deleted-successful',\n },\n },\n },\n },\n '/reports/{host}/{repository}': {\n get: {\n summary: 'Get reports for repository',\n parameters: [\n {\n name: 'host',\n in: 'path',\n required: true,\n schema: {\n type: 'string',\n example: 'github.com',\n },\n },\n {\n name: 'repository',\n in: 'path',\n required: true,\n schema: {\n type: 'string',\n example: 'myOrg/myRepository',\n },\n },\n ],\n responses: {\n '200': {\n $ref: '#/components/responses/reports',\n },\n '404': {\n description: 'unknown repository',\n },\n },\n },\n delete: {\n summary: 'Delete reports based on parameters',\n parameters: [\n {\n $ref: '#/components/parameters/keepLatest',\n },\n ],\n responses: {\n '200': {\n $ref: '#/components/responses/deleted-successful',\n },\n },\n },\n },\n '/dependencies': {\n get: {\n summary: 'Get dependencies for host',\n parameters: [\n {\n name: 'pageSize',\n in: 'query',\n description: 'size of the page',\n schema: {\n type: 'number',\n default: 100,\n },\n },\n {\n name: 'page',\n in: 'query',\n description: 'page number. starting with 0',\n schema: {\n type: 'number',\n },\n },\n {\n name: 'availableValues',\n in: 'query',\n description:\n 'if set to true, the response will include all available values for the filters',\n schema: {\n type: 'boolean',\n },\n },\n {\n name: 'datasource',\n in: 'query',\n description: 'filter by datasource',\n schema: {\n type: 'array',\n items: {\n example: 'npm,pypi',\n type: 'string',\n },\n },\n },\n {\n name: 'depName',\n in: 'query',\n description: 'filter by dependency name',\n schema: {\n type: 'array',\n items: {\n example: 'pdm,react',\n type: 'string',\n },\n },\n },\n {\n name: 'depType',\n in: 'query',\n description: 'filter by dependency type',\n schema: {\n type: 'array',\n items: {\n example: 'dev,prod',\n type: 'string',\n },\n },\n },\n {\n name: 'host',\n in: 'query',\n schema: {\n type: 'array',\n example: 'github.com,gitlab.example.com',\n items: {\n type: 'string',\n },\n },\n },\n {\n name: 'latestOnly',\n in: 'query',\n description:\n 'include only dependencies which have been found in the last extraction',\n schema: {\n type: 'boolean',\n },\n },\n {\n name: 'manager',\n in: 'query',\n description: 'filter by manager',\n schema: {\n type: 'array',\n items: {\n example: 'npm,composer',\n type: 'string',\n },\n },\n },\n {\n name: 'packageFile',\n in: 'query',\n description: 'filter by package file',\n schema: {\n type: 'array',\n items: {\n example: 'package.json,composer.json',\n type: 'string',\n },\n },\n },\n {\n name: 'repository',\n in: 'query',\n schema: {\n type: 'array',\n example: 'myOrg/myRepository,myOrg/myOtherRepository',\n items: {\n type: 'string',\n },\n },\n },\n ],\n responses: {\n '200': {\n $ref: '#/components/responses/dependencies',\n },\n '404': {\n description: 'unknown host',\n },\n },\n },\n },\n '/runs': {\n post: {\n summary: 'Start or get Renovate runs',\n requestBody: {\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n required: ['target'],\n properties: {\n target: {\n $ref: '#/components/schemas/target',\n },\n },\n },\n },\n },\n },\n responses: {\n '202': {\n description: 'Run has been scheduled',\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n taskID: {\n description: 'id of the scheduler task',\n type: 'string',\n example: '9-d_CO9JlaEmd-OM9QfkI',\n },\n },\n },\n },\n },\n },\n '400': {\n description: 'Unexpected incoming data',\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n error: {\n $ref: '#/components/schemas/error',\n },\n },\n },\n },\n },\n },\n },\n },\n },\n },\n components: {\n parameters: {\n keepLatest: {\n name: 'keepLatest',\n description: 'how many reports of all targets should be kept',\n in: 'query',\n required: false,\n example: 3,\n schema: {\n type: 'number',\n },\n },\n },\n responses: {\n dependencies: {\n description: 'Returns dependencies',\n headers: {\n 'X-Total-Count': {\n schema: {\n type: 'integer',\n description: 'Total number of entries',\n },\n },\n 'X-Page-Count': {\n schema: {\n type: 'integer',\n description: 'Total number of pages',\n },\n },\n 'X-Page': {\n schema: {\n type: 'integer',\n description: 'Current page',\n },\n },\n 'X-Page-Size': {\n schema: {\n type: 'integer',\n description: 'Number of entries per page',\n },\n },\n },\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n required: ['dependencies'],\n properties: {\n dependencies: {\n type: 'array',\n items: {\n $ref: '#/components/schemas/dependency',\n },\n },\n availableValues: {\n type: 'object',\n description:\n 'Will only be part of the response if `availableValues` is true. Returns all available values for the applied filters\\n',\n properties: {\n datasource: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n depName: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n depType: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n host: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n manager: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n packageFile: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n repository: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n },\n },\n 'deleted-successful': {\n description: 'Successful deleted',\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n deleted: {\n type: 'number',\n example: 15,\n description: 'Numbers of reports deleted',\n },\n },\n },\n },\n },\n },\n reports: {\n description: 'Returns reports',\n content: {\n 'application/json': {\n schema: {\n type: 'array',\n items: {\n type: 'object',\n additionalProperties: false,\n required: [\n 'taskID',\n 'repository',\n 'host',\n 'timestamp',\n 'report',\n ],\n properties: {\n taskID: {\n type: 'string',\n },\n timestamp: {\n type: 'string',\n format: 'date-time',\n },\n host: {\n type: 'string',\n },\n repository: {\n type: 'string',\n },\n report: {\n $ref: '#/components/schemas/repositoryReport',\n },\n },\n },\n },\n },\n },\n },\n },\n schemas: {\n error: {\n anyOf: [\n {\n type: 'object',\n example: {\n message: \"I'm an error\",\n code: 1111,\n },\n },\n {\n type: 'string',\n example: \"I'm an error\",\n },\n ],\n },\n target: {\n anyOf: [\n {\n type: 'string',\n description: 'URL to an repository',\n example: 'https://github.com/secustor/renovate-test',\n },\n {\n type: 'string',\n description:\n 'stringified Entity with SourceLocation URL annotation',\n example: 'component:default/backstage-plugins-example',\n },\n {\n type: 'string',\n description: 'host and path',\n example: 'secustor/backstage-plugins',\n },\n ],\n },\n repositoryReportList: {\n type: 'array',\n items: {\n $ref: '#/components/schemas/repositoryReport',\n },\n },\n repositoryReport: {\n description: 'report for a specific repository',\n type: 'object',\n additionalProperties: false,\n required: ['branches', 'packageFiles', 'problems'],\n properties: {\n branches: {\n type: 'array',\n items: {\n type: 'object',\n },\n },\n packageFiles: {\n type: 'object',\n },\n problems: {\n type: 'array',\n items: {\n type: 'object',\n },\n },\n },\n },\n dependency: {\n type: 'object',\n additionalProperties: false,\n required: [\n 'id',\n 'runID',\n 'host',\n 'repository',\n 'extractionTimestamp',\n 'manager',\n 'datasource',\n 'packageFile',\n 'depName',\n ],\n properties: {\n id: {\n type: 'string',\n },\n runID: {\n type: 'string',\n },\n host: {\n type: 'string',\n },\n repository: {\n type: 'string',\n },\n extractionTimestamp: {\n type: 'string',\n format: 'date-time',\n },\n manager: {\n type: 'string',\n },\n datasource: {\n type: 'string',\n },\n packageFile: {\n type: 'string',\n },\n packageFileUrl: {\n type: 'string',\n },\n depName: {\n type: 'string',\n },\n packageName: {\n type: 'string',\n },\n depType: {\n type: 'string',\n },\n currentValue: {\n type: 'string',\n },\n currentVersion: {\n type: 'string',\n },\n currentVersionTimestamp: {\n type: 'string',\n format: 'date-time',\n },\n skipReason: {\n type: 'string',\n },\n registryUrl: {\n type: 'string',\n },\n sourceUrl: {\n type: 'string',\n },\n },\n },\n },\n },\n} as const;\nexport const createOpenApiRouter = async (\n options?: Parameters<typeof createValidatedOpenApiRouter>['1'],\n) => createValidatedOpenApiRouter<typeof spec>(spec, options);\n"],"names":["createValidatedOpenApiRouter"],"mappings":"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"}