cdktn 0.23.3 → 0.23.4

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 (72) hide show
  1. package/.jsii +437 -220
  2. package/README.md +2 -2
  3. package/lib/annotations.js +1 -1
  4. package/lib/app.js +1 -1
  5. package/lib/aspect.js +1 -1
  6. package/lib/backends/azurerm-backend.js +2 -2
  7. package/lib/backends/cloud-backend.js +4 -4
  8. package/lib/backends/consul-backend.js +2 -2
  9. package/lib/backends/cos-backend.js +2 -2
  10. package/lib/backends/gcs-backend.js +2 -2
  11. package/lib/backends/http-backend.js +2 -2
  12. package/lib/backends/local-backend.js +2 -2
  13. package/lib/backends/oss-backend.js +2 -2
  14. package/lib/backends/pg-backend.js +2 -2
  15. package/lib/backends/remote-backend.js +4 -4
  16. package/lib/backends/s3-backend.d.ts +11 -1
  17. package/lib/backends/s3-backend.js +11 -4
  18. package/lib/backends/swift-backend.js +2 -2
  19. package/lib/complex-computed-list.js +23 -23
  20. package/lib/features.d.ts +9 -0
  21. package/lib/features.js +11 -2
  22. package/lib/functions/function-availability.generated.d.ts +16 -0
  23. package/lib/functions/function-availability.generated.js +21 -0
  24. package/lib/functions/helpers.js +3 -1
  25. package/lib/functions/terraform-functions.generated.d.ts +40 -2
  26. package/lib/functions/terraform-functions.generated.js +57 -5
  27. package/lib/functions/usage-registry.d.ts +6 -0
  28. package/lib/functions/usage-registry.js +34 -0
  29. package/lib/importable-resource.js +1 -1
  30. package/lib/manifest.js +1 -1
  31. package/lib/resource.js +1 -1
  32. package/lib/synthesize/synthesizer.js +5 -1
  33. package/lib/terraform-asset.js +1 -1
  34. package/lib/terraform-backend.js +1 -1
  35. package/lib/terraform-count.js +1 -1
  36. package/lib/terraform-data-resource.js +1 -1
  37. package/lib/terraform-data-source.js +1 -1
  38. package/lib/terraform-element.js +1 -1
  39. package/lib/terraform-functions.js +1 -1
  40. package/lib/terraform-hcl-module.js +1 -1
  41. package/lib/terraform-iterator.js +5 -5
  42. package/lib/terraform-local.js +1 -1
  43. package/lib/terraform-module.js +1 -1
  44. package/lib/terraform-operators.js +1 -1
  45. package/lib/terraform-output.js +1 -1
  46. package/lib/terraform-provider.js +1 -1
  47. package/lib/terraform-provisioner.js +1 -1
  48. package/lib/terraform-remote-state.js +1 -1
  49. package/lib/terraform-resource-targets.js +1 -1
  50. package/lib/terraform-resource.js +1 -1
  51. package/lib/terraform-stack.js +6 -2
  52. package/lib/terraform-variable.js +2 -2
  53. package/lib/testing/index.js +3 -3
  54. package/lib/testing/matchers.js +1 -1
  55. package/lib/tokens/lazy.js +2 -2
  56. package/lib/tokens/resolvable.js +2 -2
  57. package/lib/tokens/string-fragments.js +1 -1
  58. package/lib/tokens/token.js +2 -2
  59. package/lib/tsconfig.tsbuildinfo +1 -1
  60. package/lib/upgrade-id-aspect.js +1 -1
  61. package/lib/validations/index.d.ts +3 -0
  62. package/lib/validations/index.js +4 -1
  63. package/lib/validations/target-versions.d.ts +71 -0
  64. package/lib/validations/target-versions.js +132 -0
  65. package/lib/validations/validate-binary-version.d.ts +10 -0
  66. package/lib/validations/validate-binary-version.js +11 -1
  67. package/lib/validations/validate-function-version-support.d.ts +21 -0
  68. package/lib/validations/validate-function-version-support.js +53 -0
  69. package/lib/validations/validate-terraform-feature-version.d.ts +34 -0
  70. package/lib/validations/validate-terraform-feature-version.js +34 -0
  71. package/package.json +8 -8
  72. package/scripts/pack.mjs +168 -0
@@ -19,6 +19,7 @@ const token_1 = require("../tokens/token");
19
19
  const tfExpression_1 = require("../tfExpression");
20
20
  const encoding_1 = require("../tokens/private/encoding");
21
21
  const errors_1 = require("../errors");
22
+ const usage_registry_1 = require("./usage-registry");
22
23
  /**
23
24
  * Determines if given str has unescaped double quotes
24
25
  * @param str String to test
@@ -137,6 +138,7 @@ function asAny(value) {
137
138
  // eslint-disable-next-line jsdoc/require-jsdoc
138
139
  function terraformFunction(name, argValidators) {
139
140
  return function (...args) {
141
+ (0, usage_registry_1.recordFunctionUsage)(name);
140
142
  if (args.length !== argValidators.length) {
141
143
  throw (0, errors_1.functionReceivedWrongNumberOfArgs)(name, argValidators.length, args.length);
142
144
  }
@@ -157,4 +159,4 @@ function terraformFunction(name, argValidators) {
157
159
  }, []));
158
160
  };
159
161
  }
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mdW5jdGlvbnMvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQStCQSw0QkFFQztBQUdELDRCQUVDO0FBR0Qsa0NBVUM7QUFHRCxvQ0FLQztBQUdELHdCQWlEQztBQUdELDRCQUtDO0FBSUQsNEJBRUM7QUFHRCw0QkFFQztBQUdELHdCQUVDO0FBR0Qsa0NBRUM7QUFHRCw4QkFFQztBQUdELHNCQU9DO0FBR0QsOENBMkJDO0FBekxELCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsMkNBQXNEO0FBQ3RELGtEQUF1QztBQUV2Qyx5REFBNkU7QUFDN0Usc0NBT21CO0FBT25COzs7O0dBSUc7QUFDSCxTQUFTLHdCQUF3QixDQUFDLEdBQVc7SUFDM0MsT0FBTyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUVELGFBQWE7QUFDYiwrQ0FBK0M7QUFDL0MsU0FBZ0IsUUFBUSxDQUFJLEtBQVE7SUFDbEMsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO0FBQ25CLENBQUM7QUFFRCwrQ0FBK0M7QUFDL0MsU0FBZ0IsUUFBUSxDQUFJLEtBQVE7SUFDbEMsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO0FBQ25CLENBQUM7QUFFRCwrQ0FBK0M7QUFDL0MsU0FBZ0IsV0FBVyxDQUFtQixLQUFRO0lBQ3BELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsb0JBQVksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNuRSxNQUFNLElBQUEsb0NBQTJCLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDakUsTUFBTSxJQUFBLHFDQUE0QixFQUFDLEtBQUssQ0FBQyxDQUFD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LEVBQ0osYUFBYSxDQUFDLE1BQU0sRUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FDWixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBQSxtQkFBSSxFQUNULElBQUk7UUFDSixnR0FBZ0c7UUFDaEcsMEZBQTBGO1FBQzFGLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzVCLElBQUksQ0FBQztnQkFDSCxNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2xDLElBQUksR0FBRyxDQUFDLFFBQVE7b0JBQUUsT0FBTyxDQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDOztvQkFDN0MsT0FBTyxDQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQyxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixNQUFNLElBQUEsMENBQWlDLEVBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMxRCxDQUFDO1FBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUNQLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IFRva2VuaXphdGlvbiwgVG9rZW4gfSBmcm9tIFwiLi4vdG9rZW5zL3Rva2VuXCI7XG5pbXBvcnQgeyBjYWxsIH0gZnJvbSBcIi4uL3RmRXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgSVJlc29sdmFibGUgfSBmcm9tIFwiLi4vdG9rZW5zL3Jlc29sdmFibGVcIjtcbmltcG9ydCB7IFRva2VuU3RyaW5nLCBleHRyYWN0VG9rZW5Eb3VibGUgfSBmcm9tIFwiLi4vdG9rZW5zL3ByaXZhdGUvZW5jb2RpbmdcIjtcbmltcG9ydCB7XG4gIGZ1bmN0aW9uQXJndW1lbnRWYWxpZGF0aW9uRmFpbHVyZSxcbiAgZnVuY3Rpb25SZWNlaXZlZFdyb25nTnVtYmVyT2ZBcmdzLFxuICBsaXN0RWxlbWVudElzT2ZXcm9uZ1R5cGUsXG4gIHZhbHVlQ29udGFpbnNVbmVzY2FwZWRRdW90ZXMsXG4gIHZhbHVlSXNJbnZhbGlkTnVtYmVyT3JUb2tlbixcbiAgdmFsdWVJc0ludmFsaWRTdHJpbmdPclRva2VuLFxufSBmcm9tIFwiLi4vZXJyb3JzXCI7XG5cbnR5cGUgVEZWYWx1ZTxUPiA9IHsgdmFyaWFkaWM/OiBib29sZWFuOyB2YWx1ZTogVCB9O1xudHlwZSBURlZhbHVlVmFsaWRhdG9yPFQ+ID0gKHZhbHVlOiBUKSA9PiBURlZhbHVlPFQ+O1xuXG50eXBlIEV4ZWN1dGFibGVUZkZ1bmN0aW9uID0gKC4uLmFyZ3M6IGFueVtdKSA9PiBJUmVzb2x2YWJsZTtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIGdpdmVuIHN0ciBoYXMgdW5lc2NhcGVkIGRvdWJsZSBxdW90ZXNcbiAqIEBwYXJhbSBzdHIgU3RyaW5nIHRvIHRlc3RcbiAqIEByZXR1cm5zIEJvb2xlYW5cbiAqL1xuZnVuY3Rpb24gaGFzVW5lc2NhcGVkRG91YmxlUXVvdGVzKHN0cjogc3RyaW5nKSB7XG4gIHJldHVybiAvKF58W15cXFxcXSkoW1xcXFxdezJ9KSpcIi8udGVzdChzdHIpO1xufVxuXG4vLyBWYWxpZGF0b3JzXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuZXhwb3J0IGZ1bmN0aW9uIGFueVZhbHVlPFQ+KHZhbHVlOiBUKTogVEZWYWx1ZTxUPiB7XG4gIHJldHVybiB7IHZhbHVlIH07XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5leHBvcnQgZnVuY3Rpb24gbWFwVmFsdWU8VD4odmFsdWU6IFQpOiBURlZhbHVlPFQ+IHtcbiAgcmV0dXJuIHsgdmFsdWUgfTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdWYWx1ZTxUIGV4dGVuZHMgc3RyaW5nPih2YWx1ZTogVCk6IFRGVmFsdWU8VD4ge1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInN0cmluZ1wiICYmICFUb2tlbml6YXRpb24uaXNSZXNvbHZhYmxlKHZhbHVlKSkge1xuICAgIHRocm93IHZhbHVlSXNJbnZhbGlkU3RyaW5nT3JUb2tlbih2YWx1ZSk7XG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIGhhc1VuZXNjYXBlZERvdWJsZVF1b3Rlcyh2YWx1ZSkpIHtcbiAgICB0aHJvdyB2YWx1ZUNvbnRhaW5zVW5lc2NhcGVkUXVvdGVzKHZhbHVlKTtcbiAgfVxuXG4gIHJldHVybiB7IHZhbHVlIH07XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5leHBvcnQgZnVuY3Rpb24gbnVtZXJpY1ZhbHVlPFQ+KHZhbHVlOiBUKTogVEZWYWx1ZTxUPiB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09IFwibnVtYmVyXCIgJiYgIVRva2VuaXphdGlvbi5pc1Jlc29sdmFibGUodmFsdWUpKSB7XG4gICAgdGhyb3cgdmFsdWVJc0ludmFsaWROdW1iZXJPclRva2VuKHZhbHVlIGFzIHN0cmluZyk7XG4gIH1cbiAgcmV0dXJuIHsgdmFsdWUgfTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmV4cG9ydCBmdW5jdGlvbiBsaXN0T2Y8VD4odHlwZTogVEZWYWx1ZVZhbGlkYXRvcjxUPik6IFRGVmFsdWVWYWxpZGF0b3I8VFtdPiB7XG4gIHJldHVybiAodmFsdWU6IGFueSkgPT4ge1xuICAgIGlmIChUb2tlbml6YXRpb24uaXNSZXNvbHZhYmxlKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHsgdmFsdWUgfTtcbiAgICB9XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAvLyAgIHRocm93IG5ldyBFcnJvcihgJHt2YWx1ZX0gaXMgbm90IGEgdmFsaWQgbGlzdGApO1xuICAgICAgcmV0dXJuIHsgdmFsdWUgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6IHZhbHVlXG4gICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT09IHVuZGVmaW5lZCAmJiBpdGVtICE9PSBudWxsKVxuICAgICAgICAubWFwKChpdGVtLCBpKSA9PiB7XG4gICAgICAgICAgaWYgKFRva2VuaXphdGlvbi5pc1Jlc29sdmFibGUoaXRlbSkpIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChUb2tlblN0cmluZy5mb3JMaXN0VG9rZW4oaXRlbSkudGVzdCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZXh0cmFjdFRva2VuRG91YmxlKGl0ZW0sIHRydWUpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChUb2tlblN0cmluZy5mb3JNYXBUb2tlbihpdGVtKS50ZXN0KCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgY29uc3QgdG9rZW5MaXN0ID0gVG9rZW5pemF0aW9uLnJldmVyc2VTdHJpbmcoaXRlbSk7XG4gICAgICAgICAgICBjb25zdCBudW1iZXJPZlRva2VucyA9XG4gICAgICAgICAgICAgIHRva2VuTGlzdC50b2tlbnMubGVuZ3RoICsgdG9rZW5MaXN0LmludHJpbnNpYy5sZW5ndGg7XG4gICAgICAgICAgICBpZiAobnVtYmVyT2ZUb2tlbnMgPT09IDEgJiYgdG9rZW5MaXN0LmxpdGVyYWxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdHlwZShpdGVtKTtcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIiA/IGBcIiR7aXRlbX1cImAgOiBpdGVtO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBsaXN0RWxlbWVudElzT2ZXcm9uZ1R5cGUodmFsdWUsIGksIGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgIH07XG4gIH07XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5leHBvcnQgZnVuY3Rpb24gdmFyaWFkaWM8VD4odHlwZTogVEZWYWx1ZVZhbGlkYXRvcjxUPik6IFRGVmFsdWVWYWxpZGF0b3I8VFtdPiB7XG4gIHJldHVybiAodmFsdWU6IGFueSkgPT4ge1xuICAgIC8vIHdlIHVzZSB0aGUgbGlzdCB2YWxpZGF0b3IgYW5kIHNldCB2YXJpYWRpYyB0byB0cnVlIGluIG9yZGVyIHRvIGhhdmUgaXQgZXhwYW5kZWQgaW4gdGhlIGFyZ3MgcGFzc2VkIHRvIHRoZSBURiBmdW5jdGlvblxuICAgIHJldHVybiB7IHZhbHVlOiBsaXN0T2YodHlwZSkodmFsdWUpLnZhbHVlLCB2YXJpYWRpYzogdHJ1ZSB9O1xuICB9O1xufVxuXG4vLyBUb2tlbml6YXRpb25cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5leHBvcnQgZnVuY3Rpb24gYXNTdHJpbmcodmFsdWU6IElSZXNvbHZhYmxlKSB7XG4gIHJldHVybiBUb2tlbi5hc1N0cmluZyh2YWx1ZSk7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5leHBvcnQgZnVuY3Rpb24gYXNOdW1iZXIodmFsdWU6IElSZXNvbHZhYmxlKSB7XG4gIHJldHVybiBUb2tlbi5hc051bWJlcih2YWx1ZSk7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5leHBvcnQgZnVuY3Rpb24gYXNMaXN0KHZhbHVlOiBJUmVzb2x2YWJsZSkge1xuICByZXR1cm4gVG9rZW4uYXNMaXN0KHZhbHVlKTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmV4cG9ydCBmdW5jdGlvbiBhc1N0cmluZ01hcCh2YWx1ZTogSVJlc29sdmFibGUpIHtcbiAgcmV0dXJuIFRva2VuLmFzU3RyaW5nTWFwKHZhbHVlKTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmV4cG9ydCBmdW5jdGlvbiBhc0Jvb2xlYW4odmFsdWU6IElSZXNvbHZhYmxlKSB7XG4gIHJldHVybiB2YWx1ZTsgLy8gQm9vbGVhbnMgY2FuIG5vdCBiZSByZXByZXNlbnRlZCBhcyBhIHRva2VuXG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5leHBvcnQgZnVuY3Rpb24gYXNBbnkodmFsdWU6IElSZXNvbHZhYmxlKSB7XG4gIC8vIE9yZGluYXJpbHkgY2FzdGluZyB0byBhbnkgY2FuIGNhdXNlIGlzc3VlcywgYnV0XG4gIC8vIGluIHRoaXMgY2FzZSBpdCBtYWtlcyB1c2luZyBmdW5jdGlvbnMgYSBiaXQgZWFzaWVyIGluIFRTXG4gIC8vIGFuZCBkb2Vzbid0IHJlYWxseSBoYXJtIG90aGVyIGxhbmd1YWdlcy5cbiAgLy8gSnNpaSBoYXMgaXNzdWVzIHdoZW4gcmV0dXJuaW5nIHRoZSB2YWx1ZSBkaXJlY3RseSxcbiAgLy8gc28gd3JhcCBhcyBhIHN0cmluZy5cbiAgcmV0dXJuIGFzU3RyaW5nKHZhbHVlKSBhcyBhbnk7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5leHBvcnQgZnVuY3Rpb24gdGVycmFmb3JtRnVuY3Rpb24oXG4gIG5hbWU6IHN0cmluZyxcbiAgYXJnVmFsaWRhdG9yczogVEZWYWx1ZVZhbGlkYXRvcjxhbnk+W10sXG4pOiBFeGVjdXRhYmxlVGZGdW5jdGlvbiB7XG4gIHJldHVybiBmdW5jdGlvbiAoLi4uYXJnczogYW55W10pIHtcbiAgICBpZiAoYXJncy5sZW5ndGggIT09IGFyZ1ZhbGlkYXRvcnMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBmdW5jdGlvblJlY2VpdmVkV3JvbmdOdW1iZXJPZkFyZ3MoXG4gICAgICAgIG5hbWUsXG4gICAgICAgIGFyZ1ZhbGlkYXRvcnMubGVuZ3RoLFxuICAgICAgICBhcmdzLmxlbmd0aCxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBjYWxsKFxuICAgICAgbmFtZSxcbiAgICAgIC8vIFdlIHVzZSBmbGF0TWFwIG5vdywgc2luY2UgbGlzdE9mKCkgd3JhcHMgZXZlcnl0aGluZyBpbiBhbiBleHRyYSBhcnJheSBidXQgdmFyaWFkaWMoKSBkb2VzIG5vdFxuICAgICAgLy8gVGhpcyBlbmFibGVzIHVzIHRvIGhhdmUgdmFyaWFkaWMgcGFzcyBtdWx0aXBsZSBhcmdzIGludG8gdGhlIGNhbGwoKSBmcm9tIGEgc2luZ2xlIGFycmF5XG4gICAgICBhcmdzLnJlZHVjZSgoY2FycnksIGFyZywgaSkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHZhbCA9IGFyZ1ZhbGlkYXRvcnNbaV0oYXJnKTtcbiAgICAgICAgICBpZiAodmFsLnZhcmlhZGljKSByZXR1cm4gWy4uLmNhcnJ5LCAuLi52YWwudmFsdWVdO1xuICAgICAgICAgIGVsc2UgcmV0dXJuIFsuLi5jYXJyeSwgdmFsLnZhbHVlXTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICB0aHJvdyBmdW5jdGlvbkFyZ3VtZW50VmFsaWRhdGlvbkZhaWx1cmUoaSwgbmFtZSwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9LCBbXSksXG4gICAgKTtcbiAgfTtcbn1cbiJdfQ==
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mdW5jdGlvbnMvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWdDQSw0QkFFQztBQUdELDRCQUVDO0FBR0Qsa0NBVUM7QUFHRCxvQ0FLQztBQUdELHdCQWlEQztBQUdELDRCQUtDO0FBSUQsNEJBRUM7QUFHRCw0QkFFQztBQUdELHdCQUVDO0FBR0Qsa0NBRUM7QUFHRCw4QkFFQztBQUdELHNCQU9DO0FBR0QsOENBNEJDO0FBM0xELCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsMkNBQXNEO0FBQ3RELGtEQUF1QztBQUV2Qyx5REFBNkU7QUFDN0Usc0NBT21CO0FBQ25CLHFEQUF1RDtBQU92RDs7OztHQUlHO0FBQ0gsU0FBUyx3QkFBd0IsQ0FBQyxHQUFXO0lBQzNDLE9BQU8sc0JBQXNCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFFRCxhQUFhO0FBQ2IsK0NBQStDO0FBQy9DLFNBQWdCLFFBQVEsQ0FBSSxLQUFRO0lBQ2xDLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUNuQixDQUFDO0FBRUQsK0NBQStDO0FBQy9DLFNBQWdCLFFBQVEsQ0FBSSxLQUFRO0lBQ2xDLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUNuQixDQUFDO0FBRUQsK0NBQStDO0FBQy9DLFNBQWdCLFdBQVcsQ0FBbUIsS0FBUTtJQUNwRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLG9CQUFZLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbkUsTUFBTSxJQUFBLG9DQUEyQixFQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2pFLE1BQU0sSUFBQSxxQ0FBNEIsRUFBQyxL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QUMsTUFBTSxFQUFFLENBQUM7WUFDekMsTUFBTSxJQUFBLDBDQUFpQyxFQUNyQyxJQUFJLEVBQ0osYUFBYSxDQUFDLE1BQU0sRUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FDWixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBQSxtQkFBSSxFQUNULElBQUk7UUFDSixnR0FBZ0c7UUFDaEcsMEZBQTBGO1FBQzFGLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzVCLElBQUksQ0FBQztnQkFDSCxNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2xDLElBQUksR0FBRyxDQUFDLFFBQVE7b0JBQUUsT0FBTyxDQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDOztvQkFDN0MsT0FBTyxDQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQyxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixNQUFNLElBQUEsMENBQWlDLEVBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMxRCxDQUFDO1FBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUNQLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IFRva2VuaXphdGlvbiwgVG9rZW4gfSBmcm9tIFwiLi4vdG9rZW5zL3Rva2VuXCI7XG5pbXBvcnQgeyBjYWxsIH0gZnJvbSBcIi4uL3RmRXhwcmVzc2lvblwiO1xuaW1wb3J0IHsgSVJlc29sdmFibGUgfSBmcm9tIFwiLi4vdG9rZW5zL3Jlc29sdmFibGVcIjtcbmltcG9ydCB7IFRva2VuU3RyaW5nLCBleHRyYWN0VG9rZW5Eb3VibGUgfSBmcm9tIFwiLi4vdG9rZW5zL3ByaXZhdGUvZW5jb2RpbmdcIjtcbmltcG9ydCB7XG4gIGZ1bmN0aW9uQXJndW1lbnRWYWxpZGF0aW9uRmFpbHVyZSxcbiAgZnVuY3Rpb25SZWNlaXZlZFdyb25nTnVtYmVyT2ZBcmdzLFxuICBsaXN0RWxlbWVudElzT2ZXcm9uZ1R5cGUsXG4gIHZhbHVlQ29udGFpbnNVbmVzY2FwZWRRdW90ZXMsXG4gIHZhbHVlSXNJbnZhbGlkTnVtYmVyT3JUb2tlbixcbiAgdmFsdWVJc0ludmFsaWRTdHJpbmdPclRva2VuLFxufSBmcm9tIFwiLi4vZXJyb3JzXCI7XG5pbXBvcnQgeyByZWNvcmRGdW5jdGlvblVzYWdlIH0gZnJvbSBcIi4vdXNhZ2UtcmVnaXN0cnlcIjtcblxudHlwZSBURlZhbHVlPFQ+ID0geyB2YXJpYWRpYz86IGJvb2xlYW47IHZhbHVlOiBUIH07XG50eXBlIFRGVmFsdWVWYWxpZGF0b3I8VD4gPSAodmFsdWU6IFQpID0+IFRGVmFsdWU8VD47XG5cbnR5cGUgRXhlY3V0YWJsZVRmRnVuY3Rpb24gPSAoLi4uYXJnczogYW55W10pID0+IElSZXNvbHZhYmxlO1xuXG4vKipcbiAqIERldGVybWluZXMgaWYgZ2l2ZW4gc3RyIGhhcyB1bmVzY2FwZWQgZG91YmxlIHF1b3Rlc1xuICogQHBhcmFtIHN0ciBTdHJpbmcgdG8gdGVzdFxuICogQHJldHVybnMgQm9vbGVhblxuICovXG5mdW5jdGlvbiBoYXNVbmVzY2FwZWREb3VibGVRdW90ZXMoc3RyOiBzdHJpbmcpIHtcbiAgcmV0dXJuIC8oXnxbXlxcXFxdKShbXFxcXF17Mn0pKlwiLy50ZXN0KHN0cik7XG59XG5cbi8vIFZhbGlkYXRvcnNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5leHBvcnQgZnVuY3Rpb24gYW55VmFsdWU8VD4odmFsdWU6IFQpOiBURlZhbHVlPFQ+IHtcbiAgcmV0dXJuIHsgdmFsdWUgfTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmV4cG9ydCBmdW5jdGlvbiBtYXBWYWx1ZTxUPih2YWx1ZTogVCk6IFRGVmFsdWU8VD4ge1xuICByZXR1cm4geyB2YWx1ZSB9O1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ1ZhbHVlPFQgZXh0ZW5kcyBzdHJpbmc+KHZhbHVlOiBUKTogVEZWYWx1ZTxUPiB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIgJiYgIVRva2VuaXphdGlvbi5pc1Jlc29sdmFibGUodmFsdWUpKSB7XG4gICAgdGhyb3cgdmFsdWVJc0ludmFsaWRTdHJpbmdPclRva2VuKHZhbHVlKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgaGFzVW5lc2NhcGVkRG91YmxlUXVvdGVzKHZhbHVlKSkge1xuICAgIHRocm93IHZhbHVlQ29udGFpbnNVbmVzY2FwZWRRdW90ZXModmFsdWUpO1xuICB9XG5cbiAgcmV0dXJuIHsgdmFsdWUgfTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmV4cG9ydCBmdW5jdGlvbiBudW1lcmljVmFsdWU8VD4odmFsdWU6IFQpOiBURlZhbHVlPFQ+IHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJudW1iZXJcIiAmJiAhVG9rZW5pemF0aW9uLmlzUmVzb2x2YWJsZSh2YWx1ZSkpIHtcbiAgICB0aHJvdyB2YWx1ZUlzSW52YWxpZE51bWJlck9yVG9rZW4odmFsdWUgYXMgc3RyaW5nKTtcbiAgfVxuICByZXR1cm4geyB2YWx1ZSB9O1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuZXhwb3J0IGZ1bmN0aW9uIGxpc3RPZjxUPih0eXBlOiBURlZhbHVlVmFsaWRhdG9yPFQ+KTogVEZWYWx1ZVZhbGlkYXRvcjxUW10+IHtcbiAgcmV0dXJuICh2YWx1ZTogYW55KSA9PiB7XG4gICAgaWYgKFRva2VuaXphdGlvbi5pc1Jlc29sdmFibGUodmFsdWUpKSB7XG4gICAgICByZXR1cm4geyB2YWx1ZSB9O1xuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIC8vICAgdGhyb3cgbmV3IEVycm9yKGAke3ZhbHVlfSBpcyBub3QgYSB2YWxpZCBsaXN0YCk7XG4gICAgICByZXR1cm4geyB2YWx1ZSB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB2YWx1ZTogdmFsdWVcbiAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAhPT0gdW5kZWZpbmVkICYmIGl0ZW0gIT09IG51bGwpXG4gICAgICAgIC5tYXAoKGl0ZW0sIGkpID0+IHtcbiAgICAgICAgICBpZiAoVG9rZW5pemF0aW9uLmlzUmVzb2x2YWJsZShpdGVtKSkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKFRva2VuU3RyaW5nLmZvckxpc3RUb2tlbihpdGVtKS50ZXN0KCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChleHRyYWN0VG9rZW5Eb3VibGUoaXRlbSwgdHJ1ZSkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKFRva2VuU3RyaW5nLmZvck1hcFRva2VuKGl0ZW0pLnRlc3QoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBjb25zdCB0b2tlbkxpc3QgPSBUb2tlbml6YXRpb24ucmV2ZXJzZVN0cmluZyhpdGVtKTtcbiAgICAgICAgICAgIGNvbnN0IG51bWJlck9mVG9rZW5zID1cbiAgICAgICAgICAgICAgdG9rZW5MaXN0LnRva2Vucy5sZW5ndGggKyB0b2tlbkxpc3QuaW50cmluc2ljLmxlbmd0aDtcbiAgICAgICAgICAgIGlmIChudW1iZXJPZlRva2VucyA9PT0gMSAmJiB0b2tlbkxpc3QubGl0ZXJhbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0eXBlKGl0ZW0pO1xuICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBpdGVtID09PSBcInN0cmluZ1wiID8gYFwiJHtpdGVtfVwiYCA6IGl0ZW07XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGxpc3RFbGVtZW50SXNPZldyb25nVHlwZSh2YWx1ZSwgaSwgZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgfTtcbiAgfTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWRpYzxUPih0eXBlOiBURlZhbHVlVmFsaWRhdG9yPFQ+KTogVEZWYWx1ZVZhbGlkYXRvcjxUW10+IHtcbiAgcmV0dXJuICh2YWx1ZTogYW55KSA9PiB7XG4gICAgLy8gd2UgdXNlIHRoZSBsaXN0IHZhbGlkYXRvciBhbmQgc2V0IHZhcmlhZGljIHRvIHRydWUgaW4gb3JkZXIgdG8gaGF2ZSBpdCBleHBhbmRlZCBpbiB0aGUgYXJncyBwYXNzZWQgdG8gdGhlIFRGIGZ1bmN0aW9uXG4gICAgcmV0dXJuIHsgdmFsdWU6IGxpc3RPZih0eXBlKSh2YWx1ZSkudmFsdWUsIHZhcmlhZGljOiB0cnVlIH07XG4gIH07XG59XG5cbi8vIFRva2VuaXphdGlvblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmV4cG9ydCBmdW5jdGlvbiBhc1N0cmluZyh2YWx1ZTogSVJlc29sdmFibGUpIHtcbiAgcmV0dXJuIFRva2VuLmFzU3RyaW5nKHZhbHVlKTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmV4cG9ydCBmdW5jdGlvbiBhc051bWJlcih2YWx1ZTogSVJlc29sdmFibGUpIHtcbiAgcmV0dXJuIFRva2VuLmFzTnVtYmVyKHZhbHVlKTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmV4cG9ydCBmdW5jdGlvbiBhc0xpc3QodmFsdWU6IElSZXNvbHZhYmxlKSB7XG4gIHJldHVybiBUb2tlbi5hc0xpc3QodmFsdWUpO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuZXhwb3J0IGZ1bmN0aW9uIGFzU3RyaW5nTWFwKHZhbHVlOiBJUmVzb2x2YWJsZSkge1xuICByZXR1cm4gVG9rZW4uYXNTdHJpbmdNYXAodmFsdWUpO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuZXhwb3J0IGZ1bmN0aW9uIGFzQm9vbGVhbih2YWx1ZTogSVJlc29sdmFibGUpIHtcbiAgcmV0dXJuIHZhbHVlOyAvLyBCb29sZWFucyBjYW4gbm90IGJlIHJlcHJlc2VudGVkIGFzIGEgdG9rZW5cbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmV4cG9ydCBmdW5jdGlvbiBhc0FueSh2YWx1ZTogSVJlc29sdmFibGUpIHtcbiAgLy8gT3JkaW5hcmlseSBjYXN0aW5nIHRvIGFueSBjYW4gY2F1c2UgaXNzdWVzLCBidXRcbiAgLy8gaW4gdGhpcyBjYXNlIGl0IG1ha2VzIHVzaW5nIGZ1bmN0aW9ucyBhIGJpdCBlYXNpZXIgaW4gVFNcbiAgLy8gYW5kIGRvZXNuJ3QgcmVhbGx5IGhhcm0gb3RoZXIgbGFuZ3VhZ2VzLlxuICAvLyBKc2lpIGhhcyBpc3N1ZXMgd2hlbiByZXR1cm5pbmcgdGhlIHZhbHVlIGRpcmVjdGx5LFxuICAvLyBzbyB3cmFwIGFzIGEgc3RyaW5nLlxuICByZXR1cm4gYXNTdHJpbmcodmFsdWUpIGFzIGFueTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmV4cG9ydCBmdW5jdGlvbiB0ZXJyYWZvcm1GdW5jdGlvbihcbiAgbmFtZTogc3RyaW5nLFxuICBhcmdWYWxpZGF0b3JzOiBURlZhbHVlVmFsaWRhdG9yPGFueT5bXSxcbik6IEV4ZWN1dGFibGVUZkZ1bmN0aW9uIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgIHJlY29yZEZ1bmN0aW9uVXNhZ2UobmFtZSk7XG4gICAgaWYgKGFyZ3MubGVuZ3RoICE9PSBhcmdWYWxpZGF0b3JzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgZnVuY3Rpb25SZWNlaXZlZFdyb25nTnVtYmVyT2ZBcmdzKFxuICAgICAgICBuYW1lLFxuICAgICAgICBhcmdWYWxpZGF0b3JzLmxlbmd0aCxcbiAgICAgICAgYXJncy5sZW5ndGgsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gY2FsbChcbiAgICAgIG5hbWUsXG4gICAgICAvLyBXZSB1c2UgZmxhdE1hcCBub3csIHNpbmNlIGxpc3RPZigpIHdyYXBzIGV2ZXJ5dGhpbmcgaW4gYW4gZXh0cmEgYXJyYXkgYnV0IHZhcmlhZGljKCkgZG9lcyBub3RcbiAgICAgIC8vIFRoaXMgZW5hYmxlcyB1cyB0byBoYXZlIHZhcmlhZGljIHBhc3MgbXVsdGlwbGUgYXJncyBpbnRvIHRoZSBjYWxsKCkgZnJvbSBhIHNpbmdsZSBhcnJheVxuICAgICAgYXJncy5yZWR1Y2UoKGNhcnJ5LCBhcmcsIGkpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB2YWwgPSBhcmdWYWxpZGF0b3JzW2ldKGFyZyk7XG4gICAgICAgICAgaWYgKHZhbC52YXJpYWRpYykgcmV0dXJuIFsuLi5jYXJyeSwgLi4udmFsLnZhbHVlXTtcbiAgICAgICAgICBlbHNlIHJldHVybiBbLi4uY2FycnksIHZhbC52YWx1ZV07XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgdGhyb3cgZnVuY3Rpb25Bcmd1bWVudFZhbGlkYXRpb25GYWlsdXJlKGksIG5hbWUsIGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfSwgW10pLFxuICAgICk7XG4gIH07XG59XG4iXX0=
@@ -29,6 +29,11 @@ export declare class FnGenerated {
29
29
  * @param {string} str
30
30
  */
31
31
  static base64encode(str: string): string;
32
+ /**
33
+ * {@link https://opentofu.org/docs/language/functions/base64gunzip base64gunzip} decodes a Base64-encoded string and uncompresses the result with gzip.
34
+ * @param {string} str
35
+ */
36
+ static base64gunzip(str: string): string;
32
37
  /**
33
38
  * {@link https://developer.hashicorp.com/terraform/language/functions/base64gzip base64gzip} compresses a string with gzip and then encodes the result in Base64 encoding.
34
39
  * @param {string} str
@@ -77,6 +82,12 @@ export declare class FnGenerated {
77
82
  * @param {number} size
78
83
  */
79
84
  static chunklist(list: any[], size: number): string[];
85
+ /**
86
+ * {@link https://opentofu.org/docs/language/functions/cidrcontains cidrcontains} determines whether a given IP address or an address prefix given in CIDR notation is within a given IP network address prefix.
87
+ * @param {string} containing_prefix
88
+ * @param {string} contained_ip_or_prefix
89
+ */
90
+ static cidrcontains(containing_prefix: string, contained_ip_or_prefix: string): import("..").IResolvable;
80
91
  /**
81
92
  * {@link https://developer.hashicorp.com/terraform/language/functions/cidrhost cidrhost} calculates a full host IP address for a given host number within a given IP network address prefix.
82
93
  * @param {string} prefix
@@ -127,6 +138,12 @@ export declare class FnGenerated {
127
138
  * @param {any} value
128
139
  */
129
140
  static contains(list: any, value: any): any;
141
+ /**
142
+ * {@link https://developer.hashicorp.com/terraform/language/functions/convert convert} converts a value to the given type constraint.
143
+ * @param {any} value
144
+ * @param {any} type
145
+ */
146
+ static convert(value: any, type: any): any;
130
147
  /**
131
148
  * {@link https://developer.hashicorp.com/terraform/language/functions/csvdecode csvdecode} decodes a string containing CSV-formatted data and produces a list of maps representing that data.
132
149
  * @param {string} str
@@ -154,6 +171,11 @@ export declare class FnGenerated {
154
171
  * @param {string} suffix
155
172
  */
156
173
  static endswith(str: string, suffix: string): import("..").IResolvable;
174
+ /**
175
+ * {@link https://developer.hashicorp.com/terraform/language/functions/ephemeralasnull ephemeralasnull} takes a value of any type and returns a similar value of the same type with any ephemeral values replaced with non-ephemeral null values and all non-ephemeral values preserved.
176
+ * @param {any} value
177
+ */
178
+ static ephemeralasnull(value: any): any;
157
179
  /**
158
180
  * {@link https://developer.hashicorp.com/terraform/language/functions/file file} reads the contents of a file at the given path and returns them as a string.
159
181
  * @param {string} path
@@ -220,7 +242,7 @@ export declare class FnGenerated {
220
242
  * @param {string} format
221
243
  * @param {Array<any>} args
222
244
  */
223
- static format(format: string, args: any[]): any;
245
+ static format(format: string, args: any[]): string;
224
246
  /**
225
247
  * {@link https://developer.hashicorp.com/terraform/language/functions/formatdate formatdate} converts a timestamp into a different time format.
226
248
  * @param {string} format
@@ -232,7 +254,7 @@ export declare class FnGenerated {
232
254
  * @param {string} format
233
255
  * @param {Array<any>} args
234
256
  */
235
- static formatlist(format: string, args: any[]): any;
257
+ static formatlist(format: string, args: any[]): string[];
236
258
  /**
237
259
  * {@link https://developer.hashicorp.com/terraform/language/functions/indent indent} adds a given number of spaces to the beginnings of all but the first line in a given multi-line string.
238
260
  * @param {number} spaces
@@ -245,6 +267,11 @@ export declare class FnGenerated {
245
267
  * @param {any} value
246
268
  */
247
269
  static index(list: any, value: any): any;
270
+ /**
271
+ * {@link https://developer.hashicorp.com/terraform/language/functions/issensitive issensitive} takes a value and returns a boolean indicating if the value is sensitive.
272
+ * @param {any} value
273
+ */
274
+ static issensitive(value: any): import("..").IResolvable;
248
275
  /**
249
276
  * @internal
250
277
  * {@link https://developer.hashicorp.com/terraform/language/functions/join join} produces a string by concatenating together all elements of a given list of strings with the given delimiter.
@@ -486,6 +513,12 @@ export declare class FnGenerated {
486
513
  * @param {any} vars
487
514
  */
488
515
  static templatefile(path: string, vars: any): any;
516
+ /**
517
+ * {@link https://developer.hashicorp.com/terraform/language/functions/templatestring templatestring} takes a string from elsewhere in the module and renders its content as a template using a supplied set of template variables.
518
+ * @param {string} template
519
+ * @param {any} vars
520
+ */
521
+ static templatestring(template: string, vars: any): string;
489
522
  /**
490
523
  * {@link https://developer.hashicorp.com/terraform/language/functions/textdecodebase64 textdecodebase64} function decodes a string that was previously Base64-encoded, and then interprets the result as characters in a specified character encoding.
491
524
  * @param {string} source
@@ -587,6 +620,11 @@ export declare class FnGenerated {
587
620
  * @param {string} str
588
621
  */
589
622
  static upper(str: string): string;
623
+ /**
624
+ * {@link https://opentofu.org/docs/language/functions/urldecode urldecode} applies URL decoding to a given encoded string.
625
+ * @param {string} str
626
+ */
627
+ static urldecode(str: string): string;
590
628
  /**
591
629
  * {@link https://developer.hashicorp.com/terraform/language/functions/urlencode urlencode} applies URL encoding to a given string.
592
630
  * @param {string} str