@aws-amplify/graphql-api-construct 1.18.3-ai-next.0 → 1.18.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1042) hide show
  1. package/.jsii +456 -59
  2. package/API.md +17 -0
  3. package/CHANGELOG.md +1 -1
  4. package/jest.config.js +12 -0
  5. package/lib/amplify-dynamodb-table-wrapper.js +1 -1
  6. package/lib/amplify-graphql-api.js +4 -3
  7. package/lib/amplify-graphql-definition.js +1 -1
  8. package/lib/index.d.ts +2 -0
  9. package/lib/index.js +5 -2
  10. package/lib/log-config-types.d.ts +78 -0
  11. package/lib/log-config-types.js +8 -0
  12. package/lib/sql-model-datasource-strategy.js +1 -1
  13. package/lib/types.d.ts +5 -0
  14. package/lib/types.js +1 -1
  15. package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +4 -0
  16. package/node_modules/@aws-amplify/graphql-auth-transformer/LICENSE +201 -0
  17. package/node_modules/@aws-amplify/graphql-auth-transformer/jest.config.js +12 -0
  18. package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +15 -54
  19. package/node_modules/@aws-amplify/graphql-conversation-transformer/CHANGELOG.md +2 -2
  20. package/node_modules/@aws-amplify/graphql-conversation-transformer/jest.config.js +10 -0
  21. package/node_modules/@aws-amplify/graphql-conversation-transformer/package.json +12 -48
  22. package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +4 -0
  23. package/node_modules/@aws-amplify/graphql-default-value-transformer/LICENSE +201 -0
  24. package/node_modules/@aws-amplify/graphql-default-value-transformer/jest.config.js +12 -0
  25. package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +9 -49
  26. package/node_modules/@aws-amplify/graphql-directives/CHANGELOG.md +4 -0
  27. package/node_modules/@aws-amplify/graphql-directives/LICENSE +201 -0
  28. package/node_modules/@aws-amplify/graphql-directives/jest.config.js +6 -0
  29. package/node_modules/@aws-amplify/graphql-directives/package.json +2 -42
  30. package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +4 -0
  31. package/node_modules/@aws-amplify/graphql-function-transformer/LICENSE +201 -0
  32. package/node_modules/@aws-amplify/graphql-function-transformer/jest.config.js +12 -0
  33. package/node_modules/@aws-amplify/graphql-function-transformer/package.json +9 -48
  34. package/node_modules/@aws-amplify/graphql-generation-transformer/CHANGELOG.md +4 -0
  35. package/node_modules/@aws-amplify/graphql-generation-transformer/LICENSE +201 -0
  36. package/node_modules/@aws-amplify/graphql-generation-transformer/jest.config.js +9 -0
  37. package/node_modules/@aws-amplify/graphql-generation-transformer/package.json +9 -44
  38. package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +4 -0
  39. package/node_modules/@aws-amplify/graphql-http-transformer/LICENSE +201 -0
  40. package/node_modules/@aws-amplify/graphql-http-transformer/jest.config.js +12 -0
  41. package/node_modules/@aws-amplify/graphql-http-transformer/package.json +9 -48
  42. package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +4 -0
  43. package/node_modules/@aws-amplify/graphql-index-transformer/LICENSE +201 -0
  44. package/node_modules/@aws-amplify/graphql-index-transformer/jest.config.js +12 -0
  45. package/node_modules/@aws-amplify/graphql-index-transformer/package.json +10 -46
  46. package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +4 -0
  47. package/node_modules/@aws-amplify/graphql-maps-to-transformer/LICENSE +201 -0
  48. package/node_modules/@aws-amplify/graphql-maps-to-transformer/jest.config.js +12 -0
  49. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
  50. package/node_modules/@aws-amplify/graphql-maps-to-transformer/package.json +13 -49
  51. package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +4 -0
  52. package/node_modules/@aws-amplify/graphql-model-transformer/LICENSE +201 -0
  53. package/node_modules/@aws-amplify/graphql-model-transformer/jest.config.js +12 -0
  54. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
  55. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
  56. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
  57. package/node_modules/@aws-amplify/graphql-model-transformer/package.json +9 -49
  58. package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +4 -0
  59. package/node_modules/@aws-amplify/graphql-predictions-transformer/LICENSE +201 -0
  60. package/node_modules/@aws-amplify/graphql-predictions-transformer/jest.config.js +5 -0
  61. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
  62. package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +9 -48
  63. package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +4 -0
  64. package/node_modules/@aws-amplify/graphql-relational-transformer/LICENSE +201 -0
  65. package/node_modules/@aws-amplify/graphql-relational-transformer/jest.config.js +12 -0
  66. package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +11 -47
  67. package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +4 -0
  68. package/node_modules/@aws-amplify/graphql-searchable-transformer/LICENSE +201 -0
  69. package/node_modules/@aws-amplify/graphql-searchable-transformer/jest.config.js +12 -0
  70. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
  71. package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +10 -52
  72. package/node_modules/@aws-amplify/graphql-sql-transformer/CHANGELOG.md +4 -0
  73. package/node_modules/@aws-amplify/graphql-sql-transformer/LICENSE +201 -0
  74. package/node_modules/@aws-amplify/graphql-sql-transformer/jest.config.js +12 -0
  75. package/node_modules/@aws-amplify/graphql-sql-transformer/package.json +10 -49
  76. package/node_modules/@aws-amplify/graphql-transformer/API.md +2 -0
  77. package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +1 -1
  78. package/node_modules/@aws-amplify/graphql-transformer/jest.config.js +12 -0
  79. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts +2 -1
  80. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts.map +1 -1
  81. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js +2 -1
  82. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js.map +1 -1
  83. package/node_modules/@aws-amplify/graphql-transformer/package.json +20 -61
  84. package/node_modules/@aws-amplify/graphql-transformer/src/graphql-transformer.ts +4 -0
  85. package/node_modules/@aws-amplify/graphql-transformer-core/API.md +3 -3
  86. package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +4 -0
  87. package/node_modules/@aws-amplify/graphql-transformer-core/LICENSE +201 -0
  88. package/node_modules/@aws-amplify/graphql-transformer-core/jest.config.js +12 -0
  89. package/node_modules/@aws-amplify/graphql-transformer-core/lib/graphql-api.d.ts +4 -3
  90. package/node_modules/@aws-amplify/graphql-transformer-core/lib/graphql-api.d.ts.map +1 -1
  91. package/node_modules/@aws-amplify/graphql-transformer-core/lib/graphql-api.js +27 -7
  92. package/node_modules/@aws-amplify/graphql-transformer-core/lib/graphql-api.js.map +1 -1
  93. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.d.ts +4 -3
  94. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.d.ts.map +1 -1
  95. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.js +5 -3
  96. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.js.map +1 -1
  97. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.d.ts +3 -1
  98. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.d.ts.map +1 -1
  99. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.js +2 -1
  100. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.js.map +1 -1
  101. package/node_modules/@aws-amplify/graphql-transformer-core/package.json +8 -46
  102. package/node_modules/@aws-amplify/graphql-transformer-interfaces/API.md +12 -0
  103. package/node_modules/@aws-amplify/graphql-transformer-interfaces/CHANGELOG.md +4 -0
  104. package/node_modules/@aws-amplify/graphql-transformer-interfaces/LICENSE +201 -0
  105. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.d.ts +1 -0
  106. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.d.ts.map +1 -1
  107. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/logConfig.d.ts +8 -0
  108. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/logConfig.d.ts.map +1 -0
  109. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/logConfig.js +3 -0
  110. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/logConfig.js.map +1 -0
  111. package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +3 -35
  112. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/index.ts +1 -0
  113. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/logConfig.ts +8 -0
  114. package/node_modules/@aws-amplify/graphql-transformer-interfaces/tsconfig.tsbuildinfo +1 -1
  115. package/node_modules/@aws-cdk/assert/BUILD.md +15 -0
  116. package/node_modules/@aws-cdk/assert/LICENSE +201 -0
  117. package/node_modules/@aws-cdk/assert/NOTICE +2 -0
  118. package/node_modules/@aws-cdk/assert/README.md +228 -0
  119. package/node_modules/@aws-cdk/assert/clone.sh +29 -0
  120. package/node_modules/@aws-cdk/assert/jest.d.ts +14 -0
  121. package/node_modules/@aws-cdk/assert/jest.js +57 -0
  122. package/node_modules/@aws-cdk/assert/lib/assertion.d.ts +17 -0
  123. package/node_modules/@aws-cdk/assert/lib/assertion.js +31 -0
  124. package/node_modules/@aws-cdk/assert/lib/assertions/and-assertion.d.ts +10 -0
  125. package/node_modules/@aws-cdk/assert/lib/assertions/and-assertion.js +21 -0
  126. package/node_modules/@aws-cdk/assert/lib/assertions/count-resources.d.ts +10 -0
  127. package/node_modules/@aws-cdk/assert/lib/assertions/count-resources.js +54 -0
  128. package/node_modules/@aws-cdk/assert/lib/assertions/exist.d.ts +3 -0
  129. package/node_modules/@aws-cdk/assert/lib/assertions/exist.js +18 -0
  130. package/node_modules/@aws-cdk/assert/lib/assertions/have-output.d.ts +29 -0
  131. package/node_modules/@aws-cdk/assert/lib/assertions/have-output.js +77 -0
  132. package/node_modules/@aws-cdk/assert/lib/assertions/have-resource-matchers.d.ts +123 -0
  133. package/node_modules/@aws-cdk/assert/lib/assertions/have-resource-matchers.js +404 -0
  134. package/node_modules/@aws-cdk/assert/lib/assertions/have-resource.d.ts +69 -0
  135. package/node_modules/@aws-cdk/assert/lib/assertions/have-resource.js +130 -0
  136. package/node_modules/@aws-cdk/assert/lib/assertions/have-type.d.ts +3 -0
  137. package/node_modules/@aws-cdk/assert/lib/assertions/have-type.js +22 -0
  138. package/node_modules/@aws-cdk/assert/lib/assertions/match-template.d.ts +19 -0
  139. package/node_modules/@aws-cdk/assert/lib/assertions/match-template.js +98 -0
  140. package/node_modules/@aws-cdk/assert/lib/assertions/negated-assertion.d.ts +8 -0
  141. package/node_modules/@aws-cdk/assert/lib/assertions/negated-assertion.js +18 -0
  142. package/node_modules/@aws-cdk/assert/lib/canonicalize-assets.d.ts +11 -0
  143. package/node_modules/@aws-cdk/assert/lib/canonicalize-assets.js +70 -0
  144. package/node_modules/@aws-cdk/assert/lib/expect.d.ts +4 -0
  145. package/node_modules/@aws-cdk/assert/lib/expect.js +16 -0
  146. package/node_modules/@aws-cdk/assert/lib/index.d.ts +14 -0
  147. package/node_modules/@aws-cdk/assert/lib/index.js +27 -0
  148. package/node_modules/@aws-cdk/assert/lib/inspector.d.ts +31 -0
  149. package/node_modules/@aws-cdk/assert/lib/inspector.js +69 -0
  150. package/node_modules/@aws-cdk/assert/lib/synth-utils.d.ts +30 -0
  151. package/node_modules/@aws-cdk/assert/lib/synth-utils.js +92 -0
  152. package/node_modules/@aws-cdk/assert/package.json +77 -0
  153. package/node_modules/@aws-cdk/cfnspec/CHANGELOG.md +16795 -0
  154. package/node_modules/@aws-cdk/cfnspec/LICENSE +201 -0
  155. package/node_modules/@aws-cdk/cfnspec/NOTICE +2 -0
  156. package/node_modules/@aws-cdk/cfnspec/README.md +14 -0
  157. package/node_modules/@aws-cdk/cfnspec/build-tools/build.d.ts +1 -0
  158. package/node_modules/@aws-cdk/cfnspec/build-tools/build.js +37 -0
  159. package/node_modules/@aws-cdk/cfnspec/build-tools/create-missing-libraries.d.ts +6 -0
  160. package/node_modules/@aws-cdk/cfnspec/build-tools/create-missing-libraries.js +311 -0
  161. package/node_modules/@aws-cdk/cfnspec/build-tools/massage-spec.d.ts +10 -0
  162. package/node_modules/@aws-cdk/cfnspec/build-tools/massage-spec.js +70 -0
  163. package/node_modules/@aws-cdk/cfnspec/build-tools/patch-set.d.ts +25 -0
  164. package/node_modules/@aws-cdk/cfnspec/build-tools/patch-set.js +241 -0
  165. package/node_modules/@aws-cdk/cfnspec/build-tools/report-issues.d.ts +9 -0
  166. package/node_modules/@aws-cdk/cfnspec/build-tools/report-issues.js +72 -0
  167. package/node_modules/@aws-cdk/cfnspec/build-tools/scrutiny.d.ts +12 -0
  168. package/node_modules/@aws-cdk/cfnspec/build-tools/scrutiny.js +85 -0
  169. package/node_modules/@aws-cdk/cfnspec/build-tools/spec-diff.d.ts +1 -0
  170. package/node_modules/@aws-cdk/cfnspec/build-tools/spec-diff.js +248 -0
  171. package/node_modules/@aws-cdk/cfnspec/build-tools/split-spec-by-service.d.ts +1 -0
  172. package/node_modules/@aws-cdk/cfnspec/build-tools/split-spec-by-service.js +120 -0
  173. package/node_modules/@aws-cdk/cfnspec/build-tools/template/LICENSE +201 -0
  174. package/node_modules/@aws-cdk/cfnspec/build-tools/template/NOTICE +2 -0
  175. package/node_modules/@aws-cdk/cfnspec/build-tools/update-cfnlint.sh +18 -0
  176. package/node_modules/@aws-cdk/cfnspec/build-tools/update-metrics.sh +15 -0
  177. package/node_modules/@aws-cdk/cfnspec/build-tools/update.sh +113 -0
  178. package/node_modules/@aws-cdk/cfnspec/build-tools/validate-cfn.d.ts +67 -0
  179. package/node_modules/@aws-cdk/cfnspec/build-tools/validate-cfn.js +285 -0
  180. package/node_modules/@aws-cdk/cfnspec/cfn.version +1 -0
  181. package/node_modules/@aws-cdk/cfnspec/lib/_private_schema/cfn-lint.d.ts +24 -0
  182. package/node_modules/@aws-cdk/cfnspec/lib/_private_schema/cfn-lint.js +3 -0
  183. package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_EC2_VPNConnection.json +27 -0
  184. package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_Lambda_Function.json +27 -0
  185. package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_RDS_DBCluster.json +70 -0
  186. package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_RDS_DBInstance.json +37 -0
  187. package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_SNS_Topic.json +52 -0
  188. package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_SQS_Queue.json +53 -0
  189. package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics/README.md +168 -0
  190. package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics/canned-metrics-schema.d.ts +60 -0
  191. package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics/canned-metrics-schema.js +12 -0
  192. package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics/services.json +31957 -0
  193. package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics.d.ts +41 -0
  194. package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics.js +75 -0
  195. package/node_modules/@aws-cdk/cfnspec/lib/index.d.ts +63 -0
  196. package/node_modules/@aws-cdk/cfnspec/lib/index.js +200 -0
  197. package/node_modules/@aws-cdk/cfnspec/lib/schema/augmentation.d.ts +87 -0
  198. package/node_modules/@aws-cdk/cfnspec/lib/schema/augmentation.js +28 -0
  199. package/node_modules/@aws-cdk/cfnspec/lib/schema/base-types.d.ts +14 -0
  200. package/node_modules/@aws-cdk/cfnspec/lib/schema/base-types.js +29 -0
  201. package/node_modules/@aws-cdk/cfnspec/lib/schema/cfn-lint.d.ts +13 -0
  202. package/node_modules/@aws-cdk/cfnspec/lib/schema/cfn-lint.js +3 -0
  203. package/node_modules/@aws-cdk/cfnspec/lib/schema/docs.d.ts +20 -0
  204. package/node_modules/@aws-cdk/cfnspec/lib/schema/docs.js +3 -0
  205. package/node_modules/@aws-cdk/cfnspec/lib/schema/index.d.ts +7 -0
  206. package/node_modules/@aws-cdk/cfnspec/lib/schema/index.js +20 -0
  207. package/node_modules/@aws-cdk/cfnspec/lib/schema/property.d.ts +179 -0
  208. package/node_modules/@aws-cdk/cfnspec/lib/schema/property.js +168 -0
  209. package/node_modules/@aws-cdk/cfnspec/lib/schema/resource-type.d.ts +118 -0
  210. package/node_modules/@aws-cdk/cfnspec/lib/schema/resource-type.js +99 -0
  211. package/node_modules/@aws-cdk/cfnspec/lib/schema/specification.d.ts +56 -0
  212. package/node_modules/@aws-cdk/cfnspec/lib/schema/specification.js +11 -0
  213. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/CHANGELOG.md +902 -0
  214. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/LICENSE +15 -0
  215. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/README.md +264 -0
  216. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/copy/copy.js +232 -0
  217. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/copy/index.js +6 -0
  218. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/copy-sync/copy-sync.js +166 -0
  219. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/copy-sync/index.js +5 -0
  220. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/empty/index.js +48 -0
  221. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/ensure/file.js +69 -0
  222. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/ensure/index.js +23 -0
  223. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/ensure/link.js +61 -0
  224. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/ensure/symlink-paths.js +99 -0
  225. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/ensure/symlink-type.js +31 -0
  226. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/ensure/symlink.js +63 -0
  227. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/fs/index.js +130 -0
  228. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/index.js +27 -0
  229. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/json/index.js +16 -0
  230. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/json/jsonfile.js +11 -0
  231. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/json/output-json-sync.js +12 -0
  232. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/json/output-json.js +12 -0
  233. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/mkdirs/index.js +14 -0
  234. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/mkdirs/make-dir.js +141 -0
  235. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/move/index.js +6 -0
  236. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/move/move.js +65 -0
  237. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/move-sync/index.js +5 -0
  238. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/move-sync/move-sync.js +47 -0
  239. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/output/index.js +40 -0
  240. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/path-exists/index.js +12 -0
  241. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/remove/index.js +9 -0
  242. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/remove/rimraf.js +302 -0
  243. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/util/stat.js +139 -0
  244. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/util/utimes.js +26 -0
  245. package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/package.json +70 -0
  246. package/node_modules/@aws-cdk/cfnspec/node_modules/jsonfile/CHANGELOG.md +171 -0
  247. package/node_modules/@aws-cdk/cfnspec/node_modules/jsonfile/LICENSE +15 -0
  248. package/node_modules/@aws-cdk/cfnspec/node_modules/jsonfile/README.md +230 -0
  249. package/node_modules/@aws-cdk/cfnspec/node_modules/jsonfile/index.js +88 -0
  250. package/node_modules/@aws-cdk/cfnspec/node_modules/jsonfile/package.json +40 -0
  251. package/node_modules/@aws-cdk/cfnspec/node_modules/jsonfile/utils.js +14 -0
  252. package/node_modules/@aws-cdk/cfnspec/node_modules/universalify/LICENSE +20 -0
  253. package/node_modules/@aws-cdk/cfnspec/node_modules/universalify/README.md +76 -0
  254. package/node_modules/@aws-cdk/cfnspec/node_modules/universalify/index.js +24 -0
  255. package/node_modules/@aws-cdk/cfnspec/node_modules/universalify/package.json +34 -0
  256. package/node_modules/@aws-cdk/cfnspec/package.json +63 -0
  257. package/node_modules/@aws-cdk/cfnspec/spec/cfn-docs.json +51044 -0
  258. package/node_modules/@aws-cdk/cfnspec/spec/cfn-lint.json +35 -0
  259. package/node_modules/@aws-cdk/cfnspec/spec/specification.json +148332 -0
  260. package/node_modules/@aws-cdk/cloudformation-diff/LICENSE +201 -0
  261. package/node_modules/@aws-cdk/cloudformation-diff/NOTICE +2 -0
  262. package/node_modules/@aws-cdk/cloudformation-diff/README.md +12 -0
  263. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/index.d.ts +9 -0
  264. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/index.js +94 -0
  265. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/types.d.ts +326 -0
  266. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/types.js +457 -0
  267. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/util.d.ts +41 -0
  268. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/util.js +165 -0
  269. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff-template.d.ts +21 -0
  270. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff-template.js +166 -0
  271. package/node_modules/@aws-cdk/cloudformation-diff/lib/diffable.d.ts +22 -0
  272. package/node_modules/@aws-cdk/cloudformation-diff/lib/diffable.js +47 -0
  273. package/node_modules/@aws-cdk/cloudformation-diff/lib/format-table.d.ts +6 -0
  274. package/node_modules/@aws-cdk/cloudformation-diff/lib/format-table.js +109 -0
  275. package/node_modules/@aws-cdk/cloudformation-diff/lib/format.d.ts +23 -0
  276. package/node_modules/@aws-cdk/cloudformation-diff/lib/format.js +414 -0
  277. package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/iam-changes.d.ts +62 -0
  278. package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/iam-changes.js +246 -0
  279. package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/managed-policy.d.ts +18 -0
  280. package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/managed-policy.js +29 -0
  281. package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/statement.d.ts +127 -0
  282. package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/statement.js +268 -0
  283. package/node_modules/@aws-cdk/cloudformation-diff/lib/index.d.ts +4 -0
  284. package/node_modules/@aws-cdk/cloudformation-diff/lib/index.js +18 -0
  285. package/node_modules/@aws-cdk/cloudformation-diff/lib/network/security-group-changes.d.ts +32 -0
  286. package/node_modules/@aws-cdk/cloudformation-diff/lib/network/security-group-changes.js +95 -0
  287. package/node_modules/@aws-cdk/cloudformation-diff/lib/network/security-group-rule.d.ts +50 -0
  288. package/node_modules/@aws-cdk/cloudformation-diff/lib/network/security-group-rule.js +91 -0
  289. package/node_modules/@aws-cdk/cloudformation-diff/lib/render-intrinsics.d.ts +21 -0
  290. package/node_modules/@aws-cdk/cloudformation-diff/lib/render-intrinsics.js +79 -0
  291. package/node_modules/@aws-cdk/cloudformation-diff/lib/util.d.ts +7 -0
  292. package/node_modules/@aws-cdk/cloudformation-diff/lib/util.js +63 -0
  293. package/node_modules/@aws-cdk/cloudformation-diff/package.json +60 -0
  294. package/node_modules/ajv/.runkit_example.js +23 -0
  295. package/node_modules/ajv/LICENSE +22 -0
  296. package/node_modules/ajv/README.md +207 -0
  297. package/node_modules/ajv/dist/2019.d.ts +19 -0
  298. package/node_modules/ajv/dist/2019.js +61 -0
  299. package/node_modules/ajv/dist/2019.js.map +1 -0
  300. package/node_modules/ajv/dist/2020.d.ts +19 -0
  301. package/node_modules/ajv/dist/2020.js +55 -0
  302. package/node_modules/ajv/dist/2020.js.map +1 -0
  303. package/node_modules/ajv/dist/ajv.d.ts +18 -0
  304. package/node_modules/ajv/dist/ajv.js +50 -0
  305. package/node_modules/ajv/dist/ajv.js.map +1 -0
  306. package/node_modules/ajv/dist/compile/codegen/code.d.ts +40 -0
  307. package/node_modules/ajv/dist/compile/codegen/code.js +156 -0
  308. package/node_modules/ajv/dist/compile/codegen/code.js.map +1 -0
  309. package/node_modules/ajv/dist/compile/codegen/index.d.ts +79 -0
  310. package/node_modules/ajv/dist/compile/codegen/index.js +697 -0
  311. package/node_modules/ajv/dist/compile/codegen/index.js.map +1 -0
  312. package/node_modules/ajv/dist/compile/codegen/scope.d.ts +79 -0
  313. package/node_modules/ajv/dist/compile/codegen/scope.js +143 -0
  314. package/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -0
  315. package/node_modules/ajv/dist/compile/errors.d.ts +13 -0
  316. package/node_modules/ajv/dist/compile/errors.js +123 -0
  317. package/node_modules/ajv/dist/compile/errors.js.map +1 -0
  318. package/node_modules/ajv/dist/compile/index.d.ts +80 -0
  319. package/node_modules/ajv/dist/compile/index.js +242 -0
  320. package/node_modules/ajv/dist/compile/index.js.map +1 -0
  321. package/node_modules/ajv/dist/compile/jtd/parse.d.ts +4 -0
  322. package/node_modules/ajv/dist/compile/jtd/parse.js +350 -0
  323. package/node_modules/ajv/dist/compile/jtd/parse.js.map +1 -0
  324. package/node_modules/ajv/dist/compile/jtd/serialize.d.ts +4 -0
  325. package/node_modules/ajv/dist/compile/jtd/serialize.js +229 -0
  326. package/node_modules/ajv/dist/compile/jtd/serialize.js.map +1 -0
  327. package/node_modules/ajv/dist/compile/jtd/types.d.ts +6 -0
  328. package/node_modules/ajv/dist/compile/jtd/types.js +14 -0
  329. package/node_modules/ajv/dist/compile/jtd/types.js.map +1 -0
  330. package/node_modules/ajv/dist/compile/names.d.ts +20 -0
  331. package/node_modules/ajv/dist/compile/names.js +28 -0
  332. package/node_modules/ajv/dist/compile/names.js.map +1 -0
  333. package/node_modules/ajv/dist/compile/ref_error.d.ts +6 -0
  334. package/node_modules/ajv/dist/compile/ref_error.js +12 -0
  335. package/node_modules/ajv/dist/compile/ref_error.js.map +1 -0
  336. package/node_modules/ajv/dist/compile/resolve.d.ts +12 -0
  337. package/node_modules/ajv/dist/compile/resolve.js +155 -0
  338. package/node_modules/ajv/dist/compile/resolve.js.map +1 -0
  339. package/node_modules/ajv/dist/compile/rules.d.ts +28 -0
  340. package/node_modules/ajv/dist/compile/rules.js +26 -0
  341. package/node_modules/ajv/dist/compile/rules.js.map +1 -0
  342. package/node_modules/ajv/dist/compile/util.d.ts +40 -0
  343. package/node_modules/ajv/dist/compile/util.js +178 -0
  344. package/node_modules/ajv/dist/compile/util.js.map +1 -0
  345. package/node_modules/ajv/dist/compile/validate/applicability.d.ts +6 -0
  346. package/node_modules/ajv/dist/compile/validate/applicability.js +19 -0
  347. package/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -0
  348. package/node_modules/ajv/dist/compile/validate/boolSchema.d.ts +4 -0
  349. package/node_modules/ajv/dist/compile/validate/boolSchema.js +50 -0
  350. package/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -0
  351. package/node_modules/ajv/dist/compile/validate/dataType.d.ts +17 -0
  352. package/node_modules/ajv/dist/compile/validate/dataType.js +203 -0
  353. package/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -0
  354. package/node_modules/ajv/dist/compile/validate/defaults.d.ts +2 -0
  355. package/node_modules/ajv/dist/compile/validate/defaults.js +35 -0
  356. package/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -0
  357. package/node_modules/ajv/dist/compile/validate/index.d.ts +42 -0
  358. package/node_modules/ajv/dist/compile/validate/index.js +520 -0
  359. package/node_modules/ajv/dist/compile/validate/index.js.map +1 -0
  360. package/node_modules/ajv/dist/compile/validate/keyword.d.ts +8 -0
  361. package/node_modules/ajv/dist/compile/validate/keyword.js +124 -0
  362. package/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -0
  363. package/node_modules/ajv/dist/compile/validate/subschema.d.ts +47 -0
  364. package/node_modules/ajv/dist/compile/validate/subschema.js +81 -0
  365. package/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -0
  366. package/node_modules/ajv/dist/core.d.ts +173 -0
  367. package/node_modules/ajv/dist/core.js +618 -0
  368. package/node_modules/ajv/dist/core.js.map +1 -0
  369. package/node_modules/ajv/dist/jtd.d.ts +47 -0
  370. package/node_modules/ajv/dist/jtd.js +72 -0
  371. package/node_modules/ajv/dist/jtd.js.map +1 -0
  372. package/node_modules/ajv/dist/refs/data.json +13 -0
  373. package/node_modules/ajv/dist/refs/json-schema-2019-09/index.d.ts +2 -0
  374. package/node_modules/ajv/dist/refs/json-schema-2019-09/index.js +28 -0
  375. package/node_modules/ajv/dist/refs/json-schema-2019-09/index.js.map +1 -0
  376. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/applicator.json +53 -0
  377. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/content.json +17 -0
  378. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/core.json +57 -0
  379. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/format.json +14 -0
  380. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/meta-data.json +37 -0
  381. package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/validation.json +90 -0
  382. package/node_modules/ajv/dist/refs/json-schema-2019-09/schema.json +39 -0
  383. package/node_modules/ajv/dist/refs/json-schema-2020-12/index.d.ts +2 -0
  384. package/node_modules/ajv/dist/refs/json-schema-2020-12/index.js +30 -0
  385. package/node_modules/ajv/dist/refs/json-schema-2020-12/index.js.map +1 -0
  386. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/applicator.json +48 -0
  387. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/content.json +17 -0
  388. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/core.json +51 -0
  389. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/format-annotation.json +14 -0
  390. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/meta-data.json +37 -0
  391. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/unevaluated.json +15 -0
  392. package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json +90 -0
  393. package/node_modules/ajv/dist/refs/json-schema-2020-12/schema.json +55 -0
  394. package/node_modules/ajv/dist/refs/json-schema-draft-06.json +137 -0
  395. package/node_modules/ajv/dist/refs/json-schema-draft-07.json +151 -0
  396. package/node_modules/ajv/dist/refs/json-schema-secure.json +88 -0
  397. package/node_modules/ajv/dist/refs/jtd-schema.d.ts +3 -0
  398. package/node_modules/ajv/dist/refs/jtd-schema.js +118 -0
  399. package/node_modules/ajv/dist/refs/jtd-schema.js.map +1 -0
  400. package/node_modules/ajv/dist/runtime/equal.d.ts +6 -0
  401. package/node_modules/ajv/dist/runtime/equal.js +7 -0
  402. package/node_modules/ajv/dist/runtime/equal.js.map +1 -0
  403. package/node_modules/ajv/dist/runtime/parseJson.d.ts +18 -0
  404. package/node_modules/ajv/dist/runtime/parseJson.js +185 -0
  405. package/node_modules/ajv/dist/runtime/parseJson.js.map +1 -0
  406. package/node_modules/ajv/dist/runtime/quote.d.ts +5 -0
  407. package/node_modules/ajv/dist/runtime/quote.js +30 -0
  408. package/node_modules/ajv/dist/runtime/quote.js.map +1 -0
  409. package/node_modules/ajv/dist/runtime/re2.d.ts +6 -0
  410. package/node_modules/ajv/dist/runtime/re2.js +6 -0
  411. package/node_modules/ajv/dist/runtime/re2.js.map +1 -0
  412. package/node_modules/ajv/dist/runtime/timestamp.d.ts +5 -0
  413. package/node_modules/ajv/dist/runtime/timestamp.js +42 -0
  414. package/node_modules/ajv/dist/runtime/timestamp.js.map +1 -0
  415. package/node_modules/ajv/dist/runtime/ucs2length.d.ts +5 -0
  416. package/node_modules/ajv/dist/runtime/ucs2length.js +24 -0
  417. package/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -0
  418. package/node_modules/ajv/dist/runtime/uri.d.ts +6 -0
  419. package/node_modules/ajv/dist/runtime/uri.js +6 -0
  420. package/node_modules/ajv/dist/runtime/uri.js.map +1 -0
  421. package/node_modules/ajv/dist/runtime/validation_error.d.ts +7 -0
  422. package/node_modules/ajv/dist/runtime/validation_error.js +11 -0
  423. package/node_modules/ajv/dist/runtime/validation_error.js.map +1 -0
  424. package/node_modules/ajv/dist/standalone/index.d.ts +6 -0
  425. package/node_modules/ajv/dist/standalone/index.js +90 -0
  426. package/node_modules/ajv/dist/standalone/index.js.map +1 -0
  427. package/node_modules/ajv/dist/standalone/instance.d.ts +12 -0
  428. package/node_modules/ajv/dist/standalone/instance.js +35 -0
  429. package/node_modules/ajv/dist/standalone/instance.js.map +1 -0
  430. package/node_modules/ajv/dist/types/index.d.ts +183 -0
  431. package/node_modules/ajv/dist/types/index.js +3 -0
  432. package/node_modules/ajv/dist/types/index.js.map +1 -0
  433. package/node_modules/ajv/dist/types/json-schema.d.ts +125 -0
  434. package/node_modules/ajv/dist/types/json-schema.js +3 -0
  435. package/node_modules/ajv/dist/types/json-schema.js.map +1 -0
  436. package/node_modules/ajv/dist/types/jtd-schema.d.ts +174 -0
  437. package/node_modules/ajv/dist/types/jtd-schema.js +3 -0
  438. package/node_modules/ajv/dist/types/jtd-schema.js.map +1 -0
  439. package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.d.ts +8 -0
  440. package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +49 -0
  441. package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -0
  442. package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.d.ts +6 -0
  443. package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +106 -0
  444. package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -0
  445. package/node_modules/ajv/dist/vocabularies/applicator/allOf.d.ts +3 -0
  446. package/node_modules/ajv/dist/vocabularies/applicator/allOf.js +23 -0
  447. package/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -0
  448. package/node_modules/ajv/dist/vocabularies/applicator/anyOf.d.ts +4 -0
  449. package/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +12 -0
  450. package/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -0
  451. package/node_modules/ajv/dist/vocabularies/applicator/contains.d.ts +7 -0
  452. package/node_modules/ajv/dist/vocabularies/applicator/contains.js +95 -0
  453. package/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -0
  454. package/node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts +21 -0
  455. package/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +85 -0
  456. package/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -0
  457. package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.d.ts +3 -0
  458. package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js +11 -0
  459. package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js.map +1 -0
  460. package/node_modules/ajv/dist/vocabularies/applicator/if.d.ts +6 -0
  461. package/node_modules/ajv/dist/vocabularies/applicator/if.js +66 -0
  462. package/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -0
  463. package/node_modules/ajv/dist/vocabularies/applicator/index.d.ts +13 -0
  464. package/node_modules/ajv/dist/vocabularies/applicator/index.js +44 -0
  465. package/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -0
  466. package/node_modules/ajv/dist/vocabularies/applicator/items.d.ts +5 -0
  467. package/node_modules/ajv/dist/vocabularies/applicator/items.js +52 -0
  468. package/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -0
  469. package/node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts +6 -0
  470. package/node_modules/ajv/dist/vocabularies/applicator/items2020.js +30 -0
  471. package/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -0
  472. package/node_modules/ajv/dist/vocabularies/applicator/not.d.ts +4 -0
  473. package/node_modules/ajv/dist/vocabularies/applicator/not.js +26 -0
  474. package/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -0
  475. package/node_modules/ajv/dist/vocabularies/applicator/oneOf.d.ts +6 -0
  476. package/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +60 -0
  477. package/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -0
  478. package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.d.ts +3 -0
  479. package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +75 -0
  480. package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -0
  481. package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.d.ts +3 -0
  482. package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +12 -0
  483. package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -0
  484. package/node_modules/ajv/dist/vocabularies/applicator/properties.d.ts +3 -0
  485. package/node_modules/ajv/dist/vocabularies/applicator/properties.js +54 -0
  486. package/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -0
  487. package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.d.ts +6 -0
  488. package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +38 -0
  489. package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -0
  490. package/node_modules/ajv/dist/vocabularies/applicator/thenElse.d.ts +3 -0
  491. package/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +13 -0
  492. package/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -0
  493. package/node_modules/ajv/dist/vocabularies/code.d.ts +17 -0
  494. package/node_modules/ajv/dist/vocabularies/code.js +131 -0
  495. package/node_modules/ajv/dist/vocabularies/code.js.map +1 -0
  496. package/node_modules/ajv/dist/vocabularies/core/id.d.ts +3 -0
  497. package/node_modules/ajv/dist/vocabularies/core/id.js +10 -0
  498. package/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -0
  499. package/node_modules/ajv/dist/vocabularies/core/index.d.ts +3 -0
  500. package/node_modules/ajv/dist/vocabularies/core/index.js +16 -0
  501. package/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -0
  502. package/node_modules/ajv/dist/vocabularies/core/ref.d.ts +8 -0
  503. package/node_modules/ajv/dist/vocabularies/core/ref.js +122 -0
  504. package/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -0
  505. package/node_modules/ajv/dist/vocabularies/discriminator/index.d.ts +5 -0
  506. package/node_modules/ajv/dist/vocabularies/discriminator/index.js +104 -0
  507. package/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -0
  508. package/node_modules/ajv/dist/vocabularies/discriminator/types.d.ts +10 -0
  509. package/node_modules/ajv/dist/vocabularies/discriminator/types.js +9 -0
  510. package/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -0
  511. package/node_modules/ajv/dist/vocabularies/draft2020.d.ts +3 -0
  512. package/node_modules/ajv/dist/vocabularies/draft2020.js +23 -0
  513. package/node_modules/ajv/dist/vocabularies/draft2020.js.map +1 -0
  514. package/node_modules/ajv/dist/vocabularies/draft7.d.ts +3 -0
  515. package/node_modules/ajv/dist/vocabularies/draft7.js +17 -0
  516. package/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -0
  517. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.d.ts +5 -0
  518. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js +30 -0
  519. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js.map +1 -0
  520. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.d.ts +5 -0
  521. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js +51 -0
  522. package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js.map +1 -0
  523. package/node_modules/ajv/dist/vocabularies/dynamic/index.d.ts +3 -0
  524. package/node_modules/ajv/dist/vocabularies/dynamic/index.js +9 -0
  525. package/node_modules/ajv/dist/vocabularies/dynamic/index.js.map +1 -0
  526. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.d.ts +3 -0
  527. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js +16 -0
  528. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js.map +1 -0
  529. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.d.ts +3 -0
  530. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js +10 -0
  531. package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js.map +1 -0
  532. package/node_modules/ajv/dist/vocabularies/errors.d.ts +9 -0
  533. package/node_modules/ajv/dist/vocabularies/errors.js +3 -0
  534. package/node_modules/ajv/dist/vocabularies/errors.js.map +1 -0
  535. package/node_modules/ajv/dist/vocabularies/format/format.d.ts +8 -0
  536. package/node_modules/ajv/dist/vocabularies/format/format.js +92 -0
  537. package/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -0
  538. package/node_modules/ajv/dist/vocabularies/format/index.d.ts +3 -0
  539. package/node_modules/ajv/dist/vocabularies/format/index.js +6 -0
  540. package/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -0
  541. package/node_modules/ajv/dist/vocabularies/jtd/discriminator.d.ts +6 -0
  542. package/node_modules/ajv/dist/vocabularies/jtd/discriminator.js +71 -0
  543. package/node_modules/ajv/dist/vocabularies/jtd/discriminator.js.map +1 -0
  544. package/node_modules/ajv/dist/vocabularies/jtd/elements.d.ts +5 -0
  545. package/node_modules/ajv/dist/vocabularies/jtd/elements.js +24 -0
  546. package/node_modules/ajv/dist/vocabularies/jtd/elements.js.map +1 -0
  547. package/node_modules/ajv/dist/vocabularies/jtd/enum.d.ts +6 -0
  548. package/node_modules/ajv/dist/vocabularies/jtd/enum.js +43 -0
  549. package/node_modules/ajv/dist/vocabularies/jtd/enum.js.map +1 -0
  550. package/node_modules/ajv/dist/vocabularies/jtd/error.d.ts +9 -0
  551. package/node_modules/ajv/dist/vocabularies/jtd/error.js +20 -0
  552. package/node_modules/ajv/dist/vocabularies/jtd/error.js.map +1 -0
  553. package/node_modules/ajv/dist/vocabularies/jtd/index.d.ts +10 -0
  554. package/node_modules/ajv/dist/vocabularies/jtd/index.js +29 -0
  555. package/node_modules/ajv/dist/vocabularies/jtd/index.js.map +1 -0
  556. package/node_modules/ajv/dist/vocabularies/jtd/metadata.d.ts +5 -0
  557. package/node_modules/ajv/dist/vocabularies/jtd/metadata.js +25 -0
  558. package/node_modules/ajv/dist/vocabularies/jtd/metadata.js.map +1 -0
  559. package/node_modules/ajv/dist/vocabularies/jtd/nullable.d.ts +4 -0
  560. package/node_modules/ajv/dist/vocabularies/jtd/nullable.js +22 -0
  561. package/node_modules/ajv/dist/vocabularies/jtd/nullable.js.map +1 -0
  562. package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.d.ts +3 -0
  563. package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.js +15 -0
  564. package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.js.map +1 -0
  565. package/node_modules/ajv/dist/vocabularies/jtd/properties.d.ts +22 -0
  566. package/node_modules/ajv/dist/vocabularies/jtd/properties.js +149 -0
  567. package/node_modules/ajv/dist/vocabularies/jtd/properties.js.map +1 -0
  568. package/node_modules/ajv/dist/vocabularies/jtd/ref.d.ts +4 -0
  569. package/node_modules/ajv/dist/vocabularies/jtd/ref.js +67 -0
  570. package/node_modules/ajv/dist/vocabularies/jtd/ref.js.map +1 -0
  571. package/node_modules/ajv/dist/vocabularies/jtd/type.d.ts +10 -0
  572. package/node_modules/ajv/dist/vocabularies/jtd/type.js +69 -0
  573. package/node_modules/ajv/dist/vocabularies/jtd/type.js.map +1 -0
  574. package/node_modules/ajv/dist/vocabularies/jtd/union.d.ts +3 -0
  575. package/node_modules/ajv/dist/vocabularies/jtd/union.js +12 -0
  576. package/node_modules/ajv/dist/vocabularies/jtd/union.js.map +1 -0
  577. package/node_modules/ajv/dist/vocabularies/jtd/values.d.ts +5 -0
  578. package/node_modules/ajv/dist/vocabularies/jtd/values.js +51 -0
  579. package/node_modules/ajv/dist/vocabularies/jtd/values.js.map +1 -0
  580. package/node_modules/ajv/dist/vocabularies/metadata.d.ts +3 -0
  581. package/node_modules/ajv/dist/vocabularies/metadata.js +18 -0
  582. package/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -0
  583. package/node_modules/ajv/dist/vocabularies/next.d.ts +3 -0
  584. package/node_modules/ajv/dist/vocabularies/next.js +8 -0
  585. package/node_modules/ajv/dist/vocabularies/next.js.map +1 -0
  586. package/node_modules/ajv/dist/vocabularies/unevaluated/index.d.ts +3 -0
  587. package/node_modules/ajv/dist/vocabularies/unevaluated/index.js +7 -0
  588. package/node_modules/ajv/dist/vocabularies/unevaluated/index.js.map +1 -0
  589. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.d.ts +6 -0
  590. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js +40 -0
  591. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js.map +1 -0
  592. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts +6 -0
  593. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js +65 -0
  594. package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js.map +1 -0
  595. package/node_modules/ajv/dist/vocabularies/validation/const.d.ts +6 -0
  596. package/node_modules/ajv/dist/vocabularies/validation/const.js +25 -0
  597. package/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -0
  598. package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.d.ts +5 -0
  599. package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js +12 -0
  600. package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js.map +1 -0
  601. package/node_modules/ajv/dist/vocabularies/validation/enum.d.ts +8 -0
  602. package/node_modules/ajv/dist/vocabularies/validation/enum.js +48 -0
  603. package/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -0
  604. package/node_modules/ajv/dist/vocabularies/validation/index.d.ts +16 -0
  605. package/node_modules/ajv/dist/vocabularies/validation/index.js +33 -0
  606. package/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -0
  607. package/node_modules/ajv/dist/vocabularies/validation/limitContains.d.ts +3 -0
  608. package/node_modules/ajv/dist/vocabularies/validation/limitContains.js +15 -0
  609. package/node_modules/ajv/dist/vocabularies/validation/limitContains.js.map +1 -0
  610. package/node_modules/ajv/dist/vocabularies/validation/limitItems.d.ts +3 -0
  611. package/node_modules/ajv/dist/vocabularies/validation/limitItems.js +24 -0
  612. package/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -0
  613. package/node_modules/ajv/dist/vocabularies/validation/limitLength.d.ts +3 -0
  614. package/node_modules/ajv/dist/vocabularies/validation/limitLength.js +27 -0
  615. package/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -0
  616. package/node_modules/ajv/dist/vocabularies/validation/limitNumber.d.ts +11 -0
  617. package/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +27 -0
  618. package/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -0
  619. package/node_modules/ajv/dist/vocabularies/validation/limitProperties.d.ts +3 -0
  620. package/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +24 -0
  621. package/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -0
  622. package/node_modules/ajv/dist/vocabularies/validation/multipleOf.d.ts +8 -0
  623. package/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +26 -0
  624. package/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -0
  625. package/node_modules/ajv/dist/vocabularies/validation/pattern.d.ts +8 -0
  626. package/node_modules/ajv/dist/vocabularies/validation/pattern.js +24 -0
  627. package/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -0
  628. package/node_modules/ajv/dist/vocabularies/validation/required.d.ts +8 -0
  629. package/node_modules/ajv/dist/vocabularies/validation/required.js +79 -0
  630. package/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -0
  631. package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.d.ts +9 -0
  632. package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +64 -0
  633. package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -0
  634. package/node_modules/ajv/lib/2019.ts +81 -0
  635. package/node_modules/ajv/lib/2020.ts +75 -0
  636. package/node_modules/ajv/lib/ajv.ts +70 -0
  637. package/node_modules/ajv/lib/compile/codegen/code.ts +169 -0
  638. package/node_modules/ajv/lib/compile/codegen/index.ts +852 -0
  639. package/node_modules/ajv/lib/compile/codegen/scope.ts +215 -0
  640. package/node_modules/ajv/lib/compile/errors.ts +184 -0
  641. package/node_modules/ajv/lib/compile/index.ts +324 -0
  642. package/node_modules/ajv/lib/compile/jtd/parse.ts +411 -0
  643. package/node_modules/ajv/lib/compile/jtd/serialize.ts +266 -0
  644. package/node_modules/ajv/lib/compile/jtd/types.ts +16 -0
  645. package/node_modules/ajv/lib/compile/names.ts +27 -0
  646. package/node_modules/ajv/lib/compile/ref_error.ts +13 -0
  647. package/node_modules/ajv/lib/compile/resolve.ts +149 -0
  648. package/node_modules/ajv/lib/compile/rules.ts +50 -0
  649. package/node_modules/ajv/lib/compile/util.ts +213 -0
  650. package/node_modules/ajv/lib/compile/validate/applicability.ts +22 -0
  651. package/node_modules/ajv/lib/compile/validate/boolSchema.ts +47 -0
  652. package/node_modules/ajv/lib/compile/validate/dataType.ts +230 -0
  653. package/node_modules/ajv/lib/compile/validate/defaults.ts +32 -0
  654. package/node_modules/ajv/lib/compile/validate/index.ts +582 -0
  655. package/node_modules/ajv/lib/compile/validate/keyword.ts +171 -0
  656. package/node_modules/ajv/lib/compile/validate/subschema.ts +135 -0
  657. package/node_modules/ajv/lib/core.ts +891 -0
  658. package/node_modules/ajv/lib/jtd.ts +132 -0
  659. package/node_modules/ajv/lib/refs/data.json +13 -0
  660. package/node_modules/ajv/lib/refs/json-schema-2019-09/index.ts +28 -0
  661. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/applicator.json +53 -0
  662. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/content.json +17 -0
  663. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/core.json +57 -0
  664. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/format.json +14 -0
  665. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/meta-data.json +37 -0
  666. package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/validation.json +90 -0
  667. package/node_modules/ajv/lib/refs/json-schema-2019-09/schema.json +39 -0
  668. package/node_modules/ajv/lib/refs/json-schema-2020-12/index.ts +30 -0
  669. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/applicator.json +48 -0
  670. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/content.json +17 -0
  671. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/core.json +51 -0
  672. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/format-annotation.json +14 -0
  673. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/meta-data.json +37 -0
  674. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/unevaluated.json +15 -0
  675. package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/validation.json +90 -0
  676. package/node_modules/ajv/lib/refs/json-schema-2020-12/schema.json +55 -0
  677. package/node_modules/ajv/lib/refs/json-schema-draft-06.json +137 -0
  678. package/node_modules/ajv/lib/refs/json-schema-draft-07.json +151 -0
  679. package/node_modules/ajv/lib/refs/json-schema-secure.json +88 -0
  680. package/node_modules/ajv/lib/refs/jtd-schema.ts +130 -0
  681. package/node_modules/ajv/lib/runtime/equal.ts +7 -0
  682. package/node_modules/ajv/lib/runtime/parseJson.ts +177 -0
  683. package/node_modules/ajv/lib/runtime/quote.ts +31 -0
  684. package/node_modules/ajv/lib/runtime/re2.ts +6 -0
  685. package/node_modules/ajv/lib/runtime/timestamp.ts +46 -0
  686. package/node_modules/ajv/lib/runtime/ucs2length.ts +20 -0
  687. package/node_modules/ajv/lib/runtime/uri.ts +6 -0
  688. package/node_modules/ajv/lib/runtime/validation_error.ts +13 -0
  689. package/node_modules/ajv/lib/standalone/index.ts +100 -0
  690. package/node_modules/ajv/lib/standalone/instance.ts +36 -0
  691. package/node_modules/ajv/lib/types/index.ts +244 -0
  692. package/node_modules/ajv/lib/types/json-schema.ts +187 -0
  693. package/node_modules/ajv/lib/types/jtd-schema.ts +273 -0
  694. package/node_modules/ajv/lib/vocabularies/applicator/additionalItems.ts +56 -0
  695. package/node_modules/ajv/lib/vocabularies/applicator/additionalProperties.ts +118 -0
  696. package/node_modules/ajv/lib/vocabularies/applicator/allOf.ts +22 -0
  697. package/node_modules/ajv/lib/vocabularies/applicator/anyOf.ts +14 -0
  698. package/node_modules/ajv/lib/vocabularies/applicator/contains.ts +109 -0
  699. package/node_modules/ajv/lib/vocabularies/applicator/dependencies.ts +112 -0
  700. package/node_modules/ajv/lib/vocabularies/applicator/dependentSchemas.ts +11 -0
  701. package/node_modules/ajv/lib/vocabularies/applicator/if.ts +80 -0
  702. package/node_modules/ajv/lib/vocabularies/applicator/index.ts +53 -0
  703. package/node_modules/ajv/lib/vocabularies/applicator/items.ts +59 -0
  704. package/node_modules/ajv/lib/vocabularies/applicator/items2020.ts +36 -0
  705. package/node_modules/ajv/lib/vocabularies/applicator/not.ts +38 -0
  706. package/node_modules/ajv/lib/vocabularies/applicator/oneOf.ts +82 -0
  707. package/node_modules/ajv/lib/vocabularies/applicator/patternProperties.ts +91 -0
  708. package/node_modules/ajv/lib/vocabularies/applicator/prefixItems.ts +12 -0
  709. package/node_modules/ajv/lib/vocabularies/applicator/properties.ts +57 -0
  710. package/node_modules/ajv/lib/vocabularies/applicator/propertyNames.ts +50 -0
  711. package/node_modules/ajv/lib/vocabularies/applicator/thenElse.ts +13 -0
  712. package/node_modules/ajv/lib/vocabularies/code.ts +168 -0
  713. package/node_modules/ajv/lib/vocabularies/core/id.ts +10 -0
  714. package/node_modules/ajv/lib/vocabularies/core/index.ts +16 -0
  715. package/node_modules/ajv/lib/vocabularies/core/ref.ts +129 -0
  716. package/node_modules/ajv/lib/vocabularies/discriminator/index.ts +113 -0
  717. package/node_modules/ajv/lib/vocabularies/discriminator/types.ts +12 -0
  718. package/node_modules/ajv/lib/vocabularies/draft2020.ts +23 -0
  719. package/node_modules/ajv/lib/vocabularies/draft7.ts +17 -0
  720. package/node_modules/ajv/lib/vocabularies/dynamic/dynamicAnchor.ts +31 -0
  721. package/node_modules/ajv/lib/vocabularies/dynamic/dynamicRef.ts +51 -0
  722. package/node_modules/ajv/lib/vocabularies/dynamic/index.ts +9 -0
  723. package/node_modules/ajv/lib/vocabularies/dynamic/recursiveAnchor.ts +14 -0
  724. package/node_modules/ajv/lib/vocabularies/dynamic/recursiveRef.ts +10 -0
  725. package/node_modules/ajv/lib/vocabularies/errors.ts +18 -0
  726. package/node_modules/ajv/lib/vocabularies/format/format.ts +120 -0
  727. package/node_modules/ajv/lib/vocabularies/format/index.ts +6 -0
  728. package/node_modules/ajv/lib/vocabularies/jtd/discriminator.ts +89 -0
  729. package/node_modules/ajv/lib/vocabularies/jtd/elements.ts +32 -0
  730. package/node_modules/ajv/lib/vocabularies/jtd/enum.ts +45 -0
  731. package/node_modules/ajv/lib/vocabularies/jtd/error.ts +23 -0
  732. package/node_modules/ajv/lib/vocabularies/jtd/index.ts +37 -0
  733. package/node_modules/ajv/lib/vocabularies/jtd/metadata.ts +24 -0
  734. package/node_modules/ajv/lib/vocabularies/jtd/nullable.ts +21 -0
  735. package/node_modules/ajv/lib/vocabularies/jtd/optionalProperties.ts +15 -0
  736. package/node_modules/ajv/lib/vocabularies/jtd/properties.ts +184 -0
  737. package/node_modules/ajv/lib/vocabularies/jtd/ref.ts +76 -0
  738. package/node_modules/ajv/lib/vocabularies/jtd/type.ts +75 -0
  739. package/node_modules/ajv/lib/vocabularies/jtd/union.ts +12 -0
  740. package/node_modules/ajv/lib/vocabularies/jtd/values.ts +58 -0
  741. package/node_modules/ajv/lib/vocabularies/metadata.ts +17 -0
  742. package/node_modules/ajv/lib/vocabularies/next.ts +8 -0
  743. package/node_modules/ajv/lib/vocabularies/unevaluated/index.ts +7 -0
  744. package/node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedItems.ts +47 -0
  745. package/node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedProperties.ts +85 -0
  746. package/node_modules/ajv/lib/vocabularies/validation/const.ts +28 -0
  747. package/node_modules/ajv/lib/vocabularies/validation/dependentRequired.ts +23 -0
  748. package/node_modules/ajv/lib/vocabularies/validation/enum.ts +54 -0
  749. package/node_modules/ajv/lib/vocabularies/validation/index.ts +49 -0
  750. package/node_modules/ajv/lib/vocabularies/validation/limitContains.ts +16 -0
  751. package/node_modules/ajv/lib/vocabularies/validation/limitItems.ts +26 -0
  752. package/node_modules/ajv/lib/vocabularies/validation/limitLength.ts +30 -0
  753. package/node_modules/ajv/lib/vocabularies/validation/limitNumber.ts +42 -0
  754. package/node_modules/ajv/lib/vocabularies/validation/limitProperties.ts +26 -0
  755. package/node_modules/ajv/lib/vocabularies/validation/multipleOf.ts +34 -0
  756. package/node_modules/ajv/lib/vocabularies/validation/pattern.ts +28 -0
  757. package/node_modules/ajv/lib/vocabularies/validation/required.ts +98 -0
  758. package/node_modules/ajv/lib/vocabularies/validation/uniqueItems.ts +79 -0
  759. package/node_modules/ajv/package.json +126 -0
  760. package/node_modules/ansi-regex/index.d.ts +37 -0
  761. package/node_modules/ansi-regex/index.js +10 -0
  762. package/node_modules/ansi-regex/license +9 -0
  763. package/node_modules/ansi-regex/package.json +55 -0
  764. package/node_modules/ansi-regex/readme.md +78 -0
  765. package/node_modules/ansi-styles/index.d.ts +345 -0
  766. package/node_modules/ansi-styles/index.js +163 -0
  767. package/node_modules/ansi-styles/license +9 -0
  768. package/node_modules/ansi-styles/package.json +56 -0
  769. package/node_modules/ansi-styles/readme.md +152 -0
  770. package/node_modules/astral-regex/index.d.ts +28 -0
  771. package/node_modules/astral-regex/index.js +6 -0
  772. package/node_modules/astral-regex/license +9 -0
  773. package/node_modules/astral-regex/package.json +33 -0
  774. package/node_modules/astral-regex/readme.md +46 -0
  775. package/node_modules/at-least-node/LICENSE +6 -0
  776. package/node_modules/at-least-node/README.md +25 -0
  777. package/node_modules/at-least-node/index.js +5 -0
  778. package/node_modules/at-least-node/package.json +32 -0
  779. package/node_modules/chalk/index.d.ts +415 -0
  780. package/node_modules/chalk/license +9 -0
  781. package/node_modules/chalk/package.json +68 -0
  782. package/node_modules/chalk/readme.md +341 -0
  783. package/node_modules/chalk/source/index.js +229 -0
  784. package/node_modules/chalk/source/templates.js +134 -0
  785. package/node_modules/chalk/source/util.js +39 -0
  786. package/node_modules/color-convert/CHANGELOG.md +54 -0
  787. package/node_modules/color-convert/LICENSE +21 -0
  788. package/node_modules/color-convert/README.md +68 -0
  789. package/node_modules/color-convert/conversions.js +839 -0
  790. package/node_modules/color-convert/index.js +81 -0
  791. package/node_modules/color-convert/package.json +48 -0
  792. package/node_modules/color-convert/route.js +97 -0
  793. package/node_modules/color-name/LICENSE +8 -0
  794. package/node_modules/color-name/README.md +11 -0
  795. package/node_modules/color-name/index.js +152 -0
  796. package/node_modules/color-name/package.json +28 -0
  797. package/node_modules/diff/CONTRIBUTING.md +36 -0
  798. package/node_modules/diff/LICENSE +29 -0
  799. package/node_modules/diff/README.md +339 -0
  800. package/node_modules/diff/dist/diff.js +1730 -0
  801. package/node_modules/diff/dist/diff.min.js +1 -0
  802. package/node_modules/diff/lib/convert/dmp.js +32 -0
  803. package/node_modules/diff/lib/convert/xml.js +42 -0
  804. package/node_modules/diff/lib/diff/array.js +45 -0
  805. package/node_modules/diff/lib/diff/base.js +358 -0
  806. package/node_modules/diff/lib/diff/character.js +37 -0
  807. package/node_modules/diff/lib/diff/css.js +41 -0
  808. package/node_modules/diff/lib/diff/json.js +163 -0
  809. package/node_modules/diff/lib/diff/line.js +94 -0
  810. package/node_modules/diff/lib/diff/sentence.js +41 -0
  811. package/node_modules/diff/lib/diff/word.js +108 -0
  812. package/node_modules/diff/lib/index.es6.js +1699 -0
  813. package/node_modules/diff/lib/index.js +234 -0
  814. package/node_modules/diff/lib/index.mjs +1699 -0
  815. package/node_modules/diff/lib/patch/apply.js +238 -0
  816. package/node_modules/diff/lib/patch/create.js +276 -0
  817. package/node_modules/diff/lib/patch/merge.js +613 -0
  818. package/node_modules/diff/lib/patch/parse.js +167 -0
  819. package/node_modules/diff/lib/patch/reverse.js +63 -0
  820. package/node_modules/diff/lib/util/array.js +32 -0
  821. package/node_modules/diff/lib/util/distance-iterator.js +57 -0
  822. package/node_modules/diff/lib/util/params.js +24 -0
  823. package/node_modules/diff/package.json +89 -0
  824. package/node_modules/diff/release-notes.md +317 -0
  825. package/node_modules/diff/runtime.js +3 -0
  826. package/node_modules/emoji-regex/LICENSE-MIT.txt +20 -0
  827. package/node_modules/emoji-regex/README.md +73 -0
  828. package/node_modules/emoji-regex/es2015/index.js +6 -0
  829. package/node_modules/emoji-regex/es2015/text.js +6 -0
  830. package/node_modules/emoji-regex/index.d.ts +23 -0
  831. package/node_modules/emoji-regex/index.js +6 -0
  832. package/node_modules/emoji-regex/package.json +50 -0
  833. package/node_modules/emoji-regex/text.js +6 -0
  834. package/node_modules/fast-deep-equal/LICENSE +21 -0
  835. package/node_modules/fast-deep-equal/README.md +96 -0
  836. package/node_modules/fast-deep-equal/es6/index.d.ts +2 -0
  837. package/node_modules/fast-deep-equal/es6/index.js +72 -0
  838. package/node_modules/fast-deep-equal/es6/react.d.ts +2 -0
  839. package/node_modules/fast-deep-equal/es6/react.js +79 -0
  840. package/node_modules/fast-deep-equal/index.d.ts +4 -0
  841. package/node_modules/fast-deep-equal/index.js +46 -0
  842. package/node_modules/fast-deep-equal/package.json +61 -0
  843. package/node_modules/fast-deep-equal/react.d.ts +2 -0
  844. package/node_modules/fast-deep-equal/react.js +53 -0
  845. package/node_modules/fast-uri/.gitattributes +2 -0
  846. package/node_modules/fast-uri/.github/.stale.yml +21 -0
  847. package/node_modules/fast-uri/.github/dependabot.yml +13 -0
  848. package/node_modules/fast-uri/.github/tests_checker.yml +8 -0
  849. package/node_modules/fast-uri/.github/workflows/ci.yml +23 -0
  850. package/node_modules/fast-uri/.github/workflows/package-manager-ci.yml +20 -0
  851. package/node_modules/fast-uri/LICENSE +30 -0
  852. package/node_modules/fast-uri/README.md +125 -0
  853. package/node_modules/fast-uri/benchmark.js +105 -0
  854. package/node_modules/fast-uri/index.js +303 -0
  855. package/node_modules/fast-uri/lib/schemes.js +188 -0
  856. package/node_modules/fast-uri/lib/scopedChars.js +30 -0
  857. package/node_modules/fast-uri/lib/utils.js +242 -0
  858. package/node_modules/fast-uri/package.json +39 -0
  859. package/node_modules/fast-uri/test/.gitkeep +0 -0
  860. package/node_modules/fast-uri/test/ajv.test.js +39 -0
  861. package/node_modules/fast-uri/test/compatibility.test.js +131 -0
  862. package/node_modules/fast-uri/test/equal.test.js +103 -0
  863. package/node_modules/fast-uri/test/parse.test.js +318 -0
  864. package/node_modules/fast-uri/test/resolve.test.js +75 -0
  865. package/node_modules/fast-uri/test/serialize.test.js +143 -0
  866. package/node_modules/fast-uri/test/uri-js.test.js +912 -0
  867. package/node_modules/fast-uri/test/util.test.js +23 -0
  868. package/node_modules/fast-uri/types/index.d.ts +53 -0
  869. package/node_modules/fast-uri/types/index.test-d.ts +17 -0
  870. package/node_modules/graphql-mapping-template/CHANGELOG.md +4 -0
  871. package/node_modules/graphql-mapping-template/LICENSE +201 -0
  872. package/node_modules/graphql-mapping-template/jest.config.js +12 -0
  873. package/node_modules/graphql-mapping-template/package.json +2 -41
  874. package/node_modules/graphql-transformer-common/CHANGELOG.md +4 -0
  875. package/node_modules/graphql-transformer-common/LICENSE +201 -0
  876. package/node_modules/graphql-transformer-common/jest.config.js +12 -0
  877. package/node_modules/graphql-transformer-common/package.json +3 -42
  878. package/node_modules/has-flag/index.d.ts +39 -0
  879. package/node_modules/has-flag/index.js +8 -0
  880. package/node_modules/has-flag/license +9 -0
  881. package/node_modules/has-flag/package.json +46 -0
  882. package/node_modules/has-flag/readme.md +89 -0
  883. package/node_modules/is-fullwidth-code-point/index.d.ts +17 -0
  884. package/node_modules/is-fullwidth-code-point/index.js +50 -0
  885. package/node_modules/is-fullwidth-code-point/license +9 -0
  886. package/node_modules/is-fullwidth-code-point/package.json +42 -0
  887. package/node_modules/is-fullwidth-code-point/readme.md +39 -0
  888. package/node_modules/json-schema-traverse/.eslintrc.yml +27 -0
  889. package/node_modules/json-schema-traverse/.github/FUNDING.yml +2 -0
  890. package/node_modules/json-schema-traverse/.github/workflows/build.yml +28 -0
  891. package/node_modules/json-schema-traverse/.github/workflows/publish.yml +27 -0
  892. package/node_modules/json-schema-traverse/LICENSE +21 -0
  893. package/node_modules/json-schema-traverse/README.md +95 -0
  894. package/node_modules/json-schema-traverse/index.d.ts +40 -0
  895. package/node_modules/json-schema-traverse/index.js +93 -0
  896. package/node_modules/json-schema-traverse/package.json +43 -0
  897. package/node_modules/json-schema-traverse/spec/.eslintrc.yml +6 -0
  898. package/node_modules/json-schema-traverse/spec/fixtures/schema.js +125 -0
  899. package/node_modules/json-schema-traverse/spec/index.spec.js +171 -0
  900. package/node_modules/lodash.truncate/LICENSE +47 -0
  901. package/node_modules/lodash.truncate/README.md +18 -0
  902. package/node_modules/lodash.truncate/index.js +632 -0
  903. package/node_modules/lodash.truncate/package.json +17 -0
  904. package/node_modules/require-from-string/index.js +34 -0
  905. package/node_modules/require-from-string/license +21 -0
  906. package/node_modules/require-from-string/package.json +28 -0
  907. package/node_modules/require-from-string/readme.md +56 -0
  908. package/node_modules/slice-ansi/index.js +103 -0
  909. package/node_modules/slice-ansi/license +10 -0
  910. package/node_modules/slice-ansi/package.json +52 -0
  911. package/node_modules/slice-ansi/readme.md +66 -0
  912. package/node_modules/string-width/index.d.ts +29 -0
  913. package/node_modules/string-width/index.js +47 -0
  914. package/node_modules/string-width/license +9 -0
  915. package/node_modules/string-width/package.json +56 -0
  916. package/node_modules/string-width/readme.md +50 -0
  917. package/node_modules/strip-ansi/index.d.ts +17 -0
  918. package/node_modules/strip-ansi/index.js +4 -0
  919. package/node_modules/strip-ansi/license +9 -0
  920. package/node_modules/strip-ansi/package.json +54 -0
  921. package/node_modules/strip-ansi/readme.md +46 -0
  922. package/node_modules/supports-color/browser.js +5 -0
  923. package/node_modules/supports-color/index.js +135 -0
  924. package/node_modules/supports-color/license +9 -0
  925. package/node_modules/supports-color/package.json +53 -0
  926. package/node_modules/supports-color/readme.md +76 -0
  927. package/node_modules/table/LICENSE +24 -0
  928. package/node_modules/table/README.md +837 -0
  929. package/node_modules/table/dist/src/alignSpanningCell.d.ts +7 -0
  930. package/node_modules/table/dist/src/alignSpanningCell.js +48 -0
  931. package/node_modules/table/dist/src/alignSpanningCell.js.map +1 -0
  932. package/node_modules/table/dist/src/alignString.d.ts +6 -0
  933. package/node_modules/table/dist/src/alignString.js +60 -0
  934. package/node_modules/table/dist/src/alignString.js.map +1 -0
  935. package/node_modules/table/dist/src/alignTableData.d.ts +2 -0
  936. package/node_modules/table/dist/src/alignTableData.js +20 -0
  937. package/node_modules/table/dist/src/alignTableData.js.map +1 -0
  938. package/node_modules/table/dist/src/calculateCellHeight.d.ts +4 -0
  939. package/node_modules/table/dist/src/calculateCellHeight.js +12 -0
  940. package/node_modules/table/dist/src/calculateCellHeight.js.map +1 -0
  941. package/node_modules/table/dist/src/calculateMaximumColumnWidths.d.ts +7 -0
  942. package/node_modules/table/dist/src/calculateMaximumColumnWidths.js +36 -0
  943. package/node_modules/table/dist/src/calculateMaximumColumnWidths.js.map +1 -0
  944. package/node_modules/table/dist/src/calculateOutputColumnWidths.d.ts +2 -0
  945. package/node_modules/table/dist/src/calculateOutputColumnWidths.js +10 -0
  946. package/node_modules/table/dist/src/calculateOutputColumnWidths.js.map +1 -0
  947. package/node_modules/table/dist/src/calculateRowHeights.d.ts +5 -0
  948. package/node_modules/table/dist/src/calculateRowHeights.js +42 -0
  949. package/node_modules/table/dist/src/calculateRowHeights.js.map +1 -0
  950. package/node_modules/table/dist/src/calculateSpanningCellWidth.d.ts +3 -0
  951. package/node_modules/table/dist/src/calculateSpanningCellWidth.js +26 -0
  952. package/node_modules/table/dist/src/calculateSpanningCellWidth.js.map +1 -0
  953. package/node_modules/table/dist/src/createStream.d.ts +2 -0
  954. package/node_modules/table/dist/src/createStream.js +74 -0
  955. package/node_modules/table/dist/src/createStream.js.map +1 -0
  956. package/node_modules/table/dist/src/drawBorder.d.ts +34 -0
  957. package/node_modules/table/dist/src/drawBorder.js +202 -0
  958. package/node_modules/table/dist/src/drawBorder.js.map +1 -0
  959. package/node_modules/table/dist/src/drawContent.d.ts +14 -0
  960. package/node_modules/table/dist/src/drawContent.js +51 -0
  961. package/node_modules/table/dist/src/drawContent.js.map +1 -0
  962. package/node_modules/table/dist/src/drawRow.d.ts +10 -0
  963. package/node_modules/table/dist/src/drawRow.js +25 -0
  964. package/node_modules/table/dist/src/drawRow.js.map +1 -0
  965. package/node_modules/table/dist/src/drawTable.d.ts +2 -0
  966. package/node_modules/table/dist/src/drawTable.js +31 -0
  967. package/node_modules/table/dist/src/drawTable.js.map +1 -0
  968. package/node_modules/table/dist/src/generated/validators.d.ts +13 -0
  969. package/node_modules/table/dist/src/generated/validators.js +2694 -0
  970. package/node_modules/table/dist/src/generated/validators.js.map +1 -0
  971. package/node_modules/table/dist/src/getBorderCharacters.d.ts +2 -0
  972. package/node_modules/table/dist/src/getBorderCharacters.js +105 -0
  973. package/node_modules/table/dist/src/getBorderCharacters.js.map +1 -0
  974. package/node_modules/table/dist/src/index.d.ts +5 -0
  975. package/node_modules/table/dist/src/index.js +21 -0
  976. package/node_modules/table/dist/src/index.js.map +1 -0
  977. package/node_modules/table/dist/src/injectHeaderConfig.d.ts +3 -0
  978. package/node_modules/table/dist/src/injectHeaderConfig.js +29 -0
  979. package/node_modules/table/dist/src/injectHeaderConfig.js.map +1 -0
  980. package/node_modules/table/dist/src/makeRangeConfig.d.ts +3 -0
  981. package/node_modules/table/dist/src/makeRangeConfig.js +18 -0
  982. package/node_modules/table/dist/src/makeRangeConfig.js.map +1 -0
  983. package/node_modules/table/dist/src/makeStreamConfig.d.ts +7 -0
  984. package/node_modules/table/dist/src/makeStreamConfig.js +43 -0
  985. package/node_modules/table/dist/src/makeStreamConfig.js.map +1 -0
  986. package/node_modules/table/dist/src/makeTableConfig.d.ts +7 -0
  987. package/node_modules/table/dist/src/makeTableConfig.js +62 -0
  988. package/node_modules/table/dist/src/makeTableConfig.js.map +1 -0
  989. package/node_modules/table/dist/src/mapDataUsingRowHeights.d.ts +4 -0
  990. package/node_modules/table/dist/src/mapDataUsingRowHeights.js +52 -0
  991. package/node_modules/table/dist/src/mapDataUsingRowHeights.js.map +1 -0
  992. package/node_modules/table/dist/src/padTableData.d.ts +3 -0
  993. package/node_modules/table/dist/src/padTableData.js +23 -0
  994. package/node_modules/table/dist/src/padTableData.js.map +1 -0
  995. package/node_modules/table/dist/src/schemas/config.json +95 -0
  996. package/node_modules/table/dist/src/schemas/shared.json +139 -0
  997. package/node_modules/table/dist/src/schemas/streamConfig.json +25 -0
  998. package/node_modules/table/dist/src/spanningCellManager.d.ts +23 -0
  999. package/node_modules/table/dist/src/spanningCellManager.js +95 -0
  1000. package/node_modules/table/dist/src/spanningCellManager.js.map +1 -0
  1001. package/node_modules/table/dist/src/stringifyTableData.d.ts +2 -0
  1002. package/node_modules/table/dist/src/stringifyTableData.js +13 -0
  1003. package/node_modules/table/dist/src/stringifyTableData.js.map +1 -0
  1004. package/node_modules/table/dist/src/table.d.ts +2 -0
  1005. package/node_modules/table/dist/src/table.js +32 -0
  1006. package/node_modules/table/dist/src/table.js.map +1 -0
  1007. package/node_modules/table/dist/src/truncateTableData.d.ts +6 -0
  1008. package/node_modules/table/dist/src/truncateTableData.js +24 -0
  1009. package/node_modules/table/dist/src/truncateTableData.js.map +1 -0
  1010. package/node_modules/table/dist/src/types/api.d.ts +130 -0
  1011. package/node_modules/table/dist/src/types/api.js +3 -0
  1012. package/node_modules/table/dist/src/types/api.js.map +1 -0
  1013. package/node_modules/table/dist/src/types/internal.d.ts +1 -0
  1014. package/node_modules/table/dist/src/types/internal.js +3 -0
  1015. package/node_modules/table/dist/src/types/internal.js.map +1 -0
  1016. package/node_modules/table/dist/src/utils.d.ts +9 -0
  1017. package/node_modules/table/dist/src/utils.js +134 -0
  1018. package/node_modules/table/dist/src/utils.js.map +1 -0
  1019. package/node_modules/table/dist/src/validateConfig.d.ts +2 -0
  1020. package/node_modules/table/dist/src/validateConfig.js +27 -0
  1021. package/node_modules/table/dist/src/validateConfig.js.map +1 -0
  1022. package/node_modules/table/dist/src/validateSpanningCellConfig.d.ts +3 -0
  1023. package/node_modules/table/dist/src/validateSpanningCellConfig.js +46 -0
  1024. package/node_modules/table/dist/src/validateSpanningCellConfig.js.map +1 -0
  1025. package/node_modules/table/dist/src/validateTableData.d.ts +1 -0
  1026. package/node_modules/table/dist/src/validateTableData.js +32 -0
  1027. package/node_modules/table/dist/src/validateTableData.js.map +1 -0
  1028. package/node_modules/table/dist/src/wrapCell.d.ts +8 -0
  1029. package/node_modules/table/dist/src/wrapCell.js +33 -0
  1030. package/node_modules/table/dist/src/wrapCell.js.map +1 -0
  1031. package/node_modules/table/dist/src/wrapString.d.ts +9 -0
  1032. package/node_modules/table/dist/src/wrapString.js +27 -0
  1033. package/node_modules/table/dist/src/wrapString.js.map +1 -0
  1034. package/node_modules/table/dist/src/wrapWord.d.ts +1 -0
  1035. package/node_modules/table/dist/src/wrapWord.js +42 -0
  1036. package/node_modules/table/dist/src/wrapWord.js.map +1 -0
  1037. package/node_modules/table/package.json +77 -0
  1038. package/package.json +132 -123
  1039. package/src/amplify-graphql-api.ts +2 -0
  1040. package/src/index.ts +2 -0
  1041. package/src/log-config-types.ts +84 -0
  1042. package/src/types.ts +6 -1
@@ -0,0 +1,15 @@
1
+ #!/bin/bash
2
+ set -eu
3
+
4
+ # Run this script on the tarball found in the release artifacts of the CloudWatchConsoleServiceDirectory package.
5
+
6
+ explorer_tarball="$1"
7
+
8
+ target_file=lib/canned-metrics/services.json
9
+
10
+ mkdir -p $(dirname $target_file)
11
+
12
+ tar xzOf "$explorer_tarball" "package/dist/lib/configuration/generated/services.json" > $target_file.json
13
+ node -p "JSON.stringify(require('./${target_file}.json'), undefined, 2)" > $target_file
14
+ rm $target_file.json
15
+ echo "Wrote $target_file"
@@ -0,0 +1,113 @@
1
+ #!/bin/bash
2
+
3
+ ###
4
+ # Updates the AWS CloudFormation Resource Specification using the files published on the AWS Documentaiton.
5
+ # See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-resource-specification.html
6
+ ###
7
+
8
+ set -euo pipefail
9
+ scriptdir=$(cd $(dirname $0) && pwd)
10
+
11
+ rm -f CHANGELOG.md.new
12
+
13
+ function update-spec() {
14
+ local title=$1
15
+ local url=$2
16
+ local targetdir=$3
17
+ local gunzip=$4
18
+ local split=$5
19
+ local services=${@:6}
20
+
21
+ local tmpdir="$(mktemp -d)"
22
+ local newspec="${tmpdir}/new_proposed.json"
23
+ local newcombined="${tmpdir}/new.json"
24
+ local oldcombined="${tmpdir}/old.json"
25
+
26
+ # fail if the spec has changes, otherwise we won't be able to determine the diff
27
+ if [ -n "$(git status --porcelain ${targetdir})" ]; then
28
+ echo "The directory ${targetdir} has changes, revert them before cfn-update"
29
+ exit 1
30
+ fi
31
+
32
+ if [[ "${url}" == "http"* ]]; then
33
+ echo >&2 "Downloading from ${url}..."
34
+ if ${gunzip}; then
35
+ curl -sL "${url}" | gunzip - > ${newspec}
36
+ else
37
+ curl -sL "${url}" > ${newspec}
38
+ fi
39
+ else
40
+ echo >&2 "Copying file ${url}..."
41
+ cp "${url}" "${newspec}"
42
+ fi
43
+
44
+ # Calculate the old and new combined specs, so we can do a diff on the changes
45
+ echo >&2 "Updating source spec..."
46
+ mkdir -p ${targetdir}
47
+
48
+ node build-tools/patch-set.js --quiet "${targetdir}" "${oldcombined}"
49
+ if ${split}; then
50
+ node build-tools/split-spec-by-service.js "${newspec}" "${targetdir}" "${services}"
51
+ else
52
+ cp "${newspec}" "${targetdir}/spec.json"
53
+ sort-json "${targetdir}/spec.json"
54
+ fi
55
+ node build-tools/patch-set.js --quiet "${targetdir}" "${newcombined}"
56
+
57
+ echo >&2 "Updating CHANGELOG.md..."
58
+ node build-tools/spec-diff.js "${title}" "${oldcombined}" "${newcombined}" >> CHANGELOG.md.new
59
+
60
+ echo "" >> CHANGELOG.md.new
61
+ }
62
+
63
+ # First run a build to get a complete version of the old spec
64
+
65
+ update-spec \
66
+ "CloudFormation Resource Specification" \
67
+ "${1:-https://d1uauaxba7bl26.cloudfront.net/latest/gzip/CloudFormationResourceSpecification.json}" \
68
+ spec-source/specification/000_cfn/000_official \
69
+ true true
70
+
71
+ update-spec \
72
+ "CloudFormation Resource Specification (us-west-2)" \
73
+ "${2:-https://d201a2mn26r7lk.cloudfront.net/latest/gzip/CloudFormationResourceSpecification.json}" \
74
+ spec-source/specification/001_cfn_us-west-2/000_official \
75
+ true true AWS_DeviceFarm
76
+
77
+ old_version=$(cat cfn.version)
78
+ new_version=$(node -p "require('${scriptdir}/../spec-source/specification/000_cfn/000_official/001_Version.json').ResourceSpecificationVersion")
79
+ echo >&2 "Recording new version..."
80
+ rm -f cfn.version
81
+ echo "$new_version" > cfn.version
82
+
83
+ # Only report outdated specs if we made changes, otherwise we're stuck reporting changes every time.
84
+ if [[ "$new_version" != "$old_version" ]]; then
85
+ echo >&2 "Reporting outdated specs..."
86
+ node build-tools/report-issues spec-source/specification/000_cfn/000_official/ outdated >> CHANGELOG.md.new
87
+ node build-tools/report-issues spec-source/specification/001_cfn_us-west-2/000_official/ outdated >> CHANGELOG.md.new
88
+ fi
89
+
90
+ update-spec \
91
+ "Serverless Application Model (SAM) Resource Specification" \
92
+ "https://raw.githubusercontent.com/awslabs/goformation/master/generate/sam-2016-10-31.json" \
93
+ spec-source/specification/100_sam/000_official \
94
+ false false
95
+
96
+ npm run build
97
+
98
+ echo >&2 "Creating missing AWS construct libraries for new resource types..."
99
+ node ${scriptdir}/create-missing-libraries.js || {
100
+ echo "------------------------------------------------------------------------------------"
101
+ echo "cfn-spec update script failed when trying to create modules for new services"
102
+ echo "Fix the error (you will likely need to add RefKind patches), and then run 'npm run update' again"
103
+ exit 1
104
+ }
105
+
106
+ # append old changelog after new and replace as the last step because otherwise we will not be idempotent
107
+ _changelog_contents=$(cat CHANGELOG.md.new)
108
+ if [ -n "${_changelog_contents}" ]; then
109
+ cat CHANGELOG.md >> CHANGELOG.md.new
110
+ cp CHANGELOG.md.new CHANGELOG.md
111
+ fi
112
+
113
+ exec /bin/bash ${scriptdir}/update-cfnlint.sh
@@ -0,0 +1,67 @@
1
+ export interface CfnSpec {
2
+ PropertyTypes: Record<string, any>;
3
+ ResourceTypes: Record<string, any>;
4
+ ResourceSpecificationVersion: string;
5
+ }
6
+ export interface ValidationError {
7
+ readonly value: JsonValue<any>;
8
+ readonly message: string;
9
+ }
10
+ export declare class CfnSpecValidator {
11
+ static validate(spec: CfnSpec): ValidationError[];
12
+ readonly errors: ValidationError[];
13
+ private readonly root;
14
+ constructor(spec: CfnSpec);
15
+ validateSpec(): void;
16
+ /**
17
+ * Property types are extremely weird
18
+ *
19
+ * Nominally, they define "records" that have a `Properties` field with the defined
20
+ * properties.
21
+ *
22
+ * However, they are also commonly used as aliases for other types, meaning they have
23
+ * the same type-indicating fields as individual property *fields* would have.
24
+ *
25
+ * Also also, it seems to be quite common to have them empty--have no fields at all.
26
+ * This seems to be taken as an alias for an unstructured `Json` type. It's probably
27
+ * just a mistake, but unfortunately a mistake that S3 is participating in, so if we
28
+ * fail on that we won't be able to consume updates to S3's schema. Our codegen is
29
+ * ready to deal with this and just renders it to an empty struct.
30
+ */
31
+ private validatePropertyType;
32
+ private validateResourceType;
33
+ private validateProperties;
34
+ /**
35
+ * Validate the type
36
+ *
37
+ * There must be:
38
+ * - Either Type or PrimitiveType
39
+ * - Only if Type is List or Map, there will be either an ItemType or a PrimitiveItemType
40
+ * - Non-primitive Types must correspond to a property type
41
+ */
42
+ private validateType;
43
+ private assertValidPropertyTypeReference;
44
+ private assertOptional;
45
+ private assert;
46
+ private validateMap;
47
+ private report;
48
+ }
49
+ interface JsonValue<A> {
50
+ readonly path: string[];
51
+ readonly pathValue: any;
52
+ readonly hasValue: boolean;
53
+ readonly value: A;
54
+ readonly valueOrUndefined: A | undefined;
55
+ get<K extends keyof A>(k: K): JsonValue<A[K]>;
56
+ }
57
+ declare class JsonValue<A> implements JsonValue<A> {
58
+ readonly value: A;
59
+ readonly path: string[];
60
+ static of<B>(x: B): JsonValue<B>;
61
+ readonly hasValue: boolean;
62
+ readonly valueOrUndefined: A | undefined;
63
+ readonly pathValue: any;
64
+ constructor(value: A, path: string[]);
65
+ }
66
+ export declare function formatErrorInContext(error: ValidationError): string;
67
+ export {};
@@ -0,0 +1,285 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatErrorInContext = exports.CfnSpecValidator = void 0;
4
+ /* eslint-disable no-console */
5
+ /**
6
+ * CloudFormation spec validator
7
+ *
8
+ * "Why not JSON Schema?", you might ask, and it's a fair question. The answer is:
9
+ * because the error reporting from JSON schema is pretty bad, and I want the validation
10
+ * errors reported from this check to be blindingly obvious, as non-spec-experts
11
+ * are going to have to consume and understand them.
12
+ *
13
+ * I tried JSON Schema validation and its errors look like:
14
+ *
15
+ * ```
16
+ * - instance.PropertyTypes["..."].Properties.Xyz does not match allOf schema <#/definitions/Typed> with 7 error[s]:
17
+ * - instance.PropertyTypes["..."].Properties.Xyz requires property "PrimitiveType"
18
+ * - instance.PropertyTypes["..."].Properties.Xyz requires property "Type"
19
+ * - instance.PropertyTypes["..."].Properties.Xyz requires property "Type"
20
+ * - instance.PropertyTypes["..."].Properties.Xyz requires property "ItemType"
21
+ * - instance.PropertyTypes["..."].Properties.Xyz requires property "Type"
22
+ * - instance.PropertyTypes["..."].Properties.Xyz requires property "PrimitiveItemType"
23
+ * - instance.PropertyTypes["..."].Properties.Xyz is not exactly one from "Primitive","Complex Type","Collection of Primitives","Collection of Complex Types"
24
+ * ```
25
+ *
26
+ * No bueno. In contrast, this script prints:
27
+ *
28
+ * ```
29
+ * {
30
+ * "ResourceTypes": {
31
+ * "AWS::SageMaker::Device": {
32
+ * "Properties": {
33
+ * "Device": {
34
+ *
35
+ * !!! must have exactly one of 'Type', 'PrimitiveType', found: {"Type":"Device","PrimitiveType":"Json"} !!!
36
+ *
37
+ * "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-device.html#cfn-sagemaker-device-device",
38
+ * "UpdateType": "Mutable",
39
+ * "Required": false,
40
+ * "PrimitiveType": "Json",
41
+ * "Type": "Device"
42
+ * }
43
+ * }
44
+ * }
45
+ * }
46
+ * }
47
+ * ```
48
+ */
49
+ const fs = require("fs-extra");
50
+ class CfnSpecValidator {
51
+ constructor(spec) {
52
+ this.errors = new Array();
53
+ this.root = JsonValue.of(spec);
54
+ }
55
+ static validate(spec) {
56
+ const ret = new CfnSpecValidator(spec);
57
+ ret.validateSpec();
58
+ return ret.errors;
59
+ }
60
+ validateSpec() {
61
+ this.assert(this.root.get('PropertyTypes'), isObject, (propTypes) => {
62
+ this.validateMap(propTypes, (propType) => this.validatePropertyType(propType));
63
+ });
64
+ this.assert(this.root.get('ResourceTypes'), isObject, (resTypes) => {
65
+ this.validateMap(resTypes, (propType) => this.validateResourceType(propType));
66
+ });
67
+ }
68
+ /**
69
+ * Property types are extremely weird
70
+ *
71
+ * Nominally, they define "records" that have a `Properties` field with the defined
72
+ * properties.
73
+ *
74
+ * However, they are also commonly used as aliases for other types, meaning they have
75
+ * the same type-indicating fields as individual property *fields* would have.
76
+ *
77
+ * Also also, it seems to be quite common to have them empty--have no fields at all.
78
+ * This seems to be taken as an alias for an unstructured `Json` type. It's probably
79
+ * just a mistake, but unfortunately a mistake that S3 is participating in, so if we
80
+ * fail on that we won't be able to consume updates to S3's schema. Our codegen is
81
+ * ready to deal with this and just renders it to an empty struct.
82
+ */
83
+ validatePropertyType(propType) {
84
+ // If the only set of properties is "Documentation", we take this to be an alias
85
+ // for an empty struct and allow it. I feel icky allowing this, but it seems to
86
+ // be pragmatic for now.
87
+ if (Object.keys(propType.value).join(',') === 'Documentation') {
88
+ return;
89
+ }
90
+ const properties = propType.get('Properties');
91
+ if (properties.hasValue) {
92
+ this.assert(properties, isObject, (props) => {
93
+ this.validateProperties(props);
94
+ });
95
+ }
96
+ else {
97
+ this.validateType(propType, 'if a property type doesn\'t have "Properties", it ');
98
+ }
99
+ }
100
+ validateResourceType(resType) {
101
+ this.assertOptional(resType.get('Properties'), isObject, (props) => {
102
+ this.validateProperties(props);
103
+ });
104
+ this.assertOptional(resType.get('Attributes'), isObject, (attrs) => {
105
+ this.validateMap(attrs, attr => {
106
+ this.validateType(attr);
107
+ });
108
+ });
109
+ }
110
+ validateProperties(properties) {
111
+ this.validateMap(properties, prop => {
112
+ this.validateType(prop);
113
+ this.assertOptional(prop.get('UpdateType'), (x) => {
114
+ if (!['Mutable', 'Immutable', 'Conditional'].includes(x)) {
115
+ throw new Error(`invalid value for enum: '${x}'`);
116
+ }
117
+ });
118
+ });
119
+ }
120
+ /**
121
+ * Validate the type
122
+ *
123
+ * There must be:
124
+ * - Either Type or PrimitiveType
125
+ * - Only if Type is List or Map, there will be either an ItemType or a PrimitiveItemType
126
+ * - Non-primitive Types must correspond to a property type
127
+ */
128
+ validateType(typedObject, errorPrefix = '') {
129
+ const type = typedObject.get('Type');
130
+ const primitiveType = typedObject.get('PrimitiveType');
131
+ if (type.hasValue === primitiveType.hasValue) {
132
+ this.report(typedObject, `${errorPrefix}must have exactly one of 'Type', 'PrimitiveType', found: ${JSON.stringify({
133
+ Type: type.valueOrUndefined,
134
+ PrimitiveType: primitiveType.valueOrUndefined,
135
+ })}`);
136
+ }
137
+ this.assertOptional(primitiveType, isValidPrimitive);
138
+ let isCollectionType = false;
139
+ const itemType = typedObject.get('ItemType');
140
+ const primitiveItemType = typedObject.get('PrimitiveItemType');
141
+ if (type.hasValue) {
142
+ isCollectionType = COLLECTION_TYPES.includes(type.value);
143
+ if (isCollectionType) {
144
+ if (itemType.hasValue === primitiveItemType.hasValue) {
145
+ this.report(typedObject, `must have exactly one of 'ItemType', 'PrimitiveItemType', found: ${JSON.stringify({
146
+ ItemType: itemType.valueOrUndefined,
147
+ PrimitiveItemType: primitiveItemType.valueOrUndefined,
148
+ })}`);
149
+ }
150
+ this.assertOptional(primitiveItemType, isValidPrimitive);
151
+ if (itemType.hasValue) {
152
+ this.assertValidPropertyTypeReference(itemType);
153
+ }
154
+ }
155
+ else {
156
+ this.assertValidPropertyTypeReference(type);
157
+ }
158
+ }
159
+ if (!isCollectionType) {
160
+ if (itemType.hasValue || primitiveItemType.hasValue) {
161
+ this.report(typedObject, 'only \'List\' or \'Map\' types can have \'ItemType\', \'PrimitiveItemType\'');
162
+ }
163
+ }
164
+ const dupes = typedObject.get('DuplicatesAllowed');
165
+ if (dupes.hasValue && !isCollectionType) {
166
+ this.report(dupes, 'occurs on non-collection type');
167
+ }
168
+ }
169
+ assertValidPropertyTypeReference(typeName) {
170
+ if (BUILTIN_COMPLEX_TYPES.includes(typeName.value)) {
171
+ return;
172
+ }
173
+ const cfnName = typeName.path[1]; // AWS::Xyz::Resource[.Property]
174
+ const namespace = cfnName.split('.')[0];
175
+ const propTypeName = `${namespace}.${typeName.value}`;
176
+ if (!this.root.get('PropertyTypes').get(propTypeName).hasValue) {
177
+ this.report(typeName, `unknown property type name '${typeName.value}' (missing definition for '${propTypeName}')`);
178
+ }
179
+ }
180
+ assertOptional(x, pred, block) {
181
+ return x.hasValue ? this.assert(x, pred, block) : true;
182
+ }
183
+ assert(x, pred, block) {
184
+ try {
185
+ pred(x.value);
186
+ if (block) {
187
+ block(new JsonValue(x.value, x.path));
188
+ }
189
+ return true;
190
+ }
191
+ catch (e) {
192
+ this.report(x, e.message);
193
+ return false;
194
+ }
195
+ }
196
+ validateMap(x, block) {
197
+ for (const key in x.value) {
198
+ block(x.get(key));
199
+ }
200
+ }
201
+ report(value, message) {
202
+ this.errors.push({ value, message });
203
+ }
204
+ }
205
+ exports.CfnSpecValidator = CfnSpecValidator;
206
+ function isObject(x) {
207
+ if (x == null || typeof x !== 'object' || Array.isArray(x)) {
208
+ throw new Error(`expected object, found '${x}'`);
209
+ }
210
+ }
211
+ const COLLECTION_TYPES = ['List', 'Map'];
212
+ const BUILTIN_COMPLEX_TYPES = ['Tag'];
213
+ function isValidPrimitive(x) {
214
+ const primitives = ['String', 'Long', 'Integer', 'Double', 'Boolean', 'Timestamp', 'Json'];
215
+ if (!primitives.includes(x)) {
216
+ throw new Error(`must be one of ${primitives.join(', ')}, got: ${x}`);
217
+ }
218
+ }
219
+ class JsonValue {
220
+ constructor(value, path) {
221
+ this.value = value;
222
+ this.path = path;
223
+ this.hasValue = true;
224
+ this.valueOrUndefined = this.value;
225
+ this.pathValue = this.value;
226
+ }
227
+ static of(x) {
228
+ return new JsonValue(x, []);
229
+ }
230
+ get(k) {
231
+ if (!this.value || typeof this.value !== 'object' || Array.isArray(this.value)) {
232
+ return new ErrorValue(`expected object, found ${this.value}`, this.path, this.value);
233
+ }
234
+ const ret = this.value[k];
235
+ if (ret === undefined) {
236
+ return new ErrorValue(`missing required key '${k}'`, this.path, this.value);
237
+ }
238
+ return new JsonValue(ret, [...this.path, `${k}`]);
239
+ }
240
+ }
241
+ class ErrorValue {
242
+ constructor(error, path, pathValue) {
243
+ this.error = error;
244
+ this.path = path;
245
+ this.pathValue = pathValue;
246
+ this.hasValue = false;
247
+ this.valueOrUndefined = undefined;
248
+ }
249
+ get(_k) {
250
+ return this;
251
+ }
252
+ get value() {
253
+ throw new Error(this.error);
254
+ }
255
+ }
256
+ function formatErrorInContext(error) {
257
+ let reportValue = error.value.pathValue;
258
+ for (let i = error.value.path.length; i > 0; i--) {
259
+ reportValue = { [error.value.path[i - 1]]: reportValue };
260
+ }
261
+ const formattedLines = JSON.stringify(reportValue, undefined, 2).split('\n');
262
+ const indent = 2 * (error.value.path.length + 1);
263
+ // Insert the error message at line N with an appropriate indent
264
+ formattedLines.splice(error.value.path.length + 1, 0, `\n!!!${' '.repeat(indent - 3)}${error.message} !!!\n`);
265
+ return formattedLines.join('\n');
266
+ }
267
+ exports.formatErrorInContext = formatErrorInContext;
268
+ async function main(args) {
269
+ const spec = await fs.readJson(args[0]);
270
+ const errors = CfnSpecValidator.validate(spec);
271
+ if (errors.length !== 0) {
272
+ for (const error of errors) {
273
+ console.error(formatErrorInContext(error));
274
+ }
275
+ process.exitCode = 1;
276
+ }
277
+ }
278
+ if (require.main === module) {
279
+ main(process.argv.slice(2)).catch(e => {
280
+ process.exitCode = 1;
281
+ // eslint-disable-next-line no-console
282
+ console.error(e.message);
283
+ });
284
+ }
285
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtY2ZuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidmFsaWRhdGUtY2ZuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUErQjtBQUMvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJDRztBQUNILCtCQUErQjtBQWEvQixNQUFhLGdCQUFnQjtJQVUzQixZQUFZLElBQWE7UUFIVCxXQUFNLEdBQUcsSUFBSSxLQUFLLEVBQW1CLENBQUM7UUFJcEQsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFYTSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQWE7UUFDbEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQ3BCLENBQUM7SUFTTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDbEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2pGLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNqRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixD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LWNvbnNvbGUgKi9cbi8qKlxuICogQ2xvdWRGb3JtYXRpb24gc3BlYyB2YWxpZGF0b3JcbiAqXG4gKiBcIldoeSBub3QgSlNPTiBTY2hlbWE/XCIsIHlvdSBtaWdodCBhc2ssIGFuZCBpdCdzIGEgZmFpciBxdWVzdGlvbi4gVGhlIGFuc3dlciBpczpcbiAqIGJlY2F1c2UgdGhlIGVycm9yIHJlcG9ydGluZyBmcm9tIEpTT04gc2NoZW1hIGlzIHByZXR0eSBiYWQsIGFuZCBJIHdhbnQgdGhlIHZhbGlkYXRpb25cbiAqIGVycm9ycyByZXBvcnRlZCBmcm9tIHRoaXMgY2hlY2sgdG8gYmUgYmxpbmRpbmdseSBvYnZpb3VzLCBhcyBub24tc3BlYy1leHBlcnRzXG4gKiBhcmUgZ29pbmcgdG8gaGF2ZSB0byBjb25zdW1lIGFuZCB1bmRlcnN0YW5kIHRoZW0uXG4gKlxuICogSSB0cmllZCBKU09OIFNjaGVtYSB2YWxpZGF0aW9uIGFuZCBpdHMgZXJyb3JzIGxvb2sgbGlrZTpcbiAqXG4gKiBgYGBcbiAqIC0gaW5zdGFuY2UuUHJvcGVydHlUeXBlc1tcIi4uLlwiXS5Qcm9wZXJ0aWVzLlh5eiBkb2VzIG5vdCBtYXRjaCBhbGxPZiBzY2hlbWEgPCMvZGVmaW5pdGlvbnMvVHlwZWQ+IHdpdGggNyBlcnJvcltzXTpcbiAqIC0gaW5zdGFuY2UuUHJvcGVydHlUeXBlc1tcIi4uLlwiXS5Qcm9wZXJ0aWVzLlh5eiByZXF1aXJlcyBwcm9wZXJ0eSBcIlByaW1pdGl2ZVR5cGVcIlxuICogLSBpbnN0YW5jZS5Qcm9wZXJ0eVR5cGVzW1wiLi4uXCJdLlByb3BlcnRpZXMuWHl6IHJlcXVpcmVzIHByb3BlcnR5IFwiVHlwZVwiXG4gKiAtIGluc3RhbmNlLlByb3BlcnR5VHlwZXNbXCIuLi5cIl0uUHJvcGVydGllcy5YeXogcmVxdWlyZXMgcHJvcGVydHkgXCJUeXBlXCJcbiAqIC0gaW5zdGFuY2UuUHJvcGVydHlUeXBlc1tcIi4uLlwiXS5Qcm9wZXJ0aWVzLlh5eiByZXF1aXJlcyBwcm9wZXJ0eSBcIkl0ZW1UeXBlXCJcbiAqIC0gaW5zdGFuY2UuUHJvcGVydHlUeXBlc1tcIi4uLlwiXS5Qcm9wZXJ0aWVzLlh5eiByZXF1aXJlcyBwcm9wZXJ0eSBcIlR5cGVcIlxuICogLSBpbnN0YW5jZS5Qcm9wZXJ0eVR5cGVzW1wiLi4uXCJdLlByb3BlcnRpZXMuWHl6IHJlcXVpcmVzIHByb3BlcnR5IFwiUHJpbWl0aXZlSXRlbVR5cGVcIlxuICogLSBpbnN0YW5jZS5Qcm9wZXJ0eVR5cGVzW1wiLi4uXCJdLlByb3BlcnRpZXMuWHl6IGlzIG5vdCBleGFjdGx5IG9uZSBmcm9tIFwiUHJpbWl0aXZlXCIsXCJDb21wbGV4IFR5cGVcIixcIkNvbGxlY3Rpb24gb2YgUHJpbWl0aXZlc1wiLFwiQ29sbGVjdGlvbiBvZiBDb21wbGV4IFR5cGVzXCJcbiAqIGBgYFxuICpcbiAqIE5vIGJ1ZW5vLiBJbiBjb250cmFzdCwgdGhpcyBzY3JpcHQgcHJpbnRzOlxuICpcbiAqIGBgYFxuICoge1xuICogICBcIlJlc291cmNlVHlwZXNcIjoge1xuICogICAgIFwiQVdTOjpTYWdlTWFrZXI6OkRldmljZVwiOiB7XG4gKiAgICAgICBcIlByb3BlcnRpZXNcIjoge1xuICogICAgICAgICBcIkRldmljZVwiOiB7XG4gKlxuICogISEhICAgICAgIG11c3QgaGF2ZSBleGFjdGx5IG9uZSBvZiAnVHlwZScsICdQcmltaXRpdmVUeXBlJywgZm91bmQ6IHtcIlR5cGVcIjpcIkRldmljZVwiLFwiUHJpbWl0aXZlVHlwZVwiOlwiSnNvblwifSAhISFcbiAqXG4gKiAgICAgICAgICAgXCJEb2N1bWVudGF0aW9uXCI6IFwiaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2Utc2FnZW1ha2VyLWRldmljZS5odG1sI2Nmbi1zYWdlbWFrZXItZGV2aWNlLWRldmljZVwiLFxuICogICAgICAgICAgIFwiVXBkYXRlVHlwZVwiOiBcIk11dGFibGVcIixcbiAqICAgICAgICAgICBcIlJlcXVpcmVkXCI6IGZhbHNlLFxuICogICAgICAgICAgIFwiUHJpbWl0aXZlVHlwZVwiOiBcIkpzb25cIixcbiAqICAgICAgICAgICBcIlR5cGVcIjogXCJEZXZpY2VcIlxuICogICAgICAgICB9XG4gKiAgICAgICB9XG4gKiAgICAgfVxuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENmblNwZWMge1xuICBQcm9wZXJ0eVR5cGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBSZXNvdXJjZVR5cGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBSZXNvdXJjZVNwZWNpZmljYXRpb25WZXJzaW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGlvbkVycm9yIHtcbiAgcmVhZG9ubHkgdmFsdWU6IEpzb25WYWx1ZTxhbnk+O1xuICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBDZm5TcGVjVmFsaWRhdG9yIHtcbiAgcHVibGljIHN0YXRpYyB2YWxpZGF0ZShzcGVjOiBDZm5TcGVjKSB7XG4gICAgY29uc3QgcmV0ID0gbmV3IENmblNwZWNWYWxpZGF0b3Ioc3BlYyk7XG4gICAgcmV0LnZhbGlkYXRlU3BlYygpO1xuICAgIHJldHVybiByZXQuZXJyb3JzO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGVycm9ycyA9IG5ldyBBcnJheTxWYWxpZGF0aW9uRXJyb3I+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcm9vdDogSnNvblZhbHVlPENmblNwZWM+O1xuXG4gIGNvbnN0cnVjdG9yKHNwZWM6IENmblNwZWMpIHtcbiAgICB0aGlzLnJvb3QgPSBKc29uVmFsdWUub2Yoc3BlYyk7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGVTcGVjKCkge1xuICAgIHRoaXMuYXNzZXJ0KHRoaXMucm9vdC5nZXQoJ1Byb3BlcnR5VHlwZXMnKSwgaXNPYmplY3QsIChwcm9wVHlwZXMpID0+IHtcbiAgICAgIHRoaXMudmFsaWRhdGVNYXAocHJvcFR5cGVzLCAocHJvcFR5cGUpID0+IHRoaXMudmFsaWRhdGVQcm9wZXJ0eVR5cGUocHJvcFR5cGUpKTtcbiAgICB9KTtcblxuICAgIHRoaXMuYXNzZXJ0KHRoaXMucm9vdC5nZXQoJ1Jlc291cmNlVHlwZXMnKSwgaXNPYmplY3QsIChyZXNUeXBlcykgPT4ge1xuICAgICAgdGhpcy52YWxpZGF0ZU1hcChyZXNUeXBlcywgKHByb3BUeXBlKSA9PiB0aGlzLnZhbGlkYXRlUmVzb3VyY2VUeXBlKHByb3BUeXBlKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUHJvcGVydHkgdHlwZXMgYXJlIGV4dHJlbWVseSB3ZWlyZFxuICAgKlxuICAgKiBOb21pbmFsbHksIHRoZXkgZGVmaW5lIFwicmVjb3Jkc1wiIHRoYXQgaGF2ZSBhIGBQcm9wZXJ0aWVzYCBmaWVsZCB3aXRoIHRoZSBkZWZpbmVkXG4gICAqIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEhvd2V2ZXIsIHRoZXkgYXJlIGFsc28gY29tbW9ubHkgdXNlZCBhcyBhbGlhc2VzIGZvciBvdGhlciB0eXBlcywgbWVhbmluZyB0aGV5IGhhdmVcbiAgICogdGhlIHNhbWUgdHlwZS1pbmRpY2F0aW5nIGZpZWxkcyBhcyBpbmRpdmlkdWFsIHByb3BlcnR5ICpmaWVsZHMqIHdvdWxkIGhhdmUuXG4gICAqXG4gICAqIEFsc28gYWxzbywgaXQgc2VlbXMgdG8gYmUgcXVpdGUgY29tbW9uIHRvIGhhdmUgdGhlbSBlbXB0eS0taGF2ZSBubyBmaWVsZHMgYXQgYWxsLlxuICAgKiBUaGlzIHNlZW1zIHRvIGJlIHRha2VuIGFzIGFuIGFsaWFzIGZvciBhbiB1bnN0cnVjdHVyZWQgYEpzb25gIHR5cGUuIEl0J3MgcHJvYmFibHlcbiAgICoganVzdCBhIG1pc3Rha2UsIGJ1dCB1bmZvcnR1bmF0ZWx5IGEgbWlzdGFrZSB0aGF0IFMzIGlzIHBhcnRpY2lwYXRpbmcgaW4sIHNvIGlmIHdlXG4gICAqIGZhaWwgb24gdGhhdCB3ZSB3b24ndCBiZSBhYmxlIHRvIGNvbnN1bWUgdXBkYXRlcyB0byBTMydzIHNjaGVtYS4gT3VyIGNvZGVnZW4gaXNcbiAgICogcmVhZHkgdG8gZGVhbCB3aXRoIHRoaXMgYW5kIGp1c3QgcmVuZGVycyBpdCB0byBhbiBlbXB0eSBzdHJ1Y3QuXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlUHJvcGVydHlUeXBlKHByb3BUeXBlOiBKc29uVmFsdWU8UmVjb3JkPHN0cmluZywgYW55Pj4pIHtcbiAgICAvLyBJZiB0aGUgb25seSBzZXQgb2YgcHJvcGVydGllcyBpcyBcIkRvY3VtZW50YXRpb25cIiwgd2UgdGFrZSB0aGlzIHRvIGJlIGFuIGFsaWFzXG4gICAgLy8gZm9yIGFuIGVtcHR5IHN0cnVjdCBhbmQgYWxsb3cgaXQuIEkgZmVlbCBpY2t5IGFsbG93aW5nIHRoaXMsIGJ1dCBpdCBzZWVtcyB0b1xuICAgIC8vIGJlIHByYWdtYXRpYyBmb3Igbm93LlxuICAgIGlmIChPYmplY3Qua2V5cyhwcm9wVHlwZS52YWx1ZSkuam9pbignLCcpID09PSAnRG9jdW1lbnRhdGlvbicpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gcHJvcFR5cGUuZ2V0KCdQcm9wZXJ0aWVzJyk7XG4gICAgaWYgKHByb3BlcnRpZXMuaGFzVmFsdWUpIHtcbiAgICAgIHRoaXMuYXNzZXJ0KHByb3BlcnRpZXMsIGlzT2JqZWN0LCAocHJvcHMpID0+IHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZVByb3BlcnRpZXMocHJvcHMpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsaWRhdGVUeXBlKHByb3BUeXBlLCAnaWYgYSBwcm9wZXJ0eSB0eXBlIGRvZXNuXFwndCBoYXZlIFwiUHJvcGVydGllc1wiLCBpdCAnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlUmVzb3VyY2VUeXBlKHJlc1R5cGU6IEpzb25WYWx1ZTxhbnk+KSB7XG4gICAgdGhpcy5hc3NlcnRPcHRpb25hbChyZXNUeXBlLmdldCgnUHJvcGVydGllcycpLCBpc09iamVjdCwgKHByb3BzKSA9PiB7XG4gICAgICB0aGlzLnZhbGlkYXRlUHJvcGVydGllcyhwcm9wcyk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmFzc2VydE9wdGlvbmFsKHJlc1R5cGUuZ2V0KCdBdHRyaWJ1dGVzJyksIGlzT2JqZWN0LCAoYXR0cnMpID0+IHtcbiAgICAgIHRoaXMudmFsaWRhdGVNYXAoYXR0cnMsIGF0dHIgPT4ge1xuICAgICAgICB0aGlzLnZhbGlkYXRlVHlwZShhdHRyKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVByb3BlcnRpZXMocHJvcGVydGllczogSnNvblZhbHVlPFJlY29yZDxzdHJpbmcsIGFueT4+KSB7XG4gICAgdGhpcy52YWxpZGF0ZU1hcChwcm9wZXJ0aWVzLCBwcm9wID0+IHtcbiAgICAgIHRoaXMudmFsaWRhdGVUeXBlKHByb3ApO1xuXG4gICAgICB0aGlzLmFzc2VydE9wdGlvbmFsKHByb3AuZ2V0KCdVcGRhdGVUeXBlJyksICh4OiBhbnkpID0+IHtcbiAgICAgICAgaWYgKCFbJ011dGFibGUnLCAnSW1tdXRhYmxlJywgJ0NvbmRpdGlvbmFsJ10uaW5jbHVkZXMoeCkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdmFsdWUgZm9yIGVudW06ICcke3h9J2ApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB0aGUgdHlwZVxuICAgKlxuICAgKiBUaGVyZSBtdXN0IGJlOlxuICAgKiAtIEVpdGhlciBUeXBlIG9yIFByaW1pdGl2ZVR5cGVcbiAgICogLSBPbmx5IGlmIFR5cGUgaXMgTGlzdCBvciBNYXAsIHRoZXJlIHdpbGwgYmUgZWl0aGVyIGFuIEl0ZW1UeXBlIG9yIGEgUHJpbWl0aXZlSXRlbVR5cGVcbiAgICogLSBOb24tcHJpbWl0aXZlIFR5cGVzIG11c3QgY29ycmVzcG9uZCB0byBhIHByb3BlcnR5IHR5cGVcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVUeXBlKHR5cGVkT2JqZWN0OiBKc29uVmFsdWU8UmVjb3JkPHN0cmluZywgYW55Pj4sIGVycm9yUHJlZml4ID0gJycpIHtcbiAgICBjb25zdCB0eXBlID0gdHlwZWRPYmplY3QuZ2V0KCdUeXBlJyk7XG4gICAgY29uc3QgcHJpbWl0aXZlVHlwZSA9IHR5cGVkT2JqZWN0LmdldCgnUHJpbWl0aXZlVHlwZScpO1xuXG4gICAgaWYgKHR5cGUuaGFzVmFsdWUgPT09IHByaW1pdGl2ZVR5cGUuaGFzVmFsdWUpIHtcbiAgICAgIHRoaXMucmVwb3J0KHR5cGVkT2JqZWN0LCBgJHtlcnJvclByZWZpeH1tdXN0IGhhdmUgZXhhY3RseSBvbmUgb2YgJ1R5cGUnLCAnUHJpbWl0aXZlVHlwZScsIGZvdW5kOiAke0pTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgVHlwZTogdHlwZS52YWx1ZU9yVW5kZWZpbmVkLFxuICAgICAgICBQcmltaXRpdmVUeXBlOiBwcmltaXRpdmVUeXBlLnZhbHVlT3JVbmRlZmluZWQsXG4gICAgICB9KX1gKTtcbiAgICB9XG5cbiAgICB0aGlzLmFzc2VydE9wdGlvbmFsKHByaW1pdGl2ZVR5cGUsIGlzVmFsaWRQcmltaXRpdmUpO1xuXG4gICAgbGV0IGlzQ29sbGVjdGlvblR5cGUgPSBmYWxzZTtcbiAgICBjb25zdCBpdGVtVHlwZSA9IHR5cGVkT2JqZWN0LmdldCgnSXRlbVR5cGUnKTtcbiAgICBjb25zdCBwcmltaXRpdmVJdGVtVHlwZSA9IHR5cGVkT2JqZWN0LmdldCgnUHJpbWl0aXZlSXRlbVR5cGUnKTtcblxuICAgIGlmICh0eXBlLmhhc1ZhbHVlKSB7XG4gICAgICBpc0NvbGxlY3Rpb25UeXBlID0gQ09MTEVDVElPTl9UWVBFUy5pbmNsdWRlcyh0eXBlLnZhbHVlKTtcbiAgICAgIGlmIChpc0NvbGxlY3Rpb25UeXBlKSB7XG4gICAgICAgIGlmIChpdGVtVHlwZS5oYXNWYWx1ZSA9PT0gcHJpbWl0aXZlSXRlbVR5cGUuaGFzVmFsdWUpIHtcbiAgICAgICAgICB0aGlzLnJlcG9ydCh0eXBlZE9iamVjdCwgYG11c3QgaGF2ZSBleGFjdGx5IG9uZSBvZiAnSXRlbVR5cGUnLCAnUHJpbWl0aXZlSXRlbVR5cGUnLCBmb3VuZDogJHtKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICBJdGVtVHlwZTogaXRlbVR5cGUudmFsdWVPclVuZGVmaW5lZCxcbiAgICAgICAgICAgIFByaW1pdGl2ZUl0ZW1UeXBlOiBwcmltaXRpdmVJdGVtVHlwZS52YWx1ZU9yVW5kZWZpbmVkLFxuICAgICAgICAgIH0pfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hc3NlcnRPcHRpb25hbChwcmltaXRpdmVJdGVtVHlwZSwgaXNWYWxpZFByaW1pdGl2ZSk7XG4gICAgICAgIGlmIChpdGVtVHlwZS5oYXNWYWx1ZSkge1xuICAgICAgICAgIHRoaXMuYXNzZXJ0VmFsaWRQcm9wZXJ0eVR5cGVSZWZlcmVuY2UoaXRlbVR5cGUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFzc2VydFZhbGlkUHJvcGVydHlUeXBlUmVmZXJlbmNlKHR5cGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghaXNDb2xsZWN0aW9uVHlwZSkge1xuICAgICAgaWYgKGl0ZW1UeXBlLmhhc1ZhbHVlIHx8IHByaW1pdGl2ZUl0ZW1UeXBlLmhhc1ZhbHVlKSB7XG4gICAgICAgIHRoaXMucmVwb3J0KHR5cGVkT2JqZWN0LCAnb25seSBcXCdMaXN0XFwnIG9yIFxcJ01hcFxcJyB0eXBlcyBjYW4gaGF2ZSBcXCdJdGVtVHlwZVxcJywgXFwnUHJpbWl0aXZlSXRlbVR5cGVcXCcnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkdXBlcyA9IHR5cGVkT2JqZWN0LmdldCgnRHVwbGljYXRlc0FsbG93ZWQnKTtcbiAgICBpZiAoZHVwZXMuaGFzVmFsdWUgJiYgIWlzQ29sbGVjdGlvblR5cGUpIHtcbiAgICAgIHRoaXMucmVwb3J0KGR1cGVzLCAnb2NjdXJzIG9uIG5vbi1jb2xsZWN0aW9uIHR5cGUnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzc2VydFZhbGlkUHJvcGVydHlUeXBlUmVmZXJlbmNlKHR5cGVOYW1lOiBKc29uVmFsdWU8c3RyaW5nPikge1xuICAgIGlmIChCVUlMVElOX0NPTVBMRVhfVFlQRVMuaW5jbHVkZXModHlwZU5hbWUudmFsdWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY2ZuTmFtZSA9IHR5cGVOYW1lLnBhdGhbMV07IC8vIEFXUzo6WHl6OjpSZXNvdXJjZVsuUHJvcGVydHldXG4gICAgY29uc3QgbmFtZXNwYWNlID0gY2ZuTmFtZS5zcGxpdCgnLicpWzBdO1xuXG4gICAgY29uc3QgcHJvcFR5cGVOYW1lID0gYCR7bmFtZXNwYWNlfS4ke3R5cGVOYW1lLnZhbHVlfWA7XG4gICAgaWYgKCF0aGlzLnJvb3QuZ2V0KCdQcm9wZXJ0eVR5cGVzJykuZ2V0KHByb3BUeXBlTmFtZSkuaGFzVmFsdWUpIHtcbiAgICAgIHRoaXMucmVwb3J0KHR5cGVOYW1lLCBgdW5rbm93biBwcm9wZXJ0eSB0eXBlIG5hbWUgJyR7dHlwZU5hbWUudmFsdWV9JyAobWlzc2luZyBkZWZpbml0aW9uIGZvciAnJHtwcm9wVHlwZU5hbWV9JylgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzc2VydE9wdGlvbmFsPEEsIEIgZXh0ZW5kcyBBPih4OiBKc29uVmFsdWU8QT4sIHByZWQ6ICh4OiBBKSA9PiBhc3NlcnRzIHggaXMgQiwgYmxvY2s/OiAoeDogSnNvblZhbHVlPEI+KSA9PiB2b2lkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHguaGFzVmFsdWUgPyB0aGlzLmFzc2VydCh4LCBwcmVkLCBibG9jaykgOiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3NlcnQ8QSwgQiBleHRlbmRzIEE+KHg6IEpzb25WYWx1ZTxBPiwgcHJlZDogKHg6IEEpID0+IGFzc2VydHMgeCBpcyBCLCBibG9jaz86ICh4OiBKc29uVmFsdWU8Qj4pID0+IHZvaWQpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgcHJlZCh4LnZhbHVlKTtcbiAgICAgIGlmIChibG9jaykge1xuICAgICAgICBibG9jayhuZXcgSnNvblZhbHVlKHgudmFsdWUsIHgucGF0aCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5yZXBvcnQoeCwgZS5tZXNzYWdlKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlTWFwPEE+KHg6IEpzb25WYWx1ZTxSZWNvcmQ8c3RyaW5nLCBBPj4sIGJsb2NrOiAoeDogSnNvblZhbHVlPEE+KSA9PiB2b2lkKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4geC52YWx1ZSkge1xuICAgICAgYmxvY2soeC5nZXQoa2V5KSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXBvcnQodmFsdWU6IEpzb25WYWx1ZTxhbnk+LCBtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmVycm9ycy5wdXNoKHsgdmFsdWUsIG1lc3NhZ2UgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNPYmplY3QoeDogYW55KTogYXNzZXJ0cyB4IGlzIFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICBpZiAoeCA9PSBudWxsIHx8IHR5cGVvZiB4ICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KHgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCBvYmplY3QsIGZvdW5kICcke3h9J2ApO1xuICB9XG59XG5cbmNvbnN0IENPTExFQ1RJT05fVFlQRVMgPSBbJ0xpc3QnLCAnTWFwJ107XG5jb25zdCBCVUlMVElOX0NPTVBMRVhfVFlQRVMgPSBbJ1RhZyddO1xuXG5mdW5jdGlvbiBpc1ZhbGlkUHJpbWl0aXZlKHg6IGFueSk6IGFzc2VydHMgeCBpcyBzdHJpbmcge1xuICBjb25zdCBwcmltaXRpdmVzID0gWydTdHJpbmcnLCAnTG9uZycsICdJbnRlZ2VyJywgJ0RvdWJsZScsICdCb29sZWFuJywgJ1RpbWVzdGFtcCcsICdKc29uJ107XG5cbiAgaWYgKCFwcmltaXRpdmVzLmluY2x1ZGVzKHgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBtdXN0IGJlIG9uZSBvZiAke3ByaW1pdGl2ZXMuam9pbignLCAnKX0sIGdvdDogJHt4fWApO1xuICB9XG59XG5cbmludGVyZmFjZSBKc29uVmFsdWU8QT4ge1xuICByZWFkb25seSBwYXRoOiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgcGF0aFZhbHVlOiBhbnk7XG4gIHJlYWRvbmx5IGhhc1ZhbHVlOiBib29sZWFuO1xuICByZWFkb25seSB2YWx1ZTogQTtcbiAgcmVhZG9ubHkgdmFsdWVPclVuZGVmaW5lZDogQSB8IHVuZGVmaW5lZDtcbiAgZ2V0PEsgZXh0ZW5kcyBrZXlvZiBBPihrOiBLKTogSnNvblZhbHVlPEFbS10+O1xufVxuXG5jbGFzcyBKc29uVmFsdWU8QT4gaW1wbGVtZW50cyBKc29uVmFsdWU8QT4ge1xuICBwdWJsaWMgc3RhdGljIG9mPEI+KHg6IEIpOiBKc29uVmFsdWU8Qj4ge1xuICAgIHJldHVybiBuZXcgSnNvblZhbHVlKHgsIFtdKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBoYXNWYWx1ZTogYm9vbGVhbiA9IHRydWU7XG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZU9yVW5kZWZpbmVkOiBBIHwgdW5kZWZpbmVkID0gdGhpcy52YWx1ZTtcbiAgcHVibGljIHJlYWRvbmx5IHBhdGhWYWx1ZTogYW55ID0gdGhpcy52YWx1ZTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IEEsIHB1YmxpYyByZWFkb25seSBwYXRoOiBzdHJpbmdbXSkge1xuICB9XG5cbiAgcHVibGljIGdldDxLIGV4dGVuZHMga2V5b2YgQT4oazogSyk6IEpzb25WYWx1ZTxBW0tdPiB7XG4gICAgaWYgKCF0aGlzLnZhbHVlIHx8IHR5cGVvZiB0aGlzLnZhbHVlICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpKSB7XG4gICAgICByZXR1cm4gbmV3IEVycm9yVmFsdWUoYGV4cGVjdGVkIG9iamVjdCwgZm91bmQgJHt0aGlzLnZhbHVlfWAsIHRoaXMucGF0aCwgdGhpcy52YWx1ZSk7XG4gICAgfVxuICAgIGNvbnN0IHJldCA9IHRoaXMudmFsdWVba107XG4gICAgaWYgKHJldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbmV3IEVycm9yVmFsdWUoYG1pc3NpbmcgcmVxdWlyZWQga2V5ICcke2t9J2AsIHRoaXMucGF0aCwgdGhpcy52YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgSnNvblZhbHVlKHJldCwgWy4uLnRoaXMucGF0aCwgYCR7a31gXSk7XG4gIH1cbn1cblxuY2xhc3MgRXJyb3JWYWx1ZTxBPiBpbXBsZW1lbnRzIEpzb25WYWx1ZTxBPiB7XG4gIHB1YmxpYyByZWFkb25seSBoYXNWYWx1ZSA9IGZhbHNlO1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVPclVuZGVmaW5lZDogQSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVycm9yOiBzdHJpbmcsIHB1YmxpYyByZWFkb25seSBwYXRoOiBzdHJpbmdbXSwgcHVibGljIHJlYWRvbmx5IHBhdGhWYWx1ZTogYW55KSB7XG4gIH1cblxuICBwdWJsaWMgZ2V0PEsgZXh0ZW5kcyBrZXlvZiBBPihfazogSyk6IEpzb25WYWx1ZTxBW0tdPiB7XG4gICAgcmV0dXJuIHRoaXMgYXMgYW55O1xuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBBIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IodGhpcy5lcnJvcik7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEVycm9ySW5Db250ZXh0KGVycm9yOiBWYWxpZGF0aW9uRXJyb3IpIHtcbiAgbGV0IHJlcG9ydFZhbHVlID0gZXJyb3IudmFsdWUucGF0aFZhbHVlO1xuICBmb3IgKGxldCBpID0gZXJyb3IudmFsdWUucGF0aC5sZW5ndGg7IGkgPiAwOyBpLS0pIHtcbiAgICByZXBvcnRWYWx1ZSA9IHsgW2Vycm9yLnZhbHVlLnBhdGhbaSAtIDFdXTogcmVwb3J0VmFsdWUgfTtcbiAgfVxuXG4gIGNvbnN0IGZvcm1hdHRlZExpbmVzID0gSlNPTi5zdHJpbmdpZnkocmVwb3J0VmFsdWUsIHVuZGVmaW5lZCwgMikuc3BsaXQoJ1xcbicpO1xuXG4gIGNvbnN0IGluZGVudCA9IDIgKiAoZXJyb3IudmFsdWUucGF0aC5sZW5ndGggKyAxKTtcblxuICAvLyBJbnNlcnQgdGhlIGVycm9yIG1lc3NhZ2UgYXQgbGluZSBOIHdpdGggYW4gYXBwcm9wcmlhdGUgaW5kZW50XG4gIGZvcm1hdHRlZExpbmVzLnNwbGljZShlcnJvci52YWx1ZS5wYXRoLmxlbmd0aCArIDEsIDAsIGBcXG4hISEkeycgJy5yZXBlYXQoaW5kZW50IC0gMyl9JHtlcnJvci5tZXNzYWdlfSAhISFcXG5gKTtcblxuICByZXR1cm4gZm9ybWF0dGVkTGluZXMuam9pbignXFxuJyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oYXJnczogc3RyaW5nW10pIHtcbiAgY29uc3Qgc3BlYyA9IGF3YWl0IGZzLnJlYWRKc29uKGFyZ3NbMF0pO1xuICBjb25zdCBlcnJvcnMgPSBDZm5TcGVjVmFsaWRhdG9yLnZhbGlkYXRlKHNwZWMpO1xuICBpZiAoZXJyb3JzLmxlbmd0aCAhPT0gMCkge1xuICAgIGZvciAoY29uc3QgZXJyb3Igb2YgZXJyb3JzKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGZvcm1hdEVycm9ySW5Db250ZXh0KGVycm9yKSk7XG4gICAgfVxuICAgIHByb2Nlc3MuZXhpdENvZGUgPSAxO1xuICB9XG59XG5cbmlmIChyZXF1aXJlLm1haW4gPT09IG1vZHVsZSkge1xuICBtYWluKHByb2Nlc3MuYXJndi5zbGljZSgyKSkuY2F0Y2goZSA9PiB7XG4gICAgcHJvY2Vzcy5leGl0Q29kZSA9IDE7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICBjb25zb2xlLmVycm9yKGUubWVzc2FnZSk7XG4gIH0pO1xufSJdfQ==
@@ -0,0 +1 @@
1
+ 109.0.0
@@ -0,0 +1,24 @@
1
+ /**
2
+ * All annotations imported from cfn-lint
3
+ */
4
+ export interface CfnLintFileSchema {
5
+ /**
6
+ * Resource types that are in this map are stateful
7
+ *
8
+ * There is more information in the structure this maps to.
9
+ */
10
+ readonly StatefulResources: {
11
+ readonly ResourceTypes: Record<string, CfnLintStatefulSchema>;
12
+ };
13
+ }
14
+ /**
15
+ * Extra information on stateful resource types
16
+ */
17
+ export interface CfnLintStatefulSchema {
18
+ /**
19
+ * Whether or not a Delete operation requires the resource to be empty
20
+ *
21
+ * @default false
22
+ */
23
+ readonly DeleteRequiresEmptyResource?: boolean;
24
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2ZuLWxpbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZm4tbGludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBbGwgYW5ub3RhdGlvbnMgaW1wb3J0ZWQgZnJvbSBjZm4tbGludFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENmbkxpbnRGaWxlU2NoZW1hIHtcbiAgLyoqXG4gICAqIFJlc291cmNlIHR5cGVzIHRoYXQgYXJlIGluIHRoaXMgbWFwIGFyZSBzdGF0ZWZ1bFxuICAgKlxuICAgKiBUaGVyZSBpcyBtb3JlIGluZm9ybWF0aW9uIGluIHRoZSBzdHJ1Y3R1cmUgdGhpcyBtYXBzIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgU3RhdGVmdWxSZXNvdXJjZXM6IHsgcmVhZG9ubHkgUmVzb3VyY2VUeXBlczogUmVjb3JkPHN0cmluZywgQ2ZuTGludFN0YXRlZnVsU2NoZW1hPiB9O1xufVxuXG4vKipcbiAqIEV4dHJhIGluZm9ybWF0aW9uIG9uIHN0YXRlZnVsIHJlc291cmNlIHR5cGVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2ZuTGludFN0YXRlZnVsU2NoZW1hIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IGEgRGVsZXRlIG9wZXJhdGlvbiByZXF1aXJlcyB0aGUgcmVzb3VyY2UgdG8gYmUgZW1wdHlcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IERlbGV0ZVJlcXVpcmVzRW1wdHlSZXNvdXJjZT86IGJvb2xlYW47XG59XG4iXX0=
@@ -0,0 +1,27 @@
1
+ {
2
+ "options": {
3
+ "classFile": "vpn",
4
+ "class": "VpnConnectionBase",
5
+ "interface": "IVpnConnection"
6
+ },
7
+ "metrics": {
8
+ "namespace": "AWS/VPN",
9
+ "dimensions": { "VpnId": "this.vpnId" },
10
+ "metrics": [
11
+ {
12
+ "name": "TunnelState",
13
+ "documentation": "The state of the tunnel. 0 indicates DOWN and 1 indicates UP."
14
+ },
15
+ {
16
+ "name": "TunnelDataIn",
17
+ "documentation": "The bytes received through the VPN tunnel.",
18
+ "type": "count"
19
+ },
20
+ {
21
+ "name": "TunnelDataOut",
22
+ "documentation": "The bytes sent through the VPN tunnel.",
23
+ "type": "count"
24
+ }
25
+ ]
26
+ }
27
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "metrics": {
3
+ "namespace": "AWS/Lambda",
4
+ "dimensions": { "FunctionName": "this.functionName" },
5
+ "metrics": [
6
+ {
7
+ "name": "Throttles",
8
+ "documentation": "How often this Lambda is throttled",
9
+ "type": "count"
10
+ },
11
+ {
12
+ "name": "Invocations",
13
+ "documentation": "How often this Lambda is invoked",
14
+ "type": "count"
15
+ },
16
+ {
17
+ "name": "Errors",
18
+ "documentation": "How many invocations of this Lambda fail",
19
+ "type": "count"
20
+ },
21
+ {
22
+ "name": "Duration",
23
+ "documentation": "How long execution of this Lambda takes"
24
+ }
25
+ ]
26
+ }
27
+ }