cdktn 0.25.0-pre.2 → 0.25.0-pre.21
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.
- package/.jsii +927 -107
- package/lib/annotations.js +4 -4
- package/lib/app.js +54 -5
- package/lib/aspect.js +3 -4
- package/lib/asset-hash.d.ts +75 -0
- package/lib/asset-hash.js +129 -0
- package/lib/assets.d.ts +168 -0
- package/lib/assets.js +128 -0
- package/lib/backends/azurerm-backend.js +4 -6
- package/lib/backends/cloud-backend.js +10 -10
- package/lib/backends/consul-backend.js +4 -6
- package/lib/backends/cos-backend.js +4 -6
- package/lib/backends/gcs-backend.js +4 -6
- package/lib/backends/http-backend.js +4 -6
- package/lib/backends/local-backend.js +38 -7
- package/lib/backends/oss-backend.js +4 -6
- package/lib/backends/pg-backend.js +4 -6
- package/lib/backends/remote-backend.js +8 -10
- package/lib/backends/s3-backend.js +4 -6
- package/lib/backends/swift-backend.js +4 -6
- package/lib/complex-computed-list.js +114 -65
- package/lib/errors.d.ts +6 -0
- package/lib/errors.js +24 -3
- package/lib/functions/provider-function.js +2 -4
- package/lib/functions/terraform-functions.generated.js +2 -4
- package/lib/ignore-strategy.d.ts +82 -0
- package/lib/ignore-strategy.js +29 -0
- package/lib/importable-resource.js +3 -4
- package/lib/index.d.ts +3 -0
- package/lib/index.js +27 -2
- package/lib/manifest.js +56 -14
- package/lib/private/fs.d.ts +74 -2
- package/lib/private/fs.js +129 -17
- package/lib/private/unique.js +35 -2
- package/lib/resource.js +3 -4
- package/lib/synthesize/synthesizer.js +43 -4
- package/lib/terraform-asset.d.ts +33 -2
- package/lib/terraform-asset.js +118 -34
- package/lib/terraform-backend.js +3 -4
- package/lib/terraform-count.js +3 -4
- package/lib/terraform-data-resource.js +12 -10
- package/lib/terraform-data-source.js +10 -4
- package/lib/terraform-dynamic-block.js +5 -2
- package/lib/terraform-dynamic-expression.js +4 -1
- package/lib/terraform-element.js +34 -6
- package/lib/terraform-ephemeral-resource.js +10 -4
- package/lib/terraform-functions.js +2 -4
- package/lib/terraform-hcl-module.js +3 -4
- package/lib/terraform-iterator.js +11 -12
- package/lib/terraform-local.js +3 -4
- package/lib/terraform-module-asset.js +45 -5
- package/lib/terraform-module.js +8 -4
- package/lib/terraform-operators.js +2 -4
- package/lib/terraform-output.js +7 -4
- package/lib/terraform-provider.js +5 -4
- package/lib/terraform-provisioner.js +2 -4
- package/lib/terraform-remote-state.js +5 -5
- package/lib/terraform-resource-targets.js +3 -7
- package/lib/terraform-resource.js +16 -5
- package/lib/terraform-stack.js +38 -38
- package/lib/terraform-variable.js +25 -22
- package/lib/testing/index.js +42 -8
- package/lib/testing/matchers.js +39 -6
- package/lib/tfExpression.js +25 -8
- package/lib/tokens/lazy.js +11 -7
- package/lib/tokens/private/dependency.js +2 -2
- package/lib/tokens/private/encoding.js +6 -1
- package/lib/tokens/private/intrinsic.js +6 -1
- package/lib/tokens/private/resolve.js +2 -5
- package/lib/tokens/private/token-map.js +4 -6
- package/lib/tokens/private/uniqueid.js +35 -2
- package/lib/tokens/resolvable.js +4 -6
- package/lib/tokens/string-fragments.js +6 -10
- package/lib/tokens/token.js +15 -18
- package/lib/upgrade-id-aspect.js +37 -6
- package/lib/validations/target-versions.js +39 -2
- package/lib/validations/validate-binary-version.js +39 -2
- package/lib/validations/validate-function-version-support.js +2 -1
- package/lib/validations/validate-provider-function-target-support.js +2 -1
- package/lib/validations/validate-provider-presence.js +10 -9
- package/lib/validations/validate-terraform-version.js +3 -1
- package/package.json +5 -5
- package/scripts/pack.mjs +57 -15
- package/lib/tsconfig.tsbuildinfo +0 -1
- package/tsconfig.json +0 -40
- package/tsconfig.test.json +0 -12
|
@@ -29,6 +29,7 @@ const terraform_stack_1 = require("../terraform-stack");
|
|
|
29
29
|
* rationale.
|
|
30
30
|
*/
|
|
31
31
|
class ValidateFunctionVersionSupport {
|
|
32
|
+
scope;
|
|
32
33
|
constructor(scope) {
|
|
33
34
|
this.scope = scope;
|
|
34
35
|
}
|
|
@@ -63,4 +64,4 @@ function availabilityHint(supportedIn) {
|
|
|
63
64
|
const parts = Object.entries(supportedIn).map(([product, range]) => `${product} ${range}`);
|
|
64
65
|
return `It is available in ${parts.join(" and ")}.`;
|
|
65
66
|
}
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtZnVuY3Rpb24tdmVyc2lvbi1zdXBwb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb25zL3ZhbGlkYXRlLWZ1bmN0aW9uLXZlcnNpb24tc3VwcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSx1REFHMkI7QUFDM0Isa0dBR3NEO0FBQ3RELHdEQUFvRDtBQUVwRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFDSCxNQUFhLDhCQUE4QjtJQUNuQjtJQUF0QixZQUFzQixLQUFpQjtRQUFqQixVQUFLLEdBQUwsS0FBSyxDQUFZO0lBQUcsQ0FBQztJQUVwQyxRQUFRO1FBQ2IsTUFBTSxLQUFLLEdBQUcsZ0NBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUM5QyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDWixDQUFDLENBQUMsZ0NBQWMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sb0JBQW9CLEdBQUcsS0FBSzthQUMvQixpQkFBaUIsRUFBRTthQUNuQixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSw0REFBMEIsQ0FBQzthQUNwRCxJQUFJLEVBQUUsQ0FBQztRQUVWLG1FQUFtRTtRQUNuRSxJQUFJLG9CQUFvQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUEsdUNBQXFCLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxPQUFPLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzNDLE1BQU0sV0FBVyxHQUFHLDREQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JELE9BQU8sSUFBQSxnREFBOEIsRUFDbkMsdUJBQXVCLElBQUksR0FBRyxFQUM5QixXQUFXLEVBQ1gsT0FBTyxFQUNQLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUM5QixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFoQ0Qsd0VBZ0NDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxXQUF1QztJQUMvRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FDM0MsQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxPQUFPLElBQUksS0FBSyxFQUFFLENBQzVDLENBQUM7SUFDRixPQUFPLHNCQUFzQixLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7QUFDdEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBJQ29uc3RydWN0LCBJVmFsaWRhdGlvbiB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBjaGVja0ZlYXR1cmVTdXBwb3J0ZWRCeVRhcmdldHMsXG4gIHJlc29sdmVUYXJnZXRWZXJzaW9ucyxcbn0gZnJvbSBcIi4vdGFyZ2V0LXZlcnNpb25zXCI7XG5pbXBvcnQge1xuICBGdW5jdGlvblZlcnNpb25Db25zdHJhaW50cyxcbiAgZnVuY3Rpb25WZXJzaW9uQ29uc3RyYWludHMsXG59IGZyb20gXCIuLi9mdW5jdGlvbnMvZnVuY3Rpb24tYXZhaWxhYmlsaXR5LmdlbmVyYXRlZFwiO1xuaW1wb3J0IHsgVGVycmFmb3JtU3RhY2sgfSBmcm9tIFwiLi4vdGVycmFmb3JtLXN0YWNrXCI7XG5cbi8qKlxuICogVmFsaWRhdGVzIHRoYXQgZXZlcnkgVGVycmFmb3JtIGZ1bmN0aW9uIHVzZWQgdGhyb3VnaCBgRm5gIGlzIHN1cHBvcnRlZCBieVxuICogdGhlIHByb2plY3QncyBkZWNsYXJlZCBUZXJyYWZvcm0vT3BlblRvZnUgdGFyZ2V0cyAoY2RrdGYuanNvblxuICogYHRhcmdldFZlcnNpb25zYCwgZGVmYXVsdGluZyB0byB0aGUgZHVhbCBwcm9kdWN0IGJhc2VsaW5lKS5cbiAqXG4gKiBNb3N0IGZ1bmN0aW9ucyBhcmUgdW5pdmVyc2FsbHkgYXZhaWxhYmxlIGFuZCBhcmUgbm90IGNoZWNrZWQgYXQgYWxsOyBvbmx5XG4gKiBmdW5jdGlvbnMgbGlzdGVkIGluIHRoZSBnZW5lcmF0ZWQgYXZhaWxhYmlsaXR5IG1hcCBhcmUgdmFsaWRhdGVkLiBUaGVcbiAqIGNoZWNrIGlzIHB1cmVseSBkZWNsYXJhdGl2ZSDigJQgbm8gYmluYXJ5IGlzIGV4ZWN1dGVkIOKAlCBzbyBzeW50aCBiZWhhdmVzXG4gKiBpZGVudGljYWxseSBpbiBDSSwgcGFja2FnZSBidWlsZHMsIGFuZCBlbnZpcm9ubWVudHMgd2l0aG91dCBUZXJyYWZvcm0gb3JcbiAqIE9wZW5Ub2Z1IGluc3RhbGxlZC4gVmVyaWZ5aW5nIHRoZSBhY3R1YWxseSBpbnN0YWxsZWQgYmluYXJ5IGlzIHRoZVxuICogc2VwYXJhdGUsIG9wdC1pbiBgdmFsaWRhdGVJbnN0YWxsZWRCaW5hcnlgIENMSSBiZWhhdmlvci5cbiAqXG4gKiBGdW5jdGlvbnMgdXNlZCB2aWEgcmF3IGVzY2FwZSBoYXRjaGVzIChvdmVycmlkZXMsIGhhbmQtd3JpdHRlbiBleHByZXNzaW9uXG4gKiBzdHJpbmdzKSBhcmUgbm90IHRyYWNrZWQgYW5kIHRoZXJlZm9yZSBub3QgdmFsaWRhdGVkLlxuICpcbiAqIFVzYWdlIGlzIHJlYWQgZnJvbSB0aGUgT1dOSU5HIFNUQUNLIChgVGVycmFmb3JtU3RhY2suX2dldFVzZWRGdW5jdGlvbnMoKWApXG4gKiByYXRoZXIgdGhhbiBmcm9tIGBub2RlLnJvb3RgOiB0aGlzIHZhbGlkYXRpb24gaXMgcmVnaXN0ZXJlZCBpblxuICogYFRlcnJhZm9ybVN0YWNrYCdzIGNvbnN0cnVjdG9yIHdpdGggdGhlIHN0YWNrIGl0c2VsZiBhcyBzY29wZSwgYW5kXG4gKiBgcmVzb2x2ZVRhcmdldFZlcnNpb25zYCBiZWxvdyB3YWxrcyBjb250ZXh0IHVwIGZyb20gdGhhdCBzYW1lIHNjb3BlLCBzbyBhXG4gKiBwZXItc3RhY2sgYHRhcmdldFZlcnNpb25zYCBvdmVycmlkZSBpcyBwb3NzaWJsZSAtIHJlYWRpbmcgYSByb290LWtleWVkXG4gKiAoQXBwLXdpZGUpIHVzYWdlIHJlY29yZCB3b3VsZCB2YWxpZGF0ZSBvbmUgc3RhY2sncyB1c2FnZSBhZ2FpbnN0IGFcbiAqIHNpYmxpbmcgc3RhY2sncyB0YXJnZXRzLiBTZWUgYFRlcnJhZm9ybVN0YWNrLl91c2VkRnVuY3Rpb25zYCBmb3IgdGhlIGZ1bGxcbiAqIHJhdGlvbmFsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFZhbGlkYXRlRnVuY3Rpb25WZXJzaW9uU3VwcG9ydCBpbXBsZW1lbnRzIElWYWxpZGF0aW9uIHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHNjb3BlOiBJQ29uc3RydWN0KSB7fVxuXG4gIHB1YmxpYyB2YWxpZGF0ZSgpIHtcbiAgICBjb25zdCBzdGFjayA9IFRlcnJhZm9ybVN0YWNrLmlzU3RhY2sodGhpcy5zY29wZSlcbiAgICAgID8gdGhpcy5zY29wZVxuICAgICAgOiBUZXJyYWZvcm1TdGFjay5vZih0aGlzLnNjb3BlKTtcbiAgICBjb25zdCBjb25zdHJhaW5lZEZ1bmN0aW9ucyA9IHN0YWNrXG4gICAgICAuX2dldFVzZWRGdW5jdGlvbnMoKVxuICAgICAgLmZpbHRlcigobmFtZSkgPT4gbmFtZSBpbiBmdW5jdGlvblZlcnNpb25Db25zdHJhaW50cylcbiAgICAgIC5zb3J0KCk7XG5cbiAgICAvLyBvbmx5IHVuaXZlcnNhbGx5IGF2YWlsYWJsZSBmdW5jdGlvbnMgaW4gdXNlOiBub3RoaW5nIHRvIHZhbGlkYXRlXG4gICAgaWYgKGNvbnN0cmFpbmVkRnVuY3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHsgdGFyZ2V0cywgZXJyb3JzIH0gPSByZXNvbHZlVGFyZ2V0VmVyc2lvbnModGhpcy5zY29wZSk7XG4gICAgaWYgKCF0YXJnZXRzKSB7XG4gICAgICByZXR1cm4gZXJyb3JzO1xuICAgIH1cblxuICAgIHJldHVybiBjb25zdHJhaW5lZEZ1bmN0aW9ucy5mbGF0TWFwKChuYW1lKSA9PiB7XG4gICAgICBjb25zdCBzdXBwb3J0ZWRJbiA9IGZ1bmN0aW9uVmVyc2lvbkNvbnN0cmFpbnRzW25hbWVdO1xuICAgICAgcmV0dXJuIGNoZWNrRmVhdHVyZVN1cHBvcnRlZEJ5VGFyZ2V0cyhcbiAgICAgICAgYFRlcnJhZm9ybSBmdW5jdGlvbiBcIiR7bmFtZX1cImAsXG4gICAgICAgIHN1cHBvcnRlZEluLFxuICAgICAgICB0YXJnZXRzLFxuICAgICAgICBhdmFpbGFiaWxpdHlIaW50KHN1cHBvcnRlZEluKSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBUZWxscyB0aGUgdXNlciB3aGVyZSB0aGUgZnVuY3Rpb24gSVMgYXZhaWxhYmxlLCBzbyB0aGV5IGNhbiBhZGp1c3QgdGhlaXJcbiAqIGRlY2xhcmVkIHRhcmdldFZlcnNpb25zIChvciBkcm9wIHRoZSBmdW5jdGlvbikuXG4gKi9cbmZ1bmN0aW9uIGF2YWlsYWJpbGl0eUhpbnQoc3VwcG9ydGVkSW46IEZ1bmN0aW9uVmVyc2lvbkNvbnN0cmFpbnRzKTogc3RyaW5nIHtcbiAgY29uc3QgcGFydHMgPSBPYmplY3QuZW50cmllcyhzdXBwb3J0ZWRJbikubWFwKFxuICAgIChbcHJvZHVjdCwgcmFuZ2VdKSA9PiBgJHtwcm9kdWN0fSAke3JhbmdlfWAsXG4gICk7XG4gIHJldHVybiBgSXQgaXMgYXZhaWxhYmxlIGluICR7cGFydHMuam9pbihcIiBhbmQgXCIpfS5gO1xufVxuIl19
|
|
@@ -30,6 +30,7 @@ const terraform_stack_1 = require("../terraform-stack");
|
|
|
30
30
|
* rationale.
|
|
31
31
|
*/
|
|
32
32
|
class ValidateProviderFunctionTargetSupport {
|
|
33
|
+
scope;
|
|
33
34
|
constructor(scope) {
|
|
34
35
|
this.scope = scope;
|
|
35
36
|
}
|
|
@@ -58,4 +59,4 @@ function availabilityHint() {
|
|
|
58
59
|
const parts = Object.entries(provider_feature_constraints_1.providerFeatureConstraints.providerFunctions).map(([product, range]) => `${product} ${range}`);
|
|
59
60
|
return `Provider-defined functions are available in ${parts.join(" and ")}.`;
|
|
60
61
|
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtcHJvdmlkZXItZnVuY3Rpb24tdGFyZ2V0LXN1cHBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbnMvdmFsaWRhdGUtcHJvdmlkZXItZnVuY3Rpb24tdGFyZ2V0LXN1cHBvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsdURBRzJCO0FBQzNCLGtGQUE2RTtBQUM3RSx3REFBb0Q7QUFFcEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCRztBQUNILE1BQWEscUNBQXFDO0lBQzFCO0lBQXRCLFlBQXNCLEtBQWlCO1FBQWpCLFVBQUssR0FBTCxLQUFLLENBQVk7SUFBRyxDQUFDO0lBRXBDLFFBQVE7UUFDYixNQUFNLEtBQUssR0FBRyxnQ0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQzlDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSztZQUNaLENBQUMsQ0FBQyxnQ0FBYyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsTUFBTSxxQkFBcUIsR0FBRyxLQUFLLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV2RSw0REFBNEQ7UUFDNUQsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkMsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFBLHVDQUFxQixFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBRUQsT0FBTyxJQUFBLGdEQUE4QixFQUNuQywrQkFBK0IscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQ2xFLHlEQUEwQixDQUFDLGlCQUFpQixFQUM1QyxPQUFPLEVBQ1AsZ0JBQWdCLEVBQUUsQ0FDbkIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTFCRCxzRkEwQkM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLGdCQUFnQjtJQUN2QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUMxQix5REFBMEIsQ0FBQyxpQkFBaUIsQ0FDN0MsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxPQUFPLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNuRCxPQUFPLCtDQUErQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7QUFDL0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBJQ29uc3RydWN0LCBJVmFsaWRhdGlvbiB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBjaGVja0ZlYXR1cmVTdXBwb3J0ZWRCeVRhcmdldHMsXG4gIHJlc29sdmVUYXJnZXRWZXJzaW9ucyxcbn0gZnJvbSBcIi4vdGFyZ2V0LXZlcnNpb25zXCI7XG5pbXBvcnQgeyBwcm92aWRlckZlYXR1cmVDb25zdHJhaW50cyB9IGZyb20gXCIuLi9wcm92aWRlci1mZWF0dXJlLWNvbnN0cmFpbnRzXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1TdGFjayB9IGZyb20gXCIuLi90ZXJyYWZvcm0tc3RhY2tcIjtcblxuLyoqXG4gKiBWYWxpZGF0ZXMgdGhhdCBhbnkgcHJvdmlkZXItZGVmaW5lZCBmdW5jdGlvbnNcbiAqIChgcHJvdmlkZXI6OjxuYW1lPjo6PGZ1bmN0aW9uPigpYCkgaW52b2tlZCB0aHJvdWdoXG4gKiBgVGVycmFmb3JtUHJvdmlkZXJGdW5jdGlvbi5pbnZva2VgIGFyZSBzdXBwb3J0ZWQgYnkgdGhlIHByb2plY3QncyBkZWNsYXJlZFxuICogVGVycmFmb3JtL09wZW5Ub2Z1IHRhcmdldHMgKGNka3RmLmpzb24gYHRhcmdldFZlcnNpb25zYCwgZGVmYXVsdGluZyB0byB0aGVcbiAqIGR1YWwgcHJvZHVjdCBiYXNlbGluZSkuXG4gKlxuICogVW5saWtlIGBWYWxpZGF0ZUZ1bmN0aW9uVmVyc2lvblN1cHBvcnRgLCB0aGVyZSBpcyBhIHNpbmdsZSB2ZXJzaW9uXG4gKiBjb25zdHJhaW50IGZvciB0aGUgd2hvbGUgZmVhdHVyZSBmYW1pbHkgKHByb3ZpZGVyLWRlZmluZWQgZnVuY3Rpb24gY2FsbFxuICogc3ludGF4KSwgbm90IG9uZSBwZXIgZnVuY3Rpb24g4oCUIHNvIHRoaXMgY2hlY2sgaXMgc2tpcHBlZCBlbnRpcmVseSB3aGVuIG5vXG4gKiBwcm92aWRlciBmdW5jdGlvbiBoYXMgYmVlbiB1c2VkLCBhbmQgb3RoZXJ3aXNlIGNoZWNrZWQgb25jZSwgbmFtaW5nIGV2ZXJ5XG4gKiB1c2VkIGZ1bmN0aW9uIHNvIHRoZSBlcnJvciBpcyBhY3Rpb25hYmxlLlxuICpcbiAqIFJlZ2lzdGVyZWQgdW5jb25kaXRpb25hbGx5OiB0aGlzIGlzIG5ldyBBUEkgc3VyZmFjZSwgYW5kIHRoZSBjaGVjayBvbmx5XG4gKiBldmVyIGZpcmVzIHdoZW4gYSBwcm92aWRlciBmdW5jdGlvbiBpcyBhY3R1YWxseSB1c2VkIOKAlFxuICogaS5lLiBpdHMgdG9rZW4gd2FzIHJlc29sdmVkIHdoaWxlIHJlbmRlcmluZyB0aGlzIHZhbGlkYXRpb24ncyBPV05JTkdcbiAqIFNUQUNLIChgVGVycmFmb3JtU3RhY2suX2dldFVzZWRQcm92aWRlckZ1bmN0aW9ucygpYCksIG5vdCB3aGlsZSByZW5kZXJpbmdcbiAqIHNvbWUgb3RoZXIgc3RhY2sgaW4gdGhlIHNhbWUgQXBwOiB0aGlzIHZhbGlkYXRpb24gaXMgcmVnaXN0ZXJlZCBpblxuICogYFRlcnJhZm9ybVN0YWNrYCdzIGNvbnN0cnVjdG9yIHdpdGggdGhlIHN0YWNrIGl0c2VsZiBhcyBzY29wZSwgYW5kXG4gKiBgcmVzb2x2ZVRhcmdldFZlcnNpb25zYCBiZWxvdyB3YWxrcyBjb250ZXh0IHVwIGZyb20gdGhhdCBzYW1lIHNjb3BlLCBzbyBhXG4gKiBwZXItc3RhY2sgYHRhcmdldFZlcnNpb25zYCBvdmVycmlkZSBpcyBwb3NzaWJsZSAtIHJlYWRpbmcgYSByb290LWtleWVkXG4gKiAoQXBwLXdpZGUpIHVzYWdlIHJlY29yZCB3b3VsZCB2YWxpZGF0ZSBvbmUgc3RhY2sncyB1c2FnZSBhZ2FpbnN0IGFcbiAqIHNpYmxpbmcgc3RhY2sncyB0YXJnZXRzLiBTZWUgYFRlcnJhZm9ybVN0YWNrLl91c2VkRnVuY3Rpb25zYCBmb3IgdGhlIGZ1bGxcbiAqIHJhdGlvbmFsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFZhbGlkYXRlUHJvdmlkZXJGdW5jdGlvblRhcmdldFN1cHBvcnQgaW1wbGVtZW50cyBJVmFsaWRhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzY29wZTogSUNvbnN0cnVjdCkge31cblxuICBwdWJsaWMgdmFsaWRhdGUoKSB7XG4gICAgY29uc3Qgc3RhY2sgPSBUZXJyYWZvcm1TdGFjay5pc1N0YWNrKHRoaXMuc2NvcGUpXG4gICAgICA/IHRoaXMuc2NvcGVcbiAgICAgIDogVGVycmFmb3JtU3RhY2sub2YodGhpcy5zY29wZSk7XG4gICAgY29uc3QgdXNlZFByb3ZpZGVyRnVuY3Rpb25zID0gc3RhY2suX2dldFVzZWRQcm92aWRlckZ1bmN0aW9ucygpLnNvcnQoKTtcblxuICAgIC8vIG5vIHByb3ZpZGVyLWRlZmluZWQgZnVuY3Rpb25zIGluIHVzZTogbm90aGluZyB0byB2YWxpZGF0ZVxuICAgIGlmICh1c2VkUHJvdmlkZXJGdW5jdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgeyB0YXJnZXRzLCBlcnJvcnMgfSA9IHJlc29sdmVUYXJnZXRWZXJzaW9ucyh0aGlzLnNjb3BlKTtcbiAgICBpZiAoIXRhcmdldHMpIHtcbiAgICAgIHJldHVybiBlcnJvcnM7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNoZWNrRmVhdHVyZVN1cHBvcnRlZEJ5VGFyZ2V0cyhcbiAgICAgIGBwcm92aWRlci1kZWZpbmVkIGZ1bmN0aW9ucyAoJHt1c2VkUHJvdmlkZXJGdW5jdGlvbnMuam9pbihcIiwgXCIpfSlgLFxuICAgICAgcHJvdmlkZXJGZWF0dXJlQ29uc3RyYWludHMucHJvdmlkZXJGdW5jdGlvbnMsXG4gICAgICB0YXJnZXRzLFxuICAgICAgYXZhaWxhYmlsaXR5SGludCgpLFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBUZWxscyB0aGUgdXNlciB3aGVyZSBwcm92aWRlci1kZWZpbmVkIGZ1bmN0aW9ucyBBUkUgYXZhaWxhYmxlLCBzbyB0aGV5XG4gKiBjYW4gYWRqdXN0IHRoZWlyIGRlY2xhcmVkIHRhcmdldFZlcnNpb25zLlxuICovXG5mdW5jdGlvbiBhdmFpbGFiaWxpdHlIaW50KCk6IHN0cmluZyB7XG4gIGNvbnN0IHBhcnRzID0gT2JqZWN0LmVudHJpZXMoXG4gICAgcHJvdmlkZXJGZWF0dXJlQ29uc3RyYWludHMucHJvdmlkZXJGdW5jdGlvbnMsXG4gICkubWFwKChbcHJvZHVjdCwgcmFuZ2VdKSA9PiBgJHtwcm9kdWN0fSAke3JhbmdlfWApO1xuICByZXR1cm4gYFByb3ZpZGVyLWRlZmluZWQgZnVuY3Rpb25zIGFyZSBhdmFpbGFibGUgaW4gJHtwYXJ0cy5qb2luKFwiIGFuZCBcIil9LmA7XG59XG4iXX0=
|
|
@@ -10,19 +10,20 @@ const terraform_stack_1 = require("../terraform-stack");
|
|
|
10
10
|
* used are defined via Constructs.
|
|
11
11
|
*/
|
|
12
12
|
class ValidateProviderPresence {
|
|
13
|
+
host;
|
|
14
|
+
/**
|
|
15
|
+
* All provider names found in the construct tree.
|
|
16
|
+
*/
|
|
17
|
+
providerNames = new Set();
|
|
18
|
+
/**
|
|
19
|
+
* All TerraformProviders found in the construct tree.
|
|
20
|
+
*/
|
|
21
|
+
foundProviders = [];
|
|
13
22
|
/**
|
|
14
23
|
* Creates a ValidateProviderPresence
|
|
15
24
|
*/
|
|
16
25
|
constructor(host) {
|
|
17
26
|
this.host = host;
|
|
18
|
-
/**
|
|
19
|
-
* All provider names found in the construct tree.
|
|
20
|
-
*/
|
|
21
|
-
this.providerNames = new Set();
|
|
22
|
-
/**
|
|
23
|
-
* All TerraformProviders found in the construct tree.
|
|
24
|
-
*/
|
|
25
|
-
this.foundProviders = [];
|
|
26
27
|
}
|
|
27
28
|
/**
|
|
28
29
|
* Checks the construct tree recursively
|
|
@@ -62,4 +63,4 @@ class ValidateProviderPresence {
|
|
|
62
63
|
}
|
|
63
64
|
}
|
|
64
65
|
exports.ValidateProviderPresence = ValidateProviderPresence;
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtcHJvdmlkZXItcHJlc2VuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbnMvdmFsaWRhdGUtcHJvdmlkZXItcHJlc2VuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsOERBQTBEO0FBQzFELDhEQUEwRDtBQUMxRCxvRUFBK0Q7QUFDL0Qsd0RBQW9EO0FBRXBEOzs7R0FHRztBQUNILE1BQWEsd0JBQXdCO0lBYWI7SUFadEI7O09BRUc7SUFDSSxhQUFhLEdBQWdCLElBQUksR0FBRyxFQUFFLENBQUM7SUFDOUM7O09BRUc7SUFDSSxjQUFjLEdBQXdCLEVBQUUsQ0FBQztJQUVoRDs7T0FFRztJQUNILFlBQXNCLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7SUFBRyxDQUFDO0lBRTFDOztPQUVHO0lBQ0ksS0FBSyxDQUFDLElBQWdCO1FBQzNCLElBQ0Usc0NBQWlCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDO1lBQzNDLDJDQUFtQixDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxFQUMvQyxDQUFDO1lBQ0QsSUFDRSxJQUFJLENBQUMsMEJBQTBCO2dCQUMvQixJQUFJLENBQUMsMEJBQTBCLENBQUMsWUFBWSxLQUFLLFdBQVcsRUFDNUQsQ0FBQztnQkFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdkUsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLHNDQUFpQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUVELEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEIsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN0RSxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQzlCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLEVBQUUsWUFBWSxLQUFLLElBQUksQ0FDM0QsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEMsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sS0FBSyxHQUFHLGdDQUFjLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQyxPQUFPO2dCQUNMLG9KQUNFLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFDYixrQ0FBa0MsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO2FBQ2hFLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBL0RELDREQStEQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBJQ29uc3RydWN0LCBJVmFsaWRhdGlvbiB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1Qcm92aWRlciB9IGZyb20gXCIuLi90ZXJyYWZvcm0tcHJvdmlkZXJcIjtcbmltcG9ydCB7IFRlcnJhZm9ybVJlc291cmNlIH0gZnJvbSBcIi4uL3RlcnJhZm9ybS1yZXNvdXJjZVwiO1xuaW1wb3J0IHsgVGVycmFmb3JtRGF0YVNvdXJjZSB9IGZyb20gXCIuLi90ZXJyYWZvcm0tZGF0YS1zb3VyY2VcIjtcbmltcG9ydCB7IFRlcnJhZm9ybVN0YWNrIH0gZnJvbSBcIi4uL3RlcnJhZm9ybS1zdGFja1wiO1xuXG4vKipcbiAqIEEgdmFsaWRhdGlvbiB0aGF0IGlzIGFkZGVkIGJ5IGRlZmF1bHQsIGVuc3VyaW5nIHRoYXQgYWxsIHByb3ZpZGVyc1xuICogdXNlZCBhcmUgZGVmaW5lZCB2aWEgQ29uc3RydWN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFZhbGlkYXRlUHJvdmlkZXJQcmVzZW5jZSBpbXBsZW1lbnRzIElWYWxpZGF0aW9uIHtcbiAgLyoqXG4gICAqIEFsbCBwcm92aWRlciBuYW1lcyBmb3VuZCBpbiB0aGUgY29uc3RydWN0IHRyZWUuXG4gICAqL1xuICBwdWJsaWMgcHJvdmlkZXJOYW1lczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG4gIC8qKlxuICAgKiBBbGwgVGVycmFmb3JtUHJvdmlkZXJzIGZvdW5kIGluIHRoZSBjb25zdHJ1Y3QgdHJlZS5cbiAgICovXG4gIHB1YmxpYyBmb3VuZFByb3ZpZGVyczogVGVycmFmb3JtUHJvdmlkZXJbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgVmFsaWRhdGVQcm92aWRlclByZXNlbmNlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaG9zdDogSUNvbnN0cnVjdCkge31cblxuICAvKipcbiAgICogQ2hlY2tzIHRoZSBjb25zdHJ1Y3QgdHJlZSByZWN1cnNpdmVseVxuICAgKi9cbiAgcHVibGljIGNoZWNrKG5vZGU6IElDb25zdHJ1Y3QpIHtcbiAgICBpZiAoXG4gICAgICBUZXJyYWZvcm1SZXNvdXJjZS5pc1RlcnJhZm9ybVJlc291cmNlKG5vZGUpIHx8XG4gICAgICBUZXJyYWZvcm1EYXRhU291cmNlLmlzVGVycmFmb3JtRGF0YVNvdXJjZShub2RlKVxuICAgICkge1xuICAgICAgaWYgKFxuICAgICAgICBub2RlLnRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhICYmXG4gICAgICAgIG5vZGUudGVycmFmb3JtR2VuZXJhdG9yTWV0YWRhdGEucHJvdmlkZXJOYW1lICE9PSBcInRlcnJhZm9ybVwiXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5wcm92aWRlck5hbWVzLmFkZChub2RlLnRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhLnByb3ZpZGVyTmFtZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKFRlcnJhZm9ybVByb3ZpZGVyLmlzVGVycmFmb3JtUHJvdmlkZXIobm9kZSkpIHtcbiAgICAgIHRoaXMuZm91bmRQcm92aWRlcnMucHVzaChub2RlKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUubm9kZS5jaGlsZHJlbikge1xuICAgICAgdGhpcy5jaGVjayhjaGlsZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1biB0aGUgdmFsaWRhdGlvblxuICAgKi9cbiAgcHVibGljIHZhbGlkYXRlKCkge1xuICAgIHRoaXMuY2hlY2sodGhpcy5ob3N0KTtcblxuICAgIGNvbnN0IG1pc3NpbmdQcm92aWRlcnMgPSBBcnJheS5mcm9tKHRoaXMucHJvdmlkZXJOYW1lcykuZmlsdGVyKChuYW1lKSA9PiB7XG4gICAgICByZXR1cm4gIXRoaXMuZm91bmRQcm92aWRlcnMuc29tZShcbiAgICAgICAgKHApID0+IHAudGVycmFmb3JtR2VuZXJhdG9yTWV0YWRhdGE/LnByb3ZpZGVyTmFtZSA9PT0gbmFtZSxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpZiAobWlzc2luZ1Byb3ZpZGVycy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc3RhY2sgPSBUZXJyYWZvcm1TdGFjay5vZih0aGlzLmhvc3QpO1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgYEZvdW5kIHJlc291cmNlcyB3aXRob3V0IGEgbWF0Y2hpbmcgcHJvdmlkZXIgY29uc3RydWN0LiBQbGVhc2UgbWFrZSBzdXJlIHRvIGFkZCBwcm92aWRlciBjb25zdHJ1Y3RzIFtlLmcuIG5ldyBSYW5kb21Qcm92aWRlciguLi4pXSB0byB5b3VyIHN0YWNrICcke1xuICAgICAgICAgIHN0YWNrLm5vZGUuaWRcbiAgICAgICAgfScgZm9yIHRoZSBmb2xsb3dpbmcgcHJvdmlkZXJzOiAke21pc3NpbmdQcm92aWRlcnMuam9pbihcIiwgXCIpfWAsXG4gICAgICBdO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -11,6 +11,8 @@ const validate_binary_version_1 = require("./validate-binary-version");
|
|
|
11
11
|
* Validates the existence of a Terraform binary and with a certain version or higher.
|
|
12
12
|
*/
|
|
13
13
|
class ValidateTerraformVersion extends validate_binary_version_1.ValidateBinaryVersion {
|
|
14
|
+
versionConstraint;
|
|
15
|
+
hint;
|
|
14
16
|
constructor(versionConstraint, hint) {
|
|
15
17
|
super(util_1.terraformBinaryName, versionConstraint, `${util_1.terraformBinaryName} version`, hint);
|
|
16
18
|
this.versionConstraint = versionConstraint;
|
|
@@ -18,4 +20,4 @@ class ValidateTerraformVersion extends validate_binary_version_1.ValidateBinaryV
|
|
|
18
20
|
}
|
|
19
21
|
}
|
|
20
22
|
exports.ValidateTerraformVersion = ValidateTerraformVersion;
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtdGVycmFmb3JtLXZlcnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbnMvdmFsaWRhdGUtdGVycmFmb3JtLXZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7O0FBRUgsa0NBQThDO0FBQzlDLHVFQUFrRTtBQUVsRTs7R0FFRztBQUNILE1BQWEsd0JBQXlCLFNBQVEsK0NBQXFCO0lBRXJEO0lBQ0E7SUFGWixZQUNZLGlCQUF5QixFQUN6QixJQUFhO1FBRXZCLEtBQUssQ0FDSCwwQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLEdBQUcsMEJBQW1CLFVBQVUsRUFDaEMsSUFBSSxDQUNMLENBQUM7UUFSUSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQVE7UUFDekIsU0FBSSxHQUFKLElBQUksQ0FBUztJQVF6QixDQUFDO0NBQ0Y7QUFaRCw0REFZQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0IHsgdGVycmFmb3JtQmluYXJ5TmFtZSB9IGZyb20gXCIuLi91dGlsXCI7XG5pbXBvcnQgeyBWYWxpZGF0ZUJpbmFyeVZlcnNpb24gfSBmcm9tIFwiLi92YWxpZGF0ZS1iaW5hcnktdmVyc2lvblwiO1xuXG4vKipcbiAqIFZhbGlkYXRlcyB0aGUgZXhpc3RlbmNlIG9mIGEgVGVycmFmb3JtIGJpbmFyeSBhbmQgd2l0aCBhIGNlcnRhaW4gdmVyc2lvbiBvciBoaWdoZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBWYWxpZGF0ZVRlcnJhZm9ybVZlcnNpb24gZXh0ZW5kcyBWYWxpZGF0ZUJpbmFyeVZlcnNpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgdmVyc2lvbkNvbnN0cmFpbnQ6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgaGludD86IHN0cmluZyxcbiAgKSB7XG4gICAgc3VwZXIoXG4gICAgICB0ZXJyYWZvcm1CaW5hcnlOYW1lLFxuICAgICAgdmVyc2lvbkNvbnN0cmFpbnQsXG4gICAgICBgJHt0ZXJyYWZvcm1CaW5hcnlOYW1lfSB2ZXJzaW9uYCxcbiAgICAgIGhpbnQsXG4gICAgKTtcbiAgfVxufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cdktn",
|
|
3
|
-
"version": "0.25.0-pre.
|
|
3
|
+
"version": "0.25.0-pre.21",
|
|
4
4
|
"description": "Cloud Development Kit for Terraform",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "jsii --silence-warnings reserved-word",
|
|
@@ -80,9 +80,9 @@
|
|
|
80
80
|
"@types/node": "22.20.1",
|
|
81
81
|
"@types/semver": "7.7.1",
|
|
82
82
|
"constructs": "10.6.0",
|
|
83
|
-
"jsii": "~
|
|
84
|
-
"jsii-pacmak": "1.
|
|
85
|
-
"typescript": "
|
|
83
|
+
"jsii": "~6.0.0",
|
|
84
|
+
"jsii-pacmak": "1.140.0",
|
|
85
|
+
"typescript": "~6.0.0"
|
|
86
86
|
},
|
|
87
87
|
"dependencies": {
|
|
88
88
|
"fflate": "0.8.3",
|
|
@@ -96,6 +96,6 @@
|
|
|
96
96
|
],
|
|
97
97
|
"stability": "experimental",
|
|
98
98
|
"peerDependencies": {
|
|
99
|
-
"constructs": "
|
|
99
|
+
"constructs": "^10.6.0"
|
|
100
100
|
}
|
|
101
101
|
}
|
package/scripts/pack.mjs
CHANGED
|
@@ -27,6 +27,10 @@ import { pacmak } from "jsii-pacmak";
|
|
|
27
27
|
|
|
28
28
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
29
29
|
const packageDir = resolve(__dirname, "..");
|
|
30
|
+
// npm ships as a .cmd shim on Windows, and Node refuses to spawn .cmd/.bat
|
|
31
|
+
// files directly (CVE-2024-27980 hardening -> spawnSync EINVAL). Route npm
|
|
32
|
+
// through a shell there so cmd.exe resolves the shim; no-op elsewhere.
|
|
33
|
+
const NPM_SPAWN_OPTS = process.platform === "win32" ? { shell: true } : {};
|
|
30
34
|
const stagingDir = join(packageDir, ".pack-staging");
|
|
31
35
|
const distOutDir = join(packageDir, "dist");
|
|
32
36
|
|
|
@@ -58,9 +62,13 @@ function resolveSourceFiles() {
|
|
|
58
62
|
console.log("Resolving cdktn's file list via `npm pack --dry-run`...");
|
|
59
63
|
const packJson = execFileSync("npm", ["pack", "--dry-run", "--json"], {
|
|
60
64
|
cwd: packageDir,
|
|
65
|
+
...NPM_SPAWN_OPTS,
|
|
61
66
|
}).toString();
|
|
62
|
-
|
|
63
|
-
|
|
67
|
+
// npm <=11 reports an array of packed packages; npm >=12 reports an object
|
|
68
|
+
// keyed by package name. Accept either so this is npm-version agnostic.
|
|
69
|
+
const parsed = JSON.parse(packJson);
|
|
70
|
+
const packInfo = Array.isArray(parsed) ? parsed[0] : Object.values(parsed)[0];
|
|
71
|
+
const files = packInfo.files
|
|
64
72
|
.map((f) => f.path)
|
|
65
73
|
.filter((p) => !p.includes(".."));
|
|
66
74
|
console.log(` ${files.length} source files to copy.`);
|
|
@@ -72,10 +80,28 @@ function resolveSourceFiles() {
|
|
|
72
80
|
*/
|
|
73
81
|
function prepareStagingDir() {
|
|
74
82
|
console.log(`Preparing staging dir at ${stagingDir}...`);
|
|
75
|
-
|
|
83
|
+
// maxRetries covers EBUSY/EPERM from a watcher still holding a handle here.
|
|
84
|
+
rmSync(stagingDir, { recursive: true, force: true, maxRetries: 5 });
|
|
76
85
|
mkdirSync(stagingDir, { recursive: true });
|
|
77
86
|
}
|
|
78
87
|
|
|
88
|
+
/**
|
|
89
|
+
* Remove the staging tree once its dist/ has been moved out, so it cannot be
|
|
90
|
+
* left behind holding a nested package.json and node_modules.
|
|
91
|
+
*
|
|
92
|
+
* Best effort: a file watcher may still hold handles inside it on Windows, and
|
|
93
|
+
* a leftover tree must not fail an otherwise successful package run. The
|
|
94
|
+
* `.pack-staging` entry in .npmignore keeps a stale tree from breaking the next
|
|
95
|
+
* `npm pack`, and the one in .nxignore keeps the nx daemon from watching it.
|
|
96
|
+
*/
|
|
97
|
+
function cleanStagingDir() {
|
|
98
|
+
try {
|
|
99
|
+
rmSync(stagingDir, { recursive: true, force: true, maxRetries: 5 });
|
|
100
|
+
} catch (err) {
|
|
101
|
+
console.warn(`Could not remove staging dir ${stagingDir}: ${err.message}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
79
105
|
/**
|
|
80
106
|
* Copy the resolved source files into the staging directory, preserving relative paths.
|
|
81
107
|
*
|
|
@@ -101,21 +127,36 @@ function copySourceFiles(sourceFiles) {
|
|
|
101
127
|
* --no-package-lock: don't pollute staging with a fresh lockfile.
|
|
102
128
|
* --prefer-offline: use the local npm cache before the network.
|
|
103
129
|
* --ignore-scripts: don't run install scripts of bundled deps; bundling needs the tree on disk only.
|
|
130
|
+
*
|
|
131
|
+
* A cached packument older than a dependency bump makes --prefer-offline report
|
|
132
|
+
* ETARGET ("No matching version found") for a version that exists. Outside CI we
|
|
133
|
+
* retry once with --prefer-online; in CI we let it fail, so a stale cache can
|
|
134
|
+
* never quietly change what gets packaged.
|
|
104
135
|
*/
|
|
105
136
|
function installRuntimeDeps() {
|
|
106
137
|
console.log("Installing runtime deps into staging via npm...");
|
|
107
|
-
|
|
108
|
-
"
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
138
|
+
const args = [
|
|
139
|
+
"install",
|
|
140
|
+
"--omit=dev",
|
|
141
|
+
"--omit=optional",
|
|
142
|
+
"--no-package-lock",
|
|
143
|
+
"--ignore-scripts",
|
|
144
|
+
];
|
|
145
|
+
try {
|
|
146
|
+
run("npm", [...args, "--prefer-offline"], {
|
|
147
|
+
cwd: stagingDir,
|
|
148
|
+
...NPM_SPAWN_OPTS,
|
|
149
|
+
});
|
|
150
|
+
} catch (err) {
|
|
151
|
+
if (process.env.CI) throw err;
|
|
152
|
+
console.log(
|
|
153
|
+
"npm install failed with --prefer-offline; retrying with --prefer-online in case the local cache is stale...",
|
|
154
|
+
);
|
|
155
|
+
run("npm", [...args, "--prefer-online"], {
|
|
156
|
+
cwd: stagingDir,
|
|
157
|
+
...NPM_SPAWN_OPTS,
|
|
158
|
+
});
|
|
159
|
+
}
|
|
119
160
|
}
|
|
120
161
|
|
|
121
162
|
/**
|
|
@@ -165,4 +206,5 @@ installRuntimeDeps();
|
|
|
165
206
|
await runJsiiPacmak(targets);
|
|
166
207
|
runGoCopyrightHeader();
|
|
167
208
|
moveDistOut();
|
|
209
|
+
cleanStagingDir();
|
|
168
210
|
console.log("Done.");
|