cdk-common 2.0.27 → 2.0.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/.jsii +4 -4
  2. package/lib/main.js +1 -1
  3. package/node_modules/@aws-cdk/assert/LICENSE +1 -1
  4. package/node_modules/@aws-cdk/assert/NOTICE +1 -1
  5. package/node_modules/@aws-cdk/assert/package.json +9 -9
  6. package/node_modules/@aws-cdk/cfnspec/CHANGELOG.md +16 -0
  7. package/node_modules/@aws-cdk/cfnspec/build-tools/build.js +7 -53
  8. package/node_modules/@aws-cdk/cfnspec/build-tools/massage-spec.d.ts +0 -4
  9. package/node_modules/@aws-cdk/cfnspec/build-tools/massage-spec.js +2 -61
  10. package/node_modules/@aws-cdk/cfnspec/build-tools/patch-set.d.ts +25 -0
  11. package/node_modules/@aws-cdk/cfnspec/build-tools/patch-set.js +239 -0
  12. package/node_modules/@aws-cdk/cfnspec/build-tools/report-issues.d.ts +4 -0
  13. package/node_modules/@aws-cdk/cfnspec/build-tools/report-issues.js +44 -0
  14. package/node_modules/@aws-cdk/cfnspec/build-tools/split-spec-by-service.d.ts +1 -0
  15. package/node_modules/@aws-cdk/cfnspec/build-tools/split-spec-by-service.js +86 -0
  16. package/node_modules/@aws-cdk/cfnspec/build-tools/template/LICENSE +1 -1
  17. package/node_modules/@aws-cdk/cfnspec/build-tools/template/NOTICE +1 -1
  18. package/node_modules/@aws-cdk/cfnspec/build-tools/update-metrics.sh +2 -0
  19. package/node_modules/@aws-cdk/cfnspec/build-tools/update.sh +34 -18
  20. package/node_modules/@aws-cdk/cfnspec/build-tools/validate-cfn.d.ts +67 -0
  21. package/node_modules/@aws-cdk/cfnspec/build-tools/validate-cfn.js +285 -0
  22. package/node_modules/@aws-cdk/cfnspec/coverage/build-tools/index.html +49 -20
  23. package/node_modules/@aws-cdk/cfnspec/coverage/build-tools/massage-spec.ts.html +12 -166
  24. package/node_modules/@aws-cdk/cfnspec/coverage/build-tools/patch-set.ts.html +907 -0
  25. package/node_modules/@aws-cdk/cfnspec/coverage/build-tools/scrutiny.ts.html +1 -2
  26. package/node_modules/@aws-cdk/cfnspec/coverage/build-tools/validate-cfn.ts.html +1093 -0
  27. package/node_modules/@aws-cdk/cfnspec/coverage/index.html +34 -35
  28. package/node_modules/@aws-cdk/cfnspec/coverage/junit.xml +6272 -6232
  29. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/build-tools/index.html +49 -20
  30. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/build-tools/massage-spec.ts.html +12 -166
  31. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/build-tools/patch-set.ts.html +907 -0
  32. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/build-tools/scrutiny.ts.html +1 -2
  33. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/build-tools/validate-cfn.ts.html +1093 -0
  34. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/index.html +34 -35
  35. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/canned-metrics/canned-metrics-schema.ts.html +2 -3
  36. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/canned-metrics/index.html +1 -2
  37. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/canned-metrics.ts.html +22 -23
  38. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/index.html +19 -20
  39. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/index.ts.html +96 -25
  40. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/augmentation.ts.html +5 -6
  41. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/base-types.ts.html +12 -13
  42. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/index.html +7 -8
  43. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/index.ts.html +11 -12
  44. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/property.ts.html +39 -40
  45. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/resource-type.ts.html +20 -21
  46. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/specification.ts.html +2 -3
  47. package/node_modules/@aws-cdk/cfnspec/coverage/lcov.info +744 -346
  48. package/node_modules/@aws-cdk/cfnspec/coverage/lib/canned-metrics/canned-metrics-schema.ts.html +2 -3
  49. package/node_modules/@aws-cdk/cfnspec/coverage/lib/canned-metrics/index.html +1 -2
  50. package/node_modules/@aws-cdk/cfnspec/coverage/lib/canned-metrics.ts.html +22 -23
  51. package/node_modules/@aws-cdk/cfnspec/coverage/lib/index.html +19 -20
  52. package/node_modules/@aws-cdk/cfnspec/coverage/lib/index.ts.html +96 -25
  53. package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/augmentation.ts.html +5 -6
  54. package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/base-types.ts.html +12 -13
  55. package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/index.html +7 -8
  56. package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/index.ts.html +11 -12
  57. package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/property.ts.html +39 -40
  58. package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/resource-type.ts.html +20 -21
  59. package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/specification.ts.html +2 -3
  60. package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics/README.md +6 -1
  61. package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics/services.json +19997 -10215
  62. package/node_modules/@aws-cdk/cfnspec/lib/index.d.ts +8 -0
  63. package/node_modules/@aws-cdk/cfnspec/lib/index.js +25 -2
  64. package/node_modules/@aws-cdk/cfnspec/lib/schema/docs.d.ts +20 -0
  65. package/node_modules/@aws-cdk/cfnspec/lib/schema/docs.js +3 -0
  66. package/node_modules/@aws-cdk/cfnspec/lib/schema/index.d.ts +1 -0
  67. package/node_modules/@aws-cdk/cfnspec/lib/schema/index.js +2 -1
  68. package/node_modules/@aws-cdk/cfnspec/package.json +5 -5
  69. package/node_modules/@aws-cdk/cfnspec/spec/cfn-docs.json +38910 -0
  70. package/node_modules/@aws-cdk/cfnspec/spec/cfn-lint.json +3 -3
  71. package/node_modules/@aws-cdk/cfnspec/spec/specification.json +319 -311
  72. package/node_modules/@aws-cdk/cfnspec/tsconfig.tsbuildinfo +285 -179
  73. package/node_modules/@aws-cdk/cloudformation-diff/LICENSE +1 -1
  74. package/node_modules/@aws-cdk/cloudformation-diff/NOTICE +1 -1
  75. package/node_modules/@aws-cdk/cloudformation-diff/package.json +6 -6
  76. package/node_modules/@types/concat-stream/node_modules/@types/node/README.md +1 -1
  77. package/node_modules/@types/concat-stream/node_modules/@types/node/net.d.ts +1 -0
  78. package/node_modules/@types/concat-stream/node_modules/@types/node/package.json +2 -2
  79. package/node_modules/@types/concat-stream/node_modules/@types/node/process.d.ts +1 -1
  80. package/node_modules/@types/form-data/node_modules/@types/node/README.md +1 -1
  81. package/node_modules/@types/form-data/node_modules/@types/node/net.d.ts +1 -0
  82. package/node_modules/@types/form-data/node_modules/@types/node/package.json +2 -2
  83. package/node_modules/@types/form-data/node_modules/@types/node/process.d.ts +1 -1
  84. package/node_modules/graceful-fs/package.json +1 -1
  85. package/node_modules/graceful-fs/polyfills.js +4 -2
  86. package/node_modules/table/README.md +79 -1
  87. package/node_modules/table/dist/src/alignSpanningCell.d.ts +7 -0
  88. package/node_modules/table/dist/src/alignSpanningCell.js +44 -0
  89. package/node_modules/table/dist/src/alignSpanningCell.js.map +1 -0
  90. package/node_modules/table/dist/src/alignString.js.map +1 -0
  91. package/node_modules/table/dist/src/alignTableData.js +7 -1
  92. package/node_modules/table/dist/src/alignTableData.js.map +1 -0
  93. package/node_modules/table/dist/src/calculateCellHeight.js.map +1 -0
  94. package/node_modules/table/dist/src/calculateMaximumColumnWidths.d.ts +7 -0
  95. package/node_modules/table/dist/src/calculateMaximumColumnWidths.js +36 -0
  96. package/node_modules/table/dist/src/calculateMaximumColumnWidths.js.map +1 -0
  97. package/node_modules/table/dist/src/calculateOutputColumnWidths.d.ts +2 -0
  98. package/node_modules/table/dist/src/calculateOutputColumnWidths.js +10 -0
  99. package/node_modules/table/dist/src/calculateOutputColumnWidths.js.map +1 -0
  100. package/node_modules/table/dist/src/calculateRowHeights.js +28 -5
  101. package/node_modules/table/dist/src/calculateRowHeights.js.map +1 -0
  102. package/node_modules/table/dist/src/calculateSpanningCellWidth.d.ts +3 -0
  103. package/node_modules/table/dist/src/calculateSpanningCellWidth.js +26 -0
  104. package/node_modules/table/dist/src/calculateSpanningCellWidth.js.map +1 -0
  105. package/node_modules/table/dist/src/createStream.js +2 -1
  106. package/node_modules/table/dist/src/createStream.js.map +1 -0
  107. package/node_modules/table/dist/src/drawBorder.d.ts +27 -19
  108. package/node_modules/table/dist/src/drawBorder.js +164 -63
  109. package/node_modules/table/dist/src/drawBorder.js.map +1 -0
  110. package/node_modules/table/dist/src/drawContent.d.ts +10 -5
  111. package/node_modules/table/dist/src/drawContent.js +31 -7
  112. package/node_modules/table/dist/src/drawContent.js.map +1 -0
  113. package/node_modules/table/dist/src/drawRow.d.ts +6 -2
  114. package/node_modules/table/dist/src/drawRow.js +6 -2
  115. package/node_modules/table/dist/src/drawRow.js.map +1 -0
  116. package/node_modules/table/dist/src/drawTable.d.ts +1 -1
  117. package/node_modules/table/dist/src/drawTable.js +10 -18
  118. package/node_modules/table/dist/src/drawTable.js.map +1 -0
  119. package/node_modules/table/dist/src/generated/validators.d.ts +2 -2
  120. package/node_modules/table/dist/src/generated/validators.js +746 -223
  121. package/node_modules/table/dist/src/generated/validators.js.map +1 -0
  122. package/node_modules/table/dist/src/getBorderCharacters.js +16 -0
  123. package/node_modules/table/dist/src/getBorderCharacters.js.map +1 -0
  124. package/node_modules/table/dist/src/index.js.map +1 -0
  125. package/node_modules/table/dist/src/injectHeaderConfig.d.ts +3 -0
  126. package/node_modules/table/dist/src/injectHeaderConfig.js +29 -0
  127. package/node_modules/table/dist/src/injectHeaderConfig.js.map +1 -0
  128. package/node_modules/table/dist/src/makeRangeConfig.d.ts +3 -0
  129. package/node_modules/table/dist/src/makeRangeConfig.js +18 -0
  130. package/node_modules/table/dist/src/makeRangeConfig.js.map +1 -0
  131. package/node_modules/table/dist/src/makeStreamConfig.js.map +1 -0
  132. package/node_modules/table/dist/src/makeTableConfig.d.ts +2 -2
  133. package/node_modules/table/dist/src/makeTableConfig.js +26 -29
  134. package/node_modules/table/dist/src/makeTableConfig.js.map +1 -0
  135. package/node_modules/table/dist/src/mapDataUsingRowHeights.d.ts +2 -0
  136. package/node_modules/table/dist/src/mapDataUsingRowHeights.js +17 -10
  137. package/node_modules/table/dist/src/mapDataUsingRowHeights.js.map +1 -0
  138. package/node_modules/table/dist/src/padTableData.js +7 -1
  139. package/node_modules/table/dist/src/padTableData.js.map +1 -0
  140. package/node_modules/table/dist/src/schemas/config.json +95 -0
  141. package/node_modules/table/dist/src/schemas/shared.json +139 -0
  142. package/node_modules/table/dist/src/schemas/streamConfig.json +25 -0
  143. package/node_modules/table/dist/src/spanningCellManager.d.ts +21 -0
  144. package/node_modules/table/dist/src/spanningCellManager.js +86 -0
  145. package/node_modules/table/dist/src/spanningCellManager.js.map +1 -0
  146. package/node_modules/table/dist/src/stringifyTableData.js.map +1 -0
  147. package/node_modules/table/dist/src/table.js +9 -5
  148. package/node_modules/table/dist/src/table.js.map +1 -0
  149. package/node_modules/table/dist/src/truncateTableData.d.ts +2 -2
  150. package/node_modules/table/dist/src/truncateTableData.js +2 -2
  151. package/node_modules/table/dist/src/truncateTableData.js.map +1 -0
  152. package/node_modules/table/dist/src/types/api.d.ts +21 -5
  153. package/node_modules/table/dist/src/types/api.js.map +1 -0
  154. package/node_modules/table/dist/src/types/internal.js.map +1 -0
  155. package/node_modules/table/dist/src/utils.d.ts +10 -1
  156. package/node_modules/table/dist/src/utils.js +51 -1
  157. package/node_modules/table/dist/src/utils.js.map +1 -0
  158. package/node_modules/table/dist/src/validateConfig.js.map +1 -0
  159. package/node_modules/table/dist/src/validateSpanningCellConfig.d.ts +3 -0
  160. package/node_modules/table/dist/src/validateSpanningCellConfig.js +46 -0
  161. package/node_modules/table/dist/src/validateSpanningCellConfig.js.map +1 -0
  162. package/node_modules/table/dist/src/validateTableData.js.map +1 -0
  163. package/node_modules/table/dist/src/wrapCell.js.map +1 -0
  164. package/node_modules/table/dist/src/wrapString.js.map +1 -0
  165. package/node_modules/table/dist/src/wrapWord.js +2 -2
  166. package/node_modules/table/dist/src/wrapWord.js.map +1 -0
  167. package/node_modules/table/package.json +2 -3
  168. package/package.json +6 -6
  169. package/node_modules/table/dist/src/calculateCellWidths.d.ts +0 -5
  170. package/node_modules/table/dist/src/calculateCellWidths.js +0 -17
  171. package/node_modules/table/dist/src/calculateColumnWidths.d.ts +0 -6
  172. package/node_modules/table/dist/src/calculateColumnWidths.js +0 -17
  173. package/node_modules/table/dist/src/drawHeader.d.ts +0 -2
  174. package/node_modules/table/dist/src/drawHeader.js +0 -30
@@ -5,6 +5,10 @@ export * from './canned-metrics';
5
5
  * The complete AWS CloudFormation Resource specification, having any CDK patches and enhancements included in it.
6
6
  */
7
7
  export declare function specification(): schema.Specification;
8
+ /**
9
+ * The complete AWS CloudFormation Resource specification, having any CDK patches and enhancements included in it.
10
+ */
11
+ export declare function docs(): schema.CloudFormationDocsFile;
8
12
  /**
9
13
  * Return the resource specification for the given typename
10
14
  *
@@ -12,6 +16,10 @@ export declare function specification(): schema.Specification;
12
16
  * specification() directly.
13
17
  */
14
18
  export declare function resourceSpecification(typeName: string): schema.ResourceType;
19
+ /**
20
+ * Return documentation for the given type
21
+ */
22
+ export declare function typeDocs(resourceName: string, propertyTypeName?: string): schema.CloudFormationTypeDocs;
15
23
  /**
16
24
  * Get the resource augmentations for a given type
17
25
  */
@@ -10,7 +10,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
10
  for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.scrutinizableResourceTypes = exports.scrutinizablePropertyNames = exports.filteredSpecification = exports.namespaces = exports.resourceTypes = exports.propertySpecification = exports.cfnLintAnnotations = exports.resourceAugmentation = exports.resourceSpecification = exports.specification = exports.schema = void 0;
13
+ exports.scrutinizableResourceTypes = exports.scrutinizablePropertyNames = exports.filteredSpecification = exports.namespaces = exports.resourceTypes = exports.propertySpecification = exports.cfnLintAnnotations = exports.resourceAugmentation = exports.typeDocs = exports.resourceSpecification = exports.docs = exports.specification = exports.schema = void 0;
14
14
  const crypto = require("crypto");
15
15
  const schema = require("./schema");
16
16
  exports.schema = schema;
@@ -23,6 +23,14 @@ function specification() {
23
23
  return require('../spec/specification.json');
24
24
  }
25
25
  exports.specification = specification;
26
+ /**
27
+ * The complete AWS CloudFormation Resource specification, having any CDK patches and enhancements included in it.
28
+ */
29
+ function docs() {
30
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
31
+ return require('../spec/cfn-docs.json');
32
+ }
33
+ exports.docs = docs;
26
34
  /**
27
35
  * Return the resource specification for the given typename
28
36
  *
@@ -37,6 +45,21 @@ function resourceSpecification(typeName) {
37
45
  return ret;
38
46
  }
39
47
  exports.resourceSpecification = resourceSpecification;
48
+ /**
49
+ * Return documentation for the given type
50
+ */
51
+ function typeDocs(resourceName, propertyTypeName) {
52
+ const key = propertyTypeName ? `${resourceName}.${propertyTypeName}` : resourceName;
53
+ const ret = docs().Types[key];
54
+ if (!ret) {
55
+ return {
56
+ description: '',
57
+ properties: {},
58
+ };
59
+ }
60
+ return ret;
61
+ }
62
+ exports.typeDocs = typeDocs;
40
63
  /**
41
64
  * Get the resource augmentations for a given type
42
65
  */
@@ -168,4 +191,4 @@ function scrutinizableResourceTypes(scrutinyTypes) {
168
191
  return ret;
169
192
  }
170
193
  exports.scrutinizableResourceTypes = scrutinizableResourceTypes;
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUEsaUNBQWlDO0FBRWpDLG1DQUFtQztBQUMxQix3QkFBTTtBQUNmLG1EQUFpQztBQUVqQzs7R0FFRztBQUNILFNBQWdCLGFBQWE7SUFDM0IsaUVBQWlFO0lBQ2pFLE9BQU8sT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUhELHNDQUdDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxRQUFnQjtJQUNwRCxNQUFNLEdBQUcsR0FBRyxhQUFhLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLFFBQVEsRUFBRSxDQUFDLENBQUM7S0FDdkQ7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFORCxzREFNQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsUUFBZ0I7SUFDbkQsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDOUMsSUFBSTtRQUNGLGlFQUFpRTtRQUNqRSxPQUFPLE9BQU8sQ0FBQyxtQkFBbUIsUUFBUSxPQUFPLENBQUMsQ0FBQztLQUNwRDtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxFQUFFLENBQUM7S0FDWDtBQUNILENBQUM7QUFSRCxvREFRQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsUUFBZ0I7O0lBQ2pELGlFQUFpRTtJQUNqRSxNQUFNLGNBQWMsR0FBc0IsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFFM0UsT0FBTztRQUNMLFFBQVEsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLGFBQWEs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Q0FBQztBQVRELGdFQVNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBDZm5MaW50RmlsZVNjaGVtYSB9IGZyb20gJy4vX3ByaXZhdGVfc2NoZW1hL2Nmbi1saW50JztcbmltcG9ydCAqIGFzIHNjaGVtYSBmcm9tICcuL3NjaGVtYSc7XG5leHBvcnQgeyBzY2hlbWEgfTtcbmV4cG9ydCAqIGZyb20gJy4vY2FubmVkLW1ldHJpY3MnO1xuXG4vKipcbiAqIFRoZSBjb21wbGV0ZSBBV1MgQ2xvdWRGb3JtYXRpb24gUmVzb3VyY2Ugc3BlY2lmaWNhdGlvbiwgaGF2aW5nIGFueSBDREsgcGF0Y2hlcyBhbmQgZW5oYW5jZW1lbnRzIGluY2x1ZGVkIGluIGl0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3BlY2lmaWNhdGlvbigpOiBzY2hlbWEuU3BlY2lmaWNhdGlvbiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gIHJldHVybiByZXF1aXJlKCcuLi9zcGVjL3NwZWNpZmljYXRpb24uanNvbicpO1xufVxuXG4vKipcbiAqIFJldHVybiB0aGUgcmVzb3VyY2Ugc3BlY2lmaWNhdGlvbiBmb3IgdGhlIGdpdmVuIHR5cGVuYW1lXG4gKlxuICogVmFsaWRhdGVzIHRoYXQgdGhlIHJlc291cmNlIGV4aXN0cy4gSWYgeW91IGRvbid0IHdhbnQgdGhpcyB2YWxpZGF0aW5nIGJlaGF2aW9yLCByZWFkIGZyb21cbiAqIHNwZWNpZmljYXRpb24oKSBkaXJlY3RseS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc291cmNlU3BlY2lmaWNhdGlvbih0eXBlTmFtZTogc3RyaW5nKTogc2NoZW1hLlJlc291cmNlVHlwZSB7XG4gIGNvbnN0IHJldCA9IHNwZWNpZmljYXRpb24oKS5SZXNvdXJjZVR5cGVzW3R5cGVOYW1lXTtcbiAgaWYgKCFyZXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHN1Y2ggcmVzb3VyY2UgdHlwZTogJHt0eXBlTmFtZX1gKTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIEdldCB0aGUgcmVzb3VyY2UgYXVnbWVudGF0aW9ucyBmb3IgYSBnaXZlbiB0eXBlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvdXJjZUF1Z21lbnRhdGlvbih0eXBlTmFtZTogc3RyaW5nKTogc2NoZW1hLlJlc291cmNlQXVnbWVudGF0aW9uIHtcbiAgY29uc3QgZmlsZU5hbWUgPSB0eXBlTmFtZS5yZXBsYWNlKC86Oi9nLCAnXycpO1xuICB0cnkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gICAgcmV0dXJuIHJlcXVpcmUoYC4vYXVnbWVudGF0aW9ucy8ke2ZpbGVOYW1lfS5qc29uYCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4ge307XG4gIH1cbn1cblxuLyoqXG4gKiBHZXQgdGhlIHJlc291cmNlIGF1Z21lbnRhdGlvbnMgZm9yIGEgZ2l2ZW4gdHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2ZuTGludEFubm90YXRpb25zKHR5cGVOYW1lOiBzdHJpbmcpOiBzY2hlbWEuQ2ZuTGludFJlc291cmNlQW5ub3RhdGlvbnMge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICBjb25zdCBhbGxBbm5vdGF0aW9uczogQ2ZuTGludEZpbGVTY2hlbWEgPSByZXF1aXJlKCcuLi9zcGVjL2Nmbi1saW50Lmpzb24nKTtcblxuICByZXR1cm4ge1xuICAgIHN0YXRlZnVsOiAhIWFsbEFubm90YXRpb25zLlN0YXRlZnVsUmVzb3VyY2VzLlJlc291cmNlVHlwZXNbdHlwZU5hbWVdLFxuICAgIG11c3RCZUVtcHR5VG9EZWxldGU6IGFsbEFubm90YXRpb25zLlN0YXRlZnVsUmVzb3VyY2VzLlJlc291cmNlVHlwZXNbdHlwZU5hbWVdPy5EZWxldGVSZXF1aXJlc0VtcHR5UmVzb3VyY2UgPz8gZmFsc2UsXG4gIH07XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBwcm9wZXJ0eSBzcGVjaWZpY2F0aW9uIGZvciB0aGUgZ2l2ZW4gcmVzb3VyY2UncyBwcm9wZXJ0eVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvcGVydHlTcGVjaWZpY2F0aW9uKHR5cGVOYW1lOiBzdHJpbmcsIHByb3BlcnR5TmFtZTogc3RyaW5nKTogc2NoZW1hLlByb3BlcnR5IHtcbiAgY29uc3QgcmV0ID0gcmVzb3VyY2VTcGVjaWZpY2F0aW9uKHR5cGVOYW1lKS5Qcm9wZXJ0aWVzIVtwcm9wZXJ0eU5hbWVdO1xuICBpZiAoIXJldCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgUmVzb3VyY2UgJHt0eXBlTmFtZX0gaGFzIG5vIHByb3BlcnR5OiAke3Byb3BlcnR5TmFtZX1gKTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIFRoZSBsaXN0IG9mIHJlc291cmNlIHR5cGUgbmFtZXMgZGVmaW5lZCBpbiB0aGUgYGBzcGVjaWZpY2F0aW9uYGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvdXJjZVR5cGVzKCkge1xuICByZXR1cm4gT2JqZWN0LmtleXMoc3BlY2lmaWNhdGlvbigpLlJlc291cmNlVHlwZXMpO1xufVxuXG4vKipcbiAqIFRoZSBsaXN0IG9mIG5hbWVzcGFjZXMgZGVmaW5lZCBpbiB0aGUgYGBzcGVjaWZpY2F0aW9uYGAsIHRoYXQgaXMgcmVzb3VyY2UgbmFtZSBwcmVmaXhlcyBkb3duIHRvIHRoZSBzZWNvbmQgYGA6OmBgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbmFtZXNwYWNlcygpIHtcbiAgcmV0dXJuIEFycmF5LmZyb20obmV3IFNldChyZXNvdXJjZVR5cGVzKCkubWFwKG4gPT4gbi5zcGxpdCgnOjonLCAyKS5qb2luKCc6OicpKSkpO1xufVxuXG4vKipcbiAqIE9idGFpbiBhIGZpbHRlcmVkIHZlcnNpb24gb2YgdGhlIEFXUyBDbG91ZEZvcm1hdGlvbiBzcGVjaWZpY2F0aW9uLlxuICpcbiAqIEBwYXJhbSBmaWx0ZXIgdGhlIHByZWRpY2F0ZSB0byBiZSB1c2VkIGluIG9yZGVyIHRvIGZpbHRlciB3aGljaCByZXNvdXJjZSB0eXBlcyBmcm9tIHRoZSBgYFNwZWNpZmljYXRpb25gYCB0byBleHRyYWN0LlxuICogICAgICAgICBXaGVuIHBhc3NlZCBhcyBhIGBgc3RyaW5nYGAsIG9ubHkgdGhlIHNwZWNpZmllZCByZXNvdXJjZSB0eXBlIHdpbGwgYmUgZXh0cmFjdGVkLiBXaGVuIHBhc3NlZCBhcyBhXG4gKiAgICAgICAgIGBgUmVnRXhwYGAsIGFsbCBtYXRjaGluZyByZXNvdXJjZSB0eXBlcyB3aWxsIGJlIGV4dHJhY3RlZC4gV2hlbiBwYXNzZWQgYXMgYSBgYGZ1bmN0aW9uYGAsIGFsbCByZXNvdXJjZVxuICogICAgICAgICB0eXBlcyBmb3Igd2hpY2ggdGhlIGZ1bmN0aW9uIHJldHVybmVkIGBgdHJ1ZWBgIHdpbGwgYmUgZXh0cmFjdGVkLlxuICpcbiAqIEByZXR1cm4gYSBjb2hlcmVudCBzdWItc2V0IG9mIHRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gUmVzb3VyY2Ugc3BlY2lmaWNhdGlvbiwgaW5jbHVkaW5nIGFsbCBwcm9wZXJ0eSB0eXBlcyByZWxhdGVkXG4gKiAgICAgdG8gdGhlIHNlbGVjdGVkIHJlc291cmNlIHR5cGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyZWRTcGVjaWZpY2F0aW9uKGZpbHRlcjogc3RyaW5nIHwgUmVnRXhwIHwgRmlsdGVyKTogc2NoZW1hLlNwZWNpZmljYXRpb24ge1xuICBjb25zdCBzcGVjID0gc3BlY2lmaWNhdGlvbigpO1xuXG4gIGNvbnN0IHJlc3VsdDogc2NoZW1hLlNwZWNpZmljYXRpb24gPSB7IFJlc291cmNlVHlwZXM6IHt9LCBQcm9wZXJ0eVR5cGVzOiB7fSwgRmluZ2VycHJpbnQ6IHNwZWMuRmluZ2VycHJpbnQgfTtcbiAgY29uc3QgcHJlZGljYXRlOiBGaWx0ZXIgPSBtYWtlUHJlZGljYXRlKGZpbHRlcik7XG4gIGZvciAoY29uc3QgdHlwZSBvZiByZXNvdXJjZVR5cGVzKCkpIHtcbiAgICBpZiAoIXByZWRpY2F0ZSh0eXBlKSkgeyBjb250aW51ZTsgfVxuICAgIHJlc3VsdC5SZXNvdXJjZVR5cGVzW3R5cGVdID0gc3BlYy5SZXNvdXJjZVR5cGVzW3R5cGVdO1xuICAgIGNvbnN0IHByZWZpeCA9IGAke3R5cGV9LmA7XG4gICAgZm9yIChjb25zdCBwcm9wVHlwZSBvZiBPYmplY3Qua2V5cyhzcGVjLlByb3BlcnR5VHlwZXMhKS5maWx0ZXIobiA9PiBuLnN0YXJ0c1dpdGgocHJlZml4KSkpIHtcbiAgICAgIHJlc3VsdC5Qcm9wZXJ0eVR5cGVzW3Byb3BUeXBlXSA9IHNwZWMuUHJvcGVydHlUeXBlcyFbcHJvcFR5cGVdO1xuICAgIH1cbiAgfVxuICByZXN1bHQuRmluZ2VycHJpbnQgPSBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKEpTT04uc3RyaW5naWZ5KHJlc3VsdCkpLmRpZ2VzdCgnYmFzZTY0Jyk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCB0eXBlIEZpbHRlciA9IChuYW1lOiBzdHJpbmcpID0+IGJvb2xlYW47XG5cbi8qKlxuICogQ3JlYXRlcyBhIHByZWRpY2F0ZSBmdW5jdGlvbiBmcm9tIGEgZ2l2ZW4gZmlsdGVyLlxuICpcbiAqIEBwYXJhbSBmaWx0ZXIgd2hlbiBwcm92aWRlZCBhcyBhIGBgc3RyaW5nYGAsIHBlcmZvcm1zIGFuIGV4YWN0IG1hdGNoIGNvbXBhcmlzb24uXG4gKiAgICAgICAgIHdoZW4gcHJvdmlkZWQgYXMgYSBgYFJlZ0V4cGBgLCBwZXJmb3JtcyB1c2VzIGBgc3RyLm1hdGNoKFJlZ0V4cClgYC5cbiAqICAgICAgICAgd2hlbiBwcm92aWRlZCBhcyBhIGBgZnVuY3Rpb25gYCwgdXNlIHRoZSBmdW5jdGlvbiBhcy1pcy5cbiAqXG4gKiBAcmV0dXJucyBhIHByZWRpY2F0ZSBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gbWFrZVByZWRpY2F0ZShmaWx0ZXI6IHN0cmluZyB8IFJlZ0V4cCB8IEZpbHRlcik6IEZpbHRlciB7XG4gIGlmICh0eXBlb2YgZmlsdGVyID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBzID0+IHMgPT09IGZpbHRlcjtcbiAgfSBlbHNlIGlmICh0eXBlb2YgZmlsdGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGZpbHRlciBhcyBGaWx0ZXI7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHMgPT4gcy5tYXRjaChmaWx0ZXIpICE9IG51bGw7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIHByb3BlcnRpZXMgb2YgdGhlIGdpdmVuIHR5cGUgdGhhdCByZXF1aXJlIHRoZSBnaXZlbiBzY3J1dGlueSB0eXBlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzY3J1dGluaXphYmxlUHJvcGVydHlOYW1lcyhyZXNvdXJjZVR5cGU6IHN0cmluZywgc2NydXRpbnlUeXBlczogc2NoZW1hLlByb3BlcnR5U2NydXRpbnlUeXBlW10pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGltcGwgPSBzcGVjaWZpY2F0aW9uKCkuUmVzb3VyY2VUeXBlc1tyZXNvdXJjZVR5cGVdO1xuICBpZiAoIWltcGwpIHsgcmV0dXJuIFtdOyB9XG5cbiAgY29uc3QgcmV0ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICBmb3IgKGNvbnN0IFtwcm9wZXJ0eU5hbWUsIHByb3BlcnR5U3BlY10gb2YgT2JqZWN0LmVudHJpZXMoaW1wbC5Qcm9wZXJ0aWVzIHx8IHt9KSkge1xuICAgIGlmIChzY3J1dGlueVR5cGVzLmluY2x1ZGVzKHByb3BlcnR5U3BlYy5TY3J1dGlueVR5cGUgfHwgc2NoZW1hLlByb3BlcnR5U2NydXRpbnlUeXBlLk5vbmUpKSB7XG4gICAgICByZXQucHVzaChwcm9wZXJ0eU5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBuYW1lcyBvZiB0aGUgcmVzb3VyY2UgdHlwZXMgdGhhdCBuZWVkIHRvIGJlIHN1YmplY3RlZCB0byBhZGRpdGlvbmFsIHNjcnV0aW55XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzY3J1dGluaXphYmxlUmVzb3VyY2VUeXBlcyhzY3J1dGlueVR5cGVzOiBzY2hlbWEuUmVzb3VyY2VTY3J1dGlueVR5cGVbXSk6IHN0cmluZ1tdIHtcbiAgY29uc3QgcmV0ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgZm9yIChjb25zdCBbcmVzb3VyY2VUeXBlLCByZXNvdXJjZVNwZWNdIG9mIE9iamVjdC5lbnRyaWVzKHNwZWNpZmljYXRpb24oKS5SZXNvdXJjZVR5cGVzKSkge1xuICAgIGlmIChzY3J1dGlueVR5cGVzLmluY2x1ZGVzKHJlc291cmNlU3BlYy5TY3J1dGlueVR5cGUgfHwgc2NoZW1hLlJlc291cmNlU2NydXRpbnlUeXBlLk5vbmUpKSB7XG4gICAgICByZXQucHVzaChyZXNvdXJjZVR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG4iXX0=
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUEsaUNBQWlDO0FBRWpDLG1DQUFtQztBQUMxQix3QkFBTTtBQUNmLG1EQUFpQztBQUVqQzs7R0FFRztBQUNILFNBQWdCLGFBQWE7SUFDM0IsaUVBQWlFO0lBQ2pFLE9BQU8sT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUhELHNDQUdDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixJQUFJO0lBQ2xCLGlFQUFpRTtJQUNqRSxPQUFPLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFIRCxvQkFHQztBQUdEOzs7OztHQUtHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsUUFBZ0I7SUFDcEQsTUFBTSxHQUFHLEdBQUcsYUFBYSxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDUixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixRQUFRLEVBQUUsQ0FBQyxDQUFDO0tBQ3ZEO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBTkQsc0RBTUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFFBQVEsQ0FBQyxZQUFvQixFQUFFLGdCQUF5QjtJQUN0RSxNQUFNLEdBQUcsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLElBQUksZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQ3BGLE1BQU0sR0FBRyxHQUFHLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1IsT0FBTztZQUNMLFdBQVcsRUFBRSxFQUFFO1lBQ2YsVUFBVSxFQUFFLEVBQUU7U0FDZixDQUFDO0tBQ0g7SUFDRCxPQUFPLEdBQUcsQ0FB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QUU7WUFDekYsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN4QjtLQUNGO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBYkQsZ0VBYUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLDBCQUEwQixDQUFDLGFBQTRDO0lBQ3JGLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7SUFDaEMsS0FBSyxNQUFNLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDeEYsSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxZQUFZLElBQUksTUFBTSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pGLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDeEI7S0FDRjtJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQVRELGdFQVNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBDZm5MaW50RmlsZVNjaGVtYSB9IGZyb20gJy4vX3ByaXZhdGVfc2NoZW1hL2Nmbi1saW50JztcbmltcG9ydCAqIGFzIHNjaGVtYSBmcm9tICcuL3NjaGVtYSc7XG5leHBvcnQgeyBzY2hlbWEgfTtcbmV4cG9ydCAqIGZyb20gJy4vY2FubmVkLW1ldHJpY3MnO1xuXG4vKipcbiAqIFRoZSBjb21wbGV0ZSBBV1MgQ2xvdWRGb3JtYXRpb24gUmVzb3VyY2Ugc3BlY2lmaWNhdGlvbiwgaGF2aW5nIGFueSBDREsgcGF0Y2hlcyBhbmQgZW5oYW5jZW1lbnRzIGluY2x1ZGVkIGluIGl0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3BlY2lmaWNhdGlvbigpOiBzY2hlbWEuU3BlY2lmaWNhdGlvbiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gIHJldHVybiByZXF1aXJlKCcuLi9zcGVjL3NwZWNpZmljYXRpb24uanNvbicpO1xufVxuXG4vKipcbiAqIFRoZSBjb21wbGV0ZSBBV1MgQ2xvdWRGb3JtYXRpb24gUmVzb3VyY2Ugc3BlY2lmaWNhdGlvbiwgaGF2aW5nIGFueSBDREsgcGF0Y2hlcyBhbmQgZW5oYW5jZW1lbnRzIGluY2x1ZGVkIGluIGl0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZG9jcygpOiBzY2hlbWEuQ2xvdWRGb3JtYXRpb25Eb2NzRmlsZSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gIHJldHVybiByZXF1aXJlKCcuLi9zcGVjL2Nmbi1kb2NzLmpzb24nKTtcbn1cblxuXG4vKipcbiAqIFJldHVybiB0aGUgcmVzb3VyY2Ugc3BlY2lmaWNhdGlvbiBmb3IgdGhlIGdpdmVuIHR5cGVuYW1lXG4gKlxuICogVmFsaWRhdGVzIHRoYXQgdGhlIHJlc291cmNlIGV4aXN0cy4gSWYgeW91IGRvbid0IHdhbnQgdGhpcyB2YWxpZGF0aW5nIGJlaGF2aW9yLCByZWFkIGZyb21cbiAqIHNwZWNpZmljYXRpb24oKSBkaXJlY3RseS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc291cmNlU3BlY2lmaWNhdGlvbih0eXBlTmFtZTogc3RyaW5nKTogc2NoZW1hLlJlc291cmNlVHlwZSB7XG4gIGNvbnN0IHJldCA9IHNwZWNpZmljYXRpb24oKS5SZXNvdXJjZVR5cGVzW3R5cGVOYW1lXTtcbiAgaWYgKCFyZXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHN1Y2ggcmVzb3VyY2UgdHlwZTogJHt0eXBlTmFtZX1gKTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIFJldHVybiBkb2N1bWVudGF0aW9uIGZvciB0aGUgZ2l2ZW4gdHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdHlwZURvY3MocmVzb3VyY2VOYW1lOiBzdHJpbmcsIHByb3BlcnR5VHlwZU5hbWU/OiBzdHJpbmcpOiBzY2hlbWEuQ2xvdWRGb3JtYXRpb25UeXBlRG9jcyB7XG4gIGNvbnN0IGtleSA9IHByb3BlcnR5VHlwZU5hbWUgPyBgJHtyZXNvdXJjZU5hbWV9LiR7cHJvcGVydHlUeXBlTmFtZX1gIDogcmVzb3VyY2VOYW1lO1xuICBjb25zdCByZXQgPSBkb2NzKCkuVHlwZXNba2V5XTtcbiAgaWYgKCFyZXQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgcHJvcGVydGllczoge30sXG4gICAgfTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIEdldCB0aGUgcmVzb3VyY2UgYXVnbWVudGF0aW9ucyBmb3IgYSBnaXZlbiB0eXBlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvdXJjZUF1Z21lbnRhdGlvbih0eXBlTmFtZTogc3RyaW5nKTogc2NoZW1hLlJlc291cmNlQXVnbWVudGF0aW9uIHtcbiAgY29uc3QgZmlsZU5hbWUgPSB0eXBlTmFtZS5yZXBsYWNlKC86Oi9nLCAnXycpO1xuICB0cnkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gICAgcmV0dXJuIHJlcXVpcmUoYC4vYXVnbWVudGF0aW9ucy8ke2ZpbGVOYW1lfS5qc29uYCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4ge307XG4gIH1cbn1cblxuLyoqXG4gKiBHZXQgdGhlIHJlc291cmNlIGF1Z21lbnRhdGlvbnMgZm9yIGEgZ2l2ZW4gdHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2ZuTGludEFubm90YXRpb25zKHR5cGVOYW1lOiBzdHJpbmcpOiBzY2hlbWEuQ2ZuTGludFJlc291cmNlQW5ub3RhdGlvbnMge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICBjb25zdCBhbGxBbm5vdGF0aW9uczogQ2ZuTGludEZpbGVTY2hlbWEgPSByZXF1aXJlKCcuLi9zcGVjL2Nmbi1saW50Lmpzb24nKTtcblxuICByZXR1cm4ge1xuICAgIHN0YXRlZnVsOiAhIWFsbEFubm90YXRpb25zLlN0YXRlZnVsUmVzb3VyY2VzLlJlc291cmNlVHlwZXNbdHlwZU5hbWVdLFxuICAgIG11c3RCZUVtcHR5VG9EZWxldGU6IGFsbEFubm90YXRpb25zLlN0YXRlZnVsUmVzb3VyY2VzLlJlc291cmNlVHlwZXNbdHlwZU5hbWVdPy5EZWxldGVSZXF1aXJlc0VtcHR5UmVzb3VyY2UgPz8gZmFsc2UsXG4gIH07XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBwcm9wZXJ0eSBzcGVjaWZpY2F0aW9uIGZvciB0aGUgZ2l2ZW4gcmVzb3VyY2UncyBwcm9wZXJ0eVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvcGVydHlTcGVjaWZpY2F0aW9uKHR5cGVOYW1lOiBzdHJpbmcsIHByb3BlcnR5TmFtZTogc3RyaW5nKTogc2NoZW1hLlByb3BlcnR5IHtcbiAgY29uc3QgcmV0ID0gcmVzb3VyY2VTcGVjaWZpY2F0aW9uKHR5cGVOYW1lKS5Qcm9wZXJ0aWVzIVtwcm9wZXJ0eU5hbWVdO1xuICBpZiAoIXJldCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgUmVzb3VyY2UgJHt0eXBlTmFtZX0gaGFzIG5vIHByb3BlcnR5OiAke3Byb3BlcnR5TmFtZX1gKTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIFRoZSBsaXN0IG9mIHJlc291cmNlIHR5cGUgbmFtZXMgZGVmaW5lZCBpbiB0aGUgYGBzcGVjaWZpY2F0aW9uYGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvdXJjZVR5cGVzKCkge1xuICByZXR1cm4gT2JqZWN0LmtleXMoc3BlY2lmaWNhdGlvbigpLlJlc291cmNlVHlwZXMpO1xufVxuXG4vKipcbiAqIFRoZSBsaXN0IG9mIG5hbWVzcGFjZXMgZGVmaW5lZCBpbiB0aGUgYGBzcGVjaWZpY2F0aW9uYGAsIHRoYXQgaXMgcmVzb3VyY2UgbmFtZSBwcmVmaXhlcyBkb3duIHRvIHRoZSBzZWNvbmQgYGA6OmBgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbmFtZXNwYWNlcygpIHtcbiAgcmV0dXJuIEFycmF5LmZyb20obmV3IFNldChyZXNvdXJjZVR5cGVzKCkubWFwKG4gPT4gbi5zcGxpdCgnOjonLCAyKS5qb2luKCc6OicpKSkpO1xufVxuXG4vKipcbiAqIE9idGFpbiBhIGZpbHRlcmVkIHZlcnNpb24gb2YgdGhlIEFXUyBDbG91ZEZvcm1hdGlvbiBzcGVjaWZpY2F0aW9uLlxuICpcbiAqIEBwYXJhbSBmaWx0ZXIgdGhlIHByZWRpY2F0ZSB0byBiZSB1c2VkIGluIG9yZGVyIHRvIGZpbHRlciB3aGljaCByZXNvdXJjZSB0eXBlcyBmcm9tIHRoZSBgYFNwZWNpZmljYXRpb25gYCB0byBleHRyYWN0LlxuICogICAgICAgICBXaGVuIHBhc3NlZCBhcyBhIGBgc3RyaW5nYGAsIG9ubHkgdGhlIHNwZWNpZmllZCByZXNvdXJjZSB0eXBlIHdpbGwgYmUgZXh0cmFjdGVkLiBXaGVuIHBhc3NlZCBhcyBhXG4gKiAgICAgICAgIGBgUmVnRXhwYGAsIGFsbCBtYXRjaGluZyByZXNvdXJjZSB0eXBlcyB3aWxsIGJlIGV4dHJhY3RlZC4gV2hlbiBwYXNzZWQgYXMgYSBgYGZ1bmN0aW9uYGAsIGFsbCByZXNvdXJjZVxuICogICAgICAgICB0eXBlcyBmb3Igd2hpY2ggdGhlIGZ1bmN0aW9uIHJldHVybmVkIGBgdHJ1ZWBgIHdpbGwgYmUgZXh0cmFjdGVkLlxuICpcbiAqIEByZXR1cm4gYSBjb2hlcmVudCBzdWItc2V0IG9mIHRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gUmVzb3VyY2Ugc3BlY2lmaWNhdGlvbiwgaW5jbHVkaW5nIGFsbCBwcm9wZXJ0eSB0eXBlcyByZWxhdGVkXG4gKiAgICAgdG8gdGhlIHNlbGVjdGVkIHJlc291cmNlIHR5cGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyZWRTcGVjaWZpY2F0aW9uKGZpbHRlcjogc3RyaW5nIHwgUmVnRXhwIHwgRmlsdGVyKTogc2NoZW1hLlNwZWNpZmljYXRpb24ge1xuICBjb25zdCBzcGVjID0gc3BlY2lmaWNhdGlvbigpO1xuXG4gIGNvbnN0IHJlc3VsdDogc2NoZW1hLlNwZWNpZmljYXRpb24gPSB7IFJlc291cmNlVHlwZXM6IHt9LCBQcm9wZXJ0eVR5cGVzOiB7fSwgRmluZ2VycHJpbnQ6IHNwZWMuRmluZ2VycHJpbnQgfTtcbiAgY29uc3QgcHJlZGljYXRlOiBGaWx0ZXIgPSBtYWtlUHJlZGljYXRlKGZpbHRlcik7XG4gIGZvciAoY29uc3QgdHlwZSBvZiByZXNvdXJjZVR5cGVzKCkpIHtcbiAgICBpZiAoIXByZWRpY2F0ZSh0eXBlKSkgeyBjb250aW51ZTsgfVxuICAgIHJlc3VsdC5SZXNvdXJjZVR5cGVzW3R5cGVdID0gc3BlYy5SZXNvdXJjZVR5cGVzW3R5cGVdO1xuICAgIGNvbnN0IHByZWZpeCA9IGAke3R5cGV9LmA7XG4gICAgZm9yIChjb25zdCBwcm9wVHlwZSBvZiBPYmplY3Qua2V5cyhzcGVjLlByb3BlcnR5VHlwZXMhKS5maWx0ZXIobiA9PiBuLnN0YXJ0c1dpdGgocHJlZml4KSkpIHtcbiAgICAgIHJlc3VsdC5Qcm9wZXJ0eVR5cGVzW3Byb3BUeXBlXSA9IHNwZWMuUHJvcGVydHlUeXBlcyFbcHJvcFR5cGVdO1xuICAgIH1cbiAgfVxuICByZXN1bHQuRmluZ2VycHJpbnQgPSBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKEpTT04uc3RyaW5naWZ5KHJlc3VsdCkpLmRpZ2VzdCgnYmFzZTY0Jyk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCB0eXBlIEZpbHRlciA9IChuYW1lOiBzdHJpbmcpID0+IGJvb2xlYW47XG5cbi8qKlxuICogQ3JlYXRlcyBhIHByZWRpY2F0ZSBmdW5jdGlvbiBmcm9tIGEgZ2l2ZW4gZmlsdGVyLlxuICpcbiAqIEBwYXJhbSBmaWx0ZXIgd2hlbiBwcm92aWRlZCBhcyBhIGBgc3RyaW5nYGAsIHBlcmZvcm1zIGFuIGV4YWN0IG1hdGNoIGNvbXBhcmlzb24uXG4gKiAgICAgICAgIHdoZW4gcHJvdmlkZWQgYXMgYSBgYFJlZ0V4cGBgLCBwZXJmb3JtcyB1c2VzIGBgc3RyLm1hdGNoKFJlZ0V4cClgYC5cbiAqICAgICAgICAgd2hlbiBwcm92aWRlZCBhcyBhIGBgZnVuY3Rpb25gYCwgdXNlIHRoZSBmdW5jdGlvbiBhcy1pcy5cbiAqXG4gKiBAcmV0dXJucyBhIHByZWRpY2F0ZSBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gbWFrZVByZWRpY2F0ZShmaWx0ZXI6IHN0cmluZyB8IFJlZ0V4cCB8IEZpbHRlcik6IEZpbHRlciB7XG4gIGlmICh0eXBlb2YgZmlsdGVyID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBzID0+IHMgPT09IGZpbHRlcjtcbiAgfSBlbHNlIGlmICh0eXBlb2YgZmlsdGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGZpbHRlciBhcyBGaWx0ZXI7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHMgPT4gcy5tYXRjaChmaWx0ZXIpICE9IG51bGw7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIHByb3BlcnRpZXMgb2YgdGhlIGdpdmVuIHR5cGUgdGhhdCByZXF1aXJlIHRoZSBnaXZlbiBzY3J1dGlueSB0eXBlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzY3J1dGluaXphYmxlUHJvcGVydHlOYW1lcyhyZXNvdXJjZVR5cGU6IHN0cmluZywgc2NydXRpbnlUeXBlczogc2NoZW1hLlByb3BlcnR5U2NydXRpbnlUeXBlW10pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGltcGwgPSBzcGVjaWZpY2F0aW9uKCkuUmVzb3VyY2VUeXBlc1tyZXNvdXJjZVR5cGVdO1xuICBpZiAoIWltcGwpIHsgcmV0dXJuIFtdOyB9XG5cbiAgY29uc3QgcmV0ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICBmb3IgKGNvbnN0IFtwcm9wZXJ0eU5hbWUsIHByb3BlcnR5U3BlY10gb2YgT2JqZWN0LmVudHJpZXMoaW1wbC5Qcm9wZXJ0aWVzIHx8IHt9KSkge1xuICAgIGlmIChzY3J1dGlueVR5cGVzLmluY2x1ZGVzKHByb3BlcnR5U3BlYy5TY3J1dGlueVR5cGUgfHwgc2NoZW1hLlByb3BlcnR5U2NydXRpbnlUeXBlLk5vbmUpKSB7XG4gICAgICByZXQucHVzaChwcm9wZXJ0eU5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBuYW1lcyBvZiB0aGUgcmVzb3VyY2UgdHlwZXMgdGhhdCBuZWVkIHRvIGJlIHN1YmplY3RlZCB0byBhZGRpdGlvbmFsIHNjcnV0aW55XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzY3J1dGluaXphYmxlUmVzb3VyY2VUeXBlcyhzY3J1dGlueVR5cGVzOiBzY2hlbWEuUmVzb3VyY2VTY3J1dGlueVR5cGVbXSk6IHN0cmluZ1tdIHtcbiAgY29uc3QgcmV0ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgZm9yIChjb25zdCBbcmVzb3VyY2VUeXBlLCByZXNvdXJjZVNwZWNdIG9mIE9iamVjdC5lbnRyaWVzKHNwZWNpZmljYXRpb24oKS5SZXNvdXJjZVR5cGVzKSkge1xuICAgIGlmIChzY3J1dGlueVR5cGVzLmluY2x1ZGVzKHJlc291cmNlU3BlYy5TY3J1dGlueVR5cGUgfHwgc2NoZW1hLlJlc291cmNlU2NydXRpbnlUeXBlLk5vbmUpKSB7XG4gICAgICByZXQucHVzaChyZXNvdXJjZVR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG4iXX0=
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Docs for a CloudFormation resource or property type
3
+ */
4
+ export interface CloudFormationTypeDocs {
5
+ /**
6
+ * Description for this type
7
+ */
8
+ readonly description: string;
9
+ /**
10
+ * Descriptions for each of the type's properties
11
+ */
12
+ readonly properties: Record<string, string>;
13
+ /**
14
+ * Descriptions for each of the resource's attributes
15
+ */
16
+ readonly attributes?: Record<string, string>;
17
+ }
18
+ export interface CloudFormationDocsFile {
19
+ readonly Types: Record<string, CloudFormationTypeDocs>;
20
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRvY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRG9jcyBmb3IgYSBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZSBvciBwcm9wZXJ0eSB0eXBlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGb3JtYXRpb25UeXBlRG9jcyB7XG4gIC8qKlxuICAgKiBEZXNjcmlwdGlvbiBmb3IgdGhpcyB0eXBlXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXNjcmlwdGlvbnMgZm9yIGVhY2ggb2YgdGhlIHR5cGUncyBwcm9wZXJ0aWVzXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBEZXNjcmlwdGlvbnMgZm9yIGVhY2ggb2YgdGhlIHJlc291cmNlJ3MgYXR0cmlidXRlc1xuICAgKi9cbiAgcmVhZG9ubHkgYXR0cmlidXRlcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGb3JtYXRpb25Eb2NzRmlsZSB7XG4gIHJlYWRvbmx5IFR5cGVzOiBSZWNvcmQ8c3RyaW5nLCBDbG91ZEZvcm1hdGlvblR5cGVEb2NzPjtcbn0iXX0=
@@ -4,3 +4,4 @@ export * from './resource-type';
4
4
  export * from './specification';
5
5
  export * from './augmentation';
6
6
  export * from './cfn-lint';
7
+ export * from './docs';
@@ -16,4 +16,5 @@ __exportStar(require("./resource-type"), exports);
16
16
  __exportStar(require("./specification"), exports);
17
17
  __exportStar(require("./augmentation"), exports);
18
18
  __exportStar(require("./cfn-lint"), exports);
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBNkI7QUFDN0IsNkNBQTJCO0FBQzNCLGtEQUFnQztBQUNoQyxrREFBZ0M7QUFDaEMsaURBQStCO0FBQy9CLDZDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYmFzZS10eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3Byb3BlcnR5JztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb3VyY2UtdHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NwZWNpZmljYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9hdWdtZW50YXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9jZm4tbGludCc7XG4iXX0=
19
+ __exportStar(require("./docs"), exports);
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBNkI7QUFDN0IsNkNBQTJCO0FBQzNCLGtEQUFnQztBQUNoQyxrREFBZ0M7QUFDaEMsaURBQStCO0FBQy9CLDZDQUEyQjtBQUMzQix5Q0FBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Jhc2UtdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9wZXJ0eSc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc291cmNlLXR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcGVjaWZpY2F0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vYXVnbWVudGF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vY2ZuLWxpbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kb2NzJzsiXX0=
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aws-cdk/cfnspec",
3
3
  "description": "The CloudFormation resource specification used by @aws-cdk packages",
4
- "version": "2.3.0",
4
+ "version": "2.4.0",
5
5
  "scripts": {
6
6
  "update": "cdk-build && /bin/bash build-tools/update.sh && /bin/bash build-tools/update-cfnlint.sh",
7
7
  "update-metrics": "/bin/bash build-tools/update-metrics.sh",
@@ -29,14 +29,14 @@
29
29
  "main": "lib/index.js",
30
30
  "types": "lib/index.d.ts",
31
31
  "devDependencies": {
32
- "@aws-cdk/cdk-build-tools": "2.3.0",
33
- "@aws-cdk/pkglint": "2.3.0",
32
+ "@aws-cdk/cdk-build-tools": "2.4.0",
33
+ "@aws-cdk/pkglint": "2.4.0",
34
34
  "@types/fs-extra": "^8.1.2",
35
35
  "@types/jest": "^27.0.3",
36
36
  "@types/md5": "^2.3.1",
37
37
  "fast-json-patch": "^2.2.1",
38
- "jest": "^27.4.3",
39
- "json-diff": "^0.5.4",
38
+ "jest": "^27.4.5",
39
+ "json-diff": "^0.7.1",
40
40
  "sort-json": "^2.0.0"
41
41
  },
42
42
  "dependencies": {