@cdktn/provider-generator 0.24.0-pre.87 → 0.24.0-pre.89
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/build/__tests__/edge-provider-schema/builder.d.ts +9 -3
- package/build/__tests__/edge-provider-schema/builder.js +6 -3
- package/build/__tests__/edge-provider-schema/index.js +119 -1
- package/build/__tests__/provider.test.js +4 -1
- package/build/get/__tests__/generator/ephemeral-resources.test.d.ts +2 -0
- package/build/get/__tests__/generator/ephemeral-resources.test.js +49 -0
- package/build/get/__tests__/generator/provider-functions.test.d.ts +2 -0
- package/build/get/__tests__/generator/provider-functions.test.js +176 -0
- package/build/get/__tests__/generator/provider.test.js +9 -1
- package/build/get/__tests__/generator/write-only.test.d.ts +2 -0
- package/build/get/__tests__/generator/write-only.test.js +65 -0
- package/build/get/__tests__/target-versions.test.d.ts +2 -0
- package/build/get/__tests__/target-versions.test.js +171 -0
- package/build/get/constructs-maker.d.ts +8 -1
- package/build/get/constructs-maker.js +13 -4
- package/build/get/generator/emitter/attributes-emitter.d.ts +12 -2
- package/build/get/generator/emitter/attributes-emitter.js +47 -5
- package/build/get/generator/emitter/index.d.ts +1 -0
- package/build/get/generator/emitter/index.js +2 -1
- package/build/get/generator/emitter/provider-functions-emitter.d.ts +11 -0
- package/build/get/generator/emitter/provider-functions-emitter.js +94 -0
- package/build/get/generator/emitter/resource-emitter.d.ts +5 -1
- package/build/get/generator/emitter/resource-emitter.js +83 -7
- package/build/get/generator/models/attribute-model.d.ts +2 -0
- package/build/get/generator/models/attribute-model.js +2 -1
- package/build/get/generator/models/index.d.ts +1 -0
- package/build/get/generator/models/index.js +2 -1
- package/build/get/generator/models/provider-function-model.d.ts +102 -0
- package/build/get/generator/models/provider-function-model.js +667 -0
- package/build/get/generator/models/resource-model.d.ts +3 -0
- package/build/get/generator/models/resource-model.js +13 -4
- package/build/get/generator/models/struct.d.ts +2 -0
- package/build/get/generator/models/struct.js +6 -2
- package/build/get/generator/provider-generator.d.ts +2 -0
- package/build/get/generator/provider-generator.js +31 -3
- package/build/get/generator/resource-parser.js +3 -1
- package/package.json +5 -5
- package/src/__tests__/__snapshots__/edge-provider-schema.test.ts.snap +4 -0
- package/src/__tests__/edge-provider-schema/builder.ts +17 -1
- package/src/__tests__/edge-provider-schema/index.ts +124 -1
- package/src/__tests__/provider.test.ts +3 -0
- package/src/get/__tests__/generator/__snapshots__/ephemeral-resources.test.ts.snap +524 -0
- package/src/get/__tests__/generator/__snapshots__/provider-functions.test.ts.snap +444 -0
- package/src/get/__tests__/generator/__snapshots__/write-only.test.ts.snap +262 -0
- package/src/get/__tests__/generator/ephemeral-resources.test.ts +46 -0
- package/src/get/__tests__/generator/fixtures/ephemeral-resources.test.fixture.json +160 -0
- package/src/get/__tests__/generator/fixtures/provider-functions-collision.test.fixture.json +31 -0
- package/src/get/__tests__/generator/fixtures/provider-functions-synthetic.test.fixture.json +192 -0
- package/src/get/__tests__/generator/fixtures/provider-functions.test.fixture.json +170 -0
- package/src/get/__tests__/generator/fixtures/write-only.test.fixture.json +58 -0
- package/src/get/__tests__/generator/provider-functions.test.ts +262 -0
- package/src/get/__tests__/generator/provider.test.ts +8 -0
- package/src/get/__tests__/generator/write-only.test.ts +71 -0
- package/src/get/__tests__/target-versions.test.ts +206 -0
- package/src/get/constructs-maker.ts +43 -3
- package/src/get/generator/emitter/attributes-emitter.ts +61 -6
- package/src/get/generator/emitter/index.ts +1 -0
- package/src/get/generator/emitter/provider-functions-emitter.ts +117 -0
- package/src/get/generator/emitter/resource-emitter.ts +110 -6
- package/src/get/generator/models/attribute-model.ts +3 -0
- package/src/get/generator/models/index.ts +1 -0
- package/src/get/generator/models/provider-function-model.ts +872 -0
- package/src/get/generator/models/resource-model.ts +25 -3
- package/src/get/generator/models/struct.ts +9 -1
- package/src/get/generator/provider-generator.ts +70 -4
- package/src/get/generator/resource-parser.ts +2 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CodeMaker } from "codemaker";
|
|
2
|
+
import { ProviderFunctionsModel } from "../models/provider-function-model";
|
|
3
|
+
export declare class ProviderFunctionsEmitter {
|
|
4
|
+
private readonly code;
|
|
5
|
+
constructor(code: CodeMaker);
|
|
6
|
+
emit(model: ProviderFunctionsModel): void;
|
|
7
|
+
private emitClass;
|
|
8
|
+
private emitConstructor;
|
|
9
|
+
private emitMethod;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=provider-functions-emitter.d.ts.map
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProviderFunctionsEmitter = void 0;
|
|
4
|
+
const sanitized_comments_1 = require("../sanitized-comments");
|
|
5
|
+
const PROVIDER_LOCAL_NAME_JSDOC = "The local name of the provider in required_providers; defaults to the registry short name. Override when the provider is declared under a different local name — aliases do not change the namespace, local names do.";
|
|
6
|
+
class ProviderFunctionsEmitter {
|
|
7
|
+
constructor(code) {
|
|
8
|
+
this.code = code;
|
|
9
|
+
}
|
|
10
|
+
emit(model) {
|
|
11
|
+
this.code.line(`import * as cdktn from 'cdktn';`);
|
|
12
|
+
this.code.line();
|
|
13
|
+
this.emitClass(model);
|
|
14
|
+
}
|
|
15
|
+
emitClass(model) {
|
|
16
|
+
const comment = (0, sanitized_comments_1.sanitizedComment)(this.code);
|
|
17
|
+
comment.line(`Provider-defined functions of the ${model.providerName} provider.`);
|
|
18
|
+
comment.end();
|
|
19
|
+
this.code.openBlock(`export class ${model.className}`);
|
|
20
|
+
this.emitConstructor();
|
|
21
|
+
for (const fn of model.functions) {
|
|
22
|
+
this.emitMethod(fn);
|
|
23
|
+
}
|
|
24
|
+
this.code.closeBlock();
|
|
25
|
+
}
|
|
26
|
+
emitConstructor() {
|
|
27
|
+
// A TypeScript parameter property (`constructor(private readonly x: T)`)
|
|
28
|
+
// requires the compiler to synthesize a `this.x = x;` assignment - that's
|
|
29
|
+
// a real transform, not a type-only erasure, so it isn't recognized by
|
|
30
|
+
// Node's native type-stripping (`node file.ts` with no bundler/transpiler,
|
|
31
|
+
// e.g. `--experimental-strip-types`), which throws
|
|
32
|
+
// `ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX` on sight of one. Declare the field
|
|
33
|
+
// and assign it in the constructor body instead, which strips cleanly.
|
|
34
|
+
this.code.line(`private readonly providerLocalName: string;`);
|
|
35
|
+
this.code.line();
|
|
36
|
+
const comment = (0, sanitized_comments_1.sanitizedComment)(this.code);
|
|
37
|
+
comment.line(`@param providerLocalName ${PROVIDER_LOCAL_NAME_JSDOC}`);
|
|
38
|
+
comment.end();
|
|
39
|
+
this.code.openBlock(`constructor(providerLocalName: string)`);
|
|
40
|
+
this.code.line(`this.providerLocalName = providerLocalName;`);
|
|
41
|
+
this.code.closeBlock();
|
|
42
|
+
}
|
|
43
|
+
emitMethod(fn) {
|
|
44
|
+
var _a;
|
|
45
|
+
this.code.line();
|
|
46
|
+
const comment = (0, sanitized_comments_1.sanitizedComment)(this.code);
|
|
47
|
+
const description = (_a = fn.description) !== null && _a !== void 0 ? _a : fn.summary;
|
|
48
|
+
if (description)
|
|
49
|
+
comment.line(description);
|
|
50
|
+
if (fn.deprecationMessage) {
|
|
51
|
+
comment.line(`@deprecated ${fn.deprecationMessage}`);
|
|
52
|
+
}
|
|
53
|
+
// The variadic parameter's docstringType is already wrapped in
|
|
54
|
+
// `Array<...>` by buildFunctionModel (see provider-function-model.ts),
|
|
55
|
+
// so it shares this one `@param` emission path with every fixed
|
|
56
|
+
// parameter instead of needing its own wrapping here.
|
|
57
|
+
const allParameters = fn.variadicParameter
|
|
58
|
+
? [...fn.parameters, fn.variadicParameter]
|
|
59
|
+
: fn.parameters;
|
|
60
|
+
for (const param of allParameters) {
|
|
61
|
+
// Official JSDoc grammar: only the type expression goes inside the
|
|
62
|
+
// braces; prose (the schema description plus any generated
|
|
63
|
+
// list/set/nullability guidance - see the model's `docstringNote`)
|
|
64
|
+
// follows the parameter name after ` - `.
|
|
65
|
+
const prose = [param.description, param.docstringNote]
|
|
66
|
+
.filter(Boolean)
|
|
67
|
+
.join(" ");
|
|
68
|
+
comment.line(`@param {${param.docstringType}} ${param.name}${prose ? ` - ${prose}` : ""}`);
|
|
69
|
+
}
|
|
70
|
+
comment.line(`@returns {${fn.returnDocstringType}}${fn.returnDocstringNote ? ` ${fn.returnDocstringNote}` : ""}`);
|
|
71
|
+
comment.end();
|
|
72
|
+
const methodParams = [
|
|
73
|
+
...fn.parameters.map((p) => `${p.name}${p.optional ? "?" : ""}: ${p.tsType}`),
|
|
74
|
+
...(fn.variadicParameter
|
|
75
|
+
? // `Array<T>` rather than `T[]`: for a union element type (e.g.
|
|
76
|
+
// `boolean | cdktn.IResolvable`), bare `T[]` binds as `boolean |
|
|
77
|
+
// (cdktn.IResolvable[])` instead of `(boolean | cdktn.IResolvable)[]`.
|
|
78
|
+
[
|
|
79
|
+
`${fn.variadicParameter.name}: Array<${fn.variadicParameter.tsType}>`,
|
|
80
|
+
]
|
|
81
|
+
: []),
|
|
82
|
+
];
|
|
83
|
+
const invokeArgs = [
|
|
84
|
+
...fn.parameters.map((p) => p.name),
|
|
85
|
+
...(fn.variadicParameter ? [`...${fn.variadicParameter.name}`] : []),
|
|
86
|
+
];
|
|
87
|
+
const invokeExpression = `cdktn.TerraformProviderFunction.invoke(this.providerLocalName, "${fn.terraformName}", [${invokeArgs.join(", ")}])`;
|
|
88
|
+
this.code.openBlock(`public ${fn.methodName}(${methodParams.join(", ")}): ${fn.returnTsType}`);
|
|
89
|
+
this.code.line(`return ${fn.wrapReturn(invokeExpression)};`);
|
|
90
|
+
this.code.closeBlock();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
exports.ProviderFunctionsEmitter = ProviderFunctionsEmitter;
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItZnVuY3Rpb25zLWVtaXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2V0L2dlbmVyYXRvci9lbWl0dGVyL3Byb3ZpZGVyLWZ1bmN0aW9ucy1lbWl0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU9BLDhEQUF5RDtBQUV6RCxNQUFNLHlCQUF5QixHQUM3Qix1TkFBdU4sQ0FBQztBQUUxTixNQUFhLHdCQUF3QjtJQUNuQyxZQUE2QixJQUFlO1FBQWYsU0FBSSxHQUFKLElBQUksQ0FBVztJQUFHLENBQUM7SUFFekMsSUFBSSxDQUFDLEtBQTZCO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFTyxTQUFTLENBQUMsS0FBNkI7UUFDN0MsTUFBTSxPQUFPLEdBQUcsSUFBQSxxQ0FBZ0IsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsT0FBTyxDQUFDLElBQUksQ0FDVixxQ0FBcUMsS0FBSyxDQUFDLFlBQVksWUFBWSxDQUNwRSxDQUFDO1FBQ0YsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV2QixLQUFLLE1BQU0sRUFBRSxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFF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R0FBRyxDQUFDLEVBQUUsQ0FBQyxpQkFBaUI7Z0JBQ3RCLENBQUMsQ0FBQywrREFBK0Q7b0JBQy9ELGlFQUFpRTtvQkFDakUsdUVBQXVFO29CQUN2RTt3QkFDRSxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRztxQkFDdEU7Z0JBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNSLENBQUM7UUFFRixNQUFNLFVBQVUsR0FBRztZQUNqQixHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ25DLEdBQUcsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ3JFLENBQUM7UUFFRixNQUFNLGdCQUFnQixHQUFHLG1FQUFtRSxFQUFFLENBQUMsYUFBYSxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUU3SSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FDakIsVUFBVSxFQUFFLENBQUMsVUFBVSxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFlBQVksRUFBRSxDQUMxRSxDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDekIsQ0FBQztDQUNGO0FBeEdELDREQXdHQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBDb2RlTWFrZXIgfSBmcm9tIFwiY29kZW1ha2VyXCI7XG5pbXBvcnQge1xuICBQcm92aWRlckZ1bmN0aW9uTW9kZWwsXG4gIFByb3ZpZGVyRnVuY3Rpb25zTW9kZWwsXG59IGZyb20gXCIuLi9tb2RlbHMvcHJvdmlkZXItZnVuY3Rpb24tbW9kZWxcIjtcbmltcG9ydCB7IHNhbml0aXplZENvbW1lbnQgfSBmcm9tIFwiLi4vc2FuaXRpemVkLWNvbW1lbnRzXCI7XG5cbmNvbnN0IFBST1ZJREVSX0xPQ0FMX05BTUVfSlNET0MgPVxuICBcIlRoZSBsb2NhbCBuYW1lIG9mIHRoZSBwcm92aWRlciBpbiByZXF1aXJlZF9wcm92aWRlcnM7IGRlZmF1bHRzIHRvIHRoZSByZWdpc3RyeSBzaG9ydCBuYW1lLiBPdmVycmlkZSB3aGVuIHRoZSBwcm92aWRlciBpcyBkZWNsYXJlZCB1bmRlciBhIGRpZmZlcmVudCBsb2NhbCBuYW1lIOKAlCBhbGlhc2VzIGRvIG5vdCBjaGFuZ2UgdGhlIG5hbWVzcGFjZSwgbG9jYWwgbmFtZXMgZG8uXCI7XG5cbmV4cG9ydCBjbGFzcyBQcm92aWRlckZ1bmN0aW9uc0VtaXR0ZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvZGU6IENvZGVNYWtlcikge31cblxuICBwdWJsaWMgZW1pdChtb2RlbDogUHJvdmlkZXJGdW5jdGlvbnNNb2RlbCkge1xuICAgIHRoaXMuY29kZS5saW5lKGBpbXBvcnQgKiBhcyBjZGt0biBmcm9tICdjZGt0bic7YCk7XG4gICAgdGhpcy5jb2RlLmxpbmUoKTtcbiAgICB0aGlzLmVtaXRDbGFzcyhtb2RlbCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDbGFzcyhtb2RlbDogUHJvdmlkZXJGdW5jdGlvbnNNb2RlbCkge1xuICAgIGNvbnN0IGNvbW1lbnQgPSBzYW5pdGl6ZWRDb21tZW50KHRoaXMuY29kZSk7XG4gICAgY29tbWVudC5saW5lKFxuICAgICAgYFByb3ZpZGVyLWRlZmluZWQgZnVuY3Rpb25zIG9mIHRoZSAke21vZGVsLnByb3ZpZGVyTmFtZX0gcHJvdmlkZXIuYCxcbiAgICApO1xuICAgIGNvbW1lbnQuZW5kKCk7XG4gICAgdGhpcy5jb2RlLm9wZW5CbG9jayhgZXhwb3J0IGNsYXNzICR7bW9kZWwuY2xhc3NOYW1lfWApO1xuXG4gICAgdGhpcy5lbWl0Q29uc3RydWN0b3IoKTtcblxuICAgIGZvciAoY29uc3QgZm4gb2YgbW9kZWwuZnVuY3Rpb25zKSB7XG4gICAgICB0aGlzLmVtaXRNZXRob2QoZm4pO1xuICAgIH1cblxuICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBBIFR5cGVTY3JpcHQgcGFyYW1ldGVyIHByb3BlcnR5IChgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB4OiBUKWApXG4gICAgLy8gcmVxdWlyZXMgdGhlIGNvbXBpbGVyIHRvIHN5bnRoZXNpemUgYSBgdGhpcy54ID0geDtgIGFzc2lnbm1lbnQgLSB0aGF0J3NcbiAgICAvLyBhIHJlYWwgdHJhbnNmb3JtLCBub3QgYSB0eXBlLW9ubHkgZXJhc3VyZSwgc28gaXQgaXNuJ3QgcmVjb2duaXplZCBieVxuICAgIC8vIE5vZGUncyBuYXRpdmUgdHlwZS1zdHJpcHBpbmcgKGBub2RlIGZpbGUudHNgIHdpdGggbm8gYnVuZGxlci90cmFuc3BpbGVyLFxuICAgIC8vIGUuZy4gYC0tZXhwZXJpbWVudGFsLXN0cmlwLXR5cGVzYCksIHdoaWNoIHRocm93c1xuICAgIC8vIGBFUlJfVU5TVVBQT1JURURfVFlQRVNDUklQVF9TWU5UQVhgIG9uIHNpZ2h0IG9mIG9uZS4gRGVjbGFyZSB0aGUgZmllbGRcbiAgICAvLyBhbmQgYXNzaWduIGl0IGluIHRoZSBjb25zdHJ1Y3RvciBib2R5IGluc3RlYWQsIHdoaWNoIHN0cmlwcyBjbGVhbmx5LlxuICAgIHRoaXMuY29kZS5saW5lKGBwcml2YXRlIHJlYWRvbmx5IHByb3ZpZGVyTG9jYWxOYW1lOiBzdHJpbmc7YCk7XG4gICAgdGhpcy5jb2RlLmxpbmUoKTtcbiAgICBjb25zdCBjb21tZW50ID0gc2FuaXRpemVkQ29tbWVudCh0aGlzLmNvZGUpO1xuICAgIGNvbW1lbnQubGluZShgQHBhcmFtIHByb3ZpZGVyTG9jYWxOYW1lICR7UFJPVklERVJfTE9DQUxfTkFNRV9KU0RPQ31gKTtcbiAgICBjb21tZW50LmVuZCgpO1xuICAgIHRoaXMuY29kZS5vcGVuQmxvY2soYGNvbnN0cnVjdG9yKHByb3ZpZGVyTG9jYWxOYW1lOiBzdHJpbmcpYCk7XG4gICAgdGhpcy5jb2RlLmxpbmUoYHRoaXMucHJvdmlkZXJMb2NhbE5hbWUgPSBwcm92aWRlckxvY2FsTmFtZTtgKTtcbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0TWV0aG9kKGZuOiBQcm92aWRlckZ1bmN0aW9uTW9kZWwpIHtcbiAgICB0aGlzLmNvZGUubGluZSgpO1xuXG4gICAgY29uc3QgY29tbWVudCA9IHNhbml0aXplZENvbW1lbnQodGhpcy5jb2RlKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGZuLmRlc2NyaXB0aW9uID8/IGZuLnN1bW1hcnk7XG4gICAgaWYgKGRlc2NyaXB0aW9uKSBjb21tZW50LmxpbmUoZGVzY3JpcHRpb24pO1xuICAgIGlmIChmbi5kZXByZWNhdGlvbk1lc3NhZ2UpIHtcbiAgICAgIGNvbW1lbnQubGluZShgQGRlcHJlY2F0ZWQgJHtmbi5kZXByZWNhdGlvbk1lc3NhZ2V9YCk7XG4gICAgfVxuICAgIC8vIFRoZSB2YXJpYWRpYyBwYXJhbWV0ZXIncyBkb2NzdHJpbmdUeXBlIGlzIGFscmVhZHkgd3JhcHBlZCBpblxuICAgIC8vIGBBcnJheTwuLi4+YCBieSBidWlsZEZ1bmN0aW9uTW9kZWwgKHNlZSBwcm92aWRlci1mdW5jdGlvbi1tb2RlbC50cyksXG4gICAgLy8gc28gaXQgc2hhcmVzIHRoaXMgb25lIGBAcGFyYW1gIGVtaXNzaW9uIHBhdGggd2l0aCBldmVyeSBmaXhlZFxuICAgIC8vIHBhcmFtZXRlciBpbnN0ZWFkIG9mIG5lZWRpbmcgaXRzIG93biB3cmFwcGluZyBoZXJlLlxuICAgIGNvbnN0IGFsbFBhcmFtZXRlcnMgPSBmbi52YXJpYWRpY1BhcmFtZXRlclxuICAgICAgPyBbLi4uZm4ucGFyYW1ldGVycywgZm4udmFyaWFkaWNQYXJhbWV0ZXJdXG4gICAgICA6IGZuLnBhcmFtZXRlcnM7XG4gICAgZm9yIChjb25zdCBwYXJhbSBvZiBhbGxQYXJhbWV0ZXJzKSB7XG4gICAgICAvLyBPZmZpY2lhbCBKU0RvYyBncmFtbWFyOiBvbmx5IHRoZSB0eXBlIGV4cHJlc3Npb24gZ29lcyBpbnNpZGUgdGhlXG4gICAgICAvLyBicmFjZXM7IHByb3NlICh0aGUgc2NoZW1hIGRlc2NyaXB0aW9uIHBsdXMgYW55IGdlbmVyYXRlZFxuICAgICAgLy8gbGlzdC9zZXQvbnVsbGFiaWxpdHkgZ3VpZGFuY2UgLSBzZWUgdGhlIG1vZGVsJ3MgYGRvY3N0cmluZ05vdGVgKVxuICAgICAgLy8gZm9sbG93cyB0aGUgcGFyYW1ldGVyIG5hbWUgYWZ0ZXIgYCAtIGAuXG4gICAgICBjb25zdCBwcm9zZSA9IFtwYXJhbS5kZXNjcmlwdGlvbiwgcGFyYW0uZG9jc3RyaW5nTm90ZV1cbiAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAuam9pbihcIiBcIik7XG4gICAgICBjb21tZW50LmxpbmUoXG4gICAgICAgIGBAcGFyYW0geyR7cGFyYW0uZG9jc3RyaW5nVHlwZX19ICR7cGFyYW0ubmFtZX0ke3Byb3NlID8gYCAtICR7cHJvc2V9YCA6IFwiXCJ9YCxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbW1lbnQubGluZShcbiAgICAgIGBAcmV0dXJucyB7JHtmbi5yZXR1cm5Eb2NzdHJpbmdUeXBlfX0ke2ZuLnJldHVybkRvY3N0cmluZ05vdGUgPyBgICR7Zm4ucmV0dXJuRG9jc3RyaW5nTm90ZX1gIDogXCJcIn1gLFxuICAgICk7XG4gICAgY29tbWVudC5lbmQoKTtcblxuICAgIGNvbnN0IG1ldGhvZFBhcmFtcyA9IFtcbiAgICAgIC4uLmZuLnBhcmFtZXRlcnMubWFwKFxuICAgICAgICAocCkgPT4gYCR7cC5uYW1lfSR7cC5vcHRpb25hbCA/IFwiP1wiIDogXCJcIn06ICR7cC50c1R5cGV9YCxcbiAgICAgICksXG4gICAgICAuLi4oZm4udmFyaWFkaWNQYXJhbWV0ZXJcbiAgICAgICAgPyAvLyBgQXJyYXk8VD5gIHJhdGhlciB0aGFuIGBUW11gOiBmb3IgYSB1bmlvbiBlbGVtZW50IHR5cGUgKGUuZy5cbiAgICAgICAgICAvLyBgYm9vbGVhbiB8IGNka3RuLklSZXNvbHZhYmxlYCksIGJhcmUgYFRbXWAgYmluZHMgYXMgYGJvb2xlYW4gfFxuICAgICAgICAgIC8vIChjZGt0bi5JUmVzb2x2YWJsZVtdKWAgaW5zdGVhZCBvZiBgKGJvb2xlYW4gfCBjZGt0bi5JUmVzb2x2YWJsZSlbXWAuXG4gICAgICAgICAgW1xuICAgICAgICAgICAgYCR7Zm4udmFyaWFkaWNQYXJhbWV0ZXIubmFtZX06IEFycmF5PCR7Zm4udmFyaWFkaWNQYXJhbWV0ZXIudHNUeXBlfT5gLFxuICAgICAgICAgIF1cbiAgICAgICAgOiBbXSksXG4gICAgXTtcblxuICAgIGNvbnN0IGludm9rZUFyZ3MgPSBbXG4gICAgICAuLi5mbi5wYXJhbWV0ZXJzLm1hcCgocCkgPT4gcC5uYW1lKSxcbiAgICAgIC4uLihmbi52YXJpYWRpY1BhcmFtZXRlciA/IFtgLi4uJHtmbi52YXJpYWRpY1BhcmFtZXRlci5uYW1lfWBdIDogW10pLFxuICAgIF07XG5cbiAgICBjb25zdCBpbnZva2VFeHByZXNzaW9uID0gYGNka3RuLlRlcnJhZm9ybVByb3ZpZGVyRnVuY3Rpb24uaW52b2tlKHRoaXMucHJvdmlkZXJMb2NhbE5hbWUsIFwiJHtmbi50ZXJyYWZvcm1OYW1lfVwiLCBbJHtpbnZva2VBcmdzLmpvaW4oXCIsIFwiKX1dKWA7XG5cbiAgICB0aGlzLmNvZGUub3BlbkJsb2NrKFxuICAgICAgYHB1YmxpYyAke2ZuLm1ldGhvZE5hbWV9KCR7bWV0aG9kUGFyYW1zLmpvaW4oXCIsIFwiKX0pOiAke2ZuLnJldHVyblRzVHlwZX1gLFxuICAgICk7XG4gICAgdGhpcy5jb2RlLmxpbmUoYHJldHVybiAke2ZuLndyYXBSZXR1cm4oaW52b2tlRXhwcmVzc2lvbil9O2ApO1xuICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -3,17 +3,21 @@ import { ResourceModel } from "../models";
|
|
|
3
3
|
import { AttributesEmitter } from "./attributes-emitter";
|
|
4
4
|
export declare class ResourceEmitter {
|
|
5
5
|
private readonly code;
|
|
6
|
+
private readonly importExtension;
|
|
6
7
|
attributesEmitter: AttributesEmitter;
|
|
7
|
-
constructor(code: CodeMaker);
|
|
8
|
+
constructor(code: CodeMaker, importExtension: string);
|
|
8
9
|
emit(resource: ResourceModel): void;
|
|
10
|
+
private emitFunctionsGetter;
|
|
9
11
|
private emitHeader;
|
|
10
12
|
private emitStaticProperties;
|
|
11
13
|
private emitStaticMethods;
|
|
12
14
|
private emitHclResourceSynthesis;
|
|
13
15
|
private emitResourceSynthesis;
|
|
16
|
+
private supportsWriteOnlyRegistration;
|
|
14
17
|
private emitResourceAttributes;
|
|
15
18
|
private emitInitializer;
|
|
16
19
|
private emitResourceSuper;
|
|
20
|
+
private emitEphemeralResourceSuper;
|
|
17
21
|
private emitProviderSuper;
|
|
18
22
|
private emitTerraformGeneratorMetadata;
|
|
19
23
|
}
|
|
@@ -4,30 +4,68 @@ exports.ResourceEmitter = void 0;
|
|
|
4
4
|
const attributes_emitter_1 = require("./attributes-emitter");
|
|
5
5
|
const sanitized_comments_1 = require("../sanitized-comments");
|
|
6
6
|
class ResourceEmitter {
|
|
7
|
-
constructor(code) {
|
|
7
|
+
constructor(code, importExtension) {
|
|
8
8
|
this.code = code;
|
|
9
|
+
this.importExtension = importExtension;
|
|
9
10
|
this.attributesEmitter = new attributes_emitter_1.AttributesEmitter(this.code);
|
|
10
11
|
}
|
|
11
12
|
emit(resource) {
|
|
12
13
|
this.code.line();
|
|
14
|
+
if (resource.isProvider && resource.providerFunctionsModel) {
|
|
15
|
+
// Sibling-directory import: providers/<provider>/provider/index.ts
|
|
16
|
+
// (the emitted file) and providers/<provider>/provider-functions/
|
|
17
|
+
// index.ts are siblings under providers/<provider>/, so unlike the
|
|
18
|
+
// child-folder struct imports this one has to step up a level.
|
|
19
|
+
this.code.line(`import { ${resource.providerFunctionsModel.className} } from '../provider-functions/index${this.importExtension}';`);
|
|
20
|
+
}
|
|
13
21
|
const comment = (0, sanitized_comments_1.sanitizedComment)(this.code);
|
|
14
22
|
comment.line(`Represents a {@link ${resource.linkToDocs} ${resource.terraformResourceType}}`);
|
|
15
23
|
comment.end();
|
|
16
24
|
this.code.openBlock(`export class ${resource.className} extends cdktn.${resource.parentClassName}`);
|
|
17
25
|
this.emitHeader("STATIC PROPERTIES");
|
|
18
26
|
this.emitStaticProperties(resource);
|
|
19
|
-
|
|
20
|
-
|
|
27
|
+
if (!resource.isEphemeralResource) {
|
|
28
|
+
this.emitHeader("STATIC Methods");
|
|
29
|
+
this.emitStaticMethods(resource);
|
|
30
|
+
}
|
|
21
31
|
this.emitHeader("INITIALIZER");
|
|
22
32
|
this.emitInitializer(resource);
|
|
23
33
|
this.emitHeader("ATTRIBUTES");
|
|
24
34
|
this.emitResourceAttributes(resource);
|
|
35
|
+
if (resource.isProvider && resource.providerFunctionsModel) {
|
|
36
|
+
this.emitHeader("PROVIDER-DEFINED FUNCTIONS");
|
|
37
|
+
this.emitFunctionsGetter(resource.providerFunctionsModel);
|
|
38
|
+
}
|
|
25
39
|
// synthesis
|
|
26
40
|
this.emitHeader("SYNTHESIS");
|
|
27
41
|
this.emitResourceSynthesis(resource);
|
|
28
42
|
this.emitHclResourceSynthesis(resource);
|
|
29
43
|
this.code.closeBlock(); // construct
|
|
30
44
|
}
|
|
45
|
+
// Emits a memoized `functions` getter on a provider class that declares
|
|
46
|
+
// provider-defined functions. The local name to invoke functions under is
|
|
47
|
+
// derived from `this.terraformResourceType`, not baked in as the schema
|
|
48
|
+
// name constant: terraform-provider.ts keys both `required_providers` and
|
|
49
|
+
// the `provider` block directly off `terraformResourceType`, so whatever
|
|
50
|
+
// this instance's `terraformResourceType` is IS its correct
|
|
51
|
+
// required_providers local name (it already accounts for a `name`
|
|
52
|
+
// override in the cdktf.json provider constraint, see
|
|
53
|
+
// ConstructsMakerProviderTarget/TerraformProviderConstraint) - the
|
|
54
|
+
// instance always knows its own correct local name, so there is no need
|
|
55
|
+
// for a providerLocalName override parameter here.
|
|
56
|
+
emitFunctionsGetter(model) {
|
|
57
|
+
this.code.line(`private _functions?: ${model.className};`);
|
|
58
|
+
this.code.line();
|
|
59
|
+
const comment = (0, sanitized_comments_1.sanitizedComment)(this.code);
|
|
60
|
+
comment.line(`Provider-defined functions of the ${model.providerName} provider.`);
|
|
61
|
+
comment.end();
|
|
62
|
+
this.code.openBlock(`public get functions(): ${model.className}`);
|
|
63
|
+
this.code.openBlock(`if (!this._functions)`);
|
|
64
|
+
this.code.line(`this._functions = new ${model.className}(this.terraformResourceType);`);
|
|
65
|
+
this.code.closeBlock();
|
|
66
|
+
this.code.line(`return this._functions;`);
|
|
67
|
+
this.code.closeBlock();
|
|
68
|
+
}
|
|
31
69
|
emitHeader(title) {
|
|
32
70
|
this.code.line();
|
|
33
71
|
this.code.line("// " + "=".repeat(title.length));
|
|
@@ -53,8 +91,9 @@ class ResourceEmitter {
|
|
|
53
91
|
this.code.line();
|
|
54
92
|
this.code.openBlock(`protected synthesizeHclAttributes(): { [name: string]: any }`);
|
|
55
93
|
this.code.open(`const attrs = {`);
|
|
94
|
+
const registerWriteOnlyUsage = this.supportsWriteOnlyRegistration(resource);
|
|
56
95
|
for (const att of resource.synthesizableAttributes) {
|
|
57
|
-
this.attributesEmitter.emitToHclTerraform(att, false);
|
|
96
|
+
this.attributesEmitter.emitToHclTerraform(att, false, registerWriteOnlyUsage);
|
|
58
97
|
}
|
|
59
98
|
this.code.close(`};`);
|
|
60
99
|
if (resource.synthesizableAttributes.length > 0) {
|
|
@@ -71,12 +110,31 @@ class ResourceEmitter {
|
|
|
71
110
|
this.code.line();
|
|
72
111
|
this.code.openBlock(`protected synthesizeAttributes(): { [name: string]: any }`);
|
|
73
112
|
this.code.open(`return {`);
|
|
113
|
+
const registerWriteOnlyUsage = this.supportsWriteOnlyRegistration(resource);
|
|
74
114
|
for (const att of resource.synthesizableAttributes) {
|
|
75
|
-
this.attributesEmitter.emitToTerraform(att, false);
|
|
115
|
+
this.attributesEmitter.emitToTerraform(att, false, registerWriteOnlyUsage);
|
|
76
116
|
}
|
|
77
117
|
this.code.close(`};`);
|
|
78
118
|
this.code.closeBlock();
|
|
79
119
|
}
|
|
120
|
+
// `markWriteOnlyAttribute` (called from generated `synthesizeAttributes()`/
|
|
121
|
+
// `synthesizeHclAttributes()` for write-only attributes, see
|
|
122
|
+
// AttributesEmitter#emitToTerraform/#emitToHclTerraform) lives on
|
|
123
|
+
// TerraformResource - so only managed resources can register write-only
|
|
124
|
+
// usage; data sources, providers, and ephemeral resources only get the
|
|
125
|
+
// deprecated getter.
|
|
126
|
+
//
|
|
127
|
+
// write-only is fundamentally a state concept - the value is passed to
|
|
128
|
+
// the provider but never persisted to state - so gating this on
|
|
129
|
+
// TerraformResource is a semantic choice, not a capability one: ephemeral
|
|
130
|
+
// resources have no state at all, and, consistent with that, no provider
|
|
131
|
+
// schema in the RFC-04 sweep (including vault's 16 ephemeral resources)
|
|
132
|
+
// marks an ephemeral attribute write_only. So ephemeral classes
|
|
133
|
+
// deliberately land in the same "getter only" bucket as data sources and
|
|
134
|
+
// providers.
|
|
135
|
+
supportsWriteOnlyRegistration(resource) {
|
|
136
|
+
return resource.parentClassName === "TerraformResource";
|
|
137
|
+
}
|
|
80
138
|
emitResourceAttributes(resource) {
|
|
81
139
|
for (const att of resource.attributes) {
|
|
82
140
|
this.attributesEmitter.emit(att, this.attributesEmitter.needsResetEscape(att, resource.attributes), this.attributesEmitter.needsInputEscape(att, resource.attributes));
|
|
@@ -85,7 +143,11 @@ class ResourceEmitter {
|
|
|
85
143
|
emitInitializer(resource) {
|
|
86
144
|
this.code.line();
|
|
87
145
|
const comment = (0, sanitized_comments_1.sanitizedComment)(this.code);
|
|
88
|
-
comment.line(`Create a new {@link ${resource.linkToDocs} ${resource.terraformResourceType}} ${resource.isDataSource
|
|
146
|
+
comment.line(`Create a new {@link ${resource.linkToDocs} ${resource.terraformResourceType}} ${resource.isDataSource
|
|
147
|
+
? "Data Source"
|
|
148
|
+
: resource.isEphemeralResource
|
|
149
|
+
? "Ephemeral Resource"
|
|
150
|
+
: "Resource"}`);
|
|
89
151
|
comment.line(``);
|
|
90
152
|
comment.line(`@param scope The scope in which to define this construct`);
|
|
91
153
|
comment.line(`@param id The scoped construct ID. Must be unique amongst siblings in the same scope`);
|
|
@@ -95,6 +157,9 @@ class ResourceEmitter {
|
|
|
95
157
|
if (resource.isProvider) {
|
|
96
158
|
this.emitProviderSuper(resource);
|
|
97
159
|
}
|
|
160
|
+
else if (resource.isEphemeralResource) {
|
|
161
|
+
this.emitEphemeralResourceSuper(resource);
|
|
162
|
+
}
|
|
98
163
|
else {
|
|
99
164
|
this.emitResourceSuper(resource);
|
|
100
165
|
}
|
|
@@ -122,6 +187,17 @@ class ResourceEmitter {
|
|
|
122
187
|
this.code.line(`forEach: config.forEach`);
|
|
123
188
|
this.code.close(`});`);
|
|
124
189
|
}
|
|
190
|
+
emitEphemeralResourceSuper(resource) {
|
|
191
|
+
this.code.open(`super(scope, id, {`);
|
|
192
|
+
this.code.line(`terraformResourceType: '${resource.terraformResourceType}',`);
|
|
193
|
+
this.emitTerraformGeneratorMetadata(resource);
|
|
194
|
+
this.code.line(`provider: config.provider,`);
|
|
195
|
+
this.code.line(`dependsOn: config.dependsOn,`);
|
|
196
|
+
this.code.line(`count: config.count,`);
|
|
197
|
+
this.code.line(`lifecycle: config.lifecycle,`);
|
|
198
|
+
this.code.line(`forEach: config.forEach`);
|
|
199
|
+
this.code.close(`});`);
|
|
200
|
+
}
|
|
125
201
|
emitProviderSuper(resource) {
|
|
126
202
|
this.code.open(`super(scope, id, {`);
|
|
127
203
|
this.code.line(`terraformResourceType: '${resource.terraformResourceType}',`);
|
|
@@ -144,4 +220,4 @@ class ResourceEmitter {
|
|
|
144
220
|
}
|
|
145
221
|
}
|
|
146
222
|
exports.ResourceEmitter = ResourceEmitter;
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtZW1pdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nZXQvZ2VuZXJhdG9yL2VtaXR0ZXIvcmVzb3VyY2UtZW1pdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSw2REFBeUQ7QUFDekQsOERBQXlEO0FBRXpELE1BQWEsZUFBZTtJQUcxQixZQUE2QixJQUFlO1FBQWYsU0FBSSxHQUFKLElBQUksQ0FBVztRQUMxQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxzQ0FBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVNLElBQUksQ0FBQyxRQUF1QjtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUEscUNBQWdCLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLE9BQU8sQ0FBQyxJQUFJLENBQ1YsdUJBQXVCLFFBQVEsQ0FBQyxVQUFVLElBQUksUUFBUSxDQUFDLHFCQUFxQixHQUFHLENBQ2hGLENBQUM7UUFDRixPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FDakIsZ0JBQWdCLFFBQVEsQ0FBQyxTQUFTLGtCQUFrQixRQUFRLENBQUMsZUFBZSxFQUFFLENBQy9FLENBQUM7UUFFRixJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXBDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEs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bi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBDb2RlTWFrZXIgfSBmcm9tIFwiY29kZW1ha2VyXCI7XG5pbXBvcnQgeyBSZXNvdXJjZU1vZGVsIH0gZnJvbSBcIi4uL21vZGVsc1wiO1xuaW1wb3J0IHsgQXR0cmlidXRlc0VtaXR0ZXIgfSBmcm9tIFwiLi9hdHRyaWJ1dGVzLWVtaXR0ZXJcIjtcbmltcG9ydCB7IHNhbml0aXplZENvbW1lbnQgfSBmcm9tIFwiLi4vc2FuaXRpemVkLWNvbW1lbnRzXCI7XG5cbmV4cG9ydCBjbGFzcyBSZXNvdXJjZUVtaXR0ZXIge1xuICBhdHRyaWJ1dGVzRW1pdHRlcjogQXR0cmlidXRlc0VtaXR0ZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjb2RlOiBDb2RlTWFrZXIpIHtcbiAgICB0aGlzLmF0dHJpYnV0ZXNFbWl0dGVyID0gbmV3IEF0dHJpYnV0ZXNFbWl0dGVyKHRoaXMuY29kZSk7XG4gIH1cblxuICBwdWJsaWMgZW1pdChyZXNvdXJjZTogUmVzb3VyY2VNb2RlbCkge1xuICAgIHRoaXMuY29kZS5saW5lKCk7XG4gICAgY29uc3QgY29tbWVudCA9IHNhbml0aXplZENvbW1lbnQodGhpcy5jb2RlKTtcbiAgICBjb21tZW50LmxpbmUoXG4gICAgICBgUmVwcmVzZW50cyBhIHtAbGluayAke3Jlc291cmNlLmxpbmtUb0RvY3N9ICR7cmVzb3VyY2UudGVycmFmb3JtUmVzb3VyY2VUeXBlfX1gLFxuICAgICk7XG4gICAgY29tbWVudC5lbmQoKTtcbiAgICB0aGlzLmNvZGUub3BlbkJsb2NrKFxuICAgICAgYGV4cG9ydCBjbGFzcyAke3Jlc291cmNlLmNsYXNzTmFtZX0gZXh0ZW5kcyBjZGt0bi4ke3Jlc291cmNlLnBhcmVudENsYXNzTmFtZX1gLFxuICAgICk7XG5cbiAgICB0aGlzLmVtaXRIZWFkZXIoXCJTVEFUSUMgUFJPUEVSVElFU1wiKTtcbiAgICB0aGlzLmVtaXRTdGF0aWNQcm9wZXJ0aWVzKHJlc291cmNlKTtcblxuICAgIHRoaXMuZW1pdEhlYWRlcihcIlNUQVRJQyBNZXRob2RzXCIpO1xuICAgIHRoaXMuZW1pdFN0YXRpY01ldGhvZHMocmVzb3VyY2UpO1xuXG4gICAgdGhpcy5lbWl0SGVhZGVyKFwiSU5JVElBTElaRVJcIik7XG4gICAgdGhpcy5lbWl0SW5pdGlhbGl6ZXIocmVzb3VyY2UpO1xuXG4gICAgdGhpcy5lbWl0SGVhZGVyKFwiQVRUUklCVVRFU1wiKTtcbiAgICB0aGlzLmVtaXRSZXNvdXJjZUF0dHJpYnV0ZXMocmVzb3VyY2UpO1xuXG4gICAgLy8gc3ludGhlc2lzXG4gICAgdGhpcy5lbWl0SGVhZGVyKFwiU1lOVEhFU0lTXCIpO1xuICAgIHRoaXMuZW1pdFJlc291cmNlU3ludGhlc2lzKHJlc291cmNlKTtcbiAgICB0aGlzLmVtaXRIY2xSZXNvdXJjZVN5bnRoZXNpcyhyZXNvdXJjZSk7XG5cbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpOyAvLyBjb25zdHJ1Y3RcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEhlYWRlcih0aXRsZTogc3RyaW5nKSB7XG4gICAgdGhpcy5jb2RlLmxpbmUoKTtcbiAgICB0aGlzLmNvZGUubGluZShcIi8vIFwiICsgXCI9XCIucmVwZWF0KHRpdGxlLmxlbmd0aCkpO1xuICAgIHRoaXMuY29kZS5saW5lKGAvLyAke3RpdGxlfWApO1xuICAgIHRoaXMuY29kZS5saW5lKFwiLy8gXCIgKyBcIj1cIi5yZXBlYXQodGl0bGUubGVuZ3RoKSk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRTdGF0aWNQcm9wZXJ0aWVzKHJlc291cmNlOiBSZXNvdXJjZU1vZGVsKSB7XG4gICAgdGhpcy5jb2RlLmxpbmUoXG4gICAgICBgcHVibGljIHN0YXRpYyByZWFkb25seSB0ZlJlc291cmNlVHlwZSA9IFwiJHtyZXNvdXJjZS50ZXJyYWZvcm1SZXNvdXJjZVR5cGV9XCI7YCxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0U3RhdGljTWV0aG9kcyhyZXNvdXJjZTogUmVzb3VyY2VNb2RlbCkge1xuICAgIGNvbnN0IGNvbW1lbnQgPSBzYW5pdGl6ZWRDb21tZW50KHRoaXMuY29kZSk7XG4gICAgY29tbWVudC5saW5lKFxuICAgICAgYEdlbmVyYXRlcyBDREtUTiBjb2RlIGZvciBpbXBvcnRpbmcgYSAke3Jlc291cmNlLmNsYXNzTmFtZX0gcmVzb3VyY2UgdXBvbiBydW5uaW5nIFwiY2RrdG4gcGxhbiA8c3RhY2stbmFtZT5cImAsXG4gICAgKTtcbiAgICBjb21tZW50LmxpbmUoYEBwYXJhbSBzY29wZSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0YCk7XG4gICAgY29tbWVudC5saW5lKFxuICAgICAgYEBwYXJhbSBpbXBvcnRUb0lkIFRoZSBjb25zdHJ1Y3QgaWQgdXNlZCBpbiB0aGUgZ2VuZXJhdGVkIGNvbmZpZyBmb3IgdGhlICR7cmVzb3VyY2UuY2xhc3NOYW1lfSB0byBpbXBvcnRgLFxuICAgICk7XG4gICAgY29tbWVudC5saW5lKFxuICAgICAgYEBwYXJhbSBpbXBvcnRGcm9tSWQgVGhlIGlkIG9mIHRoZSBleGlzdGluZyAke3Jlc291cmNlLmNsYXNzTmFtZX0gdGhhdCBzaG91bGQgYmUgaW1wb3J0ZWQuIFJlZmVyIHRvIHRoZSB7QGxpbmsgJHtyZXNvdXJjZS5saW5rVG9Eb2NzfSNpbXBvcnQgaW1wb3J0IHNlY3Rpb259IGluIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoaXMgcmVzb3VyY2UgZm9yIHRoZSBpZCB0byB1c2VgLFxuICAgICk7XG4gICAgY29tbWVudC5saW5lKFxuICAgICAgYEBwYXJhbSBwcm92aWRlcj8gT3B0aW9uYWwgaW5zdGFuY2Ugb2YgdGhlIHByb3ZpZGVyIHdoZXJlIHRoZSAke3Jlc291cmNlLmNsYXNzTmFtZX0gdG8gaW1wb3J0IGlzIGZvdW5kYCxcbiAgICApO1xuICAgIGNvbW1lbnQuZW5kKCk7XG4gICAgdGhpcy5jb2RlLmxpbmUoXG4gICAgICBgcHVibGljIHN0YXRpYyBnZW5lcmF0ZUNvbmZpZ0ZvckltcG9ydChzY29wZTogQ29uc3RydWN0LCBpbXBvcnRUb0lkOiBzdHJpbmcsIGltcG9ydEZyb21JZDogc3RyaW5nLCBwcm92aWRlcj86IGNka3RuLlRlcnJhZm9ybVByb3ZpZGVyKSB7XG4gICAgICAgIHJldHVybiBuZXcgY2RrdG4uSW1wb3J0YWJsZVJlc291cmNlKHNjb3BlLCBpbXBvcnRUb0lkLCB7IHRlcnJhZm9ybVJlc291cmNlVHlwZTogXCIke3Jlc291cmNlLnRlcnJhZm9ybVJlc291cmNlVHlwZX1cIiwgaW1wb3J0SWQ6IGltcG9ydEZyb21JZCwgcHJvdmlkZXIgfSk7XG4gICAgICB9YCxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0SGNsUmVzb3VyY2VTeW50aGVzaXMocmVzb3VyY2U6IFJlc291cmNlTW9kZWwpIHtcbiAgICB0aGlzLmNvZGUubGluZSgpO1xuICAgIHRoaXMuY29kZS5vcGVuQmxvY2soXG4gICAgICBgcHJvdGVjdGVkIHN5bnRoZXNpemVIY2xBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9YCxcbiAgICApO1xuICAgIHRoaXMuY29kZS5vcGVuKGBjb25zdCBhdHRycyA9IHtgKTtcblxuICAgIGZvciAoY29uc3QgYXR0IG9mIHJlc291cmNlLnN5bnRoZXNpemFibGVBdHRyaWJ1dGVzKSB7XG4gICAgICB0aGlzLmF0dHJpYnV0ZXNFbWl0dGVyLmVtaXRUb0hjbFRlcnJhZm9ybShhdHQsIGZhbHNlKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvZGUuY2xvc2UoYH07YCk7XG5cbiAgICBpZiAocmVzb3VyY2Uuc3ludGhlc2l6YWJsZUF0dHJpYnV0ZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5jb2RlLmxpbmUoKTtcbiAgICAgIHRoaXMuY29kZS5saW5lKGAvLyByZW1vdmUgdW5kZWZpbmVkIGF0dHJpYnV0ZXNgKTtcbiAgICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgICBgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhhdHRycykuZmlsdGVyKChbXywgdmFsdWVdKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlLnZhbHVlICE9PSB1bmRlZmluZWQgKSlgLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RlLmxpbmUoYHJldHVybiBhdHRycztgKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0UmVzb3VyY2VTeW50aGVzaXMocmVzb3VyY2U6IFJlc291cmNlTW9kZWwpIHtcbiAgICB0aGlzLmNvZGUubGluZSgpO1xuICAgIHRoaXMuY29kZS5vcGVuQmxvY2soXG4gICAgICBgcHJvdGVjdGVkIHN5bnRoZXNpemVBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9YCxcbiAgICApO1xuICAgIHRoaXMuY29kZS5vcGVuKGByZXR1cm4ge2ApO1xuXG4gICAgZm9yIChjb25zdCBhdHQgb2YgcmVzb3VyY2Uuc3ludGhlc2l6YWJsZUF0dHJpYnV0ZXMpIHtcbiAgICAgIHRoaXMuYXR0cmlidXRlc0VtaXR0ZXIuZW1pdFRvVGVycmFmb3JtKGF0dCwgZmFsc2UpO1xuICAgIH1cblxuICAgIHRoaXMuY29kZS5jbG9zZShgfTtgKTtcbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0UmVzb3VyY2VBdHRyaWJ1dGVzKHJlc291cmNlOiBSZXNvdXJjZU1vZGVsKSB7XG4gICAgZm9yIChjb25zdCBhdHQgb2YgcmVzb3VyY2UuYXR0cmlidXRlcykge1xuICAgICAgdGhpcy5hdHRyaWJ1dGVzRW1pdHRlci5lbWl0KFxuICAgICAgICBhdHQsXG4gICAgICAgIHRoaXMuYXR0cmlidXRlc0VtaXR0ZXIubmVlZHNSZXNldEVzY2FwZShhdHQsIHJlc291cmNlLmF0dHJpYnV0ZXMpLFxuICAgICAgICB0aGlzLmF0dHJpYnV0ZXNFbWl0dGVyLm5lZWRzSW5wdXRFc2NhcGUoYXR0LCByZXNvdXJjZS5hdHRyaWJ1dGVzKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbWl0SW5pdGlhbGl6ZXIocmVzb3VyY2U6IFJlc291cmNlTW9kZWwpIHtcbiAgICB0aGlzLmNvZGUubGluZSgpO1xuICAgIGNvbnN0IGNvbW1lbnQgPSBzYW5pdGl6ZWRDb21tZW50KHRoaXMuY29kZSk7XG4gICAgY29tbWVudC5saW5lKFxuICAgICAgYENyZWF0ZSBhIG5ldyB7QGxpbmsgJHtyZXNvdXJjZS5saW5rVG9Eb2NzfSAke1xuICAgICAgICByZXNvdXJjZS50ZXJyYWZvcm1SZXNvdXJjZVR5cGVcbiAgICAgIH19ICR7cmVzb3VyY2UuaXNEYXRhU291cmNlID8gXCJEYXRhIFNvdXJjZVwiIDogXCJSZXNvdXJjZVwifWAsXG4gICAgKTtcbiAgICBjb21tZW50LmxpbmUoYGApO1xuICAgIGNvbW1lbnQubGluZShgQHBhcmFtIHNjb3BlIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RgKTtcbiAgICBjb21tZW50LmxpbmUoXG4gICAgICBgQHBhcmFtIGlkIFRoZSBzY29wZWQgY29uc3RydWN0IElELiBNdXN0IGJlIHVuaXF1ZSBhbW9uZ3N0IHNpYmxpbmdzIGluIHRoZSBzYW1lIHNjb3BlYCxcbiAgICApO1xuICAgIGNvbW1lbnQubGluZShgQHBhcmFtIG9wdGlvbnMgJHtyZXNvdXJjZS5jb25maWdTdHJ1Y3QuYXR0cmlidXRlVHlwZX1gKTtcbiAgICBjb21tZW50LmVuZCgpO1xuICAgIHRoaXMuY29kZS5vcGVuQmxvY2soXG4gICAgICBgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGNvbmZpZzogJHtyZXNvdXJjZS5jb25maWdTdHJ1Y3QuYXR0cmlidXRlVHlwZX0pYCxcbiAgICApO1xuXG4gICAgaWYgKHJlc291cmNlLmlzUHJvdmlkZXIpIHtcbiAgICAgIHRoaXMuZW1pdFByb3ZpZGVyU3VwZXIocmVzb3VyY2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVtaXRSZXNvdXJjZVN1cGVyKHJlc291cmNlKTtcbiAgICB9XG5cbiAgICAvLyBpbml0aWFsaXplIGNvbmZpZyBwcm9wZXJ0aWVzXG4gICAgZm9yIChjb25zdCBhdHQgb2YgcmVzb3VyY2UuY29uZmlnU3RydWN0LmFzc2lnbmFibGVBdHRyaWJ1dGVzKSB7XG4gICAgICBpZiAoYXR0LnNldHRlclR5cGUuX3R5cGUgPT09IFwic3RvcmVkX2NsYXNzXCIpIHtcbiAgICAgICAgdGhpcy5jb2RlLmxpbmUoXG4gICAgICAgICAgYHRoaXMuJHthdHQuc3RvcmFnZU5hbWV9LmludGVybmFsVmFsdWUgPSBjb25maWcuJHthdHQubmFtZX07YCxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29kZS5saW5lKGB0aGlzLiR7YXR0LnN0b3JhZ2VOYW1lfSA9IGNvbmZpZy4ke2F0dC5uYW1lfTtgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0UmVzb3VyY2VTdXBlcihyZXNvdXJjZTogUmVzb3VyY2VNb2RlbCkge1xuICAgIHRoaXMuY29kZS5vcGVuKGBzdXBlcihzY29wZSwgaWQsIHtgKTtcbiAgICB0aGlzLmNvZGUubGluZShcbiAgICAgIGB0ZXJyYWZvcm1SZXNvdXJjZVR5cGU6ICcke3Jlc291cmNlLnRlcnJhZm9ybVJlc291cmNlVHlwZX0nLGAsXG4gICAgKTtcbiAgICB0aGlzLmVtaXRUZXJyYWZvcm1HZW5lcmF0b3JNZXRhZGF0YShyZXNvdXJjZSk7XG4gICAgdGhpcy5jb2RlLmxpbmUoYHByb3ZpZGVyOiBjb25maWcucHJvdmlkZXIsYCk7XG4gICAgdGhpcy5jb2RlLmxpbmUoYGRlcGVuZHNPbjogY29uZmlnLmRlcGVuZHNPbixgKTtcbiAgICB0aGlzLmNvZGUubGluZShgY291bnQ6IGNvbmZpZy5jb3VudCxgKTtcbiAgICB0aGlzLmNvZGUubGluZShgbGlmZWN5Y2xlOiBjb25maWcubGlmZWN5Y2xlLGApO1xuICAgIHRoaXMuY29kZS5saW5lKGBwcm92aXNpb25lcnM6IGNvbmZpZy5wcm92aXNpb25lcnMsYCk7XG4gICAgdGhpcy5jb2RlLmxpbmUoYGNvbm5lY3Rpb246IGNvbmZpZy5jb25uZWN0aW9uLGApO1xuICAgIHRoaXMuY29kZS5saW5lKGBmb3JFYWNoOiBjb25maWcuZm9yRWFjaGApO1xuICAgIHRoaXMuY29kZS5jbG9zZShgfSk7YCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRQcm92aWRlclN1cGVyKHJlc291cmNlOiBSZXNvdXJjZU1vZGVsKSB7XG4gICAgdGhpcy5jb2RlLm9wZW4oYHN1cGVyKHNjb3BlLCBpZCwge2ApO1xuICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgYHRlcnJhZm9ybVJlc291cmNlVHlwZTogJyR7cmVzb3VyY2UudGVycmFmb3JtUmVzb3VyY2VUeXBlfScsYCxcbiAgICApO1xuICAgIHRoaXMuZW1pdFRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhKHJlc291cmNlKTtcbiAgICB0aGlzLmNvZGUubGluZShcbiAgICAgIGB0ZXJyYWZvcm1Qcm92aWRlclNvdXJjZTogJyR7cmVzb3VyY2UudGVycmFmb3JtUHJvdmlkZXJTb3VyY2V9J2AsXG4gICAgKTtcbiAgICB0aGlzLmNvZGUuY2xvc2UoYH0pO2ApO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0VGVycmFmb3JtR2VuZXJhdG9yTWV0YWRhdGEocmVzb3VyY2U6IFJlc291cmNlTW9kZWwpIHtcbiAgICB0aGlzLmNvZGUub3BlbihgdGVycmFmb3JtR2VuZXJhdG9yTWV0YWRhdGE6IHtgKTtcbiAgICB0aGlzLmNvZGUubGluZShcbiAgICAgIGBwcm92aWRlck5hbWU6ICcke3Jlc291cmNlLnByb3ZpZGVyfScke1xuICAgICAgICByZXNvdXJjZS5wcm92aWRlclZlcnNpb24gfHwgcmVzb3VyY2UucHJvdmlkZXJWZXJzaW9uQ29uc3RyYWludFxuICAgICAgICAgID8gXCIsXCJcbiAgICAgICAgICA6IFwiXCJcbiAgICAgIH1gLFxuICAgICk7XG5cbiAgICBpZiAocmVzb3VyY2UucHJvdmlkZXJWZXJzaW9uKSB7XG4gICAgICB0aGlzLmNvZGUubGluZShcbiAgICAgICAgYHByb3ZpZGVyVmVyc2lvbjogJyR7cmVzb3VyY2UucHJvdmlkZXJWZXJzaW9ufScke1xuICAgICAgICAgIHJlc291cmNlLnByb3ZpZGVyVmVyc2lvbkNvbnN0cmFpbnQgPyBcIixcIiA6IFwiXCJcbiAgICAgICAgfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChyZXNvdXJjZS5wcm92aWRlclZlcnNpb25Db25zdHJhaW50KSB7XG4gICAgICB0aGlzLmNvZGUubGluZShcbiAgICAgICAgYHByb3ZpZGVyVmVyc2lvbkNvbnN0cmFpbnQ6ICcke3Jlc291cmNlLnByb3ZpZGVyVmVyc2lvbkNvbnN0cmFpbnR9J2AsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuY29kZS5jbG9zZShgfSxgKTtcbiAgfVxufVxuIl19
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtZW1pdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nZXQvZ2VuZXJhdG9yL2VtaXR0ZXIvcmVzb3VyY2UtZW1pdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSw2REFBeUQ7QUFDekQsOERBQXlEO0FBRXpELE1BQWEsZUFBZTtJQUcxQixZQUNtQixJQUFlLEVBQ2YsZUFBdUI7UUFEdkIsU0FBSSxHQUFKLElBQUksQ0FBVztRQUNmLG9CQUFlLEdBQWYsZUFBZSxDQUFRO1FBRXhDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLHNDQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0sSUFBSSxDQUFDLFFBQXVCO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFakIsSUFBSSxRQUFRLENBQUMsVUFBVSxJQUFJLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzNELG1FQUFtRTtZQUNuRSxrRUFBa0U7WUFDbEUsbUVBQW1FO1lBQ25FLCtEQUErRDtZQUMvRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDWixZQUFZLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLHVDQUF1QyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQ3JILENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBQSxxQ0FBZ0IsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsT0FBTyxDQUFDLElBQUksQ0FDVix1QkFBdUIsUUFBUSxDQUFDLFVBQVUsSUFBSSxRQUFRLENBQUMscUJBQXFCLEdBQUcsQ0FDaEYsQ0FBQztRQUNGLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUNqQixnQkFBZ0IsUUFBUSxDQUFDLFNBQVMsa0JBQWtCLFFBQVEsQ0FBQyxl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QVEsQ0FBQyxRQUFRLElBQ2pDLFFBQVEsQ0FBQyxlQUFlLElBQUksUUFBUSxDQUFDLHlCQUF5QjtZQUM1RCxDQUFDLENBQUMsR0FBRztZQUNMLENBQUMsQ0FBQyxFQUNOLEVBQUUsQ0FDSCxDQUFDO1FBRUYsSUFBSSxRQUFRLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ1oscUJBQXFCLFFBQVEsQ0FBQyxlQUFlLElBQzNDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUM3QyxFQUFFLENBQ0gsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLFFBQVEsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNaLCtCQUErQixRQUFRLENBQUMseUJBQXlCLEdBQUcsQ0FDckUsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0NBQ0Y7QUFsVUQsMENBa1VDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gXCJjb2RlbWFrZXJcIjtcbmltcG9ydCB7IFJlc291cmNlTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWxzXCI7XG5pbXBvcnQgeyBBdHRyaWJ1dGVzRW1pdHRlciB9IGZyb20gXCIuL2F0dHJpYnV0ZXMtZW1pdHRlclwiO1xuaW1wb3J0IHsgc2FuaXRpemVkQ29tbWVudCB9IGZyb20gXCIuLi9zYW5pdGl6ZWQtY29tbWVudHNcIjtcblxuZXhwb3J0IGNsYXNzIFJlc291cmNlRW1pdHRlciB7XG4gIGF0dHJpYnV0ZXNFbWl0dGVyOiBBdHRyaWJ1dGVzRW1pdHRlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvZGU6IENvZGVNYWtlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGltcG9ydEV4dGVuc2lvbjogc3RyaW5nLFxuICApIHtcbiAgICB0aGlzLmF0dHJpYnV0ZXNFbWl0dGVyID0gbmV3IEF0dHJpYnV0ZXNFbWl0dGVyKHRoaXMuY29kZSk7XG4gIH1cblxuICBwdWJsaWMgZW1pdChyZXNvdXJjZTogUmVzb3VyY2VNb2RlbCkge1xuICAgIHRoaXMuY29kZS5saW5lKCk7XG5cbiAgICBpZiAocmVzb3VyY2UuaXNQcm92aWRlciAmJiByZXNvdXJjZS5wcm92aWRlckZ1bmN0aW9uc01vZGVsKSB7XG4gICAgICAvLyBTaWJsaW5nLWRpcmVjdG9yeSBpbXBvcnQ6IHByb3ZpZGVycy88cHJvdmlkZXI+L3Byb3ZpZGVyL2luZGV4LnRzXG4gICAgICAvLyAodGhlIGVtaXR0ZWQgZmlsZSkgYW5kIHByb3ZpZGVycy88cHJvdmlkZXI+L3Byb3ZpZGVyLWZ1bmN0aW9ucy9cbiAgICAgIC8vIGluZGV4LnRzIGFyZSBzaWJsaW5ncyB1bmRlciBwcm92aWRlcnMvPHByb3ZpZGVyPi8sIHNvIHVubGlrZSB0aGVcbiAgICAgIC8vIGNoaWxkLWZvbGRlciBzdHJ1Y3QgaW1wb3J0cyB0aGlzIG9uZSBoYXMgdG8gc3RlcCB1cCBhIGxldmVsLlxuICAgICAgdGhpcy5jb2RlLmxpbmUoXG4gICAgICAgIGBpbXBvcnQgeyAke3Jlc291cmNlLnByb3ZpZGVyRnVuY3Rpb25zTW9kZWwuY2xhc3NOYW1lfSB9IGZyb20gJy4uL3Byb3ZpZGVyLWZ1bmN0aW9ucy9pbmRleCR7dGhpcy5pbXBvcnRFeHRlbnNpb259JztgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb21tZW50ID0gc2FuaXRpemVkQ29tbWVudCh0aGlzLmNvZGUpO1xuICAgIGNvbW1lbnQubGluZShcbiAgICAgIGBSZXByZXNlbnRzIGEge0BsaW5rICR7cmVzb3VyY2UubGlua1RvRG9jc30gJHtyZXNvdXJjZS50ZXJyYWZvcm1SZXNvdXJjZVR5cGV9fWAsXG4gICAgKTtcbiAgICBjb21tZW50LmVuZCgpO1xuICAgIHRoaXMuY29kZS5vcGVuQmxvY2soXG4gICAgICBgZXhwb3J0IGNsYXNzICR7cmVzb3VyY2UuY2xhc3NOYW1lfSBleHRlbmRzIGNka3RuLiR7cmVzb3VyY2UucGFyZW50Q2xhc3NOYW1lfWAsXG4gICAgKTtcblxuICAgIHRoaXMuZW1pdEhlYWRlcihcIlNUQVRJQyBQUk9QRVJUSUVTXCIpO1xuICAgIHRoaXMuZW1pdFN0YXRpY1Byb3BlcnRpZXMocmVzb3VyY2UpO1xuXG4gICAgaWYgKCFyZXNvdXJjZS5pc0VwaGVtZXJhbFJlc291cmNlKSB7XG4gICAgICB0aGlzLmVtaXRIZWFkZXIoXCJTVEFUSUMgTWV0aG9kc1wiKTtcbiAgICAgIHRoaXMuZW1pdFN0YXRpY01ldGhvZHMocmVzb3VyY2UpO1xuICAgIH1cblxuICAgIHRoaXMuZW1pdEhlYWRlcihcIklOSVRJQUxJWkVSXCIpO1xuICAgIHRoaXMuZW1pdEluaXRpYWxpemVyKHJlc291cmNlKTtcblxuICAgIHRoaXMuZW1pdEhlYWRlcihcIkFUVFJJQlVURVNcIik7XG4gICAgdGhpcy5lbWl0UmVzb3VyY2VBdHRyaWJ1dGVzKHJlc291cmNlKTtcblxuICAgIGlmIChyZXNvdXJjZS5pc1Byb3ZpZGVyICYmIHJlc291cmNlLnByb3ZpZGVyRnVuY3Rpb25zTW9kZWwpIHtcbiAgICAgIHRoaXMuZW1pdEhlYWRlcihcIlBST1ZJREVSLURFRklORUQgRlVOQ1RJT05TXCIpO1xuICAgICAgdGhpcy5lbWl0RnVuY3Rpb25zR2V0dGVyKHJlc291cmNlLnByb3ZpZGVyRnVuY3Rpb25zTW9kZWwpO1xuICAgIH1cblxuICAgIC8vIHN5bnRoZXNpc1xuICAgIHRoaXMuZW1pdEhlYWRlcihcIlNZTlRIRVNJU1wiKTtcbiAgICB0aGlzLmVtaXRSZXNvdXJjZVN5bnRoZXNpcyhyZXNvdXJjZSk7XG4gICAgdGhpcy5lbWl0SGNsUmVzb3VyY2VTeW50aGVzaXMocmVzb3VyY2UpO1xuXG4gICAgdGhpcy5jb2RlLmNsb3NlQmxvY2soKTsgLy8gY29uc3RydWN0XG4gIH1cblxuICAvLyBFbWl0cyBhIG1lbW9pemVkIGBmdW5jdGlvbnNgIGdldHRlciBvbiBhIHByb3ZpZGVyIGNsYXNzIHRoYXQgZGVjbGFyZXNcbiAgLy8gcHJvdmlkZXItZGVmaW5lZCBmdW5jdGlvbnMuIFRoZSBsb2NhbCBuYW1lIHRvIGludm9rZSBmdW5jdGlvbnMgdW5kZXIgaXNcbiAgLy8gZGVyaXZlZCBmcm9tIGB0aGlzLnRlcnJhZm9ybVJlc291cmNlVHlwZWAsIG5vdCBiYWtlZCBpbiBhcyB0aGUgc2NoZW1hXG4gIC8vIG5hbWUgY29uc3RhbnQ6IHRlcnJhZm9ybS1wcm92aWRlci50cyBrZXlzIGJvdGggYHJlcXVpcmVkX3Byb3ZpZGVyc2AgYW5kXG4gIC8vIHRoZSBgcHJvdmlkZXJgIGJsb2NrIGRpcmVjdGx5IG9mZiBgdGVycmFmb3JtUmVzb3VyY2VUeXBlYCwgc28gd2hhdGV2ZXJcbiAgLy8gdGhpcyBpbnN0YW5jZSdzIGB0ZXJyYWZvcm1SZXNvdXJjZVR5cGVgIGlzIElTIGl0cyBjb3JyZWN0XG4gIC8vIHJlcXVpcmVkX3Byb3ZpZGVycyBsb2NhbCBuYW1lIChpdCBhbHJlYWR5IGFjY291bnRzIGZvciBhIGBuYW1lYFxuICAvLyBvdmVycmlkZSBpbiB0aGUgY2RrdGYuanNvbiBwcm92aWRlciBjb25zdHJhaW50LCBzZWVcbiAgLy8gQ29uc3RydWN0c01ha2VyUHJvdmlkZXJUYXJnZXQvVGVycmFmb3JtUHJvdmlkZXJDb25zdHJhaW50KSAtIHRoZVxuICAvLyBpbnN0YW5jZSBhbHdheXMga25vd3MgaXRzIG93biBjb3JyZWN0IGxvY2FsIG5hbWUsIHNvIHRoZXJlIGlzIG5vIG5lZWRcbiAgLy8gZm9yIGEgcHJvdmlkZXJMb2NhbE5hbWUgb3ZlcnJpZGUgcGFyYW1ldGVyIGhlcmUuXG4gIHByaXZhdGUgZW1pdEZ1bmN0aW9uc0dldHRlcihcbiAgICBtb2RlbDogTm9uTnVsbGFibGU8UmVzb3VyY2VNb2RlbFtcInByb3ZpZGVyRnVuY3Rpb25zTW9kZWxcIl0+LFxuICApIHtcbiAgICB0aGlzLmNvZGUubGluZShgcHJpdmF0ZSBfZnVuY3Rpb25zPzogJHttb2RlbC5jbGFzc05hbWV9O2ApO1xuICAgIHRoaXMuY29kZS5saW5lKCk7XG5cbiAgICBjb25zdCBjb21tZW50ID0gc2FuaXRpemVkQ29tbWVudCh0aGlzLmNvZGUpO1xuICAgIGNvbW1lbnQubGluZShcbiAgICAgIGBQcm92aWRlci1kZWZpbmVkIGZ1bmN0aW9ucyBvZiB0aGUgJHttb2RlbC5wcm92aWRlck5hbWV9IHByb3ZpZGVyLmAsXG4gICAgKTtcbiAgICBjb21tZW50LmVuZCgpO1xuICAgIHRoaXMuY29kZS5vcGVuQmxvY2soYHB1YmxpYyBnZXQgZnVuY3Rpb25zKCk6ICR7bW9kZWwuY2xhc3NOYW1lfWApO1xuICAgIHRoaXMuY29kZS5vcGVuQmxvY2soYGlmICghdGhpcy5fZnVuY3Rpb25zKWApO1xuICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgYHRoaXMuX2Z1bmN0aW9ucyA9IG5ldyAke21vZGVsLmNsYXNzTmFtZX0odGhpcy50ZXJyYWZvcm1SZXNvdXJjZVR5cGUpO2AsXG4gICAgKTtcbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuICAgIHRoaXMuY29kZS5saW5lKGByZXR1cm4gdGhpcy5fZnVuY3Rpb25zO2ApO1xuICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRIZWFkZXIodGl0bGU6IHN0cmluZykge1xuICAgIHRoaXMuY29kZS5saW5lKCk7XG4gICAgdGhpcy5jb2RlLmxpbmUoXCIvLyBcIiArIFwiPVwiLnJlcGVhdCh0aXRsZS5sZW5ndGgpKTtcbiAgICB0aGlzLmNvZGUubGluZShgLy8gJHt0aXRsZX1gKTtcbiAgICB0aGlzLmNvZGUubGluZShcIi8vIFwiICsgXCI9XCIucmVwZWF0KHRpdGxlLmxlbmd0aCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0U3RhdGljUHJvcGVydGllcyhyZXNvdXJjZTogUmVzb3VyY2VNb2RlbCkge1xuICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgYHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdGZSZXNvdXJjZVR5cGUgPSBcIiR7cmVzb3VyY2UudGVycmFmb3JtUmVzb3VyY2VUeXBlfVwiO2AsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdFN0YXRpY01ldGhvZHMocmVzb3VyY2U6IFJlc291cmNlTW9kZWwpIHtcbiAgICBjb25zdCBjb21tZW50ID0gc2FuaXRpemVkQ29tbWVudCh0aGlzLmNvZGUpO1xuICAgIGNvbW1lbnQubGluZShcbiAgICAgIGBHZW5lcmF0ZXMgQ0RLVE4gY29kZSBmb3IgaW1wb3J0aW5nIGEgJHtyZXNvdXJjZS5jbGFzc05hbWV9IHJlc291cmNlIHVwb24gcnVubmluZyBcImNka3RuIHBsYW4gPHN0YWNrLW5hbWU+XCJgLFxuICAgICk7XG4gICAgY29tbWVudC5saW5lKGBAcGFyYW0gc2NvcGUgVGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdGApO1xuICAgIGNvbW1lbnQubGluZShcbiAgICAgIGBAcGFyYW0gaW1wb3J0VG9JZCBUaGUgY29uc3RydWN0IGlkIHVzZWQgaW4gdGhlIGdlbmVyYXRlZCBjb25maWcgZm9yIHRoZSAke3Jlc291cmNlLmNsYXNzTmFtZX0gdG8gaW1wb3J0YCxcbiAgICApO1xuICAgIGNvbW1lbnQubGluZShcbiAgICAgIGBAcGFyYW0gaW1wb3J0RnJvbUlkIFRoZSBpZCBvZiB0aGUgZXhpc3RpbmcgJHtyZXNvdXJjZS5jbGFzc05hbWV9IHRoYXQgc2hvdWxkIGJlIGltcG9ydGVkLiBSZWZlciB0byB0aGUge0BsaW5rICR7cmVzb3VyY2UubGlua1RvRG9jc30jaW1wb3J0IGltcG9ydCBzZWN0aW9ufSBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGlzIHJlc291cmNlIGZvciB0aGUgaWQgdG8gdXNlYCxcbiAgICApO1xuICAgIGNvbW1lbnQubGluZShcbiAgICAgIGBAcGFyYW0gcHJvdmlkZXI/IE9wdGlvbmFsIGluc3RhbmNlIG9mIHRoZSBwcm92aWRlciB3aGVyZSB0aGUgJHtyZXNvdXJjZS5jbGFzc05hbWV9IHRvIGltcG9ydCBpcyBmb3VuZGAsXG4gICAgKTtcbiAgICBjb21tZW50LmVuZCgpO1xuICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgYHB1YmxpYyBzdGF0aWMgZ2VuZXJhdGVDb25maWdGb3JJbXBvcnQoc2NvcGU6IENvbnN0cnVjdCwgaW1wb3J0VG9JZDogc3RyaW5nLCBpbXBvcnRGcm9tSWQ6IHN0cmluZywgcHJvdmlkZXI/OiBjZGt0bi5UZXJyYWZvcm1Qcm92aWRlcikge1xuICAgICAgICByZXR1cm4gbmV3IGNka3RuLkltcG9ydGFibGVSZXNvdXJjZShzY29wZSwgaW1wb3J0VG9JZCwgeyB0ZXJyYWZvcm1SZXNvdXJjZVR5cGU6IFwiJHtyZXNvdXJjZS50ZXJyYWZvcm1SZXNvdXJjZVR5cGV9XCIsIGltcG9ydElkOiBpbXBvcnRGcm9tSWQsIHByb3ZpZGVyIH0pO1xuICAgICAgfWAsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEhjbFJlc291cmNlU3ludGhlc2lzKHJlc291cmNlOiBSZXNvdXJjZU1vZGVsKSB7XG4gICAgdGhpcy5jb2RlLmxpbmUoKTtcbiAgICB0aGlzLmNvZGUub3BlbkJsb2NrKFxuICAgICAgYHByb3RlY3RlZCBzeW50aGVzaXplSGNsQXR0cmlidXRlcygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfWAsXG4gICAgKTtcbiAgICB0aGlzLmNvZGUub3BlbihgY29uc3QgYXR0cnMgPSB7YCk7XG5cbiAgICBjb25zdCByZWdpc3RlcldyaXRlT25seVVzYWdlID0gdGhpcy5zdXBwb3J0c1dyaXRlT25seVJlZ2lzdHJhdGlvbihyZXNvdXJjZSk7XG4gICAgZm9yIChjb25zdCBhdHQgb2YgcmVzb3VyY2Uuc3ludGhlc2l6YWJsZUF0dHJpYnV0ZXMpIHtcbiAgICAgIHRoaXMuYXR0cmlidXRlc0VtaXR0ZXIuZW1pdFRvSGNsVGVycmFmb3JtKFxuICAgICAgICBhdHQsXG4gICAgICAgIGZhbHNlLFxuICAgICAgICByZWdpc3RlcldyaXRlT25seVVzYWdlLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvZGUuY2xvc2UoYH07YCk7XG5cbiAgICBpZiAocmVzb3VyY2Uuc3ludGhlc2l6YWJsZUF0dHJpYnV0ZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5jb2RlLmxpbmUoKTtcbiAgICAgIHRoaXMuY29kZS5saW5lKGAvLyByZW1vdmUgdW5kZWZpbmVkIGF0dHJpYnV0ZXNgKTtcbiAgICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgICBgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhhdHRycykuZmlsdGVyKChbXywgdmFsdWVdKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlLnZhbHVlICE9PSB1bmRlZmluZWQgKSlgLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RlLmxpbmUoYHJldHVybiBhdHRycztgKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0UmVzb3VyY2VTeW50aGVzaXMocmVzb3VyY2U6IFJlc291cmNlTW9kZWwpIHtcbiAgICB0aGlzLmNvZGUubGluZSgpO1xuICAgIHRoaXMuY29kZS5vcGVuQmxvY2soXG4gICAgICBgcHJvdGVjdGVkIHN5bnRoZXNpemVBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9YCxcbiAgICApO1xuICAgIHRoaXMuY29kZS5vcGVuKGByZXR1cm4ge2ApO1xuXG4gICAgY29uc3QgcmVnaXN0ZXJXcml0ZU9ubHlVc2FnZSA9IHRoaXMuc3VwcG9ydHNXcml0ZU9ubHlSZWdpc3RyYXRpb24ocmVzb3VyY2UpO1xuICAgIGZvciAoY29uc3QgYXR0IG9mIHJlc291cmNlLnN5bnRoZXNpemFibGVBdHRyaWJ1dGVzKSB7XG4gICAgICB0aGlzLmF0dHJpYnV0ZXNFbWl0dGVyLmVtaXRUb1RlcnJhZm9ybShcbiAgICAgICAgYXR0LFxuICAgICAgICBmYWxzZSxcbiAgICAgICAgcmVnaXN0ZXJXcml0ZU9ubHlVc2FnZSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5jb2RlLmNsb3NlKGB9O2ApO1xuICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKCk7XG4gIH1cblxuICAvLyBgbWFya1dyaXRlT25seUF0dHJpYnV0ZWAgKGNhbGxlZCBmcm9tIGdlbmVyYXRlZCBgc3ludGhlc2l6ZUF0dHJpYnV0ZXMoKWAvXG4gIC8vIGBzeW50aGVzaXplSGNsQXR0cmlidXRlcygpYCBmb3Igd3JpdGUtb25seSBhdHRyaWJ1dGVzLCBzZWVcbiAgLy8gQXR0cmlidXRlc0VtaXR0ZXIjZW1pdFRvVGVycmFmb3JtLyNlbWl0VG9IY2xUZXJyYWZvcm0pIGxpdmVzIG9uXG4gIC8vIFRlcnJhZm9ybVJlc291cmNlIC0gc28gb25seSBtYW5hZ2VkIHJlc291cmNlcyBjYW4gcmVnaXN0ZXIgd3JpdGUtb25seVxuICAvLyB1c2FnZTsgZGF0YSBzb3VyY2VzLCBwcm92aWRlcnMsIGFuZCBlcGhlbWVyYWwgcmVzb3VyY2VzIG9ubHkgZ2V0IHRoZVxuICAvLyBkZXByZWNhdGVkIGdldHRlci5cbiAgLy9cbiAgLy8gd3JpdGUtb25seSBpcyBmdW5kYW1lbnRhbGx5IGEgc3RhdGUgY29uY2VwdCAtIHRoZSB2YWx1ZSBpcyBwYXNzZWQgdG9cbiAgLy8gdGhlIHByb3ZpZGVyIGJ1dCBuZXZlciBwZXJzaXN0ZWQgdG8gc3RhdGUgLSBzbyBnYXRpbmcgdGhpcyBvblxuICAvLyBUZXJyYWZvcm1SZXNvdXJjZSBpcyBhIHNlbWFudGljIGNob2ljZSwgbm90IGEgY2FwYWJpbGl0eSBvbmU6IGVwaGVtZXJhbFxuICAvLyByZXNvdXJjZXMgaGF2ZSBubyBzdGF0ZSBhdCBhbGwsIGFuZCwgY29uc2lzdGVudCB3aXRoIHRoYXQsIG5vIHByb3ZpZGVyXG4gIC8vIHNjaGVtYSBpbiB0aGUgUkZDLTA0IHN3ZWVwIChpbmNsdWRpbmcgdmF1bHQncyAxNiBlcGhlbWVyYWwgcmVzb3VyY2VzKVxuICAvLyBtYXJrcyBhbiBlcGhlbWVyYWwgYXR0cmlidXRlIHdyaXRlX29ubHkuIFNvIGVwaGVtZXJhbCBjbGFzc2VzXG4gIC8vIGRlbGliZXJhdGVseSBsYW5kIGluIHRoZSBzYW1lIFwiZ2V0dGVyIG9ubHlcIiBidWNrZXQgYXMgZGF0YSBzb3VyY2VzIGFuZFxuICAvLyBwcm92aWRlcnMuXG4gIHByaXZhdGUgc3VwcG9ydHNXcml0ZU9ubHlSZWdpc3RyYXRpb24ocmVzb3VyY2U6IFJlc291cmNlTW9kZWwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcmVzb3VyY2UucGFyZW50Q2xhc3NOYW1lID09PSBcIlRlcnJhZm9ybVJlc291cmNlXCI7XG4gIH1cblxuICBwcml2YXRlIGVtaXRSZXNvdXJjZUF0dHJpYnV0ZXMocmVzb3VyY2U6IFJlc291cmNlTW9kZWwpIHtcbiAgICBmb3IgKGNvbnN0IGF0dCBvZiByZXNvdXJjZS5hdHRyaWJ1dGVzKSB7XG4gICAgICB0aGlzLmF0dHJpYnV0ZXNFbWl0dGVyLmVtaXQoXG4gICAgICAgIGF0dCxcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGVzRW1pdHRlci5uZWVkc1Jlc2V0RXNjYXBlKGF0dCwgcmVzb3VyY2UuYXR0cmlidXRlcyksXG4gICAgICAgIHRoaXMuYXR0cmlidXRlc0VtaXR0ZXIubmVlZHNJbnB1dEVzY2FwZShhdHQsIHJlc291cmNlLmF0dHJpYnV0ZXMpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVtaXRJbml0aWFsaXplcihyZXNvdXJjZTogUmVzb3VyY2VNb2RlbCkge1xuICAgIHRoaXMuY29kZS5saW5lKCk7XG4gICAgY29uc3QgY29tbWVudCA9IHNhbml0aXplZENvbW1lbnQodGhpcy5jb2RlKTtcbiAgICBjb21tZW50LmxpbmUoXG4gICAgICBgQ3JlYXRlIGEgbmV3IHtAbGluayAke3Jlc291cmNlLmxpbmtUb0RvY3N9ICR7XG4gICAgICAgIHJlc291cmNlLnRlcnJhZm9ybVJlc291cmNlVHlwZVxuICAgICAgfX0gJHtcbiAgICAgICAgcmVzb3VyY2UuaXNEYXRhU291cmNlXG4gICAgICAgICAgPyBcIkRhdGEgU291cmNlXCJcbiAgICAgICAgICA6IHJlc291cmNlLmlzRXBoZW1lcmFsUmVzb3VyY2VcbiAgICAgICAgICAgID8gXCJFcGhlbWVyYWwgUmVzb3VyY2VcIlxuICAgICAgICAgICAgOiBcIlJlc291cmNlXCJcbiAgICAgIH1gLFxuICAgICk7XG4gICAgY29tbWVudC5saW5lKGBgKTtcbiAgICBjb21tZW50LmxpbmUoYEBwYXJhbSBzY29wZSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0YCk7XG4gICAgY29tbWVudC5saW5lKFxuICAgICAgYEBwYXJhbSBpZCBUaGUgc2NvcGVkIGNvbnN0cnVjdCBJRC4gTXVzdCBiZSB1bmlxdWUgYW1vbmdzdCBzaWJsaW5ncyBpbiB0aGUgc2FtZSBzY29wZWAsXG4gICAgKTtcbiAgICBjb21tZW50LmxpbmUoYEBwYXJhbSBvcHRpb25zICR7cmVzb3VyY2UuY29uZmlnU3RydWN0LmF0dHJpYnV0ZVR5cGV9YCk7XG4gICAgY29tbWVudC5lbmQoKTtcbiAgICB0aGlzLmNvZGUub3BlbkJsb2NrKFxuICAgICAgYHB1YmxpYyBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBjb25maWc6ICR7cmVzb3VyY2UuY29uZmlnU3RydWN0LmF0dHJpYnV0ZVR5cGV9KWAsXG4gICAgKTtcblxuICAgIGlmIChyZXNvdXJjZS5pc1Byb3ZpZGVyKSB7XG4gICAgICB0aGlzLmVtaXRQcm92aWRlclN1cGVyKHJlc291cmNlKTtcbiAgICB9IGVsc2UgaWYgKHJlc291cmNlLmlzRXBoZW1lcmFsUmVzb3VyY2UpIHtcbiAgICAgIHRoaXMuZW1pdEVwaGVtZXJhbFJlc291cmNlU3VwZXIocmVzb3VyY2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVtaXRSZXNvdXJjZVN1cGVyKHJlc291cmNlKTtcbiAgICB9XG5cbiAgICAvLyBpbml0aWFsaXplIGNvbmZpZyBwcm9wZXJ0aWVzXG4gICAgZm9yIChjb25zdCBhdHQgb2YgcmVzb3VyY2UuY29uZmlnU3RydWN0LmFzc2lnbmFibGVBdHRyaWJ1dGVzKSB7XG4gICAgICBpZiAoYXR0LnNldHRlclR5cGUuX3R5cGUgPT09IFwic3RvcmVkX2NsYXNzXCIpIHtcbiAgICAgICAgdGhpcy5jb2RlLmxpbmUoXG4gICAgICAgICAgYHRoaXMuJHthdHQuc3RvcmFnZU5hbWV9LmludGVybmFsVmFsdWUgPSBjb25maWcuJHthdHQubmFtZX07YCxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29kZS5saW5lKGB0aGlzLiR7YXR0LnN0b3JhZ2VOYW1lfSA9IGNvbmZpZy4ke2F0dC5uYW1lfTtgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0UmVzb3VyY2VTdXBlcihyZXNvdXJjZTogUmVzb3VyY2VNb2RlbCkge1xuICAgIHRoaXMuY29kZS5vcGVuKGBzdXBlcihzY29wZSwgaWQsIHtgKTtcbiAgICB0aGlzLmNvZGUubGluZShcbiAgICAgIGB0ZXJyYWZvcm1SZXNvdXJjZVR5cGU6ICcke3Jlc291cmNlLnRlcnJhZm9ybVJlc291cmNlVHlwZX0nLGAsXG4gICAgKTtcbiAgICB0aGlzLmVtaXRUZXJyYWZvcm1HZW5lcmF0b3JNZXRhZGF0YShyZXNvdXJjZSk7XG4gICAgdGhpcy5jb2RlLmxpbmUoYHByb3ZpZGVyOiBjb25maWcucHJvdmlkZXIsYCk7XG4gICAgdGhpcy5jb2RlLmxpbmUoYGRlcGVuZHNPbjogY29uZmlnLmRlcGVuZHNPbixgKTtcbiAgICB0aGlzLmNvZGUubGluZShgY291bnQ6IGNvbmZpZy5jb3VudCxgKTtcbiAgICB0aGlzLmNvZGUubGluZShgbGlmZWN5Y2xlOiBjb25maWcubGlmZWN5Y2xlLGApO1xuICAgIHRoaXMuY29kZS5saW5lKGBwcm92aXNpb25lcnM6IGNvbmZpZy5wcm92aXNpb25lcnMsYCk7XG4gICAgdGhpcy5jb2RlLmxpbmUoYGNvbm5lY3Rpb246IGNvbmZpZy5jb25uZWN0aW9uLGApO1xuICAgIHRoaXMuY29kZS5saW5lKGBmb3JFYWNoOiBjb25maWcuZm9yRWFjaGApO1xuICAgIHRoaXMuY29kZS5jbG9zZShgfSk7YCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRFcGhlbWVyYWxSZXNvdXJjZVN1cGVyKHJlc291cmNlOiBSZXNvdXJjZU1vZGVsKSB7XG4gICAgdGhpcy5jb2RlLm9wZW4oYHN1cGVyKHNjb3BlLCBpZCwge2ApO1xuICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgYHRlcnJhZm9ybVJlc291cmNlVHlwZTogJyR7cmVzb3VyY2UudGVycmFmb3JtUmVzb3VyY2VUeXBlfScsYCxcbiAgICApO1xuICAgIHRoaXMuZW1pdFRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhKHJlc291cmNlKTtcbiAgICB0aGlzLmNvZGUubGluZShgcHJvdmlkZXI6IGNvbmZpZy5wcm92aWRlcixgKTtcbiAgICB0aGlzLmNvZGUubGluZShgZGVwZW5kc09uOiBjb25maWcuZGVwZW5kc09uLGApO1xuICAgIHRoaXMuY29kZS5saW5lKGBjb3VudDogY29uZmlnLmNvdW50LGApO1xuICAgIHRoaXMuY29kZS5saW5lKGBsaWZlY3ljbGU6IGNvbmZpZy5saWZlY3ljbGUsYCk7XG4gICAgdGhpcy5jb2RlLmxpbmUoYGZvckVhY2g6IGNvbmZpZy5mb3JFYWNoYCk7XG4gICAgdGhpcy5jb2RlLmNsb3NlKGB9KTtgKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdFByb3ZpZGVyU3VwZXIocmVzb3VyY2U6IFJlc291cmNlTW9kZWwpIHtcbiAgICB0aGlzLmNvZGUub3Blbihgc3VwZXIoc2NvcGUsIGlkLCB7YCk7XG4gICAgdGhpcy5jb2RlLmxpbmUoXG4gICAgICBgdGVycmFmb3JtUmVzb3VyY2VUeXBlOiAnJHtyZXNvdXJjZS50ZXJyYWZvcm1SZXNvdXJjZVR5cGV9JyxgLFxuICAgICk7XG4gICAgdGhpcy5lbWl0VGVycmFmb3JtR2VuZXJhdG9yTWV0YWRhdGEocmVzb3VyY2UpO1xuICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgYHRlcnJhZm9ybVByb3ZpZGVyU291cmNlOiAnJHtyZXNvdXJjZS50ZXJyYWZvcm1Qcm92aWRlclNvdXJjZX0nYCxcbiAgICApO1xuICAgIHRoaXMuY29kZS5jbG9zZShgfSk7YCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRUZXJyYWZvcm1HZW5lcmF0b3JNZXRhZGF0YShyZXNvdXJjZTogUmVzb3VyY2VNb2RlbCkge1xuICAgIHRoaXMuY29kZS5vcGVuKGB0ZXJyYWZvcm1HZW5lcmF0b3JNZXRhZGF0YToge2ApO1xuICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgYHByb3ZpZGVyTmFtZTogJyR7cmVzb3VyY2UucHJvdmlkZXJ9JyR7XG4gICAgICAgIHJlc291cmNlLnByb3ZpZGVyVmVyc2lvbiB8fCByZXNvdXJjZS5wcm92aWRlclZlcnNpb25Db25zdHJhaW50XG4gICAgICAgICAgPyBcIixcIlxuICAgICAgICAgIDogXCJcIlxuICAgICAgfWAsXG4gICAgKTtcblxuICAgIGlmIChyZXNvdXJjZS5wcm92aWRlclZlcnNpb24pIHtcbiAgICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgICBgcHJvdmlkZXJWZXJzaW9uOiAnJHtyZXNvdXJjZS5wcm92aWRlclZlcnNpb259JyR7XG4gICAgICAgICAgcmVzb3VyY2UucHJvdmlkZXJWZXJzaW9uQ29uc3RyYWludCA/IFwiLFwiIDogXCJcIlxuICAgICAgICB9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHJlc291cmNlLnByb3ZpZGVyVmVyc2lvbkNvbnN0cmFpbnQpIHtcbiAgICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgICBgcHJvdmlkZXJWZXJzaW9uQ29uc3RyYWludDogJyR7cmVzb3VyY2UucHJvdmlkZXJWZXJzaW9uQ29uc3RyYWludH0nYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5jb2RlLmNsb3NlKGB9LGApO1xuICB9XG59XG4iXX0=
|
|
@@ -34,6 +34,7 @@ export interface AttributeModelOptions {
|
|
|
34
34
|
provider: boolean;
|
|
35
35
|
required: boolean;
|
|
36
36
|
forcePlainGetterType?: boolean;
|
|
37
|
+
isWriteOnly?: boolean;
|
|
37
38
|
}
|
|
38
39
|
export declare function escapeAttributeName(name: string): string;
|
|
39
40
|
export declare class AttributeModel {
|
|
@@ -49,6 +50,7 @@ export declare class AttributeModel {
|
|
|
49
50
|
required: boolean;
|
|
50
51
|
forcePlainGetterType?: boolean;
|
|
51
52
|
private loggedStoredClassUnavailable;
|
|
53
|
+
isWriteOnly: boolean;
|
|
52
54
|
constructor(options: AttributeModelOptions);
|
|
53
55
|
get typeDefinition(): string;
|
|
54
56
|
get isAssignable(): boolean;
|
|
@@ -49,6 +49,7 @@ class AttributeModel {
|
|
|
49
49
|
this.provider = options.provider;
|
|
50
50
|
this.required = options.required;
|
|
51
51
|
this.forcePlainGetterType = options.forcePlainGetterType;
|
|
52
|
+
this.isWriteOnly = !!options.isWriteOnly;
|
|
52
53
|
}
|
|
53
54
|
get typeDefinition() {
|
|
54
55
|
const optional = this.optional ? "?" : "";
|
|
@@ -202,4 +203,4 @@ class AttributeModel {
|
|
|
202
203
|
}
|
|
203
204
|
}
|
|
204
205
|
exports.AttributeModel = AttributeModel;
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2dldC9nZW5lcmF0b3IvbW9kZWxzL2F0dHJpYnV0ZS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLDRDQUF3QztBQXVDeEMsU0FBZ0IsbUJBQW1CLENBQUMsSUFBWTtJQUM5QyxnRUFBZ0U7SUFDaEUsSUFBSSxJQUFJLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxPQUFPO1FBQUUsT0FBTyxHQUFHLElBQUksV0FBVyxDQUFDO0lBQ25FLDJFQUEyRTtJQUMzRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRSx3Q0FBd0M7SUFDeEMsSUFBSSxJQUFJLEtBQUssUUFBUTtRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQ3hDLHNEQUFzRDtJQUN0RCxJQUFJLElBQUksS0FBSyxNQUFNO1FBQUUsT0FBTyxlQUFlLENBQUM7SUFDNUMsd0RBQXdEO0lBQ3hELElBQUksSUFBSSxLQUFLLFFBQVE7UUFBRSxPQUFPLGlCQUFpQixDQUFDO0lBQ2hELGdHQUFnRztJQUNoRyxJQUFJLElBQUksS0FBSyxnQkFBZ0I7UUFBRSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUM7SUFDekQsc0VBQXNFO0lBQ3RFLElBQUksSUFBSSxLQUFLLFlBQVk7UUFBRSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUM7SUFDckQseURBQXlEO0lBQ3pELElBQUksSUFBSSxLQUFLLFFBQVE7UUFBRSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUM7SUFDakQsc0ZBQXNGO0lBQ3RGLElBQUksSUFBSSxLQUFLLFVBQVU7UUFBRSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUM7SUFDbkQsT0FBTyxJQUFJLENBQUM7QUFD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V0FBVyxLQUFLLFNBQVM7WUFDdkMsYUFBYSxDQUFDLFdBQVcsS0FBSyxTQUFTO1lBQ3ZDLGFBQWEsQ0FBQyxXQUFXLElBQUksUUFBUSxFQUNyQyxDQUFDO1lBQ0QsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDekMsQ0FBQzthQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMzQixLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFDRCxxREFBcUQ7UUFFckQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUE5TUQsd0NBOE1DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuaW1wb3J0IHtcbiAgQXR0cmlidXRlVHlwZU1vZGVsLFxuICBDb2xsZWN0aW9uQXR0cmlidXRlVHlwZU1vZGVsLFxufSBmcm9tIFwiLi9hdHRyaWJ1dGUtdHlwZS1tb2RlbFwiO1xuXG5leHBvcnQgdHlwZSBHZXR0ZXJUeXBlID1cbiAgfCB7IF90eXBlOiBcInBsYWluXCIgfVxuICB8IHtcbiAgICAgIF90eXBlOiBcImFyZ3NcIjtcbiAgICAgIGFyZ3M6IHN0cmluZztcbiAgICAgIHJldHVyblR5cGU/OiBzdHJpbmc7XG4gICAgICByZXR1cm5TdGF0ZW1lbnQ6IHN0cmluZztcbiAgICB9XG4gIHwge1xuICAgICAgX3R5cGU6IFwic3RvcmVkX2NsYXNzXCI7XG4gICAgfTtcblxuZXhwb3J0IHR5cGUgU2V0dGVyVHlwZSA9XG4gIHwgeyBfdHlwZTogXCJub25lXCIgfVxuICB8IHsgX3R5cGU6IFwic2V0XCI7IHR5cGU6IHN0cmluZyB9XG4gIHwgeyBfdHlwZTogXCJwdXRcIjsgdHlwZTogc3RyaW5nIH1cbiAgfCB7IF90eXBlOiBcInN0b3JlZF9jbGFzc1wiOyB0eXBlOiBzdHJpbmcgfTtcblxuZXhwb3J0IGludGVyZmFjZSBBdHRyaWJ1dGVNb2RlbE9wdGlvbnMge1xuICBzdG9yYWdlTmFtZTogc3RyaW5nOyAvLyBwcml2YXRlIHByb3BlcnR5XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogQXR0cmlidXRlVHlwZU1vZGVsO1xuICBvcHRpb25hbDogYm9vbGVhbjtcbiAgY29tcHV0ZWQ6IGJvb2xlYW47XG4gIHRlcnJhZm9ybU5hbWU6IHN0cmluZztcbiAgdGVycmFmb3JtRnVsbE5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGdldEF0dENhbGw/OiBzdHJpbmc7XG4gIHByb3ZpZGVyOiBib29sZWFuO1xuICByZXF1aXJlZDogYm9vbGVhbjtcbiAgZm9yY2VQbGFpbkdldHRlclR5cGU/OiBib29sZWFuOyAvLyB1c2VkIGZvciBza2lwcGluZyBhdHRyaWJ1dGUgdHlwZSBhdHRyaWJ1dGVzIHRoYXQgdXNlIHRoZSBTa2lwcGVkQXR0cmlidXRlVHlwZU1vZGVsIHdoaWNoIHJldHVybnMgYW4gaW50ZXJwb2xhdGlvbiBhbmQgaGFzIG5vIHN0b3JlZCB0eXBlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlc2NhcGVBdHRyaWJ1dGVOYW1lKG5hbWU6IHN0cmluZykge1xuICAvLyBgc2VsZmAgYW5kIGBidWlsZGAgZG9lc24ndCB3b3JrIGluIGFzIHByb3BlcnR5IG5hbWUgaW4gUHl0aG9uXG4gIGlmIChuYW1lID09PSBcInNlbGZcIiB8fCBuYW1lID09PSBcImJ1aWxkXCIpIHJldHVybiBgJHtuYW1lfUF0dHJpYnV0ZWA7XG4gIC8vIGpzaWkgY2FuJ3QgaGFuZGxlIGBnZXRGb29gIHByb3BlcnRpZXMsIHNpbmNlIGl0J3MgaW5jb21wYXRpYmxlIHdpdGggSmF2YVxuICBpZiAobmFtZS5tYXRjaCgvXmdldFtBLVphLXpdKy8pKSByZXR1cm4gbmFtZS5yZXBsYWNlKFwiZ2V0XCIsIFwiZmV0Y2hcIik7XG4gIC8vIGBlcXVhbHNgIGlzIGEgcHJvaGliaXRlZCBuYW1lIGluIGpzaWlcbiAgaWYgKG5hbWUgPT09IFwiZXF1YWxzXCIpIHJldHVybiBcImVxdWFsVG9cIjtcbiAgLy8gYG5vZGVgIGlzIGFscmVhZHkgdXNlZCBieSB0aGUgQ29uc3RydWN0cyBiYXNlIGNsYXNzXG4gIGlmIChuYW1lID09PSBcIm5vZGVcIikgcmV0dXJuIFwibm9kZUF0dHJpYnV0ZVwiO1xuICAvLyBgU3lzdGVtYCBzaGFkb3dzIGJ1aWx0LWluIHR5cGVzIGluIENTaGFycCAoc2VlICMxNDIwKVxuICBpZiAobmFtZSA9PT0gXCJzeXN0ZW1cIikgcmV0dXJuIFwic3lzdGVtQXR0cmlidXRlXCI7XG4gIC8vIGB0ZlJlc291cmNlVHlwZWAgaXMgYWxyZWFkeSB1c2VkIGJ5IHJlc291cmNlcyB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIGRpZmZlcmVudCByZXNvdXJjZSB0eXBlc1xuICBpZiAobmFtZSA9PT0gXCJ0ZlJlc291cmNlVHlwZVwiKSByZXR1cm4gYCR7bmFtZX1BdHRyaWJ1dGVgO1xuICAvLyBgaW1wb3J0RnJvbWAgaGFzIHBvdGVudGlhbCBmb3IgY29tbW9uIG5hbWUgY29sbGlzaW9uIHdpdGggcHJvdmlkZXJzXG4gIGlmIChuYW1lID09PSBcImltcG9ydEZyb21cIikgcmV0dXJuIGAke25hbWV9QXR0cmlidXRlYDtcbiAgLy8gYG1vdmVgIGNvdWxkIGhhdmUgY29tbW9uIG5hbWUgY29sbGlzaW9uIHdpdGggcHJvdmlkZXJzXG4gIGlmIChuYW1lID09PSBcIm1vdmVUb1wiKSByZXR1cm4gYCR7bmFtZX1BdHRyaWJ1dGVgO1xuICAvLyBgc29mdHdhcmVgIGF0dHJpYnV0ZSBjYW4gYmUgY29uZnVzZWQgd2l0aCB0aGUgSlNJSSBKYXZhIHJ1bnRpbWUgcGFja2FnZSAoc2VlICMzMTE1KVxuICBpZiAobmFtZSA9PT0gXCJzb2Z0d2FyZVwiKSByZXR1cm4gYCR7bmFtZX1BdHRyaWJ1dGVgO1xuICByZXR1cm4gbmFtZTtcbn1cblxuZXhwb3J0IGNsYXNzIEF0dHJpYnV0ZU1vZGVsIHtcbiAgcHVibGljIHN0b3JhZ2VOYW1lOiBzdHJpbmc7IC8vIHByaXZhdGUgcHJvcGVydHlcbiAgcHJpdmF0ZSBfbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgdHlwZTogQXR0cmlidXRlVHlwZU1vZGVsO1xuICBwdWJsaWMgb3B0aW9uYWw6IGJvb2xlYW47XG4gIHB1YmxpYyBjb21wdXRlZDogYm9vbGVhbjtcbiAgcHVibGljIHRlcnJhZm9ybU5hbWU6IHN0cmluZztcbiAgcHVibGljIHRlcnJhZm9ybUZ1bGxOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgX2Rlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBwdWJsaWMgcHJvdmlkZXI6IGJvb2xlYW47XG4gIHB1YmxpYyByZXF1aXJlZDogYm9vbGVhbjtcbiAgcHVibGljIGZvcmNlUGxhaW5HZXR0ZXJUeXBlPzogYm9vbGVhbjtcbiAgcHJpdmF0ZSBsb2dnZWRTdG9yZWRDbGFzc1VuYXZhaWxhYmxlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogQXR0cmlidXRlTW9kZWxPcHRpb25zKSB7XG4gICAgdGhpcy5zdG9yYWdlTmFtZSA9IG9wdGlvbnMuc3RvcmFnZU5hbWU7XG4gICAgdGhpcy5fbmFtZSA9IG9wdGlvbnMubmFtZTtcbiAgICB0aGlzLnR5cGUgPSBvcHRpb25zLnR5cGU7XG4gICAgdGhpcy5vcHRpb25hbCA9IG9wdGlvbnMub3B0aW9uYWw7XG4gICAgdGhpcy5jb21wdXRlZCA9IG9wdGlvbnMuY29tcHV0ZWQ7XG4gICAgdGhpcy50ZXJyYWZvcm1OYW1lID0gb3B0aW9ucy50ZXJyYWZvcm1OYW1lO1xuICAgIHRoaXMudGVycmFmb3JtRnVsbE5hbWUgPSBvcHRpb25zLnRlcnJhZm9ybUZ1bGxOYW1lO1xuICAgIHRoaXMuX2Rlc2NyaXB0aW9uID0gb3B0aW9ucy5kZXNjcmlwdGlvbjtcbiAgICB0aGlzLnByb3ZpZGVyID0gb3B0aW9ucy5wcm92aWRlcjtcbiAgICB0aGlzLnJlcXVpcmVkID0gb3B0aW9ucy5yZXF1aXJlZDtcbiAgICB0aGlzLmZvcmNlUGxhaW5HZXR0ZXJUeXBlID0gb3B0aW9ucy5mb3JjZVBsYWluR2V0dGVyVHlwZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdHlwZURlZmluaXRpb24oKSB7XG4gICAgY29uc3Qgb3B0aW9uYWwgPSB0aGlzLm9wdGlvbmFsID8gXCI/XCIgOiBcIlwiO1xuICAgIHJldHVybiBgJHt0aGlzLm5hbWV9JHtvcHRpb25hbH06ICR7dGhpcy50eXBlLmlucHV0VHlwZURlZmluaXRpb259YDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNBc3NpZ25hYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnJlcXVpcmVkIHx8IHRoaXMub3B0aW9uYWw7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzT3B0aW9uYWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9uYWw7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzUmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWlyZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzUHJvdmlkZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucHJvdmlkZXI7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGdldHRlclR5cGUoKTogR2V0dGVyVHlwZSB7XG4gICAgbGV0IGdldHRlclR5cGU6IEdldHRlclR5cGUgPSB7IF90eXBlOiBcInBsYWluXCIgfTtcblxuICAgIGlmICh0aGlzLmZvcmNlUGxhaW5HZXR0ZXJUeXBlKSB7XG4gICAgICByZXR1cm4gZ2V0dGVyVHlwZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc1Byb3ZpZGVyKSB7XG4gICAgICByZXR1cm4gZ2V0dGVyVHlwZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eXBlLmhhc1JlZmVyZW5jZUNsYXNzKSB7XG4gICAgICBnZXR0ZXJUeXBlID0ge1xuICAgICAgICBfdHlwZTogXCJzdG9yZWRfY2xhc3NcIixcbiAgICAgIH07XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRoaXMuY29tcHV0ZWQgJiZcbiAgICAgICF0aGlzLmlzQXNzaWduYWJsZSAmJlxuICAgICAgKCF0aGlzLnR5cGUuaXNUb2tlbml6YWJsZSB8fCB0aGlzLnR5cGUudHlwZU1vZGVsVHlwZSA9PT0gXCJtYXBcIilcbiAgICApIHtcbiAgICAgIGlmICh0aGlzLnR5cGUuaXNTdG9yZWRDbGFzc1VuYXZhaWxhYmxlKSB7XG4gICAgICAgIC8vIERlZmVuc2l2ZSBmYWxsYmFjazogbmVpdGhlciB0aGUgY29tcG9zZWQgc3RvcmVkIGNsYXNzIG5hbWUgKGUuZy5cbiAgICAgICAgLy8gXCJTdHJpbmdMaXN0TWFwTWFwXCIpIG5vciBhIGNvbGxhcHNlZCBuZWFyZXN0LUFueSB3cmFwcGVyIChlLmcuIFwiQW55TWFwTWFwXCIpXG4gICAgICAgIC8vIGV4aXN0cyBpbiB0aGUgY29yZSBjZGt0biBwYWNrYWdlIGZvciB0aGlzIHR5cGUuIFRoaXMgc2hvdWxkIGJlIHJhcmUgLSBzZWVcbiAgICAgICAgLy8gcmVzb2x2ZVN0b3JlZENsYXNzTmFtZSBpbiBzdXBwb3J0ZWQtc3RvcmVkLWNsYXNzZXMudHMgLSBzbyBsb2cgaXQgbG91ZGx5IHRvXG4gICAgICAgIC8vIG1ha2UgcmVncmVzc2lvbnMgaW4gdGhlIGNvbGxhcHNlIGxvZ2ljIHZpc2libGUuXG4gICAgICAgIGlmICghdGhpcy5sb2dnZWRTdG9yZWRDbGFzc1VuYXZhaWxhYmxlKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZWRTdG9yZWRDbGFzc1VuYXZhaWxhYmxlID0gdHJ1ZTtcbiAgICAgICAgICBsb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBgTm8gc3RvcmVkIGNsYXNzIChub3QgZXZlbiBhIGNvbGxhcHNlZCBuZWFyZXN0LUFueSB3cmFwcGVyKSBpcyBhdmFpbGFibGUgZm9yIGNvbXB1dGVkIGF0dHJpYnV0ZSBcIiR7dGhpcy50ZXJyYWZvcm1GdWxsTmFtZX1cIiAoY29tcG9zZWQgc3RvcmVkQ2xhc3NUeXBlOiBcIiR7dGhpcy50eXBlLnN0b3JlZENsYXNzVHlwZX1cIikuIEZhbGxpbmcgYmFjayB0byBhIHBsYWluLCB1bnR5cGVkIGdldHRlci5gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGdldHRlclR5cGUgPSB7XG4gICAgICAgICAgX3R5cGU6IFwic3RvcmVkX2NsYXNzXCIsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGdldHRlclR5cGU7XG4gIH1cblxuICAvLyBSZXBvcnRzIHdoZXRoZXIgdGhpcyBhdHRyaWJ1dGUncyBnZXR0ZXIgc2l0cyBhdCBhIFwic3RvcmVkIGNsYXNzIGJvdW5kYXJ5XCIgdGhhdCBpc1xuICAvLyB3b3J0aCBkb2N1bWVudGluZzogXCJjb2xsYXBzZWRcIiB3aGVuIGEgZGVlcGVyLCB1bnN1cHBvcnRlZCBuZXN0aW5nIHdhcyBjb2xsYXBzZWQgaW50b1xuICAvLyB0aGUgbmVhcmVzdCB0eXBlZCBcIkFueVwiLXdyYXBwZXIgKGUuZy4gXCJBbnlNYXBNYXBcIiksIG9yIFwiZmFsbGJhY2tcIiB3aGVuIG5vIHN0b3JlZCBjbGFzc1xuICAvLyBhdCBhbGwgaXMgYXZhaWxhYmxlIGFuZCBhIHBsYWluLCB1bnR5cGVkIGdldHRlciBpcyBlbWl0dGVkIGluc3RlYWQuIE1pcnJvcnMgdGhlIHNhbWVcbiAgLy8gY29uZGl0aW9uIHRyZWUgYXMgZ2V0dGVyVHlwZSBhYm92ZSwgc28gaXQgb25seSBldmVyIHJlcG9ydHMgYSBib3VuZGFyeSBmb3IgYXR0cmlidXRlc1xuICAvLyB0aGF0IGFjdHVhbGx5IHdlbnQgdGhyb3VnaCB0aGF0IGNvbXB1dGVkLWNvbGxlY3Rpb24gYnJhbmNoIC0gcGxhaW4gZ2V0dGVycyBmb3JcbiAgLy8gb3JkaW5hcnkgdG9rZW5pemFibGUgdHlwZXMgKGUuZy4gbGlzdChzdHJpbmcpKSBhcmUgbmV2ZXIgZmxhZ2dlZC5cbiAgcHVibGljIGdldCBzdG9yZWRDbGFzc0JvdW5kYXJ5S2luZCgpOiBcImNvbGxhcHNlZFwiIHwgXCJmYWxsYmFja1wiIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5mb3JjZVBsYWluR2V0dGVyVHlwZSB8fCB0aGlzLmlzUHJvdmlkZXIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZS5oYXNSZWZlcmVuY2VDbGFzcykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmNvbXB1dGVkICYmXG4gICAgICAhdGhpcy5pc0Fzc2lnbmFibGUgJiZcbiAgICAgICghdGhpcy50eXBlLmlzVG9rZW5pemFibGUgfHwgdGhpcy50eXBlLnR5cGVNb2RlbFR5cGUgPT09IFwibWFwXCIpXG4gICAgKSB7XG4gICAgICBpZiAodGhpcy50eXBlLmlzU3RvcmVkQ2xhc3NVbmF2YWlsYWJsZSkge1xuICAgICAgICByZXR1cm4gXCJmYWxsYmFja1wiO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZXNvbHZlZFN0b3JlZENsYXNzID0gKHRoaXMudHlwZSBhcyBDb2xsZWN0aW9uQXR0cmlidXRlVHlwZU1vZGVsKVxuICAgICAgICAucmVzb2x2ZWRTdG9yZWRDbGFzcztcbiAgICAgIGlmIChyZXNvbHZlZFN0b3JlZENsYXNzPy5jb2xsYXBzZWQpIHtcbiAgICAgICAgcmV0dXJuIFwiY29sbGFwc2VkXCI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNTdG9yZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNBc3NpZ25hYmxlO1xuICB9XG5cbiAgcHVibGljIGdldCBzZXR0ZXJUeXBlKCk6IFNldHRlclR5cGUge1xuICAgIGlmICghdGhpcy5pc1N0b3JlZCkge1xuICAgICAgcmV0dXJuIHsgX3R5cGU6IFwibm9uZVwiIH07XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZ2V0dGVyVHlwZS5fdHlwZSA9PT0gXCJzdG9yZWRfY2xhc3NcIikge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgX3R5cGU6IFwic3RvcmVkX2NsYXNzXCIsXG4gICAgICAgIHR5cGU6IHRoaXMudHlwZS5pbnB1dFR5cGVEZWZpbml0aW9uLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgX3R5cGU6IFwic2V0XCIsXG4gICAgICB0eXBlOiBgJHt0aGlzLnR5cGUuaW5wdXRUeXBlRGVmaW5pdGlvbn0ke1xuICAgICAgICB0aGlzLmlzUHJvdmlkZXIgPyBcIiB8IHVuZGVmaW5lZFwiIDogXCJcIlxuICAgICAgfWAsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBBdHRyaWJ1dGVNb2RlbC5lc2NhcGVOYW1lKHRoaXMuX25hbWUpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBlc2NhcGVOYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGVzY2FwZUF0dHJpYnV0ZU5hbWUobmFtZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlc2NyaXB0aW9uKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2Rlc2NyaXB0aW9uPy5yZXBsYWNlKC8nJycvZ2ksIFwiYGBgXCIpO1xuICB9XG5cbiAgcHVibGljIGdldFJlZmVyZW5jZWRUeXBlcyhpc0NvbmZpZ1N0cnVjdDogYm9vbGVhbik6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBhdHRUeXBlU3RydWN0ID0gdGhpcy50eXBlLnN0cnVjdDtcbiAgICBpZiAoIWF0dFR5cGVTdHJ1Y3QpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgdHlwZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAodGhpcy5pc0Fzc2lnbmFibGUpIHtcbiAgICAgIHR5cGVzLnB1c2goYXR0VHlwZVN0cnVjdC5uYW1lKTtcbiAgICAgIHR5cGVzLnB1c2goYXR0VHlwZVN0cnVjdC5tYXBwZXJOYW1lKTtcbiAgICAgIHR5cGVzLnB1c2goYXR0VHlwZVN0cnVjdC5oY2xNYXBwZXJOYW1lKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAhYXR0VHlwZVN0cnVjdC5pc1NpbmdsZUl0ZW0gJiZcbiAgICAgIChhdHRUeXBlU3RydWN0Lm5lc3RpbmdNb2RlID09PSBcImxpc3RcIiB8fFxuICAgICAgICBhdHRUeXBlU3RydWN0Lm5lc3RpbmdNb2RlID09PSBcInNldFwiKVxuICAgICkge1xuICAgICAgdHlwZXMucHVzaChhdHRUeXBlU3RydWN0Lmxpc3ROYW1lKTtcbiAgICB9IGVsc2UgaWYgKGF0dFR5cGVTdHJ1Y3QubmVzdGluZ01vZGUgPT09IFwibWFwXCIpIHtcbiAgICAgIHR5cGVzLnB1c2goYXR0VHlwZVN0cnVjdC5tYXBOYW1lKTtcbiAgICB9IGVsc2UgaWYgKGF0dFR5cGVTdHJ1Y3QubmVzdGluZ01vZGUgPT09IFwibWFwbGlzdFwiKSB7XG4gICAgICB0eXBlcy5wdXNoKGF0dFR5cGVTdHJ1Y3QubWFwTGlzdE5hbWUpO1xuICAgIH0gZWxzZSBpZiAoYXR0VHlwZVN0cnVjdC5uZXN0aW5nTW9kZSA9PT0gXCJtYXBzZXRcIikge1xuICAgICAgdHlwZXMucHVzaChhdHRUeXBlU3RydWN0Lm1hcExpc3ROYW1lKTtcbiAgICB9IGVsc2UgaWYgKGF0dFR5cGVTdHJ1Y3QubmVzdGluZ01vZGUgPT09IFwibGlzdG1hcFwiKSB7XG4gICAgICB0eXBlcy5wdXNoKGF0dFR5cGVTdHJ1Y3QubGlzdE1hcE5hbWUpO1xuICAgIH0gZWxzZSBpZiAoYXR0VHlwZVN0cnVjdC5uZXN0aW5nTW9kZSA9PT0gXCJzZXRtYXBcIikge1xuICAgICAgdHlwZXMucHVzaChhdHRUeXBlU3RydWN0Lmxpc3RNYXBOYW1lKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgYXR0VHlwZVN0cnVjdC5uZXN0aW5nTW9kZSA9PT0gXCJsaXN0bGlzdFwiIHx8XG4gICAgICBhdHRUeXBlU3RydWN0Lm5lc3RpbmdNb2RlID09PSBcImxpc3RzZXRcIiB8fFxuICAgICAgYXR0VHlwZVN0cnVjdC5uZXN0aW5nTW9kZSA9PT0gXCJzZXRsaXN0XCIgfHxcbiAgICAgIGF0dFR5cGVTdHJ1Y3QubmVzdGluZ01vZGUgPT0gXCJzZXRzZXRcIlxuICAgICkge1xuICAgICAgdHlwZXMucHVzaChhdHRUeXBlU3RydWN0Lmxpc3RMaXN0TmFtZSk7XG4gICAgfSBlbHNlIGlmICghaXNDb25maWdTdHJ1Y3QpIHtcbiAgICAgIHR5cGVzLnB1c2goYXR0VHlwZVN0cnVjdC5vdXRwdXRSZWZlcmVuY2VOYW1lKTtcbiAgICB9XG4gICAgLy8gb3RoZXIgdHlwZXMgb2YgbmVzdGVkIGNvbGxlY3Rpb25zIGFyZW4ndCBzdXBwb3J0ZWRcblxuICAgIHJldHVybiB0eXBlcztcbiAgfVxufVxuIl19
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2dldC9nZW5lcmF0b3IvbW9kZWxzL2F0dHJpYnV0ZS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLDRDQUF3QztBQXdDeEMsU0FBZ0IsbUJBQW1CLENBQUMsSUFBWTtJQUM5QyxnRUFBZ0U7SUFDaEUsSUFBSSxJQUFJLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxPQUFPO1FBQUUsT0FBTyxHQUFHLElBQUksV0FBVyxDQUFDO0lBQ25FLDJFQUEyRTtJQUMzRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRSx3Q0FBd0M7SUFDeEMsSUFBSSxJQUFJLEtBQUssUUFBUTtRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQ3hDLHNEQUFzRDtJQUN0RCxJQUFJLElBQUksS0FBSyxNQUFNO1FBQUUsT0FBTyxlQUFlLENBQUM7SUFDNUMsd0RBQXdEO0lBQ3hELElBQUksSUFBSSxLQUFLLFFBQVE7UUFBRSxPQUFPLGlCQUFpQixDQUFDO0lBQ2hELGdHQUFnRztJQUNoRyxJQUFJLElBQUksS0FBSyxnQkFBZ0I7UUFBRSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUM7SUFDekQsc0VBQXNFO0lBQ3RFLElBQUksSUFBSSxLQUFLLFlBQVk7UUFBRSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUM7SUFDckQseURBQXlEO0lBQ3pELElBQUksSUFBSSxLQUFLLFFBQVE7UUFBRSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUM7SUFDakQsc0ZBQXNGO0lBQ3RGLElBQUksSUFBSSxLQUFLLFVBQVU7UUFBRSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUM7SUFDbkQsT0FBTyxJQUFJLENBQUM7QUFD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Q0FBQzthQUFNLElBQ0wsYUFBYSxDQUFDLFdBQVcsS0FBSyxVQUFVO1lBQ3hDLGFBQWEsQ0FBQyxXQUFXLEtBQUssU0FBUztZQUN2QyxhQUFhLENBQUMsV0FBVyxLQUFLLFNBQVM7WUFDdkMsYUFBYSxDQUFDLFdBQVcsSUFBSSxRQUFRLEVBQ3JDLENBQUM7WUFDRCxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN6QyxDQUFDO2FBQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzNCLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUNELHFEQUFxRDtRQUVyRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRjtBQWhORCx3Q0FnTkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5pbXBvcnQge1xuICBBdHRyaWJ1dGVUeXBlTW9kZWwsXG4gIENvbGxlY3Rpb25BdHRyaWJ1dGVUeXBlTW9kZWwsXG59IGZyb20gXCIuL2F0dHJpYnV0ZS10eXBlLW1vZGVsXCI7XG5cbmV4cG9ydCB0eXBlIEdldHRlclR5cGUgPVxuICB8IHsgX3R5cGU6IFwicGxhaW5cIiB9XG4gIHwge1xuICAgICAgX3R5cGU6IFwiYXJnc1wiO1xuICAgICAgYXJnczogc3RyaW5nO1xuICAgICAgcmV0dXJuVHlwZT86IHN0cmluZztcbiAgICAgIHJldHVyblN0YXRlbWVudDogc3RyaW5nO1xuICAgIH1cbiAgfCB7XG4gICAgICBfdHlwZTogXCJzdG9yZWRfY2xhc3NcIjtcbiAgICB9O1xuXG5leHBvcnQgdHlwZSBTZXR0ZXJUeXBlID1cbiAgfCB7IF90eXBlOiBcIm5vbmVcIiB9XG4gIHwgeyBfdHlwZTogXCJzZXRcIjsgdHlwZTogc3RyaW5nIH1cbiAgfCB7IF90eXBlOiBcInB1dFwiOyB0eXBlOiBzdHJpbmcgfVxuICB8IHsgX3R5cGU6IFwic3RvcmVkX2NsYXNzXCI7IHR5cGU6IHN0cmluZyB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZU1vZGVsT3B0aW9ucyB7XG4gIHN0b3JhZ2VOYW1lOiBzdHJpbmc7IC8vIHByaXZhdGUgcHJvcGVydHlcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBBdHRyaWJ1dGVUeXBlTW9kZWw7XG4gIG9wdGlvbmFsOiBib29sZWFuO1xuICBjb21wdXRlZDogYm9vbGVhbjtcbiAgdGVycmFmb3JtTmFtZTogc3RyaW5nO1xuICB0ZXJyYWZvcm1GdWxsTmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgZ2V0QXR0Q2FsbD86IHN0cmluZztcbiAgcHJvdmlkZXI6IGJvb2xlYW47XG4gIHJlcXVpcmVkOiBib29sZWFuO1xuICBmb3JjZVBsYWluR2V0dGVyVHlwZT86IGJvb2xlYW47IC8vIHVzZWQgZm9yIHNraXBwaW5nIGF0dHJpYnV0ZSB0eXBlIGF0dHJpYnV0ZXMgdGhhdCB1c2UgdGhlIFNraXBwZWRBdHRyaWJ1dGVUeXBlTW9kZWwgd2hpY2ggcmV0dXJucyBhbiBpbnRlcnBvbGF0aW9uIGFuZCBoYXMgbm8gc3RvcmVkIHR5cGVcbiAgaXNXcml0ZU9ubHk/OiBib29sZWFuOyAvLyBwcm92aWRlciBwcm90b2NvbCB3cml0ZS1vbmx5IGF0dHJpYnV0ZTogcHJvdmlkZXJzIG5ldmVyIHBlcnNpc3QvcmV0dXJuIGl0cyB2YWx1ZSwgc2VlIFJGQy0wNFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlQXR0cmlidXRlTmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgLy8gYHNlbGZgIGFuZCBgYnVpbGRgIGRvZXNuJ3Qgd29yayBpbiBhcyBwcm9wZXJ0eSBuYW1lIGluIFB5dGhvblxuICBpZiAobmFtZSA9PT0gXCJzZWxmXCIgfHwgbmFtZSA9PT0gXCJidWlsZFwiKSByZXR1cm4gYCR7bmFtZX1BdHRyaWJ1dGVgO1xuICAvLyBqc2lpIGNhbid0IGhhbmRsZSBgZ2V0Rm9vYCBwcm9wZXJ0aWVzLCBzaW5jZSBpdCdzIGluY29tcGF0aWJsZSB3aXRoIEphdmFcbiAgaWYgKG5hbWUubWF0Y2goL15nZXRbQS1aYS16XSsvKSkgcmV0dXJuIG5hbWUucmVwbGFjZShcImdldFwiLCBcImZldGNoXCIpO1xuICAvLyBgZXF1YWxzYCBpcyBhIHByb2hpYml0ZWQgbmFtZSBpbiBqc2lpXG4gIGlmIChuYW1lID09PSBcImVxdWFsc1wiKSByZXR1cm4gXCJlcXVhbFRvXCI7XG4gIC8vIGBub2RlYCBpcyBhbHJlYWR5IHVzZWQgYnkgdGhlIENvbnN0cnVjdHMgYmFzZSBjbGFzc1xuICBpZiAobmFtZSA9PT0gXCJub2RlXCIpIHJldHVybiBcIm5vZGVBdHRyaWJ1dGVcIjtcbiAgLy8gYFN5c3RlbWAgc2hhZG93cyBidWlsdC1pbiB0eXBlcyBpbiBDU2hhcnAgKHNlZSAjMTQyMClcbiAgaWYgKG5hbWUgPT09IFwic3lzdGVtXCIpIHJldHVybiBcInN5c3RlbUF0dHJpYnV0ZVwiO1xuICAvLyBgdGZSZXNvdXJjZVR5cGVgIGlzIGFscmVhZHkgdXNlZCBieSByZXNvdXJjZXMgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBkaWZmZXJlbnQgcmVzb3VyY2UgdHlwZXNcbiAgaWYgKG5hbWUgPT09IFwidGZSZXNvdXJjZVR5cGVcIikgcmV0dXJuIGAke25hbWV9QXR0cmlidXRlYDtcbiAgLy8gYGltcG9ydEZyb21gIGhhcyBwb3RlbnRpYWwgZm9yIGNvbW1vbiBuYW1lIGNvbGxpc2lvbiB3aXRoIHByb3ZpZGVyc1xuICBpZiAobmFtZSA9PT0gXCJpbXBvcnRGcm9tXCIpIHJldHVybiBgJHtuYW1lfUF0dHJpYnV0ZWA7XG4gIC8vIGBtb3ZlYCBjb3VsZCBoYXZlIGNvbW1vbiBuYW1lIGNvbGxpc2lvbiB3aXRoIHByb3ZpZGVyc1xuICBpZiAobmFtZSA9PT0gXCJtb3ZlVG9cIikgcmV0dXJuIGAke25hbWV9QXR0cmlidXRlYDtcbiAgLy8gYHNvZnR3YXJlYCBhdHRyaWJ1dGUgY2FuIGJlIGNvbmZ1c2VkIHdpdGggdGhlIEpTSUkgSmF2YSBydW50aW1lIHBhY2thZ2UgKHNlZSAjMzExNSlcbiAgaWYgKG5hbWUgPT09IFwic29mdHdhcmVcIikgcmV0dXJuIGAke25hbWV9QXR0cmlidXRlYDtcbiAgcmV0dXJuIG5hbWU7XG59XG5cbmV4cG9ydCBjbGFzcyBBdHRyaWJ1dGVNb2RlbCB7XG4gIHB1YmxpYyBzdG9yYWdlTmFtZTogc3RyaW5nOyAvLyBwcml2YXRlIHByb3BlcnR5XG4gIHByaXZhdGUgX25hbWU6IHN0cmluZztcbiAgcHVibGljIHR5cGU6IEF0dHJpYnV0ZVR5cGVNb2RlbDtcbiAgcHVibGljIG9wdGlvbmFsOiBib29sZWFuO1xuICBwdWJsaWMgY29tcHV0ZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyB0ZXJyYWZvcm1OYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyB0ZXJyYWZvcm1GdWxsTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIF9kZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcHVibGljIHByb3ZpZGVyOiBib29sZWFuO1xuICBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBmb3JjZVBsYWluR2V0dGVyVHlwZT86IGJvb2xlYW47XG4gIHByaXZhdGUgbG9nZ2VkU3RvcmVkQ2xhc3NVbmF2YWlsYWJsZSA9IGZhbHNlO1xuICBwdWJsaWMgaXNXcml0ZU9ubHk6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogQXR0cmlidXRlTW9kZWxPcHRpb25zKSB7XG4gICAgdGhpcy5zdG9yYWdlTmFtZSA9IG9wdGlvbnMuc3RvcmFnZU5hbWU7XG4gICAgdGhpcy5fbmFtZSA9IG9wdGlvbnMubmFtZTtcbiAgICB0aGlzLnR5cGUgPSBvcHRpb25zLnR5cGU7XG4gICAgdGhpcy5vcHRpb25hbCA9IG9wdGlvbnMub3B0aW9uYWw7XG4gICAgdGhpcy5jb21wdXRlZCA9IG9wdGlvbnMuY29tcHV0ZWQ7XG4gICAgdGhpcy50ZXJyYWZvcm1OYW1lID0gb3B0aW9ucy50ZXJyYWZvcm1OYW1lO1xuICAgIHRoaXMudGVycmFmb3JtRnVsbE5hbWUgPSBvcHRpb25zLnRlcnJhZm9ybUZ1bGxOYW1lO1xuICAgIHRoaXMuX2Rlc2NyaXB0aW9uID0gb3B0aW9ucy5kZXNjcmlwdGlvbjtcbiAgICB0aGlzLnByb3ZpZGVyID0gb3B0aW9ucy5wcm92aWRlcjtcbiAgICB0aGlzLnJlcXVpcmVkID0gb3B0aW9ucy5yZXF1aXJlZDtcbiAgICB0aGlzLmZvcmNlUGxhaW5HZXR0ZXJUeXBlID0gb3B0aW9ucy5mb3JjZVBsYWluR2V0dGVyVHlwZTtcbiAgICB0aGlzLmlzV3JpdGVPbmx5ID0gISFvcHRpb25zLmlzV3JpdGVPbmx5O1xuICB9XG5cbiAgcHVibGljIGdldCB0eXBlRGVmaW5pdGlvbigpIHtcbiAgICBjb25zdCBvcHRpb25hbCA9IHRoaXMub3B0aW9uYWwgPyBcIj9cIiA6IFwiXCI7XG4gICAgcmV0dXJuIGAke3RoaXMubmFtZX0ke29wdGlvbmFsfTogJHt0aGlzLnR5cGUuaW5wdXRUeXBlRGVmaW5pdGlvbn1gO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0Fzc2lnbmFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWlyZWQgfHwgdGhpcy5vcHRpb25hbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNPcHRpb25hbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25hbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNSZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1aXJlZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNQcm92aWRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wcm92aWRlcjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZ2V0dGVyVHlwZSgpOiBHZXR0ZXJUeXBlIHtcbiAgICBsZXQgZ2V0dGVyVHlwZTogR2V0dGVyVHlwZSA9IHsgX3R5cGU6IFwicGxhaW5cIiB9O1xuXG4gICAgaWYgKHRoaXMuZm9yY2VQbGFpbkdldHRlclR5cGUpIHtcbiAgICAgIHJldHVybiBnZXR0ZXJUeXBlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzUHJvdmlkZXIpIHtcbiAgICAgIHJldHVybiBnZXR0ZXJUeXBlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUuaGFzUmVmZXJlbmNlQ2xhc3MpIHtcbiAgICAgIGdldHRlclR5cGUgPSB7XG4gICAgICAgIF90eXBlOiBcInN0b3JlZF9jbGFzc1wiLFxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgdGhpcy5jb21wdXRlZCAmJlxuICAgICAgIXRoaXMuaXNBc3NpZ25hYmxlICYmXG4gICAgICAoIXRoaXMudHlwZS5pc1Rva2VuaXphYmxlIHx8IHRoaXMudHlwZS50eXBlTW9kZWxUeXBlID09PSBcIm1hcFwiKVxuICAgICkge1xuICAgICAgaWYgKHRoaXMudHlwZS5pc1N0b3JlZENsYXNzVW5hdmFpbGFibGUpIHtcbiAgICAgICAgLy8gRGVmZW5zaXZlIGZhbGxiYWNrOiBuZWl0aGVyIHRoZSBjb21wb3NlZCBzdG9yZWQgY2xhc3MgbmFtZSAoZS5nLlxuICAgICAgICAvLyBcIlN0cmluZ0xpc3RNYXBNYXBcIikgbm9yIGEgY29sbGFwc2VkIG5lYXJlc3QtQW55IHdyYXBwZXIgKGUuZy4gXCJBbnlNYXBNYXBcIilcbiAgICAgICAgLy8gZXhpc3RzIGluIHRoZSBjb3JlIGNka3RuIHBhY2thZ2UgZm9yIHRoaXMgdHlwZS4gVGhpcyBzaG91bGQgYmUgcmFyZSAtIHNlZVxuICAgICAgICAvLyByZXNvbHZlU3RvcmVkQ2xhc3NOYW1lIGluIHN1cHBvcnRlZC1zdG9yZWQtY2xhc3Nlcy50cyAtIHNvIGxvZyBpdCBsb3VkbHkgdG9cbiAgICAgICAgLy8gbWFrZSByZWdyZXNzaW9ucyBpbiB0aGUgY29sbGFwc2UgbG9naWMgdmlzaWJsZS5cbiAgICAgICAgaWYgKCF0aGlzLmxvZ2dlZFN0b3JlZENsYXNzVW5hdmFpbGFibGUpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlZFN0b3JlZENsYXNzVW5hdmFpbGFibGUgPSB0cnVlO1xuICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgIGBObyBzdG9yZWQgY2xhc3MgKG5vdCBldmVuIGEgY29sbGFwc2VkIG5lYXJlc3QtQW55IHdyYXBwZXIpIGlzIGF2YWlsYWJsZSBmb3IgY29tcHV0ZWQgYXR0cmlidXRlIFwiJHt0aGlzLnRlcnJhZm9ybUZ1bGxOYW1lfVwiIChjb21wb3NlZCBzdG9yZWRDbGFzc1R5cGU6IFwiJHt0aGlzLnR5cGUuc3RvcmVkQ2xhc3NUeXBlfVwiKS4gRmFsbGluZyBiYWNrIHRvIGEgcGxhaW4sIHVudHlwZWQgZ2V0dGVyLmAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZ2V0dGVyVHlwZSA9IHtcbiAgICAgICAgICBfdHlwZTogXCJzdG9yZWRfY2xhc3NcIixcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZ2V0dGVyVHlwZTtcbiAgfVxuXG4gIC8vIFJlcG9ydHMgd2hldGhlciB0aGlzIGF0dHJpYnV0ZSdzIGdldHRlciBzaXRzIGF0IGEgXCJzdG9yZWQgY2xhc3MgYm91bmRhcnlcIiB0aGF0IGlzXG4gIC8vIHdvcnRoIGRvY3VtZW50aW5nOiBcImNvbGxhcHNlZFwiIHdoZW4gYSBkZWVwZXIsIHVuc3VwcG9ydGVkIG5lc3Rpbmcgd2FzIGNvbGxhcHNlZCBpbnRvXG4gIC8vIHRoZSBuZWFyZXN0IHR5cGVkIFwiQW55XCItd3JhcHBlciAoZS5nLiBcIkFueU1hcE1hcFwiKSwgb3IgXCJmYWxsYmFja1wiIHdoZW4gbm8gc3RvcmVkIGNsYXNzXG4gIC8vIGF0IGFsbCBpcyBhdmFpbGFibGUgYW5kIGEgcGxhaW4sIHVudHlwZWQgZ2V0dGVyIGlzIGVtaXR0ZWQgaW5zdGVhZC4gTWlycm9ycyB0aGUgc2FtZVxuICAvLyBjb25kaXRpb24gdHJlZSBhcyBnZXR0ZXJUeXBlIGFib3ZlLCBzbyBpdCBvbmx5IGV2ZXIgcmVwb3J0cyBhIGJvdW5kYXJ5IGZvciBhdHRyaWJ1dGVzXG4gIC8vIHRoYXQgYWN0dWFsbHkgd2VudCB0aHJvdWdoIHRoYXQgY29tcHV0ZWQtY29sbGVjdGlvbiBicmFuY2ggLSBwbGFpbiBnZXR0ZXJzIGZvclxuICAvLyBvcmRpbmFyeSB0b2tlbml6YWJsZSB0eXBlcyAoZS5nLiBsaXN0KHN0cmluZykpIGFyZSBuZXZlciBmbGFnZ2VkLlxuICBwdWJsaWMgZ2V0IHN0b3JlZENsYXNzQm91bmRhcnlLaW5kKCk6IFwiY29sbGFwc2VkXCIgfCBcImZhbGxiYWNrXCIgfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLmZvcmNlUGxhaW5HZXR0ZXJUeXBlIHx8IHRoaXMuaXNQcm92aWRlcikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eXBlLmhhc1JlZmVyZW5jZUNsYXNzKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMuY29tcHV0ZWQgJiZcbiAgICAgICF0aGlzLmlzQXNzaWduYWJsZSAmJlxuICAgICAgKCF0aGlzLnR5cGUuaXNUb2tlbml6YWJsZSB8fCB0aGlzLnR5cGUudHlwZU1vZGVsVHlwZSA9PT0gXCJtYXBcIilcbiAgICApIHtcbiAgICAgIGlmICh0aGlzLnR5cGUuaXNTdG9yZWRDbGFzc1VuYXZhaWxhYmxlKSB7XG4gICAgICAgIHJldHVybiBcImZhbGxiYWNrXCI7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc29sdmVkU3RvcmVkQ2xhc3MgPSAodGhpcy50eXBlIGFzIENvbGxlY3Rpb25BdHRyaWJ1dGVUeXBlTW9kZWwpXG4gICAgICAgIC5yZXNvbHZlZFN0b3JlZENsYXNzO1xuICAgICAgaWYgKHJlc29sdmVkU3RvcmVkQ2xhc3M/LmNvbGxhcHNlZCkge1xuICAgICAgICByZXR1cm4gXCJjb2xsYXBzZWRcIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1N0b3JlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0Fzc2lnbmFibGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNldHRlclR5cGUoKTogU2V0dGVyVHlwZSB7XG4gICAgaWYgKCF0aGlzLmlzU3RvcmVkKSB7XG4gICAgICByZXR1cm4geyBfdHlwZTogXCJub25lXCIgfTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5nZXR0ZXJUeXBlLl90eXBlID09PSBcInN0b3JlZF9jbGFzc1wiKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBfdHlwZTogXCJzdG9yZWRfY2xhc3NcIixcbiAgICAgICAgdHlwZTogdGhpcy50eXBlLmlucHV0VHlwZURlZmluaXRpb24sXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBfdHlwZTogXCJzZXRcIixcbiAgICAgIHR5cGU6IGAke3RoaXMudHlwZS5pbnB1dFR5cGVEZWZpbml0aW9ufSR7XG4gICAgICAgIHRoaXMuaXNQcm92aWRlciA/IFwiIHwgdW5kZWZpbmVkXCIgOiBcIlwiXG4gICAgICB9YCxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEF0dHJpYnV0ZU1vZGVsLmVzY2FwZU5hbWUodGhpcy5fbmFtZSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGVzY2FwZU5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZXNjYXBlQXR0cmlidXRlTmFtZShuYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGVzY3JpcHRpb24oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZGVzY3JpcHRpb24/LnJlcGxhY2UoLycnJy9naSwgXCJgYGBcIik7XG4gIH1cblxuICBwdWJsaWMgZ2V0UmVmZXJlbmNlZFR5cGVzKGlzQ29uZmlnU3RydWN0OiBib29sZWFuKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGF0dFR5cGVTdHJ1Y3QgPSB0aGlzLnR5cGUuc3RydWN0O1xuICAgIGlmICghYXR0VHlwZVN0cnVjdCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCB0eXBlczogc3RyaW5nW10gPSBbXTtcblxuICAgIGlmICh0aGlzLmlzQXNzaWduYWJsZSkge1xuICAgICAgdHlwZXMucHVzaChhdHRUeXBlU3RydWN0Lm5hbWUpO1xuICAgICAgdHlwZXMucHVzaChhdHRUeXBlU3RydWN0Lm1hcHBlck5hbWUpO1xuICAgICAgdHlwZXMucHVzaChhdHRUeXBlU3RydWN0LmhjbE1hcHBlck5hbWUpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICFhdHRUeXBlU3RydWN0LmlzU2luZ2xlSXRlbSAmJlxuICAgICAgKGF0dFR5cGVTdHJ1Y3QubmVzdGluZ01vZGUgPT09IFwibGlzdFwiIHx8XG4gICAgICAgIGF0dFR5cGVTdHJ1Y3QubmVzdGluZ01vZGUgPT09IFwic2V0XCIpXG4gICAgKSB7XG4gICAgICB0eXBlcy5wdXNoKGF0dFR5cGVTdHJ1Y3QubGlzdE5hbWUpO1xuICAgIH0gZWxzZSBpZiAoYXR0VHlwZVN0cnVjdC5uZXN0aW5nTW9kZSA9PT0gXCJtYXBcIikge1xuICAgICAgdHlwZXMucHVzaChhdHRUeXBlU3RydWN0Lm1hcE5hbWUpO1xuICAgIH0gZWxzZSBpZiAoYXR0VHlwZVN0cnVjdC5uZXN0aW5nTW9kZSA9PT0gXCJtYXBsaXN0XCIpIHtcbiAgICAgIHR5cGVzLnB1c2goYXR0VHlwZVN0cnVjdC5tYXBMaXN0TmFtZSk7XG4gICAgfSBlbHNlIGlmIChhdHRUeXBlU3RydWN0Lm5lc3RpbmdNb2RlID09PSBcIm1hcHNldFwiKSB7XG4gICAgICB0eXBlcy5wdXNoKGF0dFR5cGVTdHJ1Y3QubWFwTGlzdE5hbWUpO1xuICAgIH0gZWxzZSBpZiAoYXR0VHlwZVN0cnVjdC5uZXN0aW5nTW9kZSA9PT0gXCJsaXN0bWFwXCIpIHtcbiAgICAgIHR5cGVzLnB1c2goYXR0VHlwZVN0cnVjdC5saXN0TWFwTmFtZSk7XG4gICAgfSBlbHNlIGlmIChhdHRUeXBlU3RydWN0Lm5lc3RpbmdNb2RlID09PSBcInNldG1hcFwiKSB7XG4gICAgICB0eXBlcy5wdXNoKGF0dFR5cGVTdHJ1Y3QubGlzdE1hcE5hbWUpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBhdHRUeXBlU3RydWN0Lm5lc3RpbmdNb2RlID09PSBcImxpc3RsaXN0XCIgfHxcbiAgICAgIGF0dFR5cGVTdHJ1Y3QubmVzdGluZ01vZGUgPT09IFwibGlzdHNldFwiIHx8XG4gICAgICBhdHRUeXBlU3RydWN0Lm5lc3RpbmdNb2RlID09PSBcInNldGxpc3RcIiB8fFxuICAgICAgYXR0VHlwZVN0cnVjdC5uZXN0aW5nTW9kZSA9PSBcInNldHNldFwiXG4gICAgKSB7XG4gICAgICB0eXBlcy5wdXNoKGF0dFR5cGVTdHJ1Y3QubGlzdExpc3ROYW1lKTtcbiAgICB9IGVsc2UgaWYgKCFpc0NvbmZpZ1N0cnVjdCkge1xuICAgICAgdHlwZXMucHVzaChhdHRUeXBlU3RydWN0Lm91dHB1dFJlZmVyZW5jZU5hbWUpO1xuICAgIH1cbiAgICAvLyBvdGhlciB0eXBlcyBvZiBuZXN0ZWQgY29sbGVjdGlvbnMgYXJlbid0IHN1cHBvcnRlZFxuXG4gICAgcmV0dXJuIHR5cGVzO1xuICB9XG59XG4iXX0=
|
|
@@ -18,7 +18,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
// SPDX-License-Identifier: MPL-2.0
|
|
19
19
|
__exportStar(require("./attribute-model"), exports);
|
|
20
20
|
__exportStar(require("./attribute-type-model"), exports);
|
|
21
|
+
__exportStar(require("./provider-function-model"), exports);
|
|
21
22
|
__exportStar(require("./resource-model"), exports);
|
|
22
23
|
__exportStar(require("./scope"), exports);
|
|
23
24
|
__exportStar(require("./struct"), exports);
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2V0L2dlbmVyYXRvci9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsb0RBQWtDO0FBQ2xDLHlEQUF1QztBQUN2Qyw0REFBMEM7QUFDMUMsbURBQWlDO0FBQ2pDLDBDQUF3QjtBQUN4QiwyQ0FBeUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuZXhwb3J0ICogZnJvbSBcIi4vYXR0cmlidXRlLW1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hdHRyaWJ1dGUtdHlwZS1tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcHJvdmlkZXItZnVuY3Rpb24tbW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Jlc291cmNlLW1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zY29wZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RydWN0XCI7XG4iXX0=
|