@aws-amplify/graphql-api-construct 1.4.2 → 1.5.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 (251) hide show
  1. package/.jsii +367 -278
  2. package/API.md +14 -3
  3. package/CHANGELOG.md +18 -0
  4. package/README.md +210 -20
  5. package/lib/amplify-dynamodb-table-wrapper.js +1 -1
  6. package/lib/amplify-graphql-api.d.ts +0 -7
  7. package/lib/amplify-graphql-api.js +18 -65
  8. package/lib/amplify-graphql-definition.d.ts +4 -15
  9. package/lib/amplify-graphql-definition.js +33 -30
  10. package/lib/index.d.ts +2 -1
  11. package/lib/index.js +16 -1
  12. package/lib/internal/data-source-config.d.ts +22 -9
  13. package/lib/internal/data-source-config.js +150 -39
  14. package/lib/internal/model-type-name.d.ts +3 -3
  15. package/lib/internal/model-type-name.js +7 -7
  16. package/lib/model-datasource-strategy-types.d.ts +122 -0
  17. package/lib/model-datasource-strategy-types.js +10 -0
  18. package/lib/sql-model-datasource-strategy.d.ts +1 -1
  19. package/lib/sql-model-datasource-strategy.js +4 -4
  20. package/lib/types.d.ts +12 -119
  21. package/lib/types.js +1 -1
  22. package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +10 -0
  23. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.d.ts.map +1 -1
  24. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.js +6 -10
  25. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.js.map +1 -1
  26. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/validations.js +1 -1
  27. package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +16 -12
  28. package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +10 -0
  29. package/node_modules/@aws-amplify/graphql-default-value-transformer/lib/graphql-default-value-transformer.d.ts.map +1 -1
  30. package/node_modules/@aws-amplify/graphql-default-value-transformer/lib/graphql-default-value-transformer.js +2 -7
  31. package/node_modules/@aws-amplify/graphql-default-value-transformer/lib/graphql-default-value-transformer.js.map +1 -1
  32. package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +13 -9
  33. package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +10 -0
  34. package/node_modules/@aws-amplify/graphql-function-transformer/lib/graphql-function-transformer.d.ts.map +1 -1
  35. package/node_modules/@aws-amplify/graphql-function-transformer/lib/graphql-function-transformer.js +7 -0
  36. package/node_modules/@aws-amplify/graphql-function-transformer/lib/graphql-function-transformer.js.map +1 -1
  37. package/node_modules/@aws-amplify/graphql-function-transformer/package.json +11 -7
  38. package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +8 -0
  39. package/node_modules/@aws-amplify/graphql-http-transformer/package.json +11 -7
  40. package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +10 -0
  41. package/node_modules/@aws-amplify/graphql-index-transformer/lib/graphql-primary-key-transformer.d.ts.map +1 -1
  42. package/node_modules/@aws-amplify/graphql-index-transformer/lib/graphql-primary-key-transformer.js +4 -4
  43. package/node_modules/@aws-amplify/graphql-index-transformer/lib/graphql-primary-key-transformer.js.map +1 -1
  44. package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.d.ts +3 -5
  45. package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.d.ts.map +1 -1
  46. package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.js +12 -34
  47. package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.js.map +1 -1
  48. package/node_modules/@aws-amplify/graphql-index-transformer/package.json +13 -9
  49. package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +10 -0
  50. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
  51. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-maps-to-transformer.d.ts.map +1 -1
  52. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-maps-to-transformer.js +3 -4
  53. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-maps-to-transformer.js.map +1 -1
  54. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-refers-to-transformer.d.ts.map +1 -1
  55. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-refers-to-transformer.js +3 -3
  56. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-refers-to-transformer.js.map +1 -1
  57. package/node_modules/@aws-amplify/graphql-maps-to-transformer/package.json +16 -12
  58. package/node_modules/@aws-amplify/graphql-model-transformer/API.md +16 -0
  59. package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +13 -0
  60. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.d.ts +1 -3
  61. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.d.ts.map +1 -1
  62. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.js +61 -68
  63. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.js.map +1 -1
  64. package/node_modules/@aws-amplify/graphql-model-transformer/lib/index.d.ts +1 -0
  65. package/node_modules/@aws-amplify/graphql-model-transformer/lib/index.d.ts.map +1 -1
  66. package/node_modules/@aws-amplify/graphql-model-transformer/lib/index.js +3 -1
  67. package/node_modules/@aws-amplify/graphql-model-transformer/lib/index.js.map +1 -1
  68. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
  69. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
  70. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
  71. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.d.ts +8 -8
  72. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.d.ts.map +1 -1
  73. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.js +32 -36
  74. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.js.map +1 -1
  75. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.d.ts +3 -2
  76. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.d.ts.map +1 -1
  77. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js +70 -34
  78. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js.map +1 -1
  79. package/node_modules/@aws-amplify/graphql-model-transformer/package.json +15 -10
  80. package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +8 -0
  81. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
  82. package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +11 -7
  83. package/node_modules/@aws-amplify/graphql-relational-transformer/API.md +2 -2
  84. package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +12 -0
  85. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.d.ts.map +1 -1
  86. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.js +14 -7
  87. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.js.map +1 -1
  88. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.d.ts.map +1 -1
  89. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.js +6 -6
  90. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.js.map +1 -1
  91. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.js +6 -6
  92. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.js.map +1 -1
  93. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-many-to-many-transformer.d.ts.map +1 -1
  94. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-many-to-many-transformer.js +8 -1
  95. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-many-to-many-transformer.js.map +1 -1
  96. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-generator.d.ts.map +1 -1
  97. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-generator.js +5 -3
  98. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-generator.js.map +1 -1
  99. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator-factory.d.ts +2 -2
  100. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator-factory.d.ts.map +1 -1
  101. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator-factory.js.map +1 -1
  102. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/rds-generator.d.ts.map +1 -1
  103. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/rds-generator.js +18 -6
  104. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/rds-generator.js.map +1 -1
  105. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.d.ts +18 -18
  106. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.d.ts.map +1 -1
  107. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.js +54 -54
  108. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.js.map +1 -1
  109. package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +14 -10
  110. package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +10 -0
  111. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/graphql-searchable-transformer.js +1 -1
  112. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
  113. package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +12 -8
  114. package/node_modules/@aws-amplify/graphql-sql-transformer/CHANGELOG.md +12 -0
  115. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/graphql-sql-transformer.d.ts.map +1 -1
  116. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/graphql-sql-transformer.js +32 -12
  117. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/graphql-sql-transformer.js.map +1 -1
  118. package/node_modules/@aws-amplify/graphql-sql-transformer/package.json +12 -8
  119. package/node_modules/@aws-amplify/graphql-transformer/API.md +4 -16
  120. package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +10 -0
  121. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts +4 -13
  122. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts.map +1 -1
  123. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js +8 -14
  124. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js.map +1 -1
  125. package/node_modules/@aws-amplify/graphql-transformer/package.json +20 -16
  126. package/node_modules/@aws-amplify/graphql-transformer/src/graphql-transformer.ts +30 -54
  127. package/node_modules/@aws-amplify/graphql-transformer-core/API.md +128 -31
  128. package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +13 -0
  129. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.d.ts +3 -3
  130. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.d.ts.map +1 -1
  131. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.js +34 -16
  132. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.js.map +1 -1
  133. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/index.d.ts +1 -1
  134. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/index.d.ts.map +1 -1
  135. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/index.js +4 -2
  136. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/index.js.map +1 -1
  137. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.d.ts +6 -12
  138. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.d.ts.map +1 -1
  139. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.js +16 -5
  140. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.js.map +1 -1
  141. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/types.d.ts +0 -8
  142. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/types.d.ts.map +1 -1
  143. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/utils.d.ts +12 -10
  144. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/utils.d.ts.map +1 -1
  145. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/utils.js +94 -39
  146. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/utils.js.map +1 -1
  147. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.d.ts +18 -12
  148. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.d.ts.map +1 -1
  149. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.js +13 -15
  150. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.js.map +1 -1
  151. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/import-appsync-api-types.d.ts +1 -4
  152. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/import-appsync-api-types.d.ts.map +1 -1
  153. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/import-appsync-api-types.js +1 -4
  154. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/import-appsync-api-types.js.map +1 -1
  155. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/index.d.ts +2 -1
  156. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/index.d.ts.map +1 -1
  157. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/index.js +16 -4
  158. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/index.js.map +1 -1
  159. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/model-datasource-strategies.d.ts +7 -0
  160. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/model-datasource-strategies.d.ts.map +1 -0
  161. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/model-datasource-strategies.js +15 -0
  162. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/model-datasource-strategies.js.map +1 -0
  163. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/types.d.ts.map +1 -1
  164. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/graphql-utils.d.ts +28 -0
  165. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/graphql-utils.d.ts.map +1 -0
  166. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/graphql-utils.js +39 -0
  167. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/graphql-utils.js.map +1 -0
  168. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.d.ts +5 -4
  169. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.d.ts.map +1 -1
  170. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.js +21 -12
  171. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.js.map +1 -1
  172. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.d.ts +14 -0
  173. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.d.ts.map +1 -0
  174. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.js +96 -0
  175. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.js.map +1 -0
  176. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.d.ts +0 -10
  177. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.d.ts.map +1 -1
  178. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.js +1 -58
  179. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.js.map +1 -1
  180. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/resource-name.d.ts +22 -0
  181. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/resource-name.d.ts.map +1 -1
  182. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/resource-name.js +28 -1
  183. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/resource-name.js.map +1 -1
  184. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/schema-utils.d.ts +2 -2
  185. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/schema-utils.d.ts.map +1 -1
  186. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/schema-utils.js +7 -6
  187. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/schema-utils.js.map +1 -1
  188. package/node_modules/@aws-amplify/graphql-transformer-core/package.json +9 -5
  189. package/node_modules/@aws-amplify/graphql-transformer-interfaces/API.md +88 -40
  190. package/node_modules/@aws-amplify/graphql-transformer-interfaces/CHANGELOG.md +10 -0
  191. package/node_modules/@aws-amplify/graphql-transformer-interfaces/LICENSE +201 -0
  192. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/graphql-api-provider.d.ts +0 -17
  193. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/graphql-api-provider.d.ts.map +1 -1
  194. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/graphql-api-provider.js.map +1 -1
  195. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/index.d.ts +2 -1
  196. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/index.d.ts.map +1 -1
  197. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/index.js +1 -0
  198. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/index.js.map +1 -1
  199. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/index.d.ts +2 -0
  200. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/index.d.ts.map +1 -0
  201. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/index.js +18 -0
  202. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/index.js.map +1 -0
  203. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.d.ts +59 -0
  204. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.d.ts.map +1 -0
  205. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.js +3 -0
  206. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.js.map +1 -0
  207. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transform-host-provider.d.ts +2 -1
  208. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transform-host-provider.d.ts.map +1 -1
  209. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.d.ts +2 -2
  210. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.d.ts.map +1 -1
  211. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.js +1 -3
  212. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.js.map +1 -1
  213. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-context-provider.d.ts +12 -17
  214. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-context-provider.d.ts.map +1 -1
  215. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-datasource-provider.d.ts +0 -15
  216. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-datasource-provider.d.ts.map +1 -1
  217. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-datasource-provider.js +1 -10
  218. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-datasource-provider.js.map +1 -1
  219. package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +8 -3
  220. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/graphql-api-provider.ts +1 -41
  221. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/index.ts +1 -4
  222. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/model-datasource/index.ts +1 -0
  223. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/model-datasource/types.ts +195 -0
  224. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transform-host-provider.ts +1 -1
  225. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/index.ts +4 -9
  226. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/transformer-context-provider.ts +15 -23
  227. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/transformer-datasource-provider.ts +0 -43
  228. package/node_modules/@aws-amplify/graphql-transformer-interfaces/tsconfig.tsbuildinfo +1 -1
  229. package/node_modules/graphql-mapping-template/CHANGELOG.md +4 -0
  230. package/node_modules/graphql-mapping-template/LICENSE +201 -0
  231. package/node_modules/graphql-mapping-template/package.json +8 -3
  232. package/node_modules/graphql-transformer-common/API.md +0 -15
  233. package/node_modules/graphql-transformer-common/CHANGELOG.md +6 -0
  234. package/node_modules/graphql-transformer-common/lib/ResourceConstants.d.ts +0 -15
  235. package/node_modules/graphql-transformer-common/lib/ResourceConstants.d.ts.map +1 -1
  236. package/node_modules/graphql-transformer-common/lib/ResourceConstants.js +0 -15
  237. package/node_modules/graphql-transformer-common/lib/ResourceConstants.js.map +1 -1
  238. package/node_modules/graphql-transformer-common/package.json +7 -3
  239. package/package.json +24 -19
  240. package/src/amplify-graphql-api.ts +19 -76
  241. package/src/amplify-graphql-definition.ts +47 -30
  242. package/src/index.ts +2 -10
  243. package/src/internal/data-source-config.ts +195 -47
  244. package/src/internal/model-type-name.ts +5 -4
  245. package/src/model-datasource-strategy-types.ts +157 -0
  246. package/src/sql-model-datasource-strategy.ts +3 -3
  247. package/src/types.ts +13 -144
  248. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/provision-strategy-utils.d.ts +0 -3
  249. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/provision-strategy-utils.d.ts.map +0 -1
  250. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/provision-strategy-utils.js +0 -15
  251. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/provision-strategy-utils.js.map +0 -1
@@ -1,49 +1,160 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseDataSourceConfig = void 0;
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) {
9
- case 'DEFAULT':
10
- return {
11
- dbType: 'DDB',
12
- provisionDB: true,
13
- provisionStrategy: "DEFAULT" /* DynamoDBProvisionStrategy.DEFAULT */,
14
- };
15
- case 'AMPLIFY_TABLE':
16
- return {
17
- dbType: 'DDB',
18
- provisionDB: true,
19
- provisionStrategy: "AMPLIFY_TABLE" /* DynamoDBProvisionStrategy.AMPLIFY_TABLE */,
20
- };
21
- default:
22
- throw new Error(`Encountered unexpected provision strategy: ${dataSourceStrategy.provisionStrategy}`);
3
+ exports.validateDataSourceStrategy = exports.schemaByMergingDefinitions = exports.getDataSourceStrategiesProvider = exports.constructCustomSqlDataSourceStrategies = void 0;
4
+ const graphql_1 = require("graphql");
5
+ const graphql_transformer_core_1 = require("@aws-amplify/graphql-transformer-core");
6
+ /**
7
+ * Creates an interface flavor of customSqlDataSourceStrategies from a factory method's schema and data source. Internally, this function
8
+ * scans the fields of `Query` and `Mutation` looking for fields annotated with the `@sql` directive and designates the specified
9
+ * dataSourceStrategy to fulfill those custom queries.
10
+ *
11
+ * Note that we do not scan for `Subscription` fields: `@sql` directives are not allowed on those, and it wouldn't make sense to do so
12
+ * anyway, since subscriptions are processed from an incoming Mutation, not as the result of a direct datasource access.
13
+ */
14
+ const constructCustomSqlDataSourceStrategies = (schema, dataSourceStrategy) => {
15
+ if (!(0, graphql_transformer_core_1.isSqlStrategy)(dataSourceStrategy)) {
16
+ return [];
17
+ }
18
+ const parsedSchema = (0, graphql_1.parse)(schema);
19
+ const queryNode = parsedSchema.definitions.find(graphql_transformer_core_1.isQueryNode);
20
+ const mutationNode = parsedSchema.definitions.find(graphql_transformer_core_1.isMutationNode);
21
+ if (!queryNode && !mutationNode) {
22
+ return [];
23
+ }
24
+ const customSqlDataSourceStrategies = [];
25
+ if (queryNode) {
26
+ const fields = (0, graphql_transformer_core_1.fieldsWithSqlDirective)(queryNode);
27
+ for (const field of fields) {
28
+ customSqlDataSourceStrategies.push({
29
+ typeName: 'Query',
30
+ fieldName: field.name.value,
31
+ strategy: dataSourceStrategy,
32
+ });
23
33
  }
24
34
  }
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
- };
35
+ if (mutationNode) {
36
+ const fields = (0, graphql_transformer_core_1.fieldsWithSqlDirective)(mutationNode);
37
+ for (const field of fields) {
38
+ customSqlDataSourceStrategies.push({
39
+ typeName: 'Mutation',
40
+ fieldName: field.name.value,
41
+ strategy: dataSourceStrategy,
42
+ });
43
+ }
31
44
  }
32
- throw new Error(`Encountered unexpected database type ${dataSourceStrategy.dbType}`);
45
+ return customSqlDataSourceStrategies;
33
46
  };
47
+ exports.constructCustomSqlDataSourceStrategies = constructCustomSqlDataSourceStrategies;
34
48
  /**
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.
49
+ * Extracts the data source provider from the definition. This jumps through some hoops to avoid changing the public interface. If we decide
50
+ * to change the public interface to simplify the structure, then this process gets a lot simpler.
37
51
  */
38
- const parseDataSourceConfig = (dataSourceDefinitionMap) => {
39
- const modelToDatasourceMap = new Map();
40
- for (const [key, value] of Object.entries(dataSourceDefinitionMap)) {
41
- const dataSourceType = convertToDataSourceType(value);
42
- modelToDatasourceMap.set(key, dataSourceType);
43
- }
44
- return {
45
- modelToDatasourceMap,
52
+ const getDataSourceStrategiesProvider = (definition) => {
53
+ const provider = {
54
+ // We can directly use the interface strategies, even though the SQL strategies have the customSqlStatements field that is unused by the
55
+ // transformer flavor of this type
56
+ dataSourceStrategies: definition.dataSourceStrategies,
57
+ sqlDirectiveDataSourceStrategies: [],
58
+ };
59
+ // We'll collect all the custom SQL statements from the definition into a single map, and use that to make our
60
+ // SqlDirectiveDataSourceStrategies
61
+ const customSqlStatements = {};
62
+ const constructSqlStrategies = definition.customSqlDataSourceStrategies ?? [];
63
+ // Note that we're relying on the `customSqlStatements` object reference to stay the same throughout this loop. Don't reassign it, or the
64
+ // collected sqlDirectiveStrategies will break
65
+ constructSqlStrategies.forEach((sqlStrategy) => {
66
+ if (sqlStrategy.strategy.customSqlStatements) {
67
+ Object.assign(customSqlStatements, sqlStrategy.strategy.customSqlStatements);
68
+ }
69
+ provider.sqlDirectiveDataSourceStrategies.push({
70
+ typeName: sqlStrategy.typeName,
71
+ fieldName: sqlStrategy.fieldName,
72
+ strategy: sqlStrategy.strategy,
73
+ customSqlStatements,
74
+ });
75
+ });
76
+ return provider;
77
+ };
78
+ exports.getDataSourceStrategiesProvider = getDataSourceStrategiesProvider;
79
+ /**
80
+ * Creates a new schema by merging the individual schemas contained in the definitions, combining fields of the Query and Mutation types in
81
+ * individual definitions into a single combined definition. Adding directives to `Query` and `Mutation` types participating in a
82
+ * combination is not supported (the behavior is undefined whether those directives are migrated).
83
+ */
84
+ const schemaByMergingDefinitions = (definitions) => {
85
+ const schema = definitions.map((def) => def.schema).join('\n');
86
+ const parsedSchema = (0, graphql_1.parse)(schema);
87
+ // We store the Query & Mutation definitions separately. Since the interfaces are readonly, we'll have to re-compose the types after we've
88
+ // collected all the fields
89
+ const queryAndMutationDefinitions = {};
90
+ // Throws if the field has already been encountered
91
+ const validateField = (typeName, fieldName) => {
92
+ const fields = queryAndMutationDefinitions[typeName]?.fields;
93
+ if (!fields) {
94
+ return;
95
+ }
96
+ if (fields.find((field) => field.name.value === fieldName)) {
97
+ throw new Error(`The custom ${typeName} field '${fieldName}' was found in multiple definitions, but a field name cannot be shared between definitions.`);
98
+ }
99
+ };
100
+ // Transform the schema by reducing Mutation & Query types:
101
+ // - Collect Mutation and Query definitions
102
+ // - Alter the parsed schema by filtering out Mutation & Query types
103
+ // - Add the combined Mutation & Query definitions to the filtered schema
104
+ parsedSchema.definitions.filter(graphql_transformer_core_1.isBuiltInGraphqlNode).forEach((def) => {
105
+ const typeName = def.name.value;
106
+ if (!queryAndMutationDefinitions[typeName]) {
107
+ queryAndMutationDefinitions[typeName] = {
108
+ node: def,
109
+ // `ObjectTypeDefinitionNode.fields` is a ReadonlyArray; so we have to create a new mutable array to collect all the fields
110
+ fields: [...(def.fields ?? [])],
111
+ };
112
+ return;
113
+ }
114
+ (def.fields ?? []).forEach((field) => {
115
+ validateField(typeName, field.name.value);
116
+ });
117
+ queryAndMutationDefinitions[typeName].fields = [...queryAndMutationDefinitions[typeName].fields, ...(def.fields ?? [])];
118
+ });
119
+ // Gather the collected Query & Mutation fields into <=2 new definitions
120
+ const combinedDefinitions = Object.values(queryAndMutationDefinitions)
121
+ .sort((a, b) => a.node.name.value.localeCompare(b.node.name.value))
122
+ .reduce((acc, cur) => {
123
+ const definitionNode = {
124
+ ...cur.node,
125
+ fields: cur.fields,
126
+ };
127
+ return [...acc, definitionNode];
128
+ }, []);
129
+ // Filter out the old Query & Mutation definitions
130
+ const filteredDefinitions = parsedSchema.definitions.filter((def) => !(0, graphql_transformer_core_1.isBuiltInGraphqlNode)(def));
131
+ // Compose the new schema by appending the collected definitions to the filtered definitions. This means that every query will be
132
+ // rewritten such that the Mutation and Query types appear at the end of the schema.
133
+ const newSchema = {
134
+ ...parsedSchema,
135
+ definitions: [...filteredDefinitions, ...combinedDefinitions],
46
136
  };
137
+ const combinedSchemaString = (0, graphql_1.print)(newSchema);
138
+ return combinedSchemaString;
139
+ };
140
+ exports.schemaByMergingDefinitions = schemaByMergingDefinitions;
141
+ /*
142
+ * Validates the user input for the dataSourceStrategy. This is a no-op for DynamoDB strategies for now.
143
+ * @param strategy user provided model data source strategy
144
+ * @returns validates and throws an error if the strategy is invalid
145
+ */
146
+ const validateDataSourceStrategy = (strategy) => {
147
+ if (!(0, graphql_transformer_core_1.isSqlStrategy)(strategy)) {
148
+ return;
149
+ }
150
+ const dbConnectionConfig = strategy.dbConnectionConfig;
151
+ const invalidSSMPaths = Object.values(dbConnectionConfig).filter((value) => typeof value === 'string' && !isValidSSMPath(value));
152
+ if (invalidSSMPaths.length > 0) {
153
+ throw new Error(`Invalid data source strategy "${strategy.name}". Following SSM paths must start with '/' in dbConnectionConfig: ${invalidSSMPaths.join(', ')}.`);
154
+ }
155
+ };
156
+ exports.validateDataSourceStrategy = validateDataSourceStrategy;
157
+ const isValidSSMPath = (path) => {
158
+ return path.startsWith('/');
47
159
  };
48
- exports.parseDataSourceConfig = parseDataSourceConfig;
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL2RhdGEtc291cmNlLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFZQSxxRkFBcUY7QUFDckYsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLGdCQUFzQyxFQUFhLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUV0SSxNQUFNLHVCQUF1QixHQUFHLENBQUMsa0JBQTJDLEVBQWtCLEVBQUU7SUFDOUYsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFO1FBQzVDLFFBQVEsa0JBQWtCLENBQUMsaUJBQWlCLEVBQUU7WUFDNUMsS0FBSyxTQUFTO2dCQUNaLE9BQU87b0JBQ0wsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsV0FBVyxFQUFFLElBQUk7b0JBQ2pCLGlCQUFpQixtREFBbUM7aUJBQ3JELENBQUM7WUFDSixLQUFLLGVBQWU7Z0JBQ2xCLE9BQU87b0JBQ0wsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsV0FBVyxFQUFFLElBQUk7b0JBQ2pCLGlCQUFpQiwrREFBeUM7aUJBQzNELENBQUM7WUFDSjtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDhDQUErQyxrQkFBMEIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7U0FDbEg7S0FDRjtTQUFNLElBQUksa0JBQWtCLENBQUMsTUFBTSxLQUFLLE9BQU8sSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFO1FBQzVGLE9BQU87WUFDTCxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDO1lBQ25ELFdBQVcsRUFBRSxLQUFLO1lBQ2xCLGlCQUFpQix5REFBeUM7U0FDM0QsQ0FBQztLQUNIO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0Msa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUN2RixDQUFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSSxNQUFNLHFCQUFxQixHQUFHLENBQUMsdUJBQWdFLEVBQW9CLEVBQUU7SUFDMUgsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBMEIsQ0FBQztJQUMvRCxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFO1FBQ2xFLE1BQU0sY0FBYyxHQUFHLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RELG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUM7S0FDL0M7SUFDRCxPQUFPO1FBQ0wsb0JBQW9CO0tBQ3JCLENBQUM7QUFDSixDQUFDLENBQUM7QUFUVyxRQUFBLHFCQUFxQix5QkFTaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEYXRhU291cmNlVHlwZSxcbiAgRHluYW1vREJQcm92aXNpb25TdHJhdGVneSxcbiAgU1FMREJUeXBlLFxuICBTUUxMYW1iZGFNb2RlbFByb3Zpc2lvblN0cmF0ZWd5LFxufSBmcm9tICdAYXdzLWFtcGxpZnkvZ3JhcGhxbC10cmFuc2Zvcm1lci1pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IH0gZnJvbSAnLi4vdHlwZXMnO1xuXG50eXBlIERhdGFTb3VyY2VDb25maWcgPSB7XG4gIG1vZGVsVG9EYXRhc291cmNlTWFwOiBNYXA8c3RyaW5nLCBEYXRhU291cmNlVHlwZT47XG59O1xuXG4vLyBUT0RPOiBEbyBhd2F5IHdpdGggdGhpcyBhZnRlciB3ZSBub3JtYWxpemUgZGF0YWJhc2UgdHlwZXMgdGhyb3VnaG91dCB0aGUgaW50ZXJuYWxzXG5jb25zdCBjb252ZXJ0U1FMREJUeXBlID0gKGRlZmluaXRpb25EQlR5cGU6ICdNWVNRTCcgfCAnUE9TVEdSRVMnKTogU1FMREJUeXBlID0+IChkZWZpbml0aW9uREJUeXBlID09PSAnTVlTUUwnID8gJ015U1FMJyA6ICdQb3N0Z3JlcycpO1xuXG5jb25zdCBjb252ZXJ0VG9EYXRhU291cmNlVHlwZSA9IChkYXRhU291cmNlU3RyYXRlZ3k6IE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5KTogRGF0YVNvdXJjZVR5cGUgPT4ge1xuICBpZiAoZGF0YVNvdXJjZVN0cmF0ZWd5LmRiVHlwZSA9PT0gJ0RZTkFNT0RCJykge1xuICAgIHN3aXRjaCAoZGF0YVNvdXJjZVN0cmF0ZWd5LnByb3Zpc2lvblN0cmF0ZWd5KSB7XG4gICAgICBjYXNlICdERUZBVUxUJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYlR5cGU6ICdEREInLFxuICAgICAgICAgIHByb3Zpc2lvbkRCOiB0cnVlLFxuICAgICAgICAgIHByb3Zpc2lvblN0cmF0ZWd5OiBEeW5hbW9EQlByb3Zpc2lvblN0cmF0ZWd5LkRFRkFVTFQsXG4gICAgICAgIH07XG4gICAgICBjYXNlICdBTVBMSUZZX1RBQkxFJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYlR5cGU6ICdEREInLFxuICAgICAgICAgIHByb3Zpc2lvbkRCOiB0cnVlLFxuICAgICAgICAgIHByb3Zpc2lvblN0cmF0ZWd5OiBEeW5hbW9EQlByb3Zpc2lvblN0cmF0ZWd5LkFNUExJRllfVEFCTEUsXG4gICAgICAgIH07XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEVuY291bnRlcmVkIHVuZXhwZWN0ZWQgcHJvdmlzaW9uIHN0cmF0ZWd5OiAkeyhkYXRhU291cmNlU3RyYXRlZ3kgYXMgYW55KS5wcm92aXNpb25TdHJhdGVneX1gKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoZGF0YVNvdXJjZVN0cmF0ZWd5LmRiVHlwZSA9PT0gJ01ZU1FMJyB8fCBkYXRhU291cmNlU3RyYXRlZ3kuZGJUeXBlID09PSAnUE9TVEdSRVMnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRiVHlwZTogY29udmVydFNRTERCVHlwZShkYXRhU291cmNlU3RyYXRlZ3kuZGJUeXBlKSxcbiAgICAgIHByb3Zpc2lvbkRCOiBmYWxzZSxcbiAgICAgIHByb3Zpc2lvblN0cmF0ZWd5OiBTUUxMYW1iZGFNb2RlbFByb3Zpc2lvblN0cmF0ZWd5LkRFRkFVTFQsXG4gICAgfTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYEVuY291bnRlcmVkIHVuZXhwZWN0ZWQgZGF0YWJhc2UgdHlwZSAke2RhdGFTb3VyY2VTdHJhdGVneS5kYlR5cGV9YCk7XG59O1xuXG4vKipcbiAqIEFuIGludGVybmFsIGhlbHBlciB0byBjb252ZXJ0IGZyb20gYSBtYXAgb2YgbW9kZWwtdG8tTW9kZWxEYXRhU291cmNlU3RyYXRlZ2llcyB0byB0aGUgbWFwIG9mIG1vZGVsLXRvLURhdGFTb3VyY2VUeXBlcyB0aGF0IGludGVybmFsXG4gKiB0cmFuc2Zvcm0gcHJvY2Vzc2luZyByZXF1aXJlcy4gVE9ETzogV2UgY2FuIHJlbW92ZSB0aGlzIG9uY2Ugd2UgcmVmYWN0b3IgdGhlIGludGVybmFscyB0byB1c2UgTW9kZWxEYXRhU291cmNlU3RyYXRlZ2llcyBuYXRpdmVseS5cbiAqL1xuZXhwb3J0IGNvbnN0IHBhcnNlRGF0YVNvdXJjZUNvbmZpZyA9IChkYXRhU291cmNlRGVmaW5pdGlvbk1hcDogUmVjb3JkPHN0cmluZywgTW9kZWxEYXRhU291cmNlU3RyYXRlZ3k+KTogRGF0YVNvdXJjZUNvbmZpZyA9PiB7XG4gIGNvbnN0IG1vZGVsVG9EYXRhc291cmNlTWFwID0gbmV3IE1hcDxzdHJpbmcsIERhdGFTb3VyY2VUeXBlPigpO1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhkYXRhU291cmNlRGVmaW5pdGlvbk1hcCkpIHtcbiAgICBjb25zdCBkYXRhU291cmNlVHlwZSA9IGNvbnZlcnRUb0RhdGFTb3VyY2VUeXBlKHZhbHVlKTtcbiAgICBtb2RlbFRvRGF0YXNvdXJjZU1hcC5zZXQoa2V5LCBkYXRhU291cmNlVHlwZSk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBtb2RlbFRvRGF0YXNvdXJjZU1hcCxcbiAgfTtcbn07XG4iXX0=
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL2RhdGEtc291cmNlLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBbUk7QUFDbkksb0ZBTStDO0FBUS9DOzs7Ozs7O0dBT0c7QUFDSSxNQUFNLHNDQUFzQyxHQUFHLENBQ3BELE1BQWMsRUFDZCxrQkFBb0QsRUFDWixFQUFFO0lBQzFDLElBQUksQ0FBQyxJQUFBLHdDQUFhLEVBQUMsa0JBQWtCLENBQUMsRUFBRTtRQUN0QyxPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsTUFBTSxZQUFZLEdBQUcsSUFBQSxlQUFLLEVBQUMsTUFBTSxDQUFDLENBQUM7SUFFbkMsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsc0NBQVcsQ0FBQyxDQUFDO0lBQzdELE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLHlDQUFjLENBQUMsQ0FBQztJQUNuRSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsWUFBWSxFQUFFO1FBQy9CLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFFRCxNQUFNLDZCQUE2QixHQUEyQyxFQUFFLENBQUM7SUFFakYsSUFBSSxTQUFTLEVBQUU7UUFDYixNQUFNLE1BQU0sR0FBRyxJQUFBLGlEQUFzQixFQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pELEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFO1lBQzFCLDZCQUE2QixDQUFDLElBQUksQ0FBQztnQkFDakMsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUs7Z0JBQzNCLFFBQVEsRUFBRSxrQkFBa0I7YUFDN0IsQ0FBQyxDQUFDO1NBQ0o7S0FDRjtJQUVELElBQUksWUFBWSxFQUFFO1FBQ2hCLE1BQU0sTUFBTSxHQUFHLElBQUEsaURBQXNC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Q0FBQztBQWRXLFFBQUEsMEJBQTBCLDhCQWNyQztBQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsSUFBWSxFQUFXLEVBQUU7SUFDL0MsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlZmluaXRpb25Ob2RlLCBGaWVsZERlZmluaXRpb25Ob2RlLCBJbnRlcmZhY2VUeXBlRGVmaW5pdGlvbk5vZGUsIE9iamVjdFR5cGVEZWZpbml0aW9uTm9kZSwgcGFyc2UsIHByaW50IH0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQge1xuICBpc0J1aWx0SW5HcmFwaHFsTm9kZSxcbiAgaXNTcWxTdHJhdGVneSxcbiAgaXNRdWVyeU5vZGUsXG4gIGlzTXV0YXRpb25Ob2RlLFxuICBmaWVsZHNXaXRoU3FsRGlyZWN0aXZlLFxufSBmcm9tICdAYXdzLWFtcGxpZnkvZ3JhcGhxbC10cmFuc2Zvcm1lci1jb3JlJztcbmltcG9ydCB7IERhdGFTb3VyY2VTdHJhdGVnaWVzUHJvdmlkZXIgfSBmcm9tICdAYXdzLWFtcGxpZnkvZ3JhcGhxbC10cmFuc2Zvcm1lci1pbnRlcmZhY2VzJztcbmltcG9ydCB7XG4gIEN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVneSBhcyBDb25zdHJ1Y3RDdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ3ksXG4gIE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IGFzIENvbnN0cnVjdE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5LFxufSBmcm9tICcuLi9tb2RlbC1kYXRhc291cmNlLXN0cmF0ZWd5LXR5cGVzJztcbmltcG9ydCB7IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24gfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBpbnRlcmZhY2UgZmxhdm9yIG9mIGN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzIGZyb20gYSBmYWN0b3J5IG1ldGhvZCdzIHNjaGVtYSBhbmQgZGF0YSBzb3VyY2UuIEludGVybmFsbHksIHRoaXMgZnVuY3Rpb25cbiAqIHNjYW5zIHRoZSBmaWVsZHMgb2YgYFF1ZXJ5YCBhbmQgYE11dGF0aW9uYCBsb29raW5nIGZvciBmaWVsZHMgYW5ub3RhdGVkIHdpdGggdGhlIGBAc3FsYCBkaXJlY3RpdmUgYW5kIGRlc2lnbmF0ZXMgdGhlIHNwZWNpZmllZFxuICogZGF0YVNvdXJjZVN0cmF0ZWd5IHRvIGZ1bGZpbGwgdGhvc2UgY3VzdG9tIHF1ZXJpZXMuXG4gKlxuICogTm90ZSB0aGF0IHdlIGRvIG5vdCBzY2FuIGZvciBgU3Vic2NyaXB0aW9uYCBmaWVsZHM6IGBAc3FsYCBkaXJlY3RpdmVzIGFyZSBub3QgYWxsb3dlZCBvbiB0aG9zZSwgYW5kIGl0IHdvdWxkbid0IG1ha2Ugc2Vuc2UgdG8gZG8gc29cbiAqIGFueXdheSwgc2luY2Ugc3Vic2NyaXB0aW9ucyBhcmUgcHJvY2Vzc2VkIGZyb20gYW4gaW5jb21pbmcgTXV0YXRpb24sIG5vdCBhcyB0aGUgcmVzdWx0IG9mIGEgZGlyZWN0IGRhdGFzb3VyY2UgYWNjZXNzLlxuICovXG5leHBvcnQgY29uc3QgY29uc3RydWN0Q3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXMgPSAoXG4gIHNjaGVtYTogc3RyaW5nLFxuICBkYXRhU291cmNlU3RyYXRlZ3k6IENvbnN0cnVjdE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5LFxuKTogQ29uc3RydWN0Q3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWd5W10gPT4ge1xuICBpZiAoIWlzU3FsU3RyYXRlZ3koZGF0YVNvdXJjZVN0cmF0ZWd5KSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHBhcnNlZFNjaGVtYSA9IHBhcnNlKHNjaGVtYSk7XG5cbiAgY29uc3QgcXVlcnlOb2RlID0gcGFyc2VkU2NoZW1hLmRlZmluaXRpb25zLmZpbmQoaXNRdWVyeU5vZGUpO1xuICBjb25zdCBtdXRhdGlvbk5vZGUgPSBwYXJzZWRTY2hlbWEuZGVmaW5pdGlvbnMuZmluZChpc011dGF0aW9uTm9kZSk7XG4gIGlmICghcXVlcnlOb2RlICYmICFtdXRhdGlvbk5vZGUpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBjdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ2llczogQ29uc3RydWN0Q3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWd5W10gPSBbXTtcblxuICBpZiAocXVlcnlOb2RlKSB7XG4gICAgY29uc3QgZmllbGRzID0gZmllbGRzV2l0aFNxbERpcmVjdGl2ZShxdWVyeU5vZGUpO1xuICAgIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgICBjdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ2llcy5wdXNoKHtcbiAgICAgICAgdHlwZU5hbWU6ICdRdWVyeScsXG4gICAgICAgIGZpZWxkTmFtZTogZmllbGQubmFtZS52YWx1ZSxcbiAgICAgICAgc3RyYXRlZ3k6IGRhdGFTb3VyY2VTdHJhdGVneSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGlmIChtdXRhdGlvbk5vZGUpIHtcbiAgICBjb25zdCBmaWVsZHMgPSBmaWVsZHNXaXRoU3FsRGlyZWN0aXZlKG11dGF0aW9uTm9kZSk7XG4gICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgIGN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzLnB1c2goe1xuICAgICAgICB0eXBlTmFtZTogJ011dGF0aW9uJyxcbiAgICAgICAgZmllbGROYW1lOiBmaWVsZC5uYW1lLnZhbHVlLFxuICAgICAgICBzdHJhdGVneTogZGF0YVNvdXJjZVN0cmF0ZWd5LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzO1xufTtcblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgZGF0YSBzb3VyY2UgcHJvdmlkZXIgZnJvbSB0aGUgZGVmaW5pdGlvbi4gVGhpcyBqdW1wcyB0aHJvdWdoIHNvbWUgaG9vcHMgdG8gYXZvaWQgY2hhbmdpbmcgdGhlIHB1YmxpYyBpbnRlcmZhY2UuIElmIHdlIGRlY2lkZVxuICogdG8gY2hhbmdlIHRoZSBwdWJsaWMgaW50ZXJmYWNlIHRvIHNpbXBsaWZ5IHRoZSBzdHJ1Y3R1cmUsIHRoZW4gdGhpcyBwcm9jZXNzIGdldHMgYSBsb3Qgc2ltcGxlci5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldERhdGFTb3VyY2VTdHJhdGVnaWVzUHJvdmlkZXIgPSAoZGVmaW5pdGlvbjogSUFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbik6IERhdGFTb3VyY2VTdHJhdGVnaWVzUHJvdmlkZXIgPT4ge1xuICBjb25zdCBwcm92aWRlcjogRGF0YVNvdXJjZVN0cmF0ZWdpZXNQcm92aWRlciA9IHtcbiAgICAvLyBXZSBjYW4gZGlyZWN0bHkgdXNlIHRoZSBpbnRlcmZhY2Ugc3RyYXRlZ2llcywgZXZlbiB0aG91Z2ggdGhlIFNRTCBzdHJhdGVnaWVzIGhhdmUgdGhlIGN1c3RvbVNxbFN0YXRlbWVudHMgZmllbGQgdGhhdCBpcyB1bnVzZWQgYnkgdGhlXG4gICAgLy8gdHJhbnNmb3JtZXIgZmxhdm9yIG9mIHRoaXMgdHlwZVxuICAgIGRhdGFTb3VyY2VTdHJhdGVnaWVzOiBkZWZpbml0aW9uLmRhdGFTb3VyY2VTdHJhdGVnaWVzLFxuICAgIHNxbERpcmVjdGl2ZURhdGFTb3VyY2VTdHJhdGVnaWVzOiBbXSxcbiAgfTtcblxuICAvLyBXZSdsbCBjb2xsZWN0IGFsbCB0aGUgY3VzdG9tIFNRTCBzdGF0ZW1lbnRzIGZyb20gdGhlIGRlZmluaXRpb24gaW50byBhIHNpbmdsZSBtYXAsIGFuZCB1c2UgdGhhdCB0byBtYWtlIG91clxuICAvLyBTcWxEaXJlY3RpdmVEYXRhU291cmNlU3RyYXRlZ2llc1xuICBjb25zdCBjdXN0b21TcWxTdGF0ZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgY29uc3QgY29uc3RydWN0U3FsU3RyYXRlZ2llcyA9IGRlZmluaXRpb24uY3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXMgPz8gW107XG5cbiAgLy8gTm90ZSB0aGF0IHdlJ3JlIHJlbHlpbmcgb24gdGhlIGBjdXN0b21TcWxTdGF0ZW1lbnRzYCBvYmplY3QgcmVmZXJlbmNlIHRvIHN0YXkgdGhlIHNhbWUgdGhyb3VnaG91dCB0aGlzIGxvb3AuIERvbid0IHJlYXNzaWduIGl0LCBvciB0aGVcbiAgLy8gY29sbGVjdGVkIHNxbERpcmVjdGl2ZVN0cmF0ZWdpZXMgd2lsbCBicmVha1xuICBjb25zdHJ1Y3RTcWxTdHJhdGVnaWVzLmZvckVhY2goKHNxbFN0cmF0ZWd5KSA9PiB7XG4gICAgaWYgKHNxbFN0cmF0ZWd5LnN0cmF0ZWd5LmN1c3RvbVNxbFN0YXRlbWVudHMpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24oY3VzdG9tU3FsU3RhdGVtZW50cywgc3FsU3RyYXRlZ3kuc3RyYXRlZ3kuY3VzdG9tU3FsU3RhdGVtZW50cyk7XG4gICAgfVxuXG4gICAgcHJvdmlkZXIuc3FsRGlyZWN0aXZlRGF0YVNvdXJjZVN0cmF0ZWdpZXMhLnB1c2goe1xuICAgICAgdHlwZU5hbWU6IHNxbFN0cmF0ZWd5LnR5cGVOYW1lLFxuICAgICAgZmllbGROYW1lOiBzcWxTdHJhdGVneS5maWVsZE5hbWUsXG4gICAgICBzdHJhdGVneTogc3FsU3RyYXRlZ3kuc3RyYXRlZ3ksXG4gICAgICBjdXN0b21TcWxTdGF0ZW1lbnRzLFxuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gcHJvdmlkZXI7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgc2NoZW1hIGJ5IG1lcmdpbmcgdGhlIGluZGl2aWR1YWwgc2NoZW1hcyBjb250YWluZWQgaW4gdGhlIGRlZmluaXRpb25zLCBjb21iaW5pbmcgZmllbGRzIG9mIHRoZSBRdWVyeSBhbmQgTXV0YXRpb24gdHlwZXMgaW5cbiAqIGluZGl2aWR1YWwgZGVmaW5pdGlvbnMgaW50byBhIHNpbmdsZSBjb21iaW5lZCBkZWZpbml0aW9uLiBBZGRpbmcgZGlyZWN0aXZlcyB0byBgUXVlcnlgIGFuZCBgTXV0YXRpb25gIHR5cGVzIHBhcnRpY2lwYXRpbmcgaW4gYVxuICogY29tYmluYXRpb24gaXMgbm90IHN1cHBvcnRlZCAodGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZCB3aGV0aGVyIHRob3NlIGRpcmVjdGl2ZXMgYXJlIG1pZ3JhdGVkKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHNjaGVtYUJ5TWVyZ2luZ0RlZmluaXRpb25zID0gKGRlZmluaXRpb25zOiBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uW10pOiBzdHJpbmcgPT4ge1xuICBjb25zdCBzY2hlbWEgPSBkZWZpbml0aW9ucy5tYXAoKGRlZikgPT4gZGVmLnNjaGVtYSkuam9pbignXFxuJyk7XG4gIGNvbnN0IHBhcnNlZFNjaGVtYSA9IHBhcnNlKHNjaGVtYSk7XG5cbiAgLy8gV2Ugc3RvcmUgdGhlIFF1ZXJ5ICYgTXV0YXRpb24gZGVmaW5pdGlvbnMgc2VwYXJhdGVseS4gU2luY2UgdGhlIGludGVyZmFjZXMgYXJlIHJlYWRvbmx5LCB3ZSdsbCBoYXZlIHRvIHJlLWNvbXBvc2UgdGhlIHR5cGVzIGFmdGVyIHdlJ3ZlXG4gIC8vIGNvbGxlY3RlZCBhbGwgdGhlIGZpZWxkc1xuICBjb25zdCBxdWVyeUFuZE11dGF0aW9uRGVmaW5pdGlvbnM6IFJlY29yZDxcbiAgICBzdHJpbmcsXG4gICAge1xuICAgICAgbm9kZTogT2JqZWN0VHlwZURlZmluaXRpb25Ob2RlIHwgSW50ZXJmYWNlVHlwZURlZmluaXRpb25Ob2RlO1xuICAgICAgZmllbGRzOiBGaWVsZERlZmluaXRpb25Ob2RlW107XG4gICAgfVxuICA+ID0ge307XG5cbiAgLy8gVGhyb3dzIGlmIHRoZSBmaWVsZCBoYXMgYWxyZWFkeSBiZWVuIGVuY291bnRlcmVkXG4gIGNvbnN0IHZhbGlkYXRlRmllbGQgPSAodHlwZU5hbWU6IHN0cmluZywgZmllbGROYW1lOiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICBjb25zdCBmaWVsZHMgPSBxdWVyeUFuZE11dGF0aW9uRGVmaW5pdGlvbnNbdHlwZU5hbWVdPy5maWVsZHM7XG4gICAgaWYgKCFmaWVsZHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGQubmFtZS52YWx1ZSA9PT0gZmllbGROYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVGhlIGN1c3RvbSAke3R5cGVOYW1lfSBmaWVsZCAnJHtmaWVsZE5hbWV9JyB3YXMgZm91bmQgaW4gbXVsdGlwbGUgZGVmaW5pdGlvbnMsIGJ1dCBhIGZpZWxkIG5hbWUgY2Fubm90IGJlIHNoYXJlZCBiZXR3ZWVuIGRlZmluaXRpb25zLmAsXG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICAvLyBUcmFuc2Zvcm0gdGhlIHNjaGVtYSBieSByZWR1Y2luZyBNdXRhdGlvbiAmIFF1ZXJ5IHR5cGVzOlxuICAvLyAtIENvbGxlY3QgTXV0YXRpb24gYW5kIFF1ZXJ5IGRlZmluaXRpb25zXG4gIC8vIC0gQWx0ZXIgdGhlIHBhcnNlZCBzY2hlbWEgYnkgZmlsdGVyaW5nIG91dCBNdXRhdGlvbiAmIFF1ZXJ5IHR5cGVzXG4gIC8vIC0gQWRkIHRoZSBjb21iaW5lZCBNdXRhdGlvbiAmIFF1ZXJ5IGRlZmluaXRpb25zIHRvIHRoZSBmaWx0ZXJlZCBzY2hlbWFcbiAgcGFyc2VkU2NoZW1hLmRlZmluaXRpb25zLmZpbHRlcihpc0J1aWx0SW5HcmFwaHFsTm9kZSkuZm9yRWFjaCgoZGVmKSA9PiB7XG4gICAgY29uc3QgdHlwZU5hbWUgPSBkZWYubmFtZS52YWx1ZTtcbiAgICBpZiAoIXF1ZXJ5QW5kTXV0YXRpb25EZWZpbml0aW9uc1t0eXBlTmFtZV0pIHtcbiAgICAgIHF1ZXJ5QW5kTXV0YXRpb25EZWZpbml0aW9uc1t0eXBlTmFtZV0gPSB7XG4gICAgICAgIG5vZGU6IGRlZixcbiAgICAgICAgLy8gYE9iamVjdFR5cGVEZWZpbml0aW9uTm9kZS5maWVsZHNgIGlzIGEgUmVhZG9ubHlBcnJheTsgc28gd2UgaGF2ZSB0byBjcmVhdGUgYSBuZXcgbXV0YWJsZSBhcnJheSB0byBjb2xsZWN0IGFsbCB0aGUgZmllbGRzXG4gICAgICAgIGZpZWxkczogWy4uLihkZWYuZmllbGRzID8/IFtdKV0sXG4gICAgICB9O1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIChkZWYuZmllbGRzID8/IFtdKS5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgdmFsaWRhdGVGaWVsZCh0eXBlTmFtZSwgZmllbGQubmFtZS52YWx1ZSk7XG4gICAgfSk7XG5cbiAgICBxdWVyeUFuZE11dGF0aW9uRGVmaW5pdGlvbnNbdHlwZU5hbWVdLmZpZWxkcyA9IFsuLi5xdWVyeUFuZE11dGF0aW9uRGVmaW5pdGlvbnNbdHlwZU5hbWVdLmZpZWxkcywgLi4uKGRlZi5maWVsZHMgPz8gW10pXTtcbiAgfSk7XG5cbiAgLy8gR2F0aGVyIHRoZSBjb2xsZWN0ZWQgUXVlcnkgJiBNdXRhdGlvbiBmaWVsZHMgaW50byA8PTIgbmV3IGRlZmluaXRpb25zXG4gIGNvbnN0IGNvbWJpbmVkRGVmaW5pdGlvbnMgPSBPYmplY3QudmFsdWVzKHF1ZXJ5QW5kTXV0YXRpb25EZWZpbml0aW9ucylcbiAgICAuc29ydCgoYSwgYikgPT4gYS5ub2RlLm5hbWUudmFsdWUubG9jYWxlQ29tcGFyZShiLm5vZGUubmFtZS52YWx1ZSkpXG4gICAgLnJlZHVjZSgoYWNjLCBjdXIpID0+IHtcbiAgICAgIGNvbnN0IGRlZmluaXRpb25Ob2RlID0ge1xuICAgICAgICAuLi5jdXIubm9kZSxcbiAgICAgICAgZmllbGRzOiBjdXIuZmllbGRzLFxuICAgICAgfTtcbiAgICAgIHJldHVybiBbLi4uYWNjLCBkZWZpbml0aW9uTm9kZV07XG4gICAgfSwgW10gYXMgRGVmaW5pdGlvbk5vZGVbXSk7XG5cbiAgLy8gRmlsdGVyIG91dCB0aGUgb2xkIFF1ZXJ5ICYgTXV0YXRpb24gZGVmaW5pdGlvbnNcbiAgY29uc3QgZmlsdGVyZWREZWZpbml0aW9ucyA9IHBhcnNlZFNjaGVtYS5kZWZpbml0aW9ucy5maWx0ZXIoKGRlZikgPT4gIWlzQnVpbHRJbkdyYXBocWxOb2RlKGRlZikpO1xuXG4gIC8vIENvbXBvc2UgdGhlIG5ldyBzY2hlbWEgYnkgYXBwZW5kaW5nIHRoZSBjb2xsZWN0ZWQgZGVmaW5pdGlvbnMgdG8gdGhlIGZpbHRlcmVkIGRlZmluaXRpb25zLiBUaGlzIG1lYW5zIHRoYXQgZXZlcnkgcXVlcnkgd2lsbCBiZVxuICAvLyByZXdyaXR0ZW4gc3VjaCB0aGF0IHRoZSBNdXRhdGlvbiBhbmQgUXVlcnkgdHlwZXMgYXBwZWFyIGF0IHRoZSBlbmQgb2YgdGhlIHNjaGVtYS5cbiAgY29uc3QgbmV3U2NoZW1hID0ge1xuICAgIC4uLnBhcnNlZFNjaGVtYSxcbiAgICBkZWZpbml0aW9uczogWy4uLmZpbHRlcmVkRGVmaW5pdGlvbnMsIC4uLmNvbWJpbmVkRGVmaW5pdGlvbnNdLFxuICB9O1xuXG4gIGNvbnN0IGNvbWJpbmVkU2NoZW1hU3RyaW5nID0gcHJpbnQobmV3U2NoZW1hKTtcbiAgcmV0dXJuIGNvbWJpbmVkU2NoZW1hU3RyaW5nO1xufTtcblxuLypcbiAqIFZhbGlkYXRlcyB0aGUgdXNlciBpbnB1dCBmb3IgdGhlIGRhdGFTb3VyY2VTdHJhdGVneS4gVGhpcyBpcyBhIG5vLW9wIGZvciBEeW5hbW9EQiBzdHJhdGVnaWVzIGZvciBub3cuXG4gKiBAcGFyYW0gc3RyYXRlZ3kgdXNlciBwcm92aWRlZCBtb2RlbCBkYXRhIHNvdXJjZSBzdHJhdGVneVxuICogQHJldHVybnMgdmFsaWRhdGVzIGFuZCB0aHJvd3MgYW4gZXJyb3IgaWYgdGhlIHN0cmF0ZWd5IGlzIGludmFsaWRcbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlRGF0YVNvdXJjZVN0cmF0ZWd5ID0gKHN0cmF0ZWd5OiBDb25zdHJ1Y3RNb2RlbERhdGFTb3VyY2VTdHJhdGVneSkgPT4ge1xuICBpZiAoIWlzU3FsU3RyYXRlZ3koc3RyYXRlZ3kpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZGJDb25uZWN0aW9uQ29uZmlnID0gc3RyYXRlZ3kuZGJDb25uZWN0aW9uQ29uZmlnO1xuICBjb25zdCBpbnZhbGlkU1NNUGF0aHMgPSBPYmplY3QudmFsdWVzKGRiQ29ubmVjdGlvbkNvbmZpZykuZmlsdGVyKCh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAhaXNWYWxpZFNTTVBhdGgodmFsdWUpKTtcbiAgaWYgKGludmFsaWRTU01QYXRocy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEludmFsaWQgZGF0YSBzb3VyY2Ugc3RyYXRlZ3kgXCIke1xuICAgICAgICBzdHJhdGVneS5uYW1lXG4gICAgICB9XCIuIEZvbGxvd2luZyBTU00gcGF0aHMgbXVzdCBzdGFydCB3aXRoICcvJyBpbiBkYkNvbm5lY3Rpb25Db25maWc6ICR7aW52YWxpZFNTTVBhdGhzLmpvaW4oJywgJyl9LmAsXG4gICAgKTtcbiAgfVxufTtcblxuY29uc3QgaXNWYWxpZFNTTVBhdGggPSAocGF0aDogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIHJldHVybiBwYXRoLnN0YXJ0c1dpdGgoJy8nKTtcbn07XG4iXX0=
@@ -1,8 +1,8 @@
1
- import { ModelDataSourceStrategy } from '../types';
1
+ import { ModelDataSourceStrategy } from '../model-datasource-strategy-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
- export declare function getModelTypeNames(schema: string): string[];
8
- export declare const constructDataSourceStrategyMap: (schema: string, dataSourceStrategy: ModelDataSourceStrategy) => Record<string, ModelDataSourceStrategy>;
7
+ export declare const getModelTypeNames: (schema: string) => string[];
8
+ export declare const constructDataSourceStrategies: (schema: string, dataSourceStrategy: ModelDataSourceStrategy) => Record<string, ModelDataSourceStrategy>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.constructDataSourceStrategyMap = exports.getModelTypeNames = void 0;
3
+ exports.constructDataSourceStrategies = exports.getModelTypeNames = void 0;
4
4
  const graphql_1 = require("graphql");
5
5
  const MODEL_DIRECTIVE_NAME = 'model';
6
6
  const MANY_TO_MANY_DIRECTIVE_NAME = 'manyToMany';
@@ -9,7 +9,7 @@ const MANY_TO_MANY_DIRECTIVE_NAME = 'manyToMany';
9
9
  * @param schema graphql schema in SDL
10
10
  * @returns type names which model diretives are attached
11
11
  */
12
- function getModelTypeNames(schema) {
12
+ const getModelTypeNames = (schema) => {
13
13
  const parsedSchema = (0, graphql_1.parse)(schema);
14
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
15
  const modelKeys = nodesWithModelDirective.map((type) => type.name.value);
@@ -27,11 +27,11 @@ function getModelTypeNames(schema) {
27
27
  });
28
28
  });
29
29
  return modelKeys.filter((key, idx) => modelKeys.indexOf(key) === idx);
30
- }
30
+ };
31
31
  exports.getModelTypeNames = getModelTypeNames;
32
- const constructDataSourceStrategyMap = (schema, dataSourceStrategy) => {
33
- const modelKeys = getModelTypeNames(schema);
32
+ const constructDataSourceStrategies = (schema, dataSourceStrategy) => {
33
+ const modelKeys = (0, exports.getModelTypeNames)(schema);
34
34
  return modelKeys.reduce((acc, cur) => ({ ...acc, [cur]: dataSourceStrategy }), {});
35
35
  };
36
- exports.constructDataSourceStrategyMap = constructDataSourceStrategyMap;
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtdHlwZS1uYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL21vZGVsLXR5cGUtbmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxQ0FBaUY7QUFFakYsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQUM7QUFDckMsTUFBTSwyQkFBMkIsR0FBRyxZQUFZLENBQUM7QUFDakQ7Ozs7R0FJRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLE1BQWM7SUFDOUMsTUFBTSxZQUFZLEdBQUcsSUFBQSxlQUFLLEVBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkMsTUFBTSx1QkFBdUIsR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FDN0QsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssY0FBSSxDQUFDLHNCQUFzQixJQUFJLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxvQkFBb0IsQ0FBQyxDQUM1SCxDQUFDO0lBQ0YsTUFBTSxTQUFTLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBRSxJQUFpQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2Ryx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUN0QyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsR0FBK0IsQ0FBQztRQUNuRCxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDeEIsS0FBSyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDaEMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSywyQkFBMkIsRUFBRTtvQkFDbEQsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLGNBQWMsQ0FBQyxDQUFDO29CQUNwRixJQUFJLFdBQVcsRUFBRTt3QkFDZixTQUFTLENBQUMsSUFBSSxDQUFFLFdBQVcsQ0FBQyxLQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUM5RDtpQkFDRjtZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDeEUsQ0FBQztBQXBCRCw4Q0FvQkM7QUFFTSxNQUFNLDhCQUE4QixHQUFHLENBQzVDLE1BQWMsRUFDZCxrQkFBMkMsRUFDRixFQUFFO0lBQzNDLE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNyRixDQUFDLENBQUM7QUFOVyxRQUFBLDhCQUE4QixrQ0FNekMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RlbERhdGFTb3VyY2VTdHJhdGVneSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IEtpbmQsIE9iamVjdFR5cGVEZWZpbml0aW9uTm9kZSwgU3RyaW5nVmFsdWVOb2RlLCBwYXJzZSB9IGZyb20gJ2dyYXBocWwnO1xuXG5jb25zdCBNT0RFTF9ESVJFQ1RJVkVfTkFNRSA9ICdtb2RlbCc7XG5jb25zdCBNQU5ZX1RPX01BTllfRElSRUNUSVZFX05BTUUgPSAnbWFueVRvTWFueSc7XG4vKipcbiAqIEdldCB0aGUgdHlwZSBuYW1lcyB3aXRoIG1vZGVsIGRpcmVjdGl2ZXMgaW4gdGhlIEdyYXBoUUwgc2NoZW1hIGluIFNETFxuICogQHBhcmFtIHNjaGVtYSBncmFwaHFsIHNjaGVtYSBpbiBTRExcbiAqIEByZXR1cm5zIHR5cGUgbmFtZXMgd2hpY2ggbW9kZWwgZGlyZXRpdmVzIGFyZSBhdHRhY2hlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW9kZWxUeXBlTmFtZXMoc2NoZW1hOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHBhcnNlZFNjaGVtYSA9IHBhcnNlKHNjaGVtYSk7XG4gIGNvbnN0IG5vZGVzV2l0aE1vZGVsRGlyZWN0aXZlID0gcGFyc2VkU2NoZW1hLmRlZmluaXRpb25zLmZpbHRlcihcbiAgICAob2JqKSA9PiBvYmoua2luZCA9PT0gS2luZC5PQkpFQ1RfVFlQRV9ERUZJTklUSU9OICYmIG9iai5kaXJlY3RpdmVzPy5zb21lKChkaXIpID0+IGRpci5uYW1lLnZhbHVlID09PSBNT0RFTF9ESVJFQ1RJVkVfTkFNRSksXG4gICk7XG4gIGNvbnN0IG1vZGVsS2V5cyA9IG5vZGVzV2l0aE1vZGVsRGlyZWN0aXZlLm1hcCgodHlwZSkgPT4gKHR5cGUgYXMgT2JqZWN0VHlwZURlZmluaXRpb25Ob2RlKS5uYW1lLnZhbHVlKTtcbiAgbm9kZXNXaXRoTW9kZWxEaXJlY3RpdmUuZm9yRWFjaCgob2JqKSA9PiB7XG4gICAgY29uc3QgeyBmaWVsZHMgfSA9IG9iaiBhcyBPYmplY3RUeXBlRGVmaW5pdGlvbk5vZGU7XG4gICAgZmllbGRzPy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgZmllbGQuZGlyZWN0aXZlcz8uZm9yRWFjaCgoZGlyKSA9PiB7XG4gICAgICAgIGlmIChkaXIubmFtZS52YWx1ZSA9PT0gTUFOWV9UT19NQU5ZX0RJUkVDVElWRV9OQU1FKSB7XG4gICAgICAgICAgY29uc3QgcmVsYXRpb25BcmcgPSBkaXIuYXJndW1lbnRzPy5maW5kKChhcmcpID0+IGFyZy5uYW1lLnZhbHVlID09PSAncmVsYXRpb25OYW1lJyk7XG4gICAgICAgICAgaWYgKHJlbGF0aW9uQXJnKSB7XG4gICAgICAgICAgICBtb2RlbEtleXMucHVzaCgocmVsYXRpb25BcmcudmFsdWUgYXMgU3RyaW5nVmFsdWVOb2RlKS52YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG4gIHJldHVybiBtb2RlbEtleXMuZmlsdGVyKChrZXksIGlkeCkgPT4gbW9kZWxLZXlzLmluZGV4T2Yoa2V5KSA9PT0gaWR4KTtcbn1cblxuZXhwb3J0IGNvbnN0IGNvbnN0cnVjdERhdGFTb3VyY2VTdHJhdGVneU1hcCA9IChcbiAgc2NoZW1hOiBzdHJpbmcsXG4gIGRhdGFTb3VyY2VTdHJhdGVneTogTW9kZWxEYXRhU291cmNlU3RyYXRlZ3ksXG4pOiBSZWNvcmQ8c3RyaW5nLCBNb2RlbERhdGFTb3VyY2VTdHJhdGVneT4gPT4ge1xuICBjb25zdCBtb2RlbEtleXMgPSBnZXRNb2RlbFR5cGVOYW1lcyhzY2hlbWEpO1xuICByZXR1cm4gbW9kZWxLZXlzLnJlZHVjZSgoYWNjLCBjdXIpID0+ICh7IC4uLmFjYywgW2N1cl06IGRhdGFTb3VyY2VTdHJhdGVneSB9KSwge30pO1xufTtcbiJdfQ==
36
+ exports.constructDataSourceStrategies = constructDataSourceStrategies;
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtdHlwZS1uYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL21vZGVsLXR5cGUtbmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBaUY7QUFHakYsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQUM7QUFDckMsTUFBTSwyQkFBMkIsR0FBRyxZQUFZLENBQUM7QUFFakQ7Ozs7R0FJRztBQUNJLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxNQUFjLEVBQVksRUFBRTtJQUM1RCxNQUFNLFlBQVksR0FBRyxJQUFBLGVBQUssRUFBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxNQUFNLHVCQUF1QixHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUM3RCxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxjQUFJLENBQUMsc0JBQXNCLElBQUksR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLG9CQUFvQixDQUFDLENBQzVILENBQUM7SUFDRixNQUFNLFNBQVMsR0FBRyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFFLElBQWlDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZHLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ3RDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUErQixDQUFDO1FBQ25ELE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN4QixLQUFLLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNoQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLDJCQUEyQixFQUFFO29CQUNsRCxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssY0FBYyxDQUFDLENBQUM7b0JBQ3BGLElBQUksV0FBVyxFQUFFO3dCQUNmLFNBQVMsQ0FBQyxJQUFJLENBQUUsV0FBVyxDQUFDLEtBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQzlEO2lCQUNGO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztBQUN4RSxDQUFDLENBQUM7QUFwQlcsUUFBQSxpQkFBaUIscUJBb0I1QjtBQUVLLE1BQU0sNkJBQTZCLEdBQUcsQ0FDM0MsTUFBYyxFQUNkLGtCQUEyQyxFQUNGLEVBQUU7SUFDM0MsTUFBTSxTQUFTLEdBQUcsSUFBQSx5QkFBaUIsRUFBQyxNQUFNLENBQUMsQ0FBQztJQUM1QyxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDckYsQ0FBQyxDQUFDO0FBTlcsUUFBQSw2QkFBNkIsaUNBTXhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS2luZCwgT2JqZWN0VHlwZURlZmluaXRpb25Ob2RlLCBTdHJpbmdWYWx1ZU5vZGUsIHBhcnNlIH0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQgeyBNb2RlbERhdGFTb3VyY2VTdHJhdGVneSB9IGZyb20gJy4uL21vZGVsLWRhdGFzb3VyY2Utc3RyYXRlZ3ktdHlwZXMnO1xuXG5jb25zdCBNT0RFTF9ESVJFQ1RJVkVfTkFNRSA9ICdtb2RlbCc7XG5jb25zdCBNQU5ZX1RPX01BTllfRElSRUNUSVZFX05BTUUgPSAnbWFueVRvTWFueSc7XG5cbi8qKlxuICogR2V0IHRoZSB0eXBlIG5hbWVzIHdpdGggbW9kZWwgZGlyZWN0aXZlcyBpbiB0aGUgR3JhcGhRTCBzY2hlbWEgaW4gU0RMXG4gKiBAcGFyYW0gc2NoZW1hIGdyYXBocWwgc2NoZW1hIGluIFNETFxuICogQHJldHVybnMgdHlwZSBuYW1lcyB3aGljaCBtb2RlbCBkaXJldGl2ZXMgYXJlIGF0dGFjaGVkXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRNb2RlbFR5cGVOYW1lcyA9IChzY2hlbWE6IHN0cmluZyk6IHN0cmluZ1tdID0+IHtcbiAgY29uc3QgcGFyc2VkU2NoZW1hID0gcGFyc2Uoc2NoZW1hKTtcbiAgY29uc3Qgbm9kZXNXaXRoTW9kZWxEaXJlY3RpdmUgPSBwYXJzZWRTY2hlbWEuZGVmaW5pdGlvbnMuZmlsdGVyKFxuICAgIChvYmopID0+IG9iai5raW5kID09PSBLaW5kLk9CSkVDVF9UWVBFX0RFRklOSVRJT04gJiYgb2JqLmRpcmVjdGl2ZXM/LnNvbWUoKGRpcikgPT4gZGlyLm5hbWUudmFsdWUgPT09IE1PREVMX0RJUkVDVElWRV9OQU1FKSxcbiAgKTtcbiAgY29uc3QgbW9kZWxLZXlzID0gbm9kZXNXaXRoTW9kZWxEaXJlY3RpdmUubWFwKCh0eXBlKSA9PiAodHlwZSBhcyBPYmplY3RUeXBlRGVmaW5pdGlvbk5vZGUpLm5hbWUudmFsdWUpO1xuICBub2Rlc1dpdGhNb2RlbERpcmVjdGl2ZS5mb3JFYWNoKChvYmopID0+IHtcbiAgICBjb25zdCB7IGZpZWxkcyB9ID0gb2JqIGFzIE9iamVjdFR5cGVEZWZpbml0aW9uTm9kZTtcbiAgICBmaWVsZHM/LmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICBmaWVsZC5kaXJlY3RpdmVzPy5mb3JFYWNoKChkaXIpID0+IHtcbiAgICAgICAgaWYgKGRpci5uYW1lLnZhbHVlID09PSBNQU5ZX1RPX01BTllfRElSRUNUSVZFX05BTUUpIHtcbiAgICAgICAgICBjb25zdCByZWxhdGlvbkFyZyA9IGRpci5hcmd1bWVudHM/LmZpbmQoKGFyZykgPT4gYXJnLm5hbWUudmFsdWUgPT09ICdyZWxhdGlvbk5hbWUnKTtcbiAgICAgICAgICBpZiAocmVsYXRpb25BcmcpIHtcbiAgICAgICAgICAgIG1vZGVsS2V5cy5wdXNoKChyZWxhdGlvbkFyZy52YWx1ZSBhcyBTdHJpbmdWYWx1ZU5vZGUpLnZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbiAgcmV0dXJuIG1vZGVsS2V5cy5maWx0ZXIoKGtleSwgaWR4KSA9PiBtb2RlbEtleXMuaW5kZXhPZihrZXkpID09PSBpZHgpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbnN0cnVjdERhdGFTb3VyY2VTdHJhdGVnaWVzID0gKFxuICBzY2hlbWE6IHN0cmluZyxcbiAgZGF0YVNvdXJjZVN0cmF0ZWd5OiBNb2RlbERhdGFTb3VyY2VTdHJhdGVneSxcbik6IFJlY29yZDxzdHJpbmcsIE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5PiA9PiB7XG4gIGNvbnN0IG1vZGVsS2V5cyA9IGdldE1vZGVsVHlwZU5hbWVzKHNjaGVtYSk7XG4gIHJldHVybiBtb2RlbEtleXMucmVkdWNlKChhY2MsIGN1cikgPT4gKHsgLi4uYWNjLCBbY3VyXTogZGF0YVNvdXJjZVN0cmF0ZWd5IH0pLCB7fSk7XG59O1xuIl19
@@ -0,0 +1,122 @@
1
+ /**
2
+ * All known ModelDataSourceStrategies. Concrete strategies vary widely in their requirements and implementations.
3
+ */
4
+ export type ModelDataSourceStrategy = DefaultDynamoDbModelDataSourceStrategy | AmplifyDynamoDbModelDataSourceStrategy | SQLLambdaModelDataSourceStrategy;
5
+ /**
6
+ * All supported database types that can be used to resolve models.
7
+ */
8
+ export type ModelDataSourceStrategyDbType = 'DYNAMODB' | ModelDataSourceStrategySqlDbType;
9
+ /**
10
+ * All supported SQL database types that can be used to resolve models.
11
+ */
12
+ export type ModelDataSourceStrategySqlDbType = 'MYSQL' | 'POSTGRES';
13
+ /**
14
+ * Use default CloudFormation type 'AWS::DynamoDB::Table' to provision table.
15
+ */
16
+ export interface DefaultDynamoDbModelDataSourceStrategy {
17
+ readonly dbType: 'DYNAMODB';
18
+ readonly provisionStrategy: 'DEFAULT';
19
+ }
20
+ /**
21
+ * Use custom resource type 'Custom::AmplifyDynamoDBTable' to provision table.
22
+ */
23
+ export interface AmplifyDynamoDbModelDataSourceStrategy {
24
+ readonly dbType: 'DYNAMODB';
25
+ readonly provisionStrategy: 'AMPLIFY_TABLE';
26
+ }
27
+ /**
28
+ * A strategy that creates a Lambda to connect to a pre-existing SQL table to resolve model data.
29
+ */
30
+ export interface SQLLambdaModelDataSourceStrategy {
31
+ /**
32
+ * The name of the strategy. This will be used to name the AppSync DataSource itself, plus any associated resources like resolver Lambdas.
33
+ * This name must be unique across all schema definitions in a GraphQL API.
34
+ */
35
+ readonly name: string;
36
+ /**
37
+ * The type of the SQL database used to process model operations for this definition.
38
+ */
39
+ readonly dbType: ModelDataSourceStrategySqlDbType;
40
+ /**
41
+ * The parameters the Lambda data source will use to connect to the database.
42
+ */
43
+ readonly dbConnectionConfig: SqlModelDataSourceDbConnectionConfig;
44
+ /**
45
+ * The configuration of the VPC into which to install the Lambda.
46
+ */
47
+ readonly vpcConfiguration?: VpcConfig;
48
+ /**
49
+ * Custom SQL statements. The key is the value of the `references` attribute of the `@sql` directive in the `schema`; the value is the SQL
50
+ * to be executed.
51
+ */
52
+ readonly customSqlStatements?: Record<string, string>;
53
+ /**
54
+ * The configuration for the provisioned concurrency of the Lambda.
55
+ */
56
+ readonly sqlLambdaProvisionedConcurrencyConfig?: ProvisionedConcurrencyConfig;
57
+ }
58
+ /**
59
+ * 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
60
+ * into the specified VPC, subnets, and security groups. The specified subnets and security groups must be in the same VPC. The VPC must
61
+ * have at least one subnet. The construct will also create VPC service endpoints in the specified subnets, as well as inbound security
62
+ * rules, to allow traffic on port 443 within each security group. This allows the Lambda to read database connection information from
63
+ * Secure Systems Manager.
64
+ */
65
+ export interface VpcConfig {
66
+ /** The VPC to install the Lambda data source in. */
67
+ readonly vpcId: string;
68
+ /** The security groups to install the Lambda data source in. */
69
+ readonly securityGroupIds: string[];
70
+ /** The subnets to install the Lambda data source in, one per availability zone. */
71
+ readonly subnetAvailabilityZoneConfig: SubnetAvailabilityZone[];
72
+ }
73
+ /**
74
+ * The configuration for the provisioned concurrency of the Lambda.
75
+ */
76
+ export interface ProvisionedConcurrencyConfig {
77
+ /** The amount of provisioned concurrency to allocate. **/
78
+ readonly provisionedConcurrentExecutions: number;
79
+ }
80
+ /**
81
+ * Subnet configuration for VPC endpoints used by a Lambda resolver for a SQL-based data source. Although it is possible to create multiple
82
+ * subnets in a single availability zone, VPC service endpoints may only be deployed to a single subnet in a given availability zone. This
83
+ * structure ensures that the Lambda function and VPC service endpoints are mutually consistent.
84
+ */
85
+ export interface SubnetAvailabilityZone {
86
+ /** The subnet ID to install the Lambda data source in. */
87
+ readonly subnetId: string;
88
+ /** The availability zone of the subnet. */
89
+ readonly availabilityZone: string;
90
+ }
91
+ /**
92
+ * The Secure Systems Manager parameter paths the Lambda data source will use to connect to the database.
93
+ *
94
+ * These parameters are retrieved from Secure Systems Manager in the same region as the Lambda.
95
+ */
96
+ export interface SqlModelDataSourceDbConnectionConfig {
97
+ /** The Secure Systems Manager parameter containing the hostname of the database. For RDS-based SQL data sources, this can be the hostname
98
+ * of a database proxy, cluster, or instance.
99
+ */
100
+ readonly hostnameSsmPath: string;
101
+ /** The Secure Systems Manager parameter containing the port number of the database proxy, cluster, or instance. */
102
+ readonly portSsmPath: string;
103
+ /** The Secure Systems Manager parameter containing the username to use when connecting to the database. */
104
+ readonly usernameSsmPath: string;
105
+ /** The Secure Systems Manager parameter containing the password to use when connecting to the database. */
106
+ readonly passwordSsmPath: string;
107
+ /** The Secure Systems Manager parameter containing the database name. */
108
+ readonly databaseNameSsmPath: string;
109
+ }
110
+ /**
111
+ * The input type for defining a ModelDataSourceStrategy used to resolve a field annotated with a `@sql` directive. Although this is a
112
+ * public type, you should rarely need to use this. The AmplifyGraphqlDefinition factory methods (e.g., `fromString`,
113
+ * `fromFilesAndStrategy`) will automatically construct this structure for you.
114
+ */
115
+ export interface CustomSqlDataSourceStrategy {
116
+ /** The built-in type (either "Query" or "Mutation") with which the custom SQL is associated */
117
+ readonly typeName: 'Query' | 'Mutation';
118
+ /** The field name with which the custom SQL is associated */
119
+ readonly fieldName: string;
120
+ /** The strategy used to create the datasource that will resolve the custom SQL statement. */
121
+ readonly strategy: SQLLambdaModelDataSourceStrategy;
122
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ // #########################################################################################################################################
3
+ // These are the public-facing types used by customers to define their L3 CDK construct. Many of these have corresponding definitions in the
4
+ // transformer-interfaces package to define internal behavior.
5
+ //
6
+ // If you change types in this file (the customer-facing interface), be sure to make corresponding changes to
7
+ // amplify-graphql-transformer-interfaces/src/model-datasource (the internal implementation)
8
+ // #########################################################################################################################################
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtZGF0YXNvdXJjZS1zdHJhdGVneS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tb2RlbC1kYXRhc291cmNlLXN0cmF0ZWd5LXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0SUFBNEk7QUFDNUksNElBQTRJO0FBQzVJLDhEQUE4RDtBQUM5RCxFQUFFO0FBQ0YsNkdBQTZHO0FBQzdHLDRGQUE0RjtBQUM1Riw0SUFBNEkiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuLy8gVGhlc2UgYXJlIHRoZSBwdWJsaWMtZmFjaW5nIHR5cGVzIHVzZWQgYnkgY3VzdG9tZXJzIHRvIGRlZmluZSB0aGVpciBMMyBDREsgY29uc3RydWN0LiBNYW55IG9mIHRoZXNlIGhhdmUgY29ycmVzcG9uZGluZyBkZWZpbml0aW9ucyBpbiB0aGVcbi8vIHRyYW5zZm9ybWVyLWludGVyZmFjZXMgcGFja2FnZSB0byBkZWZpbmUgaW50ZXJuYWwgYmVoYXZpb3IuXG4vL1xuLy8gSWYgeW91IGNoYW5nZSB0eXBlcyBpbiB0aGlzIGZpbGUgKHRoZSBjdXN0b21lci1mYWNpbmcgaW50ZXJmYWNlKSwgYmUgc3VyZSB0byBtYWtlIGNvcnJlc3BvbmRpbmcgY2hhbmdlcyB0b1xuLy8gYW1wbGlmeS1ncmFwaHFsLXRyYW5zZm9ybWVyLWludGVyZmFjZXMvc3JjL21vZGVsLWRhdGFzb3VyY2UgKHRoZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbilcbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5cbi8qKlxuICogQWxsIGtub3duIE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWdpZXMuIENvbmNyZXRlIHN0cmF0ZWdpZXMgdmFyeSB3aWRlbHkgaW4gdGhlaXIgcmVxdWlyZW1lbnRzIGFuZCBpbXBsZW1lbnRhdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5ID1cbiAgfCBEZWZhdWx0RHluYW1vRGJNb2RlbERhdGFTb3VyY2VTdHJhdGVneVxuICB8IEFtcGxpZnlEeW5hbW9EYk1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5XG4gIHwgU1FMTGFtYmRhTW9kZWxEYXRhU291cmNlU3RyYXRlZ3k7XG5cbi8qKlxuICogQWxsIHN1cHBvcnRlZCBkYXRhYmFzZSB0eXBlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlc29sdmUgbW9kZWxzLlxuICovXG5leHBvcnQgdHlwZSBNb2RlbERhdGFTb3VyY2VTdHJhdGVneURiVHlwZSA9ICdEWU5BTU9EQicgfCBNb2RlbERhdGFTb3VyY2VTdHJhdGVneVNxbERiVHlwZTtcblxuLyoqXG4gKiBBbGwgc3VwcG9ydGVkIFNRTCBkYXRhYmFzZSB0eXBlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlc29sdmUgbW9kZWxzLlxuICovXG5leHBvcnQgdHlwZSBNb2RlbERhdGFTb3VyY2VTdHJhdGVneVNxbERiVHlwZSA9ICdNWVNRTCcgfCAnUE9TVEdSRVMnO1xuXG4vKipcbiAqIFVzZSBkZWZhdWx0IENsb3VkRm9ybWF0aW9uIHR5cGUgJ0FXUzo6RHluYW1vREI6OlRhYmxlJyB0byBwcm92aXNpb24gdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdER5bmFtb0RiTW9kZWxEYXRhU291cmNlU3RyYXRlZ3kge1xuICByZWFkb25seSBkYlR5cGU6ICdEWU5BTU9EQic7XG4gIHJlYWRvbmx5IHByb3Zpc2lvblN0cmF0ZWd5OiAnREVGQVVMVCc7XG59XG5cbi8qKlxuICogVXNlIGN1c3RvbSByZXNvdXJjZSB0eXBlICdDdXN0b206OkFtcGxpZnlEeW5hbW9EQlRhYmxlJyB0byBwcm92aXNpb24gdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW1wbGlmeUR5bmFtb0RiTW9kZWxEYXRhU291cmNlU3RyYXRlZ3kge1xuICByZWFkb25seSBkYlR5cGU6ICdEWU5BTU9EQic7XG4gIHJlYWRvbmx5IHByb3Zpc2lvblN0cmF0ZWd5OiAnQU1QTElGWV9UQUJMRSc7XG59XG5cbi8qKlxuICogQSBzdHJhdGVneSB0aGF0IGNyZWF0ZXMgYSBMYW1iZGEgdG8gY29ubmVjdCB0byBhIHByZS1leGlzdGluZyBTUUwgdGFibGUgdG8gcmVzb2x2ZSBtb2RlbCBkYXRhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzdHJhdGVneS4gVGhpcyB3aWxsIGJlIHVzZWQgdG8gbmFtZSB0aGUgQXBwU3luYyBEYXRhU291cmNlIGl0c2VsZiwgcGx1cyBhbnkgYXNzb2NpYXRlZCByZXNvdXJjZXMgbGlrZSByZXNvbHZlciBMYW1iZGFzLlxuICAgKiBUaGlzIG5hbWUgbXVzdCBiZSB1bmlxdWUgYWNyb3NzIGFsbCBzY2hlbWEgZGVmaW5pdGlvbnMgaW4gYSBHcmFwaFFMIEFQSS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIFNRTCBkYXRhYmFzZSB1c2VkIHRvIHByb2Nlc3MgbW9kZWwgb3BlcmF0aW9ucyBmb3IgdGhpcyBkZWZpbml0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZGJUeXBlOiBNb2RlbERhdGFTb3VyY2VTdHJhdGVneVNxbERiVHlwZTtcblxuICAvKipcbiAgICogVGhlIHBhcmFtZXRlcnMgdGhlIExhbWJkYSBkYXRhIHNvdXJjZSB3aWxsIHVzZSB0byBjb25uZWN0IHRvIHRoZSBkYXRhYmFzZS5cbiAgICovXG4gIHJlYWRvbmx5IGRiQ29ubmVjdGlvbkNvbmZpZzogU3FsTW9kZWxEYXRhU291cmNlRGJDb25uZWN0aW9uQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJhdGlvbiBvZiB0aGUgVlBDIGludG8gd2hpY2ggdG8gaW5zdGFsbCB0aGUgTGFtYmRhLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjQ29uZmlndXJhdGlvbj86IFZwY0NvbmZpZztcblxuICAvKipcbiAgICogQ3VzdG9tIFNRTCBzdGF0ZW1lbnRzLiBUaGUga2V5IGlzIHRoZSB2YWx1ZSBvZiB0aGUgYHJlZmVyZW5jZXNgIGF0dHJpYnV0ZSBvZiB0aGUgYEBzcWxgIGRpcmVjdGl2ZSBpbiB0aGUgYHNjaGVtYWA7IHRoZSB2YWx1ZSBpcyB0aGUgU1FMXG4gICAqIHRvIGJlIGV4ZWN1dGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tU3FsU3RhdGVtZW50cz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUgcHJvdmlzaW9uZWQgY29uY3VycmVuY3kgb2YgdGhlIExhbWJkYS5cbiAgICovXG4gIHJlYWRvbmx5IHNxbExhbWJkYVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWc/OiBQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb2YgdGhlIFZQQyBpbiB3aGljaCB0byBpbnN0YWxsIGEgTGFtYmRhIHRvIHJlc29sdmUgcXVlcmllcyBhZ2FpbnN0IGEgU1FMLWJhc2VkIGRhdGEgc291cmNlLiBUaGUgU1FMIExhbWJkYSB3aWxsIGJlIGRlcGxveWVkXG4gKiBpbnRvIHRoZSBzcGVjaWZpZWQgVlBDLCBzdWJuZXRzLCBhbmQgc2VjdXJpdHkgZ3JvdXBzLiBUaGUgc3BlY2lmaWVkIHN1Ym5ldHMgYW5kIHNlY3VyaXR5IGdyb3VwcyBtdXN0IGJlIGluIHRoZSBzYW1lIFZQQy4gVGhlIFZQQyBtdXN0XG4gKiBoYXZlIGF0IGxlYXN0IG9uZSBzdWJuZXQuIFRoZSBjb25zdHJ1Y3Qgd2lsbCBhbHNvIGNyZWF0ZSBWUEMgc2VydmljZSBlbmRwb2ludHMgaW4gdGhlIHNwZWNpZmllZCBzdWJuZXRzLCBhcyB3ZWxsIGFzIGluYm91bmQgc2VjdXJpdHlcbiAqIHJ1bGVzLCB0byBhbGxvdyB0cmFmZmljIG9uIHBvcnQgNDQzIHdpdGhpbiBlYWNoIHNlY3VyaXR5IGdyb3VwLiBUaGlzIGFsbG93cyB0aGUgTGFtYmRhIHRvIHJlYWQgZGF0YWJhc2UgY29ubmVjdGlvbiBpbmZvcm1hdGlvbiBmcm9tXG4gKiBTZWN1cmUgU3lzdGVtcyBNYW5hZ2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZwY0NvbmZpZyB7XG4gIC8qKiBUaGUgVlBDIHRvIGluc3RhbGwgdGhlIExhbWJkYSBkYXRhIHNvdXJjZSBpbi4gKi9cbiAgcmVhZG9ubHkgdnBjSWQ6IHN0cmluZztcblxuICAvKiogVGhlIHNlY3VyaXR5IGdyb3VwcyB0byBpbnN0YWxsIHRoZSBMYW1iZGEgZGF0YSBzb3VyY2UgaW4uICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBJZHM6IHN0cmluZ1tdO1xuXG4gIC8qKiBUaGUgc3VibmV0cyB0byBpbnN0YWxsIHRoZSBMYW1iZGEgZGF0YSBzb3VyY2UgaW4sIG9uZSBwZXIgYXZhaWxhYmlsaXR5IHpvbmUuICovXG4gIHJlYWRvbmx5IHN1Ym5ldEF2YWlsYWJpbGl0eVpvbmVDb25maWc6IFN1Ym5ldEF2YWlsYWJpbGl0eVpvbmVbXTtcbn1cblxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IG9mIHRoZSBMYW1iZGEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZyB7XG4gIC8qKiBUaGUgYW1vdW50IG9mIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IHRvIGFsbG9jYXRlLiAqKi9cbiAgcmVhZG9ubHkgcHJvdmlzaW9uZWRDb25jdXJyZW50RXhlY3V0aW9uczogbnVtYmVyO1xufVxuXG4vKipcbiAqIFN1Ym5ldCBjb25maWd1cmF0aW9uIGZvciBWUEMgZW5kcG9pbnRzIHVzZWQgYnkgYSBMYW1iZGEgcmVzb2x2ZXIgZm9yIGEgU1FMLWJhc2VkIGRhdGEgc291cmNlLiBBbHRob3VnaCBpdCBpcyBwb3NzaWJsZSB0byBjcmVhdGUgbXVsdGlwbGVcbiAqIHN1Ym5ldHMgaW4gYSBzaW5nbGUgYXZhaWxhYmlsaXR5IHpvbmUsIFZQQyBzZXJ2aWNlIGVuZHBvaW50cyBtYXkgb25seSBiZSBkZXBsb3llZCB0byBhIHNpbmdsZSBzdWJuZXQgaW4gYSBnaXZlbiBhdmFpbGFiaWxpdHkgem9uZS4gVGhpc1xuICogc3RydWN0dXJlIGVuc3VyZXMgdGhhdCB0aGUgTGFtYmRhIGZ1bmN0aW9uIGFuZCBWUEMgc2VydmljZSBlbmRwb2ludHMgYXJlIG11dHVhbGx5IGNvbnNpc3RlbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3VibmV0QXZhaWxhYmlsaXR5Wm9uZSB7XG4gIC8qKiBUaGUgc3VibmV0IElEIHRvIGluc3RhbGwgdGhlIExhbWJkYSBkYXRhIHNvdXJjZSBpbi4gKi9cbiAgcmVhZG9ubHkgc3VibmV0SWQ6IHN0cmluZztcblxuICAvKiogVGhlIGF2YWlsYWJpbGl0eSB6b25lIG9mIHRoZSBzdWJuZXQuICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgU2VjdXJlIFN5c3RlbXMgTWFuYWdlciBwYXJhbWV0ZXIgcGF0aHMgdGhlIExhbWJkYSBkYXRhIHNvdXJjZSB3aWxsIHVzZSB0byBjb25uZWN0IHRvIHRoZSBkYXRhYmFzZS5cbiAqXG4gKiBUaGVzZSBwYXJhbWV0ZXJzIGFyZSByZXRyaWV2ZWQgZnJvbSBTZWN1cmUgU3lzdGVtcyBNYW5hZ2VyIGluIHRoZSBzYW1lIHJlZ2lvbiBhcyB0aGUgTGFtYmRhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNxbE1vZGVsRGF0YVNvdXJjZURiQ29ubmVjdGlvbkNvbmZpZyB7XG4gIC8qKiBUaGUgU2VjdXJlIFN5c3RlbXMgTWFuYWdlciBwYXJhbWV0ZXIgY29udGFpbmluZyB0aGUgaG9zdG5hbWUgb2YgdGhlIGRhdGFiYXNlLiBGb3IgUkRTLWJhc2VkIFNRTCBkYXRhIHNvdXJjZXMsIHRoaXMgY2FuIGJlIHRoZSBob3N0bmFtZVxuICAgKiBvZiBhIGRhdGFiYXNlIHByb3h5LCBjbHVzdGVyLCBvciBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGhvc3RuYW1lU3NtUGF0aDogc3RyaW5nO1xuXG4gIC8qKiBUaGUgU2VjdXJlIFN5c3RlbXMgTWFuYWdlciBwYXJhbWV0ZXIgY29udGFpbmluZyB0aGUgcG9ydCBudW1iZXIgb2YgdGhlIGRhdGFiYXNlIHByb3h5LCBjbHVzdGVyLCBvciBpbnN0YW5jZS4gKi9cbiAgcmVhZG9ubHkgcG9ydFNzbVBhdGg6IHN0cmluZztcblxuICAvKiogVGhlIFNlY3VyZSBTeXN0ZW1zIE1hbmFnZXIgcGFyYW1ldGVyIGNvbnRhaW5pbmcgdGhlIHVzZXJuYW1lIHRvIHVzZSB3aGVuIGNvbm5lY3RpbmcgdG8gdGhlIGRhdGFiYXNlLiAqL1xuICByZWFkb25seSB1c2VybmFtZVNzbVBhdGg6IHN0cmluZztcblxuICAvKiogVGhlIFNlY3VyZSBTeXN0ZW1zIE1hbmFnZXIgcGFyYW1ldGVyIGNvbnRhaW5pbmcgdGhlIHBhc3N3b3JkIHRvIHVzZSB3aGVuIGNvbm5lY3RpbmcgdG8gdGhlIGRhdGFiYXNlLiAqL1xuICByZWFkb25seSBwYXNzd29yZFNzbVBhdGg6IHN0cmluZztcblxuICAvKiogVGhlIFNlY3VyZSBTeXN0ZW1zIE1hbmFnZXIgcGFyYW1ldGVyIGNvbnRhaW5pbmcgdGhlIGRhdGFiYXNlIG5hbWUuICovXG4gIHJlYWRvbmx5IGRhdGFiYXNlTmFtZVNzbVBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgaW5wdXQgdHlwZSBmb3IgZGVmaW5pbmcgYSBNb2RlbERhdGFTb3VyY2VTdHJhdGVneSB1c2VkIHRvIHJlc29sdmUgYSBmaWVsZCBhbm5vdGF0ZWQgd2l0aCBhIGBAc3FsYCBkaXJlY3RpdmUuIEFsdGhvdWdoIHRoaXMgaXMgYVxuICogcHVibGljIHR5cGUsIHlvdSBzaG91bGQgcmFyZWx5IG5lZWQgdG8gdXNlIHRoaXMuIFRoZSBBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24gZmFjdG9yeSBtZXRob2RzIChlLmcuLCBgZnJvbVN0cmluZ2AsXG4gKiBgZnJvbUZpbGVzQW5kU3RyYXRlZ3lgKSB3aWxsIGF1dG9tYXRpY2FsbHkgY29uc3RydWN0IHRoaXMgc3RydWN0dXJlIGZvciB5b3UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWd5IHtcbiAgLyoqIFRoZSBidWlsdC1pbiB0eXBlIChlaXRoZXIgXCJRdWVyeVwiIG9yIFwiTXV0YXRpb25cIikgd2l0aCB3aGljaCB0aGUgY3VzdG9tIFNRTCBpcyBhc3NvY2lhdGVkICovXG4gIHJlYWRvbmx5IHR5cGVOYW1lOiAnUXVlcnknIHwgJ011dGF0aW9uJztcblxuICAvKiogVGhlIGZpZWxkIG5hbWUgd2l0aCB3aGljaCB0aGUgY3VzdG9tIFNRTCBpcyBhc3NvY2lhdGVkICovXG4gIHJlYWRvbmx5IGZpZWxkTmFtZTogc3RyaW5nO1xuXG4gIC8qKiBUaGUgc3RyYXRlZ3kgdXNlZCB0byBjcmVhdGUgdGhlIGRhdGFzb3VyY2UgdGhhdCB3aWxsIHJlc29sdmUgdGhlIGN1c3RvbSBTUUwgc3RhdGVtZW50LiAqL1xuICByZWFkb25seSBzdHJhdGVneTogU1FMTGFtYmRhTW9kZWxEYXRhU291cmNlU3RyYXRlZ3k7XG59XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { SQLLambdaModelDataSourceStrategy, SqlModelDataSourceDbConnectionConfig } from './types';
1
+ import { SQLLambdaModelDataSourceStrategy, SqlModelDataSourceDbConnectionConfig } from './model-datasource-strategy-types';
2
2
  /**
3
3
  * Type predicate that returns true if the object is a SQLLambdaModelDataSourceStrategy.
4
4
  * @param obj the object to inspect
@@ -5,6 +5,7 @@ exports.SQLLambdaModelDataSourceStrategyFactory = exports.isSqlModelDataSourceDb
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const fs = require("fs");
7
7
  const path = require("path");
8
+ const graphql_transformer_core_1 = require("@aws-amplify/graphql-transformer-core");
8
9
  /**
9
10
  * Type predicate that returns true if the object is a SQLLambdaModelDataSourceStrategy.
10
11
  * @param obj the object to inspect
@@ -14,8 +15,7 @@ const isSQLLambdaModelDataSourceStrategy = (obj) => {
14
15
  return ((typeof obj === 'object' || typeof obj === 'function') &&
15
16
  typeof obj.name === 'string' &&
16
17
  typeof obj.dbType === 'string' &&
17
- // TODO: Use canonical SQL DB type strings
18
- ['MYSQL', 'POSTGRES'].includes(obj.dbType) &&
18
+ (0, graphql_transformer_core_1.isSqlDbType)(obj.dbType) &&
19
19
  (0, exports.isSqlModelDataSourceDbConnectionConfig)(obj.dbConnectionConfig));
20
20
  };
21
21
  exports.isSQLLambdaModelDataSourceStrategy = isSQLLambdaModelDataSourceStrategy;
@@ -57,5 +57,5 @@ class SQLLambdaModelDataSourceStrategyFactory {
57
57
  }
58
58
  exports.SQLLambdaModelDataSourceStrategyFactory = SQLLambdaModelDataSourceStrategyFactory;
59
59
  _a = JSII_RTTI_SYMBOL_1;
60
- SQLLambdaModelDataSourceStrategyFactory[_a] = { fqn: "@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategyFactory", version: "1.4.2" };
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsLW1vZGVsLWRhdGFzb3VyY2Utc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3FsLW1vZGVsLWRhdGFzb3VyY2Utc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBRzdCOzs7O0dBSUc7QUFDSSxNQUFNLGtDQUFrQyxHQUFHLENBQUMsR0FBUSxFQUEyQyxFQUFFO0lBQ3RHLE9BQU8sQ0FDTCxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxPQUFPLEdBQUcsS0FBSyxVQUFVLENBQUM7UUFDdEQsT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVE7UUFDNUIsT0FBTyxHQUFHLENBQUMsTUFBTSxLQUFLLFFBQVE7UUFDOUIsMENBQTBDO1FBQzFDLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQzFDLElBQUEsOENBQXNDLEVBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQy9ELENBQUM7QUFDSixDQUFDLENBQUM7QUFUVyxRQUFBLGtDQUFrQyxzQ0FTN0M7QUFFRjs7OztHQUlHO0FBQ0ksTUFBTSxzQ0FBc0MsR0FBRyxDQUFDLEdBQVEsRUFBK0MsRUFBRTtJQUM5RyxPQUFPLENBQ0wsQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksT0FBTyxHQUFHLEtBQUssVUFBVSxDQUFDO1FBQ3RELE9BQU8sR0FBRyxDQUFDLGVBQWUsS0FBSyxRQUFRO1FBQ3ZDLE9BQU8sR0FBRyxDQUFDLFdBQVcsS0FBSyxRQUFRO1FBQ25DLE9BQU8sR0FBRyxDQUFDLGVBQWUsS0FBSyxRQUFRO1FBQ3ZDLE9BQU8sR0FBRyxDQUFDLGVBQWUsS0FBSyxRQUFRO1FBQ3ZDLE9BQU8sR0FBRyxDQUFDLG1CQUFtQixLQUFLLFFBQVEsQ0FDNUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQVRXLFFBQUEsc0NBQXNDLDBDQVNqRDtBQUVGOztHQUVHO0FBQ0gsTUFBYSx1Q0FBdUM7SUFDbEQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsa0JBQWtCLENBQ3ZCLFFBQWtCLEVBQ2xCLE9BQXlFO1FBRXpFLE1BQU0sbUJBQW1CLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQTBCLEVBQUU7WUFDcEYsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDM0MsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2xELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQTRCLENBQUMsQ0FBQztRQUVqQyxPQUFPO1lBQ0wsbUJBQW1CO1lBQ25CLEdBQUcsT0FBTztTQUNYLENBQUM7SUFDSixDQUFDOztBQXJCSCwwRkFzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgU1FMTGFtYmRhTW9kZWxEYXRhU291cmNlU3RyYXRlZ3ksIFNxbE1vZGVsRGF0YVNvdXJjZURiQ29ubmVjdGlvbkNvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFR5cGUgcHJlZGljYXRlIHRoYXQgcmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgYSBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneS5cbiAqIEBwYXJhbSBvYmogdGhlIG9iamVjdCB0byBpbnNwZWN0XG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgc2hhcGVkIGxpa2UgYSBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneVxuICovXG5leHBvcnQgY29uc3QgaXNTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneSA9IChvYmo6IGFueSk6IG9iaiBpcyBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneSA9PiB7XG4gIHJldHVybiAoXG4gICAgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnIHx8IHR5cGVvZiBvYmogPT09ICdmdW5jdGlvbicpICYmXG4gICAgdHlwZW9mIG9iai5uYW1lID09PSAnc3RyaW5nJyAmJlxuICAgIHR5cGVvZiBvYmouZGJUeXBlID09PSAnc3RyaW5nJyAmJlxuICAgIC8vIFRPRE86IFVzZSBjYW5vbmljYWwgU1FMIERCIHR5cGUgc3RyaW5nc1xuICAgIFsnTVlTUUwnLCAnUE9TVEdSRVMnXS5pbmNsdWRlcyhvYmouZGJUeXBlKSAmJlxuICAgIGlzU3FsTW9kZWxEYXRhU291cmNlRGJDb25uZWN0aW9uQ29uZmlnKG9iai5kYkNvbm5lY3Rpb25Db25maWcpXG4gICk7XG59O1xuXG4vKipcbiAqIFR5cGUgcHJlZGljYXRlIHRoYXQgcmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgYSBTcWxNb2RlbERhdGFTb3VyY2VEYkNvbm5lY3Rpb25Db25maWcuXG4gKiBAcGFyYW0gb2JqIHRoZSBvYmplY3QgdG8gaW5zcGVjdFxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIHNoYXBlZCBsaWtlIGEgU3FsTW9kZWxEYXRhU291cmNlRGJDb25uZWN0aW9uQ29uZmlnXG4gKi9cbmV4cG9ydCBjb25zdCBpc1NxbE1vZGVsRGF0YVNvdXJjZURiQ29ubmVjdGlvbkNvbmZpZyA9IChvYmo6IGFueSk6IG9iaiBpcyBTcWxNb2RlbERhdGFTb3VyY2VEYkNvbm5lY3Rpb25Db25maWcgPT4ge1xuICByZXR1cm4gKFxuICAgICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyB8fCB0eXBlb2Ygb2JqID09PSAnZnVuY3Rpb24nKSAmJlxuICAgIHR5cGVvZiBvYmouaG9zdG5hbWVTc21QYXRoID09PSAnc3RyaW5nJyAmJlxuICAgIHR5cGVvZiBvYmoucG9ydFNzbVBhdGggPT09ICdzdHJpbmcnICYmXG4gICAgdHlwZW9mIG9iai51c2VybmFtZVNzbVBhdGggPT09ICdzdHJpbmcnICYmXG4gICAgdHlwZW9mIG9iai5wYXNzd29yZFNzbVBhdGggPT09ICdzdHJpbmcnICYmXG4gICAgdHlwZW9mIG9iai5kYXRhYmFzZU5hbWVTc21QYXRoID09PSAnc3RyaW5nJ1xuICApO1xufTtcblxuLyoqXG4gKiBDbGFzcyBleHBvc2luZyB1dGlsaXRpZXMgdG8gcHJvZHVjZSBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneSBvYmplY3RzIGdpdmVuIHZhcmlvdXMgaW5wdXRzLlxuICovXG5leHBvcnQgY2xhc3MgU1FMTGFtYmRhTW9kZWxEYXRhU291cmNlU3RyYXRlZ3lGYWN0b3J5IHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneSB3aGVyZSB0aGUgYmluZGluZydzIGBjdXN0b21TcWxTdGF0ZW1lbnRzYCBhcmUgcG9wdWxhdGVkIGZyb20gYHNxbEZpbGVzYC4gVGhlIGtleVxuICAgKiBvZiB0aGUgYGN1c3RvbVNxbFN0YXRlbWVudHNgIHJlY29yZCBpcyB0aGUgZmlsZSdzIGJhc2UgbmFtZSAodGhhdCBpcywgdGhlIG5hbWUgb2YgdGhlIGZpbGUgbWludXMgdGhlIGRpcmVjdG9yeSBhbmQgZXh0ZW5zaW9uKS5cbiAgICogQHBhcmFtIHNxbEZpbGVzIHRoZSBsaXN0IG9mIGZpbGVzIHRvIGxvYWQgU1FMIHN0YXRlbWVudHMgZnJvbS5cbiAgICogQHBhcmFtIG9wdGlvbnMgdGhlIHJlbWFpbmluZyBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneSBvcHRpb25zLlxuICAgKi9cbiAgc3RhdGljIGZyb21DdXN0b21TcWxGaWxlcyhcbiAgICBzcWxGaWxlczogc3RyaW5nW10sXG4gICAgb3B0aW9uczogRXhjbHVkZTxTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneSwgJ2N1c3RvbVNxbFN0YXRlbWVudHMnPixcbiAgKTogU1FMTGFtYmRhTW9kZWxEYXRhU291cmNlU3RyYXRlZ3kge1xuICAgIGNvbnN0IGN1c3RvbVNxbFN0YXRlbWVudHMgPSBzcWxGaWxlcy5yZWR1Y2UoKGFjYywgZmlsZVBhdGgpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+IHtcbiAgICAgIGNvbnN0IGJhc2VuYW1lID0gcGF0aC5wYXJzZShmaWxlUGF0aCkubmFtZTtcbiAgICAgIGFjY1tiYXNlbmFtZV0gPSBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgsICd1dGY4Jyk7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGN1c3RvbVNxbFN0YXRlbWVudHMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
60
+ SQLLambdaModelDataSourceStrategyFactory[_a] = { fqn: "@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategyFactory", version: "1.5.0" };
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsLW1vZGVsLWRhdGFzb3VyY2Utc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3FsLW1vZGVsLWRhdGFzb3VyY2Utc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLG9GQUFvRTtBQUdwRTs7OztHQUlHO0FBQ0ksTUFBTSxrQ0FBa0MsR0FBRyxDQUFDLEdBQVEsRUFBMkMsRUFBRTtJQUN0RyxPQUFPLENBQ0wsQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksT0FBTyxHQUFHLEtBQUssVUFBVSxDQUFDO1FBQ3RELE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxRQUFRO1FBQzVCLE9BQU8sR0FBRyxDQUFDLE1BQU0sS0FBSyxRQUFRO1FBQzlCLElBQUEsc0NBQVcsRUFBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ3ZCLElBQUEsOENBQXNDLEVBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQy9ELENBQUM7QUFDSixDQUFDLENBQUM7QUFSVyxRQUFBLGtDQUFrQyxzQ0FRN0M7QUFFRjs7OztHQUlHO0FBQ0ksTUFBTSxzQ0FBc0MsR0FBRyxDQUFDLEdBQVEsRUFBK0MsRUFBRTtJQUM5RyxPQUFPLENBQ0wsQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksT0FBTyxHQUFHLEtBQUssVUFBVSxDQUFDO1FBQ3RELE9BQU8sR0FBRyxDQUFDLGVBQWUsS0FBSyxRQUFRO1FBQ3ZDLE9BQU8sR0FBRyxDQUFDLFdBQVcsS0FBSyxRQUFRO1FBQ25DLE9BQU8sR0FBRyxDQUFDLGVBQWUsS0FBSyxRQUFRO1FBQ3ZDLE9BQU8sR0FBRyxDQUFDLGVBQWUsS0FBSyxRQUFRO1FBQ3ZDLE9BQU8sR0FBRyxDQUFDLG1CQUFtQixLQUFLLFFBQVEsQ0FDNUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQVRXLFFBQUEsc0NBQXNDLDBDQVNqRDtBQUVGOztHQUVHO0FBQ0gsTUFBYSx1Q0FBdUM7SUFDbEQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsa0JBQWtCLENBQ3ZCLFFBQWtCLEVBQ2xCLE9BQXlFO1FBRXpFLE1BQU0sbUJBQW1CLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQTBCLEVBQUU7WUFDcEYsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDM0MsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2xELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQTRCLENBQUMsQ0FBQztRQUVqQyxPQUFPO1lBQ0wsbUJBQW1CO1lBQ25CLEdBQUcsT0FBTztTQUNYLENBQUM7SUFDSixDQUFDOztBQXJCSCwwRkFzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgaXNTcWxEYlR5cGUgfSBmcm9tICdAYXdzLWFtcGxpZnkvZ3JhcGhxbC10cmFuc2Zvcm1lci1jb3JlJztcbmltcG9ydCB7IFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5LCBTcWxNb2RlbERhdGFTb3VyY2VEYkNvbm5lY3Rpb25Db25maWcgfSBmcm9tICcuL21vZGVsLWRhdGFzb3VyY2Utc3RyYXRlZ3ktdHlwZXMnO1xuXG4vKipcbiAqIFR5cGUgcHJlZGljYXRlIHRoYXQgcmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgYSBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneS5cbiAqIEBwYXJhbSBvYmogdGhlIG9iamVjdCB0byBpbnNwZWN0XG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgc2hhcGVkIGxpa2UgYSBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneVxuICovXG5leHBvcnQgY29uc3QgaXNTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneSA9IChvYmo6IGFueSk6IG9iaiBpcyBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneSA9PiB7XG4gIHJldHVybiAoXG4gICAgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnIHx8IHR5cGVvZiBvYmogPT09ICdmdW5jdGlvbicpICYmXG4gICAgdHlwZW9mIG9iai5uYW1lID09PSAnc3RyaW5nJyAmJlxuICAgIHR5cGVvZiBvYmouZGJUeXBlID09PSAnc3RyaW5nJyAmJlxuICAgIGlzU3FsRGJUeXBlKG9iai5kYlR5cGUpICYmXG4gICAgaXNTcWxNb2RlbERhdGFTb3VyY2VEYkNvbm5lY3Rpb25Db25maWcob2JqLmRiQ29ubmVjdGlvbkNvbmZpZylcbiAgKTtcbn07XG5cbi8qKlxuICogVHlwZSBwcmVkaWNhdGUgdGhhdCByZXR1cm5zIHRydWUgaWYgdGhlIG9iamVjdCBpcyBhIFNxbE1vZGVsRGF0YVNvdXJjZURiQ29ubmVjdGlvbkNvbmZpZy5cbiAqIEBwYXJhbSBvYmogdGhlIG9iamVjdCB0byBpbnNwZWN0XG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgc2hhcGVkIGxpa2UgYSBTcWxNb2RlbERhdGFTb3VyY2VEYkNvbm5lY3Rpb25Db25maWdcbiAqL1xuZXhwb3J0IGNvbnN0IGlzU3FsTW9kZWxEYXRhU291cmNlRGJDb25uZWN0aW9uQ29uZmlnID0gKG9iajogYW55KTogb2JqIGlzIFNxbE1vZGVsRGF0YVNvdXJjZURiQ29ubmVjdGlvbkNvbmZpZyA9PiB7XG4gIHJldHVybiAoXG4gICAgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnIHx8IHR5cGVvZiBvYmogPT09ICdmdW5jdGlvbicpICYmXG4gICAgdHlwZW9mIG9iai5ob3N0bmFtZVNzbVBhdGggPT09ICdzdHJpbmcnICYmXG4gICAgdHlwZW9mIG9iai5wb3J0U3NtUGF0aCA9PT0gJ3N0cmluZycgJiZcbiAgICB0eXBlb2Ygb2JqLnVzZXJuYW1lU3NtUGF0aCA9PT0gJ3N0cmluZycgJiZcbiAgICB0eXBlb2Ygb2JqLnBhc3N3b3JkU3NtUGF0aCA9PT0gJ3N0cmluZycgJiZcbiAgICB0eXBlb2Ygb2JqLmRhdGFiYXNlTmFtZVNzbVBhdGggPT09ICdzdHJpbmcnXG4gICk7XG59O1xuXG4vKipcbiAqIENsYXNzIGV4cG9zaW5nIHV0aWxpdGllcyB0byBwcm9kdWNlIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IG9iamVjdHMgZ2l2ZW4gdmFyaW91cyBpbnB1dHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneUZhY3Rvcnkge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IHdoZXJlIHRoZSBiaW5kaW5nJ3MgYGN1c3RvbVNxbFN0YXRlbWVudHNgIGFyZSBwb3B1bGF0ZWQgZnJvbSBgc3FsRmlsZXNgLiBUaGUga2V5XG4gICAqIG9mIHRoZSBgY3VzdG9tU3FsU3RhdGVtZW50c2AgcmVjb3JkIGlzIHRoZSBmaWxlJ3MgYmFzZSBuYW1lICh0aGF0IGlzLCB0aGUgbmFtZSBvZiB0aGUgZmlsZSBtaW51cyB0aGUgZGlyZWN0b3J5IGFuZCBleHRlbnNpb24pLlxuICAgKiBAcGFyYW0gc3FsRmlsZXMgdGhlIGxpc3Qgb2YgZmlsZXMgdG8gbG9hZCBTUUwgc3RhdGVtZW50cyBmcm9tLlxuICAgKiBAcGFyYW0gb3B0aW9ucyB0aGUgcmVtYWluaW5nIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IG9wdGlvbnMuXG4gICAqL1xuICBzdGF0aWMgZnJvbUN1c3RvbVNxbEZpbGVzKFxuICAgIHNxbEZpbGVzOiBzdHJpbmdbXSxcbiAgICBvcHRpb25zOiBFeGNsdWRlPFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5LCAnY3VzdG9tU3FsU3RhdGVtZW50cyc+LFxuICApOiBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneSB7XG4gICAgY29uc3QgY3VzdG9tU3FsU3RhdGVtZW50cyA9IHNxbEZpbGVzLnJlZHVjZSgoYWNjLCBmaWxlUGF0aCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4ge1xuICAgICAgY29uc3QgYmFzZW5hbWUgPSBwYXRoLnBhcnNlKGZpbGVQYXRoKS5uYW1lO1xuICAgICAgYWNjW2Jhc2VuYW1lXSA9IGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgJ3V0ZjgnKTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY3VzdG9tU3FsU3RhdGVtZW50cyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcbiAgfVxufVxuIl19