@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,404 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.annotateMatcher = exports.matcherFrom = exports.encodedJson = exports.Capture = exports.notMatching = exports.anything = exports.stringLike = exports.match = exports.failMatcher = exports.arrayWith = exports.exactValue = exports.deepObjectLike = exports.objectLike = void 0;
4
+ const have_resource_1 = require("./have-resource");
5
+ /**
6
+ * A matcher for an object that contains at least the given fields with the given matchers (or literals)
7
+ *
8
+ * Only does lenient matching one level deep, at the next level all objects must declare the
9
+ * exact expected keys again.
10
+ */
11
+ function objectLike(pattern) {
12
+ return _objectContaining(pattern, false);
13
+ }
14
+ exports.objectLike = objectLike;
15
+ /**
16
+ * A matcher for an object that contains at least the given fields with the given matchers (or literals)
17
+ *
18
+ * Switches to "deep" lenient matching. Nested objects also only need to contain declared keys.
19
+ */
20
+ function deepObjectLike(pattern) {
21
+ return _objectContaining(pattern, true);
22
+ }
23
+ exports.deepObjectLike = deepObjectLike;
24
+ function _objectContaining(pattern, deep) {
25
+ const anno = { [deep ? '$deepObjectLike' : '$objectLike']: pattern };
26
+ return annotateMatcher(anno, (value, inspection) => {
27
+ if (typeof value !== 'object' || !value) {
28
+ return failMatcher(inspection, `Expect an object but got '${typeof value}'`);
29
+ }
30
+ const errors = new Array();
31
+ for (const [patternKey, patternValue] of Object.entries(pattern)) {
32
+ if (patternValue === have_resource_1.ABSENT) {
33
+ if (value[patternKey] !== undefined) {
34
+ errors.push(`Field ${patternKey} present, but shouldn't be`);
35
+ }
36
+ continue;
37
+ }
38
+ if (!(patternKey in value)) {
39
+ errors.push(`Field ${patternKey} missing`);
40
+ continue;
41
+ }
42
+ // If we are doing DEEP objectLike, translate object literals in the pattern into
43
+ // more `deepObjectLike` matchers, even if they occur in lists.
44
+ const matchValue = deep ? deepMatcherFromObjectLiteral(patternValue) : patternValue;
45
+ const innerInspection = { ...inspection, failureReason: '' };
46
+ const valueMatches = match(value[patternKey], matchValue, innerInspection);
47
+ if (!valueMatches) {
48
+ errors.push(`Field ${patternKey} mismatch: ${innerInspection.failureReason}`);
49
+ }
50
+ }
51
+ /**
52
+ * Transform nested object literals into more deep object matchers, if applicable
53
+ *
54
+ * Object literals in lists are also transformed.
55
+ */
56
+ function deepMatcherFromObjectLiteral(nestedPattern) {
57
+ if (isObject(nestedPattern)) {
58
+ return deepObjectLike(nestedPattern);
59
+ }
60
+ if (Array.isArray(nestedPattern)) {
61
+ return nestedPattern.map(deepMatcherFromObjectLiteral);
62
+ }
63
+ return nestedPattern;
64
+ }
65
+ if (errors.length > 0) {
66
+ return failMatcher(inspection, errors.join(', '));
67
+ }
68
+ return true;
69
+ });
70
+ }
71
+ /**
72
+ * Match exactly the given value
73
+ *
74
+ * This is the default, you only need this to escape from the deep lenient matching
75
+ * of `deepObjectLike`.
76
+ */
77
+ function exactValue(expected) {
78
+ const anno = { $exactValue: expected };
79
+ return annotateMatcher(anno, (value, inspection) => {
80
+ return matchLiteral(value, expected, inspection);
81
+ });
82
+ }
83
+ exports.exactValue = exactValue;
84
+ /**
85
+ * A matcher for a list that contains all of the given elements in any order
86
+ */
87
+ function arrayWith(...elements) {
88
+ if (elements.length === 0) {
89
+ return anything();
90
+ }
91
+ const anno = { $arrayContaining: elements.length === 1 ? elements[0] : elements };
92
+ return annotateMatcher(anno, (value, inspection) => {
93
+ if (!Array.isArray(value)) {
94
+ return failMatcher(inspection, `Expect an array but got '${typeof value}'`);
95
+ }
96
+ for (const element of elements) {
97
+ const failure = longestFailure(value, element);
98
+ if (failure) {
99
+ return failMatcher(inspection, `Array did not contain expected element, closest match at index ${failure[0]}: ${failure[1]}`);
100
+ }
101
+ }
102
+ return true;
103
+ /**
104
+ * Return 'null' if the matcher matches anywhere in the array, otherwise the longest error and its index
105
+ */
106
+ function longestFailure(array, matcher) {
107
+ let fail = null;
108
+ for (let i = 0; i < array.length; i++) {
109
+ const innerInspection = { ...inspection, failureReason: '' };
110
+ if (match(array[i], matcher, innerInspection)) {
111
+ return null;
112
+ }
113
+ if (fail === null || innerInspection.failureReason.length > fail[1].length) {
114
+ fail = [i, innerInspection.failureReason];
115
+ }
116
+ }
117
+ return fail;
118
+ }
119
+ });
120
+ }
121
+ exports.arrayWith = arrayWith;
122
+ /**
123
+ * Whether a value is an object
124
+ */
125
+ function isObject(x) {
126
+ // Because `typeof null === 'object'`.
127
+ return x && typeof x === 'object';
128
+ }
129
+ /**
130
+ * Helper function to make matcher failure reporting a little easier
131
+ *
132
+ * Our protocol is weird (change a string on a passed-in object and return 'false'),
133
+ * but I don't want to change that right now.
134
+ */
135
+ function failMatcher(inspection, error) {
136
+ inspection.failureReason = error;
137
+ return false;
138
+ }
139
+ exports.failMatcher = failMatcher;
140
+ /**
141
+ * Match a given literal value against a matcher
142
+ *
143
+ * If the matcher is a callable, use that to evaluate the value. Otherwise, the values
144
+ * must be literally the same.
145
+ */
146
+ function match(value, matcher, inspection) {
147
+ if (isCallable(matcher)) {
148
+ // Custom matcher (this mostly looks very weird because our `InspectionFailure` signature is weird)
149
+ const innerInspection = { ...inspection, failureReason: '' };
150
+ const result = matcher(value, innerInspection);
151
+ if (typeof result !== 'boolean') {
152
+ return failMatcher(inspection, `Predicate returned non-boolean return value: ${result}`);
153
+ }
154
+ if (!result && !innerInspection.failureReason) {
155
+ // Custom matcher neglected to return an error
156
+ return failMatcher(inspection, 'Predicate returned false');
157
+ }
158
+ // Propagate inner error in case of failure
159
+ if (!result) {
160
+ inspection.failureReason = innerInspection.failureReason;
161
+ }
162
+ return result;
163
+ }
164
+ return matchLiteral(value, matcher, inspection);
165
+ }
166
+ exports.match = match;
167
+ /**
168
+ * Match a literal value at the top level.
169
+ *
170
+ * When recursing into arrays or objects, the nested values can be either matchers
171
+ * or literals.
172
+ */
173
+ function matchLiteral(value, pattern, inspection) {
174
+ if (pattern == null) {
175
+ return true;
176
+ }
177
+ const errors = new Array();
178
+ if (Array.isArray(value) !== Array.isArray(pattern)) {
179
+ return failMatcher(inspection, 'Array type mismatch');
180
+ }
181
+ if (Array.isArray(value)) {
182
+ if (pattern.length !== value.length) {
183
+ return failMatcher(inspection, 'Array length mismatch');
184
+ }
185
+ // Recurse comparison for individual objects
186
+ for (let i = 0; i < pattern.length; i++) {
187
+ if (!match(value[i], pattern[i], { ...inspection })) {
188
+ errors.push(`Array element ${i} mismatch`);
189
+ }
190
+ }
191
+ if (errors.length > 0) {
192
+ return failMatcher(inspection, errors.join(', '));
193
+ }
194
+ return true;
195
+ }
196
+ if ((typeof value === 'object') !== (typeof pattern === 'object')) {
197
+ return failMatcher(inspection, 'Object type mismatch');
198
+ }
199
+ if (typeof pattern === 'object') {
200
+ // Check that all fields in the pattern have the right value
201
+ const innerInspection = { ...inspection, failureReason: '' };
202
+ const matcher = objectLike(pattern)(value, innerInspection);
203
+ if (!matcher) {
204
+ inspection.failureReason = innerInspection.failureReason;
205
+ return false;
206
+ }
207
+ // Check no fields uncovered
208
+ const realFields = new Set(Object.keys(value));
209
+ for (const key of Object.keys(pattern)) {
210
+ realFields.delete(key);
211
+ }
212
+ if (realFields.size > 0) {
213
+ return failMatcher(inspection, `Unexpected keys present in object: ${Array.from(realFields).join(', ')}`);
214
+ }
215
+ return true;
216
+ }
217
+ if (value !== pattern) {
218
+ return failMatcher(inspection, 'Different values');
219
+ }
220
+ return true;
221
+ }
222
+ /**
223
+ * Whether a value is a callable
224
+ */
225
+ function isCallable(x) {
226
+ return x && {}.toString.call(x) === '[object Function]';
227
+ }
228
+ /**
229
+ * Do a glob-like pattern match (which only supports *s). Supports multiline strings.
230
+ */
231
+ function stringLike(pattern) {
232
+ // Replace * with .* in the string, escape the rest and brace with ^...$
233
+ const regex = new RegExp(`^${pattern.split('*').map(escapeRegex).join('.*')}$`, 'm');
234
+ return annotateMatcher({ $stringContaining: pattern }, (value, failure) => {
235
+ if (typeof value !== 'string') {
236
+ failure.failureReason = `Expected a string, but got '${typeof value}'`;
237
+ return false;
238
+ }
239
+ if (!regex.test(value)) {
240
+ failure.failureReason = 'String did not match pattern';
241
+ return false;
242
+ }
243
+ return true;
244
+ });
245
+ }
246
+ exports.stringLike = stringLike;
247
+ /**
248
+ * Matches any value
249
+ */
250
+ function anything() {
251
+ return annotateMatcher({ $anything: true }, () => true);
252
+ }
253
+ exports.anything = anything;
254
+ /**
255
+ * Negate an inner matcher
256
+ */
257
+ function notMatching(matcher) {
258
+ return annotateMatcher({ $notMatching: matcher }, (value, failure) => {
259
+ const result = matcherFrom(matcher)(value, failure);
260
+ if (result) {
261
+ failure.failureReason = 'Should not have matched, but did';
262
+ return false;
263
+ }
264
+ return true;
265
+ });
266
+ }
267
+ exports.notMatching = notMatching;
268
+ /**
269
+ * Captures a value onto an object if it matches a given inner matcher
270
+ *
271
+ * @example
272
+ *
273
+ * const someValue = Capture.aString();
274
+ * expect(stack).toHaveResource({
275
+ * // ...
276
+ * Value: someValue.capture(stringMatching('*a*')),
277
+ * });
278
+ * console.log(someValue.capturedValue);
279
+ */
280
+ class Capture {
281
+ constructor(typeValidator) {
282
+ this.typeValidator = typeValidator;
283
+ this._didCapture = false;
284
+ this._wasInvoked = false;
285
+ }
286
+ /**
287
+ * A Capture object that captures any type
288
+ */
289
+ static anyType() {
290
+ return new Capture();
291
+ }
292
+ /**
293
+ * A Capture object that captures a string type
294
+ */
295
+ static aString() {
296
+ return new Capture((x) => {
297
+ if (typeof x !== 'string') {
298
+ throw new Error(`Expected to capture a string, got '${x}'`);
299
+ }
300
+ return true;
301
+ });
302
+ }
303
+ /**
304
+ * A Capture object that captures a custom type
305
+ */
306
+ // eslint-disable-next-line @typescript-eslint/no-shadow
307
+ static a(validator) {
308
+ return new Capture(validator);
309
+ }
310
+ /**
311
+ * Capture the value if the inner matcher successfully matches it
312
+ *
313
+ * If no matcher is given, `anything()` is assumed.
314
+ *
315
+ * And exception will be thrown if the inner matcher returns `true` and
316
+ * the value turns out to be of a different type than the `Capture` object
317
+ * is expecting.
318
+ */
319
+ capture(matcher) {
320
+ if (matcher === undefined) {
321
+ matcher = anything();
322
+ }
323
+ return annotateMatcher({ $capture: matcher }, (value, failure) => {
324
+ this._wasInvoked = true;
325
+ const result = matcherFrom(matcher)(value, failure);
326
+ if (result) {
327
+ if (this.typeValidator && !this.typeValidator(value)) {
328
+ throw new Error(`Value not of the expected type: ${value}`);
329
+ }
330
+ this._didCapture = true;
331
+ this._value = value;
332
+ }
333
+ return result;
334
+ });
335
+ }
336
+ /**
337
+ * Whether a value was successfully captured
338
+ */
339
+ get didCapture() {
340
+ return this._didCapture;
341
+ }
342
+ /**
343
+ * Return the value that was captured
344
+ *
345
+ * Throws an exception if now value was captured
346
+ */
347
+ get capturedValue() {
348
+ // When this module is ported to jsii, the type parameter will obviously
349
+ // have to be dropped and this will have to turn into an `any`.
350
+ if (!this.didCapture) {
351
+ throw new Error(`Did not capture a value: ${this._wasInvoked ? 'inner matcher failed' : 'never invoked'}`);
352
+ }
353
+ return this._value;
354
+ }
355
+ }
356
+ exports.Capture = Capture;
357
+ /**
358
+ * Match on the innards of a JSON string, instead of the complete string
359
+ */
360
+ function encodedJson(matcher) {
361
+ return annotateMatcher({ $encodedJson: matcher }, (value, failure) => {
362
+ if (typeof value !== 'string') {
363
+ failure.failureReason = `Expected a string, but got '${typeof value}'`;
364
+ return false;
365
+ }
366
+ let decoded;
367
+ try {
368
+ decoded = JSON.parse(value);
369
+ }
370
+ catch (e) {
371
+ failure.failureReason = `String is not JSON: ${e}`;
372
+ return false;
373
+ }
374
+ return matcherFrom(matcher)(decoded, failure);
375
+ });
376
+ }
377
+ exports.encodedJson = encodedJson;
378
+ function escapeRegex(s) {
379
+ return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
380
+ }
381
+ /**
382
+ * Make a matcher out of the given argument if it's not a matcher already
383
+ *
384
+ * If it's not a matcher, it will be treated as a literal.
385
+ */
386
+ function matcherFrom(matcher) {
387
+ return isCallable(matcher) ? matcher : exactValue(matcher);
388
+ }
389
+ exports.matcherFrom = matcherFrom;
390
+ /**
391
+ * Annotate a matcher with toJSON
392
+ *
393
+ * We will JSON.stringify() values if we have a match failure, but for matchers this
394
+ * would show (in traditional JS fashion) something like '[function Function]', or more
395
+ * accurately nothing at all since functions cannot be JSONified.
396
+ *
397
+ * We override to JSON() in order to produce a readable version of the matcher.
398
+ */
399
+ function annotateMatcher(how, matcher) {
400
+ matcher.toJSON = () => how;
401
+ return matcher;
402
+ }
403
+ exports.annotateMatcher = annotateMatcher;
404
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGF2ZS1yZXNvdXJjZS1tYXRjaGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhhdmUtcmVzb3VyY2UtbWF0Y2hlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQTZFO0FBRTdFOzs7OztHQUtHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFtQixPQUFVO0lBQ3JELE9BQU8saUJBQWlCLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFGRCxnQ0FFQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixjQUFjLENBQW1CLE9BQVU7SUFDekQsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUZELHdDQUVDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBbUIsT0FBVSxFQUFFLElBQWE7SUFDcEUsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBRXJFLE9BQU8sZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQVUsRUFBRSxVQUE2QixFQUFXLEVBQUU7UUFDbEYsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDdkMsT0FBTyxXQUFXLENBQUMsVUFBVSxFQUFFLDZCQUE2QixPQUFPLEtBQUssR0FBRyxDQUFDLENBQUM7U0FDOUU7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBRW5DLEtBQUssTUFBTSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2hFLElBQUksWUFBWSxLQUFLLHNCQUFNLEVBQUU7Z0JBQzNCLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLFNBQVMsRUFBRTtvQkFBRSxNQUFNLENB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Q2Q7UUFFRCxPQUFPLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBakJELGtDQWlCQztBQUVELFNBQVMsV0FBVyxDQUFDLENBQVM7SUFDNUIsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsb0NBQW9DO0FBQ3ZGLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsV0FBVyxDQUFDLE9BQVk7SUFDdEMsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFGRCxrQ0FFQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IsZUFBZSxDQUFtQixHQUFNLEVBQUUsT0FBd0I7SUFDL0UsT0FBZSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUFDcEMsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUhELDBDQUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJTRU5ULCBJbnNwZWN0aW9uRmFpbHVyZSwgUHJvcGVydHlNYXRjaGVyIH0gZnJvbSAnLi9oYXZlLXJlc291cmNlJztcblxuLyoqXG4gKiBBIG1hdGNoZXIgZm9yIGFuIG9iamVjdCB0aGF0IGNvbnRhaW5zIGF0IGxlYXN0IHRoZSBnaXZlbiBmaWVsZHMgd2l0aCB0aGUgZ2l2ZW4gbWF0Y2hlcnMgKG9yIGxpdGVyYWxzKVxuICpcbiAqIE9ubHkgZG9lcyBsZW5pZW50IG1hdGNoaW5nIG9uZSBsZXZlbCBkZWVwLCBhdCB0aGUgbmV4dCBsZXZlbCBhbGwgb2JqZWN0cyBtdXN0IGRlY2xhcmUgdGhlXG4gKiBleGFjdCBleHBlY3RlZCBrZXlzIGFnYWluLlxuICovXG5leHBvcnQgZnVuY3Rpb24gb2JqZWN0TGlrZTxBIGV4dGVuZHMgb2JqZWN0PihwYXR0ZXJuOiBBKTogUHJvcGVydHlNYXRjaGVyIHtcbiAgcmV0dXJuIF9vYmplY3RDb250YWluaW5nKHBhdHRlcm4sIGZhbHNlKTtcbn1cblxuLyoqXG4gKiBBIG1hdGNoZXIgZm9yIGFuIG9iamVjdCB0aGF0IGNvbnRhaW5zIGF0IGxlYXN0IHRoZSBnaXZlbiBmaWVsZHMgd2l0aCB0aGUgZ2l2ZW4gbWF0Y2hlcnMgKG9yIGxpdGVyYWxzKVxuICpcbiAqIFN3aXRjaGVzIHRvIFwiZGVlcFwiIGxlbmllbnQgbWF0Y2hpbmcuIE5lc3RlZCBvYmplY3RzIGFsc28gb25seSBuZWVkIHRvIGNvbnRhaW4gZGVjbGFyZWQga2V5cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBPYmplY3RMaWtlPEEgZXh0ZW5kcyBvYmplY3Q+KHBhdHRlcm46IEEpOiBQcm9wZXJ0eU1hdGNoZXIge1xuICByZXR1cm4gX29iamVjdENvbnRhaW5pbmcocGF0dGVybiwgdHJ1ZSk7XG59XG5cbmZ1bmN0aW9uIF9vYmplY3RDb250YWluaW5nPEEgZXh0ZW5kcyBvYmplY3Q+KHBhdHRlcm46IEEsIGRlZXA6IGJvb2xlYW4pOiBQcm9wZXJ0eU1hdGNoZXIge1xuICBjb25zdCBhbm5vID0geyBbZGVlcCA/ICckZGVlcE9iamVjdExpa2UnIDogJyRvYmplY3RMaWtlJ106IHBhdHRlcm4gfTtcblxuICByZXR1cm4gYW5ub3RhdGVNYXRjaGVyKGFubm8sICh2YWx1ZTogYW55LCBpbnNwZWN0aW9uOiBJbnNwZWN0aW9uRmFpbHVyZSk6IGJvb2xlYW4gPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnIHx8ICF2YWx1ZSkge1xuICAgICAgcmV0dXJuIGZhaWxNYXRjaGVyKGluc3BlY3Rpb24sIGBFeHBlY3QgYW4gb2JqZWN0IGJ1dCBnb3QgJyR7dHlwZW9mIHZhbHVlfSdgKTtcbiAgICB9XG5cbiAgICBjb25zdCBlcnJvcnMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gICAgZm9yIChjb25zdCBbcGF0dGVybktleSwgcGF0dGVyblZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhwYXR0ZXJuKSkge1xuICAgICAgaWYgKHBhdHRlcm5WYWx1ZSA9PT0gQUJTRU5UKSB7XG4gICAgICAgIGlmICh2YWx1ZVtwYXR0ZXJuS2V5XSAhPT0gdW5kZWZpbmVkKSB7IGVycm9ycy5wdXNoKGBGaWVsZCAke3BhdHRlcm5LZXl9IHByZXNlbnQsIGJ1dCBzaG91bGRuJ3QgYmVgKTsgfVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCEocGF0dGVybktleSBpbiB2YWx1ZSkpIHtcbiAgICAgICAgZXJyb3JzLnB1c2goYEZpZWxkICR7cGF0dGVybktleX0gbWlzc2luZ2ApO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgLy8gSWYgd2UgYXJlIGRvaW5nIERFRVAgb2JqZWN0TGlrZSwgdHJhbnNsYXRlIG9iamVjdCBsaXRlcmFscyBpbiB0aGUgcGF0dGVybiBpbnRvXG4gICAgICAvLyBtb3JlIGBkZWVwT2JqZWN0TGlrZWAgbWF0Y2hlcnMsIGV2ZW4gaWYgdGhleSBvY2N1ciBpbiBsaXN0cy5cbiAgICAgIGNvbnN0IG1hdGNoVmFsdWUgPSBkZWVwID8gZGVlcE1hdGNoZXJGcm9tT2JqZWN0TGl0ZXJhbChwYXR0ZXJuVmFsdWUpIDogcGF0dGVyblZhbHVlO1xuXG4gICAgICBjb25zdCBpbm5lckluc3BlY3Rpb24gPSB7IC4uLmluc3BlY3Rpb24sIGZhaWx1cmVSZWFzb246ICcnIH07XG4gICAgICBjb25zdCB2YWx1ZU1hdGNoZXMgPSBtYXRjaCh2YWx1ZVtwYXR0ZXJuS2V5XSwgbWF0Y2hWYWx1ZSwgaW5uZXJJbnNwZWN0aW9uKTtcbiAgICAgIGlmICghdmFsdWVNYXRjaGVzKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKGBGaWVsZCAke3BhdHRlcm5LZXl9IG1pc21hdGNoOiAke2lubmVySW5zcGVjdGlvbi5mYWlsdXJlUmVhc29ufWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyYW5zZm9ybSBuZXN0ZWQgb2JqZWN0IGxpdGVyYWxzIGludG8gbW9yZSBkZWVwIG9iamVjdCBtYXRjaGVycywgaWYgYXBwbGljYWJsZVxuICAgICAqXG4gICAgICogT2JqZWN0IGxpdGVyYWxzIGluIGxpc3RzIGFyZSBhbHNvIHRyYW5zZm9ybWVkLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRlZXBNYXRjaGVyRnJvbU9iamVjdExpdGVyYWwobmVzdGVkUGF0dGVybjogYW55KTogYW55IHtcbiAgICAgIGlmIChpc09iamVjdChuZXN0ZWRQYXR0ZXJuKSkge1xuICAgICAgICByZXR1cm4gZGVlcE9iamVjdExpa2UobmVzdGVkUGF0dGVybik7XG4gICAgICB9XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShuZXN0ZWRQYXR0ZXJuKSkge1xuICAgICAgICByZXR1cm4gbmVzdGVkUGF0dGVybi5tYXAoZGVlcE1hdGNoZXJGcm9tT2JqZWN0TGl0ZXJhbCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmVzdGVkUGF0dGVybjtcbiAgICB9XG5cbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBmYWlsTWF0Y2hlcihpbnNwZWN0aW9uLCBlcnJvcnMuam9pbignLCAnKSk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9KTtcbn1cblxuLyoqXG4gKiBNYXRjaCBleGFjdGx5IHRoZSBnaXZlbiB2YWx1ZVxuICpcbiAqIFRoaXMgaXMgdGhlIGRlZmF1bHQsIHlvdSBvbmx5IG5lZWQgdGhpcyB0byBlc2NhcGUgZnJvbSB0aGUgZGVlcCBsZW5pZW50IG1hdGNoaW5nXG4gKiBvZiBgZGVlcE9iamVjdExpa2VgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhhY3RWYWx1ZShleHBlY3RlZDogYW55KTogUHJvcGVydHlNYXRjaGVyIHtcbiAgY29uc3QgYW5ubyA9IHsgJGV4YWN0VmFsdWU6IGV4cGVjdGVkIH07XG4gIHJldHVybiBhbm5vdGF0ZU1hdGNoZXIoYW5ubywgKHZhbHVlOiBhbnksIGluc3BlY3Rpb246IEluc3BlY3Rpb25GYWlsdXJlKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIG1hdGNoTGl0ZXJhbCh2YWx1ZSwgZXhwZWN0ZWQsIGluc3BlY3Rpb24pO1xuICB9KTtcbn1cblxuLyoqXG4gKiBBIG1hdGNoZXIgZm9yIGEgbGlzdCB0aGF0IGNvbnRhaW5zIGFsbCBvZiB0aGUgZ2l2ZW4gZWxlbWVudHMgaW4gYW55IG9yZGVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcnJheVdpdGgoLi4uZWxlbWVudHM6IGFueVtdKTogUHJvcGVydHlNYXRjaGVyIHtcbiAgaWYgKGVsZW1lbnRzLmxlbmd0aCA9PT0gMCkgeyByZXR1cm4gYW55dGhpbmcoKTsgfVxuXG4gIGNvbnN0IGFubm8gPSB7ICRhcnJheUNvbnRhaW5pbmc6IGVsZW1lbnRzLmxlbmd0aCA9PT0gMSA/IGVsZW1lbnRzWzBdIDogZWxlbWVudHMgfTtcbiAgcmV0dXJuIGFubm90YXRlTWF0Y2hlcihhbm5vLCAodmFsdWU6IGFueSwgaW5zcGVjdGlvbjogSW5zcGVjdGlvbkZhaWx1cmUpOiBib29sZWFuID0+IHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gZmFpbE1hdGNoZXIoaW5zcGVjdGlvbiwgYEV4cGVjdCBhbiBhcnJheSBidXQgZ290ICcke3R5cGVvZiB2YWx1ZX0nYCk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBlbGVtZW50IG9mIGVsZW1lbnRzKSB7XG4gICAgICBjb25zdCBmYWlsdXJlID0gbG9uZ2VzdEZhaWx1cmUodmFsdWUsIGVsZW1lbnQpO1xuICAgICAgaWYgKGZhaWx1cmUpIHtcbiAgICAgICAgcmV0dXJuIGZhaWxNYXRjaGVyKGluc3BlY3Rpb24sIGBBcnJheSBkaWQgbm90IGNvbnRhaW4gZXhwZWN0ZWQgZWxlbWVudCwgY2xvc2VzdCBtYXRjaCBhdCBpbmRleCAke2ZhaWx1cmVbMF19OiAke2ZhaWx1cmVbMV19YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gJ251bGwnIGlmIHRoZSBtYXRjaGVyIG1hdGNoZXMgYW55d2hlcmUgaW4gdGhlIGFycmF5LCBvdGhlcndpc2UgdGhlIGxvbmdlc3QgZXJyb3IgYW5kIGl0cyBpbmRleFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxvbmdlc3RGYWlsdXJlKGFycmF5OiBhbnlbXSwgbWF0Y2hlcjogYW55KTogW251bWJlciwgc3RyaW5nXSB8IG51bGwge1xuICAgICAgbGV0IGZhaWw6IFtudW1iZXIsIHN0cmluZ10gfCBudWxsID0gbnVsbDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgaW5uZXJJbnNwZWN0aW9uID0geyAuLi5pbnNwZWN0aW9uLCBmYWlsdXJlUmVhc29uOiAnJyB9O1xuICAgICAgICBpZiAobWF0Y2goYXJyYXlbaV0sIG1hdGNoZXIsIGlubmVySW5zcGVjdGlvbikpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmYWlsID09PSBudWxsIHx8IGlubmVySW5zcGVjdGlvbi5mYWlsdXJlUmVhc29uLmxlbmd0aCA+IGZhaWxbMV0ubGVuZ3RoKSB7XG4gICAgICAgICAgZmFpbCA9IFtpLCBpbm5lckluc3BlY3Rpb24uZmFpbHVyZVJlYXNvbl07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWlsO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogV2hldGhlciBhIHZhbHVlIGlzIGFuIG9iamVjdFxuICovXG5mdW5jdGlvbiBpc09iamVjdCh4OiBhbnkpOiB4IGlzIG9iamVjdCB7XG4gIC8vIEJlY2F1c2UgYHR5cGVvZiBudWxsID09PSAnb2JqZWN0J2AuXG4gIHJldHVybiB4ICYmIHR5cGVvZiB4ID09PSAnb2JqZWN0Jztcbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gbWFrZSBtYXRjaGVyIGZhaWx1cmUgcmVwb3J0aW5nIGEgbGl0dGxlIGVhc2llclxuICpcbiAqIE91ciBwcm90b2NvbCBpcyB3ZWlyZCAoY2hhbmdlIGEgc3RyaW5nIG9uIGEgcGFzc2VkLWluIG9iamVjdCBhbmQgcmV0dXJuICdmYWxzZScpLFxuICogYnV0IEkgZG9uJ3Qgd2FudCB0byBjaGFuZ2UgdGhhdCByaWdodCBub3cuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmYWlsTWF0Y2hlcihpbnNwZWN0aW9uOiBJbnNwZWN0aW9uRmFpbHVyZSwgZXJyb3I6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpbnNwZWN0aW9uLmZhaWx1cmVSZWFzb24gPSBlcnJvcjtcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIE1hdGNoIGEgZ2l2ZW4gbGl0ZXJhbCB2YWx1ZSBhZ2FpbnN0IGEgbWF0Y2hlclxuICpcbiAqIElmIHRoZSBtYXRjaGVyIGlzIGEgY2FsbGFibGUsIHVzZSB0aGF0IHRvIGV2YWx1YXRlIHRoZSB2YWx1ZS4gT3RoZXJ3aXNlLCB0aGUgdmFsdWVzXG4gKiBtdXN0IGJlIGxpdGVyYWxseSB0aGUgc2FtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoKHZhbHVlOiBhbnksIG1hdGNoZXI6IGFueSwgaW5zcGVjdGlvbjogSW5zcGVjdGlvbkZhaWx1cmUpIHtcbiAgaWYgKGlzQ2FsbGFibGUobWF0Y2hlcikpIHtcbiAgICAvLyBDdXN0b20gbWF0Y2hlciAodGhpcyBtb3N0bHkgbG9va3MgdmVyeSB3ZWlyZCBiZWNhdXNlIG91ciBgSW5zcGVjdGlvbkZhaWx1cmVgIHNpZ25hdHVyZSBpcyB3ZWlyZClcbiAgICBjb25zdCBpbm5lckluc3BlY3Rpb246IEluc3BlY3Rpb25GYWlsdXJlID0geyAuLi5pbnNwZWN0aW9uLCBmYWlsdXJlUmVhc29uOiAnJyB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IG1hdGNoZXIodmFsdWUsIGlubmVySW5zcGVjdGlvbik7XG4gICAgaWYgKHR5cGVvZiByZXN1bHQgIT09ICdib29sZWFuJykge1xuICAgICAgcmV0dXJuIGZhaWxNYXRjaGVyKGluc3BlY3Rpb24sIGBQcmVkaWNhdGUgcmV0dXJuZWQgbm9uLWJvb2xlYW4gcmV0dXJuIHZhbHVlOiAke3Jlc3VsdH1gKTtcbiAgICB9XG4gICAgaWYgKCFyZXN1bHQgJiYgIWlubmVySW5zcGVjdGlvbi5mYWlsdXJlUmVhc29uKSB7XG4gICAgICAvLyBDdXN0b20gbWF0Y2hlciBuZWdsZWN0ZWQgdG8gcmV0dXJuIGFuIGVycm9yXG4gICAgICByZXR1cm4gZmFpbE1hdGNoZXIoaW5zcGVjdGlvbiwgJ1ByZWRpY2F0ZSByZXR1cm5lZCBmYWxzZScpO1xuICAgIH1cbiAgICAvLyBQcm9wYWdhdGUgaW5uZXIgZXJyb3IgaW4gY2FzZSBvZiBmYWlsdXJlXG4gICAgaWYgKCFyZXN1bHQpIHsgaW5zcGVjdGlvbi5mYWlsdXJlUmVhc29uID0gaW5uZXJJbnNwZWN0aW9uLmZhaWx1cmVSZWFzb247IH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcmV0dXJuIG1hdGNoTGl0ZXJhbCh2YWx1ZSwgbWF0Y2hlciwgaW5zcGVjdGlvbik7XG59XG5cbi8qKlxuICogTWF0Y2ggYSBsaXRlcmFsIHZhbHVlIGF0IHRoZSB0b3AgbGV2ZWwuXG4gKlxuICogV2hlbiByZWN1cnNpbmcgaW50byBhcnJheXMgb3Igb2JqZWN0cywgdGhlIG5lc3RlZCB2YWx1ZXMgY2FuIGJlIGVpdGhlciBtYXRjaGVyc1xuICogb3IgbGl0ZXJhbHMuXG4gKi9cbmZ1bmN0aW9uIG1hdGNoTGl0ZXJhbCh2YWx1ZTogYW55LCBwYXR0ZXJuOiBhbnksIGluc3BlY3Rpb246IEluc3BlY3Rpb25GYWlsdXJlKSB7XG4gIGlmIChwYXR0ZXJuID09IG51bGwpIHsgcmV0dXJuIHRydWU7IH1cblxuICBjb25zdCBlcnJvcnMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAhPT0gQXJyYXkuaXNBcnJheShwYXR0ZXJuKSkge1xuICAgIHJldHVybiBmYWlsTWF0Y2hlcihpbnNwZWN0aW9uLCAnQXJyYXkgdHlwZSBtaXNtYXRjaCcpO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIGlmIChwYXR0ZXJuLmxlbmd0aCAhPT0gdmFsdWUubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZmFpbE1hdGNoZXIoaW5zcGVjdGlvbiwgJ0FycmF5IGxlbmd0aCBtaXNtYXRjaCcpO1xuICAgIH1cblxuICAgIC8vIFJlY3Vyc2UgY29tcGFyaXNvbiBmb3IgaW5kaXZpZHVhbCBvYmplY3RzXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXR0ZXJuLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoIW1hdGNoKHZhbHVlW2ldLCBwYXR0ZXJuW2ldLCB7IC4uLmluc3BlY3Rpb24gfSkpIHtcbiAgICAgICAgZXJyb3JzLnB1c2goYEFycmF5IGVsZW1lbnQgJHtpfSBtaXNtYXRjaGApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGZhaWxNYXRjaGVyKGluc3BlY3Rpb24sIGVycm9ycy5qb2luKCcsICcpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgaWYgKCh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSAhPT0gKHR5cGVvZiBwYXR0ZXJuID09PSAnb2JqZWN0JykpIHtcbiAgICByZXR1cm4gZmFpbE1hdGNoZXIoaW5zcGVjdGlvbiwgJ09iamVjdCB0eXBlIG1pc21hdGNoJyk7XG4gIH1cbiAgaWYgKHR5cGVvZiBwYXR0ZXJuID09PSAnb2JqZWN0Jykge1xuICAgIC8vIENoZWNrIHRoYXQgYWxsIGZpZWxkcyBpbiB0aGUgcGF0dGVybiBoYXZlIHRoZSByaWdodCB2YWx1ZVxuICAgIGNvbnN0IGlubmVySW5zcGVjdGlvbiA9IHsgLi4uaW5zcGVjdGlvbiwgZmFpbHVyZVJlYXNvbjogJycgfTtcbiAgICBjb25zdCBtYXRjaGVyID0gb2JqZWN0TGlrZShwYXR0ZXJuKSh2YWx1ZSwgaW5uZXJJbnNwZWN0aW9uKTtcbiAgICBpZiAoIW1hdGNoZXIpIHtcbiAgICAgIGluc3BlY3Rpb24uZmFpbHVyZVJlYXNvbiA9IGlubmVySW5zcGVjdGlvbi5mYWlsdXJlUmVhc29uO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIENoZWNrIG5vIGZpZWxkcyB1bmNvdmVyZWRcbiAgICBjb25zdCByZWFsRmllbGRzID0gbmV3IFNldChPYmplY3Qua2V5cyh2YWx1ZSkpO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHBhdHRlcm4pKSB7IHJlYWxGaWVsZHMuZGVsZXRlKGtleSk7IH1cbiAgICBpZiAocmVhbEZpZWxkcy5zaXplID4gMCkge1xuICAgICAgcmV0dXJuIGZhaWxNYXRjaGVyKGluc3BlY3Rpb24sIGBVbmV4cGVjdGVkIGtleXMgcHJlc2VudCBpbiBvYmplY3Q6ICR7QXJyYXkuZnJvbShyZWFsRmllbGRzKS5qb2luKCcsICcpfWApO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICh2YWx1ZSAhPT0gcGF0dGVybikge1xuICAgIHJldHVybiBmYWlsTWF0Y2hlcihpbnNwZWN0aW9uLCAnRGlmZmVyZW50IHZhbHVlcycpO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKlxuICogV2hldGhlciBhIHZhbHVlIGlzIGEgY2FsbGFibGVcbiAqL1xuZnVuY3Rpb24gaXNDYWxsYWJsZSh4OiBhbnkpOiB4IGlzICgoLi4uYXJnczogYW55W10pID0+IGFueSkge1xuICByZXR1cm4geCAmJiB7fS50b1N0cmluZy5jYWxsKHgpID09PSAnW29iamVjdCBGdW5jdGlvbl0nO1xufVxuXG4vKipcbiAqIERvIGEgZ2xvYi1saWtlIHBhdHRlcm4gbWF0Y2ggKHdoaWNoIG9ubHkgc3VwcG9ydHMgKnMpLiBTdXBwb3J0cyBtdWx0aWxpbmUgc3RyaW5ncy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ0xpa2UocGF0dGVybjogc3RyaW5nKTogUHJvcGVydHlNYXRjaGVyIHtcbiAgLy8gUmVwbGFjZSAqIHdpdGggLiogaW4gdGhlIHN0cmluZywgZXNjYXBlIHRoZSByZXN0IGFuZCBicmFjZSB3aXRoIF4uLi4kXG4gIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7cGF0dGVybi5zcGxpdCgnKicpLm1hcChlc2NhcGVSZWdleCkuam9pbignLionKX0kYCwgJ20nKTtcblxuICByZXR1cm4gYW5ub3RhdGVNYXRjaGVyKHsgJHN0cmluZ0NvbnRhaW5pbmc6IHBhdHRlcm4gfSwgKHZhbHVlOiBhbnksIGZhaWx1cmU6IEluc3BlY3Rpb25GYWlsdXJlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIGZhaWx1cmUuZmFpbHVyZVJlYXNvbiA9IGBFeHBlY3RlZCBhIHN0cmluZywgYnV0IGdvdCAnJHt0eXBlb2YgdmFsdWV9J2A7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKCFyZWdleC50ZXN0KHZhbHVlKSkge1xuICAgICAgZmFpbHVyZS5mYWlsdXJlUmVhc29uID0gJ1N0cmluZyBkaWQgbm90IG1hdGNoIHBhdHRlcm4nO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9KTtcbn1cblxuLyoqXG4gKiBNYXRjaGVzIGFueSB2YWx1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gYW55dGhpbmcoKTogUHJvcGVydHlNYXRjaGVyIHtcbiAgcmV0dXJuIGFubm90YXRlTWF0Y2hlcih7ICRhbnl0aGluZzogdHJ1ZSB9LCAoKSA9PiB0cnVlKTtcbn1cblxuLyoqXG4gKiBOZWdhdGUgYW4gaW5uZXIgbWF0Y2hlclxuICovXG5leHBvcnQgZnVuY3Rpb24gbm90TWF0Y2hpbmcobWF0Y2hlcjogYW55KTogUHJvcGVydHlNYXRjaGVyIHtcbiAgcmV0dXJuIGFubm90YXRlTWF0Y2hlcih7ICRub3RNYXRjaGluZzogbWF0Y2hlciB9LCAodmFsdWU6IGFueSwgZmFpbHVyZTogSW5zcGVjdGlvbkZhaWx1cmUpID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBtYXRjaGVyRnJvbShtYXRjaGVyKSh2YWx1ZSwgZmFpbHVyZSk7XG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgZmFpbHVyZS5mYWlsdXJlUmVhc29uID0gJ1Nob3VsZCBub3QgaGF2ZSBtYXRjaGVkLCBidXQgZGlkJztcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH0pO1xufVxuXG5leHBvcnQgdHlwZSBUeXBlVmFsaWRhdG9yPFQ+ID0gKHg6IGFueSkgPT4geCBpcyBUO1xuXG4vKipcbiAqIENhcHR1cmVzIGEgdmFsdWUgb250byBhbiBvYmplY3QgaWYgaXQgbWF0Y2hlcyBhIGdpdmVuIGlubmVyIG1hdGNoZXJcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGNvbnN0IHNvbWVWYWx1ZSA9IENhcHR1cmUuYVN0cmluZygpO1xuICogZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZSh7XG4gKiAgICAvLyAuLi5cbiAqICAgIFZhbHVlOiBzb21lVmFsdWUuY2FwdHVyZShzdHJpbmdNYXRjaGluZygnKmEqJykpLFxuICogfSk7XG4gKiBjb25zb2xlLmxvZyhzb21lVmFsdWUuY2FwdHVyZWRWYWx1ZSk7XG4gKi9cbmV4cG9ydCBjbGFzcyBDYXB0dXJlPFQ9YW55PiB7XG4gIC8qKlxuICAgKiBBIENhcHR1cmUgb2JqZWN0IHRoYXQgY2FwdHVyZXMgYW55IHR5cGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYW55VHlwZSgpOiBDYXB0dXJlPGFueT4ge1xuICAgIHJldHVybiBuZXcgQ2FwdHVyZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgQ2FwdHVyZSBvYmplY3QgdGhhdCBjYXB0dXJlcyBhIHN0cmluZyB0eXBlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFTdHJpbmcoKTogQ2FwdHVyZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IENhcHR1cmUoKHg6IGFueSk6IHggaXMgc3RyaW5nID0+IHtcbiAgICAgIGlmICh0eXBlb2YgeCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCB0byBjYXB0dXJlIGEgc3RyaW5nLCBnb3QgJyR7eH0nYCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIENhcHR1cmUgb2JqZWN0IHRoYXQgY2FwdHVyZXMgYSBjdXN0b20gdHlwZVxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1zaGFkb3dcbiAgcHVibGljIHN0YXRpYyBhPFQ+KHZhbGlkYXRvcjogVHlwZVZhbGlkYXRvcjxUPik6IENhcHR1cmU8VD4ge1xuICAgIHJldHVybiBuZXcgQ2FwdHVyZSh2YWxpZGF0b3IpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmFsdWU/OiBUO1xuICBwcml2YXRlIF9kaWRDYXB0dXJlID0gZmFsc2U7XG4gIHByaXZhdGUgX3dhc0ludm9rZWQgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0eXBlVmFsaWRhdG9yPzogVHlwZVZhbGlkYXRvcjxUPikge1xuICB9XG5cbiAgLyoqXG4gICAqIENhcHR1cmUgdGhlIHZhbHVlIGlmIHRoZSBpbm5lciBtYXRjaGVyIHN1Y2Nlc3NmdWxseSBtYXRjaGVzIGl0XG4gICAqXG4gICAqIElmIG5vIG1hdGNoZXIgaXMgZ2l2ZW4sIGBhbnl0aGluZygpYCBpcyBhc3N1bWVkLlxuICAgKlxuICAgKiBBbmQgZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duIGlmIHRoZSBpbm5lciBtYXRjaGVyIHJldHVybnMgYHRydWVgIGFuZFxuICAgKiB0aGUgdmFsdWUgdHVybnMgb3V0IHRvIGJlIG9mIGEgZGlmZmVyZW50IHR5cGUgdGhhbiB0aGUgYENhcHR1cmVgIG9iamVjdFxuICAgKiBpcyBleHBlY3RpbmcuXG4gICAqL1xuICBwdWJsaWMgY2FwdHVyZShtYXRjaGVyPzogYW55KTogUHJvcGVydHlNYXRjaGVyIHtcbiAgICBpZiAobWF0Y2hlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBtYXRjaGVyID0gYW55dGhpbmcoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYW5ub3RhdGVNYXRjaGVyKHsgJGNhcHR1cmU6IG1hdGNoZXIgfSwgKHZhbHVlOiBhbnksIGZhaWx1cmU6IEluc3BlY3Rpb25GYWlsdXJlKSA9PiB7XG4gICAgICB0aGlzLl93YXNJbnZva2VkID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IG1hdGNoZXJGcm9tKG1hdGNoZXIpKHZhbHVlLCBmYWlsdXJlKTtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgaWYgKHRoaXMudHlwZVZhbGlkYXRvciAmJiAhdGhpcy50eXBlVmFsaWRhdG9yKHZhbHVlKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVmFsdWUgbm90IG9mIHRoZSBleHBlY3RlZCB0eXBlOiAke3ZhbHVlfWApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2RpZENhcHR1cmUgPSB0cnVlO1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGEgdmFsdWUgd2FzIHN1Y2Nlc3NmdWxseSBjYXB0dXJlZFxuICAgKi9cbiAgcHVibGljIGdldCBkaWRDYXB0dXJlKCkge1xuICAgIHJldHVybiB0aGlzLl9kaWRDYXB0dXJlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgdmFsdWUgdGhhdCB3YXMgY2FwdHVyZWRcbiAgICpcbiAgICogVGhyb3dzIGFuIGV4Y2VwdGlvbiBpZiBub3cgdmFsdWUgd2FzIGNhcHR1cmVkXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNhcHR1cmVkVmFsdWUoKTogVCB7XG4gICAgLy8gV2hlbiB0aGlzIG1vZHVsZSBpcyBwb3J0ZWQgdG8ganNpaSwgdGhlIHR5cGUgcGFyYW1ldGVyIHdpbGwgb2J2aW91c2x5XG4gICAgLy8gaGF2ZSB0byBiZSBkcm9wcGVkIGFuZCB0aGlzIHdpbGwgaGF2ZSB0byB0dXJuIGludG8gYW4gYGFueWAuXG4gICAgaWYgKCF0aGlzLmRpZENhcHR1cmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRGlkIG5vdCBjYXB0dXJlIGEgdmFsdWU6ICR7dGhpcy5fd2FzSW52b2tlZCA/ICdpbm5lciBtYXRjaGVyIGZhaWxlZCcgOiAnbmV2ZXIgaW52b2tlZCd9YCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl92YWx1ZSE7XG4gIH1cbn1cblxuLyoqXG4gKiBNYXRjaCBvbiB0aGUgaW5uYXJkcyBvZiBhIEpTT04gc3RyaW5nLCBpbnN0ZWFkIG9mIHRoZSBjb21wbGV0ZSBzdHJpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZWRKc29uKG1hdGNoZXI6IGFueSk6IFByb3BlcnR5TWF0Y2hlciB7XG4gIHJldHVybiBhbm5vdGF0ZU1hdGNoZXIoeyAkZW5jb2RlZEpzb246IG1hdGNoZXIgfSwgKHZhbHVlOiBhbnksIGZhaWx1cmU6IEluc3BlY3Rpb25GYWlsdXJlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIGZhaWx1cmUuZmFpbHVyZVJlYXNvbiA9IGBFeHBlY3RlZCBhIHN0cmluZywgYnV0IGdvdCAnJHt0eXBlb2YgdmFsdWV9J2A7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgbGV0IGRlY29kZWQ7XG4gICAgdHJ5IHtcbiAgICAgIGRlY29kZWQgPSBKU09OLnBhcnNlKHZhbHVlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBmYWlsdXJlLmZhaWx1cmVSZWFzb24gPSBgU3RyaW5nIGlzIG5vdCBKU09OOiAke2V9YDtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWF0Y2hlckZyb20obWF0Y2hlcikoZGVjb2RlZCwgZmFpbHVyZSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVSZWdleChzOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHMucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csICdcXFxcJCYnKTsgLy8gJCYgbWVhbnMgdGhlIHdob2xlIG1hdGNoZWQgc3RyaW5nXG59XG5cbi8qKlxuICogTWFrZSBhIG1hdGNoZXIgb3V0IG9mIHRoZSBnaXZlbiBhcmd1bWVudCBpZiBpdCdzIG5vdCBhIG1hdGNoZXIgYWxyZWFkeVxuICpcbiAqIElmIGl0J3Mgbm90IGEgbWF0Y2hlciwgaXQgd2lsbCBiZSB0cmVhdGVkIGFzIGEgbGl0ZXJhbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoZXJGcm9tKG1hdGNoZXI6IGFueSk6IFByb3BlcnR5TWF0Y2hlciB7XG4gIHJldHVybiBpc0NhbGxhYmxlKG1hdGNoZXIpID8gbWF0Y2hlciA6IGV4YWN0VmFsdWUobWF0Y2hlcik7XG59XG5cbi8qKlxuICogQW5ub3RhdGUgYSBtYXRjaGVyIHdpdGggdG9KU09OXG4gKlxuICogV2Ugd2lsbCBKU09OLnN0cmluZ2lmeSgpIHZhbHVlcyBpZiB3ZSBoYXZlIGEgbWF0Y2ggZmFpbHVyZSwgYnV0IGZvciBtYXRjaGVycyB0aGlzXG4gKiB3b3VsZCBzaG93IChpbiB0cmFkaXRpb25hbCBKUyBmYXNoaW9uKSBzb21ldGhpbmcgbGlrZSAnW2Z1bmN0aW9uIEZ1bmN0aW9uXScsIG9yIG1vcmVcbiAqIGFjY3VyYXRlbHkgbm90aGluZyBhdCBhbGwgc2luY2UgZnVuY3Rpb25zIGNhbm5vdCBiZSBKU09OaWZpZWQuXG4gKlxuICogV2Ugb3ZlcnJpZGUgdG8gSlNPTigpIGluIG9yZGVyIHRvIHByb2R1Y2UgYSByZWFkYWJsZSB2ZXJzaW9uIG9mIHRoZSBtYXRjaGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYW5ub3RhdGVNYXRjaGVyPEEgZXh0ZW5kcyBvYmplY3Q+KGhvdzogQSwgbWF0Y2hlcjogUHJvcGVydHlNYXRjaGVyKTogUHJvcGVydHlNYXRjaGVyIHtcbiAgKG1hdGNoZXIgYXMgYW55KS50b0pTT04gPSAoKSA9PiBob3c7XG4gIHJldHVybiBtYXRjaGVyO1xufVxuIl19
@@ -0,0 +1,69 @@
1
+ import { Assertion, JestFriendlyAssertion } from '../assertion';
2
+ import { StackInspector } from '../inspector';
3
+ /**
4
+ * Magic value to signify that a certain key should be absent from the property bag.
5
+ *
6
+ * The property is either not present or set to `undefined.
7
+ *
8
+ * NOTE: `ABSENT` only works with the `haveResource()` and `haveResourceLike()`
9
+ * assertions.
10
+ */
11
+ export declare const ABSENT = "{{ABSENT}}";
12
+ /**
13
+ * An assertion to check whether a resource of a given type and with the given properties exists, disregarding properties
14
+ *
15
+ * @param resourceType the type of the resource that is expected to be present.
16
+ * @param properties the properties that the resource is expected to have. A function may be provided, in which case
17
+ * it will be called with the properties of candidate resources and an ``InspectionFailure``
18
+ * instance on which errors should be appended, and should return a truthy value to denote a match.
19
+ * @param comparison the entity that is being asserted against.
20
+ * @param allowValueExtension if properties is an object, tells whether values must match exactly, or if they are
21
+ * allowed to be supersets of the reference values. Meaningless if properties is a function.
22
+ */
23
+ export declare function haveResource(resourceType: string, properties?: any, comparison?: ResourcePart, allowValueExtension?: boolean): Assertion<StackInspector>;
24
+ /**
25
+ * Sugar for calling ``haveResource`` with ``allowValueExtension`` set to ``true``.
26
+ */
27
+ export declare function haveResourceLike(resourceType: string, properties?: any, comparison?: ResourcePart): Assertion<StackInspector>;
28
+ export declare type PropertyMatcher = (props: any, inspection: InspectionFailure) => boolean;
29
+ export declare class HaveResourceAssertion extends JestFriendlyAssertion<StackInspector> {
30
+ private readonly resourceType;
31
+ private readonly inspected;
32
+ private readonly part;
33
+ private readonly matcher;
34
+ constructor(resourceType: string, properties?: any, part?: ResourcePart, allowValueExtension?: boolean);
35
+ assertUsing(inspector: StackInspector): boolean;
36
+ generateErrorMessage(): string;
37
+ assertOrThrow(inspector: StackInspector): void;
38
+ get description(): string;
39
+ }
40
+ export interface InspectionFailure {
41
+ resource: any;
42
+ failureReason: string;
43
+ }
44
+ /**
45
+ * What part of the resource to compare
46
+ */
47
+ export declare enum ResourcePart {
48
+ /**
49
+ * Only compare the resource's properties
50
+ */
51
+ Properties = 0,
52
+ /**
53
+ * Check the entire CloudFormation config
54
+ *
55
+ * (including UpdateConfig, DependsOn, etc.)
56
+ */
57
+ CompleteDefinition = 1
58
+ }
59
+ /**
60
+ * Return whether `superObj` is a super-object of `obj`.
61
+ *
62
+ * A super-object has the same or more property values, recursing into sub properties if ``allowValueExtension`` is true.
63
+ *
64
+ * At any point in the object, a value may be replaced with a function which will be used to check that particular field.
65
+ * The type of a matcher function is expected to be of type PropertyMatcher.
66
+ *
67
+ * @deprecated - Use `objectLike` or a literal object instead.
68
+ */
69
+ export declare function isSuperObject(superObj: any, pattern: any, errors?: string[], allowValueExtension?: boolean): boolean;