@aws-amplify/graphql-api-construct 1.4.0-construct-publish-test.0 → 1.4.0-nov-14-cut-1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (408) hide show
  1. package/.jsii +677 -192
  2. package/API.md +53 -13
  3. package/CHANGELOG.md +9 -1
  4. package/README.md +414 -88
  5. package/lib/amplify-dynamodb-table-wrapper.js +1 -1
  6. package/lib/amplify-graphql-api.d.ts +7 -0
  7. package/lib/amplify-graphql-api.js +69 -6
  8. package/lib/amplify-graphql-definition.d.ts +21 -10
  9. package/lib/amplify-graphql-definition.js +33 -21
  10. package/lib/index.d.ts +1 -1
  11. package/lib/index.js +1 -1
  12. package/lib/internal/data-source-config.d.ts +6 -2
  13. package/lib/internal/data-source-config.js +19 -7
  14. package/lib/internal/default-parameters.js +3 -1
  15. package/lib/internal/model-type-name.d.ts +2 -2
  16. package/lib/internal/model-type-name.js +25 -15
  17. package/lib/sql-model-datasource-strategy.d.ts +25 -0
  18. package/lib/sql-model-datasource-strategy.js +57 -0
  19. package/lib/types.d.ts +176 -40
  20. package/lib/types.js +1 -1
  21. package/node_modules/@aws-amplify/graphql-auth-transformer/API.md +5 -1
  22. package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +15 -2
  23. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.d.ts +3 -1
  24. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.d.ts.map +1 -1
  25. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.js +64 -50
  26. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.js.map +1 -1
  27. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/index.d.ts.map +1 -1
  28. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/index.js +3 -0
  29. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/index.js.map +1 -1
  30. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/schema.d.ts.map +1 -1
  31. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/schema.js.map +1 -1
  32. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/validations.d.ts +3 -2
  33. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/validations.d.ts.map +1 -1
  34. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/validations.js +4 -1
  35. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/validations.js.map +1 -1
  36. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/ddb-vtl-generator.d.ts +20 -0
  37. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/ddb-vtl-generator.d.ts.map +1 -0
  38. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/ddb-vtl-generator.js +24 -0
  39. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/ddb-vtl-generator.js.map +1 -0
  40. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/field.d.ts +1 -1
  41. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/field.d.ts.map +1 -0
  42. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/field.js +1 -1
  43. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/field.js.map +1 -0
  44. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/helpers.d.ts +1 -1
  45. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/helpers.d.ts.map +1 -0
  46. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/helpers.js +1 -1
  47. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/helpers.js.map +1 -0
  48. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/index.d.ts.map +1 -0
  49. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/index.js.map +1 -0
  50. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/mutation.create.d.ts +1 -1
  51. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/mutation.create.d.ts.map +1 -0
  52. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/mutation.create.js +1 -1
  53. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/mutation.create.js.map +1 -0
  54. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/mutation.delete.d.ts +1 -1
  55. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/mutation.delete.d.ts.map +1 -0
  56. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/mutation.delete.js +1 -1
  57. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/mutation.delete.js.map +1 -0
  58. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/mutation.update.d.ts +1 -1
  59. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/mutation.update.d.ts.map +1 -0
  60. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/mutation.update.js +1 -1
  61. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/mutation.update.js.map +1 -0
  62. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/query.d.ts +6 -0
  63. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/query.d.ts.map +1 -0
  64. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/query.js +28 -3
  65. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/query.js.map +1 -0
  66. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/search.d.ts +1 -1
  67. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/search.d.ts.map +1 -0
  68. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/search.js +1 -1
  69. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/search.js.map +1 -0
  70. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/subscriptions.d.ts +3 -0
  71. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/subscriptions.d.ts.map +1 -0
  72. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/subscriptions.js +1 -1
  73. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/subscriptions.js.map +1 -0
  74. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/rds-vtl-generator.d.ts +20 -0
  75. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/rds-vtl-generator.d.ts.map +1 -0
  76. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/rds-vtl-generator.js +24 -0
  77. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/rds-vtl-generator.js.map +1 -0
  78. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/common.d.ts +13 -0
  79. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/common.d.ts.map +1 -0
  80. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/common.js +157 -0
  81. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/common.js.map +1 -0
  82. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/index.d.ts +5 -0
  83. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/index.d.ts.map +1 -0
  84. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/index.js +21 -0
  85. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/index.js.map +1 -0
  86. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/mutation.d.ts +8 -0
  87. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/mutation.d.ts.map +1 -0
  88. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/mutation.js +56 -0
  89. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/mutation.js.map +1 -0
  90. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/query.d.ts +8 -0
  91. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/query.d.ts.map +1 -0
  92. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/query.js +41 -0
  93. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/query.js.map +1 -0
  94. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers/subscriptions.d.ts → vtl-generator/rds/resolvers/subscription.d.ts} +2 -2
  95. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/subscription.d.ts.map +1 -0
  96. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/subscription.js +18 -0
  97. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/subscription.js.map +1 -0
  98. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/vtl-generator.d.ts +19 -0
  99. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/vtl-generator.d.ts.map +1 -0
  100. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/vtl-generator.js +3 -0
  101. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/vtl-generator.js.map +1 -0
  102. package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +10 -10
  103. package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +5 -2
  104. package/node_modules/@aws-amplify/graphql-default-value-transformer/lib/graphql-default-value-transformer.d.ts.map +1 -1
  105. package/node_modules/@aws-amplify/graphql-default-value-transformer/lib/graphql-default-value-transformer.js +13 -1
  106. package/node_modules/@aws-amplify/graphql-default-value-transformer/lib/graphql-default-value-transformer.js.map +1 -1
  107. package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +7 -7
  108. package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +1 -1
  109. package/node_modules/@aws-amplify/graphql-function-transformer/package.json +6 -6
  110. package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +1 -1
  111. package/node_modules/@aws-amplify/graphql-http-transformer/package.json +6 -6
  112. package/node_modules/@aws-amplify/graphql-index-transformer/API.md +2 -2
  113. package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +8 -1
  114. package/node_modules/@aws-amplify/graphql-index-transformer/lib/graphql-primary-key-transformer.d.ts +1 -1
  115. package/node_modules/@aws-amplify/graphql-index-transformer/lib/graphql-primary-key-transformer.d.ts.map +1 -1
  116. package/node_modules/@aws-amplify/graphql-index-transformer/lib/graphql-primary-key-transformer.js +7 -7
  117. package/node_modules/@aws-amplify/graphql-index-transformer/lib/graphql-primary-key-transformer.js.map +1 -1
  118. package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/generators/rds-vtl-generator.d.ts.map +1 -1
  119. package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/generators/rds-vtl-generator.js +4 -1
  120. package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/generators/rds-vtl-generator.js.map +1 -1
  121. package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.d.ts +17 -16
  122. package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.d.ts.map +1 -1
  123. package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.js +134 -119
  124. package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.js.map +1 -1
  125. package/node_modules/@aws-amplify/graphql-index-transformer/package.json +7 -7
  126. package/node_modules/@aws-amplify/graphql-maps-to-transformer/API.md +15 -0
  127. package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +10 -2
  128. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
  129. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/field-mapping-resolvers.d.ts +1 -0
  130. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/field-mapping-resolvers.d.ts.map +1 -1
  131. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/field-mapping-resolvers.js +13 -1
  132. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/field-mapping-resolvers.js.map +1 -1
  133. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-maps-to-transformer.d.ts +2 -1
  134. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-maps-to-transformer.d.ts.map +1 -1
  135. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-maps-to-transformer.js +16 -33
  136. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-maps-to-transformer.js.map +1 -1
  137. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-name-mapping.d.ts +10 -0
  138. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-name-mapping.d.ts.map +1 -0
  139. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-name-mapping.js +102 -0
  140. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-name-mapping.js.map +1 -0
  141. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-refers-to-transformer.d.ts +13 -0
  142. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-refers-to-transformer.d.ts.map +1 -0
  143. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-refers-to-transformer.js +81 -0
  144. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-refers-to-transformer.js.map +1 -0
  145. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/index.d.ts +1 -0
  146. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/index.d.ts.map +1 -1
  147. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/index.js +3 -1
  148. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/index.js.map +1 -1
  149. package/node_modules/@aws-amplify/graphql-maps-to-transformer/package.json +12 -12
  150. package/node_modules/@aws-amplify/graphql-model-transformer/API.md +15 -15
  151. package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +18 -1
  152. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.d.ts.map +1 -1
  153. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.js +28 -13
  154. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.js.map +1 -1
  155. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-types/mutation.d.ts.map +1 -1
  156. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-types/mutation.js +9 -2
  157. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-types/mutation.js.map +1 -1
  158. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
  159. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
  160. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
  161. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/dynamodb-vtl-generator.d.ts +6 -5
  162. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/dynamodb-vtl-generator.d.ts.map +1 -1
  163. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/dynamodb-vtl-generator.js +5 -5
  164. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/dynamodb-vtl-generator.js.map +1 -1
  165. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/rds-vtl-generator.d.ts +6 -5
  166. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/rds-vtl-generator.d.ts.map +1 -1
  167. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/rds-vtl-generator.js +11 -11
  168. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/rds-vtl-generator.js.map +1 -1
  169. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/vtl-generator.d.ts +6 -5
  170. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/vtl-generator.d.ts.map +1 -1
  171. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/mutation.d.ts +4 -3
  172. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/mutation.d.ts.map +1 -1
  173. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/mutation.js +74 -55
  174. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/mutation.js.map +1 -1
  175. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/query.d.ts +2 -1
  176. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/query.d.ts.map +1 -1
  177. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/query.js +8 -2
  178. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/query.js.map +1 -1
  179. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.d.ts +11 -4
  180. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.d.ts.map +1 -1
  181. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.js +153 -58
  182. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.js.map +1 -1
  183. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.d.ts +0 -2
  184. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.d.ts.map +1 -1
  185. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.js +8 -5
  186. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.js.map +1 -1
  187. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.d.ts +2 -0
  188. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.d.ts.map +1 -1
  189. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.js +3 -1
  190. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.js.map +1 -1
  191. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.d.ts +1 -1
  192. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.d.ts.map +1 -1
  193. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.js +79 -39
  194. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.js.map +1 -1
  195. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/model-resource-generator.js +5 -5
  196. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/model-resource-generator.js.map +1 -1
  197. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.d.ts +2 -1
  198. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.d.ts.map +1 -1
  199. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js +43 -16
  200. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js.map +1 -1
  201. package/node_modules/@aws-amplify/graphql-model-transformer/package.json +9 -9
  202. package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +1 -1
  203. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
  204. package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +6 -6
  205. package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +9 -1
  206. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.d.ts.map +1 -1
  207. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.js +41 -9
  208. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.js.map +1 -1
  209. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.d.ts.map +1 -1
  210. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.js +35 -8
  211. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.js.map +1 -1
  212. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.d.ts.map +1 -1
  213. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.js +30 -8
  214. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.js.map +1 -1
  215. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-many-to-many-transformer.d.ts.map +1 -1
  216. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-many-to-many-transformer.js +3 -2
  217. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-many-to-many-transformer.js.map +1 -1
  218. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-generator.d.ts +13 -0
  219. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-generator.d.ts.map +1 -0
  220. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-generator.js +171 -0
  221. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-generator.js.map +1 -0
  222. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator-factory.d.ts +4 -0
  223. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator-factory.d.ts.map +1 -0
  224. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator-factory.js +18 -0
  225. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator-factory.js.map +1 -0
  226. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator.d.ts +8 -0
  227. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator.d.ts.map +1 -0
  228. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator.js +7 -0
  229. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator.js.map +1 -0
  230. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/rds-generator.d.ts +14 -0
  231. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/rds-generator.d.ts.map +1 -0
  232. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/rds-generator.js +115 -0
  233. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/rds-generator.js.map +1 -0
  234. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.d.ts +5 -5
  235. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.d.ts.map +1 -1
  236. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.js +23 -169
  237. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.js.map +1 -1
  238. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/schema.d.ts.map +1 -1
  239. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/schema.js +14 -8
  240. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/schema.js.map +1 -1
  241. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/types.d.ts +4 -0
  242. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/types.d.ts.map +1 -1
  243. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.d.ts +5 -0
  244. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.d.ts.map +1 -1
  245. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.js +85 -1
  246. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.js.map +1 -1
  247. package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +9 -9
  248. package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +4 -2
  249. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/graphql-searchable-transformer.d.ts.map +1 -1
  250. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/graphql-searchable-transformer.js +3 -0
  251. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/graphql-searchable-transformer.js.map +1 -1
  252. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
  253. package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +7 -7
  254. package/node_modules/@aws-amplify/graphql-sql-transformer/API.md +26 -0
  255. package/node_modules/@aws-amplify/graphql-sql-transformer/CHANGELOG.md +14 -0
  256. package/node_modules/@aws-amplify/graphql-sql-transformer/LICENSE +201 -0
  257. package/node_modules/@aws-amplify/graphql-sql-transformer/README.md +13 -0
  258. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/graphql-sql-transformer.d.ts +12 -0
  259. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/graphql-sql-transformer.d.ts.map +1 -0
  260. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/graphql-sql-transformer.js +132 -0
  261. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/graphql-sql-transformer.js.map +1 -0
  262. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/index.d.ts +2 -0
  263. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/index.d.ts.map +1 -0
  264. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/index.js +6 -0
  265. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/index.js.map +1 -0
  266. package/node_modules/@aws-amplify/graphql-sql-transformer/package.json +71 -0
  267. package/node_modules/@aws-amplify/graphql-transformer/API.md +4 -0
  268. package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +11 -1
  269. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts +4 -1
  270. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts.map +1 -1
  271. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js +7 -2
  272. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js.map +1 -1
  273. package/node_modules/@aws-amplify/graphql-transformer/package.json +15 -14
  274. package/node_modules/@aws-amplify/graphql-transformer/src/graphql-transformer.ts +12 -2
  275. package/node_modules/@aws-amplify/graphql-transformer-core/API.md +33 -5
  276. package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +16 -1
  277. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.d.ts +2 -2
  278. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.d.ts.map +1 -1
  279. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.js +10 -2
  280. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.js.map +1 -1
  281. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transform-host.d.ts.map +1 -1
  282. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transform-host.js +2 -1
  283. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transform-host.js.map +1 -1
  284. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/sync-utils.d.ts.map +1 -1
  285. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/sync-utils.js.map +1 -1
  286. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.d.ts +4 -3
  287. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.d.ts.map +1 -1
  288. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.js +3 -3
  289. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.js.map +1 -1
  290. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/types.d.ts +1 -0
  291. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/types.d.ts.map +1 -1
  292. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/datasource.d.ts +4 -5
  293. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/datasource.d.ts.map +1 -1
  294. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/datasource.js.map +1 -1
  295. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.d.ts +5 -3
  296. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.d.ts.map +1 -1
  297. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.js +3 -1
  298. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.js.map +1 -1
  299. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/transform-parameters.d.ts.map +1 -1
  300. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/transform-parameters.js +2 -0
  301. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/transform-parameters.js.map +1 -1
  302. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/import-appsync-api-types.d.ts +6 -5
  303. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/import-appsync-api-types.d.ts.map +1 -1
  304. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/import-appsync-api-types.js +4 -3
  305. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/import-appsync-api-types.js.map +1 -1
  306. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/index.d.ts +1 -1
  307. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/index.d.ts.map +1 -1
  308. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/index.js +3 -2
  309. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/index.js.map +1 -1
  310. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/api-category.d.ts +2 -0
  311. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/api-category.d.ts.map +1 -0
  312. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/api-category.js +5 -0
  313. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/api-category.js.map +1 -0
  314. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.d.ts +3 -2
  315. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.d.ts.map +1 -1
  316. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.js +14 -3
  317. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.js.map +1 -1
  318. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-util.d.ts +3 -0
  319. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-util.d.ts.map +1 -0
  320. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-util.js +19 -0
  321. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-util.js.map +1 -0
  322. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.d.ts +12 -0
  323. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.d.ts.map +1 -0
  324. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.js +82 -0
  325. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.js.map +1 -0
  326. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/schema-utils.d.ts +3 -2
  327. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/schema-utils.d.ts.map +1 -1
  328. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/schema-utils.js +7 -1
  329. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/schema-utils.js.map +1 -1
  330. package/node_modules/@aws-amplify/graphql-transformer-core/lib/wrappers/object-definition-wrapper.d.ts +1 -1
  331. package/node_modules/@aws-amplify/graphql-transformer-core/lib/wrappers/object-definition-wrapper.d.ts.map +1 -1
  332. package/node_modules/@aws-amplify/graphql-transformer-core/package.json +4 -4
  333. package/node_modules/@aws-amplify/graphql-transformer-interfaces/API.md +47 -14
  334. package/node_modules/@aws-amplify/graphql-transformer-interfaces/CHANGELOG.md +7 -1
  335. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/graphql-api-provider.d.ts +15 -8
  336. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/graphql-api-provider.d.ts.map +1 -1
  337. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/graphql-api-provider.js.map +1 -1
  338. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/index.d.ts +1 -1
  339. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/index.d.ts.map +1 -1
  340. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/index.js.map +1 -1
  341. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.d.ts +1 -1
  342. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.d.ts.map +1 -1
  343. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.js +2 -1
  344. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.js.map +1 -1
  345. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transform-parameters.d.ts +2 -0
  346. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transform-parameters.d.ts.map +1 -1
  347. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-context-provider.d.ts +3 -1
  348. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-context-provider.d.ts.map +1 -1
  349. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-datasource-provider.d.ts +9 -5
  350. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-datasource-provider.d.ts.map +1 -1
  351. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-datasource-provider.js +5 -1
  352. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-datasource-provider.js.map +1 -1
  353. package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +2 -2
  354. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/graphql-api-provider.ts +38 -11
  355. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/index.ts +3 -0
  356. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/index.ts +2 -0
  357. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/transform-parameters.ts +2 -0
  358. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/transformer-context-provider.ts +9 -1
  359. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/transformer-datasource-provider.ts +28 -7
  360. package/node_modules/@aws-amplify/graphql-transformer-interfaces/tsconfig.tsbuildinfo +1 -1
  361. package/node_modules/graphql-transformer-common/API.md +33 -9
  362. package/node_modules/graphql-transformer-common/CHANGELOG.md +9 -1
  363. package/node_modules/graphql-transformer-common/lib/ResourceConstants.d.ts +12 -9
  364. package/node_modules/graphql-transformer-common/lib/ResourceConstants.d.ts.map +1 -1
  365. package/node_modules/graphql-transformer-common/lib/ResourceConstants.js +12 -9
  366. package/node_modules/graphql-transformer-common/lib/ResourceConstants.js.map +1 -1
  367. package/node_modules/graphql-transformer-common/lib/definition.d.ts +9 -2
  368. package/node_modules/graphql-transformer-common/lib/definition.d.ts.map +1 -1
  369. package/node_modules/graphql-transformer-common/lib/definition.js +52 -1
  370. package/node_modules/graphql-transformer-common/lib/definition.js.map +1 -1
  371. package/node_modules/graphql-transformer-common/lib/util.d.ts.map +1 -1
  372. package/node_modules/graphql-transformer-common/lib/util.js +3 -1
  373. package/node_modules/graphql-transformer-common/lib/util.js.map +1 -1
  374. package/node_modules/graphql-transformer-common/package.json +5 -5
  375. package/package.json +31 -29
  376. package/src/amplify-graphql-api.ts +82 -5
  377. package/src/amplify-graphql-definition.ts +34 -21
  378. package/src/index.ts +14 -5
  379. package/src/internal/data-source-config.ts +27 -9
  380. package/src/internal/default-parameters.ts +2 -0
  381. package/src/internal/model-type-name.ts +28 -19
  382. package/src/sql-model-datasource-strategy.ts +62 -0
  383. package/src/types.ts +208 -45
  384. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/field.d.ts.map +0 -1
  385. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/field.js.map +0 -1
  386. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/helpers.d.ts.map +0 -1
  387. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/helpers.js.map +0 -1
  388. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/index.d.ts.map +0 -1
  389. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/index.js.map +0 -1
  390. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.create.d.ts.map +0 -1
  391. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.create.js.map +0 -1
  392. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.delete.d.ts.map +0 -1
  393. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.delete.js.map +0 -1
  394. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.update.d.ts.map +0 -1
  395. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.update.js.map +0 -1
  396. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/query.d.ts +0 -6
  397. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/query.d.ts.map +0 -1
  398. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/query.js.map +0 -1
  399. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/search.d.ts.map +0 -1
  400. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/search.js.map +0 -1
  401. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/subscriptions.d.ts.map +0 -1
  402. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/subscriptions.js.map +0 -1
  403. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-secret-utils.d.ts +0 -2
  404. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-secret-utils.d.ts.map +0 -1
  405. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-secret-utils.js +0 -25
  406. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-secret-utils.js.map +0 -1
  407. /package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/index.d.ts +0 -0
  408. /package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/index.js +0 -0
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseDataSourceConfig = void 0;
4
- const convertToDataSourceType = (modelDataSourceDefinition) => {
5
- const { strategy } = modelDataSourceDefinition;
6
- if (strategy.dbType === 'DYNAMODB') {
7
- switch (strategy.provisionStrategy) {
4
+ // TODO: Do away with this after we normalize database types throughout the internals
5
+ const convertSQLDBType = (definitionDBType) => (definitionDBType === 'MYSQL' ? 'MySQL' : 'Postgres');
6
+ const convertToDataSourceType = (dataSourceStrategy) => {
7
+ if (dataSourceStrategy.dbType === 'DYNAMODB') {
8
+ switch (dataSourceStrategy.provisionStrategy) {
8
9
  case 'DEFAULT':
9
10
  return {
10
11
  dbType: 'DDB',
@@ -18,11 +19,22 @@ const convertToDataSourceType = (modelDataSourceDefinition) => {
18
19
  provisionStrategy: "AMPLIFY_TABLE" /* DynamoDBProvisionStrategy.AMPLIFY_TABLE */,
19
20
  };
20
21
  default:
21
- throw new Error(`Encountered unexpected provision strategy: ${strategy.provisionStrategy}`);
22
+ throw new Error(`Encountered unexpected provision strategy: ${dataSourceStrategy.provisionStrategy}`);
22
23
  }
23
24
  }
24
- throw new Error(`Encountered unexpected database type ${strategy.dbType}`);
25
+ else if (dataSourceStrategy.dbType === 'MYSQL' || dataSourceStrategy.dbType === 'POSTGRES') {
26
+ return {
27
+ dbType: convertSQLDBType(dataSourceStrategy.dbType),
28
+ provisionDB: false,
29
+ provisionStrategy: "DEFAULT" /* SQLLambdaModelProvisionStrategy.DEFAULT */,
30
+ };
31
+ }
32
+ throw new Error(`Encountered unexpected database type ${dataSourceStrategy.dbType}`);
25
33
  };
34
+ /**
35
+ * An internal helper to convert from a map of model-to-ModelDataSourceStrategies to the map of model-to-DataSourceTypes that internal
36
+ * transform processing requires. TODO: We can remove this once we refactor the internals to use ModelDataSourceStrategies natively.
37
+ */
26
38
  const parseDataSourceConfig = (dataSourceDefinitionMap) => {
27
39
  const modelToDatasourceMap = new Map();
28
40
  for (const [key, value] of Object.entries(dataSourceDefinitionMap)) {
@@ -34,4 +46,4 @@ const parseDataSourceConfig = (dataSourceDefinitionMap) => {
34
46
  };
35
47
  };
36
48
  exports.parseDataSourceConfig = parseDataSourceConfig;
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL2RhdGEtc291cmNlLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFNQSxNQUFNLHVCQUF1QixHQUFHLENBQUMseUJBQW9ELEVBQWtCLEVBQUU7SUFDdkcsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLHlCQUF5QixDQUFDO0lBQy9DLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxVQUFVLEVBQUU7UUFDbEMsUUFBUSxRQUFRLENBQUMsaUJBQWlCLEVBQUU7WUFDbEMsS0FBSyxTQUFTO2dCQUNaLE9BQU87b0JBQ0wsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsV0FBVyxFQUFFLElBQUk7b0JBQ2pCLGlCQUFpQixtREFBbUM7aUJBQ3JELENBQUM7WUFDSixLQUFLLGVBQWU7Z0JBQ2xCLE9BQU87b0JBQ0wsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsV0FBVyxFQUFFLElBQUk7b0JBQ2pCLGlCQUFpQiwrREFBeUM7aUJBQzNELENBQUM7WUFDSjtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDhDQUErQyxRQUFnQixDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztTQUN4RztLQUNGO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDN0UsQ0FBQyxDQUFDO0FBRUssTUFBTSxxQkFBcUIsR0FBRyxDQUFDLHVCQUFrRSxFQUFvQixFQUFFO0lBQzVILE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUM7SUFDL0QsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsRUFBRTtRQUNsRSxNQUFNLGNBQWMsR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0RCxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0tBQy9DO0lBQ0QsT0FBTztRQUNMLG9CQUFvQjtLQUNyQixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBVFcsUUFBQSxxQkFBcUIseUJBU2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWxEYXRhU291cmNlRGVmaW5pdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IERhdGFTb3VyY2VUeXBlLCBEeW5hbW9EQlByb3Zpc2lvblN0cmF0ZWd5IH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2dyYXBocWwtdHJhbnNmb3JtZXItaW50ZXJmYWNlcyc7XG5cbnR5cGUgRGF0YVNvdXJjZUNvbmZpZyA9IHtcbiAgbW9kZWxUb0RhdGFzb3VyY2VNYXA6IE1hcDxzdHJpbmcsIERhdGFTb3VyY2VUeXBlPjtcbn07XG5jb25zdCBjb252ZXJ0VG9EYXRhU291cmNlVHlwZSA9IChtb2RlbERhdGFTb3VyY2VEZWZpbml0aW9uOiBNb2RlbERhdGFTb3VyY2VEZWZpbml0aW9uKTogRGF0YVNvdXJjZVR5cGUgPT4ge1xuICBjb25zdCB7IHN0cmF0ZWd5IH0gPSBtb2RlbERhdGFTb3VyY2VEZWZpbml0aW9uO1xuICBpZiAoc3RyYXRlZ3kuZGJUeXBlID09PSAnRFlOQU1PREInKSB7XG4gICAgc3dpdGNoIChzdHJhdGVneS5wcm92aXNpb25TdHJhdGVneSkge1xuICAgICAgY2FzZSAnREVGQVVMVCc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGJUeXBlOiAnRERCJyxcbiAgICAgICAgICBwcm92aXNpb25EQjogdHJ1ZSxcbiAgICAgICAgICBwcm92aXNpb25TdHJhdGVneTogRHluYW1vREJQcm92aXNpb25TdHJhdGVneS5ERUZBVUxULFxuICAgICAgICB9O1xuICAgICAgY2FzZSAnQU1QTElGWV9UQUJMRSc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGJUeXBlOiAnRERCJyxcbiAgICAgICAgICBwcm92aXNpb25EQjogdHJ1ZSxcbiAgICAgICAgICBwcm92aXNpb25TdHJhdGVneTogRHluYW1vREJQcm92aXNpb25TdHJhdGVneS5BTVBMSUZZX1RBQkxFLFxuICAgICAgICB9O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFbmNvdW50ZXJlZCB1bmV4cGVjdGVkIHByb3Zpc2lvbiBzdHJhdGVneTogJHsoc3RyYXRlZ3kgYXMgYW55KS5wcm92aXNpb25TdHJhdGVneX1gKTtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBFbmNvdW50ZXJlZCB1bmV4cGVjdGVkIGRhdGFiYXNlIHR5cGUgJHtzdHJhdGVneS5kYlR5cGV9YCk7XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VEYXRhU291cmNlQ29uZmlnID0gKGRhdGFTb3VyY2VEZWZpbml0aW9uTWFwOiBSZWNvcmQ8c3RyaW5nLCBNb2RlbERhdGFTb3VyY2VEZWZpbml0aW9uPik6IERhdGFTb3VyY2VDb25maWcgPT4ge1xuICBjb25zdCBtb2RlbFRvRGF0YXNvdXJjZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBEYXRhU291cmNlVHlwZT4oKTtcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZGF0YVNvdXJjZURlZmluaXRpb25NYXApKSB7XG4gICAgY29uc3QgZGF0YVNvdXJjZVR5cGUgPSBjb252ZXJ0VG9EYXRhU291cmNlVHlwZSh2YWx1ZSk7XG4gICAgbW9kZWxUb0RhdGFzb3VyY2VNYXAuc2V0KGtleSwgZGF0YVNvdXJjZVR5cGUpO1xuICB9XG4gIHJldHVybiB7XG4gICAgbW9kZWxUb0RhdGFzb3VyY2VNYXAsXG4gIH07XG59O1xuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL2RhdGEtc291cmNlLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFZQSxxRkFBcUY7QUFDckYsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLGdCQUFzQyxFQUFhLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUV0SSxNQUFNLHVCQUF1QixHQUFHLENBQUMsa0JBQTJDLEVBQWtCLEVBQUU7SUFDOUYsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFO1FBQzVDLFFBQVEsa0JBQWtCLENBQUMsaUJBQWlCLEVBQUU7WUFDNUMsS0FBSyxTQUFTO2dCQUNaLE9BQU87b0JBQ0wsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsV0FBVyxFQUFFLElBQUk7b0JBQ2pCLGlCQUFpQixtREFBbUM7aUJBQ3JELENBQUM7WUFDSixLQUFLLGVBQWU7Z0JBQ2xCLE9BQU87b0JBQ0wsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsV0FBVyxFQUFFLElBQUk7b0JBQ2pCLGlCQUFpQiwrREFBeUM7aUJBQzNELENBQUM7WUFDSjtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDhDQUErQyxrQkFBMEIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7U0FDbEg7S0FDRjtTQUFNLElBQUksa0JBQWtCLENBQUMsTUFBTSxLQUFLLE9BQU8sSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFO1FBQzVGLE9BQU87WUFDTCxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDO1lBQ25ELFdBQVcsRUFBRSxLQUFLO1lBQ2xCLGlCQUFpQix5REFBeUM7U0FDM0QsQ0FBQztLQUNIO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0Msa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUN2RixDQUFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSSxNQUFNLHFCQUFxQixHQUFHLENBQUMsdUJBQWdFLEVBQW9CLEVBQUU7SUFDMUgsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBMEIsQ0FBQztJQUMvRCxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFO1FBQ2xFLE1BQU0sY0FBYyxHQUFHLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RELG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUM7S0FDL0M7SUFDRCxPQUFPO1FBQ0wsb0JBQW9CO0tBQ3JCLENBQUM7QUFDSixDQUFDLENBQUM7QUFUVyxRQUFBLHFCQUFxQix5QkFTaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEYXRhU291cmNlVHlwZSxcbiAgRHluYW1vREJQcm92aXNpb25TdHJhdGVneSxcbiAgU1FMREJUeXBlLFxuICBTUUxMYW1iZGFNb2RlbFByb3Zpc2lvblN0cmF0ZWd5LFxufSBmcm9tICdAYXdzLWFtcGxpZnkvZ3JhcGhxbC10cmFuc2Zvcm1lci1pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IH0gZnJvbSAnLi4vdHlwZXMnO1xuXG50eXBlIERhdGFTb3VyY2VDb25maWcgPSB7XG4gIG1vZGVsVG9EYXRhc291cmNlTWFwOiBNYXA8c3RyaW5nLCBEYXRhU291cmNlVHlwZT47XG59O1xuXG4vLyBUT0RPOiBEbyBhd2F5IHdpdGggdGhpcyBhZnRlciB3ZSBub3JtYWxpemUgZGF0YWJhc2UgdHlwZXMgdGhyb3VnaG91dCB0aGUgaW50ZXJuYWxzXG5jb25zdCBjb252ZXJ0U1FMREJUeXBlID0gKGRlZmluaXRpb25EQlR5cGU6ICdNWVNRTCcgfCAnUE9TVEdSRVMnKTogU1FMREJUeXBlID0+IChkZWZpbml0aW9uREJUeXBlID09PSAnTVlTUUwnID8gJ015U1FMJyA6ICdQb3N0Z3JlcycpO1xuXG5jb25zdCBjb252ZXJ0VG9EYXRhU291cmNlVHlwZSA9IChkYXRhU291cmNlU3RyYXRlZ3k6IE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5KTogRGF0YVNvdXJjZVR5cGUgPT4ge1xuICBpZiAoZGF0YVNvdXJjZVN0cmF0ZWd5LmRiVHlwZSA9PT0gJ0RZTkFNT0RCJykge1xuICAgIHN3aXRjaCAoZGF0YVNvdXJjZVN0cmF0ZWd5LnByb3Zpc2lvblN0cmF0ZWd5KSB7XG4gICAgICBjYXNlICdERUZBVUxUJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYlR5cGU6ICdEREInLFxuICAgICAgICAgIHByb3Zpc2lvbkRCOiB0cnVlLFxuICAgICAgICAgIHByb3Zpc2lvblN0cmF0ZWd5OiBEeW5hbW9EQlByb3Zpc2lvblN0cmF0ZWd5LkRFRkFVTFQsXG4gICAgICAgIH07XG4gICAgICBjYXNlICdBTVBMSUZZX1RBQkxFJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYlR5cGU6ICdEREInLFxuICAgICAgICAgIHByb3Zpc2lvbkRCOiB0cnVlLFxuICAgICAgICAgIHByb3Zpc2lvblN0cmF0ZWd5OiBEeW5hbW9EQlByb3Zpc2lvblN0cmF0ZWd5LkFNUExJRllfVEFCTEUsXG4gICAgICAgIH07XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEVuY291bnRlcmVkIHVuZXhwZWN0ZWQgcHJvdmlzaW9uIHN0cmF0ZWd5OiAkeyhkYXRhU291cmNlU3RyYXRlZ3kgYXMgYW55KS5wcm92aXNpb25TdHJhdGVneX1gKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoZGF0YVNvdXJjZVN0cmF0ZWd5LmRiVHlwZSA9PT0gJ01ZU1FMJyB8fCBkYXRhU291cmNlU3RyYXRlZ3kuZGJUeXBlID09PSAnUE9TVEdSRVMnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRiVHlwZTogY29udmVydFNRTERCVHlwZShkYXRhU291cmNlU3RyYXRlZ3kuZGJUeXBlKSxcbiAgICAgIHByb3Zpc2lvbkRCOiBmYWxzZSxcbiAgICAgIHByb3Zpc2lvblN0cmF0ZWd5OiBTUUxMYW1iZGFNb2RlbFByb3Zpc2lvblN0cmF0ZWd5LkRFRkFVTFQsXG4gICAgfTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYEVuY291bnRlcmVkIHVuZXhwZWN0ZWQgZGF0YWJhc2UgdHlwZSAke2RhdGFTb3VyY2VTdHJhdGVneS5kYlR5cGV9YCk7XG59O1xuXG4vKipcbiAqIEFuIGludGVybmFsIGhlbHBlciB0byBjb252ZXJ0IGZyb20gYSBtYXAgb2YgbW9kZWwtdG8tTW9kZWxEYXRhU291cmNlU3RyYXRlZ2llcyB0byB0aGUgbWFwIG9mIG1vZGVsLXRvLURhdGFTb3VyY2VUeXBlcyB0aGF0IGludGVybmFsXG4gKiB0cmFuc2Zvcm0gcHJvY2Vzc2luZyByZXF1aXJlcy4gVE9ETzogV2UgY2FuIHJlbW92ZSB0aGlzIG9uY2Ugd2UgcmVmYWN0b3IgdGhlIGludGVybmFscyB0byB1c2UgTW9kZWxEYXRhU291cmNlU3RyYXRlZ2llcyBuYXRpdmVseS5cbiAqL1xuZXhwb3J0IGNvbnN0IHBhcnNlRGF0YVNvdXJjZUNvbmZpZyA9IChkYXRhU291cmNlRGVmaW5pdGlvbk1hcDogUmVjb3JkPHN0cmluZywgTW9kZWxEYXRhU291cmNlU3RyYXRlZ3k+KTogRGF0YVNvdXJjZUNvbmZpZyA9PiB7XG4gIGNvbnN0IG1vZGVsVG9EYXRhc291cmNlTWFwID0gbmV3IE1hcDxzdHJpbmcsIERhdGFTb3VyY2VUeXBlPigpO1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhkYXRhU291cmNlRGVmaW5pdGlvbk1hcCkpIHtcbiAgICBjb25zdCBkYXRhU291cmNlVHlwZSA9IGNvbnZlcnRUb0RhdGFTb3VyY2VUeXBlKHZhbHVlKTtcbiAgICBtb2RlbFRvRGF0YXNvdXJjZU1hcC5zZXQoa2V5LCBkYXRhU291cmNlVHlwZSk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBtb2RlbFRvRGF0YXNvdXJjZU1hcCxcbiAgfTtcbn07XG4iXX0=
@@ -18,5 +18,7 @@ exports.defaultTranslationBehavior = {
18
18
  respectPrimaryKeyAttributesOnConnectionField: true,
19
19
  enableSearchNodeToNodeEncryption: false,
20
20
  enableTransformerCfnOutputs: false,
21
+ allowDestructiveGraphqlSchemaUpdates: false,
22
+ replaceTableUponGsiUpdate: false,
21
23
  };
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1wYXJhbWV0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL2RlZmF1bHQtcGFyYW1ldGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7OztHQUlHO0FBQ1UsUUFBQSwwQkFBMEIsR0FBd0I7SUFDN0Qsc0NBQXNDLEVBQUUsSUFBSTtJQUM1Qyx1QkFBdUIsRUFBRSxJQUFJO0lBQzdCLGtCQUFrQixFQUFFLEtBQUs7SUFDekIscUNBQXFDLEVBQUUsSUFBSTtJQUMzQyxvQ0FBb0MsRUFBRSxJQUFJO0lBQzFDLHdCQUF3QixFQUFFLEtBQUs7SUFDL0IsaUJBQWlCLEVBQUUsSUFBSTtJQUN2Qix5QkFBeUIsRUFBRSxJQUFJO0lBQy9CLDRDQUE0QyxFQUFFLElBQUk7SUFDbEQsZ0NBQWdDLEVBQUUsS0FBSztJQUN2QywyQkFBMkIsRUFBRSxLQUFLO0NBQ25DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2xhdGlvbkJlaGF2aW9yIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIERlZmF1bHRzIHdoaWNoIHdpbGwgYmUgdXNlZCBieSB0aGUgY29uc3RydWN0IGlmIG92ZXJyaWRlcyBhcmUgbm90IHByb3ZpZGVkLlxuICogVGhlc2Ugc2hvdWxkIG5vdCByZWFsbHkgYmUgdXBkYXRlZCBwb3N0LWxhdW5jaCwgc2luY2UgdGhleSdyZSBsaWtlbHkgYnJlYWtpbmcgY2hhbmdlcyBmb3IgY3VzdG9tZXJzLlxuICogQmUgc3VyZSB0byBkb2N1bWVudCBkZWZhdWx0IHZhbHVlcyB3aGVuIGFkZGluZyBuZXcga2V5cyBpbiB0aGUgdG9wIGxldmVsIGB0eXBlc2AgZmlsZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRUcmFuc2xhdGlvbkJlaGF2aW9yOiBUcmFuc2xhdGlvbkJlaGF2aW9yID0ge1xuICBzaG91bGREZWVwTWVyZ2VEaXJlY3RpdmVDb25maWdEZWZhdWx0czogdHJ1ZSxcbiAgZGlzYWJsZVJlc29sdmVyRGVkdXBpbmc6IHRydWUsXG4gIHNhbmRib3hNb2RlRW5hYmxlZDogZmFsc2UsXG4gIHVzZVN1YlVzZXJuYW1lRm9yRGVmYXVsdElkZW50aXR5Q2xhaW06IHRydWUsXG4gIHBvcHVsYXRlT3duZXJGaWVsZEZvclN0YXRpY0dyb3VwQXV0aDogdHJ1ZSxcbiAgc3VwcHJlc3NBcGlLZXlHZW5lcmF0aW9uOiBmYWxzZSxcbiAgc2Vjb25kYXJ5S2V5QXNHU0k6IHRydWUsXG4gIGVuYWJsZUF1dG9JbmRleFF1ZXJ5TmFtZXM6IHRydWUsXG4gIHJlc3BlY3RQcmltYXJ5S2V5QXR0cmlidXRlc09uQ29ubmVjdGlvbkZpZWxkOiB0cnVlLFxuICBlbmFibGVTZWFyY2hOb2RlVG9Ob2RlRW5jcnlwdGlvbjogZmFsc2UsXG4gIGVuYWJsZVRyYW5zZm9ybWVyQ2ZuT3V0cHV0czogZmFsc2UsXG59O1xuIl19
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1wYXJhbWV0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL2RlZmF1bHQtcGFyYW1ldGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7OztHQUlHO0FBQ1UsUUFBQSwwQkFBMEIsR0FBd0I7SUFDN0Qsc0NBQXNDLEVBQUUsSUFBSTtJQUM1Qyx1QkFBdUIsRUFBRSxJQUFJO0lBQzdCLGtCQUFrQixFQUFFLEtBQUs7SUFDekIscUNBQXFDLEVBQUUsSUFBSTtJQUMzQyxvQ0FBb0MsRUFBRSxJQUFJO0lBQzFDLHdCQUF3QixFQUFFLEtBQUs7SUFDL0IsaUJBQWlCLEVBQUUsSUFBSTtJQUN2Qix5QkFBeUIsRUFBRSxJQUFJO0lBQy9CLDRDQUE0QyxFQUFFLElBQUk7SUFDbEQsZ0NBQWdDLEVBQUUsS0FBSztJQUN2QywyQkFBMkIsRUFBRSxLQUFLO0lBQ2xDLG9DQUFvQyxFQUFFLEtBQUs7SUFDM0MseUJBQXlCLEVBQUUsS0FBSztDQUNqQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNsYXRpb25CZWhhdmlvciB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBEZWZhdWx0cyB3aGljaCB3aWxsIGJlIHVzZWQgYnkgdGhlIGNvbnN0cnVjdCBpZiBvdmVycmlkZXMgYXJlIG5vdCBwcm92aWRlZC5cbiAqIFRoZXNlIHNob3VsZCBub3QgcmVhbGx5IGJlIHVwZGF0ZWQgcG9zdC1sYXVuY2gsIHNpbmNlIHRoZXkncmUgbGlrZWx5IGJyZWFraW5nIGNoYW5nZXMgZm9yIGN1c3RvbWVycy5cbiAqIEJlIHN1cmUgdG8gZG9jdW1lbnQgZGVmYXVsdCB2YWx1ZXMgd2hlbiBhZGRpbmcgbmV3IGtleXMgaW4gdGhlIHRvcCBsZXZlbCBgdHlwZXNgIGZpbGUuXG4gKi9cbmV4cG9ydCBjb25zdCBkZWZhdWx0VHJhbnNsYXRpb25CZWhhdmlvcjogVHJhbnNsYXRpb25CZWhhdmlvciA9IHtcbiAgc2hvdWxkRGVlcE1lcmdlRGlyZWN0aXZlQ29uZmlnRGVmYXVsdHM6IHRydWUsXG4gIGRpc2FibGVSZXNvbHZlckRlZHVwaW5nOiB0cnVlLFxuICBzYW5kYm94TW9kZUVuYWJsZWQ6IGZhbHNlLFxuICB1c2VTdWJVc2VybmFtZUZvckRlZmF1bHRJZGVudGl0eUNsYWltOiB0cnVlLFxuICBwb3B1bGF0ZU93bmVyRmllbGRGb3JTdGF0aWNHcm91cEF1dGg6IHRydWUsXG4gIHN1cHByZXNzQXBpS2V5R2VuZXJhdGlvbjogZmFsc2UsXG4gIHNlY29uZGFyeUtleUFzR1NJOiB0cnVlLFxuICBlbmFibGVBdXRvSW5kZXhRdWVyeU5hbWVzOiB0cnVlLFxuICByZXNwZWN0UHJpbWFyeUtleUF0dHJpYnV0ZXNPbkNvbm5lY3Rpb25GaWVsZDogdHJ1ZSxcbiAgZW5hYmxlU2VhcmNoTm9kZVRvTm9kZUVuY3J5cHRpb246IGZhbHNlLFxuICBlbmFibGVUcmFuc2Zvcm1lckNmbk91dHB1dHM6IGZhbHNlLFxuICBhbGxvd0Rlc3RydWN0aXZlR3JhcGhxbFNjaGVtYVVwZGF0ZXM6IGZhbHNlLFxuICByZXBsYWNlVGFibGVVcG9uR3NpVXBkYXRlOiBmYWxzZSxcbn07XG4iXX0=
@@ -1,8 +1,8 @@
1
- import { ModelDataSourceDefinition } from '../types';
1
+ import { ModelDataSourceStrategy } from '../types';
2
2
  /**
3
3
  * Get the type names with model directives in the GraphQL schema in SDL
4
4
  * @param schema graphql schema in SDL
5
5
  * @returns type names which model diretives are attached
6
6
  */
7
7
  export declare function getModelTypeNames(schema: string): string[];
8
- export declare function constructDataSourceDefinitionMap(schema: string, dataSourceDefinition: ModelDataSourceDefinition): Record<string, ModelDataSourceDefinition>;
8
+ export declare const constructDataSourceStrategyMap: (schema: string, dataSourceStrategy: ModelDataSourceStrategy) => Record<string, ModelDataSourceStrategy>;
@@ -1,27 +1,37 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.constructDataSourceDefinitionMap = exports.getModelTypeNames = void 0;
3
+ exports.constructDataSourceStrategyMap = exports.getModelTypeNames = void 0;
4
4
  const graphql_1 = require("graphql");
5
5
  const MODEL_DIRECTIVE_NAME = 'model';
6
+ const MANY_TO_MANY_DIRECTIVE_NAME = 'manyToMany';
6
7
  /**
7
8
  * Get the type names with model directives in the GraphQL schema in SDL
8
9
  * @param schema graphql schema in SDL
9
10
  * @returns type names which model diretives are attached
10
11
  */
11
12
  function getModelTypeNames(schema) {
12
- const parsedDocument = (0, graphql_1.parse)(schema);
13
- const nodesWithModelDirective = parsedDocument.definitions.filter((def) => def.kind === graphql_1.Kind.OBJECT_TYPE_DEFINITION &&
14
- def.directives &&
15
- def.directives.find((dir) => dir.name.value === MODEL_DIRECTIVE_NAME) != undefined);
16
- return nodesWithModelDirective.map((node) => node.name.value);
17
- }
18
- exports.getModelTypeNames = getModelTypeNames;
19
- function constructDataSourceDefinitionMap(schema, dataSourceDefinition) {
20
13
  const parsedSchema = (0, graphql_1.parse)(schema);
21
- return parsedSchema.definitions
22
- .filter((obj) => obj.kind === graphql_1.Kind.OBJECT_TYPE_DEFINITION && obj.directives?.some((dir) => dir.name.value === MODEL_DIRECTIVE_NAME))
23
- .map((type) => type.name.value)
24
- .reduce((acc, cur) => ({ ...acc, [cur]: dataSourceDefinition }), {});
14
+ const nodesWithModelDirective = parsedSchema.definitions.filter((obj) => obj.kind === graphql_1.Kind.OBJECT_TYPE_DEFINITION && obj.directives?.some((dir) => dir.name.value === MODEL_DIRECTIVE_NAME));
15
+ const modelKeys = nodesWithModelDirective.map((type) => type.name.value);
16
+ nodesWithModelDirective.forEach((obj) => {
17
+ const { fields } = obj;
18
+ fields?.forEach((field) => {
19
+ field.directives?.forEach((dir) => {
20
+ if (dir.name.value === MANY_TO_MANY_DIRECTIVE_NAME) {
21
+ const relationArg = dir.arguments?.find((arg) => arg.name.value === 'relationName');
22
+ if (relationArg) {
23
+ modelKeys.push(relationArg.value.value);
24
+ }
25
+ }
26
+ });
27
+ });
28
+ });
29
+ return modelKeys.filter((key, idx) => modelKeys.indexOf(key) === idx);
25
30
  }
26
- exports.constructDataSourceDefinitionMap = constructDataSourceDefinitionMap;
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtdHlwZS1uYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL21vZGVsLXR5cGUtbmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBZ0U7QUFHaEUsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQUM7QUFDckM7Ozs7R0FJRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLE1BQWM7SUFDOUMsTUFBTSxjQUFjLEdBQUcsSUFBQSxlQUFLLEVBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsTUFBTSx1QkFBdUIsR0FBRyxjQUFjLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FDL0QsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNOLEdBQUcsQ0FBQyxJQUFJLEtBQUssY0FBSSxDQUFDLHNCQUFzQjtRQUN4QyxHQUFHLENBQUMsVUFBVTtRQUNkLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxvQkFBb0IsQ0FBQyxJQUFJLFNBQVMsQ0FDdkQsQ0FBQztJQUNoQyxPQUFPLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBVEQsOENBU0M7QUFFRCxTQUFnQixnQ0FBZ0MsQ0FDOUMsTUFBYyxFQUNkLG9CQUErQztJQUUvQyxNQUFNLFlBQVksR0FBRyxJQUFBLGVBQUssRUFBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxPQUFPLFlBQVksQ0FBQyxXQUFXO1NBQzVCLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxjQUFJLENBQUMsc0JBQXNCLElBQUksR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLG9CQUFvQixDQUFDLENBQUM7U0FDbkksR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBRSxJQUFpQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDNUQsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3pFLENBQUM7QUFURCw0RUFTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtpbmQsIE9iamVjdFR5cGVEZWZpbml0aW9uTm9kZSwgcGFyc2UgfSBmcm9tICdncmFwaHFsJztcbmltcG9ydCB7IE1vZGVsRGF0YVNvdXJjZURlZmluaXRpb24gfSBmcm9tICcuLi90eXBlcyc7XG5cbmNvbnN0IE1PREVMX0RJUkVDVElWRV9OQU1FID0gJ21vZGVsJztcbi8qKlxuICogR2V0IHRoZSB0eXBlIG5hbWVzIHdpdGggbW9kZWwgZGlyZWN0aXZlcyBpbiB0aGUgR3JhcGhRTCBzY2hlbWEgaW4gU0RMXG4gKiBAcGFyYW0gc2NoZW1hIGdyYXBocWwgc2NoZW1hIGluIFNETFxuICogQHJldHVybnMgdHlwZSBuYW1lcyB3aGljaCBtb2RlbCBkaXJldGl2ZXMgYXJlIGF0dGFjaGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb2RlbFR5cGVOYW1lcyhzY2hlbWE6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgY29uc3QgcGFyc2VkRG9jdW1lbnQgPSBwYXJzZShzY2hlbWEpO1xuICBjb25zdCBub2Rlc1dpdGhNb2RlbERpcmVjdGl2ZSA9IHBhcnNlZERvY3VtZW50LmRlZmluaXRpb25zLmZpbHRlcihcbiAgICAoZGVmKSA9PlxuICAgICAgZGVmLmtpbmQgPT09IEtpbmQuT0JKRUNUX1RZUEVfREVGSU5JVElPTiAmJlxuICAgICAgZGVmLmRpcmVjdGl2ZXMgJiZcbiAgICAgIGRlZi5kaXJlY3RpdmVzLmZpbmQoKGRpcikgPT4gZGlyLm5hbWUudmFsdWUgPT09IE1PREVMX0RJUkVDVElWRV9OQU1FKSAhPSB1bmRlZmluZWQsXG4gICkgYXMgT2JqZWN0VHlwZURlZmluaXRpb25Ob2RlW107XG4gIHJldHVybiBub2Rlc1dpdGhNb2RlbERpcmVjdGl2ZS5tYXAoKG5vZGUpID0+IG5vZGUubmFtZS52YWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJ1Y3REYXRhU291cmNlRGVmaW5pdGlvbk1hcChcbiAgc2NoZW1hOiBzdHJpbmcsXG4gIGRhdGFTb3VyY2VEZWZpbml0aW9uOiBNb2RlbERhdGFTb3VyY2VEZWZpbml0aW9uLFxuKTogUmVjb3JkPHN0cmluZywgTW9kZWxEYXRhU291cmNlRGVmaW5pdGlvbj4ge1xuICBjb25zdCBwYXJzZWRTY2hlbWEgPSBwYXJzZShzY2hlbWEpO1xuICByZXR1cm4gcGFyc2VkU2NoZW1hLmRlZmluaXRpb25zXG4gICAgLmZpbHRlcigob2JqKSA9PiBvYmoua2luZCA9PT0gS2luZC5PQkpFQ1RfVFlQRV9ERUZJTklUSU9OICYmIG9iai5kaXJlY3RpdmVzPy5zb21lKChkaXIpID0+IGRpci5uYW1lLnZhbHVlID09PSBNT0RFTF9ESVJFQ1RJVkVfTkFNRSkpXG4gICAgLm1hcCgodHlwZSkgPT4gKHR5cGUgYXMgT2JqZWN0VHlwZURlZmluaXRpb25Ob2RlKS5uYW1lLnZhbHVlKVxuICAgIC5yZWR1Y2UoKGFjYywgY3VyKSA9PiAoeyAuLi5hY2MsIFtjdXJdOiBkYXRhU291cmNlRGVmaW5pdGlvbiB9KSwge30pO1xufVxuIl19
31
+ exports.getModelTypeNames = getModelTypeNames;
32
+ const constructDataSourceStrategyMap = (schema, dataSourceStrategy) => {
33
+ const modelKeys = getModelTypeNames(schema);
34
+ return modelKeys.reduce((acc, cur) => ({ ...acc, [cur]: dataSourceStrategy }), {});
35
+ };
36
+ exports.constructDataSourceStrategyMap = constructDataSourceStrategyMap;
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtdHlwZS1uYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL21vZGVsLXR5cGUtbmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxQ0FBaUY7QUFFakYsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQUM7QUFDckMsTUFBTSwyQkFBMkIsR0FBRyxZQUFZLENBQUM7QUFDakQ7Ozs7R0FJRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLE1BQWM7SUFDOUMsTUFBTSxZQUFZLEdBQUcsSUFBQSxlQUFLLEVBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkMsTUFBTSx1QkFBdUIsR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FDN0QsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssY0FBSSxDQUFDLHNCQUFzQixJQUFJLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxvQkFBb0IsQ0FBQyxDQUM1SCxDQUFDO0lBQ0YsTUFBTSxTQUFTLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBRSxJQUFpQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2Ryx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUN0QyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsR0FBK0IsQ0FBQztRQUNuRCxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDeEIsS0FBSyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDaEMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSywyQkFBMkIsRUFBRTtvQkFDbEQsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLGNBQWMsQ0FBQyxDQUFDO29CQUNwRixJQUFJLFdBQVcsRUFBRTt3QkFDZixTQUFTLENBQUMsSUFBSSxDQUFFLFdBQVcsQ0FBQyxLQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUM5RDtpQkFDRjtZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDeEUsQ0FBQztBQXBCRCw4Q0FvQkM7QUFFTSxNQUFNLDhCQUE4QixHQUFHLENBQzVDLE1BQWMsRUFDZCxrQkFBMkMsRUFDRixFQUFFO0lBQzNDLE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNyRixDQUFDLENBQUM7QUFOVyxRQUFBLDhCQUE4QixrQ0FNekMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RlbERhdGFTb3VyY2VTdHJhdGVneSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IEtpbmQsIE9iamVjdFR5cGVEZWZpbml0aW9uTm9kZSwgU3RyaW5nVmFsdWVOb2RlLCBwYXJzZSB9IGZyb20gJ2dyYXBocWwnO1xuXG5jb25zdCBNT0RFTF9ESVJFQ1RJVkVfTkFNRSA9ICdtb2RlbCc7XG5jb25zdCBNQU5ZX1RPX01BTllfRElSRUNUSVZFX05BTUUgPSAnbWFueVRvTWFueSc7XG4vKipcbiAqIEdldCB0aGUgdHlwZSBuYW1lcyB3aXRoIG1vZGVsIGRpcmVjdGl2ZXMgaW4gdGhlIEdyYXBoUUwgc2NoZW1hIGluIFNETFxuICogQHBhcmFtIHNjaGVtYSBncmFwaHFsIHNjaGVtYSBpbiBTRExcbiAqIEByZXR1cm5zIHR5cGUgbmFtZXMgd2hpY2ggbW9kZWwgZGlyZXRpdmVzIGFyZSBhdHRhY2hlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW9kZWxUeXBlTmFtZXMoc2NoZW1hOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHBhcnNlZFNjaGVtYSA9IHBhcnNlKHNjaGVtYSk7XG4gIGNvbnN0IG5vZGVzV2l0aE1vZGVsRGlyZWN0aXZlID0gcGFyc2VkU2NoZW1hLmRlZmluaXRpb25zLmZpbHRlcihcbiAgICAob2JqKSA9PiBvYmoua2luZCA9PT0gS2luZC5PQkpFQ1RfVFlQRV9ERUZJTklUSU9OICYmIG9iai5kaXJlY3RpdmVzPy5zb21lKChkaXIpID0+IGRpci5uYW1lLnZhbHVlID09PSBNT0RFTF9ESVJFQ1RJVkVfTkFNRSksXG4gICk7XG4gIGNvbnN0IG1vZGVsS2V5cyA9IG5vZGVzV2l0aE1vZGVsRGlyZWN0aXZlLm1hcCgodHlwZSkgPT4gKHR5cGUgYXMgT2JqZWN0VHlwZURlZmluaXRpb25Ob2RlKS5uYW1lLnZhbHVlKTtcbiAgbm9kZXNXaXRoTW9kZWxEaXJlY3RpdmUuZm9yRWFjaCgob2JqKSA9PiB7XG4gICAgY29uc3QgeyBmaWVsZHMgfSA9IG9iaiBhcyBPYmplY3RUeXBlRGVmaW5pdGlvbk5vZGU7XG4gICAgZmllbGRzPy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgZmllbGQuZGlyZWN0aXZlcz8uZm9yRWFjaCgoZGlyKSA9PiB7XG4gICAgICAgIGlmIChkaXIubmFtZS52YWx1ZSA9PT0gTUFOWV9UT19NQU5ZX0RJUkVDVElWRV9OQU1FKSB7XG4gICAgICAgICAgY29uc3QgcmVsYXRpb25BcmcgPSBkaXIuYXJndW1lbnRzPy5maW5kKChhcmcpID0+IGFyZy5uYW1lLnZhbHVlID09PSAncmVsYXRpb25OYW1lJyk7XG4gICAgICAgICAgaWYgKHJlbGF0aW9uQXJnKSB7XG4gICAgICAgICAgICBtb2RlbEtleXMucHVzaCgocmVsYXRpb25BcmcudmFsdWUgYXMgU3RyaW5nVmFsdWVOb2RlKS52YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG4gIHJldHVybiBtb2RlbEtleXMuZmlsdGVyKChrZXksIGlkeCkgPT4gbW9kZWxLZXlzLmluZGV4T2Yoa2V5KSA9PT0gaWR4KTtcbn1cblxuZXhwb3J0IGNvbnN0IGNvbnN0cnVjdERhdGFTb3VyY2VTdHJhdGVneU1hcCA9IChcbiAgc2NoZW1hOiBzdHJpbmcsXG4gIGRhdGFTb3VyY2VTdHJhdGVneTogTW9kZWxEYXRhU291cmNlU3RyYXRlZ3ksXG4pOiBSZWNvcmQ8c3RyaW5nLCBNb2RlbERhdGFTb3VyY2VTdHJhdGVneT4gPT4ge1xuICBjb25zdCBtb2RlbEtleXMgPSBnZXRNb2RlbFR5cGVOYW1lcyhzY2hlbWEpO1xuICByZXR1cm4gbW9kZWxLZXlzLnJlZHVjZSgoYWNjLCBjdXIpID0+ICh7IC4uLmFjYywgW2N1cl06IGRhdGFTb3VyY2VTdHJhdGVneSB9KSwge30pO1xufTtcbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { SQLLambdaModelDataSourceStrategy, SqlModelDataSourceDbConnectionConfig } from './types';
2
+ /**
3
+ * Type predicate that returns true if the object is a SQLLambdaModelDataSourceStrategy.
4
+ * @param obj the object to inspect
5
+ * @returns true if the object is shaped like a SQLLambdaModelDataSourceStrategy
6
+ */
7
+ export declare const isSQLLambdaModelDataSourceStrategy: (obj: any) => obj is SQLLambdaModelDataSourceStrategy;
8
+ /**
9
+ * Type predicate that returns true if the object is a SqlModelDataSourceDbConnectionConfig.
10
+ * @param obj the object to inspect
11
+ * @returns true if the object is shaped like a SqlModelDataSourceDbConnectionConfig
12
+ */
13
+ export declare const isSqlModelDataSourceDbConnectionConfig: (obj: any) => obj is SqlModelDataSourceDbConnectionConfig;
14
+ /**
15
+ * Class exposing utilities to produce SQLLambdaModelDataSourceStrategy objects given various inputs.
16
+ */
17
+ export declare class SQLLambdaModelDataSourceStrategyFactory {
18
+ /**
19
+ * Creates a SQLLambdaModelDataSourceStrategy where the binding's `customSqlStatements` are populated from `sqlFiles`. The key
20
+ * of the `customSqlStatements` record is the file's base name (that is, the name of the file minus the directory and extension).
21
+ * @param sqlFiles the list of files to load SQL statements from.
22
+ * @param options the remaining SQLLambdaModelDataSourceStrategy options.
23
+ */
24
+ static fromCustomSqlFiles(sqlFiles: string[], options: Exclude<SQLLambdaModelDataSourceStrategy, 'customSqlStatements'>): SQLLambdaModelDataSourceStrategy;
25
+ }
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SQLLambdaModelDataSourceStrategyFactory = exports.isSqlModelDataSourceDbConnectionConfig = exports.isSQLLambdaModelDataSourceStrategy = void 0;
4
+ const fs = require("fs");
5
+ const path = require("path");
6
+ /**
7
+ * Type predicate that returns true if the object is a SQLLambdaModelDataSourceStrategy.
8
+ * @param obj the object to inspect
9
+ * @returns true if the object is shaped like a SQLLambdaModelDataSourceStrategy
10
+ */
11
+ const isSQLLambdaModelDataSourceStrategy = (obj) => {
12
+ return ((typeof obj === 'object' || typeof obj === 'function') &&
13
+ typeof obj.name === 'string' &&
14
+ typeof obj.dbType === 'string' &&
15
+ // TODO: Use canonical SQL DB type strings
16
+ ['MYSQL', 'POSTGRES'].includes(obj.dbType) &&
17
+ (0, exports.isSqlModelDataSourceDbConnectionConfig)(obj.dbConnectionConfig));
18
+ };
19
+ exports.isSQLLambdaModelDataSourceStrategy = isSQLLambdaModelDataSourceStrategy;
20
+ /**
21
+ * Type predicate that returns true if the object is a SqlModelDataSourceDbConnectionConfig.
22
+ * @param obj the object to inspect
23
+ * @returns true if the object is shaped like a SqlModelDataSourceDbConnectionConfig
24
+ */
25
+ const isSqlModelDataSourceDbConnectionConfig = (obj) => {
26
+ return ((typeof obj === 'object' || typeof obj === 'function') &&
27
+ typeof obj.hostnameSsmPath === 'string' &&
28
+ typeof obj.portSsmPath === 'string' &&
29
+ typeof obj.usernameSsmPath === 'string' &&
30
+ typeof obj.passwordSsmPath === 'string' &&
31
+ typeof obj.databaseNameSsmPath === 'string');
32
+ };
33
+ exports.isSqlModelDataSourceDbConnectionConfig = isSqlModelDataSourceDbConnectionConfig;
34
+ /**
35
+ * Class exposing utilities to produce SQLLambdaModelDataSourceStrategy objects given various inputs.
36
+ */
37
+ class SQLLambdaModelDataSourceStrategyFactory {
38
+ /**
39
+ * Creates a SQLLambdaModelDataSourceStrategy where the binding's `customSqlStatements` are populated from `sqlFiles`. The key
40
+ * of the `customSqlStatements` record is the file's base name (that is, the name of the file minus the directory and extension).
41
+ * @param sqlFiles the list of files to load SQL statements from.
42
+ * @param options the remaining SQLLambdaModelDataSourceStrategy options.
43
+ */
44
+ static fromCustomSqlFiles(sqlFiles, options) {
45
+ const customSqlStatements = sqlFiles.reduce((acc, filePath) => {
46
+ const basename = path.parse(filePath).name;
47
+ acc[basename] = fs.readFileSync(filePath, 'utf8');
48
+ return acc;
49
+ }, {});
50
+ return {
51
+ customSqlStatements,
52
+ ...options,
53
+ };
54
+ }
55
+ }
56
+ exports.SQLLambdaModelDataSourceStrategyFactory = SQLLambdaModelDataSourceStrategyFactory;
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsLW1vZGVsLWRhdGFzb3VyY2Utc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3FsLW1vZGVsLWRhdGFzb3VyY2Utc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUc3Qjs7OztHQUlHO0FBQ0ksTUFBTSxrQ0FBa0MsR0FBRyxDQUFDLEdBQVEsRUFBMkMsRUFBRTtJQUN0RyxPQUFPLENBQ0wsQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksT0FBTyxHQUFHLEtBQUssVUFBVSxDQUFDO1FBQ3RELE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxRQUFRO1FBQzVCLE9BQU8sR0FBRyxDQUFDLE1BQU0sS0FBSyxRQUFRO1FBQzlCLDBDQUEwQztRQUMxQyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUMxQyxJQUFBLDhDQUFzQyxFQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUMvRCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBVFcsUUFBQSxrQ0FBa0Msc0NBUzdDO0FBRUY7Ozs7R0FJRztBQUNJLE1BQU0sc0NBQXNDLEdBQUcsQ0FBQyxHQUFRLEVBQStDLEVBQUU7SUFDOUcsT0FBTyxDQUNMLENBQUMsT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLE9BQU8sR0FBRyxLQUFLLFVBQVUsQ0FBQztRQUN0RCxPQUFPLEdBQUcsQ0FBQyxlQUFlLEtBQUssUUFBUTtRQUN2QyxPQUFPLEdBQUcsQ0FBQyxXQUFXLEtBQUssUUFBUTtRQUNuQyxPQUFPLEdBQUcsQ0FBQyxlQUFlLEtBQUssUUFBUTtRQUN2QyxPQUFPLEdBQUcsQ0FBQyxlQUFlLEtBQUssUUFBUTtRQUN2QyxPQUFPLEdBQUcsQ0FBQyxtQkFBbUIsS0FBSyxRQUFRLENBQzVDLENBQUM7QUFDSixDQUFDLENBQUM7QUFUVyxRQUFBLHNDQUFzQywwQ0FTakQ7QUFFRjs7R0FFRztBQUNILE1BQWEsdUNBQXVDO0lBQ2xEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLGtCQUFrQixDQUN2QixRQUFrQixFQUNsQixPQUF5RTtRQUV6RSxNQUFNLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUEwQixFQUFFO1lBQ3BGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzNDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNsRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxFQUE0QixDQUFDLENBQUM7UUFFakMsT0FBTztZQUNMLG1CQUFtQjtZQUNuQixHQUFHLE9BQU87U0FDWCxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBdEJELDBGQXNCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneSwgU3FsTW9kZWxEYXRhU291cmNlRGJDb25uZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogVHlwZSBwcmVkaWNhdGUgdGhhdCByZXR1cm5zIHRydWUgaWYgdGhlIG9iamVjdCBpcyBhIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5LlxuICogQHBhcmFtIG9iaiB0aGUgb2JqZWN0IHRvIGluc3BlY3RcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIG9iamVjdCBpcyBzaGFwZWQgbGlrZSBhIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5XG4gKi9cbmV4cG9ydCBjb25zdCBpc1NRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5ID0gKG9iajogYW55KTogb2JqIGlzIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5ID0+IHtcbiAgcmV0dXJuIChcbiAgICAodHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIG9iaiA9PT0gJ2Z1bmN0aW9uJykgJiZcbiAgICB0eXBlb2Ygb2JqLm5hbWUgPT09ICdzdHJpbmcnICYmXG4gICAgdHlwZW9mIG9iai5kYlR5cGUgPT09ICdzdHJpbmcnICYmXG4gICAgLy8gVE9ETzogVXNlIGNhbm9uaWNhbCBTUUwgREIgdHlwZSBzdHJpbmdzXG4gICAgWydNWVNRTCcsICdQT1NUR1JFUyddLmluY2x1ZGVzKG9iai5kYlR5cGUpICYmXG4gICAgaXNTcWxNb2RlbERhdGFTb3VyY2VEYkNvbm5lY3Rpb25Db25maWcob2JqLmRiQ29ubmVjdGlvbkNvbmZpZylcbiAgKTtcbn07XG5cbi8qKlxuICogVHlwZSBwcmVkaWNhdGUgdGhhdCByZXR1cm5zIHRydWUgaWYgdGhlIG9iamVjdCBpcyBhIFNxbE1vZGVsRGF0YVNvdXJjZURiQ29ubmVjdGlvbkNvbmZpZy5cbiAqIEBwYXJhbSBvYmogdGhlIG9iamVjdCB0byBpbnNwZWN0XG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgc2hhcGVkIGxpa2UgYSBTcWxNb2RlbERhdGFTb3VyY2VEYkNvbm5lY3Rpb25Db25maWdcbiAqL1xuZXhwb3J0IGNvbnN0IGlzU3FsTW9kZWxEYXRhU291cmNlRGJDb25uZWN0aW9uQ29uZmlnID0gKG9iajogYW55KTogb2JqIGlzIFNxbE1vZGVsRGF0YVNvdXJjZURiQ29ubmVjdGlvbkNvbmZpZyA9PiB7XG4gIHJldHVybiAoXG4gICAgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnIHx8IHR5cGVvZiBvYmogPT09ICdmdW5jdGlvbicpICYmXG4gICAgdHlwZW9mIG9iai5ob3N0bmFtZVNzbVBhdGggPT09ICdzdHJpbmcnICYmXG4gICAgdHlwZW9mIG9iai5wb3J0U3NtUGF0aCA9PT0gJ3N0cmluZycgJiZcbiAgICB0eXBlb2Ygb2JqLnVzZXJuYW1lU3NtUGF0aCA9PT0gJ3N0cmluZycgJiZcbiAgICB0eXBlb2Ygb2JqLnBhc3N3b3JkU3NtUGF0aCA9PT0gJ3N0cmluZycgJiZcbiAgICB0eXBlb2Ygb2JqLmRhdGFiYXNlTmFtZVNzbVBhdGggPT09ICdzdHJpbmcnXG4gICk7XG59O1xuXG4vKipcbiAqIENsYXNzIGV4cG9zaW5nIHV0aWxpdGllcyB0byBwcm9kdWNlIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IG9iamVjdHMgZ2l2ZW4gdmFyaW91cyBpbnB1dHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneUZhY3Rvcnkge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IHdoZXJlIHRoZSBiaW5kaW5nJ3MgYGN1c3RvbVNxbFN0YXRlbWVudHNgIGFyZSBwb3B1bGF0ZWQgZnJvbSBgc3FsRmlsZXNgLiBUaGUga2V5XG4gICAqIG9mIHRoZSBgY3VzdG9tU3FsU3RhdGVtZW50c2AgcmVjb3JkIGlzIHRoZSBmaWxlJ3MgYmFzZSBuYW1lICh0aGF0IGlzLCB0aGUgbmFtZSBvZiB0aGUgZmlsZSBtaW51cyB0aGUgZGlyZWN0b3J5IGFuZCBleHRlbnNpb24pLlxuICAgKiBAcGFyYW0gc3FsRmlsZXMgdGhlIGxpc3Qgb2YgZmlsZXMgdG8gbG9hZCBTUUwgc3RhdGVtZW50cyBmcm9tLlxuICAgKiBAcGFyYW0gb3B0aW9ucyB0aGUgcmVtYWluaW5nIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IG9wdGlvbnMuXG4gICAqL1xuICBzdGF0aWMgZnJvbUN1c3RvbVNxbEZpbGVzKFxuICAgIHNxbEZpbGVzOiBzdHJpbmdbXSxcbiAgICBvcHRpb25zOiBFeGNsdWRlPFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5LCAnY3VzdG9tU3FsU3RhdGVtZW50cyc+LFxuICApOiBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneSB7XG4gICAgY29uc3QgY3VzdG9tU3FsU3RhdGVtZW50cyA9IHNxbEZpbGVzLnJlZHVjZSgoYWNjLCBmaWxlUGF0aCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4ge1xuICAgICAgY29uc3QgYmFzZW5hbWUgPSBwYXRoLnBhcnNlKGZpbGVQYXRoKS5uYW1lO1xuICAgICAgYWNjW2Jhc2VuYW1lXSA9IGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgJ3V0ZjgnKTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY3VzdG9tU3FsU3RhdGVtZW50cyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcbiAgfVxufVxuIl19
package/lib/types.d.ts CHANGED
@@ -340,6 +340,27 @@ export interface TranslationBehavior {
340
340
  * @default false
341
341
  */
342
342
  readonly enableTransformerCfnOutputs: boolean;
343
+ /**
344
+ * The following schema updates require replacement of the underlying DynamoDB table:
345
+ *
346
+ * - Removing or renaming a model
347
+ * - Modifying the primary key of a model
348
+ * - Modifying a Local Secondary Index of a model (only applies to projects with secondaryKeyAsGSI turned off)
349
+ *
350
+ * ALL DATA WILL BE LOST when the table replacement happens. When enabled, destructive updates are allowed.
351
+ * This will only affect DynamoDB tables with provision strategy "AMPLIFY_TABLE".
352
+ * @default false
353
+ * @experimental
354
+ */
355
+ readonly allowDestructiveGraphqlSchemaUpdates: boolean;
356
+ /**
357
+ * This behavior will only come into effect when both "allowDestructiveGraphqlSchemaUpdates" and this value are set to true
358
+ * When enabled, any GSI update operation will replace the table instead of iterative deployment, which will WIPE ALL EXISTING DATA but cost much less time for deployment
359
+ * This will only affect DynamoDB tables with provision strategy "AMPLIFY_TABLE".
360
+ * @default false
361
+ * @experimental
362
+ */
363
+ readonly replaceTableUponGsiUpdate: boolean;
343
364
  }
344
365
  /**
345
366
  * A utility interface equivalent to Partial<TranslationBehavior>.
@@ -407,6 +428,27 @@ export interface PartialTranslationBehavior {
407
428
  * @default false
408
429
  */
409
430
  readonly enableTransformerCfnOutputs?: boolean;
431
+ /**
432
+ * The following schema updates require replacement of the underlying DynamoDB table:
433
+ *
434
+ * - Removing or renaming a model
435
+ * - Modifying the primary key of a model
436
+ * - Modifying a Local Secondary Index of a model (only applies to projects with secondaryKeyAsGSI turned off)
437
+ *
438
+ * ALL DATA WILL BE LOST when the table replacement happens. When enabled, destructive updates are allowed.
439
+ * This will only affect DynamoDB tables with provision strategy "AMPLIFY_TABLE".
440
+ * @default false
441
+ * @experimental
442
+ */
443
+ readonly allowDestructiveGraphqlSchemaUpdates?: boolean;
444
+ /**
445
+ * This behavior will only come into effect when both "allowDestructiveGraphqlSchemaUpdates" and this value are set to true
446
+ * When enabled, any global secondary index update operation will replace the table instead of iterative deployment, which will WIPE ALL EXISTING DATA but cost much less time for deployment
447
+ * This will only affect DynamoDB tables with provision strategy "AMPLIFY_TABLE".
448
+ * @default false
449
+ * @experimental
450
+ */
451
+ readonly replaceTableUponGsiUpdate?: boolean;
410
452
  }
411
453
  /**
412
454
  * Graphql Api definition, which can be implemented in multiple ways.
@@ -423,10 +465,21 @@ export interface IAmplifyGraphqlDefinition {
423
465
  */
424
466
  readonly functionSlots: FunctionSlot[];
425
467
  /**
426
- * Retrieve the datasource definition mapping. The default strategy is to use DynamoDB from CloudFormation.
427
- * @returns datasource definition mapping
468
+ * Retrieve the references to any lambda functions used in the definition.
469
+ * Useful for wiring through aws_lambda.Function constructs into the definition directly,
470
+ * and generated references to invoke them.
471
+ * @returns any lambda functions, keyed by their referenced 'name' in the generated schema.
428
472
  */
429
- readonly dataSourceDefinition: Record<string, ModelDataSourceDefinition>;
473
+ readonly referencedLambdaFunctions?: Record<string, IFunction>;
474
+ /**
475
+ * Retrieve the datasource strategy mapping. The default strategy is to use DynamoDB from CloudFormation.
476
+ *
477
+ * **NOTE** Explicitly specifying the 'dataSourceStrategies' configuration option is in preview and is not recommended to use with
478
+ * production systems. For production, use the static factory methods `fromString` or `fromFiles`.
479
+ * @experimental
480
+ * @returns datasource strategy mapping
481
+ */
482
+ readonly dataSourceStrategies: Record<string, ModelDataSourceStrategy>;
430
483
  }
431
484
  /**
432
485
  * Entry representing the required output from the backend for codegen generate commands to work.
@@ -452,43 +505,6 @@ export interface IBackendOutputStorageStrategy {
452
505
  */
453
506
  addBackendOutputEntry(keyName: string, backendOutputEntry: IBackendOutputEntry): void;
454
507
  }
455
- /**
456
- * Defines a datasource for resolving GraphQL operations against `@model` types in a GraphQL schema.
457
- * @experimental
458
- */
459
- export interface ModelDataSourceDefinition {
460
- /**
461
- * The name of the ModelDataSource. This will be used to name the AppSynce DataSource itself, plus any associated resources like resolver
462
- * Lambdas, custom CDK resources. This name must be unique across all schema definitions in a GraphQL API.
463
- */
464
- readonly name: string;
465
- /**
466
- * The ModelDataSourceDefinitionStrategy.
467
- */
468
- readonly strategy: ModelDataSourceDefinitionStrategy;
469
- }
470
- /**
471
- * All known ModelDataSourceDefinitionStrategies. Concrete strategies vary widely in their requirements and implementations.
472
- * @experimental
473
- */
474
- export type ModelDataSourceDefinitionStrategy = DefaultDynamoDbModelDataSourceDefinitionStrategy | AmplifyDynamoDbModelDataSourceDefinitionStrategy;
475
- export type ModelDataSourceDefinitionDbType = 'DYNAMODB';
476
- /**
477
- * Use default CloudFormation type 'AWS::DynamoDB::Table' to provision table.
478
- * @experimental
479
- */
480
- export interface DefaultDynamoDbModelDataSourceDefinitionStrategy {
481
- readonly dbType: 'DYNAMODB';
482
- readonly provisionStrategy: 'DEFAULT';
483
- }
484
- /**
485
- * Use custom resource type 'Custom::AmplifyDynamoDBTable' to provision table.
486
- * @experimental
487
- */
488
- export interface AmplifyDynamoDbModelDataSourceDefinitionStrategy {
489
- readonly dbType: 'DYNAMODB';
490
- readonly provisionStrategy: 'AMPLIFY_TABLE';
491
- }
492
508
  /**
493
509
  * Input props for the AmplifyGraphqlApi construct. Specifies what the input to transform into an Api, and configurations for
494
510
  * the transformation process.
@@ -678,3 +694,123 @@ export interface AddFunctionProps {
678
694
  */
679
695
  readonly code?: Code;
680
696
  }
697
+ /**
698
+ * All known ModelDataSourceStrategies. Concrete strategies vary widely in their requirements and implementations.
699
+ * @experimental
700
+ */
701
+ export type ModelDataSourceStrategy = DefaultDynamoDbModelDataSourceStrategy | AmplifyDynamoDbModelDataSourceStrategy | SQLLambdaModelDataSourceStrategy;
702
+ export type ModelDataSourceStrategyDbType = 'DYNAMODB';
703
+ /**
704
+ * Use default CloudFormation type 'AWS::DynamoDB::Table' to provision table.
705
+ * @experimental
706
+ */
707
+ export interface DefaultDynamoDbModelDataSourceStrategy {
708
+ readonly dbType: 'DYNAMODB';
709
+ readonly provisionStrategy: 'DEFAULT';
710
+ }
711
+ /**
712
+ * Use custom resource type 'Custom::AmplifyDynamoDBTable' to provision table.
713
+ * @experimental
714
+ */
715
+ export interface AmplifyDynamoDbModelDataSourceStrategy {
716
+ readonly dbType: 'DYNAMODB';
717
+ readonly provisionStrategy: 'AMPLIFY_TABLE';
718
+ }
719
+ /**
720
+ * A strategy that creates a Lambda to connect to a pre-existing SQL table to resolve model data.
721
+ *
722
+ * @experimental
723
+ */
724
+ export interface SQLLambdaModelDataSourceStrategy {
725
+ /**
726
+ * The name of the strategy. This will be used to name the AppSync DataSource itself, plus any associated resources like resolver Lambdas.
727
+ * This name must be unique across all schema definitions in a GraphQL API.
728
+ */
729
+ readonly name: string;
730
+ /**
731
+ * The type of the SQL database used to process model operations for this definition.
732
+ */
733
+ readonly dbType: 'MYSQL' | 'POSTGRES';
734
+ /**
735
+ * The parameters the Lambda data source will use to connect to the database.
736
+ */
737
+ readonly dbConnectionConfig: SqlModelDataSourceDbConnectionConfig;
738
+ /**
739
+ * The configuration of the VPC into which to install the Lambda.
740
+ */
741
+ readonly vpcConfiguration?: VpcConfig;
742
+ /**
743
+ * Custom SQL statements. The key is the value of the `references` attribute of the `@sql` directive in the `schema`; the value is the SQL
744
+ * to be executed.
745
+ */
746
+ readonly customSqlStatements?: Record<string, string>;
747
+ /**
748
+ * An optional override for the default SQL Lambda Layer
749
+ */
750
+ readonly sqlLambdaLayerMapping?: SQLLambdaLayerMapping;
751
+ /**
752
+ * The configuration for the provisioned concurrency of the Lambda.
753
+ */
754
+ readonly sqlLambdaProvisionedConcurrencyConfig?: ProvisionedConcurrencyConfig;
755
+ }
756
+ /**
757
+ * Configuration of the VPC in which to install a Lambda to resolve queries against a SQL-based data source. The SQL Lambda will be deployed
758
+ * into the specified VPC, subnets, and security groups. The specified subnets and security groups must be in the same VPC. The VPC must
759
+ * have at least one subnet. The construct will also create VPC service endpoints in the specified subnets, as well as inbound security
760
+ * rules, to allow traffic on port 443 within each security group. This allows the Lambda to read database connection information from
761
+ * Secure Systems Manager.
762
+ * @experimental
763
+ */
764
+ export interface VpcConfig {
765
+ /** The VPC to install the Lambda data source in. */
766
+ readonly vpcId: string;
767
+ /** The security groups to install the Lambda data source in. */
768
+ readonly securityGroupIds: string[];
769
+ /** The subnets to install the Lambda data source in, one per availability zone. */
770
+ readonly subnetAvailabilityZoneConfig: SubnetAvailabilityZone[];
771
+ }
772
+ /**
773
+ * The configuration for the provisioned concurrency of the Lambda.
774
+ * @experimental
775
+ */
776
+ export interface ProvisionedConcurrencyConfig {
777
+ /** The amount of provisioned concurrency to allocate. **/
778
+ readonly provisionedConcurrentExecutions: number;
779
+ }
780
+ /**
781
+ * Subnet configuration for VPC endpoints used by a Lambda resolver for a SQL-based data source. Although it is possible to create multiple
782
+ * subnets in a single availability zone, VPC service endpoints may only be deployed to a single subnet in a given availability zone. This
783
+ * structure ensures that the Lambda function and VPC service endpoints are mutually consistent.
784
+ * @experimental
785
+ */
786
+ export interface SubnetAvailabilityZone {
787
+ /** The subnet ID to install the Lambda data source in. */
788
+ readonly subnetId: string;
789
+ /** The availability zone of the subnet. */
790
+ readonly availabilityZone: string;
791
+ }
792
+ /**
793
+ * Maps a given AWS region to the SQL Lambda layer version ARN for that region. `key` is the region; the `value` is the Lambda Layer version
794
+ * ARN
795
+ */
796
+ export type SQLLambdaLayerMapping = Record<string, string>;
797
+ /**
798
+ * The Secure Systems Manager parameter paths the Lambda data source will use to connect to the database.
799
+ *
800
+ * These parameters are retrieved from Secure Systems Manager in the same region as the Lambda.
801
+ * @experimental
802
+ */
803
+ export interface SqlModelDataSourceDbConnectionConfig {
804
+ /** The Secure Systems Manager parameter containing the hostname of the database. For RDS-based SQL data sources, this can be the hostname
805
+ * of a database proxy, cluster, or instance.
806
+ */
807
+ readonly hostnameSsmPath: string;
808
+ /** The Secure Systems Manager parameter containing the port number of the database proxy, cluster, or instance. */
809
+ readonly portSsmPath: string;
810
+ /** The Secure Systems Manager parameter containing the username to use when connecting to the database. */
811
+ readonly usernameSsmPath: string;
812
+ /** The Secure Systems Manager parameter containing the password to use when connecting to the database. */
813
+ readonly passwordSsmPath: string;
814
+ /** The Secure Systems Manager parameter containing the database name. */
815
+ readonly databaseNameSsmPath: string;
816
+ }