@digitraffic/common 2022.10.25-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/{aws → dist/aws}/runtime/environment.d.ts +0 -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/{database → dist/database}/models.d.ts +0 -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 +0 -0
- 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 +16 -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/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 -32
- 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/environment.js +0 -12
- 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/database/models.js +0 -3
- 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/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 -64
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"digitraffic-integration-response.js","sourceRoot":"","sources":["../../../src/aws/runtime/digitraffic-integration-response.ts"],"names":[],"mappings":";;;AACA,oDAA8C;AAC9C,oDAA8D;AAE9D,MAAsB,8BAA8B;IAEhD,MAAM,CAAC,EAAE,CAAC,SAAoB;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,SAAqB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,sBAAS,CAAC,UAAU,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,SAAqB;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,sBAAS,CAAC,UAAU,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,UAAkB,EAAE,SAAoB;QAClD,OAAO;YACH,UAAU;YACV,iBAAiB,EAAE;gBACf,CAAC,SAAS,CAAC,EAAE,kCAAuB;aACvC;SACJ,CAAC;IACN,CAAC;CACJ;AAtBD,wEAsBC"}
|
File without changes
|
@@ -0,0 +1,12 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.envValue = void 0;
|
4
|
+
function envValue(key) {
|
5
|
+
const value = process.env[key];
|
6
|
+
if (value == null) {
|
7
|
+
throw new Error(`Missing environment value ${key}`);
|
8
|
+
}
|
9
|
+
return value;
|
10
|
+
}
|
11
|
+
exports.envValue = envValue;
|
12
|
+
//# sourceMappingURL=environment.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/aws/runtime/environment.ts"],"names":[],"mappings":";;;AAAA,SAAgB,QAAQ,CAAC,GAAW;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE/B,IAAI,KAAK,IAAI,IAAI,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;KACvD;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AARD,4BAQC"}
|
File without changes
|
@@ -0,0 +1,31 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.snsPublish = void 0;
|
4
|
+
/**
|
5
|
+
* Utility function for publishing SNS messages.
|
6
|
+
* Made because using *await* with AWS APIs doesn't require calling promise() but nothing works if it isn't called.
|
7
|
+
* Retries a single time in case of failure.
|
8
|
+
* @param message
|
9
|
+
* @param topicArn
|
10
|
+
* @param sns
|
11
|
+
*/
|
12
|
+
async function snsPublish(message, topicArn, sns) {
|
13
|
+
const publishParams = {
|
14
|
+
Message: message,
|
15
|
+
TopicArn: topicArn,
|
16
|
+
};
|
17
|
+
try {
|
18
|
+
await sns.publish(publishParams).promise();
|
19
|
+
}
|
20
|
+
catch (error) {
|
21
|
+
console.error('method=snsPublish error, retrying', error);
|
22
|
+
try {
|
23
|
+
await sns.publish(publishParams).promise();
|
24
|
+
}
|
25
|
+
catch (e2) {
|
26
|
+
console.error('method=snsPublish error after retry', e2);
|
27
|
+
}
|
28
|
+
}
|
29
|
+
}
|
30
|
+
exports.snsPublish = snsPublish;
|
31
|
+
//# sourceMappingURL=messaging.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../../src/aws/runtime/messaging.ts"],"names":[],"mappings":";;;AAEA;;;;;;;GAOG;AACI,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,QAAgB,EAAE,GAAQ;IACxE,MAAM,aAAa,GAAG;QAClB,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,QAAQ;KACrB,CAAC;IACF,IAAI;QACA,MAAM,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC;KAC9C;IAAC,OAAO,KAAK,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC1D,IAAI;YACA,MAAM,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC;SAC9C;QAAC,OAAO,EAAE,EAAE;YACT,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,EAAE,CAAC,CAAC;SAC5D;KACJ;AACL,CAAC;AAfD,gCAeC"}
|
File without changes
|
@@ -0,0 +1,30 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.uploadToS3 = void 0;
|
4
|
+
const aws_sdk_1 = require("aws-sdk");
|
5
|
+
async function uploadToS3(bucketName, body, objectName, cannedAcl, contentType) {
|
6
|
+
const s3 = new aws_sdk_1.S3();
|
7
|
+
try {
|
8
|
+
await doUpload(s3, bucketName, body, objectName, cannedAcl, contentType);
|
9
|
+
}
|
10
|
+
catch (error) {
|
11
|
+
console.warn('method=uploadToS3 retrying upload to bucket %s', bucketName);
|
12
|
+
try {
|
13
|
+
await doUpload(s3, bucketName, body, objectName, cannedAcl, contentType);
|
14
|
+
}
|
15
|
+
catch (e2) {
|
16
|
+
console.error('method=uploadToS3 failed retrying upload to bucket %s', bucketName);
|
17
|
+
}
|
18
|
+
}
|
19
|
+
}
|
20
|
+
exports.uploadToS3 = uploadToS3;
|
21
|
+
function doUpload(s3, bucketName, body, filename, cannedAcl, contentType) {
|
22
|
+
return s3.upload({
|
23
|
+
Bucket: bucketName,
|
24
|
+
Body: body,
|
25
|
+
Key: filename,
|
26
|
+
ACL: cannedAcl,
|
27
|
+
ContentType: contentType,
|
28
|
+
}).promise();
|
29
|
+
}
|
30
|
+
//# sourceMappingURL=s3.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"s3.js","sourceRoot":"","sources":["../../../src/aws/runtime/s3.ts"],"names":[],"mappings":";;;AAAA,qCAA2B;AAEpB,KAAK,UAAU,UAAU,CAC5B,UAAkB,EAClB,IAAU,EACV,UAAkB,EAClB,SAAkB,EAClB,WAAoB;IAGpB,MAAM,EAAE,GAAG,IAAI,YAAE,EAAE,CAAC;IACpB,IAAI;QACA,MAAM,QAAQ,CACV,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,CAC3D,CAAC;KACL;IAAC,OAAO,KAAK,EAAE;QACZ,OAAO,CAAC,IAAI,CAAC,gDAAgD,EAAE,UAAU,CAAC,CAAC;QAC3E,IAAI;YACA,MAAM,QAAQ,CACV,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,CAC3D,CAAC;SACL;QAAC,OAAO,EAAE,EAAE;YACT,OAAO,CAAC,KAAK,CAAC,uDAAuD,EAAE,UAAU,CAAC,CAAC;SACtF;KACJ;AACL,CAAC;AAvBD,gCAuBC;AAED,SAAS,QAAQ,CACb,EAAM,EACN,UAAkB,EAClB,IAAU,EACV,QAAgB,EAChB,SAAkB,EAClB,WAAoB;IAGpB,OAAO,EAAE,CAAC,MAAM,CAAC;QACb,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,QAAQ;QACb,GAAG,EAAE,SAAS;QACd,WAAW,EAAE,WAAW;KAC3B,CAAC,CAAC,OAAO,EAAE,CAAC;AACjB,CAAC"}
|
File without changes
|
@@ -0,0 +1,96 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.checkExpectedSecretKeys = exports.withDbSecret = exports.DatabaseEnvironmentKeys = exports.RdsSecretKey = exports.RdsProxySecretKey = void 0;
|
4
|
+
const secret_1 = require("./secret");
|
5
|
+
var RdsProxySecretKey;
|
6
|
+
(function (RdsProxySecretKey) {
|
7
|
+
RdsProxySecretKey["username"] = "username";
|
8
|
+
RdsProxySecretKey["password"] = "password";
|
9
|
+
RdsProxySecretKey["proxy_host"] = "proxy_host";
|
10
|
+
RdsProxySecretKey["proxy_ro_host"] = "proxy_ro_host";
|
11
|
+
})(RdsProxySecretKey = exports.RdsProxySecretKey || (exports.RdsProxySecretKey = {}));
|
12
|
+
var RdsSecretKey;
|
13
|
+
(function (RdsSecretKey) {
|
14
|
+
RdsSecretKey["username"] = "username";
|
15
|
+
RdsSecretKey["password"] = "password";
|
16
|
+
RdsSecretKey["host"] = "host";
|
17
|
+
RdsSecretKey["ro_host"] = "ro_host";
|
18
|
+
})(RdsSecretKey = exports.RdsSecretKey || (exports.RdsSecretKey = {}));
|
19
|
+
var DatabaseEnvironmentKeys;
|
20
|
+
(function (DatabaseEnvironmentKeys) {
|
21
|
+
DatabaseEnvironmentKeys["DB_USER"] = "DB_USER";
|
22
|
+
DatabaseEnvironmentKeys["DB_PASS"] = "DB_PASS";
|
23
|
+
DatabaseEnvironmentKeys["DB_URI"] = "DB_URI";
|
24
|
+
DatabaseEnvironmentKeys["DB_RO_URI"] = "DB_RO_URI";
|
25
|
+
DatabaseEnvironmentKeys["DB_APPLICATION"] = "DB_APPLICATION";
|
26
|
+
})(DatabaseEnvironmentKeys = exports.DatabaseEnvironmentKeys || (exports.DatabaseEnvironmentKeys = {}));
|
27
|
+
function setDbSecret(secret) {
|
28
|
+
process.env[DatabaseEnvironmentKeys.DB_USER] = secret.username;
|
29
|
+
process.env[DatabaseEnvironmentKeys.DB_PASS] = secret.password;
|
30
|
+
process.env[DatabaseEnvironmentKeys.DB_URI] = secret.host;
|
31
|
+
process.env[DatabaseEnvironmentKeys.DB_RO_URI] = secret.ro_host;
|
32
|
+
}
|
33
|
+
// cached at Lambda container level
|
34
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
35
|
+
let cachedSecret;
|
36
|
+
const missingSecretErrorText = 'Missing or empty secretId';
|
37
|
+
/**
|
38
|
+
* Run the given function with secret retrieved from Secrets Manager. Also injects database-credentials into environment.
|
39
|
+
*
|
40
|
+
* @deprecated use SecretHolder & ProxyHolder
|
41
|
+
* @see SecretOptions
|
42
|
+
*
|
43
|
+
* @param {string} secretId
|
44
|
+
* @param {function} fn
|
45
|
+
* @param {SecretOptions} options
|
46
|
+
*/
|
47
|
+
async function withDbSecret(secretId, fn, options) {
|
48
|
+
if (!secretId) {
|
49
|
+
console.error(missingSecretErrorText);
|
50
|
+
return Promise.reject(missingSecretErrorText);
|
51
|
+
}
|
52
|
+
if (!cachedSecret) {
|
53
|
+
// if prefix is given, first set db values and then fetch secret
|
54
|
+
if (options?.prefix) {
|
55
|
+
// first set db values
|
56
|
+
await (0, secret_1.withSecret)(secretId, (fetchedSecret) => {
|
57
|
+
setDbSecret(fetchedSecret);
|
58
|
+
});
|
59
|
+
// then actual secret
|
60
|
+
await (0, secret_1.withSecretAndPrefix)(secretId, options.prefix, (fetchedSecret) => {
|
61
|
+
cachedSecret = fetchedSecret;
|
62
|
+
});
|
63
|
+
}
|
64
|
+
else {
|
65
|
+
await (0, secret_1.withSecret)(secretId, (fetchedSecret) => {
|
66
|
+
setDbSecret(fetchedSecret);
|
67
|
+
cachedSecret = fetchedSecret;
|
68
|
+
});
|
69
|
+
}
|
70
|
+
}
|
71
|
+
try {
|
72
|
+
if (options?.expectedKeys?.length) {
|
73
|
+
checkExpectedSecretKeys(options.expectedKeys, cachedSecret);
|
74
|
+
}
|
75
|
+
return fn(cachedSecret);
|
76
|
+
}
|
77
|
+
catch (error) {
|
78
|
+
console.error('method=withDbSecret Caught an error, refreshing secret', error);
|
79
|
+
// try to refetch secret in case it has changed
|
80
|
+
await (0, secret_1.withSecret)(secretId, (fetchedSecret) => {
|
81
|
+
setDbSecret(fetchedSecret);
|
82
|
+
cachedSecret = fetchedSecret;
|
83
|
+
});
|
84
|
+
return fn(cachedSecret);
|
85
|
+
}
|
86
|
+
}
|
87
|
+
exports.withDbSecret = withDbSecret;
|
88
|
+
function checkExpectedSecretKeys(keys, secret) {
|
89
|
+
const missingKeys = keys.filter(key => !(key in secret));
|
90
|
+
if (missingKeys.length) {
|
91
|
+
console.error(`method=checkExpectedSecretKeys secret didn't contain the key(s) ${missingKeys}`);
|
92
|
+
throw new Error('Expected keys were not found');
|
93
|
+
}
|
94
|
+
}
|
95
|
+
exports.checkExpectedSecretKeys = checkExpectedSecretKeys;
|
96
|
+
//# sourceMappingURL=dbsecret.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"dbsecret.js","sourceRoot":"","sources":["../../../../src/aws/runtime/secrets/dbsecret.ts"],"names":[],"mappings":"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"}
|
File without changes
|
@@ -0,0 +1,27 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.ProxyHolder = void 0;
|
4
|
+
const secret_holder_1 = require("./secret-holder");
|
5
|
+
const dbsecret_1 = require("./dbsecret");
|
6
|
+
const utils_1 = require("../../../utils/utils");
|
7
|
+
const RDS_PROXY_SECRET_KEYS = Object.values(dbsecret_1.RdsProxySecretKey);
|
8
|
+
/**
|
9
|
+
* Holds credentials for RDS Proxy access.
|
10
|
+
*/
|
11
|
+
class ProxyHolder {
|
12
|
+
constructor(secretId) {
|
13
|
+
this.secretHolder = new secret_holder_1.SecretHolder(secretId, "", RDS_PROXY_SECRET_KEYS);
|
14
|
+
}
|
15
|
+
static create() {
|
16
|
+
return new ProxyHolder((0, utils_1.getEnvVariable)("SECRET_ID"));
|
17
|
+
}
|
18
|
+
async setCredentials() {
|
19
|
+
const secret = await this.secretHolder.get();
|
20
|
+
process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_USER] = secret.username;
|
21
|
+
process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_PASS] = secret.password;
|
22
|
+
process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_URI] = secret.proxy_host;
|
23
|
+
process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_RO_URI] = secret.proxy_ro_host;
|
24
|
+
}
|
25
|
+
}
|
26
|
+
exports.ProxyHolder = ProxyHolder;
|
27
|
+
//# sourceMappingURL=proxy-holder.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"proxy-holder.js","sourceRoot":"","sources":["../../../../src/aws/runtime/secrets/proxy-holder.ts"],"names":[],"mappings":";;;AAAA,mDAA+C;AAC/C,yCAIoB;AACpB,gDAAsD;AAEtD,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,4BAAiB,CAAC,CAAC;AAE/D;;GAEG;AACH,MAAa,WAAW;IAGpB,YAAY,QAAgB;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,4BAAY,CAChC,QAAQ,EACR,EAAE,EACF,qBAAqB,CACxB,CAAC;IACN,CAAC;IAED,MAAM,CAAC,MAAM;QACT,OAAO,IAAI,WAAW,CAAC,IAAA,sBAAc,EAAC,WAAW,CAAC,CAAC,CAAC;IACxD,CAAC;IAEM,KAAK,CAAC,cAAc;QACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QAE7C,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC;IAC1E,CAAC;CACJ;AAvBD,kCAuBC"}
|
File without changes
|
@@ -0,0 +1,27 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.RdsHolder = void 0;
|
4
|
+
const secret_holder_1 = require("./secret-holder");
|
5
|
+
const dbsecret_1 = require("./dbsecret");
|
6
|
+
const utils_1 = require("../../../utils/utils");
|
7
|
+
const RDS_SECRET_KEYS = Object.values(dbsecret_1.RdsSecretKey);
|
8
|
+
/**
|
9
|
+
* Holds credentials for RDS access.
|
10
|
+
*/
|
11
|
+
class RdsHolder {
|
12
|
+
constructor(secretId) {
|
13
|
+
this.secretHolder = new secret_holder_1.SecretHolder(secretId, "", RDS_SECRET_KEYS);
|
14
|
+
}
|
15
|
+
static create() {
|
16
|
+
return new RdsHolder((0, utils_1.getEnvVariable)("SECRET_ID"));
|
17
|
+
}
|
18
|
+
async setCredentials() {
|
19
|
+
const secret = await this.secretHolder.get();
|
20
|
+
process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_USER] = secret.username;
|
21
|
+
process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_PASS] = secret.password;
|
22
|
+
process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_URI] = secret.host;
|
23
|
+
process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_RO_URI] = secret.ro_host;
|
24
|
+
}
|
25
|
+
}
|
26
|
+
exports.RdsHolder = RdsHolder;
|
27
|
+
//# sourceMappingURL=rds-holder.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"rds-holder.js","sourceRoot":"","sources":["../../../../src/aws/runtime/secrets/rds-holder.ts"],"names":[],"mappings":";;;AAAA,mDAA+C;AAC/C,yCAA8E;AAC9E,gDAAsD;AAEtD,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,uBAAY,CAAC,CAAC;AAEpD;;GAEG;AACH,MAAa,SAAS;IAGlB,YAAY,QAAgB;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,4BAAY,CAChC,QAAQ,EACR,EAAE,EACF,eAAe,CAClB,CAAC;IACN,CAAC;IAED,MAAM,CAAC,MAAM;QACT,OAAO,IAAI,SAAS,CAAC,IAAA,sBAAc,EAAC,WAAW,CAAC,CAAC,CAAC;IACtD,CAAC;IAEM,KAAK,CAAC,cAAc;QACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QAE7C,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;IACpE,CAAC;CACJ;AAvBD,8BAuBC"}
|
File without changes
|
@@ -0,0 +1,76 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.SecretHolder = void 0;
|
4
|
+
const secret_1 = require("./secret");
|
5
|
+
const dbsecret_1 = require("./dbsecret");
|
6
|
+
const utils_1 = require("../../../utils/utils");
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
8
|
+
const NodeTtl = require("node-ttl");
|
9
|
+
const DEFAULT_PREFIX = "";
|
10
|
+
const DEFAULT_SECRET_KEY = "SECRET";
|
11
|
+
const DEFAULT_CONFIGURATION = {
|
12
|
+
ttl: 5 * 60, // timeout secrets in 5 minutes
|
13
|
+
};
|
14
|
+
/**
|
15
|
+
* Utility class for getting secrets from Secret Manager.
|
16
|
+
* Supports prefix for secrets, checking of expected keys and ttl-configuration.
|
17
|
+
*
|
18
|
+
* By default, secrets are cached for 5 minutes and then reread from the Secrets Manager(This can be overridden with configuration).
|
19
|
+
*
|
20
|
+
* Supports setting the database environment paramaters from the secret too.
|
21
|
+
*/
|
22
|
+
class SecretHolder {
|
23
|
+
constructor(secretId, prefix = "", expectedKeys = [], configuration = DEFAULT_CONFIGURATION) {
|
24
|
+
this.secretId = secretId;
|
25
|
+
this.prefix = prefix;
|
26
|
+
this.expectedKeys = expectedKeys;
|
27
|
+
this.secretCache = new NodeTtl(configuration);
|
28
|
+
}
|
29
|
+
async initSecret() {
|
30
|
+
const secretValue = await (0, secret_1.getSecret)(this.secretId);
|
31
|
+
console.info("refreshing secret " + this.secretId);
|
32
|
+
this.secretCache.push(DEFAULT_SECRET_KEY, secretValue);
|
33
|
+
}
|
34
|
+
static create(prefix = DEFAULT_PREFIX, expectedKeys = []) {
|
35
|
+
return new SecretHolder((0, utils_1.getEnvVariable)("SECRET_ID"), prefix, expectedKeys);
|
36
|
+
}
|
37
|
+
async get() {
|
38
|
+
const secret = await this.getSecret();
|
39
|
+
const parsedSecret = this.prefix === DEFAULT_PREFIX
|
40
|
+
? secret
|
41
|
+
: this.parseSecret(secret, `${this.prefix}.`);
|
42
|
+
if (this.expectedKeys.length > 0) {
|
43
|
+
(0, dbsecret_1.checkExpectedSecretKeys)(this.expectedKeys, parsedSecret);
|
44
|
+
}
|
45
|
+
return parsedSecret;
|
46
|
+
}
|
47
|
+
parseSecret(secret, prefix) {
|
48
|
+
const parsed = {};
|
49
|
+
const skip = prefix.length;
|
50
|
+
for (const key in secret) {
|
51
|
+
if (key.startsWith(prefix)) {
|
52
|
+
parsed[key.substring(skip)] = secret[key];
|
53
|
+
}
|
54
|
+
}
|
55
|
+
return parsed;
|
56
|
+
}
|
57
|
+
async getSecret() {
|
58
|
+
const secret = this.secretCache.get(DEFAULT_SECRET_KEY);
|
59
|
+
if (!secret) {
|
60
|
+
await this.initSecret();
|
61
|
+
}
|
62
|
+
return secret || this.secretCache.get(DEFAULT_SECRET_KEY);
|
63
|
+
}
|
64
|
+
/**
|
65
|
+
* @deprecated Use ProxyHolder
|
66
|
+
*/
|
67
|
+
async setDatabaseCredentials() {
|
68
|
+
const secret = await this.getSecret();
|
69
|
+
process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_USER] = secret.username;
|
70
|
+
process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_PASS] = secret.password;
|
71
|
+
process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_URI] = secret.host;
|
72
|
+
process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_RO_URI] = secret.ro_host;
|
73
|
+
}
|
74
|
+
}
|
75
|
+
exports.SecretHolder = SecretHolder;
|
76
|
+
//# sourceMappingURL=secret-holder.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"secret-holder.js","sourceRoot":"","sources":["../../../../src/aws/runtime/secrets/secret-holder.ts"],"names":[],"mappings":"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"}
|
File without changes
|
@@ -0,0 +1,43 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.withSecretAndPrefix = exports.getSecret = exports.withSecret = void 0;
|
4
|
+
const aws_sdk_1 = require("aws-sdk");
|
5
|
+
const smClient = new aws_sdk_1.SecretsManager({
|
6
|
+
region: process.env.AWS_REGION,
|
7
|
+
});
|
8
|
+
/**
|
9
|
+
@deprecated use SecretHolder & ProxyHolder
|
10
|
+
*/
|
11
|
+
async function withSecret(secretId, fn) {
|
12
|
+
return fn(await getSecret(secretId));
|
13
|
+
}
|
14
|
+
exports.withSecret = withSecret;
|
15
|
+
async function getSecret(secretId, prefix = '') {
|
16
|
+
const secretObj = await smClient.getSecretValue({
|
17
|
+
SecretId: secretId,
|
18
|
+
}).promise();
|
19
|
+
if (!secretObj.SecretString) {
|
20
|
+
throw new Error('No secret found!');
|
21
|
+
}
|
22
|
+
const secret = JSON.parse(secretObj.SecretString);
|
23
|
+
if (prefix === '') {
|
24
|
+
return secret;
|
25
|
+
}
|
26
|
+
return parseSecret(secret, `${prefix}.`);
|
27
|
+
}
|
28
|
+
exports.getSecret = getSecret;
|
29
|
+
function parseSecret(secret, prefix) {
|
30
|
+
const parsed = {};
|
31
|
+
const skip = prefix.length;
|
32
|
+
for (const key in secret) {
|
33
|
+
if (key.startsWith(prefix)) {
|
34
|
+
parsed[key.substring(skip)] = secret[key];
|
35
|
+
}
|
36
|
+
}
|
37
|
+
return parsed;
|
38
|
+
}
|
39
|
+
async function withSecretAndPrefix(secretId, prefix, fn) {
|
40
|
+
return fn(await getSecret(secretId, prefix));
|
41
|
+
}
|
42
|
+
exports.withSecretAndPrefix = withSecretAndPrefix;
|
43
|
+
//# sourceMappingURL=secret.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"secret.js","sourceRoot":"","sources":["../../../../src/aws/runtime/secrets/secret.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AAGvC,MAAM,QAAQ,GAAG,IAAI,wBAAc,CAAC;IAChC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;CACjC,CAAC,CAAC;AAIH;;GAEG;AACI,KAAK,UAAU,UAAU,CAAmB,QAAgB,EAAE,EAA6C;IAC9G,OAAO,EAAE,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzC,CAAC;AAFD,gCAEC;AAEM,KAAK,UAAU,SAAS,CAAS,QAAgB,EAAE,MAAM,GAAG,EAAE;IACjE,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC;QAC5C,QAAQ,EAAE,QAAQ;KACrB,CAAC,CAAC,OAAO,EAAE,CAAC;IAEb,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KACvC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAElD,IAAI,MAAM,KAAK,EAAE,EAAE;QACf,OAAO,MAAM,CAAC;KACjB;IAED,OAAO,WAAW,CAAC,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC;AAC7C,CAAC;AAhBD,8BAgBC;AAED,SAAS,WAAW,CAAS,MAAqB,EAAE,MAAc;IAC9D,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAE3B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;QACtB,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YACxB,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;SAC7C;KACJ;IAED,OAAO,MAA2B,CAAC;AACvC,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAAmB,QAAgB,EAAE,MAAc,EAAE,EAA6C;IACvI,OAAO,EAAE,CAAC,MAAM,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACjD,CAAC;AAFD,kDAEC"}
|
@@ -2,3 +2,7 @@ export declare const NOT_FOUND_MESSAGE = "NOT_FOUND";
|
|
2
2
|
export declare const ERROR_MESSAGE = "ERROR";
|
3
3
|
export declare const OK_MESSAGE = "OK";
|
4
4
|
export declare const BAD_REQUEST_MESSAGE = "BAD REQUEST";
|
5
|
+
export declare class ValidationError extends Error {
|
6
|
+
statusCode: number;
|
7
|
+
constructor(statusCode: number, body: string);
|
8
|
+
}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.ValidationError = exports.BAD_REQUEST_MESSAGE = exports.OK_MESSAGE = exports.ERROR_MESSAGE = exports.NOT_FOUND_MESSAGE = void 0;
|
4
|
+
// DEPRECATED, remove these!
|
5
|
+
exports.NOT_FOUND_MESSAGE = "NOT_FOUND";
|
6
|
+
exports.ERROR_MESSAGE = "ERROR";
|
7
|
+
exports.OK_MESSAGE = "OK";
|
8
|
+
exports.BAD_REQUEST_MESSAGE = "BAD REQUEST";
|
9
|
+
class ValidationError extends Error {
|
10
|
+
constructor(statusCode, body) {
|
11
|
+
super(body);
|
12
|
+
this.statusCode = statusCode;
|
13
|
+
}
|
14
|
+
}
|
15
|
+
exports.ValidationError = ValidationError;
|
16
|
+
//# sourceMappingURL=errors.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/aws/types/errors.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AACf,QAAA,iBAAiB,GAAG,WAAW,CAAC;AAChC,QAAA,aAAa,GAAG,OAAO,CAAC;AACxB,QAAA,UAAU,GAAG,IAAI,CAAC;AAClB,QAAA,mBAAmB,GAAG,aAAa,CAAC;AAEjD,MAAa,eAAgB,SAAQ,KAAK;IAGtC,YAAY,UAAkB,EAAE,IAAY;QACxC,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;CACJ;AAPD,0CAOC"}
|
@@ -2,11 +2,12 @@ export declare class LambdaResponse<T> {
|
|
2
2
|
readonly status: number;
|
3
3
|
readonly body: T;
|
4
4
|
readonly fileName?: string;
|
5
|
-
|
6
|
-
static
|
5
|
+
constructor(status: number, body: T, fileName?: string);
|
6
|
+
static ok<T>(body: T, fileName?: string): Promise<LambdaResponse<T>>;
|
7
|
+
static okJson<T>(json: T, fileName?: string): Promise<LambdaResponse<string>>;
|
7
8
|
static badRequest(body: string): Promise<LambdaResponse<string>>;
|
8
9
|
static notFound(): Promise<LambdaResponse<string>>;
|
9
10
|
static internalError(): Promise<LambdaResponse<string>>;
|
10
11
|
static notImplemented(): Promise<LambdaResponse<string>>;
|
11
|
-
static create<
|
12
|
+
static create<T>(status: number, body: T, fileName?: string): Promise<LambdaResponse<T>>;
|
12
13
|
}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.LambdaResponse = void 0;
|
4
|
+
class LambdaResponse {
|
5
|
+
constructor(status, body, fileName) {
|
6
|
+
this.status = status;
|
7
|
+
this.body = body;
|
8
|
+
this.fileName = fileName;
|
9
|
+
}
|
10
|
+
static ok(body, fileName) {
|
11
|
+
return this.create(200, body, fileName);
|
12
|
+
}
|
13
|
+
static okJson(json, fileName) {
|
14
|
+
return this.create(200, JSON.stringify(json, null, 2), fileName);
|
15
|
+
}
|
16
|
+
static badRequest(body) {
|
17
|
+
return this.create(400, body);
|
18
|
+
}
|
19
|
+
static notFound() {
|
20
|
+
return this.create(404, "Not found");
|
21
|
+
}
|
22
|
+
static internalError() {
|
23
|
+
return this.create(500, "Internal error");
|
24
|
+
}
|
25
|
+
static notImplemented() {
|
26
|
+
return this.create(501, "Not implemented");
|
27
|
+
}
|
28
|
+
static create(status, body, fileName) {
|
29
|
+
return Promise.resolve(new LambdaResponse(status, body, fileName));
|
30
|
+
}
|
31
|
+
}
|
32
|
+
exports.LambdaResponse = LambdaResponse;
|
33
|
+
//# sourceMappingURL=lambda-response.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"lambda-response.js","sourceRoot":"","sources":["../../../src/aws/types/lambda-response.ts"],"names":[],"mappings":";;;AAAA,MAAa,cAAc;IAKvB,YAAY,MAAc,EAAE,IAAO,EAAE,QAAiB;QAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,EAAE,CAAI,IAAO,EAAE,QAAiB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,MAAM,CAAI,IAAO,EAAE,QAAiB;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,IAAY;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,aAAa;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,cAAc;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,MAAM,CACT,MAAc,EACd,IAAO,EACP,QAAiB;QAEjB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvE,CAAC;CACJ;AA1CD,wCA0CC"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.MediaType = void 0;
|
4
|
+
// charset=UTF-8 is deprecated but mobile applications sometimes needs it
|
5
|
+
var MediaType;
|
6
|
+
(function (MediaType) {
|
7
|
+
MediaType["APPLICATION_JSON"] = "application/json;charset=UTF-8";
|
8
|
+
MediaType["APPLICATION_XML"] = "application/xml";
|
9
|
+
MediaType["APPLICATION_GEOJSON"] = "application/geo+json;charset=UTF-8";
|
10
|
+
MediaType["IMAGE_SVG"] = "image/svg+xml";
|
11
|
+
MediaType["IMAGE_JPEG"] = "image/jpeg";
|
12
|
+
MediaType["TEXT_PLAIN"] = "text/plain";
|
13
|
+
MediaType["TEXT_HTML"] = "text/html";
|
14
|
+
MediaType["TEXT_CSV"] = "text/csv";
|
15
|
+
})(MediaType = exports.MediaType || (exports.MediaType = {}));
|
16
|
+
//# sourceMappingURL=mediatypes.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"mediatypes.js","sourceRoot":"","sources":["../../../src/aws/types/mediatypes.ts"],"names":[],"mappings":";;;AAAA,yEAAyE;AACzE,IAAY,SASX;AATD,WAAY,SAAS;IACjB,gEAAmD,CAAA;IACnD,gDAAmC,CAAA;IACnC,uEAA0D,CAAA;IAC1D,wCAA2B,CAAA;IAC3B,sCAAyB,CAAA;IACzB,sCAAyB,CAAA;IACzB,oCAAuB,CAAA;IACvB,kCAAqB,CAAA;AACzB,CAAC,EATW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QASpB"}
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"model-with-reference.js","sourceRoot":"","sources":["../../../src/aws/types/model-with-reference.ts"],"names":[],"mappings":""}
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"proxytypes.js","sourceRoot":"","sources":["../../../src/aws/types/proxytypes.ts"],"names":[],"mappings":""}
|
File without changes
|
@@ -0,0 +1,7 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.DATA_V1_TAGS = exports.BETA_TAGS = void 0;
|
4
|
+
// DEPRECATED! This must be replaced with new application specific tags
|
5
|
+
exports.BETA_TAGS = ['Beta'];
|
6
|
+
exports.DATA_V1_TAGS = ['Data v1'];
|
7
|
+
//# sourceMappingURL=tags.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../../src/aws/types/tags.ts"],"names":[],"mappings":";;;AAAA,uEAAuE;AAC1D,QAAA,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC;AACrB,QAAA,YAAY,GAAG,CAAC,SAAS,CAAC,CAAC"}
|
File without changes
|
@@ -0,0 +1,32 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.getJsonFromCache = exports.updateCachedJson = exports.JSON_CACHE_KEY = void 0;
|
4
|
+
const pg_promise_1 = require("pg-promise");
|
5
|
+
const SQL_UPDATE_CACHE_VALUE = `insert into cached_json(cache_id, content, last_updated)
|
6
|
+
values ($1, $2, now())
|
7
|
+
on conflict(cache_id) do
|
8
|
+
update set content = $2, last_updated = now()`;
|
9
|
+
const SQL_GET_CACHE_VALUE = `select content, last_updated from cached_json
|
10
|
+
where cache_id = $1`;
|
11
|
+
const PS_UPDATE_CACHE_VALUE = new pg_promise_1.PreparedStatement({
|
12
|
+
name: 'update-cache-value',
|
13
|
+
text: SQL_UPDATE_CACHE_VALUE,
|
14
|
+
});
|
15
|
+
const PS_GET_CACHE_VALUE = new pg_promise_1.PreparedStatement({
|
16
|
+
name: 'get-cache-value',
|
17
|
+
text: SQL_GET_CACHE_VALUE,
|
18
|
+
});
|
19
|
+
var JSON_CACHE_KEY;
|
20
|
+
(function (JSON_CACHE_KEY) {
|
21
|
+
JSON_CACHE_KEY["NAUTICAL_WARNINGS_ACTIVE"] = "nautical-warnings-active";
|
22
|
+
JSON_CACHE_KEY["NAUTICAL_WARNINGS_ARCHIVED"] = "nautical-warnings-archived";
|
23
|
+
})(JSON_CACHE_KEY = exports.JSON_CACHE_KEY || (exports.JSON_CACHE_KEY = {}));
|
24
|
+
function updateCachedJson(db, cacheKey, value) {
|
25
|
+
return db.none(PS_UPDATE_CACHE_VALUE, [cacheKey, value]);
|
26
|
+
}
|
27
|
+
exports.updateCachedJson = updateCachedJson;
|
28
|
+
function getJsonFromCache(db, cacheKey) {
|
29
|
+
return db.oneOrNone(PS_GET_CACHE_VALUE, [cacheKey]).then(value => value?.content ?? null);
|
30
|
+
}
|
31
|
+
exports.getJsonFromCache = getJsonFromCache;
|
32
|
+
//# sourceMappingURL=cached.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"cached.js","sourceRoot":"","sources":["../../src/database/cached.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAG7C,MAAM,sBAAsB,GACxB;;;kDAG8C,CAAC;AAEnD,MAAM,mBAAmB,GACrB;wBACoB,CAAC;AAEzB,MAAM,qBAAqB,GAAG,IAAI,8BAAiB,CAAC;IAChD,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,sBAAsB;CAC/B,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,IAAI,8BAAiB,CAAC;IAC7C,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,mBAAmB;CAC5B,CAAC,CAAC;AAEH,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,uEAAqD,CAAA;IACrD,2EAAyD,CAAA;AAC7D,CAAC,EAHW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAGzB;AAED,SAAgB,gBAAgB,CAAI,EAA8B,EAAE,QAAwB,EAAE,KAAQ;IAClG,OAAO,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7D,CAAC;AAFD,4CAEC;AAED,SAAgB,gBAAgB,CAAI,EAA8B,EAAE,QAAwB;IACxF,OAAO,EAAE,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC;AAC9F,CAAC;AAFD,4CAEC"}
|
File without changes
|