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
package/lib/annotations.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.Annotations = exports.DISABLE_STACK_TRACE_IN_METADATA = exports.AnnotationMetadataEntryType = void 0;
|
|
5
4
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
@@ -14,6 +13,8 @@ exports.DISABLE_STACK_TRACE_IN_METADATA = "@cdktf/disable_stack_trace_in_metadat
|
|
|
14
13
|
* Includes API for attaching annotations such as warning messages to constructs.
|
|
15
14
|
*/
|
|
16
15
|
class Annotations {
|
|
16
|
+
scope;
|
|
17
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.Annotations", version: "0.25.0-pre.21" };
|
|
17
18
|
/**
|
|
18
19
|
* Returns the annotations API for a construct scope.
|
|
19
20
|
* @param scope The scope
|
|
@@ -21,6 +22,7 @@ class Annotations {
|
|
|
21
22
|
static of(scope) {
|
|
22
23
|
return new Annotations(scope);
|
|
23
24
|
}
|
|
25
|
+
stackTraces;
|
|
24
26
|
constructor(scope) {
|
|
25
27
|
this.scope = scope;
|
|
26
28
|
const disableTrace = scope.node.tryGetContext(exports.DISABLE_STACK_TRACE_IN_METADATA) || false;
|
|
@@ -68,6 +70,4 @@ class Annotations {
|
|
|
68
70
|
}
|
|
69
71
|
}
|
|
70
72
|
exports.Annotations = Annotations;
|
|
71
|
-
|
|
72
|
-
Annotations[_a] = { fqn: "cdktn.Annotations", version: "0.25.0-pre.2" };
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYW5ub3RhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFPQSxJQUFZLDJCQUlYO0FBSkQsV0FBWSwyQkFBMkI7SUFDckMsbURBQW9CLENBQUE7SUFDcEIsbURBQW9CLENBQUE7SUFDcEIscURBQXNCLENBQUE7QUFDeEIsQ0FBQyxFQUpXLDJCQUEyQiwyQ0FBM0IsMkJBQTJCLFFBSXRDO0FBRVksUUFBQSwrQkFBK0IsR0FDMUMsd0NBQXdDLENBQUM7QUFFM0M7O0dBRUc7QUFDSCxNQUFhLFdBQVc7SUFDdEI7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFpQjtRQUNoQyxPQUFPLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFJRCxZQUFxQyxLQUFpQjtRQUFqQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ3BELE1BQU0sWUFBWSxHQUNoQixLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyx1Q0FBK0IsQ0FBQyxJQUFJLEtBQUssQ0FBQztRQUVyRSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsWUFBWSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLFVBQVUsQ0FBQyxPQUFlO1FBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxPQUFPLENBQUMsT0FBZTtRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLDJCQUEyQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFFBQVEsQ0FBQyxPQUFlO1FBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssVUFBVSxDQUFDLEtBQWtDLEVBQUUsT0FBZTtRQUNwRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRTtZQUMxQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVc7U0FDN0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUE1REgsa0NBNkRDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbi8vIE9yaWdpbmFsbHkgZnJvbSBhd3MtY2RrIHYyIGJlY2F1c2Ugd2l0aCBjb25zdHJ1Y3RzIHYxMCBhZGRNZXNzYWdlIHdhcyByZW1vdmVkXG4vLyBpbiBmYXZvciBvZiBBbm5vdGF0aW9ucyBpbiB0aGUgQVdTIENES1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvZGNhZTNlZWFkMGRiZjlhY2IxZWQ4MGJhOTViYjEwNGM2NGNiMWJkNy9wYWNrYWdlcy9AYXdzLWNkay9jb3JlL2xpYi9hbm5vdGF0aW9ucy50c1xuaW1wb3J0IHsgSUNvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBlbnVtIEFubm90YXRpb25NZXRhZGF0YUVudHJ5VHlwZSB7XG4gIElORk8gPSBcIkBjZGt0Zi9pbmZvXCIsXG4gIFdBUk4gPSBcIkBjZGt0Zi93YXJuXCIsXG4gIEVSUk9SID0gXCJAY2RrdGYvZXJyb3JcIixcbn1cblxuZXhwb3J0IGNvbnN0IERJU0FCTEVfU1RBQ0tfVFJBQ0VfSU5fTUVUQURBVEEgPVxuICBcIkBjZGt0Zi9kaXNhYmxlX3N0YWNrX3RyYWNlX2luX21ldGFkYXRhXCI7XG5cbi8qKlxuICogSW5jbHVkZXMgQVBJIGZvciBhdHRhY2hpbmcgYW5ub3RhdGlvbnMgc3VjaCBhcyB3YXJuaW5nIG1lc3NhZ2VzIHRvIGNvbnN0cnVjdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBbm5vdGF0aW9ucyB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBhbm5vdGF0aW9ucyBBUEkgZm9yIGEgY29uc3RydWN0IHNjb3BlLlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHNjb3BlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHNjb3BlOiBJQ29uc3RydWN0KSB7XG4gICAgcmV0dXJuIG5ldyBBbm5vdGF0aW9ucyhzY29wZSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHN0YWNrVHJhY2VzOiBib29sZWFuO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzY29wZTogSUNvbnN0cnVjdCkge1xuICAgIGNvbnN0IGRpc2FibGVUcmFjZSA9XG4gICAgICBzY29wZS5ub2RlLnRyeUdldENvbnRleHQoRElTQUJMRV9TVEFDS19UUkFDRV9JTl9NRVRBREFUQSkgfHwgZmFsc2U7XG5cbiAgICB0aGlzLnN0YWNrVHJhY2VzID0gIWRpc2FibGVUcmFjZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgd2FybmluZyBtZXRhZGF0YSBlbnRyeSB0byB0aGlzIGNvbnN0cnVjdC5cbiAgICpcbiAgICogVGhlIENMSSB3aWxsIGRpc3BsYXkgdGhlIHdhcm5pbmcgd2hlbiBhbiBhcHAgaXMgc3ludGhlc2l6ZWQuXG4gICAqIEluIGEgZnV0dXJlIHJlbGVhc2UgdGhlIENMSSBtaWdodCBpbnRyb2R1Y2UgYSAtLXN0cmljdCBmbGFnIHdoaWNoXG4gICAqIHdpbGwgdGhlbiBmYWlsIHRoZSBzeW50aGVzaXMgaWYgaXQgZW5jb3VudGVycyBhIHdhcm5pbmcuXG4gICAqXG4gICAqIEBwYXJhbSBtZXNzYWdlIFRoZSB3YXJuaW5nIG1lc3NhZ2UuXG4gICAqL1xuICBwdWJsaWMgYWRkV2FybmluZyhtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmFkZE1lc3NhZ2UoQW5ub3RhdGlvbk1ldGFkYXRhRW50cnlUeXBlLldBUk4sIG1lc3NhZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gaW5mbyBtZXRhZGF0YSBlbnRyeSB0byB0aGlzIGNvbnN0cnVjdC5cbiAgICpcbiAgICogVGhlIENMSSB3aWxsIGRpc3BsYXkgdGhlIGluZm8gbWVzc2FnZSB3aGVuIGFwcHMgYXJlIHN5bnRoZXNpemVkLlxuICAgKlxuICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgaW5mbyBtZXNzYWdlLlxuICAgKi9cbiAgcHVibGljIGFkZEluZm8obWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5hZGRNZXNzYWdlKEFubm90YXRpb25NZXRhZGF0YUVudHJ5VHlwZS5JTkZPLCBtZXNzYWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIHsgXCJlcnJvclwiOiA8bWVzc2FnZT4gfSBtZXRhZGF0YSBlbnRyeSB0byB0aGlzIGNvbnN0cnVjdC5cbiAgICogVGhlIHRvb2xraXQgd2lsbCBmYWlsIHN5bnRoZXNpcyB3aGVuIGVycm9ycyBhcmUgcmVwb3J0ZWQuXG4gICAqIEBwYXJhbSBtZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgcHVibGljIGFkZEVycm9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHRoaXMuYWRkTWVzc2FnZShBbm5vdGF0aW9uTWV0YWRhdGFFbnRyeVR5cGUuRVJST1IsIG1lc3NhZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBtZXNzYWdlIG1ldGFkYXRhIGVudHJ5IHRvIHRoZSBjb25zdHJ1Y3Qgbm9kZSwgdG8gYmUgZGlzcGxheWVkIGJ5IHRoZSBDREsgQ0xJLlxuICAgKiBAcGFyYW0gbGV2ZWwgVGhlIG1lc3NhZ2UgbGV2ZWxcbiAgICogQHBhcmFtIG1lc3NhZ2UgVGhlIG1lc3NhZ2UgaXRzZWxmXG4gICAqL1xuICBwcml2YXRlIGFkZE1lc3NhZ2UobGV2ZWw6IEFubm90YXRpb25NZXRhZGF0YUVudHJ5VHlwZSwgbWVzc2FnZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zY29wZS5ub2RlLmFkZE1ldGFkYXRhKGxldmVsLCBtZXNzYWdlLCB7XG4gICAgICBzdGFja1RyYWNlOiB0aGlzLnN0YWNrVHJhY2VzLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYW5ub3RhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQU9BLElBQVksMkJBSVg7QUFKRCxXQUFZLDJCQUEyQjtJQUNyQyxtREFBb0IsQ0FBQTtJQUNwQixtREFBb0IsQ0FBQTtJQUNwQixxREFBc0IsQ0FBQTtBQUN4QixDQUFDLEVBSlcsMkJBQTJCLDJDQUEzQiwyQkFBMkIsUUFJdEM7QUFFWSxRQUFBLCtCQUErQixHQUMxQyx3Q0FBd0MsQ0FBQztBQUUzQzs7R0FFRztBQUNILE1BQWEsV0FBVztJQVdlOztJQVZyQzs7O09BR0c7SUFDSSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWlCO1FBQ2hDLE9BQU8sSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVnQixXQUFXLENBQVU7SUFFdEMsWUFBcUMsS0FBaUI7UUFBakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNwRCxNQUFNLFlBQVksR0FDaEIsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsdUNBQStCLENBQUMsSUFBSSxLQUFLLENBQUM7UUFFckUsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLFlBQVksQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxVQUFVLENBQUMsT0FBZTtRQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLDJCQUEyQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksT0FBTyxDQUFDLE9BQWU7UUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxRQUFRLENBQUMsT0FBZTtRQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLDJCQUEyQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLFVBQVUsQ0FBQyxLQUFrQyxFQUFFLE9BQWU7UUFDcEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUU7WUFDMUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBNURILGtDQTZEQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4vLyBPcmlnaW5hbGx5IGZyb20gYXdzLWNkayB2MiBiZWNhdXNlIHdpdGggY29uc3RydWN0cyB2MTAgYWRkTWVzc2FnZSB3YXMgcmVtb3ZlZFxuLy8gaW4gZmF2b3Igb2YgQW5ub3RhdGlvbnMgaW4gdGhlIEFXUyBDREtcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL2RjYWUzZWVhZDBkYmY5YWNiMWVkODBiYTk1YmIxMDRjNjRjYjFiZDcvcGFja2FnZXMvQGF3cy1jZGsvY29yZS9saWIvYW5ub3RhdGlvbnMudHNcbmltcG9ydCB7IElDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5leHBvcnQgZW51bSBBbm5vdGF0aW9uTWV0YWRhdGFFbnRyeVR5cGUge1xuICBJTkZPID0gXCJAY2RrdGYvaW5mb1wiLFxuICBXQVJOID0gXCJAY2RrdGYvd2FyblwiLFxuICBFUlJPUiA9IFwiQGNka3RmL2Vycm9yXCIsXG59XG5cbmV4cG9ydCBjb25zdCBESVNBQkxFX1NUQUNLX1RSQUNFX0lOX01FVEFEQVRBID1cbiAgXCJAY2RrdGYvZGlzYWJsZV9zdGFja190cmFjZV9pbl9tZXRhZGF0YVwiO1xuXG4vKipcbiAqIEluY2x1ZGVzIEFQSSBmb3IgYXR0YWNoaW5nIGFubm90YXRpb25zIHN1Y2ggYXMgd2FybmluZyBtZXNzYWdlcyB0byBjb25zdHJ1Y3RzLlxuICovXG5leHBvcnQgY2xhc3MgQW5ub3RhdGlvbnMge1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgYW5ub3RhdGlvbnMgQVBJIGZvciBhIGNvbnN0cnVjdCBzY29wZS5cbiAgICogQHBhcmFtIHNjb3BlIFRoZSBzY29wZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZihzY29wZTogSUNvbnN0cnVjdCkge1xuICAgIHJldHVybiBuZXcgQW5ub3RhdGlvbnMoc2NvcGUpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdGFja1RyYWNlczogYm9vbGVhbjtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc2NvcGU6IElDb25zdHJ1Y3QpIHtcbiAgICBjb25zdCBkaXNhYmxlVHJhY2UgPVxuICAgICAgc2NvcGUubm9kZS50cnlHZXRDb250ZXh0KERJU0FCTEVfU1RBQ0tfVFJBQ0VfSU5fTUVUQURBVEEpIHx8IGZhbHNlO1xuXG4gICAgdGhpcy5zdGFja1RyYWNlcyA9ICFkaXNhYmxlVHJhY2U7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHdhcm5pbmcgbWV0YWRhdGEgZW50cnkgdG8gdGhpcyBjb25zdHJ1Y3QuXG4gICAqXG4gICAqIFRoZSBDTEkgd2lsbCBkaXNwbGF5IHRoZSB3YXJuaW5nIHdoZW4gYW4gYXBwIGlzIHN5bnRoZXNpemVkLlxuICAgKiBJbiBhIGZ1dHVyZSByZWxlYXNlIHRoZSBDTEkgbWlnaHQgaW50cm9kdWNlIGEgLS1zdHJpY3QgZmxhZyB3aGljaFxuICAgKiB3aWxsIHRoZW4gZmFpbCB0aGUgc3ludGhlc2lzIGlmIGl0IGVuY291bnRlcnMgYSB3YXJuaW5nLlxuICAgKlxuICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgd2FybmluZyBtZXNzYWdlLlxuICAgKi9cbiAgcHVibGljIGFkZFdhcm5pbmcobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgdGhpcy5hZGRNZXNzYWdlKEFubm90YXRpb25NZXRhZGF0YUVudHJ5VHlwZS5XQVJOLCBtZXNzYWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIGluZm8gbWV0YWRhdGEgZW50cnkgdG8gdGhpcyBjb25zdHJ1Y3QuXG4gICAqXG4gICAqIFRoZSBDTEkgd2lsbCBkaXNwbGF5IHRoZSBpbmZvIG1lc3NhZ2Ugd2hlbiBhcHBzIGFyZSBzeW50aGVzaXplZC5cbiAgICpcbiAgICogQHBhcmFtIG1lc3NhZ2UgVGhlIGluZm8gbWVzc2FnZS5cbiAgICovXG4gIHB1YmxpYyBhZGRJbmZvKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuYWRkTWVzc2FnZShBbm5vdGF0aW9uTWV0YWRhdGFFbnRyeVR5cGUuSU5GTywgbWVzc2FnZSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbiB7IFwiZXJyb3JcIjogPG1lc3NhZ2U+IH0gbWV0YWRhdGEgZW50cnkgdG8gdGhpcyBjb25zdHJ1Y3QuXG4gICAqIFRoZSB0b29sa2l0IHdpbGwgZmFpbCBzeW50aGVzaXMgd2hlbiBlcnJvcnMgYXJlIHJlcG9ydGVkLlxuICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS5cbiAgICovXG4gIHB1YmxpYyBhZGRFcnJvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmFkZE1lc3NhZ2UoQW5ub3RhdGlvbk1ldGFkYXRhRW50cnlUeXBlLkVSUk9SLCBtZXNzYWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgbWVzc2FnZSBtZXRhZGF0YSBlbnRyeSB0byB0aGUgY29uc3RydWN0IG5vZGUsIHRvIGJlIGRpc3BsYXllZCBieSB0aGUgQ0RLIENMSS5cbiAgICogQHBhcmFtIGxldmVsIFRoZSBtZXNzYWdlIGxldmVsXG4gICAqIEBwYXJhbSBtZXNzYWdlIFRoZSBtZXNzYWdlIGl0c2VsZlxuICAgKi9cbiAgcHJpdmF0ZSBhZGRNZXNzYWdlKGxldmVsOiBBbm5vdGF0aW9uTWV0YWRhdGFFbnRyeVR5cGUsIG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHRoaXMuc2NvcGUubm9kZS5hZGRNZXRhZGF0YShsZXZlbCwgbWVzc2FnZSwge1xuICAgICAgc3RhY2tUcmFjZTogdGhpcy5zdGFja1RyYWNlcyxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
package/lib/app.js
CHANGED
|
@@ -1,12 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
3
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
36
|
exports.App = exports.CONTEXT_ENV = void 0;
|
|
5
37
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
38
|
// Copyright (c) HashiCorp, Inc
|
|
7
39
|
// SPDX-License-Identifier: MPL-2.0
|
|
8
40
|
const constructs_1 = require("constructs");
|
|
9
|
-
const fs = require("fs");
|
|
41
|
+
const fs = __importStar(require("fs"));
|
|
10
42
|
const package_json_1 = require("../package.json");
|
|
11
43
|
const annotations_1 = require("./annotations");
|
|
12
44
|
const manifest_1 = require("./manifest");
|
|
@@ -19,6 +51,25 @@ exports.CONTEXT_ENV = "CDKTF_CONTEXT_JSON";
|
|
|
19
51
|
* Represents a cdktn application.
|
|
20
52
|
*/
|
|
21
53
|
class App extends constructs_1.Construct {
|
|
54
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.App", version: "0.25.0-pre.21" };
|
|
55
|
+
/**
|
|
56
|
+
* The output directory into which resources will be synthesized.
|
|
57
|
+
*/
|
|
58
|
+
outdir;
|
|
59
|
+
hclOutput;
|
|
60
|
+
/**
|
|
61
|
+
* The stack which will be synthesized. If not set, all stacks will be synthesized.
|
|
62
|
+
*/
|
|
63
|
+
targetStackId;
|
|
64
|
+
manifest;
|
|
65
|
+
/**
|
|
66
|
+
* Whether to skip all validations during synthesis of the app
|
|
67
|
+
*/
|
|
68
|
+
skipValidation;
|
|
69
|
+
/**
|
|
70
|
+
* Whether to skip backend validation during synthesis of the app
|
|
71
|
+
*/
|
|
72
|
+
skipBackendValidation;
|
|
22
73
|
/**
|
|
23
74
|
* Defines an app
|
|
24
75
|
* @param config configuration
|
|
@@ -118,6 +169,4 @@ class App extends constructs_1.Construct {
|
|
|
118
169
|
}
|
|
119
170
|
}
|
|
120
171
|
exports.App = App;
|
|
121
|
-
_a = JSII_RTTI_SYMBOL_1;
|
|
122
|
-
App[_a] = { fqn: "cdktn.App", version: "0.25.0-pre.2" };
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsMkNBQW1EO0FBQ25ELHlCQUF5QjtBQUN6QixrREFBMEM7QUFDMUMsK0NBQWdFO0FBQ2hFLHlDQUFzQztBQUV0Qyx1REFBbUQ7QUFDbkQscUNBSWtCO0FBQ2xCLHlDQUFrRTtBQUVsRSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQzlCLFFBQUEsV0FBVyxHQUFHLG9CQUFvQixDQUFDO0FBK0NoRDs7R0FFRztBQUNILE1BQWEsR0FBSSxTQUFRLHNCQUFTO0lBeUJoQzs7O09BR0c7SUFDSCxZQUFZLFNBQW9CLEVBQUU7UUFDaEMsS0FBSyxDQUFDLFNBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFekQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLFdBQVcsQ0FBQztRQUN2RSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO1FBQ2xELElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDO1FBQzFDLElBQUksWUFBWSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQy9CLFNBQVMsR0FBRyxZQUFZLEtBQUssTUFBTSxDQUFDO1FBQ3RDLENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUM7UUFDdkQsSUFBSSxDQUFDLGNB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LENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4QixDQUFDO1FBRUQsd0JBQXdCO1FBQ3hCLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQVcsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sc0JBQXNCLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFMUUsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDO1lBQzVELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDOztBQTNKSCxrQkE0SkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHsgQ29uc3RydWN0LCBJQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgdmVyc2lvbiB9IGZyb20gXCIuLi9wYWNrYWdlLmpzb25cIjtcbmltcG9ydCB7IERJU0FCTEVfU1RBQ0tfVFJBQ0VfSU5fTUVUQURBVEEgfSBmcm9tIFwiLi9hbm5vdGF0aW9uc1wiO1xuaW1wb3J0IHsgTWFuaWZlc3QgfSBmcm9tIFwiLi9tYW5pZmVzdFwiO1xuaW1wb3J0IHsgSVN5bnRoZXNpc1Nlc3Npb24gfSBmcm9tIFwiLi9zeW50aGVzaXplXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1TdGFjayB9IGZyb20gXCIuL3RlcnJhZm9ybS1zdGFja1wiO1xuaW1wb3J0IHtcbiAgYXBwVmFsaWRhdGlvbkZhaWx1cmUsXG4gIGNvbnN0cnVjdHNPdXRzaWRlT2ZTdGFja3MsXG4gIG5vQXBwRm91bmQsXG59IGZyb20gXCIuL2Vycm9yc1wiO1xuaW1wb3J0IHsgRkFJTF9PTl9DT05TVFJVQ1RTX09VVFNJREVfT0ZfU1RBQ0tTIH0gZnJvbSBcIi4vZmVhdHVyZXNcIjtcblxuY29uc3QgQVBQX1NZTUJPTCA9IFN5bWJvbC5mb3IoXCJjZGt0Zi9BcHBcIik7XG5leHBvcnQgY29uc3QgQ09OVEVYVF9FTlYgPSBcIkNES1RGX0NPTlRFWFRfSlNPTlwiO1xuZXhwb3J0IGludGVyZmFjZSBBcHBDb25maWcge1xuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSB0byBvdXRwdXQgVGVycmFmb3JtIHJlc291cmNlcy5cbiAgICpcbiAgICogSWYgeW91IGFyZSB1c2luZyB0aGUgQ0RLVE4gQ0xJLCB0aGlzIHZhbHVlIGlzIGF1dG9tYXRpY2FsbHkgc2V0IGZyb20gb25lIG9mIHRoZSBmb2xsb3dpbmcgdGhyZWUgc291cmNlczpcbiAgICogLSBUaGUgYC1vYCAvIGAtLW91dHB1dGAgQ0xJIG9wdGlvblxuICAgKiAtIFRoZSBgQ0RLVEZfT1VURElSYCBlbnZpcm9ubWVudCB2YXJpYWJsZVxuICAgKiAtIFRoZSBgb3V0ZGlyYCBrZXkgaW4gYGNka3RmLmpzb25gXG4gICAqXG4gICAqIElmIHlvdSBhcmUgdXNpbmcgdGhlIENES1ROIENMSSBhbmQgd2FudCB0byBzZXQgYSBkaWZmZXJlbnQgdmFsdWUgaGVyZSwgeW91IHdpbGwgYWxzbyBuZWVkIHRvIHNldCB0aGUgc2FtZSB2YWx1ZSB2aWEgb25lIG9mIHRoZSB0aHJlZSB3YXlzIHNwZWNpZmllZCBhYm92ZS5cbiAgICpcbiAgICogVGhlIG1vc3QgY29tbW9uIGNhc2UgdG8gc2V0IHRoaXMgdmFsdWUgaXMgd2hlbiB5b3UgYXJlIHVzaW5nIHRoZSBDREtUTiBsaWJyYXJ5IGRpcmVjdGx5IChlLmcuIHdoZW4gd3JpdGluZyB1bml0IHRlc3RzKS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBDREtURl9PVVRESVIgaWYgZGVmaW5lZCwgb3RoZXJ3aXNlIFwiY2RrdGYub3V0XCJcbiAgICovXG4gIHJlYWRvbmx5IG91dGRpcj86IHN0cmluZztcbiAgcmVhZG9ubHkgc3RhY2tUcmFjZXM/OiBib29sZWFuO1xuXG4gIHJlYWRvbmx5IGhjbE91dHB1dD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgY29udGV4dCB2YWx1ZXMgZm9yIHRoZSBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogQ29udGV4dCBzZXQgYnkgdGhlIENMSSBvciB0aGUgYGNvbnRleHRgIGtleSBpbiBgY2RrdGYuanNvbmAgaGFzIHByZWNlZGVuY2UuXG4gICAqXG4gICAqIENvbnRleHQgY2FuIGJlIHJlYWQgZnJvbSBhbnkgY29uc3RydWN0IHVzaW5nIGBub2RlLmdldENvbnRleHQoa2V5KWAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYWRkaXRpb25hbCBjb250ZXh0XG4gICAqL1xuICByZWFkb25seSBjb250ZXh0PzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBza2lwIGFsbCB2YWxpZGF0aW9ucyBkdXJpbmcgc3ludGhlc2lzIG9mIHRoZSBhcHBcbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc2tpcFZhbGlkYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNraXAgYmFja2VuZCB2YWxpZGF0aW9uIGR1cmluZyBzeW50aGVzaXMgb2YgdGhlIGFwcFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBza2lwQmFja2VuZFZhbGlkYXRpb24/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjZGt0biBhcHBsaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwcCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgb3V0cHV0IGRpcmVjdG9yeSBpbnRvIHdoaWNoIHJlc291cmNlcyB3aWxsIGJlIHN5bnRoZXNpemVkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG91dGRpcjogc3RyaW5nO1xuXG4gIHB1YmxpYyByZWFkb25seSBoY2xPdXRwdXQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFjayB3aGljaCB3aWxsIGJlIHN5bnRoZXNpemVkLiBJZiBub3Qgc2V0LCBhbGwgc3RhY2tzIHdpbGwgYmUgc3ludGhlc2l6ZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0U3RhY2tJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyByZWFkb25seSBtYW5pZmVzdDogTWFuaWZlc3Q7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2tpcCBhbGwgdmFsaWRhdGlvbnMgZHVyaW5nIHN5bnRoZXNpcyBvZiB0aGUgYXBwXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2tpcFZhbGlkYXRpb246IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2tpcCBiYWNrZW5kIHZhbGlkYXRpb24gZHVyaW5nIHN5bnRoZXNpcyBvZiB0aGUgYXBwXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2tpcEJhY2tlbmRWYWxpZGF0aW9uOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGFuIGFwcFxuICAgKiBAcGFyYW0gY29uZmlnIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogQXBwQ29uZmlnID0ge30pIHtcbiAgICBzdXBlcih1bmRlZmluZWQgYXMgYW55LCBcIlwiKTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgQVBQX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcblxuICAgIHRoaXMub3V0ZGlyID0gY29uZmlnLm91dGRpciA/PyBwcm9jZXNzLmVudi5DREtURl9PVVRESVIgPz8gXCJjZGt0Zi5vdXRcIjtcbiAgICBjb25zdCBlbnZIY2xPdXRwdXQgPSBwcm9jZXNzLmVudi5TWU5USF9IQ0xfT1VUUFVUO1xuICAgIGxldCBoY2xPdXRwdXQgPSBjb25maWcuaGNsT3V0cHV0IHx8IGZhbHNlO1xuICAgIGlmIChlbnZIY2xPdXRwdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaGNsT3V0cHV0ID0gZW52SGNsT3V0cHV0ID09PSBcInRydWVcIjtcbiAgICB9XG5cbiAgICB0aGlzLmhjbE91dHB1dCA9IGhjbE91dHB1dDtcbiAgICB0aGlzLnRhcmdldFN0YWNrSWQgPSBwcm9jZXNzLmVudi5DREtURl9UQVJHRVRfU1RBQ0tfSUQ7XG4gICAgdGhpcy5za2lwVmFsaWRhdGlvbiA9IGNvbmZpZy5za2lwVmFsaWRhdGlvbiB8fCBmYWxzZTtcbiAgICB0aGlzLnNraXBCYWNrZW5kVmFsaWRhdGlvbiA9IGNvbmZpZy5za2lwQmFja2VuZFZhbGlkYXRpb24gfHwgZmFsc2U7XG5cbiAgICB0aGlzLmxvYWRDb250ZXh0KGNvbmZpZy5jb250ZXh0KTtcblxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLm5vZGU7XG4gICAgaWYgKGNvbmZpZy5zdGFja1RyYWNlcyA9PT0gZmFsc2UpIHtcbiAgICAgIG5vZGUuc2V0Q29udGV4dChESVNBQkxFX1NUQUNLX1RSQUNFX0lOX01FVEFEQVRBLCB0cnVlKTtcbiAgICB9XG5cbiAgICBub2RlLnNldENvbnRleHQoXCJjZGt0ZlZlcnNpb25cIiwgdmVyc2lvbik7XG5cbiAgICBpZiAoIWZzLmV4aXN0c1N5bmModGhpcy5vdXRkaXIpKSB7XG4gICAgICBmcy5ta2RpclN5bmModGhpcy5vdXRkaXIpO1xuICAgIH1cbiAgICB0aGlzLm1hbmlmZXN0ID0gbmV3IE1hbmlmZXN0KHZlcnNpb24sIHRoaXMub3V0ZGlyLCB0aGlzLmhjbE91dHB1dCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzQXBwKHg6IGFueSk6IHggaXMgQXBwIHtcbiAgICByZXR1cm4geCAhPT0gbnVsbCAmJiB0eXBlb2YgeCA9PT0gXCJvYmplY3RcIiAmJiBBUFBfU1lNQk9MIGluIHg7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG9mKGNvbnN0cnVjdDogSUNvbnN0cnVjdCk6IEFwcCB7XG4gICAgcmV0dXJuIF9sb29rdXAoY29uc3RydWN0KTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgZnVuY3Rpb24gX2xvb2t1cChjOiBJQ29uc3RydWN0KTogQXBwIHtcbiAgICAgIGlmIChBcHAuaXNBcHAoYykpIHtcbiAgICAgICAgcmV0dXJuIGM7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5vZGUgPSBjLm5vZGU7XG5cbiAgICAgIGlmICghbm9kZS5zY29wZSkge1xuICAgICAgICB0aHJvdyBub0FwcEZvdW5kKGNvbnN0cnVjdC5ub2RlLnBhdGgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gX2xvb2t1cChub2RlLnNjb3BlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3ludGhlc2l6ZXMgYWxsIHJlc291cmNlcyB0byB0aGUgb3V0cHV0IGRpcmVjdG9yeVxuICAgKi9cbiAgcHVibGljIHN5bnRoKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlc3Npb246IElTeW50aGVzaXNTZXNzaW9uID0ge1xuICAgICAgb3V0ZGlyOiB0aGlzLm91dGRpcixcbiAgICAgIHNraXBWYWxpZGF0aW9uOiB0aGlzLnNraXBWYWxpZGF0aW9uLFxuICAgICAgbWFuaWZlc3Q6IHRoaXMubWFuaWZlc3QsXG4gICAgICBzdGFja3NQcmVwYXJlZDogdHJ1ZSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc3RhY2tzID0gdGhpcy5ub2RlXG4gICAgICAuZmluZEFsbCgpXG4gICAgICAuZmlsdGVyPFRlcnJhZm9ybVN0YWNrPihUZXJyYWZvcm1TdGFjay5pc1N0YWNrKTtcblxuICAgIGlmICh0aGlzLm5vZGUudHJ5R2V0Q29udGV4dChGQUlMX09OX0NPTlNUUlVDVFNfT1VUU0lERV9PRl9TVEFDS1MpKSB7XG4gICAgICBjb25zdCBvcnBoYW5zID0gdGhpcy5ub2RlLmNoaWxkcmVuLmZpbHRlcihcbiAgICAgICAgKGNoaWxkKSA9PiAhVGVycmFmb3JtU3RhY2suaXNTdGFjayhjaGlsZCksXG4gICAgICApO1xuICAgICAgaWYgKG9ycGhhbnMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aHJvdyBjb25zdHJ1Y3RzT3V0c2lkZU9mU3RhY2tzKG9ycGhhbnMubWFwKChvKSA9PiBvLm5vZGUucGF0aCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN0YWNrcy5mb3JFYWNoKChzdGFjaykgPT4gc3RhY2sucHJlcGFyZVN0YWNrKCkpO1xuICAgIHN0YWNrcy5mb3JFYWNoKChzdGFjaykgPT4gc3RhY2suc3ludGhlc2l6ZXIuc3ludGhlc2l6ZShzZXNzaW9uKSk7XG5cbiAgICBpZiAoIXRoaXMuc2tpcFZhbGlkYXRpb24pIHtcbiAgICAgIGNvbnN0IHZhbGlkYXRpb25zID0gdGhpcy5ub2RlLnZhbGlkYXRlKCk7XG4gICAgICBpZiAodmFsaWRhdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGVycm9yTGlzdCA9IHZhbGlkYXRpb25zLmpvaW4oXCJcXG4gIFwiKTtcbiAgICAgICAgdGhyb3cgYXBwVmFsaWRhdGlvbkZhaWx1cmUoZXJyb3JMaXN0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLm1hbmlmZXN0LndyaXRlVG9GaWxlKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHJlZmVyZW5jZSBmcm9tIG9uZSBzdGFjayB0byBhbm90aGVyLCBpbnZva2VkIG9uIHByZXBhcmVTdGFjayBzaW5jZSBpdCBjcmVhdGVzIGV4dHJhIHJlc291cmNlc1xuICAgKi9cbiAgcHVibGljIGNyb3NzU3RhY2tSZWZlcmVuY2UoXG4gICAgZnJvbVN0YWNrOiBUZXJyYWZvcm1TdGFjayxcbiAgICB0b1N0YWNrOiBUZXJyYWZvcm1TdGFjayxcbiAgICBpZGVudGlmaWVyOiBzdHJpbmcsXG4gICk6IHN0cmluZyB7XG4gICAgdG9TdGFjay5hZGREZXBlbmRlbmN5KGZyb21TdGFjayk7XG4gICAgY29uc3Qgb3V0cHV0SWQgPVxuICAgICAgZnJvbVN0YWNrLnJlZ2lzdGVyT3V0Z29pbmdDcm9zc1N0YWNrUmVmZXJlbmNlKFxuICAgICAgICBpZGVudGlmaWVyLFxuICAgICAgKS5mcmllbmRseVVuaXF1ZUlkO1xuXG4gICAgY29uc3QgcmVtb3RlU3RhdGUgPSB0b1N0YWNrLnJlZ2lzdGVySW5jb21pbmdDcm9zc1N0YWNrUmVmZXJlbmNlKGZyb21TdGFjayk7XG5cbiAgICByZXR1cm4gcmVtb3RlU3RhdGUuZ2V0U3RyaW5nKG91dHB1dElkKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZENvbnRleHQoZGVmYXVsdHM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fSkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLm5vZGU7XG5cbiAgICAvLyBwcmltZSB3aXRoIGRlZmF1bHRzIHBhc3NlZCB0aHJvdWdoIGNvbnN0cnVjdG9yXG4gICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMoZGVmYXVsdHMpKSB7XG4gICAgICBub2RlLnNldENvbnRleHQoaywgdik7XG4gICAgfVxuXG4gICAgLy8gcmVhZCBmcm9tIGVudmlyb25tZW50XG4gICAgY29uc3QgY29udGV4dEpzb24gPSBwcm9jZXNzLmVudltDT05URVhUX0VOVl07XG4gICAgY29uc3QgY29udGV4dEZyb21FbnZpcm9ubWVudCA9IGNvbnRleHRKc29uID8gSlNPTi5wYXJzZShjb250ZXh0SnNvbikgOiB7fTtcblxuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKGNvbnRleHRGcm9tRW52aXJvbm1lbnQpKSB7XG4gICAgICBub2RlLnNldENvbnRleHQoaywgdik7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQywyQ0FBbUQ7QUFDbkQsdUNBQXlCO0FBQ3pCLGtEQUEwQztBQUMxQywrQ0FBZ0U7QUFDaEUseUNBQXNDO0FBRXRDLHVEQUFtRDtBQUNuRCxxQ0FJa0I7QUFDbEIseUNBQWtFO0FBRWxFLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDOUIsUUFBQSxXQUFXLEdBQUcsb0JBQW9CLENBQUM7QUErQ2hEOztHQUVHO0FBQ0gsTUFBYSxHQUFJLFNBQVEsc0JBQVM7O0lBQ2hDOztPQUVHO0lBQ2EsTUFBTSxDQUFTO0lBRWYsU0FBUyxDQUFVO0lBRW5DOztPQUVHO0lBQ2EsYUFBYSxDQUFxQjtJQUVsQyxRQUFRLENBQVc7SUFFbkM7O09BRUc7SUFDYSxjQUFjLENBQVU7SUFFeEM7O09BRUc7SUFDYSxxQkFBcUIsQ0FBVTtJQUUvQzs7O09BR0c7SUFDSCxZQUFZLFNBQW9CLEVBQUU7UUFDaEMsS0FBSyxDQUFDLFNBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFekQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLFdBQVcsQ0FBQztRQUN2RSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO1FBQ2xELElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDO1FBQzFDLElBQUksWUFBWSxLQUFL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RU8sV0FBVyxDQUFDLFdBQXNDLEVBQUU7UUFDMUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUV2QixpREFBaUQ7UUFDakQsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4QixDQUFDO1FBRUQsd0JBQXdCO1FBQ3hCLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQVcsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sc0JBQXNCLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFMUUsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDO1lBQzVELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDOztBQTNKSCxrQkE0SkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHsgQ29uc3RydWN0LCBJQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgdmVyc2lvbiB9IGZyb20gXCIuLi9wYWNrYWdlLmpzb25cIjtcbmltcG9ydCB7IERJU0FCTEVfU1RBQ0tfVFJBQ0VfSU5fTUVUQURBVEEgfSBmcm9tIFwiLi9hbm5vdGF0aW9uc1wiO1xuaW1wb3J0IHsgTWFuaWZlc3QgfSBmcm9tIFwiLi9tYW5pZmVzdFwiO1xuaW1wb3J0IHsgSVN5bnRoZXNpc1Nlc3Npb24gfSBmcm9tIFwiLi9zeW50aGVzaXplXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1TdGFjayB9IGZyb20gXCIuL3RlcnJhZm9ybS1zdGFja1wiO1xuaW1wb3J0IHtcbiAgYXBwVmFsaWRhdGlvbkZhaWx1cmUsXG4gIGNvbnN0cnVjdHNPdXRzaWRlT2ZTdGFja3MsXG4gIG5vQXBwRm91bmQsXG59IGZyb20gXCIuL2Vycm9yc1wiO1xuaW1wb3J0IHsgRkFJTF9PTl9DT05TVFJVQ1RTX09VVFNJREVfT0ZfU1RBQ0tTIH0gZnJvbSBcIi4vZmVhdHVyZXNcIjtcblxuY29uc3QgQVBQX1NZTUJPTCA9IFN5bWJvbC5mb3IoXCJjZGt0Zi9BcHBcIik7XG5leHBvcnQgY29uc3QgQ09OVEVYVF9FTlYgPSBcIkNES1RGX0NPTlRFWFRfSlNPTlwiO1xuZXhwb3J0IGludGVyZmFjZSBBcHBDb25maWcge1xuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSB0byBvdXRwdXQgVGVycmFmb3JtIHJlc291cmNlcy5cbiAgICpcbiAgICogSWYgeW91IGFyZSB1c2luZyB0aGUgQ0RLVE4gQ0xJLCB0aGlzIHZhbHVlIGlzIGF1dG9tYXRpY2FsbHkgc2V0IGZyb20gb25lIG9mIHRoZSBmb2xsb3dpbmcgdGhyZWUgc291cmNlczpcbiAgICogLSBUaGUgYC1vYCAvIGAtLW91dHB1dGAgQ0xJIG9wdGlvblxuICAgKiAtIFRoZSBgQ0RLVEZfT1VURElSYCBlbnZpcm9ubWVudCB2YXJpYWJsZVxuICAgKiAtIFRoZSBgb3V0ZGlyYCBrZXkgaW4gYGNka3RmLmpzb25gXG4gICAqXG4gICAqIElmIHlvdSBhcmUgdXNpbmcgdGhlIENES1ROIENMSSBhbmQgd2FudCB0byBzZXQgYSBkaWZmZXJlbnQgdmFsdWUgaGVyZSwgeW91IHdpbGwgYWxzbyBuZWVkIHRvIHNldCB0aGUgc2FtZSB2YWx1ZSB2aWEgb25lIG9mIHRoZSB0aHJlZSB3YXlzIHNwZWNpZmllZCBhYm92ZS5cbiAgICpcbiAgICogVGhlIG1vc3QgY29tbW9uIGNhc2UgdG8gc2V0IHRoaXMgdmFsdWUgaXMgd2hlbiB5b3UgYXJlIHVzaW5nIHRoZSBDREtUTiBsaWJyYXJ5IGRpcmVjdGx5IChlLmcuIHdoZW4gd3JpdGluZyB1bml0IHRlc3RzKS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBDREtURl9PVVRESVIgaWYgZGVmaW5lZCwgb3RoZXJ3aXNlIFwiY2RrdGYub3V0XCJcbiAgICovXG4gIHJlYWRvbmx5IG91dGRpcj86IHN0cmluZztcbiAgcmVhZG9ubHkgc3RhY2tUcmFjZXM/OiBib29sZWFuO1xuXG4gIHJlYWRvbmx5IGhjbE91dHB1dD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgY29udGV4dCB2YWx1ZXMgZm9yIHRoZSBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogQ29udGV4dCBzZXQgYnkgdGhlIENMSSBvciB0aGUgYGNvbnRleHRgIGtleSBpbiBgY2RrdGYuanNvbmAgaGFzIHByZWNlZGVuY2UuXG4gICAqXG4gICAqIENvbnRleHQgY2FuIGJlIHJlYWQgZnJvbSBhbnkgY29uc3RydWN0IHVzaW5nIGBub2RlLmdldENvbnRleHQoa2V5KWAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYWRkaXRpb25hbCBjb250ZXh0XG4gICAqL1xuICByZWFkb25seSBjb250ZXh0PzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBza2lwIGFsbCB2YWxpZGF0aW9ucyBkdXJpbmcgc3ludGhlc2lzIG9mIHRoZSBhcHBcbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc2tpcFZhbGlkYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNraXAgYmFja2VuZCB2YWxpZGF0aW9uIGR1cmluZyBzeW50aGVzaXMgb2YgdGhlIGFwcFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBza2lwQmFja2VuZFZhbGlkYXRpb24/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjZGt0biBhcHBsaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwcCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgb3V0cHV0IGRpcmVjdG9yeSBpbnRvIHdoaWNoIHJlc291cmNlcyB3aWxsIGJlIHN5bnRoZXNpemVkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG91dGRpcjogc3RyaW5nO1xuXG4gIHB1YmxpYyByZWFkb25seSBoY2xPdXRwdXQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFjayB3aGljaCB3aWxsIGJlIHN5bnRoZXNpemVkLiBJZiBub3Qgc2V0LCBhbGwgc3RhY2tzIHdpbGwgYmUgc3ludGhlc2l6ZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0U3RhY2tJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyByZWFkb25seSBtYW5pZmVzdDogTWFuaWZlc3Q7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2tpcCBhbGwgdmFsaWRhdGlvbnMgZHVyaW5nIHN5bnRoZXNpcyBvZiB0aGUgYXBwXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2tpcFZhbGlkYXRpb246IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2tpcCBiYWNrZW5kIHZhbGlkYXRpb24gZHVyaW5nIHN5bnRoZXNpcyBvZiB0aGUgYXBwXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2tpcEJhY2tlbmRWYWxpZGF0aW9uOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGFuIGFwcFxuICAgKiBAcGFyYW0gY29uZmlnIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogQXBwQ29uZmlnID0ge30pIHtcbiAgICBzdXBlcih1bmRlZmluZWQgYXMgYW55LCBcIlwiKTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgQVBQX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcblxuICAgIHRoaXMub3V0ZGlyID0gY29uZmlnLm91dGRpciA/PyBwcm9jZXNzLmVudi5DREtURl9PVVRESVIgPz8gXCJjZGt0Zi5vdXRcIjtcbiAgICBjb25zdCBlbnZIY2xPdXRwdXQgPSBwcm9jZXNzLmVudi5TWU5USF9IQ0xfT1VUUFVUO1xuICAgIGxldCBoY2xPdXRwdXQgPSBjb25maWcuaGNsT3V0cHV0IHx8IGZhbHNlO1xuICAgIGlmIChlbnZIY2xPdXRwdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaGNsT3V0cHV0ID0gZW52SGNsT3V0cHV0ID09PSBcInRydWVcIjtcbiAgICB9XG5cbiAgICB0aGlzLmhjbE91dHB1dCA9IGhjbE91dHB1dDtcbiAgICB0aGlzLnRhcmdldFN0YWNrSWQgPSBwcm9jZXNzLmVudi5DREtURl9UQVJHRVRfU1RBQ0tfSUQ7XG4gICAgdGhpcy5za2lwVmFsaWRhdGlvbiA9IGNvbmZpZy5za2lwVmFsaWRhdGlvbiB8fCBmYWxzZTtcbiAgICB0aGlzLnNraXBCYWNrZW5kVmFsaWRhdGlvbiA9IGNvbmZpZy5za2lwQmFja2VuZFZhbGlkYXRpb24gfHwgZmFsc2U7XG5cbiAgICB0aGlzLmxvYWRDb250ZXh0KGNvbmZpZy5jb250ZXh0KTtcblxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLm5vZGU7XG4gICAgaWYgKGNvbmZpZy5zdGFja1RyYWNlcyA9PT0gZmFsc2UpIHtcbiAgICAgIG5vZGUuc2V0Q29udGV4dChESVNBQkxFX1NUQUNLX1RSQUNFX0lOX01FVEFEQVRBLCB0cnVlKTtcbiAgICB9XG5cbiAgICBub2RlLnNldENvbnRleHQoXCJjZGt0ZlZlcnNpb25cIiwgdmVyc2lvbik7XG5cbiAgICBpZiAoIWZzLmV4aXN0c1N5bmModGhpcy5vdXRkaXIpKSB7XG4gICAgICBmcy5ta2RpclN5bmModGhpcy5vdXRkaXIpO1xuICAgIH1cbiAgICB0aGlzLm1hbmlmZXN0ID0gbmV3IE1hbmlmZXN0KHZlcnNpb24sIHRoaXMub3V0ZGlyLCB0aGlzLmhjbE91dHB1dCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzQXBwKHg6IGFueSk6IHggaXMgQXBwIHtcbiAgICByZXR1cm4geCAhPT0gbnVsbCAmJiB0eXBlb2YgeCA9PT0gXCJvYmplY3RcIiAmJiBBUFBfU1lNQk9MIGluIHg7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG9mKGNvbnN0cnVjdDogSUNvbnN0cnVjdCk6IEFwcCB7XG4gICAgcmV0dXJuIF9sb29rdXAoY29uc3RydWN0KTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgZnVuY3Rpb24gX2xvb2t1cChjOiBJQ29uc3RydWN0KTogQXBwIHtcbiAgICAgIGlmIChBcHAuaXNBcHAoYykpIHtcbiAgICAgICAgcmV0dXJuIGM7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5vZGUgPSBjLm5vZGU7XG5cbiAgICAgIGlmICghbm9kZS5zY29wZSkge1xuICAgICAgICB0aHJvdyBub0FwcEZvdW5kKGNvbnN0cnVjdC5ub2RlLnBhdGgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gX2xvb2t1cChub2RlLnNjb3BlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3ludGhlc2l6ZXMgYWxsIHJlc291cmNlcyB0byB0aGUgb3V0cHV0IGRpcmVjdG9yeVxuICAgKi9cbiAgcHVibGljIHN5bnRoKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlc3Npb246IElTeW50aGVzaXNTZXNzaW9uID0ge1xuICAgICAgb3V0ZGlyOiB0aGlzLm91dGRpcixcbiAgICAgIHNraXBWYWxpZGF0aW9uOiB0aGlzLnNraXBWYWxpZGF0aW9uLFxuICAgICAgbWFuaWZlc3Q6IHRoaXMubWFuaWZlc3QsXG4gICAgICBzdGFja3NQcmVwYXJlZDogdHJ1ZSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc3RhY2tzID0gdGhpcy5ub2RlXG4gICAgICAuZmluZEFsbCgpXG4gICAgICAuZmlsdGVyPFRlcnJhZm9ybVN0YWNrPihUZXJyYWZvcm1TdGFjay5pc1N0YWNrKTtcblxuICAgIGlmICh0aGlzLm5vZGUudHJ5R2V0Q29udGV4dChGQUlMX09OX0NPTlNUUlVDVFNfT1VUU0lERV9PRl9TVEFDS1MpKSB7XG4gICAgICBjb25zdCBvcnBoYW5zID0gdGhpcy5ub2RlLmNoaWxkcmVuLmZpbHRlcihcbiAgICAgICAgKGNoaWxkKSA9PiAhVGVycmFmb3JtU3RhY2suaXNTdGFjayhjaGlsZCksXG4gICAgICApO1xuICAgICAgaWYgKG9ycGhhbnMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aHJvdyBjb25zdHJ1Y3RzT3V0c2lkZU9mU3RhY2tzKG9ycGhhbnMubWFwKChvKSA9PiBvLm5vZGUucGF0aCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN0YWNrcy5mb3JFYWNoKChzdGFjaykgPT4gc3RhY2sucHJlcGFyZVN0YWNrKCkpO1xuICAgIHN0YWNrcy5mb3JFYWNoKChzdGFjaykgPT4gc3RhY2suc3ludGhlc2l6ZXIuc3ludGhlc2l6ZShzZXNzaW9uKSk7XG5cbiAgICBpZiAoIXRoaXMuc2tpcFZhbGlkYXRpb24pIHtcbiAgICAgIGNvbnN0IHZhbGlkYXRpb25zID0gdGhpcy5ub2RlLnZhbGlkYXRlKCk7XG4gICAgICBpZiAodmFsaWRhdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGVycm9yTGlzdCA9IHZhbGlkYXRpb25zLmpvaW4oXCJcXG4gIFwiKTtcbiAgICAgICAgdGhyb3cgYXBwVmFsaWRhdGlvbkZhaWx1cmUoZXJyb3JMaXN0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLm1hbmlmZXN0LndyaXRlVG9GaWxlKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHJlZmVyZW5jZSBmcm9tIG9uZSBzdGFjayB0byBhbm90aGVyLCBpbnZva2VkIG9uIHByZXBhcmVTdGFjayBzaW5jZSBpdCBjcmVhdGVzIGV4dHJhIHJlc291cmNlc1xuICAgKi9cbiAgcHVibGljIGNyb3NzU3RhY2tSZWZlcmVuY2UoXG4gICAgZnJvbVN0YWNrOiBUZXJyYWZvcm1TdGFjayxcbiAgICB0b1N0YWNrOiBUZXJyYWZvcm1TdGFjayxcbiAgICBpZGVudGlmaWVyOiBzdHJpbmcsXG4gICk6IHN0cmluZyB7XG4gICAgdG9TdGFjay5hZGREZXBlbmRlbmN5KGZyb21TdGFjayk7XG4gICAgY29uc3Qgb3V0cHV0SWQgPVxuICAgICAgZnJvbVN0YWNrLnJlZ2lzdGVyT3V0Z29pbmdDcm9zc1N0YWNrUmVmZXJlbmNlKFxuICAgICAgICBpZGVudGlmaWVyLFxuICAgICAgKS5mcmllbmRseVVuaXF1ZUlkO1xuXG4gICAgY29uc3QgcmVtb3RlU3RhdGUgPSB0b1N0YWNrLnJlZ2lzdGVySW5jb21pbmdDcm9zc1N0YWNrUmVmZXJlbmNlKGZyb21TdGFjayk7XG5cbiAgICByZXR1cm4gcmVtb3RlU3RhdGUuZ2V0U3RyaW5nKG91dHB1dElkKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZENvbnRleHQoZGVmYXVsdHM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fSkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLm5vZGU7XG5cbiAgICAvLyBwcmltZSB3aXRoIGRlZmF1bHRzIHBhc3NlZCB0aHJvdWdoIGNvbnN0cnVjdG9yXG4gICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMoZGVmYXVsdHMpKSB7XG4gICAgICBub2RlLnNldENvbnRleHQoaywgdik7XG4gICAgfVxuXG4gICAgLy8gcmVhZCBmcm9tIGVudmlyb25tZW50XG4gICAgY29uc3QgY29udGV4dEpzb24gPSBwcm9jZXNzLmVudltDT05URVhUX0VOVl07XG4gICAgY29uc3QgY29udGV4dEZyb21FbnZpcm9ubWVudCA9IGNvbnRleHRKc29uID8gSlNPTi5wYXJzZShjb250ZXh0SnNvbikgOiB7fTtcblxuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKGNvbnRleHRGcm9tRW52aXJvbm1lbnQpKSB7XG4gICAgICBub2RlLnNldENvbnRleHQoaywgdik7XG4gICAgfVxuICB9XG59XG4iXX0=
|
package/lib/aspect.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.Aspects = void 0;
|
|
5
4
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
@@ -9,6 +8,7 @@ const ASPECTS_SYMBOL = Symbol("cdktf-aspects");
|
|
|
9
8
|
* synthesis.
|
|
10
9
|
*/
|
|
11
10
|
class Aspects {
|
|
11
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.Aspects", version: "0.25.0-pre.21" };
|
|
12
12
|
/**
|
|
13
13
|
* Returns the `Aspects` object associated with a construct scope.
|
|
14
14
|
* @param scope The scope for which these aspects will apply.
|
|
@@ -25,6 +25,7 @@ class Aspects {
|
|
|
25
25
|
}
|
|
26
26
|
return aspects;
|
|
27
27
|
}
|
|
28
|
+
_aspects;
|
|
28
29
|
constructor() {
|
|
29
30
|
this._aspects = [];
|
|
30
31
|
}
|
|
@@ -43,6 +44,4 @@ class Aspects {
|
|
|
43
44
|
}
|
|
44
45
|
}
|
|
45
46
|
exports.Aspects = Aspects;
|
|
46
|
-
|
|
47
|
-
Aspects[_a] = { fqn: "cdktn.Aspects", version: "0.25.0-pre.2" };
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNwZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FzcGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQU1BLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQVkvQzs7O0dBR0c7QUFDSCxNQUFhLE9BQU87SUFDbEI7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFpQjtRQUNoQyxJQUFJLE9BQU8sR0FBSSxLQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7WUFFeEIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsY0FBYyxFQUFFO2dCQUMzQyxLQUFLLEVBQUUsT0FBTztnQkFDZCxZQUFZLEVBQUUsS0FBSztnQkFDbkIsVUFBVSxFQUFFLEtBQUs7YUFDbEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFJRDtRQUNFLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxHQUFHLENBQUMsTUFBZTtRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLEdBQUc7UUFDWixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7QUF0Q0gsMEJBdUNDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbi8vICBPcmlnaW5hbGx5IGZyb20gYXdzLWNkayB2MiBiZWNhdXNlIHdpdGggY29uc3RydWN0cyB2MTAgQXNwZWN0cyB3aGVyZSBtb3ZlZCB0byB0aGUgQVdTIENES1xuLy8gIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL2RjYWUzZWVhZDBkYmY5YWNiMWVkODBiYTk1YmIxMDRjNjRjYjFiZDcvcGFja2FnZXMvQGF3cy1jZGsvY29yZS9saWIvYXNwZWN0LnRzXG5pbXBvcnQgeyBJQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuY29uc3QgQVNQRUNUU19TWU1CT0wgPSBTeW1ib2woXCJjZGt0Zi1hc3BlY3RzXCIpO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gQXNwZWN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUFzcGVjdCB7XG4gIC8qKlxuICAgKiBBbGwgYXNwZWN0cyBjYW4gdmlzaXQgYW4gSUNvbnN0cnVjdFxuICAgKi9cbiAgdmlzaXQobm9kZTogSUNvbnN0cnVjdCk6IHZvaWQ7XG59XG5cbi8qKlxuICogQXNwZWN0cyBjYW4gYmUgYXBwbGllZCB0byBDREsgdHJlZSBzY29wZXMgYW5kIGNhbiBvcGVyYXRlIG9uIHRoZSB0cmVlIGJlZm9yZVxuICogc3ludGhlc2lzLlxuICovXG5leHBvcnQgY2xhc3MgQXNwZWN0cyB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBgQXNwZWN0c2Agb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBhIGNvbnN0cnVjdCBzY29wZS5cbiAgICogQHBhcmFtIHNjb3BlIFRoZSBzY29wZSBmb3Igd2hpY2ggdGhlc2UgYXNwZWN0cyB3aWxsIGFwcGx5LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZihzY29wZTogSUNvbnN0cnVjdCk6IEFzcGVjdHMge1xuICAgIGxldCBhc3BlY3RzID0gKHNjb3BlIGFzIGFueSlbQVNQRUNUU19TWU1CT0xdO1xuICAgIGlmICghYXNwZWN0cykge1xuICAgICAgYXNwZWN0cyA9IG5ldyBBc3BlY3RzKCk7XG5cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzY29wZSwgQVNQRUNUU19TWU1CT0wsIHtcbiAgICAgICAgdmFsdWU6IGFzcGVjdHMsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBhc3BlY3RzO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYXNwZWN0czogSUFzcGVjdFtdO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fYXNwZWN0cyA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gYXNwZWN0IHRvIGFwcGx5IHRoaXMgc2NvcGUgYmVmb3JlIHN5bnRoZXNpcy5cbiAgICogQHBhcmFtIGFzcGVjdCBUaGUgYXNwZWN0IHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhZGQoYXNwZWN0OiBJQXNwZWN0KSB7XG4gICAgdGhpcy5fYXNwZWN0cy5wdXNoKGFzcGVjdCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgYXNwZWN0cyB3aGljaCB3ZXJlIGRpcmVjdGx5IGFwcGxpZWQgb24gdGhpcyBzY29wZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgYWxsKCk6IElBc3BlY3RbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl9hc3BlY3RzXTtcbiAgfVxufVxuIl19
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNwZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FzcGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBTUEsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBWS9DOzs7R0FHRztBQUNILE1BQWEsT0FBTzs7SUFDbEI7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFpQjtRQUNoQyxJQUFJLE9BQU8sR0FBSSxLQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7WUFFeEIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsY0FBYyxFQUFFO2dCQUMzQyxLQUFLLEVBQUUsT0FBTztnQkFDZCxZQUFZLEVBQUUsS0FBSztnQkFDbkIsVUFBVSxFQUFFLEtBQUs7YUFDbEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFZ0IsUUFBUSxDQUFZO0lBRXJDO1FBQ0UsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEdBQUcsQ0FBQyxNQUFlO1FBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsR0FBRztRQUNaLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QixDQUFDOztBQXRDSCwwQkF1Q0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuLy8gIE9yaWdpbmFsbHkgZnJvbSBhd3MtY2RrIHYyIGJlY2F1c2Ugd2l0aCBjb25zdHJ1Y3RzIHYxMCBBc3BlY3RzIHdoZXJlIG1vdmVkIHRvIHRoZSBBV1MgQ0RLXG4vLyAgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvZGNhZTNlZWFkMGRiZjlhY2IxZWQ4MGJhOTViYjEwNGM2NGNiMWJkNy9wYWNrYWdlcy9AYXdzLWNkay9jb3JlL2xpYi9hc3BlY3QudHNcbmltcG9ydCB7IElDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5jb25zdCBBU1BFQ1RTX1NZTUJPTCA9IFN5bWJvbChcImNka3RmLWFzcGVjdHNcIik7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBBc3BlY3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQXNwZWN0IHtcbiAgLyoqXG4gICAqIEFsbCBhc3BlY3RzIGNhbiB2aXNpdCBhbiBJQ29uc3RydWN0XG4gICAqL1xuICB2aXNpdChub2RlOiBJQ29uc3RydWN0KTogdm9pZDtcbn1cblxuLyoqXG4gKiBBc3BlY3RzIGNhbiBiZSBhcHBsaWVkIHRvIENESyB0cmVlIHNjb3BlcyBhbmQgY2FuIG9wZXJhdGUgb24gdGhlIHRyZWUgYmVmb3JlXG4gKiBzeW50aGVzaXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBc3BlY3RzIHtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGBBc3BlY3RzYCBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIGEgY29uc3RydWN0IHNjb3BlLlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHNjb3BlIGZvciB3aGljaCB0aGVzZSBhc3BlY3RzIHdpbGwgYXBwbHkuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHNjb3BlOiBJQ29uc3RydWN0KTogQXNwZWN0cyB7XG4gICAgbGV0IGFzcGVjdHMgPSAoc2NvcGUgYXMgYW55KVtBU1BFQ1RTX1NZTUJPTF07XG4gICAgaWYgKCFhc3BlY3RzKSB7XG4gICAgICBhc3BlY3RzID0gbmV3IEFzcGVjdHMoKTtcblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHNjb3BlLCBBU1BFQ1RTX1NZTUJPTCwge1xuICAgICAgICB2YWx1ZTogYXNwZWN0cyxcbiAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGFzcGVjdHM7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF9hc3BlY3RzOiBJQXNwZWN0W107XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLl9hc3BlY3RzID0gW107XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbiBhc3BlY3QgdG8gYXBwbHkgdGhpcyBzY29wZSBiZWZvcmUgc3ludGhlc2lzLlxuICAgKiBAcGFyYW0gYXNwZWN0IFRoZSBhc3BlY3QgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFkZChhc3BlY3Q6IElBc3BlY3QpIHtcbiAgICB0aGlzLl9hc3BlY3RzLnB1c2goYXNwZWN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBhc3BlY3RzIHdoaWNoIHdlcmUgZGlyZWN0bHkgYXBwbGllZCBvbiB0aGlzIHNjb3BlLlxuICAgKi9cbiAgcHVibGljIGdldCBhbGwoKTogSUFzcGVjdFtdIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuX2FzcGVjdHNdO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { IIgnoreStrategy } from "./ignore-strategy";
|
|
2
|
+
/**
|
|
3
|
+
* Options for {@link AssetHash.of}.
|
|
4
|
+
*/
|
|
5
|
+
export interface AssetHashOptions {
|
|
6
|
+
/**
|
|
7
|
+
* Paths to exclude, relative to the hashed path. Cannot be combined with
|
|
8
|
+
* `ignoreStrategy`, which replaces this matcher rather than layering on
|
|
9
|
+
* top of it.
|
|
10
|
+
*
|
|
11
|
+
* @default - nothing is excluded
|
|
12
|
+
*/
|
|
13
|
+
readonly exclude?: string[];
|
|
14
|
+
/**
|
|
15
|
+
* Extra information to fold into the hash.
|
|
16
|
+
*
|
|
17
|
+
* @default - no extra data
|
|
18
|
+
*/
|
|
19
|
+
readonly extraHash?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Exclusion matching, for callers that need `.gitignore` / `.dockerignore`
|
|
22
|
+
* parity rather than the built-in exact-path / suffix / directory matcher.
|
|
23
|
+
*
|
|
24
|
+
* @default - `exclude` is used with the built-in matcher
|
|
25
|
+
*/
|
|
26
|
+
readonly ignoreStrategy?: IIgnoreStrategy;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Computes a content hash of a file or directory without staging it.
|
|
30
|
+
*
|
|
31
|
+
* Providers that read a local path directly — a Docker build `context`, for
|
|
32
|
+
* example — need a content hash to drive `triggers`, but have no use for a
|
|
33
|
+
* staged copy of the source. `Asset` and `TerraformAsset` always produce a
|
|
34
|
+
* staged copy; this is the identity half without the staging half.
|
|
35
|
+
*/
|
|
36
|
+
export declare class AssetHash {
|
|
37
|
+
/**
|
|
38
|
+
* Content hash of a file or directory, without staging it.
|
|
39
|
+
*
|
|
40
|
+
* This is a hash of the source tree, and it does not depend on how the
|
|
41
|
+
* source is later packaged. `hashPath` is always called with `archive`
|
|
42
|
+
* unset, so directory records are part of the digest; the hash of a given
|
|
43
|
+
* tree is therefore the same whether it is later copied, zipped, or packed
|
|
44
|
+
* by a custom `IAssetPackaging` such as `tar.bz2`.
|
|
45
|
+
*
|
|
46
|
+
* A consequence worth stating: this does not equal
|
|
47
|
+
* `TerraformAsset(dir, { type: ARCHIVE }).assetHash` for a directory with
|
|
48
|
+
* subdirectories. That asset frames its hash to the emitted ZIP, which has
|
|
49
|
+
* no directory entries (see #323), so directory-only changes move it and
|
|
50
|
+
* not this. It equals a `FILE` / `DIRECTORY` `TerraformAsset` hash only
|
|
51
|
+
* when the `canonicalAssetHashes` flag is enabled, since that flag is what
|
|
52
|
+
* puts the asset on this same canonical scheme.
|
|
53
|
+
*
|
|
54
|
+
* A relative `filePath` is resolved against the directory containing
|
|
55
|
+
* `cdktf.json`, the same base `TerraformAsset` uses, so both hash the same
|
|
56
|
+
* source regardless of the process working directory. Absolute paths are
|
|
57
|
+
* used as-is. Throws if `filePath` is relative and no `cdktf.json` is found
|
|
58
|
+
* above the working directory.
|
|
59
|
+
* @param filePath - path to a file or directory to hash
|
|
60
|
+
* @param options - see {@link AssetHashOptions}
|
|
61
|
+
*/
|
|
62
|
+
static of(filePath: string, options?: AssetHashOptions): string;
|
|
63
|
+
/**
|
|
64
|
+
* Resolve `filePath` to an absolute path using the same base as
|
|
65
|
+
* `TerraformAsset`: relative paths are anchored to the directory holding
|
|
66
|
+
* `cdktf.json`, not `process.cwd()`, so a hash taken here matches the one
|
|
67
|
+
* `TerraformAsset` computes for the same source even when the app is run
|
|
68
|
+
* from a subdirectory or a test runner. Unlike `TerraformAsset`, there is
|
|
69
|
+
* no construct scope to read the `cdktfJsonPath` context from, so this uses
|
|
70
|
+
* the `findFileAboveCwd` fallback directly.
|
|
71
|
+
* @param filePath - path passed to {@link AssetHash.of}
|
|
72
|
+
*/
|
|
73
|
+
private static resolvePath;
|
|
74
|
+
private constructor();
|
|
75
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.AssetHash = void 0;
|
|
37
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
38
|
+
// Copyright (c) HashiCorp, Inc
|
|
39
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
40
|
+
const crypto = __importStar(require("crypto"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const fs_1 = require("./private/fs");
|
|
43
|
+
const ignore_strategy_1 = require("./ignore-strategy");
|
|
44
|
+
const errors_1 = require("./errors");
|
|
45
|
+
/**
|
|
46
|
+
* Computes a content hash of a file or directory without staging it.
|
|
47
|
+
*
|
|
48
|
+
* Providers that read a local path directly — a Docker build `context`, for
|
|
49
|
+
* example — need a content hash to drive `triggers`, but have no use for a
|
|
50
|
+
* staged copy of the source. `Asset` and `TerraformAsset` always produce a
|
|
51
|
+
* staged copy; this is the identity half without the staging half.
|
|
52
|
+
*/
|
|
53
|
+
class AssetHash {
|
|
54
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.AssetHash", version: "0.25.0-pre.21" };
|
|
55
|
+
/**
|
|
56
|
+
* Content hash of a file or directory, without staging it.
|
|
57
|
+
*
|
|
58
|
+
* This is a hash of the source tree, and it does not depend on how the
|
|
59
|
+
* source is later packaged. `hashPath` is always called with `archive`
|
|
60
|
+
* unset, so directory records are part of the digest; the hash of a given
|
|
61
|
+
* tree is therefore the same whether it is later copied, zipped, or packed
|
|
62
|
+
* by a custom `IAssetPackaging` such as `tar.bz2`.
|
|
63
|
+
*
|
|
64
|
+
* A consequence worth stating: this does not equal
|
|
65
|
+
* `TerraformAsset(dir, { type: ARCHIVE }).assetHash` for a directory with
|
|
66
|
+
* subdirectories. That asset frames its hash to the emitted ZIP, which has
|
|
67
|
+
* no directory entries (see #323), so directory-only changes move it and
|
|
68
|
+
* not this. It equals a `FILE` / `DIRECTORY` `TerraformAsset` hash only
|
|
69
|
+
* when the `canonicalAssetHashes` flag is enabled, since that flag is what
|
|
70
|
+
* puts the asset on this same canonical scheme.
|
|
71
|
+
*
|
|
72
|
+
* A relative `filePath` is resolved against the directory containing
|
|
73
|
+
* `cdktf.json`, the same base `TerraformAsset` uses, so both hash the same
|
|
74
|
+
* source regardless of the process working directory. Absolute paths are
|
|
75
|
+
* used as-is. Throws if `filePath` is relative and no `cdktf.json` is found
|
|
76
|
+
* above the working directory.
|
|
77
|
+
* @param filePath - path to a file or directory to hash
|
|
78
|
+
* @param options - see {@link AssetHashOptions}
|
|
79
|
+
*/
|
|
80
|
+
static of(filePath, options = {}) {
|
|
81
|
+
if (options.exclude?.length && options.ignoreStrategy) {
|
|
82
|
+
throw (0, errors_1.assetHashConflictingExcludeOptions)();
|
|
83
|
+
}
|
|
84
|
+
const resolved = AssetHash.resolvePath(filePath);
|
|
85
|
+
const strategy = options.ignoreStrategy ??
|
|
86
|
+
new ignore_strategy_1.ExcludeIgnoreStrategy(options.exclude ?? []);
|
|
87
|
+
// Pinned to the canonical scheme: this is a brand-new API with no
|
|
88
|
+
// existing hashes to preserve, so it has no reason to start on the
|
|
89
|
+
// legacy scheme that `canonicalAssetHashes` exists to move away from.
|
|
90
|
+
const baseHash = (0, fs_1.hashPath)(resolved, {
|
|
91
|
+
canonical: true,
|
|
92
|
+
shouldExclude: (relativePath, isDirectory) => strategy.ignores({ relativePath, isDirectory }),
|
|
93
|
+
descendIntoExcludedDirectories: strategy.pruneExcludedDirectories === false,
|
|
94
|
+
});
|
|
95
|
+
if (!options.extraHash) {
|
|
96
|
+
return baseHash;
|
|
97
|
+
}
|
|
98
|
+
return crypto
|
|
99
|
+
.createHash("md5")
|
|
100
|
+
.update(baseHash)
|
|
101
|
+
.update(options.extraHash)
|
|
102
|
+
.digest("hex")
|
|
103
|
+
.slice(0, 32)
|
|
104
|
+
.toUpperCase();
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Resolve `filePath` to an absolute path using the same base as
|
|
108
|
+
* `TerraformAsset`: relative paths are anchored to the directory holding
|
|
109
|
+
* `cdktf.json`, not `process.cwd()`, so a hash taken here matches the one
|
|
110
|
+
* `TerraformAsset` computes for the same source even when the app is run
|
|
111
|
+
* from a subdirectory or a test runner. Unlike `TerraformAsset`, there is
|
|
112
|
+
* no construct scope to read the `cdktfJsonPath` context from, so this uses
|
|
113
|
+
* the `findFileAboveCwd` fallback directly.
|
|
114
|
+
* @param filePath - path passed to {@link AssetHash.of}
|
|
115
|
+
*/
|
|
116
|
+
static resolvePath(filePath) {
|
|
117
|
+
if (path.isAbsolute(filePath)) {
|
|
118
|
+
return filePath;
|
|
119
|
+
}
|
|
120
|
+
const cdktfJsonPath = (0, fs_1.findFileAboveCwd)("cdktf.json");
|
|
121
|
+
if (!cdktfJsonPath) {
|
|
122
|
+
throw (0, errors_1.assetHashOutOfScopeCdktnJson)(filePath);
|
|
123
|
+
}
|
|
124
|
+
return path.resolve(path.dirname(cdktfJsonPath), filePath);
|
|
125
|
+
}
|
|
126
|
+
constructor() { }
|
|
127
|
+
}
|
|
128
|
+
exports.AssetHash = AssetHash;
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtaGFzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hc3NldC1oYXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLCtDQUFpQztBQUNqQywyQ0FBNkI7QUFDN0IscUNBQTBEO0FBQzFELHVEQUEyRTtBQUMzRSxxQ0FHa0I7QUErQmxCOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLFNBQVM7O0lBQ3BCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F3Qkc7SUFDSSxNQUFNLENBQUMsRUFBRSxDQUFDLFFBQWdCLEVBQUUsVUFBNEIsRUFBRTtRQUMvRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxJQUFJLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0RCxNQUFNLElBQUEsMkNBQWtDLEdBQUUsQ0FBQztRQUM3QyxDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRCxNQUFNLFFBQVEsR0FDWixPQUFPLENBQUMsY0FBYztZQUN0QixJQUFJLHVDQUFxQixDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUM7UUFFbkQsa0VBQWtFO1FBQ2xFLG1FQUFtRTtRQUNuRSxzRUFBc0U7UUFDdEUsTUFBTSxRQUFRLEdBQUcsSUFBQSxhQUFRLEVBQUMsUUFBUSxFQUFFO1lBQ2xDLFNBQVMsRUFBRSxJQUFJO1lBQ2YsYUFBYSxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQzNDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDakQsOEJBQThCLEVBQzVCLFFBQVEsQ0FBQyx3QkFBd0IsS0FBSyxLQUFLO1NBQzlDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdkIsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztRQUVELE9BQU8sTUFBTTthQUNWLFVBQVUsQ0FBQyxLQUFLLENBQUM7YUFDakIsTUFBTSxDQUFDLFFBQVEsQ0FBQzthQUNoQixNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQzthQUN6QixNQUFNLENBQUMsS0FBSyxDQUFDO2FBQ2IsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7YUFDWixXQUFXLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ssTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFnQjtRQUN6QyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM5QixPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO1FBQ0QsTUFBTSxhQUFhLEdBQUcsSUFBQSxxQkFBZ0IsRUFBQyxZQUFZLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFBLHFDQUE0QixFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsZ0JBQXVCLENBQUM7O0FBakYxQiw4QkFrRkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gXCJjcnlwdG9cIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IGhhc2hQYXRoLCBmaW5kRmlsZUFib3ZlQ3dkIH0gZnJvbSBcIi4vcHJpdmF0ZS9mc1wiO1xuaW1wb3J0IHsgRXhjbHVkZUlnbm9yZVN0cmF0ZWd5LCBJSWdub3JlU3RyYXRlZ3kgfSBmcm9tIFwiLi9pZ25vcmUtc3RyYXRlZ3lcIjtcbmltcG9ydCB7XG4gIGFzc2V0SGFzaENvbmZsaWN0aW5nRXhjbHVkZU9wdGlvbnMsXG4gIGFzc2V0SGFzaE91dE9mU2NvcGVDZGt0bkpzb24sXG59IGZyb20gXCIuL2Vycm9yc1wiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBBc3NldEhhc2gub2Z9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzc2V0SGFzaE9wdGlvbnMge1xuICAvKipcbiAgICogUGF0aHMgdG8gZXhjbHVkZSwgcmVsYXRpdmUgdG8gdGhlIGhhc2hlZCBwYXRoLiBDYW5ub3QgYmUgY29tYmluZWQgd2l0aFxuICAgKiBgaWdub3JlU3RyYXRlZ3lgLCB3aGljaCByZXBsYWNlcyB0aGlzIG1hdGNoZXIgcmF0aGVyIHRoYW4gbGF5ZXJpbmcgb25cbiAgICogdG9wIG9mIGl0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vdGhpbmcgaXMgZXhjbHVkZWRcbiAgICovXG4gIHJlYWRvbmx5IGV4Y2x1ZGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRXh0cmEgaW5mb3JtYXRpb24gdG8gZm9sZCBpbnRvIHRoZSBoYXNoLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGV4dHJhIGRhdGFcbiAgICovXG4gIHJlYWRvbmx5IGV4dHJhSGFzaD86IHN0cmluZztcblxuICAvKipcbiAgICogRXhjbHVzaW9uIG1hdGNoaW5nLCBmb3IgY2FsbGVycyB0aGF0IG5lZWQgYC5naXRpZ25vcmVgIC8gYC5kb2NrZXJpZ25vcmVgXG4gICAqIHBhcml0eSByYXRoZXIgdGhhbiB0aGUgYnVpbHQtaW4gZXhhY3QtcGF0aCAvIHN1ZmZpeCAvIGRpcmVjdG9yeSBtYXRjaGVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGBleGNsdWRlYCBpcyB1c2VkIHdpdGggdGhlIGJ1aWx0LWluIG1hdGNoZXJcbiAgICovXG4gIHJlYWRvbmx5IGlnbm9yZVN0cmF0ZWd5PzogSUlnbm9yZVN0cmF0ZWd5O1xufVxuXG4vKipcbiAqIENvbXB1dGVzIGEgY29udGVudCBoYXNoIG9mIGEgZmlsZSBvciBkaXJlY3Rvcnkgd2l0aG91dCBzdGFnaW5nIGl0LlxuICpcbiAqIFByb3ZpZGVycyB0aGF0IHJlYWQgYSBsb2NhbCBwYXRoIGRpcmVjdGx5IOKAlCBhIERvY2tlciBidWlsZCBgY29udGV4dGAsIGZvclxuICogZXhhbXBsZSDigJQgbmVlZCBhIGNvbnRlbnQgaGFzaCB0byBkcml2ZSBgdHJpZ2dlcnNgLCBidXQgaGF2ZSBubyB1c2UgZm9yIGFcbiAqIHN0YWdlZCBjb3B5IG9mIHRoZSBzb3VyY2UuIGBBc3NldGAgYW5kIGBUZXJyYWZvcm1Bc3NldGAgYWx3YXlzIHByb2R1Y2UgYVxuICogc3RhZ2VkIGNvcHk7IHRoaXMgaXMgdGhlIGlkZW50aXR5IGhhbGYgd2l0aG91dCB0aGUgc3RhZ2luZyBoYWxmLlxuICovXG5leHBvcnQgY2xhc3MgQXNzZXRIYXNoIHtcbiAgLyoqXG4gICAqIENvbnRlbnQgaGFzaCBvZiBhIGZpbGUgb3IgZGlyZWN0b3J5LCB3aXRob3V0IHN0YWdpbmcgaXQuXG4gICAqXG4gICAqIFRoaXMgaXMgYSBoYXNoIG9mIHRoZSBzb3VyY2UgdHJlZSwgYW5kIGl0IGRvZXMgbm90IGRlcGVuZCBvbiBob3cgdGhlXG4gICAqIHNvdXJjZSBpcyBsYXRlciBwYWNrYWdlZC4gYGhhc2hQYXRoYCBpcyBhbHdheXMgY2FsbGVkIHdpdGggYGFyY2hpdmVgXG4gICAqIHVuc2V0LCBzbyBkaXJlY3RvcnkgcmVjb3JkcyBhcmUgcGFydCBvZiB0aGUgZGlnZXN0OyB0aGUgaGFzaCBvZiBhIGdpdmVuXG4gICAqIHRyZWUgaXMgdGhlcmVmb3JlIHRoZSBzYW1lIHdoZXRoZXIgaXQgaXMgbGF0ZXIgY29waWVkLCB6aXBwZWQsIG9yIHBhY2tlZFxuICAgKiBieSBhIGN1c3RvbSBgSUFzc2V0UGFja2FnaW5nYCBzdWNoIGFzIGB0YXIuYnoyYC5cbiAgICpcbiAgICogQSBjb25zZXF1ZW5jZSB3b3J0aCBzdGF0aW5nOiB0aGlzIGRvZXMgbm90IGVxdWFsXG4gICAqIGBUZXJyYWZvcm1Bc3NldChkaXIsIHsgdHlwZTogQVJDSElWRSB9KS5hc3NldEhhc2hgIGZvciBhIGRpcmVjdG9yeSB3aXRoXG4gICAqIHN1YmRpcmVjdG9yaWVzLiBUaGF0IGFzc2V0IGZyYW1lcyBpdHMgaGFzaCB0byB0aGUgZW1pdHRlZCBaSVAsIHdoaWNoIGhhc1xuICAgKiBubyBkaXJlY3RvcnkgZW50cmllcyAoc2VlICMzMjMpLCBzbyBkaXJlY3Rvcnktb25seSBjaGFuZ2VzIG1vdmUgaXQgYW5kXG4gICAqIG5vdCB0aGlzLiBJdCBlcXVhbHMgYSBgRklMRWAgLyBgRElSRUNUT1JZYCBgVGVycmFmb3JtQXNzZXRgIGhhc2ggb25seVxuICAgKiB3aGVuIHRoZSBgY2Fub25pY2FsQXNzZXRIYXNoZXNgIGZsYWcgaXMgZW5hYmxlZCwgc2luY2UgdGhhdCBmbGFnIGlzIHdoYXRcbiAgICogcHV0cyB0aGUgYXNzZXQgb24gdGhpcyBzYW1lIGNhbm9uaWNhbCBzY2hlbWUuXG4gICAqXG4gICAqIEEgcmVsYXRpdmUgYGZpbGVQYXRoYCBpcyByZXNvbHZlZCBhZ2FpbnN0IHRoZSBkaXJlY3RvcnkgY29udGFpbmluZ1xuICAgKiBgY2RrdGYuanNvbmAsIHRoZSBzYW1lIGJhc2UgYFRlcnJhZm9ybUFzc2V0YCB1c2VzLCBzbyBib3RoIGhhc2ggdGhlIHNhbWVcbiAgICogc291cmNlIHJlZ2FyZGxlc3Mgb2YgdGhlIHByb2Nlc3Mgd29ya2luZyBkaXJlY3RvcnkuIEFic29sdXRlIHBhdGhzIGFyZVxuICAgKiB1c2VkIGFzLWlzLiBUaHJvd3MgaWYgYGZpbGVQYXRoYCBpcyByZWxhdGl2ZSBhbmQgbm8gYGNka3RmLmpzb25gIGlzIGZvdW5kXG4gICAqIGFib3ZlIHRoZSB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICogQHBhcmFtIGZpbGVQYXRoIC0gcGF0aCB0byBhIGZpbGUgb3IgZGlyZWN0b3J5IHRvIGhhc2hcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBzZWUge0BsaW5rIEFzc2V0SGFzaE9wdGlvbnN9XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKGZpbGVQYXRoOiBzdHJpbmcsIG9wdGlvbnM6IEFzc2V0SGFzaE9wdGlvbnMgPSB7fSk6IHN0cmluZyB7XG4gICAgaWYgKG9wdGlvbnMuZXhjbHVkZT8ubGVuZ3RoICYmIG9wdGlvbnMuaWdub3JlU3RyYXRlZ3kpIHtcbiAgICAgIHRocm93IGFzc2V0SGFzaENvbmZsaWN0aW5nRXhjbHVkZU9wdGlvbnMoKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNvbHZlZCA9IEFzc2V0SGFzaC5yZXNvbHZlUGF0aChmaWxlUGF0aCk7XG4gICAgY29uc3Qgc3RyYXRlZ3kgPVxuICAgICAgb3B0aW9ucy5pZ25vcmVTdHJhdGVneSA/P1xuICAgICAgbmV3IEV4Y2x1ZGVJZ25vcmVTdHJhdGVneShvcHRpb25zLmV4Y2x1ZGUgPz8gW10pO1xuXG4gICAgLy8gUGlubmVkIHRvIHRoZSBjYW5vbmljYWwgc2NoZW1lOiB0aGlzIGlzIGEgYnJhbmQtbmV3IEFQSSB3aXRoIG5vXG4gICAgLy8gZXhpc3RpbmcgaGFzaGVzIHRvIHByZXNlcnZlLCBzbyBpdCBoYXMgbm8gcmVhc29uIHRvIHN0YXJ0IG9uIHRoZVxuICAgIC8vIGxlZ2FjeSBzY2hlbWUgdGhhdCBgY2Fub25pY2FsQXNzZXRIYXNoZXNgIGV4aXN0cyB0byBtb3ZlIGF3YXkgZnJvbS5cbiAgICBjb25zdCBiYXNlSGFzaCA9IGhhc2hQYXRoKHJlc29sdmVkLCB7XG4gICAgICBjYW5vbmljYWw6IHRydWUsXG4gICAgICBzaG91bGRFeGNsdWRlOiAocmVsYXRpdmVQYXRoLCBpc0RpcmVjdG9yeSkgPT5cbiAgICAgICAgc3RyYXRlZ3kuaWdub3Jlcyh7IHJlbGF0aXZlUGF0aCwgaXNEaXJlY3RvcnkgfSksXG4gICAgICBkZXNjZW5kSW50b0V4Y2x1ZGVkRGlyZWN0b3JpZXM6XG4gICAgICAgIHN0cmF0ZWd5LnBydW5lRXhjbHVkZWREaXJlY3RvcmllcyA9PT0gZmFsc2UsXG4gICAgfSk7XG5cbiAgICBpZiAoIW9wdGlvbnMuZXh0cmFIYXNoKSB7XG4gICAgICByZXR1cm4gYmFzZUhhc2g7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNyeXB0b1xuICAgICAgLmNyZWF0ZUhhc2goXCJtZDVcIilcbiAgICAgIC51cGRhdGUoYmFzZUhhc2gpXG4gICAgICAudXBkYXRlKG9wdGlvbnMuZXh0cmFIYXNoKVxuICAgICAgLmRpZ2VzdChcImhleFwiKVxuICAgICAgLnNsaWNlKDAsIDMyKVxuICAgICAgLnRvVXBwZXJDYXNlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSBgZmlsZVBhdGhgIHRvIGFuIGFic29sdXRlIHBhdGggdXNpbmcgdGhlIHNhbWUgYmFzZSBhc1xuICAgKiBgVGVycmFmb3JtQXNzZXRgOiByZWxhdGl2ZSBwYXRocyBhcmUgYW5jaG9yZWQgdG8gdGhlIGRpcmVjdG9yeSBob2xkaW5nXG4gICAqIGBjZGt0Zi5qc29uYCwgbm90IGBwcm9jZXNzLmN3ZCgpYCwgc28gYSBoYXNoIHRha2VuIGhlcmUgbWF0Y2hlcyB0aGUgb25lXG4gICAqIGBUZXJyYWZvcm1Bc3NldGAgY29tcHV0ZXMgZm9yIHRoZSBzYW1lIHNvdXJjZSBldmVuIHdoZW4gdGhlIGFwcCBpcyBydW5cbiAgICogZnJvbSBhIHN1YmRpcmVjdG9yeSBvciBhIHRlc3QgcnVubmVyLiBVbmxpa2UgYFRlcnJhZm9ybUFzc2V0YCwgdGhlcmUgaXNcbiAgICogbm8gY29uc3RydWN0IHNjb3BlIHRvIHJlYWQgdGhlIGBjZGt0Zkpzb25QYXRoYCBjb250ZXh0IGZyb20sIHNvIHRoaXMgdXNlc1xuICAgKiB0aGUgYGZpbmRGaWxlQWJvdmVDd2RgIGZhbGxiYWNrIGRpcmVjdGx5LlxuICAgKiBAcGFyYW0gZmlsZVBhdGggLSBwYXRoIHBhc3NlZCB0byB7QGxpbmsgQXNzZXRIYXNoLm9mfVxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgcmVzb2x2ZVBhdGgoZmlsZVBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHBhdGguaXNBYnNvbHV0ZShmaWxlUGF0aCkpIHtcbiAgICAgIHJldHVybiBmaWxlUGF0aDtcbiAgICB9XG4gICAgY29uc3QgY2RrdGZKc29uUGF0aCA9IGZpbmRGaWxlQWJvdmVDd2QoXCJjZGt0Zi5qc29uXCIpO1xuICAgIGlmICghY2RrdGZKc29uUGF0aCkge1xuICAgICAgdGhyb3cgYXNzZXRIYXNoT3V0T2ZTY29wZUNka3RuSnNvbihmaWxlUGF0aCk7XG4gICAgfVxuICAgIHJldHVybiBwYXRoLnJlc29sdmUocGF0aC5kaXJuYW1lKGNka3RmSnNvblBhdGgpLCBmaWxlUGF0aCk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge31cbn1cbiJdfQ==
|
package/lib/assets.d.ts
ADDED
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { IIgnoreStrategy } from "./ignore-strategy";
|
|
2
|
+
/**
|
|
3
|
+
* Common interface for all assets.
|
|
4
|
+
*/
|
|
5
|
+
export interface IAsset {
|
|
6
|
+
/**
|
|
7
|
+
* A hash of this asset, which is available at construction time. As this is a plain string, it
|
|
8
|
+
* can be used in construct IDs in order to enforce creation of a new resource when the content
|
|
9
|
+
* hash has changed.
|
|
10
|
+
*/
|
|
11
|
+
readonly assetHash: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Asset hash options
|
|
15
|
+
*/
|
|
16
|
+
export interface AssetOptions {
|
|
17
|
+
/**
|
|
18
|
+
* Specify a custom hash for this asset. If `assetHashType` is set it must
|
|
19
|
+
* be set to `AssetHashType.CUSTOM`. The value is used verbatim as the asset
|
|
20
|
+
* hash, and because it names the staged asset file it may only contain
|
|
21
|
+
* letters, digits, `_`, `.` and `-`.
|
|
22
|
+
*
|
|
23
|
+
* NOTE: the hash is used in order to identify a specific revision of the asset, and
|
|
24
|
+
* used for optimizing and caching deployment activities related to this asset such as
|
|
25
|
+
* packaging, uploading to cloud storage, etc. If you chose to customize the hash, you will
|
|
26
|
+
* need to make sure it is updated every time the asset changes, or otherwise it is
|
|
27
|
+
* possible that some deployments will not be invalidated.
|
|
28
|
+
*
|
|
29
|
+
* @default - based on `assetHashType`
|
|
30
|
+
*/
|
|
31
|
+
readonly assetHash?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Specifies the type of hash to calculate for this asset.
|
|
34
|
+
*
|
|
35
|
+
* If `assetHash` is configured, this option must be `undefined` or
|
|
36
|
+
* `AssetHashType.CUSTOM`.
|
|
37
|
+
*
|
|
38
|
+
* @default - the default is `AssetHashType.SOURCE`, but if `assetHash` is
|
|
39
|
+
* explicitly specified this value defaults to `AssetHashType.CUSTOM`.
|
|
40
|
+
*/
|
|
41
|
+
readonly assetHashType?: AssetHashType;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The type of asset hash
|
|
45
|
+
*
|
|
46
|
+
* NOTE: the hash is used in order to identify a specific revision of the asset, and
|
|
47
|
+
* used for optimizing and caching deployment activities related to this asset such as
|
|
48
|
+
* packaging, uploading to cloud storage, etc.
|
|
49
|
+
*/
|
|
50
|
+
export declare enum AssetHashType {
|
|
51
|
+
/**
|
|
52
|
+
* Based on the content of the source path
|
|
53
|
+
*
|
|
54
|
+
* Use `SOURCE` when the content of the asset changes frequently or when
|
|
55
|
+
* you want to track changes to the source files directly.
|
|
56
|
+
*/
|
|
57
|
+
SOURCE = "source",
|
|
58
|
+
/**
|
|
59
|
+
* Based on the content of the bundling output
|
|
60
|
+
*
|
|
61
|
+
* Use `OUTPUT` when the source of the asset is a top level folder containing
|
|
62
|
+
* code and/or dependencies that are not directly linked to the asset.
|
|
63
|
+
*/
|
|
64
|
+
OUTPUT = "output",
|
|
65
|
+
/**
|
|
66
|
+
* Use a custom hash
|
|
67
|
+
*/
|
|
68
|
+
CUSTOM = "custom"
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* How a staged asset is produced and what shape it takes on disk.
|
|
72
|
+
*
|
|
73
|
+
* Packaging answers two independent questions: how the artifact is produced
|
|
74
|
+
* (copy, zip, tar.gz, ...) and whether the result is a directory or a single
|
|
75
|
+
* file. A closed enum can only ever answer the second one, so it is an
|
|
76
|
+
* interface rather than an enum — custom formats (e.g. `tar.bz2`) need no
|
|
77
|
+
* core change.
|
|
78
|
+
*/
|
|
79
|
+
export interface IAssetPackaging {
|
|
80
|
+
/**
|
|
81
|
+
* Appended to the staged artifact name, e.g. ".zip", "", ".tar.bz2".
|
|
82
|
+
*/
|
|
83
|
+
readonly extension: string;
|
|
84
|
+
/**
|
|
85
|
+
* Whether the staged result is a directory rather than a single file.
|
|
86
|
+
*
|
|
87
|
+
* Publishers branch on this to decide whether they upload one object or
|
|
88
|
+
* sync a tree.
|
|
89
|
+
*/
|
|
90
|
+
readonly producesDirectory: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Perform the staging transformation, writing the packaged result to
|
|
93
|
+
* `options.target`.
|
|
94
|
+
* @param options - see {@link PackOptions}
|
|
95
|
+
*/
|
|
96
|
+
pack(options: PackOptions): void;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Options for {@link IAssetPackaging.pack}.
|
|
100
|
+
*
|
|
101
|
+
* A struct rather than positional parameters: adding a struct field is
|
|
102
|
+
* additive, adding a method parameter is not, and `pack` is called through
|
|
103
|
+
* JSII where that distinction is a breaking-change boundary.
|
|
104
|
+
*/
|
|
105
|
+
export interface PackOptions {
|
|
106
|
+
/**
|
|
107
|
+
* Path to the resolved (already bundled, if applicable) source.
|
|
108
|
+
*/
|
|
109
|
+
readonly source: string;
|
|
110
|
+
/**
|
|
111
|
+
* Path the packaged result should be written to.
|
|
112
|
+
*/
|
|
113
|
+
readonly target: string;
|
|
114
|
+
/**
|
|
115
|
+
* Entries to omit from the packaged result. Must match the strategy used
|
|
116
|
+
* to hash the same source, or the hash and the artifact describe
|
|
117
|
+
* different sets of files.
|
|
118
|
+
*
|
|
119
|
+
* @default - nothing is excluded
|
|
120
|
+
*/
|
|
121
|
+
readonly ignoreStrategy?: IIgnoreStrategy;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Built-in packaging strategies. Custom formats implement `IAssetPackaging`
|
|
125
|
+
* directly rather than extending this class.
|
|
126
|
+
*/
|
|
127
|
+
export declare class AssetPackaging {
|
|
128
|
+
/**
|
|
129
|
+
* Copy a single file as-is.
|
|
130
|
+
*/
|
|
131
|
+
static readonly FILE: IAssetPackaging;
|
|
132
|
+
/**
|
|
133
|
+
* Copy a directory tree as-is, without archiving.
|
|
134
|
+
*/
|
|
135
|
+
static readonly DIRECTORY: IAssetPackaging;
|
|
136
|
+
/**
|
|
137
|
+
* Archive a directory tree into a single zip file.
|
|
138
|
+
*/
|
|
139
|
+
static readonly ZIP: IAssetPackaging;
|
|
140
|
+
private constructor();
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* A staged artifact, ready to hand to an `IAssetPublisher`.
|
|
144
|
+
*
|
|
145
|
+
* Deliberately narrower than a location: `path` and `isDirectory` are known
|
|
146
|
+
* once staging runs, at synth time, before anything is published. Where an
|
|
147
|
+
* asset ends up — a bucket name, an object key, a URL — is resolved at
|
|
148
|
+
* apply time and belongs on the publisher's own reference type instead.
|
|
149
|
+
*/
|
|
150
|
+
export interface StagedAsset {
|
|
151
|
+
/**
|
|
152
|
+
* A hash on the content source. This hash is used to uniquely identify this
|
|
153
|
+
* asset throughout the system. If this value doesn't change, the asset will
|
|
154
|
+
* not be rebuilt or republished.
|
|
155
|
+
*/
|
|
156
|
+
readonly assetHash: string;
|
|
157
|
+
/**
|
|
158
|
+
* The path to the staged artifact, relative to the stack directory.
|
|
159
|
+
*/
|
|
160
|
+
readonly path: string;
|
|
161
|
+
/**
|
|
162
|
+
* Whether the staged artifact is a directory rather than a single file.
|
|
163
|
+
*
|
|
164
|
+
* Publishers branch on this to decide whether they upload one object or
|
|
165
|
+
* sync a tree; see `IAssetPackaging.producesDirectory`.
|
|
166
|
+
*/
|
|
167
|
+
readonly isDirectory: boolean;
|
|
168
|
+
}
|