@aws-amplify/graphql-api-construct 1.18.3 → 1.18.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (986) hide show
  1. package/.jsii +162 -187
  2. package/CHANGELOG.md +8 -0
  3. package/jest.config.js +0 -7
  4. package/lib/amplify-dynamodb-table-wrapper.js +1 -1
  5. package/lib/amplify-graphql-api.js +1 -1
  6. package/lib/amplify-graphql-definition.js +1 -1
  7. package/lib/index.js +23 -1
  8. package/lib/sql-model-datasource-strategy.js +1 -1
  9. package/lib/types.js +11 -1
  10. package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +4 -0
  11. package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +10 -11
  12. package/node_modules/@aws-amplify/graphql-conversation-transformer/CHANGELOG.md +4 -0
  13. package/node_modules/@aws-amplify/graphql-conversation-transformer/package.json +7 -8
  14. package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +4 -0
  15. package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +5 -6
  16. package/node_modules/@aws-amplify/graphql-directives/package.json +1 -2
  17. package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +4 -0
  18. package/node_modules/@aws-amplify/graphql-function-transformer/package.json +4 -5
  19. package/node_modules/@aws-amplify/graphql-generation-transformer/CHANGELOG.md +4 -0
  20. package/node_modules/@aws-amplify/graphql-generation-transformer/package.json +4 -5
  21. package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +4 -0
  22. package/node_modules/@aws-amplify/graphql-http-transformer/package.json +4 -5
  23. package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +4 -0
  24. package/node_modules/@aws-amplify/graphql-index-transformer/package.json +5 -6
  25. package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +4 -0
  26. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
  27. package/node_modules/@aws-amplify/graphql-maps-to-transformer/package.json +8 -9
  28. package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +4 -0
  29. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
  30. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
  31. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
  32. package/node_modules/@aws-amplify/graphql-model-transformer/package.json +4 -5
  33. package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +4 -0
  34. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
  35. package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +4 -5
  36. package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +4 -0
  37. package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +6 -7
  38. package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +4 -0
  39. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
  40. package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +5 -6
  41. package/node_modules/@aws-amplify/graphql-sql-transformer/CHANGELOG.md +4 -0
  42. package/node_modules/@aws-amplify/graphql-sql-transformer/package.json +5 -6
  43. package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +4 -0
  44. package/node_modules/@aws-amplify/graphql-transformer/package.json +17 -18
  45. package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +4 -0
  46. package/node_modules/@aws-amplify/graphql-transformer-core/package.json +2 -4
  47. package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +1 -2
  48. package/node_modules/graphql-mapping-template/package.json +1 -2
  49. package/node_modules/graphql-transformer-common/package.json +1 -2
  50. package/package.json +18 -68
  51. package/src/index.ts +33 -0
  52. package/src/types.ts +100 -0
  53. package/node_modules/@aws-amplify/graphql-auth-transformer/LICENSE +0 -201
  54. package/node_modules/@aws-amplify/graphql-conversation-transformer/LICENSE +0 -201
  55. package/node_modules/@aws-amplify/graphql-default-value-transformer/LICENSE +0 -201
  56. package/node_modules/@aws-amplify/graphql-directives/LICENSE +0 -201
  57. package/node_modules/@aws-amplify/graphql-function-transformer/LICENSE +0 -201
  58. package/node_modules/@aws-amplify/graphql-generation-transformer/LICENSE +0 -201
  59. package/node_modules/@aws-amplify/graphql-http-transformer/LICENSE +0 -201
  60. package/node_modules/@aws-amplify/graphql-index-transformer/LICENSE +0 -201
  61. package/node_modules/@aws-amplify/graphql-maps-to-transformer/LICENSE +0 -201
  62. package/node_modules/@aws-amplify/graphql-model-transformer/LICENSE +0 -201
  63. package/node_modules/@aws-amplify/graphql-predictions-transformer/LICENSE +0 -201
  64. package/node_modules/@aws-amplify/graphql-relational-transformer/LICENSE +0 -201
  65. package/node_modules/@aws-amplify/graphql-searchable-transformer/LICENSE +0 -201
  66. package/node_modules/@aws-amplify/graphql-sql-transformer/LICENSE +0 -201
  67. package/node_modules/@aws-amplify/graphql-transformer/LICENSE +0 -201
  68. package/node_modules/@aws-amplify/graphql-transformer-core/LICENSE +0 -201
  69. package/node_modules/@aws-amplify/graphql-transformer-interfaces/LICENSE +0 -201
  70. package/node_modules/@aws-cdk/assert/BUILD.md +0 -15
  71. package/node_modules/@aws-cdk/assert/LICENSE +0 -201
  72. package/node_modules/@aws-cdk/assert/NOTICE +0 -2
  73. package/node_modules/@aws-cdk/assert/README.md +0 -228
  74. package/node_modules/@aws-cdk/assert/clone.sh +0 -29
  75. package/node_modules/@aws-cdk/assert/jest.d.ts +0 -14
  76. package/node_modules/@aws-cdk/assert/jest.js +0 -57
  77. package/node_modules/@aws-cdk/assert/lib/assertion.d.ts +0 -17
  78. package/node_modules/@aws-cdk/assert/lib/assertion.js +0 -31
  79. package/node_modules/@aws-cdk/assert/lib/assertions/and-assertion.d.ts +0 -10
  80. package/node_modules/@aws-cdk/assert/lib/assertions/and-assertion.js +0 -21
  81. package/node_modules/@aws-cdk/assert/lib/assertions/count-resources.d.ts +0 -10
  82. package/node_modules/@aws-cdk/assert/lib/assertions/count-resources.js +0 -54
  83. package/node_modules/@aws-cdk/assert/lib/assertions/exist.d.ts +0 -3
  84. package/node_modules/@aws-cdk/assert/lib/assertions/exist.js +0 -18
  85. package/node_modules/@aws-cdk/assert/lib/assertions/have-output.d.ts +0 -29
  86. package/node_modules/@aws-cdk/assert/lib/assertions/have-output.js +0 -77
  87. package/node_modules/@aws-cdk/assert/lib/assertions/have-resource-matchers.d.ts +0 -123
  88. package/node_modules/@aws-cdk/assert/lib/assertions/have-resource-matchers.js +0 -404
  89. package/node_modules/@aws-cdk/assert/lib/assertions/have-resource.d.ts +0 -69
  90. package/node_modules/@aws-cdk/assert/lib/assertions/have-resource.js +0 -130
  91. package/node_modules/@aws-cdk/assert/lib/assertions/have-type.d.ts +0 -3
  92. package/node_modules/@aws-cdk/assert/lib/assertions/have-type.js +0 -22
  93. package/node_modules/@aws-cdk/assert/lib/assertions/match-template.d.ts +0 -19
  94. package/node_modules/@aws-cdk/assert/lib/assertions/match-template.js +0 -98
  95. package/node_modules/@aws-cdk/assert/lib/assertions/negated-assertion.d.ts +0 -8
  96. package/node_modules/@aws-cdk/assert/lib/assertions/negated-assertion.js +0 -18
  97. package/node_modules/@aws-cdk/assert/lib/canonicalize-assets.d.ts +0 -11
  98. package/node_modules/@aws-cdk/assert/lib/canonicalize-assets.js +0 -70
  99. package/node_modules/@aws-cdk/assert/lib/expect.d.ts +0 -4
  100. package/node_modules/@aws-cdk/assert/lib/expect.js +0 -16
  101. package/node_modules/@aws-cdk/assert/lib/index.d.ts +0 -14
  102. package/node_modules/@aws-cdk/assert/lib/index.js +0 -27
  103. package/node_modules/@aws-cdk/assert/lib/inspector.d.ts +0 -31
  104. package/node_modules/@aws-cdk/assert/lib/inspector.js +0 -69
  105. package/node_modules/@aws-cdk/assert/lib/synth-utils.d.ts +0 -30
  106. package/node_modules/@aws-cdk/assert/lib/synth-utils.js +0 -92
  107. package/node_modules/@aws-cdk/assert/package.json +0 -77
  108. package/node_modules/@aws-cdk/cfnspec/CHANGELOG.md +0 -16795
  109. package/node_modules/@aws-cdk/cfnspec/LICENSE +0 -201
  110. package/node_modules/@aws-cdk/cfnspec/NOTICE +0 -2
  111. package/node_modules/@aws-cdk/cfnspec/README.md +0 -14
  112. package/node_modules/@aws-cdk/cfnspec/build-tools/build.d.ts +0 -1
  113. package/node_modules/@aws-cdk/cfnspec/build-tools/build.js +0 -37
  114. package/node_modules/@aws-cdk/cfnspec/build-tools/create-missing-libraries.d.ts +0 -6
  115. package/node_modules/@aws-cdk/cfnspec/build-tools/create-missing-libraries.js +0 -311
  116. package/node_modules/@aws-cdk/cfnspec/build-tools/massage-spec.d.ts +0 -10
  117. package/node_modules/@aws-cdk/cfnspec/build-tools/massage-spec.js +0 -70
  118. package/node_modules/@aws-cdk/cfnspec/build-tools/patch-set.d.ts +0 -25
  119. package/node_modules/@aws-cdk/cfnspec/build-tools/patch-set.js +0 -241
  120. package/node_modules/@aws-cdk/cfnspec/build-tools/report-issues.d.ts +0 -9
  121. package/node_modules/@aws-cdk/cfnspec/build-tools/report-issues.js +0 -72
  122. package/node_modules/@aws-cdk/cfnspec/build-tools/scrutiny.d.ts +0 -12
  123. package/node_modules/@aws-cdk/cfnspec/build-tools/scrutiny.js +0 -85
  124. package/node_modules/@aws-cdk/cfnspec/build-tools/spec-diff.d.ts +0 -1
  125. package/node_modules/@aws-cdk/cfnspec/build-tools/spec-diff.js +0 -248
  126. package/node_modules/@aws-cdk/cfnspec/build-tools/split-spec-by-service.d.ts +0 -1
  127. package/node_modules/@aws-cdk/cfnspec/build-tools/split-spec-by-service.js +0 -120
  128. package/node_modules/@aws-cdk/cfnspec/build-tools/template/LICENSE +0 -201
  129. package/node_modules/@aws-cdk/cfnspec/build-tools/template/NOTICE +0 -2
  130. package/node_modules/@aws-cdk/cfnspec/build-tools/update-cfnlint.sh +0 -18
  131. package/node_modules/@aws-cdk/cfnspec/build-tools/update-metrics.sh +0 -15
  132. package/node_modules/@aws-cdk/cfnspec/build-tools/update.sh +0 -113
  133. package/node_modules/@aws-cdk/cfnspec/build-tools/validate-cfn.d.ts +0 -67
  134. package/node_modules/@aws-cdk/cfnspec/build-tools/validate-cfn.js +0 -285
  135. package/node_modules/@aws-cdk/cfnspec/cfn.version +0 -1
  136. package/node_modules/@aws-cdk/cfnspec/lib/_private_schema/cfn-lint.d.ts +0 -24
  137. package/node_modules/@aws-cdk/cfnspec/lib/_private_schema/cfn-lint.js +0 -3
  138. package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_EC2_VPNConnection.json +0 -27
  139. package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_Lambda_Function.json +0 -27
  140. package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_RDS_DBCluster.json +0 -70
  141. package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_RDS_DBInstance.json +0 -37
  142. package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_SNS_Topic.json +0 -52
  143. package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_SQS_Queue.json +0 -53
  144. package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics/README.md +0 -168
  145. package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics/canned-metrics-schema.d.ts +0 -60
  146. package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics/canned-metrics-schema.js +0 -12
  147. package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics/services.json +0 -31957
  148. package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics.d.ts +0 -41
  149. package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics.js +0 -75
  150. package/node_modules/@aws-cdk/cfnspec/lib/index.d.ts +0 -63
  151. package/node_modules/@aws-cdk/cfnspec/lib/index.js +0 -200
  152. package/node_modules/@aws-cdk/cfnspec/lib/schema/augmentation.d.ts +0 -87
  153. package/node_modules/@aws-cdk/cfnspec/lib/schema/augmentation.js +0 -28
  154. package/node_modules/@aws-cdk/cfnspec/lib/schema/base-types.d.ts +0 -14
  155. package/node_modules/@aws-cdk/cfnspec/lib/schema/base-types.js +0 -29
  156. package/node_modules/@aws-cdk/cfnspec/lib/schema/cfn-lint.d.ts +0 -13
  157. package/node_modules/@aws-cdk/cfnspec/lib/schema/cfn-lint.js +0 -3
  158. package/node_modules/@aws-cdk/cfnspec/lib/schema/docs.d.ts +0 -20
  159. package/node_modules/@aws-cdk/cfnspec/lib/schema/docs.js +0 -3
  160. package/node_modules/@aws-cdk/cfnspec/lib/schema/index.d.ts +0 -7
  161. package/node_modules/@aws-cdk/cfnspec/lib/schema/index.js +0 -20
  162. package/node_modules/@aws-cdk/cfnspec/lib/schema/property.d.ts +0 -179
  163. package/node_modules/@aws-cdk/cfnspec/lib/schema/property.js +0 -168
  164. package/node_modules/@aws-cdk/cfnspec/lib/schema/resource-type.d.ts +0 -118
  165. package/node_modules/@aws-cdk/cfnspec/lib/schema/resource-type.js +0 -99
  166. package/node_modules/@aws-cdk/cfnspec/lib/schema/specification.d.ts +0 -56
  167. package/node_modules/@aws-cdk/cfnspec/lib/schema/specification.js +0 -11
  168. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/CHANGELOG.md +0 -902
  169. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/LICENSE +0 -15
  170. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/README.md +0 -264
  171. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/copy/copy.js +0 -232
  172. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/copy/index.js +0 -6
  173. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/copy-sync/copy-sync.js +0 -166
  174. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/copy-sync/index.js +0 -5
  175. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/empty/index.js +0 -48
  176. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/ensure/file.js +0 -69
  177. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/ensure/index.js +0 -23
  178. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/ensure/link.js +0 -61
  179. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/ensure/symlink-paths.js +0 -99
  180. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/ensure/symlink-type.js +0 -31
  181. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/ensure/symlink.js +0 -63
  182. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/fs/index.js +0 -130
  183. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/index.js +0 -27
  184. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/json/index.js +0 -16
  185. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/json/jsonfile.js +0 -11
  186. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/json/output-json-sync.js +0 -12
  187. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/json/output-json.js +0 -12
  188. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/mkdirs/index.js +0 -14
  189. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/mkdirs/make-dir.js +0 -141
  190. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/move/index.js +0 -6
  191. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/move/move.js +0 -65
  192. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/move-sync/index.js +0 -5
  193. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/move-sync/move-sync.js +0 -47
  194. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/output/index.js +0 -40
  195. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/path-exists/index.js +0 -12
  196. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/remove/index.js +0 -9
  197. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/remove/rimraf.js +0 -302
  198. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/util/stat.js +0 -139
  199. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/util/utimes.js +0 -26
  200. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/package.json +0 -70
  201. package/node_modules/@aws-cdk/cfnspec/node_modules/jsonfile/CHANGELOG.md +0 -171
  202. package/node_modules/@aws-cdk/cfnspec/node_modules/jsonfile/LICENSE +0 -15
  203. package/node_modules/@aws-cdk/cfnspec/node_modules/jsonfile/README.md +0 -230
  204. package/node_modules/@aws-cdk/cfnspec/node_modules/jsonfile/index.js +0 -88
  205. package/node_modules/@aws-cdk/cfnspec/node_modules/jsonfile/package.json +0 -40
  206. package/node_modules/@aws-cdk/cfnspec/node_modules/jsonfile/utils.js +0 -14
  207. package/node_modules/@aws-cdk/cfnspec/node_modules/universalify/LICENSE +0 -20
  208. package/node_modules/@aws-cdk/cfnspec/node_modules/universalify/README.md +0 -76
  209. package/node_modules/@aws-cdk/cfnspec/node_modules/universalify/index.js +0 -24
  210. package/node_modules/@aws-cdk/cfnspec/node_modules/universalify/package.json +0 -34
  211. package/node_modules/@aws-cdk/cfnspec/package.json +0 -63
  212. package/node_modules/@aws-cdk/cfnspec/spec/cfn-docs.json +0 -51044
  213. package/node_modules/@aws-cdk/cfnspec/spec/cfn-lint.json +0 -35
  214. package/node_modules/@aws-cdk/cfnspec/spec/specification.json +0 -148332
  215. package/node_modules/@aws-cdk/cloudformation-diff/LICENSE +0 -201
  216. package/node_modules/@aws-cdk/cloudformation-diff/NOTICE +0 -2
  217. package/node_modules/@aws-cdk/cloudformation-diff/README.md +0 -12
  218. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/index.d.ts +0 -9
  219. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/index.js +0 -94
  220. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/types.d.ts +0 -326
  221. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/types.js +0 -457
  222. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/util.d.ts +0 -41
  223. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/util.js +0 -165
  224. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff-template.d.ts +0 -21
  225. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff-template.js +0 -166
  226. package/node_modules/@aws-cdk/cloudformation-diff/lib/diffable.d.ts +0 -22
  227. package/node_modules/@aws-cdk/cloudformation-diff/lib/diffable.js +0 -47
  228. package/node_modules/@aws-cdk/cloudformation-diff/lib/format-table.d.ts +0 -6
  229. package/node_modules/@aws-cdk/cloudformation-diff/lib/format-table.js +0 -109
  230. package/node_modules/@aws-cdk/cloudformation-diff/lib/format.d.ts +0 -23
  231. package/node_modules/@aws-cdk/cloudformation-diff/lib/format.js +0 -414
  232. package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/iam-changes.d.ts +0 -62
  233. package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/iam-changes.js +0 -246
  234. package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/managed-policy.d.ts +0 -18
  235. package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/managed-policy.js +0 -29
  236. package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/statement.d.ts +0 -127
  237. package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/statement.js +0 -268
  238. package/node_modules/@aws-cdk/cloudformation-diff/lib/index.d.ts +0 -4
  239. package/node_modules/@aws-cdk/cloudformation-diff/lib/index.js +0 -18
  240. package/node_modules/@aws-cdk/cloudformation-diff/lib/network/security-group-changes.d.ts +0 -32
  241. package/node_modules/@aws-cdk/cloudformation-diff/lib/network/security-group-changes.js +0 -95
  242. package/node_modules/@aws-cdk/cloudformation-diff/lib/network/security-group-rule.d.ts +0 -50
  243. package/node_modules/@aws-cdk/cloudformation-diff/lib/network/security-group-rule.js +0 -91
  244. package/node_modules/@aws-cdk/cloudformation-diff/lib/render-intrinsics.d.ts +0 -21
  245. package/node_modules/@aws-cdk/cloudformation-diff/lib/render-intrinsics.js +0 -79
  246. package/node_modules/@aws-cdk/cloudformation-diff/lib/util.d.ts +0 -7
  247. package/node_modules/@aws-cdk/cloudformation-diff/lib/util.js +0 -63
  248. package/node_modules/@aws-cdk/cloudformation-diff/package.json +0 -60
  249. package/node_modules/ajv/.runkit_example.js +0 -23
  250. package/node_modules/ajv/LICENSE +0 -22
  251. package/node_modules/ajv/README.md +0 -207
  252. package/node_modules/ajv/dist/2019.d.ts +0 -19
  253. package/node_modules/ajv/dist/2019.js +0 -61
  254. package/node_modules/ajv/dist/2019.js.map +0 -1
  255. package/node_modules/ajv/dist/2020.d.ts +0 -19
  256. package/node_modules/ajv/dist/2020.js +0 -55
  257. package/node_modules/ajv/dist/2020.js.map +0 -1
  258. package/node_modules/ajv/dist/ajv.d.ts +0 -18
  259. package/node_modules/ajv/dist/ajv.js +0 -50
  260. package/node_modules/ajv/dist/ajv.js.map +0 -1
  261. package/node_modules/ajv/dist/compile/codegen/code.d.ts +0 -40
  262. package/node_modules/ajv/dist/compile/codegen/code.js +0 -156
  263. package/node_modules/ajv/dist/compile/codegen/code.js.map +0 -1
  264. package/node_modules/ajv/dist/compile/codegen/index.d.ts +0 -79
  265. package/node_modules/ajv/dist/compile/codegen/index.js +0 -697
  266. package/node_modules/ajv/dist/compile/codegen/index.js.map +0 -1
  267. package/node_modules/ajv/dist/compile/codegen/scope.d.ts +0 -79
  268. package/node_modules/ajv/dist/compile/codegen/scope.js +0 -143
  269. package/node_modules/ajv/dist/compile/codegen/scope.js.map +0 -1
  270. package/node_modules/ajv/dist/compile/errors.d.ts +0 -13
  271. package/node_modules/ajv/dist/compile/errors.js +0 -123
  272. package/node_modules/ajv/dist/compile/errors.js.map +0 -1
  273. package/node_modules/ajv/dist/compile/index.d.ts +0 -80
  274. package/node_modules/ajv/dist/compile/index.js +0 -242
  275. package/node_modules/ajv/dist/compile/index.js.map +0 -1
  276. package/node_modules/ajv/dist/compile/jtd/parse.d.ts +0 -4
  277. package/node_modules/ajv/dist/compile/jtd/parse.js +0 -350
  278. package/node_modules/ajv/dist/compile/jtd/parse.js.map +0 -1
  279. package/node_modules/ajv/dist/compile/jtd/serialize.d.ts +0 -4
  280. package/node_modules/ajv/dist/compile/jtd/serialize.js +0 -229
  281. package/node_modules/ajv/dist/compile/jtd/serialize.js.map +0 -1
  282. package/node_modules/ajv/dist/compile/jtd/types.d.ts +0 -6
  283. package/node_modules/ajv/dist/compile/jtd/types.js +0 -14
  284. package/node_modules/ajv/dist/compile/jtd/types.js.map +0 -1
  285. package/node_modules/ajv/dist/compile/names.d.ts +0 -20
  286. package/node_modules/ajv/dist/compile/names.js +0 -28
  287. package/node_modules/ajv/dist/compile/names.js.map +0 -1
  288. package/node_modules/ajv/dist/compile/ref_error.d.ts +0 -6
  289. package/node_modules/ajv/dist/compile/ref_error.js +0 -12
  290. package/node_modules/ajv/dist/compile/ref_error.js.map +0 -1
  291. package/node_modules/ajv/dist/compile/resolve.d.ts +0 -12
  292. package/node_modules/ajv/dist/compile/resolve.js +0 -155
  293. package/node_modules/ajv/dist/compile/resolve.js.map +0 -1
  294. package/node_modules/ajv/dist/compile/rules.d.ts +0 -28
  295. package/node_modules/ajv/dist/compile/rules.js +0 -26
  296. package/node_modules/ajv/dist/compile/rules.js.map +0 -1
  297. package/node_modules/ajv/dist/compile/util.d.ts +0 -40
  298. package/node_modules/ajv/dist/compile/util.js +0 -178
  299. package/node_modules/ajv/dist/compile/util.js.map +0 -1
  300. package/node_modules/ajv/dist/compile/validate/applicability.d.ts +0 -6
  301. package/node_modules/ajv/dist/compile/validate/applicability.js +0 -19
  302. package/node_modules/ajv/dist/compile/validate/applicability.js.map +0 -1
  303. package/node_modules/ajv/dist/compile/validate/boolSchema.d.ts +0 -4
  304. package/node_modules/ajv/dist/compile/validate/boolSchema.js +0 -50
  305. package/node_modules/ajv/dist/compile/validate/boolSchema.js.map +0 -1
  306. package/node_modules/ajv/dist/compile/validate/dataType.d.ts +0 -17
  307. package/node_modules/ajv/dist/compile/validate/dataType.js +0 -203
  308. package/node_modules/ajv/dist/compile/validate/dataType.js.map +0 -1
  309. package/node_modules/ajv/dist/compile/validate/defaults.d.ts +0 -2
  310. package/node_modules/ajv/dist/compile/validate/defaults.js +0 -35
  311. package/node_modules/ajv/dist/compile/validate/defaults.js.map +0 -1
  312. package/node_modules/ajv/dist/compile/validate/index.d.ts +0 -42
  313. package/node_modules/ajv/dist/compile/validate/index.js +0 -520
  314. package/node_modules/ajv/dist/compile/validate/index.js.map +0 -1
  315. package/node_modules/ajv/dist/compile/validate/keyword.d.ts +0 -8
  316. package/node_modules/ajv/dist/compile/validate/keyword.js +0 -124
  317. package/node_modules/ajv/dist/compile/validate/keyword.js.map +0 -1
  318. package/node_modules/ajv/dist/compile/validate/subschema.d.ts +0 -47
  319. package/node_modules/ajv/dist/compile/validate/subschema.js +0 -81
  320. package/node_modules/ajv/dist/compile/validate/subschema.js.map +0 -1
  321. package/node_modules/ajv/dist/core.d.ts +0 -173
  322. package/node_modules/ajv/dist/core.js +0 -618
  323. package/node_modules/ajv/dist/core.js.map +0 -1
  324. package/node_modules/ajv/dist/jtd.d.ts +0 -47
  325. package/node_modules/ajv/dist/jtd.js +0 -72
  326. package/node_modules/ajv/dist/jtd.js.map +0 -1
  327. package/node_modules/ajv/dist/refs/data.json +0 -13
  328. package/node_modules/ajv/dist/refs/json-schema-2019-09/index.d.ts +0 -2
  329. package/node_modules/ajv/dist/refs/json-schema-2019-09/index.js +0 -28
  330. package/node_modules/ajv/dist/refs/json-schema-2019-09/index.js.map +0 -1
  331. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/applicator.json +0 -53
  332. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/content.json +0 -17
  333. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/core.json +0 -57
  334. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/format.json +0 -14
  335. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/meta-data.json +0 -37
  336. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/validation.json +0 -90
  337. package/node_modules/ajv/dist/refs/json-schema-2019-09/schema.json +0 -39
  338. package/node_modules/ajv/dist/refs/json-schema-2020-12/index.d.ts +0 -2
  339. package/node_modules/ajv/dist/refs/json-schema-2020-12/index.js +0 -30
  340. package/node_modules/ajv/dist/refs/json-schema-2020-12/index.js.map +0 -1
  341. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/applicator.json +0 -48
  342. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/content.json +0 -17
  343. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/core.json +0 -51
  344. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/format-annotation.json +0 -14
  345. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/meta-data.json +0 -37
  346. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/unevaluated.json +0 -15
  347. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json +0 -90
  348. package/node_modules/ajv/dist/refs/json-schema-2020-12/schema.json +0 -55
  349. package/node_modules/ajv/dist/refs/json-schema-draft-06.json +0 -137
  350. package/node_modules/ajv/dist/refs/json-schema-draft-07.json +0 -151
  351. package/node_modules/ajv/dist/refs/json-schema-secure.json +0 -88
  352. package/node_modules/ajv/dist/refs/jtd-schema.d.ts +0 -3
  353. package/node_modules/ajv/dist/refs/jtd-schema.js +0 -118
  354. package/node_modules/ajv/dist/refs/jtd-schema.js.map +0 -1
  355. package/node_modules/ajv/dist/runtime/equal.d.ts +0 -6
  356. package/node_modules/ajv/dist/runtime/equal.js +0 -7
  357. package/node_modules/ajv/dist/runtime/equal.js.map +0 -1
  358. package/node_modules/ajv/dist/runtime/parseJson.d.ts +0 -18
  359. package/node_modules/ajv/dist/runtime/parseJson.js +0 -185
  360. package/node_modules/ajv/dist/runtime/parseJson.js.map +0 -1
  361. package/node_modules/ajv/dist/runtime/quote.d.ts +0 -5
  362. package/node_modules/ajv/dist/runtime/quote.js +0 -30
  363. package/node_modules/ajv/dist/runtime/quote.js.map +0 -1
  364. package/node_modules/ajv/dist/runtime/re2.d.ts +0 -6
  365. package/node_modules/ajv/dist/runtime/re2.js +0 -6
  366. package/node_modules/ajv/dist/runtime/re2.js.map +0 -1
  367. package/node_modules/ajv/dist/runtime/timestamp.d.ts +0 -5
  368. package/node_modules/ajv/dist/runtime/timestamp.js +0 -42
  369. package/node_modules/ajv/dist/runtime/timestamp.js.map +0 -1
  370. package/node_modules/ajv/dist/runtime/ucs2length.d.ts +0 -5
  371. package/node_modules/ajv/dist/runtime/ucs2length.js +0 -24
  372. package/node_modules/ajv/dist/runtime/ucs2length.js.map +0 -1
  373. package/node_modules/ajv/dist/runtime/uri.d.ts +0 -6
  374. package/node_modules/ajv/dist/runtime/uri.js +0 -6
  375. package/node_modules/ajv/dist/runtime/uri.js.map +0 -1
  376. package/node_modules/ajv/dist/runtime/validation_error.d.ts +0 -7
  377. package/node_modules/ajv/dist/runtime/validation_error.js +0 -11
  378. package/node_modules/ajv/dist/runtime/validation_error.js.map +0 -1
  379. package/node_modules/ajv/dist/standalone/index.d.ts +0 -6
  380. package/node_modules/ajv/dist/standalone/index.js +0 -90
  381. package/node_modules/ajv/dist/standalone/index.js.map +0 -1
  382. package/node_modules/ajv/dist/standalone/instance.d.ts +0 -12
  383. package/node_modules/ajv/dist/standalone/instance.js +0 -35
  384. package/node_modules/ajv/dist/standalone/instance.js.map +0 -1
  385. package/node_modules/ajv/dist/types/index.d.ts +0 -183
  386. package/node_modules/ajv/dist/types/index.js +0 -3
  387. package/node_modules/ajv/dist/types/index.js.map +0 -1
  388. package/node_modules/ajv/dist/types/json-schema.d.ts +0 -125
  389. package/node_modules/ajv/dist/types/json-schema.js +0 -3
  390. package/node_modules/ajv/dist/types/json-schema.js.map +0 -1
  391. package/node_modules/ajv/dist/types/jtd-schema.d.ts +0 -174
  392. package/node_modules/ajv/dist/types/jtd-schema.js +0 -3
  393. package/node_modules/ajv/dist/types/jtd-schema.js.map +0 -1
  394. package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.d.ts +0 -8
  395. package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +0 -49
  396. package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +0 -1
  397. package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.d.ts +0 -6
  398. package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +0 -106
  399. package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +0 -1
  400. package/node_modules/ajv/dist/vocabularies/applicator/allOf.d.ts +0 -3
  401. package/node_modules/ajv/dist/vocabularies/applicator/allOf.js +0 -23
  402. package/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +0 -1
  403. package/node_modules/ajv/dist/vocabularies/applicator/anyOf.d.ts +0 -4
  404. package/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +0 -12
  405. package/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +0 -1
  406. package/node_modules/ajv/dist/vocabularies/applicator/contains.d.ts +0 -7
  407. package/node_modules/ajv/dist/vocabularies/applicator/contains.js +0 -95
  408. package/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +0 -1
  409. package/node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts +0 -21
  410. package/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +0 -85
  411. package/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +0 -1
  412. package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.d.ts +0 -3
  413. package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js +0 -11
  414. package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js.map +0 -1
  415. package/node_modules/ajv/dist/vocabularies/applicator/if.d.ts +0 -6
  416. package/node_modules/ajv/dist/vocabularies/applicator/if.js +0 -66
  417. package/node_modules/ajv/dist/vocabularies/applicator/if.js.map +0 -1
  418. package/node_modules/ajv/dist/vocabularies/applicator/index.d.ts +0 -13
  419. package/node_modules/ajv/dist/vocabularies/applicator/index.js +0 -44
  420. package/node_modules/ajv/dist/vocabularies/applicator/index.js.map +0 -1
  421. package/node_modules/ajv/dist/vocabularies/applicator/items.d.ts +0 -5
  422. package/node_modules/ajv/dist/vocabularies/applicator/items.js +0 -52
  423. package/node_modules/ajv/dist/vocabularies/applicator/items.js.map +0 -1
  424. package/node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts +0 -6
  425. package/node_modules/ajv/dist/vocabularies/applicator/items2020.js +0 -30
  426. package/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +0 -1
  427. package/node_modules/ajv/dist/vocabularies/applicator/not.d.ts +0 -4
  428. package/node_modules/ajv/dist/vocabularies/applicator/not.js +0 -26
  429. package/node_modules/ajv/dist/vocabularies/applicator/not.js.map +0 -1
  430. package/node_modules/ajv/dist/vocabularies/applicator/oneOf.d.ts +0 -6
  431. package/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +0 -60
  432. package/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +0 -1
  433. package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.d.ts +0 -3
  434. package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +0 -75
  435. package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +0 -1
  436. package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.d.ts +0 -3
  437. package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +0 -12
  438. package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +0 -1
  439. package/node_modules/ajv/dist/vocabularies/applicator/properties.d.ts +0 -3
  440. package/node_modules/ajv/dist/vocabularies/applicator/properties.js +0 -54
  441. package/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +0 -1
  442. package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.d.ts +0 -6
  443. package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +0 -38
  444. package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +0 -1
  445. package/node_modules/ajv/dist/vocabularies/applicator/thenElse.d.ts +0 -3
  446. package/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +0 -13
  447. package/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +0 -1
  448. package/node_modules/ajv/dist/vocabularies/code.d.ts +0 -17
  449. package/node_modules/ajv/dist/vocabularies/code.js +0 -131
  450. package/node_modules/ajv/dist/vocabularies/code.js.map +0 -1
  451. package/node_modules/ajv/dist/vocabularies/core/id.d.ts +0 -3
  452. package/node_modules/ajv/dist/vocabularies/core/id.js +0 -10
  453. package/node_modules/ajv/dist/vocabularies/core/id.js.map +0 -1
  454. package/node_modules/ajv/dist/vocabularies/core/index.d.ts +0 -3
  455. package/node_modules/ajv/dist/vocabularies/core/index.js +0 -16
  456. package/node_modules/ajv/dist/vocabularies/core/index.js.map +0 -1
  457. package/node_modules/ajv/dist/vocabularies/core/ref.d.ts +0 -8
  458. package/node_modules/ajv/dist/vocabularies/core/ref.js +0 -122
  459. package/node_modules/ajv/dist/vocabularies/core/ref.js.map +0 -1
  460. package/node_modules/ajv/dist/vocabularies/discriminator/index.d.ts +0 -5
  461. package/node_modules/ajv/dist/vocabularies/discriminator/index.js +0 -104
  462. package/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +0 -1
  463. package/node_modules/ajv/dist/vocabularies/discriminator/types.d.ts +0 -10
  464. package/node_modules/ajv/dist/vocabularies/discriminator/types.js +0 -9
  465. package/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +0 -1
  466. package/node_modules/ajv/dist/vocabularies/draft2020.d.ts +0 -3
  467. package/node_modules/ajv/dist/vocabularies/draft2020.js +0 -23
  468. package/node_modules/ajv/dist/vocabularies/draft2020.js.map +0 -1
  469. package/node_modules/ajv/dist/vocabularies/draft7.d.ts +0 -3
  470. package/node_modules/ajv/dist/vocabularies/draft7.js +0 -17
  471. package/node_modules/ajv/dist/vocabularies/draft7.js.map +0 -1
  472. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.d.ts +0 -5
  473. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js +0 -30
  474. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js.map +0 -1
  475. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.d.ts +0 -5
  476. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js +0 -51
  477. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js.map +0 -1
  478. package/node_modules/ajv/dist/vocabularies/dynamic/index.d.ts +0 -3
  479. package/node_modules/ajv/dist/vocabularies/dynamic/index.js +0 -9
  480. package/node_modules/ajv/dist/vocabularies/dynamic/index.js.map +0 -1
  481. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.d.ts +0 -3
  482. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js +0 -16
  483. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js.map +0 -1
  484. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.d.ts +0 -3
  485. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js +0 -10
  486. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js.map +0 -1
  487. package/node_modules/ajv/dist/vocabularies/errors.d.ts +0 -9
  488. package/node_modules/ajv/dist/vocabularies/errors.js +0 -3
  489. package/node_modules/ajv/dist/vocabularies/errors.js.map +0 -1
  490. package/node_modules/ajv/dist/vocabularies/format/format.d.ts +0 -8
  491. package/node_modules/ajv/dist/vocabularies/format/format.js +0 -92
  492. package/node_modules/ajv/dist/vocabularies/format/format.js.map +0 -1
  493. package/node_modules/ajv/dist/vocabularies/format/index.d.ts +0 -3
  494. package/node_modules/ajv/dist/vocabularies/format/index.js +0 -6
  495. package/node_modules/ajv/dist/vocabularies/format/index.js.map +0 -1
  496. package/node_modules/ajv/dist/vocabularies/jtd/discriminator.d.ts +0 -6
  497. package/node_modules/ajv/dist/vocabularies/jtd/discriminator.js +0 -71
  498. package/node_modules/ajv/dist/vocabularies/jtd/discriminator.js.map +0 -1
  499. package/node_modules/ajv/dist/vocabularies/jtd/elements.d.ts +0 -5
  500. package/node_modules/ajv/dist/vocabularies/jtd/elements.js +0 -24
  501. package/node_modules/ajv/dist/vocabularies/jtd/elements.js.map +0 -1
  502. package/node_modules/ajv/dist/vocabularies/jtd/enum.d.ts +0 -6
  503. package/node_modules/ajv/dist/vocabularies/jtd/enum.js +0 -43
  504. package/node_modules/ajv/dist/vocabularies/jtd/enum.js.map +0 -1
  505. package/node_modules/ajv/dist/vocabularies/jtd/error.d.ts +0 -9
  506. package/node_modules/ajv/dist/vocabularies/jtd/error.js +0 -20
  507. package/node_modules/ajv/dist/vocabularies/jtd/error.js.map +0 -1
  508. package/node_modules/ajv/dist/vocabularies/jtd/index.d.ts +0 -10
  509. package/node_modules/ajv/dist/vocabularies/jtd/index.js +0 -29
  510. package/node_modules/ajv/dist/vocabularies/jtd/index.js.map +0 -1
  511. package/node_modules/ajv/dist/vocabularies/jtd/metadata.d.ts +0 -5
  512. package/node_modules/ajv/dist/vocabularies/jtd/metadata.js +0 -25
  513. package/node_modules/ajv/dist/vocabularies/jtd/metadata.js.map +0 -1
  514. package/node_modules/ajv/dist/vocabularies/jtd/nullable.d.ts +0 -4
  515. package/node_modules/ajv/dist/vocabularies/jtd/nullable.js +0 -22
  516. package/node_modules/ajv/dist/vocabularies/jtd/nullable.js.map +0 -1
  517. package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.d.ts +0 -3
  518. package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.js +0 -15
  519. package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.js.map +0 -1
  520. package/node_modules/ajv/dist/vocabularies/jtd/properties.d.ts +0 -22
  521. package/node_modules/ajv/dist/vocabularies/jtd/properties.js +0 -149
  522. package/node_modules/ajv/dist/vocabularies/jtd/properties.js.map +0 -1
  523. package/node_modules/ajv/dist/vocabularies/jtd/ref.d.ts +0 -4
  524. package/node_modules/ajv/dist/vocabularies/jtd/ref.js +0 -67
  525. package/node_modules/ajv/dist/vocabularies/jtd/ref.js.map +0 -1
  526. package/node_modules/ajv/dist/vocabularies/jtd/type.d.ts +0 -10
  527. package/node_modules/ajv/dist/vocabularies/jtd/type.js +0 -69
  528. package/node_modules/ajv/dist/vocabularies/jtd/type.js.map +0 -1
  529. package/node_modules/ajv/dist/vocabularies/jtd/union.d.ts +0 -3
  530. package/node_modules/ajv/dist/vocabularies/jtd/union.js +0 -12
  531. package/node_modules/ajv/dist/vocabularies/jtd/union.js.map +0 -1
  532. package/node_modules/ajv/dist/vocabularies/jtd/values.d.ts +0 -5
  533. package/node_modules/ajv/dist/vocabularies/jtd/values.js +0 -51
  534. package/node_modules/ajv/dist/vocabularies/jtd/values.js.map +0 -1
  535. package/node_modules/ajv/dist/vocabularies/metadata.d.ts +0 -3
  536. package/node_modules/ajv/dist/vocabularies/metadata.js +0 -18
  537. package/node_modules/ajv/dist/vocabularies/metadata.js.map +0 -1
  538. package/node_modules/ajv/dist/vocabularies/next.d.ts +0 -3
  539. package/node_modules/ajv/dist/vocabularies/next.js +0 -8
  540. package/node_modules/ajv/dist/vocabularies/next.js.map +0 -1
  541. package/node_modules/ajv/dist/vocabularies/unevaluated/index.d.ts +0 -3
  542. package/node_modules/ajv/dist/vocabularies/unevaluated/index.js +0 -7
  543. package/node_modules/ajv/dist/vocabularies/unevaluated/index.js.map +0 -1
  544. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.d.ts +0 -6
  545. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js +0 -40
  546. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js.map +0 -1
  547. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts +0 -6
  548. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js +0 -65
  549. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js.map +0 -1
  550. package/node_modules/ajv/dist/vocabularies/validation/const.d.ts +0 -6
  551. package/node_modules/ajv/dist/vocabularies/validation/const.js +0 -25
  552. package/node_modules/ajv/dist/vocabularies/validation/const.js.map +0 -1
  553. package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.d.ts +0 -5
  554. package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js +0 -12
  555. package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js.map +0 -1
  556. package/node_modules/ajv/dist/vocabularies/validation/enum.d.ts +0 -8
  557. package/node_modules/ajv/dist/vocabularies/validation/enum.js +0 -48
  558. package/node_modules/ajv/dist/vocabularies/validation/enum.js.map +0 -1
  559. package/node_modules/ajv/dist/vocabularies/validation/index.d.ts +0 -16
  560. package/node_modules/ajv/dist/vocabularies/validation/index.js +0 -33
  561. package/node_modules/ajv/dist/vocabularies/validation/index.js.map +0 -1
  562. package/node_modules/ajv/dist/vocabularies/validation/limitContains.d.ts +0 -3
  563. package/node_modules/ajv/dist/vocabularies/validation/limitContains.js +0 -15
  564. package/node_modules/ajv/dist/vocabularies/validation/limitContains.js.map +0 -1
  565. package/node_modules/ajv/dist/vocabularies/validation/limitItems.d.ts +0 -3
  566. package/node_modules/ajv/dist/vocabularies/validation/limitItems.js +0 -24
  567. package/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +0 -1
  568. package/node_modules/ajv/dist/vocabularies/validation/limitLength.d.ts +0 -3
  569. package/node_modules/ajv/dist/vocabularies/validation/limitLength.js +0 -27
  570. package/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +0 -1
  571. package/node_modules/ajv/dist/vocabularies/validation/limitNumber.d.ts +0 -11
  572. package/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +0 -27
  573. package/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +0 -1
  574. package/node_modules/ajv/dist/vocabularies/validation/limitProperties.d.ts +0 -3
  575. package/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +0 -24
  576. package/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +0 -1
  577. package/node_modules/ajv/dist/vocabularies/validation/multipleOf.d.ts +0 -8
  578. package/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +0 -26
  579. package/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +0 -1
  580. package/node_modules/ajv/dist/vocabularies/validation/pattern.d.ts +0 -8
  581. package/node_modules/ajv/dist/vocabularies/validation/pattern.js +0 -24
  582. package/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +0 -1
  583. package/node_modules/ajv/dist/vocabularies/validation/required.d.ts +0 -8
  584. package/node_modules/ajv/dist/vocabularies/validation/required.js +0 -79
  585. package/node_modules/ajv/dist/vocabularies/validation/required.js.map +0 -1
  586. package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.d.ts +0 -9
  587. package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +0 -64
  588. package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +0 -1
  589. package/node_modules/ajv/lib/2019.ts +0 -81
  590. package/node_modules/ajv/lib/2020.ts +0 -75
  591. package/node_modules/ajv/lib/ajv.ts +0 -70
  592. package/node_modules/ajv/lib/compile/codegen/code.ts +0 -169
  593. package/node_modules/ajv/lib/compile/codegen/index.ts +0 -852
  594. package/node_modules/ajv/lib/compile/codegen/scope.ts +0 -215
  595. package/node_modules/ajv/lib/compile/errors.ts +0 -184
  596. package/node_modules/ajv/lib/compile/index.ts +0 -324
  597. package/node_modules/ajv/lib/compile/jtd/parse.ts +0 -411
  598. package/node_modules/ajv/lib/compile/jtd/serialize.ts +0 -266
  599. package/node_modules/ajv/lib/compile/jtd/types.ts +0 -16
  600. package/node_modules/ajv/lib/compile/names.ts +0 -27
  601. package/node_modules/ajv/lib/compile/ref_error.ts +0 -13
  602. package/node_modules/ajv/lib/compile/resolve.ts +0 -149
  603. package/node_modules/ajv/lib/compile/rules.ts +0 -50
  604. package/node_modules/ajv/lib/compile/util.ts +0 -213
  605. package/node_modules/ajv/lib/compile/validate/applicability.ts +0 -22
  606. package/node_modules/ajv/lib/compile/validate/boolSchema.ts +0 -47
  607. package/node_modules/ajv/lib/compile/validate/dataType.ts +0 -230
  608. package/node_modules/ajv/lib/compile/validate/defaults.ts +0 -32
  609. package/node_modules/ajv/lib/compile/validate/index.ts +0 -582
  610. package/node_modules/ajv/lib/compile/validate/keyword.ts +0 -171
  611. package/node_modules/ajv/lib/compile/validate/subschema.ts +0 -135
  612. package/node_modules/ajv/lib/core.ts +0 -891
  613. package/node_modules/ajv/lib/jtd.ts +0 -132
  614. package/node_modules/ajv/lib/refs/data.json +0 -13
  615. package/node_modules/ajv/lib/refs/json-schema-2019-09/index.ts +0 -28
  616. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/applicator.json +0 -53
  617. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/content.json +0 -17
  618. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/core.json +0 -57
  619. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/format.json +0 -14
  620. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/meta-data.json +0 -37
  621. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/validation.json +0 -90
  622. package/node_modules/ajv/lib/refs/json-schema-2019-09/schema.json +0 -39
  623. package/node_modules/ajv/lib/refs/json-schema-2020-12/index.ts +0 -30
  624. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/applicator.json +0 -48
  625. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/content.json +0 -17
  626. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/core.json +0 -51
  627. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/format-annotation.json +0 -14
  628. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/meta-data.json +0 -37
  629. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/unevaluated.json +0 -15
  630. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/validation.json +0 -90
  631. package/node_modules/ajv/lib/refs/json-schema-2020-12/schema.json +0 -55
  632. package/node_modules/ajv/lib/refs/json-schema-draft-06.json +0 -137
  633. package/node_modules/ajv/lib/refs/json-schema-draft-07.json +0 -151
  634. package/node_modules/ajv/lib/refs/json-schema-secure.json +0 -88
  635. package/node_modules/ajv/lib/refs/jtd-schema.ts +0 -130
  636. package/node_modules/ajv/lib/runtime/equal.ts +0 -7
  637. package/node_modules/ajv/lib/runtime/parseJson.ts +0 -177
  638. package/node_modules/ajv/lib/runtime/quote.ts +0 -31
  639. package/node_modules/ajv/lib/runtime/re2.ts +0 -6
  640. package/node_modules/ajv/lib/runtime/timestamp.ts +0 -46
  641. package/node_modules/ajv/lib/runtime/ucs2length.ts +0 -20
  642. package/node_modules/ajv/lib/runtime/uri.ts +0 -6
  643. package/node_modules/ajv/lib/runtime/validation_error.ts +0 -13
  644. package/node_modules/ajv/lib/standalone/index.ts +0 -100
  645. package/node_modules/ajv/lib/standalone/instance.ts +0 -36
  646. package/node_modules/ajv/lib/types/index.ts +0 -244
  647. package/node_modules/ajv/lib/types/json-schema.ts +0 -187
  648. package/node_modules/ajv/lib/types/jtd-schema.ts +0 -273
  649. package/node_modules/ajv/lib/vocabularies/applicator/additionalItems.ts +0 -56
  650. package/node_modules/ajv/lib/vocabularies/applicator/additionalProperties.ts +0 -118
  651. package/node_modules/ajv/lib/vocabularies/applicator/allOf.ts +0 -22
  652. package/node_modules/ajv/lib/vocabularies/applicator/anyOf.ts +0 -14
  653. package/node_modules/ajv/lib/vocabularies/applicator/contains.ts +0 -109
  654. package/node_modules/ajv/lib/vocabularies/applicator/dependencies.ts +0 -112
  655. package/node_modules/ajv/lib/vocabularies/applicator/dependentSchemas.ts +0 -11
  656. package/node_modules/ajv/lib/vocabularies/applicator/if.ts +0 -80
  657. package/node_modules/ajv/lib/vocabularies/applicator/index.ts +0 -53
  658. package/node_modules/ajv/lib/vocabularies/applicator/items.ts +0 -59
  659. package/node_modules/ajv/lib/vocabularies/applicator/items2020.ts +0 -36
  660. package/node_modules/ajv/lib/vocabularies/applicator/not.ts +0 -38
  661. package/node_modules/ajv/lib/vocabularies/applicator/oneOf.ts +0 -82
  662. package/node_modules/ajv/lib/vocabularies/applicator/patternProperties.ts +0 -91
  663. package/node_modules/ajv/lib/vocabularies/applicator/prefixItems.ts +0 -12
  664. package/node_modules/ajv/lib/vocabularies/applicator/properties.ts +0 -57
  665. package/node_modules/ajv/lib/vocabularies/applicator/propertyNames.ts +0 -50
  666. package/node_modules/ajv/lib/vocabularies/applicator/thenElse.ts +0 -13
  667. package/node_modules/ajv/lib/vocabularies/code.ts +0 -168
  668. package/node_modules/ajv/lib/vocabularies/core/id.ts +0 -10
  669. package/node_modules/ajv/lib/vocabularies/core/index.ts +0 -16
  670. package/node_modules/ajv/lib/vocabularies/core/ref.ts +0 -129
  671. package/node_modules/ajv/lib/vocabularies/discriminator/index.ts +0 -113
  672. package/node_modules/ajv/lib/vocabularies/discriminator/types.ts +0 -12
  673. package/node_modules/ajv/lib/vocabularies/draft2020.ts +0 -23
  674. package/node_modules/ajv/lib/vocabularies/draft7.ts +0 -17
  675. package/node_modules/ajv/lib/vocabularies/dynamic/dynamicAnchor.ts +0 -31
  676. package/node_modules/ajv/lib/vocabularies/dynamic/dynamicRef.ts +0 -51
  677. package/node_modules/ajv/lib/vocabularies/dynamic/index.ts +0 -9
  678. package/node_modules/ajv/lib/vocabularies/dynamic/recursiveAnchor.ts +0 -14
  679. package/node_modules/ajv/lib/vocabularies/dynamic/recursiveRef.ts +0 -10
  680. package/node_modules/ajv/lib/vocabularies/errors.ts +0 -18
  681. package/node_modules/ajv/lib/vocabularies/format/format.ts +0 -120
  682. package/node_modules/ajv/lib/vocabularies/format/index.ts +0 -6
  683. package/node_modules/ajv/lib/vocabularies/jtd/discriminator.ts +0 -89
  684. package/node_modules/ajv/lib/vocabularies/jtd/elements.ts +0 -32
  685. package/node_modules/ajv/lib/vocabularies/jtd/enum.ts +0 -45
  686. package/node_modules/ajv/lib/vocabularies/jtd/error.ts +0 -23
  687. package/node_modules/ajv/lib/vocabularies/jtd/index.ts +0 -37
  688. package/node_modules/ajv/lib/vocabularies/jtd/metadata.ts +0 -24
  689. package/node_modules/ajv/lib/vocabularies/jtd/nullable.ts +0 -21
  690. package/node_modules/ajv/lib/vocabularies/jtd/optionalProperties.ts +0 -15
  691. package/node_modules/ajv/lib/vocabularies/jtd/properties.ts +0 -184
  692. package/node_modules/ajv/lib/vocabularies/jtd/ref.ts +0 -76
  693. package/node_modules/ajv/lib/vocabularies/jtd/type.ts +0 -75
  694. package/node_modules/ajv/lib/vocabularies/jtd/union.ts +0 -12
  695. package/node_modules/ajv/lib/vocabularies/jtd/values.ts +0 -58
  696. package/node_modules/ajv/lib/vocabularies/metadata.ts +0 -17
  697. package/node_modules/ajv/lib/vocabularies/next.ts +0 -8
  698. package/node_modules/ajv/lib/vocabularies/unevaluated/index.ts +0 -7
  699. package/node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedItems.ts +0 -47
  700. package/node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedProperties.ts +0 -85
  701. package/node_modules/ajv/lib/vocabularies/validation/const.ts +0 -28
  702. package/node_modules/ajv/lib/vocabularies/validation/dependentRequired.ts +0 -23
  703. package/node_modules/ajv/lib/vocabularies/validation/enum.ts +0 -54
  704. package/node_modules/ajv/lib/vocabularies/validation/index.ts +0 -49
  705. package/node_modules/ajv/lib/vocabularies/validation/limitContains.ts +0 -16
  706. package/node_modules/ajv/lib/vocabularies/validation/limitItems.ts +0 -26
  707. package/node_modules/ajv/lib/vocabularies/validation/limitLength.ts +0 -30
  708. package/node_modules/ajv/lib/vocabularies/validation/limitNumber.ts +0 -42
  709. package/node_modules/ajv/lib/vocabularies/validation/limitProperties.ts +0 -26
  710. package/node_modules/ajv/lib/vocabularies/validation/multipleOf.ts +0 -34
  711. package/node_modules/ajv/lib/vocabularies/validation/pattern.ts +0 -28
  712. package/node_modules/ajv/lib/vocabularies/validation/required.ts +0 -98
  713. package/node_modules/ajv/lib/vocabularies/validation/uniqueItems.ts +0 -79
  714. package/node_modules/ajv/package.json +0 -126
  715. package/node_modules/ansi-regex/index.d.ts +0 -37
  716. package/node_modules/ansi-regex/index.js +0 -10
  717. package/node_modules/ansi-regex/license +0 -9
  718. package/node_modules/ansi-regex/package.json +0 -55
  719. package/node_modules/ansi-regex/readme.md +0 -78
  720. package/node_modules/ansi-styles/index.d.ts +0 -345
  721. package/node_modules/ansi-styles/index.js +0 -163
  722. package/node_modules/ansi-styles/license +0 -9
  723. package/node_modules/ansi-styles/package.json +0 -56
  724. package/node_modules/ansi-styles/readme.md +0 -152
  725. package/node_modules/astral-regex/index.d.ts +0 -28
  726. package/node_modules/astral-regex/index.js +0 -6
  727. package/node_modules/astral-regex/license +0 -9
  728. package/node_modules/astral-regex/package.json +0 -33
  729. package/node_modules/astral-regex/readme.md +0 -46
  730. package/node_modules/at-least-node/LICENSE +0 -6
  731. package/node_modules/at-least-node/README.md +0 -25
  732. package/node_modules/at-least-node/index.js +0 -5
  733. package/node_modules/at-least-node/package.json +0 -32
  734. package/node_modules/chalk/index.d.ts +0 -415
  735. package/node_modules/chalk/license +0 -9
  736. package/node_modules/chalk/package.json +0 -68
  737. package/node_modules/chalk/readme.md +0 -341
  738. package/node_modules/chalk/source/index.js +0 -229
  739. package/node_modules/chalk/source/templates.js +0 -134
  740. package/node_modules/chalk/source/util.js +0 -39
  741. package/node_modules/color-convert/CHANGELOG.md +0 -54
  742. package/node_modules/color-convert/LICENSE +0 -21
  743. package/node_modules/color-convert/README.md +0 -68
  744. package/node_modules/color-convert/conversions.js +0 -839
  745. package/node_modules/color-convert/index.js +0 -81
  746. package/node_modules/color-convert/package.json +0 -48
  747. package/node_modules/color-convert/route.js +0 -97
  748. package/node_modules/color-name/LICENSE +0 -8
  749. package/node_modules/color-name/README.md +0 -11
  750. package/node_modules/color-name/index.js +0 -152
  751. package/node_modules/color-name/package.json +0 -28
  752. package/node_modules/diff/CONTRIBUTING.md +0 -36
  753. package/node_modules/diff/LICENSE +0 -29
  754. package/node_modules/diff/README.md +0 -339
  755. package/node_modules/diff/dist/diff.js +0 -1730
  756. package/node_modules/diff/dist/diff.min.js +0 -1
  757. package/node_modules/diff/lib/convert/dmp.js +0 -32
  758. package/node_modules/diff/lib/convert/xml.js +0 -42
  759. package/node_modules/diff/lib/diff/array.js +0 -45
  760. package/node_modules/diff/lib/diff/base.js +0 -358
  761. package/node_modules/diff/lib/diff/character.js +0 -37
  762. package/node_modules/diff/lib/diff/css.js +0 -41
  763. package/node_modules/diff/lib/diff/json.js +0 -163
  764. package/node_modules/diff/lib/diff/line.js +0 -94
  765. package/node_modules/diff/lib/diff/sentence.js +0 -41
  766. package/node_modules/diff/lib/diff/word.js +0 -108
  767. package/node_modules/diff/lib/index.es6.js +0 -1699
  768. package/node_modules/diff/lib/index.js +0 -234
  769. package/node_modules/diff/lib/index.mjs +0 -1699
  770. package/node_modules/diff/lib/patch/apply.js +0 -238
  771. package/node_modules/diff/lib/patch/create.js +0 -276
  772. package/node_modules/diff/lib/patch/merge.js +0 -613
  773. package/node_modules/diff/lib/patch/parse.js +0 -167
  774. package/node_modules/diff/lib/patch/reverse.js +0 -63
  775. package/node_modules/diff/lib/util/array.js +0 -32
  776. package/node_modules/diff/lib/util/distance-iterator.js +0 -57
  777. package/node_modules/diff/lib/util/params.js +0 -24
  778. package/node_modules/diff/package.json +0 -89
  779. package/node_modules/diff/release-notes.md +0 -317
  780. package/node_modules/diff/runtime.js +0 -3
  781. package/node_modules/emoji-regex/LICENSE-MIT.txt +0 -20
  782. package/node_modules/emoji-regex/README.md +0 -73
  783. package/node_modules/emoji-regex/es2015/index.js +0 -6
  784. package/node_modules/emoji-regex/es2015/text.js +0 -6
  785. package/node_modules/emoji-regex/index.d.ts +0 -23
  786. package/node_modules/emoji-regex/index.js +0 -6
  787. package/node_modules/emoji-regex/package.json +0 -50
  788. package/node_modules/emoji-regex/text.js +0 -6
  789. package/node_modules/fast-deep-equal/LICENSE +0 -21
  790. package/node_modules/fast-deep-equal/README.md +0 -96
  791. package/node_modules/fast-deep-equal/es6/index.d.ts +0 -2
  792. package/node_modules/fast-deep-equal/es6/index.js +0 -72
  793. package/node_modules/fast-deep-equal/es6/react.d.ts +0 -2
  794. package/node_modules/fast-deep-equal/es6/react.js +0 -79
  795. package/node_modules/fast-deep-equal/index.d.ts +0 -4
  796. package/node_modules/fast-deep-equal/index.js +0 -46
  797. package/node_modules/fast-deep-equal/package.json +0 -61
  798. package/node_modules/fast-deep-equal/react.d.ts +0 -2
  799. package/node_modules/fast-deep-equal/react.js +0 -53
  800. package/node_modules/fast-uri/.gitattributes +0 -2
  801. package/node_modules/fast-uri/.github/.stale.yml +0 -21
  802. package/node_modules/fast-uri/.github/dependabot.yml +0 -13
  803. package/node_modules/fast-uri/.github/tests_checker.yml +0 -8
  804. package/node_modules/fast-uri/.github/workflows/ci.yml +0 -23
  805. package/node_modules/fast-uri/.github/workflows/package-manager-ci.yml +0 -20
  806. package/node_modules/fast-uri/LICENSE +0 -30
  807. package/node_modules/fast-uri/README.md +0 -125
  808. package/node_modules/fast-uri/benchmark.js +0 -105
  809. package/node_modules/fast-uri/index.js +0 -303
  810. package/node_modules/fast-uri/lib/schemes.js +0 -188
  811. package/node_modules/fast-uri/lib/scopedChars.js +0 -30
  812. package/node_modules/fast-uri/lib/utils.js +0 -242
  813. package/node_modules/fast-uri/package.json +0 -39
  814. package/node_modules/fast-uri/test/.gitkeep +0 -0
  815. package/node_modules/fast-uri/test/ajv.test.js +0 -39
  816. package/node_modules/fast-uri/test/compatibility.test.js +0 -131
  817. package/node_modules/fast-uri/test/equal.test.js +0 -103
  818. package/node_modules/fast-uri/test/parse.test.js +0 -318
  819. package/node_modules/fast-uri/test/resolve.test.js +0 -75
  820. package/node_modules/fast-uri/test/serialize.test.js +0 -143
  821. package/node_modules/fast-uri/test/uri-js.test.js +0 -912
  822. package/node_modules/fast-uri/test/util.test.js +0 -23
  823. package/node_modules/fast-uri/types/index.d.ts +0 -53
  824. package/node_modules/fast-uri/types/index.test-d.ts +0 -17
  825. package/node_modules/graphql-mapping-template/LICENSE +0 -201
  826. package/node_modules/graphql-transformer-common/LICENSE +0 -201
  827. package/node_modules/has-flag/index.d.ts +0 -39
  828. package/node_modules/has-flag/index.js +0 -8
  829. package/node_modules/has-flag/license +0 -9
  830. package/node_modules/has-flag/package.json +0 -46
  831. package/node_modules/has-flag/readme.md +0 -89
  832. package/node_modules/is-fullwidth-code-point/index.d.ts +0 -17
  833. package/node_modules/is-fullwidth-code-point/index.js +0 -50
  834. package/node_modules/is-fullwidth-code-point/license +0 -9
  835. package/node_modules/is-fullwidth-code-point/package.json +0 -42
  836. package/node_modules/is-fullwidth-code-point/readme.md +0 -39
  837. package/node_modules/json-schema-traverse/.eslintrc.yml +0 -27
  838. package/node_modules/json-schema-traverse/.github/FUNDING.yml +0 -2
  839. package/node_modules/json-schema-traverse/.github/workflows/build.yml +0 -28
  840. package/node_modules/json-schema-traverse/.github/workflows/publish.yml +0 -27
  841. package/node_modules/json-schema-traverse/LICENSE +0 -21
  842. package/node_modules/json-schema-traverse/README.md +0 -95
  843. package/node_modules/json-schema-traverse/index.d.ts +0 -40
  844. package/node_modules/json-schema-traverse/index.js +0 -93
  845. package/node_modules/json-schema-traverse/package.json +0 -43
  846. package/node_modules/json-schema-traverse/spec/.eslintrc.yml +0 -6
  847. package/node_modules/json-schema-traverse/spec/fixtures/schema.js +0 -125
  848. package/node_modules/json-schema-traverse/spec/index.spec.js +0 -171
  849. package/node_modules/lodash.truncate/LICENSE +0 -47
  850. package/node_modules/lodash.truncate/README.md +0 -18
  851. package/node_modules/lodash.truncate/index.js +0 -632
  852. package/node_modules/lodash.truncate/package.json +0 -17
  853. package/node_modules/require-from-string/index.js +0 -34
  854. package/node_modules/require-from-string/license +0 -21
  855. package/node_modules/require-from-string/package.json +0 -28
  856. package/node_modules/require-from-string/readme.md +0 -56
  857. package/node_modules/slice-ansi/index.js +0 -103
  858. package/node_modules/slice-ansi/license +0 -10
  859. package/node_modules/slice-ansi/package.json +0 -52
  860. package/node_modules/slice-ansi/readme.md +0 -66
  861. package/node_modules/string-width/index.d.ts +0 -29
  862. package/node_modules/string-width/index.js +0 -47
  863. package/node_modules/string-width/license +0 -9
  864. package/node_modules/string-width/package.json +0 -56
  865. package/node_modules/string-width/readme.md +0 -50
  866. package/node_modules/strip-ansi/index.d.ts +0 -17
  867. package/node_modules/strip-ansi/index.js +0 -4
  868. package/node_modules/strip-ansi/license +0 -9
  869. package/node_modules/strip-ansi/package.json +0 -54
  870. package/node_modules/strip-ansi/readme.md +0 -46
  871. package/node_modules/supports-color/browser.js +0 -5
  872. package/node_modules/supports-color/index.js +0 -135
  873. package/node_modules/supports-color/license +0 -9
  874. package/node_modules/supports-color/package.json +0 -53
  875. package/node_modules/supports-color/readme.md +0 -76
  876. package/node_modules/table/LICENSE +0 -24
  877. package/node_modules/table/README.md +0 -837
  878. package/node_modules/table/dist/src/alignSpanningCell.d.ts +0 -7
  879. package/node_modules/table/dist/src/alignSpanningCell.js +0 -48
  880. package/node_modules/table/dist/src/alignSpanningCell.js.map +0 -1
  881. package/node_modules/table/dist/src/alignString.d.ts +0 -6
  882. package/node_modules/table/dist/src/alignString.js +0 -60
  883. package/node_modules/table/dist/src/alignString.js.map +0 -1
  884. package/node_modules/table/dist/src/alignTableData.d.ts +0 -2
  885. package/node_modules/table/dist/src/alignTableData.js +0 -20
  886. package/node_modules/table/dist/src/alignTableData.js.map +0 -1
  887. package/node_modules/table/dist/src/calculateCellHeight.d.ts +0 -4
  888. package/node_modules/table/dist/src/calculateCellHeight.js +0 -12
  889. package/node_modules/table/dist/src/calculateCellHeight.js.map +0 -1
  890. package/node_modules/table/dist/src/calculateMaximumColumnWidths.d.ts +0 -7
  891. package/node_modules/table/dist/src/calculateMaximumColumnWidths.js +0 -36
  892. package/node_modules/table/dist/src/calculateMaximumColumnWidths.js.map +0 -1
  893. package/node_modules/table/dist/src/calculateOutputColumnWidths.d.ts +0 -2
  894. package/node_modules/table/dist/src/calculateOutputColumnWidths.js +0 -10
  895. package/node_modules/table/dist/src/calculateOutputColumnWidths.js.map +0 -1
  896. package/node_modules/table/dist/src/calculateRowHeights.d.ts +0 -5
  897. package/node_modules/table/dist/src/calculateRowHeights.js +0 -42
  898. package/node_modules/table/dist/src/calculateRowHeights.js.map +0 -1
  899. package/node_modules/table/dist/src/calculateSpanningCellWidth.d.ts +0 -3
  900. package/node_modules/table/dist/src/calculateSpanningCellWidth.js +0 -26
  901. package/node_modules/table/dist/src/calculateSpanningCellWidth.js.map +0 -1
  902. package/node_modules/table/dist/src/createStream.d.ts +0 -2
  903. package/node_modules/table/dist/src/createStream.js +0 -74
  904. package/node_modules/table/dist/src/createStream.js.map +0 -1
  905. package/node_modules/table/dist/src/drawBorder.d.ts +0 -34
  906. package/node_modules/table/dist/src/drawBorder.js +0 -202
  907. package/node_modules/table/dist/src/drawBorder.js.map +0 -1
  908. package/node_modules/table/dist/src/drawContent.d.ts +0 -14
  909. package/node_modules/table/dist/src/drawContent.js +0 -51
  910. package/node_modules/table/dist/src/drawContent.js.map +0 -1
  911. package/node_modules/table/dist/src/drawRow.d.ts +0 -10
  912. package/node_modules/table/dist/src/drawRow.js +0 -25
  913. package/node_modules/table/dist/src/drawRow.js.map +0 -1
  914. package/node_modules/table/dist/src/drawTable.d.ts +0 -2
  915. package/node_modules/table/dist/src/drawTable.js +0 -31
  916. package/node_modules/table/dist/src/drawTable.js.map +0 -1
  917. package/node_modules/table/dist/src/generated/validators.d.ts +0 -13
  918. package/node_modules/table/dist/src/generated/validators.js +0 -2694
  919. package/node_modules/table/dist/src/generated/validators.js.map +0 -1
  920. package/node_modules/table/dist/src/getBorderCharacters.d.ts +0 -2
  921. package/node_modules/table/dist/src/getBorderCharacters.js +0 -105
  922. package/node_modules/table/dist/src/getBorderCharacters.js.map +0 -1
  923. package/node_modules/table/dist/src/index.d.ts +0 -5
  924. package/node_modules/table/dist/src/index.js +0 -21
  925. package/node_modules/table/dist/src/index.js.map +0 -1
  926. package/node_modules/table/dist/src/injectHeaderConfig.d.ts +0 -3
  927. package/node_modules/table/dist/src/injectHeaderConfig.js +0 -29
  928. package/node_modules/table/dist/src/injectHeaderConfig.js.map +0 -1
  929. package/node_modules/table/dist/src/makeRangeConfig.d.ts +0 -3
  930. package/node_modules/table/dist/src/makeRangeConfig.js +0 -18
  931. package/node_modules/table/dist/src/makeRangeConfig.js.map +0 -1
  932. package/node_modules/table/dist/src/makeStreamConfig.d.ts +0 -7
  933. package/node_modules/table/dist/src/makeStreamConfig.js +0 -43
  934. package/node_modules/table/dist/src/makeStreamConfig.js.map +0 -1
  935. package/node_modules/table/dist/src/makeTableConfig.d.ts +0 -7
  936. package/node_modules/table/dist/src/makeTableConfig.js +0 -62
  937. package/node_modules/table/dist/src/makeTableConfig.js.map +0 -1
  938. package/node_modules/table/dist/src/mapDataUsingRowHeights.d.ts +0 -4
  939. package/node_modules/table/dist/src/mapDataUsingRowHeights.js +0 -52
  940. package/node_modules/table/dist/src/mapDataUsingRowHeights.js.map +0 -1
  941. package/node_modules/table/dist/src/padTableData.d.ts +0 -3
  942. package/node_modules/table/dist/src/padTableData.js +0 -23
  943. package/node_modules/table/dist/src/padTableData.js.map +0 -1
  944. package/node_modules/table/dist/src/schemas/config.json +0 -95
  945. package/node_modules/table/dist/src/schemas/shared.json +0 -139
  946. package/node_modules/table/dist/src/schemas/streamConfig.json +0 -25
  947. package/node_modules/table/dist/src/spanningCellManager.d.ts +0 -23
  948. package/node_modules/table/dist/src/spanningCellManager.js +0 -95
  949. package/node_modules/table/dist/src/spanningCellManager.js.map +0 -1
  950. package/node_modules/table/dist/src/stringifyTableData.d.ts +0 -2
  951. package/node_modules/table/dist/src/stringifyTableData.js +0 -13
  952. package/node_modules/table/dist/src/stringifyTableData.js.map +0 -1
  953. package/node_modules/table/dist/src/table.d.ts +0 -2
  954. package/node_modules/table/dist/src/table.js +0 -32
  955. package/node_modules/table/dist/src/table.js.map +0 -1
  956. package/node_modules/table/dist/src/truncateTableData.d.ts +0 -6
  957. package/node_modules/table/dist/src/truncateTableData.js +0 -24
  958. package/node_modules/table/dist/src/truncateTableData.js.map +0 -1
  959. package/node_modules/table/dist/src/types/api.d.ts +0 -130
  960. package/node_modules/table/dist/src/types/api.js +0 -3
  961. package/node_modules/table/dist/src/types/api.js.map +0 -1
  962. package/node_modules/table/dist/src/types/internal.d.ts +0 -1
  963. package/node_modules/table/dist/src/types/internal.js +0 -3
  964. package/node_modules/table/dist/src/types/internal.js.map +0 -1
  965. package/node_modules/table/dist/src/utils.d.ts +0 -9
  966. package/node_modules/table/dist/src/utils.js +0 -134
  967. package/node_modules/table/dist/src/utils.js.map +0 -1
  968. package/node_modules/table/dist/src/validateConfig.d.ts +0 -2
  969. package/node_modules/table/dist/src/validateConfig.js +0 -27
  970. package/node_modules/table/dist/src/validateConfig.js.map +0 -1
  971. package/node_modules/table/dist/src/validateSpanningCellConfig.d.ts +0 -3
  972. package/node_modules/table/dist/src/validateSpanningCellConfig.js +0 -46
  973. package/node_modules/table/dist/src/validateSpanningCellConfig.js.map +0 -1
  974. package/node_modules/table/dist/src/validateTableData.d.ts +0 -1
  975. package/node_modules/table/dist/src/validateTableData.js +0 -32
  976. package/node_modules/table/dist/src/validateTableData.js.map +0 -1
  977. package/node_modules/table/dist/src/wrapCell.d.ts +0 -8
  978. package/node_modules/table/dist/src/wrapCell.js +0 -33
  979. package/node_modules/table/dist/src/wrapCell.js.map +0 -1
  980. package/node_modules/table/dist/src/wrapString.d.ts +0 -9
  981. package/node_modules/table/dist/src/wrapString.js +0 -27
  982. package/node_modules/table/dist/src/wrapString.js.map +0 -1
  983. package/node_modules/table/dist/src/wrapWord.d.ts +0 -1
  984. package/node_modules/table/dist/src/wrapWord.js +0 -42
  985. package/node_modules/table/dist/src/wrapWord.js.map +0 -1
  986. package/node_modules/table/package.json +0 -77
@@ -1,457 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isPropertyDifference = exports.ResourceDifference = exports.ResourceImpact = exports.ParameterDifference = exports.OutputDifference = exports.MetadataDifference = exports.MappingDifference = exports.ConditionDifference = exports.DifferenceCollection = exports.PropertyDifference = exports.Difference = exports.TemplateDiff = void 0;
4
- const assert_1 = require("assert");
5
- const cfnspec = require("@aws-cdk/cfnspec");
6
- const util_1 = require("./util");
7
- const iam_changes_1 = require("../iam/iam-changes");
8
- const security_group_changes_1 = require("../network/security-group-changes");
9
- /** Semantic differences between two CloudFormation templates. */
10
- class TemplateDiff {
11
- constructor(args) {
12
- if (args.awsTemplateFormatVersion !== undefined) {
13
- this.awsTemplateFormatVersion = args.awsTemplateFormatVersion;
14
- }
15
- if (args.description !== undefined) {
16
- this.description = args.description;
17
- }
18
- if (args.transform !== undefined) {
19
- this.transform = args.transform;
20
- }
21
- this.conditions = args.conditions || new DifferenceCollection({});
22
- this.mappings = args.mappings || new DifferenceCollection({});
23
- this.metadata = args.metadata || new DifferenceCollection({});
24
- this.outputs = args.outputs || new DifferenceCollection({});
25
- this.parameters = args.parameters || new DifferenceCollection({});
26
- this.resources = args.resources || new DifferenceCollection({});
27
- this.unknown = args.unknown || new DifferenceCollection({});
28
- this.iamChanges = new iam_changes_1.IamChanges({
29
- propertyChanges: this.scrutinizablePropertyChanges(iam_changes_1.IamChanges.IamPropertyScrutinies),
30
- resourceChanges: this.scrutinizableResourceChanges(iam_changes_1.IamChanges.IamResourceScrutinies),
31
- });
32
- this.securityGroupChanges = new security_group_changes_1.SecurityGroupChanges({
33
- egressRulePropertyChanges: this.scrutinizablePropertyChanges([cfnspec.schema.PropertyScrutinyType.EgressRules]),
34
- ingressRulePropertyChanges: this.scrutinizablePropertyChanges([cfnspec.schema.PropertyScrutinyType.IngressRules]),
35
- egressRuleResourceChanges: this.scrutinizableResourceChanges([cfnspec.schema.ResourceScrutinyType.EgressRuleResource]),
36
- ingressRuleResourceChanges: this.scrutinizableResourceChanges([cfnspec.schema.ResourceScrutinyType.IngressRuleResource]),
37
- });
38
- }
39
- get differenceCount() {
40
- let count = 0;
41
- if (this.awsTemplateFormatVersion !== undefined) {
42
- count += 1;
43
- }
44
- if (this.description !== undefined) {
45
- count += 1;
46
- }
47
- if (this.transform !== undefined) {
48
- count += 1;
49
- }
50
- count += this.conditions.differenceCount;
51
- count += this.mappings.differenceCount;
52
- count += this.metadata.differenceCount;
53
- count += this.outputs.differenceCount;
54
- count += this.parameters.differenceCount;
55
- count += this.resources.differenceCount;
56
- count += this.unknown.differenceCount;
57
- return count;
58
- }
59
- get isEmpty() {
60
- return this.differenceCount === 0;
61
- }
62
- /**
63
- * Return true if any of the permissions objects involve a broadening of permissions
64
- */
65
- get permissionsBroadened() {
66
- return this.iamChanges.permissionsBroadened || this.securityGroupChanges.rulesAdded;
67
- }
68
- /**
69
- * Return true if any of the permissions objects have changed
70
- */
71
- get permissionsAnyChanges() {
72
- return this.iamChanges.hasChanges || this.securityGroupChanges.hasChanges;
73
- }
74
- /**
75
- * Return all property changes of a given scrutiny type
76
- *
77
- * We don't just look at property updates; we also look at resource additions and deletions (in which
78
- * case there is no further detail on property values), and resource type changes.
79
- */
80
- scrutinizablePropertyChanges(scrutinyTypes) {
81
- const ret = new Array();
82
- for (const [resourceLogicalId, resourceChange] of Object.entries(this.resources.changes)) {
83
- if (resourceChange.resourceTypeChanged) {
84
- // we ignore resource type changes here, and handle them in scrutinizableResourceChanges()
85
- continue;
86
- }
87
- const props = cfnspec.scrutinizablePropertyNames(resourceChange.newResourceType, scrutinyTypes);
88
- for (const propertyName of props) {
89
- ret.push({
90
- resourceLogicalId,
91
- propertyName,
92
- resourceType: resourceChange.resourceType,
93
- scrutinyType: cfnspec.propertySpecification(resourceChange.resourceType, propertyName).ScrutinyType,
94
- oldValue: resourceChange.oldProperties && resourceChange.oldProperties[propertyName],
95
- newValue: resourceChange.newProperties && resourceChange.newProperties[propertyName],
96
- });
97
- }
98
- }
99
- return ret;
100
- }
101
- /**
102
- * Return all resource changes of a given scrutiny type
103
- *
104
- * We don't just look at resource updates; we also look at resource additions and deletions (in which
105
- * case there is no further detail on property values), and resource type changes.
106
- */
107
- scrutinizableResourceChanges(scrutinyTypes) {
108
- const ret = new Array();
109
- const scrutinizableTypes = new Set(cfnspec.scrutinizableResourceTypes(scrutinyTypes));
110
- for (const [resourceLogicalId, resourceChange] of Object.entries(this.resources.changes)) {
111
- if (!resourceChange) {
112
- continue;
113
- }
114
- const commonProps = {
115
- oldProperties: resourceChange.oldProperties,
116
- newProperties: resourceChange.newProperties,
117
- resourceLogicalId,
118
- };
119
- // changes to the Type of resources can happen when migrating from CFN templates that use Transforms
120
- if (resourceChange.resourceTypeChanged) {
121
- // Treat as DELETE+ADD
122
- if (scrutinizableTypes.has(resourceChange.oldResourceType)) {
123
- ret.push({
124
- ...commonProps,
125
- newProperties: undefined,
126
- resourceType: resourceChange.oldResourceType,
127
- scrutinyType: cfnspec.resourceSpecification(resourceChange.oldResourceType).ScrutinyType,
128
- });
129
- }
130
- if (scrutinizableTypes.has(resourceChange.newResourceType)) {
131
- ret.push({
132
- ...commonProps,
133
- oldProperties: undefined,
134
- resourceType: resourceChange.newResourceType,
135
- scrutinyType: cfnspec.resourceSpecification(resourceChange.newResourceType).ScrutinyType,
136
- });
137
- }
138
- }
139
- else {
140
- if (scrutinizableTypes.has(resourceChange.resourceType)) {
141
- ret.push({
142
- ...commonProps,
143
- resourceType: resourceChange.resourceType,
144
- scrutinyType: cfnspec.resourceSpecification(resourceChange.resourceType).ScrutinyType,
145
- });
146
- }
147
- }
148
- }
149
- return ret;
150
- }
151
- }
152
- exports.TemplateDiff = TemplateDiff;
153
- /**
154
- * Models an entity that changed between two versions of a CloudFormation template.
155
- */
156
- class Difference {
157
- /**
158
- * @param oldValue the old value, cannot be equal (to the sense of +deepEqual+) to +newValue+.
159
- * @param newValue the new value, cannot be equal (to the sense of +deepEqual+) to +oldValue+.
160
- */
161
- constructor(oldValue, newValue) {
162
- this.oldValue = oldValue;
163
- this.newValue = newValue;
164
- if (oldValue === undefined && newValue === undefined) {
165
- throw new assert_1.AssertionError({ message: 'oldValue and newValue are both undefined!' });
166
- }
167
- this.isDifferent = !util_1.deepEqual(oldValue, newValue);
168
- }
169
- /** @returns +true+ if the element is new to the template. */
170
- get isAddition() {
171
- return this.oldValue === undefined;
172
- }
173
- /** @returns +true+ if the element was removed from the template. */
174
- get isRemoval() {
175
- return this.newValue === undefined;
176
- }
177
- /** @returns +true+ if the element was already in the template and is updated. */
178
- get isUpdate() {
179
- return this.oldValue !== undefined
180
- && this.newValue !== undefined;
181
- }
182
- }
183
- exports.Difference = Difference;
184
- class PropertyDifference extends Difference {
185
- constructor(oldValue, newValue, args) {
186
- super(oldValue, newValue);
187
- this.changeImpact = args.changeImpact;
188
- }
189
- }
190
- exports.PropertyDifference = PropertyDifference;
191
- class DifferenceCollection {
192
- constructor(diffs) {
193
- this.diffs = diffs;
194
- }
195
- get changes() {
196
- return onlyChanges(this.diffs);
197
- }
198
- get differenceCount() {
199
- return Object.values(this.changes).length;
200
- }
201
- get(logicalId) {
202
- const ret = this.diffs[logicalId];
203
- if (!ret) {
204
- throw new Error(`No object with logical ID '${logicalId}'`);
205
- }
206
- return ret;
207
- }
208
- get logicalIds() {
209
- return Object.keys(this.changes);
210
- }
211
- /**
212
- * Returns a new TemplateDiff which only contains changes for which `predicate`
213
- * returns `true`.
214
- */
215
- filter(predicate) {
216
- const newChanges = {};
217
- for (const id of Object.keys(this.changes)) {
218
- const diff = this.changes[id];
219
- if (predicate(diff)) {
220
- newChanges[id] = diff;
221
- }
222
- }
223
- return new DifferenceCollection(newChanges);
224
- }
225
- /**
226
- * Invokes `cb` for all changes in this collection.
227
- *
228
- * Changes will be sorted as follows:
229
- * - Removed
230
- * - Added
231
- * - Updated
232
- * - Others
233
- *
234
- * @param cb
235
- */
236
- forEachDifference(cb) {
237
- const removed = new Array();
238
- const added = new Array();
239
- const updated = new Array();
240
- const others = new Array();
241
- for (const logicalId of this.logicalIds) {
242
- const change = this.changes[logicalId];
243
- if (change.isAddition) {
244
- added.push({ logicalId, change });
245
- }
246
- else if (change.isRemoval) {
247
- removed.push({ logicalId, change });
248
- }
249
- else if (change.isUpdate) {
250
- updated.push({ logicalId, change });
251
- }
252
- else if (change.isDifferent) {
253
- others.push({ logicalId, change });
254
- }
255
- }
256
- removed.forEach(v => cb(v.logicalId, v.change));
257
- added.forEach(v => cb(v.logicalId, v.change));
258
- updated.forEach(v => cb(v.logicalId, v.change));
259
- others.forEach(v => cb(v.logicalId, v.change));
260
- }
261
- }
262
- exports.DifferenceCollection = DifferenceCollection;
263
- class ConditionDifference extends Difference {
264
- }
265
- exports.ConditionDifference = ConditionDifference;
266
- class MappingDifference extends Difference {
267
- }
268
- exports.MappingDifference = MappingDifference;
269
- class MetadataDifference extends Difference {
270
- }
271
- exports.MetadataDifference = MetadataDifference;
272
- class OutputDifference extends Difference {
273
- }
274
- exports.OutputDifference = OutputDifference;
275
- class ParameterDifference extends Difference {
276
- }
277
- exports.ParameterDifference = ParameterDifference;
278
- var ResourceImpact;
279
- (function (ResourceImpact) {
280
- /** The existing physical resource will be updated */
281
- ResourceImpact["WILL_UPDATE"] = "WILL_UPDATE";
282
- /** A new physical resource will be created */
283
- ResourceImpact["WILL_CREATE"] = "WILL_CREATE";
284
- /** The existing physical resource will be replaced */
285
- ResourceImpact["WILL_REPLACE"] = "WILL_REPLACE";
286
- /** The existing physical resource may be replaced */
287
- ResourceImpact["MAY_REPLACE"] = "MAY_REPLACE";
288
- /** The existing physical resource will be destroyed */
289
- ResourceImpact["WILL_DESTROY"] = "WILL_DESTROY";
290
- /** The existing physical resource will be removed from CloudFormation supervision */
291
- ResourceImpact["WILL_ORPHAN"] = "WILL_ORPHAN";
292
- /** There is no change in this resource */
293
- ResourceImpact["NO_CHANGE"] = "NO_CHANGE";
294
- })(ResourceImpact = exports.ResourceImpact || (exports.ResourceImpact = {}));
295
- /**
296
- * This function can be used as a reducer to obtain the resource-level impact of a list
297
- * of property-level impacts.
298
- * @param one the current worst impact so far.
299
- * @param two the new impact being considered (can be undefined, as we may not always be
300
- * able to determine some peroperty's impact).
301
- */
302
- function worstImpact(one, two) {
303
- if (!two) {
304
- return one;
305
- }
306
- const badness = {
307
- [ResourceImpact.NO_CHANGE]: 0,
308
- [ResourceImpact.WILL_UPDATE]: 1,
309
- [ResourceImpact.WILL_CREATE]: 2,
310
- [ResourceImpact.WILL_ORPHAN]: 3,
311
- [ResourceImpact.MAY_REPLACE]: 4,
312
- [ResourceImpact.WILL_REPLACE]: 5,
313
- [ResourceImpact.WILL_DESTROY]: 6,
314
- };
315
- return badness[one] > badness[two] ? one : two;
316
- }
317
- /**
318
- * Change to a single resource between two CloudFormation templates
319
- *
320
- * This class can be mutated after construction.
321
- */
322
- class ResourceDifference {
323
- constructor(oldValue, newValue, args) {
324
- this.oldValue = oldValue;
325
- this.newValue = newValue;
326
- this.resourceTypes = args.resourceType;
327
- this.propertyDiffs = args.propertyDiffs;
328
- this.otherDiffs = args.otherDiffs;
329
- this.isAddition = oldValue === undefined;
330
- this.isRemoval = newValue === undefined;
331
- }
332
- get oldProperties() {
333
- return this.oldValue && this.oldValue.Properties;
334
- }
335
- get newProperties() {
336
- return this.newValue && this.newValue.Properties;
337
- }
338
- /**
339
- * Whether this resource was modified at all
340
- */
341
- get isDifferent() {
342
- return this.differenceCount > 0 || this.oldResourceType !== this.newResourceType;
343
- }
344
- /**
345
- * Whether the resource was updated in-place
346
- */
347
- get isUpdate() {
348
- return this.isDifferent && !this.isAddition && !this.isRemoval;
349
- }
350
- get oldResourceType() {
351
- return this.resourceTypes.oldType;
352
- }
353
- get newResourceType() {
354
- return this.resourceTypes.newType;
355
- }
356
- /**
357
- * All actual property updates
358
- */
359
- get propertyUpdates() {
360
- return onlyChanges(this.propertyDiffs);
361
- }
362
- /**
363
- * All actual "other" updates
364
- */
365
- get otherChanges() {
366
- return onlyChanges(this.otherDiffs);
367
- }
368
- /**
369
- * Return whether the resource type was changed in this diff
370
- *
371
- * This is not a valid operation in CloudFormation but to be defensive we're going
372
- * to be aware of it anyway.
373
- */
374
- get resourceTypeChanged() {
375
- return (this.resourceTypes.oldType !== undefined
376
- && this.resourceTypes.newType !== undefined
377
- && this.resourceTypes.oldType !== this.resourceTypes.newType);
378
- }
379
- /**
380
- * Return the resource type if it was unchanged
381
- *
382
- * If the resource type was changed, it's an error to call this.
383
- */
384
- get resourceType() {
385
- if (this.resourceTypeChanged) {
386
- throw new Error('Cannot get .resourceType, because the type was changed');
387
- }
388
- return this.resourceTypes.oldType || this.resourceTypes.newType;
389
- }
390
- /**
391
- * Replace a PropertyChange in this object
392
- *
393
- * This affects the property diff as it is summarized to users, but it DOES
394
- * NOT affect either the "oldValue" or "newValue" values; those still contain
395
- * the actual template values as provided by the user (they might still be
396
- * used for downstream processing).
397
- */
398
- setPropertyChange(propertyName, change) {
399
- this.propertyDiffs[propertyName] = change;
400
- }
401
- get changeImpact() {
402
- // Check the Type first
403
- if (this.resourceTypes.oldType !== this.resourceTypes.newType) {
404
- if (this.resourceTypes.oldType === undefined) {
405
- return ResourceImpact.WILL_CREATE;
406
- }
407
- if (this.resourceTypes.newType === undefined) {
408
- return this.oldValue.DeletionPolicy === 'Retain'
409
- ? ResourceImpact.WILL_ORPHAN
410
- : ResourceImpact.WILL_DESTROY;
411
- }
412
- return ResourceImpact.WILL_REPLACE;
413
- }
414
- // Base impact (before we mix in the worst of the property impacts);
415
- // WILL_UPDATE if we have "other" changes, NO_CHANGE if there are no "other" changes.
416
- const baseImpact = Object.keys(this.otherChanges).length > 0 ? ResourceImpact.WILL_UPDATE : ResourceImpact.NO_CHANGE;
417
- return Object.values(this.propertyDiffs)
418
- .map(elt => elt.changeImpact)
419
- .reduce(worstImpact, baseImpact);
420
- }
421
- /**
422
- * Count of actual differences (not of elements)
423
- */
424
- get differenceCount() {
425
- return Object.values(this.propertyUpdates).length
426
- + Object.values(this.otherChanges).length;
427
- }
428
- /**
429
- * Invoke a callback for each actual difference
430
- */
431
- forEachDifference(cb) {
432
- for (const key of Object.keys(this.propertyUpdates).sort()) {
433
- cb('Property', key, this.propertyUpdates[key]);
434
- }
435
- for (const key of Object.keys(this.otherChanges).sort()) {
436
- cb('Other', key, this.otherDiffs[key]);
437
- }
438
- }
439
- }
440
- exports.ResourceDifference = ResourceDifference;
441
- function isPropertyDifference(diff) {
442
- return diff.changeImpact !== undefined;
443
- }
444
- exports.isPropertyDifference = isPropertyDifference;
445
- /**
446
- * Filter a map of IDifferences down to only retain the actual changes
447
- */
448
- function onlyChanges(xs) {
449
- const ret = {};
450
- for (const [key, diff] of Object.entries(xs)) {
451
- if (diff.isDifferent) {
452
- ret[key] = diff;
453
- }
454
- }
455
- return ret;
456
- }
457
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBd0M7QUFDeEMsNENBQTRDO0FBQzVDLGlDQUFtQztBQUNuQyxvREFBZ0Q7QUFDaEQsOEVBQXlFO0FBSXpFLGlFQUFpRTtBQUNqRSxNQUFhLFlBQVk7SUF1QnZCLFlBQVksSUFBbUI7UUFDN0IsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEtBQUssU0FBUyxFQUFFO1lBQy9DLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUM7U0FDL0Q7UUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUNyQztRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ2pDO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFNBQVMs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TSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzlDLENBQUM7SUFFRDs7T0FFRztJQUNJLGlCQUFpQixDQUFDLEVBQXVHO1FBQzlILEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDMUQsRUFBRSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ2hEO1FBQ0QsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN2RCxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDeEM7SUFDSCxDQUFDO0NBQ0Y7QUE3SkQsZ0RBNkpDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUksSUFBbUI7SUFDekQsT0FBUSxJQUE4QixDQUFDLFlBQVksS0FBSyxTQUFTLENBQUM7QUFDcEUsQ0FBQztBQUZELG9EQUVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLFdBQVcsQ0FBOEIsRUFBc0I7SUFDdEUsTUFBTSxHQUFHLEdBQXlCLEVBQUUsQ0FBQztJQUNyQyxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUM1QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztTQUNqQjtLQUNGO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXNzZXJ0aW9uRXJyb3IgfSBmcm9tICdhc3NlcnQnO1xuaW1wb3J0ICogYXMgY2Zuc3BlYyBmcm9tICdAYXdzLWNkay9jZm5zcGVjJztcbmltcG9ydCB7IGRlZXBFcXVhbCB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgeyBJYW1DaGFuZ2VzIH0gZnJvbSAnLi4vaWFtL2lhbS1jaGFuZ2VzJztcbmltcG9ydCB7IFNlY3VyaXR5R3JvdXBDaGFuZ2VzIH0gZnJvbSAnLi4vbmV0d29yay9zZWN1cml0eS1ncm91cC1jaGFuZ2VzJztcblxuZXhwb3J0IHR5cGUgUHJvcGVydHlNYXAgPSB7W2tleTogc3RyaW5nXTogYW55IH07XG5cbi8qKiBTZW1hbnRpYyBkaWZmZXJlbmNlcyBiZXR3ZWVuIHR3byBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZXMuICovXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVEaWZmIGltcGxlbWVudHMgSVRlbXBsYXRlRGlmZiB7XG4gIHB1YmxpYyBhd3NUZW1wbGF0ZUZvcm1hdFZlcnNpb24/OiBEaWZmZXJlbmNlPHN0cmluZz47XG4gIHB1YmxpYyBkZXNjcmlwdGlvbj86IERpZmZlcmVuY2U8c3RyaW5nPjtcbiAgcHVibGljIHRyYW5zZm9ybT86IERpZmZlcmVuY2U8c3RyaW5nPjtcbiAgcHVibGljIGNvbmRpdGlvbnM6IERpZmZlcmVuY2VDb2xsZWN0aW9uPENvbmRpdGlvbiwgQ29uZGl0aW9uRGlmZmVyZW5jZT47XG4gIHB1YmxpYyBtYXBwaW5nczogRGlmZmVyZW5jZUNvbGxlY3Rpb248TWFwcGluZywgTWFwcGluZ0RpZmZlcmVuY2U+O1xuICBwdWJsaWMgbWV0YWRhdGE6IERpZmZlcmVuY2VDb2xsZWN0aW9uPE1ldGFkYXRhLCBNZXRhZGF0YURpZmZlcmVuY2U+O1xuICBwdWJsaWMgb3V0cHV0czogRGlmZmVyZW5jZUNvbGxlY3Rpb248T3V0cHV0LCBPdXRwdXREaWZmZXJlbmNlPjtcbiAgcHVibGljIHBhcmFtZXRlcnM6IERpZmZlcmVuY2VDb2xsZWN0aW9uPFBhcmFtZXRlciwgUGFyYW1ldGVyRGlmZmVyZW5jZT47XG4gIHB1YmxpYyByZXNvdXJjZXM6IERpZmZlcmVuY2VDb2xsZWN0aW9uPFJlc291cmNlLCBSZXNvdXJjZURpZmZlcmVuY2U+O1xuICAvKiogVGhlIGRpZmZlcmVuY2VzIGluIHVua25vd24vdW5leHBlY3RlZCBwYXJ0cyBvZiB0aGUgdGVtcGxhdGUgKi9cbiAgcHVibGljIHVua25vd246IERpZmZlcmVuY2VDb2xsZWN0aW9uPGFueSwgRGlmZmVyZW5jZTxhbnk+PjtcblxuICAvKipcbiAgICogQ2hhbmdlcyB0byBJQU0gcG9saWNpZXNcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpYW1DaGFuZ2VzOiBJYW1DaGFuZ2VzO1xuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRvIFNlY3VyaXR5IEdyb3VwIGluZ3Jlc3MgYW5kIGVncmVzcyBydWxlc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBDaGFuZ2VzOiBTZWN1cml0eUdyb3VwQ2hhbmdlcztcblxuICBjb25zdHJ1Y3RvcihhcmdzOiBJVGVtcGxhdGVEaWZmKSB7XG4gICAgaWYgKGFyZ3MuYXdzVGVtcGxhdGVGb3JtYXRWZXJzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYXdzVGVtcGxhdGVGb3JtYXRWZXJzaW9uID0gYXJncy5hd3NUZW1wbGF0ZUZvcm1hdFZlcnNpb247XG4gICAgfVxuICAgIGlmIChhcmdzLmRlc2NyaXB0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSBhcmdzLmRlc2NyaXB0aW9uO1xuICAgIH1cbiAgICBpZiAoYXJncy50cmFuc2Zvcm0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy50cmFuc2Zvcm0gPSBhcmdzLnRyYW5zZm9ybTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbmRpdGlvbnMgPSBhcmdzLmNvbmRpdGlvbnMgfHwgbmV3IERpZmZlcmVuY2VDb2xsZWN0aW9uKHt9KTtcbiAgICB0aGlzLm1hcHBpbmdzID0gYXJncy5tYXBwaW5ncyB8fCBuZXcgRGlmZmVyZW5jZUNvbGxlY3Rpb24oe30pO1xuICAgIHRoaXMubWV0YWRhdGEgPSBhcmdzLm1ldGFkYXRhIHx8IG5ldyBEaWZmZXJlbmNlQ29sbGVjdGlvbih7fSk7XG4gICAgdGhpcy5vdXRwdXRzID0gYXJncy5vdXRwdXRzIHx8IG5ldyBEaWZmZXJlbmNlQ29sbGVjdGlvbih7fSk7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gYXJncy5wYXJhbWV0ZXJzIHx8IG5ldyBEaWZmZXJlbmNlQ29sbGVjdGlvbih7fSk7XG4gICAgdGhpcy5yZXNvdXJjZXMgPSBhcmdzLnJlc291cmNlcyB8fCBuZXcgRGlmZmVyZW5jZUNvbGxlY3Rpb24oe30pO1xuICAgIHRoaXMudW5rbm93biA9IGFyZ3MudW5rbm93biB8fCBuZXcgRGlmZmVyZW5jZUNvbGxlY3Rpb24oe30pO1xuXG4gICAgdGhpcy5pYW1DaGFuZ2VzID0gbmV3IElhbUNoYW5nZXMoe1xuICAgICAgcHJvcGVydHlDaGFuZ2VzOiB0aGlzLnNjcnV0aW5pemFibGVQcm9wZXJ0eUNoYW5nZXMoSWFtQ2hhbmdlcy5JYW1Qcm9wZXJ0eVNjcnV0aW5pZXMpLFxuICAgICAgcmVzb3VyY2VDaGFuZ2VzOiB0aGlzLnNjcnV0aW5pemFibGVSZXNvdXJjZUNoYW5nZXMoSWFtQ2hhbmdlcy5JYW1SZXNvdXJjZVNjcnV0aW5pZXMpLFxuICAgIH0pO1xuXG4gICAgdGhpcy5zZWN1cml0eUdyb3VwQ2hhbmdlcyA9IG5ldyBTZWN1cml0eUdyb3VwQ2hhbmdlcyh7XG4gICAgICBlZ3Jlc3NSdWxlUHJvcGVydHlDaGFuZ2VzOiB0aGlzLnNjcnV0aW5pemFibGVQcm9wZXJ0eUNoYW5nZXMoW2NmbnNwZWMuc2NoZW1hLlByb3BlcnR5U2NydXRpbnlUeXBlLkVncmVzc1J1bGVzXSksXG4gICAgICBpbmdyZXNzUnVsZVByb3BlcnR5Q2hhbmdlczogdGhpcy5zY3J1dGluaXphYmxlUHJvcGVydHlDaGFuZ2VzKFtjZm5zcGVjLnNjaGVtYS5Qcm9wZXJ0eVNjcnV0aW55VHlwZS5JbmdyZXNzUnVsZXNdKSxcbiAgICAgIGVncmVzc1J1bGVSZXNvdXJjZUNoYW5nZXM6IHRoaXMuc2NydXRpbml6YWJsZVJlc291cmNlQ2hhbmdlcyhbY2Zuc3BlYy5zY2hlbWEuUmVzb3VyY2VTY3J1dGlueVR5cGUuRWdyZXNzUnVsZVJlc291cmNlXSksXG4gICAgICBpbmdyZXNzUnVsZVJlc291cmNlQ2hhbmdlczogdGhpcy5zY3J1dGluaXphYmxlUmVzb3VyY2VDaGFuZ2VzKFtjZm5zcGVjLnNjaGVtYS5SZXNvdXJjZVNjcnV0aW55VHlwZS5JbmdyZXNzUnVsZVJlc291cmNlXSksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpZmZlcmVuY2VDb3VudCgpIHtcbiAgICBsZXQgY291bnQgPSAwO1xuXG4gICAgaWYgKHRoaXMuYXdzVGVtcGxhdGVGb3JtYXRWZXJzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvdW50ICs9IDE7XG4gICAgfVxuICAgIGlmICh0aGlzLmRlc2NyaXB0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvdW50ICs9IDE7XG4gICAgfVxuICAgIGlmICh0aGlzLnRyYW5zZm9ybSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb3VudCArPSAxO1xuICAgIH1cblxuICAgIGNvdW50ICs9IHRoaXMuY29uZGl0aW9ucy5kaWZmZXJlbmNlQ291bnQ7XG4gICAgY291bnQgKz0gdGhpcy5tYXBwaW5ncy5kaWZmZXJlbmNlQ291bnQ7XG4gICAgY291bnQgKz0gdGhpcy5tZXRhZGF0YS5kaWZmZXJlbmNlQ291bnQ7XG4gICAgY291bnQgKz0gdGhpcy5vdXRwdXRzLmRpZmZlcmVuY2VDb3VudDtcbiAgICBjb3VudCArPSB0aGlzLnBhcmFtZXRlcnMuZGlmZmVyZW5jZUNvdW50O1xuICAgIGNvdW50ICs9IHRoaXMucmVzb3VyY2VzLmRpZmZlcmVuY2VDb3VudDtcbiAgICBjb3VudCArPSB0aGlzLnVua25vd24uZGlmZmVyZW5jZUNvdW50O1xuXG4gICAgcmV0dXJuIGNvdW50O1xuICB9XG5cbiAgcHVibGljIGdldCBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpZmZlcmVuY2VDb3VudCA9PT0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdHJ1ZSBpZiBhbnkgb2YgdGhlIHBlcm1pc3Npb25zIG9iamVjdHMgaW52b2x2ZSBhIGJyb2FkZW5pbmcgb2YgcGVybWlzc2lvbnNcbiAgICovXG4gIHB1YmxpYyBnZXQgcGVybWlzc2lvbnNCcm9hZGVuZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaWFtQ2hhbmdlcy5wZXJtaXNzaW9uc0Jyb2FkZW5lZCB8fCB0aGlzLnNlY3VyaXR5R3JvdXBDaGFuZ2VzLnJ1bGVzQWRkZWQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRydWUgaWYgYW55IG9mIHRoZSBwZXJtaXNzaW9ucyBvYmplY3RzIGhhdmUgY2hhbmdlZFxuICAgKi9cbiAgcHVibGljIGdldCBwZXJtaXNzaW9uc0FueUNoYW5nZXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaWFtQ2hhbmdlcy5oYXNDaGFuZ2VzIHx8IHRoaXMuc2VjdXJpdHlHcm91cENoYW5nZXMuaGFzQ2hhbmdlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYWxsIHByb3BlcnR5IGNoYW5nZXMgb2YgYSBnaXZlbiBzY3J1dGlueSB0eXBlXG4gICAqXG4gICAqIFdlIGRvbid0IGp1c3QgbG9vayBhdCBwcm9wZXJ0eSB1cGRhdGVzOyB3ZSBhbHNvIGxvb2sgYXQgcmVzb3VyY2UgYWRkaXRpb25zIGFuZCBkZWxldGlvbnMgKGluIHdoaWNoXG4gICAqIGNhc2UgdGhlcmUgaXMgbm8gZnVydGhlciBkZXRhaWwgb24gcHJvcGVydHkgdmFsdWVzKSwgYW5kIHJlc291cmNlIHR5cGUgY2hhbmdlcy5cbiAgICovXG4gIHByaXZhdGUgc2NydXRpbml6YWJsZVByb3BlcnR5Q2hhbmdlcyhzY3J1dGlueVR5cGVzOiBjZm5zcGVjLnNjaGVtYS5Qcm9wZXJ0eVNjcnV0aW55VHlwZVtdKTogUHJvcGVydHlDaGFuZ2VbXSB7XG4gICAgY29uc3QgcmV0ID0gbmV3IEFycmF5PFByb3BlcnR5Q2hhbmdlPigpO1xuXG4gICAgZm9yIChjb25zdCBbcmVzb3VyY2VMb2dpY2FsSWQsIHJlc291cmNlQ2hhbmdlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLnJlc291cmNlcy5jaGFuZ2VzKSkge1xuICAgICAgaWYgKHJlc291cmNlQ2hhbmdlLnJlc291cmNlVHlwZUNoYW5nZWQpIHtcbiAgICAgICAgLy8gd2UgaWdub3JlIHJlc291cmNlIHR5cGUgY2hhbmdlcyBoZXJlLCBhbmQgaGFuZGxlIHRoZW0gaW4gc2NydXRpbml6YWJsZVJlc291cmNlQ2hhbmdlcygpXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwcm9wcyA9IGNmbnNwZWMuc2NydXRpbml6YWJsZVByb3BlcnR5TmFtZXMocmVzb3VyY2VDaGFuZ2UubmV3UmVzb3VyY2VUeXBlISwgc2NydXRpbnlUeXBlcyk7XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5TmFtZSBvZiBwcm9wcykge1xuICAgICAgICByZXQucHVzaCh7XG4gICAgICAgICAgcmVzb3VyY2VMb2dpY2FsSWQsXG4gICAgICAgICAgcHJvcGVydHlOYW1lLFxuICAgICAgICAgIHJlc291cmNlVHlwZTogcmVzb3VyY2VDaGFuZ2UucmVzb3VyY2VUeXBlLFxuICAgICAgICAgIHNjcnV0aW55VHlwZTogY2Zuc3BlYy5wcm9wZXJ0eVNwZWNpZmljYXRpb24ocmVzb3VyY2VDaGFuZ2UucmVzb3VyY2VUeXBlLCBwcm9wZXJ0eU5hbWUpLlNjcnV0aW55VHlwZSEsXG4gICAgICAgICAgb2xkVmFsdWU6IHJlc291cmNlQ2hhbmdlLm9sZFByb3BlcnRpZXMgJiYgcmVzb3VyY2VDaGFuZ2Uub2xkUHJvcGVydGllc1twcm9wZXJ0eU5hbWVdLFxuICAgICAgICAgIG5ld1ZhbHVlOiByZXNvdXJjZUNoYW5nZS5uZXdQcm9wZXJ0aWVzICYmIHJlc291cmNlQ2hhbmdlLm5ld1Byb3BlcnRpZXNbcHJvcGVydHlOYW1lXSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYWxsIHJlc291cmNlIGNoYW5nZXMgb2YgYSBnaXZlbiBzY3J1dGlueSB0eXBlXG4gICAqXG4gICAqIFdlIGRvbid0IGp1c3QgbG9vayBhdCByZXNvdXJjZSB1cGRhdGVzOyB3ZSBhbHNvIGxvb2sgYXQgcmVzb3VyY2UgYWRkaXRpb25zIGFuZCBkZWxldGlvbnMgKGluIHdoaWNoXG4gICAqIGNhc2UgdGhlcmUgaXMgbm8gZnVydGhlciBkZXRhaWwgb24gcHJvcGVydHkgdmFsdWVzKSwgYW5kIHJlc291cmNlIHR5cGUgY2hhbmdlcy5cbiAgICovXG4gIHByaXZhdGUgc2NydXRpbml6YWJsZVJlc291cmNlQ2hhbmdlcyhzY3J1dGlueVR5cGVzOiBjZm5zcGVjLnNjaGVtYS5SZXNvdXJjZVNjcnV0aW55VHlwZVtdKTogUmVzb3VyY2VDaGFuZ2VbXSB7XG4gICAgY29uc3QgcmV0ID0gbmV3IEFycmF5PFJlc291cmNlQ2hhbmdlPigpO1xuXG4gICAgY29uc3Qgc2NydXRpbml6YWJsZVR5cGVzID0gbmV3IFNldChjZm5zcGVjLnNjcnV0aW5pemFibGVSZXNvdXJjZVR5cGVzKHNjcnV0aW55VHlwZXMpKTtcblxuICAgIGZvciAoY29uc3QgW3Jlc291cmNlTG9naWNhbElkLCByZXNvdXJjZUNoYW5nZV0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5yZXNvdXJjZXMuY2hhbmdlcykpIHtcbiAgICAgIGlmICghcmVzb3VyY2VDaGFuZ2UpIHsgY29udGludWU7IH1cblxuICAgICAgY29uc3QgY29tbW9uUHJvcHMgPSB7XG4gICAgICAgIG9sZFByb3BlcnRpZXM6IHJlc291cmNlQ2hhbmdlLm9sZFByb3BlcnRpZXMsXG4gICAgICAgIG5ld1Byb3BlcnRpZXM6IHJlc291cmNlQ2hhbmdlLm5ld1Byb3BlcnRpZXMsXG4gICAgICAgIHJlc291cmNlTG9naWNhbElkLFxuICAgICAgfTtcblxuICAgICAgLy8gY2hhbmdlcyB0byB0aGUgVHlwZSBvZiByZXNvdXJjZXMgY2FuIGhhcHBlbiB3aGVuIG1pZ3JhdGluZyBmcm9tIENGTiB0ZW1wbGF0ZXMgdGhhdCB1c2UgVHJhbnNmb3Jtc1xuICAgICAgaWYgKHJlc291cmNlQ2hhbmdlLnJlc291cmNlVHlwZUNoYW5nZWQpIHtcbiAgICAgICAgLy8gVHJlYXQgYXMgREVMRVRFK0FERFxuICAgICAgICBpZiAoc2NydXRpbml6YWJsZVR5cGVzLmhhcyhyZXNvdXJjZUNoYW5nZS5vbGRSZXNvdXJjZVR5cGUhKSkge1xuICAgICAgICAgIHJldC5wdXNoKHtcbiAgICAgICAgICAgIC4uLmNvbW1vblByb3BzLFxuICAgICAgICAgICAgbmV3UHJvcGVydGllczogdW5kZWZpbmVkLFxuICAgICAgICAgICAgcmVzb3VyY2VUeXBlOiByZXNvdXJjZUNoYW5nZS5vbGRSZXNvdXJjZVR5cGUhLFxuICAgICAgICAgICAgc2NydXRpbnlUeXBlOiBjZm5zcGVjLnJlc291cmNlU3BlY2lmaWNhdGlvbihyZXNvdXJjZUNoYW5nZS5vbGRSZXNvdXJjZVR5cGUhKS5TY3J1dGlueVR5cGUhLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzY3J1dGluaXphYmxlVHlwZXMuaGFzKHJlc291cmNlQ2hhbmdlLm5ld1Jlc291cmNlVHlwZSEpKSB7XG4gICAgICAgICAgcmV0LnB1c2goe1xuICAgICAgICAgICAgLi4uY29tbW9uUHJvcHMsXG4gICAgICAgICAgICBvbGRQcm9wZXJ0aWVzOiB1bmRlZmluZWQsXG4gICAgICAgICAgICByZXNvdXJjZVR5cGU6IHJlc291cmNlQ2hhbmdlLm5ld1Jlc291cmNlVHlwZSEsXG4gICAgICAgICAgICBzY3J1dGlueVR5cGU6IGNmbnNwZWMucmVzb3VyY2VTcGVjaWZpY2F0aW9uKHJlc291cmNlQ2hhbmdlLm5ld1Jlc291cmNlVHlwZSEpLlNjcnV0aW55VHlwZSEsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChzY3J1dGluaXphYmxlVHlwZXMuaGFzKHJlc291cmNlQ2hhbmdlLnJlc291cmNlVHlwZSkpIHtcbiAgICAgICAgICByZXQucHVzaCh7XG4gICAgICAgICAgICAuLi5jb21tb25Qcm9wcyxcbiAgICAgICAgICAgIHJlc291cmNlVHlwZTogcmVzb3VyY2VDaGFuZ2UucmVzb3VyY2VUeXBlLFxuICAgICAgICAgICAgc2NydXRpbnlUeXBlOiBjZm5zcGVjLnJlc291cmNlU3BlY2lmaWNhdGlvbihyZXNvdXJjZUNoYW5nZS5yZXNvdXJjZVR5cGUpLlNjcnV0aW55VHlwZSEsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmV0O1xuICB9XG59XG5cbi8qKlxuICogQSBjaGFuZ2UgaW4gcHJvcGVydHkgdmFsdWVzXG4gKlxuICogTm90IG5lY2Vzc2FyaWx5IGFuIHVwZGF0ZSwgaXQgY291bGQgYmUgdGhhdCB0aGVyZSB1c2VkIHRvIGJlIG5vIHZhbHVlIHRoZXJlXG4gKiBiZWNhdXNlIHRoZXJlIHdhcyBubyByZXNvdXJjZSwgYW5kIG5vdyB0aGVyZSBpcyAob3IgdmljZSB2ZXJzYSkuXG4gKlxuICogVGhlcmVmb3JlLCB3ZSBqdXN0IGNvbnRhaW4gcGxhaW4gdmFsdWVzIGFuZCBub3QgYSBQcm9wZXJ0eURpZmZlcmVuY2U8YW55Pi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eUNoYW5nZSB7XG4gIC8qKlxuICAgKiBMb2dpY2FsIElEIG9mIHRoZSByZXNvdXJjZSB3aGVyZSB0aGlzIHByb3BlcnR5IGNoYW5nZSB3YXMgZm91bmRcbiAgICovXG4gIHJlc291cmNlTG9naWNhbElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFR5cGUgb2YgdGhlIHJlc291cmNlXG4gICAqL1xuICByZXNvdXJjZVR5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogU2NydXRpbnkgdHlwZSBmb3IgdGhpcyBwcm9wZXJ0eSBjaGFuZ2VcbiAgICovXG4gIHNjcnV0aW55VHlwZTogY2Zuc3BlYy5zY2hlbWEuUHJvcGVydHlTY3J1dGlueVR5cGU7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIHByb3BlcnR5IHRoYXQgaXMgY2hhbmdpbmdcbiAgICovXG4gIHByb3BlcnR5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgb2xkIHByb3BlcnR5IHZhbHVlXG4gICAqL1xuICBvbGRWYWx1ZT86IGFueTtcblxuICAvKipcbiAgICogVGhlIG5ldyBwcm9wZXJ0eSB2YWx1ZVxuICAgKi9cbiAgbmV3VmFsdWU/OiBhbnk7XG59XG5cbi8qKlxuICogQSByZXNvdXJjZSBjaGFuZ2VcbiAqXG4gKiBFaXRoZXIgYSBjcmVhdGlvbiwgZGVsZXRpb24gb3IgdXBkYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlQ2hhbmdlIHtcbiAgLyoqXG4gICAqIExvZ2ljYWwgSUQgb2YgdGhlIHJlc291cmNlIHdoZXJlIHRoaXMgcHJvcGVydHkgY2hhbmdlIHdhcyBmb3VuZFxuICAgKi9cbiAgcmVzb3VyY2VMb2dpY2FsSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogU2NydXRpbnkgdHlwZSBmb3IgdGhpcyByZXNvdXJjZSBjaGFuZ2VcbiAgICovXG4gIHNjcnV0aW55VHlwZTogY2Zuc3BlYy5zY2hlbWEuUmVzb3VyY2VTY3J1dGlueVR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSByZXNvdXJjZVxuICAgKi9cbiAgcmVzb3VyY2VUeXBlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvbGQgcHJvcGVydGllcyB2YWx1ZSAobWlnaHQgYmUgdW5kZWZpbmVkIGluIGNhc2Ugb2YgY3JlYXRpb24pXG4gICAqL1xuICBvbGRQcm9wZXJ0aWVzPzogUHJvcGVydHlNYXA7XG5cbiAgLyoqXG4gICAqIFRoZSBuZXcgcHJvcGVydGllcyB2YWx1ZSAobWlnaHQgYmUgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZGVsZXRpb24pXG4gICAqL1xuICBuZXdQcm9wZXJ0aWVzPzogUHJvcGVydHlNYXA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURpZmZlcmVuY2U8VmFsdWVUeXBlPiB7XG4gIHJlYWRvbmx5IG9sZFZhbHVlOiBWYWx1ZVR5cGUgfCB1bmRlZmluZWQ7XG4gIHJlYWRvbmx5IG5ld1ZhbHVlOiBWYWx1ZVR5cGUgfCB1bmRlZmluZWQ7XG4gIHJlYWRvbmx5IGlzRGlmZmVyZW50OiBib29sZWFuO1xuICByZWFkb25seSBpc0FkZGl0aW9uOiBib29sZWFuO1xuICByZWFkb25seSBpc1JlbW92YWw6IGJvb2xlYW47XG4gIHJlYWRvbmx5IGlzVXBkYXRlOiBib29sZWFuO1xufVxuXG4vKipcbiAqIE1vZGVscyBhbiBlbnRpdHkgdGhhdCBjaGFuZ2VkIGJldHdlZW4gdHdvIHZlcnNpb25zIG9mIGEgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBEaWZmZXJlbmNlPFZhbHVlVHlwZT4gaW1wbGVtZW50cyBJRGlmZmVyZW5jZTxWYWx1ZVR5cGU+IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBpcyBhbiBhY3R1YWwgZGlmZmVyZW50IG9yIHRoZSB2YWx1ZXMgYXJlIGFjdHVhbGx5IHRoZSBzYW1lXG4gICAqXG4gICAqIGlzRGlmZmVyZW50ID0+IChpc1VwZGF0ZSB8IGlzUmVtb3ZlZCB8IGlzVXBkYXRlKVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlzRGlmZmVyZW50OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gb2xkVmFsdWUgdGhlIG9sZCB2YWx1ZSwgY2Fubm90IGJlIGVxdWFsICh0byB0aGUgc2Vuc2Ugb2YgK2RlZXBFcXVhbCspIHRvICtuZXdWYWx1ZSsuXG4gICAqIEBwYXJhbSBuZXdWYWx1ZSB0aGUgbmV3IHZhbHVlLCBjYW5ub3QgYmUgZXF1YWwgKHRvIHRoZSBzZW5zZSBvZiArZGVlcEVxdWFsKykgdG8gK29sZFZhbHVlKy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBvbGRWYWx1ZTogVmFsdWVUeXBlIHwgdW5kZWZpbmVkLCBwdWJsaWMgcmVhZG9ubHkgbmV3VmFsdWU6IFZhbHVlVHlwZSB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChvbGRWYWx1ZSA9PT0gdW5kZWZpbmVkICYmIG5ld1ZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBBc3NlcnRpb25FcnJvcih7IG1lc3NhZ2U6ICdvbGRWYWx1ZSBhbmQgbmV3VmFsdWUgYXJlIGJvdGggdW5kZWZpbmVkIScgfSk7XG4gICAgfVxuICAgIHRoaXMuaXNEaWZmZXJlbnQgPSAhZGVlcEVxdWFsKG9sZFZhbHVlLCBuZXdWYWx1ZSk7XG4gIH1cblxuICAvKiogQHJldHVybnMgK3RydWUrIGlmIHRoZSBlbGVtZW50IGlzIG5ldyB0byB0aGUgdGVtcGxhdGUuICovXG4gIHB1YmxpYyBnZXQgaXNBZGRpdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vbGRWYWx1ZSA9PT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqIEByZXR1cm5zICt0cnVlKyBpZiB0aGUgZWxlbWVudCB3YXMgcmVtb3ZlZCBmcm9tIHRoZSB0ZW1wbGF0ZS4gKi9cbiAgcHVibGljIGdldCBpc1JlbW92YWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubmV3VmFsdWUgPT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyArdHJ1ZSsgaWYgdGhlIGVsZW1lbnQgd2FzIGFscmVhZHkgaW4gdGhlIHRlbXBsYXRlIGFuZCBpcyB1cGRhdGVkLiAqL1xuICBwdWJsaWMgZ2V0IGlzVXBkYXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9sZFZhbHVlICE9PSB1bmRlZmluZWRcbiAgICAgICYmIHRoaXMubmV3VmFsdWUgIT09IHVuZGVmaW5lZDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUHJvcGVydHlEaWZmZXJlbmNlPFZhbHVlVHlwZT4gZXh0ZW5kcyBEaWZmZXJlbmNlPFZhbHVlVHlwZT4ge1xuICBwdWJsaWMgcmVhZG9ubHkgY2hhbmdlSW1wYWN0PzogUmVzb3VyY2VJbXBhY3Q7XG5cbiAgY29uc3RydWN0b3Iob2xkVmFsdWU6IFZhbHVlVHlwZSB8IHVuZGVmaW5lZCwgbmV3VmFsdWU6IFZhbHVlVHlwZSB8IHVuZGVmaW5lZCwgYXJnczogeyBjaGFuZ2VJbXBhY3Q/OiBSZXNvdXJjZUltcGFjdCB9KSB7XG4gICAgc3VwZXIob2xkVmFsdWUsIG5ld1ZhbHVlKTtcbiAgICB0aGlzLmNoYW5nZUltcGFjdCA9IGFyZ3MuY2hhbmdlSW1wYWN0O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEaWZmZXJlbmNlQ29sbGVjdGlvbjxWLCBUIGV4dGVuZHMgSURpZmZlcmVuY2U8Vj4+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkaWZmczogeyBbbG9naWNhbElkOiBzdHJpbmddOiBUIH0pIHt9XG5cbiAgcHVibGljIGdldCBjaGFuZ2VzKCk6IHsgW2xvZ2ljYWxJZDogc3RyaW5nXTogVCB9IHtcbiAgICByZXR1cm4gb25seUNoYW5nZXModGhpcy5kaWZmcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpZmZlcmVuY2VDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMuY2hhbmdlcykubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIGdldChsb2dpY2FsSWQ6IHN0cmluZyk6IFQge1xuICAgIGNvbnN0IHJldCA9IHRoaXMuZGlmZnNbbG9naWNhbElkXTtcbiAgICBpZiAoIXJldCkgeyB0aHJvdyBuZXcgRXJyb3IoYE5vIG9iamVjdCB3aXRoIGxvZ2ljYWwgSUQgJyR7bG9naWNhbElkfSdgKTsgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvZ2ljYWxJZHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmNoYW5nZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBuZXcgVGVtcGxhdGVEaWZmIHdoaWNoIG9ubHkgY29udGFpbnMgY2hhbmdlcyBmb3Igd2hpY2ggYHByZWRpY2F0ZWBcbiAgICogcmV0dXJucyBgdHJ1ZWAuXG4gICAqL1xuICBwdWJsaWMgZmlsdGVyKHByZWRpY2F0ZTogKGRpZmY6IFQgfCB1bmRlZmluZWQpID0+IGJvb2xlYW4pOiBEaWZmZXJlbmNlQ29sbGVjdGlvbjxWLCBUPiB7XG4gICAgY29uc3QgbmV3Q2hhbmdlczogeyBbbG9naWNhbElkOiBzdHJpbmddOiBUIH0gPSB7IH07XG4gICAgZm9yIChjb25zdCBpZCBvZiBPYmplY3Qua2V5cyh0aGlzLmNoYW5nZXMpKSB7XG4gICAgICBjb25zdCBkaWZmID0gdGhpcy5jaGFuZ2VzW2lkXTtcblxuICAgICAgaWYgKHByZWRpY2F0ZShkaWZmKSkge1xuICAgICAgICBuZXdDaGFuZ2VzW2lkXSA9IGRpZmY7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBEaWZmZXJlbmNlQ29sbGVjdGlvbjxWLCBUPihuZXdDaGFuZ2VzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2VzIGBjYmAgZm9yIGFsbCBjaGFuZ2VzIGluIHRoaXMgY29sbGVjdGlvbi5cbiAgICpcbiAgICogQ2hhbmdlcyB3aWxsIGJlIHNvcnRlZCBhcyBmb2xsb3dzOlxuICAgKiAgLSBSZW1vdmVkXG4gICAqICAtIEFkZGVkXG4gICAqICAtIFVwZGF0ZWRcbiAgICogIC0gT3RoZXJzXG4gICAqXG4gICAqIEBwYXJhbSBjYlxuICAgKi9cbiAgcHVibGljIGZvckVhY2hEaWZmZXJlbmNlKGNiOiAobG9naWNhbElkOiBzdHJpbmcsIGNoYW5nZTogVCkgPT4gYW55KTogdm9pZCB7XG4gICAgY29uc3QgcmVtb3ZlZCA9IG5ldyBBcnJheTx7IGxvZ2ljYWxJZDogc3RyaW5nLCBjaGFuZ2U6IFQgfT4oKTtcbiAgICBjb25zdCBhZGRlZCA9IG5ldyBBcnJheTx7IGxvZ2ljYWxJZDogc3RyaW5nLCBjaGFuZ2U6IFQgfT4oKTtcbiAgICBjb25zdCB1cGRhdGVkID0gbmV3IEFycmF5PHsgbG9naWNhbElkOiBzdHJpbmcsIGNoYW5nZTogVCB9PigpO1xuICAgIGNvbnN0IG90aGVycyA9IG5ldyBBcnJheTx7IGxvZ2ljYWxJZDogc3RyaW5nLCBjaGFuZ2U6IFQgfT4oKTtcblxuICAgIGZvciAoY29uc3QgbG9naWNhbElkIG9mIHRoaXMubG9naWNhbElkcykge1xuICAgICAgY29uc3QgY2hhbmdlOiBUID0gdGhpcy5jaGFuZ2VzW2xvZ2ljYWxJZF0hO1xuICAgICAgaWYgKGNoYW5nZS5pc0FkZGl0aW9uKSB7XG4gICAgICAgIGFkZGVkLnB1c2goeyBsb2dpY2FsSWQsIGNoYW5nZSB9KTtcbiAgICAgIH0gZWxzZSBpZiAoY2hhbmdlLmlzUmVtb3ZhbCkge1xuICAgICAgICByZW1vdmVkLnB1c2goeyBsb2dpY2FsSWQsIGNoYW5nZSB9KTtcbiAgICAgIH0gZWxzZSBpZiAoY2hhbmdlLmlzVXBkYXRlKSB7XG4gICAgICAgIHVwZGF0ZWQucHVzaCh7IGxvZ2ljYWxJZCwgY2hhbmdlIH0pO1xuICAgICAgfSBlbHNlIGlmIChjaGFuZ2UuaXNEaWZmZXJlbnQpIHtcbiAgICAgICAgb3RoZXJzLnB1c2goeyBsb2dpY2FsSWQsIGNoYW5nZSB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZW1vdmVkLmZvckVhY2godiA9PiBjYih2LmxvZ2ljYWxJZCwgdi5jaGFuZ2UpKTtcbiAgICBhZGRlZC5mb3JFYWNoKHYgPT4gY2Iodi5sb2dpY2FsSWQsIHYuY2hhbmdlKSk7XG4gICAgdXBkYXRlZC5mb3JFYWNoKHYgPT4gY2Iodi5sb2dpY2FsSWQsIHYuY2hhbmdlKSk7XG4gICAgb3RoZXJzLmZvckVhY2godiA9PiBjYih2LmxvZ2ljYWxJZCwgdi5jaGFuZ2UpKTtcbiAgfVxufVxuXG4vKipcbiAqIEFyZ3VtZW50cyBleHBlY3RlZCBieSB0aGUgY29uc3RydWN0b3Igb2YgK1RlbXBsYXRlRGlmZissIGV4dHJhY3RlZCBhcyBhbiBpbnRlcmZhY2UgZm9yIHRoZSBzYWtlXG4gKiBvZiAocmVsYXRpdmUpIGNvbmNpc2VuZXNzIG9mIHRoZSBjb25zdHJ1Y3RvcidzIHNpZ25hdHVyZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVGVtcGxhdGVEaWZmIHtcbiAgYXdzVGVtcGxhdGVGb3JtYXRWZXJzaW9uPzogSURpZmZlcmVuY2U8c3RyaW5nPjtcbiAgZGVzY3JpcHRpb24/OiBJRGlmZmVyZW5jZTxzdHJpbmc+O1xuICB0cmFuc2Zvcm0/OiBJRGlmZmVyZW5jZTxzdHJpbmc+O1xuXG4gIGNvbmRpdGlvbnM/OiBEaWZmZXJlbmNlQ29sbGVjdGlvbjxDb25kaXRpb24sIENvbmRpdGlvbkRpZmZlcmVuY2U+O1xuICBtYXBwaW5ncz86IERpZmZlcmVuY2VDb2xsZWN0aW9uPE1hcHBpbmcsIE1hcHBpbmdEaWZmZXJlbmNlPjtcbiAgbWV0YWRhdGE/OiBEaWZmZXJlbmNlQ29sbGVjdGlvbjxNZXRhZGF0YSwgTWV0YWRhdGFEaWZmZXJlbmNlPjtcbiAgb3V0cHV0cz86IERpZmZlcmVuY2VDb2xsZWN0aW9uPE91dHB1dCwgT3V0cHV0RGlmZmVyZW5jZT47XG4gIHBhcmFtZXRlcnM/OiBEaWZmZXJlbmNlQ29sbGVjdGlvbjxQYXJhbWV0ZXIsIFBhcmFtZXRlckRpZmZlcmVuY2U+O1xuICByZXNvdXJjZXM/OiBEaWZmZXJlbmNlQ29sbGVjdGlvbjxSZXNvdXJjZSwgUmVzb3VyY2VEaWZmZXJlbmNlPjtcblxuICB1bmtub3duPzogRGlmZmVyZW5jZUNvbGxlY3Rpb248YW55LCBJRGlmZmVyZW5jZTxhbnk+Pjtcbn1cblxuZXhwb3J0IHR5cGUgQ29uZGl0aW9uID0gYW55O1xuZXhwb3J0IGNsYXNzIENvbmRpdGlvbkRpZmZlcmVuY2UgZXh0ZW5kcyBEaWZmZXJlbmNlPENvbmRpdGlvbj4ge1xuICAvLyBUT0RPOiBkZWZpbmUgc3BlY2lmaWMgZGlmZmVyZW5jZSBhdHRyaWJ1dGVzXG59XG5cbmV4cG9ydCB0eXBlIE1hcHBpbmcgPSBhbnk7XG5leHBvcnQgY2xhc3MgTWFwcGluZ0RpZmZlcmVuY2UgZXh0ZW5kcyBEaWZmZXJlbmNlPE1hcHBpbmc+IHtcbiAgLy8gVE9ETzogZGVmaW5lIHNwZWNpZmljIGRpZmZlcmVuY2UgYXR0cmlidXRlc1xufVxuXG5leHBvcnQgdHlwZSBNZXRhZGF0YSA9IGFueTtcbmV4cG9ydCBjbGFzcyBNZXRhZGF0YURpZmZlcmVuY2UgZXh0ZW5kcyBEaWZmZXJlbmNlPE1ldGFkYXRhPiB7XG4gIC8vIFRPRE86IGRlZmluZSBzcGVjaWZpYyBkaWZmZXJlbmNlIGF0dHJpYnV0ZXNcbn1cblxuZXhwb3J0IHR5cGUgT3V0cHV0ID0gYW55O1xuZXhwb3J0IGNsYXNzIE91dHB1dERpZmZlcmVuY2UgZXh0ZW5kcyBEaWZmZXJlbmNlPE91dHB1dD4ge1xuICAvLyBUT0RPOiBkZWZpbmUgc3BlY2lmaWMgZGlmZmVyZW5jZSBhdHRyaWJ1dGVzXG59XG5cbmV4cG9ydCB0eXBlIFBhcmFtZXRlciA9IGFueTtcbmV4cG9ydCBjbGFzcyBQYXJhbWV0ZXJEaWZmZXJlbmNlIGV4dGVuZHMgRGlmZmVyZW5jZTxQYXJhbWV0ZXI+IHtcbiAgLy8gVE9ETzogZGVmaW5lIHNwZWNpZmljIGRpZmZlcmVuY2UgYXR0cmlidXRlc1xufVxuXG5leHBvcnQgZW51bSBSZXNvdXJjZUltcGFjdCB7XG4gIC8qKiBUaGUgZXhpc3RpbmcgcGh5c2ljYWwgcmVzb3VyY2Ugd2lsbCBiZSB1cGRhdGVkICovXG4gIFdJTExfVVBEQVRFID0gJ1dJTExfVVBEQVRFJyxcbiAgLyoqIEEgbmV3IHBoeXNpY2FsIHJlc291cmNlIHdpbGwgYmUgY3JlYXRlZCAqL1xuICBXSUxMX0NSRUFURSA9ICdXSUxMX0NSRUFURScsXG4gIC8qKiBUaGUgZXhpc3RpbmcgcGh5c2ljYWwgcmVzb3VyY2Ugd2lsbCBiZSByZXBsYWNlZCAqL1xuICBXSUxMX1JFUExBQ0UgPSAnV0lMTF9SRVBMQUNFJyxcbiAgLyoqIFRoZSBleGlzdGluZyBwaHlzaWNhbCByZXNvdXJjZSBtYXkgYmUgcmVwbGFjZWQgKi9cbiAgTUFZX1JFUExBQ0UgPSAnTUFZX1JFUExBQ0UnLFxuICAvKiogVGhlIGV4aXN0aW5nIHBoeXNpY2FsIHJlc291cmNlIHdpbGwgYmUgZGVzdHJveWVkICovXG4gIFdJTExfREVTVFJPWSA9ICdXSUxMX0RFU1RST1knLFxuICAvKiogVGhlIGV4aXN0aW5nIHBoeXNpY2FsIHJlc291cmNlIHdpbGwgYmUgcmVtb3ZlZCBmcm9tIENsb3VkRm9ybWF0aW9uIHN1cGVydmlzaW9uICovXG4gIFdJTExfT1JQSEFOID0gJ1dJTExfT1JQSEFOJyxcbiAgLyoqIFRoZXJlIGlzIG5vIGNoYW5nZSBpbiB0aGlzIHJlc291cmNlICovXG4gIE5PX0NIQU5HRSA9ICdOT19DSEFOR0UnLFxufVxuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gY2FuIGJlIHVzZWQgYXMgYSByZWR1Y2VyIHRvIG9idGFpbiB0aGUgcmVzb3VyY2UtbGV2ZWwgaW1wYWN0IG9mIGEgbGlzdFxuICogb2YgcHJvcGVydHktbGV2ZWwgaW1wYWN0cy5cbiAqIEBwYXJhbSBvbmUgdGhlIGN1cnJlbnQgd29yc3QgaW1wYWN0IHNvIGZhci5cbiAqIEBwYXJhbSB0d28gdGhlIG5ldyBpbXBhY3QgYmVpbmcgY29uc2lkZXJlZCAoY2FuIGJlIHVuZGVmaW5lZCwgYXMgd2UgbWF5IG5vdCBhbHdheXMgYmVcbiAqICAgICAgYWJsZSB0byBkZXRlcm1pbmUgc29tZSBwZXJvcGVydHkncyBpbXBhY3QpLlxuICovXG5mdW5jdGlvbiB3b3JzdEltcGFjdChvbmU6IFJlc291cmNlSW1wYWN0LCB0d28/OiBSZXNvdXJjZUltcGFjdCk6IFJlc291cmNlSW1wYWN0IHtcbiAgaWYgKCF0d28pIHsgcmV0dXJuIG9uZTsgfVxuICBjb25zdCBiYWRuZXNzID0ge1xuICAgIFtSZXNvdXJjZUltcGFjdC5OT19DSEFOR0VdOiAwLFxuICAgIFtSZXNvdXJjZUltcGFjdC5XSUxMX1VQREFURV06IDEsXG4gICAgW1Jlc291cmNlSW1wYWN0LldJTExfQ1JFQVRFXTogMixcbiAgICBbUmVzb3VyY2VJbXBhY3QuV0lMTF9PUlBIQU5dOiAzLFxuICAgIFtSZXNvdXJjZUltcGFjdC5NQVlfUkVQTEFDRV06IDQsXG4gICAgW1Jlc291cmNlSW1wYWN0LldJTExfUkVQTEFDRV06IDUsXG4gICAgW1Jlc291cmNlSW1wYWN0LldJTExfREVTVFJPWV06IDYsXG4gIH07XG4gIHJldHVybiBiYWRuZXNzW29uZV0gPiBiYWRuZXNzW3R3b10gPyBvbmUgOiB0d287XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2Uge1xuICBUeXBlOiBzdHJpbmc7XG4gIFByb3BlcnRpZXM/OiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfTtcblxuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbi8qKlxuICogQ2hhbmdlIHRvIGEgc2luZ2xlIHJlc291cmNlIGJldHdlZW4gdHdvIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlc1xuICpcbiAqIFRoaXMgY2xhc3MgY2FuIGJlIG11dGF0ZWQgYWZ0ZXIgY29uc3RydWN0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VEaWZmZXJlbmNlIGltcGxlbWVudHMgSURpZmZlcmVuY2U8UmVzb3VyY2U+IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyByZXNvdXJjZSB3YXMgYWRkZWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpc0FkZGl0aW9uOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgcmVzb3VyY2Ugd2FzIHJlbW92ZWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpc1JlbW92YWw6IGJvb2xlYW47XG5cbiAgLyoqIFByb3BlcnR5LWxldmVsIGNoYW5nZXMgb24gdGhlIHJlc291cmNlICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcGVydHlEaWZmczogeyBba2V5OiBzdHJpbmddOiBQcm9wZXJ0eURpZmZlcmVuY2U8YW55PiB9O1xuXG4gIC8qKiBDaGFuZ2VzIHRvIG5vbi1wcm9wZXJ0eSBsZXZlbCBhdHRyaWJ1dGVzIG9mIHRoZSByZXNvdXJjZSAqL1xuICBwcml2YXRlIHJlYWRvbmx5IG90aGVyRGlmZnM6IHsgW2tleTogc3RyaW5nXTogRGlmZmVyZW5jZTxhbnk+IH07XG5cbiAgLyoqIFRoZSByZXNvdXJjZSB0eXBlIChvciBvbGQgYW5kIG5ldyB0eXBlIGlmIGl0IGhhcyBjaGFuZ2VkKSAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlVHlwZXM6IHsgcmVhZG9ubHkgb2xkVHlwZT86IHN0cmluZywgcmVhZG9ubHkgbmV3VHlwZT86IHN0cmluZyB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBvbGRWYWx1ZTogUmVzb3VyY2UgfCB1bmRlZmluZWQsXG4gICAgcHVibGljIHJlYWRvbmx5IG5ld1ZhbHVlOiBSZXNvdXJjZSB8IHVuZGVmaW5lZCxcbiAgICBhcmdzOiB7XG4gICAgICByZXNvdXJjZVR5cGU6IHsgb2xkVHlwZT86IHN0cmluZywgbmV3VHlwZT86IHN0cmluZyB9LFxuICAgICAgcHJvcGVydHlEaWZmczogeyBba2V5OiBzdHJpbmddOiBQcm9wZXJ0eURpZmZlcmVuY2U8YW55PiB9LFxuICAgICAgb3RoZXJEaWZmczogeyBba2V5OiBzdHJpbmddOiBEaWZmZXJlbmNlPGFueT4gfVxuICAgIH0sXG4gICkge1xuICAgIHRoaXMucmVzb3VyY2VUeXBlcyA9IGFyZ3MucmVzb3VyY2VUeXBlO1xuICAgIHRoaXMucHJvcGVydHlEaWZmcyA9IGFyZ3MucHJvcGVydHlEaWZmcztcbiAgICB0aGlzLm90aGVyRGlmZnMgPSBhcmdzLm90aGVyRGlmZnM7XG5cbiAgICB0aGlzLmlzQWRkaXRpb24gPSBvbGRWYWx1ZSA9PT0gdW5kZWZpbmVkO1xuICAgIHRoaXMuaXNSZW1vdmFsID0gbmV3VmFsdWUgPT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgb2xkUHJvcGVydGllcygpOiBQcm9wZXJ0eU1hcCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMub2xkVmFsdWUgJiYgdGhpcy5vbGRWYWx1ZS5Qcm9wZXJ0aWVzO1xuICB9XG5cbiAgcHVibGljIGdldCBuZXdQcm9wZXJ0aWVzKCk6IFByb3BlcnR5TWFwIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5uZXdWYWx1ZSAmJiB0aGlzLm5ld1ZhbHVlLlByb3BlcnRpZXM7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIHJlc291cmNlIHdhcyBtb2RpZmllZCBhdCBhbGxcbiAgICovXG4gIHB1YmxpYyBnZXQgaXNEaWZmZXJlbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGlmZmVyZW5jZUNvdW50ID4gMCB8fCB0aGlzLm9sZFJlc291cmNlVHlwZSAhPT0gdGhpcy5uZXdSZXNvdXJjZVR5cGU7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcmVzb3VyY2Ugd2FzIHVwZGF0ZWQgaW4tcGxhY2VcbiAgICovXG4gIHB1YmxpYyBnZXQgaXNVcGRhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNEaWZmZXJlbnQgJiYgIXRoaXMuaXNBZGRpdGlvbiAmJiAhdGhpcy5pc1JlbW92YWw7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG9sZFJlc291cmNlVHlwZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlVHlwZXMub2xkVHlwZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbmV3UmVzb3VyY2VUeXBlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VUeXBlcy5uZXdUeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbCBhY3R1YWwgcHJvcGVydHkgdXBkYXRlc1xuICAgKi9cbiAgcHVibGljIGdldCBwcm9wZXJ0eVVwZGF0ZXMoKTogeyBba2V5OiBzdHJpbmddOiBQcm9wZXJ0eURpZmZlcmVuY2U8YW55PiB9IHtcbiAgICByZXR1cm4gb25seUNoYW5nZXModGhpcy5wcm9wZXJ0eURpZmZzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGwgYWN0dWFsIFwib3RoZXJcIiB1cGRhdGVzXG4gICAqL1xuICBwdWJsaWMgZ2V0IG90aGVyQ2hhbmdlcygpOiB7IFtrZXk6IHN0cmluZ106IERpZmZlcmVuY2U8YW55PiB9IHtcbiAgICByZXR1cm4gb25seUNoYW5nZXModGhpcy5vdGhlckRpZmZzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGUgcmVzb3VyY2UgdHlwZSB3YXMgY2hhbmdlZCBpbiB0aGlzIGRpZmZcbiAgICpcbiAgICogVGhpcyBpcyBub3QgYSB2YWxpZCBvcGVyYXRpb24gaW4gQ2xvdWRGb3JtYXRpb24gYnV0IHRvIGJlIGRlZmVuc2l2ZSB3ZSdyZSBnb2luZ1xuICAgKiB0byBiZSBhd2FyZSBvZiBpdCBhbnl3YXkuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHJlc291cmNlVHlwZUNoYW5nZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLnJlc291cmNlVHlwZXMub2xkVHlwZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICYmIHRoaXMucmVzb3VyY2VUeXBlcy5uZXdUeXBlICE9PSB1bmRlZmluZWRcbiAgICAgICAgJiYgdGhpcy5yZXNvdXJjZVR5cGVzLm9sZFR5cGUgIT09IHRoaXMucmVzb3VyY2VUeXBlcy5uZXdUeXBlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHJlc291cmNlIHR5cGUgaWYgaXQgd2FzIHVuY2hhbmdlZFxuICAgKlxuICAgKiBJZiB0aGUgcmVzb3VyY2UgdHlwZSB3YXMgY2hhbmdlZCwgaXQncyBhbiBlcnJvciB0byBjYWxsIHRoaXMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHJlc291cmNlVHlwZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnJlc291cmNlVHlwZUNoYW5nZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGdldCAucmVzb3VyY2VUeXBlLCBiZWNhdXNlIHRoZSB0eXBlIHdhcyBjaGFuZ2VkJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnJlc291cmNlVHlwZXMub2xkVHlwZSB8fCB0aGlzLnJlc291cmNlVHlwZXMubmV3VHlwZSE7XG4gIH1cblxuICAvKipcbiAgICogUmVwbGFjZSBhIFByb3BlcnR5Q2hhbmdlIGluIHRoaXMgb2JqZWN0XG4gICAqXG4gICAqIFRoaXMgYWZmZWN0cyB0aGUgcHJvcGVydHkgZGlmZiBhcyBpdCBpcyBzdW1tYXJpemVkIHRvIHVzZXJzLCBidXQgaXQgRE9FU1xuICAgKiBOT1QgYWZmZWN0IGVpdGhlciB0aGUgXCJvbGRWYWx1ZVwiIG9yIFwibmV3VmFsdWVcIiB2YWx1ZXM7IHRob3NlIHN0aWxsIGNvbnRhaW5cbiAgICogdGhlIGFjdHVhbCB0ZW1wbGF0ZSB2YWx1ZXMgYXMgcHJvdmlkZWQgYnkgdGhlIHVzZXIgKHRoZXkgbWlnaHQgc3RpbGwgYmVcbiAgICogdXNlZCBmb3IgZG93bnN0cmVhbSBwcm9jZXNzaW5nKS5cbiAgICovXG4gIHB1YmxpYyBzZXRQcm9wZXJ0eUNoYW5nZShwcm9wZXJ0eU5hbWU6IHN0cmluZywgY2hhbmdlOiBQcm9wZXJ0eURpZmZlcmVuY2U8YW55Pikge1xuICAgIHRoaXMucHJvcGVydHlEaWZmc1twcm9wZXJ0eU5hbWVdID0gY2hhbmdlO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGFuZ2VJbXBhY3QoKTogUmVzb3VyY2VJbXBhY3Qge1xuICAgIC8vIENoZWNrIHRoZSBUeXBlIGZpcnN0XG4gICAgaWYgKHRoaXMucmVzb3VyY2VUeXBlcy5vbGRUeXBlICE9PSB0aGlzLnJlc291cmNlVHlwZXMubmV3VHlwZSkge1xuICAgICAgaWYgKHRoaXMucmVzb3VyY2VUeXBlcy5vbGRUeXBlID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIFJlc291cmNlSW1wYWN0LldJTExfQ1JFQVRFOyB9XG4gICAgICBpZiAodGhpcy5yZXNvdXJjZVR5cGVzLm5ld1R5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vbGRWYWx1ZSEuRGVsZXRpb25Qb2xpY3kgPT09ICdSZXRhaW4nXG4gICAgICAgICAgPyBSZXNvdXJjZUltcGFjdC5XSUxMX09SUEhBTlxuICAgICAgICAgIDogUmVzb3VyY2VJbXBhY3QuV0lMTF9ERVNUUk9ZO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFJlc291cmNlSW1wYWN0LldJTExfUkVQTEFDRTtcbiAgICB9XG5cbiAgICAvLyBCYXNlIGltcGFjdCAoYmVmb3JlIHdlIG1peCBpbiB0aGUgd29yc3Qgb2YgdGhlIHByb3BlcnR5IGltcGFjdHMpO1xuICAgIC8vIFdJTExfVVBEQVRFIGlmIHdlIGhhdmUgXCJvdGhlclwiIGNoYW5nZXMsIE5PX0NIQU5HRSBpZiB0aGVyZSBhcmUgbm8gXCJvdGhlclwiIGNoYW5nZXMuXG4gICAgY29uc3QgYmFzZUltcGFjdCA9IE9iamVjdC5rZXlzKHRoaXMub3RoZXJDaGFuZ2VzKS5sZW5ndGggPiAwID8gUmVzb3VyY2VJbXBhY3QuV0lMTF9VUERBVEUgOiBSZXNvdXJjZUltcGFjdC5OT19DSEFOR0U7XG5cbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLnByb3BlcnR5RGlmZnMpXG4gICAgICAubWFwKGVsdCA9PiBlbHQuY2hhbmdlSW1wYWN0KVxuICAgICAgLnJlZHVjZSh3b3JzdEltcGFjdCwgYmFzZUltcGFjdCk7XG4gIH1cblxuICAvKipcbiAgICogQ291bnQgb2YgYWN0dWFsIGRpZmZlcmVuY2VzIChub3Qgb2YgZWxlbWVudHMpXG4gICAqL1xuICBwdWJsaWMgZ2V0IGRpZmZlcmVuY2VDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMucHJvcGVydHlVcGRhdGVzKS5sZW5ndGhcbiAgICAgICsgT2JqZWN0LnZhbHVlcyh0aGlzLm90aGVyQ2hhbmdlcykubGVuZ3RoO1xuICB9XG5cbiAgLyoqXG4gICAqIEludm9rZSBhIGNhbGxiYWNrIGZvciBlYWNoIGFjdHVhbCBkaWZmZXJlbmNlXG4gICAqL1xuICBwdWJsaWMgZm9yRWFjaERpZmZlcmVuY2UoY2I6ICh0eXBlOiAnUHJvcGVydHknIHwgJ090aGVyJywgbmFtZTogc3RyaW5nLCB2YWx1ZTogRGlmZmVyZW5jZTxhbnk+IHwgUHJvcGVydHlEaWZmZXJlbmNlPGFueT4pID0+IGFueSkge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMucHJvcGVydHlVcGRhdGVzKS5zb3J0KCkpIHtcbiAgICAgIGNiKCdQcm9wZXJ0eScsIGtleSwgdGhpcy5wcm9wZXJ0eVVwZGF0ZXNba2V5XSk7XG4gICAgfVxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMub3RoZXJDaGFuZ2VzKS5zb3J0KCkpIHtcbiAgICAgIGNiKCdPdGhlcicsIGtleSwgdGhpcy5vdGhlckRpZmZzW2tleV0pO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQcm9wZXJ0eURpZmZlcmVuY2U8VD4oZGlmZjogRGlmZmVyZW5jZTxUPik6IGRpZmYgaXMgUHJvcGVydHlEaWZmZXJlbmNlPFQ+IHtcbiAgcmV0dXJuIChkaWZmIGFzIFByb3BlcnR5RGlmZmVyZW5jZTxUPikuY2hhbmdlSW1wYWN0ICE9PSB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogRmlsdGVyIGEgbWFwIG9mIElEaWZmZXJlbmNlcyBkb3duIHRvIG9ubHkgcmV0YWluIHRoZSBhY3R1YWwgY2hhbmdlc1xuICovXG5mdW5jdGlvbiBvbmx5Q2hhbmdlczxWLCBUIGV4dGVuZHMgSURpZmZlcmVuY2U8Vj4+KHhzOiB7W2tleTogc3RyaW5nXTogVH0pOiB7W2tleTogc3RyaW5nXTogVH0ge1xuICBjb25zdCByZXQ6IHsgW2tleTogc3RyaW5nXTogVCB9ID0ge307XG4gIGZvciAoY29uc3QgW2tleSwgZGlmZl0gb2YgT2JqZWN0LmVudHJpZXMoeHMpKSB7XG4gICAgaWYgKGRpZmYuaXNEaWZmZXJlbnQpIHtcbiAgICAgIHJldFtrZXldID0gZGlmZjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cbiJdfQ==
@@ -1,41 +0,0 @@
1
- /**
2
- * Compares two objects for equality, deeply. The function handles arguments that are
3
- * +null+, +undefined+, arrays and objects. For objects, the function will not take the
4
- * object prototype into account for the purpose of the comparison, only the values of
5
- * properties reported by +Object.keys+.
6
- *
7
- * If both operands can be parsed to equivalent numbers, will return true.
8
- * This makes diff consistent with CloudFormation, where a numeric 10 and a literal "10"
9
- * are considered equivalent.
10
- *
11
- * @param lvalue the left operand of the equality comparison.
12
- * @param rvalue the right operand of the equality comparison.
13
- *
14
- * @returns +true+ if both +lvalue+ and +rvalue+ are equivalent to each other.
15
- */
16
- export declare function deepEqual(lvalue: any, rvalue: any): boolean;
17
- /**
18
- * Produce the differences between two maps, as a map, using a specified diff function.
19
- *
20
- * @param oldValue the old map.
21
- * @param newValue the new map.
22
- * @param elementDiff the diff function.
23
- *
24
- * @returns a map representing the differences between +oldValue+ and +newValue+.
25
- */
26
- export declare function diffKeyedEntities<T>(oldValue: {
27
- [key: string]: any;
28
- } | undefined, newValue: {
29
- [key: string]: any;
30
- } | undefined, elementDiff: (oldElement: any, newElement: any, key: string) => T): {
31
- [name: string]: T;
32
- };
33
- /**
34
- * Computes the union of two sets of strings.
35
- *
36
- * @param lv the left set of strings.
37
- * @param rv the right set of strings.
38
- *
39
- * @returns a new array containing all elemebts from +lv+ and +rv+, with no duplicates.
40
- */
41
- export declare function unionOf(lv: string[] | Set<string>, rv: string[] | Set<string>): string[];