@aws-amplify/graphql-model-transformer 1.4.0-rds.3 → 1.4.0

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 (218) hide show
  1. package/CHANGELOG.md +24 -8
  2. package/lib/definitions.d.ts.map +1 -1
  3. package/lib/definitions.js +28 -2
  4. package/lib/definitions.js.map +1 -1
  5. package/lib/graphql-model-transformer.d.ts.map +1 -1
  6. package/lib/graphql-model-transformer.js +38 -36
  7. package/lib/graphql-model-transformer.js.map +1 -1
  8. package/lib/graphql-types/common.d.ts.map +1 -1
  9. package/lib/graphql-types/common.js +16 -18
  10. package/lib/graphql-types/common.js.map +1 -1
  11. package/lib/graphql-types/mutation.d.ts.map +1 -1
  12. package/lib/graphql-types/mutation.js +12 -12
  13. package/lib/graphql-types/mutation.js.map +1 -1
  14. package/lib/graphql-types/query.d.ts.map +1 -1
  15. package/lib/graphql-types/query.js.map +1 -1
  16. package/lib/rds-lambda.zip +0 -0
  17. package/lib/rds-notification-lambda.zip +0 -0
  18. package/lib/rds-patching-lambda.zip +0 -0
  19. package/lib/resolvers/common.d.ts.map +1 -1
  20. package/lib/resolvers/common.js.map +1 -1
  21. package/lib/resolvers/dynamodb/mutation.d.ts.map +1 -1
  22. package/lib/resolvers/dynamodb/mutation.js +10 -8
  23. package/lib/resolvers/dynamodb/mutation.js.map +1 -1
  24. package/lib/resolvers/dynamodb/query.d.ts.map +1 -1
  25. package/lib/resolvers/dynamodb/query.js +1 -4
  26. package/lib/resolvers/dynamodb/query.js.map +1 -1
  27. package/lib/resolvers/dynamodb/subscriptions.d.ts.map +1 -1
  28. package/lib/resolvers/dynamodb/subscriptions.js.map +1 -1
  29. package/lib/resolvers/generators/dynamodb-vtl-generator.d.ts.map +1 -1
  30. package/lib/resolvers/generators/dynamodb-vtl-generator.js.map +1 -1
  31. package/lib/resolvers/generators/rds-vtl-generator.d.ts.map +1 -1
  32. package/lib/resolvers/generators/rds-vtl-generator.js.map +1 -1
  33. package/lib/resolvers/generators/vtl-generator.d.ts.map +1 -1
  34. package/lib/resolvers/index.d.ts.map +1 -1
  35. package/lib/resolvers/index.js.map +1 -1
  36. package/lib/resolvers/rds/mutation.d.ts.map +1 -1
  37. package/lib/resolvers/rds/mutation.js.map +1 -1
  38. package/lib/resolvers/rds/query.d.ts.map +1 -1
  39. package/lib/resolvers/rds/query.js.map +1 -1
  40. package/lib/resolvers/rds/resolver.d.ts +2 -2
  41. package/lib/resolvers/rds/resolver.d.ts.map +1 -1
  42. package/lib/resolvers/rds/resolver.js +82 -82
  43. package/lib/resolvers/rds/resolver.js.map +1 -1
  44. package/lib/resources/dynamo-model-resource-generator.d.ts +1 -1
  45. package/lib/resources/dynamo-model-resource-generator.d.ts.map +1 -1
  46. package/lib/resources/dynamo-model-resource-generator.js +2 -2
  47. package/lib/resources/dynamo-model-resource-generator.js.map +1 -1
  48. package/lib/resources/model-resource-generator.d.ts.map +1 -1
  49. package/lib/resources/model-resource-generator.js +15 -7
  50. package/lib/resources/model-resource-generator.js.map +1 -1
  51. package/lib/resources/rds-model-resource-generator.d.ts.map +1 -1
  52. package/lib/resources/rds-model-resource-generator.js +1 -1
  53. package/lib/resources/rds-model-resource-generator.js.map +1 -1
  54. package/package.json +17 -8
  55. package/publish-notification-lambda/node_modules/.package-lock.json +10 -10
  56. package/publish-notification-lambda/node_modules/@smithy/protocol-http/package.json +3 -3
  57. package/publish-notification-lambda/node_modules/@smithy/types/package.json +2 -2
  58. package/publish-notification-lambda/node_modules/@types/node/README.md +1 -1
  59. package/publish-notification-lambda/node_modules/@types/node/package.json +2 -2
  60. package/publish-notification-lambda/package-lock.json +10 -10
  61. package/publish-notification-lambda/src/index.ts +2 -2
  62. package/publish-notification-lambda/tsconfig.json +9 -9
  63. package/rds-lambda/handler.ts +17 -4
  64. package/rds-lambda/node_modules/.package-lock.json +373 -374
  65. package/rds-lambda/node_modules/@babel/compat-data/README.md +1 -1
  66. package/rds-lambda/node_modules/@babel/compat-data/data/corejs2-built-ins.json +146 -0
  67. package/rds-lambda/node_modules/@babel/compat-data/data/native-modules.json +1 -1
  68. package/rds-lambda/node_modules/@babel/compat-data/data/plugin-bugfixes.json +17 -0
  69. package/rds-lambda/node_modules/@babel/compat-data/data/plugins.json +76 -9
  70. package/rds-lambda/node_modules/@babel/compat-data/package.json +4 -4
  71. package/rds-lambda/node_modules/@babel/core/README.md +1 -1
  72. package/rds-lambda/node_modules/@babel/core/package.json +10 -10
  73. package/rds-lambda/node_modules/@babel/generator/README.md +1 -1
  74. package/rds-lambda/node_modules/@babel/generator/package.json +4 -3
  75. package/rds-lambda/node_modules/@babel/helper-compilation-targets/README.md +1 -1
  76. package/rds-lambda/node_modules/@babel/helper-compilation-targets/package.json +5 -5
  77. package/rds-lambda/node_modules/@babel/helper-module-transforms/README.md +1 -1
  78. package/rds-lambda/node_modules/@babel/helper-module-transforms/package.json +10 -6
  79. package/rds-lambda/node_modules/@babel/helper-split-export-declaration/README.md +1 -1
  80. package/rds-lambda/node_modules/@babel/helper-split-export-declaration/package.json +1 -1
  81. package/rds-lambda/node_modules/@babel/helpers/README.md +1 -1
  82. package/rds-lambda/node_modules/@babel/helpers/package.json +3 -3
  83. package/rds-lambda/node_modules/@babel/parser/README.md +1 -1
  84. package/rds-lambda/node_modules/@babel/parser/package.json +2 -2
  85. package/rds-lambda/node_modules/@babel/traverse/README.md +1 -1
  86. package/rds-lambda/node_modules/@babel/traverse/package.json +4 -4
  87. package/rds-lambda/node_modules/@jest/console/package.json +6 -6
  88. package/rds-lambda/node_modules/@jest/core/package.json +21 -21
  89. package/rds-lambda/node_modules/@jest/environment/package.json +5 -5
  90. package/rds-lambda/node_modules/@jest/expect/package.json +6 -6
  91. package/rds-lambda/node_modules/@jest/expect-utils/package.json +5 -5
  92. package/rds-lambda/node_modules/@jest/fake-timers/package.json +7 -7
  93. package/rds-lambda/node_modules/@jest/globals/package.json +6 -6
  94. package/rds-lambda/node_modules/@jest/reporters/package.json +14 -14
  95. package/rds-lambda/node_modules/@jest/schemas/package.json +3 -3
  96. package/rds-lambda/node_modules/@jest/source-map/package.json +3 -3
  97. package/rds-lambda/node_modules/@jest/test-result/package.json +6 -6
  98. package/rds-lambda/node_modules/@jest/test-sequencer/package.json +5 -5
  99. package/rds-lambda/node_modules/@jest/transform/package.json +7 -7
  100. package/rds-lambda/node_modules/@jest/types/package.json +5 -5
  101. package/rds-lambda/node_modules/@sinclair/typebox/package.json +3 -8
  102. package/rds-lambda/node_modules/@sinclair/typebox/readme.md +487 -300
  103. package/rds-lambda/node_modules/@smithy/protocol-http/package.json +3 -3
  104. package/rds-lambda/node_modules/@smithy/types/package.json +2 -2
  105. package/rds-lambda/node_modules/@types/jest/README.md +1 -1
  106. package/rds-lambda/node_modules/@types/jest/package.json +2 -2
  107. package/rds-lambda/node_modules/@types/node/README.md +1 -1
  108. package/rds-lambda/node_modules/@types/node/package.json +2 -2
  109. package/rds-lambda/node_modules/babel-jest/package.json +4 -4
  110. package/rds-lambda/node_modules/caniuse-lite/package.json +1 -1
  111. package/rds-lambda/node_modules/collect-v8-coverage/CHANGELOG.md +7 -0
  112. package/rds-lambda/node_modules/collect-v8-coverage/package.json +18 -20
  113. package/rds-lambda/node_modules/commander/Readme.md +7 -2
  114. package/rds-lambda/node_modules/commander/package.json +17 -17
  115. package/rds-lambda/node_modules/electron-to-chromium/full-chromium-versions.json +1 -1
  116. package/rds-lambda/node_modules/electron-to-chromium/full-versions.json +1 -1
  117. package/rds-lambda/node_modules/electron-to-chromium/package.json +1 -1
  118. package/rds-lambda/node_modules/electron-to-chromium/versions.json +1 -1
  119. package/rds-lambda/node_modules/expect/package.json +10 -9
  120. package/rds-lambda/node_modules/jest/package.json +7 -7
  121. package/rds-lambda/node_modules/jest-circus/package.json +15 -14
  122. package/rds-lambda/node_modules/jest-cli/package.json +10 -9
  123. package/rds-lambda/node_modules/jest-config/package.json +14 -14
  124. package/rds-lambda/node_modules/jest-diff/package.json +4 -4
  125. package/rds-lambda/node_modules/jest-each/package.json +5 -5
  126. package/rds-lambda/node_modules/jest-environment-node/package.json +8 -8
  127. package/rds-lambda/node_modules/jest-haste-map/package.json +5 -5
  128. package/rds-lambda/node_modules/jest-leak-detector/package.json +3 -3
  129. package/rds-lambda/node_modules/jest-matcher-utils/package.json +5 -5
  130. package/rds-lambda/node_modules/jest-message-util/package.json +4 -4
  131. package/rds-lambda/node_modules/jest-mock/package.json +6 -6
  132. package/rds-lambda/node_modules/jest-resolve/package.json +7 -7
  133. package/rds-lambda/node_modules/jest-resolve-dependencies/package.json +8 -8
  134. package/rds-lambda/node_modules/jest-runner/package.json +20 -20
  135. package/rds-lambda/node_modules/jest-runtime/package.json +17 -17
  136. package/rds-lambda/node_modules/jest-snapshot/node_modules/semver/package.json +3 -3
  137. package/rds-lambda/node_modules/jest-snapshot/package.json +15 -17
  138. package/rds-lambda/node_modules/jest-util/package.json +3 -3
  139. package/rds-lambda/node_modules/jest-validate/package.json +4 -4
  140. package/rds-lambda/node_modules/jest-watcher/package.json +5 -5
  141. package/rds-lambda/node_modules/jest-worker/package.json +6 -6
  142. package/rds-lambda/node_modules/knex/CHANGELOG.md +63 -21
  143. package/rds-lambda/node_modules/knex/CONTRIBUTING.md +1 -1
  144. package/rds-lambda/node_modules/knex/LICENSE +22 -22
  145. package/rds-lambda/node_modules/knex/README.md +32 -31
  146. package/rds-lambda/node_modules/knex/UPGRADING.md +94 -82
  147. package/rds-lambda/node_modules/knex/knex.mjs +11 -0
  148. package/rds-lambda/node_modules/knex/lib/dialects/oracle/DEAD_CODE.md +3 -3
  149. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/cjs.stub +15 -15
  150. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/coffee.stub +13 -13
  151. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/eg.stub +14 -14
  152. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/js-schema.stub +22 -22
  153. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/js.stub +22 -22
  154. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-coffee.stub +34 -34
  155. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-eg.stub +43 -43
  156. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-js.stub +47 -47
  157. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-ls.stub +35 -35
  158. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-ts.stub +47 -47
  159. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/ls.stub +14 -14
  160. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/mjs.stub +23 -23
  161. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/ts-schema.stub +21 -21
  162. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/ts.stub +21 -21
  163. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/coffee.stub +9 -9
  164. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/eg.stub +11 -11
  165. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/js.stub +13 -13
  166. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/ls.stub +11 -11
  167. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/mjs.stub +12 -12
  168. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/ts.stub +13 -13
  169. package/rds-lambda/node_modules/knex/package.json +21 -18
  170. package/rds-lambda/node_modules/knex/scripts/docker-compose.yml +2 -2
  171. package/rds-lambda/node_modules/knex/scripts/next-release-howto.md +1 -1
  172. package/rds-lambda/node_modules/knex/scripts/oracledb-install-driver-libs.sh +82 -82
  173. package/rds-lambda/node_modules/knex/scripts/release.sh +36 -34
  174. package/rds-lambda/node_modules/knex/scripts/stress-test/README.txt +18 -18
  175. package/rds-lambda/node_modules/knex/scripts/stress-test/docker-compose.yml +16 -16
  176. package/rds-lambda/node_modules/node-releases/data/processed/envs.json +1 -1
  177. package/rds-lambda/node_modules/node-releases/package.json +1 -1
  178. package/rds-lambda/node_modules/pg-connection-string/package.json +2 -2
  179. package/rds-lambda/node_modules/pretty-format/package.json +5 -5
  180. package/rds-lambda/node_modules/semver/package.json +19 -9
  181. package/rds-lambda/node_modules/ts-jest/.ts-jest-digest +1 -1
  182. package/rds-lambda/node_modules/ts-jest/CHANGELOG.md +9 -0
  183. package/rds-lambda/node_modules/ts-jest/node_modules/semver/package.json +3 -3
  184. package/rds-lambda/node_modules/ts-jest/package.json +12 -12
  185. package/rds-lambda/package-lock.json +373 -374
  186. package/rds-patching-lambda/node_modules/.package-lock.json +10 -10
  187. package/rds-patching-lambda/node_modules/@smithy/protocol-http/package.json +3 -3
  188. package/rds-patching-lambda/node_modules/@smithy/types/package.json +2 -2
  189. package/rds-patching-lambda/node_modules/@types/node/README.md +1 -1
  190. package/rds-patching-lambda/node_modules/@types/node/package.json +2 -2
  191. package/rds-patching-lambda/package-lock.json +10 -10
  192. package/rds-patching-lambda/src/index.ts +2 -4
  193. package/rds-patching-lambda/tsconfig.json +9 -9
  194. package/src/__tests__/model-transformer.test.ts +175 -145
  195. package/src/__tests__/test-utils/helpers.ts +1 -1
  196. package/src/definitions.ts +30 -2
  197. package/src/graphql-model-transformer.ts +81 -75
  198. package/src/graphql-types/common.ts +41 -41
  199. package/src/graphql-types/mutation.ts +13 -13
  200. package/src/graphql-types/query.ts +1 -0
  201. package/src/index.ts +1 -0
  202. package/src/resolvers/common.ts +1 -12
  203. package/src/resolvers/dynamodb/mutation.ts +16 -13
  204. package/src/resolvers/dynamodb/query.ts +7 -12
  205. package/src/resolvers/dynamodb/subscriptions.ts +1 -3
  206. package/src/resolvers/generators/dynamodb-vtl-generator.ts +18 -8
  207. package/src/resolvers/generators/rds-vtl-generator.ts +11 -4
  208. package/src/resolvers/generators/vtl-generator.ts +5 -5
  209. package/src/resolvers/index.ts +1 -3
  210. package/src/resolvers/rds/mutation.ts +76 -70
  211. package/src/resolvers/rds/query.ts +4 -12
  212. package/src/resolvers/rds/resolver.ts +124 -130
  213. package/src/resources/dynamo-model-resource-generator.ts +14 -28
  214. package/src/resources/model-resource-generator.ts +65 -27
  215. package/src/resources/rds-model-resource-generator.ts +5 -15
  216. package/tsconfig.json +4 -4
  217. package/tsconfig.tsbuildinfo +1 -1
  218. package/rds-lambda/node_modules/semver/CHANGELOG.md +0 -70
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@smithy/protocol-http",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "scripts": {
5
- "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",
5
+ "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types && yarn build:types:downlevel'",
6
6
  "build:cjs": "tsc -p tsconfig.cjs.json",
7
7
  "build:es": "tsc -p tsconfig.es.json",
8
8
  "build:types": "tsc -p tsconfig.types.json",
@@ -23,7 +23,7 @@
23
23
  },
24
24
  "license": "Apache-2.0",
25
25
  "dependencies": {
26
- "@smithy/types": "^1.1.0",
26
+ "@smithy/types": "^1.1.1",
27
27
  "tslib": "^2.5.0"
28
28
  },
29
29
  "engines": {
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@smithy/types",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "scripts": {
5
- "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",
5
+ "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types && yarn build:types:downlevel'",
6
6
  "build:cjs": "tsc -p tsconfig.cjs.json",
7
7
  "build:es": "tsc -p tsconfig.es.json",
8
8
  "build:types": "tsc -p tsconfig.types.json",
@@ -8,7 +8,7 @@ This package contains type definitions for Node.js (https://nodejs.org/).
8
8
  Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node.
9
9
 
10
10
  ### Additional Details
11
- * Last updated: Mon, 26 Jun 2023 20:02:42 GMT
11
+ * Last updated: Wed, 12 Jul 2023 23:02:41 GMT
12
12
  * Dependencies: none
13
13
  * Global values: `AbortController`, `AbortSignal`, `__dirname`, `__filename`, `console`, `exports`, `gc`, `global`, `module`, `process`, `require`, `structuredClone`
14
14
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@types/node",
3
- "version": "20.3.2",
3
+ "version": "20.4.2",
4
4
  "description": "TypeScript definitions for Node.js",
5
5
  "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node",
6
6
  "license": "MIT",
@@ -232,6 +232,6 @@
232
232
  },
233
233
  "scripts": {},
234
234
  "dependencies": {},
235
- "typesPublisherContentHash": "77b1f16021a42a5f28f9061a3922380bdc6bcd9630c2405d53ff935c6538793c",
235
+ "typesPublisherContentHash": "8ccebbf79ef4c9ade9cde2b505492190d140170bf4372bb3fe1ebd36e9344eac",
236
236
  "typeScriptVersion": "4.3"
237
237
  }
@@ -1114,11 +1114,11 @@
1114
1114
  }
1115
1115
  },
1116
1116
  "node_modules/@smithy/protocol-http": {
1117
- "version": "1.1.0",
1118
- "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-1.1.0.tgz",
1119
- "integrity": "sha512-H5y/kZOqfJSqRkwtcAoVbqONmhdXwSgYNJ1Glk5Ry8qlhVVy5qUzD9EklaCH8/XLnoCsLO/F/Giee8MIvaBRkg==",
1117
+ "version": "1.1.1",
1118
+ "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-1.1.1.tgz",
1119
+ "integrity": "sha512-mFLFa2sSvlUxm55U7B4YCIsJJIMkA6lHxwwqOaBkral1qxFz97rGffP/mmd4JDuin1EnygiO5eNJGgudiUgmDQ==",
1120
1120
  "dependencies": {
1121
- "@smithy/types": "^1.1.0",
1121
+ "@smithy/types": "^1.1.1",
1122
1122
  "tslib": "^2.5.0"
1123
1123
  },
1124
1124
  "engines": {
@@ -1126,9 +1126,9 @@
1126
1126
  }
1127
1127
  },
1128
1128
  "node_modules/@smithy/types": {
1129
- "version": "1.1.0",
1130
- "resolved": "https://registry.npmjs.org/@smithy/types/-/types-1.1.0.tgz",
1131
- "integrity": "sha512-KzmvisMmuwD2jZXuC9e65JrgsZM97y5NpDU7g347oB+Q+xQLU6hQZ5zFNNbEfwwOJHoOvEVTna+dk1h/lW7alw==",
1129
+ "version": "1.1.1",
1130
+ "resolved": "https://registry.npmjs.org/@smithy/types/-/types-1.1.1.tgz",
1131
+ "integrity": "sha512-tMpkreknl2gRrniHeBtdgQwaOlo39df8RxSrwsHVNIGXULy5XP6KqgScUw2m12D15wnJCKWxVhCX+wbrBW/y7g==",
1132
1132
  "dependencies": {
1133
1133
  "tslib": "^2.5.0"
1134
1134
  },
@@ -1137,9 +1137,9 @@
1137
1137
  }
1138
1138
  },
1139
1139
  "node_modules/@types/node": {
1140
- "version": "20.3.2",
1141
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.2.tgz",
1142
- "integrity": "sha512-vOBLVQeCQfIcF/2Y7eKFTqrMnizK5lRNQ7ykML/5RuwVXVWxYkgwS7xbt4B6fKCUPgbSL5FSsjHQpaGQP/dQmw==",
1140
+ "version": "20.4.2",
1141
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.2.tgz",
1142
+ "integrity": "sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==",
1143
1143
  "dev": true
1144
1144
  },
1145
1145
  "node_modules/ansi-regex": {
@@ -1,5 +1,5 @@
1
- import { LambdaClient, ListLayerVersionsCommand, ListLayerVersionsCommandOutput } from "@aws-sdk/client-lambda";
2
- import { PublishCommand, SNSClient } from "@aws-sdk/client-sns";
1
+ import { LambdaClient, ListLayerVersionsCommand, ListLayerVersionsCommandOutput } from '@aws-sdk/client-lambda';
2
+ import { PublishCommand, SNSClient } from '@aws-sdk/client-sns';
3
3
 
4
4
  const MAX_ITEMS = 50;
5
5
  const { LAYER_NAME, SNS_TOPIC_ARN, SNS_TOPIC_REGION } = process.env;
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "compilerOptions": {
3
- "target": "ES2015", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
4
- "module": "commonjs", /* Specify what module code is generated. */
5
- "rootDir": "./src", /* Specify the root folder within your source files. */
6
- "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */
7
- "outDir": "./lib", /* Specify an output folder for all emitted files. */
8
- "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
9
- "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
10
- "strict": true, /* Enable all strict type-checking options. */
11
- "skipLibCheck": true /* Skip type checking all .d.ts files. */
3
+ "target": "ES2015" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */,
4
+ "module": "commonjs" /* Specify what module code is generated. */,
5
+ "rootDir": "./src" /* Specify the root folder within your source files. */,
6
+ "moduleResolution": "node" /* Specify how TypeScript looks up a file from a given module specifier. */,
7
+ "outDir": "./lib" /* Specify an output folder for all emitted files. */,
8
+ "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */,
9
+ "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */,
10
+ "strict": true /* Enable all strict type-checking options. */,
11
+ "skipLibCheck": true /* Skip type checking all .d.ts files. */
12
12
  }
13
13
  }
@@ -5,6 +5,8 @@ import { DBAdapter, DBConfig, getDBAdapter } from 'rds-query-processor';
5
5
  let adapter: DBAdapter;
6
6
  let secretsClient: SSMClient;
7
7
 
8
+ const delay = (ms: number): Promise<void> => new Promise((resolve) => setTimeout(resolve, ms));
9
+
8
10
  export const run = async (event): Promise<any> => {
9
11
  if (!adapter) {
10
12
  const config = await getDBConfig();
@@ -18,7 +20,13 @@ const createSSMClient = (): void => {
18
20
  secretsClient = new SSMClient({});
19
21
  };
20
22
 
21
- const getSSMValue = async(key: string | undefined): Promise<string> => {
23
+ const wait10SecondsAndThrowError = async (): Promise<void> => {
24
+ await delay(10000);
25
+ console.log('Unable to retrieve secret for database connection from SSM. If your database is in VPC, verify that you have VPC endpoints for SSM defined and the security group\'s inbound rule for port 443 is defined.');
26
+ throw new Error('Unable to get the database credentials. Check the logs for more details.');
27
+ };
28
+
29
+ const getSSMValue = async (key: string | undefined): Promise<string> => {
22
30
  if (!key) {
23
31
  throw Error('Key not provided to retrieve database connection secret');
24
32
  }
@@ -26,11 +34,16 @@ const getSSMValue = async(key: string | undefined): Promise<string> => {
26
34
  Name: key,
27
35
  WithDecryption: true,
28
36
  });
29
- const data = await secretsClient.send(parameterCommand);
30
- if ((data.$metadata?.httpStatusCode && data?.$metadata?.httpStatusCode >= 400) || !data.Parameter?.Value) {
37
+
38
+ // When the lambda is deployed in VPC and VPC endpoints for SSM are not defined or
39
+ // the security group's inbound rule for port 443 is not defined,
40
+ // the SSM client waits for the entire lambda execution time and times out.
41
+ // If the parameter is not retrieved within 10 seconds, throw an error.
42
+ const data = await Promise.race([secretsClient.send(parameterCommand), wait10SecondsAndThrowError()]);
43
+ if ((data?.$metadata?.httpStatusCode && data?.$metadata?.httpStatusCode >= 400) || !data?.Parameter?.Value) {
31
44
  throw new Error('Unable to get secret for database connection');
32
45
  }
33
- return data.Parameter?.Value;
46
+ return data.Parameter.Value;
34
47
  };
35
48
 
36
49
  const getDBConfig = async (): DBConfig => {