@digitraffic/common 2022.11.22-1 → 2022.11.23-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/dist/aws/infra/api/integration.d.ts +21 -0
  2. package/dist/aws/infra/api/integration.js +8 -4
  3. package/dist/aws/infra/api/integration.js.map +1 -0
  4. package/dist/aws/infra/api/response.d.ts +29 -0
  5. package/dist/aws/infra/api/response.js +36 -11
  6. package/dist/aws/infra/api/response.js.map +1 -0
  7. package/dist/aws/infra/api/responses.d.ts +47 -0
  8. package/dist/aws/infra/api/responses.js +8 -0
  9. package/dist/aws/infra/api/responses.js.map +1 -0
  10. package/dist/aws/infra/api/static-integration.d.ts +15 -0
  11. package/dist/aws/infra/api/static-integration.js.map +1 -0
  12. package/dist/aws/infra/canaries/canary-alarm.d.ts +6 -0
  13. package/dist/aws/infra/canaries/canary-alarm.js.map +1 -0
  14. package/dist/aws/infra/canaries/canary-keys.d.ts +3 -0
  15. package/dist/aws/infra/canaries/canary-keys.js.map +1 -0
  16. package/dist/aws/infra/canaries/canary-parameters.d.ts +18 -0
  17. package/dist/aws/infra/canaries/canary-parameters.js.map +1 -0
  18. package/dist/aws/infra/canaries/canary-role.d.ts +6 -0
  19. package/dist/aws/infra/canaries/canary-role.js.map +1 -0
  20. package/dist/aws/infra/canaries/canary.d.ts +8 -0
  21. package/dist/aws/infra/canaries/canary.js.map +1 -0
  22. package/dist/aws/infra/canaries/database-canary.d.ts +18 -0
  23. package/dist/aws/infra/canaries/database-canary.js.map +1 -0
  24. package/dist/aws/infra/canaries/database-checker.d.ts +33 -0
  25. package/dist/aws/infra/canaries/database-checker.js.map +1 -0
  26. package/dist/aws/infra/canaries/url-canary.d.ts +16 -0
  27. package/dist/aws/infra/canaries/url-canary.js.map +1 -0
  28. package/dist/aws/infra/canaries/url-checker.d.ts +46 -0
  29. package/dist/aws/infra/canaries/url-checker.js.map +1 -0
  30. package/dist/aws/infra/documentation.d.ts +56 -0
  31. package/dist/aws/infra/documentation.js.map +1 -0
  32. package/dist/aws/infra/import-util.d.ts +21 -0
  33. package/dist/aws/infra/import-util.js.map +1 -0
  34. package/dist/aws/infra/scheduler.d.ts +12 -0
  35. package/dist/aws/infra/scheduler.js.map +1 -0
  36. package/dist/aws/infra/security-rule.d.ts +12 -0
  37. package/dist/aws/infra/security-rule.js.map +1 -0
  38. package/dist/aws/infra/sqs-integration.d.ts +7 -0
  39. package/dist/aws/infra/sqs-integration.js.map +1 -0
  40. package/dist/aws/infra/sqs-queue.d.ts +16 -0
  41. package/dist/aws/infra/sqs-queue.js.map +1 -0
  42. package/dist/aws/infra/stack/lambda-configs.d.ts +64 -0
  43. package/dist/aws/infra/stack/lambda-configs.js.map +1 -0
  44. package/dist/aws/infra/stack/monitoredfunction.d.ts +84 -0
  45. package/dist/aws/infra/stack/monitoredfunction.js +31 -31
  46. package/dist/aws/infra/stack/monitoredfunction.js.map +1 -0
  47. package/dist/aws/infra/stack/rest_apis.d.ts +41 -0
  48. package/dist/aws/infra/stack/rest_apis.js.map +1 -0
  49. package/dist/aws/infra/stack/stack-checking-aspect.d.ts +21 -0
  50. package/dist/aws/infra/stack/stack-checking-aspect.js.map +1 -0
  51. package/dist/aws/infra/stack/stack.d.ts +45 -0
  52. package/dist/aws/infra/stack/stack.js.map +1 -0
  53. package/dist/aws/infra/stack/subscription.d.ts +17 -0
  54. package/dist/aws/infra/stack/subscription.js.map +1 -0
  55. package/dist/aws/infra/stacks/db-dns-stack.d.ts +11 -0
  56. package/dist/aws/infra/stacks/db-dns-stack.js.map +1 -0
  57. package/dist/aws/infra/stacks/db-proxy-stack.d.ts +19 -0
  58. package/dist/aws/infra/stacks/db-proxy-stack.js.map +1 -0
  59. package/dist/aws/infra/stacks/db-stack.d.ts +31 -0
  60. package/dist/aws/infra/stacks/db-stack.js.map +1 -0
  61. package/dist/aws/infra/stacks/intra-stack-configuration.d.ts +5 -0
  62. package/dist/aws/infra/stacks/intra-stack-configuration.js.map +1 -0
  63. package/dist/aws/infra/stacks/network-stack.d.ts +12 -0
  64. package/dist/aws/infra/stacks/network-stack.js.map +1 -0
  65. package/dist/aws/infra/usage-plans.d.ts +16 -0
  66. package/dist/aws/infra/usage-plans.js.map +1 -0
  67. package/dist/aws/runtime/apikey.d.ts +2 -0
  68. package/dist/aws/runtime/apikey.js.map +1 -0
  69. package/dist/aws/runtime/digitraffic-integration-response.d.ts +8 -0
  70. package/dist/aws/runtime/digitraffic-integration-response.js.map +1 -0
  71. package/dist/aws/runtime/environment.d.ts +1 -0
  72. package/dist/aws/runtime/environment.js.map +1 -0
  73. package/dist/aws/runtime/messaging.d.ts +10 -0
  74. package/dist/aws/runtime/messaging.js.map +1 -0
  75. package/dist/aws/runtime/s3.d.ts +2 -0
  76. package/dist/aws/runtime/s3.js.map +1 -0
  77. package/dist/aws/runtime/secrets/dbsecret.d.ts +54 -0
  78. package/dist/aws/runtime/secrets/dbsecret.js +4 -4
  79. package/dist/aws/runtime/secrets/dbsecret.js.map +1 -0
  80. package/dist/aws/runtime/secrets/proxy-holder.d.ts +9 -0
  81. package/dist/aws/runtime/secrets/proxy-holder.js.map +1 -0
  82. package/dist/aws/runtime/secrets/rds-holder.d.ts +9 -0
  83. package/dist/aws/runtime/secrets/rds-holder.js.map +1 -0
  84. package/dist/aws/runtime/secrets/secret-holder.d.ts +26 -0
  85. package/dist/aws/runtime/secrets/secret-holder.js.map +1 -0
  86. package/dist/aws/runtime/secrets/secret.d.ts +8 -0
  87. package/dist/aws/runtime/secrets/secret.js.map +1 -0
  88. package/dist/aws/types/errors.d.ts +8 -0
  89. package/dist/aws/types/errors.js.map +1 -0
  90. package/dist/aws/types/lambda-response.d.ts +13 -0
  91. package/dist/aws/types/lambda-response.js.map +1 -0
  92. package/dist/aws/types/mediatypes.d.ts +11 -0
  93. package/dist/aws/types/mediatypes.js.map +1 -0
  94. package/dist/aws/types/model-with-reference.d.ts +7 -0
  95. package/dist/aws/types/model-with-reference.js.map +1 -0
  96. package/dist/aws/types/proxytypes.d.ts +26 -0
  97. package/dist/aws/types/proxytypes.js.map +1 -0
  98. package/dist/aws/types/tags.d.ts +2 -0
  99. package/dist/aws/types/tags.js.map +1 -0
  100. package/dist/database/cached.d.ts +7 -0
  101. package/dist/database/cached.js.map +1 -0
  102. package/dist/database/database.d.ts +19 -0
  103. package/dist/database/database.js.map +1 -0
  104. package/dist/database/last-updated.d.ts +16 -0
  105. package/dist/database/last-updated.js.map +1 -0
  106. package/dist/database/models.d.ts +6 -0
  107. package/dist/database/models.js.map +1 -0
  108. package/dist/marine/id_utils.d.ts +3 -0
  109. package/dist/marine/id_utils.js.map +1 -0
  110. package/dist/marine/rtz.d.ts +48 -0
  111. package/dist/marine/rtz.js.map +1 -0
  112. package/dist/test/asserter.d.ts +11 -0
  113. package/dist/test/asserter.js.map +1 -0
  114. package/dist/test/db-testutils.d.ts +3 -0
  115. package/dist/test/db-testutils.js.map +1 -0
  116. package/dist/test/httpserver.d.ts +19 -0
  117. package/dist/test/httpserver.js.map +1 -0
  118. package/dist/test/secret.d.ts +3 -0
  119. package/dist/test/secret.js.map +1 -0
  120. package/dist/test/secrets-manager.d.ts +9 -0
  121. package/dist/test/secrets-manager.js.map +1 -0
  122. package/dist/test/testutils.d.ts +12 -0
  123. package/dist/test/testutils.js.map +1 -0
  124. package/dist/types/either.d.ts +9 -0
  125. package/dist/types/either.js.map +1 -0
  126. package/dist/types/input-error.d.ts +2 -0
  127. package/dist/types/input-error.js.map +1 -0
  128. package/dist/types/language.d.ts +5 -0
  129. package/dist/types/language.js.map +1 -0
  130. package/dist/types/traffictype.d.ts +8 -0
  131. package/dist/types/traffictype.js.map +1 -0
  132. package/dist/types/validator.d.ts +4 -0
  133. package/dist/types/validator.js.map +1 -0
  134. package/dist/utils/api-model.d.ts +87 -0
  135. package/dist/utils/api-model.js.map +1 -0
  136. package/dist/utils/base64.d.ts +12 -0
  137. package/dist/utils/base64.js.map +1 -0
  138. package/dist/utils/date-utils.d.ts +17 -0
  139. package/dist/utils/date-utils.js.map +1 -0
  140. package/dist/utils/geojson-types.d.ts +14 -0
  141. package/dist/utils/geojson-types.js.map +1 -0
  142. package/dist/utils/geometry.d.ts +36 -0
  143. package/dist/utils/geometry.js.map +1 -0
  144. package/dist/utils/retry.d.ts +13 -0
  145. package/dist/utils/retry.js.map +1 -0
  146. package/dist/utils/slack.d.ts +5 -0
  147. package/dist/utils/slack.js.map +1 -0
  148. package/dist/utils/utils.d.ts +46 -0
  149. package/dist/utils/utils.js.map +1 -0
  150. package/package.json +19 -29
  151. package/src/aws/infra/api/integration.ts +30 -14
  152. package/src/aws/infra/api/response.ts +83 -20
  153. package/src/aws/infra/api/responses.ts +8 -0
  154. package/src/aws/runtime/secrets/dbsecret.ts +23 -54
  155. package/src/aws/runtime/secrets/secret-holder.ts +6 -3
  156. package/src/database/database.ts +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-plans.js","sourceRoot":"","sources":["../../../src/aws/infra/usage-plans.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACH,SAAgB,eAAe,CAC3B,GAAY,EACZ,QAAgB,EAChB,UAAkB;IAElB,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,UAAU,EAAE;QACtC,IAAI,EAAE,UAAU;KACnB,CAAC,CAAC;IACH,IAAI,CAAC,WAAW,CAAC;QACb,KAAK,EAAE,GAAG,CAAC,eAAe;KAC7B,CAAC,CAAC;IACH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEvB,OAAO,MAAM,CAAC;AAClB,CAAC;AAfD,0CAeC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CAClC,GAAY,EACZ,OAAe,EACf,KAAc;IAEd,MAAM,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC;IACxC,MAAM,aAAa,GAAG,OAAO,GAAG,iBAAiB,CAAC;IAClD,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE;QACzC,IAAI,EAAE,aAAa;KACtB,CAAC,CAAC;IACH,IAAI,CAAC,WAAW,CAAC;QACb,KAAK,EAAE,GAAG,CAAC,eAAe;KAC7B,CAAC,CAAC;IACH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEvB,OAAO,MAAM,CAAC;AAClB,CAAC;AAjBD,wDAiBC"}
@@ -0,0 +1,2 @@
1
+ import { APIGateway } from "aws-sdk";
2
+ export declare function getApiKeyFromAPIGateway(keyId: string): Promise<APIGateway.Types.ApiKey>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apikey.js","sourceRoot":"","sources":["../../../src/aws/runtime/apikey.ts"],"names":[],"mappings":";;;AAAA,qCAAmC;AAEnC,SAAgB,uBAAuB,CAAC,KAAa;IACjD,MAAM,GAAG,GAAG,IAAI,oBAAU,EAAE,CAAC;IAC7B,OAAO,GAAG,CAAC,SAAS,CAAC;QACjB,MAAM,EAAE,KAAK;QACb,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC,OAAO,EAAE,CAAC;AACjB,CAAC;AAND,0DAMC"}
@@ -0,0 +1,8 @@
1
+ import { IntegrationResponse } from "aws-cdk-lib/aws-apigateway";
2
+ import { MediaType } from "../types/mediatypes";
3
+ export declare abstract class DigitrafficIntegrationResponse {
4
+ static ok(mediaType: MediaType): IntegrationResponse;
5
+ static badRequest(mediaType?: MediaType): IntegrationResponse;
6
+ static notImplemented(mediaType?: MediaType): IntegrationResponse;
7
+ static create(statusCode: string, mediaType: MediaType): IntegrationResponse;
8
+ }
@@ -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"}
@@ -0,0 +1 @@
1
+ export declare function envValue(key: string, defaultValue?: string): string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/aws/runtime/environment.ts"],"names":[],"mappings":";;;AAAA,SAAgB,QAAQ,CAAC,GAAW,EAAE,YAAqB;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE/B,IAAI,KAAK,IAAI,IAAI,EAAE;QACf,IAAI,YAAY,EAAE;YACd,OAAO,YAAY,CAAC;SACvB;QAED,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;KACvD;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAZD,4BAYC"}
@@ -0,0 +1,10 @@
1
+ import { SNS } from "aws-sdk";
2
+ /**
3
+ * Utility function for publishing SNS messages.
4
+ * Made because using *await* with AWS APIs doesn't require calling promise() but nothing works if it isn't called.
5
+ * Retries a single time in case of failure.
6
+ * @param message
7
+ * @param topicArn
8
+ * @param sns
9
+ */
10
+ export declare function snsPublish(message: string, topicArn: string, sns: SNS): Promise<void>;
@@ -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"}
@@ -0,0 +1,2 @@
1
+ import { S3 } from "aws-sdk";
2
+ export declare function uploadToS3<Body extends S3.Body | undefined>(bucketName: string, body: Body, objectName: string, cannedAcl?: string, contentType?: string): Promise<void>;
@@ -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"}
@@ -0,0 +1,54 @@
1
+ export declare type DbSecret = {
2
+ readonly username: string;
3
+ readonly password: string;
4
+ readonly host: string;
5
+ readonly ro_host: string;
6
+ };
7
+ export declare enum RdsProxySecretKey {
8
+ username = "username",
9
+ password = "password",
10
+ proxy_host = "proxy_host",
11
+ proxy_ro_host = "proxy_ro_host"
12
+ }
13
+ export declare enum RdsSecretKey {
14
+ username = "username",
15
+ password = "password",
16
+ host = "host",
17
+ ro_host = "ro_host"
18
+ }
19
+ export declare type RdsProxySecret = Record<RdsProxySecretKey, string>;
20
+ export declare type RdsSecret = Record<RdsSecretKey, string>;
21
+ export declare enum DatabaseEnvironmentKeys {
22
+ DB_USER = "DB_USER",
23
+ DB_PASS = "DB_PASS",
24
+ DB_URI = "DB_URI",
25
+ DB_RO_URI = "DB_RO_URI",
26
+ DB_APPLICATION = "DB_APPLICATION"
27
+ }
28
+ /**
29
+ * You can give the following options for retrieving a secret:
30
+ *
31
+ * expectedKeys: the list of keys the secret must include. If not, an error will be thrown.
32
+ * prefix: a prefix that's included in retrieved secret's keys. Only keys begining with the prefix will be included.
33
+ * The secret that is passed to the given function will not include the prefix in it's keys.
34
+
35
+ */
36
+ export declare type SecretOptions = {
37
+ readonly expectedKeys?: string[];
38
+ readonly prefix?: string;
39
+ };
40
+ export declare type SecretToPromiseFunction<Secret, Response = void> = (secret: Secret) => Promise<Response> | void;
41
+ export declare type SecretFunction<Secret, Response = void> = (secretId: string, fn: SecretToPromiseFunction<Secret, Response>, options?: SecretOptions) => Promise<Response | void>;
42
+ export declare type EmptySecretFunction<Response = void> = SecretFunction<DbSecret, Response>;
43
+ /**
44
+ * Run the given function with secret retrieved from Secrets Manager. Also injects database-credentials into environment.
45
+ *
46
+ * @deprecated use SecretHolder & ProxyHolder
47
+ * @see SecretOptions
48
+ *
49
+ * @param {string} secretId
50
+ * @param {function} fn
51
+ * @param {SecretOptions} options
52
+ */
53
+ export declare function withDbSecret<Secret, Response>(secretId: string, fn: SecretToPromiseFunction<Secret, Response>, options?: SecretOptions): Promise<Response | void>;
54
+ export declare function checkExpectedSecretKeys<Secret>(keys: string[], secret: Secret): void;
@@ -33,7 +33,7 @@ function setDbSecret(secret) {
33
33
  // cached at Lambda container level
34
34
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
35
35
  let cachedSecret;
36
- const missingSecretErrorText = "Missing or empty secretId";
36
+ const missingSecretErrorText = 'Missing or empty secretId';
37
37
  /**
38
38
  * Run the given function with secret retrieved from Secrets Manager. Also injects database-credentials into environment.
39
39
  *
@@ -75,7 +75,7 @@ async function withDbSecret(secretId, fn, options) {
75
75
  return fn(cachedSecret);
76
76
  }
77
77
  catch (error) {
78
- console.error("method=withDbSecret Caught an error, refreshing secret", error);
78
+ console.error('method=withDbSecret Caught an error, refreshing secret', error);
79
79
  // try to refetch secret in case it has changed
80
80
  await (0, secret_1.withSecret)(secretId, (fetchedSecret) => {
81
81
  setDbSecret(fetchedSecret);
@@ -86,10 +86,10 @@ async function withDbSecret(secretId, fn, options) {
86
86
  }
87
87
  exports.withDbSecret = withDbSecret;
88
88
  function checkExpectedSecretKeys(keys, secret) {
89
- const missingKeys = keys.filter((key) => !(key in secret));
89
+ const missingKeys = keys.filter(key => !(key in secret));
90
90
  if (missingKeys.length) {
91
91
  console.error(`method=checkExpectedSecretKeys secret didn't contain the key(s) ${missingKeys}`);
92
- throw new Error("Expected keys were not found");
92
+ throw new Error('Expected keys were not found');
93
93
  }
94
94
  }
95
95
  exports.checkExpectedSecretKeys = checkExpectedSecretKeys;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dbsecret.js","sourceRoot":"","sources":["../../../../src/aws/runtime/secrets/dbsecret.ts"],"names":[],"mappings":";;;AAAA,qCAAyD;AASzD,IAAY,iBAEX;AAFD,WAAY,iBAAiB;IACzB,0CAAqB,CAAA;IAAE,0CAAqB,CAAA;IAAE,8CAAyB,CAAA;IAAE,oDAA+B,CAAA;AAC5G,CAAC,EAFW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAE5B;AAED,IAAY,YAEX;AAFD,WAAY,YAAY;IACpB,qCAAqB,CAAA;IAAE,qCAAqB,CAAA;IAAE,6BAAa,CAAA;IAAE,mCAAmB,CAAA;AACpF,CAAC,EAFW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAEvB;AAKD,IAAY,uBAMX;AAND,WAAY,uBAAuB;IAC/B,8CAAmB,CAAA;IACnB,8CAAmB,CAAA;IACnB,4CAAiB,CAAA;IACjB,kDAAuB,CAAA;IACvB,4DAAiC,CAAA;AACrC,CAAC,EANW,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAMlC;AAED,SAAS,WAAW,CAAC,MAAgB;IACjC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;AACpE,CAAC;AAED,mCAAmC;AACnC,8DAA8D;AAC9D,IAAI,YAAiB,CAAC;AAEtB,MAAM,sBAAsB,GAAG,2BAA2B,CAAC;AAmB3D;;;;;;;;;GASG;AACI,KAAK,UAAU,YAAY,CAAmB,QAAgB,EAAE,EAA6C,EAAE,OAAuB;IACzI,IAAI,CAAC,QAAQ,EAAE;QACX,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;KACjD;IAED,IAAI,CAAC,YAAY,EAAE;QACf,gEAAgE;QAChE,IAAI,OAAO,EAAE,MAAM,EAAE;YACjB,sBAAsB;YACtB,MAAM,IAAA,mBAAU,EAAC,QAAQ,EAAE,CAAC,aAAuB,EAAE,EAAE;gBACnD,WAAW,CAAC,aAAa,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,qBAAqB;YACrB,MAAM,IAAA,4BAAmB,EAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,aAAqB,EAAE,EAAE;gBAC1E,YAAY,GAAG,aAAa,CAAC;YACjC,CAAC,CAAC,CAAC;SACN;aAAM;YACH,MAAM,IAAA,mBAAU,EAAC,QAAQ,EAAE,CAAC,aAAuB,EAAE,EAAE;gBACnD,WAAW,CAAC,aAAa,CAAC,CAAC;gBAC3B,YAAY,GAAG,aAAa,CAAC;YACjC,CAAC,CAAC,CAAC;SACN;KACJ;IACD,IAAI;QACA,IAAI,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE;YAC/B,uBAAuB,CAAC,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;SAC/D;QACD,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC;KAC3B;IAAC,OAAO,KAAK,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,wDAAwD,EAAE,KAAK,CAAC,CAAC;QAC/E,+CAA+C;QAC/C,MAAM,IAAA,mBAAU,EAAC,QAAQ,EAAE,CAAC,aAAuB,EAAE,EAAE;YACnD,WAAW,CAAC,aAAa,CAAC,CAAC;YAC3B,YAAY,GAAG,aAAa,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC;KAC3B;AACL,CAAC;AAvCD,oCAuCC;AAED,SAAgB,uBAAuB,CAAS,IAAc,EAAE,MAAc;IAC1E,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC;IACzD,IAAI,WAAW,CAAC,MAAM,EAAE;QACpB,OAAO,CAAC,KAAK,CAAC,mEAAmE,WAAW,EAAE,CAAC,CAAC;QAChG,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;KACnD;AACL,CAAC;AAND,0DAMC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Holds credentials for RDS Proxy access.
3
+ */
4
+ export declare class ProxyHolder {
5
+ private readonly secretHolder;
6
+ constructor(secretId: string);
7
+ static create(): ProxyHolder;
8
+ setCredentials(): Promise<void>;
9
+ }
@@ -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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Holds credentials for RDS access.
3
+ */
4
+ export declare class RdsHolder {
5
+ private readonly secretHolder;
6
+ constructor(secretId: string);
7
+ static create(): RdsHolder;
8
+ setCredentials(): Promise<void>;
9
+ }
@@ -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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Utility class for getting secrets from Secret Manager.
3
+ * Supports prefix for secrets, checking of expected keys and ttl-configuration.
4
+ *
5
+ * By default, secrets are cached for 5 minutes and then reread from the Secrets Manager(This can be overridden with configuration).
6
+ *
7
+ * Supports setting the database environment paramaters from the secret too.
8
+ */
9
+ export declare class SecretHolder<Secret> {
10
+ private readonly secretId;
11
+ private readonly prefix;
12
+ private readonly expectedKeys;
13
+ private readonly secretCache;
14
+ constructor(secretId: string, prefix?: string, expectedKeys?: string[], configuration?: {
15
+ ttl: number;
16
+ });
17
+ private initSecret;
18
+ static create<S>(prefix?: string, expectedKeys?: string[]): SecretHolder<S>;
19
+ get(): Promise<Secret>;
20
+ private parseSecret;
21
+ private getSecret;
22
+ /**
23
+ * @deprecated Use ProxyHolder
24
+ */
25
+ setDatabaseCredentials(): Promise<void>;
26
+ }
@@ -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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"}
@@ -0,0 +1,8 @@
1
+ import { SecretToPromiseFunction } from "./dbsecret";
2
+ export declare type GenericSecret = Record<string, string>;
3
+ /**
4
+ @deprecated use SecretHolder & ProxyHolder
5
+ */
6
+ export declare function withSecret<Secret, Response>(secretId: string, fn: SecretToPromiseFunction<Secret, Response>): Promise<Response | void>;
7
+ export declare function getSecret<Secret>(secretId: string, prefix?: string): Promise<Secret>;
8
+ export declare function withSecretAndPrefix<Secret, Response>(secretId: string, prefix: string, fn: SecretToPromiseFunction<Secret, Response>): Promise<Response | void>;
@@ -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"}
@@ -0,0 +1,8 @@
1
+ export declare const NOT_FOUND_MESSAGE = "NOT_FOUND";
2
+ export declare const ERROR_MESSAGE = "ERROR";
3
+ export declare const OK_MESSAGE = "OK";
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 @@
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"}
@@ -0,0 +1,13 @@
1
+ export declare class LambdaResponse<T> {
2
+ readonly status: number;
3
+ readonly body: T;
4
+ readonly fileName?: string;
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>>;
8
+ static badRequest(body: string): Promise<LambdaResponse<string>>;
9
+ static notFound(): Promise<LambdaResponse<string>>;
10
+ static internalError(): Promise<LambdaResponse<string>>;
11
+ static notImplemented(): Promise<LambdaResponse<string>>;
12
+ static create<T>(status: number, body: T, fileName?: string): Promise<LambdaResponse<T>>;
13
+ }
@@ -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,11 @@
1
+ export declare enum MediaType {
2
+ APPLICATION_JSON = "application/json",
3
+ APPLICATION_XML = "application/xml",
4
+ APPLICATION_GEOJSON = "application/geo+json;charset=UTF-8",
5
+ IMAGE_SVG = "image/svg+xml",
6
+ IMAGE_JPEG = "image/jpeg",
7
+ TEXT_PLAIN = "text/plain",
8
+ TEXT_HTML = "text/html",
9
+ TEXT_CSV = "text/csv",
10
+ APPLICATION_JSON_UTF8 = "application/json;charset=UTF-8"
11
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediatypes.js","sourceRoot":"","sources":["../../../src/aws/types/mediatypes.ts"],"names":[],"mappings":";;;AAAA,yEAAyE;AACzE,IAAY,SAUX;AAVD,WAAY,SAAS;IACjB,kDAAqC,CAAA;IACrC,gDAAmC,CAAA;IACnC,uEAA0D,CAAA;IAC1D,wCAA2B,CAAA;IAC3B,sCAAyB,CAAA;IACzB,sCAAyB,CAAA;IACzB,oCAAuB,CAAA;IACvB,kCAAqB,CAAA;IACrB,qEAAwD,CAAA;AAC5D,CAAC,EAVW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAUpB"}
@@ -0,0 +1,7 @@
1
+ import { Model } from "aws-cdk-lib/aws-apigateway";
2
+ /**
3
+ * Model object with a reference to an API Gateway model object.
4
+ */
5
+ export interface ModelWithReference extends Model {
6
+ modelReference: string;
7
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-with-reference.js","sourceRoot":"","sources":["../../../src/aws/types/model-with-reference.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-output-format
3
+ *
4
+ * Not fully described, extend if necessary.
5
+ */
6
+ export declare type ProxyLambdaResponse = {
7
+ readonly statusCode: number;
8
+ readonly body: string;
9
+ readonly headers?: Record<string, string>;
10
+ readonly multiValueHeaders?: Record<string, string[]>;
11
+ };
12
+ /**
13
+ * https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-input-format
14
+ *
15
+ * Not fully described, extend if necessary.
16
+ */
17
+ export declare type ProxyLambdaRequest = {
18
+ readonly resource: string;
19
+ readonly path: string;
20
+ readonly httpMethod: string;
21
+ readonly headers: Record<string, string>;
22
+ readonly multiValueHeaders: Record<string, string[]>;
23
+ readonly queryStringParameters: Record<string, string>;
24
+ readonly multiValueQueryStringParameters: Record<string, string[]>;
25
+ readonly body?: string;
26
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxytypes.js","sourceRoot":"","sources":["../../../src/aws/types/proxytypes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare const BETA_TAGS: string[];
2
+ export declare const DATA_V1_TAGS: string[];
@@ -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"}
@@ -0,0 +1,7 @@
1
+ import { DTDatabase, DTTransaction } from "./database";
2
+ export declare enum JSON_CACHE_KEY {
3
+ NAUTICAL_WARNINGS_ACTIVE = "nautical-warnings-active",
4
+ NAUTICAL_WARNINGS_ARCHIVED = "nautical-warnings-archived"
5
+ }
6
+ export declare function updateCachedJson<T>(db: DTDatabase | DTTransaction, cacheKey: JSON_CACHE_KEY, value: T): Promise<null>;
7
+ export declare function getJsonFromCache<T>(db: DTDatabase | DTTransaction, cacheKey: JSON_CACHE_KEY): Promise<T | null>;
@@ -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"}
@@ -0,0 +1,19 @@
1
+ import { IDatabase, ITask } from "pg-promise";
2
+ export declare type DTDatabase = IDatabase<unknown>;
3
+ export declare type DTTransaction = ITask<unknown>;
4
+ /**
5
+ * Creates a non-pooling database connection primarily used by Lambdas.
6
+ *
7
+ * Note! Using this method opens a new RDS connection on every invocation. It is advised to
8
+ * use RDS proxy to pool connections transparently.
9
+ * https://docs.amazonaws.cn/en_us/AmazonRDS/latest/AuroraUserGuide/rds-proxy.html
10
+ * @param username Username
11
+ * @param password Password
12
+ * @param applicationName name of application
13
+ * @param url Connection URL
14
+ * @param options pg-promise options
15
+ */
16
+ export declare function initDbConnection(username: string, password: string, applicationName: string, url: string, options?: object): DTDatabase;
17
+ export declare function inTransaction<T>(fn: (db: DTTransaction) => Promise<T>): Promise<T>;
18
+ export declare function inDatabase<T>(fn: (db: DTDatabase) => Promise<T>): Promise<T>;
19
+ export declare function inDatabaseReadonly<T>(fn: (db: DTDatabase) => Promise<T>): Promise<T>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/database/database.ts"],"names":[],"mappings":";;;AACA,8DAA0E;AAC1E,0CAAgD;AAChD,4DAAsD;AAEtD,8DAA8D;AAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;AAEpC,oDAAoD;AACpD,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAa,EAAE,EAAE;IACrE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEH,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;IACvE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAa,EAAE,EAAE;IACxE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAMH;;;;;;;;;;;GAWG;AACH,SAAgB,gBAAgB,CAC5B,QAAgB,EAChB,QAAgB,EAChB,eAAuB,EACvB,GAAW,EACX,OAAgB;IAEhB,MAAM,QAAQ,GAAG,gBAAgB,QAAQ,IAAI,QAAQ,IAAI,GAAG,qBAAqB,eAAe,EAAE,CAAC;IAEnG,OAAO,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC;AAVD,4CAUC;AAED,SAAgB,aAAa,CACzB,EAAqC;IAErC,OAAO,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAgB,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAJD,sCAIC;AAED,SAAgB,UAAU,CAAI,EAAkC;IAC5D,OAAO,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACnC,CAAC;AAFD,gCAEC;AAED,SAAgB,kBAAkB,CAC9B,EAAkC;IAElC,OAAO,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC;AAJD,gDAIC;AAED,KAAK,UAAU,YAAY,CACvB,QAAiB,EACjB,EAAkC;IAElC,MAAM,cAAc,GAAG,IAAA,sBAAQ,EAC3B,kCAAuB,CAAC,cAAc,EACtC,yBAAyB,CAC5B,CAAC;IACF,MAAM,MAAM,GAAG,QAAQ;QACnB,CAAC,CAAC,IAAA,sBAAQ,EAAC,kCAAuB,CAAC,SAAS,CAAC;QAC7C,CAAC,CAAC,IAAA,sBAAQ,EAAC,kCAAuB,CAAC,MAAM,CAAC,CAAC;IAE/C,MAAM,EAAE,GAAG,gBAAgB,CACvB,IAAA,sBAAc,EAAC,kCAAuB,CAAC,OAAO,CAAC,EAC/C,IAAA,sBAAc,EAAC,kCAAuB,CAAC,OAAO,CAAC,EAC/C,cAAc,EACd,MAAM,CACT,CAAC;IACF,IAAI;QACA,qEAAqE;QACrE,kFAAkF;QAClF,MAAM,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7B,OAAO,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;KACvB;IAAC,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,CAAC;KACX;YAAS;QACN,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;KAClB;AACL,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { DTDatabase, DTTransaction } from "./database";
2
+ export declare enum DataType {
3
+ VS_DATEX2 = "VS_DATEX2",
4
+ COUNTING_SITES_DATA = "COUNTING_SITES_DATA",
5
+ COUNTING_SITES_METADATA = "COUNTING_SITES_METADATA",
6
+ COUNTING_SITES_METADATA_CHECK = "COUNTING_SITES_METADATA_CHECK",
7
+ MAINTENANCE_TRACKING_DATA_CHECKED = "MAINTENANCE_TRACKING_DATA_CHECKED",
8
+ PERMIT_DATA = "PERMIT_DATA",
9
+ PERMIT_DATA_CHECK = "PERMIT_DATA_CHECK"
10
+ }
11
+ export declare function getLastUpdated(db: DTDatabase, datatype: DataType): Promise<Date | null>;
12
+ export declare function getLastUpdatedWithSubtype(db: DTDatabase, datatype: DataType, subtype: string): Promise<Date | null>;
13
+ export declare function updateLastUpdated(db: DTDatabase | DTTransaction, datatype: DataType, updated: Date): Promise<null>;
14
+ export declare function updateLastUpdatedWithSubtype(db: DTDatabase | DTTransaction, datatype: DataType, subtype: string, updated: Date): Promise<null>;
15
+ export declare function getUpdatedTimestamp(db: DTDatabase, datatype: string): Promise<Date | null>;
16
+ export declare function updateUpdatedTimestamp(db: DTDatabase | DTTransaction, datatype: string, date: Date, by?: string): Promise<null>;
@@ -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,6 @@
1
+ export interface Countable {
2
+ count: number;
3
+ }
4
+ export interface Identifiable<T> {
5
+ id: T;
6
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/database/models.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export declare function isValidIMO(imo: number): boolean;
2
+ export declare function isValidMMSI(mmsi: number): boolean;
3
+ export declare function isValidLOCODE(locode: string): boolean;
@@ -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"}
@@ -0,0 +1,48 @@
1
+ export declare type RtzPositionCoordinate = {
2
+ readonly $: {
3
+ readonly lat: number;
4
+ readonly lon: number;
5
+ };
6
+ };
7
+ export declare type RtzWaypointPosition = {
8
+ readonly position: RtzPositionCoordinate[];
9
+ };
10
+ export declare type RtzWaypoint = {
11
+ readonly waypoint: RtzWaypointPosition[];
12
+ };
13
+ export declare type RtzScheduleElement = {
14
+ readonly $: {
15
+ /**
16
+ * Date
17
+ */
18
+ readonly etd?: string;
19
+ /**
20
+ * Date
21
+ */
22
+ readonly eta?: string;
23
+ };
24
+ };
25
+ export declare type RtzSchedule = {
26
+ readonly scheduleElement: RtzScheduleElement[];
27
+ };
28
+ export declare type RtzScheduleWrapper = {
29
+ readonly manual?: RtzSchedule[];
30
+ readonly calculated?: RtzSchedule[];
31
+ };
32
+ export declare type RtzSchedules = {
33
+ readonly schedule: RtzScheduleWrapper[];
34
+ };
35
+ export declare type RtzRouteInfo = {
36
+ readonly $: {
37
+ readonly vesselMMSI: string;
38
+ readonly vesselIMO: string;
39
+ };
40
+ };
41
+ export declare type RtzRoute = {
42
+ readonly routeInfo: RtzRouteInfo[];
43
+ readonly waypoints: RtzWaypoint[];
44
+ readonly schedules: RtzSchedules[];
45
+ };
46
+ export declare type RtzVoyagePlan = {
47
+ readonly route: RtzRoute;
48
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rtz.js","sourceRoot":"","sources":["../../src/marine/rtz.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * A simple asserter-class for writing canaries without dependency to testing-libraries.
3
+ */
4
+ export declare abstract class Asserter {
5
+ static assertEquals<T>(value: T, expected: T): void;
6
+ static assertTrue<T>(value: T): void;
7
+ static assertLength<T>(data: T[], expected: number): void;
8
+ static assertLengthGreaterThan<T>(data: T[], expected: number): void;
9
+ static assertGreaterThan(value: number, expected: number): void;
10
+ static assertToBeCloseTo(value: number, expected: number, delta: number): void;
11
+ }
@@ -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"}
@@ -0,0 +1,3 @@
1
+ import { DTDatabase } from "../database/database";
2
+ export declare function assertCount(db: DTDatabase, sql: string, count: number): Promise<void>;
3
+ export declare function dbTestBase(fn: (db: DTDatabase) => void, truncateFn: (db: DTDatabase) => Promise<void>, dbUser: string, dbPass: string, dbUri: string): () => void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-testutils.js","sourceRoot":"","sources":["../../src/test/db-testutils.ts"],"names":[],"mappings":";;;AAAA,mDAAoE;AACpE,8DAA0E;AAGnE,KAAK,UAAU,WAAW,CAAC,EAAc,EAAE,GAAW,EAAE,KAAa;IACxE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAY,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7E,CAAC;AAFD,kCAEC;AAED,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"}
@@ -0,0 +1,19 @@
1
+ export declare const ERROR_NO_MATCH = "NO MATCH";
2
+ export declare const ERRORCODE_NOT_FOUND = 404;
3
+ /**
4
+ * A mock HTTP server created for testing connections from a Lambda to an outside integration
5
+ */
6
+ export declare class TestHttpServer {
7
+ private server?;
8
+ private debug;
9
+ private messageStack;
10
+ constructor();
11
+ getCallCount(): number;
12
+ getRequestBody(callNumber: number): string;
13
+ listen(port: number, props: ListenProperties, debug?: boolean, statusCode?: number): void;
14
+ close(): void;
15
+ private debuglog;
16
+ }
17
+ export interface ListenProperties {
18
+ [key: string]: (url?: string, data?: string) => string;
19
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpserver.js","sourceRoot":"","sources":["../../src/test/httpserver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { EmptySecretFunction, SecretFunction } from "../aws/runtime/secrets/dbsecret";
2
+ export declare function createSecretFunction<Secret, Response>(secret: Secret): SecretFunction<Secret, Response>;
3
+ export declare function createEmptySecretFunction<Response>(): EmptySecretFunction<Response>;
@@ -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"}
@@ -0,0 +1,9 @@
1
+ import * as sinon from "sinon";
2
+ /**
3
+ * Stub Secrets Manager for tests. You must call this
4
+ * before you instantiate Secrets Manager(this might happen when you import the function that uses Secrets Manager).
5
+ *
6
+ * To mock the actual secret, call mockSecret()
7
+ */
8
+ export declare function stubSecretsManager(): sinon.SinonStub<any[], any>;
9
+ export declare function mockSecret<Secret>(secret: Secret): void;
@@ -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"}
@@ -0,0 +1,12 @@
1
+ export declare function randomString(): string;
2
+ export declare function getRandomNumber(min: number, max: number): number;
3
+ export declare function getRandomNumberAsString(min: number, max: number): string;
4
+ export declare function getRandomInteger(min: number, max: number): number;
5
+ export declare function getRandomIntegerAsString(min: number, max: number): string;
6
+ export declare function getRandomBigInt(min: number, max: number): bigint;
7
+ export declare function randomBoolean(): boolean;
8
+ /**
9
+ * Returns a new copy of an array, shuffled using Math.random()
10
+ * @param array Array
11
+ */
12
+ export declare function shuffle<T>(array: T[]): T[];
@@ -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,9 @@
1
+ export declare type EitherOk<T> = {
2
+ result: "ok";
3
+ value: T;
4
+ };
5
+ export declare type EitherError = {
6
+ result: "error";
7
+ message: string;
8
+ };
9
+ export declare type Either<T> = EitherOk<T> | EitherError;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"either.js","sourceRoot":"","sources":["../../src/types/either.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare class InputError extends Error {
2
+ }
@@ -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"}