@aws-amplify/graphql-api-construct 1.7.0-iam-auth-with-identityPool-provider-1.0 → 1.7.1-gen2-release.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (454) hide show
  1. package/.jsii +148 -36
  2. package/API.md +13 -1
  3. package/CHANGELOG.md +6 -2
  4. package/README.md +75 -17
  5. package/lib/amplify-dynamodb-table-wrapper.js +1 -1
  6. package/lib/amplify-graphql-api.js +1 -1
  7. package/lib/amplify-graphql-definition.js +1 -1
  8. package/lib/internal/authorization-modes.d.ts +10 -0
  9. package/lib/internal/authorization-modes.js +18 -8
  10. package/lib/internal/codegen-assets.js +10 -1
  11. package/lib/internal/data-source-config.js +37 -4
  12. package/lib/model-datasource-strategy-types.d.ts +25 -1
  13. package/lib/model-datasource-strategy-types.js +1 -1
  14. package/lib/sql-model-datasource-strategy.d.ts +13 -1
  15. package/lib/sql-model-datasource-strategy.js +26 -4
  16. package/node_modules/@aws-amplify/graphql-auth-transformer/API.md +1 -1
  17. package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +5 -3
  18. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.d.ts.map +1 -1
  19. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.js +4 -5
  20. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.js.map +1 -1
  21. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/definitions.d.ts +1 -1
  22. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/definitions.d.ts.map +1 -1
  23. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/definitions.js +2 -39
  24. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/definitions.js.map +1 -1
  25. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/common.d.ts +4 -0
  26. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/common.d.ts.map +1 -0
  27. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/common.js +12 -0
  28. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/common.js.map +1 -0
  29. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/ddb-vtl-generator.d.ts +1 -1
  30. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/ddb-vtl-generator.d.ts.map +1 -1
  31. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/ddb-vtl-generator.js +1 -1
  32. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/ddb-vtl-generator.js.map +1 -1
  33. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/field.d.ts +1 -1
  34. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/field.d.ts.map +1 -1
  35. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/field.js +16 -13
  36. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/field.js.map +1 -1
  37. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/helpers.d.ts +8 -2
  38. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/helpers.d.ts.map +1 -1
  39. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/helpers.js +10 -14
  40. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/helpers.js.map +1 -1
  41. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/index.d.ts +1 -1
  42. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/index.d.ts.map +1 -1
  43. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/index.js +2 -2
  44. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/index.js.map +1 -1
  45. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/mutation.create.js +2 -1
  46. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/mutation.create.js.map +1 -1
  47. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/mutation.delete.js +2 -1
  48. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/mutation.delete.js.map +1 -1
  49. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/mutation.update.js +2 -1
  50. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/mutation.update.js.map +1 -1
  51. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/query.d.ts.map +1 -1
  52. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/query.js +15 -4
  53. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/query.js.map +1 -1
  54. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/search.js +2 -1
  55. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/search.js.map +1 -1
  56. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/subscriptions.d.ts.map +1 -1
  57. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/subscriptions.js +8 -2
  58. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/subscriptions.js.map +1 -1
  59. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/rds-vtl-generator.d.ts +1 -1
  60. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/rds-vtl-generator.d.ts.map +1 -1
  61. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/rds-vtl-generator.js +1 -1
  62. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/rds-vtl-generator.js.map +1 -1
  63. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/common.d.ts +1 -1
  64. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/common.d.ts.map +1 -1
  65. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/common.js +10 -19
  66. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/common.js.map +1 -1
  67. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/vtl-generator.d.ts +1 -1
  68. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/vtl-generator.d.ts.map +1 -1
  69. package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +14 -13
  70. package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +5 -1
  71. package/node_modules/@aws-amplify/graphql-default-value-transformer/lib/graphql-default-value-transformer.d.ts.map +1 -1
  72. package/node_modules/@aws-amplify/graphql-default-value-transformer/lib/graphql-default-value-transformer.js +2 -5
  73. package/node_modules/@aws-amplify/graphql-default-value-transformer/lib/graphql-default-value-transformer.js.map +1 -1
  74. package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +9 -8
  75. package/node_modules/@aws-amplify/graphql-directives/API.md +158 -0
  76. package/node_modules/@aws-amplify/graphql-directives/CHANGELOG.md +14 -0
  77. package/node_modules/@aws-amplify/graphql-directives/Readme.md +19 -0
  78. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-api-key.d.ts +3 -0
  79. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-api-key.d.ts.map +1 -0
  80. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-api-key.js +14 -0
  81. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-api-key.js.map +1 -0
  82. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-auth.d.ts +3 -0
  83. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-auth.d.ts.map +1 -0
  84. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-auth.js +14 -0
  85. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-auth.js.map +1 -0
  86. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-cognito-user-pools.d.ts +3 -0
  87. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-cognito-user-pools.d.ts.map +1 -0
  88. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-cognito-user-pools.js +14 -0
  89. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-cognito-user-pools.js.map +1 -0
  90. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-iam.d.ts +3 -0
  91. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-iam.d.ts.map +1 -0
  92. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-iam.js +14 -0
  93. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-iam.js.map +1 -0
  94. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-lambda.d.ts +3 -0
  95. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-lambda.d.ts.map +1 -0
  96. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-lambda.js +14 -0
  97. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-lambda.js.map +1 -0
  98. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-oidc.d.ts +3 -0
  99. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-oidc.d.ts.map +1 -0
  100. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-oidc.js +14 -0
  101. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-oidc.js.map +1 -0
  102. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-subscribe.d.ts +3 -0
  103. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-subscribe.d.ts.map +1 -0
  104. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-subscribe.js +14 -0
  105. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/aws-subscribe.js.map +1 -0
  106. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/index.d.ts +8 -0
  107. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/index.d.ts.map +1 -0
  108. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/index.js +18 -0
  109. package/node_modules/@aws-amplify/graphql-directives/lib/directives/appsync/index.js.map +1 -0
  110. package/node_modules/@aws-amplify/graphql-directives/lib/directives/auth.d.ts +3 -0
  111. package/node_modules/@aws-amplify/graphql-directives/lib/directives/auth.d.ts.map +1 -0
  112. package/node_modules/@aws-amplify/graphql-directives/lib/directives/auth.js +50 -0
  113. package/node_modules/@aws-amplify/graphql-directives/lib/directives/auth.js.map +1 -0
  114. package/node_modules/@aws-amplify/graphql-directives/lib/directives/belongs-to.d.ts +3 -0
  115. package/node_modules/@aws-amplify/graphql-directives/lib/directives/belongs-to.d.ts.map +1 -0
  116. package/node_modules/@aws-amplify/graphql-directives/lib/directives/belongs-to.js +14 -0
  117. package/node_modules/@aws-amplify/graphql-directives/lib/directives/belongs-to.js.map +1 -0
  118. package/node_modules/@aws-amplify/graphql-directives/lib/directives/default.d.ts +3 -0
  119. package/node_modules/@aws-amplify/graphql-directives/lib/directives/default.d.ts.map +1 -0
  120. package/node_modules/@aws-amplify/graphql-directives/lib/directives/default.js +14 -0
  121. package/node_modules/@aws-amplify/graphql-directives/lib/directives/default.js.map +1 -0
  122. package/node_modules/@aws-amplify/graphql-directives/lib/directives/deprecated.d.ts +3 -0
  123. package/node_modules/@aws-amplify/graphql-directives/lib/directives/deprecated.d.ts.map +1 -0
  124. package/node_modules/@aws-amplify/graphql-directives/lib/directives/deprecated.js +14 -0
  125. package/node_modules/@aws-amplify/graphql-directives/lib/directives/deprecated.js.map +1 -0
  126. package/node_modules/@aws-amplify/graphql-directives/lib/directives/directive.d.ts +8 -0
  127. package/node_modules/@aws-amplify/graphql-directives/lib/directives/directive.d.ts.map +1 -0
  128. package/node_modules/@aws-amplify/graphql-directives/lib/directives/directive.js +3 -0
  129. package/node_modules/@aws-amplify/graphql-directives/lib/directives/directive.js.map +1 -0
  130. package/node_modules/@aws-amplify/graphql-directives/lib/directives/function.d.ts +3 -0
  131. package/node_modules/@aws-amplify/graphql-directives/lib/directives/function.d.ts.map +1 -0
  132. package/node_modules/@aws-amplify/graphql-directives/lib/directives/function.js +14 -0
  133. package/node_modules/@aws-amplify/graphql-directives/lib/directives/function.js.map +1 -0
  134. package/node_modules/@aws-amplify/graphql-directives/lib/directives/has-many.d.ts +6 -0
  135. package/node_modules/@aws-amplify/graphql-directives/lib/directives/has-many.d.ts.map +1 -0
  136. package/node_modules/@aws-amplify/graphql-directives/lib/directives/has-many.js +16 -0
  137. package/node_modules/@aws-amplify/graphql-directives/lib/directives/has-many.js.map +1 -0
  138. package/node_modules/@aws-amplify/graphql-directives/lib/directives/has-one.d.ts +3 -0
  139. package/node_modules/@aws-amplify/graphql-directives/lib/directives/has-one.d.ts.map +1 -0
  140. package/node_modules/@aws-amplify/graphql-directives/lib/directives/has-one.js +14 -0
  141. package/node_modules/@aws-amplify/graphql-directives/lib/directives/has-one.js.map +1 -0
  142. package/node_modules/@aws-amplify/graphql-directives/lib/directives/http.d.ts +7 -0
  143. package/node_modules/@aws-amplify/graphql-directives/lib/directives/http.d.ts.map +1 -0
  144. package/node_modules/@aws-amplify/graphql-directives/lib/directives/http.js +28 -0
  145. package/node_modules/@aws-amplify/graphql-directives/lib/directives/http.js.map +1 -0
  146. package/node_modules/@aws-amplify/graphql-directives/lib/directives/index-directive.d.ts +3 -0
  147. package/node_modules/@aws-amplify/graphql-directives/lib/directives/index-directive.d.ts.map +1 -0
  148. package/node_modules/@aws-amplify/graphql-directives/lib/directives/index-directive.js +14 -0
  149. package/node_modules/@aws-amplify/graphql-directives/lib/directives/index-directive.js.map +1 -0
  150. package/node_modules/@aws-amplify/graphql-directives/lib/directives/index.d.ts +21 -0
  151. package/node_modules/@aws-amplify/graphql-directives/lib/directives/index.d.ts.map +1 -0
  152. package/node_modules/@aws-amplify/graphql-directives/lib/directives/index.js +54 -0
  153. package/node_modules/@aws-amplify/graphql-directives/lib/directives/index.js.map +1 -0
  154. package/node_modules/@aws-amplify/graphql-directives/lib/directives/many-to-many.d.ts +6 -0
  155. package/node_modules/@aws-amplify/graphql-directives/lib/directives/many-to-many.d.ts.map +1 -0
  156. package/node_modules/@aws-amplify/graphql-directives/lib/directives/many-to-many.js +16 -0
  157. package/node_modules/@aws-amplify/graphql-directives/lib/directives/many-to-many.js.map +1 -0
  158. package/node_modules/@aws-amplify/graphql-directives/lib/directives/maps-to.d.ts +3 -0
  159. package/node_modules/@aws-amplify/graphql-directives/lib/directives/maps-to.d.ts.map +1 -0
  160. package/node_modules/@aws-amplify/graphql-directives/lib/directives/maps-to.js +14 -0
  161. package/node_modules/@aws-amplify/graphql-directives/lib/directives/maps-to.js.map +1 -0
  162. package/node_modules/@aws-amplify/graphql-directives/lib/directives/model.d.ts +3 -0
  163. package/node_modules/@aws-amplify/graphql-directives/lib/directives/model.d.ts.map +1 -0
  164. package/node_modules/@aws-amplify/graphql-directives/lib/directives/model.js +43 -0
  165. package/node_modules/@aws-amplify/graphql-directives/lib/directives/model.js.map +1 -0
  166. package/node_modules/@aws-amplify/graphql-directives/lib/directives/predictions.d.ts +3 -0
  167. package/node_modules/@aws-amplify/graphql-directives/lib/directives/predictions.d.ts.map +1 -0
  168. package/node_modules/@aws-amplify/graphql-directives/lib/directives/predictions.js +20 -0
  169. package/node_modules/@aws-amplify/graphql-directives/lib/directives/predictions.js.map +1 -0
  170. package/node_modules/@aws-amplify/graphql-directives/lib/directives/primary-key.d.ts +3 -0
  171. package/node_modules/@aws-amplify/graphql-directives/lib/directives/primary-key.d.ts.map +1 -0
  172. package/node_modules/@aws-amplify/graphql-directives/lib/directives/primary-key.js +14 -0
  173. package/node_modules/@aws-amplify/graphql-directives/lib/directives/primary-key.js.map +1 -0
  174. package/node_modules/@aws-amplify/graphql-directives/lib/directives/refers-to.d.ts +3 -0
  175. package/node_modules/@aws-amplify/graphql-directives/lib/directives/refers-to.d.ts.map +1 -0
  176. package/node_modules/@aws-amplify/graphql-directives/lib/directives/refers-to.js +14 -0
  177. package/node_modules/@aws-amplify/graphql-directives/lib/directives/refers-to.js.map +1 -0
  178. package/node_modules/@aws-amplify/graphql-directives/lib/directives/searchable.d.ts +3 -0
  179. package/node_modules/@aws-amplify/graphql-directives/lib/directives/searchable.d.ts.map +1 -0
  180. package/node_modules/@aws-amplify/graphql-directives/lib/directives/searchable.js +17 -0
  181. package/node_modules/@aws-amplify/graphql-directives/lib/directives/searchable.js.map +1 -0
  182. package/node_modules/@aws-amplify/graphql-directives/lib/directives/sql.d.ts +3 -0
  183. package/node_modules/@aws-amplify/graphql-directives/lib/directives/sql.d.ts.map +1 -0
  184. package/node_modules/@aws-amplify/graphql-directives/lib/directives/sql.js +14 -0
  185. package/node_modules/@aws-amplify/graphql-directives/lib/directives/sql.js.map +1 -0
  186. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/auth.d.ts +3 -0
  187. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/auth.d.ts.map +1 -0
  188. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/auth.js +85 -0
  189. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/auth.js.map +1 -0
  190. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/connection.d.ts +3 -0
  191. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/connection.d.ts.map +1 -0
  192. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/connection.js +21 -0
  193. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/connection.js.map +1 -0
  194. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/function.d.ts +3 -0
  195. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/function.d.ts.map +1 -0
  196. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/function.js +14 -0
  197. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/function.js.map +1 -0
  198. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/http.d.ts +7 -0
  199. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/http.d.ts.map +1 -0
  200. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/http.js +28 -0
  201. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/http.js.map +1 -0
  202. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/index.d.ts +10 -0
  203. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/index.d.ts.map +1 -0
  204. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/index.js +22 -0
  205. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/index.js.map +1 -0
  206. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/key.d.ts +3 -0
  207. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/key.d.ts.map +1 -0
  208. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/key.js +14 -0
  209. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/key.js.map +1 -0
  210. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/model.d.ts +3 -0
  211. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/model.d.ts.map +1 -0
  212. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/model.js +43 -0
  213. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/model.js.map +1 -0
  214. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/predictions.d.ts +3 -0
  215. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/predictions.d.ts.map +1 -0
  216. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/predictions.js +20 -0
  217. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/predictions.js.map +1 -0
  218. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/searchable.d.ts +3 -0
  219. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/searchable.d.ts.map +1 -0
  220. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/searchable.js +17 -0
  221. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/searchable.js.map +1 -0
  222. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/versioned.d.ts +7 -0
  223. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/versioned.d.ts.map +1 -0
  224. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/versioned.js +17 -0
  225. package/node_modules/@aws-amplify/graphql-directives/lib/directives/v1/versioned.js.map +1 -0
  226. package/node_modules/@aws-amplify/graphql-directives/lib/index.d.ts +7 -0
  227. package/node_modules/@aws-amplify/graphql-directives/lib/index.d.ts.map +1 -0
  228. package/node_modules/@aws-amplify/graphql-directives/lib/index.js +60 -0
  229. package/node_modules/@aws-amplify/graphql-directives/lib/index.js.map +1 -0
  230. package/node_modules/@aws-amplify/graphql-directives/package.json +66 -0
  231. package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +5 -1
  232. package/node_modules/@aws-amplify/graphql-function-transformer/lib/graphql-function-transformer.d.ts.map +1 -1
  233. package/node_modules/@aws-amplify/graphql-function-transformer/lib/graphql-function-transformer.js +2 -4
  234. package/node_modules/@aws-amplify/graphql-function-transformer/lib/graphql-function-transformer.js.map +1 -1
  235. package/node_modules/@aws-amplify/graphql-function-transformer/package.json +8 -7
  236. package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +5 -1
  237. package/node_modules/@aws-amplify/graphql-http-transformer/lib/graphql-http-transformer.d.ts.map +1 -1
  238. package/node_modules/@aws-amplify/graphql-http-transformer/lib/graphql-http-transformer.js +2 -15
  239. package/node_modules/@aws-amplify/graphql-http-transformer/lib/graphql-http-transformer.js.map +1 -1
  240. package/node_modules/@aws-amplify/graphql-http-transformer/package.json +8 -7
  241. package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +5 -1
  242. package/node_modules/@aws-amplify/graphql-index-transformer/lib/graphql-index-transformer.d.ts.map +1 -1
  243. package/node_modules/@aws-amplify/graphql-index-transformer/lib/graphql-index-transformer.js +5 -8
  244. package/node_modules/@aws-amplify/graphql-index-transformer/lib/graphql-index-transformer.js.map +1 -1
  245. package/node_modules/@aws-amplify/graphql-index-transformer/lib/graphql-primary-key-transformer.d.ts.map +1 -1
  246. package/node_modules/@aws-amplify/graphql-index-transformer/lib/graphql-primary-key-transformer.js +4 -7
  247. package/node_modules/@aws-amplify/graphql-index-transformer/lib/graphql-primary-key-transformer.js.map +1 -1
  248. package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.d.ts +1 -1
  249. package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.d.ts.map +1 -1
  250. package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.js +19 -10
  251. package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.js.map +1 -1
  252. package/node_modules/@aws-amplify/graphql-index-transformer/lib/schema.d.ts.map +1 -1
  253. package/node_modules/@aws-amplify/graphql-index-transformer/lib/schema.js +13 -2
  254. package/node_modules/@aws-amplify/graphql-index-transformer/lib/schema.js.map +1 -1
  255. package/node_modules/@aws-amplify/graphql-index-transformer/package.json +9 -8
  256. package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +5 -1
  257. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
  258. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-maps-to-transformer.d.ts.map +1 -1
  259. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-maps-to-transformer.js +6 -9
  260. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-maps-to-transformer.js.map +1 -1
  261. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-refers-to-transformer.d.ts.map +1 -1
  262. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-refers-to-transformer.js +9 -12
  263. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-refers-to-transformer.js.map +1 -1
  264. package/node_modules/@aws-amplify/graphql-maps-to-transformer/package.json +12 -11
  265. package/node_modules/@aws-amplify/graphql-model-transformer/API.md +2 -2
  266. package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +7 -1
  267. package/node_modules/@aws-amplify/graphql-model-transformer/lib/definitions.d.ts +0 -1
  268. package/node_modules/@aws-amplify/graphql-model-transformer/lib/definitions.d.ts.map +1 -1
  269. package/node_modules/@aws-amplify/graphql-model-transformer/lib/definitions.js +1 -8
  270. package/node_modules/@aws-amplify/graphql-model-transformer/lib/definitions.js.map +1 -1
  271. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.d.ts +0 -1
  272. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.d.ts.map +1 -1
  273. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.js +3 -44
  274. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.js.map +1 -1
  275. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
  276. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
  277. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
  278. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/common.d.ts +1 -1
  279. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/common.d.ts.map +1 -1
  280. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/common.js +8 -7
  281. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/common.js.map +1 -1
  282. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.d.ts +5 -1
  283. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.d.ts.map +1 -1
  284. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.js +71 -26
  285. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.js.map +1 -1
  286. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/model-resource-generator.d.ts.map +1 -1
  287. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/model-resource-generator.js +3 -3
  288. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/model-resource-generator.js.map +1 -1
  289. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.d.ts.map +1 -1
  290. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js +21 -7
  291. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js.map +1 -1
  292. package/node_modules/@aws-amplify/graphql-model-transformer/package.json +8 -7
  293. package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +5 -1
  294. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/graphql-predictions-transformer.d.ts.map +1 -1
  295. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/graphql-predictions-transformer.js +2 -1
  296. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/graphql-predictions-transformer.js.map +1 -1
  297. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
  298. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/utils/constants.d.ts +0 -1
  299. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/utils/constants.d.ts.map +1 -1
  300. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/utils/constants.js +1 -10
  301. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/utils/constants.js.map +1 -1
  302. package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +8 -7
  303. package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +7 -1
  304. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-ddb-fields-transformer.d.ts +11 -0
  305. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-ddb-fields-transformer.d.ts.map +1 -0
  306. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-ddb-fields-transformer.js +37 -0
  307. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-ddb-fields-transformer.js.map +1 -0
  308. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-ddb-references-transformer.d.ts +11 -0
  309. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-ddb-references-transformer.d.ts.map +1 -0
  310. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-ddb-references-transformer.js +36 -0
  311. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-ddb-references-transformer.js.map +1 -0
  312. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-sql-transformer.d.ts +11 -0
  313. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-sql-transformer.d.ts.map +1 -0
  314. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-sql-transformer.js +30 -0
  315. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-sql-transformer.js.map +1 -0
  316. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-transformer-factory.d.ts +5 -0
  317. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-transformer-factory.d.ts.map +1 -0
  318. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-transformer-factory.js +31 -0
  319. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-transformer-factory.js.map +1 -0
  320. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/data-source-based-directive-transformer.d.ts +11 -0
  321. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/data-source-based-directive-transformer.d.ts.map +1 -0
  322. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/data-source-based-directive-transformer.js +3 -0
  323. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/data-source-based-directive-transformer.js.map +1 -0
  324. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.d.ts.map +1 -1
  325. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.js +17 -52
  326. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.js.map +1 -1
  327. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.d.ts.map +1 -1
  328. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.js +16 -46
  329. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.js.map +1 -1
  330. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.d.ts.map +1 -1
  331. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.js +15 -38
  332. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.js.map +1 -1
  333. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-many-to-many-transformer.d.ts.map +1 -1
  334. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-many-to-many-transformer.js +13 -17
  335. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-many-to-many-transformer.js.map +1 -1
  336. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-ddb-fields-transformer.d.ts +11 -0
  337. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-ddb-fields-transformer.d.ts.map +1 -0
  338. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-ddb-fields-transformer.js +36 -0
  339. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-ddb-fields-transformer.js.map +1 -0
  340. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-ddb-references-transformer.d.ts +11 -0
  341. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-ddb-references-transformer.d.ts.map +1 -0
  342. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-ddb-references-transformer.js +37 -0
  343. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-ddb-references-transformer.js.map +1 -0
  344. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-sql-transformer.d.ts +11 -0
  345. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-sql-transformer.d.ts.map +1 -0
  346. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-sql-transformer.js +30 -0
  347. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-sql-transformer.js.map +1 -0
  348. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-transformer-factory.d.ts +5 -0
  349. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-transformer-factory.d.ts.map +1 -0
  350. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-transformer-factory.js +31 -0
  351. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-transformer-factory.js.map +1 -0
  352. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-ddb-fields-transformer.d.ts +11 -0
  353. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-ddb-fields-transformer.d.ts.map +1 -0
  354. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-ddb-fields-transformer.js +34 -0
  355. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-ddb-fields-transformer.js.map +1 -0
  356. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-ddb-references-transformer.d.ts +11 -0
  357. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-ddb-references-transformer.d.ts.map +1 -0
  358. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-ddb-references-transformer.js +37 -0
  359. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-ddb-references-transformer.js.map +1 -0
  360. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-sql-transformer.d.ts +11 -0
  361. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-sql-transformer.d.ts.map +1 -0
  362. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-sql-transformer.js +30 -0
  363. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-sql-transformer.js.map +1 -0
  364. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-transformer-factory.d.ts +5 -0
  365. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-transformer-factory.d.ts.map +1 -0
  366. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-transformer-factory.js +31 -0
  367. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-transformer-factory.js.map +1 -0
  368. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-generator.d.ts +3 -2
  369. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-generator.d.ts.map +1 -1
  370. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-generator.js +6 -3
  371. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-generator.js.map +1 -1
  372. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-references-generator.d.ts +9 -0
  373. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-references-generator.d.ts.map +1 -0
  374. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-references-generator.js +172 -0
  375. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-references-generator.js.map +1 -0
  376. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator.d.ts +2 -2
  377. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator.d.ts.map +1 -1
  378. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator.js.map +1 -1
  379. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.d.ts +2 -1
  380. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.d.ts.map +1 -1
  381. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.js +72 -17
  382. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.js.map +1 -1
  383. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/schema.d.ts +1 -1
  384. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/schema.d.ts.map +1 -1
  385. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/schema.js.map +1 -1
  386. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/types.d.ts +5 -0
  387. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/types.d.ts.map +1 -1
  388. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.d.ts +2 -1
  389. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.d.ts.map +1 -1
  390. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.js +7 -1
  391. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.js.map +1 -1
  392. package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +10 -9
  393. package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +5 -1
  394. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/generate-resolver-vtl.d.ts +1 -1
  395. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/generate-resolver-vtl.d.ts.map +1 -1
  396. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/generate-resolver-vtl.js +20 -9
  397. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/generate-resolver-vtl.js.map +1 -1
  398. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/graphql-searchable-transformer.d.ts.map +1 -1
  399. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/graphql-searchable-transformer.js +16 -9
  400. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/graphql-searchable-transformer.js.map +1 -1
  401. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
  402. package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +9 -8
  403. package/node_modules/@aws-amplify/graphql-sql-transformer/CHANGELOG.md +5 -1
  404. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/graphql-sql-transformer.d.ts.map +1 -1
  405. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/graphql-sql-transformer.js +19 -12
  406. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/graphql-sql-transformer.js.map +1 -1
  407. package/node_modules/@aws-amplify/graphql-sql-transformer/package.json +9 -8
  408. package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +7 -1
  409. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts.map +1 -1
  410. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js.map +1 -1
  411. package/node_modules/@aws-amplify/graphql-transformer/package.json +16 -16
  412. package/node_modules/@aws-amplify/graphql-transformer/src/graphql-transformer.ts +1 -0
  413. package/node_modules/@aws-amplify/graphql-transformer-core/API.md +3 -0
  414. package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +5 -1
  415. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.d.ts +1 -1
  416. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.d.ts.map +1 -1
  417. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.js +3 -2
  418. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.js.map +1 -1
  419. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/validation.d.ts.map +1 -1
  420. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/validation.js +11 -12
  421. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/validation.js.map +1 -1
  422. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.d.ts +1 -0
  423. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.d.ts.map +1 -1
  424. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.js +8 -1
  425. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.js.map +1 -1
  426. package/node_modules/@aws-amplify/graphql-transformer-core/package.json +5 -4
  427. package/node_modules/@aws-amplify/graphql-transformer-interfaces/API.md +28 -2
  428. package/node_modules/@aws-amplify/graphql-transformer-interfaces/CHANGELOG.md +7 -1
  429. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.d.ts +12 -1
  430. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.d.ts.map +1 -1
  431. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.js +22 -0
  432. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.js.map +1 -1
  433. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-context-provider.d.ts +1 -1
  434. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-context-provider.d.ts.map +1 -1
  435. package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +2 -2
  436. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/model-datasource/types.ts +76 -1
  437. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/transformer-context-provider.ts +1 -0
  438. package/node_modules/@aws-amplify/graphql-transformer-interfaces/tsconfig.tsbuildinfo +1 -1
  439. package/node_modules/graphql-mapping-template/CHANGELOG.md +0 -4
  440. package/node_modules/graphql-mapping-template/package.json +2 -3
  441. package/node_modules/graphql-transformer-common/API.md +13 -0
  442. package/node_modules/graphql-transformer-common/CHANGELOG.md +7 -1
  443. package/node_modules/graphql-transformer-common/lib/TypescriptSchemaConstants.d.ts +13 -0
  444. package/node_modules/graphql-transformer-common/lib/TypescriptSchemaConstants.d.ts.map +1 -1
  445. package/node_modules/graphql-transformer-common/lib/TypescriptSchemaConstants.js +13 -0
  446. package/node_modules/graphql-transformer-common/lib/TypescriptSchemaConstants.js.map +1 -1
  447. package/node_modules/graphql-transformer-common/package.json +3 -3
  448. package/package.json +21 -19
  449. package/src/internal/authorization-modes.ts +18 -8
  450. package/src/internal/codegen-assets.ts +11 -2
  451. package/src/internal/data-source-config.ts +42 -9
  452. package/src/model-datasource-strategy-types.ts +33 -1
  453. package/src/sql-model-datasource-strategy.ts +32 -1
  454. /package/node_modules/{graphql-mapping-template → @aws-amplify/graphql-directives}/LICENSE +0 -0
package/API.md CHANGED
@@ -361,7 +361,19 @@ export class SQLLambdaModelDataSourceStrategyFactory {
361
361
  }
362
362
 
363
363
  // @public
364
- export interface SqlModelDataSourceDbConnectionConfig {
364
+ export type SqlModelDataSourceDbConnectionConfig = SqlModelDataSourceSecretsManagerDbConnectionConfig | SqlModelDataSourceSsmDbConnectionConfig;
365
+
366
+ // @public
367
+ export interface SqlModelDataSourceSecretsManagerDbConnectionConfig {
368
+ readonly databaseName: string;
369
+ readonly hostname: string;
370
+ readonly keyArn?: string;
371
+ readonly port: number;
372
+ readonly secretArn: string;
373
+ }
374
+
375
+ // @public
376
+ export interface SqlModelDataSourceSsmDbConnectionConfig {
365
377
  readonly databaseNameSsmPath: string;
366
378
  readonly hostnameSsmPath: string;
367
379
  readonly passwordSsmPath: string;
package/CHANGELOG.md CHANGED
@@ -3,11 +3,15 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- # [1.7.0-iam-auth-with-identityPool-provider-1.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-api-construct@1.6.0...@aws-amplify/graphql-api-construct@1.7.0-iam-auth-with-identityPool-provider-1.0) (2024-03-15)
6
+ ## [1.7.1-gen2-release.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-api-construct@1.7.0-gen2-release.1...@aws-amplify/graphql-api-construct@1.7.1-gen2-release.0) (2024-03-29)
7
+
8
+ **Note:** Version bump only for package @aws-amplify/graphql-api-construct
9
+
10
+ # [1.7.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-api-construct@1.6.0...@aws-amplify/graphql-api-construct@1.7.0) (2024-03-28)
7
11
 
8
12
  ### Features
9
13
 
10
- - non-Cognito IAM authorization ([e58db10](https://github.com/aws-amplify/amplify-category-api/commit/e58db10db155a3bc36cb6b2b4dd0519653290fb0))
14
+ - add secrets manager as credential store for sql lambda ([#2289](https://github.com/aws-amplify/amplify-category-api/issues/2289)) ([affdb98](https://github.com/aws-amplify/amplify-category-api/commit/affdb988b499591c3a96608f772b637ddd8c3a0c))
11
15
 
12
16
  # [1.6.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-api-construct@1.5.7...@aws-amplify/graphql-api-construct@1.6.0) (2024-03-13)
13
17
 
package/README.md CHANGED
@@ -2623,7 +2623,7 @@ const sQLLambdaModelDataSourceStrategy: SQLLambdaModelDataSourceStrategy = { ...
2623
2623
 
2624
2624
  | **Name** | **Type** | **Description** |
2625
2625
  | --- | --- | --- |
2626
- | <code><a href="#@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.property.dbConnectionConfig">dbConnectionConfig</a></code> | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig">SqlModelDataSourceDbConnectionConfig</a></code> | The parameters the Lambda data source will use to connect to the database. |
2626
+ | <code><a href="#@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.property.dbConnectionConfig">dbConnectionConfig</a></code> | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSecretsManagerDbConnectionConfig">SqlModelDataSourceSecretsManagerDbConnectionConfig</a> \| <a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig">SqlModelDataSourceSsmDbConnectionConfig</a></code> | The parameters the Lambda data source will use to connect to the database. |
2627
2627
  | <code><a href="#@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.property.dbType">dbType</a></code> | <code>string</code> | The type of the SQL database used to process model operations for this definition. |
2628
2628
  | <code><a href="#@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.property.name">name</a></code> | <code>string</code> | The name of the strategy. |
2629
2629
  | <code><a href="#@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.property.customSqlStatements">customSqlStatements</a></code> | <code>{[ key: string ]: string}</code> | Custom SQL statements. |
@@ -2635,10 +2635,10 @@ const sQLLambdaModelDataSourceStrategy: SQLLambdaModelDataSourceStrategy = { ...
2635
2635
  ##### `dbConnectionConfig`<sup>Required</sup> <a name="dbConnectionConfig" id="@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.property.dbConnectionConfig"></a>
2636
2636
 
2637
2637
  ```typescript
2638
- public readonly dbConnectionConfig: SqlModelDataSourceDbConnectionConfig;
2638
+ public readonly dbConnectionConfig: SqlModelDataSourceSecretsManagerDbConnectionConfig | SqlModelDataSourceSsmDbConnectionConfig;
2639
2639
  ```
2640
2640
 
2641
- - *Type:* <a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig">SqlModelDataSourceDbConnectionConfig</a>
2641
+ - *Type:* <a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSecretsManagerDbConnectionConfig">SqlModelDataSourceSecretsManagerDbConnectionConfig</a> | <a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig">SqlModelDataSourceSsmDbConnectionConfig</a>
2642
2642
 
2643
2643
  The parameters the Lambda data source will use to connect to the database.
2644
2644
 
@@ -2710,33 +2710,91 @@ The configuration of the VPC into which to install the Lambda.
2710
2710
 
2711
2711
  ---
2712
2712
 
2713
- ### SqlModelDataSourceDbConnectionConfig <a name="SqlModelDataSourceDbConnectionConfig" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig"></a>
2713
+ ### SqlModelDataSourceSecretsManagerDbConnectionConfig <a name="SqlModelDataSourceSecretsManagerDbConnectionConfig" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSecretsManagerDbConnectionConfig"></a>
2714
+
2715
+ #### Initializer <a name="Initializer" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSecretsManagerDbConnectionConfig.Initializer"></a>
2716
+
2717
+ ```typescript
2718
+ import { SqlModelDataSourceSecretsManagerDbConnectionConfig } from '@aws-amplify/graphql-api-construct'
2719
+
2720
+ const sqlModelDataSourceSecretsManagerDbConnectionConfig: SqlModelDataSourceSecretsManagerDbConnectionConfig = { ... }
2721
+ ```
2722
+
2723
+ #### Properties <a name="Properties" id="Properties"></a>
2724
+
2725
+ | **Name** | **Type** | **Description** |
2726
+ | --- | --- | --- |
2727
+ | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSecretsManagerDbConnectionConfig.property.databaseName">databaseName</a></code> | <code>string</code> | database name. |
2728
+ | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSecretsManagerDbConnectionConfig.property.port">port</a></code> | <code>number</code> | port number of the database proxy, cluster, or instance. |
2729
+ | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSecretsManagerDbConnectionConfig.property.secretArn">secretArn</a></code> | <code>string</code> | The arn of the managed secret with username, password, and hostname to use when connecting to the database. |
2730
+
2731
+ ---
2732
+
2733
+ ##### `databaseName`<sup>Required</sup> <a name="databaseName" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSecretsManagerDbConnectionConfig.property.databaseName"></a>
2734
+
2735
+ ```typescript
2736
+ public readonly databaseName: string;
2737
+ ```
2738
+
2739
+ - *Type:* string
2740
+
2741
+ database name.
2742
+
2743
+ ---
2744
+
2745
+ ##### `port`<sup>Required</sup> <a name="port" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSecretsManagerDbConnectionConfig.property.port"></a>
2746
+
2747
+ ```typescript
2748
+ public readonly port: number;
2749
+ ```
2750
+
2751
+ - *Type:* number
2752
+
2753
+ port number of the database proxy, cluster, or instance.
2754
+
2755
+ ---
2756
+
2757
+ ##### `secretArn`<sup>Required</sup> <a name="secretArn" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSecretsManagerDbConnectionConfig.property.secretArn"></a>
2758
+
2759
+ ```typescript
2760
+ public readonly secretArn: string;
2761
+ ```
2762
+
2763
+ - *Type:* string
2764
+
2765
+ The arn of the managed secret with username, password, and hostname to use when connecting to the database.
2766
+
2767
+ *
2768
+
2769
+ ---
2770
+
2771
+ ### SqlModelDataSourceSsmDbConnectionConfig <a name="SqlModelDataSourceSsmDbConnectionConfig" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig"></a>
2714
2772
 
2715
2773
  The Secure Systems Manager parameter paths the Lambda data source will use to connect to the database.
2716
2774
 
2717
2775
  These parameters are retrieved from Secure Systems Manager in the same region as the Lambda.
2718
2776
 
2719
- #### Initializer <a name="Initializer" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.Initializer"></a>
2777
+ #### Initializer <a name="Initializer" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig.Initializer"></a>
2720
2778
 
2721
2779
  ```typescript
2722
- import { SqlModelDataSourceDbConnectionConfig } from '@aws-amplify/graphql-api-construct'
2780
+ import { SqlModelDataSourceSsmDbConnectionConfig } from '@aws-amplify/graphql-api-construct'
2723
2781
 
2724
- const sqlModelDataSourceDbConnectionConfig: SqlModelDataSourceDbConnectionConfig = { ... }
2782
+ const sqlModelDataSourceSsmDbConnectionConfig: SqlModelDataSourceSsmDbConnectionConfig = { ... }
2725
2783
  ```
2726
2784
 
2727
2785
  #### Properties <a name="Properties" id="Properties"></a>
2728
2786
 
2729
2787
  | **Name** | **Type** | **Description** |
2730
2788
  | --- | --- | --- |
2731
- | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.databaseNameSsmPath">databaseNameSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the database name. |
2732
- | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.hostnameSsmPath">hostnameSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the hostname of the database. |
2733
- | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.passwordSsmPath">passwordSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the password to use when connecting to the database. |
2734
- | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.portSsmPath">portSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the port number of the database proxy, cluster, or instance. |
2735
- | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.usernameSsmPath">usernameSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the username to use when connecting to the database. |
2789
+ | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig.property.databaseNameSsmPath">databaseNameSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the database name. |
2790
+ | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig.property.hostnameSsmPath">hostnameSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the hostname of the database. |
2791
+ | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig.property.passwordSsmPath">passwordSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the password to use when connecting to the database. |
2792
+ | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig.property.portSsmPath">portSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the port number of the database proxy, cluster, or instance. |
2793
+ | <code><a href="#@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig.property.usernameSsmPath">usernameSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the username to use when connecting to the database. |
2736
2794
 
2737
2795
  ---
2738
2796
 
2739
- ##### `databaseNameSsmPath`<sup>Required</sup> <a name="databaseNameSsmPath" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.databaseNameSsmPath"></a>
2797
+ ##### `databaseNameSsmPath`<sup>Required</sup> <a name="databaseNameSsmPath" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig.property.databaseNameSsmPath"></a>
2740
2798
 
2741
2799
  ```typescript
2742
2800
  public readonly databaseNameSsmPath: string;
@@ -2748,7 +2806,7 @@ The Secure Systems Manager parameter containing the database name.
2748
2806
 
2749
2807
  ---
2750
2808
 
2751
- ##### `hostnameSsmPath`<sup>Required</sup> <a name="hostnameSsmPath" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.hostnameSsmPath"></a>
2809
+ ##### `hostnameSsmPath`<sup>Required</sup> <a name="hostnameSsmPath" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig.property.hostnameSsmPath"></a>
2752
2810
 
2753
2811
  ```typescript
2754
2812
  public readonly hostnameSsmPath: string;
@@ -2763,7 +2821,7 @@ of a database proxy, cluster, or instance.
2763
2821
 
2764
2822
  ---
2765
2823
 
2766
- ##### `passwordSsmPath`<sup>Required</sup> <a name="passwordSsmPath" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.passwordSsmPath"></a>
2824
+ ##### `passwordSsmPath`<sup>Required</sup> <a name="passwordSsmPath" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig.property.passwordSsmPath"></a>
2767
2825
 
2768
2826
  ```typescript
2769
2827
  public readonly passwordSsmPath: string;
@@ -2775,7 +2833,7 @@ The Secure Systems Manager parameter containing the password to use when connect
2775
2833
 
2776
2834
  ---
2777
2835
 
2778
- ##### `portSsmPath`<sup>Required</sup> <a name="portSsmPath" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.portSsmPath"></a>
2836
+ ##### `portSsmPath`<sup>Required</sup> <a name="portSsmPath" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig.property.portSsmPath"></a>
2779
2837
 
2780
2838
  ```typescript
2781
2839
  public readonly portSsmPath: string;
@@ -2787,7 +2845,7 @@ The Secure Systems Manager parameter containing the port number of the database
2787
2845
 
2788
2846
  ---
2789
2847
 
2790
- ##### `usernameSsmPath`<sup>Required</sup> <a name="usernameSsmPath" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.usernameSsmPath"></a>
2848
+ ##### `usernameSsmPath`<sup>Required</sup> <a name="usernameSsmPath" id="@aws-amplify/graphql-api-construct.SqlModelDataSourceSsmDbConnectionConfig.property.usernameSsmPath"></a>
2791
2849
 
2792
2850
  ```typescript
2793
2851
  public readonly usernameSsmPath: string;
@@ -105,5 +105,5 @@ class AmplifyDynamoDbTableWrapper {
105
105
  }
106
106
  exports.AmplifyDynamoDbTableWrapper = AmplifyDynamoDbTableWrapper;
107
107
  _a = JSII_RTTI_SYMBOL_1;
108
- AmplifyDynamoDbTableWrapper[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper", version: "1.7.0-iam-auth-with-identityPool-provider-1.0" };
108
+ AmplifyDynamoDbTableWrapper[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper", version: "1.7.1-gen2-release.0" };
109
109
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1keW5hbW9kYi10YWJsZS13cmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FtcGxpZnktZHluYW1vZGItdGFibGUtd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUF5RDtBQUd6RCxNQUFNLG9DQUFvQyxHQUFHLDhCQUE4QixDQUFDO0FBZ0M1RTs7O0dBR0c7QUFDSCxJQUFZLE9BRVg7QUFGRCxXQUFZLE9BQU87SUFDakIsc0JBQVcsQ0FBQTtBQUNiLENBQUMsRUFGVyxPQUFPLHVCQUFQLE9BQU8sUUFFbEI7QUEyQ0Q7Ozs7Ozs7R0FPRztBQUNILE1BQWEsMkJBQTJCO0lBQ3RDOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBTTtRQUMxQyxPQUFPLENBQUMsWUFBWSx5QkFBVyxJQUFJLENBQUMsQ0FBQyxlQUFlLEtBQUssb0NBQW9DLENBQUM7SUFDaEcsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQTZCLFFBQXFCO1FBQXJCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDaEQsSUFBSSxRQUFRLENBQUMsZUFBZSxLQUFLLG9DQUFvQyxFQUFFO1lBQ3JFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLG9DQUFvQyxzQ0FBc0MsQ0FBQyxDQUFDO1NBQzNIO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILGtCQUFrQixDQUFDLE1BQXFCO1FBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxXQUFXLENBQUMsV0FBd0I7UUFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxtQkFBbUIsQ0FBQyx1QkFBZ0Q7UUFDdEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyx5QkFBeUIsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksMEJBQTBCLENBQUMsMEJBQW1DO1FBQ2hFLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsa0NBQWtDLEVBQUUsRUFBRSwwQkFBMEIsRUFBRSxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxxQkFBcUIsQ0FBQyxxQkFBNEM7UUFDcEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUIsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsNENBQTRDLENBQUMsU0FBaUIsRUFBRSxxQkFBNEM7UUFDMUcsTUFBTSxJQUFJLEdBQTJDLE1BQU0sQ0FBQyxPQUFPLENBQ2hFLElBQUksQ0FBQyxRQUFnQixDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsc0JBQXNCLElBQUksRUFBRSxDQUM5RSxDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ILElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsU0FBUyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQy9FO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQywwQkFBMEIsU0FBUyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQzNILENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksbUJBQW1CLENBQUMsbUJBQXdDO1FBQzlELElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLGdCQUFnQixDQUFDLGdCQUFrQztRQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSx5QkFBeUIsQ0FBQyx5QkFBa0M7UUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQywyQkFBMkIsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO0lBQzVGLENBQUM7O0FBM0ZILGtFQTRGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmblJlc291cmNlLCBSZW1vdmFsUG9saWN5IH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQmlsbGluZ01vZGUsIFN0cmVhbVZpZXdUeXBlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiJztcblxuY29uc3QgQU1QTElGWV9EWU5BTU9EQl9UQUJMRV9SRVNPVVJDRV9UWVBFID0gJ0N1c3RvbTo6QW1wbGlmeUR5bmFtb0RCVGFibGUnO1xuXG4vKipcbiAqIFNoYXBlIGZvciBUVEwgY29uZmlnLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRpbWVUb0xpdmVTcGVjaWZpY2F0aW9uIHtcbiAgLyoqXG4gICAqIEJvb2xlYW4gZGV0ZXJtaW5pbmcgaWYgdGhlIHR0bCBpcyBlbmFibGVkIG9yIG5vdC5cbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSBuYW1lIHRvIGFwcGx5IHRvIHRoZSB0dGwgc3BlYy5cbiAgICovXG4gIHJlYWRvbmx5IGF0dHJpYnV0ZU5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogV3JhcHBlciBmb3IgcHJvdmlzaW9uZWQgdGhyb3VnaHB1dCBjb25maWcgaW4gRERCLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3Zpc2lvbmVkVGhyb3VnaHB1dCB7XG4gIC8qKlxuICAgKiBUaGUgcmVhZCBjYXBhY2l0eSB1bml0cyBvbiB0aGUgdGFibGUgb3IgaW5kZXguXG4gICAqL1xuICByZWFkb25seSByZWFkQ2FwYWNpdHlVbml0czogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgd3JpdGUgY2FwYWNpdHkgdW5pdHMgb24gdGhlIHRhYmxlIG9yIGluZGV4LlxuICAgKi9cbiAgcmVhZG9ubHkgd3JpdGVDYXBhY2l0eVVuaXRzOiBudW1iZXI7XG59XG5cbi8qKlxuICogU2VydmVyIFNpZGUgRW5jcnlwdGlvbiBUeXBlIFZhbHVlc1xuICogLSBgS01TYCAtIFNlcnZlci1zaWRlIGVuY3J5cHRpb24gdGhhdCB1c2VzIEFXUyBLTVMuIFRoZSBrZXkgaXMgc3RvcmVkIGluIHlvdXIgYWNjb3VudCBhbmQgaXMgbWFuYWdlZCBieSBLTVMgKEFXUyBLTVMgY2hhcmdlcyBhcHBseSkuXG4gKi9cbmV4cG9ydCBlbnVtIFNTRVR5cGUge1xuICBLTVMgPSAnS01TJyxcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBzZXR0aW5ncyB1c2VkIHRvIGVuYWJsZSBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNTRVNwZWNpZmljYXRpb24ge1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgc2VydmVyLXNpZGUgZW5jcnlwdGlvbiBpcyBkb25lIHVzaW5nIGFuIEFXUyBtYW5hZ2VkIGtleSBvciBhbiBBV1Mgb3duZWQga2V5LlxuICAgKiBJZiBlbmFibGVkICh0cnVlKSwgc2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0eXBlIGlzIHNldCB0byBgS01TYCBhbmQgYW4gQVdTIG1hbmFnZWQga2V5IGlzIHVzZWQgKCBBV1MgS01TIGNoYXJnZXMgYXBwbHkpLlxuICAgKiBJZiBkaXNhYmxlZCAoZmFsc2UpIG9yIG5vdCBzcGVjaWZpZWQsIHNlcnZlci1zaWRlIGVuY3J5cHRpb24gaXMgc2V0IHRvIEFXUyBvd25lZCBrZXkuXG4gICAqL1xuICByZWFkb25seSBzc2VFbmFibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIEtNUyBrZXkgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIEFXUyBLTVMgZW5jcnlwdGlvbi5cbiAgICogVG8gc3BlY2lmeSBhIGtleSwgdXNlIGl0cyBrZXkgSUQsIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pLCBhbGlhcyBuYW1lLCBvciBhbGlhcyBBUk4uIE5vdGUgdGhhdCB5b3Ugc2hvdWxkIG9ubHkgcHJvdmlkZVxuICAgKiB0aGlzIHBhcmFtZXRlciBpZiB0aGUga2V5IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IER5bmFtb0RCIGtleSBgYWxpYXMvYXdzL2R5bmFtb2RiYCAuXG4gICAqL1xuICByZWFkb25seSBrbXNNYXN0ZXJLZXlJZD86IHN0cmluZztcblxuICAvKipcbiAgICogU2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0eXBlLiBUaGUgb25seSBzdXBwb3J0ZWQgdmFsdWUgaXM6XG4gICAqIGBLTVNgIFNlcnZlci1zaWRlIGVuY3J5cHRpb24gdGhhdCB1c2VzIEFXUyBLZXkgTWFuYWdlbWVudCBTZXJ2aWNlLlxuICAgKiAgIFRoZSBrZXkgaXMgc3RvcmVkIGluIHlvdXIgYWNjb3VudCBhbmQgaXMgbWFuYWdlZCBieSBBV1MgS01TICggQVdTIEtNUyBjaGFyZ2VzIGFwcGx5KS5cbiAgICovXG4gIHJlYWRvbmx5IHNzZVR5cGU/OiBTU0VUeXBlO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIER5bmFtb0RCIFN0cmVhbXMgY29uZmlndXJhdGlvbiBmb3IgYSB0YWJsZSBpbiBEeW5hbW9EQi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJlYW1TcGVjaWZpY2F0aW9uIHtcbiAgLyoqXG4gICAqIFdoZW4gYW4gaXRlbSBpbiB0aGUgdGFibGUgaXMgbW9kaWZpZWQsIGBTdHJlYW1WaWV3VHlwZWAgZGV0ZXJtaW5lcyB3aGF0IGluZm9ybWF0aW9uIGlzIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbSBmb3IgdGhpcyB0YWJsZS5cbiAgICogVmFsaWQgdmFsdWVzIGZvciBgU3RyZWFtVmlld1R5cGVgIGFyZTpcbiAgICogLSBgS0VZU19PTkxZYCAtIE9ubHkgdGhlIGtleSBhdHRyaWJ1dGVzIG9mIHRoZSBtb2RpZmllZCBpdGVtIGFyZSB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gICAqIC0gYE5FV19JTUFHRWAgLSBUaGUgZW50aXJlIGl0ZW0sIGFzIGl0IGFwcGVhcnMgYWZ0ZXIgaXQgd2FzIG1vZGlmaWVkLCBpcyB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gICAqIC0gYE9MRF9JTUFHRWAgLSBUaGUgZW50aXJlIGl0ZW0sIGFzIGl0IGFwcGVhcmVkIGJlZm9yZSBpdCB3YXMgbW9kaWZpZWQsIGlzIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbS5cbiAgICogLSBgTkVXX0FORF9PTERfSU1BR0VTYCAtIEJvdGggdGhlIG5ldyBhbmQgdGhlIG9sZCBpdGVtIGltYWdlcyBvZiB0aGUgaXRlbSBhcmUgd3JpdHRlbiB0byB0aGUgc3RyZWFtLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RyZWFtVmlld1R5cGU6IFN0cmVhbVZpZXdUeXBlO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgY2xhc3MgYXJvdW5kIEN1c3RvbTo6QW1wbGlmeUR5bmFtb0RCVGFibGUgY3VzdG9tIHJlc291cmNlLCB0byBzaW1wbGlmeVxuICogdGhlIG92ZXJyaWRlIGV4cGVyaWVuY2UgYSBiaXQuIFRoaXMgaXMgTk9UIGEgY29uc3RydWN0LCBqdXN0IGFuIGVhc2llciB3YXkgdG8gYWNjZXNzXG4gKiB0aGUgZ2VuZXJhdGVkIGNvbnN0cnVjdC5cbiAqIFRoaXMgaXMgYSB3cmFwcGVyIGludGVuZGVkIHRvIG1pbWljIHRoZSBgYXdzX2Nka19saWIuYXdzX2R5bmFtb2RiLlRhYmxlYCBmdW5jdGlvbmFsaXR5IG1vcmUtb3ItbGVzcy5cbiAqIE5vdGFibGUgZGlmZmVyZW5jZXMgaXMgdGhlIGFkZGl0aW9uIG9mIFRLVEsgcHJvcGVydGllcywgdG8gYWNjb3VudCBmb3IgdGhlIGZhY3QgdGhhdCB0aGV5J3JlIGNvbnN0cnVjdG9yIHByb3BzXG4gKiBpbiB0aGUgQ0RLIGNvbnN0cnVjdCwgYXMgd2VsbCBhcyB0aGUgcmVtb3ZhbCBvZiBhbGwgZnJvbSosIGdyYW50KiwgYW5kIG1ldHJpYyogbWV0aG9kcyBpbXBsZW1lbnRlZCBieSBUYWJsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFtcGxpZnlEeW5hbW9EYlRhYmxlV3JhcHBlciB7XG4gIC8qKlxuICAgKiBSZXR1cm4gdHJ1ZSBhbmQgcGVyZm9ybSB0eXBlIG5hcnJvd2luZyBpZiBhIGdpdmVuIGlucHV0IGFwcGVhcnMgdG8gYmUgY2FwYWJsZSBvZlxuICAgKiBAcGFyYW0geCB0aGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKiBAcmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgcmVzb3VyY2UgaXMgYW4gdW5kZXJseWluZyBhbXBsaWZ5IGR5bmFtb2RiIHRhYmxlIHJlc291cmNlLlxuICAgKi9cbiAgc3RhdGljIGlzQW1wbGlmeUR5bmFtb0RiVGFibGVSZXNvdXJjZSh4OiBhbnkpOiB4IGlzIENmblJlc291cmNlIHtcbiAgICByZXR1cm4geCBpbnN0YW5jZW9mIENmblJlc291cmNlICYmIHguY2ZuUmVzb3VyY2VUeXBlID09PSBBTVBMSUZZX0RZTkFNT0RCX1RBQkxFX1JFU09VUkNFX1RZUEU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRoZSB3cmFwcGVyIGdpdmVuIGFuIHVuZGVybHlpbmcgQ2ZuUmVzb3VyY2UgdGhhdCBpcyBhbiBpbnN0YW5jZSBvZiBDdXN0b206OkFtcGxpZnlEeW5hbW9EQlRhYmxlLlxuICAgKiBAcGFyYW0gcmVzb3VyY2UgdGhlIENmbiByZXNvdXJjZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IENmblJlc291cmNlKSB7XG4gICAgaWYgKHJlc291cmNlLmNmblJlc291cmNlVHlwZSAhPT0gQU1QTElGWV9EWU5BTU9EQl9UQUJMRV9SRVNPVVJDRV9UWVBFKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE9ubHkgQ2ZuUmVzb3VyY2Ugd2l0aCB0eXBlICR7QU1QTElGWV9EWU5BTU9EQl9UQUJMRV9SRVNPVVJDRV9UWVBFfSBjYW4gYmUgdXNlZCBpbiBBbXBsaWZ5RHluYW1vRGJUYWJsZWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlbGV0aW9uIHBvbGljeSBvZiB0aGUgcmVzb3VyY2UgYmFzZWQgb24gdGhlIHJlbW92YWwgcG9saWN5IHNwZWNpZmllZC5cbiAgICogQHBhcmFtIHBvbGljeSByZW1vdmFsIHBvbGljeSB0byBzZXRcbiAgICovXG4gIGFwcGx5UmVtb3ZhbFBvbGljeShwb2xpY3k6IFJlbW92YWxQb2xpY3kpOiB2b2lkIHtcbiAgICB0aGlzLnJlc291cmNlLmFwcGx5UmVtb3ZhbFBvbGljeShwb2xpY3kpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgaG93IHlvdSBhcmUgY2hhcmdlZCBmb3IgcmVhZCBhbmQgd3JpdGUgdGhyb3VnaHB1dCBhbmQgaG93IHlvdSBtYW5hZ2UgY2FwYWNpdHkuXG4gICAqL1xuICBzZXQgYmlsbGluZ01vZGUoYmlsbGluZ01vZGU6IEJpbGxpbmdNb2RlKSB7XG4gICAgdGhpcy5yZXNvdXJjZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdiaWxsaW5nTW9kZScsIGJpbGxpbmdNb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiBUVEwgYXR0cmlidXRlLlxuICAgKi9cbiAgc2V0IHRpbWVUb0xpdmVBdHRyaWJ1dGUodGltZVRvTGl2ZVNwZWNpZmljYXRpb246IFRpbWVUb0xpdmVTcGVjaWZpY2F0aW9uKSB7XG4gICAgdGhpcy5yZXNvdXJjZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCd0aW1lVG9MaXZlU3BlY2lmaWNhdGlvbicsIHRpbWVUb0xpdmVTcGVjaWZpY2F0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHBvaW50LWluLXRpbWUgcmVjb3ZlcnkgaXMgZW5hYmxlZC5cbiAgICovXG4gIHNldCBwb2ludEluVGltZVJlY292ZXJ5RW5hYmxlZChwb2ludEluVGltZVJlY292ZXJ5RW5hYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMucmVzb3VyY2UuYWRkUHJvcGVydHlPdmVycmlkZSgncG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb24nLCB7IHBvaW50SW5UaW1lUmVjb3ZlcnlFbmFibGVkIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgcHJvdmlzaW9uZWQgdGhyb3VnaHB1dCBmb3IgdGhlIGJhc2UgdGFibGUuXG4gICAqL1xuICBzZXQgcHJvdmlzaW9uZWRUaHJvdWdocHV0KHByb3Zpc2lvbmVkVGhyb3VnaHB1dDogUHJvdmlzaW9uZWRUaHJvdWdocHV0KSB7XG4gICAgdGhpcy5yZXNvdXJjZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdwcm92aXNpb25lZFRocm91Z2hwdXQnLCBwcm92aXNpb25lZFRocm91Z2hwdXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcHJvdmlzaW9uZWRUaHJvdWdodHB1dCBmb3IgYSBzcGVjaWZpZWQgR1NJIGJ5IG5hbWUuXG4gICAqIEBwYXJhbSBpbmRleE5hbWUgdGhlIGluZGV4IHRvIHNwZWNpZnkgYSBwcm92aXNpb25lZFRocm91Z2hwdXQgY29uZmlnIGZvclxuICAgKiBAcGFyYW0gcHJvdmlzaW9uZWRUaHJvdWdocHV0IHRoZSBjb25maWcgdG8gc2V0XG4gICAqL1xuICBzZXRHbG9iYWxTZWNvbmRhcnlJbmRleFByb3Zpc2lvbmVkVGhyb3VnaHB1dChpbmRleE5hbWU6IHN0cmluZywgcHJvdmlzaW9uZWRUaHJvdWdocHV0OiBQcm92aXNpb25lZFRocm91Z2hwdXQpOiB2b2lkIHtcbiAgICBjb25zdCBnc2lzOiBBcnJheTxbc3RyaW5nLCB7IGluZGV4TmFtZTogc3RyaW5nIH1dPiA9IE9iamVjdC5lbnRyaWVzKFxuICAgICAgKHRoaXMucmVzb3VyY2UgYXMgYW55KS5yYXdPdmVycmlkZXM/LlByb3BlcnRpZXM/Lmdsb2JhbFNlY29uZGFyeUluZGV4ZXMgPz8ge30sXG4gICAgKTtcbiAgICBjb25zdCBmb3VuZEdzaXMgPSBnc2lzLmZpbHRlcigoW18sIGdzaUNvbmZpZ10pID0+IGluZGV4TmFtZSA9PT0gZ3NpQ29uZmlnLmluZGV4TmFtZSkubWFwKChbZ3NpSW5kZXhdKSA9PiBnc2lJbmRleCk7XG4gICAgaWYgKGZvdW5kR3Npcy5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW5kZXggd2l0aCBuYW1lICR7aW5kZXhOYW1lfSBub3QgZm91bmQgaW4gdGFibGUgZGVmaW5pdGlvbmApO1xuICAgIH1cbiAgICB0aGlzLnJlc291cmNlLmFkZFByb3BlcnR5T3ZlcnJpZGUoYGdsb2JhbFNlY29uZGFyeUluZGV4ZXMuJHtmb3VuZEdzaXNbMF19LnByb3Zpc2lvbmVkVGhyb3VnaHB1dGAsIHByb3Zpc2lvbmVkVGhyb3VnaHB1dCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBkZGIgc3RyZWFtIHNwZWNpZmljYXRpb24gb24gdGhlIHRhYmxlLlxuICAgKi9cbiAgc2V0IHN0cmVhbVNwZWNpZmljYXRpb24oc3RyZWFtU3BlY2lmaWNhdGlvbjogU3RyZWFtU3BlY2lmaWNhdGlvbikge1xuICAgIHRoaXMucmVzb3VyY2UuYWRkUHJvcGVydHlPdmVycmlkZSgnc3RyZWFtU3BlY2lmaWNhdGlvbicsIHN0cmVhbVNwZWNpZmljYXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZGRiIHNlcnZlci1zaWRlIGVuY3J5cHRpb24gc3BlY2lmaWNhdGlvbiBvbiB0aGUgdGFibGUuXG4gICAqL1xuICBzZXQgc3NlU3BlY2lmaWNhdGlvbihzc2VTcGVjaWZpY2F0aW9uOiBTU0VTcGVjaWZpY2F0aW9uKSB7XG4gICAgdGhpcy5yZXNvdXJjZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdzc2VTcGVjaWZpY2F0aW9uJywgc3NlU3BlY2lmaWNhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRhYmxlIGRlbGV0aW9uIHByb3RlY3Rpb24uXG4gICAqL1xuICBzZXQgZGVsZXRpb25Qcm90ZWN0aW9uRW5hYmxlZChkZWxldGlvblByb3RlY3Rpb25FbmFibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5yZXNvdXJjZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdkZWxldGlvblByb3RlY3Rpb25FbmFibGVkJywgZGVsZXRpb25Qcm90ZWN0aW9uRW5hYmxlZCk7XG4gIH1cbn1cbiJdfQ==
@@ -263,7 +263,7 @@ class AmplifyGraphqlApi extends constructs_1.Construct {
263
263
  }
264
264
  exports.AmplifyGraphqlApi = AmplifyGraphqlApi;
265
265
  _a = JSII_RTTI_SYMBOL_1;
266
- AmplifyGraphqlApi[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlApi", version: "1.7.0-iam-auth-with-identityPool-provider-1.0" };
266
+ AmplifyGraphqlApi[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlApi", version: "1.7.1-gen2-release.0" };
267
267
  /**
268
268
  * Given the provided scope, walk the node tree, and throw an exception if any other AmplifyGraphqlApi constructs
269
269
  * are found in the stack.
@@ -101,5 +101,5 @@ class AmplifyGraphqlDefinition {
101
101
  }
102
102
  exports.AmplifyGraphqlDefinition = AmplifyGraphqlDefinition;
103
103
  _a = JSII_RTTI_SYMBOL_1;
104
- AmplifyGraphqlDefinition[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition", version: "1.7.0-iam-auth-with-identityPool-provider-1.0" };
104
+ AmplifyGraphqlDefinition[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition", version: "1.7.1-gen2-release.0" };
105
105
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1ncmFwaHFsLWRlZmluaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYW1wbGlmeS1ncmFwaHFsLWRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIseURBQXFEO0FBQ3JELG9GQUFzRTtBQUV0RSx5Q0FBMkQ7QUFFM0Qsc0VBSXVDO0FBRTFCLFFBQUEsa0NBQWtDLEdBQTRCO0lBQ3pFLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLGlCQUFpQixFQUFFLFNBQVM7Q0FDN0IsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBYSx3QkFBd0I7SUFDbkM7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FDZixNQUFjLEVBQ2QscUJBQThDLDBDQUFrQztRQUVoRixJQUFBLCtDQUEwQixFQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDL0MsT0FBTztZQUNMLE1BQU07WUFDTixhQUFhLEVBQUUsRUFBRTtZQUNqQix5QkFBeUIsRUFBRSxFQUFFO1lBQzdCLG9CQUFvQixFQUFFLElBQUEsd0NBQTZCLEVBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDO1lBQy9FLDZCQUE2QixFQUFFLElBQUEsMkRBQXNDLEVBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDO1NBQ2xHLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFtQjtRQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUM3QixTQUFTLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN6QjtRQUNELE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksd0JBQVUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUs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LEVBQUUsRUFBRSxDQUFDO1lBQ3JHLDZCQUE2QjtTQUM5QixDQUFDO0lBQ0osQ0FBQzs7QUFwR0gsNERBcUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0IHsgU2NoZW1hRmlsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcHBzeW5jJztcbmltcG9ydCB7IGlzU3FsU3RyYXRlZ3kgfSBmcm9tICdAYXdzLWFtcGxpZnkvZ3JhcGhxbC10cmFuc2Zvcm1lci1jb3JlJztcbmltcG9ydCB7IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24gfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGNvbnN0cnVjdERhdGFTb3VyY2VTdHJhdGVnaWVzIH0gZnJvbSAnLi9pbnRlcm5hbCc7XG5pbXBvcnQgeyBDdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ3ksIE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IH0gZnJvbSAnLi9tb2RlbC1kYXRhc291cmNlLXN0cmF0ZWd5LXR5cGVzJztcbmltcG9ydCB7XG4gIGNvbnN0cnVjdEN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzLFxuICBzY2hlbWFCeU1lcmdpbmdEZWZpbml0aW9ucyxcbiAgdmFsaWRhdGVEYXRhU291cmNlU3RyYXRlZ3ksXG59IGZyb20gJy4vaW50ZXJuYWwvZGF0YS1zb3VyY2UtY29uZmlnJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTU9ERUxfREFUQV9TT1VSQ0VfU1RSQVRFR1k6IE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5ID0ge1xuICBkYlR5cGU6ICdEWU5BTU9EQicsXG4gIHByb3Zpc2lvblN0cmF0ZWd5OiAnREVGQVVMVCcsXG59O1xuXG4vKipcbiAqIENsYXNzIGV4cG9zaW5nIHV0aWxpdGllcyB0byBwcm9kdWNlIElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24gb2JqZWN0cyBnaXZlbiB2YXJpb3VzIGlucHV0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbiB7XG4gIC8qKlxuICAgKiBQcm9kdWNlIGEgc2NoZW1hIGRlZmluaXRpb24gZnJvbSBhIHN0cmluZyBpbnB1dC5cbiAgICogQHBhcmFtIHNjaGVtYSB0aGUgZ3JhcGhxbCBpbnB1dCBhcyBhIHN0cmluZ1xuICAgKiBAcGFyYW0gZGF0YVNvdXJjZVN0cmF0ZWd5IHRoZSBwcm92aXNpb25pbmcgZGVmaW5pdGlvbiBmb3IgZGF0YXNvdXJjZXMgdGhhdCByZXNvbHZlIGBAbW9kZWxgcyBhbmQgY3VzdG9tIFNRTCBzdGF0ZW1lbnRzIGluIHRoaXMgc2NoZW1hLlxuICAgKiBUaGUgRHluYW1vREIgZnJvbSBDbG91ZEZvcm1hdGlvbiB3aWxsIGJlIHVzZWQgYnkgZGVmYXVsdC5cbiAgICogQHJldHVybnMgYSBmdWxseSBmb3JtZWQgYW1wbGlmeSBncmFwaHFsIGRlZmluaXRpb25cbiAgICovXG4gIHN0YXRpYyBmcm9tU3RyaW5nKFxuICAgIHNjaGVtYTogc3RyaW5nLFxuICAgIGRhdGFTb3VyY2VTdHJhdGVneTogTW9kZWxEYXRhU291cmNlU3RyYXRlZ3kgPSBERUZBVUxUX01PREVMX0RBVEFfU09VUkNFX1NUUkFURUdZLFxuICApOiBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uIHtcbiAgICB2YWxpZGF0ZURhdGFTb3VyY2VTdHJhdGVneShkYXRhU291cmNlU3RyYXRlZ3kpO1xuICAgIHJldHVybiB7XG4gICAgICBzY2hlbWEsXG4gICAgICBmdW5jdGlvblNsb3RzOiBbXSxcbiAgICAgIHJlZmVyZW5jZWRMYW1iZGFGdW5jdGlvbnM6IHt9LFxuICAgICAgZGF0YVNvdXJjZVN0cmF0ZWdpZXM6IGNvbnN0cnVjdERhdGFTb3VyY2VTdHJhdGVnaWVzKHNjaGVtYSwgZGF0YVNvdXJjZVN0cmF0ZWd5KSxcbiAgICAgIGN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzOiBjb25zdHJ1Y3RDdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ2llcyhzY2hlbWEsIGRhdGFTb3VyY2VTdHJhdGVneSksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IG9uZSBvciBtb3JlIGFwcHN5bmMgU2NoZW1hRmlsZSBvYmplY3RzIGludG8gYW4gQW1wbGlmeSBHcmFwaHFsIFNjaGVtYSwgYmluZGluZyB0aGVtIHRvIGEgRHluYW1vREIgZGF0YSBzb3VyY2UuXG4gICAqIEBwYXJhbSBmaWxlUGF0aHMgb25lIG9yIG1vcmUgcGF0aHMgdG8gdGhlIGdyYXBocWwgZmlsZXMgdG8gcHJvY2Vzc1xuICAgKiBAcmV0dXJucyBhIGZ1bGx5IGZvcm1lZCBhbXBsaWZ5IGdyYXBocWwgZGVmaW5pdGlvbiwgd2hvc2UgbW9kZWxzIHdpbGwgYmUgcmVzb2x2ZWQgYnkgRHluYW1vREIgdGFibGVzIGNyZWF0ZWQgZHVyaW5nIGRlcGxveW1lbnQuXG4gICAqL1xuICBzdGF0aWMgZnJvbUZpbGVzKC4uLmZpbGVQYXRoczogc3RyaW5nW10pOiBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZmlsZVBhdGhzKSkge1xuICAgICAgZmlsZVBhdGhzID0gW2ZpbGVQYXRoc107XG4gICAgfVxuICAgIGNvbnN0IHNjaGVtYSA9IGZpbGVQYXRocy5tYXAoKGZpbGVQYXRoKSA9PiBuZXcgU2NoZW1hRmlsZSh7IGZpbGVQYXRoIH0pLmRlZmluaXRpb24pLmpvaW4ob3MuRU9MKTtcbiAgICByZXR1cm4gQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uLmZyb21TdHJpbmcoc2NoZW1hLCBERUZBVUxUX01PREVMX0RBVEFfU09VUkNFX1NUUkFURUdZKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IG9uZSBvciBtb3JlIGFwcHN5bmMgU2NoZW1hRmlsZSBvYmplY3RzIGludG8gYW4gQW1wbGlmeSBHcmFwaHFsIFNjaGVtYVxuICAgKiBAcGFyYW0gZmlsZVBhdGhzIG9uZSBvciBtb3JlIHBhdGhzIHRvIHRoZSBncmFwaHFsIGZpbGVzIHRvIHByb2Nlc3NcbiAgICogQHBhcmFtIGRhdGFTb3VyY2VTdHJhdGVneSB0aGUgcHJvdmlzaW9uaW5nIGRlZmluaXRpb24gZm9yIGRhdGFzb3VyY2VzIHRoYXQgcmVzb2x2ZSBgQG1vZGVsYHMgaW4gdGhpcyBzY2hlbWEuIFRoZSBEeW5hbW9EQiBmcm9tXG4gICAqIENsb3VkRm9ybWF0aW9uIHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0LlxuICAgKiBAcmV0dXJucyBhIGZ1bGx5IGZvcm1lZCBhbXBsaWZ5IGdyYXBocWwgZGVmaW5pdGlvblxuICAgKi9cbiAgc3RhdGljIGZyb21GaWxlc0FuZFN0cmF0ZWd5KFxuICAgIGZpbGVQYXRoczogc3RyaW5nIHwgc3RyaW5nW10sXG4gICAgZGF0YVNvdXJjZVN0cmF0ZWd5OiBNb2RlbERhdGFTb3VyY2VTdHJhdGVneSA9IERFRkFVTFRfTU9ERUxfREFUQV9TT1VSQ0VfU1RSQVRFR1ksXG4gICk6IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShmaWxlUGF0aHMpKSB7XG4gICAgICBmaWxlUGF0aHMgPSBbZmlsZVBhdGhzXTtcbiAgICB9XG4gICAgY29uc3Qgc2NoZW1hID0gZmlsZVBhdGhzLm1hcCgoZmlsZVBhdGgpID0+IG5ldyBTY2hlbWFGaWxlKHsgZmlsZVBhdGggfSkuZGVmaW5pdGlvbikuam9pbihvcy5FT0wpO1xuICAgIHJldHVybiBBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24uZnJvbVN0cmluZyhzY2hlbWEsIGRhdGFTb3VyY2VTdHJhdGVneSk7XG4gIH1cblxuICAvKipcbiAgICogQ29tYmluZXMgbXVsdGlwbGUgSUFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbnMgaW50byBhIHNpbmdsZSBkZWZpbml0aW9uLlxuICAgKiBAcGFyYW0gZGVmaW5pdGlvbnMgdGhlIGRlZmluaXRpb25zIHRvIGNvbWJpbmVcbiAgICovXG4gIHN0YXRpYyBjb21iaW5lKGRlZmluaXRpb25zOiBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uW10pOiBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uIHtcbiAgICBpZiAoZGVmaW5pdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBkZWZpbml0aW9ucyBvZiBhbXBsaWZ5IEdyYXBoUUwgY2Fubm90IGJlIGVtcHR5LicpO1xuICAgIH1cbiAgICBpZiAoZGVmaW5pdGlvbnMubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gZGVmaW5pdGlvbnNbMF07XG4gICAgfVxuXG4gICAgLy8gQSBzdHJhdGVneSB3aWxsIGJlIHByZXNlbnQgbXVsdGlwbGUgdGltZXMgaW4gYSBnaXZlbiBkZWZpbml0aW9uOiBvbmNlIHBlciBtb2RlbC4gV2UnbGwgY3JlYXRlIGEgdW5pcXVlIGxpc3QgcGVyIGRlZmluaXRpb24gdG8gZW5zdXJlXG4gICAgLy8gbm8gcmV1c2UgYWNyb3NzIGRlZmluaXRpb25zLlxuICAgIGxldCBjb21iaW5lZFN0cmF0ZWd5TmFtZXM6IHN0cmluZ1tdID0gW107XG4gICAgZm9yIChjb25zdCBkZWZpbml0aW9uIG9mIGRlZmluaXRpb25zKSB7XG4gICAgICBjb25zdCBkZWZpbml0aW9uU3RyYXRlZ3lOYW1lcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgZm9yIChjb25zdCBzdHJhdGVneSBvZiBPYmplY3QudmFsdWVzKGRlZmluaXRpb24uZGF0YVNvdXJjZVN0cmF0ZWdpZXMpKSB7XG4gICAgICAgIGlmICghaXNTcWxTdHJhdGVneShzdHJhdGVneSkpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdHJhdGVneU5hbWUgPSBzdHJhdGVneS5uYW1lO1xuICAgICAgICBpZiAoY29tYmluZWRTdHJhdGVneU5hbWVzLmluY2x1ZGVzKHN0cmF0ZWd5TmFtZSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgVGhlIFNRTC1iYXNlZCBNb2RlbERhdGFTb3VyY2VTdHJhdGVneSAnJHtzdHJhdGVneU5hbWV9JyB3YXMgZm91bmQgaW4gbXVsdGlwbGUgZGVmaW5pdGlvbnMsIGJ1dCBhIHN0cmF0ZWd5IG5hbWUgY2Fubm90IGJlIGAgK1xuICAgICAgICAgICAgICBcInNoYXJlZCBiZXR3ZWVuIGRlZmluaXRpb25zLiBUbyBzcGVjaWZ5IGEgU1FMLWJhc2VkIEFQSSB3aXRoIHNjaGVtYXMgYWNyb3NzIG11bHRpcGxlIGZpbGVzLCB1c2UgJ2Zyb21GaWxlc0FuZFN0cmF0ZWd5J1wiLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgZGVmaW5pdGlvblN0cmF0ZWd5TmFtZXMuYWRkKHN0cmF0ZWd5TmFtZSk7XG4gICAgICB9XG4gICAgICBjb21iaW5lZFN0cmF0ZWd5TmFtZXMgPSBbLi4uY29tYmluZWRTdHJhdGVneU5hbWVzLCAuLi5kZWZpbml0aW9uU3RyYXRlZ3lOYW1lc107XG4gICAgfVxuXG4gICAgY29uc3QgY3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXMgPSBkZWZpbml0aW9ucy5yZWR1Y2UoXG4gICAgICAoYWNjLCBjdXIpID0+IFsuLi5hY2MsIC4uLihjdXIuY3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXMgPz8gW10pXSxcbiAgICAgIFtdIGFzIEN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVneVtdLFxuICAgICk7XG5cbiAgICBjb25zdCBtZXJnZWRTY2hlbWEgPSBzY2hlbWFCeU1lcmdpbmdEZWZpbml0aW9ucyhkZWZpbml0aW9ucyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2NoZW1hOiBtZXJnZWRTY2hlbWEsXG4gICAgICBmdW5jdGlvblNsb3RzOiBbXSxcbiAgICAgIHJlZmVyZW5jZWRMYW1iZGFGdW5jdGlvbnM6IGRlZmluaXRpb25zLnJlZHVjZSgoYWNjLCBjdXIpID0+ICh7IC4uLmFjYywgLi4uY3VyLnJlZmVyZW5jZWRMYW1iZGFGdW5jdGlvbnMgfSksIHt9KSxcbiAgICAgIGRhdGFTb3VyY2VTdHJhdGVnaWVzOiBkZWZpbml0aW9ucy5yZWR1Y2UoKGFjYywgY3VyKSA9PiAoeyAuLi5hY2MsIC4uLmN1ci5kYXRhU291cmNlU3RyYXRlZ2llcyB9KSwge30pLFxuICAgICAgY3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXMsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,6 +1,16 @@
1
1
  import { AppSyncAuthConfiguration, SynthParameters } from '@aws-amplify/graphql-transformer-interfaces';
2
2
  import { CfnGraphQLApi } from 'aws-cdk-lib/aws-appsync';
3
3
  import { AuthorizationModes } from '../types';
4
+ /**
5
+ * Validates authorization modes.
6
+ *
7
+ * Rules:
8
+ * 1. Validates that deprecated settings ('iamConfig.authenticatedUserRole', 'iamConfig.unauthenticatedUserRole',
9
+ * 'iamConfig.identityPoolId', 'iamConfig.allowListedRoles' and 'adminRoles') are mutually exclusive with new settings that
10
+ * replaced them ('iamConfig.enableIamAuthorizationMode' and any of 'authorizationModes.identityPoolConfig')
11
+ * 2. If deprecated identity pool settings are used ('iamConfig.authenticatedUserRole', 'iamConfig.unauthenticatedUserRole',
12
+ * and 'iamConfig.identityPoolId') validate that all are provided.
13
+ */
4
14
  export declare const validateAuthorizationModes: (authorizationModes: AuthorizationModes) => void;
5
15
  type AuthSynthParameters = Pick<SynthParameters, 'userPoolId' | 'authenticatedUserRoleName' | 'unauthenticatedUserRoleName' | 'identityPoolId' | 'adminRoles' | 'enableIamAccess'>;
6
16
  interface AuthConfig {
@@ -3,24 +3,34 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.convertAuthorizationModesToTransformerAuthConfig = exports.getAdditionalAuthenticationTypes = exports.validateAuthorizationModes = void 0;
4
4
  const lodash_1 = require("lodash");
5
5
  const aws_iam_1 = require("aws-cdk-lib/aws-iam");
6
+ /**
7
+ * Validates authorization modes.
8
+ *
9
+ * Rules:
10
+ * 1. Validates that deprecated settings ('iamConfig.authenticatedUserRole', 'iamConfig.unauthenticatedUserRole',
11
+ * 'iamConfig.identityPoolId', 'iamConfig.allowListedRoles' and 'adminRoles') are mutually exclusive with new settings that
12
+ * replaced them ('iamConfig.enableIamAuthorizationMode' and any of 'authorizationModes.identityPoolConfig')
13
+ * 2. If deprecated identity pool settings are used ('iamConfig.authenticatedUserRole', 'iamConfig.unauthenticatedUserRole',
14
+ * and 'iamConfig.identityPoolId') validate that all are provided.
15
+ */
6
16
  const validateAuthorizationModes = (authorizationModes) => {
7
- const hasDeprecatedIdentityPoolSettings = authorizationModes.iamConfig?.authenticatedUserRole ||
17
+ const hasAnyDeprecatedIdentityPoolSetting = authorizationModes.iamConfig?.authenticatedUserRole ||
8
18
  authorizationModes.iamConfig?.unauthenticatedUserRole ||
9
19
  authorizationModes.iamConfig?.identityPoolId;
10
20
  const hasAllDeprecatedIdentityPoolSettings = authorizationModes.iamConfig?.authenticatedUserRole &&
11
21
  authorizationModes.iamConfig?.unauthenticatedUserRole &&
12
22
  authorizationModes.iamConfig?.identityPoolId;
13
- const hasDeprecatedSettings = authorizationModes.iamConfig?.authenticatedUserRole ||
23
+ const hasDeprecatedIamSettings = authorizationModes.iamConfig?.authenticatedUserRole ||
14
24
  authorizationModes.iamConfig?.unauthenticatedUserRole ||
15
25
  authorizationModes.iamConfig?.identityPoolId ||
16
26
  authorizationModes.iamConfig?.allowListedRoles ||
17
27
  authorizationModes.adminRoles;
18
- const hasUnDeprecatedSettings = typeof authorizationModes.iamConfig?.enableIamAuthorizationMode !== 'undefined' || authorizationModes.identityPoolConfig;
19
- if (hasDeprecatedSettings && hasUnDeprecatedSettings) {
20
- throw new Error("Cannot use deprecated 'authorizationModes.iamConfig' options with 'authorizationModes.identityPoolConfig'" +
21
- " or 'authorizationModes.iamConfig.enableIamAuthorizationMode'");
28
+ const hasUnDeprecatedIamSettings = typeof authorizationModes.iamConfig?.enableIamAuthorizationMode !== 'undefined' || authorizationModes.identityPoolConfig;
29
+ if (hasDeprecatedIamSettings && hasUnDeprecatedIamSettings) {
30
+ throw new Error('Invalid authorization modes configuration provided. ' +
31
+ "Deprecated IAM configuration cannot be used with identity pool configuration or when 'enableIamAuthorizationMode' is specified.");
22
32
  }
23
- if (hasDeprecatedIdentityPoolSettings && !hasAllDeprecatedIdentityPoolSettings) {
33
+ if (hasAnyDeprecatedIdentityPoolSetting && !hasAllDeprecatedIdentityPoolSettings) {
24
34
  throw new Error("'authorizationModes.iamConfig.authenticatedUserRole', 'authorizationModes.iamConfig.unauthenticatedUserRole' and" +
25
35
  " 'authorizationModes.iamConfig.identityPoolId' must be provided.");
26
36
  }
@@ -170,4 +180,4 @@ const getSynthParameters = (authModes) => ({
170
180
  }
171
181
  : {}),
172
182
  });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi1tb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcm5hbC9hdXRob3JpemF0aW9uLW1vZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLG1DQUFpQztBQUNqQyxpREFBOEQ7QUFnQnZELE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxrQkFBc0MsRUFBRSxFQUFFO0lBQ25GLE1BQU0saUNBQWlDLEdBQ3JDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxxQkFBcUI7UUFDbkQsa0JBQWtCLENBQUMsU0FBUyxFQUFFLHVCQUF1QjtRQUNyRCxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDO0lBQy9DLE1BQU0sb0NBQW9DLEdBQ3hDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxxQkFBcUI7UUFDbkQsa0JBQWtCLENBQUMsU0FBUyxFQUFFLHVCQUF1QjtRQUNyRCxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDO0lBQy9DLE1BQU0scUJBQXFCLEdBQ3pCLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxxQkFBcUI7UUFDbkQsa0JBQWtCLENBQUMsU0FBUyxFQUFFLHVCQUF1QjtRQUNyRCxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsY0FBYztRQUM1QyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCO1FBQzlDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztJQUNoQyxNQUFNLHVCQUF1QixHQUMzQixPQUFPLGtCQUFrQixDQUFDLFNBQVMsRUFBRSwwQkFBMEIsS0FBSyxXQUFXLElBQUksa0JBQWtCLENBQUMsa0JBQWtCLENBQUM7SUFFM0gsSUFBSSxxQkFBcUIsSUFBSSx1QkFBdUIsRUFBRTtRQUNwRCxNQUFNLElBQUksS0FBSyxDQUNiLDJHQUEyRztZQUN6RywrREFBK0QsQ0FDbEUsQ0FBQztLQUNIO0lBRUQsSUFBSSxpQ0FBaUMsSUFBSSxDQUFDLG9DQUFvQyxFQUFFO1FBQzlFLE1BQU0sSUFBSSxL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QWMsSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFLGNBQWM7SUFDbkcsZUFBZSxFQUFFLFNBQVMsQ0FBQyxTQUFTLEVBQUUsMEJBQTBCO0lBQ2hFLEdBQUcsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2pHLEdBQUcsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCO1FBQy9CLENBQUMsQ0FBQztZQUNFLHlCQUF5QixFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRO1lBQ3RGLDJCQUEyQixFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRO1NBQzNGO1FBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNQLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxJQUFJLFNBQVMsRUFBRSxTQUFTLENBQUMscUJBQXFCLElBQUksU0FBUyxFQUFFLFNBQVMsQ0FBQyx1QkFBdUI7UUFDcEgsQ0FBQyxDQUFDO1lBQ0UseUJBQXlCLEVBQUUsU0FBUyxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxRQUFRO1lBQzlFLDJCQUEyQixFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsdUJBQXVCLEVBQUUsUUFBUTtTQUNuRjtRQUNILENBQUMsQ0FBQyxFQUFFLENBQUM7Q0FDUixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBTeW5jQXV0aENvbmZpZ3VyYXRpb24sIEFwcFN5bmNBdXRoQ29uZmlndXJhdGlvbkVudHJ5LCBTeW50aFBhcmFtZXRlcnMgfSBmcm9tICdAYXdzLWFtcGxpZnkvZ3JhcGhxbC10cmFuc2Zvcm1lci1pbnRlcmZhY2VzJztcbmltcG9ydCB7IENmbkdyYXBoUUxBcGkgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXBwc3luYyc7XG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IElSb2xlLCBTZXJ2aWNlUHJpbmNpcGFsIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQge1xuICBBdXRob3JpemF0aW9uTW9kZXMsXG4gIEFwaUtleUF1dGhvcml6YXRpb25Db25maWcsXG4gIExhbWJkYUF1dGhvcml6YXRpb25Db25maWcsXG4gIE9JRENBdXRob3JpemF0aW9uQ29uZmlnLFxuICBVc2VyUG9vbEF1dGhvcml6YXRpb25Db25maWcsXG59IGZyb20gJy4uL3R5cGVzJztcblxudHlwZSBBdXRob3JpemF0aW9uQ29uZmlnTW9kZSA9XG4gIHwgeyB0eXBlOiAnQVdTX0lBTScgfVxuICB8IChVc2VyUG9vbEF1dGhvcml6YXRpb25Db25maWcgJiB7IHR5cGU6ICdBTUFaT05fQ09HTklUT19VU0VSX1BPT0xTJyB9KVxuICB8IChPSURDQXV0aG9yaXphdGlvbkNvbmZpZyAmIHsgdHlwZTogJ09QRU5JRF9DT05ORUNUJyB9KVxuICB8IChBcGlLZXlBdXRob3JpemF0aW9uQ29uZmlnICYgeyB0eXBlOiAnQVBJX0tFWScgfSlcbiAgfCAoTGFtYmRhQXV0aG9yaXphdGlvbkNvbmZpZyAmIHsgdHlwZTogJ0FXU19MQU1CREEnIH0pO1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVBdXRob3JpemF0aW9uTW9kZXMgPSAoYXV0aG9yaXphdGlvbk1vZGVzOiBBdXRob3JpemF0aW9uTW9kZXMpID0+IHtcbiAgY29uc3QgaGFzRGVwcmVjYXRlZElkZW50aXR5UG9vbFNldHRpbmdzID1cbiAgICBhdXRob3JpemF0aW9uTW9kZXMuaWFtQ29uZmlnPy5hdXRoZW50aWNhdGVkVXNlclJvbGUgfHxcbiAgICBhdXRob3JpemF0aW9uTW9kZXMuaWFtQ29uZmlnPy51bmF1dGhlbnRpY2F0ZWRVc2VyUm9sZSB8fFxuICAgIGF1dGhvcml6YXRpb25Nb2Rlcy5pYW1Db25maWc/LmlkZW50aXR5UG9vbElkO1xuICBjb25zdCBoYXNBbGxEZXByZWNhdGVkSWRlbnRpdHlQb29sU2V0dGluZ3MgPVxuICAgIGF1dGhvcml6YXRpb25Nb2Rlcy5pYW1Db25maWc/LmF1dGhlbnRpY2F0ZWRVc2VyUm9sZSAmJlxuICAgIGF1dGhvcml6YXRpb25Nb2Rlcy5pYW1Db25maWc/LnVuYXV0aGVudGljYXRlZFVzZXJSb2xlICYmXG4gICAgYXV0aG9yaXphdGlvbk1vZGVzLmlhbUNvbmZpZz8uaWRlbnRpdHlQb29sSWQ7XG4gIGNvbnN0IGhhc0RlcHJlY2F0ZWRTZXR0aW5ncyA9XG4gICAgYXV0aG9yaXphdGlvbk1vZGVzLmlhbUNvbmZpZz8uYXV0aGVudGljYXRlZFVzZXJSb2xlIHx8XG4gICAgYXV0aG9yaXphdGlvbk1vZGVzLmlhbUNvbmZpZz8udW5hdXRoZW50aWNhdGVkVXNlclJvbGUgfHxcbiAgICBhdXRob3JpemF0aW9uTW9kZXMuaWFtQ29uZmlnPy5pZGVudGl0eVBvb2xJZCB8fFxuICAgIGF1dGhvcml6YXRpb25Nb2Rlcy5pYW1Db25maWc/LmFsbG93TGlzdGVkUm9sZXMgfHxcbiAgICBhdXRob3JpemF0aW9uTW9kZXMuYWRtaW5Sb2xlcztcbiAgY29uc3QgaGFzVW5EZXByZWNhdGVkU2V0dGluZ3MgPVxuICAgIHR5cGVvZiBhdXRob3JpemF0aW9uTW9kZXMuaWFtQ29uZmlnPy5lbmFibGVJYW1BdXRob3JpemF0aW9uTW9kZSAhPT0gJ3VuZGVmaW5lZCcgfHwgYXV0aG9yaXphdGlvbk1vZGVzLmlkZW50aXR5UG9vbENvbmZpZztcblxuICBpZiAoaGFzRGVwcmVjYXRlZFNldHRpbmdzICYmIGhhc1VuRGVwcmVjYXRlZFNldHRpbmdzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJDYW5ub3QgdXNlIGRlcHJlY2F0ZWQgJ2F1dGhvcml6YXRpb25Nb2Rlcy5pYW1Db25maWcnIG9wdGlvbnMgd2l0aCAnYXV0aG9yaXphdGlvbk1vZGVzLmlkZW50aXR5UG9vbENvbmZpZydcIiArXG4gICAgICAgIFwiIG9yICdhdXRob3JpemF0aW9uTW9kZXMuaWFtQ29uZmlnLmVuYWJsZUlhbUF1dGhvcml6YXRpb25Nb2RlJ1wiLFxuICAgICk7XG4gIH1cblxuICBpZiAoaGFzRGVwcmVjYXRlZElkZW50aXR5UG9vbFNldHRpbmdzICYmICFoYXNBbGxEZXByZWNhdGVkSWRlbnRpdHlQb29sU2V0dGluZ3MpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcIidhdXRob3JpemF0aW9uTW9kZXMuaWFtQ29uZmlnLmF1dGhlbnRpY2F0ZWRVc2VyUm9sZScsICdhdXRob3JpemF0aW9uTW9kZXMuaWFtQ29uZmlnLnVuYXV0aGVudGljYXRlZFVzZXJSb2xlJyBhbmRcIiArXG4gICAgICAgIFwiICdhdXRob3JpemF0aW9uTW9kZXMuaWFtQ29uZmlnLmlkZW50aXR5UG9vbElkJyBtdXN0IGJlIHByb3ZpZGVkLlwiLFxuICAgICk7XG4gIH1cbn07XG5cbi8qKlxuICogQ29udmVydHMgYSBzaW5nbGUgYXV0aCBtb2RlIGNvbmZpZyBpbnRvIHRoZSBhbXBsaWZ5LWludGVybmFsIHJlcHJlc2VudGF0aW9uLlxuICogQHBhcmFtIGF1dGhNb2RlIHRoZSBhdXRoIG1vZGUgdG8gY29udmVydCBpbnRvIHRoZSBBcHBzeW5jIENESyByZXByZXNlbnRhdGlvbi5cbiAqL1xuY29uc3QgY29udmVydEF1dGhNb2RlVG9BdXRoUHJvdmlkZXIgPSAoYXV0aE1vZGU6IEF1dGhvcml6YXRpb25Db25maWdNb2RlKTogQXBwU3luY0F1dGhDb25maWd1cmF0aW9uRW50cnkgPT4ge1xuICBjb25zdCBhdXRoZW50aWNhdGlvblR5cGUgPSBhdXRoTW9kZS50eXBlO1xuICBzd2l0Y2ggKGF1dGhNb2RlLnR5cGUpIHtcbiAgICBjYXNlICdBUElfS0VZJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGF1dGhlbnRpY2F0aW9uVHlwZSxcbiAgICAgICAgYXBpS2V5Q29uZmlnOiB7XG4gICAgICAgICAgZGVzY3JpcHRpb246IGF1dGhNb2RlLmRlc2NyaXB0aW9uLFxuICAgICAgICAgIGFwaUtleUV4cGlyYXRpb25EYXlzOiBhdXRoTW9kZS5leHBpcmVzLnRvRGF5cygpLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICBjYXNlICdBV1NfSUFNJzpcbiAgICAgIHJldHVybiB7IGF1dGhlbnRpY2F0aW9uVHlwZSB9O1xuICAgIGNhc2UgJ0FNQVpPTl9DT0dOSVRPX1VTRVJfUE9PTFMnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYXV0aGVudGljYXRpb25UeXBlLFxuICAgICAgICB1c2VyUG9vbENvbmZpZzoge1xuICAgICAgICAgIHVzZXJQb29sSWQ6IGF1dGhNb2RlLnVzZXJQb29sLnVzZXJQb29sSWQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIGNhc2UgJ09QRU5JRF9DT05ORUNUJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGF1dGhlbnRpY2F0aW9uVHlwZSxcbiAgICAgICAgb3BlbklEQ29ubmVjdENvbmZpZzoge1xuICAgICAgICAgIG5hbWU6IGF1dGhNb2RlLm9pZGNQcm92aWRlck5hbWUsXG4gICAgICAgICAgaXNzdWVyVXJsOiBhdXRoTW9kZS5vaWRjSXNzdWVyVXJsLFxuICAgICAgICAgIGNsaWVudElkOiBhdXRoTW9kZS5jbGllbnRJZCxcbiAgICAgICAgICBpYXRUVEw6IGF1dGhNb2RlLnRva2VuRXhwaXJ5RnJvbUlzc3VlLnRvU2Vjb25kcygpLFxuICAgICAgICAgIGF1dGhUVEw6IGF1dGhNb2RlLnRva2VuRXhwaXJ5RnJvbUF1dGgudG9TZWNvbmRzKCksXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIGNhc2UgJ0FXU19MQU1CREEnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYXV0aGVudGljYXRpb25UeXBlLFxuICAgICAgICBsYW1iZGFBdXRob3JpemVyQ29uZmlnOiB7XG4gICAgICAgICAgbGFtYmRhQXJuOiBhdXRoTW9kZS5mdW5jdGlvbi5mdW5jdGlvbkFybixcbiAgICAgICAgICBsYW1iZGFGdW5jdGlvbjogYXV0aE1vZGUuZnVuY3Rpb24uZnVuY3Rpb25OYW1lLFxuICAgICAgICAgIHR0bFNlY29uZHM6IGF1dGhNb2RlLnR0bC50b1NlY29uZHMoKSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBBdXRoTW9kZSB0eXBlICR7YXV0aGVudGljYXRpb25UeXBlfSBlbmNvdW50ZXJlZC5gKTtcbiAgfVxufTtcblxuLyoqXG4gKiBHaXZlbiBhbiBhcHBzeW5jIGF1dGggY29uZmlndXJhdGlvbiwgY29udmVydCBpbnRvIGFwcHN5bmMgYXV0aCBwcm92aWRlciBzZXR1cC5cbiAqIEBwYXJhbSBhdXRoTW9kZXMgdGhlIGNvbmZpZyB0byB0cmFuc2Zvcm1cbiAqIEByZXR1cm5zIHRoZSBhcHBzeW5jIGNvbmZpZyBvYmplY3QuXG4gKi9cbmNvbnN0IGNvbnZlcnRBdXRoQ29uZmlnVG9BcHBTeW5jQXV0aCA9IChhdXRoTW9kZXM6IEF1dGhvcml6YXRpb25Nb2Rlcyk6IEFwcFN5bmNBdXRoQ29uZmlndXJhdGlvbiA9PiB7XG4gIC8vIENvbnZlcnQgYXV0aCBtb2RlcyBpbnRvIGFuIGFycmF5IG9mIGFwcHN5bmMgY29uZmlncywgYW5kIGluY2x1ZGUgdGhlIHR5cGUgc28gd2UgY2FuIHVzZSB0aGF0IGZvciBzd2l0Y2hpbmcgYW5kIHBhcnRpdGlvbmluZyBsYXRlci5cbiAgY29uc3QgYXV0aENvbmZpZyA9IFtcbiAgICBhdXRoTW9kZXMuYXBpS2V5Q29uZmlnID8geyB0eXBlOiAnQVBJX0tFWScsIC4uLmF1dGhNb2Rlcy5hcGlLZXlDb25maWcgfSA6IG51bGwsXG4gICAgYXV0aE1vZGVzLmxhbWJkYUNvbmZpZyA/IHsgdHlwZTogJ0FXU19MQU1CREEnLCAuLi5hdXRoTW9kZXMubGFtYmRhQ29uZmlnIH0gOiBudWxsLFxuICAgIGF1dGhNb2Rlcy5vaWRjQ29uZmlnID8geyB0eXBlOiAnT1BFTklEX0NPTk5FQ1QnLCAuLi5hdXRoTW9kZXMub2lkY0NvbmZpZyB9IDogbnVsbCxcbiAgICBhdXRoTW9kZXMudXNlclBvb2xDb25maWcgPyB7IHR5cGU6ICdBTUFaT05fQ09HTklUT19VU0VSX1BPT0xTJywgLi4uYXV0aE1vZGVzLnVzZXJQb29sQ29uZmlnIH0gOiBudWxsLFxuICAgIGF1dGhNb2Rlcy5pYW1Db25maWcgfHwgYXV0aE1vZGVzLmlkZW50aXR5UG9vbENvbmZpZyA/IHsgdHlwZTogJ0FXU19JQU0nIH0gOiBudWxsLFxuICBdLmZpbHRlcigobW9kZSkgPT4gbW9kZSkgYXMgQXV0aG9yaXphdGlvbkNvbmZpZ01vZGVbXTtcbiAgY29uc3QgYXV0aFByb3ZpZGVycyA9IGF1dGhDb25maWcubWFwKGNvbnZlcnRBdXRoTW9kZVRvQXV0aFByb3ZpZGVyKTtcblxuICAvLyBWYWxpZGF0ZSBpbnB1dHMgbWFrZSBzZW5zZSwgbmVlZHMgYXQgbGVhc3Qgb25lIG1vZGUsIGFuZCBhIGRlZmF1bHQgbW9kZSBpcyByZXF1aXJlZCBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgbW9kZXMuXG4gIGlmIChhdXRoUHJvdmlkZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQXQgbGVhc3Qgb25lIGF1dGggY29uZmlnIGlzIHJlcXVpcmVkLCBidXQgbm9uZSB3ZXJlIGZvdW5kLicpO1xuICB9XG4gIGlmIChhdXRoUHJvdmlkZXJzLmxlbmd0aCA+IDEgJiYgIWF1dGhNb2Rlcy5kZWZhdWx0QXV0aG9yaXphdGlvbk1vZGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0EgZGVmYXVsdEF1dGhvcml6YXRpb25Nb2RlIGlzIHJlcXVpcmVkIGlmIG11bHRpcGxlIGF1dGhvcml6YXRpb24gbW9kZXMgYXJlIGNvbmZpZ3VyZWQuJyk7XG4gIH1cblxuICAvLyBFbmFibGUgYXBwc3luYyB0byBpbnZva2UgYSBwcm92aWRlZCBsYW1iZGEgYXV0aG9yaXplciBmdW5jdGlvblxuICBhdXRoTW9kZXMubGFtYmRhQ29uZmlnPy5mdW5jdGlvbi5hZGRQZXJtaXNzaW9uKCdhcHBzeW5jLWF1dGgtaW52b2tlJywge1xuICAgIHByaW5jaXBhbDogbmV3IFNlcnZpY2VQcmluY2lwYWwoJ2FwcHN5bmMuYW1hem9uYXdzLmNvbScpLFxuICAgIGFjdGlvbjogJ2xhbWJkYTpJbnZva2VGdW5jdGlvbicsXG4gIH0pO1xuXG4gIC8vIEluIHRoZSBjYXNlIG9mIGEgc2luZ2xlIG1vZGUsIGRlZmF1bHRBdXRob3JpemF0aW9uTW9kZSBpcyBub3QgcmVxdWlyZWQsIGp1c3QgdXNlIHRoZSBwcm92aWRlZCB2YWx1ZS5cbiAgaWYgKGF1dGhQcm92aWRlcnMubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRlZmF1bHRBdXRoZW50aWNhdGlvbjogYXV0aFByb3ZpZGVyc1swXSxcbiAgICAgIGFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblByb3ZpZGVyczogW10sXG4gICAgfTtcbiAgfVxuXG4gIC8vIEZvciBtdWx0aS1hdXRoLCBwYXJ0aXRpb24gaW50byB0aGUgZGVmYXVsdE1vZGUgYW5kIG5vbi1kZWZhdWx0IG1vZGVzLlxuICByZXR1cm4ge1xuICAgIGRlZmF1bHRBdXRoZW50aWNhdGlvbjogYXV0aFByb3ZpZGVycy5maWx0ZXIoKHByb3ZpZGVyKSA9PiBwcm92aWRlci5hdXRoZW50aWNhdGlvblR5cGUgPT09IGF1dGhNb2Rlcy5kZWZhdWx0QXV0aG9yaXphdGlvbk1vZGUpWzBdLFxuICAgIGFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblByb3ZpZGVyczogYXV0aFByb3ZpZGVycy5maWx0ZXIoXG4gICAgICAocHJvdmlkZXIpID0+IHByb3ZpZGVyLmF1dGhlbnRpY2F0aW9uVHlwZSAhPT0gYXV0aE1vZGVzLmRlZmF1bHRBdXRob3JpemF0aW9uTW9kZSxcbiAgICApLFxuICB9O1xufTtcblxudHlwZSBBdXRoU3ludGhQYXJhbWV0ZXJzID0gUGljazxcbiAgU3ludGhQYXJhbWV0ZXJzLFxuICAndXNlclBvb2xJZCcgfCAnYXV0aGVudGljYXRlZFVzZXJSb2xlTmFtZScgfCAndW5hdXRoZW50aWNhdGVkVXNlclJvbGVOYW1lJyB8ICdpZGVudGl0eVBvb2xJZCcgfCAnYWRtaW5Sb2xlcycgfCAnZW5hYmxlSWFtQWNjZXNzJ1xuPjtcblxuaW50ZXJmYWNlIEF1dGhDb25maWcge1xuICAvKipcbiAgICogdXNlZCBtYWlubHkgaW4gdGhlIGJlZm9yZSBzdGVwIHRvIHBhc3MgdGhlIGF1dGhDb25maWcgZnJvbSB0aGUgdHJhbnNmb3JtZXIgY29yZSBkb3duIHRvIHRoZSBkaXJlY3RpdmVcbiAgICovXG4gIGF1dGhDb25maWc/OiBBcHBTeW5jQXV0aENvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIFBhcmFtcyB0byBpbmNsdWRlIHRoZSB0cmFuc2Zvcm1lci5cbiAgICovXG4gIGF1dGhTeW50aFBhcmFtZXRlcnM6IEF1dGhTeW50aFBhcmFtZXRlcnM7XG59XG5cbi8qKlxuICogVHJhbnNmb3JtcyBhZGRpdGlvbmFsQXV0aGVudGljYXRpb25UeXBlcyBmb3Igc3RvcmFnZSBpbiBDRk4gb3V0cHV0XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRBZGRpdGlvbmFsQXV0aGVudGljYXRpb25UeXBlcyA9IChjZm5HcmFwaHFsQXBpOiBDZm5HcmFwaFFMQXBpKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKCFpc0FycmF5KGNmbkdyYXBocWxBcGkuYWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJzKSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4gKGNmbkdyYXBocWxBcGkuYWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJzIGFzIENmbkdyYXBoUUxBcGkuQWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJQcm9wZXJ0eVtdKVxuICAgIC5tYXAoXG4gICAgICAoYWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXI6IENmbkdyYXBoUUxBcGkuQWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJQcm9wZXJ0eSkgPT5cbiAgICAgICAgYWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXIuYXV0aGVudGljYXRpb25UeXBlLFxuICAgIClcbiAgICAuam9pbignLCcpO1xufTtcblxuLyoqXG4gKiBDb252ZXJ0IHRoZSBsaXN0IG9mIGF1dGggbW9kZXMgaW50byB0aGUgbmVjZXNzYXJ5IGZsYWdzIGFuZCBwYXJhbXMgKGVmZmVjdGl2ZWx5IGEgcmVkdWNlciBvbiB0aGUgcnVsZSBsaXN0KVxuICogQHBhcmFtIGF1dGhNb2RlcyB0aGUgbGlzdCBvZiBhdXRoIG1vZGVzIGNvbmZpZ3VyZWQgb24gdGhlIEFQSS5cbiAqIEByZXR1cm5zIHRoZSBBdXRoQ29uZmlnIHdoaWNoIHRoZSBBdXRoVHJhbnNmb3JtZXIgbmVlZHMgYXMgaW5wdXQuXG4gKi9cbmV4cG9ydCBjb25zdCBjb252ZXJ0QXV0aG9yaXphdGlvbk1vZGVzVG9UcmFuc2Zvcm1lckF1dGhDb25maWcgPSAoYXV0aE1vZGVzOiBBdXRob3JpemF0aW9uTW9kZXMpOiBBdXRoQ29uZmlnID0+ICh7XG4gIGF1dGhDb25maWc6IGNvbnZlcnRBdXRoQ29uZmlnVG9BcHBTeW5jQXV0aChhdXRoTW9kZXMpLFxuICBhdXRoU3ludGhQYXJhbWV0ZXJzOiBnZXRTeW50aFBhcmFtZXRlcnMoYXV0aE1vZGVzKSxcbn0pO1xuXG4vKipcbiAqIE1lcmdlIGlhbUNvbmZpZyBhbGxvd0xpc3RlZFJvbGVzIHdpdGggZGVwcmVjYXRlZCBhZG1pblJvbGVzIHByb3BlcnR5LCBjb252ZXJ0aW5nIHRvIHN0cmluZ3MuXG4gKiBAcGFyYW0gYXV0aE1vZGVzIHRoZSBhdXRoIG1vZGVzIHByb3ZpZGVkIHRvIHRoZSBjb25zdHJ1Y3QuXG4gKiBAcmV0dXJucyB0aGUgbGlzdCBvZiBhZG1pbiByb2xlcyBhcyBzdHJpbmdzIHRvIHBhc3MgaW50byB0aGUgdHJhbnNmb3JtZXJcbiAqL1xuY29uc3QgZ2V0QWxsb3dMaXN0ZWRSb2xlcyA9IChhdXRoTW9kZXM6IEF1dGhvcml6YXRpb25Nb2Rlcyk6IHN0cmluZ1tdID0+XG4gIFsuLi4oYXV0aE1vZGVzPy5pYW1Db25maWc/LmFsbG93TGlzdGVkUm9sZXMgPz8gW10pLCAuLi4oYXV0aE1vZGVzLmFkbWluUm9sZXMgPz8gW10pXS5tYXAoKHJvbGVPclJvbGVOYW1lOiBJUm9sZSB8IHN0cmluZykgPT4ge1xuICAgIGlmICh0eXBlb2Ygcm9sZU9yUm9sZU5hbWUgPT09ICdzdHJpbmcnIHx8IHJvbGVPclJvbGVOYW1lIGluc3RhbmNlb2YgU3RyaW5nKSB7XG4gICAgICByZXR1cm4gcm9sZU9yUm9sZU5hbWUgYXMgc3RyaW5nO1xuICAgIH1cbiAgICByZXR1cm4gcm9sZU9yUm9sZU5hbWUucm9sZU5hbWU7XG4gIH0pO1xuXG4vKipcbiAqIFRyYW5zZm9ybSB0aGUgYXV0aG9yaXphdGlvbiBjb25maWcgaW50byB0aGUgdHJhbnNmb3JtZXIgc3ludGggcGFyYW1ldGVycyBwZXJ0YWluaW5nIHRvIGF1dGguXG4gKiBAcGFyYW0gYXV0aE1vZGVzIHRoZSBhdXRoIG1vZGVzIHByb3ZpZGVkIHRvIHRoZSBjb25zdHJ1Y3QuXG4gKiBAcmV0dXJucyBhIHJlY29yZCBvZiBwYXJhbXMgdG8gYmUgY29uc3VtZWQgYnkgdGhlIHRyYW5zZm9ybWVyLlxuICovXG5jb25zdCBnZXRTeW50aFBhcmFtZXRlcnMgPSAoYXV0aE1vZGVzOiBBdXRob3JpemF0aW9uTW9kZXMpOiBBdXRoU3ludGhQYXJhbWV0ZXJzID0+ICh7XG4gIGFkbWluUm9sZXM6IGdldEFsbG93TGlzdGVkUm9sZXMoYXV0aE1vZGVzKSxcbiAgaWRlbnRpdHlQb29sSWQ6IGF1dGhNb2Rlcy5pZGVudGl0eVBvb2xDb25maWc/LmlkZW50aXR5UG9vbElkID8/IGF1dGhNb2Rlcy5pYW1Db25maWc/LmlkZW50aXR5UG9vbElkLFxuICBlbmFibGVJYW1BY2Nlc3M6IGF1dGhNb2Rlcy5pYW1Db25maWc/LmVuYWJsZUlhbUF1dGhvcml6YXRpb25Nb2RlLFxuICAuLi4oYXV0aE1vZGVzLnVzZXJQb29sQ29uZmlnID8geyB1c2VyUG9vbElkOiBhdXRoTW9kZXMudXNlclBvb2xDb25maWcudXNlclBvb2wudXNlclBvb2xJZCB9IDoge30pLFxuICAuLi4oYXV0aE1vZGVzPy5pZGVudGl0eVBvb2xDb25maWdcbiAgICA/IHtcbiAgICAgICAgYXV0aGVudGljYXRlZFVzZXJSb2xlTmFtZTogYXV0aE1vZGVzLmlkZW50aXR5UG9vbENvbmZpZy5hdXRoZW50aWNhdGVkVXNlclJvbGUucm9sZU5hbWUsXG4gICAgICAgIHVuYXV0aGVudGljYXRlZFVzZXJSb2xlTmFtZTogYXV0aE1vZGVzLmlkZW50aXR5UG9vbENvbmZpZy51bmF1dGhlbnRpY2F0ZWRVc2VyUm9sZS5yb2xlTmFtZSxcbiAgICAgIH1cbiAgICA6IHt9KSxcbiAgLi4uKGF1dGhNb2Rlcz8uaWFtQ29uZmlnICYmIGF1dGhNb2Rlcz8uaWFtQ29uZmlnLmF1dGhlbnRpY2F0ZWRVc2VyUm9sZSAmJiBhdXRoTW9kZXM/LmlhbUNvbmZpZy51bmF1dGhlbnRpY2F0ZWRVc2VyUm9sZVxuICAgID8ge1xuICAgICAgICBhdXRoZW50aWNhdGVkVXNlclJvbGVOYW1lOiBhdXRoTW9kZXMuaWFtQ29uZmlnLmF1dGhlbnRpY2F0ZWRVc2VyUm9sZT8ucm9sZU5hbWUsXG4gICAgICAgIHVuYXV0aGVudGljYXRlZFVzZXJSb2xlTmFtZTogYXV0aE1vZGVzLmlhbUNvbmZpZy51bmF1dGhlbnRpY2F0ZWRVc2VyUm9sZT8ucm9sZU5hbWUsXG4gICAgICB9XG4gICAgOiB7fSksXG59KTtcbiJdfQ==
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi1tb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcm5hbC9hdXRob3JpemF0aW9uLW1vZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLG1DQUFpQztBQUNqQyxpREFBOEQ7QUFnQjlEOzs7Ozs7Ozs7R0FTRztBQUNJLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxrQkFBc0MsRUFBUSxFQUFFO0lBQ3pGLE1BQU0sbUNBQW1DLEdBQ3ZDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxxQkFBcUI7UUFDbkQsa0JBQWtCLENBQUMsU0FBUyxFQUFFLHVCQUF1QjtRQUNyRCxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDO0lBQy9DLE1BQU0sb0NBQW9DLEdBQ3hDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxxQkFBcUI7UUFDbkQsa0JBQWtCLENBQUMsU0FBUyxFQUFFLHVCQUF1QjtRQUNyRCxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDO0lBQy9DLE1BQU0sd0JBQXdCLEdBQzVCLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxxQkFBcUI7UUFDbkQsa0JBQWtCLENBQUMsU0FBUyxFQUFFLHVCQUF1QjtRQUNyRCxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsY0FBYztRQUM1QyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCO1FBQzlDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztJQUNoQyxNQUFNLDBCQUEwQixHQUM5QixPQUFPLGtCQUFrQixDQUFDLFNBQVMsRUFBRSwwQkFBMEIsS0FBSyxXQUFXLElBQUksa0JBQWtCLENBQUMsa0JBQWtCLENBQUM7SUFFM0gsSUFBSSx3QkFBd0IsSUFBSSwwQkFBMEIsRUFBRTtRQUMxRCxNQUFNLElBQUksS0FBSyxDQUNiLHNEQUFzRDtZQUNwRCxpSUFBaUksQ0FDcEksQ0FBQztLQUNIO0lBRUQsSUFBSSxtQ0FBbUMsSUFBSSxDQUFDLG9DQUFvQyxFQUFF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QUFDLGtCQUFrQixFQUFFLGNBQWMsSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFLGNBQWM7SUFDbkcsZUFBZSxFQUFFLFNBQVMsQ0FBQyxTQUFTLEVBQUUsMEJBQTBCO0lBQ2hFLEdBQUcsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2pHLEdBQUcsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCO1FBQy9CLENBQUMsQ0FBQztZQUNFLHlCQUF5QixFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRO1lBQ3RGLDJCQUEyQixFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRO1NBQzNGO1FBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNQLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxJQUFJLFNBQVMsRUFBRSxTQUFTLENBQUMscUJBQXFCLElBQUksU0FBUyxFQUFFLFNBQVMsQ0FBQyx1QkFBdUI7UUFDcEgsQ0FBQyxDQUFDO1lBQ0UseUJBQXlCLEVBQUUsU0FBUyxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxRQUFRO1lBQzlFLDJCQUEyQixFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsdUJBQXVCLEVBQUUsUUFBUTtTQUNuRjtRQUNILENBQUMsQ0FBQyxFQUFFLENBQUM7Q0FDUixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBTeW5jQXV0aENvbmZpZ3VyYXRpb24sIEFwcFN5bmNBdXRoQ29uZmlndXJhdGlvbkVudHJ5LCBTeW50aFBhcmFtZXRlcnMgfSBmcm9tICdAYXdzLWFtcGxpZnkvZ3JhcGhxbC10cmFuc2Zvcm1lci1pbnRlcmZhY2VzJztcbmltcG9ydCB7IENmbkdyYXBoUUxBcGkgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXBwc3luYyc7XG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IElSb2xlLCBTZXJ2aWNlUHJpbmNpcGFsIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQge1xuICBBdXRob3JpemF0aW9uTW9kZXMsXG4gIEFwaUtleUF1dGhvcml6YXRpb25Db25maWcsXG4gIExhbWJkYUF1dGhvcml6YXRpb25Db25maWcsXG4gIE9JRENBdXRob3JpemF0aW9uQ29uZmlnLFxuICBVc2VyUG9vbEF1dGhvcml6YXRpb25Db25maWcsXG59IGZyb20gJy4uL3R5cGVzJztcblxudHlwZSBBdXRob3JpemF0aW9uQ29uZmlnTW9kZSA9XG4gIHwgeyB0eXBlOiAnQVdTX0lBTScgfVxuICB8IChVc2VyUG9vbEF1dGhvcml6YXRpb25Db25maWcgJiB7IHR5cGU6ICdBTUFaT05fQ09HTklUT19VU0VSX1BPT0xTJyB9KVxuICB8IChPSURDQXV0aG9yaXphdGlvbkNvbmZpZyAmIHsgdHlwZTogJ09QRU5JRF9DT05ORUNUJyB9KVxuICB8IChBcGlLZXlBdXRob3JpemF0aW9uQ29uZmlnICYgeyB0eXBlOiAnQVBJX0tFWScgfSlcbiAgfCAoTGFtYmRhQXV0aG9yaXphdGlvbkNvbmZpZyAmIHsgdHlwZTogJ0FXU19MQU1CREEnIH0pO1xuXG4vKipcbiAqIFZhbGlkYXRlcyBhdXRob3JpemF0aW9uIG1vZGVzLlxuICpcbiAqIFJ1bGVzOlxuICogMS4gVmFsaWRhdGVzIHRoYXQgZGVwcmVjYXRlZCBzZXR0aW5ncyAoJ2lhbUNvbmZpZy5hdXRoZW50aWNhdGVkVXNlclJvbGUnLCAnaWFtQ29uZmlnLnVuYXV0aGVudGljYXRlZFVzZXJSb2xlJyxcbiAqICAgICdpYW1Db25maWcuaWRlbnRpdHlQb29sSWQnLCAnaWFtQ29uZmlnLmFsbG93TGlzdGVkUm9sZXMnIGFuZCAnYWRtaW5Sb2xlcycpIGFyZSBtdXR1YWxseSBleGNsdXNpdmUgd2l0aCBuZXcgc2V0dGluZ3MgdGhhdFxuICogICAgcmVwbGFjZWQgdGhlbSAoJ2lhbUNvbmZpZy5lbmFibGVJYW1BdXRob3JpemF0aW9uTW9kZScgYW5kIGFueSBvZiAnYXV0aG9yaXphdGlvbk1vZGVzLmlkZW50aXR5UG9vbENvbmZpZycpXG4gKiAyLiBJZiBkZXByZWNhdGVkIGlkZW50aXR5IHBvb2wgc2V0dGluZ3MgYXJlIHVzZWQgKCdpYW1Db25maWcuYXV0aGVudGljYXRlZFVzZXJSb2xlJywgJ2lhbUNvbmZpZy51bmF1dGhlbnRpY2F0ZWRVc2VyUm9sZScsXG4gKiAgICBhbmQgJ2lhbUNvbmZpZy5pZGVudGl0eVBvb2xJZCcpIHZhbGlkYXRlIHRoYXQgYWxsIGFyZSBwcm92aWRlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlQXV0aG9yaXphdGlvbk1vZGVzID0gKGF1dGhvcml6YXRpb25Nb2RlczogQXV0aG9yaXphdGlvbk1vZGVzKTogdm9pZCA9PiB7XG4gIGNvbnN0IGhhc0FueURlcHJlY2F0ZWRJZGVudGl0eVBvb2xTZXR0aW5nID1cbiAgICBhdXRob3JpemF0aW9uTW9kZXMuaWFtQ29uZmlnPy5hdXRoZW50aWNhdGVkVXNlclJvbGUgfHxcbiAgICBhdXRob3JpemF0aW9uTW9kZXMuaWFtQ29uZmlnPy51bmF1dGhlbnRpY2F0ZWRVc2VyUm9sZSB8fFxuICAgIGF1dGhvcml6YXRpb25Nb2Rlcy5pYW1Db25maWc/LmlkZW50aXR5UG9vbElkO1xuICBjb25zdCBoYXNBbGxEZXByZWNhdGVkSWRlbnRpdHlQb29sU2V0dGluZ3MgPVxuICAgIGF1dGhvcml6YXRpb25Nb2Rlcy5pYW1Db25maWc/LmF1dGhlbnRpY2F0ZWRVc2VyUm9sZSAmJlxuICAgIGF1dGhvcml6YXRpb25Nb2Rlcy5pYW1Db25maWc/LnVuYXV0aGVudGljYXRlZFVzZXJSb2xlICYmXG4gICAgYXV0aG9yaXphdGlvbk1vZGVzLmlhbUNvbmZpZz8uaWRlbnRpdHlQb29sSWQ7XG4gIGNvbnN0IGhhc0RlcHJlY2F0ZWRJYW1TZXR0aW5ncyA9XG4gICAgYXV0aG9yaXphdGlvbk1vZGVzLmlhbUNvbmZpZz8uYXV0aGVudGljYXRlZFVzZXJSb2xlIHx8XG4gICAgYXV0aG9yaXphdGlvbk1vZGVzLmlhbUNvbmZpZz8udW5hdXRoZW50aWNhdGVkVXNlclJvbGUgfHxcbiAgICBhdXRob3JpemF0aW9uTW9kZXMuaWFtQ29uZmlnPy5pZGVudGl0eVBvb2xJZCB8fFxuICAgIGF1dGhvcml6YXRpb25Nb2Rlcy5pYW1Db25maWc/LmFsbG93TGlzdGVkUm9sZXMgfHxcbiAgICBhdXRob3JpemF0aW9uTW9kZXMuYWRtaW5Sb2xlcztcbiAgY29uc3QgaGFzVW5EZXByZWNhdGVkSWFtU2V0dGluZ3MgPVxuICAgIHR5cGVvZiBhdXRob3JpemF0aW9uTW9kZXMuaWFtQ29uZmlnPy5lbmFibGVJYW1BdXRob3JpemF0aW9uTW9kZSAhPT0gJ3VuZGVmaW5lZCcgfHwgYXV0aG9yaXphdGlvbk1vZGVzLmlkZW50aXR5UG9vbENvbmZpZztcblxuICBpZiAoaGFzRGVwcmVjYXRlZElhbVNldHRpbmdzICYmIGhhc1VuRGVwcmVjYXRlZElhbVNldHRpbmdzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0ludmFsaWQgYXV0aG9yaXphdGlvbiBtb2RlcyBjb25maWd1cmF0aW9uIHByb3ZpZGVkLiAnICtcbiAgICAgICAgXCJEZXByZWNhdGVkIElBTSBjb25maWd1cmF0aW9uIGNhbm5vdCBiZSB1c2VkIHdpdGggaWRlbnRpdHkgcG9vbCBjb25maWd1cmF0aW9uIG9yIHdoZW4gJ2VuYWJsZUlhbUF1dGhvcml6YXRpb25Nb2RlJyBpcyBzcGVjaWZpZWQuXCIsXG4gICAgKTtcbiAgfVxuXG4gIGlmIChoYXNBbnlEZXByZWNhdGVkSWRlbnRpdHlQb29sU2V0dGluZyAmJiAhaGFzQWxsRGVwcmVjYXRlZElkZW50aXR5UG9vbFNldHRpbmdzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCInYXV0aG9yaXphdGlvbk1vZGVzLmlhbUNvbmZpZy5hdXRoZW50aWNhdGVkVXNlclJvbGUnLCAnYXV0aG9yaXphdGlvbk1vZGVzLmlhbUNvbmZpZy51bmF1dGhlbnRpY2F0ZWRVc2VyUm9sZScgYW5kXCIgK1xuICAgICAgICBcIiAnYXV0aG9yaXphdGlvbk1vZGVzLmlhbUNvbmZpZy5pZGVudGl0eVBvb2xJZCcgbXVzdCBiZSBwcm92aWRlZC5cIixcbiAgICApO1xuICB9XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGEgc2luZ2xlIGF1dGggbW9kZSBjb25maWcgaW50byB0aGUgYW1wbGlmeS1pbnRlcm5hbCByZXByZXNlbnRhdGlvbi5cbiAqIEBwYXJhbSBhdXRoTW9kZSB0aGUgYXV0aCBtb2RlIHRvIGNvbnZlcnQgaW50byB0aGUgQXBwc3luYyBDREsgcmVwcmVzZW50YXRpb24uXG4gKi9cbmNvbnN0IGNvbnZlcnRBdXRoTW9kZVRvQXV0aFByb3ZpZGVyID0gKGF1dGhNb2RlOiBBdXRob3JpemF0aW9uQ29uZmlnTW9kZSk6IEFwcFN5bmNBdXRoQ29uZmlndXJhdGlvbkVudHJ5ID0+IHtcbiAgY29uc3QgYXV0aGVudGljYXRpb25UeXBlID0gYXV0aE1vZGUudHlwZTtcbiAgc3dpdGNoIChhdXRoTW9kZS50eXBlKSB7XG4gICAgY2FzZSAnQVBJX0tFWSc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhdXRoZW50aWNhdGlvblR5cGUsXG4gICAgICAgIGFwaUtleUNvbmZpZzoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiBhdXRoTW9kZS5kZXNjcmlwdGlvbixcbiAgICAgICAgICBhcGlLZXlFeHBpcmF0aW9uRGF5czogYXV0aE1vZGUuZXhwaXJlcy50b0RheXMoKSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgY2FzZSAnQVdTX0lBTSc6XG4gICAgICByZXR1cm4geyBhdXRoZW50aWNhdGlvblR5cGUgfTtcbiAgICBjYXNlICdBTUFaT05fQ09HTklUT19VU0VSX1BPT0xTJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGF1dGhlbnRpY2F0aW9uVHlwZSxcbiAgICAgICAgdXNlclBvb2xDb25maWc6IHtcbiAgICAgICAgICB1c2VyUG9vbElkOiBhdXRoTW9kZS51c2VyUG9vbC51c2VyUG9vbElkLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICBjYXNlICdPUEVOSURfQ09OTkVDVCc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhdXRoZW50aWNhdGlvblR5cGUsXG4gICAgICAgIG9wZW5JRENvbm5lY3RDb25maWc6IHtcbiAgICAgICAgICBuYW1lOiBhdXRoTW9kZS5vaWRjUHJvdmlkZXJOYW1lLFxuICAgICAgICAgIGlzc3VlclVybDogYXV0aE1vZGUub2lkY0lzc3VlclVybCxcbiAgICAgICAgICBjbGllbnRJZDogYXV0aE1vZGUuY2xpZW50SWQsXG4gICAgICAgICAgaWF0VFRMOiBhdXRoTW9kZS50b2tlbkV4cGlyeUZyb21Jc3N1ZS50b1NlY29uZHMoKSxcbiAgICAgICAgICBhdXRoVFRMOiBhdXRoTW9kZS50b2tlbkV4cGlyeUZyb21BdXRoLnRvU2Vjb25kcygpLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICBjYXNlICdBV1NfTEFNQkRBJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGF1dGhlbnRpY2F0aW9uVHlwZSxcbiAgICAgICAgbGFtYmRhQXV0aG9yaXplckNvbmZpZzoge1xuICAgICAgICAgIGxhbWJkYUFybjogYXV0aE1vZGUuZnVuY3Rpb24uZnVuY3Rpb25Bcm4sXG4gICAgICAgICAgbGFtYmRhRnVuY3Rpb246IGF1dGhNb2RlLmZ1bmN0aW9uLmZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICB0dGxTZWNvbmRzOiBhdXRoTW9kZS50dGwudG9TZWNvbmRzKCksXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgQXV0aE1vZGUgdHlwZSAke2F1dGhlbnRpY2F0aW9uVHlwZX0gZW5jb3VudGVyZWQuYCk7XG4gIH1cbn07XG5cbi8qKlxuICogR2l2ZW4gYW4gYXBwc3luYyBhdXRoIGNvbmZpZ3VyYXRpb24sIGNvbnZlcnQgaW50byBhcHBzeW5jIGF1dGggcHJvdmlkZXIgc2V0dXAuXG4gKiBAcGFyYW0gYXV0aE1vZGVzIHRoZSBjb25maWcgdG8gdHJhbnNmb3JtXG4gKiBAcmV0dXJucyB0aGUgYXBwc3luYyBjb25maWcgb2JqZWN0LlxuICovXG5jb25zdCBjb252ZXJ0QXV0aENvbmZpZ1RvQXBwU3luY0F1dGggPSAoYXV0aE1vZGVzOiBBdXRob3JpemF0aW9uTW9kZXMpOiBBcHBTeW5jQXV0aENvbmZpZ3VyYXRpb24gPT4ge1xuICAvLyBDb252ZXJ0IGF1dGggbW9kZXMgaW50byBhbiBhcnJheSBvZiBhcHBzeW5jIGNvbmZpZ3MsIGFuZCBpbmNsdWRlIHRoZSB0eXBlIHNvIHdlIGNhbiB1c2UgdGhhdCBmb3Igc3dpdGNoaW5nIGFuZCBwYXJ0aXRpb25pbmcgbGF0ZXIuXG4gIGNvbnN0IGF1dGhDb25maWcgPSBbXG4gICAgYXV0aE1vZGVzLmFwaUtleUNvbmZpZyA/IHsgdHlwZTogJ0FQSV9LRVknLCAuLi5hdXRoTW9kZXMuYXBpS2V5Q29uZmlnIH0gOiBudWxsLFxuICAgIGF1dGhNb2Rlcy5sYW1iZGFDb25maWcgPyB7IHR5cGU6ICdBV1NfTEFNQkRBJywgLi4uYXV0aE1vZGVzLmxhbWJkYUNvbmZpZyB9IDogbnVsbCxcbiAgICBhdXRoTW9kZXMub2lkY0NvbmZpZyA/IHsgdHlwZTogJ09QRU5JRF9DT05ORUNUJywgLi4uYXV0aE1vZGVzLm9pZGNDb25maWcgfSA6IG51bGwsXG4gICAgYXV0aE1vZGVzLnVzZXJQb29sQ29uZmlnID8geyB0eXBlOiAnQU1BWk9OX0NPR05JVE9fVVNFUl9QT09MUycsIC4uLmF1dGhNb2Rlcy51c2VyUG9vbENvbmZpZyB9IDogbnVsbCxcbiAgICBhdXRoTW9kZXMuaWFtQ29uZmlnIHx8IGF1dGhNb2Rlcy5pZGVudGl0eVBvb2xDb25maWcgPyB7IHR5cGU6ICdBV1NfSUFNJyB9IDogbnVsbCxcbiAgXS5maWx0ZXIoKG1vZGUpID0+IG1vZGUpIGFzIEF1dGhvcml6YXRpb25Db25maWdNb2RlW107XG4gIGNvbnN0IGF1dGhQcm92aWRlcnMgPSBhdXRoQ29uZmlnLm1hcChjb252ZXJ0QXV0aE1vZGVUb0F1dGhQcm92aWRlcik7XG5cbiAgLy8gVmFsaWRhdGUgaW5wdXRzIG1ha2Ugc2Vuc2UsIG5lZWRzIGF0IGxlYXN0IG9uZSBtb2RlLCBhbmQgYSBkZWZhdWx0IG1vZGUgaXMgcmVxdWlyZWQgaWYgdGhlcmUgYXJlIG11bHRpcGxlIG1vZGVzLlxuICBpZiAoYXV0aFByb3ZpZGVycy5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0IGxlYXN0IG9uZSBhdXRoIGNvbmZpZyBpcyByZXF1aXJlZCwgYnV0IG5vbmUgd2VyZSBmb3VuZC4nKTtcbiAgfVxuICBpZiAoYXV0aFByb3ZpZGVycy5sZW5ndGggPiAxICYmICFhdXRoTW9kZXMuZGVmYXVsdEF1dGhvcml6YXRpb25Nb2RlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdBIGRlZmF1bHRBdXRob3JpemF0aW9uTW9kZSBpcyByZXF1aXJlZCBpZiBtdWx0aXBsZSBhdXRob3JpemF0aW9uIG1vZGVzIGFyZSBjb25maWd1cmVkLicpO1xuICB9XG5cbiAgLy8gRW5hYmxlIGFwcHN5bmMgdG8gaW52b2tlIGEgcHJvdmlkZWQgbGFtYmRhIGF1dGhvcml6ZXIgZnVuY3Rpb25cbiAgYXV0aE1vZGVzLmxhbWJkYUNvbmZpZz8uZnVuY3Rpb24uYWRkUGVybWlzc2lvbignYXBwc3luYy1hdXRoLWludm9rZScsIHtcbiAgICBwcmluY2lwYWw6IG5ldyBTZXJ2aWNlUHJpbmNpcGFsKCdhcHBzeW5jLmFtYXpvbmF3cy5jb20nKSxcbiAgICBhY3Rpb246ICdsYW1iZGE6SW52b2tlRnVuY3Rpb24nLFxuICB9KTtcblxuICAvLyBJbiB0aGUgY2FzZSBvZiBhIHNpbmdsZSBtb2RlLCBkZWZhdWx0QXV0aG9yaXphdGlvbk1vZGUgaXMgbm90IHJlcXVpcmVkLCBqdXN0IHVzZSB0aGUgcHJvdmlkZWQgdmFsdWUuXG4gIGlmIChhdXRoUHJvdmlkZXJzLmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiB7XG4gICAgICBkZWZhdWx0QXV0aGVudGljYXRpb246IGF1dGhQcm92aWRlcnNbMF0sXG4gICAgICBhZGRpdGlvbmFsQXV0aGVudGljYXRpb25Qcm92aWRlcnM6IFtdLFxuICAgIH07XG4gIH1cblxuICAvLyBGb3IgbXVsdGktYXV0aCwgcGFydGl0aW9uIGludG8gdGhlIGRlZmF1bHRNb2RlIGFuZCBub24tZGVmYXVsdCBtb2Rlcy5cbiAgcmV0dXJuIHtcbiAgICBkZWZhdWx0QXV0aGVudGljYXRpb246IGF1dGhQcm92aWRlcnMuZmlsdGVyKChwcm92aWRlcikgPT4gcHJvdmlkZXIuYXV0aGVudGljYXRpb25UeXBlID09PSBhdXRoTW9kZXMuZGVmYXVsdEF1dGhvcml6YXRpb25Nb2RlKVswXSxcbiAgICBhZGRpdGlvbmFsQXV0aGVudGljYXRpb25Qcm92aWRlcnM6IGF1dGhQcm92aWRlcnMuZmlsdGVyKFxuICAgICAgKHByb3ZpZGVyKSA9PiBwcm92aWRlci5hdXRoZW50aWNhdGlvblR5cGUgIT09IGF1dGhNb2Rlcy5kZWZhdWx0QXV0aG9yaXphdGlvbk1vZGUsXG4gICAgKSxcbiAgfTtcbn07XG5cbnR5cGUgQXV0aFN5bnRoUGFyYW1ldGVycyA9IFBpY2s8XG4gIFN5bnRoUGFyYW1ldGVycyxcbiAgJ3VzZXJQb29sSWQnIHwgJ2F1dGhlbnRpY2F0ZWRVc2VyUm9sZU5hbWUnIHwgJ3VuYXV0aGVudGljYXRlZFVzZXJSb2xlTmFtZScgfCAnaWRlbnRpdHlQb29sSWQnIHwgJ2FkbWluUm9sZXMnIHwgJ2VuYWJsZUlhbUFjY2Vzcydcbj47XG5cbmludGVyZmFjZSBBdXRoQ29uZmlnIHtcbiAgLyoqXG4gICAqIHVzZWQgbWFpbmx5IGluIHRoZSBiZWZvcmUgc3RlcCB0byBwYXNzIHRoZSBhdXRoQ29uZmlnIGZyb20gdGhlIHRyYW5zZm9ybWVyIGNvcmUgZG93biB0byB0aGUgZGlyZWN0aXZlXG4gICAqL1xuICBhdXRoQ29uZmlnPzogQXBwU3luY0F1dGhDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBQYXJhbXMgdG8gaW5jbHVkZSB0aGUgdHJhbnNmb3JtZXIuXG4gICAqL1xuICBhdXRoU3ludGhQYXJhbWV0ZXJzOiBBdXRoU3ludGhQYXJhbWV0ZXJzO1xufVxuXG4vKipcbiAqIFRyYW5zZm9ybXMgYWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uVHlwZXMgZm9yIHN0b3JhZ2UgaW4gQ0ZOIG91dHB1dFxuICovXG5leHBvcnQgY29uc3QgZ2V0QWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uVHlwZXMgPSAoY2ZuR3JhcGhxbEFwaTogQ2ZuR3JhcGhRTEFwaSk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmICghaXNBcnJheShjZm5HcmFwaHFsQXBpLmFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblByb3ZpZGVycykpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIChjZm5HcmFwaHFsQXBpLmFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblByb3ZpZGVycyBhcyBDZm5HcmFwaFFMQXBpLkFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblByb3ZpZGVyUHJvcGVydHlbXSlcbiAgICAubWFwKFxuICAgICAgKGFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblByb3ZpZGVyOiBDZm5HcmFwaFFMQXBpLkFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblByb3ZpZGVyUHJvcGVydHkpID0+XG4gICAgICAgIGFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblByb3ZpZGVyLmF1dGhlbnRpY2F0aW9uVHlwZSxcbiAgICApXG4gICAgLmpvaW4oJywnKTtcbn07XG5cbi8qKlxuICogQ29udmVydCB0aGUgbGlzdCBvZiBhdXRoIG1vZGVzIGludG8gdGhlIG5lY2Vzc2FyeSBmbGFncyBhbmQgcGFyYW1zIChlZmZlY3RpdmVseSBhIHJlZHVjZXIgb24gdGhlIHJ1bGUgbGlzdClcbiAqIEBwYXJhbSBhdXRoTW9kZXMgdGhlIGxpc3Qgb2YgYXV0aCBtb2RlcyBjb25maWd1cmVkIG9uIHRoZSBBUEkuXG4gKiBAcmV0dXJucyB0aGUgQXV0aENvbmZpZyB3aGljaCB0aGUgQXV0aFRyYW5zZm9ybWVyIG5lZWRzIGFzIGlucHV0LlxuICovXG5leHBvcnQgY29uc3QgY29udmVydEF1dGhvcml6YXRpb25Nb2Rlc1RvVHJhbnNmb3JtZXJBdXRoQ29uZmlnID0gKGF1dGhNb2RlczogQXV0aG9yaXphdGlvbk1vZGVzKTogQXV0aENvbmZpZyA9PiAoe1xuICBhdXRoQ29uZmlnOiBjb252ZXJ0QXV0aENvbmZpZ1RvQXBwU3luY0F1dGgoYXV0aE1vZGVzKSxcbiAgYXV0aFN5bnRoUGFyYW1ldGVyczogZ2V0U3ludGhQYXJhbWV0ZXJzKGF1dGhNb2RlcyksXG59KTtcblxuLyoqXG4gKiBNZXJnZSBpYW1Db25maWcgYWxsb3dMaXN0ZWRSb2xlcyB3aXRoIGRlcHJlY2F0ZWQgYWRtaW5Sb2xlcyBwcm9wZXJ0eSwgY29udmVydGluZyB0byBzdHJpbmdzLlxuICogQHBhcmFtIGF1dGhNb2RlcyB0aGUgYXV0aCBtb2RlcyBwcm92aWRlZCB0byB0aGUgY29uc3RydWN0LlxuICogQHJldHVybnMgdGhlIGxpc3Qgb2YgYWRtaW4gcm9sZXMgYXMgc3RyaW5ncyB0byBwYXNzIGludG8gdGhlIHRyYW5zZm9ybWVyXG4gKi9cbmNvbnN0IGdldEFsbG93TGlzdGVkUm9sZXMgPSAoYXV0aE1vZGVzOiBBdXRob3JpemF0aW9uTW9kZXMpOiBzdHJpbmdbXSA9PlxuICBbLi4uKGF1dGhNb2Rlcz8uaWFtQ29uZmlnPy5hbGxvd0xpc3RlZFJvbGVzID8/IFtdKSwgLi4uKGF1dGhNb2Rlcy5hZG1pblJvbGVzID8/IFtdKV0ubWFwKChyb2xlT3JSb2xlTmFtZTogSVJvbGUgfCBzdHJpbmcpID0+IHtcbiAgICBpZiAodHlwZW9mIHJvbGVPclJvbGVOYW1lID09PSAnc3RyaW5nJyB8fCByb2xlT3JSb2xlTmFtZSBpbnN0YW5jZW9mIFN0cmluZykge1xuICAgICAgcmV0dXJuIHJvbGVPclJvbGVOYW1lIGFzIHN0cmluZztcbiAgICB9XG4gICAgcmV0dXJuIHJvbGVPclJvbGVOYW1lLnJvbGVOYW1lO1xuICB9KTtcblxuLyoqXG4gKiBUcmFuc2Zvcm0gdGhlIGF1dGhvcml6YXRpb24gY29uZmlnIGludG8gdGhlIHRyYW5zZm9ybWVyIHN5bnRoIHBhcmFtZXRlcnMgcGVydGFpbmluZyB0byBhdXRoLlxuICogQHBhcmFtIGF1dGhNb2RlcyB0aGUgYXV0aCBtb2RlcyBwcm92aWRlZCB0byB0aGUgY29uc3RydWN0LlxuICogQHJldHVybnMgYSByZWNvcmQgb2YgcGFyYW1zIHRvIGJlIGNvbnN1bWVkIGJ5IHRoZSB0cmFuc2Zvcm1lci5cbiAqL1xuY29uc3QgZ2V0U3ludGhQYXJhbWV0ZXJzID0gKGF1dGhNb2RlczogQXV0aG9yaXphdGlvbk1vZGVzKTogQXV0aFN5bnRoUGFyYW1ldGVycyA9PiAoe1xuICBhZG1pblJvbGVzOiBnZXRBbGxvd0xpc3RlZFJvbGVzKGF1dGhNb2RlcyksXG4gIGlkZW50aXR5UG9vbElkOiBhdXRoTW9kZXMuaWRlbnRpdHlQb29sQ29uZmlnPy5pZGVudGl0eVBvb2xJZCA/PyBhdXRoTW9kZXMuaWFtQ29uZmlnPy5pZGVudGl0eVBvb2xJZCxcbiAgZW5hYmxlSWFtQWNjZXNzOiBhdXRoTW9kZXMuaWFtQ29uZmlnPy5lbmFibGVJYW1BdXRob3JpemF0aW9uTW9kZSxcbiAgLi4uKGF1dGhNb2Rlcy51c2VyUG9vbENvbmZpZyA/IHsgdXNlclBvb2xJZDogYXV0aE1vZGVzLnVzZXJQb29sQ29uZmlnLnVzZXJQb29sLnVzZXJQb29sSWQgfSA6IHt9KSxcbiAgLi4uKGF1dGhNb2Rlcz8uaWRlbnRpdHlQb29sQ29uZmlnXG4gICAgPyB7XG4gICAgICAgIGF1dGhlbnRpY2F0ZWRVc2VyUm9sZU5hbWU6IGF1dGhNb2Rlcy5pZGVudGl0eVBvb2xDb25maWcuYXV0aGVudGljYXRlZFVzZXJSb2xlLnJvbGVOYW1lLFxuICAgICAgICB1bmF1dGhlbnRpY2F0ZWRVc2VyUm9sZU5hbWU6IGF1dGhNb2Rlcy5pZGVudGl0eVBvb2xDb25maWcudW5hdXRoZW50aWNhdGVkVXNlclJvbGUucm9sZU5hbWUsXG4gICAgICB9XG4gICAgOiB7fSksXG4gIC4uLihhdXRoTW9kZXM/LmlhbUNvbmZpZyAmJiBhdXRoTW9kZXM/LmlhbUNvbmZpZy5hdXRoZW50aWNhdGVkVXNlclJvbGUgJiYgYXV0aE1vZGVzPy5pYW1Db25maWcudW5hdXRoZW50aWNhdGVkVXNlclJvbGVcbiAgICA/IHtcbiAgICAgICAgYXV0aGVudGljYXRlZFVzZXJSb2xlTmFtZTogYXV0aE1vZGVzLmlhbUNvbmZpZy5hdXRoZW50aWNhdGVkVXNlclJvbGU/LnJvbGVOYW1lLFxuICAgICAgICB1bmF1dGhlbnRpY2F0ZWRVc2VyUm9sZU5hbWU6IGF1dGhNb2Rlcy5pYW1Db25maWcudW5hdXRoZW50aWNhdGVkVXNlclJvbGU/LnJvbGVOYW1lLFxuICAgICAgfVxuICAgIDoge30pLFxufSk7XG4iXX0=
@@ -6,6 +6,7 @@ const aws_s3_1 = require("aws-cdk-lib/aws-s3");
6
6
  const aws_s3_deployment_1 = require("aws-cdk-lib/aws-s3-deployment");
7
7
  const constructs_1 = require("constructs");
8
8
  const MODEL_SCHEMA_KEY = 'model-schema.graphql';
9
+ const CONSOLE_SERVICE_ENDPOINT = aws_cdk_lib_1.Fn.join('', ['https://', aws_cdk_lib_1.Fn.ref('AWS::Region'), '.console.aws.amazon.com/amplify']);
9
10
  /**
10
11
  * Construct an S3 URI string for a given bucket and key.
11
12
  * @param bucket the bucket to embed in the uri string
@@ -23,6 +24,14 @@ class CodegenAssets extends constructs_1.Construct {
23
24
  const bucket = new aws_s3_1.Bucket(this, `${id}Bucket`, {
24
25
  removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY,
25
26
  autoDeleteObjects: true,
27
+ // Enabling CORS to allow console to access the codegen assets.
28
+ cors: [
29
+ {
30
+ allowedMethods: [aws_s3_1.HttpMethods.GET, aws_s3_1.HttpMethods.HEAD],
31
+ allowedHeaders: ['*'],
32
+ allowedOrigins: [CONSOLE_SERVICE_ENDPOINT],
33
+ },
34
+ ],
26
35
  });
27
36
  const deployment = new aws_s3_deployment_1.BucketDeployment(this, `${id}Deployment`, {
28
37
  destinationBucket: bucket,
@@ -37,4 +46,4 @@ class CodegenAssets extends constructs_1.Construct {
37
46
  }
38
47
  }
39
48
  exports.CodegenAssets = CodegenAssets;
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWdlbi1hc3NldHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvY29kZWdlbi1hc3NldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQTRDO0FBQzVDLCtDQUFxRDtBQUNyRCxxRUFBeUU7QUFDekUsMkNBQXVDO0FBTXZDLE1BQU0sZ0JBQWdCLEdBQUcsc0JBQXNCLENBQUM7QUFFaEQ7Ozs7O0dBS0c7QUFDSCxNQUFNLHVCQUF1QixHQUFHLENBQUMsTUFBZSxFQUFFLEdBQVcsRUFBVSxFQUFFLENBQUMsUUFBUSxNQUFNLENBQUMsVUFBVSxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBRTdHOzs7R0FHRztBQUNILE1BQWEsYUFBYyxTQUFRLHNCQUFTO0lBRzFDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBeUI7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRTtZQUM3QyxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO1lBQ3BDLGlCQUFpQixFQUFFLElBQUk7U0FDeEIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxVQUFVLEdBQUcsSUFBSSxvQ0FBZ0IsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRTtZQUMvRCxpQkFBaUIsRUFBRSxNQUFNO1lBQ3pCLE9BQU8sRUFBRSxDQUFDLDBCQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMzRCxpR0FBaUc7WUFDakcsNEdBQTRHO1lBQzVHLDRIQUE0SDtZQUM1SCx5SEFBeUg7WUFDekgsV0FBVyxFQUFFLElBQUk7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGdCQUFnQixHQUFHLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUMvRixDQUFDO0NBQ0Y7QUF2QkQsc0NBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEJ1Y2tldCwgSUJ1Y2tldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBCdWNrZXREZXBsb3ltZW50LCBTb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMtZGVwbG95bWVudCc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IHR5cGUgQ29kZWdlbkFzc2V0c1Byb3BzID0ge1xuICBtb2RlbFNjaGVtYTogc3RyaW5nO1xufTtcblxuY29uc3QgTU9ERUxfU0NIRU1BX0tFWSA9ICdtb2RlbC1zY2hlbWEuZ3JhcGhxbCc7XG5cbi8qKlxuICogQ29uc3RydWN0IGFuIFMzIFVSSSBzdHJpbmcgZm9yIGEgZ2l2ZW4gYnVja2V0IGFuZCBrZXkuXG4gKiBAcGFyYW0gYnVja2V0IHRoZSBidWNrZXQgdG8gZW1iZWQgaW4gdGhlIHVyaSBzdHJpbmdcbiAqIEBwYXJhbSBrZXkgdGhlIGtleSB0byBlbWJlZCBpbiB0aGUgdXJpIHN0cmluZ1xuICogQHJldHVybnMgdGhlIHVyaSBzdHJpbmcgcmVwcmVzZW50YXRpb24uXG4gKi9cbmNvbnN0IGdldFMzVXJpRm9yQnVja2V0QW5kS2V5ID0gKGJ1Y2tldDogSUJ1Y2tldCwga2V5OiBzdHJpbmcpOiBzdHJpbmcgPT4gYHMzOi8vJHtidWNrZXQuYnVja2V0TmFtZX0vJHtrZXl9YDtcblxuLyoqXG4gKiBDb25zdHJ1Y3Qgd2hpY2ggY3JlYXRlcyBhIGJ1Y2tldCwgYW5kIHVwbG9hZHMgZmlsZSBhc3NldHMgcmVxdWlyZWQgZm9yIGNvZGVnZW4gdG8gcnVuLlxuICogUG9pbnRlcnMgdG8gdGhlc2UgcmVzb3VyY2VzIGFyZSBwZXJzaXN0ZWQgaW4gdGhlIHN0YWNrIG91dHB1dHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb2RlZ2VuQXNzZXRzIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIG1vZGVsU2NoZW1hUzNVcmk6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ29kZWdlbkFzc2V0c1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGJ1Y2tldCA9IG5ldyBCdWNrZXQodGhpcywgYCR7aWR9QnVja2V0YCwge1xuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgYXV0b0RlbGV0ZU9iamVjdHM6IHRydWUsXG4gICAgfSk7XG5cbiAgICBjb25zdCBkZXBsb3ltZW50ID0gbmV3IEJ1Y2tldERlcGxveW1lbnQodGhpcywgYCR7aWR9RGVwbG95bWVudGAsIHtcbiAgICAgIGRlc3RpbmF0aW9uQnVja2V0OiBidWNrZXQsXG4gICAgICBzb3VyY2VzOiBbU291cmNlLmRhdGEoTU9ERUxfU0NIRU1BX0tFWSwgcHJvcHMubW9kZWxTY2hlbWEpXSxcbiAgICAgIC8vIEJ1Y2tldCBkZXBsb3ltZW50IHVzZXMgYSBMYW1iZGEgdGhhdCBydW5zIEFXUyBTMyBDTEkgdG8gdHJhbnNmZXIgYXNzZXRzIHRvIGRlc3RpbmF0aW9uIGJ1Y2tldC5cbiAgICAgIC8vIFRoYXQgTGFtYmRhIHJlcXVpcmVzIGhpZ2hlciBtZW1vcnkgc2V0dGluZyB0byBydW4gZmFzdCBldmVuIHdoZW4gcHJvY2Vzc2luZyBzbWFsbCBhc3NldHMgKGxlc3MgdGhhbiAxa0IpLlxuICAgICAgLy8gVGhpcyBzZXR0aW5nIGhhcyBiZWVuIGVzdGFibGlzaGVkIGV4cGVyaW1lbnRhbGx5LiBCZW5jaG1hcmsgY2FuIGJlIGZvdW5kIGluIHB1bGwgcmVxdWVzdCBkZXNjcmlwdGlvbiB0aGF0IGVzdGFibGlzaGVkIGl0LlxuICAgICAgLy8gVGhlIHZhbHVlIGhhcyBiZWVuIGNob3NlbiB0byBwcmVmZXIgdGhlIGxvd2VzdCBjb3N0IChydW4gdGltZSAqIG1lbW9yeSBkZW1hbmQpIHdoaWxlIHByb3ZpZGluZyByZWFzb25hYmxlIHBlcmZvcm1hbmNlLlxuICAgICAgbWVtb3J5TGltaXQ6IDE1MzYsXG4gICAgfSk7XG5cbiAgICB0aGlzLm1vZGVsU2NoZW1hUzNVcmkgPSBnZXRTM1VyaUZvckJ1Y2tldEFuZEtleShkZXBsb3ltZW50LmRlcGxveWVkQnVja2V0LCBNT0RFTF9TQ0hFTUFfS0VZKTtcbiAgfVxufVxuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWdlbi1hc3NldHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvY29kZWdlbi1hc3NldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQWdEO0FBQ2hELCtDQUFrRTtBQUNsRSxxRUFBeUU7QUFDekUsMkNBQXVDO0FBTXZDLE1BQU0sZ0JBQWdCLEdBQUcsc0JBQXNCLENBQUM7QUFDaEQsTUFBTSx3QkFBd0IsR0FBRyxnQkFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLEVBQUUsZ0JBQUUsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUUsaUNBQWlDLENBQUMsQ0FBQyxDQUFDO0FBRXJIOzs7OztHQUtHO0FBQ0gsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLE1BQWUsRUFBRSxHQUFXLEVBQVUsRUFBRSxDQUFDLFFBQVEsTUFBTSxDQUFDLFVBQVUsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUU3Rzs7O0dBR0c7QUFDSCxNQUFhLGFBQWMsU0FBUSxzQkFBUztJQUcxQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXlCO1FBQ2pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUU7WUFDN0MsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztZQUNwQyxpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLCtEQUErRDtZQUMvRCxJQUFJLEVBQUU7Z0JBQ0o7b0JBQ0UsY0FBYyxFQUFFLENBQUMsb0JBQVcsQ0FBQyxHQUFHLEVBQUUsb0JBQVcsQ0FBQyxJQUFJLENBQUM7b0JBQ25ELGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQztvQkFDckIsY0FBYyxFQUFFLENBQUMsd0JBQXdCLENBQUM7aUJBQzNDO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLFVBQVUsR0FBRyxJQUFJLG9DQUFnQixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFO1lBQy9ELGlCQUFpQixFQUFFLE1BQU07WUFDekIsT0FBTyxFQUFFLENBQUMsMEJBQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNELGlHQUFpRztZQUNqRyw0R0FBNEc7WUFDNUcsNEhBQTRIO1lBQzVILHlIQUF5SDtZQUN6SCxXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsdUJBQXVCLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQy9GLENBQUM7Q0FDRjtBQS9CRCxzQ0ErQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW1vdmFsUG9saWN5LCBGbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEJ1Y2tldCwgSHR0cE1ldGhvZHMsIElCdWNrZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgQnVja2V0RGVwbG95bWVudCwgU291cmNlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWRlcGxveW1lbnQnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCB0eXBlIENvZGVnZW5Bc3NldHNQcm9wcyA9IHtcbiAgbW9kZWxTY2hlbWE6IHN0cmluZztcbn07XG5cbmNvbnN0IE1PREVMX1NDSEVNQV9LRVkgPSAnbW9kZWwtc2NoZW1hLmdyYXBocWwnO1xuY29uc3QgQ09OU09MRV9TRVJWSUNFX0VORFBPSU5UID0gRm4uam9pbignJywgWydodHRwczovLycsIEZuLnJlZignQVdTOjpSZWdpb24nKSwgJy5jb25zb2xlLmF3cy5hbWF6b24uY29tL2FtcGxpZnknXSk7XG5cbi8qKlxuICogQ29uc3RydWN0IGFuIFMzIFVSSSBzdHJpbmcgZm9yIGEgZ2l2ZW4gYnVja2V0IGFuZCBrZXkuXG4gKiBAcGFyYW0gYnVja2V0IHRoZSBidWNrZXQgdG8gZW1iZWQgaW4gdGhlIHVyaSBzdHJpbmdcbiAqIEBwYXJhbSBrZXkgdGhlIGtleSB0byBlbWJlZCBpbiB0aGUgdXJpIHN0cmluZ1xuICogQHJldHVybnMgdGhlIHVyaSBzdHJpbmcgcmVwcmVzZW50YXRpb24uXG4gKi9cbmNvbnN0IGdldFMzVXJpRm9yQnVja2V0QW5kS2V5ID0gKGJ1Y2tldDogSUJ1Y2tldCwga2V5OiBzdHJpbmcpOiBzdHJpbmcgPT4gYHMzOi8vJHtidWNrZXQuYnVja2V0TmFtZX0vJHtrZXl9YDtcblxuLyoqXG4gKiBDb25zdHJ1Y3Qgd2hpY2ggY3JlYXRlcyBhIGJ1Y2tldCwgYW5kIHVwbG9hZHMgZmlsZSBhc3NldHMgcmVxdWlyZWQgZm9yIGNvZGVnZW4gdG8gcnVuLlxuICogUG9pbnRlcnMgdG8gdGhlc2UgcmVzb3VyY2VzIGFyZSBwZXJzaXN0ZWQgaW4gdGhlIHN0YWNrIG91dHB1dHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb2RlZ2VuQXNzZXRzIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIG1vZGVsU2NoZW1hUzNVcmk6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ29kZWdlbkFzc2V0c1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGJ1Y2tldCA9IG5ldyBCdWNrZXQodGhpcywgYCR7aWR9QnVja2V0YCwge1xuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgYXV0b0RlbGV0ZU9iamVjdHM6IHRydWUsXG4gICAgICAvLyBFbmFibGluZyBDT1JTIHRvIGFsbG93IGNvbnNvbGUgdG8gYWNjZXNzIHRoZSBjb2RlZ2VuIGFzc2V0cy5cbiAgICAgIGNvcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGFsbG93ZWRNZXRob2RzOiBbSHR0cE1ldGhvZHMuR0VULCBIdHRwTWV0aG9kcy5IRUFEXSxcbiAgICAgICAgICBhbGxvd2VkSGVhZGVyczogWycqJ10sXG4gICAgICAgICAgYWxsb3dlZE9yaWdpbnM6IFtDT05TT0xFX1NFUlZJQ0VfRU5EUE9JTlRdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGRlcGxveW1lbnQgPSBuZXcgQnVja2V0RGVwbG95bWVudCh0aGlzLCBgJHtpZH1EZXBsb3ltZW50YCwge1xuICAgICAgZGVzdGluYXRpb25CdWNrZXQ6IGJ1Y2tldCxcbiAgICAgIHNvdXJjZXM6IFtTb3VyY2UuZGF0YShNT0RFTF9TQ0hFTUFfS0VZLCBwcm9wcy5tb2RlbFNjaGVtYSldLFxuICAgICAgLy8gQnVja2V0IGRlcGxveW1lbnQgdXNlcyBhIExhbWJkYSB0aGF0IHJ1bnMgQVdTIFMzIENMSSB0byB0cmFuc2ZlciBhc3NldHMgdG8gZGVzdGluYXRpb24gYnVja2V0LlxuICAgICAgLy8gVGhhdCBMYW1iZGEgcmVxdWlyZXMgaGlnaGVyIG1lbW9yeSBzZXR0aW5nIHRvIHJ1biBmYXN0IGV2ZW4gd2hlbiBwcm9jZXNzaW5nIHNtYWxsIGFzc2V0cyAobGVzcyB0aGFuIDFrQikuXG4gICAgICAvLyBUaGlzIHNldHRpbmcgaGFzIGJlZW4gZXN0YWJsaXNoZWQgZXhwZXJpbWVudGFsbHkuIEJlbmNobWFyayBjYW4gYmUgZm91bmQgaW4gcHVsbCByZXF1ZXN0IGRlc2NyaXB0aW9uIHRoYXQgZXN0YWJsaXNoZWQgaXQuXG4gICAgICAvLyBUaGUgdmFsdWUgaGFzIGJlZW4gY2hvc2VuIHRvIHByZWZlciB0aGUgbG93ZXN0IGNvc3QgKHJ1biB0aW1lICogbWVtb3J5IGRlbWFuZCkgd2hpbGUgcHJvdmlkaW5nIHJlYXNvbmFibGUgcGVyZm9ybWFuY2UuXG4gICAgICBtZW1vcnlMaW1pdDogMTUzNixcbiAgICB9KTtcblxuICAgIHRoaXMubW9kZWxTY2hlbWFTM1VyaSA9IGdldFMzVXJpRm9yQnVja2V0QW5kS2V5KGRlcGxveW1lbnQuZGVwbG95ZWRCdWNrZXQsIE1PREVMX1NDSEVNQV9LRVkpO1xuICB9XG59XG4iXX0=