construct-hub 0.4.430 → 0.4.432
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 +96 -0
- package/lib/backend/orchestration/index.d.ts +5 -1
- package/lib/backend/orchestration/index.js +9 -2
- package/lib/backend/orchestration/read-uninstallable-report.d.ts +7 -0
- package/lib/backend/orchestration/read-uninstallable-report.js +20 -0
- package/lib/backend/orchestration/read-uninstallable-report.lambda.bundle/index.js +60016 -0
- package/lib/backend/orchestration/read-uninstallable-report.lambda.bundle/index.js.map +7 -0
- package/lib/backend/orchestration/read-uninstallable-report.lambda.d.ts +13 -0
- package/lib/backend/orchestration/read-uninstallable-report.lambda.js +33 -0
- package/lib/backend/orchestration/retry-uninstallable-packages.d.ts +19 -0
- package/lib/backend/orchestration/retry-uninstallable-packages.js +100 -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 +11 -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 +9 -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
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Context } from 'aws-lambda';
|
|
2
|
+
interface ProcessorResult {
|
|
3
|
+
chunkIndex: number;
|
|
4
|
+
chunkKey: string;
|
|
5
|
+
packageCount: number;
|
|
6
|
+
}
|
|
7
|
+
interface StepFunctionEvent {
|
|
8
|
+
processResults: Array<{
|
|
9
|
+
Payload: ProcessorResult;
|
|
10
|
+
}>;
|
|
11
|
+
}
|
|
12
|
+
export declare function handler(event: StepFunctionEvent, context: Context): Promise<void>;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handler = handler;
|
|
4
|
+
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
5
|
+
const aws_embedded_metrics_1 = require("aws-embedded-metrics");
|
|
6
|
+
const constants_1 = require("./constants");
|
|
7
|
+
const caching_1 = require("../../caching");
|
|
8
|
+
const aws_lambda_shared_1 = require("../shared/aws.lambda-shared");
|
|
9
|
+
const env_lambda_shared_1 = require("../shared/env.lambda-shared");
|
|
10
|
+
async function handler(event, context) {
|
|
11
|
+
const STATS_BUCKET_NAME = (0, env_lambda_shared_1.requireEnv)('STATS_BUCKET_NAME');
|
|
12
|
+
const STATS_OBJECT_KEY = (0, env_lambda_shared_1.requireEnv)('STATS_OBJECT_KEY');
|
|
13
|
+
const results = event.processResults.map((r) => r.Payload);
|
|
14
|
+
console.log(`Aggregating ${results.length} chunks`);
|
|
15
|
+
const currentDate = new Date().toISOString();
|
|
16
|
+
const aggregatedStats = {};
|
|
17
|
+
let failedChunks = 0;
|
|
18
|
+
// Read and aggregate all chunk results
|
|
19
|
+
for (const result of results) {
|
|
20
|
+
// Skip results that have errors (failed chunks)
|
|
21
|
+
if ('error' in result) {
|
|
22
|
+
console.warn(`Skipping failed chunk ${result.chunkIndex}`);
|
|
23
|
+
failedChunks++;
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
const response = await aws_lambda_shared_1.S3_CLIENT.send(new client_s3_1.GetObjectCommand({
|
|
28
|
+
Bucket: STATS_BUCKET_NAME,
|
|
29
|
+
Key: result.chunkKey,
|
|
30
|
+
}));
|
|
31
|
+
const chunkData = JSON.parse(await response.Body.transformToString());
|
|
32
|
+
Object.assign(aggregatedStats, chunkData);
|
|
33
|
+
// Clean up chunk file
|
|
34
|
+
await aws_lambda_shared_1.S3_CLIENT.send(new client_s3_1.DeleteObjectCommand({
|
|
35
|
+
Bucket: STATS_BUCKET_NAME,
|
|
36
|
+
Key: result.chunkKey,
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
console.error(`Failed to process chunk ${result.chunkIndex}:`, error);
|
|
41
|
+
failedChunks++;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const finalStats = {
|
|
45
|
+
packages: aggregatedStats,
|
|
46
|
+
updated: currentDate,
|
|
47
|
+
};
|
|
48
|
+
const statsCount = Object.keys(aggregatedStats).length;
|
|
49
|
+
console.log(`Aggregated stats for ${statsCount} packages (${failedChunks} chunks failed)`);
|
|
50
|
+
if (failedChunks > 0) {
|
|
51
|
+
console.warn(`Warning: ${failedChunks} chunks failed, stats may be incomplete`);
|
|
52
|
+
}
|
|
53
|
+
// Update metrics
|
|
54
|
+
await (0, aws_embedded_metrics_1.metricScope)((metrics) => async () => {
|
|
55
|
+
metrics.setDimensions({});
|
|
56
|
+
metrics.setNamespace(constants_1.METRICS_NAMESPACE);
|
|
57
|
+
metrics.putMetric("RegisteredPackagesWithStats" /* MetricName.REGISTERED_PACKAGES_WITH_STATS */, statsCount, aws_embedded_metrics_1.Unit.Count);
|
|
58
|
+
})();
|
|
59
|
+
// Upload final stats to S3
|
|
60
|
+
await aws_lambda_shared_1.S3_CLIENT.send(new client_s3_1.PutObjectCommand({
|
|
61
|
+
Bucket: STATS_BUCKET_NAME,
|
|
62
|
+
Key: STATS_OBJECT_KEY,
|
|
63
|
+
Body: JSON.stringify(finalStats, null, 2),
|
|
64
|
+
ContentType: 'application/json',
|
|
65
|
+
CacheControl: caching_1.CacheStrategy.default().toString(),
|
|
66
|
+
Metadata: {
|
|
67
|
+
'Lambda-Log-Group': context.logGroupName,
|
|
68
|
+
'Lambda-Log-Stream': context.logStreamName,
|
|
69
|
+
'Lambda-Run-Id': context.awsRequestId,
|
|
70
|
+
'Package-Stats-Count': `${statsCount}`,
|
|
71
|
+
},
|
|
72
|
+
}));
|
|
73
|
+
// Fail the state machine if any chunks failed
|
|
74
|
+
if (failedChunks > 0) {
|
|
75
|
+
throw new Error(`${failedChunks} chunks failed during processing`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS1zdGF0cy1hZ2dyZWdhdG9yLmxhbWJkYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWNrZW5kL3BhY2thZ2Utc3RhdHMvcGFja2FnZS1zdGF0cy1hZ2dyZWdhdG9yLmxhbWJkYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXdCQSwwQkE0RkM7QUFwSEQsa0RBSTRCO0FBQzVCLCtEQUF5RDtBQUV6RCwyQ0FBNEQ7QUFDNUQsMkNBQThDO0FBQzlDLG1FQUF3RDtBQUN4RCxtRUFBeUQ7QUFjbEQsS0FBSyxVQUFVLE9BQU8sQ0FBQyxLQUF3QixFQUFFLE9BQWdCO0lBQ3RFLE1BQU0saUJBQWlCLEdBQUcsSUFBQSw4QkFBVSxFQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDMUQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLDhCQUFVLEVBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUV4RCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNELE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxPQUFPLENBQUMsTUFBTSxTQUFTLENBQUMsQ0FBQztJQUVwRCxNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzdDLE1BQU0sZUFBZSxHQUFzRCxFQUFFLENBQUM7SUFDOUUsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBRXJCLHVDQUF1QztJQUN2QyxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzdCLGdEQUFnRDtRQUNoRCxJQUFJLE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLHlCQUF5QixNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUMzRCxZQUFZLEVBQUUsQ0FBQztZQUNmLFNBQVM7UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSw2QkFBUyxDQUFDLElBQUksQ0FDbkMsSUFBSSw0QkFBZ0IsQ0FBQztnQkFDbkIsTUFBTSxFQUFFLGlCQUFpQjtnQkFDekIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxRQUFRO2FBQ3JCLENBQUMsQ0FDSCxDQUFDO1lBRUYsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQyxJQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZFLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBRTFDLHNCQUFzQjtZQUN0QixNQUFNLDZCQUFTLENBQUMsSUFBSSxDQUNsQixJQUFJLCtCQUFtQixDQUFDO2dCQUN0QixNQUFNLEVBQUUsaUJBQWlCO2dCQUN6QixHQUFHLEVBQUUsTUFBTSxDQUFDLFFBQVE7YUFDckIsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLE1BQU0sQ0FBQyxVQUFVLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0RSxZQUFZLEVBQUUsQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHO1FBQ2pCLFFBQVEsRUFBRSxlQUFlO1FBQ3pCLE9BQU8sRUFBRSxXQUFXO0tBQ3JCLENBQUM7SUFFRixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN2RCxPQUFPLENBQUMsR0FBRyxDQUNULHdCQUF3QixVQUFVLGNBQWMsWUFBWSxpQkFBaUIsQ0FDOUUsQ0FBQztJQUVGLElBQUksWUFBWSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQ1YsWUFBWSxZQUFZLHlDQUF5QyxDQUNsRSxDQUFDO0lBQ0osQ0FBQztJQUVELGlCQUFpQjtJQUNqQixNQUFNLElBQUEsa0NBQVcsRUFBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDeEMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQixPQUFPLENBQUMsWUFBWSxDQUFDLDZCQUFpQixDQUFDLENBQUM7UUFDeEMsT0FBTyxDQUFDLFNBQVMsZ0ZBRWYsVUFBVSxFQUNWLDJCQUFJLENBQUMsS0FBSyxDQUNYLENBQUM7SUFDSixDQUFDLENBQUMsRUFBRSxDQUFDO0lBRUwsMkJBQTJCO0lBQzNCLE1BQU0sNkJBQVMsQ0FBQyxJQUFJLENBQ2xCLElBQUksNEJBQWdCLENBQUM7UUFDbkIsTUFBTSxFQUFFLGlCQUFpQjtRQUN6QixHQUFHLEVBQUUsZ0JBQWdCO1FBQ3JCLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLFdBQVcsRUFBRSxrQkFBa0I7UUFDL0IsWUFBWSxFQUFFLHVCQUFhLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQ2hELFFBQVEsRUFBRTtZQUNSLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxZQUFZO1lBQ3hDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxhQUFhO1lBQzFDLGVBQWUsRUFBRSxPQUFPLENBQUMsWUFBWTtZQUNyQyxxQkFBcUIsRUFBRSxHQUFHLFVBQVUsRUFBRTtTQUN2QztLQUNGLENBQUMsQ0FDSCxDQUFDO0lBRUYsOENBQThDO0lBQzlDLElBQUksWUFBWSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxZQUFZLGtDQUFrQyxDQUFDLENBQUM7SUFDckUsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBHZXRPYmplY3RDb21tYW5kLFxuICBQdXRPYmplY3RDb21tYW5kLFxuICBEZWxldGVPYmplY3RDb21tYW5kLFxufSBmcm9tICdAYXdzLXNkay9jbGllbnQtczMnO1xuaW1wb3J0IHsgbWV0cmljU2NvcGUsIFVuaXQgfSBmcm9tICdhd3MtZW1iZWRkZWQtbWV0cmljcyc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHQgfSBmcm9tICdhd3MtbGFtYmRhJztcbmltcG9ydCB7IE1ldHJpY05hbWUsIE1FVFJJQ1NfTkFNRVNQQUNFIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQ2FjaGVTdHJhdGVneSB9IGZyb20gJy4uLy4uL2NhY2hpbmcnO1xuaW1wb3J0IHsgUzNfQ0xJRU5UIH0gZnJvbSAnLi4vc2hhcmVkL2F3cy5sYW1iZGEtc2hhcmVkJztcbmltcG9ydCB7IHJlcXVpcmVFbnYgfSBmcm9tICcuLi9zaGFyZWQvZW52LmxhbWJkYS1zaGFyZWQnO1xuXG5pbnRlcmZhY2UgUHJvY2Vzc29yUmVzdWx0IHtcbiAgY2h1bmtJbmRleDogbnVtYmVyO1xuICBjaHVua0tleTogc3RyaW5nO1xuICBwYWNrYWdlQ291bnQ6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIFN0ZXBGdW5jdGlvbkV2ZW50IHtcbiAgcHJvY2Vzc1Jlc3VsdHM6IEFycmF5PHtcbiAgICBQYXlsb2FkOiBQcm9jZXNzb3JSZXN1bHQ7XG4gIH0+O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaGFuZGxlcihldmVudDogU3RlcEZ1bmN0aW9uRXZlbnQsIGNvbnRleHQ6IENvbnRleHQpIHtcbiAgY29uc3QgU1RBVFNfQlVDS0VUX05BTUUgPSByZXF1aXJlRW52KCdTVEFUU19CVUNLRVRfTkFNRScpO1xuICBjb25zdCBTVEFUU19PQkpFQ1RfS0VZID0gcmVxdWlyZUVudignU1RBVFNfT0JKRUNUX0tFWScpO1xuXG4gIGNvbnN0IHJlc3VsdHMgPSBldmVudC5wcm9jZXNzUmVzdWx0cy5tYXAoKHIpID0+IHIuUGF5bG9hZCk7XG4gIGNvbnNvbGUubG9nKGBBZ2dyZWdhdGluZyAke3Jlc3VsdHMubGVuZ3RofSBjaHVua3NgKTtcblxuICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgY29uc3QgYWdncmVnYXRlZFN0YXRzOiB7IFtrZXk6IHN0cmluZ106IHsgZG93bmxvYWRzOiB7IG5wbTogbnVtYmVyIH0gfSB9ID0ge307XG4gIGxldCBmYWlsZWRDaHVua3MgPSAwO1xuXG4gIC8vIFJlYWQgYW5kIGFnZ3JlZ2F0ZSBhbGwgY2h1bmsgcmVzdWx0c1xuICBmb3IgKGNvbnN0IHJlc3VsdCBvZiByZXN1bHRzKSB7XG4gICAgLy8gU2tpcCByZXN1bHRzIHRoYXQgaGF2ZSBlcnJvcnMgKGZhaWxlZCBjaHVua3MpXG4gICAgaWYgKCdlcnJvcicgaW4gcmVzdWx0KSB7XG4gICAgICBjb25zb2xlLndhcm4oYFNraXBwaW5nIGZhaWxlZCBjaHVuayAke3Jlc3VsdC5jaHVua0luZGV4fWApO1xuICAgICAgZmFpbGVkQ2h1bmtzKys7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBTM19DTElFTlQuc2VuZChcbiAgICAgICAgbmV3IEdldE9iamVjdENvbW1hbmQoe1xuICAgICAgICAgIEJ1Y2tldDogU1RBVFNfQlVDS0VUX05BTUUsXG4gICAgICAgICAgS2V5OiByZXN1bHQuY2h1bmtLZXksXG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgICBjb25zdCBjaHVua0RhdGEgPSBKU09OLnBhcnNlKGF3YWl0IHJlc3BvbnNlLkJvZHkhLnRyYW5zZm9ybVRvU3RyaW5nKCkpO1xuICAgICAgT2JqZWN0LmFzc2lnbihhZ2dyZWdhdGVkU3RhdHMsIGNodW5rRGF0YSk7XG5cbiAgICAgIC8vIENsZWFuIHVwIGNodW5rIGZpbGVcbiAgICAgIGF3YWl0IFMzX0NMSUVOVC5zZW5kKFxuICAgICAgICBuZXcgRGVsZXRlT2JqZWN0Q29tbWFuZCh7XG4gICAgICAgICAgQnVja2V0OiBTVEFUU19CVUNLRVRfTkFNRSxcbiAgICAgICAgICBLZXk6IHJlc3VsdC5jaHVua0tleSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBwcm9jZXNzIGNodW5rICR7cmVzdWx0LmNodW5rSW5kZXh9OmAsIGVycm9yKTtcbiAgICAgIGZhaWxlZENodW5rcysrO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGZpbmFsU3RhdHMgPSB7XG4gICAgcGFja2FnZXM6IGFnZ3JlZ2F0ZWRTdGF0cyxcbiAgICB1cGRhdGVkOiBjdXJyZW50RGF0ZSxcbiAgfTtcblxuICBjb25zdCBzdGF0c0NvdW50ID0gT2JqZWN0LmtleXMoYWdncmVnYXRlZFN0YXRzKS5sZW5ndGg7XG4gIGNvbnNvbGUubG9nKFxuICAgIGBBZ2dyZWdhdGVkIHN0YXRzIGZvciAke3N0YXRzQ291bnR9IHBhY2thZ2VzICgke2ZhaWxlZENodW5rc30gY2h1bmtzIGZhaWxlZClgXG4gICk7XG5cbiAgaWYgKGZhaWxlZENodW5rcyA+IDApIHtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICBgV2FybmluZzogJHtmYWlsZWRDaHVua3N9IGNodW5rcyBmYWlsZWQsIHN0YXRzIG1heSBiZSBpbmNvbXBsZXRlYFxuICAgICk7XG4gIH1cblxuICAvLyBVcGRhdGUgbWV0cmljc1xuICBhd2FpdCBtZXRyaWNTY29wZSgobWV0cmljcykgPT4gYXN5bmMgKCkgPT4ge1xuICAgIG1ldHJpY3Muc2V0RGltZW5zaW9ucyh7fSk7XG4gICAgbWV0cmljcy5zZXROYW1lc3BhY2UoTUVUUklDU19OQU1FU1BBQ0UpO1xuICAgIG1ldHJpY3MucHV0TWV0cmljKFxuICAgICAgTWV0cmljTmFtZS5SRUdJU1RFUkVEX1BBQ0tBR0VTX1dJVEhfU1RBVFMsXG4gICAgICBzdGF0c0NvdW50LFxuICAgICAgVW5pdC5Db3VudFxuICAgICk7XG4gIH0pKCk7XG5cbiAgLy8gVXBsb2FkIGZpbmFsIHN0YXRzIHRvIFMzXG4gIGF3YWl0IFMzX0NMSUVOVC5zZW5kKFxuICAgIG5ldyBQdXRPYmplY3RDb21tYW5kKHtcbiAgICAgIEJ1Y2tldDogU1RBVFNfQlVDS0VUX05BTUUsXG4gICAgICBLZXk6IFNUQVRTX09CSkVDVF9LRVksXG4gICAgICBCb2R5OiBKU09OLnN0cmluZ2lmeShmaW5hbFN0YXRzLCBudWxsLCAyKSxcbiAgICAgIENvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICBDYWNoZUNvbnRyb2w6IENhY2hlU3RyYXRlZ3kuZGVmYXVsdCgpLnRvU3RyaW5nKCksXG4gICAgICBNZXRhZGF0YToge1xuICAgICAgICAnTGFtYmRhLUxvZy1Hcm91cCc6IGNvbnRleHQubG9nR3JvdXBOYW1lLFxuICAgICAgICAnTGFtYmRhLUxvZy1TdHJlYW0nOiBjb250ZXh0LmxvZ1N0cmVhbU5hbWUsXG4gICAgICAgICdMYW1iZGEtUnVuLUlkJzogY29udGV4dC5hd3NSZXF1ZXN0SWQsXG4gICAgICAgICdQYWNrYWdlLVN0YXRzLUNvdW50JzogYCR7c3RhdHNDb3VudH1gLFxuICAgICAgfSxcbiAgICB9KVxuICApO1xuXG4gIC8vIEZhaWwgdGhlIHN0YXRlIG1hY2hpbmUgaWYgYW55IGNodW5rcyBmYWlsZWRcbiAgaWYgKGZhaWxlZENodW5rcyA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYCR7ZmFpbGVkQ2h1bmtzfSBjaHVua3MgZmFpbGVkIGR1cmluZyBwcm9jZXNzaW5nYCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
2
|
+
import { Construct } from 'constructs';
|
|
3
|
+
export interface PackageStatsChunkerProps extends lambda.FunctionOptions {
|
|
4
|
+
}
|
|
5
|
+
export declare class PackageStatsChunker extends lambda.Function {
|
|
6
|
+
constructor(scope: Construct, id: string, props?: PackageStatsChunkerProps);
|
|
7
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PackageStatsChunker = 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 PackageStatsChunker extends lambda.Function {
|
|
8
|
+
constructor(scope, id, props) {
|
|
9
|
+
super(scope, id, {
|
|
10
|
+
description: 'backend/package-stats/package-stats-chunker.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-chunker.lambda.bundle')),
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.PackageStatsChunker = PackageStatsChunker;
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS1zdGF0cy1jaHVua2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhY2tlbmQvcGFja2FnZS1zdGF0cy9wYWNrYWdlLXN0YXRzLWNodW5rZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkVBQTZFO0FBQzdFLDZCQUE2QjtBQUM3QixpREFBaUQ7QUFNakQsTUFBYSxtQkFBb0IsU0FBUSxNQUFNLENBQUMsUUFBUTtJQUN0RCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWdDO1FBQ3hFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsV0FBVyxFQUFFLHVEQUF1RDtZQUNwRSxHQUFHLEtBQUs7WUFDUixZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNO1lBQ3hDLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDbkMsT0FBTyxFQUFFLGVBQWU7WUFDeEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLHNDQUFzQyxDQUFDLENBQUM7U0FDMUYsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBWEQsa0RBV0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB+fiBHZW5lcmF0ZWQgYnkgcHJvamVuLiBUbyBtb2RpZnksIGVkaXQgLnByb2plbnJjLnRzIGFuZCBydW4gXCJucHggcHJvamVuXCIuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFja2FnZVN0YXRzQ2h1bmtlclByb3BzIGV4dGVuZHMgbGFtYmRhLkZ1bmN0aW9uT3B0aW9ucyB7XG59XG5cbmV4cG9ydCBjbGFzcyBQYWNrYWdlU3RhdHNDaHVua2VyIGV4dGVuZHMgbGFtYmRhLkZ1bmN0aW9uIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBQYWNrYWdlU3RhdHNDaHVua2VyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnYmFja2VuZC9wYWNrYWdlLXN0YXRzL3BhY2thZ2Utc3RhdHMtY2h1bmtlci5sYW1iZGEudHMnLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBhcmNoaXRlY3R1cmU6IGxhbWJkYS5BcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzIyX1gsXG4gICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJy9wYWNrYWdlLXN0YXRzLWNodW5rZXIubGFtYmRhLmJ1bmRsZScpKSxcbiAgICB9KTtcbiAgfVxufSJdfQ==
|