@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,414 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.formatSecurityChanges = exports.formatDifferences = void 0;
4
- const util_1 = require("util");
5
- const chalk = require("chalk");
6
- const util_2 = require("./diff/util");
7
- const diff_template_1 = require("./diff-template");
8
- const format_table_1 = require("./format-table");
9
- // from cx-api
10
- const PATH_METADATA_KEY = 'aws:cdk:path';
11
- /* eslint-disable @typescript-eslint/no-require-imports */
12
- const { structuredPatch } = require('diff');
13
- /**
14
- * Renders template differences to the process' console.
15
- *
16
- * @param stream The IO stream where to output the rendered diff.
17
- * @param templateDiff TemplateDiff to be rendered to the console.
18
- * @param logicalToPathMap A map from logical ID to construct path. Useful in
19
- * case there is no aws:cdk:path metadata in the template.
20
- * @param context the number of context lines to use in arbitrary JSON diff (defaults to 3).
21
- */
22
- function formatDifferences(stream, templateDiff, logicalToPathMap = {}, context = 3) {
23
- const formatter = new Formatter(stream, logicalToPathMap, templateDiff, context);
24
- if (templateDiff.awsTemplateFormatVersion || templateDiff.transform || templateDiff.description) {
25
- formatter.printSectionHeader('Template');
26
- formatter.formatDifference('AWSTemplateFormatVersion', 'AWSTemplateFormatVersion', templateDiff.awsTemplateFormatVersion);
27
- formatter.formatDifference('Transform', 'Transform', templateDiff.transform);
28
- formatter.formatDifference('Description', 'Description', templateDiff.description);
29
- formatter.printSectionFooter();
30
- }
31
- formatSecurityChangesWithBanner(formatter, templateDiff);
32
- formatter.formatSection('Parameters', 'Parameter', templateDiff.parameters);
33
- formatter.formatSection('Metadata', 'Metadata', templateDiff.metadata);
34
- formatter.formatSection('Mappings', 'Mapping', templateDiff.mappings);
35
- formatter.formatSection('Conditions', 'Condition', templateDiff.conditions);
36
- formatter.formatSection('Resources', 'Resource', templateDiff.resources, formatter.formatResourceDifference.bind(formatter));
37
- formatter.formatSection('Outputs', 'Output', templateDiff.outputs);
38
- formatter.formatSection('Other Changes', 'Unknown', templateDiff.unknown);
39
- }
40
- exports.formatDifferences = formatDifferences;
41
- /**
42
- * Renders a diff of security changes to the given stream
43
- */
44
- function formatSecurityChanges(stream, templateDiff, logicalToPathMap = {}, context) {
45
- const formatter = new Formatter(stream, logicalToPathMap, templateDiff, context);
46
- formatSecurityChangesWithBanner(formatter, templateDiff);
47
- }
48
- exports.formatSecurityChanges = formatSecurityChanges;
49
- function formatSecurityChangesWithBanner(formatter, templateDiff) {
50
- if (!templateDiff.iamChanges.hasChanges && !templateDiff.securityGroupChanges.hasChanges) {
51
- return;
52
- }
53
- formatter.formatIamChanges(templateDiff.iamChanges);
54
- formatter.formatSecurityGroupChanges(templateDiff.securityGroupChanges);
55
- formatter.warning('(NOTE: There may be security-related changes not in this list. See https://github.com/aws/aws-cdk/issues/1299)');
56
- formatter.printSectionFooter();
57
- }
58
- const ADDITION = chalk.green('[+]');
59
- const CONTEXT = chalk.grey('[ ]');
60
- const UPDATE = chalk.yellow('[~]');
61
- const REMOVAL = chalk.red('[-]');
62
- class Formatter {
63
- constructor(stream, logicalToPathMap, diff, context = 3) {
64
- this.stream = stream;
65
- this.logicalToPathMap = logicalToPathMap;
66
- this.context = context;
67
- // Read additional construct paths from the diff if it is supplied
68
- if (diff) {
69
- this.readConstructPathsFrom(diff);
70
- }
71
- }
72
- print(fmt, ...args) {
73
- this.stream.write(chalk.white(util_1.format(fmt, ...args)) + '\n');
74
- }
75
- warning(fmt, ...args) {
76
- this.stream.write(chalk.yellow(util_1.format(fmt, ...args)) + '\n');
77
- }
78
- formatSection(title, entryType, collection, formatter = this.formatDifference.bind(this)) {
79
- if (collection.differenceCount === 0) {
80
- return;
81
- }
82
- this.printSectionHeader(title);
83
- collection.forEachDifference((id, diff) => formatter(entryType, id, diff));
84
- this.printSectionFooter();
85
- }
86
- printSectionHeader(title) {
87
- this.print(chalk.underline(chalk.bold(title)));
88
- }
89
- printSectionFooter() {
90
- this.print('');
91
- }
92
- /**
93
- * Print a simple difference for a given named entity.
94
- *
95
- * @param logicalId the name of the entity that is different.
96
- * @param diff the difference to be rendered.
97
- */
98
- formatDifference(type, logicalId, diff) {
99
- if (!diff || !diff.isDifferent) {
100
- return;
101
- }
102
- let value;
103
- const oldValue = this.formatValue(diff.oldValue, chalk.red);
104
- const newValue = this.formatValue(diff.newValue, chalk.green);
105
- if (diff.isAddition) {
106
- value = newValue;
107
- }
108
- else if (diff.isUpdate) {
109
- value = `${oldValue} to ${newValue}`;
110
- }
111
- else if (diff.isRemoval) {
112
- value = oldValue;
113
- }
114
- this.print(`${this.formatPrefix(diff)} ${chalk.cyan(type)} ${this.formatLogicalId(logicalId)}: ${value}`);
115
- }
116
- /**
117
- * Print a resource difference for a given logical ID.
118
- *
119
- * @param logicalId the logical ID of the resource that changed.
120
- * @param diff the change to be rendered.
121
- */
122
- formatResourceDifference(_type, logicalId, diff) {
123
- if (!diff.isDifferent) {
124
- return;
125
- }
126
- const resourceType = diff.isRemoval ? diff.oldResourceType : diff.newResourceType;
127
- // eslint-disable-next-line max-len
128
- this.print(`${this.formatPrefix(diff)} ${this.formatValue(resourceType, chalk.cyan)} ${this.formatLogicalId(logicalId)} ${this.formatImpact(diff.changeImpact)}`);
129
- if (diff.isUpdate) {
130
- const differenceCount = diff.differenceCount;
131
- let processedCount = 0;
132
- diff.forEachDifference((_, name, values) => {
133
- processedCount += 1;
134
- this.formatTreeDiff(name, values, processedCount === differenceCount);
135
- });
136
- }
137
- }
138
- formatPrefix(diff) {
139
- if (diff.isAddition) {
140
- return ADDITION;
141
- }
142
- if (diff.isUpdate) {
143
- return UPDATE;
144
- }
145
- if (diff.isRemoval) {
146
- return REMOVAL;
147
- }
148
- return chalk.white('[?]');
149
- }
150
- /**
151
- * @param value the value to be formatted.
152
- * @param color the color to be used.
153
- *
154
- * @returns the formatted string, with color applied.
155
- */
156
- formatValue(value, color) {
157
- if (value == null) {
158
- return undefined;
159
- }
160
- if (typeof value === 'string') {
161
- return color(value);
162
- }
163
- return color(JSON.stringify(value));
164
- }
165
- /**
166
- * @param impact the impact to be formatted
167
- * @returns a user-friendly, colored string representing the impact.
168
- */
169
- formatImpact(impact) {
170
- switch (impact) {
171
- case diff_template_1.ResourceImpact.MAY_REPLACE:
172
- return chalk.italic(chalk.yellow('may be replaced'));
173
- case diff_template_1.ResourceImpact.WILL_REPLACE:
174
- return chalk.italic(chalk.bold(chalk.red('replace')));
175
- case diff_template_1.ResourceImpact.WILL_DESTROY:
176
- return chalk.italic(chalk.bold(chalk.red('destroy')));
177
- case diff_template_1.ResourceImpact.WILL_ORPHAN:
178
- return chalk.italic(chalk.yellow('orphan'));
179
- case diff_template_1.ResourceImpact.WILL_UPDATE:
180
- case diff_template_1.ResourceImpact.WILL_CREATE:
181
- case diff_template_1.ResourceImpact.NO_CHANGE:
182
- return ''; // no extra info is gained here
183
- }
184
- }
185
- /**
186
- * Renders a tree of differences under a particular name.
187
- * @param name the name of the root of the tree.
188
- * @param diff the difference on the tree.
189
- * @param last whether this is the last node of a parent tree.
190
- */
191
- formatTreeDiff(name, diff, last) {
192
- let additionalInfo = '';
193
- if (diff_template_1.isPropertyDifference(diff)) {
194
- if (diff.changeImpact === diff_template_1.ResourceImpact.MAY_REPLACE) {
195
- additionalInfo = ' (may cause replacement)';
196
- }
197
- else if (diff.changeImpact === diff_template_1.ResourceImpact.WILL_REPLACE) {
198
- additionalInfo = ' (requires replacement)';
199
- }
200
- }
201
- this.print(' %s─ %s %s%s', last ? '└' : '├', this.changeTag(diff.oldValue, diff.newValue), name, additionalInfo);
202
- return this.formatObjectDiff(diff.oldValue, diff.newValue, ` ${last ? ' ' : '│'}`);
203
- }
204
- /**
205
- * Renders the difference between two objects, looking for the differences as deep as possible,
206
- * and rendering a tree graph of the path until the difference is found.
207
- *
208
- * @param oldObject the old object.
209
- * @param newObject the new object.
210
- * @param linePrefix a prefix (indent-like) to be used on every line.
211
- */
212
- formatObjectDiff(oldObject, newObject, linePrefix) {
213
- if ((typeof oldObject !== typeof newObject) || Array.isArray(oldObject) || typeof oldObject === 'string' || typeof oldObject === 'number') {
214
- if (oldObject !== undefined && newObject !== undefined) {
215
- if (typeof oldObject === 'object' || typeof newObject === 'object') {
216
- const oldStr = JSON.stringify(oldObject, null, 2);
217
- const newStr = JSON.stringify(newObject, null, 2);
218
- const diff = _diffStrings(oldStr, newStr, this.context);
219
- for (let i = 0; i < diff.length; i++) {
220
- this.print('%s %s %s', linePrefix, i === 0 ? '└─' : ' ', diff[i]);
221
- }
222
- }
223
- else {
224
- this.print('%s ├─ %s %s', linePrefix, REMOVAL, this.formatValue(oldObject, chalk.red));
225
- this.print('%s └─ %s %s', linePrefix, ADDITION, this.formatValue(newObject, chalk.green));
226
- }
227
- }
228
- else if (oldObject !== undefined /* && newObject === undefined */) {
229
- this.print('%s └─ %s', linePrefix, this.formatValue(oldObject, chalk.red));
230
- }
231
- else /* if (oldObject === undefined && newObject !== undefined) */ {
232
- this.print('%s └─ %s', linePrefix, this.formatValue(newObject, chalk.green));
233
- }
234
- return;
235
- }
236
- const keySet = new Set(Object.keys(oldObject));
237
- Object.keys(newObject).forEach(k => keySet.add(k));
238
- const keys = new Array(...keySet).filter(k => !util_2.deepEqual(oldObject[k], newObject[k])).sort();
239
- const lastKey = keys[keys.length - 1];
240
- for (const key of keys) {
241
- const oldValue = oldObject[key];
242
- const newValue = newObject[key];
243
- const treePrefix = key === lastKey ? '└' : '├';
244
- if (oldValue !== undefined && newValue !== undefined) {
245
- this.print('%s %s─ %s %s:', linePrefix, treePrefix, this.changeTag(oldValue, newValue), chalk.blue(`.${key}`));
246
- this.formatObjectDiff(oldValue, newValue, `${linePrefix} ${key === lastKey ? ' ' : '│'}`);
247
- }
248
- else if (oldValue !== undefined /* && newValue === undefined */) {
249
- this.print('%s %s─ %s Removed: %s', linePrefix, treePrefix, REMOVAL, chalk.blue(`.${key}`));
250
- }
251
- else /* if (oldValue === undefined && newValue !== undefined */ {
252
- this.print('%s %s─ %s Added: %s', linePrefix, treePrefix, ADDITION, chalk.blue(`.${key}`));
253
- }
254
- }
255
- }
256
- /**
257
- * @param oldValue the old value of a difference.
258
- * @param newValue the new value of a difference.
259
- *
260
- * @returns a tag to be rendered in the diff, reflecting whether the difference
261
- * was an ADDITION, UPDATE or REMOVAL.
262
- */
263
- changeTag(oldValue, newValue) {
264
- if (oldValue !== undefined && newValue !== undefined) {
265
- return UPDATE;
266
- }
267
- else if (oldValue !== undefined /* && newValue === undefined*/) {
268
- return REMOVAL;
269
- }
270
- else /* if (oldValue === undefined && newValue !== undefined) */ {
271
- return ADDITION;
272
- }
273
- }
274
- /**
275
- * Find 'aws:cdk:path' metadata in the diff and add it to the logicalToPathMap
276
- *
277
- * There are multiple sources of logicalID -> path mappings: synth metadata
278
- * and resource metadata, and we combine all sources into a single map.
279
- */
280
- readConstructPathsFrom(templateDiff) {
281
- for (const [logicalId, resourceDiff] of Object.entries(templateDiff.resources)) {
282
- if (!resourceDiff) {
283
- continue;
284
- }
285
- const oldPathMetadata = resourceDiff.oldValue && resourceDiff.oldValue.Metadata && resourceDiff.oldValue.Metadata[PATH_METADATA_KEY];
286
- if (oldPathMetadata && !(logicalId in this.logicalToPathMap)) {
287
- this.logicalToPathMap[logicalId] = oldPathMetadata;
288
- }
289
- const newPathMetadata = resourceDiff.newValue && resourceDiff.newValue.Metadata && resourceDiff.newValue.Metadata[PATH_METADATA_KEY];
290
- if (newPathMetadata && !(logicalId in this.logicalToPathMap)) {
291
- this.logicalToPathMap[logicalId] = newPathMetadata;
292
- }
293
- }
294
- }
295
- formatLogicalId(logicalId) {
296
- // if we have a path in the map, return it
297
- const normalized = this.normalizedLogicalIdPath(logicalId);
298
- if (normalized) {
299
- return `${normalized} ${chalk.gray(logicalId)}`;
300
- }
301
- return logicalId;
302
- }
303
- normalizedLogicalIdPath(logicalId) {
304
- // if we have a path in the map, return it
305
- const path = this.logicalToPathMap[logicalId];
306
- return path ? normalizePath(path) : undefined;
307
- /**
308
- * Path is supposed to start with "/stack-name". If this is the case (i.e. path has more than
309
- * two components, we remove the first part. Otherwise, we just use the full path.
310
- * @param p
311
- */
312
- function normalizePath(p) {
313
- if (p.startsWith('/')) {
314
- p = p.slice(1);
315
- }
316
- let parts = p.split('/');
317
- if (parts.length > 1) {
318
- parts = parts.slice(1);
319
- // remove the last component if it's "Resource" or "Default" (if we have more than a single component)
320
- if (parts.length > 1) {
321
- const last = parts[parts.length - 1];
322
- if (last === 'Resource' || last === 'Default') {
323
- parts = parts.slice(0, parts.length - 1);
324
- }
325
- }
326
- p = parts.join('/');
327
- }
328
- return p;
329
- }
330
- }
331
- formatIamChanges(changes) {
332
- if (!changes.hasChanges) {
333
- return;
334
- }
335
- if (changes.statements.hasChanges) {
336
- this.printSectionHeader('IAM Statement Changes');
337
- this.print(format_table_1.formatTable(this.deepSubstituteBracedLogicalIds(changes.summarizeStatements()), this.stream.columns));
338
- }
339
- if (changes.managedPolicies.hasChanges) {
340
- this.printSectionHeader('IAM Policy Changes');
341
- this.print(format_table_1.formatTable(this.deepSubstituteBracedLogicalIds(changes.summarizeManagedPolicies()), this.stream.columns));
342
- }
343
- }
344
- formatSecurityGroupChanges(changes) {
345
- if (!changes.hasChanges) {
346
- return;
347
- }
348
- this.printSectionHeader('Security Group Changes');
349
- this.print(format_table_1.formatTable(this.deepSubstituteBracedLogicalIds(changes.summarize()), this.stream.columns));
350
- }
351
- deepSubstituteBracedLogicalIds(rows) {
352
- return rows.map(row => row.map(this.substituteBracedLogicalIds.bind(this)));
353
- }
354
- /**
355
- * Substitute all strings like ${LogId.xxx} with the path instead of the logical ID
356
- */
357
- substituteBracedLogicalIds(source) {
358
- return source.replace(/\$\{([^.}]+)(.[^}]+)?\}/ig, (_match, logId, suffix) => {
359
- return '${' + (this.normalizedLogicalIdPath(logId) || logId) + (suffix || '') + '}';
360
- });
361
- }
362
- }
363
- /**
364
- * Creates a unified diff of two strings.
365
- *
366
- * @param oldStr the "old" version of the string.
367
- * @param newStr the "new" version of the string.
368
- * @param context the number of context lines to use in arbitrary JSON diff.
369
- *
370
- * @returns an array of diff lines.
371
- */
372
- function _diffStrings(oldStr, newStr, context) {
373
- const patch = structuredPatch(null, null, oldStr, newStr, null, null, { context });
374
- const result = new Array();
375
- for (const hunk of patch.hunks) {
376
- result.push(chalk.magenta(`@@ -${hunk.oldStart},${hunk.oldLines} +${hunk.newStart},${hunk.newLines} @@`));
377
- const baseIndent = _findIndent(hunk.lines);
378
- for (const line of hunk.lines) {
379
- // Don't care about termination newline.
380
- if (line === '\') {
381
- continue;
382
- }
383
- const marker = line.charAt(0);
384
- const text = line.slice(1 + baseIndent);
385
- switch (marker) {
386
- case ' ':
387
- result.push(`${CONTEXT} ${text}`);
388
- break;
389
- case '+':
390
- result.push(chalk.bold(`${ADDITION} ${chalk.green(text)}`));
391
- break;
392
- case '-':
393
- result.push(chalk.bold(`${REMOVAL} ${chalk.red(text)}`));
394
- break;
395
- default:
396
- throw new Error(`Unexpected diff marker: ${marker} (full line: ${line})`);
397
- }
398
- }
399
- }
400
- return result;
401
- function _findIndent(lines) {
402
- let indent = Number.MAX_SAFE_INTEGER;
403
- for (const line of lines) {
404
- for (let i = 1; i < line.length; i++) {
405
- if (line.charAt(i) !== ' ') {
406
- indent = indent > i - 1 ? i - 1 : indent;
407
- break;
408
- }
409
- }
410
- }
411
- return indent;
412
- }
413
- }
414
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZm9ybWF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUE4QjtBQUM5QiwrQkFBK0I7QUFFL0Isc0NBQXdDO0FBQ3hDLG1EQUF1RztBQUN2RyxpREFBNkM7QUFJN0MsY0FBYztBQUNkLE1BQU0saUJBQWlCLEdBQUcsY0FBYyxDQUFDO0FBRXpDLDBEQUEwRDtBQUMxRCxNQUFNLEVBQUUsZUFBZSxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBTzVDOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IsaUJBQWlCLENBQy9CLE1BQW9CLEVBQ3BCLFlBQTBCLEVBQzFCLG1CQUFvRCxFQUFHLEVBQ3ZELFVBQWtCLENBQUM7SUFDbkIsTUFBTSxTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUVqRixJQUFJLFlBQVksQ0FBQyx3QkFBd0IsSUFBSSxZQUFZLENBQUMsU0FBUyxJQUFJLFlBQVksQ0FBQyxXQUFXLEVBQUU7UUFDL0YsU0FBUyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsRUFBRSwwQkFBMEIsRUFBRSxZQUFZLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUMxSCxTQUFTLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0UsU0FBUyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25GLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0tBQ2hDO0lBRUQsK0JBQStCLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBRXpELFNBQVMsQ0FBQyxhQUFhLENBQUMs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QUcsQ0FBQyxDQUFDO2FBQzdFO1NBQ0Y7S0FDRjtJQUNELE9BQU8sTUFBTSxDQUFDO0lBRWQsU0FBUyxXQUFXLENBQUMsS0FBZTtRQUNsQyxJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7UUFDckMsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7WUFDeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUcsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3RDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7b0JBQzFCLE1BQU0sR0FBRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO29CQUN6QyxNQUFNO2lCQUNQO2FBQ0Y7U0FDRjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAndXRpbCc7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgeyBEaWZmZXJlbmNlQ29sbGVjdGlvbiwgVGVtcGxhdGVEaWZmIH0gZnJvbSAnLi9kaWZmL3R5cGVzJztcbmltcG9ydCB7IGRlZXBFcXVhbCB9IGZyb20gJy4vZGlmZi91dGlsJztcbmltcG9ydCB7IERpZmZlcmVuY2UsIGlzUHJvcGVydHlEaWZmZXJlbmNlLCBSZXNvdXJjZURpZmZlcmVuY2UsIFJlc291cmNlSW1wYWN0IH0gZnJvbSAnLi9kaWZmLXRlbXBsYXRlJztcbmltcG9ydCB7IGZvcm1hdFRhYmxlIH0gZnJvbSAnLi9mb3JtYXQtdGFibGUnO1xuaW1wb3J0IHsgSWFtQ2hhbmdlcyB9IGZyb20gJy4vaWFtL2lhbS1jaGFuZ2VzJztcbmltcG9ydCB7IFNlY3VyaXR5R3JvdXBDaGFuZ2VzIH0gZnJvbSAnLi9uZXR3b3JrL3NlY3VyaXR5LWdyb3VwLWNoYW5nZXMnO1xuXG4vLyBmcm9tIGN4LWFwaVxuY29uc3QgUEFUSF9NRVRBREFUQV9LRVkgPSAnYXdzOmNkazpwYXRoJztcblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0cyAqL1xuY29uc3QgeyBzdHJ1Y3R1cmVkUGF0Y2ggfSA9IHJlcXVpcmUoJ2RpZmYnKTtcbi8qIGVzbGludC1lbmFibGUgKi9cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtYXRTdHJlYW0gZXh0ZW5kcyBOb2RlSlMuV3JpdGFibGVTdHJlYW0ge1xuICBjb2x1bW5zPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgdGVtcGxhdGUgZGlmZmVyZW5jZXMgdG8gdGhlIHByb2Nlc3MnIGNvbnNvbGUuXG4gKlxuICogQHBhcmFtIHN0cmVhbSAgICAgICAgICAgVGhlIElPIHN0cmVhbSB3aGVyZSB0byBvdXRwdXQgdGhlIHJlbmRlcmVkIGRpZmYuXG4gKiBAcGFyYW0gdGVtcGxhdGVEaWZmICAgICBUZW1wbGF0ZURpZmYgdG8gYmUgcmVuZGVyZWQgdG8gdGhlIGNvbnNvbGUuXG4gKiBAcGFyYW0gbG9naWNhbFRvUGF0aE1hcCBBIG1hcCBmcm9tIGxvZ2ljYWwgSUQgdG8gY29uc3RydWN0IHBhdGguIFVzZWZ1bCBpblxuICogICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0aGVyZSBpcyBubyBhd3M6Y2RrOnBhdGggbWV0YWRhdGEgaW4gdGhlIHRlbXBsYXRlLlxuICogQHBhcmFtIGNvbnRleHQgICAgICAgICAgdGhlIG51bWJlciBvZiBjb250ZXh0IGxpbmVzIHRvIHVzZSBpbiBhcmJpdHJhcnkgSlNPTiBkaWZmIChkZWZhdWx0cyB0byAzKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERpZmZlcmVuY2VzKFxuICBzdHJlYW06IEZvcm1hdFN0cmVhbSxcbiAgdGVtcGxhdGVEaWZmOiBUZW1wbGF0ZURpZmYsXG4gIGxvZ2ljYWxUb1BhdGhNYXA6IHsgW2xvZ2ljYWxJZDogc3RyaW5nXTogc3RyaW5nIH0gPSB7IH0sXG4gIGNvbnRleHQ6IG51bWJlciA9IDMpIHtcbiAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEZvcm1hdHRlcihzdHJlYW0sIGxvZ2ljYWxUb1BhdGhNYXAsIHRlbXBsYXRlRGlmZiwgY29udGV4dCk7XG5cbiAgaWYgKHRlbXBsYXRlRGlmZi5hd3NUZW1wbGF0ZUZvcm1hdFZlcnNpb24gfHwgdGVtcGxhdGVEaWZmLnRyYW5zZm9ybSB8fCB0ZW1wbGF0ZURpZmYuZGVzY3JpcHRpb24pIHtcbiAgICBmb3JtYXR0ZXIucHJpbnRTZWN0aW9uSGVhZGVyKCdUZW1wbGF0ZScpO1xuICAgIGZvcm1hdHRlci5mb3JtYXREaWZmZXJlbmNlKCdBV1NUZW1wbGF0ZUZvcm1hdFZlcnNpb24nLCAnQVdTVGVtcGxhdGVGb3JtYXRWZXJzaW9uJywgdGVtcGxhdGVEaWZmLmF3c1RlbXBsYXRlRm9ybWF0VmVyc2lvbik7XG4gICAgZm9ybWF0dGVyLmZvcm1hdERpZmZlcmVuY2UoJ1RyYW5zZm9ybScsICdUcmFuc2Zvcm0nLCB0ZW1wbGF0ZURpZmYudHJhbnNmb3JtKTtcbiAgICBmb3JtYXR0ZXIuZm9ybWF0RGlmZmVyZW5jZSgnRGVzY3JpcHRpb24nLCAnRGVzY3JpcHRpb24nLCB0ZW1wbGF0ZURpZmYuZGVzY3JpcHRpb24pO1xuICAgIGZvcm1hdHRlci5wcmludFNlY3Rpb25Gb290ZXIoKTtcbiAgfVxuXG4gIGZvcm1hdFNlY3VyaXR5Q2hhbmdlc1dpdGhCYW5uZXIoZm9ybWF0dGVyLCB0ZW1wbGF0ZURpZmYpO1xuXG4gIGZvcm1hdHRlci5mb3JtYXRTZWN0aW9uKCdQYXJhbWV0ZXJzJywgJ1BhcmFtZXRlcicsIHRlbXBsYXRlRGlmZi5wYXJhbWV0ZXJzKTtcbiAgZm9ybWF0dGVyLmZvcm1hdFNlY3Rpb24oJ01ldGFkYXRhJywgJ01ldGFkYXRhJywgdGVtcGxhdGVEaWZmLm1ldGFkYXRhKTtcbiAgZm9ybWF0dGVyLmZvcm1hdFNlY3Rpb24oJ01hcHBpbmdzJywgJ01hcHBpbmcnLCB0ZW1wbGF0ZURpZmYubWFwcGluZ3MpO1xuICBmb3JtYXR0ZXIuZm9ybWF0U2VjdGlvbignQ29uZGl0aW9ucycsICdDb25kaXRpb24nLCB0ZW1wbGF0ZURpZmYuY29uZGl0aW9ucyk7XG4gIGZvcm1hdHRlci5mb3JtYXRTZWN0aW9uKCdSZXNvdXJjZXMnLCAnUmVzb3VyY2UnLCB0ZW1wbGF0ZURpZmYucmVzb3VyY2VzLCBmb3JtYXR0ZXIuZm9ybWF0UmVzb3VyY2VEaWZmZXJlbmNlLmJpbmQoZm9ybWF0dGVyKSk7XG4gIGZvcm1hdHRlci5mb3JtYXRTZWN0aW9uKCdPdXRwdXRzJywgJ091dHB1dCcsIHRlbXBsYXRlRGlmZi5vdXRwdXRzKTtcbiAgZm9ybWF0dGVyLmZvcm1hdFNlY3Rpb24oJ090aGVyIENoYW5nZXMnLCAnVW5rbm93bicsIHRlbXBsYXRlRGlmZi51bmtub3duKTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIGEgZGlmZiBvZiBzZWN1cml0eSBjaGFuZ2VzIHRvIHRoZSBnaXZlbiBzdHJlYW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFNlY3VyaXR5Q2hhbmdlcyhcbiAgc3RyZWFtOiBOb2RlSlMuV3JpdGVTdHJlYW0sXG4gIHRlbXBsYXRlRGlmZjogVGVtcGxhdGVEaWZmLFxuICBsb2dpY2FsVG9QYXRoTWFwOiB7W2xvZ2ljYWxJZDogc3RyaW5nXTogc3RyaW5nfSA9IHt9LFxuICBjb250ZXh0PzogbnVtYmVyKSB7XG4gIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBGb3JtYXR0ZXIoc3RyZWFtLCBsb2dpY2FsVG9QYXRoTWFwLCB0ZW1wbGF0ZURpZmYsIGNvbnRleHQpO1xuXG4gIGZvcm1hdFNlY3VyaXR5Q2hhbmdlc1dpdGhCYW5uZXIoZm9ybWF0dGVyLCB0ZW1wbGF0ZURpZmYpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRTZWN1cml0eUNoYW5nZXNXaXRoQmFubmVyKGZvcm1hdHRlcjogRm9ybWF0dGVyLCB0ZW1wbGF0ZURpZmY6IFRlbXBsYXRlRGlmZikge1xuICBpZiAoIXRlbXBsYXRlRGlmZi5pYW1DaGFuZ2VzLmhhc0NoYW5nZXMgJiYgIXRlbXBsYXRlRGlmZi5zZWN1cml0eUdyb3VwQ2hhbmdlcy5oYXNDaGFuZ2VzKSB7IHJldHVybjsgfVxuICBmb3JtYXR0ZXIuZm9ybWF0SWFtQ2hhbmdlcyh0ZW1wbGF0ZURpZmYuaWFtQ2hhbmdlcyk7XG4gIGZvcm1hdHRlci5mb3JtYXRTZWN1cml0eUdyb3VwQ2hhbmdlcyh0ZW1wbGF0ZURpZmYuc2VjdXJpdHlHcm91cENoYW5nZXMpO1xuXG4gIGZvcm1hdHRlci53YXJuaW5nKCcoTk9URTogVGhlcmUgbWF5IGJlIHNlY3VyaXR5LXJlbGF0ZWQgY2hhbmdlcyBub3QgaW4gdGhpcyBsaXN0LiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8xMjk5KScpO1xuICBmb3JtYXR0ZXIucHJpbnRTZWN0aW9uRm9vdGVyKCk7XG59XG5cbmNvbnN0IEFERElUSU9OID0gY2hhbGsuZ3JlZW4oJ1srXScpO1xuY29uc3QgQ09OVEVYVCA9IGNoYWxrLmdyZXkoJ1sgXScpO1xuY29uc3QgVVBEQVRFID0gY2hhbGsueWVsbG93KCdbfl0nKTtcbmNvbnN0IFJFTU9WQUwgPSBjaGFsay5yZWQoJ1stXScpO1xuXG5jbGFzcyBGb3JtYXR0ZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0cmVhbTogRm9ybWF0U3RyZWFtLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9naWNhbFRvUGF0aE1hcDogeyBbbG9naWNhbElkOiBzdHJpbmddOiBzdHJpbmcgfSxcbiAgICBkaWZmPzogVGVtcGxhdGVEaWZmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dDogbnVtYmVyID0gMykge1xuICAgIC8vIFJlYWQgYWRkaXRpb25hbCBjb25zdHJ1Y3QgcGF0aHMgZnJvbSB0aGUgZGlmZiBpZiBpdCBpcyBzdXBwbGllZFxuICAgIGlmIChkaWZmKSB7XG4gICAgICB0aGlzLnJlYWRDb25zdHJ1Y3RQYXRoc0Zyb20oZGlmZik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHByaW50KGZtdDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIHRoaXMuc3RyZWFtLndyaXRlKGNoYWxrLndoaXRlKGZvcm1hdChmbXQsIC4uLmFyZ3MpKSArICdcXG4nKTtcbiAgfVxuXG4gIHB1YmxpYyB3YXJuaW5nKGZtdDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIHRoaXMuc3RyZWFtLndyaXRlKGNoYWxrLnllbGxvdyhmb3JtYXQoZm10LCAuLi5hcmdzKSkgKyAnXFxuJyk7XG4gIH1cblxuICBwdWJsaWMgZm9ybWF0U2VjdGlvbjxWLCBUIGV4dGVuZHMgRGlmZmVyZW5jZTxWPj4oXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICBlbnRyeVR5cGU6IHN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBEaWZmZXJlbmNlQ29sbGVjdGlvbjxWLCBUPixcbiAgICBmb3JtYXR0ZXI6ICh0eXBlOiBzdHJpbmcsIGlkOiBzdHJpbmcsIGRpZmY6IFQpID0+IHZvaWQgPSB0aGlzLmZvcm1hdERpZmZlcmVuY2UuYmluZCh0aGlzKSkge1xuXG4gICAgaWYgKGNvbGxlY3Rpb24uZGlmZmVyZW5jZUNvdW50ID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5wcmludFNlY3Rpb25IZWFkZXIodGl0bGUpO1xuICAgIGNvbGxlY3Rpb24uZm9yRWFjaERpZmZlcmVuY2UoKGlkLCBkaWZmKSA9PiBmb3JtYXR0ZXIoZW50cnlUeXBlLCBpZCwgZGlmZikpO1xuICAgIHRoaXMucHJpbnRTZWN0aW9uRm9vdGVyKCk7XG4gIH1cblxuICBwdWJsaWMgcHJpbnRTZWN0aW9uSGVhZGVyKHRpdGxlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnByaW50KGNoYWxrLnVuZGVybGluZShjaGFsay5ib2xkKHRpdGxlKSkpO1xuICB9XG5cbiAgcHVibGljIHByaW50U2VjdGlvbkZvb3RlcigpIHtcbiAgICB0aGlzLnByaW50KCcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmludCBhIHNpbXBsZSBkaWZmZXJlbmNlIGZvciBhIGdpdmVuIG5hbWVkIGVudGl0eS5cbiAgICpcbiAgICogQHBhcmFtIGxvZ2ljYWxJZCB0aGUgbmFtZSBvZiB0aGUgZW50aXR5IHRoYXQgaXMgZGlmZmVyZW50LlxuICAgKiBAcGFyYW0gZGlmZiB0aGUgZGlmZmVyZW5jZSB0byBiZSByZW5kZXJlZC5cbiAgICovXG4gIHB1YmxpYyBmb3JtYXREaWZmZXJlbmNlKHR5cGU6IHN0cmluZywgbG9naWNhbElkOiBzdHJpbmcsIGRpZmY6IERpZmZlcmVuY2U8YW55PiB8IHVuZGVmaW5lZCkge1xuICAgIGlmICghZGlmZiB8fCAhZGlmZi5pc0RpZmZlcmVudCkgeyByZXR1cm47IH1cblxuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5mb3JtYXRWYWx1ZShkaWZmLm9sZFZhbHVlLCBjaGFsay5yZWQpO1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5mb3JtYXRWYWx1ZShkaWZmLm5ld1ZhbHVlLCBjaGFsay5ncmVlbik7XG4gICAgaWYgKGRpZmYuaXNBZGRpdGlvbikge1xuICAgICAgdmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB9IGVsc2UgaWYgKGRpZmYuaXNVcGRhdGUpIHtcbiAgICAgIHZhbHVlID0gYCR7b2xkVmFsdWV9IHRvICR7bmV3VmFsdWV9YDtcbiAgICB9IGVsc2UgaWYgKGRpZmYuaXNSZW1vdmFsKSB7XG4gICAgICB2YWx1ZSA9IG9sZFZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMucHJpbnQoYCR7dGhpcy5mb3JtYXRQcmVmaXgoZGlmZil9ICR7Y2hhbGsuY3lhbih0eXBlKX0gJHt0aGlzLmZvcm1hdExvZ2ljYWxJZChsb2dpY2FsSWQpfTogJHt2YWx1ZX1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmludCBhIHJlc291cmNlIGRpZmZlcmVuY2UgZm9yIGEgZ2l2ZW4gbG9naWNhbCBJRC5cbiAgICpcbiAgICogQHBhcmFtIGxvZ2ljYWxJZCB0aGUgbG9naWNhbCBJRCBvZiB0aGUgcmVzb3VyY2UgdGhhdCBjaGFuZ2VkLlxuICAgKiBAcGFyYW0gZGlmZiAgICAgIHRoZSBjaGFuZ2UgdG8gYmUgcmVuZGVyZWQuXG4gICAqL1xuICBwdWJsaWMgZm9ybWF0UmVzb3VyY2VEaWZmZXJlbmNlKF90eXBlOiBzdHJpbmcsIGxvZ2ljYWxJZDogc3RyaW5nLCBkaWZmOiBSZXNvdXJjZURpZmZlcmVuY2UpIHtcbiAgICBpZiAoIWRpZmYuaXNEaWZmZXJlbnQpIHsgcmV0dXJuOyB9XG5cbiAgICBjb25zdCByZXNvdXJjZVR5cGUgPSBkaWZmLmlzUmVtb3ZhbCA/IGRpZmYub2xkUmVzb3VyY2VUeXBlIDogZGlmZi5uZXdSZXNvdXJjZVR5cGU7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgIHRoaXMucHJpbnQoYCR7dGhpcy5mb3JtYXRQcmVmaXgoZGlmZil9ICR7dGhpcy5mb3JtYXRWYWx1ZShyZXNvdXJjZVR5cGUsIGNoYWxrLmN5YW4pfSAke3RoaXMuZm9ybWF0TG9naWNhbElkKGxvZ2ljYWxJZCl9ICR7dGhpcy5mb3JtYXRJbXBhY3QoZGlmZi5jaGFuZ2VJbXBhY3QpfWApO1xuXG4gICAgaWYgKGRpZmYuaXNVcGRhdGUpIHtcbiAgICAgIGNvbnN0IGRpZmZlcmVuY2VDb3VudCA9IGRpZmYuZGlmZmVyZW5jZUNvdW50O1xuICAgICAgbGV0IHByb2Nlc3NlZENvdW50ID0gMDtcbiAgICAgIGRpZmYuZm9yRWFjaERpZmZlcmVuY2UoKF8sIG5hbWUsIHZhbHVlcykgPT4ge1xuICAgICAgICBwcm9jZXNzZWRDb3VudCArPSAxO1xuICAgICAgICB0aGlzLmZvcm1hdFRyZWVEaWZmKG5hbWUsIHZhbHVlcywgcHJvY2Vzc2VkQ291bnQgPT09IGRpZmZlcmVuY2VDb3VudCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9ybWF0UHJlZml4PFQ+KGRpZmY6IERpZmZlcmVuY2U8VD4pIHtcbiAgICBpZiAoZGlmZi5pc0FkZGl0aW9uKSB7IHJldHVybiBBRERJVElPTjsgfVxuICAgIGlmIChkaWZmLmlzVXBkYXRlKSB7IHJldHVybiBVUERBVEU7IH1cbiAgICBpZiAoZGlmZi5pc1JlbW92YWwpIHsgcmV0dXJuIFJFTU9WQUw7IH1cbiAgICByZXR1cm4gY2hhbGsud2hpdGUoJ1s/XScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdG8gYmUgZm9ybWF0dGVkLlxuICAgKiBAcGFyYW0gY29sb3IgdGhlIGNvbG9yIHRvIGJlIHVzZWQuXG4gICAqXG4gICAqIEByZXR1cm5zIHRoZSBmb3JtYXR0ZWQgc3RyaW5nLCB3aXRoIGNvbG9yIGFwcGxpZWQuXG4gICAqL1xuICBwdWJsaWMgZm9ybWF0VmFsdWUodmFsdWU6IGFueSwgY29sb3I6IChzdHI6IHN0cmluZykgPT4gc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7IHJldHVybiBjb2xvcih2YWx1ZSk7IH1cbiAgICByZXR1cm4gY29sb3IoSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gaW1wYWN0IHRoZSBpbXBhY3QgdG8gYmUgZm9ybWF0dGVkXG4gICAqIEByZXR1cm5zIGEgdXNlci1mcmllbmRseSwgY29sb3JlZCBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBpbXBhY3QuXG4gICAqL1xuICBwdWJsaWMgZm9ybWF0SW1wYWN0KGltcGFjdDogUmVzb3VyY2VJbXBhY3QpIHtcbiAgICBzd2l0Y2ggKGltcGFjdCkge1xuICAgICAgY2FzZSBSZXNvdXJjZUltcGFjdC5NQVlfUkVQTEFDRTpcbiAgICAgICAgcmV0dXJuIGNoYWxrLml0YWxpYyhjaGFsay55ZWxsb3coJ21heSBiZSByZXBsYWNlZCcpKTtcbiAgICAgIGNhc2UgUmVzb3VyY2VJbXBhY3QuV0lMTF9SRVBMQUNFOlxuICAgICAgICByZXR1cm4gY2hhbGsuaXRhbGljKGNoYWxrLmJvbGQoY2hhbGsucmVkKCdyZXBsYWNlJykpKTtcbiAgICAgIGNhc2UgUmVzb3VyY2VJbXBhY3QuV0lMTF9ERVNUUk9ZOlxuICAgICAgICByZXR1cm4gY2hhbGsuaXRhbGljKGNoYWxrLmJvbGQoY2hhbGsucmVkKCdkZXN0cm95JykpKTtcbiAgICAgIGNhc2UgUmVzb3VyY2VJbXBhY3QuV0lMTF9PUlBIQU46XG4gICAgICAgIHJldHVybiBjaGFsay5pdGFsaWMoY2hhbGsueWVsbG93KCdvcnBoYW4nKSk7XG4gICAgICBjYXNlIFJlc291cmNlSW1wYWN0LldJTExfVVBEQVRFOlxuICAgICAgY2FzZSBSZXNvdXJjZUltcGFjdC5XSUxMX0NSRUFURTpcbiAgICAgIGNhc2UgUmVzb3VyY2VJbXBhY3QuTk9fQ0hBTkdFOlxuICAgICAgICByZXR1cm4gJyc7IC8vIG5vIGV4dHJhIGluZm8gaXMgZ2FpbmVkIGhlcmVcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVycyBhIHRyZWUgb2YgZGlmZmVyZW5jZXMgdW5kZXIgYSBwYXJ0aWN1bGFyIG5hbWUuXG4gICAqIEBwYXJhbSBuYW1lICAgIHRoZSBuYW1lIG9mIHRoZSByb290IG9mIHRoZSB0cmVlLlxuICAgKiBAcGFyYW0gZGlmZiAgICB0aGUgZGlmZmVyZW5jZSBvbiB0aGUgdHJlZS5cbiAgICogQHBhcmFtIGxhc3QgICAgd2hldGhlciB0aGlzIGlzIHRoZSBsYXN0IG5vZGUgb2YgYSBwYXJlbnQgdHJlZS5cbiAgICovXG4gIHB1YmxpYyBmb3JtYXRUcmVlRGlmZihuYW1lOiBzdHJpbmcsIGRpZmY6IERpZmZlcmVuY2U8YW55PiwgbGFzdDogYm9vbGVhbikge1xuICAgIGxldCBhZGRpdGlvbmFsSW5mbyA9ICcnO1xuICAgIGlmIChpc1Byb3BlcnR5RGlmZmVyZW5jZShkaWZmKSkge1xuICAgICAgaWYgKGRpZmYuY2hhbmdlSW1wYWN0ID09PSBSZXNvdXJjZUltcGFjdC5NQVlfUkVQTEFDRSkge1xuICAgICAgICBhZGRpdGlvbmFsSW5mbyA9ICcgKG1heSBjYXVzZSByZXBsYWNlbWVudCknO1xuICAgICAgfSBlbHNlIGlmIChkaWZmLmNoYW5nZUltcGFjdCA9PT0gUmVzb3VyY2VJbXBhY3QuV0lMTF9SRVBMQUNFKSB7XG4gICAgICAgIGFkZGl0aW9uYWxJbmZvID0gJyAocmVxdWlyZXMgcmVwbGFjZW1lbnQpJztcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5wcmludCgnICVz4pSAICVzICVzJXMnLCBsYXN0ID8gJ+KUlCcgOiAn4pScJywgdGhpcy5jaGFuZ2VUYWcoZGlmZi5vbGRWYWx1ZSwgZGlmZi5uZXdWYWx1ZSksIG5hbWUsIGFkZGl0aW9uYWxJbmZvKTtcbiAgICByZXR1cm4gdGhpcy5mb3JtYXRPYmplY3REaWZmKGRpZmYub2xkVmFsdWUsIGRpZmYubmV3VmFsdWUsIGAgJHtsYXN0ID8gJyAnIDogJ+KUgid9YCk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVycyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHR3byBvYmplY3RzLCBsb29raW5nIGZvciB0aGUgZGlmZmVyZW5jZXMgYXMgZGVlcCBhcyBwb3NzaWJsZSxcbiAgICogYW5kIHJlbmRlcmluZyBhIHRyZWUgZ3JhcGggb2YgdGhlIHBhdGggdW50aWwgdGhlIGRpZmZlcmVuY2UgaXMgZm91bmQuXG4gICAqXG4gICAqIEBwYXJhbSBvbGRPYmplY3QgIHRoZSBvbGQgb2JqZWN0LlxuICAgKiBAcGFyYW0gbmV3T2JqZWN0ICB0aGUgbmV3IG9iamVjdC5cbiAgICogQHBhcmFtIGxpbmVQcmVmaXggYSBwcmVmaXggKGluZGVudC1saWtlKSB0byBiZSB1c2VkIG9uIGV2ZXJ5IGxpbmUuXG4gICAqL1xuICBwdWJsaWMgZm9ybWF0T2JqZWN0RGlmZihvbGRPYmplY3Q6IGFueSwgbmV3T2JqZWN0OiBhbnksIGxpbmVQcmVmaXg6IHN0cmluZykge1xuICAgIGlmICgodHlwZW9mIG9sZE9iamVjdCAhPT0gdHlwZW9mIG5ld09iamVjdCkgfHwgQXJyYXkuaXNBcnJheShvbGRPYmplY3QpIHx8IHR5cGVvZiBvbGRPYmplY3QgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBvbGRPYmplY3QgPT09ICdudW1iZXInKSB7XG4gICAgICBpZiAob2xkT2JqZWN0ICE9PSB1bmRlZmluZWQgJiYgbmV3T2JqZWN0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBvbGRPYmplY3QgPT09ICdvYmplY3QnIHx8IHR5cGVvZiBuZXdPYmplY3QgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgY29uc3Qgb2xkU3RyID0gSlNPTi5zdHJpbmdpZnkob2xkT2JqZWN0LCBudWxsLCAyKTtcbiAgICAgICAgICBjb25zdCBuZXdTdHIgPSBKU09OLnN0cmluZ2lmeShuZXdPYmplY3QsIG51bGwsIDIpO1xuICAgICAgICAgIGNvbnN0IGRpZmYgPSBfZGlmZlN0cmluZ3Mob2xkU3RyLCBuZXdTdHIsIHRoaXMuY29udGV4dCk7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDAgOyBpIDwgZGlmZi5sZW5ndGggOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMucHJpbnQoJyVzICAgJXMgJXMnLCBsaW5lUHJlZml4LCBpID09PSAwID8gJ+KUlOKUgCcgOiAnICAnLCBkaWZmW2ldKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5wcmludCgnJXMgICDilJzilIAgJXMgJXMnLCBsaW5lUHJlZml4LCBSRU1PVkFMLCB0aGlzLmZvcm1hdFZhbHVlKG9sZE9iamVjdCwgY2hhbGsucmVkKSk7XG4gICAgICAgICAgdGhpcy5wcmludCgnJXMgICDilJTilIAgJXMgJXMnLCBsaW5lUHJlZml4LCBBRERJVElPTiwgdGhpcy5mb3JtYXRWYWx1ZShuZXdPYmplY3QsIGNoYWxrLmdyZWVuKSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAob2xkT2JqZWN0ICE9PSB1bmRlZmluZWQgLyogJiYgbmV3T2JqZWN0ID09PSB1bmRlZmluZWQgKi8pIHtcbiAgICAgICAgdGhpcy5wcmludCgnJXMgICDilJTilIAgJXMnLCBsaW5lUHJlZml4LCB0aGlzLmZvcm1hdFZhbHVlKG9sZE9iamVjdCwgY2hhbGsucmVkKSk7XG4gICAgICB9IGVsc2UgLyogaWYgKG9sZE9iamVjdCA9PT0gdW5kZWZpbmVkICYmIG5ld09iamVjdCAhPT0gdW5kZWZpbmVkKSAqLyB7XG4gICAgICAgIHRoaXMucHJpbnQoJyVzICAg4pSU4pSAICVzJywgbGluZVByZWZpeCwgdGhpcy5mb3JtYXRWYWx1ZShuZXdPYmplY3QsIGNoYWxrLmdyZWVuKSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGtleVNldCA9IG5ldyBTZXQoT2JqZWN0LmtleXMob2xkT2JqZWN0KSk7XG4gICAgT2JqZWN0LmtleXMobmV3T2JqZWN0KS5mb3JFYWNoKGsgPT4ga2V5U2V0LmFkZChrKSk7XG4gICAgY29uc3Qga2V5cyA9IG5ldyBBcnJheSguLi5rZXlTZXQpLmZpbHRlcihrID0+ICFkZWVwRXF1YWwob2xkT2JqZWN0W2tdLCBuZXdPYmplY3Rba10pKS5zb3J0KCk7XG4gICAgY29uc3QgbGFzdEtleSA9IGtleXNba2V5cy5sZW5ndGggLSAxXTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgICBjb25zdCBvbGRWYWx1ZSA9IG9sZE9iamVjdFtrZXldO1xuICAgICAgY29uc3QgbmV3VmFsdWUgPSBuZXdPYmplY3Rba2V5XTtcbiAgICAgIGNvbnN0IHRyZWVQcmVmaXggPSBrZXkgPT09IGxhc3RLZXkgPyAn4pSUJyA6ICfilJwnO1xuICAgICAgaWYgKG9sZFZhbHVlICE9PSB1bmRlZmluZWQgJiYgbmV3VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnByaW50KCclcyAgICVz4pSAICVzICVzOicsIGxpbmVQcmVmaXgsIHRyZWVQcmVmaXgsIHRoaXMuY2hhbmdlVGFnKG9sZFZhbHVlLCBuZXdWYWx1ZSksIGNoYWxrLmJsdWUoYC4ke2tleX1gKSk7XG4gICAgICAgIHRoaXMuZm9ybWF0T2JqZWN0RGlmZihvbGRWYWx1ZSwgbmV3VmFsdWUsIGAke2xpbmVQcmVmaXh9ICAgJHtrZXkgPT09IGxhc3RLZXkgPyAnICcgOiAn4pSCJ31gKTtcbiAgICAgIH0gZWxzZSBpZiAob2xkVmFsdWUgIT09IHVuZGVmaW5lZCAvKiAmJiBuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkICovKSB7XG4gICAgICAgIHRoaXMucHJpbnQoJyVzICAgJXPilIAgJXMgUmVtb3ZlZDogJXMnLCBsaW5lUHJlZml4LCB0cmVlUHJlZml4LCBSRU1PVkFMLCBjaGFsay5ibHVlKGAuJHtrZXl9YCkpO1xuICAgICAgfSBlbHNlIC8qIGlmIChvbGRWYWx1ZSA9PT0gdW5kZWZpbmVkICYmIG5ld1ZhbHVlICE9PSB1bmRlZmluZWQgKi8ge1xuICAgICAgICB0aGlzLnByaW50KCclcyAgICVz4pSAICVzIEFkZGVkOiAlcycsIGxpbmVQcmVmaXgsIHRyZWVQcmVmaXgsIEFERElUSU9OLCBjaGFsay5ibHVlKGAuJHtrZXl9YCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gb2xkVmFsdWUgdGhlIG9sZCB2YWx1ZSBvZiBhIGRpZmZlcmVuY2UuXG4gICAqIEBwYXJhbSBuZXdWYWx1ZSB0aGUgbmV3IHZhbHVlIG9mIGEgZGlmZmVyZW5jZS5cbiAgICpcbiAgICogQHJldHVybnMgYSB0YWcgdG8gYmUgcmVuZGVyZWQgaW4gdGhlIGRpZmYsIHJlZmxlY3Rpbmcgd2hldGhlciB0aGUgZGlmZmVyZW5jZVxuICAgKiAgICAgIHdhcyBhbiBBRERJVElPTiwgVVBEQVRFIG9yIFJFTU9WQUwuXG4gICAqL1xuICBwdWJsaWMgY2hhbmdlVGFnKG9sZFZhbHVlOiBhbnkgfCB1bmRlZmluZWQsIG5ld1ZhbHVlOiBhbnkgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIGlmIChvbGRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIG5ld1ZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBVUERBVEU7XG4gICAgfSBlbHNlIGlmIChvbGRWYWx1ZSAhPT0gdW5kZWZpbmVkIC8qICYmIG5ld1ZhbHVlID09PSB1bmRlZmluZWQqLykge1xuICAgICAgcmV0dXJuIFJFTU9WQUw7XG4gICAgfSBlbHNlIC8qIGlmIChvbGRWYWx1ZSA9PT0gdW5kZWZpbmVkICYmIG5ld1ZhbHVlICE9PSB1bmRlZmluZWQpICovIHtcbiAgICAgIHJldHVybiBBRERJVElPTjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRmluZCAnYXdzOmNkazpwYXRoJyBtZXRhZGF0YSBpbiB0aGUgZGlmZiBhbmQgYWRkIGl0IHRvIHRoZSBsb2dpY2FsVG9QYXRoTWFwXG4gICAqXG4gICAqIFRoZXJlIGFyZSBtdWx0aXBsZSBzb3VyY2VzIG9mIGxvZ2ljYWxJRCAtPiBwYXRoIG1hcHBpbmdzOiBzeW50aCBtZXRhZGF0YVxuICAgKiBhbmQgcmVzb3VyY2UgbWV0YWRhdGEsIGFuZCB3ZSBjb21iaW5lIGFsbCBzb3VyY2VzIGludG8gYSBzaW5nbGUgbWFwLlxuICAgKi9cbiAgcHVibGljIHJlYWRDb25zdHJ1Y3RQYXRoc0Zyb20odGVtcGxhdGVEaWZmOiBUZW1wbGF0ZURpZmYpIHtcbiAgICBmb3IgKGNvbnN0IFtsb2dpY2FsSWQsIHJlc291cmNlRGlmZl0gb2YgT2JqZWN0LmVudHJpZXModGVtcGxhdGVEaWZmLnJlc291cmNlcykpIHtcbiAgICAgIGlmICghcmVzb3VyY2VEaWZmKSB7IGNvbnRpbnVlOyB9XG5cbiAgICAgIGNvbnN0IG9sZFBhdGhNZXRhZGF0YSA9IHJlc291cmNlRGlmZi5vbGRWYWx1ZSAmJiByZXNvdXJjZURpZmYub2xkVmFsdWUuTWV0YWRhdGEgJiYgcmVzb3VyY2VEaWZmLm9sZFZhbHVlLk1ldGFkYXRhW1BBVEhfTUVUQURBVEFfS0VZXTtcbiAgICAgIGlmIChvbGRQYXRoTWV0YWRhdGEgJiYgIShsb2dpY2FsSWQgaW4gdGhpcy5sb2dpY2FsVG9QYXRoTWFwKSkge1xuICAgICAgICB0aGlzLmxvZ2ljYWxUb1BhdGhNYXBbbG9naWNhbElkXSA9IG9sZFBhdGhNZXRhZGF0YTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmV3UGF0aE1ldGFkYXRhID0gcmVzb3VyY2VEaWZmLm5ld1ZhbHVlICYmIHJlc291cmNlRGlmZi5uZXdWYWx1ZS5NZXRhZGF0YSAmJiByZXNvdXJjZURpZmYubmV3VmFsdWUuTWV0YWRhdGFbUEFUSF9NRVRBREFUQV9LRVldO1xuICAgICAgaWYgKG5ld1BhdGhNZXRhZGF0YSAmJiAhKGxvZ2ljYWxJZCBpbiB0aGlzLmxvZ2ljYWxUb1BhdGhNYXApKSB7XG4gICAgICAgIHRoaXMubG9naWNhbFRvUGF0aE1hcFtsb2dpY2FsSWRdID0gbmV3UGF0aE1ldGFkYXRhO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmb3JtYXRMb2dpY2FsSWQobG9naWNhbElkOiBzdHJpbmcpIHtcbiAgICAvLyBpZiB3ZSBoYXZlIGEgcGF0aCBpbiB0aGUgbWFwLCByZXR1cm4gaXRcbiAgICBjb25zdCBub3JtYWxpemVkID0gdGhpcy5ub3JtYWxpemVkTG9naWNhbElkUGF0aChsb2dpY2FsSWQpO1xuXG4gICAgaWYgKG5vcm1hbGl6ZWQpIHtcbiAgICAgIHJldHVybiBgJHtub3JtYWxpemVkfSAke2NoYWxrLmdyYXkobG9naWNhbElkKX1gO1xuICAgIH1cblxuICAgIHJldHVybiBsb2dpY2FsSWQ7XG4gIH1cblxuICBwdWJsaWMgbm9ybWFsaXplZExvZ2ljYWxJZFBhdGgobG9naWNhbElkOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIC8vIGlmIHdlIGhhdmUgYSBwYXRoIGluIHRoZSBtYXAsIHJldHVybiBpdFxuICAgIGNvbnN0IHBhdGggPSB0aGlzLmxvZ2ljYWxUb1BhdGhNYXBbbG9naWNhbElkXTtcbiAgICByZXR1cm4gcGF0aCA/IG5vcm1hbGl6ZVBhdGgocGF0aCkgOiB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBQYXRoIGlzIHN1cHBvc2VkIHRvIHN0YXJ0IHdpdGggXCIvc3RhY2stbmFtZVwiLiBJZiB0aGlzIGlzIHRoZSBjYXNlIChpLmUuIHBhdGggaGFzIG1vcmUgdGhhblxuICAgICAqIHR3byBjb21wb25lbnRzLCB3ZSByZW1vdmUgdGhlIGZpcnN0IHBhcnQuIE90aGVyd2lzZSwgd2UganVzdCB1c2UgdGhlIGZ1bGwgcGF0aC5cbiAgICAgKiBAcGFyYW0gcFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZVBhdGgocDogc3RyaW5nKSB7XG4gICAgICBpZiAocC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgcCA9IHAuc2xpY2UoMSk7XG4gICAgICB9XG5cbiAgICAgIGxldCBwYXJ0cyA9IHAuc3BsaXQoJy8nKTtcbiAgICAgIGlmIChwYXJ0cy5sZW5ndGggPiAxKSB7XG4gICAgICAgIHBhcnRzID0gcGFydHMuc2xpY2UoMSk7XG5cbiAgICAgICAgLy8gcmVtb3ZlIHRoZSBsYXN0IGNvbXBvbmVudCBpZiBpdCdzIFwiUmVzb3VyY2VcIiBvciBcIkRlZmF1bHRcIiAoaWYgd2UgaGF2ZSBtb3JlIHRoYW4gYSBzaW5nbGUgY29tcG9uZW50KVxuICAgICAgICBpZiAocGFydHMubGVuZ3RoID4gMSkge1xuICAgICAgICAgIGNvbnN0IGxhc3QgPSBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXTtcbiAgICAgICAgICBpZiAobGFzdCA9PT0gJ1Jlc291cmNlJyB8fCBsYXN0ID09PSAnRGVmYXVsdCcpIHtcbiAgICAgICAgICAgIHBhcnRzID0gcGFydHMuc2xpY2UoMCwgcGFydHMubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcCA9IHBhcnRzLmpvaW4oJy8nKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmb3JtYXRJYW1DaGFuZ2VzKGNoYW5nZXM6IElhbUNoYW5nZXMpIHtcbiAgICBpZiAoIWNoYW5nZXMuaGFzQ2hhbmdlcykgeyByZXR1cm47IH1cblxuICAgIGlmIChjaGFuZ2VzLnN0YXRlbWVudHMuaGFzQ2hhbmdlcykge1xuICAgICAgdGhpcy5wcmludFNlY3Rpb25IZWFkZXIoJ0lBTSBTdGF0ZW1lbnQgQ2hhbmdlcycpO1xuICAgICAgdGhpcy5wcmludChmb3JtYXRUYWJsZSh0aGlzLmRlZXBTdWJzdGl0dXRlQnJhY2VkTG9naWNhbElkcyhjaGFuZ2VzLnN1bW1hcml6ZVN0YXRlbWVudHMoKSksIHRoaXMuc3RyZWFtLmNvbHVtbnMpKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5tYW5hZ2VkUG9saWNpZXMuaGFzQ2hhbmdlcykge1xuICAgICAgdGhpcy5wcmludFNlY3Rpb25IZWFkZXIoJ0lBTSBQb2xpY3kgQ2hhbmdlcycpO1xuICAgICAgdGhpcy5wcmludChmb3JtYXRUYWJsZSh0aGlzLmRlZXBTdWJzdGl0dXRlQnJhY2VkTG9naWNhbElkcyhjaGFuZ2VzLnN1bW1hcml6ZU1hbmFnZWRQb2xpY2llcygpKSwgdGhpcy5zdHJlYW0uY29sdW1ucykpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmb3JtYXRTZWN1cml0eUdyb3VwQ2hhbmdlcyhjaGFuZ2VzOiBTZWN1cml0eUdyb3VwQ2hhbmdlcykge1xuICAgIGlmICghY2hhbmdlcy5oYXNDaGFuZ2VzKSB7IHJldHVybjsgfVxuXG4gICAgdGhpcy5wcmludFNlY3Rpb25IZWFkZXIoJ1NlY3VyaXR5IEdyb3VwIENoYW5nZXMnKTtcbiAgICB0aGlzLnByaW50KGZvcm1hdFRhYmxlKHRoaXMuZGVlcFN1YnN0aXR1dGVCcmFjZWRMb2dpY2FsSWRzKGNoYW5nZXMuc3VtbWFyaXplKCkpLCB0aGlzLnN0cmVhbS5jb2x1bW5zKSk7XG4gIH1cblxuICBwdWJsaWMgZGVlcFN1YnN0aXR1dGVCcmFjZWRMb2dpY2FsSWRzKHJvd3M6IHN0cmluZ1tdW10pOiBzdHJpbmdbXVtdIHtcbiAgICByZXR1cm4gcm93cy5tYXAocm93ID0+IHJvdy5tYXAodGhpcy5zdWJzdGl0dXRlQnJhY2VkTG9naWNhbElkcy5iaW5kKHRoaXMpKSk7XG4gIH1cblxuICAvKipcbiAgICogU3Vic3RpdHV0ZSBhbGwgc3RyaW5ncyBsaWtlICR7TG9nSWQueHh4fSB3aXRoIHRoZSBwYXRoIGluc3RlYWQgb2YgdGhlIGxvZ2ljYWwgSURcbiAgICovXG4gIHB1YmxpYyBzdWJzdGl0dXRlQnJhY2VkTG9naWNhbElkcyhzb3VyY2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNvdXJjZS5yZXBsYWNlKC9cXCRcXHsoW14ufV0rKSguW159XSspP1xcfS9pZywgKF9tYXRjaCwgbG9nSWQsIHN1ZmZpeCkgPT4ge1xuICAgICAgcmV0dXJuICckeycgKyAodGhpcy5ub3JtYWxpemVkTG9naWNhbElkUGF0aChsb2dJZCkgfHwgbG9nSWQpICsgKHN1ZmZpeCB8fCAnJykgKyAnfSc7XG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIHBhdGNoIGFzIHJldHVybmVkIGJ5IGBgZGlmZi5zdHJ1Y3R1cmVkUGF0Y2hgYC5cbiAqL1xuaW50ZXJmYWNlIFBhdGNoIHtcbiAgLyoqXG4gICAqIEh1bmtzIGluIHRoZSBwYXRjaC5cbiAgICovXG4gIGh1bmtzOiBSZWFkb25seUFycmF5PFBhdGNoSHVuaz47XG59XG5cbi8qKlxuICogQSBodW5rIGluIGEgcGF0Y2ggcHJvZHVjZWQgYnkgYGBkaWZmLnN0cnVjdHVyZWRQYXRjaGBgLlxuICovXG5pbnRlcmZhY2UgUGF0Y2hIdW5rIHtcbiAgb2xkU3RhcnQ6IG51bWJlcjtcbiAgb2xkTGluZXM6IG51bWJlcjtcbiAgbmV3U3RhcnQ6IG51bWJlcjtcbiAgbmV3TGluZXM6IG51bWJlcjtcbiAgbGluZXM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSB1bmlmaWVkIGRpZmYgb2YgdHdvIHN0cmluZ3MuXG4gKlxuICogQHBhcmFtIG9sZFN0ciAgdGhlIFwib2xkXCIgdmVyc2lvbiBvZiB0aGUgc3RyaW5nLlxuICogQHBhcmFtIG5ld1N0ciAgdGhlIFwibmV3XCIgdmVyc2lvbiBvZiB0aGUgc3RyaW5nLlxuICogQHBhcmFtIGNvbnRleHQgdGhlIG51bWJlciBvZiBjb250ZXh0IGxpbmVzIHRvIHVzZSBpbiBhcmJpdHJhcnkgSlNPTiBkaWZmLlxuICpcbiAqIEByZXR1cm5zIGFuIGFycmF5IG9mIGRpZmYgbGluZXMuXG4gKi9cbmZ1bmN0aW9uIF9kaWZmU3RyaW5ncyhvbGRTdHI6IHN0cmluZywgbmV3U3RyOiBzdHJpbmcsIGNvbnRleHQ6IG51bWJlcik6IHN0cmluZ1tdIHtcbiAgY29uc3QgcGF0Y2g6IFBhdGNoID0gc3RydWN0dXJlZFBhdGNoKG51bGwsIG51bGwsIG9sZFN0ciwgbmV3U3RyLCBudWxsLCBudWxsLCB7IGNvbnRleHQgfSk7XG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIGZvciAoY29uc3QgaHVuayBvZiBwYXRjaC5odW5rcykge1xuICAgIHJlc3VsdC5wdXNoKGNoYWxrLm1hZ2VudGEoYEBAIC0ke2h1bmsub2xkU3RhcnR9LCR7aHVuay5vbGRMaW5lc30gKyR7aHVuay5uZXdTdGFydH0sJHtodW5rLm5ld0xpbmVzfSBAQGApKTtcbiAgICBjb25zdCBiYXNlSW5kZW50ID0gX2ZpbmRJbmRlbnQoaHVuay5saW5lcyk7XG4gICAgZm9yIChjb25zdCBsaW5lIG9mIGh1bmsubGluZXMpIHtcbiAgICAgIC8vIERvbid0IGNhcmUgYWJvdXQgdGVybWluYXRpb24gbmV3bGluZS5cbiAgICAgIGlmIChsaW5lID09PSAnXFxcXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlJykgeyBjb250aW51ZTsgfVxuICAgICAgY29uc3QgbWFya2VyID0gbGluZS5jaGFyQXQoMCk7XG4gICAgICBjb25zdCB0ZXh0ID0gbGluZS5zbGljZSgxICsgYmFzZUluZGVudCk7XG4gICAgICBzd2l0Y2ggKG1hcmtlcikge1xuICAgICAgICBjYXNlICcgJzpcbiAgICAgICAgICByZXN1bHQucHVzaChgJHtDT05URVhUfSAke3RleHR9YCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJysnOlxuICAgICAgICAgIHJlc3VsdC5wdXNoKGNoYWxrLmJvbGQoYCR7QURESVRJT059ICR7Y2hhbGsuZ3JlZW4odGV4dCl9YCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICctJzpcbiAgICAgICAgICByZXN1bHQucHVzaChjaGFsay5ib2xkKGAke1JFTU9WQUx9ICR7Y2hhbGsucmVkKHRleHQpfWApKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgZGlmZiBtYXJrZXI6ICR7bWFya2VyfSAoZnVsbCBsaW5lOiAke2xpbmV9KWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xuXG4gIGZ1bmN0aW9uIF9maW5kSW5kZW50KGxpbmVzOiBzdHJpbmdbXSk6IG51bWJlciB7XG4gICAgbGV0IGluZGVudCA9IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSO1xuICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgZm9yIChsZXQgaSA9IDEgOyBpIDwgbGluZS5sZW5ndGggOyBpKyspIHtcbiAgICAgICAgaWYgKGxpbmUuY2hhckF0KGkpICE9PSAnICcpIHtcbiAgICAgICAgICBpbmRlbnQgPSBpbmRlbnQgPiBpIC0gMSA/IGkgLSAxIDogaW5kZW50O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpbmRlbnQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,62 +0,0 @@
1
- import * as cfnspec from '@aws-cdk/cfnspec';
2
- import { ManagedPolicyAttachment, ManagedPolicyJson } from './managed-policy';
3
- import { Statement, StatementJson } from './statement';
4
- import { PropertyChange, ResourceChange } from '../diff/types';
5
- import { DiffableCollection } from '../diffable';
6
- export interface IamChangesProps {
7
- propertyChanges: PropertyChange[];
8
- resourceChanges: ResourceChange[];
9
- }
10
- /**
11
- * Changes to IAM statements
12
- */
13
- export declare class IamChanges {
14
- static IamPropertyScrutinies: cfnspec.schema.PropertyScrutinyType[];
15
- static IamResourceScrutinies: cfnspec.schema.ResourceScrutinyType[];
16
- readonly statements: DiffableCollection<Statement>;
17
- readonly managedPolicies: DiffableCollection<ManagedPolicyAttachment>;
18
- constructor(props: IamChangesProps);
19
- get hasChanges(): boolean;
20
- /**
21
- * Return whether the changes include broadened permissions
22
- *
23
- * Permissions are broadened if positive statements are added or
24
- * negative statements are removed, or if managed policies are added.
25
- */
26
- get permissionsBroadened(): boolean;
27
- /**
28
- * Return a summary table of changes
29
- */
30
- summarizeStatements(): string[][];
31
- summarizeManagedPolicies(): string[][];
32
- /**
33
- * Return a machine-readable version of the changes.
34
- * This is only used in tests.
35
- *
36
- * @internal
37
- */
38
- _toJson(): IamChangesJson;
39
- private readPropertyChange;
40
- private readResourceChange;
41
- /**
42
- * Parse a list of policies on an identity
43
- */
44
- private readIdentityPolicies;
45
- /**
46
- * Parse an IAM::Policy resource
47
- */
48
- private readIdentityPolicyResource;
49
- private readResourceStatements;
50
- /**
51
- * Parse an AWS::*::{Bucket,Topic,Queue}policy
52
- */
53
- private readResourcePolicyResource;
54
- private readManagedPolicies;
55
- private readLambdaStatements;
56
- }
57
- export interface IamChangesJson {
58
- statementAdditions?: StatementJson[];
59
- statementRemovals?: StatementJson[];
60
- managedPolicyAdditions?: ManagedPolicyJson[];
61
- managedPolicyRemovals?: ManagedPolicyJson[];
62
- }