@beesolve/lambda-keep-active 1.0.5 → 1.1.1
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 +8546 -0
- package/API.md +165 -0
- package/CHANGELOG.md +9 -0
- package/LICENSE +202 -21
- package/README.md +3 -3
- package/assets/handler.lambda/index.js +70 -0
- package/bun.lock +2274 -0
- package/lib/cdk.d.ts +14 -0
- package/lib/cdk.js +49 -0
- package/lib/handler-function.d.ts +13 -0
- package/lib/handler-function.js +23 -0
- package/lib/handler.lambda.d.ts +3 -0
- package/lib/handler.lambda.js +38 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +19 -0
- package/{dist → lib}/runtime.d.ts +7 -10
- package/lib/runtime.js +42 -0
- package/lib/shared.d.ts +1 -0
- package/lib/shared.js +5 -0
- package/package.json +129 -28
- package/dist/cdk.d.ts +0 -19
- package/dist/cdk.js +0 -4
- package/dist/lambda/handler.mjs +0 -4
- package/dist/runtime.js +0 -4
package/lib/cdk.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { IFunction } from 'aws-cdk-lib/aws-lambda';
|
|
2
|
+
import { Construct } from 'constructs';
|
|
3
|
+
export interface LambdaKeepActiveProps {
|
|
4
|
+
/**
|
|
5
|
+
* If disabled no logs are logged to CloudWatch
|
|
6
|
+
*
|
|
7
|
+
* @default true
|
|
8
|
+
*/
|
|
9
|
+
readonly enableLogs?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare class LambdaKeepActive extends Construct {
|
|
12
|
+
constructor(scope: Construct, id: string, props?: LambdaKeepActiveProps);
|
|
13
|
+
keepActive(lambda: IFunction): void;
|
|
14
|
+
}
|
package/lib/cdk.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.LambdaKeepActive = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
|
+
const aws_events_1 = require("aws-cdk-lib/aws-events");
|
|
8
|
+
const aws_events_targets_1 = require("aws-cdk-lib/aws-events-targets");
|
|
9
|
+
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
10
|
+
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
11
|
+
const constructs_1 = require("constructs");
|
|
12
|
+
const handler_function_1 = require("./handler-function");
|
|
13
|
+
class LambdaKeepActive extends constructs_1.Construct {
|
|
14
|
+
constructor(scope, id, props) {
|
|
15
|
+
super(scope, id);
|
|
16
|
+
const handler = new handler_function_1.HandlerFunction(this, 'LambdaKeepActive', {
|
|
17
|
+
description: 'LambdaKeepActive handler',
|
|
18
|
+
memorySize: 128,
|
|
19
|
+
timeout: aws_cdk_lib_1.Duration.minutes(5),
|
|
20
|
+
architecture: aws_lambda_1.Architecture.ARM_64,
|
|
21
|
+
environment: {
|
|
22
|
+
NODE_ENV: 'production',
|
|
23
|
+
ENABLE_LOGS: String(props?.enableLogs ?? true),
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
new aws_events_1.Rule(this, 'KeepActive', {
|
|
27
|
+
schedule: aws_events_1.Schedule.rate(aws_cdk_lib_1.Duration.days(3)),
|
|
28
|
+
targets: [
|
|
29
|
+
new aws_events_targets_1.LambdaFunction(handler, {
|
|
30
|
+
event: aws_events_1.RuleTargetInput.fromObject({
|
|
31
|
+
action: 'lambdaKeepActive',
|
|
32
|
+
}),
|
|
33
|
+
}),
|
|
34
|
+
],
|
|
35
|
+
});
|
|
36
|
+
handler.addToRolePolicy(new aws_iam_1.PolicyStatement({
|
|
37
|
+
actions: ['lambda:InvokeFunction', 'tag:GetResources'],
|
|
38
|
+
resources: ['*'],
|
|
39
|
+
effect: aws_iam_1.Effect.ALLOW,
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
keepActive(lambda) {
|
|
43
|
+
aws_cdk_lib_1.Tags.of(lambda).add('keepActive', 'true');
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.LambdaKeepActive = LambdaKeepActive;
|
|
47
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
48
|
+
LambdaKeepActive[_a] = { fqn: "@beesolve/lambda-keep-active.LambdaKeepActive", version: "1.1.1" };
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Nkay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUE2QztBQUM3Qyx1REFBeUU7QUFDekUsdUVBQWdFO0FBQ2hFLGlEQUE4RDtBQUU5RCx1REFBc0Q7QUFDdEQsMkNBQXVDO0FBQ3ZDLHlEQUFxRDtBQVdyRCxNQUFhLGdCQUFpQixTQUFRLHNCQUFTO0lBQzdDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNkI7UUFDckUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLE9BQU8sR0FBRyxJQUFJLGtDQUFlLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQzVELFdBQVcsRUFBRSwwQkFBMEI7WUFDdkMsVUFBVSxFQUFFLEdBQUc7WUFDZixPQUFPLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzVCLFlBQVksRUFBRSx5QkFBWSxDQUFDLE1BQU07WUFDakMsV0FBVyxFQUFFO2dCQUNYLFFBQVEsRUFBRSxZQUFZO2dCQUN0QixXQUFXLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxVQUFVLElBQUksSUFBSSxDQUFDO2FBQy9DO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxpQkFBSSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDM0IsUUFBUSxFQUFFLHFCQUFRLENBQUMsSUFBSSxDQUFDLHNCQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sRUFBRTtnQkFDUCxJQUFJLG1DQUFjLENBQUMsT0FBTyxFQUFFO29CQUMxQixLQUFLLEVBQUUsNEJBQWUsQ0FBQyxVQUFVLENBQUM7d0JBQ2hDLE1BQU0sRUFBRSxrQkFBa0I7cUJBQzNCLENBQUM7aUJBQ0gsQ0FBQzthQUNIO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLGVBQWUsQ0FDckIsSUFBSSx5QkFBZSxDQUFDO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixFQUFFLGtCQUFrQixDQUFDO1lBQ3RELFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztZQUNoQixNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO1NBQ3JCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVNLFVBQVUsQ0FBQyxNQUFpQjtRQUNqQyxrQkFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLENBQUM7O0FBckNILDRDQXNDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uLCBUYWdzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgUnVsZSwgUnVsZVRhcmdldElucHV0LCBTY2hlZHVsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnO1xuaW1wb3J0IHsgTGFtYmRhRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzLXRhcmdldHMnO1xuaW1wb3J0IHsgRWZmZWN0LCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB0eXBlIHsgSUZ1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBBcmNoaXRlY3R1cmUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgSGFuZGxlckZ1bmN0aW9uIH0gZnJvbSAnLi9oYW5kbGVyLWZ1bmN0aW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFLZWVwQWN0aXZlUHJvcHMge1xuICAvKipcbiAgICogSWYgZGlzYWJsZWQgbm8gbG9ncyBhcmUgbG9nZ2VkIHRvIENsb3VkV2F0Y2hcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlTG9ncz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBMYW1iZGFLZWVwQWN0aXZlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBMYW1iZGFLZWVwQWN0aXZlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgaGFuZGxlciA9IG5ldyBIYW5kbGVyRnVuY3Rpb24odGhpcywgJ0xhbWJkYUtlZXBBY3RpdmUnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0xhbWJkYUtlZXBBY3RpdmUgaGFuZGxlcicsXG4gICAgICBtZW1vcnlTaXplOiAxMjgsXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgYXJjaGl0ZWN0dXJlOiBBcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgTk9ERV9FTlY6ICdwcm9kdWN0aW9uJyxcbiAgICAgICAgRU5BQkxFX0xPR1M6IFN0cmluZyhwcm9wcz8uZW5hYmxlTG9ncyA/PyB0cnVlKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBuZXcgUnVsZSh0aGlzLCAnS2VlcEFjdGl2ZScsIHtcbiAgICAgIHNjaGVkdWxlOiBTY2hlZHVsZS5yYXRlKER1cmF0aW9uLmRheXMoMykpLFxuICAgICAgdGFyZ2V0czogW1xuICAgICAgICBuZXcgTGFtYmRhRnVuY3Rpb24oaGFuZGxlciwge1xuICAgICAgICAgIGV2ZW50OiBSdWxlVGFyZ2V0SW5wdXQuZnJvbU9iamVjdCh7XG4gICAgICAgICAgICBhY3Rpb246ICdsYW1iZGFLZWVwQWN0aXZlJyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgaGFuZGxlci5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogWydsYW1iZGE6SW52b2tlRnVuY3Rpb24nLCAndGFnOkdldFJlc291cmNlcyddLFxuICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMga2VlcEFjdGl2ZShsYW1iZGE6IElGdW5jdGlvbikge1xuICAgIFRhZ3Mub2YobGFtYmRhKS5hZGQoJ2tlZXBBY3RpdmUnLCAndHJ1ZScpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
2
|
+
import { Construct } from 'constructs';
|
|
3
|
+
/**
|
|
4
|
+
* Props for HandlerFunction
|
|
5
|
+
*/
|
|
6
|
+
export interface HandlerFunctionProps extends lambda.FunctionOptions {
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* An AWS Lambda function which executes src/handler.
|
|
10
|
+
*/
|
|
11
|
+
export declare class HandlerFunction extends lambda.Function {
|
|
12
|
+
constructor(scope: Construct, id: string, props?: HandlerFunctionProps);
|
|
13
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HandlerFunction = 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
|
+
/**
|
|
8
|
+
* An AWS Lambda function which executes src/handler.
|
|
9
|
+
*/
|
|
10
|
+
class HandlerFunction extends lambda.Function {
|
|
11
|
+
constructor(scope, id, props) {
|
|
12
|
+
super(scope, id, {
|
|
13
|
+
description: 'src/handler.lambda.ts',
|
|
14
|
+
...props,
|
|
15
|
+
runtime: new lambda.Runtime('nodejs24.x', lambda.RuntimeFamily.NODEJS),
|
|
16
|
+
handler: 'index.handler',
|
|
17
|
+
code: lambda.Code.fromAsset(path.join(__dirname, '../assets/handler.lambda')),
|
|
18
|
+
});
|
|
19
|
+
this.addEnvironment('AWS_NODEJS_CONNECTION_REUSE_ENABLED', '1', { removeInEdge: true });
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.HandlerFunction = HandlerFunction;
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9oYW5kbGVyLWZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZFQUE2RTtBQUM3RSw2QkFBNkI7QUFDN0IsaURBQWlEO0FBU2pEOztHQUVHO0FBQ0gsTUFBYSxlQUFnQixTQUFRLE1BQU0sQ0FBQyxRQUFRO0lBQ2xELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNEI7UUFDcEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixXQUFXLEVBQUUsdUJBQXVCO1lBQ3BDLEdBQUcsS0FBSztZQUNSLE9BQU8sRUFBRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ3RFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1NBQzlFLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMscUNBQXFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUYsQ0FBQztDQUNGO0FBWEQsMENBV0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB+fiBHZW5lcmF0ZWQgYnkgcHJvamVuLiBUbyBtb2RpZnksIGVkaXQgLnByb2plbnJjLnRzIGFuZCBydW4gXCJucHggcHJvamVuXCIuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogUHJvcHMgZm9yIEhhbmRsZXJGdW5jdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhhbmRsZXJGdW5jdGlvblByb3BzIGV4dGVuZHMgbGFtYmRhLkZ1bmN0aW9uT3B0aW9ucyB7XG59XG5cbi8qKlxuICogQW4gQVdTIExhbWJkYSBmdW5jdGlvbiB3aGljaCBleGVjdXRlcyBzcmMvaGFuZGxlci5cbiAqL1xuZXhwb3J0IGNsYXNzIEhhbmRsZXJGdW5jdGlvbiBleHRlbmRzIGxhbWJkYS5GdW5jdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogSGFuZGxlckZ1bmN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnc3JjL2hhbmRsZXIubGFtYmRhLnRzJyxcbiAgICAgIC4uLnByb3BzLFxuICAgICAgcnVudGltZTogbmV3IGxhbWJkYS5SdW50aW1lKCdub2RlanMyNC54JywgbGFtYmRhLlJ1bnRpbWVGYW1pbHkuTk9ERUpTKSxcbiAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vYXNzZXRzL2hhbmRsZXIubGFtYmRhJykpLFxuICAgIH0pO1xuICAgIHRoaXMuYWRkRW52aXJvbm1lbnQoJ0FXU19OT0RFSlNfQ09OTkVDVElPTl9SRVVTRV9FTkFCTEVEJywgJzEnLCB7IHJlbW92ZUluRWRnZTogdHJ1ZSB9KTtcbiAgfVxufSJdfQ==
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handler = void 0;
|
|
4
|
+
const client_lambda_1 = require("@aws-sdk/client-lambda");
|
|
5
|
+
const client_resource_groups_tagging_api_1 = require("@aws-sdk/client-resource-groups-tagging-api");
|
|
6
|
+
const shared_1 = require("./shared");
|
|
7
|
+
const lambdaClient = new client_lambda_1.LambdaClient();
|
|
8
|
+
const taggingClient = new client_resource_groups_tagging_api_1.ResourceGroupsTaggingAPIClient();
|
|
9
|
+
const enableLogs = process.env.ENABLE_LOGS === 'true';
|
|
10
|
+
const handler = async (event) => {
|
|
11
|
+
const { action } = event;
|
|
12
|
+
if (action == null)
|
|
13
|
+
return;
|
|
14
|
+
if (action !== 'lambdaKeepActive')
|
|
15
|
+
return;
|
|
16
|
+
let nextToken;
|
|
17
|
+
do {
|
|
18
|
+
const { ResourceTagMappingList = [], PaginationToken } = await taggingClient.send(new client_resource_groups_tagging_api_1.GetResourcesCommand({
|
|
19
|
+
ResourceTypeFilters: ['lambda:function'],
|
|
20
|
+
ResourcesPerPage: 25,
|
|
21
|
+
TagFilters: [{ Key: 'keepActive', Values: ['true'] }],
|
|
22
|
+
PaginationToken: nextToken,
|
|
23
|
+
}));
|
|
24
|
+
nextToken = PaginationToken;
|
|
25
|
+
await Promise.all(ResourceTagMappingList.map(async (resource) => {
|
|
26
|
+
await lambdaClient.send(new client_lambda_1.InvokeCommand({
|
|
27
|
+
FunctionName: resource.ResourceARN,
|
|
28
|
+
InvocationType: 'Event',
|
|
29
|
+
Payload: JSON.stringify({ [shared_1.keepActivePing]: true }),
|
|
30
|
+
}));
|
|
31
|
+
if (enableLogs) {
|
|
32
|
+
console.info(`Invoked ${resource.ResourceARN}`);
|
|
33
|
+
}
|
|
34
|
+
}));
|
|
35
|
+
} while (nextToken != null && nextToken !== '');
|
|
36
|
+
};
|
|
37
|
+
exports.handler = handler;
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5sYW1iZGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaGFuZGxlci5sYW1iZGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBQXFFO0FBQ3JFLG9HQUdxRDtBQUNyRCxxQ0FBMEM7QUFFMUMsTUFBTSxZQUFZLEdBQUcsSUFBSSw0QkFBWSxFQUFFLENBQUM7QUFDeEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxtRUFBOEIsRUFBRSxDQUFDO0FBQzNELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxLQUFLLE1BQU0sQ0FBQztBQUUvQyxNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsS0FBcUMsRUFBRSxFQUFFO0lBQ3JFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFFekIsSUFBSSxNQUFNLElBQUksSUFBSTtRQUFFLE9BQU87SUFDM0IsSUFBSSxNQUFNLEtBQUssa0JBQWtCO1FBQUUsT0FBTztJQUUxQyxJQUFJLFNBQTZCLENBQUM7SUFDbEMsR0FBRyxDQUFDO1FBQ0YsTUFBTSxFQUFFLHNCQUFzQixHQUFHLEVBQUUsRUFBRSxlQUFlLEVBQUUsR0FDcEQsTUFBTSxhQUFhLENBQUMsSUFBSSxDQUN0QixJQUFJLHdEQUFtQixDQUFDO1lBQ3RCLG1CQUFtQixFQUFFLENBQUMsaUJBQWlCLENBQUM7WUFDeEMsZ0JBQWdCLEVBQUUsRUFBRTtZQUNwQixVQUFVLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNyRCxlQUFlLEVBQUUsU0FBUztTQUMzQixDQUFDLENBQ0gsQ0FBQztRQUVKLFNBQVMsR0FBRyxlQUFlLENBQUM7UUFFNUIsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDNUMsTUFBTSxZQUFZLENBQUMsSUFBSSxDQUNyQixJQUFJLDZCQUFhLENBQUM7Z0JBQ2hCLFlBQVksRUFBRSxRQUFRLENBQUMsV0FBVztnQkFDbEMsY0FBYyxFQUFFLE9BQU87Z0JBQ3ZCLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyx1QkFBYyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDcEQsQ0FBQyxDQUNILENBQUM7WUFFRixJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUNsRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUMsUUFBUSxTQUFTLElBQUksSUFBSSxJQUFJLFNBQVMsS0FBSyxFQUFFLEVBQUU7QUFDbEQsQ0FBQyxDQUFDO0FBcENXLFFBQUEsT0FBTyxXQW9DbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnZva2VDb21tYW5kLCBMYW1iZGFDbGllbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtbGFtYmRhJztcbmltcG9ydCB7XG4gIEdldFJlc291cmNlc0NvbW1hbmQsXG4gIFJlc291cmNlR3JvdXBzVGFnZ2luZ0FQSUNsaWVudCxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXJlc291cmNlLWdyb3Vwcy10YWdnaW5nLWFwaSc7XG5pbXBvcnQgeyBrZWVwQWN0aXZlUGluZyB9IGZyb20gJy4vc2hhcmVkJztcblxuY29uc3QgbGFtYmRhQ2xpZW50ID0gbmV3IExhbWJkYUNsaWVudCgpO1xuY29uc3QgdGFnZ2luZ0NsaWVudCA9IG5ldyBSZXNvdXJjZUdyb3Vwc1RhZ2dpbmdBUElDbGllbnQoKTtcbmNvbnN0IGVuYWJsZUxvZ3MgPSBwcm9jZXNzLmVudi5FTkFCTEVfTE9HUyA9PT0gJ3RydWUnO1xuXG5leHBvcnQgY29uc3QgaGFuZGxlciA9IGFzeW5jIChldmVudDogeyBhY3Rpb246ICdsYW1iZGFLZWVwQWN0aXZlJyB9KSA9PiB7XG4gIGNvbnN0IHsgYWN0aW9uIH0gPSBldmVudDtcblxuICBpZiAoYWN0aW9uID09IG51bGwpIHJldHVybjtcbiAgaWYgKGFjdGlvbiAhPT0gJ2xhbWJkYUtlZXBBY3RpdmUnKSByZXR1cm47XG5cbiAgbGV0IG5leHRUb2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBkbyB7XG4gICAgY29uc3QgeyBSZXNvdXJjZVRhZ01hcHBpbmdMaXN0ID0gW10sIFBhZ2luYXRpb25Ub2tlbiB9ID1cbiAgICAgIGF3YWl0IHRhZ2dpbmdDbGllbnQuc2VuZChcbiAgICAgICAgbmV3IEdldFJlc291cmNlc0NvbW1hbmQoe1xuICAgICAgICAgIFJlc291cmNlVHlwZUZpbHRlcnM6IFsnbGFtYmRhOmZ1bmN0aW9uJ10sXG4gICAgICAgICAgUmVzb3VyY2VzUGVyUGFnZTogMjUsXG4gICAgICAgICAgVGFnRmlsdGVyczogW3sgS2V5OiAna2VlcEFjdGl2ZScsIFZhbHVlczogWyd0cnVlJ10gfV0sXG4gICAgICAgICAgUGFnaW5hdGlvblRva2VuOiBuZXh0VG9rZW4sXG4gICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgIG5leHRUb2tlbiA9IFBhZ2luYXRpb25Ub2tlbjtcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgUmVzb3VyY2VUYWdNYXBwaW5nTGlzdC5tYXAoYXN5bmMgKHJlc291cmNlKSA9PiB7XG4gICAgICAgIGF3YWl0IGxhbWJkYUNsaWVudC5zZW5kKFxuICAgICAgICAgIG5ldyBJbnZva2VDb21tYW5kKHtcbiAgICAgICAgICAgIEZ1bmN0aW9uTmFtZTogcmVzb3VyY2UuUmVzb3VyY2VBUk4sXG4gICAgICAgICAgICBJbnZvY2F0aW9uVHlwZTogJ0V2ZW50JyxcbiAgICAgICAgICAgIFBheWxvYWQ6IEpTT04uc3RyaW5naWZ5KHsgW2tlZXBBY3RpdmVQaW5nXTogdHJ1ZSB9KSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoZW5hYmxlTG9ncykge1xuICAgICAgICAgIGNvbnNvbGUuaW5mbyhgSW52b2tlZCAke3Jlc291cmNlLlJlc291cmNlQVJOfWApO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApO1xuICB9IHdoaWxlIChuZXh0VG9rZW4gIT0gbnVsbCAmJiBuZXh0VG9rZW4gIT09ICcnKTtcbn07XG4iXX0=
|
package/lib/index.d.ts
ADDED
package/lib/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./cdk"), exports);
|
|
18
|
+
__exportStar(require("./runtime"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdDQUFzQjtBQUN0Qiw0Q0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Nkayc7XG5leHBvcnQgKiBmcm9tICcuL3J1bnRpbWUnO1xuIl19
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
*/
|
|
9
|
-
readonly enableLogs?: boolean;
|
|
1
|
+
interface KeptActiveOptions {
|
|
2
|
+
/**
|
|
3
|
+
* If disabled no logs are logged to CloudWatch
|
|
4
|
+
*
|
|
5
|
+
* @default true
|
|
6
|
+
*/
|
|
7
|
+
readonly enableLogs?: boolean;
|
|
10
8
|
}
|
|
11
9
|
export declare function keptActive<Event = any, Context = any, Response = any>(handler: (event: Event, context: Context) => Promise<Response>, options?: KeptActiveOptions): (event: Event, context: Context) => Promise<Response> | undefined;
|
|
12
10
|
export declare function keptActiveFetch(fetch: (request: Request) => Promise<Response>, options?: KeptActiveOptions): (request: Request) => Promise<Response>;
|
|
13
|
-
|
|
14
11
|
export {};
|
package/lib/runtime.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.keptActive = keptActive;
|
|
4
|
+
exports.keptActiveFetch = keptActiveFetch;
|
|
5
|
+
const shared_1 = require("./shared");
|
|
6
|
+
function keptActive(handler, options) {
|
|
7
|
+
return (event, context) => {
|
|
8
|
+
if (event != null &&
|
|
9
|
+
typeof event === 'object' &&
|
|
10
|
+
shared_1.keepActivePing in event &&
|
|
11
|
+
event[shared_1.keepActivePing] === true) {
|
|
12
|
+
if (options?.enableLogs) {
|
|
13
|
+
console.info(`Keep active ping: ${JSON.stringify(event)}`);
|
|
14
|
+
}
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
return handler(event, context);
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function keptActiveFetch(fetch, options) {
|
|
21
|
+
return async (request) => {
|
|
22
|
+
if (request.url === 'https://lambda/') {
|
|
23
|
+
const event = await request.json();
|
|
24
|
+
if (event != null &&
|
|
25
|
+
typeof event === 'object' &&
|
|
26
|
+
shared_1.keepActivePing in event &&
|
|
27
|
+
event[shared_1.keepActivePing] === true) {
|
|
28
|
+
if (options?.enableLogs) {
|
|
29
|
+
console.info(`Keep active ping: ${JSON.stringify(event)}`);
|
|
30
|
+
}
|
|
31
|
+
return new Response();
|
|
32
|
+
}
|
|
33
|
+
return fetch(new Request(request.url, {
|
|
34
|
+
method: request.method,
|
|
35
|
+
body: JSON.stringify(event),
|
|
36
|
+
headers: request.headers,
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
return fetch(request);
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9ydW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBV0EsZ0NBbUJDO0FBRUQsMENBK0JDO0FBL0RELHFDQUEwQztBQVcxQyxTQUFnQixVQUFVLENBQ3hCLE9BQThELEVBQzlELE9BQTJCO0lBRTNCLE9BQU8sQ0FBQyxLQUFZLEVBQUUsT0FBZ0IsRUFBRSxFQUFFO1FBQ3hDLElBQ0UsS0FBSyxJQUFJLElBQUk7WUFDYixPQUFPLEtBQUssS0FBSyxRQUFRO1lBQ3pCLHVCQUFjLElBQUksS0FBSztZQUN2QixLQUFLLENBQUMsdUJBQWMsQ0FBQyxLQUFLLElBQUksRUFDOUIsQ0FBQztZQUNELElBQUksT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDO2dCQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFxQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3RCxDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLGVBQWUsQ0FDN0IsS0FBOEMsRUFDOUMsT0FBMkI7SUFFM0IsT0FBTyxLQUFLLEVBQUUsT0FBZ0IsRUFBRSxFQUFFO1FBQ2hDLElBQUksT0FBTyxDQUFDLEdBQUcsS0FBSyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sS0FBSyxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBRW5DLElBQ0UsS0FBSyxJQUFJLElBQUk7Z0JBQ2IsT0FBTyxLQUFLLEtBQUssUUFBUTtnQkFDekIsdUJBQWMsSUFBSSxLQUFLO2dCQUN2QixLQUFLLENBQUMsdUJBQWMsQ0FBQyxLQUFLLElBQUksRUFDOUIsQ0FBQztnQkFDRCxJQUFJLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQztvQkFDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzdELENBQUM7Z0JBQ0QsT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLENBQUM7WUFFRCxPQUFPLEtBQUssQ0FDVixJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO2dCQUN2QixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07Z0JBQ3RCLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztnQkFDM0IsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO2FBQ3pCLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hCLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBrZWVwQWN0aXZlUGluZyB9IGZyb20gJy4vc2hhcmVkJztcblxuaW50ZXJmYWNlIEtlcHRBY3RpdmVPcHRpb25zIHtcbiAgLyoqXG4gICAqIElmIGRpc2FibGVkIG5vIGxvZ3MgYXJlIGxvZ2dlZCB0byBDbG91ZFdhdGNoXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZUxvZ3M/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24ga2VwdEFjdGl2ZTxFdmVudCA9IGFueSwgQ29udGV4dCA9IGFueSwgUmVzcG9uc2UgPSBhbnk+KFxuICBoYW5kbGVyOiAoZXZlbnQ6IEV2ZW50LCBjb250ZXh0OiBDb250ZXh0KSA9PiBQcm9taXNlPFJlc3BvbnNlPixcbiAgb3B0aW9ucz86IEtlcHRBY3RpdmVPcHRpb25zLFxuKSB7XG4gIHJldHVybiAoZXZlbnQ6IEV2ZW50LCBjb250ZXh0OiBDb250ZXh0KSA9PiB7XG4gICAgaWYgKFxuICAgICAgZXZlbnQgIT0gbnVsbCAmJlxuICAgICAgdHlwZW9mIGV2ZW50ID09PSAnb2JqZWN0JyAmJlxuICAgICAga2VlcEFjdGl2ZVBpbmcgaW4gZXZlbnQgJiZcbiAgICAgIGV2ZW50W2tlZXBBY3RpdmVQaW5nXSA9PT0gdHJ1ZVxuICAgICkge1xuICAgICAgaWYgKG9wdGlvbnM/LmVuYWJsZUxvZ3MpIHtcbiAgICAgICAgY29uc29sZS5pbmZvKGBLZWVwIGFjdGl2ZSBwaW5nOiAke0pTT04uc3RyaW5naWZ5KGV2ZW50KX1gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gaGFuZGxlcihldmVudCwgY29udGV4dCk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBrZXB0QWN0aXZlRmV0Y2goXG4gIGZldGNoOiAocmVxdWVzdDogUmVxdWVzdCkgPT4gUHJvbWlzZTxSZXNwb25zZT4sXG4gIG9wdGlvbnM/OiBLZXB0QWN0aXZlT3B0aW9ucyxcbikge1xuICByZXR1cm4gYXN5bmMgKHJlcXVlc3Q6IFJlcXVlc3QpID0+IHtcbiAgICBpZiAocmVxdWVzdC51cmwgPT09ICdodHRwczovL2xhbWJkYS8nKSB7XG4gICAgICBjb25zdCBldmVudCA9IGF3YWl0IHJlcXVlc3QuanNvbigpO1xuXG4gICAgICBpZiAoXG4gICAgICAgIGV2ZW50ICE9IG51bGwgJiZcbiAgICAgICAgdHlwZW9mIGV2ZW50ID09PSAnb2JqZWN0JyAmJlxuICAgICAgICBrZWVwQWN0aXZlUGluZyBpbiBldmVudCAmJlxuICAgICAgICBldmVudFtrZWVwQWN0aXZlUGluZ10gPT09IHRydWVcbiAgICAgICkge1xuICAgICAgICBpZiAob3B0aW9ucz8uZW5hYmxlTG9ncykge1xuICAgICAgICAgIGNvbnNvbGUuaW5mbyhgS2VlcCBhY3RpdmUgcGluZzogJHtKU09OLnN0cmluZ2lmeShldmVudCl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBSZXNwb25zZSgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmV0Y2goXG4gICAgICAgIG5ldyBSZXF1ZXN0KHJlcXVlc3QudXJsLCB7XG4gICAgICAgICAgbWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcbiAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShldmVudCksXG4gICAgICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZldGNoKHJlcXVlc3QpO1xuICB9O1xufVxuIl19
|
package/lib/shared.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const keepActivePing = "$$keepActivePing$$";
|
package/lib/shared.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.keepActivePing = void 0;
|
|
4
|
+
exports.keepActivePing = '$$keepActivePing$$';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NoYXJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLGNBQWMsR0FBRyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBrZWVwQWN0aXZlUGluZyA9ICckJGtlZXBBY3RpdmVQaW5nJCQnO1xuIl19
|
package/package.json
CHANGED
|
@@ -1,40 +1,141 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beesolve/lambda-keep-active",
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
|
|
6
|
-
"
|
|
3
|
+
"description": "CDK construct which prevents your Lambda functions to transition into `inactive` state.",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "https://github.com/beesolve/lambda-keep-active"
|
|
7
7
|
},
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "npx projen build",
|
|
10
|
+
"bump": "npx projen bump",
|
|
11
|
+
"bundle": "npx projen bundle",
|
|
12
|
+
"bundle:handler.lambda": "npx projen bundle:handler.lambda",
|
|
13
|
+
"bundle:handler.lambda:watch": "npx projen bundle:handler.lambda:watch",
|
|
14
|
+
"clobber": "npx projen clobber",
|
|
15
|
+
"compat": "npx projen compat",
|
|
16
|
+
"compile": "npx projen compile",
|
|
17
|
+
"default": "npx projen default",
|
|
18
|
+
"docgen": "npx projen docgen",
|
|
19
|
+
"eject": "npx projen eject",
|
|
20
|
+
"eslint": "npx projen eslint",
|
|
21
|
+
"package": "npx projen package",
|
|
22
|
+
"package-all": "npx projen package-all",
|
|
23
|
+
"package:js": "npx projen package:js",
|
|
24
|
+
"post-compile": "npx projen post-compile",
|
|
25
|
+
"post-upgrade": "npx projen post-upgrade",
|
|
26
|
+
"pre-compile": "npx projen pre-compile",
|
|
27
|
+
"publish:git": "npx projen publish:git",
|
|
28
|
+
"release": "npx projen release",
|
|
29
|
+
"test": "npx projen test",
|
|
30
|
+
"test:watch": "npx projen test:watch",
|
|
31
|
+
"unbump": "npx projen unbump",
|
|
32
|
+
"upgrade": "npx projen upgrade",
|
|
33
|
+
"watch": "npx projen watch",
|
|
34
|
+
"projen": "npx projen"
|
|
14
35
|
},
|
|
15
|
-
"
|
|
16
|
-
"
|
|
36
|
+
"author": {
|
|
37
|
+
"name": "BeeSolve s.r.o.",
|
|
38
|
+
"email": "support@beesolve.com",
|
|
39
|
+
"organization": true
|
|
17
40
|
},
|
|
18
41
|
"devDependencies": {
|
|
19
|
-
"@
|
|
20
|
-
"@
|
|
42
|
+
"@aws-sdk/client-lambda": "^3.943.0",
|
|
43
|
+
"@aws-sdk/client-resource-groups-tagging-api": "^3.943.0",
|
|
44
|
+
"@stylistic/eslint-plugin": "^2",
|
|
45
|
+
"@types/jest": "^30.0.0",
|
|
21
46
|
"@types/node": "^24.10.1",
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
"
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
47
|
+
"@typescript-eslint/eslint-plugin": "^8",
|
|
48
|
+
"@typescript-eslint/parser": "^8",
|
|
49
|
+
"aws-cdk-lib": "2.231.0",
|
|
50
|
+
"commit-and-tag-version": "^12",
|
|
51
|
+
"constructs": "10.4.3",
|
|
52
|
+
"esbuild": "^0.27.0",
|
|
53
|
+
"eslint": "^9",
|
|
54
|
+
"eslint-import-resolver-typescript": "^4.4.4",
|
|
55
|
+
"eslint-plugin-import": "^2.32.0",
|
|
56
|
+
"jest": "^30.2.0",
|
|
57
|
+
"jest-junit": "^16",
|
|
58
|
+
"jsii": "~5.9.0",
|
|
59
|
+
"jsii-diff": "^1.120.0",
|
|
60
|
+
"jsii-docgen": "^10.5.0",
|
|
61
|
+
"jsii-pacmak": "^1.120.0",
|
|
62
|
+
"jsii-rosetta": "~5.9.0",
|
|
63
|
+
"projen": "^0.98.28",
|
|
64
|
+
"ts-jest": "^29.4.6",
|
|
65
|
+
"ts-node": "^10.9.2",
|
|
66
|
+
"typescript": "^5.9.3",
|
|
67
|
+
"yaml": "^2.8.1"
|
|
68
|
+
},
|
|
69
|
+
"peerDependencies": {
|
|
70
|
+
"aws-cdk-lib": "^2.231.0",
|
|
71
|
+
"constructs": "^10.4.3"
|
|
33
72
|
},
|
|
34
|
-
"
|
|
35
|
-
"
|
|
73
|
+
"keywords": [
|
|
74
|
+
"cdk"
|
|
36
75
|
],
|
|
76
|
+
"main": "lib/index.js",
|
|
77
|
+
"license": "Apache-2.0",
|
|
78
|
+
"publishConfig": {
|
|
79
|
+
"access": "public"
|
|
80
|
+
},
|
|
81
|
+
"version": "1.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
|
+
},
|
|
127
|
+
"types": "lib/index.d.ts",
|
|
128
|
+
"stability": "stable",
|
|
129
|
+
"jsii": {
|
|
130
|
+
"outdir": "dist",
|
|
131
|
+
"targets": {},
|
|
132
|
+
"tsc": {
|
|
133
|
+
"outDir": "lib",
|
|
134
|
+
"rootDir": "src"
|
|
135
|
+
}
|
|
136
|
+
},
|
|
37
137
|
"volta": {
|
|
38
138
|
"node": "24.11.1"
|
|
39
|
-
}
|
|
139
|
+
},
|
|
140
|
+
"//": "~~ Generated by projen. To modify, edit .projenrc.ts and run \"npx projen\"."
|
|
40
141
|
}
|
package/dist/cdk.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
// Generated by dts-bundle-generator v9.5.1
|
|
2
|
-
|
|
3
|
-
import { IFunction } from 'aws-cdk-lib/aws-lambda';
|
|
4
|
-
import { Construct } from 'constructs';
|
|
5
|
-
|
|
6
|
-
export interface LambdaKeepActiveProps {
|
|
7
|
-
/**
|
|
8
|
-
* If disabled no logs are logged to CloudWatch
|
|
9
|
-
*
|
|
10
|
-
* @default true
|
|
11
|
-
*/
|
|
12
|
-
readonly enableLogs?: boolean;
|
|
13
|
-
}
|
|
14
|
-
export declare class LambdaKeepActive extends Construct {
|
|
15
|
-
constructor(scope: Construct, id: string, props?: LambdaKeepActiveProps);
|
|
16
|
-
readonly keepActive: (lambda: IFunction) => void;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export {};
|
package/dist/cdk.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{Duration as z,Tags as H}from"aws-cdk-lib";import{Rule as J,RuleTargetInput as K,Schedule as M}from"aws-cdk-lib/aws-events";import{LambdaFunction as O}from"aws-cdk-lib/aws-events-targets";import{Effect as Q,PolicyStatement as V}from"aws-cdk-lib/aws-iam";import{Architecture as X,Code as Y,Runtime as Z}from"aws-cdk-lib/aws-lambda";import{NodejsFunction as $}from"aws-cdk-lib/aws-lambda-nodejs";import{Construct as y}from"constructs";import{dirname as A}from"node:path";import{fileURLToPath as E}from"node:url";var N=E(import.meta.url),U=A(N);class W extends y{constructor(q,B,G){super(q,B);let x=new $(this,"LambdaKeepActive",{description:"LambdaKeepActive handler",code:Y.fromAsset(`${U}/lambda`),handler:"handler.handler",memorySize:128,timeout:z.minutes(5),runtime:Z.NODEJS_22_X,architecture:X.ARM_64,environment:{NODE_ENV:"production",ENABLE_LOGS:String(G?.enableLogs??!0)}});new J(this,"KeepActive",{schedule:M.rate(z.days(3)),targets:[new O(x,{event:K.fromObject({action:"lambdaKeepActive"})})]}),x.addToRolePolicy(new V({actions:["lambda:InvokeFunction","tag:GetResources"],resources:["*"],effect:Q.ALLOW}))}keepActive=(q)=>{H.of(q).add("keepActive","true")}}export{W as LambdaKeepActive};
|
|
2
|
-
|
|
3
|
-
//# debugId=6B40CA4DD0371D9764756E2164756E21
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vY2RrLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgImltcG9ydCB7IER1cmF0aW9uLCBUYWdzIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBSdWxlLCBSdWxlVGFyZ2V0SW5wdXQsIFNjaGVkdWxlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHNcIjtcbmltcG9ydCB7IExhbWJkYUZ1bmN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0c1wiO1xuaW1wb3J0IHsgRWZmZWN0LCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHR5cGUgeyBJRnVuY3Rpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHsgQXJjaGl0ZWN0dXJlLCBDb2RlLCBSdW50aW1lIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IE5vZGVqc0Z1bmN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgZGlybmFtZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tIFwibm9kZTp1cmxcIjtcblxuY29uc3QgX19maWxlbmFtZSA9IGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKTtcbmNvbnN0IF9fZGlybmFtZSA9IGRpcm5hbWUoX19maWxlbmFtZSk7XG5cbmludGVyZmFjZSBMYW1iZGFLZWVwQWN0aXZlUHJvcHMge1xuICAvKipcbiAgICogSWYgZGlzYWJsZWQgbm8gbG9ncyBhcmUgbG9nZ2VkIHRvIENsb3VkV2F0Y2hcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlTG9ncz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBMYW1iZGFLZWVwQWN0aXZlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBMYW1iZGFLZWVwQWN0aXZlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgaGFuZGxlciA9IG5ldyBOb2RlanNGdW5jdGlvbih0aGlzLCBcIkxhbWJkYUtlZXBBY3RpdmVcIiwge1xuICAgICAgZGVzY3JpcHRpb246IFwiTGFtYmRhS2VlcEFjdGl2ZSBoYW5kbGVyXCIsXG4gICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChgJHtfX2Rpcm5hbWV9L2xhbWJkYWApLFxuICAgICAgaGFuZGxlcjogXCJoYW5kbGVyLmhhbmRsZXJcIixcbiAgICAgIG1lbW9yeVNpemU6IDEyOCxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICBydW50aW1lOiBSdW50aW1lLk5PREVKU18yMl9YLFxuICAgICAgYXJjaGl0ZWN0dXJlOiBBcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgTk9ERV9FTlY6IFwicHJvZHVjdGlvblwiLFxuICAgICAgICBFTkFCTEVfTE9HUzogU3RyaW5nKHByb3BzPy5lbmFibGVMb2dzID8/IHRydWUpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIG5ldyBSdWxlKHRoaXMsIFwiS2VlcEFjdGl2ZVwiLCB7XG4gICAgICBzY2hlZHVsZTogU2NoZWR1bGUucmF0ZShEdXJhdGlvbi5kYXlzKDMpKSxcbiAgICAgIHRhcmdldHM6IFtcbiAgICAgICAgbmV3IExhbWJkYUZ1bmN0aW9uKGhhbmRsZXIsIHtcbiAgICAgICAgICBldmVudDogUnVsZVRhcmdldElucHV0LmZyb21PYmplY3Qoe1xuICAgICAgICAgICAgYWN0aW9uOiBcImxhbWJkYUtlZXBBY3RpdmVcIixcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgaGFuZGxlci5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogW1wibGFtYmRhOkludm9rZUZ1bmN0aW9uXCIsIFwidGFnOkdldFJlc291cmNlc1wiXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdLFxuICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICByZWFkb25seSBrZWVwQWN0aXZlID0gKGxhbWJkYTogSUZ1bmN0aW9uKSA9PiB7XG4gICAgVGFncy5vZihsYW1iZGEpLmFkZChcImtlZXBBY3RpdmVcIiwgXCJ0cnVlXCIpO1xuICB9O1xufVxuIgogIF0sCiAgIm1hcHBpbmdzIjogIkFBQUEsbUJBQVMsVUFBVSxvQkFDbkIsZUFBUyxxQkFBTSxjQUFpQiwrQkFDaEMseUJBQVMsdUNBQ1QsaUJBQVMscUJBQVEsNEJBRWpCLHVCQUFTLFVBQWMsYUFBTSwrQkFDN0IseUJBQVMsc0NBQ1Qsb0JBQVMsbUJBQ1Qsa0JBQVMsa0JBQ1Qsd0JBQVMsaUJBRVQsSUFBTSxFQUFhLEVBQWMsWUFBWSxHQUFHLEVBQzFDLEVBQVksRUFBUSxDQUFVLEVBVzdCLE1BQU0sVUFBeUIsQ0FBVSxDQUM5QyxXQUFXLENBQUMsRUFBa0IsRUFBWSxFQUErQixDQUN2RSxNQUFNLEVBQU8sQ0FBRSxFQUVmLElBQU0sRUFBVSxJQUFJLEVBQWUsS0FBTSxtQkFBb0IsQ0FDM0QsWUFBYSwyQkFDYixLQUFNLEVBQUssVUFBVSxHQUFHLFVBQWtCLEVBQzFDLFFBQVMsa0JBQ1QsV0FBWSxJQUNaLFFBQVMsRUFBUyxRQUFRLENBQUMsRUFDM0IsUUFBUyxFQUFRLFlBQ2pCLGFBQWMsRUFBYSxPQUMzQixZQUFhLENBQ1gsU0FBVSxhQUNWLFlBQWEsT0FBTyxHQUFPLFlBQWMsRUFBSSxDQUMvQyxDQUNGLENBQUMsRUFFRCxJQUFJLEVBQUssS0FBTSxhQUFjLENBQzNCLFNBQVUsRUFBUyxLQUFLLEVBQVMsS0FBSyxDQUFDLENBQUMsRUFDeEMsUUFBUyxDQUNQLElBQUksRUFBZSxFQUFTLENBQzFCLE1BQU8sRUFBZ0IsV0FBVyxDQUNoQyxPQUFRLGtCQUNWLENBQUMsQ0FDSCxDQUFDLENBQ0gsQ0FDRixDQUFDLEVBRUQsRUFBUSxnQkFDTixJQUFJLEVBQWdCLENBQ2xCLFFBQVMsQ0FBQyx3QkFBeUIsa0JBQWtCLEVBQ3JELFVBQVcsQ0FBQyxHQUFHLEVBQ2YsT0FBUSxFQUFPLEtBQ2pCLENBQUMsQ0FDSCxFQUdPLFdBQWEsQ0FBQyxJQUFzQixDQUMzQyxFQUFLLEdBQUcsQ0FBTSxFQUFFLElBQUksYUFBYyxNQUFNLEVBRTVDIiwKICAiZGVidWdJZCI6ICI2QjQwQ0E0REQwMzcxRDk3NjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==
|
package/dist/lambda/handler.mjs
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{InvokeCommand as B,LambdaClient as D}from"@aws-sdk/client-lambda";import{GetResourcesCommand as E,ResourceGroupsTaggingAPIClient as F}from"@aws-sdk/client-resource-groups-tagging-api";var q="$$keepActivePing$$";var H=new D,J=new F,K=process.env.ENABLE_LOGS==="true",U=async(y)=>{let{action:f}=y;if(f==null)return;if(f!=="lambdaKeepActive")return;let $;do{let{ResourceTagMappingList:z=[],PaginationToken:A}=await J.send(new E({ResourceTypeFilters:["lambda:function"],ResourcesPerPage:25,TagFilters:[{Key:"keepActive",Values:["true"]}],PaginationToken:$}));$=A,await Promise.all(z.map(async(j)=>{if(await H.send(new B({FunctionName:j.ResourceARN,InvocationType:"Event",Payload:JSON.stringify({[q]:!0})})),K)console.info(`Invoked ${j.ResourceARN}`)}))}while($!=null&&$!=="")};export{U as handler};
|
|
2
|
-
|
|
3
|
-
//# debugId=04DAB14BF39910A664756E2164756E21
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vaGFuZGxlci50cyIsICIuLi8uLi9zaGFyZWQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbCiAgICAiaW1wb3J0IHsgSW52b2tlQ29tbWFuZCwgTGFtYmRhQ2xpZW50IH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1sYW1iZGFcIjtcbmltcG9ydCB7XG4gIEdldFJlc291cmNlc0NvbW1hbmQsXG4gIFJlc291cmNlR3JvdXBzVGFnZ2luZ0FQSUNsaWVudCxcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1yZXNvdXJjZS1ncm91cHMtdGFnZ2luZy1hcGlcIjtcbmltcG9ydCB7IGtlZXBBY3RpdmVQaW5nIH0gZnJvbSBcIi4vc2hhcmVkXCI7XG5cbmNvbnN0IGxhbWJkYUNsaWVudCA9IG5ldyBMYW1iZGFDbGllbnQoKTtcbmNvbnN0IHRhZ2dpbmdDbGllbnQgPSBuZXcgUmVzb3VyY2VHcm91cHNUYWdnaW5nQVBJQ2xpZW50KCk7XG5jb25zdCBlbmFibGVMb2dzID0gcHJvY2Vzcy5lbnYuRU5BQkxFX0xPR1MgPT09IFwidHJ1ZVwiO1xuXG5leHBvcnQgY29uc3QgaGFuZGxlciA9IGFzeW5jIChldmVudDogeyBhY3Rpb246IFwibGFtYmRhS2VlcEFjdGl2ZVwiIH0pID0+IHtcbiAgY29uc3QgeyBhY3Rpb24gfSA9IGV2ZW50O1xuXG4gIGlmIChhY3Rpb24gPT0gbnVsbCkgcmV0dXJuO1xuICBpZiAoYWN0aW9uICE9PSBcImxhbWJkYUtlZXBBY3RpdmVcIikgcmV0dXJuO1xuXG4gIGxldCBuZXh0VG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgZG8ge1xuICAgIGNvbnN0IHsgUmVzb3VyY2VUYWdNYXBwaW5nTGlzdCA9IFtdLCBQYWdpbmF0aW9uVG9rZW4gfSA9XG4gICAgICBhd2FpdCB0YWdnaW5nQ2xpZW50LnNlbmQoXG4gICAgICAgIG5ldyBHZXRSZXNvdXJjZXNDb21tYW5kKHtcbiAgICAgICAgICBSZXNvdXJjZVR5cGVGaWx0ZXJzOiBbXCJsYW1iZGE6ZnVuY3Rpb25cIl0sXG4gICAgICAgICAgUmVzb3VyY2VzUGVyUGFnZTogMjUsXG4gICAgICAgICAgVGFnRmlsdGVyczogW3sgS2V5OiBcImtlZXBBY3RpdmVcIiwgVmFsdWVzOiBbXCJ0cnVlXCJdIH1dLFxuICAgICAgICAgIFBhZ2luYXRpb25Ub2tlbjogbmV4dFRva2VuLFxuICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICBuZXh0VG9rZW4gPSBQYWdpbmF0aW9uVG9rZW47XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIFJlc291cmNlVGFnTWFwcGluZ0xpc3QubWFwKGFzeW5jIChyZXNvdXJjZSkgPT4ge1xuICAgICAgICBhd2FpdCBsYW1iZGFDbGllbnQuc2VuZChcbiAgICAgICAgICBuZXcgSW52b2tlQ29tbWFuZCh7XG4gICAgICAgICAgICBGdW5jdGlvbk5hbWU6IHJlc291cmNlLlJlc291cmNlQVJOLFxuICAgICAgICAgICAgSW52b2NhdGlvblR5cGU6IFwiRXZlbnRcIixcbiAgICAgICAgICAgIFBheWxvYWQ6IEpTT04uc3RyaW5naWZ5KHsgW2tlZXBBY3RpdmVQaW5nXTogdHJ1ZSB9KSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoZW5hYmxlTG9ncykge1xuICAgICAgICAgIGNvbnNvbGUuaW5mbyhgSW52b2tlZCAke3Jlc291cmNlLlJlc291cmNlQVJOfWApO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApO1xuICB9IHdoaWxlIChuZXh0VG9rZW4gIT0gbnVsbCAmJiBuZXh0VG9rZW4gIT09IFwiXCIpO1xufTtcbiIsCiAgICAiZXhwb3J0IGNvbnN0IGtlZXBBY3RpdmVQaW5nID0gYCQka2VlcEFjdGl2ZVBpbmckJGA7XG4iCiAgXSwKICAibWFwcGluZ3MiOiAiQUFBQSx3QkFBUyxrQkFBZSwrQkFDeEIsOEJBQ0Usb0NBQ0Esb0RDSEssSUFBTSxFQUFpQixxQkRPOUIsSUFBTSxFQUFlLElBQUksRUFDbkIsRUFBZ0IsSUFBSSxFQUNwQixFQUFhLFFBQVEsSUFBSSxjQUFnQixPQUVsQyxFQUFVLE1BQU8sSUFBMEMsQ0FDdEUsSUFBUSxVQUFXLEVBRW5CLEdBQUksR0FBVSxLQUFNLE9BQ3BCLEdBQUksSUFBVyxtQkFBb0IsT0FFbkMsSUFBSSxFQUNKLEVBQUcsQ0FDRCxJQUFRLHlCQUF5QixDQUFDLEVBQUcsbUJBQ25DLE1BQU0sRUFBYyxLQUNsQixJQUFJLEVBQW9CLENBQ3RCLG9CQUFxQixDQUFDLGlCQUFpQixFQUN2QyxpQkFBa0IsR0FDbEIsV0FBWSxDQUFDLENBQUUsSUFBSyxhQUFjLE9BQVEsQ0FBQyxNQUFNLENBQUUsQ0FBQyxFQUNwRCxnQkFBaUIsQ0FDbkIsQ0FBQyxDQUNILEVBRUYsRUFBWSxFQUVaLE1BQU0sUUFBUSxJQUNaLEVBQXVCLElBQUksTUFBTyxJQUFhLENBUzdDLEdBUkEsTUFBTSxFQUFhLEtBQ2pCLElBQUksRUFBYyxDQUNoQixhQUFjLEVBQVMsWUFDdkIsZUFBZ0IsUUFDaEIsUUFBUyxLQUFLLFVBQVUsRUFBRyxHQUFpQixFQUFLLENBQUMsQ0FDcEQsQ0FBQyxDQUNILEVBRUksRUFDRixRQUFRLEtBQUssV0FBVyxFQUFTLGFBQWEsRUFFakQsQ0FDSCxRQUNPLEdBQWEsTUFBUSxJQUFjIiwKICAiZGVidWdJZCI6ICIwNERBQjE0QkYzOTkxMEE2NjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==
|
package/dist/runtime.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
var m="$$keepActivePing$$";function D(w,y){return($,j)=>{if($!=null&&typeof $==="object"&&m in $&&$[m]===!0){if(y?.enableLogs)console.info(`Keep active ping: ${JSON.stringify($)}`);return}return w($,j)}}function E(w,y){return async($)=>{if($.url==="https://lambda/"){let j=await $.json();if(j!=null&&typeof j==="object"&&m in j&&j[m]===!0){if(y?.enableLogs)console.info(`Keep active ping: ${JSON.stringify(j)}`);return new Response}return w(new Request($.url,{method:$.method,body:JSON.stringify(j),headers:$.headers}))}return w($)}}export{E as keptActiveFetch,D as keptActive};
|
|
2
|
-
|
|
3
|
-
//# debugId=CF5B628A23D9961664756E2164756E21
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc2hhcmVkLnRzIiwgIi4uL3J1bnRpbWUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbCiAgICAiZXhwb3J0IGNvbnN0IGtlZXBBY3RpdmVQaW5nID0gYCQka2VlcEFjdGl2ZVBpbmckJGA7XG4iLAogICAgImltcG9ydCB7IGtlZXBBY3RpdmVQaW5nIH0gZnJvbSBcIi4vc2hhcmVkXCI7XG5cbmludGVyZmFjZSBLZXB0QWN0aXZlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBJZiBkaXNhYmxlZCBubyBsb2dzIGFyZSBsb2dnZWQgdG8gQ2xvdWRXYXRjaFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVMb2dzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGtlcHRBY3RpdmU8RXZlbnQgPSBhbnksIENvbnRleHQgPSBhbnksIFJlc3BvbnNlID0gYW55PihcbiAgaGFuZGxlcjogKGV2ZW50OiBFdmVudCwgY29udGV4dDogQ29udGV4dCkgPT4gUHJvbWlzZTxSZXNwb25zZT4sXG4gIG9wdGlvbnM/OiBLZXB0QWN0aXZlT3B0aW9ucyxcbikge1xuICByZXR1cm4gKGV2ZW50OiBFdmVudCwgY29udGV4dDogQ29udGV4dCkgPT4ge1xuICAgIGlmIChcbiAgICAgIGV2ZW50ICE9IG51bGwgJiZcbiAgICAgIHR5cGVvZiBldmVudCA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAga2VlcEFjdGl2ZVBpbmcgaW4gZXZlbnQgJiZcbiAgICAgIGV2ZW50W2tlZXBBY3RpdmVQaW5nXSA9PT0gdHJ1ZVxuICAgICkge1xuICAgICAgaWYgKG9wdGlvbnM/LmVuYWJsZUxvZ3MpIHtcbiAgICAgICAgY29uc29sZS5pbmZvKGBLZWVwIGFjdGl2ZSBwaW5nOiAke0pTT04uc3RyaW5naWZ5KGV2ZW50KX1gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gaGFuZGxlcihldmVudCwgY29udGV4dCk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBrZXB0QWN0aXZlRmV0Y2goXG4gIGZldGNoOiAocmVxdWVzdDogUmVxdWVzdCkgPT4gUHJvbWlzZTxSZXNwb25zZT4sXG4gIG9wdGlvbnM/OiBLZXB0QWN0aXZlT3B0aW9ucyxcbikge1xuICByZXR1cm4gYXN5bmMgKHJlcXVlc3Q6IFJlcXVlc3QpID0+IHtcbiAgICBpZiAocmVxdWVzdC51cmwgPT09IFwiaHR0cHM6Ly9sYW1iZGEvXCIpIHtcbiAgICAgIGNvbnN0IGV2ZW50ID0gYXdhaXQgcmVxdWVzdC5qc29uKCk7XG5cbiAgICAgIGlmIChcbiAgICAgICAgZXZlbnQgIT0gbnVsbCAmJlxuICAgICAgICB0eXBlb2YgZXZlbnQgPT09IFwib2JqZWN0XCIgJiZcbiAgICAgICAga2VlcEFjdGl2ZVBpbmcgaW4gZXZlbnQgJiZcbiAgICAgICAgZXZlbnRba2VlcEFjdGl2ZVBpbmddID09PSB0cnVlXG4gICAgICApIHtcbiAgICAgICAgaWYgKG9wdGlvbnM/LmVuYWJsZUxvZ3MpIHtcbiAgICAgICAgICBjb25zb2xlLmluZm8oYEtlZXAgYWN0aXZlIHBpbmc6ICR7SlNPTi5zdHJpbmdpZnkoZXZlbnQpfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgUmVzcG9uc2UoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZldGNoKFxuICAgICAgICBuZXcgUmVxdWVzdChyZXF1ZXN0LnVybCwge1xuICAgICAgICAgIG1ldGhvZDogcmVxdWVzdC5tZXRob2QsXG4gICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoZXZlbnQpLFxuICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVycyxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBmZXRjaChyZXF1ZXN0KTtcbiAgfTtcbn1cbiIKICBdLAogICJtYXBwaW5ncyI6ICJBQUFPLElBQU0sRUFBaUIscUJDV3ZCLFNBQVMsQ0FBc0QsQ0FDcEUsRUFDQSxFQUNBLENBQ0EsTUFBTyxDQUFDLEVBQWMsSUFBcUIsQ0FDekMsR0FDRSxHQUFTLE1BQ1QsT0FBTyxJQUFVLFVBQ2pCLEtBQWtCLEdBQ2xCLEVBQU0sS0FBb0IsR0FDMUIsQ0FDQSxHQUFJLEdBQVMsV0FDWCxRQUFRLEtBQUsscUJBQXFCLEtBQUssVUFBVSxDQUFLLEdBQUcsRUFFM0QsT0FHRixPQUFPLEVBQVEsRUFBTyxDQUFPLEdBSTFCLFNBQVMsQ0FBZSxDQUM3QixFQUNBLEVBQ0EsQ0FDQSxNQUFPLE9BQU8sSUFBcUIsQ0FDakMsR0FBSSxFQUFRLE1BQVEsa0JBQW1CLENBQ3JDLElBQU0sRUFBUSxNQUFNLEVBQVEsS0FBSyxFQUVqQyxHQUNFLEdBQVMsTUFDVCxPQUFPLElBQVUsVUFDakIsS0FBa0IsR0FDbEIsRUFBTSxLQUFvQixHQUMxQixDQUNBLEdBQUksR0FBUyxXQUNYLFFBQVEsS0FBSyxxQkFBcUIsS0FBSyxVQUFVLENBQUssR0FBRyxFQUUzRCxPQUFPLElBQUksU0FHYixPQUFPLEVBQ0wsSUFBSSxRQUFRLEVBQVEsSUFBSyxDQUN2QixPQUFRLEVBQVEsT0FDaEIsS0FBTSxLQUFLLFVBQVUsQ0FBSyxFQUMxQixRQUFTLEVBQVEsT0FDbkIsQ0FBQyxDQUNILEVBR0YsT0FBTyxFQUFNLENBQU8iLAogICJkZWJ1Z0lkIjogIkNGNUI2MjhBMjNEOTk2MTY2NDc1NkUyMTY0NzU2RTIxIiwKICAibmFtZXMiOiBbXQp9
|