@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
@@ -0,0 +1,70 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.inDatabaseReadonly = exports.inDatabase = exports.inTransaction = exports.initDbConnection = void 0;
|
4
|
+
const dbsecret_1 = require("../aws/runtime/secrets/dbsecret");
|
5
|
+
const utils_1 = require("../utils/utils");
|
6
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
7
|
+
const pgp = require("pg-promise")();
|
8
|
+
// convert numeric types to number instead of string
|
9
|
+
pgp.pg.types.setTypeParser(pgp.pg.types.builtins.INT8, (value) => {
|
10
|
+
return parseInt(value);
|
11
|
+
});
|
12
|
+
pgp.pg.types.setTypeParser(pgp.pg.types.builtins.FLOAT8, (value) => {
|
13
|
+
return parseFloat(value);
|
14
|
+
});
|
15
|
+
pgp.pg.types.setTypeParser(pgp.pg.types.builtins.NUMERIC, (value) => {
|
16
|
+
return parseFloat(value);
|
17
|
+
});
|
18
|
+
/**
|
19
|
+
* Creates a non-pooling database connection primarily used by Lambdas.
|
20
|
+
*
|
21
|
+
* Note! Using this method opens a new RDS connection on every invocation. It is advised to
|
22
|
+
* use RDS proxy to pool connections transparently.
|
23
|
+
* https://docs.amazonaws.cn/en_us/AmazonRDS/latest/AuroraUserGuide/rds-proxy.html
|
24
|
+
* @param username Username
|
25
|
+
* @param password Password
|
26
|
+
* @param applicationName name of application
|
27
|
+
* @param url Connection URL
|
28
|
+
* @param options pg-promise options
|
29
|
+
*/
|
30
|
+
function initDbConnection(username, password, applicationName, url, options) {
|
31
|
+
const finalUrl = `postgresql://${username}:${password}@${url}?application_name=${applicationName}`;
|
32
|
+
return pgp(finalUrl, options);
|
33
|
+
}
|
34
|
+
exports.initDbConnection = initDbConnection;
|
35
|
+
function inTransaction(fn) {
|
36
|
+
return inDatabase((db) => db.tx((t) => fn(t)));
|
37
|
+
}
|
38
|
+
exports.inTransaction = inTransaction;
|
39
|
+
function inDatabase(fn) {
|
40
|
+
return doInDatabase(false, fn);
|
41
|
+
}
|
42
|
+
exports.inDatabase = inDatabase;
|
43
|
+
function inDatabaseReadonly(fn) {
|
44
|
+
return doInDatabase(true, fn);
|
45
|
+
}
|
46
|
+
exports.inDatabaseReadonly = inDatabaseReadonly;
|
47
|
+
async function doInDatabase(readonly, fn) {
|
48
|
+
const db_application = (0, utils_1.getEnvVariableSafe)(dbsecret_1.DatabaseEnvironmentKeys.DB_APPLICATION);
|
49
|
+
const db_ro_uri = (0, utils_1.getEnvVariableSafe)(dbsecret_1.DatabaseEnvironmentKeys.DB_RO_URI);
|
50
|
+
const db_uri = db_ro_uri.result === "ok"
|
51
|
+
? db_ro_uri.value
|
52
|
+
: (0, utils_1.getEnvVariable)(dbsecret_1.DatabaseEnvironmentKeys.DB_URI);
|
53
|
+
const db = initDbConnection((0, utils_1.getEnvVariable)(dbsecret_1.DatabaseEnvironmentKeys.DB_USER), (0, utils_1.getEnvVariable)(dbsecret_1.DatabaseEnvironmentKeys.DB_PASS), db_application.result === "ok"
|
54
|
+
? db_application.value
|
55
|
+
: "unknown-cdk-application", db_uri);
|
56
|
+
try {
|
57
|
+
// deallocate all prepared statements to allow for connection pooling
|
58
|
+
// DISCARD instead of DEALLOCATE as it didn't always clean all prepared statements
|
59
|
+
await db.none("DISCARD ALL");
|
60
|
+
return await fn(db);
|
61
|
+
}
|
62
|
+
catch (e) {
|
63
|
+
console.error("Error in db:", e);
|
64
|
+
throw e;
|
65
|
+
}
|
66
|
+
finally {
|
67
|
+
db.$pool.end();
|
68
|
+
}
|
69
|
+
}
|
70
|
+
//# sourceMappingURL=database.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/database/database.ts"],"names":[],"mappings":"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"}
|
File without changes
|
@@ -0,0 +1,54 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.updateUpdatedTimestamp = exports.getUpdatedTimestamp = exports.updateLastUpdatedWithSubtype = exports.updateLastUpdated = exports.getLastUpdatedWithSubtype = exports.getLastUpdated = exports.DataType = void 0;
|
4
|
+
var DataType;
|
5
|
+
(function (DataType) {
|
6
|
+
DataType["VS_DATEX2"] = "VS_DATEX2";
|
7
|
+
DataType["COUNTING_SITES_DATA"] = "COUNTING_SITES_DATA";
|
8
|
+
DataType["COUNTING_SITES_METADATA"] = "COUNTING_SITES_METADATA";
|
9
|
+
DataType["COUNTING_SITES_METADATA_CHECK"] = "COUNTING_SITES_METADATA_CHECK";
|
10
|
+
DataType["MAINTENANCE_TRACKING_DATA_CHECKED"] = "MAINTENANCE_TRACKING_DATA_CHECKED";
|
11
|
+
DataType["PERMIT_DATA"] = "PERMIT_DATA";
|
12
|
+
DataType["PERMIT_DATA_CHECK"] = "PERMIT_DATA_CHECK";
|
13
|
+
})(DataType = exports.DataType || (exports.DataType = {}));
|
14
|
+
const UNSET_SUBTYPE = '-';
|
15
|
+
function getLastUpdated(db, datatype) {
|
16
|
+
return db.oneOrNone("select updated from data_updated where data_type=$(datatype) and subtype=$(subtype)", {
|
17
|
+
datatype: datatype, subtype: UNSET_SUBTYPE,
|
18
|
+
}, (x) => x?.updated || null);
|
19
|
+
}
|
20
|
+
exports.getLastUpdated = getLastUpdated;
|
21
|
+
function getLastUpdatedWithSubtype(db, datatype, subtype) {
|
22
|
+
return db.oneOrNone("SELECT updated FROM data_updated WHERE data_type=$(datatype) AND subtype=$(subtype)", {
|
23
|
+
datatype: datatype, subtype: subtype,
|
24
|
+
}, (x) => x?.updated || null);
|
25
|
+
}
|
26
|
+
exports.getLastUpdatedWithSubtype = getLastUpdatedWithSubtype;
|
27
|
+
function updateLastUpdated(db, datatype, updated) {
|
28
|
+
return db.none(`insert into data_updated(id, data_type, updated)
|
29
|
+
values(nextval('seq_data_updated'), $(datatype), $(updated))
|
30
|
+
on conflict (data_type, subtype)
|
31
|
+
do update set updated = $(updated)`, { updated, datatype });
|
32
|
+
}
|
33
|
+
exports.updateLastUpdated = updateLastUpdated;
|
34
|
+
function updateLastUpdatedWithSubtype(db, datatype, subtype, updated) {
|
35
|
+
return db.none(`insert into data_updated(id, data_type, subtype, updated)
|
36
|
+
values(nextval('seq_data_updated'), $(datatype), $(subtype), $(updated))
|
37
|
+
on conflict (data_type, subtype)
|
38
|
+
do update set updated = $(updated)`, { updated, subtype, datatype });
|
39
|
+
}
|
40
|
+
exports.updateLastUpdatedWithSubtype = updateLastUpdatedWithSubtype;
|
41
|
+
function getUpdatedTimestamp(db, datatype) {
|
42
|
+
return db.oneOrNone("select updated_time as updated from updated_timestamp where updated_name=$(datatype)", {
|
43
|
+
datatype: datatype,
|
44
|
+
}, (x) => x?.updated || null);
|
45
|
+
}
|
46
|
+
exports.getUpdatedTimestamp = getUpdatedTimestamp;
|
47
|
+
function updateUpdatedTimestamp(db, datatype, date, by = '') {
|
48
|
+
return db.none(`insert into updated_timestamp(updated_name, updated_time, updated_by)
|
49
|
+
values($(datatype), $(date), $(by))
|
50
|
+
on conflict (updated_name)
|
51
|
+
do update set updated_time = $(date), updated_by = $(by)`, { date, datatype, by });
|
52
|
+
}
|
53
|
+
exports.updateUpdatedTimestamp = updateUpdatedTimestamp;
|
54
|
+
//# sourceMappingURL=last-updated.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"last-updated.js","sourceRoot":"","sources":["../../src/database/last-updated.ts"],"names":[],"mappings":";;;AAEA,IAAY,QAQX;AARD,WAAY,QAAQ;IAChB,mCAAqB,CAAA;IACrB,uDAAyC,CAAA;IACzC,+DAAiD,CAAA;IACjD,2EAA6D,CAAA;IAC7D,mFAAqE,CAAA;IACrE,uCAAyB,CAAA;IACzB,mDAAqC,CAAA;AACzC,CAAC,EARW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAQnB;AAED,MAAM,aAAa,GAAG,GAAG,CAAC;AAM1B,SAAgB,cAAc,CAAC,EAAc,EAAE,QAAkB;IAC7D,OAAO,EAAE,CAAC,SAAS,CAAC,qFAAqF,EAAE;QACvG,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa;KAC7C,EAAE,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC;AACpD,CAAC;AAJD,wCAIC;AAED,SAAgB,yBAAyB,CAAC,EAAc,EAAE,QAAkB,EAAE,OAAe;IACzF,OAAO,EAAE,CAAC,SAAS,CAAC,qFAAqF,EAAE;QACvG,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO;KACvC,EAAE,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC;AACpD,CAAC;AAJD,8DAIC;AAED,SAAgB,iBAAiB,CAAC,EAA8B,EAAE,QAAkB,EAAE,OAAa;IAC/F,OAAO,EAAE,CAAC,IAAI,CAAC;;;oCAGiB,EAChC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC3B,CAAC;AAND,8CAMC;AAED,SAAgB,4BAA4B,CAAC,EAA8B,EAAE,QAAkB,EAAE,OAAe,EAAE,OAAa;IAC3H,OAAO,EAAE,CAAC,IAAI,CAAC;;;oCAGiB,EAChC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;AACpC,CAAC;AAND,oEAMC;AAED,SAAgB,mBAAmB,CAAC,EAAc,EAAE,QAAgB;IAChE,OAAO,EAAE,CAAC,SAAS,CAAC,sFAAsF,EAAE;QACxG,QAAQ,EAAE,QAAQ;KACrB,EAAE,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC;AACpD,CAAC;AAJD,kDAIC;AAED,SAAgB,sBAAsB,CAAC,EAA8B,EAAE,QAAgB,EAAE,IAAU,EAAE,EAAE,GAAG,EAAE;IACxG,OAAO,EAAE,CAAC,IAAI,CAAC;;;yDAGsC,EACrD,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5B,CAAC;AAND,wDAMC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/database/models.ts"],"names":[],"mappings":""}
|
File without changes
|
@@ -0,0 +1,33 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.isValidLOCODE = exports.isValidMMSI = exports.isValidIMO = void 0;
|
4
|
+
function isValidIMO(imo) {
|
5
|
+
return imo >= 1000000 && imo <= 9999999 && imoChecksumIsValid(imo);
|
6
|
+
}
|
7
|
+
exports.isValidIMO = isValidIMO;
|
8
|
+
function imoChecksumIsValid(imo) {
|
9
|
+
const imoStr = imo.toString();
|
10
|
+
const imoDigit1 = Number(imoStr[0]);
|
11
|
+
const imoDigit2 = Number(imoStr[1]);
|
12
|
+
const imoDigit3 = Number(imoStr[2]);
|
13
|
+
const imoDigit4 = Number(imoStr[3]);
|
14
|
+
const imoDigit5 = Number(imoStr[4]);
|
15
|
+
const imoDigit6 = Number(imoStr[5]);
|
16
|
+
const checkDigit = Number(imoStr[6]);
|
17
|
+
const checkCalculation = Number(((imoDigit1 * 7) + (imoDigit2 * 6) + (imoDigit3 * 5) + (imoDigit4 * 4) + (imoDigit5 * 3) + (imoDigit6 * 2)));
|
18
|
+
const checkResult = checkCalculation % 10 === checkDigit;
|
19
|
+
if (!checkResult) {
|
20
|
+
console.warn('method=imoChecksumIsValid IMO checksum failed %d', imo);
|
21
|
+
}
|
22
|
+
return checkResult;
|
23
|
+
}
|
24
|
+
function isValidMMSI(mmsi) {
|
25
|
+
return mmsi >= 100000000 && mmsi <= 999999999;
|
26
|
+
}
|
27
|
+
exports.isValidMMSI = isValidMMSI;
|
28
|
+
const LocodePattern = /^FI[A-Z]{3}$/i;
|
29
|
+
function isValidLOCODE(locode) {
|
30
|
+
return LocodePattern.test(locode);
|
31
|
+
}
|
32
|
+
exports.isValidLOCODE = isValidLOCODE;
|
33
|
+
//# sourceMappingURL=id_utils.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"id_utils.js","sourceRoot":"","sources":["../../src/marine/id_utils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,UAAU,CAAC,GAAW;IAClC,OAAO,GAAG,IAAI,OAAO,IAAI,GAAG,IAAI,OAAO,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACvE,CAAC;AAFD,gCAEC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACnC,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7I,MAAM,WAAW,GAAG,gBAAgB,GAAG,EAAE,KAAK,UAAU,CAAC;IACzD,IAAI,CAAC,WAAW,EAAE;QACd,OAAO,CAAC,IAAI,CAAC,kDAAkD,EAAE,GAAG,CAAC,CAAC;KACzE;IACD,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,SAAgB,WAAW,CAAC,IAAY;IACpC,OAAO,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,CAAC;AAClD,CAAC;AAFD,kCAEC;AAED,MAAM,aAAa,GAAG,eAAe,CAAC;AAEtC,SAAgB,aAAa,CAAC,MAAc;IACxC,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAFD,sCAEC"}
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"rtz.js","sourceRoot":"","sources":["../../src/marine/rtz.ts"],"names":[],"mappings":""}
|
File without changes
|
@@ -0,0 +1,45 @@
|
|
1
|
+
"use strict";
|
2
|
+
/**
|
3
|
+
* A simple asserter-class for writing canaries without dependency to testing-libraries.
|
4
|
+
*/
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.Asserter = void 0;
|
7
|
+
class Asserter {
|
8
|
+
static assertEquals(value, expected) {
|
9
|
+
if (value != expected) {
|
10
|
+
throw new Error(`Given value ${value} was not expected ${expected}`);
|
11
|
+
}
|
12
|
+
}
|
13
|
+
static assertTrue(value) {
|
14
|
+
if (!value) {
|
15
|
+
throw new Error(`Given value ${value} was not true`);
|
16
|
+
}
|
17
|
+
}
|
18
|
+
static assertLength(data, expected) {
|
19
|
+
if (!data) {
|
20
|
+
throw new Error("Given array was not defined");
|
21
|
+
}
|
22
|
+
if (data.length != expected) {
|
23
|
+
throw new Error(`Given array length ${data.length} was not expected ${expected}`);
|
24
|
+
}
|
25
|
+
}
|
26
|
+
static assertLengthGreaterThan(data, expected) {
|
27
|
+
if (!data) {
|
28
|
+
throw new Error("Given array was not defined");
|
29
|
+
}
|
30
|
+
if (data.length <= expected) {
|
31
|
+
throw new Error(`Given array length ${data.length} was not greater than ${expected}`);
|
32
|
+
}
|
33
|
+
}
|
34
|
+
static assertGreaterThan(value, expected) {
|
35
|
+
if (value <= expected) {
|
36
|
+
throw new Error(`Value ${value} was expected to be greater than ${expected}`);
|
37
|
+
}
|
38
|
+
}
|
39
|
+
static assertToBeCloseTo(value, expected, delta) {
|
40
|
+
expect(expected - value).toBeGreaterThanOrEqual(-1 * delta);
|
41
|
+
expect(expected - value).toBeLessThanOrEqual(delta);
|
42
|
+
}
|
43
|
+
}
|
44
|
+
exports.Asserter = Asserter;
|
45
|
+
//# sourceMappingURL=asserter.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"asserter.js","sourceRoot":"","sources":["../../src/test/asserter.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,MAAsB,QAAQ;IAC1B,MAAM,CAAC,YAAY,CAAI,KAAQ,EAAE,QAAW;QACxC,IAAI,KAAK,IAAI,QAAQ,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,qBAAqB,QAAQ,EAAE,CAAC,CAAC;SACxE;IACL,CAAC;IAED,MAAM,CAAC,UAAU,CAAI,KAAQ;QACzB,IAAI,CAAC,KAAK,EAAE;YACR,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,eAAe,CAAC,CAAC;SACxD;IACL,CAAC;IAED,MAAM,CAAC,YAAY,CAAI,IAAS,EAAE,QAAgB;QAC9C,IAAI,CAAC,IAAI,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAClD;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,MAAM,qBAAqB,QAAQ,EAAE,CAAC,CAAC;SACrF;IACL,CAAC;IAED,MAAM,CAAC,uBAAuB,CAAI,IAAS,EAAE,QAAgB;QACzD,IAAI,CAAC,IAAI,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAClD;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,MAAM,yBAAyB,QAAQ,EAAE,CAAC,CAAC;SACzF;IACL,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,KAAa,EAAE,QAAgB;QACpD,IAAI,KAAK,IAAI,QAAQ,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,oCAAoC,QAAQ,EAAE,CAAC,CAAC;SACjF;IACL,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,KAAa,EAAE,QAAgB,EAAE,KAAa;QACnE,MAAM,CAAC,QAAQ,GAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;QAC1D,MAAM,CAAC,QAAQ,GAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;CACJ;AA3CD,4BA2CC"}
|
@@ -1,2 +1,2 @@
|
|
1
1
|
import { DTDatabase } from "../database/database";
|
2
|
-
export declare function dbTestBase(fn: (db: DTDatabase) => void, truncateFn: (db: DTDatabase) => void
|
2
|
+
export declare function dbTestBase(fn: (db: DTDatabase) => void, truncateFn: (db: DTDatabase) => Promise<void>, dbUser: string, dbPass: string, dbUri: string): () => void;
|
@@ -0,0 +1,31 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.dbTestBase = void 0;
|
4
|
+
const database_1 = require("../database/database");
|
5
|
+
const dbsecret_1 = require("../aws/runtime/secrets/dbsecret");
|
6
|
+
function dbTestBase(fn, truncateFn, dbUser, dbPass, dbUri) {
|
7
|
+
const theDbUri = process.env.DB_URI ?? dbUri;
|
8
|
+
console.log(`Test database URI: ${theDbUri}`);
|
9
|
+
return () => {
|
10
|
+
const db = (0, database_1.initDbConnection)(dbUser, dbPass, "test", theDbUri, {
|
11
|
+
noWarnings: true, // ignore duplicate connection warning for tests
|
12
|
+
});
|
13
|
+
beforeAll(async () => {
|
14
|
+
process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_USER] = dbUser;
|
15
|
+
process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_PASS] = dbPass;
|
16
|
+
process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_URI] = theDbUri;
|
17
|
+
process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_RO_URI] = theDbUri;
|
18
|
+
await truncateFn(db);
|
19
|
+
});
|
20
|
+
afterAll(async () => {
|
21
|
+
await truncateFn(db);
|
22
|
+
await db.$pool.end();
|
23
|
+
});
|
24
|
+
beforeEach(async () => {
|
25
|
+
await truncateFn(db);
|
26
|
+
});
|
27
|
+
fn(db);
|
28
|
+
};
|
29
|
+
}
|
30
|
+
exports.dbTestBase = dbTestBase;
|
31
|
+
//# sourceMappingURL=db-testutils.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"db-testutils.js","sourceRoot":"","sources":["../../src/test/db-testutils.ts"],"names":[],"mappings":";;;AAAA,mDAAoE;AACpE,8DAA0E;AAE1E,SAAgB,UAAU,CACtB,EAA4B,EAC5B,UAA6C,EAC7C,MAAc,EACd,MAAc,EACd,KAAa;IAEb,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;IAE9C,OAAO,GAAG,EAAE;QACR,MAAM,EAAE,GAAe,IAAA,2BAAgB,EACnC,MAAM,EACN,MAAM,EACN,MAAM,EACN,QAAQ,EACR;YACI,UAAU,EAAE,IAAI,EAAE,gDAAgD;SACrE,CACJ,CAAC;QAEF,SAAS,CAAC,KAAK,IAAI,EAAE;YACjB,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,kCAAuB,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;YAC1D,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;YAChB,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;YACrB,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,KAAK,IAAI,EAAE;YAClB,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,CAAC;IACX,CAAC,CAAC;AACN,CAAC;AAxCD,gCAwCC"}
|
@@ -4,9 +4,10 @@ export declare const ERRORCODE_NOT_FOUND = 404;
|
|
4
4
|
* A mock HTTP server created for testing connections from a Lambda to an outside integration
|
5
5
|
*/
|
6
6
|
export declare class TestHttpServer {
|
7
|
-
private server
|
7
|
+
private server?;
|
8
8
|
private debug;
|
9
9
|
private messageStack;
|
10
|
+
constructor();
|
10
11
|
getCallCount(): number;
|
11
12
|
getRequestBody(callNumber: number): string;
|
12
13
|
listen(port: number, props: ListenProperties, debug?: boolean, statusCode?: number): void;
|
@@ -0,0 +1,74 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.TestHttpServer = exports.ERRORCODE_NOT_FOUND = exports.ERROR_NO_MATCH = void 0;
|
4
|
+
const http_1 = require("http");
|
5
|
+
exports.ERROR_NO_MATCH = "NO MATCH";
|
6
|
+
exports.ERRORCODE_NOT_FOUND = 404;
|
7
|
+
/**
|
8
|
+
* A mock HTTP server created for testing connections from a Lambda to an outside integration
|
9
|
+
*/
|
10
|
+
class TestHttpServer {
|
11
|
+
constructor() {
|
12
|
+
this.debug = false;
|
13
|
+
this.messageStack = [];
|
14
|
+
}
|
15
|
+
getCallCount() {
|
16
|
+
return this.messageStack.length;
|
17
|
+
}
|
18
|
+
getRequestBody(callNumber) {
|
19
|
+
return this.messageStack[callNumber];
|
20
|
+
}
|
21
|
+
listen(port, props, debug = false, statusCode = 200) {
|
22
|
+
this.debug = debug;
|
23
|
+
this.messageStack = [];
|
24
|
+
this.debuglog(`Starting test server on port ${port}`);
|
25
|
+
this.server = (0, http_1.createServer)((req, res) => {
|
26
|
+
this.debuglog("Mapped urls: ");
|
27
|
+
Object.keys(props).forEach((k) => this.debuglog(k));
|
28
|
+
this.debuglog("Received request to url " + req.url + "..");
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
30
|
+
const path = require("url").parse(req.url).pathname;
|
31
|
+
let dataStr = "";
|
32
|
+
req.on("data", (chunk) => {
|
33
|
+
if (chunk) {
|
34
|
+
dataStr += chunk;
|
35
|
+
}
|
36
|
+
});
|
37
|
+
if (path in props) {
|
38
|
+
this.debuglog("..url matched");
|
39
|
+
res.setHeader("Access-Control-Allow-Origin", "*");
|
40
|
+
res.setHeader("Access-Control-Allow-Headers", "Authorization,X-User-Id,X-Auth-Token");
|
41
|
+
res.writeHead(statusCode);
|
42
|
+
req.on("end", () => {
|
43
|
+
// assume sent data is in JSON format
|
44
|
+
this.messageStack[this.messageStack.length] = dataStr;
|
45
|
+
res.end(props[path](req.url, dataStr));
|
46
|
+
});
|
47
|
+
}
|
48
|
+
else {
|
49
|
+
this.debuglog("..no match for %" + path);
|
50
|
+
req.on("end", () => {
|
51
|
+
// assume sent data is in JSON format
|
52
|
+
this.messageStack[this.messageStack.length] =
|
53
|
+
exports.ERROR_NO_MATCH;
|
54
|
+
res.writeHead(exports.ERRORCODE_NOT_FOUND);
|
55
|
+
res.end(exports.ERROR_NO_MATCH);
|
56
|
+
});
|
57
|
+
}
|
58
|
+
});
|
59
|
+
this.server.listen(port);
|
60
|
+
}
|
61
|
+
close() {
|
62
|
+
this.debuglog("Closing test server");
|
63
|
+
if (this.server !== undefined) {
|
64
|
+
this.server.close();
|
65
|
+
}
|
66
|
+
}
|
67
|
+
debuglog(str) {
|
68
|
+
if (this.debug) {
|
69
|
+
console.debug(str);
|
70
|
+
}
|
71
|
+
}
|
72
|
+
}
|
73
|
+
exports.TestHttpServer = TestHttpServer;
|
74
|
+
//# sourceMappingURL=httpserver.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"httpserver.js","sourceRoot":"","sources":["../../src/test/httpserver.ts"],"names":[],"mappings":"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"}
|
File without changes
|
@@ -0,0 +1,25 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.createEmptySecretFunction = exports.createSecretFunction = void 0;
|
4
|
+
const EMPTY_DB_SECRET = {
|
5
|
+
username: '',
|
6
|
+
password: '',
|
7
|
+
host: '',
|
8
|
+
// eslint-disable-next-line camelcase
|
9
|
+
ro_host: '',
|
10
|
+
};
|
11
|
+
function createSecretFunction(secret) {
|
12
|
+
// eslint-disable-next-line require-await
|
13
|
+
return async (secretId, fn) => {
|
14
|
+
return fn(secret);
|
15
|
+
};
|
16
|
+
}
|
17
|
+
exports.createSecretFunction = createSecretFunction;
|
18
|
+
function createEmptySecretFunction() {
|
19
|
+
// eslint-disable-next-line require-await
|
20
|
+
return async (secretId, fn) => {
|
21
|
+
return fn(EMPTY_DB_SECRET);
|
22
|
+
};
|
23
|
+
}
|
24
|
+
exports.createEmptySecretFunction = createEmptySecretFunction;
|
25
|
+
//# sourceMappingURL=secret.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"secret.js","sourceRoot":"","sources":["../../src/test/secret.ts"],"names":[],"mappings":";;;AAEA,MAAM,eAAe,GAAa;IAC9B,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;IACR,qCAAqC;IACrC,OAAO,EAAE,EAAE;CACd,CAAC;AAEF,SAAgB,oBAAoB,CAAmB,MAAc;IACjE,yCAAyC;IACzC,OAAO,KAAK,EAAE,QAAgB,EAAE,EAA6C,EAAE,EAAE;QAC7E,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC,CAAC;AACN,CAAC;AALD,oDAKC;AAED,SAAgB,yBAAyB;IACrC,yCAAyC;IACzC,OAAO,KAAK,EAAE,QAAgB,EAAE,EAA+C,EAAE,EAAE;QAC/E,OAAO,EAAE,CAAC,eAAe,CAAC,CAAC;IAC/B,CAAC,CAAC;AACN,CAAC;AALD,8DAKC"}
|
File without changes
|
@@ -0,0 +1,59 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
+
exports.mockSecret = exports.stubSecretsManager = void 0;
|
27
|
+
const AWS = require("aws-sdk");
|
28
|
+
const sinon = __importStar(require("sinon"));
|
29
|
+
const secretValue = sinon.stub();
|
30
|
+
/**
|
31
|
+
* Stub Secrets Manager for tests. You must call this
|
32
|
+
* before you instantiate Secrets Manager(this might happen when you import the function that uses Secrets Manager).
|
33
|
+
*
|
34
|
+
* To mock the actual secret, call mockSecret()
|
35
|
+
*/
|
36
|
+
function stubSecretsManager() {
|
37
|
+
const smStub = {
|
38
|
+
getSecretValue: secretValue,
|
39
|
+
};
|
40
|
+
sinon.stub(AWS, 'SecretsManager').returns(smStub);
|
41
|
+
return smStub.getSecretValue;
|
42
|
+
}
|
43
|
+
exports.stubSecretsManager = stubSecretsManager;
|
44
|
+
function mockSecret(secret) {
|
45
|
+
if (!secret) {
|
46
|
+
secretValue.returns({
|
47
|
+
promise: sinon.stub().returns({}),
|
48
|
+
});
|
49
|
+
}
|
50
|
+
else {
|
51
|
+
secretValue.returns({
|
52
|
+
promise: sinon.stub().returns({
|
53
|
+
SecretString: JSON.stringify(secret),
|
54
|
+
}),
|
55
|
+
});
|
56
|
+
}
|
57
|
+
}
|
58
|
+
exports.mockSecret = mockSecret;
|
59
|
+
//# sourceMappingURL=secrets-manager.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"secrets-manager.js","sourceRoot":"","sources":["../../src/test/secrets-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAgC;AAChC,6CAA+B;AAE/B,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;AAEjC;;;;;GAKG;AACH,SAAgB,kBAAkB;IAC9B,MAAM,MAAM,GAAG;QACX,cAAc,EAAE,WAAW;KAC9B,CAAC;IAEF,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAElD,OAAO,MAAM,CAAC,cAAc,CAAC;AACjC,CAAC;AARD,gDAQC;AAED,SAAgB,UAAU,CAAS,MAAc;IAC7C,IAAI,CAAC,MAAM,EAAE;QACT,WAAW,CAAC,OAAO,CAAC;YAChB,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;SACpC,CAAC,CAAC;KACN;SAAM;QACH,WAAW,CAAC,OAAO,CAAC;YAChB,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC;gBAC1B,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;aACvC,CAAC;SACL,CAAC,CAAC;KACN;AACL,CAAC;AAZD,gCAYC"}
|
File without changes
|
@@ -0,0 +1,44 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.shuffle = exports.randomBoolean = exports.getRandomBigInt = exports.getRandomIntegerAsString = exports.getRandomInteger = exports.getRandomNumberAsString = exports.getRandomNumber = exports.randomString = void 0;
|
4
|
+
function randomString() {
|
5
|
+
return Math.random().toString(36).substring(2);
|
6
|
+
}
|
7
|
+
exports.randomString = randomString;
|
8
|
+
function getRandomNumber(min, max) {
|
9
|
+
return Math.random() * (max - min) + min;
|
10
|
+
}
|
11
|
+
exports.getRandomNumber = getRandomNumber;
|
12
|
+
function getRandomNumberAsString(min, max) {
|
13
|
+
return getRandomNumber(min, max).toString();
|
14
|
+
}
|
15
|
+
exports.getRandomNumberAsString = getRandomNumberAsString;
|
16
|
+
function getRandomInteger(min, max) {
|
17
|
+
return Math.round(getRandomNumber(min, max));
|
18
|
+
}
|
19
|
+
exports.getRandomInteger = getRandomInteger;
|
20
|
+
function getRandomIntegerAsString(min, max) {
|
21
|
+
return Math.round(getRandomInteger(min, max)).toString();
|
22
|
+
}
|
23
|
+
exports.getRandomIntegerAsString = getRandomIntegerAsString;
|
24
|
+
function getRandomBigInt(min, max) {
|
25
|
+
return BigInt(getRandomInteger(min, max));
|
26
|
+
}
|
27
|
+
exports.getRandomBigInt = getRandomBigInt;
|
28
|
+
function randomBoolean() {
|
29
|
+
return Math.random() < 0.5;
|
30
|
+
}
|
31
|
+
exports.randomBoolean = randomBoolean;
|
32
|
+
/**
|
33
|
+
* Returns a new copy of an array, shuffled using Math.random()
|
34
|
+
* @param array Array
|
35
|
+
*/
|
36
|
+
function shuffle(array) {
|
37
|
+
// pretty fast way to copy an array, not necessarily the fastest
|
38
|
+
const newArray = array.slice(0);
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
40
|
+
newArray.sort((x) => 0.5 - Math.random());
|
41
|
+
return newArray;
|
42
|
+
}
|
43
|
+
exports.shuffle = shuffle;
|
44
|
+
//# sourceMappingURL=testutils.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"testutils.js","sourceRoot":"","sources":["../../src/test/testutils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,YAAY;IACxB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAFD,oCAEC;AAED,SAAgB,eAAe,CAAC,GAAW,EAAG,GAAW;IACrD,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AAC7C,CAAC;AAFD,0CAEC;AAED,SAAgB,uBAAuB,CAAC,GAAW,EAAG,GAAW;IAC7D,OAAO,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;AAChD,CAAC;AAFD,0DAEC;AAED,SAAgB,gBAAgB,CAAC,GAAW,EAAG,GAAW;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACjD,CAAC;AAFD,4CAEC;AAED,SAAgB,wBAAwB,CAAC,GAAW,EAAG,GAAW;IAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC7D,CAAC;AAFD,4DAEC;AAED,SAAgB,eAAe,CAAC,GAAW,EAAG,GAAW;IACrD,OAAO,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC9C,CAAC;AAFD,0CAEC;AAED,SAAgB,aAAa;IACzB,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;AAC/B,CAAC;AAFD,sCAEC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAI,KAAU;IACjC,gEAAgE;IAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChC,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,OAAO,QAAQ,CAAC;AACpB,CAAC;AAND,0BAMC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"either.js","sourceRoot":"","sources":["../../src/types/either.ts"],"names":[],"mappings":""}
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"input-error.js","sourceRoot":"","sources":["../../src/types/input-error.ts"],"names":[],"mappings":";;;AAAA,MAAa,UAAW,SAAQ,KAAK;CACpC;AADD,gCACC"}
|
File without changes
|
@@ -0,0 +1,10 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.Language = void 0;
|
4
|
+
var Language;
|
5
|
+
(function (Language) {
|
6
|
+
Language["FI"] = "fi";
|
7
|
+
Language["EN"] = "en";
|
8
|
+
Language["SV"] = "sv";
|
9
|
+
})(Language = exports.Language || (exports.Language = {}));
|
10
|
+
//# sourceMappingURL=language.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"language.js","sourceRoot":"","sources":["../../src/types/language.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAEX;AAFD,WAAY,QAAQ;IAChB,qBAAS,CAAA;IAAE,qBAAS,CAAA;IAAE,qBAAS,CAAA;AACnC,CAAC,EAFW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAEnB"}
|
File without changes
|
@@ -0,0 +1,13 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.TrafficType = void 0;
|
4
|
+
var TrafficType;
|
5
|
+
(function (TrafficType) {
|
6
|
+
TrafficType["ROAD"] = "Road";
|
7
|
+
TrafficType["MARINE"] = "Marine";
|
8
|
+
TrafficType["RAIL"] = "Rail";
|
9
|
+
TrafficType["AVIATION"] = "Aviation";
|
10
|
+
TrafficType["MCP"] = "MCP";
|
11
|
+
TrafficType["OTHER"] = "Other";
|
12
|
+
})(TrafficType = exports.TrafficType || (exports.TrafficType = {}));
|
13
|
+
//# sourceMappingURL=traffictype.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"traffictype.js","sourceRoot":"","sources":["../../src/types/traffictype.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAOX;AAPD,WAAY,WAAW;IACnB,4BAAa,CAAA;IACb,gCAAiB,CAAA;IACjB,4BAAa,CAAA;IACb,oCAAqB,CAAA;IACrB,0BAAW,CAAA;IACX,8BAAe,CAAA;AACnB,CAAC,EAPW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAOtB"}
|
File without changes
|