@digitraffic/common 2022.10.25-1 → 2022.10.31-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 (283) hide show
  1. package/.editorconfig +9 -0
  2. package/.eslintignore +4 -0
  3. package/.eslintrc.json +27 -0
  4. package/.github/CODEOWNERS +2 -0
  5. package/.github/workflows/build.yml +36 -0
  6. package/.github/workflows/eslint.yml +38 -0
  7. package/.github/workflows/mirror.yml +15 -0
  8. package/.gitignore +29 -0
  9. package/.husky/pre-commit +4 -0
  10. package/.prettierrc.json +10 -0
  11. package/dist/aws/infra/api/integration.js +52 -0
  12. package/dist/aws/infra/api/response.js +61 -0
  13. package/dist/aws/infra/api/responses.js +82 -0
  14. package/dist/aws/infra/api/static-integration.js +54 -0
  15. package/dist/aws/infra/canaries/canary-alarm.js +26 -0
  16. package/dist/aws/infra/canaries/canary-keys.js +7 -0
  17. package/dist/aws/infra/canaries/canary-parameters.js +3 -0
  18. package/dist/aws/infra/canaries/canary-role.js +46 -0
  19. package/dist/aws/infra/canaries/canary.js +32 -0
  20. package/dist/aws/infra/canaries/database-canary.js +70 -0
  21. package/dist/aws/infra/canaries/database-checker.js +103 -0
  22. package/dist/aws/infra/canaries/url-canary.js +47 -0
  23. package/dist/aws/infra/canaries/url-checker.js +252 -0
  24. package/dist/aws/infra/documentation.js +95 -0
  25. package/dist/aws/infra/scheduler.js +31 -0
  26. package/dist/aws/infra/security-rule.js +39 -0
  27. package/dist/aws/infra/sqs-integration.js +93 -0
  28. package/dist/aws/infra/sqs-queue.js +130 -0
  29. package/dist/aws/infra/stack/lambda-configs.js +105 -0
  30. package/dist/aws/infra/stack/monitoredfunction.js +143 -0
  31. package/dist/aws/infra/stack/rest_apis.js +185 -0
  32. package/dist/aws/infra/stack/stack-checking-aspect.js +174 -0
  33. package/dist/aws/infra/stack/stack.js +67 -0
  34. package/dist/aws/infra/stack/subscription.js +42 -0
  35. package/dist/aws/infra/usage-plans.js +42 -0
  36. package/dist/aws/runtime/apikey.js +13 -0
  37. package/dist/aws/runtime/digitraffic-integration-response.js +26 -0
  38. package/dist/aws/runtime/environment.js +12 -0
  39. package/dist/aws/runtime/messaging.js +31 -0
  40. package/dist/aws/runtime/s3.js +30 -0
  41. package/dist/aws/runtime/secrets/dbsecret.js +96 -0
  42. package/dist/aws/runtime/secrets/proxy-holder.js +27 -0
  43. package/dist/aws/runtime/secrets/rds-holder.js +27 -0
  44. package/dist/aws/runtime/secrets/secret-holder.js +76 -0
  45. package/dist/aws/runtime/secrets/secret.js +43 -0
  46. package/dist/aws/types/errors.js +16 -0
  47. package/dist/aws/types/lambda-response.js +33 -0
  48. package/dist/aws/types/mediatypes.js +16 -0
  49. package/dist/aws/types/model-with-reference.js +3 -0
  50. package/dist/aws/types/proxytypes.js +3 -0
  51. package/dist/aws/types/tags.js +7 -0
  52. package/dist/database/cached.js +32 -0
  53. package/dist/database/database.js +70 -0
  54. package/dist/database/last-updated.js +54 -0
  55. package/dist/database/models.js +3 -0
  56. package/dist/marine/id_utils.js +33 -0
  57. package/dist/marine/rtz.js +3 -0
  58. package/dist/test/asserter.js +45 -0
  59. package/dist/test/db-testutils.js +31 -0
  60. package/dist/test/httpserver.js +74 -0
  61. package/dist/test/secret.js +25 -0
  62. package/dist/test/secrets-manager.js +59 -0
  63. package/dist/test/testutils.js +44 -0
  64. package/dist/types/either.js +3 -0
  65. package/dist/types/input-error.js +7 -0
  66. package/dist/types/language.js +10 -0
  67. package/dist/types/traffictype.js +13 -0
  68. package/dist/types/validator.js +14 -0
  69. package/dist/utils/api-model.js +129 -0
  70. package/dist/utils/base64.js +21 -0
  71. package/dist/utils/date-utils.js +34 -0
  72. package/dist/utils/geojson-types.js +18 -0
  73. package/dist/utils/geometry.js +164 -0
  74. package/dist/utils/retry.js +50 -0
  75. package/dist/utils/slack.js +25 -0
  76. package/dist/utils/utils.js +75 -0
  77. package/jest.config.js +15 -0
  78. package/package.json +15 -13
  79. package/src/@types/geojson-validation/index.d.ts +4 -0
  80. package/src/aws/infra/api/integration.ts +73 -0
  81. package/src/aws/infra/api/response.ts +67 -0
  82. package/src/aws/infra/api/responses.ts +124 -0
  83. package/src/aws/infra/api/static-integration.ts +62 -0
  84. package/src/aws/infra/canaries/canary-alarm.ts +31 -0
  85. package/src/aws/infra/canaries/canary-keys.ts +3 -0
  86. package/{aws/infra/canaries/canary-parameters.d.ts → src/aws/infra/canaries/canary-parameters.ts} +7 -6
  87. package/src/aws/infra/canaries/canary-role.ts +47 -0
  88. package/src/aws/infra/canaries/canary.ts +46 -0
  89. package/src/aws/infra/canaries/database-canary.ts +98 -0
  90. package/src/aws/infra/canaries/database-checker.ts +155 -0
  91. package/src/aws/infra/canaries/url-canary.ts +74 -0
  92. package/src/aws/infra/canaries/url-checker.ts +366 -0
  93. package/src/aws/infra/documentation.ts +124 -0
  94. package/src/aws/infra/scheduler.ts +59 -0
  95. package/src/aws/infra/security-rule.ts +38 -0
  96. package/src/aws/infra/sqs-integration.ts +102 -0
  97. package/src/aws/infra/sqs-queue.ts +148 -0
  98. package/src/aws/infra/stack/lambda-configs.ts +207 -0
  99. package/src/aws/infra/stack/monitoredfunction.ts +342 -0
  100. package/src/aws/infra/stack/rest_apis.ts +223 -0
  101. package/src/aws/infra/stack/stack-checking-aspect.ts +279 -0
  102. package/src/aws/infra/stack/stack.ts +145 -0
  103. package/src/aws/infra/stack/subscription.ts +58 -0
  104. package/src/aws/infra/usage-plans.ts +41 -0
  105. package/src/aws/runtime/apikey.ts +9 -0
  106. package/src/aws/runtime/digitraffic-integration-response.ts +28 -0
  107. package/src/aws/runtime/environment.ts +9 -0
  108. package/src/aws/runtime/messaging.ts +26 -0
  109. package/src/aws/runtime/s3.ts +44 -0
  110. package/src/aws/runtime/secrets/dbsecret.ts +116 -0
  111. package/src/aws/runtime/secrets/proxy-holder.ts +37 -0
  112. package/src/aws/runtime/secrets/rds-holder.ts +33 -0
  113. package/src/aws/runtime/secrets/secret-holder.ts +116 -0
  114. package/src/aws/runtime/secrets/secret.ts +50 -0
  115. package/src/aws/types/errors.ts +14 -0
  116. package/src/aws/types/lambda-response.ts +43 -0
  117. package/{aws/types/mediatypes.d.ts → src/aws/types/mediatypes.ts} +4 -3
  118. package/{aws/types/model-with-reference.d.ts → src/aws/types/model-with-reference.ts} +2 -1
  119. package/src/aws/types/proxytypes.ts +27 -0
  120. package/src/aws/types/tags.ts +3 -0
  121. package/src/database/cached.ts +35 -0
  122. package/src/database/database.ts +96 -0
  123. package/src/database/last-updated.ts +59 -0
  124. package/{database/models.d.ts → src/database/models.ts} +1 -0
  125. package/src/marine/id_utils.ts +30 -0
  126. package/src/marine/rtz.ts +57 -0
  127. package/src/test/asserter.ts +48 -0
  128. package/src/test/db-testutils.ts +44 -0
  129. package/src/test/httpserver.ts +96 -0
  130. package/src/test/secret.ts +23 -0
  131. package/src/test/secrets-manager.ts +34 -0
  132. package/src/test/testutils.ts +39 -0
  133. package/src/types/either.ts +3 -0
  134. package/src/types/input-error.ts +2 -0
  135. package/src/types/language.ts +3 -0
  136. package/src/types/traffictype.ts +8 -0
  137. package/src/types/validator.ts +10 -0
  138. package/src/utils/api-model.ts +133 -0
  139. package/src/utils/base64.ts +16 -0
  140. package/src/utils/date-utils.ts +30 -0
  141. package/src/utils/geojson-types.ts +22 -0
  142. package/src/utils/geometry.ts +164 -0
  143. package/src/utils/retry.ts +49 -0
  144. package/src/utils/slack.ts +22 -0
  145. package/src/utils/utils.ts +105 -0
  146. package/test/marine/id_utils.test.ts +57 -0
  147. package/test/promise/promise.test.ts +143 -0
  148. package/test/secrets/dbsecret.test.ts +59 -0
  149. package/test/secrets/secret-holder.test.ts +143 -0
  150. package/test/secrets/secret.test.ts +49 -0
  151. package/test/test/httpserver.test.ts +128 -0
  152. package/test/utils/date-utils.test.ts +28 -0
  153. package/test/utils/geometry.test.ts +29 -0
  154. package/test/utils/utils.test.ts +64 -0
  155. package/tsconfig.eslint.json +4 -0
  156. package/tsconfig.json +22 -0
  157. package/yarn.lock +4060 -0
  158. package/aws/infra/api/integration.d.ts +0 -21
  159. package/aws/infra/api/integration.js +0 -52
  160. package/aws/infra/api/response.d.ts +0 -22
  161. package/aws/infra/api/response.js +0 -61
  162. package/aws/infra/api/responses.d.ts +0 -39
  163. package/aws/infra/api/responses.js +0 -79
  164. package/aws/infra/api/static-integration.d.ts +0 -15
  165. package/aws/infra/api/static-integration.js +0 -54
  166. package/aws/infra/canaries/canary-alarm.d.ts +0 -6
  167. package/aws/infra/canaries/canary-alarm.js +0 -26
  168. package/aws/infra/canaries/canary-parameters.js +0 -3
  169. package/aws/infra/canaries/canary-role.d.ts +0 -6
  170. package/aws/infra/canaries/canary-role.js +0 -46
  171. package/aws/infra/canaries/canary.d.ts +0 -8
  172. package/aws/infra/canaries/canary.js +0 -32
  173. package/aws/infra/canaries/database-canary.d.ts +0 -18
  174. package/aws/infra/canaries/database-canary.js +0 -55
  175. package/aws/infra/canaries/database-checker.d.ts +0 -21
  176. package/aws/infra/canaries/database-checker.js +0 -109
  177. package/aws/infra/canaries/url-canary.d.ts +0 -19
  178. package/aws/infra/canaries/url-canary.js +0 -46
  179. package/aws/infra/canaries/url-checker.d.ts +0 -46
  180. package/aws/infra/canaries/url-checker.js +0 -238
  181. package/aws/infra/documentation.d.ts +0 -56
  182. package/aws/infra/documentation.js +0 -95
  183. package/aws/infra/scheduler.d.ts +0 -12
  184. package/aws/infra/scheduler.js +0 -31
  185. package/aws/infra/security-rule.d.ts +0 -12
  186. package/aws/infra/security-rule.js +0 -39
  187. package/aws/infra/sqs-integration.d.ts +0 -7
  188. package/aws/infra/sqs-integration.js +0 -93
  189. package/aws/infra/sqs-queue.d.ts +0 -16
  190. package/aws/infra/sqs-queue.js +0 -130
  191. package/aws/infra/stack/lambda-configs.d.ts +0 -72
  192. package/aws/infra/stack/lambda-configs.js +0 -93
  193. package/aws/infra/stack/monitoredfunction.d.ts +0 -84
  194. package/aws/infra/stack/monitoredfunction.js +0 -135
  195. package/aws/infra/stack/rest_apis.d.ts +0 -41
  196. package/aws/infra/stack/rest_apis.js +0 -185
  197. package/aws/infra/stack/stack-checking-aspect.d.ts +0 -21
  198. package/aws/infra/stack/stack-checking-aspect.js +0 -174
  199. package/aws/infra/stack/stack.d.ts +0 -44
  200. package/aws/infra/stack/stack.js +0 -60
  201. package/aws/infra/stack/subscription.d.ts +0 -17
  202. package/aws/infra/stack/subscription.js +0 -41
  203. package/aws/infra/usage-plans.d.ts +0 -15
  204. package/aws/infra/usage-plans.js +0 -42
  205. package/aws/runtime/apikey.d.ts +0 -2
  206. package/aws/runtime/apikey.js +0 -13
  207. package/aws/runtime/digitraffic-integration-response.d.ts +0 -8
  208. package/aws/runtime/digitraffic-integration-response.js +0 -26
  209. package/aws/runtime/environment.d.ts +0 -1
  210. package/aws/runtime/environment.js +0 -12
  211. package/aws/runtime/messaging.d.ts +0 -10
  212. package/aws/runtime/messaging.js +0 -31
  213. package/aws/runtime/s3.d.ts +0 -2
  214. package/aws/runtime/s3.js +0 -30
  215. package/aws/runtime/secrets/dbsecret.d.ts +0 -54
  216. package/aws/runtime/secrets/dbsecret.js +0 -96
  217. package/aws/runtime/secrets/proxy-holder.d.ts +0 -9
  218. package/aws/runtime/secrets/proxy-holder.js +0 -26
  219. package/aws/runtime/secrets/rds-holder.d.ts +0 -9
  220. package/aws/runtime/secrets/rds-holder.js +0 -26
  221. package/aws/runtime/secrets/secret-holder.d.ts +0 -26
  222. package/aws/runtime/secrets/secret-holder.js +0 -73
  223. package/aws/runtime/secrets/secret.d.ts +0 -8
  224. package/aws/runtime/secrets/secret.js +0 -43
  225. package/aws/types/errors.d.ts +0 -4
  226. package/aws/types/errors.js +0 -9
  227. package/aws/types/lambda-response.d.ts +0 -12
  228. package/aws/types/lambda-response.js +0 -28
  229. package/aws/types/mediatypes.js +0 -15
  230. package/aws/types/model-with-reference.js +0 -3
  231. package/aws/types/proxytypes.d.ts +0 -26
  232. package/aws/types/proxytypes.js +0 -3
  233. package/aws/types/tags.d.ts +0 -2
  234. package/aws/types/tags.js +0 -7
  235. package/database/cached.d.ts +0 -7
  236. package/database/cached.js +0 -32
  237. package/database/database.d.ts +0 -19
  238. package/database/database.js +0 -62
  239. package/database/last-updated.d.ts +0 -16
  240. package/database/last-updated.js +0 -54
  241. package/database/models.js +0 -3
  242. package/index.d.ts +0 -1
  243. package/index.js +0 -18
  244. package/marine/id_utils.d.ts +0 -3
  245. package/marine/id_utils.js +0 -33
  246. package/marine/rtz.d.ts +0 -48
  247. package/marine/rtz.js +0 -3
  248. package/test/asserter.d.ts +0 -11
  249. package/test/asserter.js +0 -45
  250. package/test/db-testutils.d.ts +0 -2
  251. package/test/db-testutils.js +0 -31
  252. package/test/httpserver.d.ts +0 -18
  253. package/test/httpserver.js +0 -67
  254. package/test/secret.d.ts +0 -3
  255. package/test/secret.js +0 -25
  256. package/test/secrets-manager.d.ts +0 -9
  257. package/test/secrets-manager.js +0 -59
  258. package/test/testutils.d.ts +0 -12
  259. package/test/testutils.js +0 -44
  260. package/types/input-error.d.ts +0 -2
  261. package/types/input-error.js +0 -7
  262. package/types/language.d.ts +0 -5
  263. package/types/language.js +0 -10
  264. package/types/traffictype.d.ts +0 -8
  265. package/types/traffictype.js +0 -13
  266. package/types/validator.d.ts +0 -4
  267. package/types/validator.js +0 -14
  268. package/utils/api-model.d.ts +0 -87
  269. package/utils/api-model.js +0 -129
  270. package/utils/base64.d.ts +0 -12
  271. package/utils/base64.js +0 -21
  272. package/utils/date-utils.d.ts +0 -17
  273. package/utils/date-utils.js +0 -34
  274. package/utils/geojson-types.d.ts +0 -14
  275. package/utils/geojson-types.js +0 -18
  276. package/utils/geometry.d.ts +0 -36
  277. package/utils/geometry.js +0 -140
  278. package/utils/retry.d.ts +0 -13
  279. package/utils/retry.js +0 -50
  280. package/utils/slack.d.ts +0 -5
  281. package/utils/slack.js +0 -25
  282. package/utils/utils.d.ts +0 -30
  283. package/utils/utils.js +0 -64
package/aws/runtime/s3.js DELETED
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.uploadToS3 = void 0;
4
- const aws_sdk_1 = require("aws-sdk");
5
- async function uploadToS3(bucketName, body, objectName, cannedAcl, contentType) {
6
- const s3 = new aws_sdk_1.S3();
7
- try {
8
- await doUpload(s3, bucketName, body, objectName, cannedAcl, contentType);
9
- }
10
- catch (error) {
11
- console.warn('method=uploadToS3 retrying upload to bucket %s', bucketName);
12
- try {
13
- await doUpload(s3, bucketName, body, objectName, cannedAcl, contentType);
14
- }
15
- catch (e2) {
16
- console.error('method=uploadToS3 failed retrying upload to bucket %s', bucketName);
17
- }
18
- }
19
- }
20
- exports.uploadToS3 = uploadToS3;
21
- function doUpload(s3, bucketName, body, filename, cannedAcl, contentType) {
22
- return s3.upload({
23
- Bucket: bucketName,
24
- Body: body,
25
- Key: filename,
26
- ACL: cannedAcl,
27
- ContentType: contentType,
28
- }).promise();
29
- }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL3J1bnRpbWUvczMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQTJCO0FBRXBCLEtBQUssVUFBVSxVQUFVLENBQzVCLFVBQWtCLEVBQ2xCLElBQVUsRUFDVixVQUFrQixFQUNsQixTQUFrQixFQUNsQixXQUFvQjtJQUdwQixNQUFNLEVBQUUsR0FBRyxJQUFJLFlBQUUsRUFBRSxDQUFDO0lBQ3BCLElBQUk7UUFDQSxNQUFNLFFBQVEsQ0FDVixFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FDM0QsQ0FBQztLQUNMO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDWixPQUFPLENBQUMsSUFBSSxDQUFDLGdEQUFnRCxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzNFLElBQUk7WUFDQSxNQUFNLFFBQVEsQ0FDVixFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FDM0QsQ0FBQztTQUNMO1FBQUMsT0FBTyxFQUFFLEVBQUU7WUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLHVEQUF1RCxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQ3RGO0tBQ0o7QUFDTCxDQUFDO0FBdkJELGdDQXVCQztBQUVELFNBQVMsUUFBUSxDQUNiLEVBQU0sRUFDTixVQUFrQixFQUNsQixJQUFVLEVBQ1YsUUFBZ0IsRUFDaEIsU0FBa0IsRUFDbEIsV0FBb0I7SUFHcEIsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2IsTUFBTSxFQUFFLFVBQVU7UUFDbEIsSUFBSSxFQUFFLElBQUk7UUFDVixHQUFHLEVBQUUsUUFBUTtRQUNiLEdBQUcsRUFBRSxTQUFTO1FBQ2QsV0FBVyxFQUFFLFdBQVc7S0FDM0IsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1MzfSBmcm9tIFwiYXdzLXNka1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXBsb2FkVG9TMzxCb2R5IGV4dGVuZHMgUzMuQm9keSB8IHVuZGVmaW5lZD4oXG4gICAgYnVja2V0TmFtZTogc3RyaW5nLFxuICAgIGJvZHk6IEJvZHksXG4gICAgb2JqZWN0TmFtZTogc3RyaW5nLFxuICAgIGNhbm5lZEFjbD86IHN0cmluZyxcbiAgICBjb250ZW50VHlwZT86IHN0cmluZyxcbikge1xuXG4gICAgY29uc3QgczMgPSBuZXcgUzMoKTtcbiAgICB0cnkge1xuICAgICAgICBhd2FpdCBkb1VwbG9hZChcbiAgICAgICAgICAgIHMzLCBidWNrZXROYW1lLCBib2R5LCBvYmplY3ROYW1lLCBjYW5uZWRBY2wsIGNvbnRlbnRUeXBlLFxuICAgICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignbWV0aG9kPXVwbG9hZFRvUzMgcmV0cnlpbmcgdXBsb2FkIHRvIGJ1Y2tldCAlcycsIGJ1Y2tldE5hbWUpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgZG9VcGxvYWQoXG4gICAgICAgICAgICAgICAgczMsIGJ1Y2tldE5hbWUsIGJvZHksIG9iamVjdE5hbWUsIGNhbm5lZEFjbCwgY29udGVudFR5cGUsXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlMikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignbWV0aG9kPXVwbG9hZFRvUzMgZmFpbGVkIHJldHJ5aW5nIHVwbG9hZCB0byBidWNrZXQgJXMnLCBidWNrZXROYW1lKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZnVuY3Rpb24gZG9VcGxvYWQ8Qm9keSBleHRlbmRzIFMzLkJvZHkgfCB1bmRlZmluZWQ+KFxuICAgIHMzOiBTMyxcbiAgICBidWNrZXROYW1lOiBzdHJpbmcsXG4gICAgYm9keTogQm9keSxcbiAgICBmaWxlbmFtZTogc3RyaW5nLFxuICAgIGNhbm5lZEFjbD86IHN0cmluZyxcbiAgICBjb250ZW50VHlwZT86IHN0cmluZyxcbikge1xuXG4gICAgcmV0dXJuIHMzLnVwbG9hZCh7XG4gICAgICAgIEJ1Y2tldDogYnVja2V0TmFtZSxcbiAgICAgICAgQm9keTogYm9keSxcbiAgICAgICAgS2V5OiBmaWxlbmFtZSxcbiAgICAgICAgQUNMOiBjYW5uZWRBY2wsXG4gICAgICAgIENvbnRlbnRUeXBlOiBjb250ZW50VHlwZSxcbiAgICB9KS5wcm9taXNlKCk7XG59XG4iXX0=
@@ -1,54 +0,0 @@
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;
@@ -1,96 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.checkExpectedSecretKeys = exports.withDbSecret = exports.DatabaseEnvironmentKeys = exports.RdsSecretKey = exports.RdsProxySecretKey = void 0;
4
- const secret_1 = require("./secret");
5
- var RdsProxySecretKey;
6
- (function (RdsProxySecretKey) {
7
- RdsProxySecretKey["username"] = "username";
8
- RdsProxySecretKey["password"] = "password";
9
- RdsProxySecretKey["proxy_host"] = "proxy_host";
10
- RdsProxySecretKey["proxy_ro_host"] = "proxy_ro_host";
11
- })(RdsProxySecretKey = exports.RdsProxySecretKey || (exports.RdsProxySecretKey = {}));
12
- var RdsSecretKey;
13
- (function (RdsSecretKey) {
14
- RdsSecretKey["username"] = "username";
15
- RdsSecretKey["password"] = "password";
16
- RdsSecretKey["host"] = "host";
17
- RdsSecretKey["ro_host"] = "ro_host";
18
- })(RdsSecretKey = exports.RdsSecretKey || (exports.RdsSecretKey = {}));
19
- var DatabaseEnvironmentKeys;
20
- (function (DatabaseEnvironmentKeys) {
21
- DatabaseEnvironmentKeys["DB_USER"] = "DB_USER";
22
- DatabaseEnvironmentKeys["DB_PASS"] = "DB_PASS";
23
- DatabaseEnvironmentKeys["DB_URI"] = "DB_URI";
24
- DatabaseEnvironmentKeys["DB_RO_URI"] = "DB_RO_URI";
25
- DatabaseEnvironmentKeys["DB_APPLICATION"] = "DB_APPLICATION";
26
- })(DatabaseEnvironmentKeys = exports.DatabaseEnvironmentKeys || (exports.DatabaseEnvironmentKeys = {}));
27
- function setDbSecret(secret) {
28
- process.env[DatabaseEnvironmentKeys.DB_USER] = secret.username;
29
- process.env[DatabaseEnvironmentKeys.DB_PASS] = secret.password;
30
- process.env[DatabaseEnvironmentKeys.DB_URI] = secret.host;
31
- process.env[DatabaseEnvironmentKeys.DB_RO_URI] = secret.ro_host;
32
- }
33
- // cached at Lambda container level
34
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
35
- let cachedSecret;
36
- const missingSecretErrorText = 'Missing or empty secretId';
37
- /**
38
- * Run the given function with secret retrieved from Secrets Manager. Also injects database-credentials into environment.
39
- *
40
- * @deprecated use SecretHolder & ProxyHolder
41
- * @see SecretOptions
42
- *
43
- * @param {string} secretId
44
- * @param {function} fn
45
- * @param {SecretOptions} options
46
- */
47
- async function withDbSecret(secretId, fn, options) {
48
- if (!secretId) {
49
- console.error(missingSecretErrorText);
50
- return Promise.reject(missingSecretErrorText);
51
- }
52
- if (!cachedSecret) {
53
- // if prefix is given, first set db values and then fetch secret
54
- if (options?.prefix) {
55
- // first set db values
56
- await (0, secret_1.withSecret)(secretId, (fetchedSecret) => {
57
- setDbSecret(fetchedSecret);
58
- });
59
- // then actual secret
60
- await (0, secret_1.withSecretAndPrefix)(secretId, options.prefix, (fetchedSecret) => {
61
- cachedSecret = fetchedSecret;
62
- });
63
- }
64
- else {
65
- await (0, secret_1.withSecret)(secretId, (fetchedSecret) => {
66
- setDbSecret(fetchedSecret);
67
- cachedSecret = fetchedSecret;
68
- });
69
- }
70
- }
71
- try {
72
- if (options?.expectedKeys?.length) {
73
- checkExpectedSecretKeys(options.expectedKeys, cachedSecret);
74
- }
75
- return fn(cachedSecret);
76
- }
77
- catch (error) {
78
- console.error('method=withDbSecret Caught an error, refreshing secret', error);
79
- // try to refetch secret in case it has changed
80
- await (0, secret_1.withSecret)(secretId, (fetchedSecret) => {
81
- setDbSecret(fetchedSecret);
82
- cachedSecret = fetchedSecret;
83
- });
84
- return fn(cachedSecret);
85
- }
86
- }
87
- exports.withDbSecret = withDbSecret;
88
- function checkExpectedSecretKeys(keys, secret) {
89
- const missingKeys = keys.filter(key => !(key in secret));
90
- if (missingKeys.length) {
91
- console.error(`method=checkExpectedSecretKeys secret didn't contain the key(s) ${missingKeys}`);
92
- throw new Error('Expected keys were not found');
93
- }
94
- }
95
- exports.checkExpectedSecretKeys = checkExpectedSecretKeys;
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGJzZWNyZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL3J1bnRpbWUvc2VjcmV0cy9kYnNlY3JldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBeUQ7QUFTekQsSUFBWSxpQkFFWDtBQUZELFdBQVksaUJBQWlCO0lBQ3pCLDBDQUFxQixDQUFBO0lBQUUsMENBQXFCLENBQUE7SUFBRSw4Q0FBeUIsQ0FBQTtJQUFFLG9EQUErQixDQUFBO0FBQzVHLENBQUMsRUFGVyxpQkFBaUIsR0FBakIseUJBQWlCLEtBQWpCLHlCQUFpQixRQUU1QjtBQUVELElBQVksWUFFWDtBQUZELFdBQVksWUFBWTtJQUNwQixxQ0FBcUIsQ0FBQTtJQUFFLHFDQUFxQixDQUFBO0lBQUUsNkJBQWEsQ0FBQTtJQUFFLG1DQUFtQixDQUFBO0FBQ3BGLENBQUMsRUFGVyxZQUFZLEdBQVosb0JBQVksS0FBWixvQkFBWSxRQUV2QjtBQUtELElBQVksdUJBTVg7QUFORCxXQUFZLHVCQUF1QjtJQUMvQiw4Q0FBbUIsQ0FBQTtJQUNuQiw4Q0FBbUIsQ0FBQTtJQUNuQiw0Q0FBaUIsQ0FBQTtJQUNqQixrREFBdUIsQ0FBQTtJQUN2Qiw0REFBaUMsQ0FBQTtBQUNyQyxDQUFDLEVBTlcsdUJBQXVCLEdBQXZCLCtCQUF1QixLQUF2QiwrQkFBdUIsUUFNbEM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxNQUFnQjtJQUNqQyxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDL0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO0lBQy9ELE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztJQUMxRCxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7QUFDcEUsQ0FBQztBQUVELG1DQUFtQztBQUNuQyw4REFBOEQ7QUFDOUQsSUFBSSxZQUFpQixDQUFDO0FBRXRCLE1BQU0sc0JBQXNCLEdBQUcsMkJBQTJCLENBQUM7QUFtQjNEOzs7Ozs7Ozs7R0FTRztBQUNJLEtBQUssVUFBVSxZQUFZLENBQW1CLFFBQWdCLEVBQUUsRUFBNkMsRUFBRSxPQUF1QjtJQUN6SSxJQUFJLENBQUMsUUFBUSxFQUFFO1FBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0tBQ2pEO0lBRUQsSUFBSSxDQUFDLFlBQVksRUFBRTtRQUNmLGdFQUFnRTtRQUNoRSxJQUFJLE9BQU8sRUFBRSxNQUFNLEVBQUU7WUFDakIsc0JBQXNCO1lBQ3RCLE1BQU0sSUFBQSxtQkFBVSxFQUFDLFFBQVEsRUFBRSxDQUFDLGFBQXVCLEVBQUUsRUFBRTtnQkFDbkQsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUFDO1lBRUgscUJBQXFCO1lBQ3JCLE1BQU0sSUFBQSw0QkFBbUIsRUFBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLGFBQXFCLEVBQUUsRUFBRTtnQkFDMUUsWUFBWSxHQUFHLGFBQWEsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSCxNQUFNLElBQUEsbUJBQVUsRUFBQyxRQUFRLEVBQUUsQ0FBQyxhQUF1QixFQUFFLEVBQUU7Z0JBQ25ELFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDM0IsWUFBWSxHQUFHLGFBQWEsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztTQUNOO0tBQ0o7SUFDRCxJQUFJO1FBQ0EsSUFBSSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRTtZQUMvQix1QkFBdUIsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQy9EO1FBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7S0FDM0I7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0RBQXdELEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0UsK0NBQStDO1FBQy9DLE1BQU0sSUFBQSxtQkFBVSxFQUFDLFFBQVEsRUFBRSxDQUFDLGFBQXVCLEVBQUUsRUFBRTtZQUNuRCxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDM0IsWUFBWSxHQUFHLGFBQWEsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO0tBQzNCO0FBQ0wsQ0FBQztBQXZDRCxvQ0F1Q0M7QUFFRCxTQUFnQix1QkFBdUIsQ0FBUyxJQUFjLEVBQUUsTUFBYztJQUMxRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3pELElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRTtRQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLG1FQUFtRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2hHLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztLQUNuRDtBQUNMLENBQUM7QUFORCwwREFNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7d2l0aFNlY3JldCwgd2l0aFNlY3JldEFuZFByZWZpeH0gZnJvbSBcIi4vc2VjcmV0XCI7XG5cbmV4cG9ydCB0eXBlIERiU2VjcmV0ID0ge1xuICAgIHJlYWRvbmx5IHVzZXJuYW1lOiBzdHJpbmdcbiAgICByZWFkb25seSBwYXNzd29yZDogc3RyaW5nXG4gICAgcmVhZG9ubHkgaG9zdDogc3RyaW5nXG4gICAgcmVhZG9ubHkgcm9faG9zdDogc3RyaW5nXG59O1xuXG5leHBvcnQgZW51bSBSZHNQcm94eVNlY3JldEtleSB7XG4gICAgdXNlcm5hbWUgPSBcInVzZXJuYW1lXCIsIHBhc3N3b3JkID0gXCJwYXNzd29yZFwiLCBwcm94eV9ob3N0ID0gXCJwcm94eV9ob3N0XCIsIHByb3h5X3JvX2hvc3QgPSBcInByb3h5X3JvX2hvc3RcIlxufVxuXG5leHBvcnQgZW51bSBSZHNTZWNyZXRLZXkge1xuICAgIHVzZXJuYW1lID0gXCJ1c2VybmFtZVwiLCBwYXNzd29yZCA9IFwicGFzc3dvcmRcIiwgaG9zdCA9IFwiaG9zdFwiLCByb19ob3N0ID0gXCJyb19ob3N0XCJcbn1cblxuZXhwb3J0IHR5cGUgUmRzUHJveHlTZWNyZXQgPSBSZWNvcmQ8UmRzUHJveHlTZWNyZXRLZXksIHN0cmluZz47XG5leHBvcnQgdHlwZSBSZHNTZWNyZXQgPSBSZWNvcmQ8UmRzU2VjcmV0S2V5LCBzdHJpbmc+O1xuXG5leHBvcnQgZW51bSBEYXRhYmFzZUVudmlyb25tZW50S2V5cyB7XG4gICAgREJfVVNFUiA9IFwiREJfVVNFUlwiLFxuICAgIERCX1BBU1MgPSBcIkRCX1BBU1NcIixcbiAgICBEQl9VUkkgPSBcIkRCX1VSSVwiLFxuICAgIERCX1JPX1VSSSA9IFwiREJfUk9fVVJJXCIsXG4gICAgREJfQVBQTElDQVRJT04gPSBcIkRCX0FQUExJQ0FUSU9OXCIsXG59XG5cbmZ1bmN0aW9uIHNldERiU2VjcmV0KHNlY3JldDogRGJTZWNyZXQpIHtcbiAgICBwcm9jZXNzLmVudltEYXRhYmFzZUVudmlyb25tZW50S2V5cy5EQl9VU0VSXSA9IHNlY3JldC51c2VybmFtZTtcbiAgICBwcm9jZXNzLmVudltEYXRhYmFzZUVudmlyb25tZW50S2V5cy5EQl9QQVNTXSA9IHNlY3JldC5wYXNzd29yZDtcbiAgICBwcm9jZXNzLmVudltEYXRhYmFzZUVudmlyb25tZW50S2V5cy5EQl9VUkldID0gc2VjcmV0Lmhvc3Q7XG4gICAgcHJvY2Vzcy5lbnZbRGF0YWJhc2VFbnZpcm9ubWVudEtleXMuREJfUk9fVVJJXSA9IHNlY3JldC5yb19ob3N0O1xufVxuXG4vLyBjYWNoZWQgYXQgTGFtYmRhIGNvbnRhaW5lciBsZXZlbFxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmxldCBjYWNoZWRTZWNyZXQ6IGFueTtcblxuY29uc3QgbWlzc2luZ1NlY3JldEVycm9yVGV4dCA9ICdNaXNzaW5nIG9yIGVtcHR5IHNlY3JldElkJztcblxuLyoqXG4gKiBZb3UgY2FuIGdpdmUgdGhlIGZvbGxvd2luZyBvcHRpb25zIGZvciByZXRyaWV2aW5nIGEgc2VjcmV0OlxuICpcbiAqIGV4cGVjdGVkS2V5czogdGhlIGxpc3Qgb2Yga2V5cyB0aGUgc2VjcmV0IG11c3QgaW5jbHVkZS4gIElmIG5vdCwgYW4gZXJyb3Igd2lsbCBiZSB0aHJvd24uXG4gKiBwcmVmaXg6IGEgcHJlZml4IHRoYXQncyBpbmNsdWRlZCBpbiByZXRyaWV2ZWQgc2VjcmV0J3Mga2V5cy4gIE9ubHkga2V5cyBiZWdpbmluZyB3aXRoIHRoZSBwcmVmaXggd2lsbCBiZSBpbmNsdWRlZC5cbiAqIFRoZSBzZWNyZXQgdGhhdCBpcyBwYXNzZWQgdG8gdGhlIGdpdmVuIGZ1bmN0aW9uIHdpbGwgbm90IGluY2x1ZGUgdGhlIHByZWZpeCBpbiBpdCdzIGtleXMuXG5cbiAqL1xuZXhwb3J0IHR5cGUgU2VjcmV0T3B0aW9ucyA9IHtcbiAgICByZWFkb25seSBleHBlY3RlZEtleXM/OiBzdHJpbmdbXSxcbiAgICByZWFkb25seSBwcmVmaXg/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgU2VjcmV0VG9Qcm9taXNlRnVuY3Rpb248U2VjcmV0LCBSZXNwb25zZSA9IHZvaWQ+ID0gKHNlY3JldDogU2VjcmV0KSA9PiBQcm9taXNlPFJlc3BvbnNlPiB8IHZvaWQ7XG5leHBvcnQgdHlwZSBTZWNyZXRGdW5jdGlvbjxTZWNyZXQsIFJlc3BvbnNlID0gdm9pZD4gPSAoc2VjcmV0SWQ6IHN0cmluZywgZm46IFNlY3JldFRvUHJvbWlzZUZ1bmN0aW9uPFNlY3JldCwgUmVzcG9uc2U+LCBvcHRpb25zPzogU2VjcmV0T3B0aW9ucykgPT4gUHJvbWlzZTxSZXNwb25zZSB8IHZvaWQ+O1xuZXhwb3J0IHR5cGUgRW1wdHlTZWNyZXRGdW5jdGlvbjxSZXNwb25zZSA9IHZvaWQ+ID0gU2VjcmV0RnVuY3Rpb248RGJTZWNyZXQsIFJlc3BvbnNlPjtcblxuLyoqXG4gKiBSdW4gdGhlIGdpdmVuIGZ1bmN0aW9uIHdpdGggc2VjcmV0IHJldHJpZXZlZCBmcm9tIFNlY3JldHMgTWFuYWdlci4gIEFsc28gaW5qZWN0cyBkYXRhYmFzZS1jcmVkZW50aWFscyBpbnRvIGVudmlyb25tZW50LlxuICpcbiAqIEBkZXByZWNhdGVkIHVzZSBTZWNyZXRIb2xkZXIgJiBQcm94eUhvbGRlclxuICogQHNlZSBTZWNyZXRPcHRpb25zXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHNlY3JldElkXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBmblxuICogQHBhcmFtIHtTZWNyZXRPcHRpb25zfSBvcHRpb25zXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3aXRoRGJTZWNyZXQ8U2VjcmV0LCBSZXNwb25zZT4oc2VjcmV0SWQ6IHN0cmluZywgZm46IFNlY3JldFRvUHJvbWlzZUZ1bmN0aW9uPFNlY3JldCwgUmVzcG9uc2U+LCBvcHRpb25zPzogU2VjcmV0T3B0aW9ucyk6IFByb21pc2U8UmVzcG9uc2UgfCB2b2lkPiB7XG4gICAgaWYgKCFzZWNyZXRJZCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKG1pc3NpbmdTZWNyZXRFcnJvclRleHQpO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobWlzc2luZ1NlY3JldEVycm9yVGV4dCk7XG4gICAgfVxuXG4gICAgaWYgKCFjYWNoZWRTZWNyZXQpIHtcbiAgICAgICAgLy8gaWYgcHJlZml4IGlzIGdpdmVuLCBmaXJzdCBzZXQgZGIgdmFsdWVzIGFuZCB0aGVuIGZldGNoIHNlY3JldFxuICAgICAgICBpZiAob3B0aW9ucz8ucHJlZml4KSB7XG4gICAgICAgICAgICAvLyBmaXJzdCBzZXQgZGIgdmFsdWVzXG4gICAgICAgICAgICBhd2FpdCB3aXRoU2VjcmV0KHNlY3JldElkLCAoZmV0Y2hlZFNlY3JldDogRGJTZWNyZXQpID0+IHtcbiAgICAgICAgICAgICAgICBzZXREYlNlY3JldChmZXRjaGVkU2VjcmV0KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvLyB0aGVuIGFjdHVhbCBzZWNyZXRcbiAgICAgICAgICAgIGF3YWl0IHdpdGhTZWNyZXRBbmRQcmVmaXgoc2VjcmV0SWQsIG9wdGlvbnMucHJlZml4LCAoZmV0Y2hlZFNlY3JldDogU2VjcmV0KSA9PiB7XG4gICAgICAgICAgICAgICAgY2FjaGVkU2VjcmV0ID0gZmV0Y2hlZFNlY3JldDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYXdhaXQgd2l0aFNlY3JldChzZWNyZXRJZCwgKGZldGNoZWRTZWNyZXQ6IERiU2VjcmV0KSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0RGJTZWNyZXQoZmV0Y2hlZFNlY3JldCk7XG4gICAgICAgICAgICAgICAgY2FjaGVkU2VjcmV0ID0gZmV0Y2hlZFNlY3JldDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGlmIChvcHRpb25zPy5leHBlY3RlZEtleXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY2hlY2tFeHBlY3RlZFNlY3JldEtleXMob3B0aW9ucy5leHBlY3RlZEtleXMsIGNhY2hlZFNlY3JldCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZuKGNhY2hlZFNlY3JldCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignbWV0aG9kPXdpdGhEYlNlY3JldCBDYXVnaHQgYW4gZXJyb3IsIHJlZnJlc2hpbmcgc2VjcmV0JywgZXJyb3IpO1xuICAgICAgICAvLyB0cnkgdG8gcmVmZXRjaCBzZWNyZXQgaW4gY2FzZSBpdCBoYXMgY2hhbmdlZFxuICAgICAgICBhd2FpdCB3aXRoU2VjcmV0KHNlY3JldElkLCAoZmV0Y2hlZFNlY3JldDogRGJTZWNyZXQpID0+IHtcbiAgICAgICAgICAgIHNldERiU2VjcmV0KGZldGNoZWRTZWNyZXQpO1xuICAgICAgICAgICAgY2FjaGVkU2VjcmV0ID0gZmV0Y2hlZFNlY3JldDtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBmbihjYWNoZWRTZWNyZXQpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrRXhwZWN0ZWRTZWNyZXRLZXlzPFNlY3JldD4oa2V5czogc3RyaW5nW10sIHNlY3JldDogU2VjcmV0KSB7XG4gICAgY29uc3QgbWlzc2luZ0tleXMgPSBrZXlzLmZpbHRlcihrZXkgPT4gIShrZXkgaW4gc2VjcmV0KSk7XG4gICAgaWYgKG1pc3NpbmdLZXlzLmxlbmd0aCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBtZXRob2Q9Y2hlY2tFeHBlY3RlZFNlY3JldEtleXMgc2VjcmV0IGRpZG4ndCBjb250YWluIHRoZSBrZXkocykgJHttaXNzaW5nS2V5c31gKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBrZXlzIHdlcmUgbm90IGZvdW5kJyk7XG4gICAgfVxufVxuIl19
@@ -1,9 +0,0 @@
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
- }
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ProxyHolder = void 0;
4
- const secret_holder_1 = require("./secret-holder");
5
- const dbsecret_1 = require("./dbsecret");
6
- const RDS_PROXY_SECRET_KEYS = Object.values(dbsecret_1.RdsProxySecretKey);
7
- /**
8
- * Holds credentials for RDS Proxy access.
9
- */
10
- class ProxyHolder {
11
- constructor(secretId) {
12
- this.secretHolder = new secret_holder_1.SecretHolder(secretId, '', RDS_PROXY_SECRET_KEYS);
13
- }
14
- static create() {
15
- return new ProxyHolder(process.env.SECRET_ID);
16
- }
17
- async setCredentials() {
18
- const secret = await this.secretHolder.get();
19
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_USER] = secret.username;
20
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_PASS] = secret.password;
21
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_URI] = secret.proxy_host;
22
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_RO_URI] = secret.proxy_ro_host;
23
- }
24
- }
25
- exports.ProxyHolder = ProxyHolder;
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHktaG9sZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9ydW50aW1lL3NlY3JldHMvcHJveHktaG9sZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUE2QztBQUM3Qyx5Q0FBc0Y7QUFFdEYsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLDRCQUFpQixDQUFDLENBQUM7QUFFL0Q7O0dBRUc7QUFDSCxNQUFhLFdBQVc7SUFHcEIsWUFBWSxRQUFnQjtRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksNEJBQVksQ0FBaUIsUUFBUSxFQUFFLEVBQUUsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTTtRQUNULE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVNLEtBQUssQ0FBQyxjQUFjO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUU3QyxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUF1QixDQUFDLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDL0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBdUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQy9ELE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQXVCLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUNoRSxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUF1QixDQUFDLFNBQVMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7SUFDMUUsQ0FBQztDQUNKO0FBbkJELGtDQW1CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2VjcmV0SG9sZGVyfSBmcm9tIFwiLi9zZWNyZXQtaG9sZGVyXCI7XG5pbXBvcnQge0RhdGFiYXNlRW52aXJvbm1lbnRLZXlzLCBSZHNQcm94eVNlY3JldEtleSwgUmRzUHJveHlTZWNyZXR9IGZyb20gXCIuL2Ric2VjcmV0XCI7XG5cbmNvbnN0IFJEU19QUk9YWV9TRUNSRVRfS0VZUyA9IE9iamVjdC52YWx1ZXMoUmRzUHJveHlTZWNyZXRLZXkpO1xuXG4vKipcbiAqIEhvbGRzIGNyZWRlbnRpYWxzIGZvciBSRFMgUHJveHkgYWNjZXNzLlxuICovXG5leHBvcnQgY2xhc3MgUHJveHlIb2xkZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2VjcmV0SG9sZGVyO1xuXG4gICAgY29uc3RydWN0b3Ioc2VjcmV0SWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNlY3JldEhvbGRlciA9IG5ldyBTZWNyZXRIb2xkZXI8UmRzUHJveHlTZWNyZXQ+KHNlY3JldElkLCAnJywgUkRTX1BST1hZX1NFQ1JFVF9LRVlTKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgY3JlYXRlKCkge1xuICAgICAgICByZXR1cm4gbmV3IFByb3h5SG9sZGVyKHByb2Nlc3MuZW52LlNFQ1JFVF9JRCBhcyBzdHJpbmcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZXRDcmVkZW50aWFscygpIHtcbiAgICAgICAgY29uc3Qgc2VjcmV0ID0gYXdhaXQgdGhpcy5zZWNyZXRIb2xkZXIuZ2V0KCk7XG5cbiAgICAgICAgcHJvY2Vzcy5lbnZbRGF0YWJhc2VFbnZpcm9ubWVudEtleXMuREJfVVNFUl0gPSBzZWNyZXQudXNlcm5hbWU7XG4gICAgICAgIHByb2Nlc3MuZW52W0RhdGFiYXNlRW52aXJvbm1lbnRLZXlzLkRCX1BBU1NdID0gc2VjcmV0LnBhc3N3b3JkO1xuICAgICAgICBwcm9jZXNzLmVudltEYXRhYmFzZUVudmlyb25tZW50S2V5cy5EQl9VUkldID0gc2VjcmV0LnByb3h5X2hvc3Q7XG4gICAgICAgIHByb2Nlc3MuZW52W0RhdGFiYXNlRW52aXJvbm1lbnRLZXlzLkRCX1JPX1VSSV0gPSBzZWNyZXQucHJveHlfcm9faG9zdDtcbiAgICB9XG59XG4iXX0=
@@ -1,9 +0,0 @@
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
- }
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RdsHolder = void 0;
4
- const secret_holder_1 = require("./secret-holder");
5
- const dbsecret_1 = require("./dbsecret");
6
- const RDS_SECRET_KEYS = Object.values(dbsecret_1.RdsSecretKey);
7
- /**
8
- * Holds credentials for RDS access.
9
- */
10
- class RdsHolder {
11
- constructor(secretId) {
12
- this.secretHolder = new secret_holder_1.SecretHolder(secretId, '', RDS_SECRET_KEYS);
13
- }
14
- static create() {
15
- return new RdsHolder(process.env.SECRET_ID);
16
- }
17
- async setCredentials() {
18
- const secret = await this.secretHolder.get();
19
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_USER] = secret.username;
20
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_PASS] = secret.password;
21
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_URI] = secret.host;
22
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_RO_URI] = secret.ro_host;
23
- }
24
- }
25
- exports.RdsHolder = RdsHolder;
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmRzLWhvbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hd3MvcnVudGltZS9zZWNyZXRzL3Jkcy1ob2xkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQTZDO0FBQzdDLHlDQUE0RTtBQUU1RSxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLHVCQUFZLENBQUMsQ0FBQztBQUVwRDs7R0FFRztBQUNILE1BQWEsU0FBUztJQUdsQixZQUFZLFFBQWdCO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSw0QkFBWSxDQUFZLFFBQVEsRUFBRSxFQUFFLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNO1FBQ1QsT0FBTyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQW1CLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sS0FBSyxDQUFDLGNBQWM7UUFDdkIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRTdDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQXVCLENBQUMsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUMvRCxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUF1QixDQUFDLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDL0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBdUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQzFELE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQXVCLENBQUMsU0FBUyxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUNwRSxDQUFDO0NBQ0o7QUFuQkQsOEJBbUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTZWNyZXRIb2xkZXJ9IGZyb20gXCIuL3NlY3JldC1ob2xkZXJcIjtcbmltcG9ydCB7RGF0YWJhc2VFbnZpcm9ubWVudEtleXMsIFJkc1NlY3JldCwgUmRzU2VjcmV0S2V5fSBmcm9tIFwiLi9kYnNlY3JldFwiO1xuXG5jb25zdCBSRFNfU0VDUkVUX0tFWVMgPSBPYmplY3QudmFsdWVzKFJkc1NlY3JldEtleSk7XG5cbi8qKlxuICogSG9sZHMgY3JlZGVudGlhbHMgZm9yIFJEUyBhY2Nlc3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBSZHNIb2xkZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2VjcmV0SG9sZGVyO1xuXG4gICAgY29uc3RydWN0b3Ioc2VjcmV0SWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNlY3JldEhvbGRlciA9IG5ldyBTZWNyZXRIb2xkZXI8UmRzU2VjcmV0PihzZWNyZXRJZCwgJycsIFJEU19TRUNSRVRfS0VZUyk7XG4gICAgfVxuXG4gICAgc3RhdGljIGNyZWF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBSZHNIb2xkZXIocHJvY2Vzcy5lbnYuU0VDUkVUX0lEIGFzIHN0cmluZyk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNldENyZWRlbnRpYWxzKCkge1xuICAgICAgICBjb25zdCBzZWNyZXQgPSBhd2FpdCB0aGlzLnNlY3JldEhvbGRlci5nZXQoKTtcblxuICAgICAgICBwcm9jZXNzLmVudltEYXRhYmFzZUVudmlyb25tZW50S2V5cy5EQl9VU0VSXSA9IHNlY3JldC51c2VybmFtZTtcbiAgICAgICAgcHJvY2Vzcy5lbnZbRGF0YWJhc2VFbnZpcm9ubWVudEtleXMuREJfUEFTU10gPSBzZWNyZXQucGFzc3dvcmQ7XG4gICAgICAgIHByb2Nlc3MuZW52W0RhdGFiYXNlRW52aXJvbm1lbnRLZXlzLkRCX1VSSV0gPSBzZWNyZXQuaG9zdDtcbiAgICAgICAgcHJvY2Vzcy5lbnZbRGF0YWJhc2VFbnZpcm9ubWVudEtleXMuREJfUk9fVVJJXSA9IHNlY3JldC5yb19ob3N0O1xuICAgIH1cbn1cbiJdfQ==
@@ -1,26 +0,0 @@
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
- }
@@ -1,73 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SecretHolder = void 0;
4
- const secret_1 = require("./secret");
5
- const dbsecret_1 = require("./dbsecret");
6
- // eslint-disable-next-line @typescript-eslint/no-var-requires
7
- const NodeTtl = require('node-ttl');
8
- const DEFAULT_PREFIX = '';
9
- const DEFAULT_SECRET_KEY = 'SECRET';
10
- const DEFAULT_CONFIGURATION = {
11
- ttl: 5 * 60, // timeout secrets in 5 minutes
12
- };
13
- /**
14
- * Utility class for getting secrets from Secret Manager.
15
- * Supports prefix for secrets, checking of expected keys and ttl-configuration.
16
- *
17
- * By default, secrets are cached for 5 minutes and then reread from the Secrets Manager(This can be overridden with configuration).
18
- *
19
- * Supports setting the database environment paramaters from the secret too.
20
- */
21
- class SecretHolder {
22
- constructor(secretId, prefix = '', expectedKeys = [], configuration = DEFAULT_CONFIGURATION) {
23
- this.secretId = secretId;
24
- this.prefix = prefix;
25
- this.expectedKeys = expectedKeys;
26
- this.secretCache = new NodeTtl(configuration);
27
- }
28
- async initSecret() {
29
- const secretValue = await (0, secret_1.getSecret)(this.secretId);
30
- console.info("refreshing secret " + this.secretId);
31
- this.secretCache.push(DEFAULT_SECRET_KEY, secretValue);
32
- }
33
- static create(prefix = DEFAULT_PREFIX, expectedKeys = []) {
34
- return new SecretHolder(process.env.SECRET_ID, prefix, expectedKeys);
35
- }
36
- async get() {
37
- const secret = await this.getSecret();
38
- const parsedSecret = this.prefix === DEFAULT_PREFIX ? secret : this.parseSecret(secret, `${this.prefix}.`);
39
- if (this.expectedKeys.length > 0) {
40
- (0, dbsecret_1.checkExpectedSecretKeys)(this.expectedKeys, parsedSecret);
41
- }
42
- return parsedSecret;
43
- }
44
- parseSecret(secret, prefix) {
45
- const parsed = {};
46
- const skip = prefix.length;
47
- for (const key in secret) {
48
- if (key.startsWith(prefix)) {
49
- parsed[key.substring(skip)] = secret[key];
50
- }
51
- }
52
- return parsed;
53
- }
54
- async getSecret() {
55
- const secret = this.secretCache.get(DEFAULT_SECRET_KEY);
56
- if (!secret) {
57
- await this.initSecret();
58
- }
59
- return secret || this.secretCache.get(DEFAULT_SECRET_KEY);
60
- }
61
- /**
62
- * @deprecated Use ProxyHolder
63
- */
64
- async setDatabaseCredentials() {
65
- const secret = await this.getSecret();
66
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_USER] = secret.username;
67
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_PASS] = secret.password;
68
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_URI] = secret.host;
69
- process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_RO_URI] = secret.ro_host;
70
- }
71
- }
72
- exports.SecretHolder = SecretHolder;
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LWhvbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hd3MvcnVudGltZS9zZWNyZXRzL3NlY3JldC1ob2xkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQWtEO0FBQ2xELHlDQUFzRjtBQUV0Riw4REFBOEQ7QUFDOUQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBRXBDLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztBQUMxQixNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQztBQUNwQyxNQUFNLHFCQUFxQixHQUFHO0lBQzFCLEdBQUcsRUFBRSxDQUFDLEdBQUMsRUFBRSxFQUFFLCtCQUErQjtDQUM3QyxDQUFDO0FBRUY7Ozs7Ozs7R0FPRztBQUNILE1BQWEsWUFBWTtJQU9yQixZQUFZLFFBQWdCLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxlQUF5QixFQUFFLEVBQUUsYUFBYSxHQUFHLHFCQUFxQjtRQUN6RyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUVqQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTyxLQUFLLENBQUMsVUFBVTtRQUNwQixNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUEsa0JBQVMsRUFBUyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFM0QsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFNLENBQUksTUFBTSxHQUFHLGNBQWMsRUFBRSxlQUF5QixFQUFFO1FBQ3hFLE9BQU8sSUFBSSxZQUFZLENBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFtQixFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQUc7UUFDWixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQVUsQ0FBQztRQUM5QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxLQUFLLGNBQWMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQWtDLEVBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUV4SSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM5QixJQUFBLGtDQUF1QixFQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDNUQ7UUFFRCxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRU8sV0FBVyxDQUFDLE1BQXFCLEVBQUUsTUFBYztRQUNyRCxNQUFNLE1BQU0sR0FBa0IsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFFM0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUU7WUFDdEIsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUN4QixNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUM3QztTQUNKO1FBRUQsT0FBTyxNQUEyQixDQUFDO0lBQ3ZDLENBQUM7SUFHTyxLQUFLLENBQUMsU0FBUztRQUNuQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXhELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUMzQjtRQUVELE9BQU8sTUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLHNCQUFzQjtRQUMvQixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQVksQ0FBQztRQUVoRCxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUF1QixDQUFDLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDL0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBdUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQy9ELE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQXVCLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUMxRCxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUF1QixDQUFDLFNBQVMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDcEUsQ0FBQztDQUNKO0FBekVELG9DQXlFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7R2VuZXJpY1NlY3JldCwgZ2V0U2VjcmV0fSBmcm9tIFwiLi9zZWNyZXRcIjtcbmltcG9ydCB7Y2hlY2tFeHBlY3RlZFNlY3JldEtleXMsIERhdGFiYXNlRW52aXJvbm1lbnRLZXlzLCBEYlNlY3JldH0gZnJvbSBcIi4vZGJzZWNyZXRcIjtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbmNvbnN0IE5vZGVUdGwgPSByZXF1aXJlKCdub2RlLXR0bCcpO1xuXG5jb25zdCBERUZBVUxUX1BSRUZJWCA9ICcnO1xuY29uc3QgREVGQVVMVF9TRUNSRVRfS0VZID0gJ1NFQ1JFVCc7XG5jb25zdCBERUZBVUxUX0NPTkZJR1VSQVRJT04gPSB7XG4gICAgdHRsOiA1KjYwLCAvLyB0aW1lb3V0IHNlY3JldHMgaW4gNSBtaW51dGVzXG59O1xuXG4vKipcbiAqIFV0aWxpdHkgY2xhc3MgZm9yIGdldHRpbmcgc2VjcmV0cyBmcm9tIFNlY3JldCBNYW5hZ2VyLlxuICogU3VwcG9ydHMgcHJlZml4IGZvciBzZWNyZXRzLCBjaGVja2luZyBvZiBleHBlY3RlZCBrZXlzIGFuZCB0dGwtY29uZmlndXJhdGlvbi5cbiAqXG4gKiBCeSBkZWZhdWx0LCBzZWNyZXRzIGFyZSBjYWNoZWQgZm9yIDUgbWludXRlcyBhbmQgdGhlbiByZXJlYWQgZnJvbSB0aGUgU2VjcmV0cyBNYW5hZ2VyKFRoaXMgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCBjb25maWd1cmF0aW9uKS5cbiAqXG4gKiBTdXBwb3J0cyBzZXR0aW5nIHRoZSBkYXRhYmFzZSBlbnZpcm9ubWVudCBwYXJhbWF0ZXJzIGZyb20gdGhlIHNlY3JldCB0b28uXG4gKi9cbmV4cG9ydCBjbGFzcyBTZWNyZXRIb2xkZXI8U2VjcmV0PiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzZWNyZXRJZDogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJlZml4OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBleHBlY3RlZEtleXM6IHN0cmluZ1tdO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZWNyZXRDYWNoZTtcblxuICAgIGNvbnN0cnVjdG9yKHNlY3JldElkOiBzdHJpbmcsIHByZWZpeCA9ICcnLCBleHBlY3RlZEtleXM6IHN0cmluZ1tdID0gW10sIGNvbmZpZ3VyYXRpb24gPSBERUZBVUxUX0NPTkZJR1VSQVRJT04pIHtcbiAgICAgICAgdGhpcy5zZWNyZXRJZCA9IHNlY3JldElkO1xuICAgICAgICB0aGlzLnByZWZpeCA9IHByZWZpeDtcbiAgICAgICAgdGhpcy5leHBlY3RlZEtleXMgPSBleHBlY3RlZEtleXM7XG5cbiAgICAgICAgdGhpcy5zZWNyZXRDYWNoZSA9IG5ldyBOb2RlVHRsKGNvbmZpZ3VyYXRpb24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgaW5pdFNlY3JldCgpIHtcbiAgICAgICAgY29uc3Qgc2VjcmV0VmFsdWUgPSBhd2FpdCBnZXRTZWNyZXQ8U2VjcmV0Pih0aGlzLnNlY3JldElkKTtcblxuICAgICAgICBjb25zb2xlLmluZm8oXCJyZWZyZXNoaW5nIHNlY3JldCBcIiArIHRoaXMuc2VjcmV0SWQpO1xuXG4gICAgICAgIHRoaXMuc2VjcmV0Q2FjaGUucHVzaChERUZBVUxUX1NFQ1JFVF9LRVksIHNlY3JldFZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZTxTPihwcmVmaXggPSBERUZBVUxUX1BSRUZJWCwgZXhwZWN0ZWRLZXlzOiBzdHJpbmdbXSA9IFtdKSB7XG4gICAgICAgIHJldHVybiBuZXcgU2VjcmV0SG9sZGVyPFM+KHByb2Nlc3MuZW52LlNFQ1JFVF9JRCBhcyBzdHJpbmcsIHByZWZpeCwgZXhwZWN0ZWRLZXlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0KCk6IFByb21pc2U8U2VjcmV0PiB7XG4gICAgICAgIGNvbnN0IHNlY3JldCA9IGF3YWl0IHRoaXMuZ2V0U2VjcmV0PFNlY3JldD4oKTtcbiAgICAgICAgY29uc3QgcGFyc2VkU2VjcmV0ID0gdGhpcy5wcmVmaXggPT09IERFRkFVTFRfUFJFRklYID8gc2VjcmV0IDogdGhpcy5wYXJzZVNlY3JldChzZWNyZXQgYXMgdW5rbm93biBhcyBHZW5lcmljU2VjcmV0LCAgYCR7dGhpcy5wcmVmaXh9LmApO1xuXG4gICAgICAgIGlmICh0aGlzLmV4cGVjdGVkS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjaGVja0V4cGVjdGVkU2VjcmV0S2V5cyh0aGlzLmV4cGVjdGVkS2V5cywgcGFyc2VkU2VjcmV0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJzZWRTZWNyZXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwYXJzZVNlY3JldChzZWNyZXQ6IEdlbmVyaWNTZWNyZXQsIHByZWZpeDogc3RyaW5nKTogU2VjcmV0IHtcbiAgICAgICAgY29uc3QgcGFyc2VkOiBHZW5lcmljU2VjcmV0ID0ge307XG4gICAgICAgIGNvbnN0IHNraXAgPSBwcmVmaXgubGVuZ3RoO1xuXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHNlY3JldCkge1xuICAgICAgICAgICAgaWYgKGtleS5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICAgICAgICAgICAgICBwYXJzZWRba2V5LnN1YnN0cmluZyhza2lwKV0gPSBzZWNyZXRba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJzZWQgYXMgdW5rbm93biBhcyBTZWNyZXQ7XG4gICAgfVxuXG5cbiAgICBwcml2YXRlIGFzeW5jIGdldFNlY3JldDxTPigpOiBQcm9taXNlPFM+IHtcbiAgICAgICAgY29uc3Qgc2VjcmV0ID0gdGhpcy5zZWNyZXRDYWNoZS5nZXQoREVGQVVMVF9TRUNSRVRfS0VZKTtcblxuICAgICAgICBpZiAoIXNlY3JldCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5pbml0U2VjcmV0KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc2VjcmV0IHx8IHRoaXMuc2VjcmV0Q2FjaGUuZ2V0KERFRkFVTFRfU0VDUkVUX0tFWSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIFByb3h5SG9sZGVyXG4gICAgICovXG4gICAgcHVibGljIGFzeW5jIHNldERhdGFiYXNlQ3JlZGVudGlhbHMoKSB7XG4gICAgICAgIGNvbnN0IHNlY3JldCA9IGF3YWl0IHRoaXMuZ2V0U2VjcmV0PERiU2VjcmV0PigpO1xuXG4gICAgICAgIHByb2Nlc3MuZW52W0RhdGFiYXNlRW52aXJvbm1lbnRLZXlzLkRCX1VTRVJdID0gc2VjcmV0LnVzZXJuYW1lO1xuICAgICAgICBwcm9jZXNzLmVudltEYXRhYmFzZUVudmlyb25tZW50S2V5cy5EQl9QQVNTXSA9IHNlY3JldC5wYXNzd29yZDtcbiAgICAgICAgcHJvY2Vzcy5lbnZbRGF0YWJhc2VFbnZpcm9ubWVudEtleXMuREJfVVJJXSA9IHNlY3JldC5ob3N0O1xuICAgICAgICBwcm9jZXNzLmVudltEYXRhYmFzZUVudmlyb25tZW50S2V5cy5EQl9ST19VUkldID0gc2VjcmV0LnJvX2hvc3Q7XG4gICAgfVxufVxuIl19
@@ -1,8 +0,0 @@
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>;
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.withSecretAndPrefix = exports.getSecret = exports.withSecret = void 0;
4
- const aws_sdk_1 = require("aws-sdk");
5
- const smClient = new aws_sdk_1.SecretsManager({
6
- region: process.env.AWS_REGION,
7
- });
8
- /**
9
- @deprecated use SecretHolder & ProxyHolder
10
- */
11
- async function withSecret(secretId, fn) {
12
- return fn(await getSecret(secretId));
13
- }
14
- exports.withSecret = withSecret;
15
- async function getSecret(secretId, prefix = '') {
16
- const secretObj = await smClient.getSecretValue({
17
- SecretId: secretId,
18
- }).promise();
19
- if (!secretObj.SecretString) {
20
- throw new Error('No secret found!');
21
- }
22
- const secret = JSON.parse(secretObj.SecretString);
23
- if (prefix === '') {
24
- return secret;
25
- }
26
- return parseSecret(secret, `${prefix}.`);
27
- }
28
- exports.getSecret = getSecret;
29
- function parseSecret(secret, prefix) {
30
- const parsed = {};
31
- const skip = prefix.length;
32
- for (const key in secret) {
33
- if (key.startsWith(prefix)) {
34
- parsed[key.substring(skip)] = secret[key];
35
- }
36
- }
37
- return parsed;
38
- }
39
- async function withSecretAndPrefix(secretId, prefix, fn) {
40
- return fn(await getSecret(secretId, prefix));
41
- }
42
- exports.withSecretAndPrefix = withSecretAndPrefix;
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9ydW50aW1lL3NlY3JldHMvc2VjcmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUF1QztBQUd2QyxNQUFNLFFBQVEsR0FBRyxJQUFJLHdCQUFjLENBQUM7SUFDaEMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVTtDQUNqQyxDQUFDLENBQUM7QUFJSDs7R0FFRztBQUNJLEtBQUssVUFBVSxVQUFVLENBQW1CLFFBQWdCLEVBQUUsRUFBNkM7SUFDOUcsT0FBTyxFQUFFLENBQUMsTUFBTSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRkQsZ0NBRUM7QUFFTSxLQUFLLFVBQVUsU0FBUyxDQUFTLFFBQWdCLEVBQUUsTUFBTSxHQUFHLEVBQUU7SUFDakUsTUFBTSxTQUFTLEdBQUcsTUFBTSxRQUFRLENBQUMsY0FBYyxDQUFDO1FBQzVDLFFBQVEsRUFBRSxRQUFRO0tBQ3JCLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUViLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQUN2QztJQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRWxELElBQUksTUFBTSxLQUFLLEVBQUUsRUFBRTtRQUNmLE9BQU8sTUFBTSxDQUFDO0tBQ2pCO0lBRUQsT0FBTyxXQUFXLENBQUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBaEJELDhCQWdCQztBQUVELFNBQVMsV0FBVyxDQUFTLE1BQXFCLEVBQUUsTUFBYztJQUM5RCxNQUFNLE1BQU0sR0FBa0IsRUFBRSxDQUFDO0lBQ2pDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFFM0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUU7UUFDdEIsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3hCLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzdDO0tBQ0o7SUFFRCxPQUFPLE1BQTJCLENBQUM7QUFDdkMsQ0FBQztBQUVNLEtBQUssVUFBVSxtQkFBbUIsQ0FBbUIsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsRUFBNkM7SUFDdkksT0FBTyxFQUFFLENBQUMsTUFBTSxTQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUZELGtEQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTZWNyZXRzTWFuYWdlcn0gZnJvbSAnYXdzLXNkayc7XG5pbXBvcnQge1NlY3JldFRvUHJvbWlzZUZ1bmN0aW9ufSBmcm9tIFwiLi9kYnNlY3JldFwiO1xuXG5jb25zdCBzbUNsaWVudCA9IG5ldyBTZWNyZXRzTWFuYWdlcih7XG4gICAgcmVnaW9uOiBwcm9jZXNzLmVudi5BV1NfUkVHSU9OLFxufSk7XG5cbmV4cG9ydCB0eXBlIEdlbmVyaWNTZWNyZXQgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4vKipcbiBAZGVwcmVjYXRlZCB1c2UgU2VjcmV0SG9sZGVyICYgUHJveHlIb2xkZXJcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdpdGhTZWNyZXQ8U2VjcmV0LCBSZXNwb25zZT4oc2VjcmV0SWQ6IHN0cmluZywgZm46IFNlY3JldFRvUHJvbWlzZUZ1bmN0aW9uPFNlY3JldCwgUmVzcG9uc2U+KTogUHJvbWlzZTxSZXNwb25zZSB8IHZvaWQ+IHtcbiAgICByZXR1cm4gZm4oYXdhaXQgZ2V0U2VjcmV0KHNlY3JldElkKSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRTZWNyZXQ8U2VjcmV0PihzZWNyZXRJZDogc3RyaW5nLCBwcmVmaXggPSAnJyk6IFByb21pc2U8U2VjcmV0PiB7XG4gICAgY29uc3Qgc2VjcmV0T2JqID0gYXdhaXQgc21DbGllbnQuZ2V0U2VjcmV0VmFsdWUoe1xuICAgICAgICBTZWNyZXRJZDogc2VjcmV0SWQsXG4gICAgfSkucHJvbWlzZSgpO1xuXG4gICAgaWYgKCFzZWNyZXRPYmouU2VjcmV0U3RyaW5nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gc2VjcmV0IGZvdW5kIScpO1xuICAgIH1cblxuICAgIGNvbnN0IHNlY3JldCA9IEpTT04ucGFyc2Uoc2VjcmV0T2JqLlNlY3JldFN0cmluZyk7XG5cbiAgICBpZiAocHJlZml4ID09PSAnJykge1xuICAgICAgICByZXR1cm4gc2VjcmV0O1xuICAgIH1cblxuICAgIHJldHVybiBwYXJzZVNlY3JldChzZWNyZXQsIGAke3ByZWZpeH0uYCk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlU2VjcmV0PFNlY3JldD4oc2VjcmV0OiBHZW5lcmljU2VjcmV0LCBwcmVmaXg6IHN0cmluZyk6IFNlY3JldCB7XG4gICAgY29uc3QgcGFyc2VkOiBHZW5lcmljU2VjcmV0ID0ge307XG4gICAgY29uc3Qgc2tpcCA9IHByZWZpeC5sZW5ndGg7XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiBzZWNyZXQpIHtcbiAgICAgICAgaWYgKGtleS5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICAgICAgICAgIHBhcnNlZFtrZXkuc3Vic3RyaW5nKHNraXApXSA9IHNlY3JldFtrZXldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcnNlZCBhcyB1bmtub3duIGFzIFNlY3JldDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdpdGhTZWNyZXRBbmRQcmVmaXg8U2VjcmV0LCBSZXNwb25zZT4oc2VjcmV0SWQ6IHN0cmluZywgcHJlZml4OiBzdHJpbmcsIGZuOiBTZWNyZXRUb1Byb21pc2VGdW5jdGlvbjxTZWNyZXQsIFJlc3BvbnNlPik6IFByb21pc2U8UmVzcG9uc2UgfCB2b2lkPiB7XG4gICAgcmV0dXJuIGZuKGF3YWl0IGdldFNlY3JldChzZWNyZXRJZCwgcHJlZml4KSk7XG59XG4iXX0=
@@ -1,4 +0,0 @@
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";
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BAD_REQUEST_MESSAGE = exports.OK_MESSAGE = exports.ERROR_MESSAGE = exports.NOT_FOUND_MESSAGE = void 0;
4
- // DEPRECATED, remove this!
5
- exports.NOT_FOUND_MESSAGE = 'NOT_FOUND';
6
- exports.ERROR_MESSAGE = 'ERROR';
7
- exports.OK_MESSAGE = 'OK';
8
- exports.BAD_REQUEST_MESSAGE = 'BAD REQUEST';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy90eXBlcy9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkJBQTJCO0FBQ2QsUUFBQSxpQkFBaUIsR0FBRyxXQUFXLENBQUM7QUFDaEMsUUFBQSxhQUFhLEdBQUcsT0FBTyxDQUFDO0FBQ3hCLFFBQUEsVUFBVSxHQUFHLElBQUksQ0FBQztBQUNsQixRQUFBLG1CQUFtQixHQUFHLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIERFUFJFQ0FURUQsIHJlbW92ZSB0aGlzIVxuZXhwb3J0IGNvbnN0IE5PVF9GT1VORF9NRVNTQUdFID0gJ05PVF9GT1VORCc7XG5leHBvcnQgY29uc3QgRVJST1JfTUVTU0FHRSA9ICdFUlJPUic7XG5leHBvcnQgY29uc3QgT0tfTUVTU0FHRSA9ICdPSyc7XG5leHBvcnQgY29uc3QgQkFEX1JFUVVFU1RfTUVTU0FHRSA9ICdCQUQgUkVRVUVTVCc7XG4iXX0=
@@ -1,12 +0,0 @@
1
- export declare class LambdaResponse<T> {
2
- readonly status: number;
3
- readonly body: T;
4
- readonly fileName?: string;
5
- static ok<S>(body: S, fileName?: string): Promise<LambdaResponse<S>>;
6
- static okJson<S>(json: S, fileName?: string): Promise<LambdaResponse<string>>;
7
- static badRequest(body: string): Promise<LambdaResponse<string>>;
8
- static notFound(): Promise<LambdaResponse<string>>;
9
- static internalError(): Promise<LambdaResponse<string>>;
10
- static notImplemented(): Promise<LambdaResponse<string>>;
11
- static create<S>(status: number, body: S, fileName?: string): Promise<LambdaResponse<S>>;
12
- }
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LambdaResponse = void 0;
4
- class LambdaResponse {
5
- static ok(body, fileName) {
6
- return this.create(200, body, fileName);
7
- }
8
- static okJson(json, fileName) {
9
- return this.create(200, JSON.stringify(json, null, 2), fileName);
10
- }
11
- static badRequest(body) {
12
- return this.create(400, body);
13
- }
14
- static notFound() {
15
- return this.create(404, 'Not found');
16
- }
17
- static internalError() {
18
- return this.create(500, 'Internal error');
19
- }
20
- static notImplemented() {
21
- return this.create(501, 'Not implemented');
22
- }
23
- static create(status, body, fileName) {
24
- return Promise.resolve({ status, body, fileName });
25
- }
26
- }
27
- exports.LambdaResponse = LambdaResponse;
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLXJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy90eXBlcy9sYW1iZGEtcmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBYSxjQUFjO0lBS3ZCLE1BQU0sQ0FBQyxFQUFFLENBQUksSUFBTyxFQUFFLFFBQWlCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFJLElBQU8sRUFBRSxRQUFpQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFZO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRO1FBQ1gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWE7UUFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYztRQUNqQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUksTUFBYyxFQUFFLElBQU8sRUFBRSxRQUFpQjtRQUN2RCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztDQUNKO0FBaENELHdDQWdDQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBMYW1iZGFSZXNwb25zZTxUPiB7XG4gICAgcmVhZG9ubHkgc3RhdHVzOiBudW1iZXI7XG4gICAgcmVhZG9ubHkgYm9keTogVDtcbiAgICByZWFkb25seSBmaWxlTmFtZT86IHN0cmluZztcblxuICAgIHN0YXRpYyBvazxTPihib2R5OiBTLCBmaWxlTmFtZT86IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGUoMjAwLCBib2R5LCBmaWxlTmFtZSk7XG4gICAgfVxuXG4gICAgc3RhdGljIG9rSnNvbjxTPihqc29uOiBTLCBmaWxlTmFtZT86IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGUoMjAwLCBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCAyKSwgZmlsZU5hbWUpO1xuICAgIH1cblxuICAgIHN0YXRpYyBiYWRSZXF1ZXN0KGJvZHk6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGUoNDAwLCBib2R5KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgbm90Rm91bmQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZSg0MDQsICdOb3QgZm91bmQnKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgaW50ZXJuYWxFcnJvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlKDUwMCwgJ0ludGVybmFsIGVycm9yJyk7XG4gICAgfVxuXG4gICAgc3RhdGljIG5vdEltcGxlbWVudGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGUoNTAxLCAnTm90IGltcGxlbWVudGVkJyk7XG4gICAgfVxuXG4gICAgc3RhdGljIGNyZWF0ZTxTPihzdGF0dXM6IG51bWJlciwgYm9keTogUywgZmlsZU5hbWU/OiBzdHJpbmcpOiBQcm9taXNlPExhbWJkYVJlc3BvbnNlPFM+PiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoeyBzdGF0dXMsIGJvZHksIGZpbGVOYW1lIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MediaType = void 0;
4
- var MediaType;
5
- (function (MediaType) {
6
- MediaType["APPLICATION_JSON"] = "application/json";
7
- MediaType["APPLICATION_XML"] = "application/xml";
8
- MediaType["APPLICATION_GEOJSON"] = "application/geo+json;charset=UTF-8";
9
- MediaType["IMAGE_SVG"] = "image/svg+xml";
10
- MediaType["IMAGE_JPEG"] = "image/jpeg";
11
- MediaType["TEXT_PLAIN"] = "text/plain";
12
- MediaType["TEXT_HTML"] = "text/html";
13
- MediaType["TEXT_CSV"] = "text/csv";
14
- })(MediaType = exports.MediaType || (exports.MediaType = {}));
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWF0eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvdHlwZXMvbWVkaWF0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLFNBU1g7QUFURCxXQUFZLFNBQVM7SUFDakIsa0RBQXFDLENBQUE7SUFDckMsZ0RBQW1DLENBQUE7SUFDbkMsdUVBQTBELENBQUE7SUFDMUQsd0NBQTJCLENBQUE7SUFDM0Isc0NBQXlCLENBQUE7SUFDekIsc0NBQXlCLENBQUE7SUFDekIsb0NBQXVCLENBQUE7SUFDdkIsa0NBQXFCLENBQUE7QUFDekIsQ0FBQyxFQVRXLFNBQVMsR0FBVCxpQkFBUyxLQUFULGlCQUFTLFFBU3BCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTWVkaWFUeXBlIHtcbiAgICBBUFBMSUNBVElPTl9KU09OID0gJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgIEFQUExJQ0FUSU9OX1hNTCA9ICdhcHBsaWNhdGlvbi94bWwnLFxuICAgIEFQUExJQ0FUSU9OX0dFT0pTT04gPSAnYXBwbGljYXRpb24vZ2VvK2pzb247Y2hhcnNldD1VVEYtOCcsXG4gICAgSU1BR0VfU1ZHID0gJ2ltYWdlL3N2Zyt4bWwnLFxuICAgIElNQUdFX0pQRUcgPSAnaW1hZ2UvanBlZycsXG4gICAgVEVYVF9QTEFJTiA9ICd0ZXh0L3BsYWluJyxcbiAgICBURVhUX0hUTUwgPSAndGV4dC9odG1sJyxcbiAgICBURVhUX0NTViA9ICd0ZXh0L2NzdicsXG59XG4iXX0=
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtd2l0aC1yZWZlcmVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL3R5cGVzL21vZGVsLXdpdGgtcmVmZXJlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01vZGVsfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXlcIjtcblxuLyoqXG4gKiBNb2RlbCBvYmplY3Qgd2l0aCBhIHJlZmVyZW5jZSB0byBhbiBBUEkgR2F0ZXdheSBtb2RlbCBvYmplY3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWxXaXRoUmVmZXJlbmNlIGV4dGVuZHMgTW9kZWwge1xuICAgIG1vZGVsUmVmZXJlbmNlOiBzdHJpbmc7XG59XG4iXX0=
@@ -1,26 +0,0 @@
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
- };
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHl0eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvdHlwZXMvcHJveHl0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXBpZ2F0ZXdheS9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvc2V0LXVwLWxhbWJkYS1wcm94eS1pbnRlZ3JhdGlvbnMuaHRtbCNhcGktZ2F0ZXdheS1zaW1wbGUtcHJveHktZm9yLWxhbWJkYS1vdXRwdXQtZm9ybWF0XG4gKlxuICogTm90IGZ1bGx5IGRlc2NyaWJlZCwgZXh0ZW5kIGlmIG5lY2Vzc2FyeS5cbiAqL1xuZXhwb3J0IHR5cGUgUHJveHlMYW1iZGFSZXNwb25zZSA9IHtcbiAgICByZWFkb25seSBzdGF0dXNDb2RlOiBudW1iZXJcbiAgICByZWFkb25seSBib2R5OiBzdHJpbmdcbiAgICByZWFkb25seSBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICAgIHJlYWRvbmx5IG11bHRpVmFsdWVIZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+XG59XG5cbi8qKlxuICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwaWdhdGV3YXkvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3NldC11cC1sYW1iZGEtcHJveHktaW50ZWdyYXRpb25zLmh0bWwjYXBpLWdhdGV3YXktc2ltcGxlLXByb3h5LWZvci1sYW1iZGEtaW5wdXQtZm9ybWF0XG4gKlxuICogTm90IGZ1bGx5IGRlc2NyaWJlZCwgZXh0ZW5kIGlmIG5lY2Vzc2FyeS5cbiAqL1xuZXhwb3J0IHR5cGUgUHJveHlMYW1iZGFSZXF1ZXN0ID0ge1xuICAgIHJlYWRvbmx5IHJlc291cmNlOiBzdHJpbmdcbiAgICByZWFkb25seSBwYXRoOiBzdHJpbmdcbiAgICByZWFkb25seSBodHRwTWV0aG9kOiBzdHJpbmdcbiAgICByZWFkb25seSBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gICAgcmVhZG9ubHkgbXVsdGlWYWx1ZUhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPlxuICAgIHJlYWRvbmx5IHF1ZXJ5U3RyaW5nUGFyYW1ldGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICAgIHJlYWRvbmx5IG11bHRpVmFsdWVRdWVyeVN0cmluZ1BhcmFtZXRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPlxuICAgIHJlYWRvbmx5IGJvZHk/OiBzdHJpbmdcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export declare const BETA_TAGS: string[];
2
- export declare const DATA_V1_TAGS: string[];
package/aws/types/tags.js DELETED
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DATA_V1_TAGS = exports.BETA_TAGS = void 0;
4
- // DEPRECATED! This must be replaced with new application specific tags
5
- exports.BETA_TAGS = ['Beta'];
6
- exports.DATA_V1_TAGS = ['Data v1'];
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvdHlwZXMvdGFncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1RUFBdUU7QUFDMUQsUUFBQSxTQUFTLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNyQixRQUFBLFlBQVksR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gREVQUkVDQVRFRCEgVGhpcyBtdXN0IGJlIHJlcGxhY2VkIHdpdGggbmV3IGFwcGxpY2F0aW9uIHNwZWNpZmljIHRhZ3NcbmV4cG9ydCBjb25zdCBCRVRBX1RBR1MgPSBbJ0JldGEnXTtcbmV4cG9ydCBjb25zdCBEQVRBX1YxX1RBR1MgPSBbJ0RhdGEgdjEnXTtcbiJdfQ==
@@ -1,7 +0,0 @@
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>;