@beesolve/lambda-keep-active 1.1.1 → 1.1.2
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 +8 -5
- package/CHANGELOG.md +2 -0
- package/LICENSE +19 -202
- package/README.md +2 -0
- package/bun.lock +33 -751
- package/lib/cdk.d.ts +2 -2
- package/lib/cdk.js +10 -10
- package/lib/handler.lambda.js +7 -7
- package/lib/index.d.ts +2 -2
- package/lib/index.js +1 -1
- package/lib/runtime.js +4 -4
- package/lib/shared.js +2 -2
- package/package.json +9 -55
package/lib/cdk.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { IFunction } from
|
|
2
|
-
import { Construct } from
|
|
1
|
+
import type { IFunction } from "aws-cdk-lib/aws-lambda";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
3
|
export interface LambdaKeepActiveProps {
|
|
4
4
|
/**
|
|
5
5
|
* If disabled no logs are logged to CloudWatch
|
package/lib/cdk.js
CHANGED
|
@@ -13,37 +13,37 @@ const handler_function_1 = require("./handler-function");
|
|
|
13
13
|
class LambdaKeepActive extends constructs_1.Construct {
|
|
14
14
|
constructor(scope, id, props) {
|
|
15
15
|
super(scope, id);
|
|
16
|
-
const handler = new handler_function_1.HandlerFunction(this,
|
|
17
|
-
description:
|
|
16
|
+
const handler = new handler_function_1.HandlerFunction(this, "LambdaKeepActive", {
|
|
17
|
+
description: "LambdaKeepActive handler",
|
|
18
18
|
memorySize: 128,
|
|
19
19
|
timeout: aws_cdk_lib_1.Duration.minutes(5),
|
|
20
20
|
architecture: aws_lambda_1.Architecture.ARM_64,
|
|
21
21
|
environment: {
|
|
22
|
-
NODE_ENV:
|
|
22
|
+
NODE_ENV: "production",
|
|
23
23
|
ENABLE_LOGS: String(props?.enableLogs ?? true),
|
|
24
24
|
},
|
|
25
25
|
});
|
|
26
|
-
new aws_events_1.Rule(this,
|
|
26
|
+
new aws_events_1.Rule(this, "KeepActive", {
|
|
27
27
|
schedule: aws_events_1.Schedule.rate(aws_cdk_lib_1.Duration.days(3)),
|
|
28
28
|
targets: [
|
|
29
29
|
new aws_events_targets_1.LambdaFunction(handler, {
|
|
30
30
|
event: aws_events_1.RuleTargetInput.fromObject({
|
|
31
|
-
action:
|
|
31
|
+
action: "lambdaKeepActive",
|
|
32
32
|
}),
|
|
33
33
|
}),
|
|
34
34
|
],
|
|
35
35
|
});
|
|
36
36
|
handler.addToRolePolicy(new aws_iam_1.PolicyStatement({
|
|
37
|
-
actions: [
|
|
38
|
-
resources: [
|
|
37
|
+
actions: ["lambda:InvokeFunction", "tag:GetResources"],
|
|
38
|
+
resources: ["*"],
|
|
39
39
|
effect: aws_iam_1.Effect.ALLOW,
|
|
40
40
|
}));
|
|
41
41
|
}
|
|
42
42
|
keepActive(lambda) {
|
|
43
|
-
aws_cdk_lib_1.Tags.of(lambda).add(
|
|
43
|
+
aws_cdk_lib_1.Tags.of(lambda).add("keepActive", "true");
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
exports.LambdaKeepActive = LambdaKeepActive;
|
|
47
47
|
_a = JSII_RTTI_SYMBOL_1;
|
|
48
|
-
LambdaKeepActive[_a] = { fqn: "@beesolve/lambda-keep-active.LambdaKeepActive", version: "1.1.
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
LambdaKeepActive[_a] = { fqn: "@beesolve/lambda-keep-active.LambdaKeepActive", version: "1.1.2" };
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Nkay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUE2QztBQUM3Qyx1REFBeUU7QUFDekUsdUVBQWdFO0FBQ2hFLGlEQUE4RDtBQUU5RCx1REFBc0Q7QUFDdEQsMkNBQXVDO0FBQ3ZDLHlEQUFxRDtBQVdyRCxNQUFhLGdCQUFpQixTQUFRLHNCQUFTO0lBQzdDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNkI7UUFDckUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLE9BQU8sR0FBRyxJQUFJLGtDQUFlLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQzVELFdBQVcsRUFBRSwwQkFBMEI7WUFDdkMsVUFBVSxFQUFFLEdBQUc7WUFDZixPQUFPLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzVCLFlBQVksRUFBRSx5QkFBWSxDQUFDLE1BQU07WUFDakMsV0FBVyxFQUFFO2dCQUNYLFFBQVEsRUFBRSxZQUFZO2dCQUN0QixXQUFXLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxVQUFVLElBQUksSUFBSSxDQUFDO2FBQy9DO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxpQkFBSSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDM0IsUUFBUSxFQUFFLHFCQUFRLENBQUMsSUFBSSxDQUFDLHNCQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sRUFBRTtnQkFDUCxJQUFJLG1DQUFjLENBQUMsT0FBTyxFQUFFO29CQUMxQixLQUFLLEVBQUUsNEJBQWUsQ0FBQyxVQUFVLENBQUM7d0JBQ2hDLE1BQU0sRUFBRSxrQkFBa0I7cUJBQzNCLENBQUM7aUJBQ0gsQ0FBQzthQUNIO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLGVBQWUsQ0FDckIsSUFBSSx5QkFBZSxDQUFDO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixFQUFFLGtCQUFrQixDQUFDO1lBQ3RELFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztZQUNoQixNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO1NBQ3JCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVNLFVBQVUsQ0FBQyxNQUFpQjtRQUNqQyxrQkFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLENBQUM7O0FBckNILDRDQXNDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uLCBUYWdzIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBSdWxlLCBSdWxlVGFyZ2V0SW5wdXQsIFNjaGVkdWxlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHNcIjtcbmltcG9ydCB7IExhbWJkYUZ1bmN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0c1wiO1xuaW1wb3J0IHsgRWZmZWN0LCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHR5cGUgeyBJRnVuY3Rpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHsgQXJjaGl0ZWN0dXJlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBIYW5kbGVyRnVuY3Rpb24gfSBmcm9tIFwiLi9oYW5kbGVyLWZ1bmN0aW9uXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhS2VlcEFjdGl2ZVByb3BzIHtcbiAgLyoqXG4gICAqIElmIGRpc2FibGVkIG5vIGxvZ3MgYXJlIGxvZ2dlZCB0byBDbG91ZFdhdGNoXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZUxvZ3M/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgTGFtYmRhS2VlcEFjdGl2ZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogTGFtYmRhS2VlcEFjdGl2ZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGhhbmRsZXIgPSBuZXcgSGFuZGxlckZ1bmN0aW9uKHRoaXMsIFwiTGFtYmRhS2VlcEFjdGl2ZVwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJMYW1iZGFLZWVwQWN0aXZlIGhhbmRsZXJcIixcbiAgICAgIG1lbW9yeVNpemU6IDEyOCxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICBhcmNoaXRlY3R1cmU6IEFyY2hpdGVjdHVyZS5BUk1fNjQsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBOT0RFX0VOVjogXCJwcm9kdWN0aW9uXCIsXG4gICAgICAgIEVOQUJMRV9MT0dTOiBTdHJpbmcocHJvcHM/LmVuYWJsZUxvZ3MgPz8gdHJ1ZSksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgbmV3IFJ1bGUodGhpcywgXCJLZWVwQWN0aXZlXCIsIHtcbiAgICAgIHNjaGVkdWxlOiBTY2hlZHVsZS5yYXRlKER1cmF0aW9uLmRheXMoMykpLFxuICAgICAgdGFyZ2V0czogW1xuICAgICAgICBuZXcgTGFtYmRhRnVuY3Rpb24oaGFuZGxlciwge1xuICAgICAgICAgIGV2ZW50OiBSdWxlVGFyZ2V0SW5wdXQuZnJvbU9iamVjdCh7XG4gICAgICAgICAgICBhY3Rpb246IFwibGFtYmRhS2VlcEFjdGl2ZVwiLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBoYW5kbGVyLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXCJsYW1iZGE6SW52b2tlRnVuY3Rpb25cIiwgXCJ0YWc6R2V0UmVzb3VyY2VzXCJdLFxuICAgICAgICByZXNvdXJjZXM6IFtcIipcIl0sXG4gICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBrZWVwQWN0aXZlKGxhbWJkYTogSUZ1bmN0aW9uKSB7XG4gICAgVGFncy5vZihsYW1iZGEpLmFkZChcImtlZXBBY3RpdmVcIiwgXCJ0cnVlXCIpO1xuICB9XG59XG4iXX0=
|
package/lib/handler.lambda.js
CHANGED
|
@@ -6,33 +6,33 @@ const client_resource_groups_tagging_api_1 = require("@aws-sdk/client-resource-g
|
|
|
6
6
|
const shared_1 = require("./shared");
|
|
7
7
|
const lambdaClient = new client_lambda_1.LambdaClient();
|
|
8
8
|
const taggingClient = new client_resource_groups_tagging_api_1.ResourceGroupsTaggingAPIClient();
|
|
9
|
-
const enableLogs = process.env.ENABLE_LOGS ===
|
|
9
|
+
const enableLogs = process.env.ENABLE_LOGS === "true";
|
|
10
10
|
const handler = async (event) => {
|
|
11
11
|
const { action } = event;
|
|
12
12
|
if (action == null)
|
|
13
13
|
return;
|
|
14
|
-
if (action !==
|
|
14
|
+
if (action !== "lambdaKeepActive")
|
|
15
15
|
return;
|
|
16
16
|
let nextToken;
|
|
17
17
|
do {
|
|
18
18
|
const { ResourceTagMappingList = [], PaginationToken } = await taggingClient.send(new client_resource_groups_tagging_api_1.GetResourcesCommand({
|
|
19
|
-
ResourceTypeFilters: [
|
|
19
|
+
ResourceTypeFilters: ["lambda:function"],
|
|
20
20
|
ResourcesPerPage: 25,
|
|
21
|
-
TagFilters: [{ Key:
|
|
21
|
+
TagFilters: [{ Key: "keepActive", Values: ["true"] }],
|
|
22
22
|
PaginationToken: nextToken,
|
|
23
23
|
}));
|
|
24
24
|
nextToken = PaginationToken;
|
|
25
25
|
await Promise.all(ResourceTagMappingList.map(async (resource) => {
|
|
26
26
|
await lambdaClient.send(new client_lambda_1.InvokeCommand({
|
|
27
27
|
FunctionName: resource.ResourceARN,
|
|
28
|
-
InvocationType:
|
|
28
|
+
InvocationType: "Event",
|
|
29
29
|
Payload: JSON.stringify({ [shared_1.keepActivePing]: true }),
|
|
30
30
|
}));
|
|
31
31
|
if (enableLogs) {
|
|
32
32
|
console.info(`Invoked ${resource.ResourceARN}`);
|
|
33
33
|
}
|
|
34
34
|
}));
|
|
35
|
-
} while (nextToken != null && nextToken !==
|
|
35
|
+
} while (nextToken != null && nextToken !== "");
|
|
36
36
|
};
|
|
37
37
|
exports.handler = handler;
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5sYW1iZGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaGFuZGxlci5sYW1iZGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBQXFFO0FBQ3JFLG9HQUdxRDtBQUNyRCxxQ0FBMEM7QUFFMUMsTUFBTSxZQUFZLEdBQUcsSUFBSSw0QkFBWSxFQUFFLENBQUM7QUFDeEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxtRUFBOEIsRUFBRSxDQUFDO0FBQzNELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxLQUFLLE1BQU0sQ0FBQztBQUUvQyxNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsS0FBcUMsRUFBRSxFQUFFO0lBQ3JFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFFekIsSUFBSSxNQUFNLElBQUksSUFBSTtRQUFFLE9BQU87SUFDM0IsSUFBSSxNQUFNLEtBQUssa0JBQWtCO1FBQUUsT0FBTztJQUUxQyxJQUFJLFNBQTZCLENBQUM7SUFDbEMsR0FBRyxDQUFDO1FBQ0YsTUFBTSxFQUFFLHNCQUFzQixHQUFHLEVBQUUsRUFBRSxlQUFlLEVBQUUsR0FDcEQsTUFBTSxhQUFhLENBQUMsSUFBSSxDQUN0QixJQUFJLHdEQUFtQixDQUFDO1lBQ3RCLG1CQUFtQixFQUFFLENBQUMsaUJBQWlCLENBQUM7WUFDeEMsZ0JBQWdCLEVBQUUsRUFBRTtZQUNwQixVQUFVLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNyRCxlQUFlLEVBQUUsU0FBUztTQUMzQixDQUFDLENBQ0gsQ0FBQztRQUVKLFNBQVMsR0FBRyxlQUFlLENBQUM7UUFFNUIsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDNUMsTUFBTSxZQUFZLENBQUMsSUFBSSxDQUNyQixJQUFJLDZCQUFhLENBQUM7Z0JBQ2hCLFlBQVksRUFBRSxRQUFRLENBQUMsV0FBVztnQkFDbEMsY0FBYyxFQUFFLE9BQU87Z0JBQ3ZCLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyx1QkFBYyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDcEQsQ0FBQyxDQUNILENBQUM7WUFFRixJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUNsRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUMsUUFBUSxTQUFTLElBQUksSUFBSSxJQUFJLFNBQVMsS0FBSyxFQUFFLEVBQUU7QUFDbEQsQ0FBQyxDQUFDO0FBcENXLFFBQUEsT0FBTyxXQW9DbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnZva2VDb21tYW5kLCBMYW1iZGFDbGllbnQgfSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWxhbWJkYVwiO1xuaW1wb3J0IHtcbiAgR2V0UmVzb3VyY2VzQ29tbWFuZCxcbiAgUmVzb3VyY2VHcm91cHNUYWdnaW5nQVBJQ2xpZW50LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LXJlc291cmNlLWdyb3Vwcy10YWdnaW5nLWFwaVwiO1xuaW1wb3J0IHsga2VlcEFjdGl2ZVBpbmcgfSBmcm9tIFwiLi9zaGFyZWRcIjtcblxuY29uc3QgbGFtYmRhQ2xpZW50ID0gbmV3IExhbWJkYUNsaWVudCgpO1xuY29uc3QgdGFnZ2luZ0NsaWVudCA9IG5ldyBSZXNvdXJjZUdyb3Vwc1RhZ2dpbmdBUElDbGllbnQoKTtcbmNvbnN0IGVuYWJsZUxvZ3MgPSBwcm9jZXNzLmVudi5FTkFCTEVfTE9HUyA9PT0gXCJ0cnVlXCI7XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVyID0gYXN5bmMgKGV2ZW50OiB7IGFjdGlvbjogXCJsYW1iZGFLZWVwQWN0aXZlXCIgfSkgPT4ge1xuICBjb25zdCB7IGFjdGlvbiB9ID0gZXZlbnQ7XG5cbiAgaWYgKGFjdGlvbiA9PSBudWxsKSByZXR1cm47XG4gIGlmIChhY3Rpb24gIT09IFwibGFtYmRhS2VlcEFjdGl2ZVwiKSByZXR1cm47XG5cbiAgbGV0IG5leHRUb2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBkbyB7XG4gICAgY29uc3QgeyBSZXNvdXJjZVRhZ01hcHBpbmdMaXN0ID0gW10sIFBhZ2luYXRpb25Ub2tlbiB9ID1cbiAgICAgIGF3YWl0IHRhZ2dpbmdDbGllbnQuc2VuZChcbiAgICAgICAgbmV3IEdldFJlc291cmNlc0NvbW1hbmQoe1xuICAgICAgICAgIFJlc291cmNlVHlwZUZpbHRlcnM6IFtcImxhbWJkYTpmdW5jdGlvblwiXSxcbiAgICAgICAgICBSZXNvdXJjZXNQZXJQYWdlOiAyNSxcbiAgICAgICAgICBUYWdGaWx0ZXJzOiBbeyBLZXk6IFwia2VlcEFjdGl2ZVwiLCBWYWx1ZXM6IFtcInRydWVcIl0gfV0sXG4gICAgICAgICAgUGFnaW5hdGlvblRva2VuOiBuZXh0VG9rZW4sXG4gICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgIG5leHRUb2tlbiA9IFBhZ2luYXRpb25Ub2tlbjtcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgUmVzb3VyY2VUYWdNYXBwaW5nTGlzdC5tYXAoYXN5bmMgKHJlc291cmNlKSA9PiB7XG4gICAgICAgIGF3YWl0IGxhbWJkYUNsaWVudC5zZW5kKFxuICAgICAgICAgIG5ldyBJbnZva2VDb21tYW5kKHtcbiAgICAgICAgICAgIEZ1bmN0aW9uTmFtZTogcmVzb3VyY2UuUmVzb3VyY2VBUk4sXG4gICAgICAgICAgICBJbnZvY2F0aW9uVHlwZTogXCJFdmVudFwiLFxuICAgICAgICAgICAgUGF5bG9hZDogSlNPTi5zdHJpbmdpZnkoeyBba2VlcEFjdGl2ZVBpbmddOiB0cnVlIH0pLFxuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChlbmFibGVMb2dzKSB7XG4gICAgICAgICAgY29uc29sZS5pbmZvKGBJbnZva2VkICR7cmVzb3VyY2UuUmVzb3VyY2VBUk59YCk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICk7XG4gIH0gd2hpbGUgKG5leHRUb2tlbiAhPSBudWxsICYmIG5leHRUb2tlbiAhPT0gXCJcIik7XG59O1xuIl19
|
package/lib/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
1
|
+
export * from "./cdk";
|
|
2
|
+
export * from "./runtime";
|
package/lib/index.js
CHANGED
|
@@ -16,4 +16,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./cdk"), exports);
|
|
18
18
|
__exportStar(require("./runtime"), exports);
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdDQUFzQjtBQUN0Qiw0Q0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9jZGtcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bnRpbWVcIjtcbiJdfQ==
|
package/lib/runtime.js
CHANGED
|
@@ -6,7 +6,7 @@ const shared_1 = require("./shared");
|
|
|
6
6
|
function keptActive(handler, options) {
|
|
7
7
|
return (event, context) => {
|
|
8
8
|
if (event != null &&
|
|
9
|
-
typeof event ===
|
|
9
|
+
typeof event === "object" &&
|
|
10
10
|
shared_1.keepActivePing in event &&
|
|
11
11
|
event[shared_1.keepActivePing] === true) {
|
|
12
12
|
if (options?.enableLogs) {
|
|
@@ -19,10 +19,10 @@ function keptActive(handler, options) {
|
|
|
19
19
|
}
|
|
20
20
|
function keptActiveFetch(fetch, options) {
|
|
21
21
|
return async (request) => {
|
|
22
|
-
if (request.url ===
|
|
22
|
+
if (request.url === "https://lambda/") {
|
|
23
23
|
const event = await request.json();
|
|
24
24
|
if (event != null &&
|
|
25
|
-
typeof event ===
|
|
25
|
+
typeof event === "object" &&
|
|
26
26
|
shared_1.keepActivePing in event &&
|
|
27
27
|
event[shared_1.keepActivePing] === true) {
|
|
28
28
|
if (options?.enableLogs) {
|
|
@@ -39,4 +39,4 @@ function keptActiveFetch(fetch, options) {
|
|
|
39
39
|
return fetch(request);
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9ydW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBV0EsZ0NBbUJDO0FBRUQsMENBK0JDO0FBL0RELHFDQUEwQztBQVcxQyxTQUFnQixVQUFVLENBQ3hCLE9BQThELEVBQzlELE9BQTJCO0lBRTNCLE9BQU8sQ0FBQyxLQUFZLEVBQUUsT0FBZ0IsRUFBRSxFQUFFO1FBQ3hDLElBQ0UsS0FBSyxJQUFJLElBQUk7WUFDYixPQUFPLEtBQUssS0FBSyxRQUFRO1lBQ3pCLHVCQUFjLElBQUksS0FBSztZQUN2QixLQUFLLENBQUMsdUJBQWMsQ0FBQyxLQUFLLElBQUksRUFDOUIsQ0FBQztZQUNELElBQUksT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDO2dCQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFxQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3RCxDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLGVBQWUsQ0FDN0IsS0FBOEMsRUFDOUMsT0FBMkI7SUFFM0IsT0FBTyxLQUFLLEVBQUUsT0FBZ0IsRUFBRSxFQUFFO1FBQ2hDLElBQUksT0FBTyxDQUFDLEdBQUcsS0FBSyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sS0FBSyxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBRW5DLElBQ0UsS0FBSyxJQUFJLElBQUk7Z0JBQ2IsT0FBTyxLQUFLLEtBQUssUUFBUTtnQkFDekIsdUJBQWMsSUFBSSxLQUFLO2dCQUN2QixLQUFLLENBQUMsdUJBQWMsQ0FBQyxLQUFLLElBQUksRUFDOUIsQ0FBQztnQkFDRCxJQUFJLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQztvQkFDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzdELENBQUM7Z0JBQ0QsT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLENBQUM7WUFFRCxPQUFPLEtBQUssQ0FDVixJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO2dCQUN2QixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07Z0JBQ3RCLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztnQkFDM0IsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO2FBQ3pCLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hCLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBrZWVwQWN0aXZlUGluZyB9IGZyb20gXCIuL3NoYXJlZFwiO1xuXG5pbnRlcmZhY2UgS2VwdEFjdGl2ZU9wdGlvbnMge1xuICAvKipcbiAgICogSWYgZGlzYWJsZWQgbm8gbG9ncyBhcmUgbG9nZ2VkIHRvIENsb3VkV2F0Y2hcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlTG9ncz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBrZXB0QWN0aXZlPEV2ZW50ID0gYW55LCBDb250ZXh0ID0gYW55LCBSZXNwb25zZSA9IGFueT4oXG4gIGhhbmRsZXI6IChldmVudDogRXZlbnQsIGNvbnRleHQ6IENvbnRleHQpID0+IFByb21pc2U8UmVzcG9uc2U+LFxuICBvcHRpb25zPzogS2VwdEFjdGl2ZU9wdGlvbnMsXG4pIHtcbiAgcmV0dXJuIChldmVudDogRXZlbnQsIGNvbnRleHQ6IENvbnRleHQpID0+IHtcbiAgICBpZiAoXG4gICAgICBldmVudCAhPSBudWxsICYmXG4gICAgICB0eXBlb2YgZXZlbnQgPT09IFwib2JqZWN0XCIgJiZcbiAgICAgIGtlZXBBY3RpdmVQaW5nIGluIGV2ZW50ICYmXG4gICAgICBldmVudFtrZWVwQWN0aXZlUGluZ10gPT09IHRydWVcbiAgICApIHtcbiAgICAgIGlmIChvcHRpb25zPy5lbmFibGVMb2dzKSB7XG4gICAgICAgIGNvbnNvbGUuaW5mbyhgS2VlcCBhY3RpdmUgcGluZzogJHtKU09OLnN0cmluZ2lmeShldmVudCl9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuIGhhbmRsZXIoZXZlbnQsIGNvbnRleHQpO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24ga2VwdEFjdGl2ZUZldGNoKFxuICBmZXRjaDogKHJlcXVlc3Q6IFJlcXVlc3QpID0+IFByb21pc2U8UmVzcG9uc2U+LFxuICBvcHRpb25zPzogS2VwdEFjdGl2ZU9wdGlvbnMsXG4pIHtcbiAgcmV0dXJuIGFzeW5jIChyZXF1ZXN0OiBSZXF1ZXN0KSA9PiB7XG4gICAgaWYgKHJlcXVlc3QudXJsID09PSBcImh0dHBzOi8vbGFtYmRhL1wiKSB7XG4gICAgICBjb25zdCBldmVudCA9IGF3YWl0IHJlcXVlc3QuanNvbigpO1xuXG4gICAgICBpZiAoXG4gICAgICAgIGV2ZW50ICE9IG51bGwgJiZcbiAgICAgICAgdHlwZW9mIGV2ZW50ID09PSBcIm9iamVjdFwiICYmXG4gICAgICAgIGtlZXBBY3RpdmVQaW5nIGluIGV2ZW50ICYmXG4gICAgICAgIGV2ZW50W2tlZXBBY3RpdmVQaW5nXSA9PT0gdHJ1ZVxuICAgICAgKSB7XG4gICAgICAgIGlmIChvcHRpb25zPy5lbmFibGVMb2dzKSB7XG4gICAgICAgICAgY29uc29sZS5pbmZvKGBLZWVwIGFjdGl2ZSBwaW5nOiAke0pTT04uc3RyaW5naWZ5KGV2ZW50KX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFJlc3BvbnNlKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmZXRjaChcbiAgICAgICAgbmV3IFJlcXVlc3QocmVxdWVzdC51cmwsIHtcbiAgICAgICAgICBtZXRob2Q6IHJlcXVlc3QubWV0aG9kLFxuICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGV2ZW50KSxcbiAgICAgICAgICBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnMsXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmV0Y2gocmVxdWVzdCk7XG4gIH07XG59XG4iXX0=
|
package/lib/shared.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.keepActivePing = void 0;
|
|
4
|
-
exports.keepActivePing =
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
exports.keepActivePing = "$$keepActivePing$$";
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NoYXJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLGNBQWMsR0FBRyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBrZWVwQWN0aXZlUGluZyA9IFwiJCRrZWVwQWN0aXZlUGluZyQkXCI7XG4iXX0=
|
package/package.json
CHANGED
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
"bundle": "npx projen bundle",
|
|
12
12
|
"bundle:handler.lambda": "npx projen bundle:handler.lambda",
|
|
13
13
|
"bundle:handler.lambda:watch": "npx projen bundle:handler.lambda:watch",
|
|
14
|
-
"clobber": "npx projen clobber",
|
|
15
14
|
"compat": "npx projen compat",
|
|
16
15
|
"compile": "npx projen compile",
|
|
17
16
|
"default": "npx projen default",
|
|
@@ -27,7 +26,6 @@
|
|
|
27
26
|
"publish:git": "npx projen publish:git",
|
|
28
27
|
"release": "npx projen release",
|
|
29
28
|
"test": "npx projen test",
|
|
30
|
-
"test:watch": "npx projen test:watch",
|
|
31
29
|
"unbump": "npx projen unbump",
|
|
32
30
|
"upgrade": "npx projen upgrade",
|
|
33
31
|
"watch": "npx projen watch",
|
|
@@ -41,8 +39,6 @@
|
|
|
41
39
|
"devDependencies": {
|
|
42
40
|
"@aws-sdk/client-lambda": "^3.943.0",
|
|
43
41
|
"@aws-sdk/client-resource-groups-tagging-api": "^3.943.0",
|
|
44
|
-
"@stylistic/eslint-plugin": "^2",
|
|
45
|
-
"@types/jest": "^30.0.0",
|
|
46
42
|
"@types/node": "^24.10.1",
|
|
47
43
|
"@typescript-eslint/eslint-plugin": "^8",
|
|
48
44
|
"@typescript-eslint/parser": "^8",
|
|
@@ -51,17 +47,17 @@
|
|
|
51
47
|
"constructs": "10.4.3",
|
|
52
48
|
"esbuild": "^0.27.0",
|
|
53
49
|
"eslint": "^9",
|
|
50
|
+
"eslint-config-prettier": "^10.1.8",
|
|
54
51
|
"eslint-import-resolver-typescript": "^4.4.4",
|
|
55
52
|
"eslint-plugin-import": "^2.32.0",
|
|
56
|
-
"
|
|
57
|
-
"jest-junit": "^16",
|
|
53
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
58
54
|
"jsii": "~5.9.0",
|
|
59
55
|
"jsii-diff": "^1.120.0",
|
|
60
56
|
"jsii-docgen": "^10.5.0",
|
|
61
57
|
"jsii-pacmak": "^1.120.0",
|
|
62
58
|
"jsii-rosetta": "~5.9.0",
|
|
59
|
+
"prettier": "^3.7.4",
|
|
63
60
|
"projen": "^0.98.28",
|
|
64
|
-
"ts-jest": "^29.4.6",
|
|
65
61
|
"ts-node": "^10.9.2",
|
|
66
62
|
"typescript": "^5.9.3",
|
|
67
63
|
"yaml": "^2.8.1"
|
|
@@ -71,59 +67,17 @@
|
|
|
71
67
|
"constructs": "^10.4.3"
|
|
72
68
|
},
|
|
73
69
|
"keywords": [
|
|
74
|
-
"
|
|
70
|
+
"active",
|
|
71
|
+
"aws",
|
|
72
|
+
"cdk",
|
|
73
|
+
"lambda"
|
|
75
74
|
],
|
|
76
75
|
"main": "lib/index.js",
|
|
77
|
-
"license": "
|
|
76
|
+
"license": "MIT",
|
|
78
77
|
"publishConfig": {
|
|
79
78
|
"access": "public"
|
|
80
79
|
},
|
|
81
|
-
"version": "1.1.
|
|
82
|
-
"jest": {
|
|
83
|
-
"coverageProvider": "v8",
|
|
84
|
-
"testMatch": [
|
|
85
|
-
"<rootDir>/@(src|test)/**/*(*.)@(spec|test).ts?(x)",
|
|
86
|
-
"<rootDir>/@(src|test)/**/__tests__/**/*.ts?(x)",
|
|
87
|
-
"<rootDir>/@(projenrc)/**/*(*.)@(spec|test).ts?(x)",
|
|
88
|
-
"<rootDir>/@(projenrc)/**/__tests__/**/*.ts?(x)"
|
|
89
|
-
],
|
|
90
|
-
"clearMocks": true,
|
|
91
|
-
"collectCoverage": true,
|
|
92
|
-
"coverageReporters": [
|
|
93
|
-
"json",
|
|
94
|
-
"lcov",
|
|
95
|
-
"clover",
|
|
96
|
-
"cobertura",
|
|
97
|
-
"text"
|
|
98
|
-
],
|
|
99
|
-
"coverageDirectory": "coverage",
|
|
100
|
-
"coveragePathIgnorePatterns": [
|
|
101
|
-
"/node_modules/"
|
|
102
|
-
],
|
|
103
|
-
"testPathIgnorePatterns": [
|
|
104
|
-
"/node_modules/"
|
|
105
|
-
],
|
|
106
|
-
"watchPathIgnorePatterns": [
|
|
107
|
-
"/node_modules/"
|
|
108
|
-
],
|
|
109
|
-
"reporters": [
|
|
110
|
-
"default",
|
|
111
|
-
[
|
|
112
|
-
"jest-junit",
|
|
113
|
-
{
|
|
114
|
-
"outputDirectory": "test-reports"
|
|
115
|
-
}
|
|
116
|
-
]
|
|
117
|
-
],
|
|
118
|
-
"transform": {
|
|
119
|
-
"^.+\\.[t]sx?$": [
|
|
120
|
-
"ts-jest",
|
|
121
|
-
{
|
|
122
|
-
"tsconfig": "tsconfig.dev.json"
|
|
123
|
-
}
|
|
124
|
-
]
|
|
125
|
-
}
|
|
126
|
-
},
|
|
80
|
+
"version": "1.1.2",
|
|
127
81
|
"types": "lib/index.d.ts",
|
|
128
82
|
"stability": "stable",
|
|
129
83
|
"jsii": {
|