@cdktn/provider-generator 0.23.0-pre.7 → 0.23.0
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/ambient.d.ts +0 -1
- package/{lib → build}/__tests__/edge-provider-schema/builder.d.ts +1 -0
- package/build/__tests__/edge-provider-schema/builder.js +106 -0
- package/build/__tests__/edge-provider-schema/cli.d.ts +2 -0
- package/build/__tests__/edge-provider-schema/cli.js +67 -0
- package/{lib → build}/__tests__/edge-provider-schema/index.d.ts +1 -0
- package/build/__tests__/edge-provider-schema/index.js +154 -0
- package/build/__tests__/edge-provider-schema.test.d.ts +2 -0
- package/build/__tests__/edge-provider-schema.test.js +46 -0
- package/build/__tests__/provider.test.d.ts +2 -0
- package/build/__tests__/provider.test.js +158 -0
- package/build/get/__tests__/constructs-maker.test.d.ts +2 -0
- package/build/get/__tests__/constructs-maker.test.js +113 -0
- package/build/get/__tests__/generator/complex-computed-types.test.d.ts +2 -0
- package/build/get/__tests__/generator/complex-computed-types.test.js +42 -0
- package/build/get/__tests__/generator/deep-nested-attributes.test.d.ts +2 -0
- package/build/get/__tests__/generator/deep-nested-attributes.test.js +50 -0
- package/build/get/__tests__/generator/description-escaping.test.d.ts +2 -0
- package/build/get/__tests__/generator/description-escaping.test.js +65 -0
- package/build/get/__tests__/generator/empty-provider-resources.test.d.ts +2 -0
- package/build/get/__tests__/generator/empty-provider-resources.test.js +40 -0
- package/build/get/__tests__/generator/export-sharding.test.d.ts +2 -0
- package/build/get/__tests__/generator/export-sharding.test.js +82 -0
- package/build/get/__tests__/generator/module-generator.test.d.ts +2 -0
- package/build/get/__tests__/generator/module-generator.test.js +476 -0
- package/build/get/__tests__/generator/nested-types.test.d.ts +2 -0
- package/build/get/__tests__/generator/nested-types.test.js +51 -0
- package/build/get/__tests__/generator/provider.test.d.ts +2 -0
- package/build/get/__tests__/generator/provider.test.js +51 -0
- package/build/get/__tests__/generator/resource-types.test.d.ts +2 -0
- package/build/get/__tests__/generator/resource-types.test.js +78 -0
- package/build/get/__tests__/generator/skipped-attributes.test.d.ts +2 -0
- package/build/get/__tests__/generator/skipped-attributes.test.js +55 -0
- package/build/get/__tests__/generator/types.test.d.ts +2 -0
- package/build/get/__tests__/generator/types.test.js +289 -0
- package/build/get/__tests__/generator/versions-file.test.d.ts +2 -0
- package/build/get/__tests__/generator/versions-file.test.js +74 -0
- package/{lib → build}/get/__tests__/util.d.ts +1 -0
- package/build/get/__tests__/util.js +59 -0
- package/{lib → build}/get/constructs-maker.d.ts +2 -1
- package/{lib → build}/get/constructs-maker.js +5 -2
- package/{lib → build}/get/generator/custom-defaults.d.ts +1 -0
- package/build/get/generator/custom-defaults.js +403 -0
- package/{lib → build}/get/generator/emitter/attributes-emitter.d.ts +1 -0
- package/build/get/generator/emitter/attributes-emitter.js +161 -0
- package/{lib → build}/get/generator/emitter/index.d.ts +1 -0
- package/{lib → build}/get/generator/emitter/index.js +1 -1
- package/{lib → build}/get/generator/emitter/resource-emitter.d.ts +1 -0
- package/build/get/generator/emitter/resource-emitter.js +147 -0
- package/{lib → build}/get/generator/emitter/struct-emitter.d.ts +1 -0
- package/build/get/generator/emitter/struct-emitter.js +500 -0
- package/{lib → build}/get/generator/loop-detection.d.ts +1 -0
- package/build/get/generator/loop-detection.js +56 -0
- package/{lib → build}/get/generator/models/attribute-model.d.ts +1 -0
- package/build/get/generator/models/attribute-model.js +160 -0
- package/{lib → build}/get/generator/models/attribute-type-model.d.ts +1 -0
- package/build/get/generator/models/attribute-type-model.js +376 -0
- package/{lib → build}/get/generator/models/index.d.ts +1 -0
- package/{lib → build}/get/generator/models/index.js +1 -1
- package/{lib → build}/get/generator/models/resource-model.d.ts +1 -0
- package/build/get/generator/models/resource-model.js +106 -0
- package/{lib → build}/get/generator/models/scope.d.ts +1 -0
- package/build/get/generator/models/scope.js +36 -0
- package/{lib → build}/get/generator/models/struct.d.ts +1 -0
- package/build/get/generator/models/struct.js +90 -0
- package/{lib → build}/get/generator/module-generator.d.ts +1 -0
- package/build/get/generator/module-generator.js +184 -0
- package/{lib → build}/get/generator/provider-generator.d.ts +1 -0
- package/build/get/generator/provider-generator.js +225 -0
- package/{lib → build}/get/generator/resource-parser.d.ts +1 -0
- package/build/get/generator/resource-parser.js +497 -0
- package/{lib → build}/get/generator/sanitized-comments.d.ts +1 -0
- package/build/get/generator/sanitized-comments.js +44 -0
- package/{lib → build}/get/generator/skipped-attributes.d.ts +1 -0
- package/build/get/generator/skipped-attributes.js +29 -0
- package/{lib → build}/index.d.ts +1 -0
- package/{lib → build}/index.js +1 -1
- package/{lib → build}/util.d.ts +1 -0
- package/build/util.js +30 -0
- package/package.json +13 -15
- package/{lib → src}/__tests__/__snapshots__/edge-provider-schema.test.ts.snap +1 -1
- package/{lib → src}/__tests__/__snapshots__/provider.test.ts.snap +14953 -890
- package/{lib → src}/get/__tests__/generator/__snapshots__/complex-computed-types.test.ts.snap +1 -1
- package/{lib → src}/get/__tests__/generator/__snapshots__/description-escaping.test.ts.snap +1 -1
- package/{lib → src}/get/__tests__/generator/__snapshots__/export-sharding.test.ts.snap +1 -1
- package/{lib → src}/get/__tests__/generator/__snapshots__/module-generator.test.ts.snap +10 -10
- package/{lib → src}/get/__tests__/generator/__snapshots__/nested-types.test.ts.snap +1 -1
- package/{lib → src}/get/__tests__/generator/__snapshots__/provider.test.ts.snap +1 -1
- package/{lib → src}/get/__tests__/generator/__snapshots__/resource-types.test.ts.snap +1 -1
- package/{lib → src}/get/__tests__/generator/__snapshots__/skipped-attributes.test.ts.snap +1 -1
- package/{lib → src}/get/__tests__/generator/__snapshots__/types.test.ts.snap +92 -1
- package/src/get/__tests__/generator/fixtures/map-of-map-of-string.test.fixture.json +27 -0
- package/tsconfig.json +6 -3
- package/lib/__tests__/edge-provider-schema/builder.js +0 -106
- package/lib/__tests__/edge-provider-schema/cli.d.ts +0 -1
- package/lib/__tests__/edge-provider-schema/cli.js +0 -67
- package/lib/__tests__/edge-provider-schema/index.js +0 -154
- package/lib/__tests__/edge-provider-schema.test.d.ts +0 -1
- package/lib/__tests__/edge-provider-schema.test.js +0 -46
- package/lib/__tests__/provider.test.d.ts +0 -1
- package/lib/__tests__/provider.test.js +0 -158
- package/lib/get/__tests__/constructs-maker.test.d.ts +0 -1
- package/lib/get/__tests__/constructs-maker.test.js +0 -113
- package/lib/get/__tests__/generator/complex-computed-types.test.d.ts +0 -1
- package/lib/get/__tests__/generator/complex-computed-types.test.js +0 -42
- package/lib/get/__tests__/generator/deep-nested-attributes.test.d.ts +0 -1
- package/lib/get/__tests__/generator/deep-nested-attributes.test.js +0 -50
- package/lib/get/__tests__/generator/description-escaping.test.d.ts +0 -1
- package/lib/get/__tests__/generator/description-escaping.test.js +0 -65
- package/lib/get/__tests__/generator/empty-provider-resources.test.d.ts +0 -1
- package/lib/get/__tests__/generator/empty-provider-resources.test.js +0 -40
- package/lib/get/__tests__/generator/export-sharding.test.d.ts +0 -1
- package/lib/get/__tests__/generator/export-sharding.test.js +0 -82
- package/lib/get/__tests__/generator/module-generator.test.d.ts +0 -1
- package/lib/get/__tests__/generator/module-generator.test.js +0 -476
- package/lib/get/__tests__/generator/nested-types.test.d.ts +0 -1
- package/lib/get/__tests__/generator/nested-types.test.js +0 -51
- package/lib/get/__tests__/generator/provider.test.d.ts +0 -1
- package/lib/get/__tests__/generator/provider.test.js +0 -51
- package/lib/get/__tests__/generator/resource-types.test.d.ts +0 -1
- package/lib/get/__tests__/generator/resource-types.test.js +0 -78
- package/lib/get/__tests__/generator/skipped-attributes.test.d.ts +0 -1
- package/lib/get/__tests__/generator/skipped-attributes.test.js +0 -55
- package/lib/get/__tests__/generator/types.test.d.ts +0 -1
- package/lib/get/__tests__/generator/types.test.js +0 -280
- package/lib/get/__tests__/generator/versions-file.test.d.ts +0 -1
- package/lib/get/__tests__/generator/versions-file.test.js +0 -74
- package/lib/get/__tests__/util.js +0 -59
- package/lib/get/generator/custom-defaults.js +0 -403
- package/lib/get/generator/emitter/attributes-emitter.js +0 -161
- package/lib/get/generator/emitter/resource-emitter.js +0 -144
- package/lib/get/generator/emitter/struct-emitter.js +0 -500
- package/lib/get/generator/loop-detection.js +0 -56
- package/lib/get/generator/models/attribute-model.js +0 -160
- package/lib/get/generator/models/attribute-type-model.js +0 -376
- package/lib/get/generator/models/resource-model.js +0 -106
- package/lib/get/generator/models/scope.js +0 -36
- package/lib/get/generator/models/struct.js +0 -90
- package/lib/get/generator/module-generator.js +0 -184
- package/lib/get/generator/provider-generator.js +0 -225
- package/lib/get/generator/resource-parser.js +0 -497
- package/lib/get/generator/sanitized-comments.js +0 -44
- package/lib/get/generator/skipped-attributes.js +0 -29
- package/lib/util.js +0 -30
- /package/{lib → src}/get/__tests__/generator/fixtures/aws-provider.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/aws_acm_certificate.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/aws_cloudfront_distribution.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/aws_fms_admin_account.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/aws_quicksight_template.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/aws_s3_bucket.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/aws_security_group.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/aws_wafv2_web_acl.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/block-type-nested-computed-list.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/block-type-set-list.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/boolean-list.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/boolean-map.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/comment-ending-sequence.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/computed-complex-nested.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/computed-complex.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/computed-optional-complex.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/data_aws_quicksight_analysis.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/datadog_dashboard.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/datadog_spans_metric.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/deep-attributes.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/deeply-nested-block-types.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/description-escaping.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/elasticstack-provider.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/empty-provider-resources.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/ignored-attributes.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/incompatible-attribute-names.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/incompatible-resource-names.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/list-list-object.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/list-list-string.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/list-of-string-map.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/map-of-string-list.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/markdown-description-with-code-blocks.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/module-get-x.test.fixture.tf +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/module-no-newline-1.test.fixture.tf +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/module-no-newline-2.test.fixture.tf +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/module-no-outputs.test.fixture.tf +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/module-no-variable-type.test.fixture.tf +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/module-with-star-default.test.fixture.tf +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/name-conflict.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/nested-type-without-attributes.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/nested-types.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/number-list.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/number-map.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/primitive-boolean.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/primitive-dynamic.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/primitive-number.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/primitive-string.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/single-block-type.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/string-list.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/string-map.test.fixture.json +0 -0
- /package/{lib → src}/get/__tests__/generator/fixtures/stripe-schema.test.fixture.json +0 -0
|
@@ -1,376 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MapAttributeTypeModel = exports.SetAttributeTypeModel = exports.ListAttributeTypeModel = exports.StructAttributeTypeModel = exports.SimpleAttributeTypeModel = exports.SkippedAttributeTypeModel = void 0;
|
|
4
|
-
const util_1 = require("../../../util");
|
|
5
|
-
class SkippedAttributeTypeModel {
|
|
6
|
-
constructor() { }
|
|
7
|
-
get typeModelType() {
|
|
8
|
-
return "simple";
|
|
9
|
-
}
|
|
10
|
-
get struct() {
|
|
11
|
-
return undefined;
|
|
12
|
-
}
|
|
13
|
-
get isComplex() {
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
getStoredClassInitializer(_name) {
|
|
17
|
-
// not used
|
|
18
|
-
return "";
|
|
19
|
-
}
|
|
20
|
-
get storedClassType() {
|
|
21
|
-
return "any";
|
|
22
|
-
}
|
|
23
|
-
get inputTypeDefinition() {
|
|
24
|
-
return "any";
|
|
25
|
-
}
|
|
26
|
-
getAttributeAccessFunction(name) {
|
|
27
|
-
return `this.interpolationForAttribute('${name}')`;
|
|
28
|
-
}
|
|
29
|
-
get toTerraformFunction() {
|
|
30
|
-
return `cdktn.anyToTerraform`;
|
|
31
|
-
}
|
|
32
|
-
get toHclTerraformFunction() {
|
|
33
|
-
return `cdktn.anyToHclTerraform`;
|
|
34
|
-
}
|
|
35
|
-
get hasReferenceClass() {
|
|
36
|
-
return false;
|
|
37
|
-
}
|
|
38
|
-
get isTokenizable() {
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
exports.SkippedAttributeTypeModel = SkippedAttributeTypeModel;
|
|
43
|
-
class SimpleAttributeTypeModel {
|
|
44
|
-
constructor(type) {
|
|
45
|
-
this.type = type;
|
|
46
|
-
}
|
|
47
|
-
get typeModelType() {
|
|
48
|
-
return "simple";
|
|
49
|
-
}
|
|
50
|
-
get struct() {
|
|
51
|
-
return undefined;
|
|
52
|
-
}
|
|
53
|
-
get isComplex() {
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
getStoredClassInitializer(_name) {
|
|
57
|
-
// not used
|
|
58
|
-
return "";
|
|
59
|
-
}
|
|
60
|
-
get storedClassType() {
|
|
61
|
-
return this.type;
|
|
62
|
-
}
|
|
63
|
-
get inputTypeDefinition() {
|
|
64
|
-
if (this.type === "boolean") {
|
|
65
|
-
return "boolean | cdktn.IResolvable";
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
return this.type;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
getAttributeAccessFunction(name) {
|
|
72
|
-
return `this.get${(0, util_1.uppercaseFirst)(this.type)}Attribute('${name}')`;
|
|
73
|
-
}
|
|
74
|
-
get toTerraformFunction() {
|
|
75
|
-
return `cdktn.${this.type}ToTerraform`;
|
|
76
|
-
}
|
|
77
|
-
get toHclTerraformFunction() {
|
|
78
|
-
return `cdktn.${this.type}ToHclTerraform`;
|
|
79
|
-
}
|
|
80
|
-
get hasReferenceClass() {
|
|
81
|
-
return false;
|
|
82
|
-
}
|
|
83
|
-
get isTokenizable() {
|
|
84
|
-
return true;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
exports.SimpleAttributeTypeModel = SimpleAttributeTypeModel;
|
|
88
|
-
class StructAttributeTypeModel {
|
|
89
|
-
constructor(struct) {
|
|
90
|
-
this.struct = struct;
|
|
91
|
-
}
|
|
92
|
-
get typeModelType() {
|
|
93
|
-
return "struct";
|
|
94
|
-
}
|
|
95
|
-
get isComplex() {
|
|
96
|
-
return true;
|
|
97
|
-
}
|
|
98
|
-
getStoredClassInitializer(name) {
|
|
99
|
-
return `new ${this.struct.outputReferenceName}(this, "${name}")`;
|
|
100
|
-
}
|
|
101
|
-
get storedClassType() {
|
|
102
|
-
return this.struct.name;
|
|
103
|
-
}
|
|
104
|
-
get inputTypeDefinition() {
|
|
105
|
-
return this.struct.name;
|
|
106
|
-
}
|
|
107
|
-
getAttributeAccessFunction(name) {
|
|
108
|
-
// This shouln't actually be called
|
|
109
|
-
return `this.interpolationForAttribute('${name}')`;
|
|
110
|
-
}
|
|
111
|
-
get toTerraformFunction() {
|
|
112
|
-
return `${(0, util_1.downcaseFirst)(this.struct.name)}ToTerraform`;
|
|
113
|
-
}
|
|
114
|
-
get toHclTerraformFunction() {
|
|
115
|
-
return `${(0, util_1.downcaseFirst)(this.struct.name)}ToHclTerraform`;
|
|
116
|
-
}
|
|
117
|
-
get hasReferenceClass() {
|
|
118
|
-
return true;
|
|
119
|
-
}
|
|
120
|
-
get isTokenizable() {
|
|
121
|
-
return false;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
exports.StructAttributeTypeModel = StructAttributeTypeModel;
|
|
125
|
-
class ListAttributeTypeModel {
|
|
126
|
-
constructor(elementType, isSingleItem, isBlock) {
|
|
127
|
-
this.elementType = elementType;
|
|
128
|
-
this.isSingleItem = isSingleItem;
|
|
129
|
-
this.isBlock = isBlock;
|
|
130
|
-
if (this.struct) {
|
|
131
|
-
this.struct.isSingleItem = this.isSingleItem || false;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
get typeModelType() {
|
|
135
|
-
return "list";
|
|
136
|
-
}
|
|
137
|
-
get struct() {
|
|
138
|
-
return this.elementType.struct;
|
|
139
|
-
}
|
|
140
|
-
get isComplex() {
|
|
141
|
-
return this.elementType.isComplex;
|
|
142
|
-
}
|
|
143
|
-
getStoredClassInitializer(name) {
|
|
144
|
-
if (this.isSingleItem) {
|
|
145
|
-
return `new ${this.elementType.storedClassType}OutputReference(this, "${name}")`;
|
|
146
|
-
}
|
|
147
|
-
else {
|
|
148
|
-
if (this.isComplex) {
|
|
149
|
-
return `new ${this.storedClassType}(this, "${name}", false)`;
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
return `new cdktn.${(0, util_1.uppercaseFirst)(this.storedClassType)}(this, "${name}", false)`;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
get storedClassType() {
|
|
157
|
-
return `${this.elementType.storedClassType}List`;
|
|
158
|
-
}
|
|
159
|
-
get inputTypeDefinition() {
|
|
160
|
-
if (this.isSingleItem) {
|
|
161
|
-
return this.elementType.inputTypeDefinition;
|
|
162
|
-
}
|
|
163
|
-
else if (this.elementType.storedClassType === "boolean") {
|
|
164
|
-
return "Array<boolean | cdktn.IResolvable> | cdktn.IResolvable";
|
|
165
|
-
}
|
|
166
|
-
else if (this.isComplex) {
|
|
167
|
-
return `${this.elementType.storedClassType}[] | cdktn.IResolvable`;
|
|
168
|
-
}
|
|
169
|
-
else if (this.elementType.typeModelType !== "simple") {
|
|
170
|
-
return `${this.elementType.inputTypeDefinition}[] | cdktn.IResolvable`;
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
return `${this.elementType.inputTypeDefinition}[]`;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
getAttributeAccessFunction(name) {
|
|
177
|
-
switch (this.elementType.storedClassType) {
|
|
178
|
-
case "string":
|
|
179
|
-
return `this.getListAttribute('${name}')`;
|
|
180
|
-
case "number":
|
|
181
|
-
return `this.getNumberListAttribute('${name}')`;
|
|
182
|
-
}
|
|
183
|
-
return `this.interpolationForAttribute('${name}')`;
|
|
184
|
-
}
|
|
185
|
-
get toTerraformFunction() {
|
|
186
|
-
if (this.isSingleItem) {
|
|
187
|
-
return this.elementType.toTerraformFunction;
|
|
188
|
-
}
|
|
189
|
-
return `cdktn.listMapper(${this.elementType.toTerraformFunction}, ${this.isBlock})`;
|
|
190
|
-
}
|
|
191
|
-
get toHclTerraformFunction() {
|
|
192
|
-
if (this.isSingleItem) {
|
|
193
|
-
return this.elementType.toHclTerraformFunction;
|
|
194
|
-
}
|
|
195
|
-
return `cdktn.listMapperHcl(${this.elementType.toHclTerraformFunction}, ${this.isBlock})`;
|
|
196
|
-
}
|
|
197
|
-
get hasReferenceClass() {
|
|
198
|
-
return this.isSingleItem || this.isComplex;
|
|
199
|
-
}
|
|
200
|
-
get isTokenizable() {
|
|
201
|
-
switch (this.elementType.storedClassType) {
|
|
202
|
-
case "string":
|
|
203
|
-
return true;
|
|
204
|
-
case "number":
|
|
205
|
-
return true;
|
|
206
|
-
default:
|
|
207
|
-
return false;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
exports.ListAttributeTypeModel = ListAttributeTypeModel;
|
|
212
|
-
class SetAttributeTypeModel {
|
|
213
|
-
constructor(elementType, isSingleItem, isBlock) {
|
|
214
|
-
this.elementType = elementType;
|
|
215
|
-
this.isSingleItem = isSingleItem;
|
|
216
|
-
this.isBlock = isBlock;
|
|
217
|
-
if (this.struct) {
|
|
218
|
-
this.struct.isSingleItem = this.isSingleItem || false;
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
get typeModelType() {
|
|
222
|
-
return "set";
|
|
223
|
-
}
|
|
224
|
-
get struct() {
|
|
225
|
-
return this.elementType.struct;
|
|
226
|
-
}
|
|
227
|
-
get isComplex() {
|
|
228
|
-
return this.elementType.isComplex;
|
|
229
|
-
}
|
|
230
|
-
getStoredClassInitializer(name) {
|
|
231
|
-
if (this.isSingleItem) {
|
|
232
|
-
return `new ${this.elementType.storedClassType}OutputReference(this, "${name}")`;
|
|
233
|
-
}
|
|
234
|
-
else {
|
|
235
|
-
if (this.isComplex) {
|
|
236
|
-
return `new ${this.storedClassType}(this, "${name}", true)`;
|
|
237
|
-
}
|
|
238
|
-
else {
|
|
239
|
-
return `new cdktn.${(0, util_1.uppercaseFirst)(this.storedClassType)}(this, "${name}", true)`;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
get storedClassType() {
|
|
244
|
-
return `${this.elementType.storedClassType}List`;
|
|
245
|
-
}
|
|
246
|
-
get inputTypeDefinition() {
|
|
247
|
-
if (this.isSingleItem) {
|
|
248
|
-
return this.elementType.inputTypeDefinition;
|
|
249
|
-
}
|
|
250
|
-
else if (this.elementType.storedClassType === "boolean") {
|
|
251
|
-
return "Array<boolean | cdktn.IResolvable> | cdktn.IResolvable";
|
|
252
|
-
}
|
|
253
|
-
else if (this.isComplex) {
|
|
254
|
-
return `${this.elementType.storedClassType}[] | cdktn.IResolvable`;
|
|
255
|
-
}
|
|
256
|
-
else if (this.elementType.typeModelType !== "simple") {
|
|
257
|
-
return `${this.elementType.inputTypeDefinition}[] | cdktn.IResolvable`;
|
|
258
|
-
}
|
|
259
|
-
else {
|
|
260
|
-
return `${this.elementType.inputTypeDefinition}[]`;
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
getAttributeAccessFunction(name) {
|
|
264
|
-
switch (this.elementType.storedClassType) {
|
|
265
|
-
case "string":
|
|
266
|
-
return `cdktn.Fn.tolist(this.getListAttribute('${name}'))`;
|
|
267
|
-
case "number":
|
|
268
|
-
return `cdktn.Token.asNumberList(cdktn.Fn.tolist(this.getNumberListAttribute('${name}')))`;
|
|
269
|
-
}
|
|
270
|
-
// Token.asAny is required because tolist returns an Array encoded token which the listMapper
|
|
271
|
-
// would try to map over when this is passed to another resource. With Token.asAny() it is left
|
|
272
|
-
// as is by the listMapper and is later properly resolved to a reference
|
|
273
|
-
// (this only works in TypeScript currently, same as for referencing lists
|
|
274
|
-
// [see "interpolationForAttribute(...)" further below])
|
|
275
|
-
return `cdktn.Token.asAny(cdktn.Fn.tolist(this.interpolationForAttribute('${name}')))`;
|
|
276
|
-
}
|
|
277
|
-
get toTerraformFunction() {
|
|
278
|
-
if (this.isSingleItem) {
|
|
279
|
-
return this.elementType.toTerraformFunction;
|
|
280
|
-
}
|
|
281
|
-
else {
|
|
282
|
-
return `cdktn.listMapper(${this.elementType.toTerraformFunction}, ${this.isBlock})`;
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
get toHclTerraformFunction() {
|
|
286
|
-
if (this.isSingleItem) {
|
|
287
|
-
return this.elementType.toHclTerraformFunction;
|
|
288
|
-
}
|
|
289
|
-
return `cdktn.listMapperHcl(${this.elementType.toHclTerraformFunction}, ${this.isBlock})`;
|
|
290
|
-
}
|
|
291
|
-
get hasReferenceClass() {
|
|
292
|
-
return this.isSingleItem || this.isComplex;
|
|
293
|
-
}
|
|
294
|
-
get isTokenizable() {
|
|
295
|
-
switch (this.elementType.storedClassType) {
|
|
296
|
-
case "string":
|
|
297
|
-
return true;
|
|
298
|
-
case "number":
|
|
299
|
-
return true;
|
|
300
|
-
default:
|
|
301
|
-
return false;
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
exports.SetAttributeTypeModel = SetAttributeTypeModel;
|
|
306
|
-
class MapAttributeTypeModel {
|
|
307
|
-
constructor(elementType) {
|
|
308
|
-
this.elementType = elementType;
|
|
309
|
-
}
|
|
310
|
-
get typeModelType() {
|
|
311
|
-
return "map";
|
|
312
|
-
}
|
|
313
|
-
get struct() {
|
|
314
|
-
return this.elementType.struct;
|
|
315
|
-
}
|
|
316
|
-
get isComplex() {
|
|
317
|
-
return this.elementType.isComplex;
|
|
318
|
-
}
|
|
319
|
-
getStoredClassInitializer(name) {
|
|
320
|
-
if (this.isComplex) {
|
|
321
|
-
return `new ${this.storedClassType}(this, "${name}")`;
|
|
322
|
-
}
|
|
323
|
-
else {
|
|
324
|
-
return `new cdktn.${(0, util_1.uppercaseFirst)(this.storedClassType)}(this, "${name}")`;
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
get storedClassType() {
|
|
328
|
-
return `${this.elementType.storedClassType}Map`;
|
|
329
|
-
}
|
|
330
|
-
get inputTypeDefinition() {
|
|
331
|
-
// map of booleans has token support, but booleans don't
|
|
332
|
-
if (this.elementType.storedClassType === "boolean") {
|
|
333
|
-
return `{ [key: string]: (${this.elementType.storedClassType} | cdktn.IResolvable) }`;
|
|
334
|
-
}
|
|
335
|
-
else if (this.isComplex) {
|
|
336
|
-
return `{ [key: string]: ${this.elementType.storedClassType} } | cdktn.IResolvable`;
|
|
337
|
-
}
|
|
338
|
-
else if (this.elementType.typeModelType !== "simple") {
|
|
339
|
-
return `{ [key: string]: ${this.elementType.inputTypeDefinition} } | cdktn.IResolvable`;
|
|
340
|
-
}
|
|
341
|
-
else {
|
|
342
|
-
return `{ [key: string]: ${this.elementType.storedClassType} }`;
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
getAttributeAccessFunction(name) {
|
|
346
|
-
if (!this.isComplex && this.elementType.typeModelType !== "simple") {
|
|
347
|
-
return `this.interpolationForAttribute('${name}')`;
|
|
348
|
-
}
|
|
349
|
-
return `this.get${(0, util_1.uppercaseFirst)(this.storedClassType)}Attribute('${name}')`;
|
|
350
|
-
}
|
|
351
|
-
get toTerraformFunction() {
|
|
352
|
-
return `cdktn.hashMapper(${this.elementType.toTerraformFunction})`;
|
|
353
|
-
}
|
|
354
|
-
get toHclTerraformFunction() {
|
|
355
|
-
return `cdktn.hashMapperHcl(${this.elementType.toHclTerraformFunction})`;
|
|
356
|
-
}
|
|
357
|
-
get hasReferenceClass() {
|
|
358
|
-
return this.isComplex;
|
|
359
|
-
}
|
|
360
|
-
get isTokenizable() {
|
|
361
|
-
switch (this.elementType.storedClassType) {
|
|
362
|
-
case "string":
|
|
363
|
-
return true;
|
|
364
|
-
case "number":
|
|
365
|
-
return true;
|
|
366
|
-
case "boolean":
|
|
367
|
-
return true;
|
|
368
|
-
case "any":
|
|
369
|
-
return true;
|
|
370
|
-
default:
|
|
371
|
-
return false;
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
exports.MapAttributeTypeModel = MapAttributeTypeModel;
|
|
376
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLXR5cGUtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhdHRyaWJ1dGUtdHlwZS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSx3Q0FBOEQ7QUFnQjlELE1BQWEseUJBQXlCO0lBQ3BDLGdCQUFlLENBQUM7SUFFaEIsSUFBSSxhQUFhO1FBQ2YsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxLQUFhO1FBQ3JDLFdBQVc7UUFDWCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsMEJBQTBCLENBQUMsSUFBWTtRQUNyQyxPQUFPLG1DQUFtQyxJQUFJLElBQUksQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxzQkFBc0IsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxzQkFBc0I7UUFDeEIsT0FBTyx5QkFBeUIsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUEvQ0QsOERBK0NDO0FBRUQsTUFBYSx3QkFBd0I7SUFDbkMsWUFBNEIsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7SUFBRyxDQUFDO0lBRTVDLElBQUksYUFBYTtRQUNmLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLFNBQVMsQ0FBQztJ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QUksSUFBSSxDQUFDO1FBQ3JELENBQUM7UUFFRCxPQUFPLFdBQVcsSUFBQSxxQkFBYyxFQUM5QixJQUFJLENBQUMsZUFBZSxDQUNyQixjQUFjLElBQUksSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixPQUFPLG9CQUFvQixJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixHQUFHLENBQUM7SUFDckUsQ0FBQztJQUVELElBQUksc0JBQXNCO1FBQ3hCLE9BQU8sdUJBQXVCLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLEdBQUcsQ0FBQztJQUMzRSxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixRQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekMsS0FBSyxRQUFRO2dCQUNYLE9BQU8sSUFBSSxDQUFDO1lBQ2QsS0FBSyxRQUFRO2dCQUNYLE9BQU8sSUFBSSxDQUFDO1lBQ2QsS0FBSyxTQUFTO2dCQUNaLE9BQU8sSUFBSSxDQUFDO1lBQ2QsS0FBSyxLQUFLO2dCQUNSLE9BQU8sSUFBSSxDQUFDO1lBQ2Q7Z0JBQ0UsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTlFRCxzREE4RUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHsgU3RydWN0IH0gZnJvbSBcIi4vc3RydWN0XCI7XG5pbXBvcnQgeyB1cHBlcmNhc2VGaXJzdCwgZG93bmNhc2VGaXJzdCB9IGZyb20gXCIuLi8uLi8uLi91dGlsXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXR0cmlidXRlVHlwZU1vZGVsIHtcbiAgcmVhZG9ubHkgc3RydWN0PzogU3RydWN0OyAvLyBjb21wbGV4IG9iamVjdCB0eXBlIGNvbnRhaW5lZCB3aXRoaW4gdGhlIHR5cGVcbiAgcmVhZG9ubHkgaXNDb21wbGV4OiBib29sZWFuOyAvLyBiYXNpY2FsbHkgdGhlIHNhbWUgYXMgaGF2aW5nIGEgc3RydWN0XG4gIGdldFN0b3JlZENsYXNzSW5pdGlhbGl6ZXIobmFtZTogc3RyaW5nKTogc3RyaW5nOyAvLyBpbml0aWFsaXplciBmb3Iga2VlcGluZyBjbGFzcyBuZWVkZWQgdG8ga2VlcCB0cmFjayBvZiByZWZlcmVuY2UgYWNjZXNzXG4gIHJlYWRvbmx5IHN0b3JlZENsYXNzVHlwZTogc3RyaW5nOyAvLyB1c2VkIG1haW5seSBieSBjb2xsZWN0aW9uIHR5cGVzIHRvIGdlbmVyYXRlIHRoZWlyIHN0b3JlZCBjbGFzcyBpbml0aWFsaXplclxuICByZWFkb25seSBpbnB1dFR5cGVEZWZpbml0aW9uOiBzdHJpbmc7IC8vIHRoaXMgaXMgdGhlIHR5cGUgdXNlZCBmb3IgaW5wdXR0aW5nIHZhbHVlc1xuICBnZXRBdHRyaWJ1dGVBY2Nlc3NGdW5jdGlvbihuYW1lOiBzdHJpbmcpOiBzdHJpbmc7IC8vIHRoaXMgaXMgZm9yIGdldHRpbmcgcmVmZXJlbmNlIGZvciBzaW1wbGUgdHlwZXNcbiAgcmVhZG9ubHkgdG9UZXJyYWZvcm1GdW5jdGlvbjogc3RyaW5nOyAvLyB0aGlzIGlzIGZvciBjb252ZXJ0aW5nIGlucHV0IHZhbHVlcyB0byBUZXJyYWZvcm0gc3ludGF4XG4gIHJlYWRvbmx5IHRvSGNsVGVycmFmb3JtRnVuY3Rpb246IHN0cmluZzsgLy8gdGhpcyBpcyBmb3IgY29udmVydGluZyBpbnB1dCB2YWx1ZXMgdG8gVGVycmFmb3JtIHN5bnRheCBpbiBIQ0xcbiAgcmVhZG9ubHkgdHlwZU1vZGVsVHlwZTogc3RyaW5nOyAvLyBzbyB3ZSBkb24ndCBuZWVkIHRvIHVzZSBpbnN0YW5jZW9mXG4gIHJlYWRvbmx5IGhhc1JlZmVyZW5jZUNsYXNzOiBib29sZWFuOyAvLyB1c2VkIHRvIGRldGVybWluZSBpZiBhIHN0b3JlZF9jbGFzcyBnZXR0ZXIgc2hvdWxkIGJlIHVzZWRcbiAgcmVhZG9ubHkgaXNUb2tlbml6YWJsZTogYm9vbGVhbjsgLy8gY2FuIHRoZSB0eXBlIGJlIHJlcHJlc2VudGVkIGJ5IGEgdG9rZW4gdHlwZVxufVxuXG5leHBvcnQgY2xhc3MgU2tpcHBlZEF0dHJpYnV0ZVR5cGVNb2RlbCBpbXBsZW1lbnRzIEF0dHJpYnV0ZVR5cGVNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBnZXQgdHlwZU1vZGVsVHlwZSgpIHtcbiAgICByZXR1cm4gXCJzaW1wbGVcIjtcbiAgfVxuXG4gIGdldCBzdHJ1Y3QoKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBpc0NvbXBsZXgoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ2V0U3RvcmVkQ2xhc3NJbml0aWFsaXplcihfbmFtZTogc3RyaW5nKSB7XG4gICAgLy8gbm90IHVzZWRcbiAgICByZXR1cm4gXCJcIjtcbiAgfVxuXG4gIGdldCBzdG9yZWRDbGFzc1R5cGUoKSB7XG4gICAgcmV0dXJuIFwiYW55XCI7XG4gIH1cblxuICBnZXQgaW5wdXRUeXBlRGVmaW5pdGlvbigpIHtcbiAgICByZXR1cm4gXCJhbnlcIjtcbiAgfVxuXG4gIGdldEF0dHJpYnV0ZUFjY2Vzc0Z1bmN0aW9uKG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBgdGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKCcke25hbWV9JylgO1xuICB9XG5cbiAgZ2V0IHRvVGVycmFmb3JtRnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGBjZGt0bi5hbnlUb1RlcnJhZm9ybWA7XG4gIH1cblxuICBnZXQgdG9IY2xUZXJyYWZvcm1GdW5jdGlvbigpIHtcbiAgICByZXR1cm4gYGNka3RuLmFueVRvSGNsVGVycmFmb3JtYDtcbiAgfVxuXG4gIGdldCBoYXNSZWZlcmVuY2VDbGFzcygpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXQgaXNUb2tlbml6YWJsZSgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNpbXBsZUF0dHJpYnV0ZVR5cGVNb2RlbCBpbXBsZW1lbnRzIEF0dHJpYnV0ZVR5cGVNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSB0eXBlOiBzdHJpbmcpIHt9XG5cbiAgZ2V0IHR5cGVNb2RlbFR5cGUoKSB7XG4gICAgcmV0dXJuIFwic2ltcGxlXCI7XG4gIH1cblxuICBnZXQgc3RydWN0KCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgaXNDb21wbGV4KCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGdldFN0b3JlZENsYXNzSW5pdGlhbGl6ZXIoX25hbWU6IHN0cmluZykge1xuICAgIC8vIG5vdCB1c2VkXG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICBnZXQgc3RvcmVkQ2xhc3NUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXQgaW5wdXRUeXBlRGVmaW5pdGlvbigpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSBcImJvb2xlYW5cIikge1xuICAgICAgcmV0dXJuIFwiYm9vbGVhbiB8IGNka3RuLklSZXNvbHZhYmxlXCI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnR5cGU7XG4gICAgfVxuICB9XG5cbiAgZ2V0QXR0cmlidXRlQWNjZXNzRnVuY3Rpb24obmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGB0aGlzLmdldCR7dXBwZXJjYXNlRmlyc3QodGhpcy50eXBlKX1BdHRyaWJ1dGUoJyR7bmFtZX0nKWA7XG4gIH1cblxuICBnZXQgdG9UZXJyYWZvcm1GdW5jdGlvbigpIHtcbiAgICByZXR1cm4gYGNka3RuLiR7dGhpcy50eXBlfVRvVGVycmFmb3JtYDtcbiAgfVxuXG4gIGdldCB0b0hjbFRlcnJhZm9ybUZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBgY2RrdG4uJHt0aGlzLnR5cGV9VG9IY2xUZXJyYWZvcm1gO1xuICB9XG5cbiAgZ2V0IGhhc1JlZmVyZW5jZUNsYXNzKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGdldCBpc1Rva2VuaXphYmxlKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdHJ1Y3RBdHRyaWJ1dGVUeXBlTW9kZWwgaW1wbGVtZW50cyBBdHRyaWJ1dGVUeXBlTW9kZWwge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgc3RydWN0OiBTdHJ1Y3QpIHt9XG5cbiAgZ2V0IHR5cGVNb2RlbFR5cGUoKSB7XG4gICAgcmV0dXJuIFwic3RydWN0XCI7XG4gIH1cblxuICBnZXQgaXNDb21wbGV4KCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZ2V0U3RvcmVkQ2xhc3NJbml0aWFsaXplcihuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYG5ldyAke3RoaXMuc3RydWN0Lm91dHB1dFJlZmVyZW5jZU5hbWV9KHRoaXMsIFwiJHtuYW1lfVwiKWA7XG4gIH1cblxuICBnZXQgc3RvcmVkQ2xhc3NUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnN0cnVjdC5uYW1lO1xuICB9XG5cbiAgZ2V0IGlucHV0VHlwZURlZmluaXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RydWN0Lm5hbWU7XG4gIH1cblxuICBnZXRBdHRyaWJ1dGVBY2Nlc3NGdW5jdGlvbihuYW1lOiBzdHJpbmcpIHtcbiAgICAvLyBUaGlzIHNob3Vsbid0IGFjdHVhbGx5IGJlIGNhbGxlZFxuICAgIHJldHVybiBgdGhpcy5pbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKCcke25hbWV9JylgO1xuICB9XG5cbiAgZ2V0IHRvVGVycmFmb3JtRnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGAke2Rvd25jYXNlRmlyc3QodGhpcy5zdHJ1Y3QubmFtZSl9VG9UZXJyYWZvcm1gO1xuICB9XG5cbiAgZ2V0IHRvSGNsVGVycmFmb3JtRnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGAke2Rvd25jYXNlRmlyc3QodGhpcy5zdHJ1Y3QubmFtZSl9VG9IY2xUZXJyYWZvcm1gO1xuICB9XG5cbiAgZ2V0IGhhc1JlZmVyZW5jZUNsYXNzKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZ2V0IGlzVG9rZW5pemFibGUoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sbGVjdGlvbkF0dHJpYnV0ZVR5cGVNb2RlbCBleHRlbmRzIEF0dHJpYnV0ZVR5cGVNb2RlbCB7XG4gIGVsZW1lbnRUeXBlOiBBdHRyaWJ1dGVUeXBlTW9kZWw7XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0QXR0cmlidXRlVHlwZU1vZGVsIGltcGxlbWVudHMgQ29sbGVjdGlvbkF0dHJpYnV0ZVR5cGVNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBlbGVtZW50VHlwZTogQXR0cmlidXRlVHlwZU1vZGVsLFxuICAgIHB1YmxpYyByZWFkb25seSBpc1NpbmdsZUl0ZW06IGJvb2xlYW4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBpc0Jsb2NrOiBib29sZWFuLFxuICApIHtcbiAgICBpZiAodGhpcy5zdHJ1Y3QpIHtcbiAgICAgIHRoaXMuc3RydWN0LmlzU2luZ2xlSXRlbSA9IHRoaXMuaXNTaW5nbGVJdGVtIHx8IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGdldCB0eXBlTW9kZWxUeXBlKCkge1xuICAgIHJldHVybiBcImxpc3RcIjtcbiAgfVxuXG4gIGdldCBzdHJ1Y3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFR5cGUuc3RydWN0O1xuICB9XG5cbiAgZ2V0IGlzQ29tcGxleCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50VHlwZS5pc0NvbXBsZXg7XG4gIH1cblxuICBnZXRTdG9yZWRDbGFzc0luaXRpYWxpemVyKG5hbWU6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmlzU2luZ2xlSXRlbSkge1xuICAgICAgcmV0dXJuIGBuZXcgJHt0aGlzLmVsZW1lbnRUeXBlLnN0b3JlZENsYXNzVHlwZX1PdXRwdXRSZWZlcmVuY2UodGhpcywgXCIke25hbWV9XCIpYDtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuaXNDb21wbGV4KSB7XG4gICAgICAgIHJldHVybiBgbmV3ICR7dGhpcy5zdG9yZWRDbGFzc1R5cGV9KHRoaXMsIFwiJHtuYW1lfVwiLCBmYWxzZSlgO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGBuZXcgY2RrdG4uJHt1cHBlcmNhc2VGaXJzdChcbiAgICAgICAgICB0aGlzLnN0b3JlZENsYXNzVHlwZSxcbiAgICAgICAgKX0odGhpcywgXCIke25hbWV9XCIsIGZhbHNlKWA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IHN0b3JlZENsYXNzVHlwZSgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5lbGVtZW50VHlwZS5zdG9yZWRDbGFzc1R5cGV9TGlzdGA7XG4gIH1cblxuICBnZXQgaW5wdXRUeXBlRGVmaW5pdGlvbigpIHtcbiAgICBpZiAodGhpcy5pc1NpbmdsZUl0ZW0pIHtcbiAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRUeXBlLmlucHV0VHlwZURlZmluaXRpb247XG4gICAgfSBlbHNlIGlmICh0aGlzLmVsZW1lbnRUeXBlLnN0b3JlZENsYXNzVHlwZSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgIHJldHVybiBcIkFycmF5PGJvb2xlYW4gfCBjZGt0bi5JUmVzb2x2YWJsZT4gfCBjZGt0bi5JUmVzb2x2YWJsZVwiO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0NvbXBsZXgpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmVsZW1lbnRUeXBlLnN0b3JlZENsYXNzVHlwZX1bXSB8IGNka3RuLklSZXNvbHZhYmxlYDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZWxlbWVudFR5cGUudHlwZU1vZGVsVHlwZSAhPT0gXCJzaW1wbGVcIikge1xuICAgICAgcmV0dXJuIGAke3RoaXMuZWxlbWVudFR5cGUuaW5wdXRUeXBlRGVmaW5pdGlvbn1bXSB8IGNka3RuLklSZXNvbHZhYmxlYDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGAke3RoaXMuZWxlbWVudFR5cGUuaW5wdXRUeXBlRGVmaW5pdGlvbn1bXWA7XG4gICAgfVxuICB9XG5cbiAgZ2V0QXR0cmlidXRlQWNjZXNzRnVuY3Rpb24obmFtZTogc3RyaW5nKSB7XG4gICAgc3dpdGNoICh0aGlzLmVsZW1lbnRUeXBlLnN0b3JlZENsYXNzVHlwZSkge1xuICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgICByZXR1cm4gYHRoaXMuZ2V0TGlzdEF0dHJpYnV0ZSgnJHtuYW1lfScpYDtcbiAgICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgICAgcmV0dXJuIGB0aGlzLmdldE51bWJlckxpc3RBdHRyaWJ1dGUoJyR7bmFtZX0nKWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGB0aGlzLmludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUoJyR7bmFtZX0nKWA7XG4gIH1cblxuICBnZXQgdG9UZXJyYWZvcm1GdW5jdGlvbigpIHtcbiAgICBpZiAodGhpcy5pc1NpbmdsZUl0ZW0pIHtcbiAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRUeXBlLnRvVGVycmFmb3JtRnVuY3Rpb247XG4gICAgfVxuICAgIHJldHVybiBgY2RrdG4ubGlzdE1hcHBlcigke3RoaXMuZWxlbWVudFR5cGUudG9UZXJyYWZvcm1GdW5jdGlvbn0sICR7dGhpcy5pc0Jsb2NrfSlgO1xuICB9XG5cbiAgZ2V0IHRvSGNsVGVycmFmb3JtRnVuY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuaXNTaW5nbGVJdGVtKSB7XG4gICAgICByZXR1cm4gdGhpcy5lbGVtZW50VHlwZS50b0hjbFRlcnJhZm9ybUZ1bmN0aW9uO1xuICAgIH1cblxuICAgIHJldHVybiBgY2RrdG4ubGlzdE1hcHBlckhjbCgke3RoaXMuZWxlbWVudFR5cGUudG9IY2xUZXJyYWZvcm1GdW5jdGlvbn0sICR7dGhpcy5pc0Jsb2NrfSlgO1xuICB9XG5cbiAgZ2V0IGhhc1JlZmVyZW5jZUNsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLmlzU2luZ2xlSXRlbSB8fCB0aGlzLmlzQ29tcGxleDtcbiAgfVxuXG4gIGdldCBpc1Rva2VuaXphYmxlKCkge1xuICAgIHN3aXRjaCAodGhpcy5lbGVtZW50VHlwZS5zdG9yZWRDbGFzc1R5cGUpIHtcbiAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2V0QXR0cmlidXRlVHlwZU1vZGVsIGltcGxlbWVudHMgQ29sbGVjdGlvbkF0dHJpYnV0ZVR5cGVNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBlbGVtZW50VHlwZTogQXR0cmlidXRlVHlwZU1vZGVsLFxuICAgIHB1YmxpYyByZWFkb25seSBpc1NpbmdsZUl0ZW06IGJvb2xlYW4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBpc0Jsb2NrOiBib29sZWFuLFxuICApIHtcbiAgICBpZiAodGhpcy5zdHJ1Y3QpIHtcbiAgICAgIHRoaXMuc3RydWN0LmlzU2luZ2xlSXRlbSA9IHRoaXMuaXNTaW5nbGVJdGVtIHx8IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGdldCB0eXBlTW9kZWxUeXBlKCkge1xuICAgIHJldHVybiBcInNldFwiO1xuICB9XG5cbiAgZ2V0IHN0cnVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50VHlwZS5zdHJ1Y3Q7XG4gIH1cblxuICBnZXQgaXNDb21wbGV4KCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRUeXBlLmlzQ29tcGxleDtcbiAgfVxuXG4gIGdldFN0b3JlZENsYXNzSW5pdGlhbGl6ZXIobmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuaXNTaW5nbGVJdGVtKSB7XG4gICAgICByZXR1cm4gYG5ldyAke3RoaXMuZWxlbWVudFR5cGUuc3RvcmVkQ2xhc3NUeXBlfU91dHB1dFJlZmVyZW5jZSh0aGlzLCBcIiR7bmFtZX1cIilgO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5pc0NvbXBsZXgpIHtcbiAgICAgICAgcmV0dXJuIGBuZXcgJHt0aGlzLnN0b3JlZENsYXNzVHlwZX0odGhpcywgXCIke25hbWV9XCIsIHRydWUpYDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBgbmV3IGNka3RuLiR7dXBwZXJjYXNlRmlyc3QoXG4gICAgICAgICAgdGhpcy5zdG9yZWRDbGFzc1R5cGUsXG4gICAgICAgICl9KHRoaXMsIFwiJHtuYW1lfVwiLCB0cnVlKWA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IHN0b3JlZENsYXNzVHlwZSgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5lbGVtZW50VHlwZS5zdG9yZWRDbGFzc1R5cGV9TGlzdGA7XG4gIH1cblxuICBnZXQgaW5wdXRUeXBlRGVmaW5pdGlvbigpIHtcbiAgICBpZiAodGhpcy5pc1NpbmdsZUl0ZW0pIHtcbiAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRUeXBlLmlucHV0VHlwZURlZmluaXRpb247XG4gICAgfSBlbHNlIGlmICh0aGlzLmVsZW1lbnRUeXBlLnN0b3JlZENsYXNzVHlwZSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgIHJldHVybiBcIkFycmF5PGJvb2xlYW4gfCBjZGt0bi5JUmVzb2x2YWJsZT4gfCBjZGt0bi5JUmVzb2x2YWJsZVwiO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0NvbXBsZXgpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmVsZW1lbnRUeXBlLnN0b3JlZENsYXNzVHlwZX1bXSB8IGNka3RuLklSZXNvbHZhYmxlYDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZWxlbWVudFR5cGUudHlwZU1vZGVsVHlwZSAhPT0gXCJzaW1wbGVcIikge1xuICAgICAgcmV0dXJuIGAke3RoaXMuZWxlbWVudFR5cGUuaW5wdXRUeXBlRGVmaW5pdGlvbn1bXSB8IGNka3RuLklSZXNvbHZhYmxlYDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGAke3RoaXMuZWxlbWVudFR5cGUuaW5wdXRUeXBlRGVmaW5pdGlvbn1bXWA7XG4gICAgfVxuICB9XG5cbiAgZ2V0QXR0cmlidXRlQWNjZXNzRnVuY3Rpb24obmFtZTogc3RyaW5nKSB7XG4gICAgc3dpdGNoICh0aGlzLmVsZW1lbnRUeXBlLnN0b3JlZENsYXNzVHlwZSkge1xuICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgICByZXR1cm4gYGNka3RuLkZuLnRvbGlzdCh0aGlzLmdldExpc3RBdHRyaWJ1dGUoJyR7bmFtZX0nKSlgO1xuICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICByZXR1cm4gYGNka3RuLlRva2VuLmFzTnVtYmVyTGlzdChjZGt0bi5Gbi50b2xpc3QodGhpcy5nZXROdW1iZXJMaXN0QXR0cmlidXRlKCcke25hbWV9JykpKWA7XG4gICAgfVxuXG4gICAgLy8gVG9rZW4uYXNBbnkgaXMgcmVxdWlyZWQgYmVjYXVzZSB0b2xpc3QgcmV0dXJucyBhbiBBcnJheSBlbmNvZGVkIHRva2VuIHdoaWNoIHRoZSBsaXN0TWFwcGVyXG4gICAgLy8gd291bGQgdHJ5IHRvIG1hcCBvdmVyIHdoZW4gdGhpcyBpcyBwYXNzZWQgdG8gYW5vdGhlciByZXNvdXJjZS4gV2l0aCBUb2tlbi5hc0FueSgpIGl0IGlzIGxlZnRcbiAgICAvLyBhcyBpcyBieSB0aGUgbGlzdE1hcHBlciBhbmQgaXMgbGF0ZXIgcHJvcGVybHkgcmVzb2x2ZWQgdG8gYSByZWZlcmVuY2VcbiAgICAvLyAodGhpcyBvbmx5IHdvcmtzIGluIFR5cGVTY3JpcHQgY3VycmVudGx5LCBzYW1lIGFzIGZvciByZWZlcmVuY2luZyBsaXN0c1xuICAgIC8vIFtzZWUgXCJpbnRlcnBvbGF0aW9uRm9yQXR0cmlidXRlKC4uLilcIiBmdXJ0aGVyIGJlbG93XSlcbiAgICByZXR1cm4gYGNka3RuLlRva2VuLmFzQW55KGNka3RuLkZuLnRvbGlzdCh0aGlzLmludGVycG9sYXRpb25Gb3JBdHRyaWJ1dGUoJyR7bmFtZX0nKSkpYDtcbiAgfVxuXG4gIGdldCB0b1RlcnJhZm9ybUZ1bmN0aW9uKCkge1xuICAgIGlmICh0aGlzLmlzU2luZ2xlSXRlbSkge1xuICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFR5cGUudG9UZXJyYWZvcm1GdW5jdGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGBjZGt0bi5saXN0TWFwcGVyKCR7dGhpcy5lbGVtZW50VHlwZS50b1RlcnJhZm9ybUZ1bmN0aW9ufSwgJHt0aGlzLmlzQmxvY2t9KWA7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHRvSGNsVGVycmFmb3JtRnVuY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuaXNTaW5nbGVJdGVtKSB7XG4gICAgICByZXR1cm4gdGhpcy5lbGVtZW50VHlwZS50b0hjbFRlcnJhZm9ybUZ1bmN0aW9uO1xuICAgIH1cbiAgICByZXR1cm4gYGNka3RuLmxpc3RNYXBwZXJIY2woJHt0aGlzLmVsZW1lbnRUeXBlLnRvSGNsVGVycmFmb3JtRnVuY3Rpb259LCAke3RoaXMuaXNCbG9ja30pYDtcbiAgfVxuXG4gIGdldCBoYXNSZWZlcmVuY2VDbGFzcygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1NpbmdsZUl0ZW0gfHwgdGhpcy5pc0NvbXBsZXg7XG4gIH1cblxuICBnZXQgaXNUb2tlbml6YWJsZSgpIHtcbiAgICBzd2l0Y2ggKHRoaXMuZWxlbWVudFR5cGUuc3RvcmVkQ2xhc3NUeXBlKSB7XG4gICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1hcEF0dHJpYnV0ZVR5cGVNb2RlbCBpbXBsZW1lbnRzIENvbGxlY3Rpb25BdHRyaWJ1dGVUeXBlTW9kZWwge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgZWxlbWVudFR5cGU6IEF0dHJpYnV0ZVR5cGVNb2RlbCkge31cblxuICBnZXQgdHlwZU1vZGVsVHlwZSgpIHtcbiAgICByZXR1cm4gXCJtYXBcIjtcbiAgfVxuXG4gIGdldCBzdHJ1Y3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFR5cGUuc3RydWN0O1xuICB9XG5cbiAgZ2V0IGlzQ29tcGxleCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50VHlwZS5pc0NvbXBsZXg7XG4gIH1cblxuICBnZXRTdG9yZWRDbGFzc0luaXRpYWxpemVyKG5hbWU6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmlzQ29tcGxleCkge1xuICAgICAgcmV0dXJuIGBuZXcgJHt0aGlzLnN0b3JlZENsYXNzVHlwZX0odGhpcywgXCIke25hbWV9XCIpYDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGBuZXcgY2RrdG4uJHt1cHBlcmNhc2VGaXJzdChcbiAgICAgICAgdGhpcy5zdG9yZWRDbGFzc1R5cGUsXG4gICAgICApfSh0aGlzLCBcIiR7bmFtZX1cIilgO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzdG9yZWRDbGFzc1R5cGUoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuZWxlbWVudFR5cGUuc3RvcmVkQ2xhc3NUeXBlfU1hcGA7XG4gIH1cblxuICBnZXQgaW5wdXRUeXBlRGVmaW5pdGlvbigpIHtcbiAgICAvLyBtYXAgb2YgYm9vbGVhbnMgaGFzIHRva2VuIHN1cHBvcnQsIGJ1dCBib29sZWFucyBkb24ndFxuICAgIGlmICh0aGlzLmVsZW1lbnRUeXBlLnN0b3JlZENsYXNzVHlwZSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgIHJldHVybiBgeyBba2V5OiBzdHJpbmddOiAoJHt0aGlzLmVsZW1lbnRUeXBlLnN0b3JlZENsYXNzVHlwZX0gfCBjZGt0bi5JUmVzb2x2YWJsZSkgfWA7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzQ29tcGxleCkge1xuICAgICAgcmV0dXJuIGB7IFtrZXk6IHN0cmluZ106ICR7dGhpcy5lbGVtZW50VHlwZS5zdG9yZWRDbGFzc1R5cGV9IH0gfCBjZGt0bi5JUmVzb2x2YWJsZWA7XG4gICAgfSBlbHNlIGlmICh0aGlzLmVsZW1lbnRUeXBlLnR5cGVNb2RlbFR5cGUgIT09IFwic2ltcGxlXCIpIHtcbiAgICAgIHJldHVybiBgeyBba2V5OiBzdHJpbmddOiAke3RoaXMuZWxlbWVudFR5cGUuaW5wdXRUeXBlRGVmaW5pdGlvbn0gfSB8IGNka3RuLklSZXNvbHZhYmxlYDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGB7IFtrZXk6IHN0cmluZ106ICR7dGhpcy5lbGVtZW50VHlwZS5zdG9yZWRDbGFzc1R5cGV9IH1gO1xuICAgIH1cbiAgfVxuXG4gIGdldEF0dHJpYnV0ZUFjY2Vzc0Z1bmN0aW9uKG5hbWU6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5pc0NvbXBsZXggJiYgdGhpcy5lbGVtZW50VHlwZS50eXBlTW9kZWxUeXBlICE9PSBcInNpbXBsZVwiKSB7XG4gICAgICByZXR1cm4gYHRoaXMuaW50ZXJwb2xhdGlvbkZvckF0dHJpYnV0ZSgnJHtuYW1lfScpYDtcbiAgICB9XG5cbiAgICByZXR1cm4gYHRoaXMuZ2V0JHt1cHBlcmNhc2VGaXJzdChcbiAgICAgIHRoaXMuc3RvcmVkQ2xhc3NUeXBlLFxuICAgICl9QXR0cmlidXRlKCcke25hbWV9JylgO1xuICB9XG5cbiAgZ2V0IHRvVGVycmFmb3JtRnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGBjZGt0bi5oYXNoTWFwcGVyKCR7dGhpcy5lbGVtZW50VHlwZS50b1RlcnJhZm9ybUZ1bmN0aW9ufSlgO1xuICB9XG5cbiAgZ2V0IHRvSGNsVGVycmFmb3JtRnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGBjZGt0bi5oYXNoTWFwcGVySGNsKCR7dGhpcy5lbGVtZW50VHlwZS50b0hjbFRlcnJhZm9ybUZ1bmN0aW9ufSlgO1xuICB9XG5cbiAgZ2V0IGhhc1JlZmVyZW5jZUNsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLmlzQ29tcGxleDtcbiAgfVxuXG4gIGdldCBpc1Rva2VuaXphYmxlKCkge1xuICAgIHN3aXRjaCAodGhpcy5lbGVtZW50VHlwZS5zdG9yZWRDbGFzc1R5cGUpIHtcbiAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBjYXNlIFwiYW55XCI6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ResourceModel = exports.STRUCT_SHARDING_THRESHOLD = void 0;
|
|
7
|
-
// Copyright (c) HashiCorp, Inc
|
|
8
|
-
// SPDX-License-Identifier: MPL-2.0
|
|
9
|
-
const codemaker_1 = require("codemaker");
|
|
10
|
-
const path_1 = __importDefault(require("path"));
|
|
11
|
-
const provider_schema_1 = require("@cdktn/provider-schema");
|
|
12
|
-
const struct_1 = require("./struct");
|
|
13
|
-
// Limit is 1200 to prevent stack size error.
|
|
14
|
-
// Could increase now that calculation is more accurate;
|
|
15
|
-
// however, probably better to have smaller
|
|
16
|
-
exports.STRUCT_SHARDING_THRESHOLD = 400;
|
|
17
|
-
class ResourceModel {
|
|
18
|
-
constructor(options) {
|
|
19
|
-
this.recursiveAttributePaths = {};
|
|
20
|
-
this.className = options.className;
|
|
21
|
-
this.filePath = options.filePath;
|
|
22
|
-
this.terraformType = options.terraformType;
|
|
23
|
-
this.baseName = options.baseName;
|
|
24
|
-
this.attributes = options.attributes;
|
|
25
|
-
this.schema = options.schema;
|
|
26
|
-
this.fqpn = options.fqpn;
|
|
27
|
-
this.provider = (0, provider_schema_1.parseFQPN)(options.fqpn).name;
|
|
28
|
-
this.terraformProviderName = this.provider;
|
|
29
|
-
this.fileName = options.fileName;
|
|
30
|
-
this._structs = options.structs;
|
|
31
|
-
this.terraformSchemaType = options.terraformSchemaType;
|
|
32
|
-
this.configStructName = options.configStructName;
|
|
33
|
-
this.dependencies = [
|
|
34
|
-
`import { Construct } from 'constructs';`,
|
|
35
|
-
`import * as cdktn from 'cdktn';`,
|
|
36
|
-
];
|
|
37
|
-
this.structsRequireSharding =
|
|
38
|
-
this._structs.reduce((partialSum, s) => partialSum + s.exportCount, 0) >
|
|
39
|
-
exports.STRUCT_SHARDING_THRESHOLD;
|
|
40
|
-
}
|
|
41
|
-
get structs() {
|
|
42
|
-
return [this.configStruct, ...this._structs];
|
|
43
|
-
}
|
|
44
|
-
get configStruct() {
|
|
45
|
-
return new struct_1.ConfigStruct(this.configStructName, this.attributes);
|
|
46
|
-
}
|
|
47
|
-
get synthesizableAttributes() {
|
|
48
|
-
return this.configStruct.assignableAttributes;
|
|
49
|
-
}
|
|
50
|
-
get importStatements() {
|
|
51
|
-
return this.dependencies;
|
|
52
|
-
}
|
|
53
|
-
get schemaAsJson() {
|
|
54
|
-
return this.escapeSchema(JSON.stringify(this.schema, undefined, 2));
|
|
55
|
-
}
|
|
56
|
-
get linkToDocs() {
|
|
57
|
-
const { hostname, namespace, name } = (0, provider_schema_1.parseFQPN)(this.fqpn);
|
|
58
|
-
const version = this.providerVersion || "latest";
|
|
59
|
-
const base = `https://${hostname}/providers/${namespace}/${name}/${version}/docs`;
|
|
60
|
-
if (this.isProvider)
|
|
61
|
-
return base;
|
|
62
|
-
if (this.isDataSource)
|
|
63
|
-
return `${base}/data-sources/${this.terraformDocName}`;
|
|
64
|
-
return `${base}/resources/${this.terraformDocName}`;
|
|
65
|
-
}
|
|
66
|
-
get isProvider() {
|
|
67
|
-
return this.terraformSchemaType === "provider";
|
|
68
|
-
}
|
|
69
|
-
get isDataSource() {
|
|
70
|
-
return this.terraformSchemaType === "data_source";
|
|
71
|
-
}
|
|
72
|
-
get parentClassName() {
|
|
73
|
-
return this.isProvider
|
|
74
|
-
? "TerraformProvider"
|
|
75
|
-
: this.isDataSource
|
|
76
|
-
? "TerraformDataSource"
|
|
77
|
-
: "TerraformResource";
|
|
78
|
-
}
|
|
79
|
-
get terraformResourceType() {
|
|
80
|
-
return this.isProvider
|
|
81
|
-
? this.terraformProviderName
|
|
82
|
-
: this.isDataSource
|
|
83
|
-
? this.terraformType.replace(/^data_/, "")
|
|
84
|
-
: this.terraformType;
|
|
85
|
-
}
|
|
86
|
-
get terraformDocName() {
|
|
87
|
-
return (0, codemaker_1.toSnakeCase)(this.terraformResourceType.replace(new RegExp(`^${this.provider}_`, "i"), ""));
|
|
88
|
-
}
|
|
89
|
-
get referencedTypes() {
|
|
90
|
-
return this.configStruct.referencedTypes;
|
|
91
|
-
}
|
|
92
|
-
get structsFolderName() {
|
|
93
|
-
return `${path_1.default.basename(this.fileName, ".ts")}-structs`;
|
|
94
|
-
}
|
|
95
|
-
get structsFolderPath() {
|
|
96
|
-
return path_1.default.join(this.namespaceFolderPath, this.structsFolderName);
|
|
97
|
-
}
|
|
98
|
-
get namespaceFolderPath() {
|
|
99
|
-
return this.filePath.split("/").slice(0, -1).join("/");
|
|
100
|
-
}
|
|
101
|
-
escapeSchema(schema) {
|
|
102
|
-
return schema.replace(/(\*\/)/gi, `*\\/`);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
exports.ResourceModel = ResourceModel;
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZXNvdXJjZS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLHlDQUF3QztBQUN4QyxnREFBd0I7QUFDeEIsNERBQXVFO0FBRXZFLHFDQUFnRDtBQUdoRCw2Q0FBNkM7QUFDN0Msd0RBQXdEO0FBQ3hELDJDQUEyQztBQUM5QixRQUFBLHlCQUF5QixHQUFHLEdBQUcsQ0FBQztBQWlCN0MsTUFBYSxhQUFhO0lBeUJ4QixZQUFZLE9BQTZCO1FBRmxDLDRCQUF1QixHQUE0QyxFQUFFLENBQUM7UUFHM0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDN0IsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBQSwyQkFBUyxFQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDN0MsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUNoQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsT0FB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LEVBQUUsR0FBRyxDQUFDLEVBQ3JDLEVBQUUsQ0FDSCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sR0FBRyxjQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTyxjQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTyxZQUFZLENBQUMsTUFBYztRQUNqQyxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDRjtBQW5JRCxzQ0FtSUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHsgdG9TbmFrZUNhc2UgfSBmcm9tIFwiY29kZW1ha2VyXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgRlFQTiwgcGFyc2VGUVBOLCBQcm92aWRlck5hbWUgfSBmcm9tIFwiQGNka3RuL3Byb3ZpZGVyLXNjaGVtYVwiO1xuaW1wb3J0IHsgQXR0cmlidXRlTW9kZWwgfSBmcm9tIFwiLi9hdHRyaWJ1dGUtbW9kZWxcIjtcbmltcG9ydCB7IFN0cnVjdCwgQ29uZmlnU3RydWN0IH0gZnJvbSBcIi4vc3RydWN0XCI7XG5pbXBvcnQgeyBTY2hlbWEgfSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcblxuLy8gTGltaXQgaXMgMTIwMCB0byBwcmV2ZW50IHN0YWNrIHNpemUgZXJyb3IuXG4vLyBDb3VsZCBpbmNyZWFzZSBub3cgdGhhdCBjYWxjdWxhdGlvbiBpcyBtb3JlIGFjY3VyYXRlO1xuLy8gaG93ZXZlciwgcHJvYmFibHkgYmV0dGVyIHRvIGhhdmUgc21hbGxlclxuZXhwb3J0IGNvbnN0IFNUUlVDVF9TSEFSRElOR19USFJFU0hPTEQgPSA0MDA7XG5cbmludGVyZmFjZSBSZXNvdXJjZU1vZGVsT3B0aW9ucyB7XG4gIHRlcnJhZm9ybVR5cGU6IHN0cmluZztcbiAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gIGJhc2VOYW1lOiBzdHJpbmc7XG4gIGZpbGVOYW1lOiBzdHJpbmc7XG4gIGZpbGVQYXRoOiBzdHJpbmc7XG4gIGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZU1vZGVsW107XG4gIHN0cnVjdHM6IFN0cnVjdFtdO1xuICBmcXBuOiBGUVBOO1xuICBzY2hlbWE6IFNjaGVtYTtcbiAgdGVycmFmb3JtU2NoZW1hVHlwZTogc3RyaW5nO1xuICBjb25maWdTdHJ1Y3ROYW1lOiBzdHJpbmc7XG59XG5cbnR5cGUgRGVmaW5pdGlvblBhdGggPSBzdHJpbmc7XG5leHBvcnQgY2xhc3MgUmVzb3VyY2VNb2RlbCB7XG4gIHB1YmxpYyBjbGFzc05hbWU6IHN0cmluZztcbiAgcHVibGljIGZpbGVQYXRoOiBzdHJpbmc7XG4gIHB1YmxpYyB0ZXJyYWZvcm1UeXBlOiBzdHJpbmc7XG4gIHB1YmxpYyBiYXNlTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcHJvdmlkZXI6IFByb3ZpZGVyTmFtZTtcbiAgcHVibGljIGZxcG46IEZRUE47XG4gIHB1YmxpYyBwcm92aWRlclZlcnNpb25Db25zdHJhaW50Pzogc3RyaW5nO1xuICBwdWJsaWMgcHJvdmlkZXJWZXJzaW9uPzogc3RyaW5nO1xuICBwdWJsaWMgdGVycmFmb3JtUHJvdmlkZXJTb3VyY2U/OiBzdHJpbmc7XG4gIC8qXG4gICAqIHVzdWFsbHkgc2FtZSBhcyBwcm92aWRlciwgYnV0IGNhbiBiZSBvdmVycmlkZGVuIGlmIHVzZXIgcGlja3MgYSBkaWZmZXJlbnQgbmFtZVxuICAgKiB0byBiZSBhYmxlIHRvIHVzZSB0d28gcHJvdmlkZXJzIHdpdGggdGhlIHNhbWUgbmFtZVxuICAgKi9cbiAgcHVibGljIHRlcnJhZm9ybVByb3ZpZGVyTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgZmlsZU5hbWU6IHN0cmluZztcbiAgcHVibGljIGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZU1vZGVsW107XG4gIHB1YmxpYyBzY2hlbWE6IFNjaGVtYTtcbiAgcHJpdmF0ZSBfc3RydWN0czogU3RydWN0W107XG4gIHByaXZhdGUgZGVwZW5kZW5jaWVzOiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSB0ZXJyYWZvcm1TY2hlbWFUeXBlOiBzdHJpbmc7XG4gIHByaXZhdGUgY29uZmlnU3RydWN0TmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgc3RydWN0c1JlcXVpcmVTaGFyZGluZzogYm9vbGVhbjtcbiAgcHVibGljIHJlY3Vyc2l2ZUF0dHJpYnV0ZVBhdGhzOiB7IFt1c2FnZVBhdGg6IHN0cmluZ106IERlZmluaXRpb25QYXRoIH0gPSB7fTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBSZXNvdXJjZU1vZGVsT3B0aW9ucykge1xuICAgIHRoaXMuY2xhc3NOYW1lID0gb3B0aW9ucy5jbGFzc05hbWU7XG4gICAgdGhpcy5maWxlUGF0aCA9IG9wdGlvbnMuZmlsZVBhdGg7XG4gICAgdGhpcy50ZXJyYWZvcm1UeXBlID0gb3B0aW9ucy50ZXJyYWZvcm1UeXBlO1xuICAgIHRoaXMuYmFzZU5hbWUgPSBvcHRpb25zLmJhc2VOYW1lO1xuICAgIHRoaXMuYXR0cmlidXRlcyA9IG9wdGlvbnMuYXR0cmlidXRlcztcbiAgICB0aGlzLnNjaGVtYSA9IG9wdGlvbnMuc2NoZW1hO1xuICAgIHRoaXMuZnFwbiA9IG9wdGlvbnMuZnFwbjtcbiAgICB0aGlzLnByb3ZpZGVyID0gcGFyc2VGUVBOKG9wdGlvbnMuZnFwbikubmFtZTtcbiAgICB0aGlzLnRlcnJhZm9ybVByb3ZpZGVyTmFtZSA9IHRoaXMucHJvdmlkZXI7XG4gICAgdGhpcy5maWxlTmFtZSA9IG9wdGlvbnMuZmlsZU5hbWU7XG4gICAgdGhpcy5fc3RydWN0cyA9IG9wdGlvbnMuc3RydWN0cztcbiAgICB0aGlzLnRlcnJhZm9ybVNjaGVtYVR5cGUgPSBvcHRpb25zLnRlcnJhZm9ybVNjaGVtYVR5cGU7XG4gICAgdGhpcy5jb25maWdTdHJ1Y3ROYW1lID0gb3B0aW9ucy5jb25maWdTdHJ1Y3ROYW1lO1xuICAgIHRoaXMuZGVwZW5kZW5jaWVzID0gW1xuICAgICAgYGltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO2AsXG4gICAgICBgaW1wb3J0ICogYXMgY2RrdG4gZnJvbSAnY2RrdG4nO2AsXG4gICAgXTtcblxuICAgIHRoaXMuc3RydWN0c1JlcXVpcmVTaGFyZGluZyA9XG4gICAgICB0aGlzLl9zdHJ1Y3RzLnJlZHVjZSgocGFydGlhbFN1bSwgcykgPT4gcGFydGlhbFN1bSArIHMuZXhwb3J0Q291bnQsIDApID5cbiAgICAgIFNUUlVDVF9TSEFSRElOR19USFJFU0hPTEQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0cnVjdHMoKTogU3RydWN0W10ge1xuICAgIHJldHVybiBbdGhpcy5jb25maWdTdHJ1Y3QsIC4uLnRoaXMuX3N0cnVjdHNdO1xuICB9XG5cbiAgcHVibGljIGdldCBjb25maWdTdHJ1Y3QoKSB7XG4gICAgcmV0dXJuIG5ldyBDb25maWdTdHJ1Y3QodGhpcy5jb25maWdTdHJ1Y3ROYW1lLCB0aGlzLmF0dHJpYnV0ZXMpO1xuICB9XG5cbiAgcHVibGljIGdldCBzeW50aGVzaXphYmxlQXR0cmlidXRlcygpOiBBdHRyaWJ1dGVNb2RlbFtdIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWdTdHJ1Y3QuYXNzaWduYWJsZUF0dHJpYnV0ZXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGltcG9ydFN0YXRlbWVudHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmRlcGVuZGVuY2llcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2NoZW1hQXNKc29uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZXNjYXBlU2NoZW1hKEpTT04uc3RyaW5naWZ5KHRoaXMuc2NoZW1hLCB1bmRlZmluZWQsIDIpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGlua1RvRG9jcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IHsgaG9zdG5hbWUsIG5hbWVzcGFjZSwgbmFtZSB9ID0gcGFyc2VGUVBOKHRoaXMuZnFwbik7XG4gICAgY29uc3QgdmVyc2lvbiA9IHRoaXMucHJvdmlkZXJWZXJzaW9uIHx8IFwibGF0ZXN0XCI7XG4gICAgY29uc3QgYmFzZSA9IGBodHRwczovLyR7aG9zdG5hbWV9L3Byb3ZpZGVycy8ke25hbWVzcGFjZX0vJHtuYW1lfS8ke3ZlcnNpb259L2RvY3NgO1xuICAgIGlmICh0aGlzLmlzUHJvdmlkZXIpIHJldHVybiBiYXNlO1xuICAgIGlmICh0aGlzLmlzRGF0YVNvdXJjZSlcbiAgICAgIHJldHVybiBgJHtiYXNlfS9kYXRhLXNvdXJjZXMvJHt0aGlzLnRlcnJhZm9ybURvY05hbWV9YDtcbiAgICByZXR1cm4gYCR7YmFzZX0vcmVzb3VyY2VzLyR7dGhpcy50ZXJyYWZvcm1Eb2NOYW1lfWA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzUHJvdmlkZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGVycmFmb3JtU2NoZW1hVHlwZSA9PT0gXCJwcm92aWRlclwiO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0RhdGFTb3VyY2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGVycmFmb3JtU2NoZW1hVHlwZSA9PT0gXCJkYXRhX3NvdXJjZVwiO1xuICB9XG5cbiAgcHVibGljIGdldCBwYXJlbnRDbGFzc05hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc1Byb3ZpZGVyXG4gICAgICA/IFwiVGVycmFmb3JtUHJvdmlkZXJcIlxuICAgICAgOiB0aGlzLmlzRGF0YVNvdXJjZVxuICAgICAgICA/IFwiVGVycmFmb3JtRGF0YVNvdXJjZVwiXG4gICAgICAgIDogXCJUZXJyYWZvcm1SZXNvdXJjZVwiO1xuICB9XG5cbiAgcHVibGljIGdldCB0ZXJyYWZvcm1SZXNvdXJjZVR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc1Byb3ZpZGVyXG4gICAgICA/IHRoaXMudGVycmFmb3JtUHJvdmlkZXJOYW1lXG4gICAgICA6IHRoaXMuaXNEYXRhU291cmNlXG4gICAgICAgID8gdGhpcy50ZXJyYWZvcm1UeXBlLnJlcGxhY2UoL15kYXRhXy8sIFwiXCIpXG4gICAgICAgIDogdGhpcy50ZXJyYWZvcm1UeXBlO1xuICB9XG5cbiAgcHVibGljIGdldCB0ZXJyYWZvcm1Eb2NOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRvU25ha2VDYXNlKFxuICAgICAgdGhpcy50ZXJyYWZvcm1SZXNvdXJjZVR5cGUucmVwbGFjZShcbiAgICAgICAgbmV3IFJlZ0V4cChgXiR7dGhpcy5wcm92aWRlcn1fYCwgXCJpXCIpLFxuICAgICAgICBcIlwiLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCByZWZlcmVuY2VkVHlwZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ1N0cnVjdC5yZWZlcmVuY2VkVHlwZXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0cnVjdHNGb2xkZXJOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3BhdGguYmFzZW5hbWUodGhpcy5maWxlTmFtZSwgXCIudHNcIil9LXN0cnVjdHNgO1xuICB9XG5cbiAgcHVibGljIGdldCBzdHJ1Y3RzRm9sZGVyUGF0aCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBwYXRoLmpvaW4odGhpcy5uYW1lc3BhY2VGb2xkZXJQYXRoLCB0aGlzLnN0cnVjdHNGb2xkZXJOYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbmFtZXNwYWNlRm9sZGVyUGF0aCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZpbGVQYXRoLnNwbGl0KFwiL1wiKS5zbGljZSgwLCAtMSkuam9pbihcIi9cIik7XG4gIH1cblxuICBwcml2YXRlIGVzY2FwZVNjaGVtYShzY2hlbWE6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNjaGVtYS5yZXBsYWNlKC8oXFwqXFwvKS9naSwgYCpcXFxcL2ApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Scope = void 0;
|
|
4
|
-
class Scope {
|
|
5
|
-
constructor(props) {
|
|
6
|
-
var _a, _b, _c, _d, _e;
|
|
7
|
-
this.name = props.name;
|
|
8
|
-
this.parent = props.parent;
|
|
9
|
-
this.isProvider = props.isProvider;
|
|
10
|
-
this.isComputed = (_a = props.isComputed) !== null && _a !== void 0 ? _a : false;
|
|
11
|
-
this.isOptional = (_b = props.isOptional) !== null && _b !== void 0 ? _b : true;
|
|
12
|
-
this.isRequired = (_c = props.isRequired) !== null && _c !== void 0 ? _c : false;
|
|
13
|
-
this.inBlockType = (_d = props.inBlockType) !== null && _d !== void 0 ? _d : false;
|
|
14
|
-
this.isNestedType = (_e = props.isNestedType) !== null && _e !== void 0 ? _e : false;
|
|
15
|
-
}
|
|
16
|
-
fullName(attributeName) {
|
|
17
|
-
return `${this.baseName}.${attributeName}`;
|
|
18
|
-
}
|
|
19
|
-
get baseName() {
|
|
20
|
-
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
21
|
-
let scope = this;
|
|
22
|
-
let name = "";
|
|
23
|
-
while (scope) {
|
|
24
|
-
if (name === "") {
|
|
25
|
-
name = scope.name;
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
name = `${scope.name}.${name}`;
|
|
29
|
-
}
|
|
30
|
-
scope = scope.parent;
|
|
31
|
-
}
|
|
32
|
-
return name;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
exports.Scope = Scope;
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzY29wZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFhQSxNQUFhLEtBQUs7SUFXaEIsWUFBWSxLQUFpQjs7UUFDM0IsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFBLEtBQUssQ0FBQyxVQUFVLG1DQUFJLEtBQUssQ0FBQztRQUM1QyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQUEsS0FBSyxDQUFDLFVBQVUsbUNBQUksSUFBSSxDQUFDO1FBQzNDLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBQSxLQUFLLENBQUMsVUFBVSxtQ0FBSSxLQUFLLENBQUM7UUFDNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFBLEtBQUssQ0FBQyxXQUFXLG1DQUFJLEtBQUssQ0FBQztRQUM5QyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQUEsS0FBSyxDQUFDLFlBQVksbUNBQUksS0FBSyxDQUFDO0lBQ2xELENBQUM7SUFFTSxRQUFRLENBQUMsYUFBcUI7UUFDbkMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksYUFBYSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQiw0REFBNEQ7UUFDNUQsSUFBSSxLQUFLLEdBQXNCLElBQUksQ0FBQztRQUNwQyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZCxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2IsSUFBSSxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQ2hCLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ3BCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2pDLENBQUM7WUFDRCxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUN2QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUF4Q0Qsc0JBd0NDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmV4cG9ydCBpbnRlcmZhY2UgU2NvcGVQcm9wcyB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgaXNQcm92aWRlcjogYm9vbGVhbjtcbiAgcmVhZG9ubHkgaXNDb21wdXRlZD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGlzT3B0aW9uYWw/OiBib29sZWFuO1xuICByZWFkb25seSBpc1JlcXVpcmVkPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgaW5CbG9ja1R5cGU/OiBib29sZWFuO1xuICByZWFkb25seSBpc05lc3RlZFR5cGU/OiBib29sZWFuO1xuICByZWFkb25seSBwYXJlbnQ/OiBTY29wZTtcbn1cblxuZXhwb3J0IGNsYXNzIFNjb3BlIHtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHByb3ZpZGVyPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgcGFyZW50PzogU2NvcGU7XG4gIHB1YmxpYyByZWFkb25seSBpc1Byb3ZpZGVyOiBib29sZWFuO1xuICBwdWJsaWMgaXNDb21wdXRlZDogYm9vbGVhbjtcbiAgcHVibGljIGlzT3B0aW9uYWw6IGJvb2xlYW47XG4gIHB1YmxpYyBpc1JlcXVpcmVkOiBib29sZWFuO1xuICBwdWJsaWMgaW5CbG9ja1R5cGU6IGJvb2xlYW47XG4gIHB1YmxpYyBpc05lc3RlZFR5cGU6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IFNjb3BlUHJvcHMpIHtcbiAgICB0aGlzLm5hbWUgPSBwcm9wcy5uYW1lO1xuICAgIHRoaXMucGFyZW50ID0gcHJvcHMucGFyZW50O1xuICAgIHRoaXMuaXNQcm92aWRlciA9IHByb3BzLmlzUHJvdmlkZXI7XG4gICAgdGhpcy5pc0NvbXB1dGVkID0gcHJvcHMuaXNDb21wdXRlZCA/PyBmYWxzZTtcbiAgICB0aGlzLmlzT3B0aW9uYWwgPSBwcm9wcy5pc09wdGlvbmFsID8/IHRydWU7XG4gICAgdGhpcy5pc1JlcXVpcmVkID0gcHJvcHMuaXNSZXF1aXJlZCA/PyBmYWxzZTtcbiAgICB0aGlzLmluQmxvY2tUeXBlID0gcHJvcHMuaW5CbG9ja1R5cGUgPz8gZmFsc2U7XG4gICAgdGhpcy5pc05lc3RlZFR5cGUgPSBwcm9wcy5pc05lc3RlZFR5cGUgPz8gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgZnVsbE5hbWUoYXR0cmlidXRlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuYmFzZU5hbWV9LiR7YXR0cmlidXRlTmFtZX1gO1xuICB9XG5cbiAgcHVibGljIGdldCBiYXNlTmFtZSgpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcbiAgICBsZXQgc2NvcGU6IFNjb3BlIHwgdW5kZWZpbmVkID0gdGhpcztcbiAgICBsZXQgbmFtZSA9IFwiXCI7XG4gICAgd2hpbGUgKHNjb3BlKSB7XG4gICAgICBpZiAobmFtZSA9PT0gXCJcIikge1xuICAgICAgICBuYW1lID0gc2NvcGUubmFtZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5hbWUgPSBgJHtzY29wZS5uYW1lfS4ke25hbWV9YDtcbiAgICAgIH1cbiAgICAgIHNjb3BlID0gc2NvcGUucGFyZW50O1xuICAgIH1cbiAgICByZXR1cm4gbmFtZTtcbiAgfVxufVxuIl19
|