@aws-amplify/graphql-api-construct 1.4.0-construct-publish-test.0 → 1.4.0-nov-14-cut.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 (407) hide show
  1. package/.jsii +642 -192
  2. package/API.md +51 -13
  3. package/CHANGELOG.md +7 -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 +2 -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 +160 -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 +14 -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 +4 -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 +4 -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 +132 -117
  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 +16 -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 +141 -45
  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 +7 -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 +1 -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 +2 -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.map +1 -1
  192. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.js +53 -30
  193. 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
  194. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/model-resource-generator.js +5 -5
  195. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/model-resource-generator.js.map +1 -1
  196. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.d.ts +1 -0
  197. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.d.ts.map +1 -1
  198. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js +29 -2
  199. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js.map +1 -1
  200. package/node_modules/@aws-amplify/graphql-model-transformer/package.json +9 -9
  201. package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +1 -1
  202. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
  203. package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +6 -6
  204. package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +5 -1
  205. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.d.ts.map +1 -1
  206. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.js +41 -9
  207. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.js.map +1 -1
  208. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.d.ts.map +1 -1
  209. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.js +35 -8
  210. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.js.map +1 -1
  211. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.d.ts.map +1 -1
  212. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.js +30 -8
  213. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.js.map +1 -1
  214. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-many-to-many-transformer.d.ts.map +1 -1
  215. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-many-to-many-transformer.js +3 -2
  216. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-many-to-many-transformer.js.map +1 -1
  217. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-generator.d.ts +13 -0
  218. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-generator.d.ts.map +1 -0
  219. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-generator.js +171 -0
  220. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-generator.js.map +1 -0
  221. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator-factory.d.ts +4 -0
  222. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator-factory.d.ts.map +1 -0
  223. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator-factory.js +18 -0
  224. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator-factory.js.map +1 -0
  225. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator.d.ts +8 -0
  226. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator.d.ts.map +1 -0
  227. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator.js +7 -0
  228. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator.js.map +1 -0
  229. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/rds-generator.d.ts +14 -0
  230. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/rds-generator.d.ts.map +1 -0
  231. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/rds-generator.js +115 -0
  232. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/rds-generator.js.map +1 -0
  233. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.d.ts +5 -5
  234. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.d.ts.map +1 -1
  235. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.js +23 -169
  236. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.js.map +1 -1
  237. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/schema.d.ts.map +1 -1
  238. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/schema.js +14 -8
  239. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/schema.js.map +1 -1
  240. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/types.d.ts +4 -0
  241. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/types.d.ts.map +1 -1
  242. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.d.ts +5 -0
  243. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.d.ts.map +1 -1
  244. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.js +85 -1
  245. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.js.map +1 -1
  246. package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +9 -9
  247. package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +4 -2
  248. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/graphql-searchable-transformer.d.ts.map +1 -1
  249. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/graphql-searchable-transformer.js +3 -0
  250. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/graphql-searchable-transformer.js.map +1 -1
  251. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
  252. package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +7 -7
  253. package/node_modules/@aws-amplify/graphql-sql-transformer/API.md +26 -0
  254. package/node_modules/@aws-amplify/graphql-sql-transformer/CHANGELOG.md +10 -0
  255. package/node_modules/@aws-amplify/graphql-sql-transformer/LICENSE +201 -0
  256. package/node_modules/@aws-amplify/graphql-sql-transformer/README.md +13 -0
  257. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/graphql-sql-transformer.d.ts +12 -0
  258. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/graphql-sql-transformer.d.ts.map +1 -0
  259. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/graphql-sql-transformer.js +132 -0
  260. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/graphql-sql-transformer.js.map +1 -0
  261. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/index.d.ts +2 -0
  262. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/index.d.ts.map +1 -0
  263. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/index.js +6 -0
  264. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/index.js.map +1 -0
  265. package/node_modules/@aws-amplify/graphql-sql-transformer/package.json +71 -0
  266. package/node_modules/@aws-amplify/graphql-transformer/API.md +4 -0
  267. package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +10 -1
  268. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts +4 -1
  269. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts.map +1 -1
  270. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js +7 -2
  271. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js.map +1 -1
  272. package/node_modules/@aws-amplify/graphql-transformer/package.json +15 -14
  273. package/node_modules/@aws-amplify/graphql-transformer/src/graphql-transformer.ts +12 -2
  274. package/node_modules/@aws-amplify/graphql-transformer-core/API.md +32 -4
  275. package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +14 -1
  276. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.d.ts +2 -2
  277. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.d.ts.map +1 -1
  278. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.js +9 -1
  279. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.js.map +1 -1
  280. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transform-host.d.ts.map +1 -1
  281. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transform-host.js +2 -1
  282. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transform-host.js.map +1 -1
  283. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/sync-utils.d.ts.map +1 -1
  284. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/sync-utils.js.map +1 -1
  285. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.d.ts +4 -3
  286. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.d.ts.map +1 -1
  287. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.js +3 -3
  288. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.js.map +1 -1
  289. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/types.d.ts +1 -0
  290. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/types.d.ts.map +1 -1
  291. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/datasource.d.ts +4 -5
  292. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/datasource.d.ts.map +1 -1
  293. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/datasource.js.map +1 -1
  294. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.d.ts +5 -3
  295. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.d.ts.map +1 -1
  296. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.js +3 -1
  297. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.js.map +1 -1
  298. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/transform-parameters.d.ts.map +1 -1
  299. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/transform-parameters.js +1 -0
  300. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/transform-parameters.js.map +1 -1
  301. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/import-appsync-api-types.d.ts +5 -4
  302. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/import-appsync-api-types.d.ts.map +1 -1
  303. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/import-appsync-api-types.js +3 -2
  304. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/import-appsync-api-types.js.map +1 -1
  305. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/index.d.ts +1 -1
  306. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/index.d.ts.map +1 -1
  307. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/index.js +2 -1
  308. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/index.js.map +1 -1
  309. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/api-category.d.ts +2 -0
  310. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/api-category.d.ts.map +1 -0
  311. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/api-category.js +5 -0
  312. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/api-category.js.map +1 -0
  313. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.d.ts +3 -2
  314. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.d.ts.map +1 -1
  315. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.js +14 -3
  316. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.js.map +1 -1
  317. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-util.d.ts +3 -0
  318. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-util.d.ts.map +1 -0
  319. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-util.js +19 -0
  320. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-util.js.map +1 -0
  321. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.d.ts +12 -0
  322. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.d.ts.map +1 -0
  323. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.js +82 -0
  324. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.js.map +1 -0
  325. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/schema-utils.d.ts +3 -2
  326. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/schema-utils.d.ts.map +1 -1
  327. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/schema-utils.js +7 -1
  328. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/schema-utils.js.map +1 -1
  329. package/node_modules/@aws-amplify/graphql-transformer-core/lib/wrappers/object-definition-wrapper.d.ts +1 -1
  330. package/node_modules/@aws-amplify/graphql-transformer-core/lib/wrappers/object-definition-wrapper.d.ts.map +1 -1
  331. package/node_modules/@aws-amplify/graphql-transformer-core/package.json +4 -4
  332. package/node_modules/@aws-amplify/graphql-transformer-interfaces/API.md +46 -14
  333. package/node_modules/@aws-amplify/graphql-transformer-interfaces/CHANGELOG.md +6 -1
  334. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/graphql-api-provider.d.ts +15 -8
  335. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/graphql-api-provider.d.ts.map +1 -1
  336. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/graphql-api-provider.js.map +1 -1
  337. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/index.d.ts +1 -1
  338. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/index.d.ts.map +1 -1
  339. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/index.js.map +1 -1
  340. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.d.ts +1 -1
  341. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.d.ts.map +1 -1
  342. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.js +2 -1
  343. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.js.map +1 -1
  344. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transform-parameters.d.ts +1 -0
  345. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transform-parameters.d.ts.map +1 -1
  346. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-context-provider.d.ts +3 -1
  347. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-context-provider.d.ts.map +1 -1
  348. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-datasource-provider.d.ts +9 -5
  349. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-datasource-provider.d.ts.map +1 -1
  350. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-datasource-provider.js +5 -1
  351. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-datasource-provider.js.map +1 -1
  352. package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +2 -2
  353. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/graphql-api-provider.ts +38 -11
  354. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/index.ts +3 -0
  355. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/index.ts +2 -0
  356. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/transform-parameters.ts +1 -0
  357. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/transformer-context-provider.ts +9 -1
  358. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/transformer-datasource-provider.ts +28 -7
  359. package/node_modules/@aws-amplify/graphql-transformer-interfaces/tsconfig.tsbuildinfo +1 -1
  360. package/node_modules/graphql-transformer-common/API.md +22 -0
  361. package/node_modules/graphql-transformer-common/CHANGELOG.md +8 -1
  362. package/node_modules/graphql-transformer-common/lib/ResourceConstants.d.ts +1 -0
  363. package/node_modules/graphql-transformer-common/lib/ResourceConstants.d.ts.map +1 -1
  364. package/node_modules/graphql-transformer-common/lib/ResourceConstants.js +1 -0
  365. package/node_modules/graphql-transformer-common/lib/ResourceConstants.js.map +1 -1
  366. package/node_modules/graphql-transformer-common/lib/definition.d.ts +9 -2
  367. package/node_modules/graphql-transformer-common/lib/definition.d.ts.map +1 -1
  368. package/node_modules/graphql-transformer-common/lib/definition.js +52 -1
  369. package/node_modules/graphql-transformer-common/lib/definition.js.map +1 -1
  370. package/node_modules/graphql-transformer-common/lib/util.d.ts.map +1 -1
  371. package/node_modules/graphql-transformer-common/lib/util.js +3 -1
  372. package/node_modules/graphql-transformer-common/lib/util.js.map +1 -1
  373. package/node_modules/graphql-transformer-common/package.json +5 -5
  374. package/package.json +31 -29
  375. package/src/amplify-graphql-api.ts +82 -5
  376. package/src/amplify-graphql-definition.ts +34 -21
  377. package/src/index.ts +14 -5
  378. package/src/internal/data-source-config.ts +27 -9
  379. package/src/internal/default-parameters.ts +1 -0
  380. package/src/internal/model-type-name.ts +28 -19
  381. package/src/sql-model-datasource-strategy.ts +62 -0
  382. package/src/types.ts +190 -45
  383. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/field.d.ts.map +0 -1
  384. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/field.js.map +0 -1
  385. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/helpers.d.ts.map +0 -1
  386. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/helpers.js.map +0 -1
  387. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/index.d.ts.map +0 -1
  388. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/index.js.map +0 -1
  389. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.create.d.ts.map +0 -1
  390. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.create.js.map +0 -1
  391. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.delete.d.ts.map +0 -1
  392. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.delete.js.map +0 -1
  393. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.update.d.ts.map +0 -1
  394. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.update.js.map +0 -1
  395. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/query.d.ts +0 -6
  396. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/query.d.ts.map +0 -1
  397. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/query.js.map +0 -1
  398. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/search.d.ts.map +0 -1
  399. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/search.js.map +0 -1
  400. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/subscriptions.d.ts.map +0 -1
  401. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/subscriptions.js.map +0 -1
  402. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-secret-utils.d.ts +0 -2
  403. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-secret-utils.d.ts.map +0 -1
  404. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-secret-utils.js +0 -25
  405. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-secret-utils.js.map +0 -1
  406. /package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/index.d.ts +0 -0
  407. /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,6 @@ exports.defaultTranslationBehavior = {
18
18
  respectPrimaryKeyAttributesOnConnectionField: true,
19
19
  enableSearchNodeToNodeEncryption: false,
20
20
  enableTransformerCfnOutputs: false,
21
+ allowDestructiveGraphqlSchemaUpdates: false,
21
22
  };
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1wYXJhbWV0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL2RlZmF1bHQtcGFyYW1ldGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7OztHQUlHO0FBQ1UsUUFBQSwwQkFBMEIsR0FBd0I7SUFDN0Qsc0NBQXNDLEVBQUUsSUFBSTtJQUM1Qyx1QkFBdUIsRUFBRSxJQUFJO0lBQzdCLGtCQUFrQixFQUFFLEtBQUs7SUFDekIscUNBQXFDLEVBQUUsSUFBSTtJQUMzQyxvQ0FBb0MsRUFBRSxJQUFJO0lBQzFDLHdCQUF3QixFQUFFLEtBQUs7SUFDL0IsaUJBQWlCLEVBQUUsSUFBSTtJQUN2Qix5QkFBeUIsRUFBRSxJQUFJO0lBQy9CLDRDQUE0QyxFQUFFLElBQUk7SUFDbEQsZ0NBQWdDLEVBQUUsS0FBSztJQUN2QywyQkFBMkIsRUFBRSxLQUFLO0NBQ25DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2xhdGlvbkJlaGF2aW9yIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIERlZmF1bHRzIHdoaWNoIHdpbGwgYmUgdXNlZCBieSB0aGUgY29uc3RydWN0IGlmIG92ZXJyaWRlcyBhcmUgbm90IHByb3ZpZGVkLlxuICogVGhlc2Ugc2hvdWxkIG5vdCByZWFsbHkgYmUgdXBkYXRlZCBwb3N0LWxhdW5jaCwgc2luY2UgdGhleSdyZSBsaWtlbHkgYnJlYWtpbmcgY2hhbmdlcyBmb3IgY3VzdG9tZXJzLlxuICogQmUgc3VyZSB0byBkb2N1bWVudCBkZWZhdWx0IHZhbHVlcyB3aGVuIGFkZGluZyBuZXcga2V5cyBpbiB0aGUgdG9wIGxldmVsIGB0eXBlc2AgZmlsZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRUcmFuc2xhdGlvbkJlaGF2aW9yOiBUcmFuc2xhdGlvbkJlaGF2aW9yID0ge1xuICBzaG91bGREZWVwTWVyZ2VEaXJlY3RpdmVDb25maWdEZWZhdWx0czogdHJ1ZSxcbiAgZGlzYWJsZVJlc29sdmVyRGVkdXBpbmc6IHRydWUsXG4gIHNhbmRib3hNb2RlRW5hYmxlZDogZmFsc2UsXG4gIHVzZVN1YlVzZXJuYW1lRm9yRGVmYXVsdElkZW50aXR5Q2xhaW06IHRydWUsXG4gIHBvcHVsYXRlT3duZXJGaWVsZEZvclN0YXRpY0dyb3VwQXV0aDogdHJ1ZSxcbiAgc3VwcHJlc3NBcGlLZXlHZW5lcmF0aW9uOiBmYWxzZSxcbiAgc2Vjb25kYXJ5S2V5QXNHU0k6IHRydWUsXG4gIGVuYWJsZUF1dG9JbmRleFF1ZXJ5TmFtZXM6IHRydWUsXG4gIHJlc3BlY3RQcmltYXJ5S2V5QXR0cmlidXRlc09uQ29ubmVjdGlvbkZpZWxkOiB0cnVlLFxuICBlbmFibGVTZWFyY2hOb2RlVG9Ob2RlRW5jcnlwdGlvbjogZmFsc2UsXG4gIGVuYWJsZVRyYW5zZm9ybWVyQ2ZuT3V0cHV0czogZmFsc2UsXG59O1xuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1wYXJhbWV0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL2RlZmF1bHQtcGFyYW1ldGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7OztHQUlHO0FBQ1UsUUFBQSwwQkFBMEIsR0FBd0I7SUFDN0Qsc0NBQXNDLEVBQUUsSUFBSTtJQUM1Qyx1QkFBdUIsRUFBRSxJQUFJO0lBQzdCLGtCQUFrQixFQUFFLEtBQUs7SUFDekIscUNBQXFDLEVBQUUsSUFBSTtJQUMzQyxvQ0FBb0MsRUFBRSxJQUFJO0lBQzFDLHdCQUF3QixFQUFFLEtBQUs7SUFDL0IsaUJBQWlCLEVBQUUsSUFBSTtJQUN2Qix5QkFBeUIsRUFBRSxJQUFJO0lBQy9CLDRDQUE0QyxFQUFFLElBQUk7SUFDbEQsZ0NBQWdDLEVBQUUsS0FBSztJQUN2QywyQkFBMkIsRUFBRSxLQUFLO0lBQ2xDLG9DQUFvQyxFQUFFLEtBQUs7Q0FDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zbGF0aW9uQmVoYXZpb3IgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogRGVmYXVsdHMgd2hpY2ggd2lsbCBiZSB1c2VkIGJ5IHRoZSBjb25zdHJ1Y3QgaWYgb3ZlcnJpZGVzIGFyZSBub3QgcHJvdmlkZWQuXG4gKiBUaGVzZSBzaG91bGQgbm90IHJlYWxseSBiZSB1cGRhdGVkIHBvc3QtbGF1bmNoLCBzaW5jZSB0aGV5J3JlIGxpa2VseSBicmVha2luZyBjaGFuZ2VzIGZvciBjdXN0b21lcnMuXG4gKiBCZSBzdXJlIHRvIGRvY3VtZW50IGRlZmF1bHQgdmFsdWVzIHdoZW4gYWRkaW5nIG5ldyBrZXlzIGluIHRoZSB0b3AgbGV2ZWwgYHR5cGVzYCBmaWxlLlxuICovXG5leHBvcnQgY29uc3QgZGVmYXVsdFRyYW5zbGF0aW9uQmVoYXZpb3I6IFRyYW5zbGF0aW9uQmVoYXZpb3IgPSB7XG4gIHNob3VsZERlZXBNZXJnZURpcmVjdGl2ZUNvbmZpZ0RlZmF1bHRzOiB0cnVlLFxuICBkaXNhYmxlUmVzb2x2ZXJEZWR1cGluZzogdHJ1ZSxcbiAgc2FuZGJveE1vZGVFbmFibGVkOiBmYWxzZSxcbiAgdXNlU3ViVXNlcm5hbWVGb3JEZWZhdWx0SWRlbnRpdHlDbGFpbTogdHJ1ZSxcbiAgcG9wdWxhdGVPd25lckZpZWxkRm9yU3RhdGljR3JvdXBBdXRoOiB0cnVlLFxuICBzdXBwcmVzc0FwaUtleUdlbmVyYXRpb246IGZhbHNlLFxuICBzZWNvbmRhcnlLZXlBc0dTSTogdHJ1ZSxcbiAgZW5hYmxlQXV0b0luZGV4UXVlcnlOYW1lczogdHJ1ZSxcbiAgcmVzcGVjdFByaW1hcnlLZXlBdHRyaWJ1dGVzT25Db25uZWN0aW9uRmllbGQ6IHRydWUsXG4gIGVuYWJsZVNlYXJjaE5vZGVUb05vZGVFbmNyeXB0aW9uOiBmYWxzZSxcbiAgZW5hYmxlVHJhbnNmb3JtZXJDZm5PdXRwdXRzOiBmYWxzZSxcbiAgYWxsb3dEZXN0cnVjdGl2ZUdyYXBocWxTY2hlbWFVcGRhdGVzOiBmYWxzZSxcbn07XG4iXX0=
@@ -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,19 @@ 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;
343
356
  }
344
357
  /**
345
358
  * A utility interface equivalent to Partial<TranslationBehavior>.
@@ -407,6 +420,19 @@ export interface PartialTranslationBehavior {
407
420
  * @default false
408
421
  */
409
422
  readonly enableTransformerCfnOutputs?: boolean;
423
+ /**
424
+ * The following schema updates require replacement of the underlying DynamoDB table:
425
+ *
426
+ * - Removing or renaming a model
427
+ * - Modifying the primary key of a model
428
+ * - Modifying a Local Secondary Index of a model (only applies to projects with secondaryKeyAsGSI turned off)
429
+ *
430
+ * ALL DATA WILL BE LOST when the table replacement happens. When enabled, destructive updates are allowed.
431
+ * This will only affect DynamoDB tables with provision strategy "AMPLIFY_TABLE".
432
+ * @default false
433
+ * @experimental
434
+ */
435
+ readonly allowDestructiveGraphqlSchemaUpdates?: boolean;
410
436
  }
411
437
  /**
412
438
  * Graphql Api definition, which can be implemented in multiple ways.
@@ -423,10 +449,21 @@ export interface IAmplifyGraphqlDefinition {
423
449
  */
424
450
  readonly functionSlots: FunctionSlot[];
425
451
  /**
426
- * Retrieve the datasource definition mapping. The default strategy is to use DynamoDB from CloudFormation.
427
- * @returns datasource definition mapping
452
+ * Retrieve the references to any lambda functions used in the definition.
453
+ * Useful for wiring through aws_lambda.Function constructs into the definition directly,
454
+ * and generated references to invoke them.
455
+ * @returns any lambda functions, keyed by their referenced 'name' in the generated schema.
428
456
  */
429
- readonly dataSourceDefinition: Record<string, ModelDataSourceDefinition>;
457
+ readonly referencedLambdaFunctions?: Record<string, IFunction>;
458
+ /**
459
+ * Retrieve the datasource strategy mapping. The default strategy is to use DynamoDB from CloudFormation.
460
+ *
461
+ * **NOTE** Explicitly specifying the 'dataSourceStrategies' configuration option is in preview and is not recommended to use with
462
+ * production systems. For production, use the static factory methods `fromString` or `fromFiles`.
463
+ * @experimental
464
+ * @returns datasource strategy mapping
465
+ */
466
+ readonly dataSourceStrategies: Record<string, ModelDataSourceStrategy>;
430
467
  }
431
468
  /**
432
469
  * Entry representing the required output from the backend for codegen generate commands to work.
@@ -452,43 +489,6 @@ export interface IBackendOutputStorageStrategy {
452
489
  */
453
490
  addBackendOutputEntry(keyName: string, backendOutputEntry: IBackendOutputEntry): void;
454
491
  }
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
492
  /**
493
493
  * Input props for the AmplifyGraphqlApi construct. Specifies what the input to transform into an Api, and configurations for
494
494
  * the transformation process.
@@ -678,3 +678,123 @@ export interface AddFunctionProps {
678
678
  */
679
679
  readonly code?: Code;
680
680
  }
681
+ /**
682
+ * All known ModelDataSourceStrategies. Concrete strategies vary widely in their requirements and implementations.
683
+ * @experimental
684
+ */
685
+ export type ModelDataSourceStrategy = DefaultDynamoDbModelDataSourceStrategy | AmplifyDynamoDbModelDataSourceStrategy | SQLLambdaModelDataSourceStrategy;
686
+ export type ModelDataSourceStrategyDbType = 'DYNAMODB';
687
+ /**
688
+ * Use default CloudFormation type 'AWS::DynamoDB::Table' to provision table.
689
+ * @experimental
690
+ */
691
+ export interface DefaultDynamoDbModelDataSourceStrategy {
692
+ readonly dbType: 'DYNAMODB';
693
+ readonly provisionStrategy: 'DEFAULT';
694
+ }
695
+ /**
696
+ * Use custom resource type 'Custom::AmplifyDynamoDBTable' to provision table.
697
+ * @experimental
698
+ */
699
+ export interface AmplifyDynamoDbModelDataSourceStrategy {
700
+ readonly dbType: 'DYNAMODB';
701
+ readonly provisionStrategy: 'AMPLIFY_TABLE';
702
+ }
703
+ /**
704
+ * A strategy that creates a Lambda to connect to a pre-existing SQL table to resolve model data.
705
+ *
706
+ * @experimental
707
+ */
708
+ export interface SQLLambdaModelDataSourceStrategy {
709
+ /**
710
+ * The name of the strategy. This will be used to name the AppSync DataSource itself, plus any associated resources like resolver Lambdas.
711
+ * This name must be unique across all schema definitions in a GraphQL API.
712
+ */
713
+ readonly name: string;
714
+ /**
715
+ * The type of the SQL database used to process model operations for this definition.
716
+ */
717
+ readonly dbType: 'MYSQL' | 'POSTGRES';
718
+ /**
719
+ * The parameters the Lambda data source will use to connect to the database.
720
+ */
721
+ readonly dbConnectionConfig: SqlModelDataSourceDbConnectionConfig;
722
+ /**
723
+ * The configuration of the VPC into which to install the Lambda.
724
+ */
725
+ readonly vpcConfiguration?: VpcConfig;
726
+ /**
727
+ * Custom SQL statements. The key is the value of the `references` attribute of the `@sql` directive in the `schema`; the value is the SQL
728
+ * to be executed.
729
+ */
730
+ readonly customSqlStatements?: Record<string, string>;
731
+ /**
732
+ * An optional override for the default SQL Lambda Layer
733
+ */
734
+ readonly sqlLambdaLayerMapping?: SQLLambdaLayerMapping;
735
+ /**
736
+ * The configuration for the provisioned concurrency of the Lambda.
737
+ */
738
+ readonly sqlLambdaProvisionedConcurrencyConfig?: ProvisionedConcurrencyConfig;
739
+ }
740
+ /**
741
+ * 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
742
+ * into the specified VPC, subnets, and security groups. The specified subnets and security groups must be in the same VPC. The VPC must
743
+ * have at least one subnet. The construct will also create VPC service endpoints in the specified subnets, as well as inbound security
744
+ * rules, to allow traffic on port 443 within each security group. This allows the Lambda to read database connection information from
745
+ * Secure Systems Manager.
746
+ * @experimental
747
+ */
748
+ export interface VpcConfig {
749
+ /** The VPC to install the Lambda data source in. */
750
+ readonly vpcId: string;
751
+ /** The security groups to install the Lambda data source in. */
752
+ readonly securityGroupIds: string[];
753
+ /** The subnets to install the Lambda data source in, one per availability zone. */
754
+ readonly subnetAvailabilityZoneConfig: SubnetAvailabilityZone[];
755
+ }
756
+ /**
757
+ * The configuration for the provisioned concurrency of the Lambda.
758
+ * @experimental
759
+ */
760
+ export interface ProvisionedConcurrencyConfig {
761
+ /** The amount of provisioned concurrency to allocate. **/
762
+ readonly provisionedConcurrentExecutions: number;
763
+ }
764
+ /**
765
+ * Subnet configuration for VPC endpoints used by a Lambda resolver for a SQL-based data source. Although it is possible to create multiple
766
+ * subnets in a single availability zone, VPC service endpoints may only be deployed to a single subnet in a given availability zone. This
767
+ * structure ensures that the Lambda function and VPC service endpoints are mutually consistent.
768
+ * @experimental
769
+ */
770
+ export interface SubnetAvailabilityZone {
771
+ /** The subnet ID to install the Lambda data source in. */
772
+ readonly subnetId: string;
773
+ /** The availability zone of the subnet. */
774
+ readonly availabilityZone: string;
775
+ }
776
+ /**
777
+ * 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
778
+ * ARN
779
+ */
780
+ export type SQLLambdaLayerMapping = Record<string, string>;
781
+ /**
782
+ * The Secure Systems Manager parameter paths the Lambda data source will use to connect to the database.
783
+ *
784
+ * These parameters are retrieved from Secure Systems Manager in the same region as the Lambda.
785
+ * @experimental
786
+ */
787
+ export interface SqlModelDataSourceDbConnectionConfig {
788
+ /** The Secure Systems Manager parameter containing the hostname of the database. For RDS-based SQL data sources, this can be the hostname
789
+ * of a database proxy, cluster, or instance.
790
+ */
791
+ readonly hostnameSsmPath: string;
792
+ /** The Secure Systems Manager parameter containing the port number of the database proxy, cluster, or instance. */
793
+ readonly portSsmPath: string;
794
+ /** The Secure Systems Manager parameter containing the username to use when connecting to the database. */
795
+ readonly usernameSsmPath: string;
796
+ /** The Secure Systems Manager parameter containing the password to use when connecting to the database. */
797
+ readonly passwordSsmPath: string;
798
+ /** The Secure Systems Manager parameter containing the database name. */
799
+ readonly databaseNameSsmPath: string;
800
+ }