construct-hub 0.3.313 → 0.3.316

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. package/.gitattributes +1 -0
  2. package/.jsii +199 -93
  3. package/API.md +86 -0
  4. package/changelog.md +2 -2
  5. package/lib/api.d.ts +1 -0
  6. package/lib/api.js +2 -1
  7. package/lib/backend/catalog-builder/index.d.ts +5 -0
  8. package/lib/backend/catalog-builder/index.js +2 -1
  9. package/lib/backend/deny-list/deny-list.d.ts +2 -0
  10. package/lib/backend/deny-list/deny-list.js +2 -1
  11. package/lib/backend/deny-list/prune.d.ts +5 -0
  12. package/lib/backend/deny-list/prune.js +3 -1
  13. package/lib/backend/ingestion/index.d.ts +2 -0
  14. package/lib/backend/ingestion/index.js +3 -1
  15. package/lib/backend/inventory/index.d.ts +5 -0
  16. package/lib/backend/inventory/index.js +3 -1
  17. package/lib/backend/orchestration/index.d.ts +5 -0
  18. package/lib/backend/orchestration/index.js +3 -1
  19. package/lib/construct-hub.js +13 -3
  20. package/lib/monitoring/index.js +1 -1
  21. package/lib/overview-dashboard/api.d.ts +21 -0
  22. package/lib/overview-dashboard/api.js +3 -0
  23. package/lib/overview-dashboard/index.d.ts +53 -0
  24. package/lib/overview-dashboard/index.js +168 -0
  25. package/lib/overview-dashboard/sqs-dlq-stats-widget-function.d.ts +7 -0
  26. package/lib/overview-dashboard/sqs-dlq-stats-widget-function.js +21 -0
  27. package/lib/overview-dashboard/sqs-dlq-stats-widget-function.lambda.bundle/index.js +181 -0
  28. package/lib/overview-dashboard/sqs-dlq-stats-widget-function.lambda.bundle/index.js.map +7 -0
  29. package/lib/overview-dashboard/sqs-dlq-stats-widget-function.lambda.d.ts +56 -0
  30. package/lib/overview-dashboard/sqs-dlq-stats-widget-function.lambda.js +147 -0
  31. package/lib/overview-dashboard/sqs-dlq-widget.d.ts +59 -0
  32. package/lib/overview-dashboard/sqs-dlq-widget.js +82 -0
  33. package/lib/package-source.d.ts +5 -0
  34. package/lib/package-source.js +1 -1
  35. package/lib/package-sources/code-artifact.d.ts +1 -1
  36. package/lib/package-sources/code-artifact.js +5 -3
  37. package/lib/package-sources/npmjs.d.ts +1 -1
  38. package/lib/package-sources/npmjs.js +7 -3
  39. package/lib/package-tag/index.js +3 -3
  40. package/lib/package-tag-group/index.js +2 -2
  41. package/lib/preload-file/index.js +1 -1
  42. package/lib/s3/storage.js +1 -1
  43. package/lib/spdx-license.js +1 -1
  44. package/lib/webapp/index.d.ts +5 -0
  45. package/lib/webapp/index.js +2 -1
  46. package/package.json +3 -1
  47. package/releasetag.txt +1 -1
  48. package/version.txt +1 -1
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handler = void 0;
4
+ /// @singleton SQSDLQStatsWidget-Handler
5
+ const DOCS = `
6
+
7
+ ### Widget parameters
8
+ Param | Description
9
+ ---|---
10
+ **title** | Title of the widget
11
+ **emptyQueueMessage** | Message to display when there are no visible messages in any of the queues
12
+ **nonEmptyQueueMessage** | Message to display when any of the queue contains a message
13
+ **queues** | Object containing information about the queues to display
14
+
15
+ ### Example parameters
16
+ \`\`\` yaml
17
+ {
18
+ "description": "",
19
+ "title": "SQS DLQ",
20
+ "emptyQueueMessage": "There are no messages in the DLQs. This is normal and no action is required.",
21
+ "nonEmptyQueueMessage": "There are some message in the DLQ. The table below lists the queues with non-empty DLQs. Please check the DLQs and re-drive the messages.",
22
+ "queues": {
23
+ "construct-hub-dev-ConstructHubOrchestrationDLQ9C6D9BD4-rlooG5g8o3YA": {
24
+ "name": "Orchestration DLQ",
25
+ "queueName": "construct-hub-dev-ConstructHubOrchestrationDLQ9C6D9BD4-rlooG5g8o3YA",
26
+ "reDriveFunctionArn": "arn:aws:lambda:us-east-2:123457424:function:construct-hub-dev-ConstructHubOrchestrationRedrive-bWYSY5KWfUUU"
27
+ },
28
+ "construct-hub-dev-ConstructHubIngestionDLQ3E96A5F2-6niMeQlEH0X0": {
29
+ "name": "Ingestion DLQ",
30
+ "queueName": "construct-hub-dev-ConstructHubIngestionDLQ3E96A5F2-6niMeQlEH0X0"
31
+ },
32
+ "construct-hub-dev-ConstructHubSourcesStagerDLQ80BD2600-AlCVN3KCXFPo": {
33
+ "name": "NPM JS Stager DLQ",
34
+ "queueName": "construct-hub-dev-ConstructHubSourcesStagerDLQ80BD2600-AlCVN3KCXFPo"
35
+ }
36
+ }
37
+ }
38
+ \`\`\`
39
+ `;
40
+ const aws_sdk_1 = require("aws-sdk");
41
+ const DURATION = 5; // minutes
42
+ async function handler(event) {
43
+ var _a, _b;
44
+ console.log(JSON.stringify(event));
45
+ try {
46
+ if (event.describe) {
47
+ return DOCS;
48
+ }
49
+ const queues = (_a = event.widgetContext.params) === null || _a === void 0 ? void 0 : _a.queues;
50
+ if (Object.keys(queues).length === 0) {
51
+ return 'No queue names specified';
52
+ }
53
+ const data = await getVisibleMessageCount(queues);
54
+ const heading = `<h4>${event.widgetContext.title}</h4>`;
55
+ const description = event.widgetContext.params.description ? `<p>${event.widgetContext.params.description}</p>` : '';
56
+ let rest = '';
57
+ if (Object.keys(data).length > 0 && Object.values(data).some(d => d > 0)) {
58
+ const filteredData = Object.entries(data)
59
+ .filter(([_, count]) => count > 0)
60
+ .reduce((acc, [queueName, count]) => ({ ...acc, [queueName]: count }), {});
61
+ const table = generateTable(filteredData, queues, event.widgetContext);
62
+ console.log(table);
63
+ rest = `<p>${event.widgetContext.params.nonEmptyQueueMessage}</p>${table}`;
64
+ }
65
+ else {
66
+ rest = `<p>${event.widgetContext.params.emptyQueueMessage}</p>`;
67
+ }
68
+ return [heading, description, rest].join('\n');
69
+ }
70
+ catch (error) {
71
+ if (error instanceof Error) {
72
+ return {
73
+ markdown: [
74
+ '**⚠️ An error occurred**',
75
+ `- **name:** \`${error.name}\``,
76
+ `- **message:** ${error.message}`,
77
+ '- **stack:**',
78
+ ' ```',
79
+ (_b = error.stack) === null || _b === void 0 ? void 0 : _b.replace(/^/g, ' '),
80
+ ' ```',
81
+ ].join('\n'),
82
+ };
83
+ }
84
+ ;
85
+ throw error;
86
+ }
87
+ }
88
+ exports.handler = handler;
89
+ const getVisibleMessageCount = async (queueConfigs) => {
90
+ var _a;
91
+ // Keeping the time period to 5 minutes to show current state of the queue when re-drive happens
92
+ const queues = Object.values(queueConfigs);
93
+ const params = {
94
+ StartTime: new Date(new Date().getTime() - (DURATION * 60 * 1000)),
95
+ EndTime: new Date(),
96
+ ScanBy: 'TimestampDescending',
97
+ MetricDataQueries: queues.map((queue, index) => ({
98
+ Id: `m${index}`,
99
+ MetricStat: {
100
+ Period: 60,
101
+ Stat: 'Maximum',
102
+ Metric: {
103
+ Namespace: 'AWS/SQS',
104
+ MetricName: 'ApproximateNumberOfMessagesVisible',
105
+ Dimensions: [
106
+ {
107
+ Name: 'QueueName',
108
+ Value: queue.queueName,
109
+ },
110
+ ],
111
+ },
112
+ },
113
+ })),
114
+ };
115
+ const cloudwatch = new aws_sdk_1.CloudWatch();
116
+ const response = await cloudwatch.getMetricData(params).promise();
117
+ const data = ((_a = response.MetricDataResults) !== null && _a !== void 0 ? _a : []).reduce((acc, result) => {
118
+ var _a, _b;
119
+ if (result.Id) {
120
+ const id = Number.parseInt(result.Id.replace('m', ''), 10);
121
+ return { ...acc, [queues[id].queueName]: (_b = (_a = result.Values) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : 0 };
122
+ }
123
+ return acc;
124
+ }, {});
125
+ return data;
126
+ };
127
+ function generateTable(data, queueConfigs, widgetContext) {
128
+ const rows = Object.entries(data).map(([queueName, count]) => {
129
+ const queueConfig = queueConfigs[queueName];
130
+ if (queueConfig) {
131
+ const url = sqsQueueUrl(queueName, widgetContext);
132
+ const reDriveButton = (queueConfig === null || queueConfig === void 0 ? void 0 : queueConfig.reDriveFunctionArn) ? `<a class="btn btn-primary">ReDrive</a><cwdb-action action="call" display="widget" endpoint="${queueConfig.reDriveFunctionArn}" event="click"></<cwdb-action>` : '';
133
+ const queueLink = `<a class="btn ${!reDriveButton ? 'btn-primary' : ''}" href="${url}">Goto Queue</a>`;
134
+ const row = [queueConfig.name, count, `${queueLink} ${reDriveButton}`].map(d => `<td>${d}</td>`).join('');
135
+ return `<tr>${row}</tr>`;
136
+ }
137
+ return false;
138
+ }).filter(Boolean);
139
+ const tableHeader = ['Queue Name', 'Visible Messages', 'Action'].map(h => `<th>${h}</th>`);
140
+ const tableHeaderRow = `<tr>${tableHeader.join('')}</tr>`;
141
+ const table = ['<table>', tableHeaderRow, ...rows, '</table>'].join('\n');
142
+ return table;
143
+ }
144
+ function sqsQueueUrl(queueName, widgetContext) {
145
+ return `/sqs/v2/home#/queues/https%3A%2F%2Fsqs.${process.env.AWS_REGION}.amazonaws.com%2F${widgetContext.accountId}%2F${queueName}`;
146
+ }
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FzLWRscS1zdGF0cy13aWRnZXQtZnVuY3Rpb24ubGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL292ZXJ2aWV3LWRhc2hib2FyZC9zcXMtZGxxLXN0YXRzLXdpZGdldC1mdW5jdGlvbi5sYW1iZGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0NBQXdDO0FBQ3hDLE1BQU0sSUFBSSxHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBa0NaLENBQUM7QUFFRixxQ0FBcUM7QUFDckMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVTtBQWV2QixLQUFLLFVBQVUsT0FBTyxDQUFDLEtBQVk7O0lBQ3hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25DLElBQUk7UUFDRixJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDbEIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE1BQU0sTUFBTSxTQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSwwQ0FBRSxNQUFNLENBQUM7UUFDbEQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDcEMsT0FBTywwQkFBMEIsQ0FBQztTQUNuQztRQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbEQsTUFBTSxPQUFPLEdBQUcsT0FBTyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssT0FBTyxDQUFDO1FBQ3hELE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxXQUFXLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JILElB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QUMsU0FBUyxNQUFNLFNBQVMsRUFBRSxDQUFDO0FBQ3RJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gQHNpbmdsZXRvbiBTUVNETFFTdGF0c1dpZGdldC1IYW5kbGVyXG5jb25zdCBET0NTID0gYFxuXG4jIyMgV2lkZ2V0IHBhcmFtZXRlcnNcblBhcmFtIHwgRGVzY3JpcHRpb25cbi0tLXwtLS1cbioqdGl0bGUqKiB8IFRpdGxlIG9mIHRoZSB3aWRnZXRcbioqZW1wdHlRdWV1ZU1lc3NhZ2UqKiB8IE1lc3NhZ2UgdG8gZGlzcGxheSB3aGVuIHRoZXJlIGFyZSBubyB2aXNpYmxlIG1lc3NhZ2VzIGluIGFueSBvZiB0aGUgcXVldWVzXG4qKm5vbkVtcHR5UXVldWVNZXNzYWdlKiogfCBNZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiBhbnkgb2YgdGhlIHF1ZXVlIGNvbnRhaW5zIGEgbWVzc2FnZVxuKipxdWV1ZXMqKiB8IE9iamVjdCBjb250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0IHRoZSBxdWV1ZXMgdG8gZGlzcGxheVxuXG4jIyMgRXhhbXBsZSBwYXJhbWV0ZXJzXG5cXGBcXGBcXGAgeWFtbFxue1xuICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICBcInRpdGxlXCI6IFwiU1FTIERMUVwiLFxuICAgIFwiZW1wdHlRdWV1ZU1lc3NhZ2VcIjogXCJUaGVyZSBhcmUgbm8gbWVzc2FnZXMgaW4gdGhlIERMUXMuIFRoaXMgaXMgbm9ybWFsIGFuZCBubyBhY3Rpb24gaXMgcmVxdWlyZWQuXCIsXG4gICAgXCJub25FbXB0eVF1ZXVlTWVzc2FnZVwiOiBcIlRoZXJlIGFyZSBzb21lIG1lc3NhZ2UgaW4gdGhlIERMUS4gVGhlIHRhYmxlIGJlbG93IGxpc3RzIHRoZSBxdWV1ZXMgd2l0aCBub24tZW1wdHkgRExRcy4gUGxlYXNlIGNoZWNrIHRoZSBETFFzIGFuZCByZS1kcml2ZSB0aGUgbWVzc2FnZXMuXCIsXG4gICAgXCJxdWV1ZXNcIjoge1xuICAgICAgICBcImNvbnN0cnVjdC1odWItZGV2LUNvbnN0cnVjdEh1Yk9yY2hlc3RyYXRpb25ETFE5QzZEOUJENC1ybG9vRzVnOG8zWUFcIjoge1xuICAgICAgICAgICAgXCJuYW1lXCI6IFwiT3JjaGVzdHJhdGlvbiBETFFcIixcbiAgICAgICAgICAgIFwicXVldWVOYW1lXCI6IFwiY29uc3RydWN0LWh1Yi1kZXYtQ29uc3RydWN0SHViT3JjaGVzdHJhdGlvbkRMUTlDNkQ5QkQ0LXJsb29HNWc4bzNZQVwiLFxuICAgICAgICAgICAgXCJyZURyaXZlRnVuY3Rpb25Bcm5cIjogXCJhcm46YXdzOmxhbWJkYTp1cy1lYXN0LTI6MTIzNDU3NDI0OmZ1bmN0aW9uOmNvbnN0cnVjdC1odWItZGV2LUNvbnN0cnVjdEh1Yk9yY2hlc3RyYXRpb25SZWRyaXZlLWJXWVNZNUtXZlVVVVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY29uc3RydWN0LWh1Yi1kZXYtQ29uc3RydWN0SHViSW5nZXN0aW9uRExRM0U5NkE1RjItNm5pTWVRbEVIMFgwXCI6IHtcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIkluZ2VzdGlvbiBETFFcIixcbiAgICAgICAgICAgIFwicXVldWVOYW1lXCI6IFwiY29uc3RydWN0LWh1Yi1kZXYtQ29uc3RydWN0SHViSW5nZXN0aW9uRExRM0U5NkE1RjItNm5pTWVRbEVIMFgwXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb25zdHJ1Y3QtaHViLWRldi1Db25zdHJ1Y3RIdWJTb3VyY2VzU3RhZ2VyRExRODBCRDI2MDAtQWxDVk4zS0NYRlBvXCI6IHtcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIk5QTSBKUyBTdGFnZXIgRExRXCIsXG4gICAgICAgICAgICBcInF1ZXVlTmFtZVwiOiBcImNvbnN0cnVjdC1odWItZGV2LUNvbnN0cnVjdEh1YlNvdXJjZXNTdGFnZXJETFE4MEJEMjYwMC1BbENWTjNLQ1hGUG9cIlxuICAgICAgICB9XG4gICAgfVxufVxuXFxgXFxgXFxgXG5gO1xuXG5pbXBvcnQgeyBDbG91ZFdhdGNoIH0gZnJvbSAnYXdzLXNkayc7XG5jb25zdCBEVVJBVElPTiA9IDU7IC8vIG1pbnV0ZXNcblxuaW50ZXJmYWNlIEV2ZW50IHtcbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHdpZGdldENvbnRleHQ6IFdpZGdldENvbnRleHQ7XG4gIGRlc2NyaWJlPzogdW5rbm93bjtcbn1cblxudHlwZSBRdWV1ZUNvbmZpZyA9IHtcbiAgcXVldWVOYW1lOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgcmVEcml2ZUZ1bmN0aW9uQXJuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaGFuZGxlcihldmVudDogRXZlbnQpOiBQcm9taXNlPHN0cmluZyB8IHsgbWFya2Rvd246IHN0cmluZyB9PiB7XG4gIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGV2ZW50KSk7XG4gIHRyeSB7XG4gICAgaWYgKGV2ZW50LmRlc2NyaWJlKSB7XG4gICAgICByZXR1cm4gRE9DUztcbiAgICB9XG5cbiAgICBjb25zdCBxdWV1ZXMgPSBldmVudC53aWRnZXRDb250ZXh0LnBhcmFtcz8ucXVldWVzO1xuICAgIGlmIChPYmplY3Qua2V5cyhxdWV1ZXMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuICdObyBxdWV1ZSBuYW1lcyBzcGVjaWZpZWQnO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBnZXRWaXNpYmxlTWVzc2FnZUNvdW50KHF1ZXVlcyk7XG5cbiAgICBjb25zdCBoZWFkaW5nID0gYDxoND4ke2V2ZW50LndpZGdldENvbnRleHQudGl0bGV9PC9oND5gO1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gZXZlbnQud2lkZ2V0Q29udGV4dC5wYXJhbXMuZGVzY3JpcHRpb24gPyBgPHA+JHtldmVudC53aWRnZXRDb250ZXh0LnBhcmFtcy5kZXNjcmlwdGlvbn08L3A+YCA6ICcnO1xuICAgIGxldCByZXN0ID0gJyc7XG4gICAgaWYgKE9iamVjdC5rZXlzKGRhdGEpLmxlbmd0aCA+IDAgJiYgT2JqZWN0LnZhbHVlcyhkYXRhKS5zb21lKGQgPT4gZCA+IDApKSB7XG4gICAgICBjb25zdCBmaWx0ZXJlZERhdGEgPSBPYmplY3QuZW50cmllcyhkYXRhKVxuICAgICAgICAuZmlsdGVyKChbXywgY291bnRdKSA9PiBjb3VudCA+IDApXG4gICAgICAgIC5yZWR1Y2UoKGFjYywgW3F1ZXVlTmFtZSwgY291bnRdKSA9PiAoeyAuLi5hY2MsIFtxdWV1ZU5hbWVdOiBjb3VudCB9KSwge30gYXMgUmVjb3JkPHN0cmluZywgbnVtYmVyPik7XG4gICAgICBjb25zdCB0YWJsZSA9IGdlbmVyYXRlVGFibGUoZmlsdGVyZWREYXRhLCBxdWV1ZXMsIGV2ZW50LndpZGdldENvbnRleHQpO1xuICAgICAgY29uc29sZS5sb2codGFibGUpO1xuICAgICAgcmVzdCA9IGA8cD4ke2V2ZW50LndpZGdldENvbnRleHQucGFyYW1zLm5vbkVtcHR5UXVldWVNZXNzYWdlfTwvcD4ke3RhYmxlfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3QgPSBgPHA+JHtldmVudC53aWRnZXRDb250ZXh0LnBhcmFtcy5lbXB0eVF1ZXVlTWVzc2FnZX08L3A+YDtcbiAgICB9XG4gICAgcmV0dXJuIFtoZWFkaW5nLCBkZXNjcmlwdGlvbiwgcmVzdF0uam9pbignXFxuJyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1hcmtkb3duOiBbXG4gICAgICAgICAgJyoq4pqg77iPIEFuIGVycm9yIG9jY3VycmVkKionLFxuICAgICAgICAgIGAtICoqbmFtZToqKiBcXGAke2Vycm9yLm5hbWV9XFxgYCxcbiAgICAgICAgICBgLSAqKm1lc3NhZ2U6KiogJHtlcnJvci5tZXNzYWdlfWAsXG4gICAgICAgICAgJy0gKipzdGFjazoqKicsXG4gICAgICAgICAgJyAgYGBgJyxcbiAgICAgICAgICBlcnJvci5zdGFjaz8ucmVwbGFjZSgvXi9nLCAnICAnKSxcbiAgICAgICAgICAnICBgYGAnLFxuICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgfTtcbiAgICB9O1xuICAgIHRocm93IGVycm9yO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2lkZ2V0Q29udGV4dCB7XG4gIHJlYWRvbmx5IGRhc2hib2FyZE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgd2lkZ2V0SWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgZG9tYWluOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFjY291bnRJZDogc3RyaW5nO1xuICByZWFkb25seSBsb2NhbGU6IHN0cmluZztcbiAgcmVhZG9ubHkgdGltZXpvbmU6IHtcbiAgICByZWFkb25seSBsYWJlbDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IG9mZnNldElTTzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IG9mZnNldEluTWludXRlczogbnVtYmVyO1xuICB9O1xuICByZWFkb25seSBwZXJpb2Q6IG51bWJlcjtcbiAgcmVhZG9ubHkgaXNBdXRvUGVyaW9kOiB0cnVlO1xuICByZWFkb25seSB0aW1lUmFuZ2U6IHtcbiAgICByZWFkb25seSBtb2RlOiAncmVsYXRpdmUnIHwgJ2Fic29sdXRlJztcbiAgICByZWFkb25seSBzdGFydDogbnVtYmVyO1xuICAgIHJlYWRvbmx5IGVuZDogbnVtYmVyO1xuICAgIHJlYWRvbmx5IHJlbGF0aXZlU3RhcnQ6IG51bWJlcjtcbiAgICByZWFkb25seSB6b29tOiB7XG4gICAgICByZWFkb25seSBzdGFydDogbnVtYmVyO1xuICAgICAgcmVhZG9ubHkgZW5kOiBudW1iZXI7XG4gICAgfTtcbiAgfTtcbiAgcmVhZG9ubHkgdGhlbWU6ICdsaWdodCcgfCAnZGFyayc7XG4gIHJlYWRvbmx5IGxpbmtDaGFydHM6IGJvb2xlYW47XG4gIHJlYWRvbmx5IHRpdGxlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZvcm1zOiB7XG4gICAgcmVhZG9ubHkgYWxsOiB7IHJlYWRvbmx5IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICB9O1xuICByZWFkb25seSBwYXJhbXM6IHtcbiAgICBxdWV1ZXM6IFJlY29yZDxzdHJpbmcsIFF1ZXVlQ29uZmlnPjtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBlbXB0eVF1ZXVlTWVzc2FnZT86IHN0cmluZztcbiAgICBub25FbXB0eVF1ZXVlTWVzc2FnZT86IHN0cmluZztcbiAgfTtcbiAgcmVhZG9ubHkgd2lkdGg6IG51bWJlcjtcbiAgcmVhZG9ubHkgaGVpZ2h0OiBudW1iZXI7XG59XG5cbmNvbnN0IGdldFZpc2libGVNZXNzYWdlQ291bnQgPSBhc3luYyAocXVldWVDb25maWdzOiBSZWNvcmQ8c3RyaW5nLCBRdWV1ZUNvbmZpZz4pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIG51bWJlcj4+ID0+IHtcbiAgLy8gS2VlcGluZyB0aGUgdGltZSBwZXJpb2QgdG8gNSBtaW51dGVzIHRvIHNob3cgY3VycmVudCBzdGF0ZSBvZiB0aGUgcXVldWUgd2hlbiByZS1kcml2ZSBoYXBwZW5zXG4gIGNvbnN0IHF1ZXVlcyA9IE9iamVjdC52YWx1ZXMocXVldWVDb25maWdzKTtcbiAgY29uc3QgcGFyYW1zOiBDbG91ZFdhdGNoLkdldE1ldHJpY0RhdGFJbnB1dCA9IHtcbiAgICBTdGFydFRpbWU6IG5ldyBEYXRlKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gKERVUkFUSU9OICogNjAgKiAxMDAwKSksIC8vIDUgbWludXRlcyBhZ29cbiAgICBFbmRUaW1lOiBuZXcgRGF0ZSgpLCAvLyBub3dcbiAgICBTY2FuQnk6ICdUaW1lc3RhbXBEZXNjZW5kaW5nJyxcbiAgICBNZXRyaWNEYXRhUXVlcmllczogcXVldWVzLm1hcCgocXVldWUsIGluZGV4KSA9PiAoe1xuICAgICAgSWQ6IGBtJHtpbmRleH1gLFxuICAgICAgTWV0cmljU3RhdDoge1xuICAgICAgICBQZXJpb2Q6IDYwLFxuICAgICAgICBTdGF0OiAnTWF4aW11bScsXG4gICAgICAgIE1ldHJpYzoge1xuICAgICAgICAgIE5hbWVzcGFjZTogJ0FXUy9TUVMnLFxuICAgICAgICAgIE1ldHJpY05hbWU6ICdBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNWaXNpYmxlJyxcbiAgICAgICAgICBEaW1lbnNpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIE5hbWU6ICdRdWV1ZU5hbWUnLFxuICAgICAgICAgICAgICBWYWx1ZTogcXVldWUucXVldWVOYW1lLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KSksXG4gIH07XG4gIGNvbnN0IGNsb3Vkd2F0Y2ggPSBuZXcgQ2xvdWRXYXRjaCgpO1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsb3Vkd2F0Y2guZ2V0TWV0cmljRGF0YShwYXJhbXMpLnByb21pc2UoKTtcbiAgY29uc3QgZGF0YSA9IChyZXNwb25zZS5NZXRyaWNEYXRhUmVzdWx0cyA/PyBbXSkucmVkdWNlKChhY2MsIHJlc3VsdCkgPT4ge1xuICAgIGlmIChyZXN1bHQuSWQpIHtcbiAgICAgIGNvbnN0IGlkID0gTnVtYmVyLnBhcnNlSW50KHJlc3VsdC5JZC5yZXBsYWNlKCdtJywgJycpLCAxMCk7XG4gICAgICByZXR1cm4geyAuLi5hY2MsIFtxdWV1ZXNbaWRdLnF1ZXVlTmFtZV06IHJlc3VsdC5WYWx1ZXM/LlswXSA/PyAwIH07XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIG51bWJlcj4pO1xuICByZXR1cm4gZGF0YTtcblxufTtcblxuZnVuY3Rpb24gZ2VuZXJhdGVUYWJsZShkYXRhOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+LCBxdWV1ZUNvbmZpZ3M6IFJlY29yZDxzdHJpbmcsIFF1ZXVlQ29uZmlnPiwgd2lkZ2V0Q29udGV4dDogV2lkZ2V0Q29udGV4dCk6IHN0cmluZyB7XG5cbiAgY29uc3Qgcm93cyA9IE9iamVjdC5lbnRyaWVzKGRhdGEpLm1hcCgoW3F1ZXVlTmFtZSwgY291bnRdKSA9PiB7XG4gICAgY29uc3QgcXVldWVDb25maWcgPSBxdWV1ZUNvbmZpZ3NbcXVldWVOYW1lXTtcbiAgICBpZiAocXVldWVDb25maWcpIHtcbiAgICAgIGNvbnN0IHVybCA9IHNxc1F1ZXVlVXJsKHF1ZXVlTmFtZSwgd2lkZ2V0Q29udGV4dCk7XG4gICAgICBjb25zdCByZURyaXZlQnV0dG9uID0gcXVldWVDb25maWc/LnJlRHJpdmVGdW5jdGlvbkFybiA/IGA8YSBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiPlJlRHJpdmU8L2E+PGN3ZGItYWN0aW9uIGFjdGlvbj1cImNhbGxcIiBkaXNwbGF5PVwid2lkZ2V0XCIgZW5kcG9pbnQ9XCIke3F1ZXVlQ29uZmlnLnJlRHJpdmVGdW5jdGlvbkFybn1cIiBldmVudD1cImNsaWNrXCI+PC88Y3dkYi1hY3Rpb24+YCA6ICcnO1xuICAgICAgY29uc3QgcXVldWVMaW5rID0gYDxhIGNsYXNzPVwiYnRuICR7IXJlRHJpdmVCdXR0b24gPyAnYnRuLXByaW1hcnknIDogJyd9XCIgaHJlZj1cIiR7dXJsfVwiPkdvdG8gUXVldWU8L2E+YDtcbiAgICAgIGNvbnN0IHJvdyA9IFtxdWV1ZUNvbmZpZy5uYW1lLCBjb3VudCwgYCR7cXVldWVMaW5rfSAke3JlRHJpdmVCdXR0b259YF0ubWFwKGQgPT4gYDx0ZD4ke2R9PC90ZD5gKS5qb2luKCcnKTtcbiAgICAgIHJldHVybiBgPHRyPiR7cm93fTwvdHI+YDtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9KS5maWx0ZXIoQm9vbGVhbik7XG5cbiAgY29uc3QgdGFibGVIZWFkZXIgPSBbJ1F1ZXVlIE5hbWUnLCAnVmlzaWJsZSBNZXNzYWdlcycsICdBY3Rpb24nXS5tYXAoaCA9PiBgPHRoPiR7aH08L3RoPmApO1xuICBjb25zdCB0YWJsZUhlYWRlclJvdyA9IGA8dHI+JHt0YWJsZUhlYWRlci5qb2luKCcnKX08L3RyPmA7XG4gIGNvbnN0IHRhYmxlID0gWyc8dGFibGU+JywgdGFibGVIZWFkZXJSb3csIC4uLnJvd3MsICc8L3RhYmxlPiddLmpvaW4oJ1xcbicpO1xuICByZXR1cm4gdGFibGU7XG59XG5cbmZ1bmN0aW9uIHNxc1F1ZXVlVXJsKHF1ZXVlTmFtZTogc3RyaW5nLCB3aWRnZXRDb250ZXh0OiBXaWRnZXRDb250ZXh0KTogc3RyaW5nIHtcbiAgcmV0dXJuIGAvc3FzL3YyL2hvbWUjL3F1ZXVlcy9odHRwcyUzQSUyRiUyRnNxcy4ke3Byb2Nlc3MuZW52LkFXU19SRUdJT059LmFtYXpvbmF3cy5jb20lMkYke3dpZGdldENvbnRleHQuYWNjb3VudElkfSUyRiR7cXVldWVOYW1lfWA7XG59XG4iXX0=
@@ -0,0 +1,59 @@
1
+ import { ConcreteWidget } from '@aws-cdk/aws-cloudwatch';
2
+ import { IFunction } from '@aws-cdk/aws-lambda';
3
+ import { IQueue } from '@aws-cdk/aws-sqs';
4
+ import { Construct } from '@aws-cdk/core';
5
+ declare type QueueWidgetDetails = {
6
+ name: string;
7
+ queue: IQueue;
8
+ reDriveFunction?: IFunction;
9
+ };
10
+ export interface SQLDLQWidgetProps {
11
+ readonly queues: QueueWidgetDetails[];
12
+ readonly key: string;
13
+ readonly description?: string;
14
+ readonly emptyQueueMessage?: string;
15
+ readonly nonEmptyQueueMessage?: string;
16
+ readonly title?: string;
17
+ readonly width?: number;
18
+ readonly height?: number;
19
+ }
20
+ /**
21
+ * CloudWatch dashboard widget to show the list of DLQs which have messages
22
+ * When the queue has message(s), the widget will generate a link to goto the queue
23
+ * and if there is a re-drive lambda, the widget will include a button to
24
+ * execute the re-drive lambda
25
+ */
26
+ export declare class SQSDLQWidget extends ConcreteWidget {
27
+ private readonly handler;
28
+ private readonly queues;
29
+ private readonly description;
30
+ private readonly title;
31
+ private readonly emptyQueueMessage;
32
+ private readonly nonEmptyQueueMessage;
33
+ constructor(scope: Construct, id: string, props: SQLDLQWidgetProps);
34
+ addQueue(name: string, queue: IQueue, reDriveFunction?: IFunction): void;
35
+ toJson(): {
36
+ type: string;
37
+ width: number;
38
+ height: number;
39
+ x: number | undefined;
40
+ y: number | undefined;
41
+ properties: {
42
+ endpoint: string;
43
+ params: {
44
+ description: string;
45
+ title: string;
46
+ emptyQueueMessage: string;
47
+ nonEmptyQueueMessage: string;
48
+ queues: Record<string, any>;
49
+ };
50
+ title: string;
51
+ updateOn: {
52
+ refresh: boolean;
53
+ resize: boolean;
54
+ timeRange: boolean;
55
+ };
56
+ };
57
+ }[];
58
+ }
59
+ export {};
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SQSDLQWidget = void 0;
4
+ const aws_cloudwatch_1 = require("@aws-cdk/aws-cloudwatch");
5
+ const aws_iam_1 = require("@aws-cdk/aws-iam");
6
+ const core_1 = require("@aws-cdk/core");
7
+ const _lambda_architecture_1 = require("../backend/_lambda-architecture");
8
+ const sqs_dlq_stats_widget_function_1 = require("./sqs-dlq-stats-widget-function");
9
+ /**
10
+ * CloudWatch dashboard widget to show the list of DLQs which have messages
11
+ * When the queue has message(s), the widget will generate a link to goto the queue
12
+ * and if there is a re-drive lambda, the widget will include a button to
13
+ * execute the re-drive lambda
14
+ */
15
+ class SQSDLQWidget extends aws_cloudwatch_1.ConcreteWidget {
16
+ constructor(scope, id, props) {
17
+ var _a, _b, _c, _d, _e, _f;
18
+ super((_a = props.width) !== null && _a !== void 0 ? _a : 12, (_b = props.height) !== null && _b !== void 0 ? _b : 8);
19
+ this.queues = {};
20
+ this.title = (_c = props.title) !== null && _c !== void 0 ? _c : 'SQS DLQ';
21
+ this.description = (_d = props.description) !== null && _d !== void 0 ? _d : '';
22
+ this.emptyQueueMessage = (_e = props.emptyQueueMessage) !== null && _e !== void 0 ? _e : 'There are no messages in the DLQs. This is normal and no action is required.';
23
+ this.nonEmptyQueueMessage = (_f = props.nonEmptyQueueMessage) !== null && _f !== void 0 ? _f : 'There are some message in the DLQ. The table below lists the queues with non-empty DLQs. Please check the DLQs and re-drive the messages. Once the messages are re-driven, check the queue again as the metrics takes time to updated.';
24
+ this.handler = new sqs_dlq_stats_widget_function_1.SqsDlqStatsWidgetFunction(scope, id, {
25
+ architecture: _lambda_architecture_1.gravitonLambdaIfAvailable(scope),
26
+ description: '[ConstructHub/SQSDLQWidget] Is a custom CloudWatch widget handler',
27
+ });
28
+ // The handler is a SingletonFunction, so the actual Function resource is
29
+ // not in the construct's scope, instead it's in the Stack scope. We must
30
+ // hence refer to the REAL function via a private property (UGLY!).
31
+ core_1.Tags.of(this.handler.lambdaFunction).add('function-purpose', 'cloudwatch-custom-widget');
32
+ this.handler.addToRolePolicy(new aws_iam_1.PolicyStatement({
33
+ effect: aws_iam_1.Effect.ALLOW,
34
+ actions: ['cloudwatch:GetMetricData'],
35
+ resources: ['*'],
36
+ }));
37
+ }
38
+ addQueue(name, queue, reDriveFunction) {
39
+ this.queues[name] = {
40
+ name,
41
+ queue,
42
+ reDriveFunction,
43
+ };
44
+ }
45
+ toJson() {
46
+ return [{
47
+ type: 'custom',
48
+ width: this.width,
49
+ height: this.height,
50
+ x: this.x,
51
+ y: this.y,
52
+ properties: {
53
+ endpoint: this.handler.functionArn,
54
+ params: {
55
+ description: this.description,
56
+ title: this.title,
57
+ emptyQueueMessage: this.emptyQueueMessage,
58
+ nonEmptyQueueMessage: this.nonEmptyQueueMessage,
59
+ queues: Object.values(this.queues).reduce((acc, q) => {
60
+ var _a;
61
+ const queueName = q.queue.queueName;
62
+ const fnArn = (_a = q.reDriveFunction) === null || _a === void 0 ? void 0 : _a.functionArn;
63
+ acc[queueName] = {
64
+ name: q.name,
65
+ queueName: queueName,
66
+ reDriveFunctionArn: fnArn !== null && fnArn !== void 0 ? fnArn : undefined,
67
+ };
68
+ return acc;
69
+ }, {}),
70
+ },
71
+ title: this.title,
72
+ updateOn: {
73
+ refresh: true,
74
+ resize: false,
75
+ timeRange: false,
76
+ },
77
+ },
78
+ }];
79
+ }
80
+ }
81
+ exports.SQSDLQWidget = SQSDLQWidget;
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FzLWRscS13aWRnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3ZlcnZpZXctZGFzaGJvYXJkL3Nxcy1kbHEtd2lkZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDREQUF5RDtBQUN6RCw4Q0FBMkQ7QUFHM0Qsd0NBQWdEO0FBQ2hELDBFQUE0RTtBQUM1RSxtRkFBNEU7QUFtQjVFOzs7OztHQUtHO0FBQ0gsTUFBYSxZQUFhLFNBQVEsK0JBQWM7SUFROUMsWUFBbUIsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBd0I7O1FBQ3ZFLEtBQUssT0FBQyxLQUFLLENBQUMsS0FBSyxtQ0FBSSxFQUFFLFFBQUUsS0FBSyxDQUFDLE1BQU0sbUNBQUksQ0FBQyxDQUFDLENBQUM7UUFQN0IsV0FBTSxHQUF1QyxFQUFFLENBQUM7UUFTL0QsSUFBSSxDQUFDLEtBQUssU0FBRyxLQUFLLENBQUMsS0FBSyxtQ0FBSSxTQUFTLENBQUM7UUFDdEMsSUFBSSxDQUFDLFdBQVcsU0FBRyxLQUFLLENBQUMsV0FBVyxtQ0FBSSxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLGlCQUFpQixTQUFHLEtBQUssQ0FBQyxpQkFBaUIsbUNBQUksOEVBQThFLENBQUM7UUFDbkksSUFBSSxDQUFDLG9CQUFvQixTQUFHLEtBQUssQ0FBQyxvQkFBb0IsbUNBQUksd09BQXdPLENBQUM7UUFFblMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLHlEQUF5QixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDdEQsWUFBWSxFQUFFLGdEQUF5QixDQUFDLEtBQUssQ0FBQztZQUM5QyxXQUFXLEVBQUUsbUVBQW1FO1NBQ2pGLENBQUMsQ0FBQztRQUNILHlFQUF5RTtRQUN6RSx5RUFBeUU7UUFDekUsbUVBQW1FO1FBRW5FLFdBQUksQ0FBQyxFQUFFLENBQUUsSUFBSSxDQUFDLE9BQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztRQUVsRyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLHlCQUFlLENBQUM7WUFDL0MsTUFBTSxFQUFFLGdCQUFNLENBQUMsS0FBSztZQUNwQixPQUFPLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztZQUNyQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7U0FDakIsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRU0sUUFBUSxDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsZUFBMkI7UUFDdEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRztZQUNsQixJQUFJO1lBQ0osS0FBSztZQUNMLGVBQWU7U0FDaEIsQ0FBQztJQUNKLENBQUM7SUFFTSxNQUFNO1FBQ1gsT0FBTyxDQUFDO2dCQUNOLElBQUksRUFBRSxRQUFRO2dCQUNkLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ1QsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNULFVBQVUsRUFBRTtvQkFDVixRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO29CQUNsQyxNQUFNLEVBQUU7d0JBQ04sV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO3dCQUM3QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7d0JBQ2pCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxpQkFBaUI7d0JBQ3pDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxvQkFBb0I7d0JBQy9DLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7OzRCQUNuRCxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQzs0QkFDcEMsTUFBTSxLQUFLLFNBQUcsQ0FBQyxDQUFDLGVBQWUsMENBQUUsV0FBVyxDQUFDOzRCQUM3QyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUc7Z0NBQ2YsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO2dDQUNaLFNBQVMsRUFBRSxTQUFTO2dDQUNwQixrQkFBa0IsRUFBRSxLQUFLLGFBQUwsS0FBSyxjQUFMLEtBQUssR0FBSSxTQUFTOzZCQUN2QyxDQUFDOzRCQUNGLE9BQU8sR0FBRyxDQUFDO3dCQUNiLENBQUMsRUFBRSxFQUF5QixDQUFDO3FCQUM5QjtvQkFDRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7b0JBQ2pCLFFBQVEsRUFBRTt3QkFDUixPQUFPLEVBQUUsSUFBSTt3QkFDYixNQUFNLEVBQUUsS0FBSzt3QkFDYixTQUFTLEVBQUUsS0FBSztxQkFDakI7aUJBQ0Y7YUFDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEzRUQsb0NBMkVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uY3JldGVXaWRnZXQgfSBmcm9tICdAYXdzLWNkay9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBFZmZlY3QsIFBvbGljeVN0YXRlbWVudCB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1pYW0nO1xuaW1wb3J0IHsgSUZ1bmN0aW9uIH0gZnJvbSAnQGF3cy1jZGsvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBJUXVldWUgfSBmcm9tICdAYXdzLWNkay9hd3Mtc3FzJztcbmltcG9ydCB7IENvbnN0cnVjdCwgVGFncyB9IGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuaW1wb3J0IHsgZ3Jhdml0b25MYW1iZGFJZkF2YWlsYWJsZSB9IGZyb20gJy4uL2JhY2tlbmQvX2xhbWJkYS1hcmNoaXRlY3R1cmUnO1xuaW1wb3J0IHsgU3FzRGxxU3RhdHNXaWRnZXRGdW5jdGlvbiB9IGZyb20gJy4vc3FzLWRscS1zdGF0cy13aWRnZXQtZnVuY3Rpb24nO1xuXG50eXBlIFF1ZXVlV2lkZ2V0RGV0YWlscyA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBxdWV1ZTogSVF1ZXVlO1xuICByZURyaXZlRnVuY3Rpb24/OiBJRnVuY3Rpb247XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNRTERMUVdpZGdldFByb3BzIHtcbiAgcmVhZG9ubHkgcXVldWVzOiBRdWV1ZVdpZGdldERldGFpbHNbXTtcbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICByZWFkb25seSBlbXB0eVF1ZXVlTWVzc2FnZT86IHN0cmluZztcbiAgcmVhZG9ubHkgbm9uRW1wdHlRdWV1ZU1lc3NhZ2U/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRpdGxlPzogc3RyaW5nO1xuICByZWFkb25seSB3aWR0aD86IG51bWJlcjtcbiAgcmVhZG9ubHkgaGVpZ2h0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIENsb3VkV2F0Y2ggZGFzaGJvYXJkIHdpZGdldCB0byBzaG93IHRoZSBsaXN0IG9mIERMUXMgd2hpY2ggaGF2ZSBtZXNzYWdlc1xuICogV2hlbiB0aGUgcXVldWUgaGFzIG1lc3NhZ2UocyksIHRoZSB3aWRnZXQgd2lsbCBnZW5lcmF0ZSBhIGxpbmsgdG8gZ290byB0aGUgcXVldWVcbiAqIGFuZCBpZiB0aGVyZSBpcyBhIHJlLWRyaXZlIGxhbWJkYSwgdGhlIHdpZGdldCB3aWxsIGluY2x1ZGUgYSBidXR0b24gdG9cbiAqIGV4ZWN1dGUgdGhlIHJlLWRyaXZlIGxhbWJkYVxuICovXG5leHBvcnQgY2xhc3MgU1FTRExRV2lkZ2V0IGV4dGVuZHMgQ29uY3JldGVXaWRnZXQge1xuICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZXI6IFNxc0RscVN0YXRzV2lkZ2V0RnVuY3Rpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgcXVldWVzOiBSZWNvcmQ8c3RyaW5nLCBRdWV1ZVdpZGdldERldGFpbHM+ID0ge307XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSB0aXRsZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGVtcHR5UXVldWVNZXNzYWdlOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgbm9uRW1wdHlRdWV1ZU1lc3NhZ2U6IHN0cmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFNRTERMUVdpZGdldFByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMud2lkdGggPz8gMTIsIHByb3BzLmhlaWdodCA/PyA4KTtcblxuICAgIHRoaXMudGl0bGUgPSBwcm9wcy50aXRsZSA/PyAnU1FTIERMUSc7XG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IHByb3BzLmRlc2NyaXB0aW9uID8/ICcnO1xuICAgIHRoaXMuZW1wdHlRdWV1ZU1lc3NhZ2UgPSBwcm9wcy5lbXB0eVF1ZXVlTWVzc2FnZSA/PyAnVGhlcmUgYXJlIG5vIG1lc3NhZ2VzIGluIHRoZSBETFFzLiBUaGlzIGlzIG5vcm1hbCBhbmQgbm8gYWN0aW9uIGlzIHJlcXVpcmVkLic7XG4gICAgdGhpcy5ub25FbXB0eVF1ZXVlTWVzc2FnZSA9IHByb3BzLm5vbkVtcHR5UXVldWVNZXNzYWdlID8/ICdUaGVyZSBhcmUgc29tZSBtZXNzYWdlIGluIHRoZSBETFEuIFRoZSB0YWJsZSBiZWxvdyBsaXN0cyB0aGUgcXVldWVzIHdpdGggbm9uLWVtcHR5IERMUXMuIFBsZWFzZSBjaGVjayB0aGUgRExRcyBhbmQgcmUtZHJpdmUgdGhlIG1lc3NhZ2VzLiBPbmNlIHRoZSBtZXNzYWdlcyBhcmUgcmUtZHJpdmVuLCBjaGVjayB0aGUgcXVldWUgYWdhaW4gYXMgdGhlIG1ldHJpY3MgdGFrZXMgdGltZSB0byB1cGRhdGVkLic7XG5cbiAgICB0aGlzLmhhbmRsZXIgPSBuZXcgU3FzRGxxU3RhdHNXaWRnZXRGdW5jdGlvbihzY29wZSwgaWQsIHtcbiAgICAgIGFyY2hpdGVjdHVyZTogZ3Jhdml0b25MYW1iZGFJZkF2YWlsYWJsZShzY29wZSksXG4gICAgICBkZXNjcmlwdGlvbjogJ1tDb25zdHJ1Y3RIdWIvU1FTRExRV2lkZ2V0XSBJcyBhIGN1c3RvbSBDbG91ZFdhdGNoIHdpZGdldCBoYW5kbGVyJyxcbiAgICB9KTtcbiAgICAvLyBUaGUgaGFuZGxlciBpcyBhIFNpbmdsZXRvbkZ1bmN0aW9uLCBzbyB0aGUgYWN0dWFsIEZ1bmN0aW9uIHJlc291cmNlIGlzXG4gICAgLy8gbm90IGluIHRoZSBjb25zdHJ1Y3QncyBzY29wZSwgaW5zdGVhZCBpdCdzIGluIHRoZSBTdGFjayBzY29wZS4gV2UgbXVzdFxuICAgIC8vIGhlbmNlIHJlZmVyIHRvIHRoZSBSRUFMIGZ1bmN0aW9uIHZpYSBhIHByaXZhdGUgcHJvcGVydHkgKFVHTFkhKS5cblxuICAgIFRhZ3Mub2YoKHRoaXMuaGFuZGxlciBhcyBhbnkpLmxhbWJkYUZ1bmN0aW9uKS5hZGQoJ2Z1bmN0aW9uLXB1cnBvc2UnLCAnY2xvdWR3YXRjaC1jdXN0b20td2lkZ2V0Jyk7XG5cbiAgICB0aGlzLmhhbmRsZXIuYWRkVG9Sb2xlUG9saWN5KG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ2Nsb3Vkd2F0Y2g6R2V0TWV0cmljRGF0YSddLFxuICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgYWRkUXVldWUobmFtZTogc3RyaW5nLCBxdWV1ZTogSVF1ZXVlLCByZURyaXZlRnVuY3Rpb24/OiBJRnVuY3Rpb24pIHtcbiAgICB0aGlzLnF1ZXVlc1tuYW1lXSA9IHtcbiAgICAgIG5hbWUsXG4gICAgICBxdWV1ZSxcbiAgICAgIHJlRHJpdmVGdW5jdGlvbixcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHRvSnNvbigpIHtcbiAgICByZXR1cm4gW3tcbiAgICAgIHR5cGU6ICdjdXN0b20nLFxuICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXG4gICAgICBoZWlnaHQ6IHRoaXMuaGVpZ2h0LFxuICAgICAgeDogdGhpcy54LFxuICAgICAgeTogdGhpcy55LFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBlbmRwb2ludDogdGhpcy5oYW5kbGVyLmZ1bmN0aW9uQXJuLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcbiAgICAgICAgICB0aXRsZTogdGhpcy50aXRsZSxcbiAgICAgICAgICBlbXB0eVF1ZXVlTWVzc2FnZTogdGhpcy5lbXB0eVF1ZXVlTWVzc2FnZSxcbiAgICAgICAgICBub25FbXB0eVF1ZXVlTWVzc2FnZTogdGhpcy5ub25FbXB0eVF1ZXVlTWVzc2FnZSxcbiAgICAgICAgICBxdWV1ZXM6IE9iamVjdC52YWx1ZXModGhpcy5xdWV1ZXMpLnJlZHVjZSgoYWNjLCBxKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBxdWV1ZU5hbWUgPSBxLnF1ZXVlLnF1ZXVlTmFtZTtcbiAgICAgICAgICAgIGNvbnN0IGZuQXJuID0gcS5yZURyaXZlRnVuY3Rpb24/LmZ1bmN0aW9uQXJuO1xuICAgICAgICAgICAgYWNjW3F1ZXVlTmFtZV0gPSB7XG4gICAgICAgICAgICAgIG5hbWU6IHEubmFtZSxcbiAgICAgICAgICAgICAgcXVldWVOYW1lOiBxdWV1ZU5hbWUsXG4gICAgICAgICAgICAgIHJlRHJpdmVGdW5jdGlvbkFybjogZm5Bcm4gPz8gdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgYW55PiksXG4gICAgICAgIH0sXG4gICAgICAgIHRpdGxlOiB0aGlzLnRpdGxlLFxuICAgICAgICB1cGRhdGVPbjoge1xuICAgICAgICAgIHJlZnJlc2g6IHRydWUsXG4gICAgICAgICAgcmVzaXplOiBmYWxzZSxcbiAgICAgICAgICB0aW1lUmFuZ2U6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9XTtcbiAgfVxufVxuIl19
@@ -6,6 +6,7 @@ import { IDenyList } from './backend/deny-list/api';
6
6
  import { ILicenseList } from './backend/license-list/api';
7
7
  import { IRepository } from './codeartifact/api';
8
8
  import { IMonitoring } from './monitoring/api';
9
+ import { IOverviewDashboard } from './overview-dashboard/api';
9
10
  /**
10
11
  * A package source for ConstructHub.
11
12
  */
@@ -49,6 +50,10 @@ export interface PackageSourceBindOptions {
49
50
  * The monitoring instance to use for registering alarms, etc.
50
51
  */
51
52
  readonly monitoring: IMonitoring;
53
+ /**
54
+ * The overview dashboard to add widgets to.
55
+ */
56
+ readonly overviewDashboard: IOverviewDashboard;
52
57
  /**
53
58
  * The SQS queue to which messages should be sent. Sent objects should match
54
59
  * the package discovery schema.
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcGFja2FnZS1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElXaWRnZXQgfSBmcm9tICdAYXdzLWNkay9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBJR3JhbnRhYmxlIH0gZnJvbSAnQGF3cy1jZGsvYXdzLWlhbSc7XG5pbXBvcnQgeyBJUXVldWUgfSBmcm9tICdAYXdzLWNkay9hd3Mtc3FzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuaW1wb3J0IHsgSURlbnlMaXN0IH0gZnJvbSAnLi9iYWNrZW5kL2RlbnktbGlzdC9hcGknO1xuaW1wb3J0IHsgSUxpY2Vuc2VMaXN0IH0gZnJvbSAnLi9iYWNrZW5kL2xpY2Vuc2UtbGlzdC9hcGknO1xuaW1wb3J0IHsgSVJlcG9zaXRvcnkgfSBmcm9tICcuL2NvZGVhcnRpZmFjdC9hcGknO1xuaW1wb3J0IHsgSU1vbml0b3JpbmcgfSBmcm9tICcuL21vbml0b3JpbmcvYXBpJztcblxuLyoqXG4gKiBBIHBhY2thZ2Ugc291cmNlIGZvciBDb25zdHJ1Y3RIdWIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVBhY2thZ2VTb3VyY2Uge1xuICAvKipcbiAgICogQmluZHMgdGhlIHBhY2thZ2Ugc291cmNlIHRvIGEgc2NvcGUgYW5kIHRhcmdldCBxdWV1ZS5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIHRoZSBjb25zdHJ1Y3Qgc2NvcGUgaW4gd2hpY2ggdGhlIGJpbmRpbmcgaGFwcGVucy5cbiAgICogQHBhcmFtIG9wdHMgIG9wdGlvbnMgZm9yIGJpbmRpbmcgdGhlIHBhY2thZ2Ugc291cmNlLlxuICAgKlxuICAgKiBAcmV0dXJucyBhIGRlcGVuZGFibGUgcmVzb3VyY2UgdGhhdCBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYSBDbG91ZEZvcm1hdGlvblxuICAgKiAgICAgICAgICBkZXBlbmRlbmN5IG9uIHRoZSBib3VuZCBzb3VyY2UuXG4gICAqL1xuICBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QsIG9wdHM6IFBhY2thZ2VTb3VyY2VCaW5kT3B0aW9ucyk6IFBhY2thZ2VTb3VyY2VCaW5kUmVzdWx0O1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGJpbmRpbmcgYSBwYWNrYWdlIHNvdXJjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYWNrYWdlU291cmNlQmluZE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGJhc2UgVVJMIG9mIHRoZSBib3VuZCBDb25zdHJ1Y3RIdWIgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBiYXNlVXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmVkIGBEZW55TGlzdGAgZm9yIHRoZSBib3VuZCBDb25zdHJ1Y3QgSHViIGluc3RhbmNlLCBpZiBhbnkuXG4gICAqL1xuICByZWFkb25seSBkZW55TGlzdD86IElEZW55TGlzdDtcblxuICAvKipcbiAgICogVGhlIGBJR3JhbnRhYmxlYCB0aGF0IHdpbGwgcHJvY2VzcyBkb3duc3RyZWFtIG1lc3NhZ2VzIGZyb20gdGhlIGJvdW5kXG4gICAqIHBhY2thZ2Ugc291cmNlLiBJdCBuZWVkcyB0byBiZSBncmFudGVkIHBlcm1pc3Npb25zIHRvIHJlYWQgcGFja2FnZSBkYXRhXG4gICAqIGZyb20gdGhlIFVSTHMgc2VudCB0byB0aGUgYHF1ZXVlYC5cbiAgICovXG4gIHJlYWRvbmx5IGluZ2VzdGlvbjogSUdyYW50YWJsZTtcblxuICAvKipcbiAgICogVGhlIGxpY2Vuc2UgbGlzdCBhcHBsaWVkIGJ5IHRoZSBib3VuZCBDb25zdHJ1Y3QgSHViIGluc3RhbmNlLiBUaGlzIGNhbiBiZVxuICAgKiB1c2VkIHRvIGZpbHRlciBkb3duIHRoZSBwYWNrYWdlIG9ubHkgdG8gdGhvc2Ugd2hpY2ggd2lsbCBwYXNzIHRoZSBsaWNlbnNlXG4gICAqIGZpbHRlci5cbiAgICovXG4gIHJlYWRvbmx5IGxpY2Vuc2VMaXN0OiBJTGljZW5zZUxpc3Q7XG5cbiAgLyoqXG4gICAqIFRoZSBtb25pdG9yaW5nIGluc3RhbmNlIHRvIHVzZSBmb3IgcmVnaXN0ZXJpbmcgYWxhcm1zLCBldGMuXG4gICAqL1xuICByZWFkb25seSBtb25pdG9yaW5nOiBJTW9uaXRvcmluZztcblxuICAvKipcbiAgICogVGhlIFNRUyBxdWV1ZSB0byB3aGljaCBtZXNzYWdlcyBzaG91bGQgYmUgc2VudC4gU2VudCBvYmplY3RzIHNob3VsZCBtYXRjaFxuICAgKiB0aGUgcGFja2FnZSBkaXNjb3Zlcnkgc2NoZW1hLlxuICAgKi9cbiAgcmVhZG9ubHkgcXVldWU6IElRdWV1ZTtcblxuICAvKipcbiAgICogVGhlIENvZGVBcnRpZmFjdCByZXBvc2l0b3J5IHRoYXQgaXMgaW50ZXJuYWxseSB1c2VkIGJ5IENvbnN0cnVjdEh1Yi4gVGhpc1xuICAgKiBtYXkgYmUgdW5kZWZpbmVkIGlmIG5vIENvZGVBcnRpZmFjdCByZXBvc2l0b3J5IGlzIGludGVybmFsbHkgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9zaXRvcnk/OiBJUmVwb3NpdG9yeTtcbn1cblxuLyoqXG4gKiBUaGUgcmVzdWx0IG9mIGJpbmRpbmcgYSBwYWNrYWdlIHNvdXJjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYWNrYWdlU291cmNlQmluZFJlc3VsdCB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYm91bmQgcGFja2FnZSBzb3VyY2UuIEl0IHdpbGwgYmUgdXNlZCB0byByZW5kZXIgb3BlcmF0b3JcbiAgICogZGFzaGJvYXJkcyAoc28gaXQgc2hvdWxkIGJlIGEgbWVhbmluZ2Z1bCBpZGVudGlmaWNhdGlvbiBvZiB0aGUgc291cmNlKS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgbGlzdCBvZiBsaW5rZWQgcmVzb3VyY2VzIHRvIGJlIGRpc3BsYXllZCBvbiB0aGUgbW9uaXRvcmluZ1xuICAgKiBkYXNoYm9hcmQuXG4gICAqL1xuICByZWFkb25seSBsaW5rcz86IExpbmtlZFJlc291cmNlW107XG5cbiAgLyoqXG4gICAqIFdpZGdldHMgdG8gYWRkIHRvIHRoZSBvcGVyYXRvciBkYXNoYmFvcmQgZm9yIG1vbml0b3JpbmcgdGhlIGhlYWx0aCBvZiB0aGVcbiAgICogYm91bmQgcGFja2FnZSBzb3VyY2UuIEl0IGlzIG5vdCBuZWNlc3NhcnkgZm9yIHRoaXMgbGlzdCBvZiB3aWRnZXRzIHRvXG4gICAqIGluY2x1ZGUgYSB0aXRsZSBzZWN0aW9uICh0aGlzIHdpbGwgYmUgYWRkZWQgYXV0b21hdGljYWxseSkuIE9uZSBhcnJheVxuICAgKiByZXByZXNlbnRzIGEgcm93IG9mIHdpZGdldHMgb24gdGhlIGRhc2hib2FyZC5cbiAgICovXG4gIHJlYWRvbmx5IGRhc2hib2FyZFdpZGdldHM6IElXaWRnZXRbXVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpbmtlZFJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBsaW5rZWQgcmVzb3VyY2UuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBVUkwgd2hlcmUgdGhlIGxpbmtlZCByZXNvdXJjZSBjYW4gYmUgZm91bmQuXG4gICAqL1xuICByZWFkb25seSB1cmw6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGlzIHRoZSBwcmltYXJ5IHJlc291cmNlIG9mIHRoZSBib3VuZCBwYWNrYWdlIHNvdXJjZS4gSXQgaXMgbm90XG4gICAqIG5lY2Vzc2FyeSB0aGF0IHRoZXJlIGlzIG9uZSwgYW5kIHRoZXJlIGNvdWxkIGJlIG11bHRpcGxlIHByaW1hcnkgcmVzb3VyY2VzLlxuICAgKiBUaGUgYnV0dG9ucyBmb3IgdGhvc2Ugd2lsbCBiZSByZW5kZXJlZCB3aXRoIGEgZGlmZmVyZW50IHN0eWxlIG9uIHRoZVxuICAgKiBkYXNoYm9hcmQuXG4gICAqL1xuICByZWFkb25seSBwcmltYXJ5PzogYm9vbGVhbjtcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcGFja2FnZS1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElXaWRnZXQgfSBmcm9tICdAYXdzLWNkay9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBJR3JhbnRhYmxlIH0gZnJvbSAnQGF3cy1jZGsvYXdzLWlhbSc7XG5pbXBvcnQgeyBJUXVldWUgfSBmcm9tICdAYXdzLWNkay9hd3Mtc3FzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuaW1wb3J0IHsgSURlbnlMaXN0IH0gZnJvbSAnLi9iYWNrZW5kL2RlbnktbGlzdC9hcGknO1xuaW1wb3J0IHsgSUxpY2Vuc2VMaXN0IH0gZnJvbSAnLi9iYWNrZW5kL2xpY2Vuc2UtbGlzdC9hcGknO1xuaW1wb3J0IHsgSVJlcG9zaXRvcnkgfSBmcm9tICcuL2NvZGVhcnRpZmFjdC9hcGknO1xuaW1wb3J0IHsgSU1vbml0b3JpbmcgfSBmcm9tICcuL21vbml0b3JpbmcvYXBpJztcbmltcG9ydCB7IElPdmVydmlld0Rhc2hib2FyZCB9IGZyb20gJy4vb3ZlcnZpZXctZGFzaGJvYXJkL2FwaSc7XG5cbi8qKlxuICogQSBwYWNrYWdlIHNvdXJjZSBmb3IgQ29uc3RydWN0SHViLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElQYWNrYWdlU291cmNlIHtcbiAgLyoqXG4gICAqIEJpbmRzIHRoZSBwYWNrYWdlIHNvdXJjZSB0byBhIHNjb3BlIGFuZCB0YXJnZXQgcXVldWUuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSB0aGUgY29uc3RydWN0IHNjb3BlIGluIHdoaWNoIHRoZSBiaW5kaW5nIGhhcHBlbnMuXG4gICAqIEBwYXJhbSBvcHRzICBvcHRpb25zIGZvciBiaW5kaW5nIHRoZSBwYWNrYWdlIHNvdXJjZS5cbiAgICpcbiAgICogQHJldHVybnMgYSBkZXBlbmRhYmxlIHJlc291cmNlIHRoYXQgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGEgQ2xvdWRGb3JtYXRpb25cbiAgICogICAgICAgICAgZGVwZW5kZW5jeSBvbiB0aGUgYm91bmQgc291cmNlLlxuICAgKi9cbiAgYmluZChzY29wZTogQ29uc3RydWN0LCBvcHRzOiBQYWNrYWdlU291cmNlQmluZE9wdGlvbnMpOiBQYWNrYWdlU291cmNlQmluZFJlc3VsdDtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBiaW5kaW5nIGEgcGFja2FnZSBzb3VyY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFja2FnZVNvdXJjZUJpbmRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBiYXNlIFVSTCBvZiB0aGUgYm91bmQgQ29uc3RydWN0SHViIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJlZCBgRGVueUxpc3RgIGZvciB0aGUgYm91bmQgQ29uc3RydWN0IEh1YiBpbnN0YW5jZSwgaWYgYW55LlxuICAgKi9cbiAgcmVhZG9ubHkgZGVueUxpc3Q/OiBJRGVueUxpc3Q7XG5cbiAgLyoqXG4gICAqIFRoZSBgSUdyYW50YWJsZWAgdGhhdCB3aWxsIHByb2Nlc3MgZG93bnN0cmVhbSBtZXNzYWdlcyBmcm9tIHRoZSBib3VuZFxuICAgKiBwYWNrYWdlIHNvdXJjZS4gSXQgbmVlZHMgdG8gYmUgZ3JhbnRlZCBwZXJtaXNzaW9ucyB0byByZWFkIHBhY2thZ2UgZGF0YVxuICAgKiBmcm9tIHRoZSBVUkxzIHNlbnQgdG8gdGhlIGBxdWV1ZWAuXG4gICAqL1xuICByZWFkb25seSBpbmdlc3Rpb246IElHcmFudGFibGU7XG5cbiAgLyoqXG4gICAqIFRoZSBsaWNlbnNlIGxpc3QgYXBwbGllZCBieSB0aGUgYm91bmQgQ29uc3RydWN0IEh1YiBpbnN0YW5jZS4gVGhpcyBjYW4gYmVcbiAgICogdXNlZCB0byBmaWx0ZXIgZG93biB0aGUgcGFja2FnZSBvbmx5IHRvIHRob3NlIHdoaWNoIHdpbGwgcGFzcyB0aGUgbGljZW5zZVxuICAgKiBmaWx0ZXIuXG4gICAqL1xuICByZWFkb25seSBsaWNlbnNlTGlzdDogSUxpY2Vuc2VMaXN0O1xuXG4gIC8qKlxuICAgKiBUaGUgbW9uaXRvcmluZyBpbnN0YW5jZSB0byB1c2UgZm9yIHJlZ2lzdGVyaW5nIGFsYXJtcywgZXRjLlxuICAgKi9cbiAgcmVhZG9ubHkgbW9uaXRvcmluZzogSU1vbml0b3Jpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvdmVydmlldyBkYXNoYm9hcmQgdG8gYWRkIHdpZGdldHMgdG8uXG4gICAqL1xuICByZWFkb25seSBvdmVydmlld0Rhc2hib2FyZDogSU92ZXJ2aWV3RGFzaGJvYXJkO1xuXG4gIC8qKlxuICAgKiBUaGUgU1FTIHF1ZXVlIHRvIHdoaWNoIG1lc3NhZ2VzIHNob3VsZCBiZSBzZW50LiBTZW50IG9iamVjdHMgc2hvdWxkIG1hdGNoXG4gICAqIHRoZSBwYWNrYWdlIGRpc2NvdmVyeSBzY2hlbWEuXG4gICAqL1xuICByZWFkb25seSBxdWV1ZTogSVF1ZXVlO1xuXG4gIC8qKlxuICAgKiBUaGUgQ29kZUFydGlmYWN0IHJlcG9zaXRvcnkgdGhhdCBpcyBpbnRlcm5hbGx5IHVzZWQgYnkgQ29uc3RydWN0SHViLiBUaGlzXG4gICAqIG1heSBiZSB1bmRlZmluZWQgaWYgbm8gQ29kZUFydGlmYWN0IHJlcG9zaXRvcnkgaXMgaW50ZXJuYWxseSB1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3NpdG9yeT86IElSZXBvc2l0b3J5O1xufVxuXG4vKipcbiAqIFRoZSByZXN1bHQgb2YgYmluZGluZyBhIHBhY2thZ2Ugc291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhY2thZ2VTb3VyY2VCaW5kUmVzdWx0IHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBib3VuZCBwYWNrYWdlIHNvdXJjZS4gSXQgd2lsbCBiZSB1c2VkIHRvIHJlbmRlciBvcGVyYXRvclxuICAgKiBkYXNoYm9hcmRzIChzbyBpdCBzaG91bGQgYmUgYSBtZWFuaW5nZnVsIGlkZW50aWZpY2F0aW9uIG9mIHRoZSBzb3VyY2UpLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBsaXN0IG9mIGxpbmtlZCByZXNvdXJjZXMgdG8gYmUgZGlzcGxheWVkIG9uIHRoZSBtb25pdG9yaW5nXG4gICAqIGRhc2hib2FyZC5cbiAgICovXG4gIHJlYWRvbmx5IGxpbmtzPzogTGlua2VkUmVzb3VyY2VbXTtcblxuICAvKipcbiAgICogV2lkZ2V0cyB0byBhZGQgdG8gdGhlIG9wZXJhdG9yIGRhc2hiYW9yZCBmb3IgbW9uaXRvcmluZyB0aGUgaGVhbHRoIG9mIHRoZVxuICAgKiBib3VuZCBwYWNrYWdlIHNvdXJjZS4gSXQgaXMgbm90IG5lY2Vzc2FyeSBmb3IgdGhpcyBsaXN0IG9mIHdpZGdldHMgdG9cbiAgICogaW5jbHVkZSBhIHRpdGxlIHNlY3Rpb24gKHRoaXMgd2lsbCBiZSBhZGRlZCBhdXRvbWF0aWNhbGx5KS4gT25lIGFycmF5XG4gICAqIHJlcHJlc2VudHMgYSByb3cgb2Ygd2lkZ2V0cyBvbiB0aGUgZGFzaGJvYXJkLlxuICAgKi9cbiAgcmVhZG9ubHkgZGFzaGJvYXJkV2lkZ2V0czogSVdpZGdldFtdW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlua2VkUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGxpbmtlZCByZXNvdXJjZS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFVSTCB3aGVyZSB0aGUgbGlua2VkIHJlc291cmNlIGNhbiBiZSBmb3VuZC5cbiAgICovXG4gIHJlYWRvbmx5IHVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgaXMgdGhlIHByaW1hcnkgcmVzb3VyY2Ugb2YgdGhlIGJvdW5kIHBhY2thZ2Ugc291cmNlLiBJdCBpcyBub3RcbiAgICogbmVjZXNzYXJ5IHRoYXQgdGhlcmUgaXMgb25lLCBhbmQgdGhlcmUgY291bGQgYmUgbXVsdGlwbGUgcHJpbWFyeSByZXNvdXJjZXMuXG4gICAqIFRoZSBidXR0b25zIGZvciB0aG9zZSB3aWxsIGJlIHJlbmRlcmVkIHdpdGggYSBkaWZmZXJlbnQgc3R5bGUgb24gdGhlXG4gICAqIGRhc2hib2FyZC5cbiAgICovXG4gIHJlYWRvbmx5IHByaW1hcnk/OiBib29sZWFuO1xufVxuIl19
@@ -20,7 +20,7 @@ export interface CodeArtifactProps {
20
20
  export declare class CodeArtifact implements IPackageSource {
21
21
  private readonly props;
22
22
  constructor(props: CodeArtifactProps);
23
- bind(scope: Construct, { denyList, ingestion, licenseList, monitoring, queue }: PackageSourceBindOptions): PackageSourceBindResult;
23
+ bind(scope: Construct, { denyList, ingestion, licenseList, monitoring, overviewDashboard, queue, }: PackageSourceBindOptions): PackageSourceBindResult;
24
24
  /**
25
25
  * The count of package versions that were ignored due to being in the deny list.
26
26
  */
@@ -24,7 +24,7 @@ class CodeArtifact {
24
24
  constructor(props) {
25
25
  this.props = props;
26
26
  }
27
- bind(scope, { denyList, ingestion, licenseList, monitoring, queue }) {
27
+ bind(scope, { denyList, ingestion, licenseList, monitoring, overviewDashboard, queue, }) {
28
28
  const idPrefix = this.props.repository.node.path;
29
29
  const repositoryId = `${this.props.repository.attrDomainOwner}:${this.props.repository.attrDomainName}/${this.props.repository.attrName}`;
30
30
  const storageFactory = storage_1.S3StorageFactory.getOrCreate(scope);
@@ -120,6 +120,8 @@ class CodeArtifact {
120
120
  });
121
121
  monitoring.addLowSeverityAlarm(`CodeArtifact/${repositoryId} DLQ Not Empty`, dlqNotEmptyAlarm);
122
122
  rule.node.addDependency(failureAlarm, dlqNotEmptyAlarm);
123
+ overviewDashboard.addDLQMetricToDashboard(`CodeArtifact/${repositoryId} DLQ`, dlq);
124
+ overviewDashboard.addConcurrentExecutionMetricToDashboard(forwarder, `${idPrefix}/ForwarderLambda`);
123
125
  return {
124
126
  name: `CodeArtifact: ${repositoryId}`,
125
127
  links: [{
@@ -260,5 +262,5 @@ class CodeArtifact {
260
262
  }
261
263
  exports.CodeArtifact = CodeArtifact;
262
264
  _a = JSII_RTTI_SYMBOL_1;
263
- CodeArtifact[_a] = { fqn: "construct-hub.sources.CodeArtifact", version: "0.3.313" };
264
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1hcnRpZmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYWNrYWdlLXNvdXJjZXMvY29kZS1hcnRpZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDREQUE4STtBQUU5SSxvREFBMkM7QUFDM0Msb0VBQTZEO0FBQzdELDhDQUEyRDtBQUMzRCxvREFBOEM7QUFDOUMsNENBQTZEO0FBQzdELDhDQUEwRDtBQUMxRCx3Q0FBMkU7QUFDM0UsNENBQWtIO0FBQ2xILGtEQUE2QztBQUU3QywyQ0FBaUQ7QUFDakQsb0ZBQStFO0FBQy9FLG9GQUFpSztBQWNqSzs7O0dBR0c7QUFDSCxNQUFhLFlBQVk7SUFDdkIsWUFBb0MsS0FBd0I7UUFBeEIsVUFBSyxHQUFMLEtBQUssQ0FBbUI7SUFDNUQsQ0FBQztJQUVNLElBQUksQ0FBQyxLQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBNEI7UUFDN0csTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNqRCxNQUFNLFlBQVksR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFMUksTUFBTSxjQUFjLEdBQUcsMEJBQWdCLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLGNBQWMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEdBQUcsUUFBUSxnQkFBZ0IsRUFBRTtZQUMvRixpQkFBaUIsRUFBRSwwQkFBaUIsQ0FBQyxTQUFTO1lBQzlDLFVB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VSxDQUFDLGVBQWUsbUNBQUksVUFBRyxDQUFDLFVBQVU7Z0JBQ2pGLENBQUMsK0NBQXFCLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxjQUFjO2dCQUM3RCxDQUFDLG1EQUF5QixDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUTthQUM1RDtZQUNELFVBQVUsb0NBQTBCO1lBQ3BDLFNBQVMsRUFBRSwyQ0FBaUI7U0FDN0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0kseUJBQXlCLENBQUMsSUFBb0I7O1FBQ25ELE9BQU8sSUFBSSx1QkFBTSxDQUFDO1lBQ2hCLE1BQU0sRUFBRSxlQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUMzQixTQUFTLEVBQUUsMEJBQVMsQ0FBQyxHQUFHO1lBQ3hCLEdBQUcsSUFBSTtZQUNQLGFBQWEsRUFBRTtnQkFDYixDQUFDLGdEQUFzQixDQUFDLFFBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsZUFBZSxtQ0FBSSxVQUFHLENBQUMsVUFBVTtnQkFDakYsQ0FBQywrQ0FBcUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLGNBQWM7Z0JBQzdELENBQUMsbURBQXlCLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRO2FBQzVEO1lBQ0QsVUFBVSxvREFBbUM7WUFDN0MsU0FBUyxFQUFFLDJDQUFpQjtTQUM3QixDQUFDLENBQUM7SUFDTCxDQUFDOztBQXJQSCxvQ0FzUEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wYXJpc29uT3BlcmF0b3IsIEdyYXBoV2lkZ2V0LCBNYXRoRXhwcmVzc2lvbiwgTWV0cmljLCBNZXRyaWNPcHRpb25zLCBTdGF0aXN0aWMsIFRyZWF0TWlzc2luZ0RhdGEgfSBmcm9tICdAYXdzLWNkay9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBDZm5SZXBvc2l0b3J5IH0gZnJvbSAnQGF3cy1jZGsvYXdzLWNvZGVhcnRpZmFjdCc7XG5pbXBvcnQgeyBSdWxlIH0gZnJvbSAnQGF3cy1jZGsvYXdzLWV2ZW50cyc7XG5pbXBvcnQgeyBMYW1iZGFGdW5jdGlvbiB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1ldmVudHMtdGFyZ2V0cyc7XG5pbXBvcnQgeyBFZmZlY3QsIFBvbGljeVN0YXRlbWVudCB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1pYW0nO1xuaW1wb3J0IHsgVHJhY2luZyB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgQmxvY2tQdWJsaWNBY2Nlc3MsIElCdWNrZXQgfSBmcm9tICdAYXdzLWNkay9hd3MtczMnO1xuaW1wb3J0IHsgUXVldWUsIFF1ZXVlRW5jcnlwdGlvbiB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1zcXMnO1xuaW1wb3J0IHsgQXJuRm9ybWF0LCBBd3MsIENvbnN0cnVjdCwgRHVyYXRpb24sIFN0YWNrIH0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgeyBjb2RlQXJ0aWZhY3RSZXBvc2l0b3J5VXJsLCBsYW1iZGFGdW5jdGlvblVybCwgbGFtYmRhU2VhcmNoTG9nR3JvdXBVcmwsIHNxc1F1ZXVlVXJsIH0gZnJvbSAnLi4vZGVlcC1saW5rJztcbmltcG9ydCB7IGZpbGxNZXRyaWMgfSBmcm9tICcuLi9tZXRyaWMtdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBJUGFja2FnZVNvdXJjZSwgUGFja2FnZVNvdXJjZUJpbmRPcHRpb25zLCBQYWNrYWdlU291cmNlQmluZFJlc3VsdCB9IGZyb20gJy4uL3BhY2thZ2Utc291cmNlJztcbmltcG9ydCB7IFMzU3RvcmFnZUZhY3RvcnkgfSBmcm9tICcuLi9zMy9zdG9yYWdlJztcbmltcG9ydCB7IENvZGVBcnRpZmFjdEZvcndhcmRlciB9IGZyb20gJy4vY29kZWFydGlmYWN0L2NvZGUtYXJ0aWZhY3QtZm9yd2FyZGVyJztcbmltcG9ydCB7IE1FVFJJQ1NfTkFNRVNQQUNFLCBNZXRyaWNOYW1lLCBET01BSU5fTkFNRV9ESU1FTlNJT04sIERPTUFJTl9PV05FUl9ESU1FTlNJT04sIFJFUE9TSVRPUllfTkFNRV9ESU1FTlNJT04gfSBmcm9tICcuL2NvZGVhcnRpZmFjdC9jb25zdGFudHMubGFtYmRhLXNoYXJlZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZUFydGlmYWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIENvZGVBcnRpZmFjdCByZXBvc2l0b3J5IHdoZXJlIHBhY2thZ2VzIGFyZSBvYnRhaW5lZCBmcm9tLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3NpdG9yeTogQ2ZuUmVwb3NpdG9yeTtcblxuICAvKipcbiAgICogVGhlIFMzIGJ1Y2tldCB3aGVyZSBwYWNrYWdlcyB3aWxsIGJlIHN0YWdlZC5cbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldD86IElCdWNrZXQ7XG59XG5cbi8qKlxuICogQSBwYWNrYWdlIHNvdXJjZSB0aGF0IG9idGFpbnMgcGFja2FnZSBkYXRhIGZyb20gYW4gbnBtIENvZGVBcnRpZmFjdFxuICogcmVwb3NpdG9yeS5cbiAqL1xuZXhwb3J0IGNsYXNzIENvZGVBcnRpZmFjdCBpbXBsZW1lbnRzIElQYWNrYWdlU291cmNlIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IENvZGVBcnRpZmFjdFByb3BzKSB7XG4gIH1cblxuICBwdWJsaWMgYmluZChzY29wZTogQ29uc3RydWN0LCB7IGRlbnlMaXN0LCBpbmdlc3Rpb24sIGxpY2Vuc2VMaXN0LCBtb25pdG9yaW5nLCBxdWV1ZSB9OiBQYWNrYWdlU291cmNlQmluZE9wdGlvbnMpOiBQYWNrYWdlU291cmNlQmluZFJlc3VsdCB7XG4gICAgY29uc3QgaWRQcmVmaXggPSB0aGlzLnByb3BzLnJlcG9zaXRvcnkubm9kZS5wYXRoO1xuICAgIGNvbnN0IHJlcG9zaXRvcnlJZCA9IGAke3RoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyRG9tYWluT3duZXJ9OiR7dGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJEb21haW5OYW1lfS8ke3RoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyTmFtZX1gO1xuXG4gICAgY29uc3Qgc3RvcmFnZUZhY3RvcnkgPSBTM1N0b3JhZ2VGYWN0b3J5LmdldE9yQ3JlYXRlKHNjb3BlKTtcbiAgICBjb25zdCBidWNrZXQgPSB0aGlzLnByb3BzLmJ1Y2tldCB8fCBzdG9yYWdlRmFjdG9yeS5uZXdCdWNrZXQoc2NvcGUsIGAke2lkUHJlZml4fS9TdGFnaW5nQnVja2V0YCwge1xuICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IEJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FMTCxcbiAgICAgIGVuZm9yY2VTU0w6IHRydWUsXG4gICAgICBsaWZlY3ljbGVSdWxlczogW3sgZXhwaXJhdGlvbjogRHVyYXRpb24uZGF5cygzMCkgfV0sXG4gICAgfSk7XG4gICAgYnVja2V0LmdyYW50UmVhZChpbmdlc3Rpb24pO1xuXG4gICAgY29uc3QgZGxxID0gbmV3IFF1ZXVlKHNjb3BlLCBgJHtpZFByZWZpeH0vRExRYCwge1xuICAgICAgZW5jcnlwdGlvbjogUXVldWVFbmNyeXB0aW9uLktNU19NQU5BR0VELFxuICAgICAgcmV0ZW50aW9uUGVyaW9kOiBEdXJhdGlvbi5kYXlzKDE0KSxcbiAgICAgIHZpc2liaWxpdHlUaW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDE1KSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGZvcndhcmRlciA9IG5ldyBDb2RlQXJ0aWZhY3RGb3J3YXJkZXIoc2NvcGUsIGAke2lkUHJlZml4fS9Gb3J3YXJkZXJgLCB7XG4gICAgICBkZWFkTGV0dGVyUXVldWU6IGRscSxcbiAgICAgIGRlc2NyaXB0aW9uOiBgWyR7c2NvcGUubm9kZS5wYXRofS9Db2RlQXJ0aWZhY3QvJHtyZXBvc2l0b3J5SWR9XSBIYW5kbGUgQ29kZUFydGlmYWN0IEV2ZW50QnJpZGdlIGV2ZW50c2AsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBBV1NfRU1GX0VOVklST05NRU5UOiAnTG9jYWwnLFxuICAgICAgICBCVUNLRVRfTkFNRTogYnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICAgIFFVRVVFX1VSTDogcXVldWUucXVldWVVcmwsXG4gICAgICB9LFxuICAgICAgbWVtb3J5U2l6ZTogMTAyNCxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgICAgdHJhY2luZzogVHJhY2luZy5BQ1RJVkUsXG4gICAgfSk7XG4gICAgYnVja2V0LmdyYW50UmVhZFdyaXRlKGZvcndhcmRlcik7XG4gICAgZGVueUxpc3Q/LmdyYW50UmVhZChmb3J3YXJkZXIpO1xuICAgIGxpY2Vuc2VMaXN0LmdyYW50UmVhZChmb3J3YXJkZXIpO1xuICAgIHF1ZXVlLmdyYW50U2VuZE1lc3NhZ2VzKGZvcndhcmRlcik7XG4gICAgZm9yd2FyZGVyLmFkZFRvUm9sZVBvbGljeShuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydjb2RlYXJ0aWZhY3Q6R2V0UGFja2FnZVZlcnNpb25Bc3NldCddLFxuICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgIFN0YWNrLm9mKHNjb3BlKS5mb3JtYXRBcm4oe1xuICAgICAgICAgIHNlcnZpY2U6ICdjb2RlYXJ0aWZhY3QnLFxuICAgICAgICAgIHJlc291cmNlOiAncGFja2FnZScsXG4gICAgICAgICAgYXJuRm9ybWF0OiBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSxcbiAgICAgICAgICByZXNvdXJjZU5hbWU6IFtcbiAgICAgICAgICAgIHRoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyRG9tYWluTmFtZSxcbiAgICAgICAgICAgIHRoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyTmFtZSxcbiAgICAgICAgICAgICducG0nLCAvLyBwYWNrYWdlIGZvcm1hdFxuICAgICAgICAgICAgJyonLCAvLyBuYW1lc3BhY2UvcGFja2FnZS1uYW1lXG4gICAgICAgICAgXS5qb2luKCcvJyksXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KSk7XG5cbiAgICBjb25zdCBydWxlID0gbmV3IFJ1bGUoc2NvcGUsIGAke2lkUHJlZml4fS9FdmVudEJyaWRnZWAsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgJHtzY29wZS5ub2RlLnBhdGh9L0NvZGVBcnRpZmFjdC8ke3JlcG9zaXRvcnlJZH0vRXZlbnRCcmlkZ2VgLFxuICAgICAgZXZlbnRQYXR0ZXJuOiB7XG4gICAgICAgIHNvdXJjZTogWydhd3MuY29kZWFydGlmYWN0J10sXG4gICAgICAgIGRldGFpbFR5cGU6IFsnQ29kZUFydGlmYWN0IFBhY2thZ2UgVmVyc2lvbiBTdGF0ZSBDaGFuZ2UnXSxcbiAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgZG9tYWluT3duZXI6IFt0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ckRvbWFpbk93bmVyXSxcbiAgICAgICAgICBkb21haW5OYW1lOiBbdGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJEb21haW5OYW1lXSxcbiAgICAgICAgICByZXBvc2l0b3J5TmFtZTogW3RoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyTmFtZV0sXG4gICAgICAgICAgcGFja2FnZUZvcm1hdDogWyducG0nXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB0YXJnZXRzOiBbbmV3IExhbWJkYUZ1bmN0aW9uKGZvcndhcmRlcildLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZmFpbHVyZUFsYXJtID0gZm9yd2FyZGVyLm1ldHJpY0Vycm9ycygpLmNyZWF0ZUFsYXJtKHNjb3BlLCBgJHtpZFByZWZpeH0vRm9yd2FyZGVyL0ZhaWx1cmVzYCwge1xuICAgICAgYWxhcm1OYW1lOiBgJHtzY29wZS5ub2RlLnBhdGh9L0NvZGVBcnRpZmFjdC8ke3JlcG9zaXRvcnlJZH0vRm9yd2FyZGVyYCxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IFtcbiAgICAgICAgYFRoZSBDb2RlQXJ0aWZhY3QgZm93YXJkZXIgZm9yICR7cmVwb3NpdG9yeUlkfSBpcyBmYWlsaW5nYCxcbiAgICAgICAgJycsXG4gICAgICAgIGBMaW5rIHRvIHRoZSBsYW1iZGEgZnVuY3Rpb246ICR7bGFtYmRhRnVuY3Rpb25VcmwoZm9yd2FyZGVyKX1gLFxuICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMyxcbiAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IFRyZWF0TWlzc2luZ0RhdGEuTUlTU0lORyxcbiAgICB9KTtcbiAgICBtb25pdG9yaW5nLmFkZEhpZ2hTZXZlcml0eUFsYXJtKGBDb2RlQXJ0aWZhY3Q6JHt0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ck5hbWV9IEZhaWx1cmVzYCwgZmFpbHVyZUFsYXJtKTtcblxuICAgIGNvbnN0IGRscU5vdEVtcHR5QWxhcm0gPSBuZXcgTWF0aEV4cHJlc3Npb24oe1xuICAgICAgZXhwcmVzc2lvbjogJ21WaXNpYmxlICsgbUhpZGRlbicsXG4gICAgICB1c2luZ01ldHJpY3M6IHtcbiAgICAgICAgbVZpc2libGU6IGRscS5tZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNWaXNpYmxlKHsgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDEpIH0pLFxuICAgICAgICBtSGlkZGVuOiBkbHEubWV0cmljQXBwcm94aW1hdGVOdW1iZXJPZk1lc3NhZ2VzTm90VmlzaWJsZSh7IHBlcmlvZDogRHVyYXRpb24ubWludXRlcygxKSB9KSxcbiAgICAgIH0sXG4gICAgfSkuY3JlYXRlQWxhcm0oc2NvcGUsIGAke2lkUHJlZml4fS9Gb3J3YXJkZXIvRExRTm90RW1wdHlgLCB7XG4gICAgICBhbGFybU5hbWU6IGAke3Njb3BlLm5vZGUucGF0aH0vQ29kZUFydGlmYWN0LyR7cmVwb3NpdG9yeUlkfS9ETFFOb3RFbXB0eWAsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBbXG4gICAgICAgIGBUaGUgQ29kZUFydGlmYWN0IGZvd2FyZGVyIGZvciAke3JlcG9zaXRvcnlJZH0gaXMgZmFpbGluZ2AsXG4gICAgICAgICcnLFxuICAgICAgICBgTGluayB0byB0aGUgbGFtYmRhIGZ1bmN0aW9uOiAke2xhbWJkYUZ1bmN0aW9uVXJsKGZvcndhcmRlcil9YCxcbiAgICAgICAgYExpbmsgdG8gdGhlIGRlYWQgbGV0dGVyIHF1ZXVlOiAke3Nxc1F1ZXVlVXJsKGRscSl9YCxcbiAgICAgIF0uam9pbignL24nKSxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IFRyZWF0TWlzc2luZ0RhdGEuTk9UX0JSRUFDSElORyxcbiAgICB9KTtcbiAgICBtb25pdG9yaW5nLmFkZExvd1NldmVyaXR5QWxhcm0oYENvZGVBcnRpZmFjdC8ke3JlcG9zaXRvcnlJZH0gRExRIE5vdCBFbXB0eWAsIGRscU5vdEVtcHR5QWxhcm0pO1xuXG4gICAgcnVsZS5ub2RlLmFkZERlcGVuZGVuY3koZmFpbHVyZUFsYXJtLCBkbHFOb3RFbXB0eUFsYXJtKTtcblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiBgQ29kZUFydGlmYWN0OiAke3JlcG9zaXRvcnlJZH1gLFxuICAgICAgbGlua3M6IFt7XG4gICAgICAgIG5hbWU6ICdDb2RlQXJ0aWZhY3QnLFxuICAgICAgICB1cmw6IGNvZGVBcnRpZmFjdFJlcG9zaXRvcnlVcmwodGhpcy5wcm9wcy5yZXBvc2l0b3J5KSxcbiAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgIH0sIHtcbiAgICAgICAgbmFtZTogJ0ZvcndhcmRlciBGdW5jdGlvbicsXG4gICAgICAgIHVybDogbGFtYmRhRnVuY3Rpb25VcmwoZm9yd2FyZGVyKSxcbiAgICAgIH0sIHtcbiAgICAgICAgbmFtZTogJ1NlYXJjaCBMb2cgZ3JvdXAnLFxuICAgICAgICB1cmw6IGxhbWJkYVNlYXJjaExvZ0dyb3VwVXJsKGZvcndhcmRlciksXG4gICAgICB9LCB7XG4gICAgICAgIG5hbWU6ICdETFEnLFxuICAgICAgICB1cmw6IHNxc1F1ZXVlVXJsKGRscSksXG4gICAgICB9XSxcbiAgICAgIGRhc2hib2FyZFdpZGdldHM6IFtcbiAgICAgICAgW1xuICAgICAgICAgIG5ldyBHcmFwaFdpZGdldCh7XG4gICAgICAgICAgICBoZWlnaHQ6IDYsXG4gICAgICAgICAgICB3aWR0aDogMTIsXG4gICAgICAgICAgICB0aXRsZTogJ0Z1bmN0aW9uIEhlYWx0aCcsXG4gICAgICAgICAgICBsZWZ0OiBbXG4gICAgICAgICAgICAgIGZpbGxNZXRyaWMoZm9yd2FyZGVyLm1ldHJpY0ludm9jYXRpb25zKHsgbGFiZWw6ICdJbnZvY2F0aW9ucycgfSkpLFxuICAgICAgICAgICAgICBmaWxsTWV0cmljKGZvcndhcmRlci5tZXRyaWNFcnJvcnMoeyBsYWJlbDogJ0Vycm9ycycgfSkpLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGxlZnRZQXhpczogeyBtaW46IDAgfSxcbiAgICAgICAgICAgIHJpZ2h0OiBbXG4gICAgICAgICAgICAgIGZvcndhcmRlci5tZXRyaWNEdXJhdGlvbih7IGxhYmVsOiAnRHVyYXRpb24nIH0pLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHJpZ2h0WUF4aXM6IHsgbWluOiAwIH0sXG4gICAgICAgICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMTUpLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIG5ldyBHcmFwaFdpZGdldCh7XG4gICAgICAgICAgICBoZWlnaHQ6IDYsXG4gICAgICAgICAgICB3aWR0aDogMTIsXG4gICAgICAgICAgICB0aXRsZTogJ0RlYWQgTGV0dGVyIFF1ZXVlJyxcbiAgICAgICAgICAgIGxlZnQ6IFtcbiAgICAgICAgICAgICAgZGxxLm1ldHJpY0FwcHJveGltYXRlTnVtYmVyT2ZNZXNzYWdlc1Zpc2libGUoeyBsYWJlbDogJ1Zpc2libGUgTWVzc2FnZXMnLCBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMSkgfSksXG4gICAgICAgICAgICAgIGRscS5tZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNOb3RWaXNpYmxlKHsgbGFiZWw6ICdIaWRkZW4gTWVzc2FnZXMnLCBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMSkgfSksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgbGVmdFlBeGlzOiB7IG1pbjogMCB9LFxuICAgICAgICAgICAgcmlnaHQ6IFtcbiAgICAgICAgICAgICAgZGxxLm1ldHJpY0FwcHJveGltYXRlQWdlT2ZPbGRlc3RNZXNzYWdlKHsgbGFiZWw6ICdPbGRlc3QgTWVzc2FnZSBBZ2UnLCBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMSkgfSksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgcmlnaHRZQXhpczogeyBtaW46IDAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgICAgW1xuICAgICAgICAgIG5ldyBHcmFwaFdpZGdldCh7XG4gICAgICAgICAgICBoZWlnaHQ6IDYsXG4gICAgICAgICAgICB3aWR0aDogMTIsXG4gICAgICAgICAgICB0aXRsZTogJ1F1YWxpdHkgTWV0cmljcycsXG4gICAgICAgICAgICBsZWZ0OiBbXG4gICAgICAgICAgICAgIGZpbGxNZXRyaWModGhpcy5tZXRyaWNOb3RKc2lpRW5hYmxlZENvdW50KHsgbGFiZWw6ICdOb3QgYSBqc2lpIHBhY2thZ2UnIH0pLCAwKSxcbiAgICAgICAgICAgICAgZmlsbE1ldHJpYyh0aGlzLm1ldHJpY0luZWxpZ2libGVMaWNlbnNlKHsgbGFiZWw6ICdJbmVsaWdpYmxlIExpY2Vuc2UnIH0pLCAwKSxcbiAgICAgICAgICAgICAgZmlsbE1ldHJpYyh0aGlzLm1ldHJpY0RlbnlMaXN0ZWRDb3VudCh7IGxhYmVsOiAnRGVueSBMaXN0ZWQnIH0pLCAwKSxcbiAgICAgICAgICAgICAgZmlsbE1ldHJpYyh0aGlzLm1ldHJpY0RlbGV0ZWRDb3VudCh7IGxhYmVsOiAnRGVsZXRpb24gRXZlbnRzJyB9KSwgMCksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgbGVmdFlBeGlzOiB7IG1pbjogMCB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjb3VudCBvZiBwYWNrYWdlIHZlcnNpb25zIHRoYXQgd2VyZSBpZ25vcmVkIGR1ZSB0byBiZWluZyBpbiB0aGUgZGVueSBsaXN0LlxuICAgKi9cbiAgcHVibGljIG1ldHJpY0RlbnlMaXN0ZWRDb3VudChvcHRzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBNZXRyaWMoe1xuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgc3RhdGlzdGljOiBTdGF0aXN0aWMuU1VNLFxuICAgICAgLi4ub3B0cyxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgW0RPTUFJTl9PV05FUl9ESU1FTlNJT05dOiB0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ckRvbWFpbk93bmVyLFxuICAgICAgICBbRE9NQUlOX05BTUVfRElNRU5TSU9OXTogdGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJEb21haW5OYW1lLFxuICAgICAgICBbUkVQT1NJVE9SWV9OQU1FX0RJTUVOU0lPTl06IHRoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyTmFtZSxcbiAgICAgIH0sXG4gICAgICBtZXRyaWNOYW1lOiBNZXRyaWNOYW1lLkRFTllfTElTVEVEX0NPVU5ULFxuICAgICAgbmFtZXNwYWNlOiBNRVRSSUNTX05BTUVTUEFDRSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHBhY2thZ2UgdmVyc2lvbnMgdGhhdCB3ZXJlIGlnbm9yZWQgZHVlIHRvIHVzaW5nIGFuIGluZWxvaWdpYmxlIGxpY2Vuc2UuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljSW5lbGlnaWJsZUxpY2Vuc2Uob3B0cz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICAgIHN0YXRpc3RpYzogU3RhdGlzdGljLlNVTSxcbiAgICAgIC4uLm9wdHMsXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIFtET01BSU5fT1dORVJfRElNRU5TSU9OXTogdGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJEb21haW5Pd25lciA/PyBBd3MuQUNDT1VOVF9JRCxcbiAgICAgICAgW0RPTUFJTl9OQU1FX0RJTUVOU0lPTl06IHRoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyRG9tYWluTmFtZSxcbiAgICAgICAgW1JFUE9TSVRPUllfTkFNRV9ESU1FTlNJT05dOiB0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ck5hbWUsXG4gICAgICB9LFxuICAgICAgbWV0cmljTmFtZTogTWV0cmljTmFtZS5JTkVMSUdJQkxFX0xJQ0VOU0UsXG4gICAgICBuYW1lc3BhY2U6IE1FVFJJQ1NfTkFNRVNQQUNFLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgcGFja2FnZSB2ZXJzaW9ucyB0aGF0IHdlcmUgZGVsZXRlZCBmcm9tIENvZGVBcnRpZmFjdCAodGhvc2UgZXZlbnRzIGFyZSBub3RcbiAgICogaGFuZGxlZCBjdXJyZW50bHkpLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY0RlbGV0ZWRDb3VudChvcHRzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBNZXRyaWMoe1xuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgc3RhdGlzdGljOiBTdGF0aXN0aWMuU1VNLFxuICAgICAgLi4ub3B0cyxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgW0RPTUFJTl9PV05FUl9ESU1FTlNJT05dOiB0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ckRvbWFpbk93bmVyID8/IEF3cy5BQ0NPVU5UX0lELFxuICAgICAgICBbRE9NQUlOX05BTUVfRElNRU5TSU9OXTogdGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJEb21haW5OYW1lLFxuICAgICAgICBbUkVQT1NJVE9SWV9OQU1FX0RJTUVOU0lPTl06IHRoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyTmFtZSxcbiAgICAgIH0sXG4gICAgICBtZXRyaWNOYW1lOiBNZXRyaWNOYW1lLkRFTEVURURfQ09VTlQsXG4gICAgICBuYW1lc3BhY2U6IE1FVFJJQ1NfTkFNRVNQQUNFLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgcGFja2FnZSB2ZXJzaW9ucyB0aGF0IGRvIG5vdCBoYXZlIGEganNpaSBhc3NlbWJseSBpbiB0aGUgcGFja2FnZS5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNOb3RKc2lpRW5hYmxlZENvdW50KG9wdHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gbmV3IE1ldHJpYyh7XG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICBzdGF0aXN0aWM6IFN0YXRpc3RpYy5TVU0sXG4gICAgICAuLi5vcHRzLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBbRE9NQUlOX09XTkVSX0RJTUVOU0lPTl06IHRoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyRG9tYWluT3duZXIgPz8gQXdzLkFDQ09VTlRfSUQsXG4gICAgICAgIFtET01BSU5fTkFNRV9ESU1FTlNJT05dOiB0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ckRvbWFpbk5hbWUsXG4gICAgICAgIFtSRVBPU0lUT1JZX05BTUVfRElNRU5TSU9OXTogdGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJOYW1lLFxuICAgICAgfSxcbiAgICAgIG1ldHJpY05hbWU6IE1ldHJpY05hbWUuTk9UX0pTSUlfRU5BQkxFRF9DT1VOVCxcbiAgICAgIG5hbWVzcGFjZTogTUVUUklDU19OQU1FU1BBQ0UsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
265
+ CodeArtifact[_a] = { fqn: "construct-hub.sources.CodeArtifact", version: "0.3.316" };
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1hcnRpZmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYWNrYWdlLXNvdXJjZXMvY29kZS1hcnRpZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDREQUE4STtBQUU5SSxvREFBMkM7QUFDM0Msb0VBQTZEO0FBQzdELDhDQUEyRDtBQUMzRCxvREFBOEM7QUFDOUMsNENBQTZEO0FBQzdELDhDQUEwRDtBQUMxRCx3Q0FBMkU7QUFDM0UsNENBQWtIO0FBQ2xILGtEQUE2QztBQUU3QywyQ0FBaUQ7QUFDakQsb0ZBQStFO0FBQy9FLG9GQUFpSztBQWNqSzs7O0dBR0c7QUFDSCxNQUFhLFlBQVk7SUFDdkIsWUFBb0MsS0FBd0I7UUFBeEIsVUFBSyxHQUFMLEtBQUssQ0FBbUI7SUFDNUQsQ0FBQztJQUVNLElBQUksQ0FDVCxLQUFnQixFQUNoQixFQUNFLFFBQVEsRUFDUixTQUFTLEVBQ1QsV0FBVyxFQUNYLFVBQVUsRUFDVixpQkFBaUIsRUFDakIsS0FBSyxHQUNvQjtRQUUzQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2pELE1BQU0sWUFBWSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUUxSSxNQUFNLGNBQWMsR0FBRywwQkFBZ0IsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksY0FBYyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxRQUFRLGdCQUFnQixFQUFFO1lBQy9GLGlCQUFpQixFQUFFLDBCQUFpQixDQUFD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cmFwaFdpZGdldCwgTWF0aEV4cHJlc3Npb24sIE1ldHJpYywgTWV0cmljT3B0aW9ucywgU3RhdGlzdGljLCBUcmVhdE1pc3NpbmdEYXRhIH0gZnJvbSAnQGF3cy1jZGsvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgQ2ZuUmVwb3NpdG9yeSB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1jb2RlYXJ0aWZhY3QnO1xuaW1wb3J0IHsgUnVsZSB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1ldmVudHMnO1xuaW1wb3J0IHsgTGFtYmRhRnVuY3Rpb24gfSBmcm9tICdAYXdzLWNkay9hd3MtZXZlbnRzLXRhcmdldHMnO1xuaW1wb3J0IHsgRWZmZWN0LCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdAYXdzLWNkay9hd3MtaWFtJztcbmltcG9ydCB7IFRyYWNpbmcgfSBmcm9tICdAYXdzLWNkay9hd3MtbGFtYmRhJztcbmltcG9ydCB7IEJsb2NrUHVibGljQWNjZXNzLCBJQnVja2V0IH0gZnJvbSAnQGF3cy1jZGsvYXdzLXMzJztcbmltcG9ydCB7IFF1ZXVlLCBRdWV1ZUVuY3J5cHRpb24gfSBmcm9tICdAYXdzLWNkay9hd3Mtc3FzJztcbmltcG9ydCB7IEFybkZvcm1hdCwgQXdzLCBDb25zdHJ1Y3QsIER1cmF0aW9uLCBTdGFjayB9IGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuaW1wb3J0IHsgY29kZUFydGlmYWN0UmVwb3NpdG9yeVVybCwgbGFtYmRhRnVuY3Rpb25VcmwsIGxhbWJkYVNlYXJjaExvZ0dyb3VwVXJsLCBzcXNRdWV1ZVVybCB9IGZyb20gJy4uL2RlZXAtbGluayc7XG5pbXBvcnQgeyBmaWxsTWV0cmljIH0gZnJvbSAnLi4vbWV0cmljLXV0aWxzJztcbmltcG9ydCB0eXBlIHsgSVBhY2thZ2VTb3VyY2UsIFBhY2thZ2VTb3VyY2VCaW5kT3B0aW9ucywgUGFja2FnZVNvdXJjZUJpbmRSZXN1bHQgfSBmcm9tICcuLi9wYWNrYWdlLXNvdXJjZSc7XG5pbXBvcnQgeyBTM1N0b3JhZ2VGYWN0b3J5IH0gZnJvbSAnLi4vczMvc3RvcmFnZSc7XG5pbXBvcnQgeyBDb2RlQXJ0aWZhY3RGb3J3YXJkZXIgfSBmcm9tICcuL2NvZGVhcnRpZmFjdC9jb2RlLWFydGlmYWN0LWZvcndhcmRlcic7XG5pbXBvcnQgeyBNRVRSSUNTX05BTUVTUEFDRSwgTWV0cmljTmFtZSwgRE9NQUlOX05BTUVfRElNRU5TSU9OLCBET01BSU5fT1dORVJfRElNRU5TSU9OLCBSRVBPU0lUT1JZX05BTUVfRElNRU5TSU9OIH0gZnJvbSAnLi9jb2RlYXJ0aWZhY3QvY29uc3RhbnRzLmxhbWJkYS1zaGFyZWQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvZGVBcnRpZmFjdFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBDb2RlQXJ0aWZhY3QgcmVwb3NpdG9yeSB3aGVyZSBwYWNrYWdlcyBhcmUgb2J0YWluZWQgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9zaXRvcnk6IENmblJlcG9zaXRvcnk7XG5cbiAgLyoqXG4gICAqIFRoZSBTMyBidWNrZXQgd2hlcmUgcGFja2FnZXMgd2lsbCBiZSBzdGFnZWQuXG4gICAqL1xuICByZWFkb25seSBidWNrZXQ/OiBJQnVja2V0O1xufVxuXG4vKipcbiAqIEEgcGFja2FnZSBzb3VyY2UgdGhhdCBvYnRhaW5zIHBhY2thZ2UgZGF0YSBmcm9tIGFuIG5wbSBDb2RlQXJ0aWZhY3RcbiAqIHJlcG9zaXRvcnkuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb2RlQXJ0aWZhY3QgaW1wbGVtZW50cyBJUGFja2FnZVNvdXJjZSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBDb2RlQXJ0aWZhY3RQcm9wcykge1xuICB9XG5cbiAgcHVibGljIGJpbmQoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICB7XG4gICAgICBkZW55TGlzdCxcbiAgICAgIGluZ2VzdGlvbixcbiAgICAgIGxpY2Vuc2VMaXN0LFxuICAgICAgbW9uaXRvcmluZyxcbiAgICAgIG92ZXJ2aWV3RGFzaGJvYXJkLFxuICAgICAgcXVldWUsXG4gICAgfTogUGFja2FnZVNvdXJjZUJpbmRPcHRpb25zLFxuICApOiBQYWNrYWdlU291cmNlQmluZFJlc3VsdCB7XG4gICAgY29uc3QgaWRQcmVmaXggPSB0aGlzLnByb3BzLnJlcG9zaXRvcnkubm9kZS5wYXRoO1xuICAgIGNvbnN0IHJlcG9zaXRvcnlJZCA9IGAke3RoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyRG9tYWluT3duZXJ9OiR7dGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJEb21haW5OYW1lfS8ke3RoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyTmFtZX1gO1xuXG4gICAgY29uc3Qgc3RvcmFnZUZhY3RvcnkgPSBTM1N0b3JhZ2VGYWN0b3J5LmdldE9yQ3JlYXRlKHNjb3BlKTtcbiAgICBjb25zdCBidWNrZXQgPSB0aGlzLnByb3BzLmJ1Y2tldCB8fCBzdG9yYWdlRmFjdG9yeS5uZXdCdWNrZXQoc2NvcGUsIGAke2lkUHJlZml4fS9TdGFnaW5nQnVja2V0YCwge1xuICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IEJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FMTCxcbiAgICAgIGVuZm9yY2VTU0w6IHRydWUsXG4gICAgICBsaWZlY3ljbGVSdWxlczogW3sgZXhwaXJhdGlvbjogRHVyYXRpb24uZGF5cygzMCkgfV0sXG4gICAgfSk7XG4gICAgYnVja2V0LmdyYW50UmVhZChpbmdlc3Rpb24pO1xuXG4gICAgY29uc3QgZGxxID0gbmV3IFF1ZXVlKHNjb3BlLCBgJHtpZFByZWZpeH0vRExRYCwge1xuICAgICAgZW5jcnlwdGlvbjogUXVldWVFbmNyeXB0aW9uLktNU19NQU5BR0VELFxuICAgICAgcmV0ZW50aW9uUGVyaW9kOiBEdXJhdGlvbi5kYXlzKDE0KSxcbiAgICAgIHZpc2liaWxpdHlUaW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDE1KSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGZvcndhcmRlciA9IG5ldyBDb2RlQXJ0aWZhY3RGb3J3YXJkZXIoc2NvcGUsIGAke2lkUHJlZml4fS9Gb3J3YXJkZXJgLCB7XG4gICAgICBkZWFkTGV0dGVyUXVldWU6IGRscSxcbiAgICAgIGRlc2NyaXB0aW9uOiBgWyR7c2NvcGUubm9kZS5wYXRofS9Db2RlQXJ0aWZhY3QvJHtyZXBvc2l0b3J5SWR9XSBIYW5kbGUgQ29kZUFydGlmYWN0IEV2ZW50QnJpZGdlIGV2ZW50c2AsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBBV1NfRU1GX0VOVklST05NRU5UOiAnTG9jYWwnLFxuICAgICAgICBCVUNLRVRfTkFNRTogYnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICAgIFFVRVVFX1VSTDogcXVldWUucXVldWVVcmwsXG4gICAgICB9LFxuICAgICAgbWVtb3J5U2l6ZTogMTAyNCxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgICAgdHJhY2luZzogVHJhY2luZy5BQ1RJVkUsXG4gICAgfSk7XG4gICAgYnVja2V0LmdyYW50UmVhZFdyaXRlKGZvcndhcmRlcik7XG4gICAgZGVueUxpc3Q/LmdyYW50UmVhZChmb3J3YXJkZXIpO1xuICAgIGxpY2Vuc2VMaXN0LmdyYW50UmVhZChmb3J3YXJkZXIpO1xuICAgIHF1ZXVlLmdyYW50U2VuZE1lc3NhZ2VzKGZvcndhcmRlcik7XG4gICAgZm9yd2FyZGVyLmFkZFRvUm9sZVBvbGljeShuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydjb2RlYXJ0aWZhY3Q6R2V0UGFja2FnZVZlcnNpb25Bc3NldCddLFxuICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgIFN0YWNrLm9mKHNjb3BlKS5mb3JtYXRBcm4oe1xuICAgICAgICAgIHNlcnZpY2U6ICdjb2RlYXJ0aWZhY3QnLFxuICAgICAgICAgIHJlc291cmNlOiAncGFja2FnZScsXG4gICAgICAgICAgYXJuRm9ybWF0OiBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSxcbiAgICAgICAgICByZXNvdXJjZU5hbWU6IFtcbiAgICAgICAgICAgIHRoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyRG9tYWluTmFtZSxcbiAgICAgICAgICAgIHRoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyTmFtZSxcbiAgICAgICAgICAgICducG0nLCAvLyBwYWNrYWdlIGZvcm1hdFxuICAgICAgICAgICAgJyonLCAvLyBuYW1lc3BhY2UvcGFja2FnZS1uYW1lXG4gICAgICAgICAgXS5qb2luKCcvJyksXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KSk7XG5cbiAgICBjb25zdCBydWxlID0gbmV3IFJ1bGUoc2NvcGUsIGAke2lkUHJlZml4fS9FdmVudEJyaWRnZWAsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgJHtzY29wZS5ub2RlLnBhdGh9L0NvZGVBcnRpZmFjdC8ke3JlcG9zaXRvcnlJZH0vRXZlbnRCcmlkZ2VgLFxuICAgICAgZXZlbnRQYXR0ZXJuOiB7XG4gICAgICAgIHNvdXJjZTogWydhd3MuY29kZWFydGlmYWN0J10sXG4gICAgICAgIGRldGFpbFR5cGU6IFsnQ29kZUFydGlmYWN0IFBhY2thZ2UgVmVyc2lvbiBTdGF0ZSBDaGFuZ2UnXSxcbiAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgZG9tYWluT3duZXI6IFt0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ckRvbWFpbk93bmVyXSxcbiAgICAgICAgICBkb21haW5OYW1lOiBbdGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJEb21haW5OYW1lXSxcbiAgICAgICAgICByZXBvc2l0b3J5TmFtZTogW3RoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyTmFtZV0sXG4gICAgICAgICAgcGFja2FnZUZvcm1hdDogWyducG0nXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB0YXJnZXRzOiBbbmV3IExhbWJkYUZ1bmN0aW9uKGZvcndhcmRlcildLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZmFpbHVyZUFsYXJtID0gZm9yd2FyZGVyLm1ldHJpY0Vycm9ycygpLmNyZWF0ZUFsYXJtKHNjb3BlLCBgJHtpZFByZWZpeH0vRm9yd2FyZGVyL0ZhaWx1cmVzYCwge1xuICAgICAgYWxhcm1OYW1lOiBgJHtzY29wZS5ub2RlLnBhdGh9L0NvZGVBcnRpZmFjdC8ke3JlcG9zaXRvcnlJZH0vRm9yd2FyZGVyYCxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IFtcbiAgICAgICAgYFRoZSBDb2RlQXJ0aWZhY3QgZm93YXJkZXIgZm9yICR7cmVwb3NpdG9yeUlkfSBpcyBmYWlsaW5nYCxcbiAgICAgICAgJycsXG4gICAgICAgIGBMaW5rIHRvIHRoZSBsYW1iZGEgZnVuY3Rpb246ICR7bGFtYmRhRnVuY3Rpb25VcmwoZm9yd2FyZGVyKX1gLFxuICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMyxcbiAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IFRyZWF0TWlzc2luZ0RhdGEuTUlTU0lORyxcbiAgICB9KTtcbiAgICBtb25pdG9yaW5nLmFkZEhpZ2hTZXZlcml0eUFsYXJtKGBDb2RlQXJ0aWZhY3Q6JHt0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ck5hbWV9IEZhaWx1cmVzYCwgZmFpbHVyZUFsYXJtKTtcblxuICAgIGNvbnN0IGRscU5vdEVtcHR5QWxhcm0gPSBuZXcgTWF0aEV4cHJlc3Npb24oe1xuICAgICAgZXhwcmVzc2lvbjogJ21WaXNpYmxlICsgbUhpZGRlbicsXG4gICAgICB1c2luZ01ldHJpY3M6IHtcbiAgICAgICAgbVZpc2libGU6IGRscS5tZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNWaXNpYmxlKHsgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDEpIH0pLFxuICAgICAgICBtSGlkZGVuOiBkbHEubWV0cmljQXBwcm94aW1hdGVOdW1iZXJPZk1lc3NhZ2VzTm90VmlzaWJsZSh7IHBlcmlvZDogRHVyYXRpb24ubWludXRlcygxKSB9KSxcbiAgICAgIH0sXG4gICAgfSkuY3JlYXRlQWxhcm0oc2NvcGUsIGAke2lkUHJlZml4fS9Gb3J3YXJkZXIvRExRTm90RW1wdHlgLCB7XG4gICAgICBhbGFybU5hbWU6IGAke3Njb3BlLm5vZGUucGF0aH0vQ29kZUFydGlmYWN0LyR7cmVwb3NpdG9yeUlkfS9ETFFOb3RFbXB0eWAsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBbXG4gICAgICAgIGBUaGUgQ29kZUFydGlmYWN0IGZvd2FyZGVyIGZvciAke3JlcG9zaXRvcnlJZH0gaXMgZmFpbGluZ2AsXG4gICAgICAgICcnLFxuICAgICAgICBgTGluayB0byB0aGUgbGFtYmRhIGZ1bmN0aW9uOiAke2xhbWJkYUZ1bmN0aW9uVXJsKGZvcndhcmRlcil9YCxcbiAgICAgICAgYExpbmsgdG8gdGhlIGRlYWQgbGV0dGVyIHF1ZXVlOiAke3Nxc1F1ZXVlVXJsKGRscSl9YCxcbiAgICAgIF0uam9pbignL24nKSxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IFRyZWF0TWlzc2luZ0RhdGEuTk9UX0JSRUFDSElORyxcbiAgICB9KTtcbiAgICBtb25pdG9yaW5nLmFkZExvd1NldmVyaXR5QWxhcm0oYENvZGVBcnRpZmFjdC8ke3JlcG9zaXRvcnlJZH0gRExRIE5vdCBFbXB0eWAsIGRscU5vdEVtcHR5QWxhcm0pO1xuXG4gICAgcnVsZS5ub2RlLmFkZERlcGVuZGVuY3koZmFpbHVyZUFsYXJtLCBkbHFOb3RFbXB0eUFsYXJtKTtcblxuICAgIG92ZXJ2aWV3RGFzaGJvYXJkLmFkZERMUU1ldHJpY1RvRGFzaGJvYXJkKGBDb2RlQXJ0aWZhY3QvJHtyZXBvc2l0b3J5SWR9IERMUWAsIGRscSk7XG4gICAgb3ZlcnZpZXdEYXNoYm9hcmQuYWRkQ29uY3VycmVudEV4ZWN1dGlvbk1ldHJpY1RvRGFzaGJvYXJkKGZvcndhcmRlciwgYCR7aWRQcmVmaXh9L0ZvcndhcmRlckxhbWJkYWApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IGBDb2RlQXJ0aWZhY3Q6ICR7cmVwb3NpdG9yeUlkfWAsXG4gICAgICBsaW5rczogW3tcbiAgICAgICAgbmFtZTogJ0NvZGVBcnRpZmFjdCcsXG4gICAgICAgIHVybDogY29kZUFydGlmYWN0UmVwb3NpdG9yeVVybCh0aGlzLnByb3BzLnJlcG9zaXRvcnkpLFxuICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgfSwge1xuICAgICAgICBuYW1lOiAnRm9yd2FyZGVyIEZ1bmN0aW9uJyxcbiAgICAgICAgdXJsOiBsYW1iZGFGdW5jdGlvblVybChmb3J3YXJkZXIpLFxuICAgICAgfSwge1xuICAgICAgICBuYW1lOiAnU2VhcmNoIExvZyBncm91cCcsXG4gICAgICAgIHVybDogbGFtYmRhU2VhcmNoTG9nR3JvdXBVcmwoZm9yd2FyZGVyKSxcbiAgICAgIH0sIHtcbiAgICAgICAgbmFtZTogJ0RMUScsXG4gICAgICAgIHVybDogc3FzUXVldWVVcmwoZGxxKSxcbiAgICAgIH1dLFxuICAgICAgZGFzaGJvYXJkV2lkZ2V0czogW1xuICAgICAgICBbXG4gICAgICAgICAgbmV3IEdyYXBoV2lkZ2V0KHtcbiAgICAgICAgICAgIGhlaWdodDogNixcbiAgICAgICAgICAgIHdpZHRoOiAxMixcbiAgICAgICAgICAgIHRpdGxlOiAnRnVuY3Rpb24gSGVhbHRoJyxcbiAgICAgICAgICAgIGxlZnQ6IFtcbiAgICAgICAgICAgICAgZmlsbE1ldHJpYyhmb3J3YXJkZXIubWV0cmljSW52b2NhdGlvbnMoeyBsYWJlbDogJ0ludm9jYXRpb25zJyB9KSksXG4gICAgICAgICAgICAgIGZpbGxNZXRyaWMoZm9yd2FyZGVyLm1ldHJpY0Vycm9ycyh7IGxhYmVsOiAnRXJyb3JzJyB9KSksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgbGVmdFlBeGlzOiB7IG1pbjogMCB9LFxuICAgICAgICAgICAgcmlnaHQ6IFtcbiAgICAgICAgICAgICAgZm9yd2FyZGVyLm1ldHJpY0R1cmF0aW9uKHsgbGFiZWw6ICdEdXJhdGlvbicgfSksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgcmlnaHRZQXhpczogeyBtaW46IDAgfSxcbiAgICAgICAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcygxNSksXG4gICAgICAgICAgfSksXG4gICAgICAgICAgbmV3IEdyYXBoV2lkZ2V0KHtcbiAgICAgICAgICAgIGhlaWdodDogNixcbiAgICAgICAgICAgIHdpZHRoOiAxMixcbiAgICAgICAgICAgIHRpdGxlOiAnRGVhZCBMZXR0ZXIgUXVldWUnLFxuICAgICAgICAgICAgbGVmdDogW1xuICAgICAgICAgICAgICBkbHEubWV0cmljQXBwcm94aW1hdGVOdW1iZXJPZk1lc3NhZ2VzVmlzaWJsZSh7IGxhYmVsOiAnVmlzaWJsZSBNZXNzYWdlcycsIHBlcmlvZDogRHVyYXRpb24ubWludXRlcygxKSB9KSxcbiAgICAgICAgICAgICAgZGxxLm1ldHJpY0FwcHJveGltYXRlTnVtYmVyT2ZNZXNzYWdlc05vdFZpc2libGUoeyBsYWJlbDogJ0hpZGRlbiBNZXNzYWdlcycsIHBlcmlvZDogRHVyYXRpb24ubWludXRlcygxKSB9KSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBsZWZ0WUF4aXM6IHsgbWluOiAwIH0sXG4gICAgICAgICAgICByaWdodDogW1xuICAgICAgICAgICAgICBkbHEubWV0cmljQXBwcm94aW1hdGVBZ2VPZk9sZGVzdE1lc3NhZ2UoeyBsYWJlbDogJ09sZGVzdCBNZXNzYWdlIEFnZScsIHBlcmlvZDogRHVyYXRpb24ubWludXRlcygxKSB9KSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICByaWdodFlBeGlzOiB7IG1pbjogMCB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgICBbXG4gICAgICAgICAgbmV3IEdyYXBoV2lkZ2V0KHtcbiAgICAgICAgICAgIGhlaWdodDogNixcbiAgICAgICAgICAgIHdpZHRoOiAxMixcbiAgICAgICAgICAgIHRpdGxlOiAnUXVhbGl0eSBNZXRyaWNzJyxcbiAgICAgICAgICAgIGxlZnQ6IFtcbiAgICAgICAgICAgICAgZmlsbE1ldHJpYyh0aGlzLm1ldHJpY05vdEpzaWlFbmFibGVkQ291bnQoeyBsYWJlbDogJ05vdCBhIGpzaWkgcGFja2FnZScgfSksIDApLFxuICAgICAgICAgICAgICBmaWxsTWV0cmljKHRoaXMubWV0cmljSW5lbGlnaWJsZUxpY2Vuc2UoeyBsYWJlbDogJ0luZWxpZ2libGUgTGljZW5zZScgfSksIDApLFxuICAgICAgICAgICAgICBmaWxsTWV0cmljKHRoaXMubWV0cmljRGVueUxpc3RlZENvdW50KHsgbGFiZWw6ICdEZW55IExpc3RlZCcgfSksIDApLFxuICAgICAgICAgICAgICBmaWxsTWV0cmljKHRoaXMubWV0cmljRGVsZXRlZENvdW50KHsgbGFiZWw6ICdEZWxldGlvbiBFdmVudHMnIH0pLCAwKSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBsZWZ0WUF4aXM6IHsgbWluOiAwIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVGhlIGNvdW50IG9mIHBhY2thZ2UgdmVyc2lvbnMgdGhhdCB3ZXJlIGlnbm9yZWQgZHVlIHRvIGJlaW5nIGluIHRoZSBkZW55IGxpc3QuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljRGVueUxpc3RlZENvdW50KG9wdHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gbmV3IE1ldHJpYyh7XG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICBzdGF0aXN0aWM6IFN0YXRpc3RpYy5TVU0sXG4gICAgICAuLi5vcHRzLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBbRE9NQUlOX09XTkVSX0RJTUVOU0lPTl06IHRoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyRG9tYWluT3duZXIsXG4gICAgICAgIFtET01BSU5fTkFNRV9ESU1FTlNJT05dOiB0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ckRvbWFpbk5hbWUsXG4gICAgICAgIFtSRVBPU0lUT1JZX05BTUVfRElNRU5TSU9OXTogdGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJOYW1lLFxuICAgICAgfSxcbiAgICAgIG1ldHJpY05hbWU6IE1ldHJpY05hbWUuREVOWV9MSVNURURfQ09VTlQsXG4gICAgICBuYW1lc3BhY2U6IE1FVFJJQ1NfTkFNRVNQQUNFLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgcGFja2FnZSB2ZXJzaW9ucyB0aGF0IHdlcmUgaWdub3JlZCBkdWUgdG8gdXNpbmcgYW4gaW5lbG9pZ2libGUgbGljZW5zZS5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNJbmVsaWdpYmxlTGljZW5zZShvcHRzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBNZXRyaWMoe1xuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgc3RhdGlzdGljOiBTdGF0aXN0aWMuU1VNLFxuICAgICAgLi4ub3B0cyxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgW0RPTUFJTl9PV05FUl9ESU1FTlNJT05dOiB0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ckRvbWFpbk93bmVyID8/IEF3cy5BQ0NPVU5UX0lELFxuICAgICAgICBbRE9NQUlOX05BTUVfRElNRU5TSU9OXTogdGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJEb21haW5OYW1lLFxuICAgICAgICBbUkVQT1NJVE9SWV9OQU1FX0RJTUVOU0lPTl06IHRoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyTmFtZSxcbiAgICAgIH0sXG4gICAgICBtZXRyaWNOYW1lOiBNZXRyaWNOYW1lLklORUxJR0lCTEVfTElDRU5TRSxcbiAgICAgIG5hbWVzcGFjZTogTUVUUklDU19OQU1FU1BBQ0UsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBwYWNrYWdlIHZlcnNpb25zIHRoYXQgd2VyZSBkZWxldGVkIGZyb20gQ29kZUFydGlmYWN0ICh0aG9zZSBldmVudHMgYXJlIG5vdFxuICAgKiBoYW5kbGVkIGN1cnJlbnRseSkuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljRGVsZXRlZENvdW50KG9wdHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gbmV3IE1ldHJpYyh7XG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICBzdGF0aXN0aWM6IFN0YXRpc3RpYy5TVU0sXG4gICAgICAuLi5vcHRzLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBbRE9NQUlOX09XTkVSX0RJTUVOU0lPTl06IHRoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyRG9tYWluT3duZXIgPz8gQXdzLkFDQ09VTlRfSUQsXG4gICAgICAgIFtET01BSU5fTkFNRV9ESU1FTlNJT05dOiB0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ckRvbWFpbk5hbWUsXG4gICAgICAgIFtSRVBPU0lUT1JZX05BTUVfRElNRU5TSU9OXTogdGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJOYW1lLFxuICAgICAgfSxcbiAgICAgIG1ldHJpY05hbWU6IE1ldHJpY05hbWUuREVMRVRFRF9DT1VOVCxcbiAgICAgIG5hbWVzcGFjZTogTUVUUklDU19OQU1FU1BBQ0UsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBwYWNrYWdlIHZlcnNpb25zIHRoYXQgZG8gbm90IGhhdmUgYSBqc2lpIGFzc2VtYmx5IGluIHRoZSBwYWNrYWdlLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY05vdEpzaWlFbmFibGVkQ291bnQob3B0cz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICAgIHN0YXRpc3RpYzogU3RhdGlzdGljLlNVTSxcbiAgICAgIC4uLm9wdHMsXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIFtET01BSU5fT1dORVJfRElNRU5TSU9OXTogdGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJEb21haW5Pd25lciA/PyBBd3MuQUNDT1VOVF9JRCxcbiAgICAgICAgW0RPTUFJTl9OQU1FX0RJTUVOU0lPTl06IHRoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyRG9tYWluTmFtZSxcbiAgICAgICAgW1JFUE9TSVRPUllfTkFNRV9ESU1FTlNJT05dOiB0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ck5hbWUsXG4gICAgICB9LFxuICAgICAgbWV0cmljTmFtZTogTWV0cmljTmFtZS5OT1RfSlNJSV9FTkFCTEVEX0NPVU5ULFxuICAgICAgbmFtZXNwYWNlOiBNRVRSSUNTX05BTUVTUEFDRSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -38,7 +38,7 @@ export interface NpmJsProps {
38
38
  export declare class NpmJs implements IPackageSource {
39
39
  private readonly props;
40
40
  constructor(props?: NpmJsProps);
41
- bind(scope: Construct, { baseUrl, denyList, ingestion, licenseList, monitoring, queue, repository }: PackageSourceBindOptions): PackageSourceBindResult;
41
+ bind(scope: Construct, { baseUrl, denyList, ingestion, licenseList, monitoring, queue, repository, overviewDashboard }: PackageSourceBindOptions): PackageSourceBindResult;
42
42
  /**
43
43
  * The average time it took to process a changes batch.
44
44
  */