@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,248 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const util = require("util");
4
+ const fs = require("fs-extra");
5
+ /* eslint-disable @typescript-eslint/no-require-imports */
6
+ const jsonDiff = require('json-diff').diff;
7
+ /* eslint-enable */
8
+ function line(fmt = '', ...param) {
9
+ process.stdout.write(util.format(fmt, ...param));
10
+ process.stdout.write('\n');
11
+ }
12
+ async function main() {
13
+ const title = process.argv[2];
14
+ const oldSpecFile = process.argv[3];
15
+ const newSpecFile = process.argv[4];
16
+ const newSpec = await fs.readJSON(newSpecFile);
17
+ const oldSpec = await fs.readJSON(oldSpecFile);
18
+ // Diff operates on PropertyTypes & ResourceTypes
19
+ // Ensure they always exist in the old spec
20
+ if (!oldSpec.PropertyTypes) {
21
+ oldSpec.PropertyTypes = {};
22
+ }
23
+ if (!oldSpec.ResourceTypes) {
24
+ oldSpec.ResourceTypes = {};
25
+ }
26
+ const out = jsonDiff(oldSpec, newSpec);
27
+ // Here's the magic output format of this thing
28
+ // If a key ends in __added, it got added, and the value
29
+ // is the new value.
30
+ // If a key ends in __deleted, it got deleted, and the value
31
+ // is the old value.
32
+ // If a value got changed, the value object will look like:
33
+ // { __old: ..., __new: ... }
34
+ if (!out) {
35
+ return; // no diff
36
+ }
37
+ const resourceTypeAdditions = new Set();
38
+ const resourceTypeDeletions = new Set();
39
+ const attributeChanges = new Array();
40
+ const propertyChanges = new Array();
41
+ const propertyTypeChanges = new Array();
42
+ for (const key of Object.keys(out.ResourceTypes || {})) {
43
+ classifyResourceTypeUpdate(key, out.ResourceTypes[key]);
44
+ }
45
+ for (const key of Object.keys(out.PropertyTypes || {})) {
46
+ classifyPropertyTypeUpdate(key, out.PropertyTypes[key]);
47
+ }
48
+ line(`# ${title} v${newSpec.ResourceSpecificationVersion}`);
49
+ line();
50
+ line('## New Resource Types');
51
+ line();
52
+ resourceTypeAdditions.forEach(type => line(`* ${type}`));
53
+ line();
54
+ if (resourceTypeDeletions.size > 0) {
55
+ line('## Removed Resource Types');
56
+ line();
57
+ resourceTypeDeletions.forEach(type => line(`* ${type}`));
58
+ line();
59
+ }
60
+ line('## Attribute Changes');
61
+ line();
62
+ attributeChanges.forEach(x => line(x));
63
+ line();
64
+ line('## Property Changes');
65
+ line();
66
+ propertyChanges.forEach(x => line(x));
67
+ line();
68
+ line('## Property Type Changes');
69
+ line();
70
+ propertyTypeChanges.forEach(x => line(x));
71
+ function classifyResourceTypeUpdate(resourceType, update) {
72
+ const added = isAdded(resourceType);
73
+ if (added) {
74
+ resourceTypeAdditions.add(added);
75
+ return;
76
+ }
77
+ const deleted = isDeleted(resourceType);
78
+ if (deleted) {
79
+ resourceTypeDeletions.add(deleted);
80
+ return;
81
+ }
82
+ pushDownCompleteChanges(update);
83
+ for (const key of Object.keys(update)) {
84
+ switch (key) {
85
+ case 'Properties':
86
+ for (const prop of Object.keys(update.Properties)) {
87
+ describeChanges(resourceType, prop, update.Properties[prop]).forEach(change => {
88
+ propertyChanges.push(change);
89
+ });
90
+ }
91
+ break;
92
+ case 'Attributes':
93
+ for (const attr of Object.keys(update.Attributes)) {
94
+ describeChanges(resourceType, attr, update.Attributes[attr]).forEach(change => {
95
+ attributeChanges.push(change);
96
+ });
97
+ }
98
+ break;
99
+ case 'Documentation':
100
+ describeChanges(resourceType, key, update.Documentation).forEach(change => {
101
+ attributeChanges.push(change);
102
+ });
103
+ break;
104
+ default:
105
+ throw new Error(`Unexpected update to ${resourceType}: ${key}`);
106
+ }
107
+ }
108
+ }
109
+ function classifyPropertyTypeUpdate(propertyType, update) {
110
+ const added = isAdded(propertyType);
111
+ if (added) {
112
+ const resourceType = added.split('.')[0];
113
+ if (resourceTypeAdditions.has(resourceType)) {
114
+ return; // skipping property for added resource types
115
+ }
116
+ propertyTypeChanges.push(`* ${added} (__added__)`);
117
+ return;
118
+ }
119
+ const deleted = isDeleted(propertyType);
120
+ if (deleted) {
121
+ const resourceType = deleted.split('.')[0];
122
+ if (resourceTypeDeletions.has(resourceType)) {
123
+ return; // skipping property for added resource types
124
+ }
125
+ propertyTypeChanges.push(`* ${deleted} (__removed__)`);
126
+ return;
127
+ }
128
+ if (Object.keys(update).length !== 1 && Object.keys(update)[0] === 'Properties') {
129
+ throw new Error('Unexpected update to a resource type. Expecting only "Properties" to change: ' + propertyType);
130
+ }
131
+ for (const prop of Object.keys(update.Properties ?? {})) {
132
+ describeChanges(propertyType, prop, update.Properties[prop]).forEach(change => {
133
+ propertyTypeChanges.push(change);
134
+ });
135
+ }
136
+ }
137
+ /**
138
+ * Push down mass changes to attributes or properties to the individual properties.
139
+ *
140
+ * An example will explain this best. JSON-diff will make the smallest diff, so if there
141
+ * are new properties it will report:
142
+ *
143
+ * "Properties__added": {
144
+ * "Property1": { ... },
145
+ * "Property2": { ... },
146
+ * }
147
+ *
148
+ * But we want to see this as:
149
+ *
150
+ * "Properties": {
151
+ * "Property1__added": { ... },
152
+ * "Property2__added": { ... },
153
+ * }
154
+ *
155
+ * Same (but in reverse) for deletions.
156
+ */
157
+ function pushDownCompleteChanges(update) {
158
+ for (const [category, entries] of Object.entries(update)) {
159
+ const addedKey = isAdded(category);
160
+ if (addedKey) {
161
+ delete update[category];
162
+ update[addedKey] = suffixKeys('__added', entries);
163
+ }
164
+ const deletedKey = isDeleted(category);
165
+ if (deletedKey) {
166
+ delete update[category];
167
+ update[deletedKey] = suffixKeys('__deleted', entries);
168
+ }
169
+ }
170
+ }
171
+ function isDeleted(key) {
172
+ return isSuffix(key, '__deleted');
173
+ }
174
+ function isAdded(key) {
175
+ return isSuffix(key, '__added');
176
+ }
177
+ function isSuffix(key, suffix) {
178
+ const index = key.indexOf(suffix);
179
+ return index === -1 ? undefined : key.slice(0, index);
180
+ }
181
+ function suffixKeys(suffix, xs) {
182
+ const ret = {};
183
+ for (const [key, value] of Object.entries(xs)) {
184
+ ret[key + suffix] = value;
185
+ }
186
+ return ret;
187
+ }
188
+ function describeChanges(namespace, prefix, update) {
189
+ const changes = new Array();
190
+ const added = isAdded(prefix);
191
+ if (added) {
192
+ changes.push(`* ${namespace} ${added} (__added__)`);
193
+ return changes;
194
+ }
195
+ const deleted = isDeleted(prefix);
196
+ if (deleted) {
197
+ changes.push(`* ${namespace} ${deleted} (__deleted__)`);
198
+ return changes;
199
+ }
200
+ if (typeof (update) !== 'object') {
201
+ throw new Error(`Unexpected change for ${namespace}.${prefix} ${JSON.stringify(update)}`);
202
+ }
203
+ if ('__old' in update && '__new' in update) {
204
+ changes.push(`* ${namespace} ${prefix} (__changed__)`);
205
+ changes.push(` * Old: ${update.__old}`);
206
+ changes.push(` * New: ${update.__new}`);
207
+ return changes;
208
+ }
209
+ if (Array.isArray(update)) {
210
+ changes.push(`* ${namespace} ${prefix} (__changed__)`);
211
+ for (const entry of update) {
212
+ if (entry.length === 1 && entry[0] === ' ') {
213
+ // This means that this element of the array is unchanged
214
+ continue;
215
+ }
216
+ if (entry.length !== 2) {
217
+ throw new Error(`Unexpected array diff entry: ${JSON.stringify(entry)}`);
218
+ }
219
+ switch (entry[0]) {
220
+ case '+':
221
+ changes.push(` * Added ${entry[1]}`);
222
+ break;
223
+ case '-':
224
+ throw new Error(`Something awkward happened: ${entry[1]} was deleted from ${namespace} ${prefix}!`);
225
+ case ' ':
226
+ // This entry is "context"
227
+ break;
228
+ default:
229
+ throw new Error(`Unexpected array diff entry: ${JSON.stringify(entry)}`);
230
+ }
231
+ }
232
+ }
233
+ else {
234
+ for (const key of Object.keys(update)) {
235
+ for (const change of describeChanges(namespace, `${prefix}.${key}`, update[key])) {
236
+ changes.push(change);
237
+ }
238
+ }
239
+ }
240
+ return changes;
241
+ }
242
+ }
243
+ main().catch(e => {
244
+ process.stderr.write(e.stack);
245
+ process.stderr.write('\n');
246
+ process.exit(1);
247
+ });
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlYy1kaWZmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3BlYy1kaWZmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQiwwREFBMEQ7QUFDMUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMzQyxtQkFBbUI7QUFFbkIsU0FBUyxJQUFJLENBQUMsTUFBYyxFQUFFLEVBQUUsR0FBRyxLQUFZO0lBQzdDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNqRCxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFcEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUvQyxpREFBaUQ7SUFDakQsMkNBQTJDO0lBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO1FBQzFCLE9BQU8sQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO0tBQzVCO0lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUU7UUFDMUIsT0FBTyxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7S0FDNUI7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O29CQUNSLEtBQUssR0FBRzt3QkFDTixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixLQUFLLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixTQUFTLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztvQkFDdEcsS0FBSyxHQUFHO3dCQUNOLDBCQUEwQjt3QkFDMUIsTUFBTTtvQkFDUjt3QkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDNUU7YUFDRjtTQUNGO2FBQU07WUFDTCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3JDLEtBQUssTUFBTSxNQUFNLElBQUksZUFBZSxDQUFDLFNBQVMsRUFBRSxHQUFHLE1BQU0sSUFBSSxHQUFHLEVBQUUsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtvQkFDaEYsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDdEI7YUFDRjtTQUNGO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztBQUNILENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDZixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHMgKi9cbmNvbnN0IGpzb25EaWZmID0gcmVxdWlyZSgnanNvbi1kaWZmJykuZGlmZjtcbi8qIGVzbGludC1lbmFibGUgKi9cblxuZnVuY3Rpb24gbGluZShmbXQ6IHN0cmluZyA9ICcnLCAuLi5wYXJhbTogYW55W10pIHtcbiAgcHJvY2Vzcy5zdGRvdXQud3JpdGUodXRpbC5mb3JtYXQoZm10LCAuLi5wYXJhbSkpO1xuICBwcm9jZXNzLnN0ZG91dC53cml0ZSgnXFxuJyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gIGNvbnN0IHRpdGxlID0gcHJvY2Vzcy5hcmd2WzJdO1xuICBjb25zdCBvbGRTcGVjRmlsZSA9IHByb2Nlc3MuYXJndlszXTtcbiAgY29uc3QgbmV3U3BlY0ZpbGUgPSBwcm9jZXNzLmFyZ3ZbNF07XG5cbiAgY29uc3QgbmV3U3BlYyA9IGF3YWl0IGZzLnJlYWRKU09OKG5ld1NwZWNGaWxlKTtcbiAgY29uc3Qgb2xkU3BlYyA9IGF3YWl0IGZzLnJlYWRKU09OKG9sZFNwZWNGaWxlKTtcblxuICAvLyBEaWZmIG9wZXJhdGVzIG9uIFByb3BlcnR5VHlwZXMgJiBSZXNvdXJjZVR5cGVzXG4gIC8vIEVuc3VyZSB0aGV5IGFsd2F5cyBleGlzdCBpbiB0aGUgb2xkIHNwZWNcbiAgaWYgKCFvbGRTcGVjLlByb3BlcnR5VHlwZXMpIHtcbiAgICBvbGRTcGVjLlByb3BlcnR5VHlwZXMgPSB7fTtcbiAgfVxuICBpZiAoIW9sZFNwZWMuUmVzb3VyY2VUeXBlcykge1xuICAgIG9sZFNwZWMuUmVzb3VyY2VUeXBlcyA9IHt9O1xuICB9XG5cbiAgY29uc3Qgb3V0ID0ganNvbkRpZmYob2xkU3BlYywgbmV3U3BlYyk7XG5cbiAgLy8gSGVyZSdzIHRoZSBtYWdpYyBvdXRwdXQgZm9ybWF0IG9mIHRoaXMgdGhpbmdcbiAgLy8gSWYgYSBrZXkgZW5kcyBpbiBfX2FkZGVkLCBpdCBnb3QgYWRkZWQsIGFuZCB0aGUgdmFsdWVcbiAgLy8gICBpcyB0aGUgbmV3IHZhbHVlLlxuICAvLyBJZiBhIGtleSBlbmRzIGluIF9fZGVsZXRlZCwgaXQgZ290IGRlbGV0ZWQsIGFuZCB0aGUgdmFsdWVcbiAgLy8gICBpcyB0aGUgb2xkIHZhbHVlLlxuICAvLyBJZiBhIHZhbHVlIGdvdCBjaGFuZ2VkLCB0aGUgdmFsdWUgb2JqZWN0IHdpbGwgbG9vayBsaWtlOlxuICAvLyAgIHsgX19vbGQ6IC4uLiwgX19uZXc6IC4uLiB9XG5cbiAgaWYgKCFvdXQpIHtcbiAgICByZXR1cm47IC8vIG5vIGRpZmZcbiAgfVxuXG4gIGNvbnN0IHJlc291cmNlVHlwZUFkZGl0aW9ucyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBjb25zdCByZXNvdXJjZVR5cGVEZWxldGlvbnMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgY29uc3QgYXR0cmlidXRlQ2hhbmdlcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIGNvbnN0IHByb3BlcnR5Q2hhbmdlcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIGNvbnN0IHByb3BlcnR5VHlwZUNoYW5nZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG91dC5SZXNvdXJjZVR5cGVzIHx8IHt9KSkge1xuICAgIGNsYXNzaWZ5UmVzb3VyY2VUeXBlVXBkYXRlKGtleSwgb3V0LlJlc291cmNlVHlwZXNba2V5XSk7XG4gIH1cblxuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhvdXQuUHJvcGVydHlUeXBlcyB8fCB7fSkpIHtcbiAgICBjbGFzc2lmeVByb3BlcnR5VHlwZVVwZGF0ZShrZXksIG91dC5Qcm9wZXJ0eVR5cGVzW2tleV0pO1xuICB9XG5cbiAgbGluZShgIyAke3RpdGxlfSB2JHtuZXdTcGVjLlJlc291cmNlU3BlY2lmaWNhdGlvblZlcnNpb259YCk7XG4gIGxpbmUoKTtcblxuICBsaW5lKCcjIyBOZXcgUmVzb3VyY2UgVHlwZXMnKTtcbiAgbGluZSgpO1xuICByZXNvdXJjZVR5cGVBZGRpdGlvbnMuZm9yRWFjaCh0eXBlID0+IGxpbmUoYCogJHt0eXBlfWApKTtcbiAgbGluZSgpO1xuXG4gIGlmIChyZXNvdXJjZVR5cGVEZWxldGlvbnMuc2l6ZSA+IDApIHtcbiAgICBsaW5lKCcjIyBSZW1vdmVkIFJlc291cmNlIFR5cGVzJyk7XG4gICAgbGluZSgpO1xuICAgIHJlc291cmNlVHlwZURlbGV0aW9ucy5mb3JFYWNoKHR5cGUgPT4gbGluZShgKiAke3R5cGV9YCkpO1xuICAgIGxpbmUoKTtcbiAgfVxuXG4gIGxpbmUoJyMjIEF0dHJpYnV0ZSBDaGFuZ2VzJyk7XG4gIGxpbmUoKTtcbiAgYXR0cmlidXRlQ2hhbmdlcy5mb3JFYWNoKHggPT4gbGluZSh4KSk7XG4gIGxpbmUoKTtcblxuICBsaW5lKCcjIyBQcm9wZXJ0eSBDaGFuZ2VzJyk7XG4gIGxpbmUoKTtcbiAgcHJvcGVydHlDaGFuZ2VzLmZvckVhY2goeCA9PiBsaW5lKHgpKTtcbiAgbGluZSgpO1xuXG4gIGxpbmUoJyMjIFByb3BlcnR5IFR5cGUgQ2hhbmdlcycpO1xuICBsaW5lKCk7XG4gIHByb3BlcnR5VHlwZUNoYW5nZXMuZm9yRWFjaCh4ID0+IGxpbmUoeCkpO1xuXG4gIGZ1bmN0aW9uIGNsYXNzaWZ5UmVzb3VyY2VUeXBlVXBkYXRlKHJlc291cmNlVHlwZTogc3RyaW5nLCB1cGRhdGU6IGFueSkge1xuICAgIGNvbnN0IGFkZGVkID0gaXNBZGRlZChyZXNvdXJjZVR5cGUpO1xuICAgIGlmIChhZGRlZCkge1xuICAgICAgcmVzb3VyY2VUeXBlQWRkaXRpb25zLmFkZChhZGRlZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVsZXRlZCA9IGlzRGVsZXRlZChyZXNvdXJjZVR5cGUpO1xuICAgIGlmIChkZWxldGVkKSB7XG4gICAgICByZXNvdXJjZVR5cGVEZWxldGlvbnMuYWRkKGRlbGV0ZWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHB1c2hEb3duQ29tcGxldGVDaGFuZ2VzKHVwZGF0ZSk7XG5cbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh1cGRhdGUpKSB7XG4gICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICBjYXNlICdQcm9wZXJ0aWVzJzpcbiAgICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2YgT2JqZWN0LmtleXModXBkYXRlLlByb3BlcnRpZXMpKSB7XG4gICAgICAgICAgICBkZXNjcmliZUNoYW5nZXMocmVzb3VyY2VUeXBlLCBwcm9wLCB1cGRhdGUuUHJvcGVydGllc1twcm9wXSkuZm9yRWFjaChjaGFuZ2UgPT4ge1xuICAgICAgICAgICAgICBwcm9wZXJ0eUNoYW5nZXMucHVzaChjaGFuZ2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdBdHRyaWJ1dGVzJzpcbiAgICAgICAgICBmb3IgKGNvbnN0IGF0dHIgb2YgT2JqZWN0LmtleXModXBkYXRlLkF0dHJpYnV0ZXMpKSB7XG4gICAgICAgICAgICBkZXNjcmliZUNoYW5nZXMocmVzb3VyY2VUeXBlLCBhdHRyLCB1cGRhdGUuQXR0cmlidXRlc1thdHRyXSkuZm9yRWFjaChjaGFuZ2UgPT4ge1xuICAgICAgICAgICAgICBhdHRyaWJ1dGVDaGFuZ2VzLnB1c2goY2hhbmdlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnRG9jdW1lbnRhdGlvbic6XG4gICAgICAgICAgZGVzY3JpYmVDaGFuZ2VzKHJlc291cmNlVHlwZSwga2V5LCB1cGRhdGUuRG9jdW1lbnRhdGlvbikuZm9yRWFjaChjaGFuZ2UgPT4ge1xuICAgICAgICAgICAgYXR0cmlidXRlQ2hhbmdlcy5wdXNoKGNoYW5nZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHVwZGF0ZSB0byAke3Jlc291cmNlVHlwZX06ICR7a2V5fWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGNsYXNzaWZ5UHJvcGVydHlUeXBlVXBkYXRlKHByb3BlcnR5VHlwZTogc3RyaW5nLCB1cGRhdGU6IGFueSkge1xuICAgIGNvbnN0IGFkZGVkID0gaXNBZGRlZChwcm9wZXJ0eVR5cGUpO1xuICAgIGlmIChhZGRlZCkge1xuICAgICAgY29uc3QgcmVzb3VyY2VUeXBlID0gYWRkZWQuc3BsaXQoJy4nKVswXTtcbiAgICAgIGlmIChyZXNvdXJjZVR5cGVBZGRpdGlvbnMuaGFzKHJlc291cmNlVHlwZSkpIHtcbiAgICAgICAgcmV0dXJuOyAvLyBza2lwcGluZyBwcm9wZXJ0eSBmb3IgYWRkZWQgcmVzb3VyY2UgdHlwZXNcbiAgICAgIH1cblxuICAgICAgcHJvcGVydHlUeXBlQ2hhbmdlcy5wdXNoKGAqICR7YWRkZWR9IChfX2FkZGVkX18pYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVsZXRlZCA9IGlzRGVsZXRlZChwcm9wZXJ0eVR5cGUpO1xuICAgIGlmIChkZWxldGVkKSB7XG4gICAgICBjb25zdCByZXNvdXJjZVR5cGUgPSBkZWxldGVkLnNwbGl0KCcuJylbMF07XG4gICAgICBpZiAocmVzb3VyY2VUeXBlRGVsZXRpb25zLmhhcyhyZXNvdXJjZVR5cGUpKSB7XG4gICAgICAgIHJldHVybjsgLy8gc2tpcHBpbmcgcHJvcGVydHkgZm9yIGFkZGVkIHJlc291cmNlIHR5cGVzXG4gICAgICB9XG5cbiAgICAgIHByb3BlcnR5VHlwZUNoYW5nZXMucHVzaChgKiAke2RlbGV0ZWR9IChfX3JlbW92ZWRfXylgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoT2JqZWN0LmtleXModXBkYXRlKS5sZW5ndGggIT09IDEgJiYgT2JqZWN0LmtleXModXBkYXRlKVswXSA9PT0gJ1Byb3BlcnRpZXMnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuZXhwZWN0ZWQgdXBkYXRlIHRvIGEgcmVzb3VyY2UgdHlwZS4gRXhwZWN0aW5nIG9ubHkgXCJQcm9wZXJ0aWVzXCIgdG8gY2hhbmdlOiAnICsgcHJvcGVydHlUeXBlKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgT2JqZWN0LmtleXModXBkYXRlLlByb3BlcnRpZXMgPz8ge30pKSB7XG4gICAgICBkZXNjcmliZUNoYW5nZXMocHJvcGVydHlUeXBlLCBwcm9wLCB1cGRhdGUuUHJvcGVydGllc1twcm9wXSkuZm9yRWFjaChjaGFuZ2UgPT4ge1xuICAgICAgICBwcm9wZXJ0eVR5cGVDaGFuZ2VzLnB1c2goY2hhbmdlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQdXNoIGRvd24gbWFzcyBjaGFuZ2VzIHRvIGF0dHJpYnV0ZXMgb3IgcHJvcGVydGllcyB0byB0aGUgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBBbiBleGFtcGxlIHdpbGwgZXhwbGFpbiB0aGlzIGJlc3QuIEpTT04tZGlmZiB3aWxsIG1ha2UgdGhlIHNtYWxsZXN0IGRpZmYsIHNvIGlmIHRoZXJlXG4gICAqIGFyZSBuZXcgcHJvcGVydGllcyBpdCB3aWxsIHJlcG9ydDpcbiAgICpcbiAgICogXCJQcm9wZXJ0aWVzX19hZGRlZFwiOiB7XG4gICAqICAgIFwiUHJvcGVydHkxXCI6IHsgLi4uIH0sXG4gICAqICAgIFwiUHJvcGVydHkyXCI6IHsgLi4uIH0sXG4gICAqIH1cbiAgICpcbiAgICogQnV0IHdlIHdhbnQgdG8gc2VlIHRoaXMgYXM6XG4gICAqXG4gICAqIFwiUHJvcGVydGllc1wiOiB7XG4gICAqICAgIFwiUHJvcGVydHkxX19hZGRlZFwiOiB7IC4uLiB9LFxuICAgKiAgICBcIlByb3BlcnR5Ml9fYWRkZWRcIjogeyAuLi4gfSxcbiAgICogfVxuICAgKlxuICAgKiBTYW1lIChidXQgaW4gcmV2ZXJzZSkgZm9yIGRlbGV0aW9ucy5cbiAgICovXG4gIGZ1bmN0aW9uIHB1c2hEb3duQ29tcGxldGVDaGFuZ2VzKHVwZGF0ZTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYW55Pj4pIHtcbiAgICBmb3IgKGNvbnN0IFtjYXRlZ29yeSwgZW50cmllc10gb2YgT2JqZWN0LmVudHJpZXModXBkYXRlKSkge1xuICAgICAgY29uc3QgYWRkZWRLZXkgPSBpc0FkZGVkKGNhdGVnb3J5KTtcbiAgICAgIGlmIChhZGRlZEtleSkge1xuICAgICAgICBkZWxldGUgdXBkYXRlW2NhdGVnb3J5XTtcbiAgICAgICAgdXBkYXRlW2FkZGVkS2V5XSA9IHN1ZmZpeEtleXMoJ19fYWRkZWQnLCBlbnRyaWVzKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGVsZXRlZEtleSA9IGlzRGVsZXRlZChjYXRlZ29yeSk7XG4gICAgICBpZiAoZGVsZXRlZEtleSkge1xuICAgICAgICBkZWxldGUgdXBkYXRlW2NhdGVnb3J5XTtcbiAgICAgICAgdXBkYXRlW2RlbGV0ZWRLZXldID0gc3VmZml4S2V5cygnX19kZWxldGVkJywgZW50cmllcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaXNEZWxldGVkKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGlzU3VmZml4KGtleSwgJ19fZGVsZXRlZCcpO1xuICB9XG5cbiAgZnVuY3Rpb24gaXNBZGRlZChrZXk6IHN0cmluZykge1xuICAgIHJldHVybiBpc1N1ZmZpeChrZXksICdfX2FkZGVkJyk7XG4gIH1cblxuICBmdW5jdGlvbiBpc1N1ZmZpeChrZXk6IHN0cmluZywgc3VmZml4OiBzdHJpbmcpIHtcbiAgICBjb25zdCBpbmRleCA9IGtleS5pbmRleE9mKHN1ZmZpeCk7XG4gICAgcmV0dXJuIGluZGV4ID09PSAtMSA/IHVuZGVmaW5lZCA6IGtleS5zbGljZSgwLCBpbmRleCk7XG4gIH1cblxuICBmdW5jdGlvbiBzdWZmaXhLZXlzKHN1ZmZpeDogc3RyaW5nLCB4czogUmVjb3JkPHN0cmluZywgYW55Pik6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIGNvbnN0IHJldDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHhzKSkge1xuICAgICAgcmV0W2tleSArIHN1ZmZpeF0gPSB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRlc2NyaWJlQ2hhbmdlcyhuYW1lc3BhY2U6IHN0cmluZywgcHJlZml4OiBzdHJpbmcsIHVwZGF0ZTogYW55KSB7XG4gICAgY29uc3QgY2hhbmdlcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG5cbiAgICBjb25zdCBhZGRlZCA9IGlzQWRkZWQocHJlZml4KTtcbiAgICBpZiAoYWRkZWQpIHtcbiAgICAgIGNoYW5nZXMucHVzaChgKiAke25hbWVzcGFjZX0gJHthZGRlZH0gKF9fYWRkZWRfXylgKTtcbiAgICAgIHJldHVybiBjaGFuZ2VzO1xuICAgIH1cblxuICAgIGNvbnN0IGRlbGV0ZWQgPSBpc0RlbGV0ZWQocHJlZml4KTtcbiAgICBpZiAoZGVsZXRlZCkge1xuICAgICAgY2hhbmdlcy5wdXNoKGAqICR7bmFtZXNwYWNlfSAke2RlbGV0ZWR9IChfX2RlbGV0ZWRfXylgKTtcbiAgICAgIHJldHVybiBjaGFuZ2VzO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YodXBkYXRlKSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBjaGFuZ2UgZm9yICR7bmFtZXNwYWNlfS4ke3ByZWZpeH0gJHtKU09OLnN0cmluZ2lmeSh1cGRhdGUpfWApO1xuICAgIH1cblxuICAgIGlmICgnX19vbGQnIGluIHVwZGF0ZSAmJiAnX19uZXcnIGluIHVwZGF0ZSkge1xuICAgICAgY2hhbmdlcy5wdXNoKGAqICR7bmFtZXNwYWNlfSAke3ByZWZpeH0gKF9fY2hhbmdlZF9fKWApO1xuICAgICAgY2hhbmdlcy5wdXNoKGAgICogT2xkOiAke3VwZGF0ZS5fX29sZH1gKTtcbiAgICAgIGNoYW5nZXMucHVzaChgICAqIE5ldzogJHt1cGRhdGUuX19uZXd9YCk7XG4gICAgICByZXR1cm4gY2hhbmdlcztcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh1cGRhdGUpKSB7XG4gICAgICBjaGFuZ2VzLnB1c2goYCogJHtuYW1lc3BhY2V9ICR7cHJlZml4fSAoX19jaGFuZ2VkX18pYCk7XG4gICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIHVwZGF0ZSkge1xuICAgICAgICBpZiAoZW50cnkubGVuZ3RoID09PSAxICYmIGVudHJ5WzBdID09PSAnICcpIHtcbiAgICAgICAgICAvLyBUaGlzIG1lYW5zIHRoYXQgdGhpcyBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyB1bmNoYW5nZWRcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW50cnkubGVuZ3RoICE9PSAyKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGFycmF5IGRpZmYgZW50cnk6ICR7SlNPTi5zdHJpbmdpZnkoZW50cnkpfWApO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAoZW50cnlbMF0pIHtcbiAgICAgICAgICBjYXNlICcrJzpcbiAgICAgICAgICAgIGNoYW5nZXMucHVzaChgICAqIEFkZGVkICR7ZW50cnlbMV19YCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICctJzpcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgU29tZXRoaW5nIGF3a3dhcmQgaGFwcGVuZWQ6ICR7ZW50cnlbMV19IHdhcyBkZWxldGVkIGZyb20gJHtuYW1lc3BhY2V9ICR7cHJlZml4fSFgKTtcbiAgICAgICAgICBjYXNlICcgJzpcbiAgICAgICAgICAgIC8vIFRoaXMgZW50cnkgaXMgXCJjb250ZXh0XCJcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgYXJyYXkgZGlmZiBlbnRyeTogJHtKU09OLnN0cmluZ2lmeShlbnRyeSl9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModXBkYXRlKSkge1xuICAgICAgICBmb3IgKGNvbnN0IGNoYW5nZSBvZiBkZXNjcmliZUNoYW5nZXMobmFtZXNwYWNlLCBgJHtwcmVmaXh9LiR7a2V5fWAsIHVwZGF0ZVtrZXldKSkge1xuICAgICAgICAgIGNoYW5nZXMucHVzaChjaGFuZ2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cbn1cblxubWFpbigpLmNhdGNoKGUgPT4ge1xuICBwcm9jZXNzLnN0ZGVyci53cml0ZShlLnN0YWNrKTtcbiAgcHJvY2Vzcy5zdGRlcnIud3JpdGUoJ1xcbicpO1xuICBwcm9jZXNzLmV4aXQoMSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable no-console */
4
+ /**
5
+ * Split the given CloudFormation resource specification up into a patch set, by service
6
+ *
7
+ * After splitting, only write out those fragments that are valid.(*)
8
+ *
9
+ * The reason for this is that some service updates sometimes contain mistakes,
10
+ * and we want to be able to take partial upgrades. By splitting the spec, we can
11
+ * take updates to some services while leaving updates to other services behind.
12
+ *
13
+ * (*) If `NO_VALIDATE` is set, all pieces are written out. In normal operation this
14
+ * should not be used.
15
+ */
16
+ const path = require("path");
17
+ const fs = require("fs-extra");
18
+ const patch_set_1 = require("./patch-set");
19
+ const validate_cfn_1 = require("./validate-cfn");
20
+ async function main(args) {
21
+ if (args.length < 3) {
22
+ throw new Error('Usage: split-spec-by-service <SPECFILE> <DIRECTORY> [<SERVICES>]');
23
+ }
24
+ const [specFile, outDir, services] = args;
25
+ const allowedServices = services.trim().split(' ').filter(Boolean);
26
+ log(`Loading specification: ${specFile}`);
27
+ const spec = await fs.readJson(specFile);
28
+ // Split
29
+ log('Splitting');
30
+ const byService = {};
31
+ for (const [propTypeName, propType] of Object.entries(spec.PropertyTypes)) {
32
+ const svcName = serviceName(propTypeName);
33
+ serviceSpec(svcName).PropertyTypes[propTypeName] = propType;
34
+ }
35
+ for (const [resTypeName, resType] of Object.entries(spec.ResourceTypes)) {
36
+ const svcName = serviceName(resTypeName);
37
+ serviceSpec(svcName).ResourceTypes[resTypeName] = resType;
38
+ }
39
+ // Write out
40
+ if (allowedServices.length > 0) {
41
+ log(`Writing: ${allowedServices.join(' ')}`);
42
+ }
43
+ else {
44
+ log('Writing all services');
45
+ }
46
+ for (const [svcName, svcSpec] of Object.entries(byService)) {
47
+ // Skip services that are not explicitly allowed
48
+ if (allowedServices.length > 0 && !allowedServices.includes(svcName)) {
49
+ continue;
50
+ }
51
+ const successTarget = path.join(outDir, `000_${svcName}.json`);
52
+ const rejectedTarget = path.join(outDir, `.000_${svcName}.rejected.json`);
53
+ const errors = !process.env.NO_VALIDATE ? validate_cfn_1.CfnSpecValidator.validate(svcSpec) : [];
54
+ if (errors.length === 0) {
55
+ // Change 'ResourceSpecificationVersion' to '$version', otherwise they will all conflict
56
+ const toWrite = {
57
+ PropertyTypes: svcSpec.PropertyTypes,
58
+ ResourceTypes: svcSpec.ResourceTypes,
59
+ $version: svcSpec.ResourceSpecificationVersion,
60
+ };
61
+ await patch_set_1.writeSorted(successTarget, toWrite);
62
+ await ensureGone(rejectedTarget);
63
+ }
64
+ else {
65
+ console.warn('='.repeat(70));
66
+ console.warn(' '.repeat(Math.floor(35 - svcName.length / 2)) + svcName);
67
+ console.warn('='.repeat(70));
68
+ for (const error of errors) {
69
+ console.warn(validate_cfn_1.formatErrorInContext(error));
70
+ }
71
+ await patch_set_1.writeSorted(rejectedTarget, svcSpec);
72
+ // Make sure that the success file exists. If not, the initial import of a
73
+ // new service failed.
74
+ if (!await fs.pathExists(successTarget)) {
75
+ await patch_set_1.writeSorted(successTarget, {
76
+ PropertyTypes: {},
77
+ ResourceTypes: {},
78
+ $version: '0.0.0',
79
+ });
80
+ }
81
+ }
82
+ }
83
+ await fs.writeJson(path.join(outDir, '001_Version.json'), {
84
+ ResourceSpecificationVersion: spec.ResourceSpecificationVersion,
85
+ }, { spaces: 2 });
86
+ function serviceSpec(svcName) {
87
+ if (!(svcName in byService)) {
88
+ byService[svcName] = {
89
+ PropertyTypes: {},
90
+ ResourceTypes: {},
91
+ ResourceSpecificationVersion: spec.ResourceSpecificationVersion,
92
+ };
93
+ }
94
+ return byService[svcName];
95
+ }
96
+ }
97
+ async function ensureGone(fileName) {
98
+ try {
99
+ await fs.unlink(fileName);
100
+ }
101
+ catch (e) {
102
+ if (e.code === 'ENOENT') {
103
+ return;
104
+ }
105
+ throw e;
106
+ }
107
+ }
108
+ function serviceName(x) {
109
+ return x.split('::').slice(0, 2).join('_');
110
+ }
111
+ function log(x) {
112
+ // eslint-disable-next-line no-console
113
+ console.log(x);
114
+ }
115
+ main(process.argv.slice(2)).catch(e => {
116
+ // eslint-disable-next-line no-console
117
+ console.error(e);
118
+ process.exitCode = 1;
119
+ });
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtc3BlYy1ieS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3BsaXQtc3BlYy1ieS1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0JBQStCO0FBQy9COzs7Ozs7Ozs7OztHQVdHO0FBQ0gsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQiwyQ0FBMEM7QUFDMUMsaURBQWlGO0FBRWpGLEtBQUssVUFBVSxJQUFJLENBQUMsSUFBYztJQUNoQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsa0VBQWtFLENBQUMsQ0FBQztLQUNyRjtJQUVELE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUMxQyxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVuRSxHQUFHLENBQUMsMEJBQTBCLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDMUMsTUFBTSxJQUFJLEdBQVksTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRWxELFFBQVE7SUFDUixHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakIsTUFBTSxTQUFTLEdBQTRCLEVBQUUsQ0FBQztJQUM5QyxLQUFLLE1BQU0sQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDekUsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFDO0tBQzdEO0lBQ0QsS0FBSyxNQUFNLENBQUMsV0FBVyxF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QUFDO0lBQ2pCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuLyoqXG4gKiBTcGxpdCB0aGUgZ2l2ZW4gQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2Ugc3BlY2lmaWNhdGlvbiB1cCBpbnRvIGEgcGF0Y2ggc2V0LCBieSBzZXJ2aWNlXG4gKlxuICogQWZ0ZXIgc3BsaXR0aW5nLCBvbmx5IHdyaXRlIG91dCB0aG9zZSBmcmFnbWVudHMgdGhhdCBhcmUgdmFsaWQuKCopXG4gKlxuICogVGhlIHJlYXNvbiBmb3IgdGhpcyBpcyB0aGF0IHNvbWUgc2VydmljZSB1cGRhdGVzIHNvbWV0aW1lcyBjb250YWluIG1pc3Rha2VzLFxuICogYW5kIHdlIHdhbnQgdG8gYmUgYWJsZSB0byB0YWtlIHBhcnRpYWwgdXBncmFkZXMuIEJ5IHNwbGl0dGluZyB0aGUgc3BlYywgd2UgY2FuXG4gKiB0YWtlIHVwZGF0ZXMgdG8gc29tZSBzZXJ2aWNlcyB3aGlsZSBsZWF2aW5nIHVwZGF0ZXMgdG8gb3RoZXIgc2VydmljZXMgYmVoaW5kLlxuICpcbiAqICgqKSBJZiBgTk9fVkFMSURBVEVgIGlzIHNldCwgYWxsIHBpZWNlcyBhcmUgd3JpdHRlbiBvdXQuIEluIG5vcm1hbCBvcGVyYXRpb24gdGhpc1xuICogICAgIHNob3VsZCBub3QgYmUgdXNlZC5cbiAqL1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcblxuaW1wb3J0IHsgd3JpdGVTb3J0ZWQgfSBmcm9tICcuL3BhdGNoLXNldCc7XG5pbXBvcnQgeyBDZm5TcGVjLCBDZm5TcGVjVmFsaWRhdG9yLCBmb3JtYXRFcnJvckluQ29udGV4dCB9IGZyb20gJy4vdmFsaWRhdGUtY2ZuJztcblxuYXN5bmMgZnVuY3Rpb24gbWFpbihhcmdzOiBzdHJpbmdbXSkge1xuICBpZiAoYXJncy5sZW5ndGggPCAzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVc2FnZTogc3BsaXQtc3BlYy1ieS1zZXJ2aWNlIDxTUEVDRklMRT4gPERJUkVDVE9SWT4gWzxTRVJWSUNFUz5dJyk7XG4gIH1cblxuICBjb25zdCBbc3BlY0ZpbGUsIG91dERpciwgc2VydmljZXNdID0gYXJncztcbiAgY29uc3QgYWxsb3dlZFNlcnZpY2VzID0gc2VydmljZXMudHJpbSgpLnNwbGl0KCcgJykuZmlsdGVyKEJvb2xlYW4pO1xuXG4gIGxvZyhgTG9hZGluZyBzcGVjaWZpY2F0aW9uOiAke3NwZWNGaWxlfWApO1xuICBjb25zdCBzcGVjOiBDZm5TcGVjID0gYXdhaXQgZnMucmVhZEpzb24oc3BlY0ZpbGUpO1xuXG4gIC8vIFNwbGl0XG4gIGxvZygnU3BsaXR0aW5nJyk7XG4gIGNvbnN0IGJ5U2VydmljZTogUmVjb3JkPHN0cmluZywgQ2ZuU3BlYz4gPSB7fTtcbiAgZm9yIChjb25zdCBbcHJvcFR5cGVOYW1lLCBwcm9wVHlwZV0gb2YgT2JqZWN0LmVudHJpZXMoc3BlYy5Qcm9wZXJ0eVR5cGVzKSkge1xuICAgIGNvbnN0IHN2Y05hbWUgPSBzZXJ2aWNlTmFtZShwcm9wVHlwZU5hbWUpO1xuICAgIHNlcnZpY2VTcGVjKHN2Y05hbWUpLlByb3BlcnR5VHlwZXNbcHJvcFR5cGVOYW1lXSA9IHByb3BUeXBlO1xuICB9XG4gIGZvciAoY29uc3QgW3Jlc1R5cGVOYW1lLCByZXNUeXBlXSBvZiBPYmplY3QuZW50cmllcyhzcGVjLlJlc291cmNlVHlwZXMpKSB7XG4gICAgY29uc3Qgc3ZjTmFtZSA9IHNlcnZpY2VOYW1lKHJlc1R5cGVOYW1lKTtcbiAgICBzZXJ2aWNlU3BlYyhzdmNOYW1lKS5SZXNvdXJjZVR5cGVzW3Jlc1R5cGVOYW1lXSA9IHJlc1R5cGU7XG4gIH1cblxuICAvLyBXcml0ZSBvdXRcbiAgaWYgKGFsbG93ZWRTZXJ2aWNlcy5sZW5ndGggPiAwKSB7XG4gICAgbG9nKGBXcml0aW5nOiAke2FsbG93ZWRTZXJ2aWNlcy5qb2luKCcgJyl9YCk7XG4gIH0gZWxzZSB7XG4gICAgbG9nKCdXcml0aW5nIGFsbCBzZXJ2aWNlcycpO1xuICB9XG4gIGZvciAoY29uc3QgW3N2Y05hbWUsIHN2Y1NwZWNdIG9mIE9iamVjdC5lbnRyaWVzKGJ5U2VydmljZSkpIHtcbiAgICAvLyBTa2lwIHNlcnZpY2VzIHRoYXQgYXJlIG5vdCBleHBsaWNpdGx5IGFsbG93ZWRcbiAgICBpZiAoYWxsb3dlZFNlcnZpY2VzLmxlbmd0aCA+IDAgJiYgIWFsbG93ZWRTZXJ2aWNlcy5pbmNsdWRlcyhzdmNOYW1lKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3Qgc3VjY2Vzc1RhcmdldCA9IHBhdGguam9pbihvdXREaXIsIGAwMDBfJHtzdmNOYW1lfS5qc29uYCk7XG4gICAgY29uc3QgcmVqZWN0ZWRUYXJnZXQgPSBwYXRoLmpvaW4ob3V0RGlyLCBgLjAwMF8ke3N2Y05hbWV9LnJlamVjdGVkLmpzb25gKTtcblxuICAgIGNvbnN0IGVycm9ycyA9ICFwcm9jZXNzLmVudi5OT19WQUxJREFURSA/IENmblNwZWNWYWxpZGF0b3IudmFsaWRhdGUoc3ZjU3BlYykgOiBbXTtcbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gQ2hhbmdlICdSZXNvdXJjZVNwZWNpZmljYXRpb25WZXJzaW9uJyB0byAnJHZlcnNpb24nLCBvdGhlcndpc2UgdGhleSB3aWxsIGFsbCBjb25mbGljdFxuICAgICAgY29uc3QgdG9Xcml0ZSA9IHtcbiAgICAgICAgUHJvcGVydHlUeXBlczogc3ZjU3BlYy5Qcm9wZXJ0eVR5cGVzLFxuICAgICAgICBSZXNvdXJjZVR5cGVzOiBzdmNTcGVjLlJlc291cmNlVHlwZXMsXG4gICAgICAgICR2ZXJzaW9uOiBzdmNTcGVjLlJlc291cmNlU3BlY2lmaWNhdGlvblZlcnNpb24sXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCB3cml0ZVNvcnRlZChzdWNjZXNzVGFyZ2V0LCB0b1dyaXRlKTtcbiAgICAgIGF3YWl0IGVuc3VyZUdvbmUocmVqZWN0ZWRUYXJnZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLndhcm4oJz0nLnJlcGVhdCg3MCkpO1xuICAgICAgY29uc29sZS53YXJuKCcgJy5yZXBlYXQoTWF0aC5mbG9vcigzNSAtIHN2Y05hbWUubGVuZ3RoIC8gMikpICsgc3ZjTmFtZSk7XG4gICAgICBjb25zb2xlLndhcm4oJz0nLnJlcGVhdCg3MCkpO1xuICAgICAgZm9yIChjb25zdCBlcnJvciBvZiBlcnJvcnMpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGZvcm1hdEVycm9ySW5Db250ZXh0KGVycm9yKSk7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHdyaXRlU29ydGVkKHJlamVjdGVkVGFyZ2V0LCBzdmNTcGVjKTtcblxuICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHN1Y2Nlc3MgZmlsZSBleGlzdHMuIElmIG5vdCwgdGhlIGluaXRpYWwgaW1wb3J0IG9mIGFcbiAgICAgIC8vIG5ldyBzZXJ2aWNlIGZhaWxlZC5cbiAgICAgIGlmICghYXdhaXQgZnMucGF0aEV4aXN0cyhzdWNjZXNzVGFyZ2V0KSkge1xuICAgICAgICBhd2FpdCB3cml0ZVNvcnRlZChzdWNjZXNzVGFyZ2V0LCB7XG4gICAgICAgICAgUHJvcGVydHlUeXBlczoge30sXG4gICAgICAgICAgUmVzb3VyY2VUeXBlczoge30sXG4gICAgICAgICAgJHZlcnNpb246ICcwLjAuMCcsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBhd2FpdCBmcy53cml0ZUpzb24ocGF0aC5qb2luKG91dERpciwgJzAwMV9WZXJzaW9uLmpzb24nKSwge1xuICAgIFJlc291cmNlU3BlY2lmaWNhdGlvblZlcnNpb246IHNwZWMuUmVzb3VyY2VTcGVjaWZpY2F0aW9uVmVyc2lvbixcbiAgfSwgeyBzcGFjZXM6IDIgfSk7XG5cbiAgZnVuY3Rpb24gc2VydmljZVNwZWMoc3ZjTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKCEoc3ZjTmFtZSBpbiBieVNlcnZpY2UpKSB7XG4gICAgICBieVNlcnZpY2Vbc3ZjTmFtZV0gPSB7XG4gICAgICAgIFByb3BlcnR5VHlwZXM6IHt9LFxuICAgICAgICBSZXNvdXJjZVR5cGVzOiB7fSxcbiAgICAgICAgUmVzb3VyY2VTcGVjaWZpY2F0aW9uVmVyc2lvbjogc3BlYy5SZXNvdXJjZVNwZWNpZmljYXRpb25WZXJzaW9uLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIGJ5U2VydmljZVtzdmNOYW1lXTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBlbnN1cmVHb25lKGZpbGVOYW1lOiBzdHJpbmcpIHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBmcy51bmxpbmsoZmlsZU5hbWUpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKGUuY29kZSA9PT0gJ0VOT0VOVCcpIHsgcmV0dXJuOyB9XG4gICAgdGhyb3cgZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzZXJ2aWNlTmFtZSh4OiBzdHJpbmcpIHtcbiAgcmV0dXJuIHguc3BsaXQoJzo6Jykuc2xpY2UoMCwgMikuam9pbignXycpO1xufVxuXG5mdW5jdGlvbiBsb2coeDogc3RyaW5nKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gIGNvbnNvbGUubG9nKHgpO1xufVxuXG5tYWluKHByb2Nlc3MuYXJndi5zbGljZSgyKSkuY2F0Y2goZSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gIGNvbnNvbGUuZXJyb3IoZSk7XG4gIHByb2Nlc3MuZXhpdENvZGUgPSAxO1xufSk7XG4iXX0=
@@ -0,0 +1,201 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "[]"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.
@@ -0,0 +1,2 @@
1
+ AWS Cloud Development Kit (AWS CDK)
2
+ Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
@@ -0,0 +1,18 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ scriptdir=$(cd $(dirname $0) && pwd)
4
+
5
+ # Download (parts of) the cfn-lint repo that we use to enhance our model
6
+ intermediate="$(mktemp -d)/tmp.zip"
7
+
8
+ url="https://github.com/aws-cloudformation/cfn-lint/archive/refs/heads/main.zip"
9
+ echo >&2 "Downloading from ${url} ..."
10
+ curl -sSfL "${url}" -o ${intermediate}
11
+
12
+ for file in StatefulResources; do
13
+ echo >&2 "${file}.json"
14
+ mkdir -p "spec-source/cfn-lint/${file}"
15
+ unzip -p "${intermediate}" cfn-lint-main/src/cfnlint/data/AdditionalSpecs/${file}.json > spec-source/cfn-lint/${file}/000.json
16
+ done
17
+
18
+ echo >&2 "Done."