construct-hub 0.4.430 → 0.4.431
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +9 -9
- package/docs/operator-runbook.md +45 -0
- package/lib/backend/package-stats/index.d.ts +15 -2
- package/lib/backend/package-stats/index.js +79 -21
- package/lib/backend/package-stats/package-stats-aggregator.d.ts +7 -0
- package/lib/backend/package-stats/package-stats-aggregator.js +20 -0
- package/lib/backend/package-stats/package-stats-aggregator.lambda.bundle/index.js +62489 -0
- package/lib/backend/package-stats/{package-stats.lambda.bundle → package-stats-aggregator.lambda.bundle}/index.js.map +4 -4
- package/lib/backend/package-stats/package-stats-aggregator.lambda.d.ts +13 -0
- package/lib/backend/package-stats/package-stats-aggregator.lambda.js +78 -0
- package/lib/backend/package-stats/package-stats-chunker.d.ts +7 -0
- package/lib/backend/package-stats/package-stats-chunker.js +20 -0
- package/lib/backend/package-stats/package-stats-chunker.lambda.bundle/index.js +60075 -0
- package/lib/backend/package-stats/package-stats-chunker.lambda.bundle/index.js.map +7 -0
- package/lib/backend/package-stats/package-stats-chunker.lambda.d.ts +6 -0
- package/lib/backend/package-stats/package-stats-chunker.lambda.js +25 -0
- package/lib/backend/package-stats/package-stats-processor.d.ts +7 -0
- package/lib/backend/package-stats/package-stats-processor.js +20 -0
- package/lib/backend/package-stats/{package-stats.lambda.bundle → package-stats-processor.lambda.bundle}/index.js +36 -2556
- package/lib/backend/package-stats/package-stats-processor.lambda.bundle/index.js.map +7 -0
- package/lib/backend/package-stats/package-stats-processor.lambda.d.ts +10 -0
- package/lib/backend/package-stats/package-stats-processor.lambda.js +41 -0
- package/lib/backend-dashboard.js +8 -6
- package/lib/construct-hub.d.ts +1 -1
- package/lib/construct-hub.js +12 -4
- package/lib/package-sources/code-artifact.js +1 -1
- package/lib/package-sources/npmjs.js +1 -1
- package/lib/package-tag/index.js +3 -3
- package/lib/package-tag-group/index.js +2 -2
- package/lib/preload-file/index.js +1 -1
- package/lib/s3/storage.js +1 -1
- package/lib/spdx-license.js +1 -1
- package/package.json +7 -3
- package/lib/backend/package-stats/package-stats.d.ts +0 -7
- package/lib/backend/package-stats/package-stats.js +0 -20
- package/lib/backend/package-stats/package-stats.lambda.d.ts +0 -25
- package/lib/backend/package-stats/package-stats.lambda.js +0 -79
package/.jsii
CHANGED
|
@@ -4438,7 +4438,7 @@
|
|
|
4438
4438
|
"immutable": true,
|
|
4439
4439
|
"locationInModule": {
|
|
4440
4440
|
"filename": "src/construct-hub.ts",
|
|
4441
|
-
"line":
|
|
4441
|
+
"line": 596
|
|
4442
4442
|
},
|
|
4443
4443
|
"name": "allAlarms",
|
|
4444
4444
|
"type": {
|
|
@@ -4458,7 +4458,7 @@
|
|
|
4458
4458
|
"immutable": true,
|
|
4459
4459
|
"locationInModule": {
|
|
4460
4460
|
"filename": "src/construct-hub.ts",
|
|
4461
|
-
"line":
|
|
4461
|
+
"line": 604
|
|
4462
4462
|
},
|
|
4463
4463
|
"name": "grantPrincipal",
|
|
4464
4464
|
"overrides": "aws-cdk-lib.aws_iam.IGrantable",
|
|
@@ -4475,7 +4475,7 @@
|
|
|
4475
4475
|
"immutable": true,
|
|
4476
4476
|
"locationInModule": {
|
|
4477
4477
|
"filename": "src/construct-hub.ts",
|
|
4478
|
-
"line":
|
|
4478
|
+
"line": 566
|
|
4479
4479
|
},
|
|
4480
4480
|
"name": "highSeverityAlarms",
|
|
4481
4481
|
"type": {
|
|
@@ -4494,7 +4494,7 @@
|
|
|
4494
4494
|
"immutable": true,
|
|
4495
4495
|
"locationInModule": {
|
|
4496
4496
|
"filename": "src/construct-hub.ts",
|
|
4497
|
-
"line":
|
|
4497
|
+
"line": 608
|
|
4498
4498
|
},
|
|
4499
4499
|
"name": "ingestionQueue",
|
|
4500
4500
|
"type": {
|
|
@@ -4510,7 +4510,7 @@
|
|
|
4510
4510
|
"immutable": true,
|
|
4511
4511
|
"locationInModule": {
|
|
4512
4512
|
"filename": "src/construct-hub.ts",
|
|
4513
|
-
"line":
|
|
4513
|
+
"line": 588
|
|
4514
4514
|
},
|
|
4515
4515
|
"name": "lowSeverityAlarms",
|
|
4516
4516
|
"type": {
|
|
@@ -4531,7 +4531,7 @@
|
|
|
4531
4531
|
"immutable": true,
|
|
4532
4532
|
"locationInModule": {
|
|
4533
4533
|
"filename": "src/construct-hub.ts",
|
|
4534
|
-
"line":
|
|
4534
|
+
"line": 577
|
|
4535
4535
|
},
|
|
4536
4536
|
"name": "mediumSeverityAlarms",
|
|
4537
4537
|
"type": {
|
|
@@ -6098,7 +6098,7 @@
|
|
|
6098
6098
|
"kind": "enum",
|
|
6099
6099
|
"locationInModule": {
|
|
6100
6100
|
"filename": "src/construct-hub.ts",
|
|
6101
|
-
"line":
|
|
6101
|
+
"line": 745
|
|
6102
6102
|
},
|
|
6103
6103
|
"members": [
|
|
6104
6104
|
{
|
|
@@ -21425,6 +21425,6 @@
|
|
|
21425
21425
|
"symbolId": "src/package-sources/npmjs:NpmJsProps"
|
|
21426
21426
|
}
|
|
21427
21427
|
},
|
|
21428
|
-
"version": "0.4.
|
|
21429
|
-
"fingerprint": "
|
|
21428
|
+
"version": "0.4.431",
|
|
21429
|
+
"fingerprint": "ZVXHWcBRyngGUZrAvJBbqN3X3fT2wtg9JozdKP9G6Sg="
|
|
21430
21430
|
}
|
package/docs/operator-runbook.md
CHANGED
|
@@ -769,6 +769,51 @@ to determine what is happening and resolve the problem.
|
|
|
769
769
|
Once the canary starts running normally again, the alarm will clear itself
|
|
770
770
|
without requiring any further intervention.
|
|
771
771
|
|
|
772
|
+
### `ConstructHub/PackageStats/Failures`
|
|
773
|
+
|
|
774
|
+
#### Description
|
|
775
|
+
|
|
776
|
+
The package stats state machine has failed. This means the `stats.json` file
|
|
777
|
+
containing NPM download statistics was not updated successfully. The stats are
|
|
778
|
+
used to display download counts on package pages.
|
|
779
|
+
|
|
780
|
+
#### Investigation
|
|
781
|
+
|
|
782
|
+
The package stats feature uses a Step Functions state machine that orchestrates
|
|
783
|
+
three Lambda functions:
|
|
784
|
+
|
|
785
|
+
1. **Chunker** - Splits the package list into chunks for parallel processing
|
|
786
|
+
2. **Processor** - Fetches NPM download stats for each chunk of packages
|
|
787
|
+
3. **Aggregator** - Combines all chunks into the final `stats.json` file
|
|
788
|
+
|
|
789
|
+
In the backend dashboard under *Package Stats*, click the *Package Stats State
|
|
790
|
+
Machine* button to access the Step Functions console. Review failed executions
|
|
791
|
+
to identify which step failed:
|
|
792
|
+
|
|
793
|
+
- If the **ChunkPackages** step failed, check the Chunker function logs
|
|
794
|
+
- If the **ProcessChunksMap** step failed, check the Processor function logs
|
|
795
|
+
- If the **AggregateResults** step failed, check the Aggregator function logs
|
|
796
|
+
|
|
797
|
+
Common failure causes:
|
|
798
|
+
- NPM API throttling or unavailability (affects Processor)
|
|
799
|
+
- Large number of packages causing timeout (should be handled by chunking)
|
|
800
|
+
- S3 access issues (affects all functions)
|
|
801
|
+
- Temporary chunk files not cleaned up properly (affects Aggregator)
|
|
802
|
+
|
|
803
|
+
For additional recommendations for diving into CloudWatch Logs, refer to the
|
|
804
|
+
[Diving into Lambda Function logs in CloudWatch Logs][#lambda-log-dive] section.
|
|
805
|
+
|
|
806
|
+
#### Resolution
|
|
807
|
+
|
|
808
|
+
The alarm will automatically go back to green once the next scheduled execution
|
|
809
|
+
of the state machine succeeds. The state machine runs daily by default.
|
|
810
|
+
|
|
811
|
+
If the failure was transient, no action is needed. If the issue persists,
|
|
812
|
+
manually trigger a new execution of the state machine from the Step Functions
|
|
813
|
+
console after addressing the root cause.
|
|
814
|
+
|
|
815
|
+
--------------------------------------------------------------------------------
|
|
816
|
+
|
|
772
817
|
## :information_source: General Recommendations
|
|
773
818
|
|
|
774
819
|
### Diving into Lambda Function logs in CloudWatch Logs
|
|
@@ -3,6 +3,7 @@ import { Metric, MetricOptions } from 'aws-cdk-lib/aws-cloudwatch';
|
|
|
3
3
|
import { IFunction } from 'aws-cdk-lib/aws-lambda';
|
|
4
4
|
import { RetentionDays } from 'aws-cdk-lib/aws-logs';
|
|
5
5
|
import type { IBucket } from 'aws-cdk-lib/aws-s3';
|
|
6
|
+
import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
|
|
6
7
|
import { Construct } from 'constructs';
|
|
7
8
|
import { Monitoring } from '../../monitoring';
|
|
8
9
|
/**
|
|
@@ -36,6 +37,12 @@ export interface PackageStatsProps {
|
|
|
36
37
|
* The key of the object storing the package stats.
|
|
37
38
|
*/
|
|
38
39
|
readonly objectKey: string;
|
|
40
|
+
/**
|
|
41
|
+
* Number of packages to process per chunk.
|
|
42
|
+
*
|
|
43
|
+
* @default 100
|
|
44
|
+
*/
|
|
45
|
+
readonly chunkSize?: number;
|
|
39
46
|
}
|
|
40
47
|
/**
|
|
41
48
|
* Builds or re-builds the `stats.json` object in the designated bucket.
|
|
@@ -47,9 +54,15 @@ export declare class PackageStats extends Construct {
|
|
|
47
54
|
*/
|
|
48
55
|
readonly bucket: IBucket;
|
|
49
56
|
/**
|
|
50
|
-
* The
|
|
57
|
+
* The Step Functions state machine that orchestrates stats processing.
|
|
58
|
+
*/
|
|
59
|
+
readonly stateMachine: sfn.StateMachine;
|
|
60
|
+
/**
|
|
61
|
+
* The Lambda functions used in the state machine.
|
|
51
62
|
*/
|
|
52
|
-
readonly
|
|
63
|
+
readonly chunkerFunction: IFunction;
|
|
64
|
+
readonly processorFunction: IFunction;
|
|
65
|
+
readonly aggregatorFunction: IFunction;
|
|
53
66
|
/**
|
|
54
67
|
* The key of the object storing the package stats.
|
|
55
68
|
*/
|
|
@@ -7,10 +7,13 @@ const events = require("aws-cdk-lib/aws-events");
|
|
|
7
7
|
const targets = require("aws-cdk-lib/aws-events-targets");
|
|
8
8
|
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
9
9
|
const aws_logs_1 = require("aws-cdk-lib/aws-logs");
|
|
10
|
+
const sfn = require("aws-cdk-lib/aws-stepfunctions");
|
|
11
|
+
const tasks = require("aws-cdk-lib/aws-stepfunctions-tasks");
|
|
10
12
|
const constructs_1 = require("constructs");
|
|
11
13
|
const constants_1 = require("./constants");
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
+
const package_stats_aggregator_1 = require("./package-stats-aggregator");
|
|
15
|
+
const package_stats_chunker_1 = require("./package-stats-chunker");
|
|
16
|
+
const package_stats_processor_1 = require("./package-stats-processor");
|
|
14
17
|
const runbook_url_1 = require("../../runbook-url");
|
|
15
18
|
const constants_2 = require("../shared/constants");
|
|
16
19
|
/**
|
|
@@ -21,36 +24,91 @@ class PackageStats extends constructs_1.Construct {
|
|
|
21
24
|
super(scope, id);
|
|
22
25
|
this.bucket = props.bucket;
|
|
23
26
|
this.statsKey = props.objectKey;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
const commonEnv = {
|
|
28
|
+
CATALOG_BUCKET_NAME: this.bucket.bucketName,
|
|
29
|
+
CATALOG_OBJECT_KEY: constants_2.CATALOG_KEY,
|
|
30
|
+
STATS_BUCKET_NAME: this.bucket.bucketName,
|
|
31
|
+
STATS_OBJECT_KEY: props.objectKey,
|
|
32
|
+
CHUNK_SIZE: (props.chunkSize ?? 100).toString(),
|
|
33
|
+
};
|
|
34
|
+
// Create Lambda functions
|
|
35
|
+
this.chunkerFunction = new package_stats_chunker_1.PackageStatsChunker(this, 'Chunker', {
|
|
36
|
+
description: 'Splits package list into chunks for parallel processing',
|
|
37
|
+
environment: commonEnv,
|
|
32
38
|
logRetention: props.logRetention ?? aws_logs_1.RetentionDays.TEN_YEARS,
|
|
33
|
-
|
|
34
|
-
reservedConcurrentExecutions: 1,
|
|
35
|
-
timeout: aws_cdk_lib_1.Duration.minutes(15),
|
|
39
|
+
timeout: aws_cdk_lib_1.Duration.minutes(5),
|
|
36
40
|
tracing: aws_lambda_1.Tracing.PASS_THROUGH,
|
|
37
41
|
});
|
|
42
|
+
this.processorFunction = new package_stats_processor_1.PackageStatsProcessor(this, 'Processor', {
|
|
43
|
+
description: 'Processes a chunk of packages to get NPM stats',
|
|
44
|
+
environment: commonEnv,
|
|
45
|
+
logRetention: props.logRetention ?? aws_logs_1.RetentionDays.TEN_YEARS,
|
|
46
|
+
memorySize: 1024,
|
|
47
|
+
timeout: aws_cdk_lib_1.Duration.minutes(10),
|
|
48
|
+
tracing: aws_lambda_1.Tracing.PASS_THROUGH,
|
|
49
|
+
});
|
|
50
|
+
this.aggregatorFunction = new package_stats_aggregator_1.PackageStatsAggregator(this, 'Aggregator', {
|
|
51
|
+
description: 'Aggregates processed chunks into final stats.json',
|
|
52
|
+
environment: commonEnv,
|
|
53
|
+
logRetention: props.logRetention ?? aws_logs_1.RetentionDays.TEN_YEARS,
|
|
54
|
+
timeout: aws_cdk_lib_1.Duration.minutes(5),
|
|
55
|
+
tracing: aws_lambda_1.Tracing.PASS_THROUGH,
|
|
56
|
+
});
|
|
57
|
+
// Grant S3 permissions
|
|
58
|
+
this.bucket.grantReadWrite(this.chunkerFunction);
|
|
59
|
+
this.bucket.grantReadWrite(this.processorFunction);
|
|
60
|
+
this.bucket.grantReadWrite(this.aggregatorFunction);
|
|
61
|
+
// Create Step Functions state machine
|
|
62
|
+
const chunkPackages = new tasks.LambdaInvoke(this, 'ChunkPackages', {
|
|
63
|
+
lambdaFunction: this.chunkerFunction,
|
|
64
|
+
resultPath: '$.chunks',
|
|
65
|
+
});
|
|
66
|
+
const processChunksMap = new sfn.Map(this, 'ProcessChunksMap', {
|
|
67
|
+
itemsPath: '$.chunks.Payload.chunks',
|
|
68
|
+
maxConcurrency: 10,
|
|
69
|
+
resultPath: '$.processResults',
|
|
70
|
+
});
|
|
71
|
+
processChunksMap.itemProcessor(new tasks.LambdaInvoke(this, 'ProcessChunk', {
|
|
72
|
+
lambdaFunction: this.processorFunction,
|
|
73
|
+
inputPath: '$',
|
|
74
|
+
})
|
|
75
|
+
.addRetry({
|
|
76
|
+
errors: ['States.ALL'],
|
|
77
|
+
maxAttempts: 1,
|
|
78
|
+
backoffRate: 1,
|
|
79
|
+
interval: aws_cdk_lib_1.Duration.minutes(5),
|
|
80
|
+
})
|
|
81
|
+
.addCatch(new sfn.Pass(this, 'ProcessChunkError', {
|
|
82
|
+
result: sfn.Result.fromObject({ error: 'Failed to process chunk' }),
|
|
83
|
+
}), {
|
|
84
|
+
resultPath: '$.error',
|
|
85
|
+
}));
|
|
86
|
+
const aggregateResults = new tasks.LambdaInvoke(this, 'AggregateResults', {
|
|
87
|
+
lambdaFunction: this.aggregatorFunction,
|
|
88
|
+
inputPath: '$',
|
|
89
|
+
});
|
|
90
|
+
const definition = chunkPackages
|
|
91
|
+
.next(processChunksMap)
|
|
92
|
+
.next(aggregateResults);
|
|
93
|
+
this.stateMachine = new sfn.StateMachine(this, 'StateMachine', {
|
|
94
|
+
definition,
|
|
95
|
+
timeout: aws_cdk_lib_1.Duration.hours(6),
|
|
96
|
+
});
|
|
97
|
+
// Schedule the state machine
|
|
38
98
|
const updatePeriod = props.updatePeriod ?? aws_cdk_lib_1.Duration.days(1);
|
|
39
99
|
const rule = new events.Rule(this, 'Rule', {
|
|
40
100
|
schedule: events.Schedule.rate(updatePeriod),
|
|
41
101
|
});
|
|
42
|
-
rule.addTarget(new targets.
|
|
43
|
-
|
|
44
|
-
const failureAlarm = this.
|
|
45
|
-
.
|
|
102
|
+
rule.addTarget(new targets.SfnStateMachine(this.stateMachine));
|
|
103
|
+
// Create alarms
|
|
104
|
+
const failureAlarm = this.stateMachine
|
|
105
|
+
.metricFailed()
|
|
46
106
|
.createAlarm(scope, 'PackageStats/Failures', {
|
|
47
107
|
alarmName: `${scope.node.path}/PackageStats/Failures`,
|
|
48
108
|
alarmDescription: [
|
|
49
|
-
'The package stats
|
|
109
|
+
'The package stats state machine failed!',
|
|
50
110
|
'',
|
|
51
111
|
`RunBook: ${runbook_url_1.RUNBOOK_URL}`,
|
|
52
|
-
'',
|
|
53
|
-
`Direct link to Lambda function: ${(0, deep_link_1.lambdaFunctionUrl)(this.handler)}`,
|
|
54
112
|
].join('\n'),
|
|
55
113
|
comparisonOperator: aws_cloudwatch_1.ComparisonOperator.GREATER_THAN_OR_EQUAL_TO_THRESHOLD,
|
|
56
114
|
evaluationPeriods: 1,
|
|
@@ -70,4 +128,4 @@ class PackageStats extends constructs_1.Construct {
|
|
|
70
128
|
}
|
|
71
129
|
}
|
|
72
130
|
exports.PackageStats = PackageStats;
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZC9wYWNrYWdlLXN0YXRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF1QztBQUN2QywrREFNb0M7QUFDcEMsaURBQWlEO0FBQ2pELDBEQUEwRDtBQUMxRCx1REFBNEQ7QUFDNUQsbURBQXFEO0FBRXJELDJDQUF1QztBQUN2QywyQ0FBNEQ7QUFDNUQsbURBQTBEO0FBQzFELCtDQUFvRDtBQUVwRCxtREFBZ0Q7QUFDaEQsbURBQWtEO0FBdUNsRDs7R0FFRztBQUNILE1BQWEsWUFBYSxTQUFRLHNCQUFTO0lBaUJ6QyxZQUFtQixLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF3QjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFFaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLDRCQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUMxQyxXQUFXLEVBQUUsb0NBQW9DLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFO1lBQzFFLFdBQVcsRUFBRTtnQkFDWCxtQkFBbUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVU7Z0JBQzNDLGtCQUFrQixFQUFFLHVCQUFXO2dCQUMvQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVU7Z0JBQ3pDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxTQUFTO2FBQ2xDO1lBQ0QsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksd0JBQWEsQ0FBQyxTQUFTO1lBQzNELFVBQVUsRUFBRSxHQUFHO1lBQ2YsNEJBQTRCLEVBQUUsQ0FBQztZQUMvQixPQUFPLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzdCLE9BQU8sRUFBRSxvQkFBTyxDQUFDLFlBQVk7U0FDOUIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksSUFBSSxzQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RCxNQUFNLElBQUksR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUN6QyxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQzdDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRXpELElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV6QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTzthQUM5QixZQUFZLEVBQUU7YUFDZCxXQUFXLENBQUMsS0FBSyxFQUFFLHVCQUF1QixFQUFFO1lBQzNDLFNBQVMsRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSx3QkFBd0I7WUFDckQsZ0JBQWdCLEVBQUU7Z0JBQ2hCLG9DQUFvQztnQkFDcEMsRUFBRTtnQkFDRixZQUFZLHlCQUFXLEVBQUU7Z0JBQ3pCLEVBQUU7Z0JBQ0YsbUNBQW1DLElBQUEsNkJBQWlCLEVBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2FBQ3JFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNaLGtCQUFrQixFQUNoQixtQ0FBa0IsQ0FBQyxrQ0FBa0M7WUFDdkQsaUJBQWlCLEVBQUUsQ0FBQztZQUNwQixTQUFTLEVBQUUsQ0FBQztZQUNaLGdCQUFnQixFQUFFLGlDQUFnQixDQUFDLE9BQU87U0FDM0MsQ0FBQyxDQUFDO1FBQ0wsS0FBSyxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUIsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU0sbUJBQW1CLENBQUMsSUFBb0I7UUFDN0MsT0FBTyxJQUFJLHVCQUFNLENBQUM7WUFDaEIsTUFBTSxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUMzQixTQUFTLEVBQUUsMEJBQVMsQ0FBQyxPQUFPO1lBQzVCLEdBQUcsSUFBSTtZQUNQLFVBQVUsK0VBQTJDO1lBQ3JELFNBQVMsRUFBRSw2QkFBaUI7U0FDN0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBM0VELG9DQTJFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtcbiAgQ29tcGFyaXNvbk9wZXJhdG9yLFxuICBNZXRyaWMsXG4gIE1ldHJpY09wdGlvbnMsXG4gIFN0YXRpc3RpYyxcbiAgVHJlYXRNaXNzaW5nRGF0YSxcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0ICogYXMgZXZlbnRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnO1xuaW1wb3J0ICogYXMgdGFyZ2V0cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzLXRhcmdldHMnO1xuaW1wb3J0IHsgSUZ1bmN0aW9uLCBUcmFjaW5nIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBSZXRlbnRpb25EYXlzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHR5cGUgeyBJQnVja2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgTWV0cmljTmFtZSwgTUVUUklDU19OQU1FU1BBQ0UgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBQYWNrYWdlU3RhdHMgYXMgSGFuZGxlciB9IGZyb20gJy4vcGFja2FnZS1zdGF0cyc7XG5pbXBvcnQgeyBsYW1iZGFGdW5jdGlvblVybCB9IGZyb20gJy4uLy4uL2RlZXAtbGluayc7XG5pbXBvcnQgeyBNb25pdG9yaW5nIH0gZnJvbSAnLi4vLi4vbW9uaXRvcmluZyc7XG5pbXBvcnQgeyBSVU5CT09LX1VSTCB9IGZyb20gJy4uLy4uL3J1bmJvb2stdXJsJztcbmltcG9ydCB7IENBVEFMT0dfS0VZIH0gZnJvbSAnLi4vc2hhcmVkL2NvbnN0YW50cyc7XG5cbi8qKlxuICogUHJvcHMgZm9yIGBQYWNrYWdlU3RhdHNgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhY2thZ2VTdGF0c1Byb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBwYWNrYWdlIHN0b3JlIGJ1Y2tldCwgd2hpY2ggc2hvdWxkIGluY2x1ZGUgYm90aCB0aGVcbiAgICogY2F0YWxvZyBhbmQgc3RhdHMuXG4gICAqL1xuICByZWFkb25seSBidWNrZXQ6IElCdWNrZXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBtb25pdG9yaW5nIGhhbmRsZXIgdG8gcmVnaXN0ZXIgYWxhcm1zIHdpdGguXG4gICAqL1xuICByZWFkb25seSBtb25pdG9yaW5nOiBNb25pdG9yaW5nO1xuXG4gIC8qKlxuICAgKiBIb3cgbG9uZyBzaG91bGQgZXhlY3V0aW9uIGxvZ3MgYmUgcmV0YWluZWQ/XG4gICAqXG4gICAqIEBkZWZhdWx0IFJldGVudGlvbkRheXMuVEVOX1lFQVJTXG4gICAqL1xuICByZWFkb25seSBsb2dSZXRlbnRpb24/OiBSZXRlbnRpb25EYXlzO1xuXG4gIC8qKlxuICAgKiBIb3cgZnJlcXVlbnRseSBzaG91bGQgdGhlIHN0YXRzIGJlIHVwZGF0ZWQ/XG4gICAqXG4gICAqIE5QTSB1cGRhdGVzIHRoZWlyIGRvd25sb2FkIHN0YXRzIG9uY2UgYSBkYXkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gMSBkYXlcbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZVBlcmlvZD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUga2V5IG9mIHRoZSBvYmplY3Qgc3RvcmluZyB0aGUgcGFja2FnZSBzdGF0cy5cbiAgICovXG4gIHJlYWRvbmx5IG9iamVjdEtleTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBvciByZS1idWlsZHMgdGhlIGBzdGF0cy5qc29uYCBvYmplY3QgaW4gdGhlIGRlc2lnbmF0ZWQgYnVja2V0LlxuICovXG5leHBvcnQgY2xhc3MgUGFja2FnZVN0YXRzIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFRoZSBwYWNrYWdlIHN0b3JlIGJ1Y2tldCwgd2hpY2ggc2hvdWxkIGluY2x1ZGUgYm90aCB0aGVcbiAgICogY2F0YWxvZyBhbmQgc3RhdHMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYnVja2V0OiBJQnVja2V0O1xuXG4gIC8qKlxuICAgKiBUaGUgTGFtYmRhIGZ1bmN0aW9uIHRoYXQgcGVyaW9kaWNhbGx5IHVwZGF0ZXMgc3RhdHMuanNvbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBoYW5kbGVyOiBJRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBrZXkgb2YgdGhlIG9iamVjdCBzdG9yaW5nIHRoZSBwYWNrYWdlIHN0YXRzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YXRzS2V5OiBzdHJpbmc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQYWNrYWdlU3RhdHNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLmJ1Y2tldCA9IHByb3BzLmJ1Y2tldDtcbiAgICB0aGlzLnN0YXRzS2V5ID0gcHJvcHMub2JqZWN0S2V5O1xuXG4gICAgdGhpcy5oYW5kbGVyID0gbmV3IEhhbmRsZXIodGhpcywgJ0RlZmF1bHQnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogYENyZWF0ZXMgdGhlIHN0YXRzLmpzb24gb2JqZWN0IGluICR7cHJvcHMuYnVja2V0LmJ1Y2tldE5hbWV9YCxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIENBVEFMT0dfQlVDS0VUX05BTUU6IHRoaXMuYnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICAgIENBVEFMT0dfT0JKRUNUX0tFWTogQ0FUQUxPR19LRVksXG4gICAgICAgIFNUQVRTX0JVQ0tFVF9OQU1FOiB0aGlzLmJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgICBTVEFUU19PQkpFQ1RfS0VZOiBwcm9wcy5vYmplY3RLZXksXG4gICAgICB9LFxuICAgICAgbG9nUmV0ZW50aW9uOiBwcm9wcy5sb2dSZXRlbnRpb24gPz8gUmV0ZW50aW9uRGF5cy5URU5fWUVBUlMsXG4gICAgICBtZW1vcnlTaXplOiAyNTYsXG4gICAgICByZXNlcnZlZENvbmN1cnJlbnRFeGVjdXRpb25zOiAxLFxuICAgICAgdGltZW91dDogRHVyYXRpb24ubWludXRlcygxNSksXG4gICAgICB0cmFjaW5nOiBUcmFjaW5nLlBBU1NfVEhST1VHSCxcbiAgICB9KTtcblxuICAgIGNvbnN0IHVwZGF0ZVBlcmlvZCA9IHByb3BzLnVwZGF0ZVBlcmlvZCA/PyBEdXJhdGlvbi5kYXlzKDEpO1xuICAgIGNvbnN0IHJ1bGUgPSBuZXcgZXZlbnRzLlJ1bGUodGhpcywgJ1J1bGUnLCB7XG4gICAgICBzY2hlZHVsZTogZXZlbnRzLlNjaGVkdWxlLnJhdGUodXBkYXRlUGVyaW9kKSxcbiAgICB9KTtcbiAgICBydWxlLmFkZFRhcmdldChuZXcgdGFyZ2V0cy5MYW1iZGFGdW5jdGlvbih0aGlzLmhhbmRsZXIpKTtcblxuICAgIHRoaXMuYnVja2V0LmdyYW50UmVhZFdyaXRlKHRoaXMuaGFuZGxlcik7XG5cbiAgICBjb25zdCBmYWlsdXJlQWxhcm0gPSB0aGlzLmhhbmRsZXJcbiAgICAgIC5tZXRyaWNFcnJvcnMoKVxuICAgICAgLmNyZWF0ZUFsYXJtKHNjb3BlLCAnUGFja2FnZVN0YXRzL0ZhaWx1cmVzJywge1xuICAgICAgICBhbGFybU5hbWU6IGAke3Njb3BlLm5vZGUucGF0aH0vUGFja2FnZVN0YXRzL0ZhaWx1cmVzYCxcbiAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjogW1xuICAgICAgICAgICdUaGUgcGFja2FnZSBzdGF0cyBmdW5jdGlvbiBmYWlsZWQhJyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICBgUnVuQm9vazogJHtSVU5CT09LX1VSTH1gLFxuICAgICAgICAgICcnLFxuICAgICAgICAgIGBEaXJlY3QgbGluayB0byBMYW1iZGEgZnVuY3Rpb246ICR7bGFtYmRhRnVuY3Rpb25VcmwodGhpcy5oYW5kbGVyKX1gLFxuICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgICBjb21wYXJpc29uT3BlcmF0b3I6XG4gICAgICAgICAgQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgICAgICB0aHJlc2hvbGQ6IDEsXG4gICAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IFRyZWF0TWlzc2luZ0RhdGEuTUlTU0lORyxcbiAgICAgIH0pO1xuICAgIHByb3BzLm1vbml0b3JpbmcuYWRkTG93U2V2ZXJpdHlBbGFybSgnUGFja2FnZVN0YXRzIEZhaWx1cmVzJywgZmFpbHVyZUFsYXJtKTtcbiAgfVxuXG4gIHB1YmxpYyBtZXRyaWNQYWNrYWdlc0NvdW50KG9wdHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gbmV3IE1ldHJpYyh7XG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICBzdGF0aXN0aWM6IFN0YXRpc3RpYy5NQVhJTVVNLFxuICAgICAgLi4ub3B0cyxcbiAgICAgIG1ldHJpY05hbWU6IE1ldHJpY05hbWUuUkVHSVNURVJFRF9QQUNLQUdFU19XSVRIX1NUQVRTLFxuICAgICAgbmFtZXNwYWNlOiBNRVRSSUNTX05BTUVTUEFDRSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZC9wYWNrYWdlLXN0YXRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF1QztBQUN2QywrREFNb0M7QUFDcEMsaURBQWlEO0FBQ2pELDBEQUEwRDtBQUMxRCx1REFBNEQ7QUFDNUQsbURBQXFEO0FBRXJELHFEQUFxRDtBQUNyRCw2REFBNkQ7QUFDN0QsMkNBQXVDO0FBQ3ZDLDJDQUE0RDtBQUM1RCx5RUFBb0U7QUFDcEUsbUVBQThEO0FBQzlELHVFQUFrRTtBQUdsRSxtREFBZ0Q7QUFDaEQsbURBQWtEO0FBOENsRDs7R0FFRztBQUNILE1BQWEsWUFBYSxTQUFRLHNCQUFTO0lBd0J6QyxZQUFtQixLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF3QjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFFaEMsTUFBTSxTQUFTLEdBQUc7WUFDaEIsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVO1lBQzNDLGtCQUFrQixFQUFFLHVCQUFXO1lBQy9CLGlCQUFpQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVTtZQUN6QyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsU0FBUztZQUNqQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRTtTQUNoRCxDQUFDO1FBRUYsMEJBQTBCO1FBQzFCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSwyQ0FBbUIsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQzlELFdBQVcsRUFBRSx5REFBeUQ7WUFDdEUsV0FBVyxFQUFFLFNBQVM7WUFD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QUMsQ0FBQztRQUNMLEtBQUssQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsdUJBQXVCLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVNLG1CQUFtQixDQUFDLElBQW9CO1FBQzdDLE9BQU8sSUFBSSx1QkFBTSxDQUFDO1lBQ2hCLE1BQU0sRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDM0IsU0FBUyxFQUFFLDBCQUFTLENBQUMsT0FBTztZQUM1QixHQUFHLElBQUk7WUFDUCxVQUFVLCtFQUEyQztZQUNyRCxTQUFTLEVBQUUsNkJBQWlCO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXZKRCxvQ0F1SkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7XG4gIENvbXBhcmlzb25PcGVyYXRvcixcbiAgTWV0cmljLFxuICBNZXRyaWNPcHRpb25zLFxuICBTdGF0aXN0aWMsXG4gIFRyZWF0TWlzc2luZ0RhdGEsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCAqIGFzIGV2ZW50cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzJztcbmltcG9ydCAqIGFzIHRhcmdldHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cy10YXJnZXRzJztcbmltcG9ydCB7IElGdW5jdGlvbiwgVHJhY2luZyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgUmV0ZW50aW9uRGF5cyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCB0eXBlIHsgSUJ1Y2tldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgKiBhcyBzZm4gZnJvbSAnYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMnO1xuaW1wb3J0ICogYXMgdGFza3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMtdGFza3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBNZXRyaWNOYW1lLCBNRVRSSUNTX05BTUVTUEFDRSB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IFBhY2thZ2VTdGF0c0FnZ3JlZ2F0b3IgfSBmcm9tICcuL3BhY2thZ2Utc3RhdHMtYWdncmVnYXRvcic7XG5pbXBvcnQgeyBQYWNrYWdlU3RhdHNDaHVua2VyIH0gZnJvbSAnLi9wYWNrYWdlLXN0YXRzLWNodW5rZXInO1xuaW1wb3J0IHsgUGFja2FnZVN0YXRzUHJvY2Vzc29yIH0gZnJvbSAnLi9wYWNrYWdlLXN0YXRzLXByb2Nlc3Nvcic7XG5cbmltcG9ydCB7IE1vbml0b3JpbmcgfSBmcm9tICcuLi8uLi9tb25pdG9yaW5nJztcbmltcG9ydCB7IFJVTkJPT0tfVVJMIH0gZnJvbSAnLi4vLi4vcnVuYm9vay11cmwnO1xuaW1wb3J0IHsgQ0FUQUxPR19LRVkgfSBmcm9tICcuLi9zaGFyZWQvY29uc3RhbnRzJztcblxuLyoqXG4gKiBQcm9wcyBmb3IgYFBhY2thZ2VTdGF0c2AuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFja2FnZVN0YXRzUHJvcHMge1xuICAvKipcbiAgICogVGhlIHBhY2thZ2Ugc3RvcmUgYnVja2V0LCB3aGljaCBzaG91bGQgaW5jbHVkZSBib3RoIHRoZVxuICAgKiBjYXRhbG9nIGFuZCBzdGF0cy5cbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldDogSUJ1Y2tldDtcblxuICAvKipcbiAgICogVGhlIG1vbml0b3JpbmcgaGFuZGxlciB0byByZWdpc3RlciBhbGFybXMgd2l0aC5cbiAgICovXG4gIHJlYWRvbmx5IG1vbml0b3Jpbmc6IE1vbml0b3Jpbmc7XG5cbiAgLyoqXG4gICAqIEhvdyBsb25nIHNob3VsZCBleGVjdXRpb24gbG9ncyBiZSByZXRhaW5lZD9cbiAgICpcbiAgICogQGRlZmF1bHQgUmV0ZW50aW9uRGF5cy5URU5fWUVBUlNcbiAgICovXG4gIHJlYWRvbmx5IGxvZ1JldGVudGlvbj86IFJldGVudGlvbkRheXM7XG5cbiAgLyoqXG4gICAqIEhvdyBmcmVxdWVudGx5IHNob3VsZCB0aGUgc3RhdHMgYmUgdXBkYXRlZD9cbiAgICpcbiAgICogTlBNIHVwZGF0ZXMgdGhlaXIgZG93bmxvYWQgc3RhdHMgb25jZSBhIGRheS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSAxIGRheVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlUGVyaW9kPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBrZXkgb2YgdGhlIG9iamVjdCBzdG9yaW5nIHRoZSBwYWNrYWdlIHN0YXRzLlxuICAgKi9cbiAgcmVhZG9ubHkgb2JqZWN0S2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBwYWNrYWdlcyB0byBwcm9jZXNzIHBlciBjaHVuay5cbiAgICpcbiAgICogQGRlZmF1bHQgMTAwXG4gICAqL1xuICByZWFkb25seSBjaHVua1NpemU/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQnVpbGRzIG9yIHJlLWJ1aWxkcyB0aGUgYHN0YXRzLmpzb25gIG9iamVjdCBpbiB0aGUgZGVzaWduYXRlZCBidWNrZXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBQYWNrYWdlU3RhdHMgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVGhlIHBhY2thZ2Ugc3RvcmUgYnVja2V0LCB3aGljaCBzaG91bGQgaW5jbHVkZSBib3RoIHRoZVxuICAgKiBjYXRhbG9nIGFuZCBzdGF0cy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBidWNrZXQ6IElCdWNrZXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBTdGVwIEZ1bmN0aW9ucyBzdGF0ZSBtYWNoaW5lIHRoYXQgb3JjaGVzdHJhdGVzIHN0YXRzIHByb2Nlc3NpbmcuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhdGVNYWNoaW5lOiBzZm4uU3RhdGVNYWNoaW5lO1xuXG4gIC8qKlxuICAgKiBUaGUgTGFtYmRhIGZ1bmN0aW9ucyB1c2VkIGluIHRoZSBzdGF0ZSBtYWNoaW5lLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNodW5rZXJGdW5jdGlvbjogSUZ1bmN0aW9uO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvY2Vzc29yRnVuY3Rpb246IElGdW5jdGlvbjtcbiAgcHVibGljIHJlYWRvbmx5IGFnZ3JlZ2F0b3JGdW5jdGlvbjogSUZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUga2V5IG9mIHRoZSBvYmplY3Qgc3RvcmluZyB0aGUgcGFja2FnZSBzdGF0cy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzdGF0c0tleTogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUGFja2FnZVN0YXRzUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5idWNrZXQgPSBwcm9wcy5idWNrZXQ7XG4gICAgdGhpcy5zdGF0c0tleSA9IHByb3BzLm9iamVjdEtleTtcblxuICAgIGNvbnN0IGNvbW1vbkVudiA9IHtcbiAgICAgIENBVEFMT0dfQlVDS0VUX05BTUU6IHRoaXMuYnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICBDQVRBTE9HX09CSkVDVF9LRVk6IENBVEFMT0dfS0VZLFxuICAgICAgU1RBVFNfQlVDS0VUX05BTUU6IHRoaXMuYnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICBTVEFUU19PQkpFQ1RfS0VZOiBwcm9wcy5vYmplY3RLZXksXG4gICAgICBDSFVOS19TSVpFOiAocHJvcHMuY2h1bmtTaXplID8/IDEwMCkudG9TdHJpbmcoKSxcbiAgICB9O1xuXG4gICAgLy8gQ3JlYXRlIExhbWJkYSBmdW5jdGlvbnNcbiAgICB0aGlzLmNodW5rZXJGdW5jdGlvbiA9IG5ldyBQYWNrYWdlU3RhdHNDaHVua2VyKHRoaXMsICdDaHVua2VyJywge1xuICAgICAgZGVzY3JpcHRpb246ICdTcGxpdHMgcGFja2FnZSBsaXN0IGludG8gY2h1bmtzIGZvciBwYXJhbGxlbCBwcm9jZXNzaW5nJyxcbiAgICAgIGVudmlyb25tZW50OiBjb21tb25FbnYsXG4gICAgICBsb2dSZXRlbnRpb246IHByb3BzLmxvZ1JldGVudGlvbiA/PyBSZXRlbnRpb25EYXlzLlRFTl9ZRUFSUyxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICB0cmFjaW5nOiBUcmFjaW5nLlBBU1NfVEhST1VHSCxcbiAgICB9KTtcblxuICAgIHRoaXMucHJvY2Vzc29yRnVuY3Rpb24gPSBuZXcgUGFja2FnZVN0YXRzUHJvY2Vzc29yKHRoaXMsICdQcm9jZXNzb3InLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1Byb2Nlc3NlcyBhIGNodW5rIG9mIHBhY2thZ2VzIHRvIGdldCBOUE0gc3RhdHMnLFxuICAgICAgZW52aXJvbm1lbnQ6IGNvbW1vbkVudixcbiAgICAgIGxvZ1JldGVudGlvbjogcHJvcHMubG9nUmV0ZW50aW9uID8/IFJldGVudGlvbkRheXMuVEVOX1lFQVJTLFxuICAgICAgbWVtb3J5U2l6ZTogMTAyNCxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLm1pbnV0ZXMoMTApLFxuICAgICAgdHJhY2luZzogVHJhY2luZy5QQVNTX1RIUk9VR0gsXG4gICAgfSk7XG5cbiAgICB0aGlzLmFnZ3JlZ2F0b3JGdW5jdGlvbiA9IG5ldyBQYWNrYWdlU3RhdHNBZ2dyZWdhdG9yKHRoaXMsICdBZ2dyZWdhdG9yJywge1xuICAgICAgZGVzY3JpcHRpb246ICdBZ2dyZWdhdGVzIHByb2Nlc3NlZCBjaHVua3MgaW50byBmaW5hbCBzdGF0cy5qc29uJyxcbiAgICAgIGVudmlyb25tZW50OiBjb21tb25FbnYsXG4gICAgICBsb2dSZXRlbnRpb246IHByb3BzLmxvZ1JldGVudGlvbiA/PyBSZXRlbnRpb25EYXlzLlRFTl9ZRUFSUyxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICB0cmFjaW5nOiBUcmFjaW5nLlBBU1NfVEhST1VHSCxcbiAgICB9KTtcblxuICAgIC8vIEdyYW50IFMzIHBlcm1pc3Npb25zXG4gICAgdGhpcy5idWNrZXQuZ3JhbnRSZWFkV3JpdGUodGhpcy5jaHVua2VyRnVuY3Rpb24pO1xuICAgIHRoaXMuYnVja2V0LmdyYW50UmVhZFdyaXRlKHRoaXMucHJvY2Vzc29yRnVuY3Rpb24pO1xuICAgIHRoaXMuYnVja2V0LmdyYW50UmVhZFdyaXRlKHRoaXMuYWdncmVnYXRvckZ1bmN0aW9uKTtcblxuICAgIC8vIENyZWF0ZSBTdGVwIEZ1bmN0aW9ucyBzdGF0ZSBtYWNoaW5lXG4gICAgY29uc3QgY2h1bmtQYWNrYWdlcyA9IG5ldyB0YXNrcy5MYW1iZGFJbnZva2UodGhpcywgJ0NodW5rUGFja2FnZXMnLCB7XG4gICAgICBsYW1iZGFGdW5jdGlvbjogdGhpcy5jaHVua2VyRnVuY3Rpb24sXG4gICAgICByZXN1bHRQYXRoOiAnJC5jaHVua3MnLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcHJvY2Vzc0NodW5rc01hcCA9IG5ldyBzZm4uTWFwKHRoaXMsICdQcm9jZXNzQ2h1bmtzTWFwJywge1xuICAgICAgaXRlbXNQYXRoOiAnJC5jaHVua3MuUGF5bG9hZC5jaHVua3MnLFxuICAgICAgbWF4Q29uY3VycmVuY3k6IDEwLFxuICAgICAgcmVzdWx0UGF0aDogJyQucHJvY2Vzc1Jlc3VsdHMnLFxuICAgIH0pO1xuXG4gICAgcHJvY2Vzc0NodW5rc01hcC5pdGVtUHJvY2Vzc29yKFxuICAgICAgbmV3IHRhc2tzLkxhbWJkYUludm9rZSh0aGlzLCAnUHJvY2Vzc0NodW5rJywge1xuICAgICAgICBsYW1iZGFGdW5jdGlvbjogdGhpcy5wcm9jZXNzb3JGdW5jdGlvbixcbiAgICAgICAgaW5wdXRQYXRoOiAnJCcsXG4gICAgICB9KVxuICAgICAgICAuYWRkUmV0cnkoe1xuICAgICAgICAgIGVycm9yczogWydTdGF0ZXMuQUxMJ10sXG4gICAgICAgICAgbWF4QXR0ZW1wdHM6IDEsXG4gICAgICAgICAgYmFja29mZlJhdGU6IDEsXG4gICAgICAgICAgaW50ZXJ2YWw6IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICAgIH0pXG4gICAgICAgIC5hZGRDYXRjaChcbiAgICAgICAgICBuZXcgc2ZuLlBhc3ModGhpcywgJ1Byb2Nlc3NDaHVua0Vycm9yJywge1xuICAgICAgICAgICAgcmVzdWx0OiBzZm4uUmVzdWx0LmZyb21PYmplY3QoeyBlcnJvcjogJ0ZhaWxlZCB0byBwcm9jZXNzIGNodW5rJyB9KSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICByZXN1bHRQYXRoOiAnJC5lcnJvcicsXG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgKTtcblxuICAgIGNvbnN0IGFnZ3JlZ2F0ZVJlc3VsdHMgPSBuZXcgdGFza3MuTGFtYmRhSW52b2tlKHRoaXMsICdBZ2dyZWdhdGVSZXN1bHRzJywge1xuICAgICAgbGFtYmRhRnVuY3Rpb246IHRoaXMuYWdncmVnYXRvckZ1bmN0aW9uLFxuICAgICAgaW5wdXRQYXRoOiAnJCcsXG4gICAgfSk7XG5cbiAgICBjb25zdCBkZWZpbml0aW9uID0gY2h1bmtQYWNrYWdlc1xuICAgICAgLm5leHQocHJvY2Vzc0NodW5rc01hcClcbiAgICAgIC5uZXh0KGFnZ3JlZ2F0ZVJlc3VsdHMpO1xuXG4gICAgdGhpcy5zdGF0ZU1hY2hpbmUgPSBuZXcgc2ZuLlN0YXRlTWFjaGluZSh0aGlzLCAnU3RhdGVNYWNoaW5lJywge1xuICAgICAgZGVmaW5pdGlvbixcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLmhvdXJzKDYpLFxuICAgIH0pO1xuXG4gICAgLy8gU2NoZWR1bGUgdGhlIHN0YXRlIG1hY2hpbmVcbiAgICBjb25zdCB1cGRhdGVQZXJpb2QgPSBwcm9wcy51cGRhdGVQZXJpb2QgPz8gRHVyYXRpb24uZGF5cygxKTtcbiAgICBjb25zdCBydWxlID0gbmV3IGV2ZW50cy5SdWxlKHRoaXMsICdSdWxlJywge1xuICAgICAgc2NoZWR1bGU6IGV2ZW50cy5TY2hlZHVsZS5yYXRlKHVwZGF0ZVBlcmlvZCksXG4gICAgfSk7XG4gICAgcnVsZS5hZGRUYXJnZXQobmV3IHRhcmdldHMuU2ZuU3RhdGVNYWNoaW5lKHRoaXMuc3RhdGVNYWNoaW5lKSk7XG5cbiAgICAvLyBDcmVhdGUgYWxhcm1zXG4gICAgY29uc3QgZmFpbHVyZUFsYXJtID0gdGhpcy5zdGF0ZU1hY2hpbmVcbiAgICAgIC5tZXRyaWNGYWlsZWQoKVxuICAgICAgLmNyZWF0ZUFsYXJtKHNjb3BlLCAnUGFja2FnZVN0YXRzL0ZhaWx1cmVzJywge1xuICAgICAgICBhbGFybU5hbWU6IGAke3Njb3BlLm5vZGUucGF0aH0vUGFja2FnZVN0YXRzL0ZhaWx1cmVzYCxcbiAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjogW1xuICAgICAgICAgICdUaGUgcGFja2FnZSBzdGF0cyBzdGF0ZSBtYWNoaW5lIGZhaWxlZCEnLFxuICAgICAgICAgICcnLFxuICAgICAgICAgIGBSdW5Cb29rOiAke1JVTkJPT0tfVVJMfWAsXG4gICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjpcbiAgICAgICAgICBDb21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPX1RIUkVTSE9MRCxcbiAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgICAgdHJlYXRNaXNzaW5nRGF0YTogVHJlYXRNaXNzaW5nRGF0YS5NSVNTSU5HLFxuICAgICAgfSk7XG4gICAgcHJvcHMubW9uaXRvcmluZy5hZGRMb3dTZXZlcml0eUFsYXJtKCdQYWNrYWdlU3RhdHMgRmFpbHVyZXMnLCBmYWlsdXJlQWxhcm0pO1xuICB9XG5cbiAgcHVibGljIG1ldHJpY1BhY2thZ2VzQ291bnQob3B0cz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICAgIHN0YXRpc3RpYzogU3RhdGlzdGljLk1BWElNVU0sXG4gICAgICAuLi5vcHRzLFxuICAgICAgbWV0cmljTmFtZTogTWV0cmljTmFtZS5SRUdJU1RFUkVEX1BBQ0tBR0VTX1dJVEhfU1RBVFMsXG4gICAgICBuYW1lc3BhY2U6IE1FVFJJQ1NfTkFNRVNQQUNFLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
2
|
+
import { Construct } from 'constructs';
|
|
3
|
+
export interface PackageStatsAggregatorProps extends lambda.FunctionOptions {
|
|
4
|
+
}
|
|
5
|
+
export declare class PackageStatsAggregator extends lambda.Function {
|
|
6
|
+
constructor(scope: Construct, id: string, props?: PackageStatsAggregatorProps);
|
|
7
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PackageStatsAggregator = void 0;
|
|
4
|
+
// ~~ Generated by projen. To modify, edit .projenrc.ts and run "npx projen".
|
|
5
|
+
const path = require("path");
|
|
6
|
+
const lambda = require("aws-cdk-lib/aws-lambda");
|
|
7
|
+
class PackageStatsAggregator extends lambda.Function {
|
|
8
|
+
constructor(scope, id, props) {
|
|
9
|
+
super(scope, id, {
|
|
10
|
+
description: 'backend/package-stats/package-stats-aggregator.lambda.ts',
|
|
11
|
+
...props,
|
|
12
|
+
architecture: lambda.Architecture.ARM_64,
|
|
13
|
+
runtime: lambda.Runtime.NODEJS_22_X,
|
|
14
|
+
handler: 'index.handler',
|
|
15
|
+
code: lambda.Code.fromAsset(path.join(__dirname, '/package-stats-aggregator.lambda.bundle')),
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.PackageStatsAggregator = PackageStatsAggregator;
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS1zdGF0cy1hZ2dyZWdhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhY2tlbmQvcGFja2FnZS1zdGF0cy9wYWNrYWdlLXN0YXRzLWFnZ3JlZ2F0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkVBQTZFO0FBQzdFLDZCQUE2QjtBQUM3QixpREFBaUQ7QUFNakQsTUFBYSxzQkFBdUIsU0FBUSxNQUFNLENBQUMsUUFBUTtJQUN6RCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW1DO1FBQzNFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsV0FBVyxFQUFFLDBEQUEwRDtZQUN2RSxHQUFHLEtBQUs7WUFDUixZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNO1lBQ3hDLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDbkMsT0FBTyxFQUFFLGVBQWU7WUFDeEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLHlDQUF5QyxDQUFDLENBQUM7U0FDN0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBWEQsd0RBV0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB+fiBHZW5lcmF0ZWQgYnkgcHJvamVuLiBUbyBtb2RpZnksIGVkaXQgLnByb2plbnJjLnRzIGFuZCBydW4gXCJucHggcHJvamVuXCIuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFja2FnZVN0YXRzQWdncmVnYXRvclByb3BzIGV4dGVuZHMgbGFtYmRhLkZ1bmN0aW9uT3B0aW9ucyB7XG59XG5cbmV4cG9ydCBjbGFzcyBQYWNrYWdlU3RhdHNBZ2dyZWdhdG9yIGV4dGVuZHMgbGFtYmRhLkZ1bmN0aW9uIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBQYWNrYWdlU3RhdHNBZ2dyZWdhdG9yUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnYmFja2VuZC9wYWNrYWdlLXN0YXRzL3BhY2thZ2Utc3RhdHMtYWdncmVnYXRvci5sYW1iZGEudHMnLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBhcmNoaXRlY3R1cmU6IGxhbWJkYS5BcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzIyX1gsXG4gICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJy9wYWNrYWdlLXN0YXRzLWFnZ3JlZ2F0b3IubGFtYmRhLmJ1bmRsZScpKSxcbiAgICB9KTtcbiAgfVxufSJdfQ==
|