@digitraffic/common 2022.10.14-1 → 2022.10.28-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/{aws → dist/aws}/infra/api/integration.d.ts +0 -0
- package/dist/aws/infra/api/integration.js +52 -0
- package/dist/aws/infra/api/integration.js.map +1 -0
- package/{aws → dist/aws}/infra/api/response.d.ts +0 -0
- package/dist/aws/infra/api/response.js +61 -0
- package/dist/aws/infra/api/response.js.map +1 -0
- package/{aws → dist/aws}/infra/api/responses.d.ts +3 -3
- package/dist/aws/infra/api/responses.js +82 -0
- package/dist/aws/infra/api/responses.js.map +1 -0
- package/{aws → dist/aws}/infra/api/static-integration.d.ts +0 -0
- package/dist/aws/infra/api/static-integration.js +54 -0
- package/dist/aws/infra/api/static-integration.js.map +1 -0
- package/{aws → dist/aws}/infra/canaries/canary-alarm.d.ts +0 -0
- package/dist/aws/infra/canaries/canary-alarm.js +26 -0
- package/dist/aws/infra/canaries/canary-alarm.js.map +1 -0
- package/dist/aws/infra/canaries/canary-keys.d.ts +3 -0
- package/dist/aws/infra/canaries/canary-keys.js +7 -0
- package/dist/aws/infra/canaries/canary-keys.js.map +1 -0
- package/{aws → dist/aws}/infra/canaries/canary-parameters.d.ts +0 -0
- package/dist/aws/infra/canaries/canary-parameters.js +3 -0
- package/dist/aws/infra/canaries/canary-parameters.js.map +1 -0
- package/{aws → dist/aws}/infra/canaries/canary-role.d.ts +0 -0
- package/dist/aws/infra/canaries/canary-role.js +46 -0
- package/dist/aws/infra/canaries/canary-role.js.map +1 -0
- package/{aws → dist/aws}/infra/canaries/canary.d.ts +0 -0
- package/dist/aws/infra/canaries/canary.js +32 -0
- package/dist/aws/infra/canaries/canary.js.map +1 -0
- package/{aws → dist/aws}/infra/canaries/database-canary.d.ts +0 -0
- package/dist/aws/infra/canaries/database-canary.js +70 -0
- package/dist/aws/infra/canaries/database-canary.js.map +1 -0
- package/{aws → dist/aws}/infra/canaries/database-checker.d.ts +2 -2
- package/dist/aws/infra/canaries/database-checker.js +103 -0
- package/dist/aws/infra/canaries/database-checker.js.map +1 -0
- package/{aws → dist/aws}/infra/canaries/url-canary.d.ts +0 -3
- package/dist/aws/infra/canaries/url-canary.js +47 -0
- package/dist/aws/infra/canaries/url-canary.js.map +1 -0
- package/{aws → dist/aws}/infra/canaries/url-checker.d.ts +0 -0
- package/dist/aws/infra/canaries/url-checker.js +252 -0
- package/dist/aws/infra/canaries/url-checker.js.map +1 -0
- package/{aws → dist/aws}/infra/documentation.d.ts +0 -0
- package/dist/aws/infra/documentation.js +95 -0
- package/dist/aws/infra/documentation.js.map +1 -0
- package/{aws → dist/aws}/infra/scheduler.d.ts +7 -7
- package/dist/aws/infra/scheduler.js +31 -0
- package/dist/aws/infra/scheduler.js.map +1 -0
- package/{aws → dist/aws}/infra/security-rule.d.ts +0 -0
- package/dist/aws/infra/security-rule.js +39 -0
- package/dist/aws/infra/security-rule.js.map +1 -0
- package/{aws → dist/aws}/infra/sqs-integration.d.ts +0 -0
- package/dist/aws/infra/sqs-integration.js +93 -0
- package/dist/aws/infra/sqs-integration.js.map +1 -0
- package/{aws → dist/aws}/infra/sqs-queue.d.ts +0 -0
- package/dist/aws/infra/sqs-queue.js +130 -0
- package/dist/aws/infra/sqs-queue.js.map +1 -0
- package/{aws → dist/aws}/infra/stack/lambda-configs.d.ts +5 -5
- package/dist/aws/infra/stack/lambda-configs.js +105 -0
- package/dist/aws/infra/stack/lambda-configs.js.map +1 -0
- package/{aws → dist/aws}/infra/stack/monitoredfunction.d.ts +1 -1
- package/dist/aws/infra/stack/monitoredfunction.js +143 -0
- package/dist/aws/infra/stack/monitoredfunction.js.map +1 -0
- package/{aws → dist/aws}/infra/stack/rest_apis.d.ts +0 -0
- package/dist/aws/infra/stack/rest_apis.js +185 -0
- package/dist/aws/infra/stack/rest_apis.js.map +1 -0
- package/{aws → dist/aws}/infra/stack/stack-checking-aspect.d.ts +0 -0
- package/dist/aws/infra/stack/stack-checking-aspect.js +174 -0
- package/dist/aws/infra/stack/stack-checking-aspect.js.map +1 -0
- package/{aws → dist/aws}/infra/stack/stack.d.ts +5 -4
- package/dist/aws/infra/stack/stack.js +67 -0
- package/dist/aws/infra/stack/stack.js.map +1 -0
- package/{aws → dist/aws}/infra/stack/subscription.d.ts +3 -3
- package/dist/aws/infra/stack/subscription.js +42 -0
- package/dist/aws/infra/stack/subscription.js.map +1 -0
- package/{aws → dist/aws}/infra/usage-plans.d.ts +0 -0
- package/dist/aws/infra/usage-plans.js +42 -0
- package/dist/aws/infra/usage-plans.js.map +1 -0
- package/{aws → dist/aws}/runtime/apikey.d.ts +0 -0
- package/dist/aws/runtime/apikey.js +13 -0
- package/dist/aws/runtime/apikey.js.map +1 -0
- package/{aws → dist/aws}/runtime/digitraffic-integration-response.d.ts +0 -0
- package/dist/aws/runtime/digitraffic-integration-response.js +26 -0
- package/dist/aws/runtime/digitraffic-integration-response.js.map +1 -0
- package/dist/aws/runtime/environment.d.ts +1 -0
- package/dist/aws/runtime/environment.js +12 -0
- package/dist/aws/runtime/environment.js.map +1 -0
- package/{aws → dist/aws}/runtime/messaging.d.ts +0 -0
- package/dist/aws/runtime/messaging.js +31 -0
- package/dist/aws/runtime/messaging.js.map +1 -0
- package/{aws → dist/aws}/runtime/s3.d.ts +0 -0
- package/dist/aws/runtime/s3.js +30 -0
- package/dist/aws/runtime/s3.js.map +1 -0
- package/{aws → dist/aws}/runtime/secrets/dbsecret.d.ts +0 -0
- package/dist/aws/runtime/secrets/dbsecret.js +96 -0
- package/dist/aws/runtime/secrets/dbsecret.js.map +1 -0
- package/{aws → dist/aws}/runtime/secrets/proxy-holder.d.ts +0 -0
- package/dist/aws/runtime/secrets/proxy-holder.js +27 -0
- package/dist/aws/runtime/secrets/proxy-holder.js.map +1 -0
- package/{aws → dist/aws}/runtime/secrets/rds-holder.d.ts +0 -0
- package/dist/aws/runtime/secrets/rds-holder.js +27 -0
- package/dist/aws/runtime/secrets/rds-holder.js.map +1 -0
- package/{aws → dist/aws}/runtime/secrets/secret-holder.d.ts +0 -0
- package/dist/aws/runtime/secrets/secret-holder.js +76 -0
- package/dist/aws/runtime/secrets/secret-holder.js.map +1 -0
- package/{aws → dist/aws}/runtime/secrets/secret.d.ts +0 -0
- package/dist/aws/runtime/secrets/secret.js +43 -0
- package/dist/aws/runtime/secrets/secret.js.map +1 -0
- package/{aws → dist/aws}/types/errors.d.ts +4 -0
- package/dist/aws/types/errors.js +16 -0
- package/dist/aws/types/errors.js.map +1 -0
- package/{aws → dist/aws}/types/lambda-response.d.ts +4 -3
- package/dist/aws/types/lambda-response.js +33 -0
- package/dist/aws/types/lambda-response.js.map +1 -0
- package/{aws → dist/aws}/types/mediatypes.d.ts +1 -1
- package/dist/aws/types/mediatypes.js +16 -0
- package/dist/aws/types/mediatypes.js.map +1 -0
- package/{aws → dist/aws}/types/model-with-reference.d.ts +0 -0
- package/dist/aws/types/model-with-reference.js +3 -0
- package/dist/aws/types/model-with-reference.js.map +1 -0
- package/{aws → dist/aws}/types/proxytypes.d.ts +0 -0
- package/dist/aws/types/proxytypes.js +3 -0
- package/dist/aws/types/proxytypes.js.map +1 -0
- package/{aws → dist/aws}/types/tags.d.ts +0 -0
- package/dist/aws/types/tags.js +7 -0
- package/dist/aws/types/tags.js.map +1 -0
- package/{database → dist/database}/cached.d.ts +0 -0
- package/dist/database/cached.js +32 -0
- package/dist/database/cached.js.map +1 -0
- package/{database → dist/database}/database.d.ts +0 -0
- package/dist/database/database.js +70 -0
- package/dist/database/database.js.map +1 -0
- package/{database → dist/database}/last-updated.d.ts +0 -0
- package/dist/database/last-updated.js +54 -0
- package/dist/database/last-updated.js.map +1 -0
- package/dist/database/models.d.ts +6 -0
- package/dist/database/models.js +3 -0
- package/dist/database/models.js.map +1 -0
- package/{marine → dist/marine}/id_utils.d.ts +0 -0
- package/dist/marine/id_utils.js +33 -0
- package/dist/marine/id_utils.js.map +1 -0
- package/{marine → dist/marine}/rtz.d.ts +0 -0
- package/dist/marine/rtz.js +3 -0
- package/dist/marine/rtz.js.map +1 -0
- package/{test → dist/test}/asserter.d.ts +0 -0
- package/dist/test/asserter.js +45 -0
- package/dist/test/asserter.js.map +1 -0
- package/{test → dist/test}/db-testutils.d.ts +1 -1
- package/dist/test/db-testutils.js +31 -0
- package/dist/test/db-testutils.js.map +1 -0
- package/{test → dist/test}/httpserver.d.ts +2 -1
- package/dist/test/httpserver.js +74 -0
- package/dist/test/httpserver.js.map +1 -0
- package/{test → dist/test}/secret.d.ts +0 -0
- package/dist/test/secret.js +25 -0
- package/dist/test/secret.js.map +1 -0
- package/{test → dist/test}/secrets-manager.d.ts +0 -0
- package/dist/test/secrets-manager.js +59 -0
- package/dist/test/secrets-manager.js.map +1 -0
- package/{test → dist/test}/testutils.d.ts +0 -0
- package/dist/test/testutils.js +44 -0
- package/dist/test/testutils.js.map +1 -0
- package/dist/types/either.d.ts +9 -0
- package/dist/types/either.js +3 -0
- package/dist/types/either.js.map +1 -0
- package/{types → dist/types}/input-error.d.ts +0 -0
- package/dist/types/input-error.js +7 -0
- package/dist/types/input-error.js.map +1 -0
- package/{types → dist/types}/language.d.ts +0 -0
- package/dist/types/language.js +10 -0
- package/dist/types/language.js.map +1 -0
- package/{types → dist/types}/traffictype.d.ts +0 -0
- package/dist/types/traffictype.js +13 -0
- package/dist/types/traffictype.js.map +1 -0
- package/{types → dist/types}/validator.d.ts +0 -0
- package/dist/types/validator.js +14 -0
- package/dist/types/validator.js.map +1 -0
- package/{utils → dist/utils}/api-model.d.ts +0 -0
- package/dist/utils/api-model.js +129 -0
- package/dist/utils/api-model.js.map +1 -0
- package/{utils → dist/utils}/base64.d.ts +0 -0
- package/dist/utils/base64.js +21 -0
- package/dist/utils/base64.js.map +1 -0
- package/{utils → dist/utils}/date-utils.d.ts +0 -0
- package/dist/utils/date-utils.js +34 -0
- package/dist/utils/date-utils.js.map +1 -0
- package/{utils → dist/utils}/geojson-types.d.ts +0 -0
- package/dist/utils/geojson-types.js +18 -0
- package/dist/utils/geojson-types.js.map +1 -0
- package/{utils → dist/utils}/geometry.d.ts +0 -0
- package/dist/utils/geometry.js +164 -0
- package/dist/utils/geometry.js.map +1 -0
- package/{utils → dist/utils}/retry.d.ts +0 -0
- package/dist/utils/retry.js +50 -0
- package/dist/utils/retry.js.map +1 -0
- package/{utils → dist/utils}/slack.d.ts +0 -0
- package/dist/utils/slack.js +25 -0
- package/dist/utils/slack.js.map +1 -0
- package/{utils → dist/utils}/utils.d.ts +24 -0
- package/dist/utils/utils.js +75 -0
- package/dist/utils/utils.js.map +1 -0
- package/package.json +12 -10
- package/src/@types/geojson-validation/index.d.ts +4 -0
- package/src/aws/infra/api/integration.ts +73 -0
- package/src/aws/infra/api/response.ts +67 -0
- package/src/aws/infra/api/responses.ts +124 -0
- package/src/aws/infra/api/static-integration.ts +62 -0
- package/src/aws/infra/canaries/canary-alarm.ts +31 -0
- package/src/aws/infra/canaries/canary-keys.ts +3 -0
- package/src/aws/infra/canaries/canary-parameters.ts +19 -0
- package/src/aws/infra/canaries/canary-role.ts +47 -0
- package/src/aws/infra/canaries/canary.ts +46 -0
- package/src/aws/infra/canaries/database-canary.ts +98 -0
- package/src/aws/infra/canaries/database-checker.ts +155 -0
- package/src/aws/infra/canaries/url-canary.ts +74 -0
- package/src/aws/infra/canaries/url-checker.ts +366 -0
- package/src/aws/infra/documentation.ts +124 -0
- package/src/aws/infra/scheduler.ts +59 -0
- package/src/aws/infra/security-rule.ts +38 -0
- package/src/aws/infra/sqs-integration.ts +102 -0
- package/src/aws/infra/sqs-queue.ts +148 -0
- package/src/aws/infra/stack/lambda-configs.ts +207 -0
- package/src/aws/infra/stack/monitoredfunction.ts +342 -0
- package/src/aws/infra/stack/rest_apis.ts +223 -0
- package/src/aws/infra/stack/stack-checking-aspect.ts +279 -0
- package/src/aws/infra/stack/stack.ts +145 -0
- package/src/aws/infra/stack/subscription.ts +58 -0
- package/src/aws/infra/usage-plans.ts +41 -0
- package/src/aws/runtime/apikey.ts +9 -0
- package/src/aws/runtime/digitraffic-integration-response.ts +28 -0
- package/src/aws/runtime/environment.ts +9 -0
- package/src/aws/runtime/messaging.ts +26 -0
- package/src/aws/runtime/s3.ts +44 -0
- package/src/aws/runtime/secrets/dbsecret.ts +116 -0
- package/src/aws/runtime/secrets/proxy-holder.ts +37 -0
- package/src/aws/runtime/secrets/rds-holder.ts +33 -0
- package/src/aws/runtime/secrets/secret-holder.ts +116 -0
- package/src/aws/runtime/secrets/secret.ts +50 -0
- package/src/aws/types/errors.ts +14 -0
- package/src/aws/types/lambda-response.ts +43 -0
- package/src/aws/types/mediatypes.ts +11 -0
- package/src/aws/types/model-with-reference.ts +8 -0
- package/src/aws/types/proxytypes.ts +27 -0
- package/src/aws/types/tags.ts +3 -0
- package/src/database/cached.ts +35 -0
- package/src/database/database.ts +96 -0
- package/src/database/last-updated.ts +59 -0
- package/src/database/models.ts +7 -0
- package/src/marine/id_utils.ts +30 -0
- package/src/marine/rtz.ts +57 -0
- package/src/test/asserter.ts +48 -0
- package/src/test/db-testutils.ts +44 -0
- package/src/test/httpserver.ts +96 -0
- package/src/test/secret.ts +23 -0
- package/src/test/secrets-manager.ts +34 -0
- package/src/test/testutils.ts +39 -0
- package/src/types/either.ts +3 -0
- package/src/types/input-error.ts +2 -0
- package/src/types/language.ts +3 -0
- package/src/types/traffictype.ts +8 -0
- package/src/types/validator.ts +10 -0
- package/src/utils/api-model.ts +133 -0
- package/src/utils/base64.ts +16 -0
- package/src/utils/date-utils.ts +30 -0
- package/src/utils/geojson-types.ts +22 -0
- package/src/utils/geometry.ts +164 -0
- package/src/utils/retry.ts +49 -0
- package/src/utils/slack.ts +22 -0
- package/src/utils/utils.ts +105 -0
- package/aws/index.d.ts +0 -1
- package/aws/infra/api/index.d.ts +0 -1
- package/aws/infra/api/integration.js +0 -52
- package/aws/infra/api/response.js +0 -61
- package/aws/infra/api/responses.js +0 -79
- package/aws/infra/api/static-integration.js +0 -54
- package/aws/infra/canaries/canary-alarm.js +0 -26
- package/aws/infra/canaries/canary-parameters.js +0 -3
- package/aws/infra/canaries/canary-role.js +0 -46
- package/aws/infra/canaries/canary.js +0 -29
- package/aws/infra/canaries/database-canary.js +0 -55
- package/aws/infra/canaries/database-checker.js +0 -109
- package/aws/infra/canaries/url-canary.js +0 -46
- package/aws/infra/canaries/url-checker.js +0 -238
- package/aws/infra/documentation.js +0 -95
- package/aws/infra/scheduler.js +0 -31
- package/aws/infra/security-rule.js +0 -39
- package/aws/infra/sqs-integration.js +0 -93
- package/aws/infra/sqs-queue.js +0 -130
- package/aws/infra/stack/lambda-configs.js +0 -93
- package/aws/infra/stack/monitoredfunction.js +0 -135
- package/aws/infra/stack/rest_apis.js +0 -185
- package/aws/infra/stack/stack-checking-aspect.js +0 -174
- package/aws/infra/stack/stack.js +0 -60
- package/aws/infra/stack/subscription.js +0 -41
- package/aws/infra/usage-plans.js +0 -42
- package/aws/runtime/apikey.js +0 -13
- package/aws/runtime/digitraffic-integration-response.js +0 -26
- package/aws/runtime/messaging.js +0 -31
- package/aws/runtime/s3.js +0 -30
- package/aws/runtime/secrets/dbsecret.js +0 -96
- package/aws/runtime/secrets/proxy-holder.js +0 -26
- package/aws/runtime/secrets/rds-holder.js +0 -26
- package/aws/runtime/secrets/secret-holder.js +0 -73
- package/aws/runtime/secrets/secret.js +0 -43
- package/aws/types/errors.js +0 -9
- package/aws/types/lambda-response.js +0 -28
- package/aws/types/mediatypes.js +0 -15
- package/aws/types/model-with-reference.js +0 -3
- package/aws/types/proxytypes.js +0 -3
- package/aws/types/tags.js +0 -7
- package/database/cached.js +0 -32
- package/database/database.js +0 -62
- package/database/last-updated.js +0 -54
- package/index.d.ts +0 -1
- package/index.js +0 -18
- package/marine/id_utils.js +0 -33
- package/marine/rtz.js +0 -3
- package/test/asserter.js +0 -45
- package/test/db-testutils.js +0 -31
- package/test/httpserver.js +0 -67
- package/test/secret.js +0 -25
- package/test/secrets-manager.js +0 -59
- package/test/testutils.js +0 -44
- package/types/index.d.ts +0 -1
- package/types/input-error.js +0 -7
- package/types/language.js +0 -10
- package/types/traffictype.js +0 -13
- package/types/validator.js +0 -14
- package/utils/api-model.js +0 -129
- package/utils/base64.js +0 -21
- package/utils/date-utils.js +0 -34
- package/utils/geojson-types.js +0 -18
- package/utils/geometry.js +0 -140
- package/utils/retry.js +0 -50
- package/utils/slack.js +0 -25
- package/utils/utils.js +0 -40
- package/yarn-error.log +0 -103
File without changes
|
@@ -0,0 +1,52 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.DigitrafficIntegration = void 0;
|
4
|
+
const aws_apigateway_1 = require("aws-cdk-lib/aws-apigateway");
|
5
|
+
const mediatypes_1 = require("../../types/mediatypes");
|
6
|
+
const digitraffic_integration_response_1 = require("../../runtime/digitraffic-integration-response");
|
7
|
+
class DigitrafficIntegration {
|
8
|
+
constructor(lambda, mediaType = mediatypes_1.MediaType.TEXT_PLAIN) {
|
9
|
+
this.parameters = [];
|
10
|
+
this.lambda = lambda;
|
11
|
+
this.mediaType = mediaType;
|
12
|
+
}
|
13
|
+
addPathParameter(...names) {
|
14
|
+
names.forEach(name => this.parameters.push({ type: 'path', name }));
|
15
|
+
return this;
|
16
|
+
}
|
17
|
+
addQueryParameter(...names) {
|
18
|
+
names.forEach(name => this.parameters.push({ type: 'querystring', name }));
|
19
|
+
return this;
|
20
|
+
}
|
21
|
+
build() {
|
22
|
+
const integrationResponses = this.createResponses();
|
23
|
+
return new aws_apigateway_1.LambdaIntegration(this.lambda, {
|
24
|
+
proxy: false,
|
25
|
+
integrationResponses,
|
26
|
+
requestParameters: this.parameters.length == 0 ? undefined : this.createRequestParameters(),
|
27
|
+
requestTemplates: this.parameters.length == 0 ? undefined : this.createRequestTemplates(),
|
28
|
+
passthroughBehavior: aws_apigateway_1.PassthroughBehavior.WHEN_NO_MATCH,
|
29
|
+
});
|
30
|
+
}
|
31
|
+
createRequestParameters() {
|
32
|
+
const requestParameters = {};
|
33
|
+
this.parameters.forEach((parameter) => {
|
34
|
+
requestParameters[`integration.request.${parameter.type}.${parameter.name}`] = `method.request.${parameter.type}.${parameter.name}`;
|
35
|
+
});
|
36
|
+
return requestParameters;
|
37
|
+
}
|
38
|
+
createRequestTemplates() {
|
39
|
+
const requestJson = {};
|
40
|
+
this.parameters.forEach((parameter) => {
|
41
|
+
requestJson[parameter.name] = `$util.escapeJavaScript($input.params('${parameter.name}'))`;
|
42
|
+
});
|
43
|
+
return {
|
44
|
+
[mediatypes_1.MediaType.APPLICATION_JSON]: JSON.stringify(requestJson),
|
45
|
+
};
|
46
|
+
}
|
47
|
+
createResponses() {
|
48
|
+
return [digitraffic_integration_response_1.DigitrafficIntegrationResponse.ok(this.mediaType)];
|
49
|
+
}
|
50
|
+
}
|
51
|
+
exports.DigitrafficIntegration = DigitrafficIntegration;
|
52
|
+
//# sourceMappingURL=integration.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"integration.js","sourceRoot":"","sources":["../../../../src/aws/infra/api/integration.ts"],"names":[],"mappings":";;;AAAA,+DAAuG;AAEvG,uDAAiD;AACjD,qGAA8F;AAS9F,MAAa,sBAAsB;IAM/B,YAAY,MAAiB,EAAE,SAAS,GAAG,sBAAS,CAAC,UAAU;QAFtD,eAAU,GAAmB,EAAE,CAAC;QAGrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,gBAAgB,CAAC,GAAG,KAAe;QAC/B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;QAElE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,iBAAiB,CAAC,GAAG,KAAe;QAChC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;QAEzE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAEpD,OAAO,IAAI,kCAAiB,CAAC,IAAI,CAAC,MAAM,EAAE;YACtC,KAAK,EAAE,KAAK;YACZ,oBAAoB;YACpB,iBAAiB,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,EAAE;YAC3F,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACzF,mBAAmB,EAAE,oCAAmB,CAAC,aAAa;SACzD,CAAC,CAAC;IACP,CAAC;IAED,uBAAuB;QACnB,MAAM,iBAAiB,GAA2B,EAAE,CAAC;QAErD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAuB,EAAE,EAAE;YAChD,iBAAiB,CAAC,uBAAuB,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,kBAAkB,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;QACxI,CAAC,CAAC,CAAC;QAEH,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAED,sBAAsB;QAClB,MAAM,WAAW,GAA2B,EAAE,CAAC;QAE/C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAuB,EAAE,EAAE;YAChD,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,yCAAyC,SAAS,CAAC,IAAI,KAAK,CAAC;QAC/F,CAAC,CAAC,CAAC;QAEH,OAAO;YACH,CAAC,sBAAS,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;SAC5D,CAAC;IACN,CAAC;IAED,eAAe;QACX,OAAO,CAAC,iEAA8B,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/D,CAAC;CACJ;AA5DD,wDA4DC"}
|
File without changes
|
@@ -0,0 +1,61 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.createResponses = exports.InternalServerErrorResponseTemplate = exports.SvgResponseTemplate = exports.XmlResponseTemplate = exports.NotFoundResponseTemplate = exports.BadRequestResponseTemplate = exports.NotFoundResponse = exports.MessageModel = exports.RESPONSE_DEFAULT_LAMBDA = void 0;
|
4
|
+
const apigateway = require("aws-cdk-lib/aws-apigateway");
|
5
|
+
const mediatypes_1 = require("../../types/mediatypes");
|
6
|
+
/**
|
7
|
+
* This is velocity-script, that assumes the response to be LambdaResponse(status and body).
|
8
|
+
* It will always return the body and status, but if status in something else than 200 OK the content-type
|
9
|
+
* will be overridden to text/plain. (it's assumed, that lambda will return error text).
|
10
|
+
*
|
11
|
+
* If fileName is set, then Content-Disposition-header will be set to use it
|
12
|
+
*/
|
13
|
+
exports.RESPONSE_DEFAULT_LAMBDA = `#set($inputRoot = $input.path('$'))
|
14
|
+
$inputRoot.body
|
15
|
+
#if ($inputRoot.status != 200)
|
16
|
+
#set ($context.responseOverride.status = $inputRoot.status)
|
17
|
+
#set ($context.responseOverride.header.Content-Type = 'text/plain')
|
18
|
+
#end
|
19
|
+
#set ($context.responseOverride.header.Access-Control-Allow-Origin = '*')
|
20
|
+
#if ("$!inputRoot.fileName" != "")
|
21
|
+
#set ($disposition = 'attachment; filename="FN"')
|
22
|
+
#set ($context.responseOverride.header.Content-Disposition = $disposition.replaceAll('FN', $inputRoot.fileName))
|
23
|
+
#end
|
24
|
+
`;
|
25
|
+
const BODY_FROM_INPUT_PATH = "$input.path('$').body";
|
26
|
+
// DEPRECATED
|
27
|
+
const messageSchema = {
|
28
|
+
schema: apigateway.JsonSchemaVersion.DRAFT4,
|
29
|
+
type: apigateway.JsonSchemaType.OBJECT,
|
30
|
+
description: 'Response with message',
|
31
|
+
properties: {
|
32
|
+
message: {
|
33
|
+
type: apigateway.JsonSchemaType.STRING,
|
34
|
+
description: 'Response message',
|
35
|
+
},
|
36
|
+
},
|
37
|
+
};
|
38
|
+
// DEPRECATED
|
39
|
+
exports.MessageModel = {
|
40
|
+
contentType: mediatypes_1.MediaType.APPLICATION_JSON,
|
41
|
+
modelName: 'MessageResponseModel',
|
42
|
+
schema: messageSchema,
|
43
|
+
};
|
44
|
+
const NotFoundMessage = 'Not found';
|
45
|
+
exports.NotFoundResponse = JSON.stringify({ message: NotFoundMessage });
|
46
|
+
const InternalServerErrorMessage = 'Error';
|
47
|
+
const InternalServerErrorResponse = JSON.stringify({ message: InternalServerErrorMessage });
|
48
|
+
const BadRequestMessage = 'Bad request';
|
49
|
+
const BadRequestResponse = JSON.stringify({ message: BadRequestMessage });
|
50
|
+
exports.BadRequestResponseTemplate = createResponses(mediatypes_1.MediaType.APPLICATION_JSON, BadRequestResponse);
|
51
|
+
exports.NotFoundResponseTemplate = createResponses(mediatypes_1.MediaType.APPLICATION_JSON, exports.NotFoundResponse);
|
52
|
+
exports.XmlResponseTemplate = createResponses(mediatypes_1.MediaType.APPLICATION_XML, BODY_FROM_INPUT_PATH);
|
53
|
+
exports.SvgResponseTemplate = createResponses(mediatypes_1.MediaType.IMAGE_SVG, BODY_FROM_INPUT_PATH);
|
54
|
+
exports.InternalServerErrorResponseTemplate = createResponses(mediatypes_1.MediaType.APPLICATION_JSON, InternalServerErrorResponse);
|
55
|
+
function createResponses(key, value) {
|
56
|
+
const map = {};
|
57
|
+
map[key] = value;
|
58
|
+
return map;
|
59
|
+
}
|
60
|
+
exports.createResponses = createResponses;
|
61
|
+
//# sourceMappingURL=response.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../../src/aws/infra/api/response.ts"],"names":[],"mappings":";;;AAAA,yDAA0D;AAC1D,uDAAiD;AAEjD;;;;;;GAMG;AACU,QAAA,uBAAuB,GAAG;;;;;;;;;;;CAWtC,CAAC;AAEF,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AAErD,aAAa;AACb,MAAM,aAAa,GAA0B;IACzC,MAAM,EAAE,UAAU,CAAC,iBAAiB,CAAC,MAAM;IAC3C,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,MAAM;IACtC,WAAW,EAAE,uBAAuB;IACpC,UAAU,EAAE;QACR,OAAO,EAAE;YACL,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,MAAM;YACtC,WAAW,EAAE,kBAAkB;SAClC;KACJ;CACJ,CAAC;AAEF,aAAa;AACA,QAAA,YAAY,GAAG;IACxB,WAAW,EAAE,sBAAS,CAAC,gBAAgB;IACvC,SAAS,EAAE,sBAAsB;IACjC,MAAM,EAAE,aAAa;CACxB,CAAC;AAEF,MAAM,eAAe,GAAG,WAAW,CAAC;AACvB,QAAA,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAC,OAAO,EAAE,eAAe,EAAC,CAAC,CAAC;AAE3E,MAAM,0BAA0B,GAAG,OAAO,CAAC;AAC3C,MAAM,2BAA2B,GAAG,IAAI,CAAC,SAAS,CAAC,EAAC,OAAO,EAAE,0BAA0B,EAAC,CAAC,CAAC;AAE1F,MAAM,iBAAiB,GAAG,aAAa,CAAC;AACxC,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAC,OAAO,EAAE,iBAAiB,EAAC,CAAC,CAAC;AAE3D,QAAA,0BAA0B,GAAG,eAAe,CAAC,sBAAS,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;AAC7F,QAAA,wBAAwB,GAAG,eAAe,CAAC,sBAAS,CAAC,gBAAgB,EAAE,wBAAgB,CAAC,CAAC;AACzF,QAAA,mBAAmB,GAAG,eAAe,CAAC,sBAAS,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;AACvF,QAAA,mBAAmB,GAAG,eAAe,CAAC,sBAAS,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;AACjF,QAAA,mCAAmC,GAAG,eAAe,CAAC,sBAAS,CAAC,gBAAgB,EAAE,2BAA2B,CAAC,CAAC;AAE5H,SAAgB,eAAe,CAAI,GAAc,EAAE,KAAQ;IACvD,MAAM,GAAG,GAAsB,EAAE,CAAC;IAElC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAEjB,OAAO,GAAG,CAAC;AACf,CAAC;AAND,0CAMC"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { LambdaIntegration, MethodResponse, IntegrationResponse, PassthroughBehavior } from "aws-cdk-lib/aws-apigateway";
|
2
|
-
import { Function } from
|
2
|
+
import { Function as AWSFunction } from "aws-cdk-lib/aws-lambda";
|
3
3
|
import { IModel } from "aws-cdk-lib/aws-apigateway/lib/model";
|
4
4
|
import { MediaType } from "../../types/mediatypes";
|
5
5
|
export declare const RESPONSE_200_OK: IntegrationResponse;
|
@@ -7,7 +7,7 @@ export declare const RESPONSE_400_BAD_REQUEST: IntegrationResponse;
|
|
7
7
|
export declare const RESPONSE_500_SERVER_ERROR: IntegrationResponse;
|
8
8
|
export declare const RESPONSE_CORS_INTEGRATION: {
|
9
9
|
responseParameters: {
|
10
|
-
|
10
|
+
"method.response.header.Access-Control-Allow-Origin": string;
|
11
11
|
};
|
12
12
|
};
|
13
13
|
export declare const RESPONSE_404_NOT_FOUND: {
|
@@ -34,6 +34,6 @@ interface IntegrationOptions {
|
|
34
34
|
* @param lambdaFunction The Lambda function
|
35
35
|
* @param options Options
|
36
36
|
*/
|
37
|
-
export declare function defaultIntegration(lambdaFunction:
|
37
|
+
export declare function defaultIntegration(lambdaFunction: AWSFunction, options?: IntegrationOptions): LambdaIntegration;
|
38
38
|
export declare function getResponse(response: IntegrationResponse, options?: IntegrationOptions): IntegrationResponse;
|
39
39
|
export {};
|
@@ -0,0 +1,82 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.getResponse = exports.defaultIntegration = exports.corsMethod = exports.methodResponse = exports.RESPONSE_404_NOT_FOUND = exports.RESPONSE_CORS_INTEGRATION = exports.RESPONSE_500_SERVER_ERROR = exports.RESPONSE_400_BAD_REQUEST = exports.RESPONSE_200_OK = void 0;
|
4
|
+
const response_1 = require("./response");
|
5
|
+
const aws_apigateway_1 = require("aws-cdk-lib/aws-apigateway");
|
6
|
+
const errors_1 = require("../../types/errors");
|
7
|
+
exports.RESPONSE_200_OK = {
|
8
|
+
statusCode: "200",
|
9
|
+
};
|
10
|
+
exports.RESPONSE_400_BAD_REQUEST = {
|
11
|
+
statusCode: "400",
|
12
|
+
selectionPattern: errors_1.BAD_REQUEST_MESSAGE,
|
13
|
+
responseTemplates: response_1.BadRequestResponseTemplate,
|
14
|
+
};
|
15
|
+
exports.RESPONSE_500_SERVER_ERROR = {
|
16
|
+
statusCode: "500",
|
17
|
+
selectionPattern: errors_1.ERROR_MESSAGE,
|
18
|
+
responseTemplates: response_1.InternalServerErrorResponseTemplate,
|
19
|
+
};
|
20
|
+
const RESPONSE_XML = {
|
21
|
+
responseTemplates: response_1.XmlResponseTemplate,
|
22
|
+
};
|
23
|
+
exports.RESPONSE_CORS_INTEGRATION = {
|
24
|
+
responseParameters: {
|
25
|
+
"method.response.header.Access-Control-Allow-Origin": "'*'",
|
26
|
+
},
|
27
|
+
};
|
28
|
+
exports.RESPONSE_404_NOT_FOUND = {
|
29
|
+
statusCode: "404",
|
30
|
+
selectionPattern: errors_1.NOT_FOUND_MESSAGE,
|
31
|
+
responseTemplates: response_1.NotFoundResponseTemplate,
|
32
|
+
};
|
33
|
+
function methodResponse(status, contentType, model, parameters) {
|
34
|
+
return {
|
35
|
+
statusCode: status,
|
36
|
+
responseModels: (0, response_1.createResponses)(contentType, model),
|
37
|
+
responseParameters: parameters || {},
|
38
|
+
};
|
39
|
+
}
|
40
|
+
exports.methodResponse = methodResponse;
|
41
|
+
function corsMethod(response) {
|
42
|
+
return {
|
43
|
+
...response,
|
44
|
+
...{
|
45
|
+
responseParameters: {
|
46
|
+
"method.response.header.Access-Control-Allow-Origin": true,
|
47
|
+
},
|
48
|
+
},
|
49
|
+
};
|
50
|
+
}
|
51
|
+
exports.corsMethod = corsMethod;
|
52
|
+
/**
|
53
|
+
* Creates a default Lambda integration for a REST API resource _root_
|
54
|
+
* @param lambdaFunction The Lambda function
|
55
|
+
* @param options Options
|
56
|
+
*/
|
57
|
+
function defaultIntegration(lambdaFunction, options) {
|
58
|
+
return new aws_apigateway_1.LambdaIntegration(lambdaFunction, {
|
59
|
+
proxy: false,
|
60
|
+
integrationResponses: options?.responses || [
|
61
|
+
getResponse(exports.RESPONSE_200_OK, options),
|
62
|
+
getResponse(exports.RESPONSE_400_BAD_REQUEST, options),
|
63
|
+
getResponse(exports.RESPONSE_404_NOT_FOUND, options),
|
64
|
+
getResponse(exports.RESPONSE_500_SERVER_ERROR, options),
|
65
|
+
],
|
66
|
+
requestParameters: options?.requestParameters || {},
|
67
|
+
requestTemplates: options?.requestTemplates || {},
|
68
|
+
passthroughBehavior: options?.passthroughBehavior ?? aws_apigateway_1.PassthroughBehavior.WHEN_NO_MATCH,
|
69
|
+
});
|
70
|
+
}
|
71
|
+
exports.defaultIntegration = defaultIntegration;
|
72
|
+
function getResponse(response, options) {
|
73
|
+
if (options?.xml) {
|
74
|
+
response = { ...response, ...RESPONSE_XML };
|
75
|
+
}
|
76
|
+
if (!options?.disableCors) {
|
77
|
+
response = { ...response, ...exports.RESPONSE_CORS_INTEGRATION };
|
78
|
+
}
|
79
|
+
return response;
|
80
|
+
}
|
81
|
+
exports.getResponse = getResponse;
|
82
|
+
//# sourceMappingURL=responses.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"responses.js","sourceRoot":"","sources":["../../../../src/aws/infra/api/responses.ts"],"names":[],"mappings":";;;AAAA,yCAMoB;AACpB,+DAKoC;AAGpC,+CAI4B;AAGf,QAAA,eAAe,GAAwB;IAChD,UAAU,EAAE,KAAK;CACpB,CAAC;AAEW,QAAA,wBAAwB,GAAwB;IACzD,UAAU,EAAE,KAAK;IACjB,gBAAgB,EAAE,4BAAmB;IACrC,iBAAiB,EAAE,qCAA0B;CAChD,CAAC;AAEW,QAAA,yBAAyB,GAAwB;IAC1D,UAAU,EAAE,KAAK;IACjB,gBAAgB,EAAE,sBAAa;IAC/B,iBAAiB,EAAE,8CAAmC;CACzD,CAAC;AAEF,MAAM,YAAY,GAAG;IACjB,iBAAiB,EAAE,8BAAmB;CACzC,CAAC;AAEW,QAAA,yBAAyB,GAAG;IACrC,kBAAkB,EAAE;QAChB,oDAAoD,EAAE,KAAK;KAC9D;CACJ,CAAC;AAEW,QAAA,sBAAsB,GAAG;IAClC,UAAU,EAAE,KAAK;IACjB,gBAAgB,EAAE,0BAAiB;IACnC,iBAAiB,EAAE,mCAAwB;CAC9C,CAAC;AAEF,SAAgB,cAAc,CAC1B,MAAc,EACd,WAAsB,EACtB,KAAa,EACb,UAAoC;IAEpC,OAAO;QACH,UAAU,EAAE,MAAM;QAClB,cAAc,EAAE,IAAA,0BAAe,EAAC,WAAW,EAAE,KAAK,CAAC;QACnD,kBAAkB,EAAE,UAAU,IAAI,EAAE;KACvC,CAAC;AACN,CAAC;AAXD,wCAWC;AAED,SAAgB,UAAU,CAAC,QAAwB;IAC/C,OAAO;QACH,GAAG,QAAQ;QACX,GAAG;YACC,kBAAkB,EAAE;gBAChB,oDAAoD,EAAE,IAAI;aAC7D;SACJ;KACJ,CAAC;AACN,CAAC;AATD,gCASC;AAWD;;;;GAIG;AACH,SAAgB,kBAAkB,CAC9B,cAA2B,EAC3B,OAA4B;IAE5B,OAAO,IAAI,kCAAiB,CAAC,cAAc,EAAE;QACzC,KAAK,EAAE,KAAK;QACZ,oBAAoB,EAAE,OAAO,EAAE,SAAS,IAAI;YACxC,WAAW,CAAC,uBAAe,EAAE,OAAO,CAAC;YACrC,WAAW,CAAC,gCAAwB,EAAE,OAAO,CAAC;YAC9C,WAAW,CAAC,8BAAsB,EAAE,OAAO,CAAC;YAC5C,WAAW,CAAC,iCAAyB,EAAE,OAAO,CAAC;SAClD;QACD,iBAAiB,EAAE,OAAO,EAAE,iBAAiB,IAAI,EAAE;QACnD,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,IAAI,EAAE;QACjD,mBAAmB,EACf,OAAO,EAAE,mBAAmB,IAAI,oCAAmB,CAAC,aAAa;KACxE,CAAC,CAAC;AACP,CAAC;AAjBD,gDAiBC;AAED,SAAgB,WAAW,CACvB,QAA6B,EAC7B,OAA4B;IAE5B,IAAI,OAAO,EAAE,GAAG,EAAE;QACd,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAC;KAC/C;IACD,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE;QACvB,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,iCAAyB,EAAE,CAAC;KAC5D;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AAZD,kCAYC"}
|
File without changes
|
@@ -0,0 +1,54 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.DigitrafficStaticIntegration = void 0;
|
4
|
+
const aws_apigateway_1 = require("aws-cdk-lib/aws-apigateway");
|
5
|
+
const mediatypes_1 = require("../../types/mediatypes");
|
6
|
+
const responses_1 = require("./responses");
|
7
|
+
const INTEGRATION_RESPONSE_200 = `{
|
8
|
+
"statusCode": 200
|
9
|
+
}`;
|
10
|
+
const METHOD_RESPONSE_200 = {
|
11
|
+
statusCode: '200',
|
12
|
+
};
|
13
|
+
/**
|
14
|
+
* Static integration, that returns the given response with given mediaType from given resource.
|
15
|
+
*
|
16
|
+
* @param resource
|
17
|
+
* @param mediaType
|
18
|
+
* @param response
|
19
|
+
*/
|
20
|
+
class DigitrafficStaticIntegration extends aws_apigateway_1.MockIntegration {
|
21
|
+
constructor(resource, mediaType, response, enableCors = true, apiKeyRequired = true) {
|
22
|
+
const integrationResponse = DigitrafficStaticIntegration.createIntegrationResponse(response, mediaType, enableCors);
|
23
|
+
super({
|
24
|
+
passthroughBehavior: aws_apigateway_1.PassthroughBehavior.WHEN_NO_TEMPLATES,
|
25
|
+
requestTemplates: {
|
26
|
+
[mediaType]: INTEGRATION_RESPONSE_200,
|
27
|
+
},
|
28
|
+
integrationResponses: [integrationResponse],
|
29
|
+
});
|
30
|
+
['GET', 'HEAD'].forEach((httpMethod) => {
|
31
|
+
resource.addMethod(httpMethod, this, {
|
32
|
+
apiKeyRequired,
|
33
|
+
methodResponses: [DigitrafficStaticIntegration.createMethodResponse(enableCors)],
|
34
|
+
});
|
35
|
+
});
|
36
|
+
}
|
37
|
+
static json(resource, response, enableCors = true, apiKeyRequired = true) {
|
38
|
+
return new DigitrafficStaticIntegration(resource, mediatypes_1.MediaType.APPLICATION_JSON, JSON.stringify(response), enableCors, apiKeyRequired);
|
39
|
+
}
|
40
|
+
static createIntegrationResponse(response, mediaType, enableCors) {
|
41
|
+
const integrationResponse = {
|
42
|
+
statusCode: '200',
|
43
|
+
responseTemplates: {
|
44
|
+
[mediaType]: response,
|
45
|
+
},
|
46
|
+
};
|
47
|
+
return enableCors ? { ...integrationResponse, ...responses_1.RESPONSE_CORS_INTEGRATION } : integrationResponse;
|
48
|
+
}
|
49
|
+
static createMethodResponse(enableCors) {
|
50
|
+
return enableCors ? (0, responses_1.corsMethod)(METHOD_RESPONSE_200) : METHOD_RESPONSE_200;
|
51
|
+
}
|
52
|
+
}
|
53
|
+
exports.DigitrafficStaticIntegration = DigitrafficStaticIntegration;
|
54
|
+
//# sourceMappingURL=static-integration.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"static-integration.js","sourceRoot":"","sources":["../../../../src/aws/infra/api/static-integration.ts"],"names":[],"mappings":";;;AAAA,+DAA0F;AAC1F,uDAAiD;AACjD,2CAAkE;AAElE,MAAM,wBAAwB,GAAG;;EAE/B,CAAC;AAEH,MAAM,mBAAmB,GAAG;IACxB,UAAU,EAAE,KAAK;CACpB,CAAC;AAEF;;;;;;GAMG;AACH,MAAa,4BAA6B,SAAQ,gCAAe;IAC7D,YACI,QAAkB,EAAE,SAAoB,EAAE,QAAgB,EAAE,UAAU,GAAG,IAAI,EAAE,cAAc,GAAG,IAAI;QAEpG,MAAM,mBAAmB,GAAG,4BAA4B,CAAC,yBAAyB,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAEpH,KAAK,CAAC;YACF,mBAAmB,EAAE,oCAAmB,CAAC,iBAAiB;YAC1D,gBAAgB,EAAE;gBACd,CAAC,SAAS,CAAC,EAAE,wBAAwB;aACxC;YACD,oBAAoB,EAAE,CAAC,mBAAmB,CAAC;SAC9C,CAAC,CAAC;QAEH,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YACnC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE;gBACjC,cAAc;gBACd,eAAe,EAAE,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;aACnF,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,IAAI,CAAI,QAAkB,EAAE,QAAW,EAAE,UAAU,GAAG,IAAI,EAAE,cAAc,GAAG,IAAI;QACpF,OAAO,IAAI,4BAA4B,CACnC,QAAQ,EAAE,sBAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,cAAc,CAC7F,CAAC;IACN,CAAC;IAEO,MAAM,CAAC,yBAAyB,CAAC,QAAgB,EAAE,SAAoB,EAAE,UAAmB;QAChG,MAAM,mBAAmB,GAAG;YACxB,UAAU,EAAE,KAAK;YACjB,iBAAiB,EAAE;gBACf,CAAC,SAAS,CAAC,EAAE,QAAQ;aACxB;SACJ,CAAC;QAEF,OAAO,UAAU,CAAC,CAAC,CAAC,EAAC,GAAG,mBAAmB,EAAE,GAAG,qCAAyB,EAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC;IACrG,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,UAAmB;QACnD,OAAO,UAAU,CAAC,CAAC,CAAC,IAAA,sBAAU,EAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAC9E,CAAC;CACJ;AA1CD,oEA0CC"}
|
File without changes
|
@@ -0,0 +1,26 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.CanaryAlarm = void 0;
|
4
|
+
const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch");
|
5
|
+
const aws_cloudwatch_actions_1 = require("aws-cdk-lib/aws-cloudwatch-actions");
|
6
|
+
const aws_sns_1 = require("aws-cdk-lib/aws-sns");
|
7
|
+
class CanaryAlarm {
|
8
|
+
constructor(stack, canary, params) {
|
9
|
+
if (params.alarm ?? true) {
|
10
|
+
const alarmName = params.alarm?.alarmName ?? `${params.name}-alarm`;
|
11
|
+
const alarm = new aws_cloudwatch_1.Alarm(stack, alarmName, {
|
12
|
+
alarmName,
|
13
|
+
alarmDescription: params.alarm?.description ?? '',
|
14
|
+
metric: canary.metricSuccessPercent(),
|
15
|
+
evaluationPeriods: params.alarm?.evalutionPeriods ?? 1,
|
16
|
+
threshold: params.alarm?.threshold ?? 100,
|
17
|
+
comparisonOperator: aws_cloudwatch_1.ComparisonOperator.LESS_THAN_THRESHOLD,
|
18
|
+
});
|
19
|
+
if (params.alarm?.topicArn) {
|
20
|
+
alarm.addAlarmAction(new aws_cloudwatch_actions_1.SnsAction(aws_sns_1.Topic.fromTopicArn(stack, `${alarmName}-action`, params.alarm.topicArn)));
|
21
|
+
}
|
22
|
+
}
|
23
|
+
}
|
24
|
+
}
|
25
|
+
exports.CanaryAlarm = CanaryAlarm;
|
26
|
+
//# sourceMappingURL=canary-alarm.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"canary-alarm.js","sourceRoot":"","sources":["../../../../src/aws/infra/canaries/canary-alarm.ts"],"names":[],"mappings":";;;AAEA,+DAAqE;AAErE,+EAA6D;AAC7D,iDAA0C;AAE1C,MAAa,WAAW;IACpB,YAAY,KAAgB,EACxB,MAAc,EACd,MAAwB;QACxB,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE;YACtB,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,GAAG,MAAM,CAAC,IAAI,QAAQ,CAAC;YAEpE,MAAM,KAAK,GAAG,IAAI,sBAAK,CAAC,KAAK,EAAE,SAAS,EAAE;gBACtC,SAAS;gBACT,gBAAgB,EAAE,MAAM,CAAC,KAAK,EAAE,WAAW,IAAI,EAAE;gBACjD,MAAM,EAAE,MAAM,CAAC,oBAAoB,EAAE;gBACrC,iBAAiB,EAAE,MAAM,CAAC,KAAK,EAAE,gBAAgB,IAAI,CAAC;gBACtD,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,GAAG;gBACzC,kBAAkB,EAAE,mCAAkB,CAAC,mBAAmB;aAC7D,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE;gBACxB,KAAK,CAAC,cAAc,CAAC,IAAI,kCAAS,CAAC,eAAK,CAAC,YAAY,CAAC,KAAK,EACvD,GAAG,SAAS,SAAS,EACrB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aAChC;SACJ;IACL,CAAC;CACJ;AAvBD,kCAuBC"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.ENV_SECRET = exports.ENV_HOSTNAME = exports.ENV_API_KEY = void 0;
|
4
|
+
exports.ENV_API_KEY = "apiKeyId";
|
5
|
+
exports.ENV_HOSTNAME = "hostname";
|
6
|
+
exports.ENV_SECRET = "secret";
|
7
|
+
//# sourceMappingURL=canary-keys.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"canary-keys.js","sourceRoot":"","sources":["../../../../src/aws/infra/canaries/canary-keys.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,UAAU,CAAC;AACzB,QAAA,YAAY,GAAG,UAAU,CAAC;AAC1B,QAAA,UAAU,GAAG,QAAQ,CAAC"}
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"canary-parameters.js","sourceRoot":"","sources":["../../../../src/aws/infra/canaries/canary-parameters.ts"],"names":[],"mappings":""}
|
File without changes
|
@@ -0,0 +1,46 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.DigitrafficCanaryRole = void 0;
|
4
|
+
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
5
|
+
const BASE_POLICY_STATEMENT_PROPS = {
|
6
|
+
actions: [
|
7
|
+
"logs:CreateLogStream",
|
8
|
+
"logs:PutLogEvents",
|
9
|
+
"logs:CreateLogGroup",
|
10
|
+
"logs:DescribeLogGroups",
|
11
|
+
"logs:DescribeLogStreams",
|
12
|
+
],
|
13
|
+
resources: ["*"],
|
14
|
+
};
|
15
|
+
const CLOUDWATCH_STATEMENT_PROPS = {
|
16
|
+
actions: [
|
17
|
+
"cloudwatch:PutMetricData",
|
18
|
+
],
|
19
|
+
resources: ["*"],
|
20
|
+
conditions: {
|
21
|
+
"StringEquals": {
|
22
|
+
"cloudwatch:namespace": "CloudWatchSynthetics",
|
23
|
+
},
|
24
|
+
},
|
25
|
+
};
|
26
|
+
class DigitrafficCanaryRole extends aws_iam_1.Role {
|
27
|
+
constructor(stack, canaryName) {
|
28
|
+
super(stack, 'canary-role-' + canaryName, {
|
29
|
+
assumedBy: new aws_iam_1.ServicePrincipal("lambda.amazonaws.com"),
|
30
|
+
managedPolicies: [
|
31
|
+
aws_iam_1.ManagedPolicy.fromAwsManagedPolicyName("CloudWatchSyntheticsFullAccess"),
|
32
|
+
],
|
33
|
+
});
|
34
|
+
this.addToPolicy(new aws_iam_1.PolicyStatement(BASE_POLICY_STATEMENT_PROPS));
|
35
|
+
this.addToPolicy(new aws_iam_1.PolicyStatement(CLOUDWATCH_STATEMENT_PROPS));
|
36
|
+
}
|
37
|
+
withDatabaseAccess() {
|
38
|
+
// Won't work :(
|
39
|
+
// this.addToPolicy(new PolicyStatement(DB_STATEMENT_PROPS));
|
40
|
+
// Works
|
41
|
+
this.addManagedPolicy(aws_iam_1.ManagedPolicy.fromAwsManagedPolicyName("service-role/AWSLambdaVPCAccessExecutionRole"));
|
42
|
+
return this;
|
43
|
+
}
|
44
|
+
}
|
45
|
+
exports.DigitrafficCanaryRole = DigitrafficCanaryRole;
|
46
|
+
//# sourceMappingURL=canary-role.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"canary-role.js","sourceRoot":"","sources":["../../../../src/aws/infra/canaries/canary-role.ts"],"names":[],"mappings":";;;AAAA,iDAAiH;AAGjH,MAAM,2BAA2B,GAAyB;IACtD,OAAO,EAAE;QACL,sBAAsB;QACtB,mBAAmB;QACnB,qBAAqB;QACrB,wBAAwB;QACxB,yBAAyB;KAC5B;IACD,SAAS,EAAE,CAAC,GAAG,CAAC;CACnB,CAAC;AAEF,MAAM,0BAA0B,GAAyB;IACrD,OAAO,EAAE;QACL,0BAA0B;KAC7B;IACD,SAAS,EAAE,CAAC,GAAG,CAAC;IAChB,UAAU,EAAE;QACR,cAAc,EAAE;YACZ,sBAAsB,EAAE,sBAAsB;SACjD;KACJ;CACJ,CAAC;AAEF,MAAa,qBAAsB,SAAQ,cAAI;IAC3C,YAAY,KAAgB,EAAE,UAAkB;QAC5C,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,UAAU,EAAE;YACtC,SAAS,EAAE,IAAI,0BAAgB,CAAC,sBAAsB,CAAC;YACvD,eAAe,EAAE;gBACb,uBAAa,CAAC,wBAAwB,CAAC,gCAAgC,CAAC;aAC3E;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,IAAI,yBAAe,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,WAAW,CAAC,IAAI,yBAAe,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,kBAAkB;QACd,gBAAgB;QAChB,6DAA6D;QAC7D,QAAQ;QACR,IAAI,CAAC,gBAAgB,CAAC,uBAAa,CAAC,wBAAwB,CAAC,8CAA8C,CAAC,CAAC,CAAC;QAC9G,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AApBD,sDAoBC"}
|
File without changes
|
@@ -0,0 +1,32 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.DigitrafficCanary = void 0;
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
5
|
+
const aws_synthetics_alpha_1 = require("@aws-cdk/aws-synthetics-alpha");
|
6
|
+
const canary_alarm_1 = require("./canary-alarm");
|
7
|
+
class DigitrafficCanary extends aws_synthetics_alpha_1.Canary {
|
8
|
+
constructor(scope, canaryName, role, params, environmentVariables) {
|
9
|
+
super(scope, canaryName, {
|
10
|
+
runtime: aws_synthetics_alpha_1.Runtime.SYNTHETICS_NODEJS_PUPPETEER_3_6,
|
11
|
+
role,
|
12
|
+
test: aws_synthetics_alpha_1.Test.custom({
|
13
|
+
code: new aws_synthetics_alpha_1.AssetCode("dist", {
|
14
|
+
exclude: ["lambda", "out", "canaries"],
|
15
|
+
}),
|
16
|
+
handler: params.handler,
|
17
|
+
}),
|
18
|
+
environmentVariables: {
|
19
|
+
...environmentVariables,
|
20
|
+
...params?.canaryEnv,
|
21
|
+
},
|
22
|
+
canaryName,
|
23
|
+
schedule: params.schedule ?? aws_synthetics_alpha_1.Schedule.rate(aws_cdk_lib_1.Duration.minutes(15)),
|
24
|
+
});
|
25
|
+
this.artifactsBucket.grantWrite(role);
|
26
|
+
if (params.alarm ?? true) {
|
27
|
+
new canary_alarm_1.CanaryAlarm(scope, this, params);
|
28
|
+
}
|
29
|
+
}
|
30
|
+
}
|
31
|
+
exports.DigitrafficCanary = DigitrafficCanary;
|
32
|
+
//# sourceMappingURL=canary.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"canary.js","sourceRoot":"","sources":["../../../../src/aws/infra/canaries/canary.ts"],"names":[],"mappings":";;;AAAA,6CAAuC;AACvC,wEAMuC;AAEvC,iDAA6C;AAK7C,MAAa,iBAAkB,SAAQ,6BAAM;IACzC,YACI,KAAgB,EAChB,UAAkB,EAClB,IAAU,EACV,MAAwB,EACxB,oBAAuC;QAEvC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE;YACrB,OAAO,EAAE,8BAAO,CAAC,+BAA+B;YAChD,IAAI;YACJ,IAAI,EAAE,2BAAI,CAAC,MAAM,CAAC;gBACd,IAAI,EAAE,IAAI,gCAAS,CAAC,MAAM,EAAE;oBACxB,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC;iBACzC,CAAC;gBACF,OAAO,EAAE,MAAM,CAAC,OAAO;aAC1B,CAAC;YACF,oBAAoB,EAAE;gBAClB,GAAG,oBAAoB;gBACvB,GAAG,MAAM,EAAE,SAAS;aACvB;YACD,UAAU;YACV,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,+BAAQ,CAAC,IAAI,CAAC,sBAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SACnE,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAEtC,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE;YACtB,IAAI,0BAAW,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;SACxC;IACL,CAAC;CACJ;AA/BD,8CA+BC"}
|
File without changes
|
@@ -0,0 +1,70 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.DatabaseCanary = void 0;
|
4
|
+
const aws_synthetics_1 = require("aws-cdk-lib/aws-synthetics");
|
5
|
+
const aws_events_1 = require("aws-cdk-lib/aws-events");
|
6
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
7
|
+
const canary_1 = require("./canary");
|
8
|
+
class DatabaseCanary extends canary_1.DigitrafficCanary {
|
9
|
+
constructor(stack, role, secret, params) {
|
10
|
+
const canaryName = `${params.name}-db`;
|
11
|
+
const environmentVariables = stack.createDefaultLambdaEnvironment(`Synthetics-${canaryName}`);
|
12
|
+
// the handler code is defined at the actual project using this
|
13
|
+
super(stack, canaryName, role, params, environmentVariables);
|
14
|
+
this.artifactsBucket.grantWrite(this.role);
|
15
|
+
secret.grantRead(this.role);
|
16
|
+
// need to override vpc and security group, can't do this with cdk
|
17
|
+
if (this.node.defaultChild instanceof aws_synthetics_1.CfnCanary) {
|
18
|
+
const subnetIds = stack.vpc === undefined
|
19
|
+
? []
|
20
|
+
: stack.vpc.privateSubnets.map((subnet) => subnet.subnetId);
|
21
|
+
const securityGroupIds = stack.lambdaDbSg === undefined
|
22
|
+
? []
|
23
|
+
: [stack.lambdaDbSg.securityGroupId];
|
24
|
+
this.node.defaultChild.vpcConfig = {
|
25
|
+
vpcId: stack.vpc?.vpcId,
|
26
|
+
securityGroupIds,
|
27
|
+
subnetIds,
|
28
|
+
};
|
29
|
+
}
|
30
|
+
}
|
31
|
+
static create(stack, role, params) {
|
32
|
+
const secret = stack.getSecret();
|
33
|
+
return new DatabaseCanary(stack, role, secret, {
|
34
|
+
...{
|
35
|
+
secret: stack.configuration.secretId,
|
36
|
+
schedule: aws_events_1.Schedule.rate(aws_cdk_lib_1.Duration.hours(1)),
|
37
|
+
handler: `${params.name}.handler`,
|
38
|
+
},
|
39
|
+
...params,
|
40
|
+
});
|
41
|
+
}
|
42
|
+
/**
|
43
|
+
*
|
44
|
+
* @param stack
|
45
|
+
* @param role
|
46
|
+
* @param name name of the typescipt file without -db -suffix. Max len is 10 char if @param canaryName is not given.
|
47
|
+
* @param params
|
48
|
+
* @param canaryName Optional name for canary if multiple canaries is made from same ${name}-db.ts canary file.
|
49
|
+
*/
|
50
|
+
static createV2(stack, role, name, params = {}, canaryName = name) {
|
51
|
+
const secret = stack.getSecret();
|
52
|
+
return new DatabaseCanary(stack, role, secret, {
|
53
|
+
...{
|
54
|
+
secret: stack.configuration.secretId,
|
55
|
+
schedule: aws_events_1.Schedule.rate(aws_cdk_lib_1.Duration.hours(1)),
|
56
|
+
handler: `${name}-db.handler`,
|
57
|
+
name: canaryName,
|
58
|
+
alarm: {
|
59
|
+
alarmName: canaryName === name
|
60
|
+
? `${stack.configuration.shortName}-DB-Alarm`
|
61
|
+
: `${canaryName}-DB-Alarm`,
|
62
|
+
topicArn: stack.configuration.alarmTopicArn,
|
63
|
+
},
|
64
|
+
},
|
65
|
+
...params,
|
66
|
+
});
|
67
|
+
}
|
68
|
+
}
|
69
|
+
exports.DatabaseCanary = DatabaseCanary;
|
70
|
+
//# sourceMappingURL=database-canary.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"database-canary.js","sourceRoot":"","sources":["../../../../src/aws/infra/canaries/database-canary.ts"],"names":[],"mappings":";;;AAEA,+DAAuD;AACvD,uDAAkD;AAClD,6CAAuC;AAGvC,qCAA6C;AAG7C,MAAa,cAAe,SAAQ,0BAAiB;IACjD,YACI,KAAuB,EACvB,IAAU,EACV,MAAe,EACf,MAAwB;QAExB,MAAM,UAAU,GAAG,GAAG,MAAM,CAAC,IAAI,KAAK,CAAC;QACvC,MAAM,oBAAoB,GAAG,KAAK,CAAC,8BAA8B,CAC7D,cAAc,UAAU,EAAE,CAC7B,CAAC;QAEF,+DAA+D;QAC/D,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC;QAE7D,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5B,kEAAkE;QAClE,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,YAAY,0BAAS,EAAE;YAC7C,MAAM,SAAS,GACX,KAAK,CAAC,GAAG,KAAK,SAAS;gBACnB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAEpE,MAAM,gBAAgB,GAClB,KAAK,CAAC,UAAU,KAAK,SAAS;gBAC1B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;YAE7C,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG;gBAC/B,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK;gBACvB,gBAAgB;gBAChB,SAAS;aACZ,CAAC;SACL;IACL,CAAC;IAED,MAAM,CAAC,MAAM,CACT,KAAuB,EACvB,IAAU,EACV,MAAwB;QAExB,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QACjC,OAAO,IAAI,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;YAC3C,GAAG;gBACC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ;gBACpC,QAAQ,EAAE,qBAAQ,CAAC,IAAI,CAAC,sBAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC1C,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,UAAU;aACpC;YACD,GAAG,MAAM;SACZ,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,CACX,KAAuB,EACvB,IAAU,EACV,IAAY,EACZ,SAAoC,EAAE,EACtC,UAAU,GAAG,IAAI;QAEjB,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QACjC,OAAO,IAAI,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;YAC3C,GAAG;gBACC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ;gBACpC,QAAQ,EAAE,qBAAQ,CAAC,IAAI,CAAC,sBAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC1C,OAAO,EAAE,GAAG,IAAI,aAAa;gBAC7B,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE;oBACH,SAAS,EACL,UAAU,KAAK,IAAI;wBACf,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,WAAW;wBAC7C,CAAC,CAAC,GAAG,UAAU,WAAW;oBAClC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,aAAa;iBAC9C;aACJ;YACD,GAAG,MAAM;SACZ,CAAC,CAAC;IACP,CAAC;CACJ;AAvFD,wCAuFC"}
|
@@ -5,10 +5,10 @@ declare abstract class DatabaseCheck<T> {
|
|
5
5
|
protected constructor(name: string, sql: string);
|
6
6
|
abstract check(value: T): void;
|
7
7
|
}
|
8
|
-
|
8
|
+
interface BaseResponse {
|
9
9
|
}
|
10
10
|
export declare class DatabaseChecker {
|
11
|
-
credentialsFunction: (
|
11
|
+
credentialsFunction: () => Promise<void>;
|
12
12
|
checks: DatabaseCheck<BaseResponse>[];
|
13
13
|
private constructor();
|
14
14
|
static createForProxy(): DatabaseChecker;
|