jsii-pacmak 1.53.0 → 1.55.1
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/lib/targets/go/documentation.d.ts +5 -4
- package/lib/targets/go/documentation.js +21 -6
- package/lib/targets/go/types/class.d.ts +2 -2
- package/lib/targets/go/types/class.js +8 -9
- package/lib/targets/go/types/enum.js +10 -3
- package/lib/targets/go/types/go-type.d.ts +2 -0
- package/lib/targets/go/types/go-type.js +3 -2
- package/lib/targets/go/types/interface.d.ts +1 -1
- package/lib/targets/go/types/interface.js +8 -9
- package/lib/targets/go/types/struct.js +2 -2
- package/lib/targets/go/types/type-member.d.ts +6 -3
- package/lib/targets/go/types/type-member.js +19 -8
- package/lib/version.d.ts +2 -2
- package/lib/version.js +4 -4
- package/package.json +16 -16
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { CodeMaker } from 'codemaker';
|
|
2
2
|
import { Docs } from 'jsii-reflect';
|
|
3
|
-
import { Rosetta } from 'jsii-rosetta';
|
|
3
|
+
import { ApiLocation, Rosetta } from 'jsii-rosetta';
|
|
4
4
|
export declare class Documentation {
|
|
5
5
|
private readonly code;
|
|
6
|
-
|
|
6
|
+
private readonly rosetta;
|
|
7
|
+
constructor(code: CodeMaker, rosetta: Rosetta);
|
|
7
8
|
/**
|
|
8
9
|
* Emits all documentation depending on what is available in the jsii model
|
|
9
10
|
*
|
|
@@ -11,11 +12,11 @@ export declare class Documentation {
|
|
|
11
12
|
* Order should be
|
|
12
13
|
* Summary + Remarks
|
|
13
14
|
* Returns
|
|
14
|
-
* Examples
|
|
15
|
+
* Examples <transliterated example code>
|
|
15
16
|
* Link
|
|
16
17
|
* Stability/Deprecation description
|
|
17
18
|
*/
|
|
18
|
-
emit(docs: Docs): void;
|
|
19
|
+
emit(docs: Docs, apiLocation: ApiLocation): void;
|
|
19
20
|
emitStability(docs: Docs): void;
|
|
20
21
|
private emitComment;
|
|
21
22
|
private shouldMentionStability;
|
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Documentation = void 0;
|
|
4
4
|
const spec_1 = require("@jsii/spec");
|
|
5
|
+
const jsii_rosetta_1 = require("jsii-rosetta");
|
|
5
6
|
class Documentation {
|
|
6
|
-
constructor(code,
|
|
7
|
+
constructor(code, rosetta) {
|
|
7
8
|
this.code = code;
|
|
9
|
+
this.rosetta = rosetta;
|
|
8
10
|
}
|
|
9
11
|
/**
|
|
10
12
|
* Emits all documentation depending on what is available in the jsii model
|
|
@@ -13,11 +15,11 @@ class Documentation {
|
|
|
13
15
|
* Order should be
|
|
14
16
|
* Summary + Remarks
|
|
15
17
|
* Returns
|
|
16
|
-
* Examples
|
|
18
|
+
* Examples <transliterated example code>
|
|
17
19
|
* Link
|
|
18
20
|
* Stability/Deprecation description
|
|
19
21
|
*/
|
|
20
|
-
emit(docs) {
|
|
22
|
+
emit(docs, apiLocation) {
|
|
21
23
|
let firstLine = true;
|
|
22
24
|
if (docs.toString() !== '') {
|
|
23
25
|
this.emitComment(docs.toString());
|
|
@@ -36,7 +38,13 @@ class Documentation {
|
|
|
36
38
|
}
|
|
37
39
|
firstLine = false;
|
|
38
40
|
// TODO: Translate code examples to Go with Rosetta (not implemented there yet)
|
|
39
|
-
this.
|
|
41
|
+
this.code.line('// Example:');
|
|
42
|
+
const goExample = this.rosetta.translateExample(apiLocation, docs.example, jsii_rosetta_1.TargetLanguage.GO, false);
|
|
43
|
+
const lines = goExample.source.split('\n');
|
|
44
|
+
for (const line of lines) {
|
|
45
|
+
// Inline code needs to be intented one level deeper than regular text.
|
|
46
|
+
this.code.line(`// ${line}`.trim());
|
|
47
|
+
}
|
|
40
48
|
this.emitComment();
|
|
41
49
|
}
|
|
42
50
|
if (docs.link !== '') {
|
|
@@ -57,7 +65,14 @@ class Documentation {
|
|
|
57
65
|
}
|
|
58
66
|
}
|
|
59
67
|
emitComment(text = '') {
|
|
60
|
-
|
|
68
|
+
const lines = text.trim().split('\n');
|
|
69
|
+
// Ensure the comment always ends with a final period, conform with GoDoc conventions.
|
|
70
|
+
const lastLine = lines[lines.length - 1];
|
|
71
|
+
if (lastLine.trim() !== '' && !/\p{Sentence_Terminal}/u.test(lastLine)) {
|
|
72
|
+
lines[lines.length - 1] = `${lastLine.trim()}.`;
|
|
73
|
+
}
|
|
74
|
+
for (const line of lines) {
|
|
75
|
+
// Final trim() here is to avoid trailing whitespace on empty comment lines.
|
|
61
76
|
this.code.line(`// ${line}`.trim());
|
|
62
77
|
}
|
|
63
78
|
}
|
|
@@ -67,4 +82,4 @@ class Documentation {
|
|
|
67
82
|
}
|
|
68
83
|
}
|
|
69
84
|
exports.Documentation = Documentation;
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRvY3VtZW50YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQXVDO0FBR3ZDLCtDQUFvRTtBQUVwRSxNQUFhLGFBQWE7SUFDeEIsWUFDbUIsSUFBZSxFQUNmLE9BQWdCO1FBRGhCLFNBQUksR0FBSixJQUFJLENBQVc7UUFDZixZQUFPLEdBQVAsT0FBTyxDQUFTO0lBQ2hDLENBQUM7SUFFSjs7Ozs7Ozs7OztPQVVHO0lBQ0ksSUFBSSxDQUFDLElBQVUsRUFBRSxXQUF3QjtRQUM5QyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDbEMsU0FBUyxHQUFHLEtBQUssQ0FBQztTQUNuQjtRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDZCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDcEI7WUFDRCxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUM5QztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDZCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDcEI7WUFDRCxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ2xCLCtFQUErRTtZQUMvRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUM5QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUM3QyxXQUFXLEVBQ1gsSUFBSSxDQUFDLE9BQU8sRUFDWiw2QkFBYyxDQUFDLEVBQUUsRUFDakIsS0FBSyxDQUNOLENBQUM7WUFDRixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtnQkFDeEIsdUVBQXVFO2dCQUN2RSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7YUFDdkM7WUFDRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7UUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTSxhQUFhLENBQUMsSUFBVTtRQUM3QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2pDLElBQUksU0FBUyxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNsRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO2FBQzNEO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDM0Q7U0FDRjtJQUNILENBQUM7SUFFTyxXQUFXLENBQUMsSUFBSSxHQUFHLEVBQUU7UUFDM0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0QyxzRkFBc0Y7UUFDdEYsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekMsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3RFLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7U0FDakQ7UUFFRCxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtZQUN4Qiw0RUFBNEU7WUFDNUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEVBQUUsU0FBUyxFQUFRO1FBQ2hELDRFQUE0RTtRQUM1RSxPQUFPLENBQ0wsU0FBUyxLQUFLLGdCQUFTLENBQUMsVUFBVSxJQUFJLFNBQVMsS0FBSyxnQkFBUyxDQUFDLFlBQVksQ0FDM0UsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTdGRCxzQ0E2RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFiaWxpdHkgfSBmcm9tICdAanNpaS9zcGVjJztcbmltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gJ2NvZGVtYWtlcic7XG5pbXBvcnQgeyBEb2NzIH0gZnJvbSAnanNpaS1yZWZsZWN0JztcbmltcG9ydCB7IEFwaUxvY2F0aW9uLCBSb3NldHRhLCBUYXJnZXRMYW5ndWFnZSB9IGZyb20gJ2pzaWktcm9zZXR0YSc7XG5cbmV4cG9ydCBjbGFzcyBEb2N1bWVudGF0aW9uIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29kZTogQ29kZU1ha2VyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm9zZXR0YTogUm9zZXR0YSxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBFbWl0cyBhbGwgZG9jdW1lbnRhdGlvbiBkZXBlbmRpbmcgb24gd2hhdCBpcyBhdmFpbGFibGUgaW4gdGhlIGpzaWkgbW9kZWxcbiAgICpcbiAgICogVXNlZCBieSBhbGwga2luZCBvZiBtZW1iZXJzICsgY2xhc3NlcywgaW50ZXJmYWNlcywgZW51bXNcbiAgICogT3JkZXIgc2hvdWxkIGJlXG4gICAqIFN1bW1hcnkgKyBSZW1hcmtzXG4gICAqIFJldHVybnNcbiAgICogRXhhbXBsZXMgPHRyYW5zbGl0ZXJhdGVkIGV4YW1wbGUgY29kZT5cbiAgICogTGlua1xuICAgKiBTdGFiaWxpdHkvRGVwcmVjYXRpb24gZGVzY3JpcHRpb25cbiAgICovXG4gIHB1YmxpYyBlbWl0KGRvY3M6IERvY3MsIGFwaUxvY2F0aW9uOiBBcGlMb2NhdGlvbik6IHZvaWQge1xuICAgIGxldCBmaXJzdExpbmUgPSB0cnVlO1xuICAgIGlmIChkb2NzLnRvU3RyaW5nKCkgIT09ICcnKSB7XG4gICAgICB0aGlzLmVtaXRDb21tZW50KGRvY3MudG9TdHJpbmcoKSk7XG4gICAgICBmaXJzdExpbmUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoZG9jcy5yZXR1cm5zICE9PSAnJykge1xuICAgICAgaWYgKCFmaXJzdExpbmUpIHtcbiAgICAgICAgdGhpcy5lbWl0Q29tbWVudCgpO1xuICAgICAgfVxuICAgICAgZmlyc3RMaW5lID0gZmFsc2U7XG4gICAgICB0aGlzLmVtaXRDb21tZW50KGBSZXR1cm5zOiAke2RvY3MucmV0dXJuc31gKTtcbiAgICB9XG5cbiAgICBpZiAoZG9jcy5leGFtcGxlICE9PSAnJykge1xuICAgICAgaWYgKCFmaXJzdExpbmUpIHtcbiAgICAgICAgdGhpcy5lbWl0Q29tbWVudCgpO1xuICAgICAgfVxuICAgICAgZmlyc3RMaW5lID0gZmFsc2U7XG4gICAgICAvLyBUT0RPOiBUcmFuc2xhdGUgY29kZSBleGFtcGxlcyB0byBHbyB3aXRoIFJvc2V0dGEgKG5vdCBpbXBsZW1lbnRlZCB0aGVyZSB5ZXQpXG4gICAgICB0aGlzLmNvZGUubGluZSgnLy8gRXhhbXBsZTonKTtcbiAgICAgIGNvbnN0IGdvRXhhbXBsZSA9IHRoaXMucm9zZXR0YS50cmFuc2xhdGVFeGFtcGxlKFxuICAgICAgICBhcGlMb2NhdGlvbixcbiAgICAgICAgZG9jcy5leGFtcGxlLFxuICAgICAgICBUYXJnZXRMYW5ndWFnZS5HTyxcbiAgICAgICAgZmFsc2UsXG4gICAgICApO1xuICAgICAgY29uc3QgbGluZXMgPSBnb0V4YW1wbGUuc291cmNlLnNwbGl0KCdcXG4nKTtcbiAgICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgICAvLyBJbmxpbmUgY29kZSBuZWVkcyB0byBiZSBpbnRlbnRlZCBvbmUgbGV2ZWwgZGVlcGVyIHRoYW4gcmVndWxhciB0ZXh0LlxuICAgICAgICB0aGlzLmNvZGUubGluZShgLy8gICAke2xpbmV9YC50cmltKCkpO1xuICAgICAgfVxuICAgICAgdGhpcy5lbWl0Q29tbWVudCgpO1xuICAgIH1cblxuICAgIGlmIChkb2NzLmxpbmsgIT09ICcnKSB7XG4gICAgICB0aGlzLmVtaXRDb21tZW50KGBTZWU6ICR7ZG9jcy5saW5rfWApO1xuICAgICAgdGhpcy5lbWl0Q29tbWVudCgpO1xuICAgIH1cblxuICAgIHRoaXMuZW1pdFN0YWJpbGl0eShkb2NzKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0U3RhYmlsaXR5KGRvY3M6IERvY3MpOiB2b2lkIHtcbiAgICBjb25zdCBzdGFiaWxpdHkgPSBkb2NzLnN0YWJpbGl0eTtcbiAgICBpZiAoc3RhYmlsaXR5ICYmIHRoaXMuc2hvdWxkTWVudGlvblN0YWJpbGl0eShkb2NzKSkge1xuICAgICAgaWYgKGRvY3MuZGVwcmVjYXRlZCkge1xuICAgICAgICB0aGlzLmVtaXRDb21tZW50KGBEZXByZWNhdGVkOiAke2RvY3MuZGVwcmVjYXRpb25SZWFzb259YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmVtaXRDb21tZW50KGAke3RoaXMuY29kZS50b1Bhc2NhbENhc2Uoc3RhYmlsaXR5KX0uYCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Q29tbWVudCh0ZXh0ID0gJycpIHtcbiAgICBjb25zdCBsaW5lcyA9IHRleHQudHJpbSgpLnNwbGl0KCdcXG4nKTtcblxuICAgIC8vIEVuc3VyZSB0aGUgY29tbWVudCBhbHdheXMgZW5kcyB3aXRoIGEgZmluYWwgcGVyaW9kLCBjb25mb3JtIHdpdGggR29Eb2MgY29udmVudGlvbnMuXG4gICAgY29uc3QgbGFzdExpbmUgPSBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXTtcbiAgICBpZiAobGFzdExpbmUudHJpbSgpICE9PSAnJyAmJiAhL1xccHtTZW50ZW5jZV9UZXJtaW5hbH0vdS50ZXN0KGxhc3RMaW5lKSkge1xuICAgICAgbGluZXNbbGluZXMubGVuZ3RoIC0gMV0gPSBgJHtsYXN0TGluZS50cmltKCl9LmA7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgICAvLyBGaW5hbCB0cmltKCkgaGVyZSBpcyB0byBhdm9pZCB0cmFpbGluZyB3aGl0ZXNwYWNlIG9uIGVtcHR5IGNvbW1lbnQgbGluZXMuXG4gICAgICB0aGlzLmNvZGUubGluZShgLy8gJHtsaW5lfWAudHJpbSgpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNob3VsZE1lbnRpb25TdGFiaWxpdHkoeyBzdGFiaWxpdHkgfTogRG9jcyk6IGJvb2xlYW4ge1xuICAgIC8vIERvbid0IHJlbmRlciBcInN0YWJsZVwiIG9yIFwiZXh0ZXJuYWxcIiwgdGhvc2UgYXJlIGJvdGggc3RhYmxlIGJ5IGltcGxpY2F0aW9uXG4gICAgcmV0dXJuIChcbiAgICAgIHN0YWJpbGl0eSA9PT0gU3RhYmlsaXR5LkRlcHJlY2F0ZWQgfHwgc3RhYmlsaXR5ID09PSBTdGFiaWxpdHkuRXhwZXJpbWVudGFsXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -46,8 +46,8 @@ export declare class ClassMethod extends GoMethod {
|
|
|
46
46
|
readonly method: Method;
|
|
47
47
|
readonly runtimeCall: MethodCall;
|
|
48
48
|
constructor(parent: GoClass, method: Method);
|
|
49
|
-
emit({ code
|
|
50
|
-
emitDecl(
|
|
49
|
+
emit({ code }: EmitContext): void;
|
|
50
|
+
emitDecl({ code, documenter }: EmitContext): void;
|
|
51
51
|
get instanceArg(): string;
|
|
52
52
|
get specialDependencies(): SpecialDependencies;
|
|
53
53
|
}
|
|
@@ -133,7 +133,7 @@ class GoClass extends go_type_1.GoType {
|
|
|
133
133
|
}
|
|
134
134
|
emitInterface(context) {
|
|
135
135
|
const { code, documenter } = context;
|
|
136
|
-
documenter.emit(this.type.docs);
|
|
136
|
+
documenter.emit(this.type.docs, this.apiLocation);
|
|
137
137
|
code.openBlock(`type ${this.name} interface`);
|
|
138
138
|
// embed extended interfaces
|
|
139
139
|
if (this.extends) {
|
|
@@ -246,7 +246,7 @@ class GoClassConstructor extends type_member_1.GoMethod {
|
|
|
246
246
|
const paramString = this.parameters.length === 0
|
|
247
247
|
? ''
|
|
248
248
|
: this.parameters.map((p) => p.toString()).join(', ');
|
|
249
|
-
documenter.emit(this.type.docs);
|
|
249
|
+
documenter.emit(this.type.docs, this.apiLocation);
|
|
250
250
|
code.openBlock(`func ${constr}(${paramString}) ${this.parent.name}`);
|
|
251
251
|
this.constructorRuntimeCall.emit(code);
|
|
252
252
|
code.closeBlock();
|
|
@@ -257,7 +257,7 @@ class GoClassConstructor extends type_member_1.GoMethod {
|
|
|
257
257
|
const params = this.parameters.map((p) => p.toString());
|
|
258
258
|
const instanceVar = runtime_1.slugify(this.parent.name[0].toLowerCase(), params);
|
|
259
259
|
params.unshift(`${instanceVar} ${this.parent.name}`);
|
|
260
|
-
documenter.emit(this.type.docs);
|
|
260
|
+
documenter.emit(this.type.docs, this.apiLocation);
|
|
261
261
|
code.openBlock(`func ${constr}(${params.join(', ')})`);
|
|
262
262
|
this.constructorRuntimeCall.emitOverride(code, instanceVar);
|
|
263
263
|
code.closeBlock();
|
|
@@ -273,21 +273,20 @@ class ClassMethod extends type_member_1.GoMethod {
|
|
|
273
273
|
this.runtimeCall = new runtime_1.MethodCall(this);
|
|
274
274
|
}
|
|
275
275
|
/* emit generates method implementation on the class */
|
|
276
|
-
emit({ code
|
|
276
|
+
emit({ code }) {
|
|
277
277
|
var _a;
|
|
278
278
|
const name = this.name;
|
|
279
279
|
const returnTypeString = ((_a = this.reference) === null || _a === void 0 ? void 0 : _a.void) ? '' : ` ${this.returnType}`;
|
|
280
|
-
documenter.emit(this.method.docs);
|
|
281
280
|
code.openBlock(`func (${this.instanceArg} *${this.parent.proxyName}) ${name}(${this.paramString()})${returnTypeString}`);
|
|
282
281
|
this.runtimeCall.emit(code);
|
|
283
282
|
code.closeBlock();
|
|
284
283
|
code.line();
|
|
285
284
|
}
|
|
286
285
|
/* emitDecl generates method declaration in the class interface */
|
|
287
|
-
emitDecl(
|
|
286
|
+
emitDecl({ code, documenter }) {
|
|
288
287
|
var _a;
|
|
289
|
-
const { code } = context;
|
|
290
288
|
const returnTypeString = ((_a = this.reference) === null || _a === void 0 ? void 0 : _a.void) ? '' : ` ${this.returnType}`;
|
|
289
|
+
documenter.emit(this.method.docs, this.apiLocation);
|
|
291
290
|
code.line(`${this.name}(${this.paramString()})${returnTypeString}`);
|
|
292
291
|
}
|
|
293
292
|
get instanceArg() {
|
|
@@ -315,7 +314,7 @@ class StaticMethod extends ClassMethod {
|
|
|
315
314
|
var _a;
|
|
316
315
|
const name = `${this.parent.name}_${this.name}`;
|
|
317
316
|
const returnTypeString = ((_a = this.reference) === null || _a === void 0 ? void 0 : _a.void) ? '' : ` ${this.returnType}`;
|
|
318
|
-
documenter.emit(this.method.docs);
|
|
317
|
+
documenter.emit(this.method.docs, this.apiLocation);
|
|
319
318
|
code.openBlock(`func ${name}(${this.paramString()})${returnTypeString}`);
|
|
320
319
|
this.runtimeCall.emit(code);
|
|
321
320
|
code.closeBlock();
|
|
@@ -326,4 +325,4 @@ exports.StaticMethod = StaticMethod;
|
|
|
326
325
|
function isGoMethod(m) {
|
|
327
326
|
return m instanceof type_member_1.GoMethod;
|
|
328
327
|
}
|
|
329
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxzREFBd0Q7QUFDeEQsOENBQThDO0FBSTlDLHdDQU9vQjtBQUNwQixrQ0FBc0U7QUFDdEUsdUNBQW1DO0FBQ25DLDJEQUFnRDtBQUVoRCwrQ0FBbUU7QUFFbkU7O0dBRUc7QUFDSCxNQUFhLE9BQVEsU0FBUSxnQkFBaUI7SUFXNUMsWUFBbUIsR0FBWSxFQUFFLElBQWU7UUFDOUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVqQixNQUFNLE9BQU8sR0FBRyxJQUFJLEtBQUssRUFBZSxDQUFDO1FBQ3pDLE1BQU0sYUFBYSxHQUFHLElBQUksS0FBSyxFQUFnQixDQUFDO1FBQ2hELEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7Z0JBQ2pCLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDcEQ7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQzthQUM3QztTQUNGO1FBQ0QsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU1RCxNQUFNLFVBQVUsR0FBRyxJQUFJLEtBQUssRUFBYyxDQUFDO1FBQzNDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxLQUFLLEVBQWMsQ0FBQztRQUNqRCxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxhQUFhLEVB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V0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU1QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBcEJELG9DQW9CQztBQUVELFNBQVMsVUFBVSxDQUFDLENBQWU7SUFDakMsT0FBTyxDQUFDLFlBQVksc0JBQVEsQ0FBQztBQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29kZU1ha2VyIH0gZnJvbSAnY29kZW1ha2VyJztcbmltcG9ydCB7IE1ldGhvZCwgQ2xhc3NUeXBlLCBJbml0aWFsaXplciB9IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5cbmltcG9ydCB7IGpzaWlUb1Bhc2NhbENhc2UgfSBmcm9tICcuLi8uLi8uLi9uYW1pbmctdXRpbCc7XG5pbXBvcnQgKiBhcyBjb21wYXJhdG9ycyBmcm9tICcuLi9jb21wYXJhdG9ycyc7XG5pbXBvcnQgeyBTcGVjaWFsRGVwZW5kZW5jaWVzIH0gZnJvbSAnLi4vZGVwZW5kZW5jaWVzJztcbmltcG9ydCB7IEVtaXRDb250ZXh0IH0gZnJvbSAnLi4vZW1pdC1jb250ZXh0JztcbmltcG9ydCB7IFBhY2thZ2UgfSBmcm9tICcuLi9wYWNrYWdlJztcbmltcG9ydCB7XG4gIENsYXNzQ29uc3RydWN0b3IsXG4gIEpTSUlfUlRfQUxJQVMsXG4gIE1ldGhvZENhbGwsXG4gIHNsdWdpZnksXG4gIFN0YXRpY0dldFByb3BlcnR5LFxuICBTdGF0aWNTZXRQcm9wZXJ0eSxcbn0gZnJvbSAnLi4vcnVudGltZSc7XG5pbXBvcnQgeyBnZXRNZW1iZXJEZXBlbmRlbmNpZXMsIGdldFBhcmFtRGVwZW5kZW5jaWVzIH0gZnJvbSAnLi4vdXRpbCc7XG5pbXBvcnQgeyBHb1R5cGUgfSBmcm9tICcuL2dvLXR5cGUnO1xuaW1wb3J0IHsgR29UeXBlUmVmIH0gZnJvbSAnLi9nby10eXBlLXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBHb0ludGVyZmFjZSB9IGZyb20gJy4vaW50ZXJmYWNlJztcbmltcG9ydCB7IEdvTWV0aG9kLCBHb1Byb3BlcnR5LCBHb1R5cGVNZW1iZXIgfSBmcm9tICcuL3R5cGUtbWVtYmVyJztcblxuLypcbiAqIEdvQ2xhc3Mgd3JhcHMgYSBUeXBlc2NyaXB0IGNsYXNzIGFzIGEgR28gY3VzdG9tIHN0cnVjdCB0eXBlXG4gKi9cbmV4cG9ydCBjbGFzcyBHb0NsYXNzIGV4dGVuZHMgR29UeXBlPENsYXNzVHlwZT4ge1xuICBwdWJsaWMgcmVhZG9ubHkgbWV0aG9kczogQ2xhc3NNZXRob2RbXTtcbiAgcHVibGljIHJlYWRvbmx5IHN0YXRpY01ldGhvZHM6IFN0YXRpY01ldGhvZFtdO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvcGVydGllczogR29Qcm9wZXJ0eVtdO1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhdGljUHJvcGVydGllczogR29Qcm9wZXJ0eVtdO1xuXG4gIHByaXZhdGUgX2V4dGVuZHM/OiBHb0NsYXNzIHwgbnVsbDtcbiAgcHJpdmF0ZSBfaW1wbGVtZW50cz86IHJlYWRvbmx5IEdvSW50ZXJmYWNlW107XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpbml0aWFsaXplcj86IEdvQ2xhc3NDb25zdHJ1Y3RvcjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocGtnOiBQYWNrYWdlLCB0eXBlOiBDbGFzc1R5cGUpIHtcbiAgICBzdXBlcihwa2csIHR5cGUpO1xuXG4gICAgY29uc3QgbWV0aG9kcyA9IG5ldyBBcnJheTxDbGFzc01ldGhvZD4oKTtcbiAgICBjb25zdCBzdGF0aWNNZXRob2RzID0gbmV3IEFycmF5PFN0YXRpY01ldGhvZD4oKTtcbiAgICBmb3IgKGNvbnN0IG1ldGhvZCBvZiB0eXBlLmFsbE1ldGhvZHMpIHtcbiAgICAgIGlmIChtZXRob2Quc3RhdGljKSB7XG4gICAgICAgIHN0YXRpY01ldGhvZHMucHVzaChuZXcgU3RhdGljTWV0aG9kKHRoaXMsIG1ldGhvZCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWV0aG9kcy5wdXNoKG5ldyBDbGFzc01ldGhvZCh0aGlzLCBtZXRob2QpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gRW5zdXJlIGNvbnNpc3RlbnQgb3JkZXIsIG1vc3RseSBjb3NtZXRpYy5cbiAgICB0aGlzLm1ldGhvZHMgPSBtZXRob2RzLnNvcnQoY29tcGFyYXRvcnMuYnlOYW1lKTtcbiAgICB0aGlzLnN0YXRpY01ldGhvZHMgPSBzdGF0aWNNZXRob2RzLnNvcnQoY29tcGFyYXRvcnMuYnlOYW1lKTtcblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSBuZXcgQXJyYXk8R29Qcm9wZXJ0eT4oKTtcbiAgICBjb25zdCBzdGF0aWNQcm9wZXJ0aWVzID0gbmV3IEFycmF5PEdvUHJvcGVydHk+KCk7XG4gICAgZm9yIChjb25zdCBwcm9wIG9mIHR5cGUuYWxsUHJvcGVydGllcykge1xuICAgICAgaWYgKHByb3Auc3RhdGljKSB7XG4gICAgICAgIHN0YXRpY1Byb3BlcnRpZXMucHVzaChuZXcgR29Qcm9wZXJ0eSh0aGlzLCBwcm9wKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9wZXJ0aWVzLnB1c2gobmV3IEdvUHJvcGVydHkodGhpcywgcHJvcCkpO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBFbnN1cmUgY29uc2lzdGVudCBvcmRlciwgbW9zdGx5IGNvc21ldGljLlxuICAgIHRoaXMucHJvcGVydGllcyA9IHByb3BlcnRpZXMuc29ydChjb21wYXJhdG9ycy5ieU5hbWUpO1xuICAgIHRoaXMuc3RhdGljUHJvcGVydGllcyA9IHN0YXRpY1Byb3BlcnRpZXMuc29ydChjb21wYXJhdG9ycy5ieU5hbWUpO1xuXG4gICAgaWYgKHR5cGUuaW5pdGlhbGl6ZXIpIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZXIgPSBuZXcgR29DbGFzc0NvbnN0cnVjdG9yKHRoaXMsIHR5cGUuaW5pdGlhbGl6ZXIpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZXh0ZW5kcygpOiBHb0NsYXNzIHwgdW5kZWZpbmVkIHtcbiAgICAvLyBDYW5ub3QgY29tcHV0ZSBpbiBjb25zdHJ1Y3RvciwgYXMgZGVwZW5kZW5jaWVzIG1heSBub3QgaGF2ZSBmaW5pc2hlZFxuICAgIC8vIHJlc29sdmluZyBqdXN0IHlldC5cbiAgICBpZiAodGhpcy5fZXh0ZW5kcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9leHRlbmRzID0gdGhpcy50eXBlLmJhc2VcbiAgICAgICAgPyAodGhpcy5wa2cucm9vdC5maW5kVHlwZSh0aGlzLnR5cGUuYmFzZS5mcW4pIGFzIEdvQ2xhc3MpXG4gICAgICAgIDogbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2V4dGVuZHMgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IHRoaXMuX2V4dGVuZHM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGltcGxlbWVudHMoKTogcmVhZG9ubHkgR29JbnRlcmZhY2VbXSB7XG4gICAgLy8gQ2Fubm90IGNvbXB1dGUgaW4gY29uc3RydWN0b3IsIGFzIGRlcGVuZGVuY2llcyBtYXkgbm90IGhhdmUgZmluaXNoZWRcbiAgICAvLyByZXNvbHZpbmcganVzdCB5ZXQuXG4gICAgaWYgKHRoaXMuX2ltcGxlbWVudHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5faW1wbGVtZW50cyA9IHRoaXMudHlwZS5pbnRlcmZhY2VzXG4gICAgICAgIC5tYXAoKGlmYWNlKSA9PiB0aGlzLnBrZy5yb290LmZpbmRUeXBlKGlmYWNlLmZxbikgYXMgR29JbnRlcmZhY2UpXG4gICAgICAgIC8vIEVuc3VyZSBjb25zaXN0ZW50IG9yZGVyLCBtb3N0bHkgY29zbWV0aWMuXG4gICAgICAgIC5zb3J0KChsLCByKSA9PiBsLmZxbi5sb2NhbGVDb21wYXJlKHIuZnFuKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9pbXBsZW1lbnRzO1xuICB9XG5cbiAgcHVibGljIGdldCBiYXNlVHlwZXMoKTogUmVhZG9ubHlBcnJheTxHb0NsYXNzIHwgR29JbnRlcmZhY2U+IHtcbiAgICByZXR1cm4gWy4uLih0aGlzLmV4dGVuZHMgPyBbdGhpcy5leHRlbmRzXSA6IFtdKSwgLi4udGhpcy5pbXBsZW1lbnRzXTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0KGNvbnRleHQ6IEVtaXRDb250ZXh0KTogdm9pZCB7XG4gICAgdGhpcy5lbWl0SW50ZXJmYWNlKGNvbnRleHQpO1xuICAgIHRoaXMuZW1pdFN0cnVjdChjb250ZXh0KTtcbiAgICB0aGlzLmVtaXRHZXR0ZXJzKGNvbnRleHQpO1xuXG4gICAgaWYgKHRoaXMuaW5pdGlhbGl6ZXIpIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZXIuZW1pdChjb250ZXh0KTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRTZXR0ZXJzKGNvbnRleHQpO1xuXG4gICAgZm9yIChjb25zdCBtZXRob2Qgb2YgdGhpcy5zdGF0aWNNZXRob2RzKSB7XG4gICAgICBtZXRob2QuZW1pdChjb250ZXh0KTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgdGhpcy5zdGF0aWNQcm9wZXJ0aWVzKSB7XG4gICAgICB0aGlzLmVtaXRTdGF0aWNQcm9wZXJ0eShjb250ZXh0LCBwcm9wKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IG1ldGhvZCBvZiB0aGlzLm1ldGhvZHMpIHtcbiAgICAgIG1ldGhvZC5lbWl0KGNvbnRleHQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbWl0UmVnaXN0cmF0aW9uKGNvZGU6IENvZGVNYWtlcik6IHZvaWQge1xuICAgIGNvZGUub3BlbihgJHtKU0lJX1JUX0FMSUFTfS5SZWdpc3RlckNsYXNzKGApO1xuICAgIGNvZGUubGluZShgXCIke3RoaXMuZnFufVwiLGApO1xuICAgIGNvZGUubGluZShgcmVmbGVjdC5UeXBlT2YoKCoke3RoaXMubmFtZX0pKG5pbCkpLkVsZW0oKSxgKTtcblxuICAgIGNvbnN0IGFsbE1lbWJlcnMgPSBbXG4gICAgICAuLi50aGlzLnR5cGUuYWxsTWV0aG9kc1xuICAgICAgICAuZmlsdGVyKChtZXRob2QpID0+ICFtZXRob2Quc3RhdGljKVxuICAgICAgICAubWFwKChtZXRob2QpID0+IG5ldyBDbGFzc01ldGhvZCh0aGlzLCBtZXRob2QpKSxcbiAgICAgIC4uLnRoaXMudHlwZS5hbGxQcm9wZXJ0aWVzXG4gICAgICAgIC5maWx0ZXIoKHByb3BlcnR5KSA9PiAhcHJvcGVydHkuc3RhdGljKVxuICAgICAgICAubWFwKChwcm9wZXJ0eSkgPT4gbmV3IEdvUHJvcGVydHkodGhpcywgcHJvcGVydHkpKSxcbiAgICBdLnNvcnQoY29tcGFyYXRvcnMuYnlOYW1lKTtcbiAgICBpZiAoYWxsTWVtYmVycy5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvZGUubGluZSgnbmlsLCAvLyBubyBtZW1iZXJzJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvZGUub3BlbihgW10ke0pTSUlfUlRfQUxJQVN9Lk1lbWJlcntgKTtcbiAgICAgIGZvciAoY29uc3QgbWVtYmVyIG9mIGFsbE1lbWJlcnMpIHtcbiAgICAgICAgY29kZS5saW5lKGAke21lbWJlci5vdmVycmlkZX0sYCk7XG4gICAgICB9XG4gICAgICBjb2RlLmNsb3NlKCd9LCcpO1xuICAgIH1cblxuICAgIHRoaXMuZW1pdFByb3h5TWFrZXJGdW5jdGlvbihjb2RlLCB0aGlzLmJhc2VUeXBlcyk7XG4gICAgY29kZS5jbG9zZSgnKScpO1xuICB9XG5cbiAgcHVibGljIGdldCBtZW1iZXJzKCk6IEdvVHlwZU1lbWJlcltdIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uKHRoaXMuaW5pdGlhbGl6ZXIgPyBbdGhpcy5pbml0aWFsaXplcl0gOiBbXSksXG4gICAgICAuLi50aGlzLm1ldGhvZHMsXG4gICAgICAuLi50aGlzLnByb3BlcnRpZXMsXG4gICAgICAuLi50aGlzLnN0YXRpY01ldGhvZHMsXG4gICAgICAuLi50aGlzLnN0YXRpY1Byb3BlcnRpZXMsXG4gICAgXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3BlY2lhbERlcGVuZGVuY2llcygpOiBTcGVjaWFsRGVwZW5kZW5jaWVzIHtcbiAgICByZXR1cm4ge1xuICAgICAgcnVudGltZTogdGhpcy5pbml0aWFsaXplciAhPSBudWxsIHx8IHRoaXMubWVtYmVycy5sZW5ndGggPiAwLFxuICAgICAgaW5pdDpcbiAgICAgICAgdGhpcy5pbml0aWFsaXplciAhPSBudWxsIHx8XG4gICAgICAgIHRoaXMubWVtYmVycy5zb21lKChtKSA9PiBtLnNwZWNpYWxEZXBlbmRlbmNpZXMuaW5pdCksXG4gICAgICBpbnRlcm5hbDogdGhpcy5iYXNlVHlwZXMuc29tZSgoYmFzZSkgPT4gdGhpcy5wa2cuaXNFeHRlcm5hbFR5cGUoYmFzZSkpLFxuICAgICAgdGltZTpcbiAgICAgICAgISF0aGlzLmluaXRpYWxpemVyPy5zcGVjaWFsRGVwZW5kZW5jaWVzLnRpbWUgfHxcbiAgICAgICAgdGhpcy5tZW1iZXJzLnNvbWUoKG0pID0+IG0uc3BlY2lhbERlcGVuZGVuY2llcy50aW1lKSxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGVtaXRJbnRlcmZhY2UoY29udGV4dDogRW1pdENvbnRleHQpOiB2b2lkIHtcbiAgICBjb25zdCB7IGNvZGUsIGRvY3VtZW50ZXIgfSA9IGNvbnRleHQ7XG4gICAgZG9jdW1lbnRlci5lbWl0KHRoaXMudHlwZS5kb2NzKTtcbiAgICBjb2RlLm9wZW5CbG9jayhgdHlwZSAke3RoaXMubmFtZX0gaW50ZXJmYWNlYCk7XG5cbiAgICAvLyBlbWJlZCBleHRlbmRlZCBpbnRlcmZhY2VzXG4gICAgaWYgKHRoaXMuZXh0ZW5kcykge1xuICAgICAgY29kZS5saW5lKFxuICAgICAgICBuZXcgR29UeXBlUmVmKHRoaXMucGtnLnJvb3QsIHRoaXMuZXh0ZW5kcy50eXBlLnJlZmVyZW5jZSkuc2NvcGVkTmFtZShcbiAgICAgICAgICB0aGlzLnBrZyxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgaWZhY2Ugb2YgdGhpcy5pbXBsZW1lbnRzKSB7XG4gICAgICBjb2RlLmxpbmUoXG4gICAgICAgIG5ldyBHb1R5cGVSZWYodGhpcy5wa2cucm9vdCwgaWZhY2UudHlwZS5yZWZlcmVuY2UpLnNjb3BlZE5hbWUodGhpcy5wa2cpLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHRoaXMucHJvcGVydGllcykge1xuICAgICAgcHJvcGVydHkuZW1pdEdldHRlckRlY2woY29udGV4dCk7XG4gICAgICBwcm9wZXJ0eS5lbWl0U2V0dGVyRGVjbChjb250ZXh0KTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IG1ldGhvZCBvZiB0aGlzLm1ldGhvZHMpIHtcbiAgICAgIG1ldGhvZC5lbWl0RGVjbChjb250ZXh0KTtcbiAgICB9XG5cbiAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICBjb2RlLmxpbmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEdldHRlcnMoY29udGV4dDogRW1pdENvbnRleHQpIHtcbiAgICBpZiAodGhpcy5wcm9wZXJ0aWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHRoaXMucHJvcGVydGllcykge1xuICAgICAgcHJvcGVydHkuZW1pdEdldHRlclByb3h5KGNvbnRleHQpO1xuICAgIH1cbiAgICBjb250ZXh0LmNvZGUubGluZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0U3RydWN0KHsgY29kZSB9OiBFbWl0Q29udGV4dCk6IHZvaWQge1xuICAgIGNvZGUubGluZShgLy8gVGhlIGpzaWkgcHJveHkgc3RydWN0IGZvciAke3RoaXMubmFtZX1gKTtcbiAgICBjb2RlLm9wZW5CbG9jayhgdHlwZSAke3RoaXMucHJveHlOYW1lfSBzdHJ1Y3RgKTtcblxuICAgIC8vIE1ha2Ugc3VyZSB0aGlzIGlzIG5vdCAwLXdpZHRoXG4gICAgaWYgKHRoaXMuYmFzZVR5cGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29kZS5saW5lKCdfIGJ5dGUgLy8gcGFkZGluZycpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGNvbnN0IGJhc2Ugb2YgdGhpcy5iYXNlVHlwZXMpIHtcbiAgICAgICAgY29kZS5saW5lKHRoaXMucGtnLnJlc29sdmVFbWJlZGRlZFR5cGUoYmFzZSkuZW1iZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIGNvZGUubGluZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0U3RhdGljUHJvcGVydHkoeyBjb2RlIH06IEVtaXRDb250ZXh0LCBwcm9wOiBHb1Byb3BlcnR5KTogdm9pZCB7XG4gICAgY29uc3QgZ2V0Q2FsbGVyID0gbmV3IFN0YXRpY0dldFByb3BlcnR5KHByb3ApO1xuXG4gICAgY29uc3QgcHJvcGVydHlOYW1lID0ganNpaVRvUGFzY2FsQ2FzZShwcm9wLm5hbWUpO1xuICAgIGNvbnN0IG5hbWUgPSBgJHt0aGlzLm5hbWV9XyR7cHJvcGVydHlOYW1lfWA7XG5cbiAgICBjb2RlLm9wZW5CbG9jayhgZnVuYyAke25hbWV9KCkgJHtwcm9wLnJldHVyblR5cGV9YCk7XG4gICAgZ2V0Q2FsbGVyLmVtaXQoY29kZSk7XG5cbiAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICBjb2RlLmxpbmUoKTtcblxuICAgIGlmICghcHJvcC5pbW11dGFibGUpIHtcbiAgICAgIGNvbnN0IHNldENhbGxlciA9IG5ldyBTdGF0aWNTZXRQcm9wZXJ0eShwcm9wKTtcbiAgICAgIGNvbnN0IG5hbWUgPSBgJHt0aGlzLm5hbWV9X1NldCR7cHJvcGVydHlOYW1lfWA7XG4gICAgICBjb2RlLm9wZW5CbG9jayhgZnVuYyAke25hbWV9KHZhbCAke3Byb3AucmV0dXJuVHlwZX0pYCk7XG4gICAgICBzZXRDYWxsZXIuZW1pdChjb2RlKTtcblxuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgICBjb2RlLmxpbmUoKTtcbiAgICB9XG4gIH1cblxuICAvLyBlbWl0cyB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIHNldHRlcnMgZm9yIHRoZSBzdHJ1Y3RcbiAgcHJpdmF0ZSBlbWl0U2V0dGVycyhjb250ZXh0OiBFbWl0Q29udGV4dCk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgdGhpcy5wcm9wZXJ0aWVzKSB7XG4gICAgICBwcm9wZXJ0eS5lbWl0U2V0dGVyUHJveHkoY29udGV4dCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBkZXBlbmRlbmNpZXMoKTogUGFja2FnZVtdIHtcbiAgICAvLyBuZWVkIHRvIGFkZCBkZXBlbmRlbmNpZXMgb2YgbWV0aG9kIGFyZ3VtZW50cyBhbmQgY29uc3RydWN0b3IgYXJndW1lbnRzXG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLnRoaXMuYmFzZVR5cGVzLm1hcCgocmVmKSA9PiByZWYucGtnKSxcbiAgICAgIC4uLmdldE1lbWJlckRlcGVuZGVuY2llcyh0aGlzLm1lbWJlcnMpLFxuICAgICAgLi4uZ2V0UGFyYW1EZXBlbmRlbmNpZXModGhpcy5tZW1iZXJzLmZpbHRlcihpc0dvTWV0aG9kKSksXG4gICAgXTtcbiAgfVxuXG4gIC8qXG4gICAqIEdldCBmcW5zIG9mIGludGVyZmFjZXMgdGhlIGNsYXNzIGltcGxlbWVudHNcbiAgICovXG4gIHB1YmxpYyBnZXQgaW50ZXJmYWNlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZS5pbnRlcmZhY2VzLm1hcCgoaUZhY2UpID0+IGlGYWNlLmZxbik7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdvQ2xhc3NDb25zdHJ1Y3RvciBleHRlbmRzIEdvTWV0aG9kIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25zdHJ1Y3RvclJ1bnRpbWVDYWxsOiBDbGFzc0NvbnN0cnVjdG9yO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGFyZW50OiBHb0NsYXNzLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHlwZTogSW5pdGlhbGl6ZXIsXG4gICkge1xuICAgIHN1cGVyKHBhcmVudCwgdHlwZSk7XG4gICAgdGhpcy5jb25zdHJ1Y3RvclJ1bnRpbWVDYWxsID0gbmV3IENsYXNzQ29uc3RydWN0b3IodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNwZWNpYWxEZXBlbmRlbmNpZXMoKTogU3BlY2lhbERlcGVuZGVuY2llcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJ1bnRpbWU6IHRydWUsXG4gICAgICBpbml0OiB0cnVlLFxuICAgICAgaW50ZXJuYWw6IGZhbHNlLFxuICAgICAgdGltZTogdGhpcy5wYXJhbWV0ZXJzLnNvbWUoKHApID0+IHAucmVmZXJlbmNlLnNwZWNpYWxEZXBlbmRlbmNpZXMudGltZSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0KGNvbnRleHQ6IEVtaXRDb250ZXh0KSB7XG4gICAgLy8gQWJzdHJhY3QgY2xhc3NlcyBjYW5ub3QgYmUgZGlyZWN0bHkgY3JlYXRlZFxuICAgIGlmICghdGhpcy5wYXJlbnQudHlwZS5hYnN0cmFjdCkge1xuICAgICAgdGhpcy5lbWl0TmV3KGNvbnRleHQpO1xuICAgIH1cbiAgICAvLyBTdWJjbGFzc2FibGUgY2xhc3NlcyAodGhlIGRlZmF1bHQpIGdldCBhbiBfT3ZlcnJpZGVzIGNvbnN0cnVjdG9yXG4gICAgaWYgKHRoaXMucGFyZW50LnR5cGUuc3BlYy5kb2NzPy5zdWJjbGFzc2FibGUgPz8gdHJ1ZSkge1xuICAgICAgdGhpcy5lbWl0T3ZlcnJpZGUoY29udGV4dCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbWl0TmV3KHsgY29kZSwgZG9jdW1lbnRlciB9OiBFbWl0Q29udGV4dCkge1xuICAgIGNvbnN0IGNvbnN0ciA9IGBOZXcke3RoaXMucGFyZW50Lm5hbWV9YDtcbiAgICBjb25zdCBwYXJhbVN0cmluZyA9XG4gICAgICB0aGlzLnBhcmFtZXRlcnMubGVuZ3RoID09PSAwXG4gICAgICAgID8gJydcbiAgICAgICAgOiB0aGlzLnBhcmFtZXRlcnMubWFwKChwKSA9PiBwLnRvU3RyaW5nKCkpLmpvaW4oJywgJyk7XG5cbiAgICBkb2N1bWVudGVyLmVtaXQodGhpcy50eXBlLmRvY3MpO1xuICAgIGNvZGUub3BlbkJsb2NrKGBmdW5jICR7Y29uc3RyfSgke3BhcmFtU3RyaW5nfSkgJHt0aGlzLnBhcmVudC5uYW1lfWApO1xuICAgIHRoaXMuY29uc3RydWN0b3JSdW50aW1lQ2FsbC5lbWl0KGNvZGUpO1xuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuXG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRPdmVycmlkZSh7IGNvZGUsIGRvY3VtZW50ZXIgfTogRW1pdENvbnRleHQpIHtcbiAgICBjb25zdCBjb25zdHIgPSBgTmV3JHt0aGlzLnBhcmVudC5uYW1lfV9PdmVycmlkZWA7XG4gICAgY29uc3QgcGFyYW1zID0gdGhpcy5wYXJhbWV0ZXJzLm1hcCgocCkgPT4gcC50b1N0cmluZygpKTtcblxuICAgIGNvbnN0IGluc3RhbmNlVmFyID0gc2x1Z2lmeSh0aGlzLnBhcmVudC5uYW1lWzBdLnRvTG93ZXJDYXNlKCksIHBhcmFtcyk7XG4gICAgcGFyYW1zLnVuc2hpZnQoYCR7aW5zdGFuY2VWYXJ9ICR7dGhpcy5wYXJlbnQubmFtZX1gKTtcblxuICAgIGRvY3VtZW50ZXIuZW1pdCh0aGlzLnR5cGUuZG9jcyk7XG4gICAgY29kZS5vcGVuQmxvY2soYGZ1bmMgJHtjb25zdHJ9KCR7cGFyYW1zLmpvaW4oJywgJyl9KWApO1xuICAgIHRoaXMuY29uc3RydWN0b3JSdW50aW1lQ2FsbC5lbWl0T3ZlcnJpZGUoY29kZSwgaW5zdGFuY2VWYXIpO1xuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIGNvZGUubGluZSgpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDbGFzc01ldGhvZCBleHRlbmRzIEdvTWV0aG9kIHtcbiAgcHVibGljIHJlYWRvbmx5IHJ1bnRpbWVDYWxsOiBNZXRob2RDYWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGFyZW50OiBHb0NsYXNzLFxuICAgIHB1YmxpYyByZWFkb25seSBtZXRob2Q6IE1ldGhvZCxcbiAgKSB7XG4gICAgc3VwZXIocGFyZW50LCBtZXRob2QpO1xuICAgIHRoaXMucnVudGltZUNhbGwgPSBuZXcgTWV0aG9kQ2FsbCh0aGlzKTtcbiAgfVxuXG4gIC8qIGVtaXQgZ2VuZXJhdGVzIG1ldGhvZCBpbXBsZW1lbnRhdGlvbiBvbiB0aGUgY2xhc3MgKi9cbiAgcHVibGljIGVtaXQoeyBjb2RlLCBkb2N1bWVudGVyIH06IEVtaXRDb250ZXh0KSB7XG4gICAgY29uc3QgbmFtZSA9IHRoaXMubmFtZTtcbiAgICBjb25zdCByZXR1cm5UeXBlU3RyaW5nID0gdGhpcy5yZWZlcmVuY2U/LnZvaWQgPyAnJyA6IGAgJHt0aGlzLnJldHVyblR5cGV9YDtcblxuICAgIGRvY3VtZW50ZXIuZW1pdCh0aGlzLm1ldGhvZC5kb2NzKTtcbiAgICBjb2RlLm9wZW5CbG9jayhcbiAgICAgIGBmdW5jICgke3RoaXMuaW5zdGFuY2VBcmd9ICoke1xuICAgICAgICB0aGlzLnBhcmVudC5wcm94eU5hbWVcbiAgICAgIH0pICR7bmFtZX0oJHt0aGlzLnBhcmFtU3RyaW5nKCl9KSR7cmV0dXJuVHlwZVN0cmluZ31gLFxuICAgICk7XG5cbiAgICB0aGlzLnJ1bnRpbWVDYWxsLmVtaXQoY29kZSk7XG5cbiAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICBjb2RlLmxpbmUoKTtcbiAgfVxuXG4gIC8qIGVtaXREZWNsIGdlbmVyYXRlcyBtZXRob2QgZGVjbGFyYXRpb24gaW4gdGhlIGNsYXNzIGludGVyZmFjZSAqL1xuICBwdWJsaWMgZW1pdERlY2woY29udGV4dDogRW1pdENvbnRleHQpIHtcbiAgICBjb25zdCB7IGNvZGUgfSA9IGNvbnRleHQ7XG4gICAgY29uc3QgcmV0dXJuVHlwZVN0cmluZyA9IHRoaXMucmVmZXJlbmNlPy52b2lkID8gJycgOiBgICR7dGhpcy5yZXR1cm5UeXBlfWA7XG4gICAgY29kZS5saW5lKGAke3RoaXMubmFtZX0oJHt0aGlzLnBhcmFtU3RyaW5nKCl9KSR7cmV0dXJuVHlwZVN0cmluZ31gKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5zdGFuY2VBcmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQubmFtZS5zdWJzdHJpbmcoMCwgMSkudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3BlY2lhbERlcGVuZGVuY2llcygpOiBTcGVjaWFsRGVwZW5kZW5jaWVzIHtcbiAgICByZXR1cm4ge1xuICAgICAgcnVudGltZTogdHJ1ZSxcbiAgICAgIGluaXQ6IHRoaXMubWV0aG9kLnN0YXRpYyxcbiAgICAgIGludGVybmFsOiBmYWxzZSxcbiAgICAgIHRpbWU6XG4gICAgICAgICEhdGhpcy5wYXJhbWV0ZXJzLnNvbWUoKHApID0+IHAucmVmZXJlbmNlLnNwZWNpYWxEZXBlbmRlbmNpZXMudGltZSkgfHxcbiAgICAgICAgISF0aGlzLnJlZmVyZW5jZT8uc3BlY2lhbERlcGVuZGVuY2llcy50aW1lLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN0YXRpY01ldGhvZCBleHRlbmRzIENsYXNzTWV0aG9kIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBwYXJlbnQ6IEdvQ2xhc3MsXG4gICAgcHVibGljIHJlYWRvbmx5IG1ldGhvZDogTWV0aG9kLFxuICApIHtcbiAgICBzdXBlcihwYXJlbnQsIG1ldGhvZCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdCh7IGNvZGUsIGRvY3VtZW50ZXIgfTogRW1pdENvbnRleHQpIHtcbiAgICBjb25zdCBuYW1lID0gYCR7dGhpcy5wYXJlbnQubmFtZX1fJHt0aGlzLm5hbWV9YDtcbiAgICBjb25zdCByZXR1cm5UeXBlU3RyaW5nID0gdGhpcy5yZWZlcmVuY2U/LnZvaWQgPyAnJyA6IGAgJHt0aGlzLnJldHVyblR5cGV9YDtcblxuICAgIGRvY3VtZW50ZXIuZW1pdCh0aGlzLm1ldGhvZC5kb2NzKTtcbiAgICBjb2RlLm9wZW5CbG9jayhgZnVuYyAke25hbWV9KCR7dGhpcy5wYXJhbVN0cmluZygpfSkke3JldHVyblR5cGVTdHJpbmd9YCk7XG5cbiAgICB0aGlzLnJ1bnRpbWVDYWxsLmVtaXQoY29kZSk7XG5cbiAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICBjb2RlLmxpbmUoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0dvTWV0aG9kKG06IEdvVHlwZU1lbWJlcik6IG0gaXMgR29NZXRob2Qge1xuICByZXR1cm4gbSBpbnN0YW5jZW9mIEdvTWV0aG9kO1xufVxuIl19
|
|
328
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxzREFBd0Q7QUFDeEQsOENBQThDO0FBSTlDLHdDQU9vQjtBQUNwQixrQ0FBc0U7QUFDdEUsdUNBQW1DO0FBQ25DLDJEQUFnRDtBQUVoRCwrQ0FBbUU7QUFFbkU7O0dBRUc7QUFDSCxNQUFhLE9BQVEsU0FBUSxnQkFBaUI7SUFXNUMsWUFBbUIsR0FBWSxFQUFFLElBQWU7UUFDOUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVqQixNQUFNLE9BQU8sR0FBRyxJQUFJLEtBQUssRUFBZSxDQUFDO1FBQ3pDLE1BQU0sYUFBYSxHQUFHLElBQUksS0FBSyxFQUFnQixDQUFDO1FBQ2hELEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7Z0JBQ2pCLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDcEQ7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQzthQUM3QztTQUNGO1FBQ0QsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU1RCxNQUFNLFVBQVUsR0FBRyxJQUFJLEtBQUssRUFBYyxDQUFDO1FBQzNDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxLQUFLLEVBQWMsQ0FBQztRQUNqRCxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxhQUFhLEVB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SUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBRXpFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUFwQkQsb0NBb0JDO0FBRUQsU0FBUyxVQUFVLENBQUMsQ0FBZTtJQUNqQyxPQUFPLENBQUMsWUFBWSxzQkFBUSxDQUFDO0FBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2RlTWFrZXIgfSBmcm9tICdjb2RlbWFrZXInO1xuaW1wb3J0IHsgTWV0aG9kLCBDbGFzc1R5cGUsIEluaXRpYWxpemVyIH0gZnJvbSAnanNpaS1yZWZsZWN0JztcblxuaW1wb3J0IHsganNpaVRvUGFzY2FsQ2FzZSB9IGZyb20gJy4uLy4uLy4uL25hbWluZy11dGlsJztcbmltcG9ydCAqIGFzIGNvbXBhcmF0b3JzIGZyb20gJy4uL2NvbXBhcmF0b3JzJztcbmltcG9ydCB7IFNwZWNpYWxEZXBlbmRlbmNpZXMgfSBmcm9tICcuLi9kZXBlbmRlbmNpZXMnO1xuaW1wb3J0IHsgRW1pdENvbnRleHQgfSBmcm9tICcuLi9lbWl0LWNvbnRleHQnO1xuaW1wb3J0IHsgUGFja2FnZSB9IGZyb20gJy4uL3BhY2thZ2UnO1xuaW1wb3J0IHtcbiAgQ2xhc3NDb25zdHJ1Y3RvcixcbiAgSlNJSV9SVF9BTElBUyxcbiAgTWV0aG9kQ2FsbCxcbiAgc2x1Z2lmeSxcbiAgU3RhdGljR2V0UHJvcGVydHksXG4gIFN0YXRpY1NldFByb3BlcnR5LFxufSBmcm9tICcuLi9ydW50aW1lJztcbmltcG9ydCB7IGdldE1lbWJlckRlcGVuZGVuY2llcywgZ2V0UGFyYW1EZXBlbmRlbmNpZXMgfSBmcm9tICcuLi91dGlsJztcbmltcG9ydCB7IEdvVHlwZSB9IGZyb20gJy4vZ28tdHlwZSc7XG5pbXBvcnQgeyBHb1R5cGVSZWYgfSBmcm9tICcuL2dvLXR5cGUtcmVmZXJlbmNlJztcbmltcG9ydCB7IEdvSW50ZXJmYWNlIH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgR29NZXRob2QsIEdvUHJvcGVydHksIEdvVHlwZU1lbWJlciB9IGZyb20gJy4vdHlwZS1tZW1iZXInO1xuXG4vKlxuICogR29DbGFzcyB3cmFwcyBhIFR5cGVzY3JpcHQgY2xhc3MgYXMgYSBHbyBjdXN0b20gc3RydWN0IHR5cGVcbiAqL1xuZXhwb3J0IGNsYXNzIEdvQ2xhc3MgZXh0ZW5kcyBHb1R5cGU8Q2xhc3NUeXBlPiB7XG4gIHB1YmxpYyByZWFkb25seSBtZXRob2RzOiBDbGFzc01ldGhvZFtdO1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhdGljTWV0aG9kczogU3RhdGljTWV0aG9kW107XG4gIHB1YmxpYyByZWFkb25seSBwcm9wZXJ0aWVzOiBHb1Byb3BlcnR5W107XG4gIHB1YmxpYyByZWFkb25seSBzdGF0aWNQcm9wZXJ0aWVzOiBHb1Byb3BlcnR5W107XG5cbiAgcHJpdmF0ZSBfZXh0ZW5kcz86IEdvQ2xhc3MgfCBudWxsO1xuICBwcml2YXRlIF9pbXBsZW1lbnRzPzogcmVhZG9ubHkgR29JbnRlcmZhY2VbXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGluaXRpYWxpemVyPzogR29DbGFzc0NvbnN0cnVjdG9yO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwa2c6IFBhY2thZ2UsIHR5cGU6IENsYXNzVHlwZSkge1xuICAgIHN1cGVyKHBrZywgdHlwZSk7XG5cbiAgICBjb25zdCBtZXRob2RzID0gbmV3IEFycmF5PENsYXNzTWV0aG9kPigpO1xuICAgIGNvbnN0IHN0YXRpY01ldGhvZHMgPSBuZXcgQXJyYXk8U3RhdGljTWV0aG9kPigpO1xuICAgIGZvciAoY29uc3QgbWV0aG9kIG9mIHR5cGUuYWxsTWV0aG9kcykge1xuICAgICAgaWYgKG1ldGhvZC5zdGF0aWMpIHtcbiAgICAgICAgc3RhdGljTWV0aG9kcy5wdXNoKG5ldyBTdGF0aWNNZXRob2QodGhpcywgbWV0aG9kKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXRob2RzLnB1c2gobmV3IENsYXNzTWV0aG9kKHRoaXMsIG1ldGhvZCkpO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBFbnN1cmUgY29uc2lzdGVudCBvcmRlciwgbW9zdGx5IGNvc21ldGljLlxuICAgIHRoaXMubWV0aG9kcyA9IG1ldGhvZHMuc29ydChjb21wYXJhdG9ycy5ieU5hbWUpO1xuICAgIHRoaXMuc3RhdGljTWV0aG9kcyA9IHN0YXRpY01ldGhvZHMuc29ydChjb21wYXJhdG9ycy5ieU5hbWUpO1xuXG4gICAgY29uc3QgcHJvcGVydGllcyA9IG5ldyBBcnJheTxHb1Byb3BlcnR5PigpO1xuICAgIGNvbnN0IHN0YXRpY1Byb3BlcnRpZXMgPSBuZXcgQXJyYXk8R29Qcm9wZXJ0eT4oKTtcbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgdHlwZS5hbGxQcm9wZXJ0aWVzKSB7XG4gICAgICBpZiAocHJvcC5zdGF0aWMpIHtcbiAgICAgICAgc3RhdGljUHJvcGVydGllcy5wdXNoKG5ldyBHb1Byb3BlcnR5KHRoaXMsIHByb3ApKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb3BlcnRpZXMucHVzaChuZXcgR29Qcm9wZXJ0eSh0aGlzLCBwcm9wKSk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIEVuc3VyZSBjb25zaXN0ZW50IG9yZGVyLCBtb3N0bHkgY29zbWV0aWMuXG4gICAgdGhpcy5wcm9wZXJ0aWVzID0gcHJvcGVydGllcy5zb3J0KGNvbXBhcmF0b3JzLmJ5TmFtZSk7XG4gICAgdGhpcy5zdGF0aWNQcm9wZXJ0aWVzID0gc3RhdGljUHJvcGVydGllcy5zb3J0KGNvbXBhcmF0b3JzLmJ5TmFtZSk7XG5cbiAgICBpZiAodHlwZS5pbml0aWFsaXplcikge1xuICAgICAgdGhpcy5pbml0aWFsaXplciA9IG5ldyBHb0NsYXNzQ29uc3RydWN0b3IodGhpcywgdHlwZS5pbml0aWFsaXplcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBleHRlbmRzKCk6IEdvQ2xhc3MgfCB1bmRlZmluZWQge1xuICAgIC8vIENhbm5vdCBjb21wdXRlIGluIGNvbnN0cnVjdG9yLCBhcyBkZXBlbmRlbmNpZXMgbWF5IG5vdCBoYXZlIGZpbmlzaGVkXG4gICAgLy8gcmVzb2x2aW5nIGp1c3QgeWV0LlxuICAgIGlmICh0aGlzLl9leHRlbmRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX2V4dGVuZHMgPSB0aGlzLnR5cGUuYmFzZVxuICAgICAgICA/ICh0aGlzLnBrZy5yb290LmZpbmRUeXBlKHRoaXMudHlwZS5iYXNlLmZxbikgYXMgR29DbGFzcylcbiAgICAgICAgOiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZXh0ZW5kcyA9PSBudWxsID8gdW5kZWZpbmVkIDogdGhpcy5fZXh0ZW5kcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW1wbGVtZW50cygpOiByZWFkb25seSBHb0ludGVyZmFjZVtdIHtcbiAgICAvLyBDYW5ub3QgY29tcHV0ZSBpbiBjb25zdHJ1Y3RvciwgYXMgZGVwZW5kZW5jaWVzIG1heSBub3QgaGF2ZSBmaW5pc2hlZFxuICAgIC8vIHJlc29sdmluZyBqdXN0IHlldC5cbiAgICBpZiAodGhpcy5faW1wbGVtZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9pbXBsZW1lbnRzID0gdGhpcy50eXBlLmludGVyZmFjZXNcbiAgICAgICAgLm1hcCgoaWZhY2UpID0+IHRoaXMucGtnLnJvb3QuZmluZFR5cGUoaWZhY2UuZnFuKSBhcyBHb0ludGVyZmFjZSlcbiAgICAgICAgLy8gRW5zdXJlIGNvbnNpc3RlbnQgb3JkZXIsIG1vc3RseSBjb3NtZXRpYy5cbiAgICAgICAgLnNvcnQoKGwsIHIpID0+IGwuZnFuLmxvY2FsZUNvbXBhcmUoci5mcW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2ltcGxlbWVudHM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGJhc2VUeXBlcygpOiBSZWFkb25seUFycmF5PEdvQ2xhc3MgfCBHb0ludGVyZmFjZT4ge1xuICAgIHJldHVybiBbLi4uKHRoaXMuZXh0ZW5kcyA/IFt0aGlzLmV4dGVuZHNdIDogW10pLCAuLi50aGlzLmltcGxlbWVudHNdO1xuICB9XG5cbiAgcHVibGljIGVtaXQoY29udGV4dDogRW1pdENvbnRleHQpOiB2b2lkIHtcbiAgICB0aGlzLmVtaXRJbnRlcmZhY2UoY29udGV4dCk7XG4gICAgdGhpcy5lbWl0U3RydWN0KGNvbnRleHQpO1xuICAgIHRoaXMuZW1pdEdldHRlcnMoY29udGV4dCk7XG5cbiAgICBpZiAodGhpcy5pbml0aWFsaXplcikge1xuICAgICAgdGhpcy5pbml0aWFsaXplci5lbWl0KGNvbnRleHQpO1xuICAgIH1cblxuICAgIHRoaXMuZW1pdFNldHRlcnMoY29udGV4dCk7XG5cbiAgICBmb3IgKGNvbnN0IG1ldGhvZCBvZiB0aGlzLnN0YXRpY01ldGhvZHMpIHtcbiAgICAgIG1ldGhvZC5lbWl0KGNvbnRleHQpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgcHJvcCBvZiB0aGlzLnN0YXRpY1Byb3BlcnRpZXMpIHtcbiAgICAgIHRoaXMuZW1pdFN0YXRpY1Byb3BlcnR5KGNvbnRleHQsIHByb3ApO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgbWV0aG9kIG9mIHRoaXMubWV0aG9kcykge1xuICAgICAgbWV0aG9kLmVtaXQoY29udGV4dCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGVtaXRSZWdpc3RyYXRpb24oY29kZTogQ29kZU1ha2VyKTogdm9pZCB7XG4gICAgY29kZS5vcGVuKGAke0pTSUlfUlRfQUxJQVN9LlJlZ2lzdGVyQ2xhc3MoYCk7XG4gICAgY29kZS5saW5lKGBcIiR7dGhpcy5mcW59XCIsYCk7XG4gICAgY29kZS5saW5lKGByZWZsZWN0LlR5cGVPZigoKiR7dGhpcy5uYW1lfSkobmlsKSkuRWxlbSgpLGApO1xuXG4gICAgY29uc3QgYWxsTWVtYmVycyA9IFtcbiAgICAgIC4uLnRoaXMudHlwZS5hbGxNZXRob2RzXG4gICAgICAgIC5maWx0ZXIoKG1ldGhvZCkgPT4gIW1ldGhvZC5zdGF0aWMpXG4gICAgICAgIC5tYXAoKG1ldGhvZCkgPT4gbmV3IENsYXNzTWV0aG9kKHRoaXMsIG1ldGhvZCkpLFxuICAgICAgLi4udGhpcy50eXBlLmFsbFByb3BlcnRpZXNcbiAgICAgICAgLmZpbHRlcigocHJvcGVydHkpID0+ICFwcm9wZXJ0eS5zdGF0aWMpXG4gICAgICAgIC5tYXAoKHByb3BlcnR5KSA9PiBuZXcgR29Qcm9wZXJ0eSh0aGlzLCBwcm9wZXJ0eSkpLFxuICAgIF0uc29ydChjb21wYXJhdG9ycy5ieU5hbWUpO1xuICAgIGlmIChhbGxNZW1iZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29kZS5saW5lKCduaWwsIC8vIG5vIG1lbWJlcnMnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29kZS5vcGVuKGBbXSR7SlNJSV9SVF9BTElBU30uTWVtYmVye2ApO1xuICAgICAgZm9yIChjb25zdCBtZW1iZXIgb2YgYWxsTWVtYmVycykge1xuICAgICAgICBjb2RlLmxpbmUoYCR7bWVtYmVyLm92ZXJyaWRlfSxgKTtcbiAgICAgIH1cbiAgICAgIGNvZGUuY2xvc2UoJ30sJyk7XG4gICAgfVxuXG4gICAgdGhpcy5lbWl0UHJveHlNYWtlckZ1bmN0aW9uKGNvZGUsIHRoaXMuYmFzZVR5cGVzKTtcbiAgICBjb2RlLmNsb3NlKCcpJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1lbWJlcnMoKTogR29UeXBlTWVtYmVyW10ge1xuICAgIHJldHVybiBbXG4gICAgICAuLi4odGhpcy5pbml0aWFsaXplciA/IFt0aGlzLmluaXRpYWxpemVyXSA6IFtdKSxcbiAgICAgIC4uLnRoaXMubWV0aG9kcyxcbiAgICAgIC4uLnRoaXMucHJvcGVydGllcyxcbiAgICAgIC4uLnRoaXMuc3RhdGljTWV0aG9kcyxcbiAgICAgIC4uLnRoaXMuc3RhdGljUHJvcGVydGllcyxcbiAgICBdO1xuICB9XG5cbiAgcHVibGljIGdldCBzcGVjaWFsRGVwZW5kZW5jaWVzKCk6IFNwZWNpYWxEZXBlbmRlbmNpZXMge1xuICAgIHJldHVybiB7XG4gICAgICBydW50aW1lOiB0aGlzLmluaXRpYWxpemVyICE9IG51bGwgfHwgdGhpcy5tZW1iZXJzLmxlbmd0aCA+IDAsXG4gICAgICBpbml0OlxuICAgICAgICB0aGlzLmluaXRpYWxpemVyICE9IG51bGwgfHxcbiAgICAgICAgdGhpcy5tZW1iZXJzLnNvbWUoKG0pID0+IG0uc3BlY2lhbERlcGVuZGVuY2llcy5pbml0KSxcbiAgICAgIGludGVybmFsOiB0aGlzLmJhc2VUeXBlcy5zb21lKChiYXNlKSA9PiB0aGlzLnBrZy5pc0V4dGVybmFsVHlwZShiYXNlKSksXG4gICAgICB0aW1lOlxuICAgICAgICAhIXRoaXMuaW5pdGlhbGl6ZXI/LnNwZWNpYWxEZXBlbmRlbmNpZXMudGltZSB8fFxuICAgICAgICB0aGlzLm1lbWJlcnMuc29tZSgobSkgPT4gbS5zcGVjaWFsRGVwZW5kZW5jaWVzLnRpbWUpLFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgZW1pdEludGVyZmFjZShjb250ZXh0OiBFbWl0Q29udGV4dCk6IHZvaWQge1xuICAgIGNvbnN0IHsgY29kZSwgZG9jdW1lbnRlciB9ID0gY29udGV4dDtcbiAgICBkb2N1bWVudGVyLmVtaXQodGhpcy50eXBlLmRvY3MsIHRoaXMuYXBpTG9jYXRpb24pO1xuICAgIGNvZGUub3BlbkJsb2NrKGB0eXBlICR7dGhpcy5uYW1lfSBpbnRlcmZhY2VgKTtcblxuICAgIC8vIGVtYmVkIGV4dGVuZGVkIGludGVyZmFjZXNcbiAgICBpZiAodGhpcy5leHRlbmRzKSB7XG4gICAgICBjb2RlLmxpbmUoXG4gICAgICAgIG5ldyBHb1R5cGVSZWYodGhpcy5wa2cucm9vdCwgdGhpcy5leHRlbmRzLnR5cGUucmVmZXJlbmNlKS5zY29wZWROYW1lKFxuICAgICAgICAgIHRoaXMucGtnLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBpZmFjZSBvZiB0aGlzLmltcGxlbWVudHMpIHtcbiAgICAgIGNvZGUubGluZShcbiAgICAgICAgbmV3IEdvVHlwZVJlZih0aGlzLnBrZy5yb290LCBpZmFjZS50eXBlLnJlZmVyZW5jZSkuc2NvcGVkTmFtZSh0aGlzLnBrZyksXG4gICAgICApO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgdGhpcy5wcm9wZXJ0aWVzKSB7XG4gICAgICBwcm9wZXJ0eS5lbWl0R2V0dGVyRGVjbChjb250ZXh0KTtcbiAgICAgIHByb3BlcnR5LmVtaXRTZXR0ZXJEZWNsKGNvbnRleHQpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgbWV0aG9kIG9mIHRoaXMubWV0aG9kcykge1xuICAgICAgbWV0aG9kLmVtaXREZWNsKGNvbnRleHQpO1xuICAgIH1cblxuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIGNvZGUubGluZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0R2V0dGVycyhjb250ZXh0OiBFbWl0Q29udGV4dCkge1xuICAgIGlmICh0aGlzLnByb3BlcnRpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgdGhpcy5wcm9wZXJ0aWVzKSB7XG4gICAgICBwcm9wZXJ0eS5lbWl0R2V0dGVyUHJveHkoY29udGV4dCk7XG4gICAgfVxuICAgIGNvbnRleHQuY29kZS5saW5lKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRTdHJ1Y3QoeyBjb2RlIH06IEVtaXRDb250ZXh0KTogdm9pZCB7XG4gICAgY29kZS5saW5lKGAvLyBUaGUganNpaSBwcm94eSBzdHJ1Y3QgZm9yICR7dGhpcy5uYW1lfWApO1xuICAgIGNvZGUub3BlbkJsb2NrKGB0eXBlICR7dGhpcy5wcm94eU5hbWV9IHN0cnVjdGApO1xuXG4gICAgLy8gTWFrZSBzdXJlIHRoaXMgaXMgbm90IDAtd2lkdGhcbiAgICBpZiAodGhpcy5iYXNlVHlwZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb2RlLmxpbmUoJ18gYnl0ZSAvLyBwYWRkaW5nJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAoY29uc3QgYmFzZSBvZiB0aGlzLmJhc2VUeXBlcykge1xuICAgICAgICBjb2RlLmxpbmUodGhpcy5wa2cucmVzb2x2ZUVtYmVkZGVkVHlwZShiYXNlKS5lbWJlZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRTdGF0aWNQcm9wZXJ0eSh7IGNvZGUgfTogRW1pdENvbnRleHQsIHByb3A6IEdvUHJvcGVydHkpOiB2b2lkIHtcbiAgICBjb25zdCBnZXRDYWxsZXIgPSBuZXcgU3RhdGljR2V0UHJvcGVydHkocHJvcCk7XG5cbiAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSBqc2lpVG9QYXNjYWxDYXNlKHByb3AubmFtZSk7XG4gICAgY29uc3QgbmFtZSA9IGAke3RoaXMubmFtZX1fJHtwcm9wZXJ0eU5hbWV9YDtcblxuICAgIGNvZGUub3BlbkJsb2NrKGBmdW5jICR7bmFtZX0oKSAke3Byb3AucmV0dXJuVHlwZX1gKTtcbiAgICBnZXRDYWxsZXIuZW1pdChjb2RlKTtcblxuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIGNvZGUubGluZSgpO1xuXG4gICAgaWYgKCFwcm9wLmltbXV0YWJsZSkge1xuICAgICAgY29uc3Qgc2V0Q2FsbGVyID0gbmV3IFN0YXRpY1NldFByb3BlcnR5KHByb3ApO1xuICAgICAgY29uc3QgbmFtZSA9IGAke3RoaXMubmFtZX1fU2V0JHtwcm9wZXJ0eU5hbWV9YDtcbiAgICAgIGNvZGUub3BlbkJsb2NrKGBmdW5jICR7bmFtZX0odmFsICR7cHJvcC5yZXR1cm5UeXBlfSlgKTtcbiAgICAgIHNldENhbGxlci5lbWl0KGNvZGUpO1xuXG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICAgIGNvZGUubGluZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVtaXRzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgc2V0dGVycyBmb3IgdGhlIHN0cnVjdFxuICBwcml2YXRlIGVtaXRTZXR0ZXJzKGNvbnRleHQ6IEVtaXRDb250ZXh0KTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiB0aGlzLnByb3BlcnRpZXMpIHtcbiAgICAgIHByb3BlcnR5LmVtaXRTZXR0ZXJQcm94eShjb250ZXh0KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlcGVuZGVuY2llcygpOiBQYWNrYWdlW10ge1xuICAgIC8vIG5lZWQgdG8gYWRkIGRlcGVuZGVuY2llcyBvZiBtZXRob2QgYXJndW1lbnRzIGFuZCBjb25zdHJ1Y3RvciBhcmd1bWVudHNcbiAgICByZXR1cm4gW1xuICAgICAgLi4udGhpcy5iYXNlVHlwZXMubWFwKChyZWYpID0+IHJlZi5wa2cpLFxuICAgICAgLi4uZ2V0TWVtYmVyRGVwZW5kZW5jaWVzKHRoaXMubWVtYmVycyksXG4gICAgICAuLi5nZXRQYXJhbURlcGVuZGVuY2llcyh0aGlzLm1lbWJlcnMuZmlsdGVyKGlzR29NZXRob2QpKSxcbiAgICBdO1xuICB9XG5cbiAgLypcbiAgICogR2V0IGZxbnMgb2YgaW50ZXJmYWNlcyB0aGUgY2xhc3MgaW1wbGVtZW50c1xuICAgKi9cbiAgcHVibGljIGdldCBpbnRlcmZhY2VzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy50eXBlLmludGVyZmFjZXMubWFwKChpRmFjZSkgPT4gaUZhY2UuZnFuKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgR29DbGFzc0NvbnN0cnVjdG9yIGV4dGVuZHMgR29NZXRob2Qge1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbnN0cnVjdG9yUnVudGltZUNhbGw6IENsYXNzQ29uc3RydWN0b3I7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBwYXJlbnQ6IEdvQ2xhc3MsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0eXBlOiBJbml0aWFsaXplcixcbiAgKSB7XG4gICAgc3VwZXIocGFyZW50LCB0eXBlKTtcbiAgICB0aGlzLmNvbnN0cnVjdG9yUnVudGltZUNhbGwgPSBuZXcgQ2xhc3NDb25zdHJ1Y3Rvcih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3BlY2lhbERlcGVuZGVuY2llcygpOiBTcGVjaWFsRGVwZW5kZW5jaWVzIHtcbiAgICByZXR1cm4ge1xuICAgICAgcnVudGltZTogdHJ1ZSxcbiAgICAgIGluaXQ6IHRydWUsXG4gICAgICBpbnRlcm5hbDogZmFsc2UsXG4gICAgICB0aW1lOiB0aGlzLnBhcmFtZXRlcnMuc29tZSgocCkgPT4gcC5yZWZlcmVuY2Uuc3BlY2lhbERlcGVuZGVuY2llcy50aW1lKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGVtaXQoY29udGV4dDogRW1pdENvbnRleHQpIHtcbiAgICAvLyBBYnN0cmFjdCBjbGFzc2VzIGNhbm5vdCBiZSBkaXJlY3RseSBjcmVhdGVkXG4gICAgaWYgKCF0aGlzLnBhcmVudC50eXBlLmFic3RyYWN0KSB7XG4gICAgICB0aGlzLmVtaXROZXcoY29udGV4dCk7XG4gICAgfVxuICAgIC8vIFN1YmNsYXNzYWJsZSBjbGFzc2VzICh0aGUgZGVmYXVsdCkgZ2V0IGFuIF9PdmVycmlkZXMgY29uc3RydWN0b3JcbiAgICBpZiAodGhpcy5wYXJlbnQudHlwZS5zcGVjLmRvY3M/LnN1YmNsYXNzYWJsZSA/PyB0cnVlKSB7XG4gICAgICB0aGlzLmVtaXRPdmVycmlkZShjb250ZXh0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVtaXROZXcoeyBjb2RlLCBkb2N1bWVudGVyIH06IEVtaXRDb250ZXh0KSB7XG4gICAgY29uc3QgY29uc3RyID0gYE5ldyR7dGhpcy5wYXJlbnQubmFtZX1gO1xuICAgIGNvbnN0IHBhcmFtU3RyaW5nID1cbiAgICAgIHRoaXMucGFyYW1ldGVycy5sZW5ndGggPT09IDBcbiAgICAgICAgPyAnJ1xuICAgICAgICA6IHRoaXMucGFyYW1ldGVycy5tYXAoKHApID0+IHAudG9TdHJpbmcoKSkuam9pbignLCAnKTtcblxuICAgIGRvY3VtZW50ZXIuZW1pdCh0aGlzLnR5cGUuZG9jcywgdGhpcy5hcGlMb2NhdGlvbik7XG4gICAgY29kZS5vcGVuQmxvY2soYGZ1bmMgJHtjb25zdHJ9KCR7cGFyYW1TdHJpbmd9KSAke3RoaXMucGFyZW50Lm5hbWV9YCk7XG4gICAgdGhpcy5jb25zdHJ1Y3RvclJ1bnRpbWVDYWxsLmVtaXQoY29kZSk7XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG5cbiAgICBjb2RlLmxpbmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdE92ZXJyaWRlKHsgY29kZSwgZG9jdW1lbnRlciB9OiBFbWl0Q29udGV4dCkge1xuICAgIGNvbnN0IGNvbnN0ciA9IGBOZXcke3RoaXMucGFyZW50Lm5hbWV9X092ZXJyaWRlYDtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLnBhcmFtZXRlcnMubWFwKChwKSA9PiBwLnRvU3RyaW5nKCkpO1xuXG4gICAgY29uc3QgaW5zdGFuY2VWYXIgPSBzbHVnaWZ5KHRoaXMucGFyZW50Lm5hbWVbMF0udG9Mb3dlckNhc2UoKSwgcGFyYW1zKTtcbiAgICBwYXJhbXMudW5zaGlmdChgJHtpbnN0YW5jZVZhcn0gJHt0aGlzLnBhcmVudC5uYW1lfWApO1xuXG4gICAgZG9jdW1lbnRlci5lbWl0KHRoaXMudHlwZS5kb2NzLCB0aGlzLmFwaUxvY2F0aW9uKTtcbiAgICBjb2RlLm9wZW5CbG9jayhgZnVuYyAke2NvbnN0cn0oJHtwYXJhbXMuam9pbignLCAnKX0pYCk7XG4gICAgdGhpcy5jb25zdHJ1Y3RvclJ1bnRpbWVDYWxsLmVtaXRPdmVycmlkZShjb2RlLCBpbnN0YW5jZVZhcik7XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENsYXNzTWV0aG9kIGV4dGVuZHMgR29NZXRob2Qge1xuICBwdWJsaWMgcmVhZG9ubHkgcnVudGltZUNhbGw6IE1ldGhvZENhbGw7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBwYXJlbnQ6IEdvQ2xhc3MsXG4gICAgcHVibGljIHJlYWRvbmx5IG1ldGhvZDogTWV0aG9kLFxuICApIHtcbiAgICBzdXBlcihwYXJlbnQsIG1ldGhvZCk7XG4gICAgdGhpcy5ydW50aW1lQ2FsbCA9IG5ldyBNZXRob2RDYWxsKHRoaXMpO1xuICB9XG5cbiAgLyogZW1pdCBnZW5lcmF0ZXMgbWV0aG9kIGltcGxlbWVudGF0aW9uIG9uIHRoZSBjbGFzcyAqL1xuICBwdWJsaWMgZW1pdCh7IGNvZGUgfTogRW1pdENvbnRleHQpIHtcbiAgICBjb25zdCBuYW1lID0gdGhpcy5uYW1lO1xuICAgIGNvbnN0IHJldHVyblR5cGVTdHJpbmcgPSB0aGlzLnJlZmVyZW5jZT8udm9pZCA/ICcnIDogYCAke3RoaXMucmV0dXJuVHlwZX1gO1xuXG4gICAgY29kZS5vcGVuQmxvY2soXG4gICAgICBgZnVuYyAoJHt0aGlzLmluc3RhbmNlQXJnfSAqJHtcbiAgICAgICAgdGhpcy5wYXJlbnQucHJveHlOYW1lXG4gICAgICB9KSAke25hbWV9KCR7dGhpcy5wYXJhbVN0cmluZygpfSkke3JldHVyblR5cGVTdHJpbmd9YCxcbiAgICApO1xuXG4gICAgdGhpcy5ydW50aW1lQ2FsbC5lbWl0KGNvZGUpO1xuXG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICAvKiBlbWl0RGVjbCBnZW5lcmF0ZXMgbWV0aG9kIGRlY2xhcmF0aW9uIGluIHRoZSBjbGFzcyBpbnRlcmZhY2UgKi9cbiAgcHVibGljIGVtaXREZWNsKHsgY29kZSwgZG9jdW1lbnRlciB9OiBFbWl0Q29udGV4dCkge1xuICAgIGNvbnN0IHJldHVyblR5cGVTdHJpbmcgPSB0aGlzLnJlZmVyZW5jZT8udm9pZCA/ICcnIDogYCAke3RoaXMucmV0dXJuVHlwZX1gO1xuICAgIGRvY3VtZW50ZXIuZW1pdCh0aGlzLm1ldGhvZC5kb2NzLCB0aGlzLmFwaUxvY2F0aW9uKTtcbiAgICBjb2RlLmxpbmUoYCR7dGhpcy5uYW1lfSgke3RoaXMucGFyYW1TdHJpbmcoKX0pJHtyZXR1cm5UeXBlU3RyaW5nfWApO1xuICB9XG5cbiAgcHVibGljIGdldCBpbnN0YW5jZUFyZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5uYW1lLnN1YnN0cmluZygwLCAxKS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBzcGVjaWFsRGVwZW5kZW5jaWVzKCk6IFNwZWNpYWxEZXBlbmRlbmNpZXMge1xuICAgIHJldHVybiB7XG4gICAgICBydW50aW1lOiB0cnVlLFxuICAgICAgaW5pdDogdGhpcy5tZXRob2Quc3RhdGljLFxuICAgICAgaW50ZXJuYWw6IGZhbHNlLFxuICAgICAgdGltZTpcbiAgICAgICAgISF0aGlzLnBhcmFtZXRlcnMuc29tZSgocCkgPT4gcC5yZWZlcmVuY2Uuc3BlY2lhbERlcGVuZGVuY2llcy50aW1lKSB8fFxuICAgICAgICAhIXRoaXMucmVmZXJlbmNlPy5zcGVjaWFsRGVwZW5kZW5jaWVzLnRpbWUsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3RhdGljTWV0aG9kIGV4dGVuZHMgQ2xhc3NNZXRob2Qge1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHBhcmVudDogR29DbGFzcyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgbWV0aG9kOiBNZXRob2QsXG4gICkge1xuICAgIHN1cGVyKHBhcmVudCwgbWV0aG9kKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0KHsgY29kZSwgZG9jdW1lbnRlciB9OiBFbWl0Q29udGV4dCkge1xuICAgIGNvbnN0IG5hbWUgPSBgJHt0aGlzLnBhcmVudC5uYW1lfV8ke3RoaXMubmFtZX1gO1xuICAgIGNvbnN0IHJldHVyblR5cGVTdHJpbmcgPSB0aGlzLnJlZmVyZW5jZT8udm9pZCA/ICcnIDogYCAke3RoaXMucmV0dXJuVHlwZX1gO1xuXG4gICAgZG9jdW1lbnRlci5lbWl0KHRoaXMubWV0aG9kLmRvY3MsIHRoaXMuYXBpTG9jYXRpb24pO1xuICAgIGNvZGUub3BlbkJsb2NrKGBmdW5jICR7bmFtZX0oJHt0aGlzLnBhcmFtU3RyaW5nKCl9KSR7cmV0dXJuVHlwZVN0cmluZ31gKTtcblxuICAgIHRoaXMucnVudGltZUNhbGwuZW1pdChjb2RlKTtcblxuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIGNvZGUubGluZSgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzR29NZXRob2QobTogR29UeXBlTWVtYmVyKTogbSBpcyBHb01ldGhvZCB7XG4gIHJldHVybiBtIGluc3RhbmNlb2YgR29NZXRob2Q7XG59XG4iXX0=
|
|
@@ -18,7 +18,7 @@ class Enum extends go_type_1.GoType {
|
|
|
18
18
|
code.open(`const (`);
|
|
19
19
|
// Const values are prefixed by the wrapped value type
|
|
20
20
|
for (const member of this.members) {
|
|
21
|
-
member.emit(
|
|
21
|
+
member.emit(context);
|
|
22
22
|
}
|
|
23
23
|
code.close(`)`);
|
|
24
24
|
code.line();
|
|
@@ -52,9 +52,16 @@ class GoEnumMember {
|
|
|
52
52
|
this.parent = parent;
|
|
53
53
|
this.name = `${parent.name}_${entry.name}`;
|
|
54
54
|
this.rawValue = entry.name;
|
|
55
|
+
this.docs = entry.docs;
|
|
56
|
+
this.apiLocation = {
|
|
57
|
+
api: 'member',
|
|
58
|
+
fqn: this.parent.fqn,
|
|
59
|
+
memberName: entry.name,
|
|
60
|
+
};
|
|
55
61
|
}
|
|
56
|
-
emit(code) {
|
|
62
|
+
emit({ code, documenter }) {
|
|
63
|
+
documenter.emit(this.docs, this.apiLocation);
|
|
57
64
|
code.line(`${this.name} ${this.parent.name} = "${this.rawValue}"`);
|
|
58
65
|
}
|
|
59
66
|
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBT0Esd0NBQTJDO0FBQzNDLHVDQUFtQztBQUVuQyxNQUFhLElBQUssU0FBUSxnQkFBZ0I7SUFHeEMsWUFBbUIsR0FBWSxFQUFFLElBQWM7UUFDN0MsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRU0sSUFBSSxDQUFDLE9BQW9CO1FBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdkIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUN6QixvRUFBb0U7UUFDcEUsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxJQUFJLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVyQixzREFBc0Q7UUFDdEQsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDdEI7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxJQUFlO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyx1QkFBYSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNyQyxLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLE1BQU0sTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7U0FDcEQ7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNyQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxJQUFXLG1CQUFtQjtRQUM1QixPQUFPO1lBQ0wsT0FBTyxFQUFFLEtBQUs7WUFDZCxJQUFJLEVBQUUsS0FBSztZQUNYLFFBQVEsRUFBRSxLQUFLO1lBQ2YsSUFBSSxFQUFFLEtBQUs7U0FDWixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBcERELG9CQW9EQztBQUVELE1BQU0sWUFBWTtJQU1oQixZQUFvQyxNQUFZLEVBQUUsS0FBaUI7UUFBL0IsV0FBTSxHQUFOLE1BQU0sQ0FBTTtRQUM5QyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUV2QixJQUFJLENBQUMsV0FBVyxHQUFHO1lBQ2pCLEdBQUcsRUFBRSxRQUFRO1lBQ2IsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRztZQUNwQixVQUFVLEVBQUUsS0FBSyxDQUFDLElBQUk7U0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFTSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFlO1FBQzNDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDckUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29kZU1ha2VyIH0gZnJvbSAnY29kZW1ha2VyJztcbmltcG9ydCB7IEVudW1UeXBlLCBFbnVtTWVtYmVyLCBEb2NzIH0gZnJvbSAnanNpaS1yZWZsZWN0JztcbmltcG9ydCB7IEFwaUxvY2F0aW9uIH0gZnJvbSAnanNpaS1yb3NldHRhJztcblxuaW1wb3J0IHsgU3BlY2lhbERlcGVuZGVuY2llcyB9IGZyb20gJy4uL2RlcGVuZGVuY2llcyc7XG5pbXBvcnQgeyBFbWl0Q29udGV4dCB9IGZyb20gJy4uL2VtaXQtY29udGV4dCc7XG5pbXBvcnQgeyBQYWNrYWdlIH0gZnJvbSAnLi4vcGFja2FnZSc7XG5pbXBvcnQgeyBKU0lJX1JUX0FMSUFTIH0gZnJvbSAnLi4vcnVudGltZSc7XG5pbXBvcnQgeyBHb1R5cGUgfSBmcm9tICcuL2dvLXR5cGUnO1xuXG5leHBvcnQgY2xhc3MgRW51bSBleHRlbmRzIEdvVHlwZTxFbnVtVHlwZT4ge1xuICBwcml2YXRlIHJlYWRvbmx5IG1lbWJlcnM6IHJlYWRvbmx5IEdvRW51bU1lbWJlcltdO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwa2c6IFBhY2thZ2UsIHR5cGU6IEVudW1UeXBlKSB7XG4gICAgc3VwZXIocGtnLCB0eXBlKTtcblxuICAgIHRoaXMubWVtYmVycyA9IHR5cGUubWVtYmVycy5tYXAoKG1lbSkgPT4gbmV3IEdvRW51bU1lbWJlcih0aGlzLCBtZW0pKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0KGNvbnRleHQ6IEVtaXRDb250ZXh0KSB7XG4gICAgdGhpcy5lbWl0RG9jcyhjb250ZXh0KTtcblxuICAgIGNvbnN0IHsgY29kZSB9ID0gY29udGV4dDtcbiAgICAvLyBUT0RPIGZpZ3VyZSBvdXQgdGhlIHZhbHVlIHR5cGUgLS0gcHJvYmFibHkgYSBzdHJpbmcgaW4gbW9zdCBjYXNlc1xuICAgIGNvbnN0IHZhbHVlVHlwZSA9ICdzdHJpbmcnO1xuICAgIGNvZGUubGluZShgdHlwZSAke3RoaXMubmFtZX0gJHt2YWx1ZVR5cGV9YCk7XG4gICAgY29kZS5saW5lKCk7XG4gICAgY29kZS5vcGVuKGBjb25zdCAoYCk7XG5cbiAgICAvLyBDb25zdCB2YWx1ZXMgYXJlIHByZWZpeGVkIGJ5IHRoZSB3cmFwcGVkIHZhbHVlIHR5cGVcbiAgICBmb3IgKGNvbnN0IG1lbWJlciBvZiB0aGlzLm1lbWJlcnMpIHtcbiAgICAgIG1lbWJlci5lbWl0KGNvbnRleHQpO1xuICAgIH1cblxuICAgIGNvZGUuY2xvc2UoYClgKTtcbiAgICBjb2RlLmxpbmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0UmVnaXN0cmF0aW9uKGNvZGU6IENvZGVNYWtlcik6IHZvaWQge1xuICAgIGNvZGUub3BlbihgJHtKU0lJX1JUX0FMSUFTfS5SZWdpc3RlckVudW0oYCk7XG4gICAgY29kZS5saW5lKGBcIiR7dGhpcy5mcW59XCIsYCk7XG4gICAgY29kZS5saW5lKGByZWZsZWN0LlR5cGVPZigoKiR7dGhpcy5uYW1lfSkobmlsKSkuRWxlbSgpLGApO1xuICAgIGNvZGUub3BlbihgbWFwW3N0cmluZ11pbnRlcmZhY2V7fXtgKTtcbiAgICBmb3IgKGNvbnN0IG1lbWJlciBvZiB0aGlzLm1lbWJlcnMpIHtcbiAgICAgIGNvZGUubGluZShgXCIke21lbWJlci5yYXdWYWx1ZX1cIjogJHttZW1iZXIubmFtZX0sYCk7XG4gICAgfVxuICAgIGNvZGUuY2xvc2UoYH0sYCk7XG4gICAgY29kZS5jbG9zZSgnKScpO1xuICB9XG5cbiAgcHVibGljIGdldCBkZXBlbmRlbmNpZXMoKTogUGFja2FnZVtdIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNwZWNpYWxEZXBlbmRlbmNpZXMoKTogU3BlY2lhbERlcGVuZGVuY2llcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJ1bnRpbWU6IGZhbHNlLFxuICAgICAgaW5pdDogZmFsc2UsXG4gICAgICBpbnRlcm5hbDogZmFsc2UsXG4gICAgICB0aW1lOiBmYWxzZSxcbiAgICB9O1xuICB9XG59XG5cbmNsYXNzIEdvRW51bU1lbWJlciB7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSByYXdWYWx1ZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY3M6IERvY3M7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXBpTG9jYXRpb246IEFwaUxvY2F0aW9uO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHBhcmVudDogRW51bSwgZW50cnk6IEVudW1NZW1iZXIpIHtcbiAgICB0aGlzLm5hbWUgPSBgJHtwYXJlbnQubmFtZX1fJHtlbnRyeS5uYW1lfWA7XG4gICAgdGhpcy5yYXdWYWx1ZSA9IGVudHJ5Lm5hbWU7XG4gICAgdGhpcy5kb2NzID0gZW50cnkuZG9jcztcblxuICAgIHRoaXMuYXBpTG9jYXRpb24gPSB7XG4gICAgICBhcGk6ICdtZW1iZXInLFxuICAgICAgZnFuOiB0aGlzLnBhcmVudC5mcW4sXG4gICAgICBtZW1iZXJOYW1lOiBlbnRyeS5uYW1lLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZW1pdCh7IGNvZGUsIGRvY3VtZW50ZXIgfTogRW1pdENvbnRleHQpIHtcbiAgICBkb2N1bWVudGVyLmVtaXQodGhpcy5kb2NzLCB0aGlzLmFwaUxvY2F0aW9uKTtcbiAgICBjb2RlLmxpbmUoYCR7dGhpcy5uYW1lfSAke3RoaXMucGFyZW50Lm5hbWV9ID0gXCIke3RoaXMucmF3VmFsdWV9XCJgKTtcbiAgfVxufVxuIl19
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CodeMaker } from 'codemaker';
|
|
2
2
|
import { Type } from 'jsii-reflect';
|
|
3
|
+
import { ApiLocation } from 'jsii-rosetta';
|
|
3
4
|
import { SpecialDependencies } from '../dependencies';
|
|
4
5
|
import { EmitContext } from '../emit-context';
|
|
5
6
|
import { Package } from '../package';
|
|
@@ -11,6 +12,7 @@ export declare abstract class GoType<T extends Type = Type> {
|
|
|
11
12
|
readonly name: string;
|
|
12
13
|
readonly fqn: string;
|
|
13
14
|
readonly proxyName: string;
|
|
15
|
+
protected readonly apiLocation: ApiLocation;
|
|
14
16
|
constructor(pkg: Package, type: T);
|
|
15
17
|
abstract emit(context: EmitContext): void;
|
|
16
18
|
abstract emitRegistration(code: CodeMaker): void;
|
|
@@ -15,12 +15,13 @@ class GoType {
|
|
|
15
15
|
// such as "default". See https://github.com/aws/jsii/issues/2637
|
|
16
16
|
this.proxyName = `jsiiProxy_${this.name}`;
|
|
17
17
|
this.fqn = type.fqn;
|
|
18
|
+
this.apiLocation = { api: 'type', fqn: this.fqn };
|
|
18
19
|
}
|
|
19
20
|
get namespace() {
|
|
20
21
|
return this.pkg.packageName;
|
|
21
22
|
}
|
|
22
23
|
emitDocs(context) {
|
|
23
|
-
context.documenter.emit(this.type.docs);
|
|
24
|
+
context.documenter.emit(this.type.docs, this.apiLocation);
|
|
24
25
|
}
|
|
25
26
|
emitStability(context) {
|
|
26
27
|
context.documenter.emitStability(this.type.docs);
|
|
@@ -44,4 +45,4 @@ class GoType {
|
|
|
44
45
|
}
|
|
45
46
|
}
|
|
46
47
|
exports.GoType = GoType;
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ28tdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImdvLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBT0Esd0NBQTJDO0FBSTNDLE1BQXNCLE1BQU07SUFNMUIsWUFBbUMsR0FBWSxFQUFrQixJQUFPO1FBQXJDLFFBQUcsR0FBSCxHQUFHLENBQVM7UUFBa0IsU0FBSSxHQUFKLElBQUksQ0FBRztRQUN0RSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFFdEIsZ0VBQWdFO1FBQ2hFLEtBQ0UsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFDL0IsTUFBTSxJQUFJLElBQUksRUFDZCxNQUFNLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFDN0I7WUFDQSxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDM0M7UUFFRCw0RUFBNEU7UUFDNUUsaUVBQWlFO1FBQ2pFLElBQUksQ0FBQyxTQUFTLEdBQUcsYUFBYSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFMUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBRXBCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQVNELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO0lBQzlCLENBQUM7SUFFTSxRQUFRLENBQUMsT0FBb0I7UUFDbEMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFUyxhQUFhLENBQUMsT0FBb0I7UUFDMUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRVMsc0JBQXNCLENBQzlCLElBQWUsRUFDZixLQUEyQztRQUUzQyxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDbEMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNwQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxXQUFXLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUM7WUFDbkQsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7Z0JBQ3hCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3JELElBQUksQ0FBQyxJQUFJLENBQ1AsR0FBRyx1QkFBYSxtQkFBbUIsV0FBVyxJQUFJLFNBQVMsQ0FBQyxTQUFTLEdBQUcsQ0FDekUsQ0FBQzthQUNIO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLFdBQVcsRUFBRSxDQUFDLENBQUM7U0FDckM7YUFBTTtZQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQztTQUMxQztRQUNELHlFQUF5RTtRQUN6RSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25CLENBQUM7Q0FDRjtBQW5FRCx3QkFtRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2RlTWFrZXIgfSBmcm9tICdjb2RlbWFrZXInO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBBcGlMb2NhdGlvbiB9IGZyb20gJ2pzaWktcm9zZXR0YSc7XG5cbmltcG9ydCB7IFNwZWNpYWxEZXBlbmRlbmNpZXMgfSBmcm9tICcuLi9kZXBlbmRlbmNpZXMnO1xuaW1wb3J0IHsgRW1pdENvbnRleHQgfSBmcm9tICcuLi9lbWl0LWNvbnRleHQnO1xuaW1wb3J0IHsgUGFja2FnZSB9IGZyb20gJy4uL3BhY2thZ2UnO1xuaW1wb3J0IHsgSlNJSV9SVF9BTElBUyB9IGZyb20gJy4uL3J1bnRpbWUnO1xuaW1wb3J0IHsgR29DbGFzcyB9IGZyb20gJy4vY2xhc3MnO1xuaW1wb3J0IHsgR29JbnRlcmZhY2UgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBHb1R5cGU8VCBleHRlbmRzIFR5cGUgPSBUeXBlPiB7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBmcW46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHByb3h5TmFtZTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXBpTG9jYXRpb246IEFwaUxvY2F0aW9uO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgcGtnOiBQYWNrYWdlLCBwdWJsaWMgcmVhZG9ubHkgdHlwZTogVCkge1xuICAgIHRoaXMubmFtZSA9IHR5cGUubmFtZTtcblxuICAgIC8vIFByZWZpeCB3aXRoIHRoZSBuZXN0aW5nIHBhcmVudCBuYW1lKHMpLCB1c2luZyBhbiBfIGRlbGltaXRlci5cbiAgICBmb3IgKFxuICAgICAgbGV0IHBhcmVudCA9IHR5cGUubmVzdGluZ1BhcmVudDtcbiAgICAgIHBhcmVudCAhPSBudWxsO1xuICAgICAgcGFyZW50ID0gcGFyZW50Lm5lc3RpbmdQYXJlbnRcbiAgICApIHtcbiAgICAgIHRoaXMubmFtZSA9IGAke3BhcmVudC5uYW1lfV8ke3RoaXMubmFtZX1gO1xuICAgIH1cblxuICAgIC8vIEFkZCBcImpzaWlQcm94eV9cIiBwcmVmaXggdG8gcHJpdmF0ZSBzdHJ1Y3QgbmFtZSB0byBhdm9pZCBrZXl3b3JkIGNvbmZsaWN0c1xuICAgIC8vIHN1Y2ggYXMgXCJkZWZhdWx0XCIuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2pzaWkvaXNzdWVzLzI2MzdcbiAgICB0aGlzLnByb3h5TmFtZSA9IGBqc2lpUHJveHlfJHt0aGlzLm5hbWV9YDtcblxuICAgIHRoaXMuZnFuID0gdHlwZS5mcW47XG5cbiAgICB0aGlzLmFwaUxvY2F0aW9uID0geyBhcGk6ICd0eXBlJywgZnFuOiB0aGlzLmZxbiB9O1xuICB9XG5cbiAgcHVibGljIGFic3RyYWN0IGVtaXQoY29udGV4dDogRW1pdENvbnRleHQpOiB2b2lkO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBlbWl0UmVnaXN0cmF0aW9uKGNvZGU6IENvZGVNYWtlcik6IHZvaWQ7XG5cbiAgcHVibGljIGFic3RyYWN0IGdldCBkZXBlbmRlbmNpZXMoKTogUGFja2FnZVtdO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0IHNwZWNpYWxEZXBlbmRlbmNpZXMoKTogU3BlY2lhbERlcGVuZGVuY2llcztcblxuICBwdWJsaWMgZ2V0IG5hbWVzcGFjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wa2cucGFja2FnZU5hbWU7XG4gIH1cblxuICBwdWJsaWMgZW1pdERvY3MoY29udGV4dDogRW1pdENvbnRleHQpOiB2b2lkIHtcbiAgICBjb250ZXh0LmRvY3VtZW50ZXIuZW1pdCh0aGlzLnR5cGUuZG9jcywgdGhpcy5hcGlMb2NhdGlvbik7XG4gIH1cblxuICBwcm90ZWN0ZWQgZW1pdFN0YWJpbGl0eShjb250ZXh0OiBFbWl0Q29udGV4dCk6IHZvaWQge1xuICAgIGNvbnRleHQuZG9jdW1lbnRlci5lbWl0U3RhYmlsaXR5KHRoaXMudHlwZS5kb2NzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBlbWl0UHJveHlNYWtlckZ1bmN0aW9uKFxuICAgIGNvZGU6IENvZGVNYWtlcixcbiAgICBiYXNlczogUmVhZG9ubHlBcnJheTxHb0NsYXNzIHwgR29JbnRlcmZhY2U+LFxuICApOiB2b2lkIHtcbiAgICBjb2RlLm9wZW4oJ2Z1bmMoKSBpbnRlcmZhY2V7fSB7Jyk7XG4gICAgaWYgKGJhc2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGluc3RhbmNlVmFyID0gdGhpcy5wcm94eU5hbWVbMF07XG4gICAgICBjb2RlLmxpbmUoYCR7aW5zdGFuY2VWYXJ9IDo9ICR7dGhpcy5wcm94eU5hbWV9e31gKTtcbiAgICAgIGZvciAoY29uc3QgYmFzZSBvZiBiYXNlcykge1xuICAgICAgICBjb25zdCBiYXNlRW1iZWQgPSB0aGlzLnBrZy5yZXNvbHZlRW1iZWRkZWRUeXBlKGJhc2UpO1xuICAgICAgICBjb2RlLmxpbmUoXG4gICAgICAgICAgYCR7SlNJSV9SVF9BTElBU30uSW5pdEpzaWlQcm94eSgmJHtpbnN0YW5jZVZhcn0uJHtiYXNlRW1iZWQuZmllbGROYW1lfSlgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgY29kZS5saW5lKGByZXR1cm4gJiR7aW5zdGFuY2VWYXJ9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvZGUubGluZShgcmV0dXJuICYke3RoaXMucHJveHlOYW1lfXt9YCk7XG4gICAgfVxuICAgIC8vIFRoaXMgaXMgYWx3YXlzIHVzZWQgYXMgYSBmdW5jdGlvbiBhcmd1bWVudCwgc28gd2UgYWRkIGEgdHJhaWxpbmcgY29tbWFcbiAgICBjb2RlLmNsb3NlKCd9LCcpO1xuICB9XG59XG4iXX0=
|
|
@@ -31,7 +31,7 @@ declare class InterfaceMethod extends GoMethod {
|
|
|
31
31
|
readonly method: Method;
|
|
32
32
|
readonly runtimeCall: MethodCall;
|
|
33
33
|
constructor(parent: GoInterface, method: Method);
|
|
34
|
-
emitDecl(
|
|
34
|
+
emitDecl({ code, documenter }: EmitContext): void;
|
|
35
35
|
emit({ code }: EmitContext): void;
|
|
36
36
|
get specialDependencies(): SpecialDependencies;
|
|
37
37
|
private get returnTypeString();
|
|
@@ -160,10 +160,13 @@ class InterfaceProperty extends type_member_1.GoProperty {
|
|
|
160
160
|
return this.reference.scopedReference(this.parent.pkg);
|
|
161
161
|
}
|
|
162
162
|
emit({ code, documenter }) {
|
|
163
|
-
documenter.emit(this.property.docs);
|
|
163
|
+
documenter.emit(this.property.docs, this.apiLocation);
|
|
164
164
|
code.line(`${this.name}() ${this.returnType}`);
|
|
165
165
|
if (!this.property.immutable) {
|
|
166
|
-
|
|
166
|
+
// For setters, only emit the stability. Copying the documentation from
|
|
167
|
+
// the getter might result in confusing documentation. This is an "okay"
|
|
168
|
+
// middle-ground.
|
|
169
|
+
documenter.emitStability(this.property.docs);
|
|
167
170
|
code.line(`Set${this.name}(${this.name[0].toLowerCase()} ${this.returnType})`);
|
|
168
171
|
}
|
|
169
172
|
}
|
|
@@ -175,12 +178,8 @@ class InterfaceMethod extends type_member_1.GoMethod {
|
|
|
175
178
|
this.method = method;
|
|
176
179
|
this.runtimeCall = new runtime_1.MethodCall(this);
|
|
177
180
|
}
|
|
178
|
-
emitDecl(
|
|
179
|
-
|
|
180
|
-
if (docs) {
|
|
181
|
-
context.documenter.emit(docs);
|
|
182
|
-
}
|
|
183
|
-
const { code } = context;
|
|
181
|
+
emitDecl({ code, documenter }) {
|
|
182
|
+
documenter.emit(this.method.docs, this.apiLocation);
|
|
184
183
|
code.line(`${this.name}(${this.paramString()})${this.returnTypeString}`);
|
|
185
184
|
}
|
|
186
185
|
emit({ code }) {
|
|
@@ -205,4 +204,4 @@ class InterfaceMethod extends type_member_1.GoMethod {
|
|
|
205
204
|
return ((_a = this.reference) === null || _a === void 0 ? void 0 : _a.void) ? '' : ` ${this.returnType}`;
|
|
206
205
|
}
|
|
207
206
|
}
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLDhDQUE4QztBQUk5Qyx3Q0FBdUQ7QUFDdkQsa0NBQXNFO0FBQ3RFLHVDQUFtQztBQUNuQywyREFBZ0Q7QUFDaEQsK0NBQXFEO0FBRXJELE1BQWEsV0FBWSxTQUFRLGdCQUFxQjtJQU1wRCxZQUFtQixHQUFZLEVBQUUsSUFBbUI7UUFDbEQsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVO2FBQzNCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQ2xELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYTthQUNqQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFNUIsMEVBQTBFO1FBQzFFLDJFQUEyRTtRQUMzRSxzRUFBc0U7UUFDdEUsNEVBQTRFO1FBQzVFLHlDQUF5QztRQUN6QyxJQUNFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDMUIsSUFBSTtpQkFDRCxhQUFhLENBQUMsSUFBSSxDQUFDO2lCQUNuQixJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQ2xFO1lBQ0EsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxVQUFVO2lCQUN4QyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQztpQkFDbEUsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7aUJBQ2xELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFNUIsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxhQUFhO2lCQUM5QyxNQUFNLENBQ0wsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsWUFBWSxLQUFLLElBQUksQ0FDakU7aUJBQ0EsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztpQkFDeEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFTSxJQUFJLENBQUMsT0FBb0I7O1FBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdkIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLENBQUM7UUFFOUMsNEJBQTRCO1FBQzVCLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUNQLElBQUksNkJBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQ3hFLENBQUM7U0FDSDtRQUVELEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzFCO1FBRUQsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDcEI7UUFFRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRVosSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLElBQUksQ0FBQyxTQUFTLFNBQVMsQ0FBQyxDQUFDO1FBQ2hELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzdCLDZCQUE2QjtZQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDaEM7YUFBTTtZQUNMLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3JEO1NBQ0Y7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRVosS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDdEI7UUFFRCxLQUFLLE1BQU0sTUFBTSxVQUFJLElBQUksQ0FBQyxvQkFBb0IsbUNBQUksRUFBRSxFQUFFO1lBQ3BELE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDdEI7UUFFRCxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUU5QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUMvQjtTQUNGO1FBRUQsS0FBSyxNQUFNLElBQUksVUFBSSxJQUFJLENBQUMsdUJBQXVCLG1DQUFJLEVBQUUsRUFBRTtZQUNyRCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRTlCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQy9CO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsSUFBZTtRQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsdUJBQWEscUJBQXFCLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLElBQUksaUJBQWlCLENBQUMsQ0FBQztRQUUxRCxNQUFNLFVBQVUsR0FBRztZQUNqQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtpQkFDcEIsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7aUJBQ2xDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3JELEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhO2lCQUN2QixNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztpQkFDdEMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLHdCQUFVLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ3JELENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQixJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUNqQzthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLHVCQUFhLFVBQVUsQ0FBQyxDQUFDO1lBQ3hDLEtBQUssTUFBTSxNQUFNLElBQUksVUFBVSxFQUFFO2dCQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7YUFDbEM7WUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTztZQUNMLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztZQUNwRCxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUM7U0FDbEQsQ0FBQyxNQUFNLENBQ04sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2IsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLE9BQU87WUFDbkMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUk7WUFDMUIsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRO1lBQ3RCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJO1NBQzNCLENBQUMsRUFDRjtZQUNFLE9BQU8sRUFBRSxLQUFLO1lBQ2QsSUFBSSxFQUFFLEtBQUs7WUFDWCxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BFLElBQUksRUFBRSxLQUFLO1NBQ1osQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTthQUN4QixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFnQixDQUFDO2FBQ2hFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsbUJBQW1CO1FBQzVCLE1BQU0sUUFBUSxHQUFjLEVBQUUsQ0FBQztRQUMvQixLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDbkMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUN6QixJQUFJLEdBQUcsRUFBRTtnQkFDUCxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3BCO1NBQ0Y7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU87WUFDTCxHQUFHLElBQUksQ0FBQyxtQkFBbUI7WUFDM0IsR0FBRyw0QkFBcUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ3RDLEdBQUcsMkJBQW9CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUNyQyxHQUFHLDRCQUFxQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDMUMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWpMRCxrQ0FpTEM7QUFFRCxNQUFNLGlCQUFrQixTQUFRLHdCQUFVO0lBQ3hDLFlBQ2tCLE1BQW1CLEVBQ25CLFFBQWtCO1FBRWxDLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFIUixXQUFNLEdBQU4sTUFBTSxDQUFhO1FBQ25CLGFBQVEsR0FBUixRQUFRLENBQVU7SUFHcEMsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVNLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQWU7UUFDM0MsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBRS9DLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRTtZQUM1QixVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLElBQUksQ0FDUCxNQUFNLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQ3BFLENBQUM7U0FDSDtJQUNILENBQUM7Q0FDRjtBQUVELE1BQU0sZUFBZ0IsU0FBUSxzQkFBUTtJQUdwQyxZQUNrQixNQUFtQixFQUNuQixNQUFjO1FBRTlCLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFITixXQUFNLEdBQU4sTUFBTSxDQUFhO1FBQ25CLFdBQU0sR0FBTixNQUFNLENBQVE7UUFHOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLG9CQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxPQUFvQjtRQUNsQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUM5QixJQUFJLElBQUksRUFBRTtZQUNSLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRU0sSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFlO1FBQy9CLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FDWixTQUFTLElBQUksQ0FBQyxXQUFXLEtBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsU0FDZCxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQzNELENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU1QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQVcsbUJBQW1COztRQUM1QixPQUFPO1lBQ0wsT0FBTyxFQUFFLElBQUk7WUFDYixJQUFJLEVBQUUsS0FBSztZQUNYLFFBQVEsRUFBRSxLQUFLO1lBQ2YsSUFBSSxFQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQztnQkFDakUsQ0FBQyxRQUFDLElBQUksQ0FBQyxTQUFTLDBDQUFFLG1CQUFtQixDQUFDLElBQUksQ0FBQTtTQUM3QyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQVksZ0JBQWdCOztRQUMxQixPQUFPLE9BQUEsSUFBSSxDQUFDLFNBQVMsMENBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzNELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gJ2NvZGVtYWtlcic7XG5pbXBvcnQgeyBJbnRlcmZhY2VUeXBlLCBNZXRob2QsIFByb3BlcnR5IH0gZnJvbSAnanNpaS1yZWZsZWN0JztcblxuaW1wb3J0ICogYXMgY29tcGFyYXRvcnMgZnJvbSAnLi4vY29tcGFyYXRvcnMnO1xuaW1wb3J0IHsgU3BlY2lhbERlcGVuZGVuY2llcyB9IGZyb20gJy4uL2RlcGVuZGVuY2llcyc7XG5pbXBvcnQgeyBFbWl0Q29udGV4dCB9IGZyb20gJy4uL2VtaXQtY29udGV4dCc7XG5pbXBvcnQgeyBQYWNrYWdlIH0gZnJvbSAnLi4vcGFja2FnZSc7XG5pbXBvcnQgeyBKU0lJX1JUX0FMSUFTLCBNZXRob2RDYWxsIH0gZnJvbSAnLi4vcnVudGltZSc7XG5pbXBvcnQgeyBnZXRNZW1iZXJEZXBlbmRlbmNpZXMsIGdldFBhcmFtRGVwZW5kZW5jaWVzIH0gZnJvbSAnLi4vdXRpbCc7XG5pbXBvcnQgeyBHb1R5cGUgfSBmcm9tICcuL2dvLXR5cGUnO1xuaW1wb3J0IHsgR29UeXBlUmVmIH0gZnJvbSAnLi9nby10eXBlLXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBHb01ldGhvZCwgR29Qcm9wZXJ0eSB9IGZyb20gJy4vdHlwZS1tZW1iZXInO1xuXG5leHBvcnQgY2xhc3MgR29JbnRlcmZhY2UgZXh0ZW5kcyBHb1R5cGU8SW50ZXJmYWNlVHlwZT4ge1xuICBwdWJsaWMgcmVhZG9ubHkgbWV0aG9kczogSW50ZXJmYWNlTWV0aG9kW107XG4gIHB1YmxpYyByZWFkb25seSByZWltcGxlbWVudGVkTWV0aG9kcz86IHJlYWRvbmx5IEludGVyZmFjZU1ldGhvZFtdO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvcGVydGllczogSW50ZXJmYWNlUHJvcGVydHlbXTtcbiAgcHVibGljIHJlYWRvbmx5IHJlaW1wbGVtZW50ZWRQcm9wZXJ0aWVzPzogcmVhZG9ubHkgSW50ZXJmYWNlUHJvcGVydHlbXTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocGtnOiBQYWNrYWdlLCB0eXBlOiBJbnRlcmZhY2VUeXBlKSB7XG4gICAgc3VwZXIocGtnLCB0eXBlKTtcblxuICAgIHRoaXMubWV0aG9kcyA9IHR5cGUub3duTWV0aG9kc1xuICAgICAgLm1hcCgobWV0aG9kKSA9PiBuZXcgSW50ZXJmYWNlTWV0aG9kKHRoaXMsIG1ldGhvZCkpXG4gICAgICAuc29ydChjb21wYXJhdG9ycy5ieU5hbWUpO1xuXG4gICAgdGhpcy5wcm9wZXJ0aWVzID0gdHlwZS5vd25Qcm9wZXJ0aWVzXG4gICAgICAubWFwKChwcm9wKSA9PiBuZXcgSW50ZXJmYWNlUHJvcGVydHkodGhpcywgcHJvcCkpXG4gICAgICAuc29ydChjb21wYXJhdG9ycy5ieU5hbWUpO1xuXG4gICAgLy8gSWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBiYXNlLCBhbmQgYW55IGFuY2VzdG9yIChpbmNsdWRpbmcgdHJhbnNpdGl2ZSlcbiAgICAvLyBjb21lcyBmcm9tIGEgZGlmZmVyZW50IGFzc2VtYmx5LCB3ZSB3aWxsIHJlLWltcGxlbWVudCBhbGwgbWVtYmVycyBvbiB0aGVcbiAgICAvLyBwcm94eSBzdHJ1Y3QsIGFzIG90aGVyd2lzZSB3ZSBydW4gdGhlIHJpc2sgb2YgdW4tcHJvbW90YWJsZSBtZXRob2RzXG4gICAgLy8gY2F1c2VkIGJ5IGluaGVyaXRpbmcgdGhlIHNhbWUgaW50ZXJmYWNlIHZpYSBtdWx0aXBsZSBwYXRocyAoc2luY2Ugd2UgaGF2ZVxuICAgIC8vIHRvIHJlcHJlc2VudCB0aG9zZSBhcyBlbWJlZGRlZCB0eXBlcykuXG4gICAgaWYgKFxuICAgICAgdHlwZS5pbnRlcmZhY2VzLmxlbmd0aCA+IDEgJiZcbiAgICAgIHR5cGVcbiAgICAgICAgLmdldEludGVyZmFjZXModHJ1ZSlcbiAgICAgICAgLnNvbWUoKGFuY2VzdG9yKSA9PiBhbmNlc3Rvci5hc3NlbWJseS5mcW4gIT09IHR5cGUuYXNzZW1ibHkuZnFuKVxuICAgICkge1xuICAgICAgdGhpcy5yZWltcGxlbWVudGVkTWV0aG9kcyA9IHR5cGUuYWxsTWV0aG9kc1xuICAgICAgICAuZmlsdGVyKChtZXRob2QpID0+ICFtZXRob2Quc3RhdGljICYmIG1ldGhvZC5kZWZpbmluZ1R5cGUgIT09IHR5cGUpXG4gICAgICAgIC5tYXAoKG1ldGhvZCkgPT4gbmV3IEludGVyZmFjZU1ldGhvZCh0aGlzLCBtZXRob2QpKVxuICAgICAgICAuc29ydChjb21wYXJhdG9ycy5ieU5hbWUpO1xuXG4gICAgICB0aGlzLnJlaW1wbGVtZW50ZWRQcm9wZXJ0aWVzID0gdHlwZS5hbGxQcm9wZXJ0aWVzXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgKHByb3BlcnR5KSA9PiAhcHJvcGVydHkuc3RhdGljICYmIHByb3BlcnR5LmRlZmluaW5nVHlwZSAhPT0gdHlwZSxcbiAgICAgICAgKVxuICAgICAgICAubWFwKChwcm9wZXJ0eSkgPT4gbmV3IEludGVyZmFjZVByb3BlcnR5KHRoaXMsIHByb3BlcnR5KSlcbiAgICAgICAgLnNvcnQoY29tcGFyYXRvcnMuYnlOYW1lKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZW1pdChjb250ZXh0OiBFbWl0Q29udGV4dCkge1xuICAgIHRoaXMuZW1pdERvY3MoY29udGV4dCk7XG5cbiAgICBjb25zdCB7IGNvZGUgfSA9IGNvbnRleHQ7XG4gICAgY29kZS5vcGVuQmxvY2soYHR5cGUgJHt0aGlzLm5hbWV9IGludGVyZmFjZWApO1xuXG4gICAgLy8gZW1iZWQgZXh0ZW5kZWQgaW50ZXJmYWNlc1xuICAgIGZvciAoY29uc3QgaWZhY2Ugb2YgdGhpcy5leHRlbmRzKSB7XG4gICAgICBjb2RlLmxpbmUoXG4gICAgICAgIG5ldyBHb1R5cGVSZWYodGhpcy5wa2cucm9vdCwgaWZhY2UudHlwZS5yZWZlcmVuY2UpLnNjb3BlZE5hbWUodGhpcy5wa2cpLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IG1ldGhvZCBvZiB0aGlzLm1ldGhvZHMpIHtcbiAgICAgIG1ldGhvZC5lbWl0RGVjbChjb250ZXh0KTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgdGhpcy5wcm9wZXJ0aWVzKSB7XG4gICAgICBwcm9wLmVtaXQoY29udGV4dCk7XG4gICAgfVxuXG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG5cbiAgICBjb2RlLmxpbmUoYC8vIFRoZSBqc2lpIHByb3h5IGZvciAke3RoaXMubmFtZX1gKTtcbiAgICBjb2RlLm9wZW5CbG9jayhgdHlwZSAke3RoaXMucHJveHlOYW1lfSBzdHJ1Y3RgKTtcbiAgICBpZiAodGhpcy5leHRlbmRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gRW5zdXJlIHRoaXMgaXMgbm90IDAtd2lkdGhcbiAgICAgIGNvZGUubGluZSgnXyBieXRlIC8vIHBhZGRpbmcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChjb25zdCBiYXNlIG9mIHRoaXMuZXh0ZW5kcykge1xuICAgICAgICBjb2RlLmxpbmUodGhpcy5wa2cucmVzb2x2ZUVtYmVkZGVkVHlwZShiYXNlKS5lbWJlZCk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIGNvZGUubGluZSgpO1xuXG4gICAgZm9yIChjb25zdCBtZXRob2Qgb2YgdGhpcy5tZXRob2RzKSB7XG4gICAgICBtZXRob2QuZW1pdChjb250ZXh0KTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IG1ldGhvZCBvZiB0aGlzLnJlaW1wbGVtZW50ZWRNZXRob2RzID8/IFtdKSB7XG4gICAgICBtZXRob2QuZW1pdChjb250ZXh0KTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgdGhpcy5wcm9wZXJ0aWVzKSB7XG4gICAgICBwcm9wLmVtaXRHZXR0ZXJQcm94eShjb250ZXh0KTtcblxuICAgICAgaWYgKCFwcm9wLmltbXV0YWJsZSkge1xuICAgICAgICBwcm9wLmVtaXRTZXR0ZXJQcm94eShjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgdGhpcy5yZWltcGxlbWVudGVkUHJvcGVydGllcyA/PyBbXSkge1xuICAgICAgcHJvcC5lbWl0R2V0dGVyUHJveHkoY29udGV4dCk7XG5cbiAgICAgIGlmICghcHJvcC5pbW11dGFibGUpIHtcbiAgICAgICAgcHJvcC5lbWl0U2V0dGVyUHJveHkoY29udGV4dCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGVtaXRSZWdpc3RyYXRpb24oY29kZTogQ29kZU1ha2VyKTogdm9pZCB7XG4gICAgY29kZS5vcGVuKGAke0pTSUlfUlRfQUxJQVN9LlJlZ2lzdGVySW50ZXJmYWNlKGApO1xuICAgIGNvZGUubGluZShgXCIke3RoaXMuZnFufVwiLGApO1xuICAgIGNvZGUubGluZShgcmVmbGVjdC5UeXBlT2YoKCoke3RoaXMubmFtZX0pKG5pbCkpLkVsZW0oKSxgKTtcblxuICAgIGNvbnN0IGFsbE1lbWJlcnMgPSBbXG4gICAgICAuLi50aGlzLnR5cGUuYWxsTWV0aG9kc1xuICAgICAgICAuZmlsdGVyKChtZXRob2QpID0+ICFtZXRob2Quc3RhdGljKVxuICAgICAgICAubWFwKChtZXRob2QpID0+IG5ldyBJbnRlcmZhY2VNZXRob2QodGhpcywgbWV0aG9kKSksXG4gICAgICAuLi50aGlzLnR5cGUuYWxsUHJvcGVydGllc1xuICAgICAgICAuZmlsdGVyKChwcm9wZXJ0eSkgPT4gIXByb3BlcnR5LnN0YXRpYylcbiAgICAgICAgLm1hcCgocHJvcGVydHkpID0+IG5ldyBHb1Byb3BlcnR5KHRoaXMsIHByb3BlcnR5KSksXG4gICAgXS5zb3J0KGNvbXBhcmF0b3JzLmJ5TmFtZSk7XG4gICAgaWYgKGFsbE1lbWJlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb2RlLmxpbmUoJ25pbCwgLy8gbm8gbWVtYmVycycpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb2RlLm9wZW4oYFtdJHtKU0lJX1JUX0FMSUFTfS5NZW1iZXJ7YCk7XG4gICAgICBmb3IgKGNvbnN0IG1lbWJlciBvZiBhbGxNZW1iZXJzKSB7XG4gICAgICAgIGNvZGUubGluZShgJHttZW1iZXIub3ZlcnJpZGV9LGApO1xuICAgICAgfVxuICAgICAgY29kZS5jbG9zZSgnfSwnKTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRQcm94eU1ha2VyRnVuY3Rpb24oY29kZSwgdGhpcy5leHRlbmRzKTtcbiAgICBjb2RlLmNsb3NlKCcpJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNwZWNpYWxEZXBlbmRlbmNpZXMoKTogU3BlY2lhbERlcGVuZGVuY2llcyB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLnRoaXMucHJvcGVydGllcy5tYXAoKHApID0+IHAuc3BlY2lhbERlcGVuZGVuY2llcyksXG4gICAgICAuLi50aGlzLm1ldGhvZHMubWFwKChtKSA9PiBtLnNwZWNpYWxEZXBlbmRlbmNpZXMpLFxuICAgIF0ucmVkdWNlKFxuICAgICAgKGFjYywgZWx0KSA9PiAoe1xuICAgICAgICBydW50aW1lOiBhY2MucnVudGltZSB8fCBlbHQucnVudGltZSxcbiAgICAgICAgaW5pdDogYWNjLmluaXQgfHwgZWx0LmluaXQsXG4gICAgICAgIGludGVybmFsOiBhY2MuaW50ZXJuYWwsXG4gICAgICAgIHRpbWU6IGFjYy50aW1lIHx8IGVsdC50aW1lLFxuICAgICAgfSksXG4gICAgICB7XG4gICAgICAgIHJ1bnRpbWU6IGZhbHNlLFxuICAgICAgICBpbml0OiBmYWxzZSxcbiAgICAgICAgaW50ZXJuYWw6IHRoaXMuZXh0ZW5kcy5zb21lKChiYXNlKSA9PiB0aGlzLnBrZy5pc0V4dGVybmFsVHlwZShiYXNlKSksXG4gICAgICAgIHRpbWU6IGZhbHNlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBleHRlbmRzKCk6IEdvSW50ZXJmYWNlW10ge1xuICAgIHJldHVybiB0aGlzLnR5cGUuaW50ZXJmYWNlc1xuICAgICAgLm1hcCgoaWZhY2UpID0+IHRoaXMucGtnLnJvb3QuZmluZFR5cGUoaWZhY2UuZnFuKSBhcyBHb0ludGVyZmFjZSlcbiAgICAgIC5zb3J0KGNvbXBhcmF0b3JzLmJ5TmFtZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGV4dGVuZHNEZXBlbmRlbmNpZXMoKTogUGFja2FnZVtdIHtcbiAgICBjb25zdCBwYWNrYWdlczogUGFja2FnZVtdID0gW107XG4gICAgZm9yIChjb25zdCBpZmFjZVJlZiBvZiB0aGlzLmV4dGVuZHMpIHtcbiAgICAgIGNvbnN0IHBrZyA9IGlmYWNlUmVmLnBrZztcbiAgICAgIGlmIChwa2cpIHtcbiAgICAgICAgcGFja2FnZXMucHVzaChwa2cpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwYWNrYWdlcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGVwZW5kZW5jaWVzKCk6IFBhY2thZ2VbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLnRoaXMuZXh0ZW5kc0RlcGVuZGVuY2llcyxcbiAgICAgIC4uLmdldE1lbWJlckRlcGVuZGVuY2llcyh0aGlzLm1ldGhvZHMpLFxuICAgICAgLi4uZ2V0UGFyYW1EZXBlbmRlbmNpZXModGhpcy5tZXRob2RzKSxcbiAgICAgIC4uLmdldE1lbWJlckRlcGVuZGVuY2llcyh0aGlzLnByb3BlcnRpZXMpLFxuICAgIF07XG4gIH1cbn1cblxuY2xhc3MgSW50ZXJmYWNlUHJvcGVydHkgZXh0ZW5kcyBHb1Byb3BlcnR5IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBwYXJlbnQ6IEdvSW50ZXJmYWNlLFxuICAgIHB1YmxpYyByZWFkb25seSBwcm9wZXJ0eTogUHJvcGVydHksXG4gICkge1xuICAgIHN1cGVyKHBhcmVudCwgcHJvcGVydHkpO1xuICB9XG5cbiAgcHVibGljIGdldCByZXR1cm5UeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlLnNjb3BlZFJlZmVyZW5jZSh0aGlzLnBhcmVudC5wa2cpO1xuICB9XG5cbiAgcHVibGljIGVtaXQoeyBjb2RlLCBkb2N1bWVudGVyIH06IEVtaXRDb250ZXh0KSB7XG4gICAgZG9jdW1lbnRlci5lbWl0KHRoaXMucHJvcGVydHkuZG9jcyk7XG4gICAgY29kZS5saW5lKGAke3RoaXMubmFtZX0oKSAke3RoaXMucmV0dXJuVHlwZX1gKTtcblxuICAgIGlmICghdGhpcy5wcm9wZXJ0eS5pbW11dGFibGUpIHtcbiAgICAgIGRvY3VtZW50ZXIuZW1pdCh0aGlzLnByb3BlcnR5LmRvY3MpO1xuICAgICAgY29kZS5saW5lKFxuICAgICAgICBgU2V0JHt0aGlzLm5hbWV9KCR7dGhpcy5uYW1lWzBdLnRvTG93ZXJDYXNlKCl9ICR7dGhpcy5yZXR1cm5UeXBlfSlgLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuY2xhc3MgSW50ZXJmYWNlTWV0aG9kIGV4dGVuZHMgR29NZXRob2Qge1xuICBwdWJsaWMgcmVhZG9ubHkgcnVudGltZUNhbGw6IE1ldGhvZENhbGw7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBwYXJlbnQ6IEdvSW50ZXJmYWNlLFxuICAgIHB1YmxpYyByZWFkb25seSBtZXRob2Q6IE1ldGhvZCxcbiAgKSB7XG4gICAgc3VwZXIocGFyZW50LCBtZXRob2QpO1xuICAgIHRoaXMucnVudGltZUNhbGwgPSBuZXcgTWV0aG9kQ2FsbCh0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0RGVjbChjb250ZXh0OiBFbWl0Q29udGV4dCkge1xuICAgIGNvbnN0IGRvY3MgPSB0aGlzLm1ldGhvZC5kb2NzO1xuICAgIGlmIChkb2NzKSB7XG4gICAgICBjb250ZXh0LmRvY3VtZW50ZXIuZW1pdChkb2NzKTtcbiAgICB9XG4gICAgY29uc3QgeyBjb2RlIH0gPSBjb250ZXh0O1xuICAgIGNvZGUubGluZShgJHt0aGlzLm5hbWV9KCR7dGhpcy5wYXJhbVN0cmluZygpfSkke3RoaXMucmV0dXJuVHlwZVN0cmluZ31gKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0KHsgY29kZSB9OiBFbWl0Q29udGV4dCkge1xuICAgIGNvbnN0IG5hbWUgPSB0aGlzLm5hbWU7XG4gICAgY29kZS5vcGVuQmxvY2soXG4gICAgICBgZnVuYyAoJHt0aGlzLmluc3RhbmNlQXJnfSAqJHtcbiAgICAgICAgdGhpcy5wYXJlbnQucHJveHlOYW1lXG4gICAgICB9KSAke25hbWV9KCR7dGhpcy5wYXJhbVN0cmluZygpfSkke3RoaXMucmV0dXJuVHlwZVN0cmluZ31gLFxuICAgICk7XG5cbiAgICB0aGlzLnJ1bnRpbWVDYWxsLmVtaXQoY29kZSk7XG5cbiAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICBjb2RlLmxpbmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3BlY2lhbERlcGVuZGVuY2llcygpOiBTcGVjaWFsRGVwZW5kZW5jaWVzIHtcbiAgICByZXR1cm4ge1xuICAgICAgcnVudGltZTogdHJ1ZSxcbiAgICAgIGluaXQ6IGZhbHNlLFxuICAgICAgaW50ZXJuYWw6IGZhbHNlLFxuICAgICAgdGltZTpcbiAgICAgICAgdGhpcy5wYXJhbWV0ZXJzLnNvbWUoKHApID0+IHAucmVmZXJlbmNlLnNwZWNpYWxEZXBlbmRlbmNpZXMudGltZSkgfHxcbiAgICAgICAgISF0aGlzLnJlZmVyZW5jZT8uc3BlY2lhbERlcGVuZGVuY2llcy50aW1lLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldCByZXR1cm5UeXBlU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlPy52b2lkID8gJycgOiBgICR7dGhpcy5yZXR1cm5UeXBlfWA7XG4gIH1cbn1cbiJdfQ==
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLDhDQUE4QztBQUk5Qyx3Q0FBdUQ7QUFDdkQsa0NBQXNFO0FBQ3RFLHVDQUFtQztBQUNuQywyREFBZ0Q7QUFDaEQsK0NBQXFEO0FBRXJELE1BQWEsV0FBWSxTQUFRLGdCQUFxQjtJQU1wRCxZQUFtQixHQUFZLEVBQUUsSUFBbUI7UUFDbEQsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVO2FBQzNCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQ2xELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYTthQUNqQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFNUIsMEVBQTBFO1FBQzFFLDJFQUEyRTtRQUMzRSxzRUFBc0U7UUFDdEUsNEVBQTRFO1FBQzVFLHlDQUF5QztRQUN6QyxJQUNFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDMUIsSUFBSTtpQkFDRCxhQUFhLENBQUMsSUFBSSxDQUFDO2lCQUNuQixJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQ2xFO1lBQ0EsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxV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Q0FBQyxRQUFDLElBQUksQ0FBQyxTQUFTLDBDQUFFLG1CQUFtQixDQUFDLElBQUksQ0FBQTtTQUM3QyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQVksZ0JBQWdCOztRQUMxQixPQUFPLE9BQUEsSUFBSSxDQUFDLFNBQVMsMENBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzNELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gJ2NvZGVtYWtlcic7XG5pbXBvcnQgeyBJbnRlcmZhY2VUeXBlLCBNZXRob2QsIFByb3BlcnR5IH0gZnJvbSAnanNpaS1yZWZsZWN0JztcblxuaW1wb3J0ICogYXMgY29tcGFyYXRvcnMgZnJvbSAnLi4vY29tcGFyYXRvcnMnO1xuaW1wb3J0IHsgU3BlY2lhbERlcGVuZGVuY2llcyB9IGZyb20gJy4uL2RlcGVuZGVuY2llcyc7XG5pbXBvcnQgeyBFbWl0Q29udGV4dCB9IGZyb20gJy4uL2VtaXQtY29udGV4dCc7XG5pbXBvcnQgeyBQYWNrYWdlIH0gZnJvbSAnLi4vcGFja2FnZSc7XG5pbXBvcnQgeyBKU0lJX1JUX0FMSUFTLCBNZXRob2RDYWxsIH0gZnJvbSAnLi4vcnVudGltZSc7XG5pbXBvcnQgeyBnZXRNZW1iZXJEZXBlbmRlbmNpZXMsIGdldFBhcmFtRGVwZW5kZW5jaWVzIH0gZnJvbSAnLi4vdXRpbCc7XG5pbXBvcnQgeyBHb1R5cGUgfSBmcm9tICcuL2dvLXR5cGUnO1xuaW1wb3J0IHsgR29UeXBlUmVmIH0gZnJvbSAnLi9nby10eXBlLXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBHb01ldGhvZCwgR29Qcm9wZXJ0eSB9IGZyb20gJy4vdHlwZS1tZW1iZXInO1xuXG5leHBvcnQgY2xhc3MgR29JbnRlcmZhY2UgZXh0ZW5kcyBHb1R5cGU8SW50ZXJmYWNlVHlwZT4ge1xuICBwdWJsaWMgcmVhZG9ubHkgbWV0aG9kczogSW50ZXJmYWNlTWV0aG9kW107XG4gIHB1YmxpYyByZWFkb25seSByZWltcGxlbWVudGVkTWV0aG9kcz86IHJlYWRvbmx5IEludGVyZmFjZU1ldGhvZFtdO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvcGVydGllczogSW50ZXJmYWNlUHJvcGVydHlbXTtcbiAgcHVibGljIHJlYWRvbmx5IHJlaW1wbGVtZW50ZWRQcm9wZXJ0aWVzPzogcmVhZG9ubHkgSW50ZXJmYWNlUHJvcGVydHlbXTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocGtnOiBQYWNrYWdlLCB0eXBlOiBJbnRlcmZhY2VUeXBlKSB7XG4gICAgc3VwZXIocGtnLCB0eXBlKTtcblxuICAgIHRoaXMubWV0aG9kcyA9IHR5cGUub3duTWV0aG9kc1xuICAgICAgLm1hcCgobWV0aG9kKSA9PiBuZXcgSW50ZXJmYWNlTWV0aG9kKHRoaXMsIG1ldGhvZCkpXG4gICAgICAuc29ydChjb21wYXJhdG9ycy5ieU5hbWUpO1xuXG4gICAgdGhpcy5wcm9wZXJ0aWVzID0gdHlwZS5vd25Qcm9wZXJ0aWVzXG4gICAgICAubWFwKChwcm9wKSA9PiBuZXcgSW50ZXJmYWNlUHJvcGVydHkodGhpcywgcHJvcCkpXG4gICAgICAuc29ydChjb21wYXJhdG9ycy5ieU5hbWUpO1xuXG4gICAgLy8gSWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBiYXNlLCBhbmQgYW55IGFuY2VzdG9yIChpbmNsdWRpbmcgdHJhbnNpdGl2ZSlcbiAgICAvLyBjb21lcyBmcm9tIGEgZGlmZmVyZW50IGFzc2VtYmx5LCB3ZSB3aWxsIHJlLWltcGxlbWVudCBhbGwgbWVtYmVycyBvbiB0aGVcbiAgICAvLyBwcm94eSBzdHJ1Y3QsIGFzIG90aGVyd2lzZSB3ZSBydW4gdGhlIHJpc2sgb2YgdW4tcHJvbW90YWJsZSBtZXRob2RzXG4gICAgLy8gY2F1c2VkIGJ5IGluaGVyaXRpbmcgdGhlIHNhbWUgaW50ZXJmYWNlIHZpYSBtdWx0aXBsZSBwYXRocyAoc2luY2Ugd2UgaGF2ZVxuICAgIC8vIHRvIHJlcHJlc2VudCB0aG9zZSBhcyBlbWJlZGRlZCB0eXBlcykuXG4gICAgaWYgKFxuICAgICAgdHlwZS5pbnRlcmZhY2VzLmxlbmd0aCA+IDEgJiZcbiAgICAgIHR5cGVcbiAgICAgICAgLmdldEludGVyZmFjZXModHJ1ZSlcbiAgICAgICAgLnNvbWUoKGFuY2VzdG9yKSA9PiBhbmNlc3Rvci5hc3NlbWJseS5mcW4gIT09IHR5cGUuYXNzZW1ibHkuZnFuKVxuICAgICkge1xuICAgICAgdGhpcy5yZWltcGxlbWVudGVkTWV0aG9kcyA9IHR5cGUuYWxsTWV0aG9kc1xuICAgICAgICAuZmlsdGVyKChtZXRob2QpID0+ICFtZXRob2Quc3RhdGljICYmIG1ldGhvZC5kZWZpbmluZ1R5cGUgIT09IHR5cGUpXG4gICAgICAgIC5tYXAoKG1ldGhvZCkgPT4gbmV3IEludGVyZmFjZU1ldGhvZCh0aGlzLCBtZXRob2QpKVxuICAgICAgICAuc29ydChjb21wYXJhdG9ycy5ieU5hbWUpO1xuXG4gICAgICB0aGlzLnJlaW1wbGVtZW50ZWRQcm9wZXJ0aWVzID0gdHlwZS5hbGxQcm9wZXJ0aWVzXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgKHByb3BlcnR5KSA9PiAhcHJvcGVydHkuc3RhdGljICYmIHByb3BlcnR5LmRlZmluaW5nVHlwZSAhPT0gdHlwZSxcbiAgICAgICAgKVxuICAgICAgICAubWFwKChwcm9wZXJ0eSkgPT4gbmV3IEludGVyZmFjZVByb3BlcnR5KHRoaXMsIHByb3BlcnR5KSlcbiAgICAgICAgLnNvcnQoY29tcGFyYXRvcnMuYnlOYW1lKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZW1pdChjb250ZXh0OiBFbWl0Q29udGV4dCkge1xuICAgIHRoaXMuZW1pdERvY3MoY29udGV4dCk7XG5cbiAgICBjb25zdCB7IGNvZGUgfSA9IGNvbnRleHQ7XG4gICAgY29kZS5vcGVuQmxvY2soYHR5cGUgJHt0aGlzLm5hbWV9IGludGVyZmFjZWApO1xuXG4gICAgLy8gZW1iZWQgZXh0ZW5kZWQgaW50ZXJmYWNlc1xuICAgIGZvciAoY29uc3QgaWZhY2Ugb2YgdGhpcy5leHRlbmRzKSB7XG4gICAgICBjb2RlLmxpbmUoXG4gICAgICAgIG5ldyBHb1R5cGVSZWYodGhpcy5wa2cucm9vdCwgaWZhY2UudHlwZS5yZWZlcmVuY2UpLnNjb3BlZE5hbWUodGhpcy5wa2cpLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IG1ldGhvZCBvZiB0aGlzLm1ldGhvZHMpIHtcbiAgICAgIG1ldGhvZC5lbWl0RGVjbChjb250ZXh0KTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgdGhpcy5wcm9wZXJ0aWVzKSB7XG4gICAgICBwcm9wLmVtaXQoY29udGV4dCk7XG4gICAgfVxuXG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG5cbiAgICBjb2RlLmxpbmUoYC8vIFRoZSBqc2lpIHByb3h5IGZvciAke3RoaXMubmFtZX1gKTtcbiAgICBjb2RlLm9wZW5CbG9jayhgdHlwZSAke3RoaXMucHJveHlOYW1lfSBzdHJ1Y3RgKTtcbiAgICBpZiAodGhpcy5leHRlbmRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gRW5zdXJlIHRoaXMgaXMgbm90IDAtd2lkdGhcbiAgICAgIGNvZGUubGluZSgnXyBieXRlIC8vIHBhZGRpbmcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChjb25zdCBiYXNlIG9mIHRoaXMuZXh0ZW5kcykge1xuICAgICAgICBjb2RlLmxpbmUodGhpcy5wa2cucmVzb2x2ZUVtYmVkZGVkVHlwZShiYXNlKS5lbWJlZCk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIGNvZGUubGluZSgpO1xuXG4gICAgZm9yIChjb25zdCBtZXRob2Qgb2YgdGhpcy5tZXRob2RzKSB7XG4gICAgICBtZXRob2QuZW1pdChjb250ZXh0KTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IG1ldGhvZCBvZiB0aGlzLnJlaW1wbGVtZW50ZWRNZXRob2RzID8/IFtdKSB7XG4gICAgICBtZXRob2QuZW1pdChjb250ZXh0KTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgdGhpcy5wcm9wZXJ0aWVzKSB7XG4gICAgICBwcm9wLmVtaXRHZXR0ZXJQcm94eShjb250ZXh0KTtcblxuICAgICAgaWYgKCFwcm9wLmltbXV0YWJsZSkge1xuICAgICAgICBwcm9wLmVtaXRTZXR0ZXJQcm94eShjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgdGhpcy5yZWltcGxlbWVudGVkUHJvcGVydGllcyA/PyBbXSkge1xuICAgICAgcHJvcC5lbWl0R2V0dGVyUHJveHkoY29udGV4dCk7XG5cbiAgICAgIGlmICghcHJvcC5pbW11dGFibGUpIHtcbiAgICAgICAgcHJvcC5lbWl0U2V0dGVyUHJveHkoY29udGV4dCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGVtaXRSZWdpc3RyYXRpb24oY29kZTogQ29kZU1ha2VyKTogdm9pZCB7XG4gICAgY29kZS5vcGVuKGAke0pTSUlfUlRfQUxJQVN9LlJlZ2lzdGVySW50ZXJmYWNlKGApO1xuICAgIGNvZGUubGluZShgXCIke3RoaXMuZnFufVwiLGApO1xuICAgIGNvZGUubGluZShgcmVmbGVjdC5UeXBlT2YoKCoke3RoaXMubmFtZX0pKG5pbCkpLkVsZW0oKSxgKTtcblxuICAgIGNvbnN0IGFsbE1lbWJlcnMgPSBbXG4gICAgICAuLi50aGlzLnR5cGUuYWxsTWV0aG9kc1xuICAgICAgICAuZmlsdGVyKChtZXRob2QpID0+ICFtZXRob2Quc3RhdGljKVxuICAgICAgICAubWFwKChtZXRob2QpID0+IG5ldyBJbnRlcmZhY2VNZXRob2QodGhpcywgbWV0aG9kKSksXG4gICAgICAuLi50aGlzLnR5cGUuYWxsUHJvcGVydGllc1xuICAgICAgICAuZmlsdGVyKChwcm9wZXJ0eSkgPT4gIXByb3BlcnR5LnN0YXRpYylcbiAgICAgICAgLm1hcCgocHJvcGVydHkpID0+IG5ldyBHb1Byb3BlcnR5KHRoaXMsIHByb3BlcnR5KSksXG4gICAgXS5zb3J0KGNvbXBhcmF0b3JzLmJ5TmFtZSk7XG4gICAgaWYgKGFsbE1lbWJlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb2RlLmxpbmUoJ25pbCwgLy8gbm8gbWVtYmVycycpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb2RlLm9wZW4oYFtdJHtKU0lJX1JUX0FMSUFTfS5NZW1iZXJ7YCk7XG4gICAgICBmb3IgKGNvbnN0IG1lbWJlciBvZiBhbGxNZW1iZXJzKSB7XG4gICAgICAgIGNvZGUubGluZShgJHttZW1iZXIub3ZlcnJpZGV9LGApO1xuICAgICAgfVxuICAgICAgY29kZS5jbG9zZSgnfSwnKTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRQcm94eU1ha2VyRnVuY3Rpb24oY29kZSwgdGhpcy5leHRlbmRzKTtcbiAgICBjb2RlLmNsb3NlKCcpJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNwZWNpYWxEZXBlbmRlbmNpZXMoKTogU3BlY2lhbERlcGVuZGVuY2llcyB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLnRoaXMucHJvcGVydGllcy5tYXAoKHApID0+IHAuc3BlY2lhbERlcGVuZGVuY2llcyksXG4gICAgICAuLi50aGlzLm1ldGhvZHMubWFwKChtKSA9PiBtLnNwZWNpYWxEZXBlbmRlbmNpZXMpLFxuICAgIF0ucmVkdWNlKFxuICAgICAgKGFjYywgZWx0KSA9PiAoe1xuICAgICAgICBydW50aW1lOiBhY2MucnVudGltZSB8fCBlbHQucnVudGltZSxcbiAgICAgICAgaW5pdDogYWNjLmluaXQgfHwgZWx0LmluaXQsXG4gICAgICAgIGludGVybmFsOiBhY2MuaW50ZXJuYWwsXG4gICAgICAgIHRpbWU6IGFjYy50aW1lIHx8IGVsdC50aW1lLFxuICAgICAgfSksXG4gICAgICB7XG4gICAgICAgIHJ1bnRpbWU6IGZhbHNlLFxuICAgICAgICBpbml0OiBmYWxzZSxcbiAgICAgICAgaW50ZXJuYWw6IHRoaXMuZXh0ZW5kcy5zb21lKChiYXNlKSA9PiB0aGlzLnBrZy5pc0V4dGVybmFsVHlwZShiYXNlKSksXG4gICAgICAgIHRpbWU6IGZhbHNlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBleHRlbmRzKCk6IEdvSW50ZXJmYWNlW10ge1xuICAgIHJldHVybiB0aGlzLnR5cGUuaW50ZXJmYWNlc1xuICAgICAgLm1hcCgoaWZhY2UpID0+IHRoaXMucGtnLnJvb3QuZmluZFR5cGUoaWZhY2UuZnFuKSBhcyBHb0ludGVyZmFjZSlcbiAgICAgIC5zb3J0KGNvbXBhcmF0b3JzLmJ5TmFtZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGV4dGVuZHNEZXBlbmRlbmNpZXMoKTogUGFja2FnZVtdIHtcbiAgICBjb25zdCBwYWNrYWdlczogUGFja2FnZVtdID0gW107XG4gICAgZm9yIChjb25zdCBpZmFjZVJlZiBvZiB0aGlzLmV4dGVuZHMpIHtcbiAgICAgIGNvbnN0IHBrZyA9IGlmYWNlUmVmLnBrZztcbiAgICAgIGlmIChwa2cpIHtcbiAgICAgICAgcGFja2FnZXMucHVzaChwa2cpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwYWNrYWdlcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGVwZW5kZW5jaWVzKCk6IFBhY2thZ2VbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLnRoaXMuZXh0ZW5kc0RlcGVuZGVuY2llcyxcbiAgICAgIC4uLmdldE1lbWJlckRlcGVuZGVuY2llcyh0aGlzLm1ldGhvZHMpLFxuICAgICAgLi4uZ2V0UGFyYW1EZXBlbmRlbmNpZXModGhpcy5tZXRob2RzKSxcbiAgICAgIC4uLmdldE1lbWJlckRlcGVuZGVuY2llcyh0aGlzLnByb3BlcnRpZXMpLFxuICAgIF07XG4gIH1cbn1cblxuY2xhc3MgSW50ZXJmYWNlUHJvcGVydHkgZXh0ZW5kcyBHb1Byb3BlcnR5IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBwYXJlbnQ6IEdvSW50ZXJmYWNlLFxuICAgIHB1YmxpYyByZWFkb25seSBwcm9wZXJ0eTogUHJvcGVydHksXG4gICkge1xuICAgIHN1cGVyKHBhcmVudCwgcHJvcGVydHkpO1xuICB9XG5cbiAgcHVibGljIGdldCByZXR1cm5UeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlLnNjb3BlZFJlZmVyZW5jZSh0aGlzLnBhcmVudC5wa2cpO1xuICB9XG5cbiAgcHVibGljIGVtaXQoeyBjb2RlLCBkb2N1bWVudGVyIH06IEVtaXRDb250ZXh0KSB7XG4gICAgZG9jdW1lbnRlci5lbWl0KHRoaXMucHJvcGVydHkuZG9jcywgdGhpcy5hcGlMb2NhdGlvbik7XG4gICAgY29kZS5saW5lKGAke3RoaXMubmFtZX0oKSAke3RoaXMucmV0dXJuVHlwZX1gKTtcblxuICAgIGlmICghdGhpcy5wcm9wZXJ0eS5pbW11dGFibGUpIHtcbiAgICAgIC8vIEZvciBzZXR0ZXJzLCBvbmx5IGVtaXQgdGhlIHN0YWJpbGl0eS4gQ29weWluZyB0aGUgZG9jdW1lbnRhdGlvbiBmcm9tXG4gICAgICAvLyB0aGUgZ2V0dGVyIG1pZ2h0IHJlc3VsdCBpbiBjb25mdXNpbmcgZG9jdW1lbnRhdGlvbi4gVGhpcyBpcyBhbiBcIm9rYXlcIlxuICAgICAgLy8gbWlkZGxlLWdyb3VuZC5cbiAgICAgIGRvY3VtZW50ZXIuZW1pdFN0YWJpbGl0eSh0aGlzLnByb3BlcnR5LmRvY3MpO1xuICAgICAgY29kZS5saW5lKFxuICAgICAgICBgU2V0JHt0aGlzLm5hbWV9KCR7dGhpcy5uYW1lWzBdLnRvTG93ZXJDYXNlKCl9ICR7dGhpcy5yZXR1cm5UeXBlfSlgLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuY2xhc3MgSW50ZXJmYWNlTWV0aG9kIGV4dGVuZHMgR29NZXRob2Qge1xuICBwdWJsaWMgcmVhZG9ubHkgcnVudGltZUNhbGw6IE1ldGhvZENhbGw7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBwYXJlbnQ6IEdvSW50ZXJmYWNlLFxuICAgIHB1YmxpYyByZWFkb25seSBtZXRob2Q6IE1ldGhvZCxcbiAgKSB7XG4gICAgc3VwZXIocGFyZW50LCBtZXRob2QpO1xuICAgIHRoaXMucnVudGltZUNhbGwgPSBuZXcgTWV0aG9kQ2FsbCh0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0RGVjbCh7IGNvZGUsIGRvY3VtZW50ZXIgfTogRW1pdENvbnRleHQpIHtcbiAgICBkb2N1bWVudGVyLmVtaXQodGhpcy5tZXRob2QuZG9jcywgdGhpcy5hcGlMb2NhdGlvbik7XG4gICAgY29kZS5saW5lKGAke3RoaXMubmFtZX0oJHt0aGlzLnBhcmFtU3RyaW5nKCl9KSR7dGhpcy5yZXR1cm5UeXBlU3RyaW5nfWApO1xuICB9XG5cbiAgcHVibGljIGVtaXQoeyBjb2RlIH06IEVtaXRDb250ZXh0KSB7XG4gICAgY29uc3QgbmFtZSA9IHRoaXMubmFtZTtcbiAgICBjb2RlLm9wZW5CbG9jayhcbiAgICAgIGBmdW5jICgke3RoaXMuaW5zdGFuY2VBcmd9ICoke1xuICAgICAgICB0aGlzLnBhcmVudC5wcm94eU5hbWVcbiAgICAgIH0pICR7bmFtZX0oJHt0aGlzLnBhcmFtU3RyaW5nKCl9KSR7dGhpcy5yZXR1cm5UeXBlU3RyaW5nfWAsXG4gICAgKTtcblxuICAgIHRoaXMucnVudGltZUNhbGwuZW1pdChjb2RlKTtcblxuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIGNvZGUubGluZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBzcGVjaWFsRGVwZW5kZW5jaWVzKCk6IFNwZWNpYWxEZXBlbmRlbmNpZXMge1xuICAgIHJldHVybiB7XG4gICAgICBydW50aW1lOiB0cnVlLFxuICAgICAgaW5pdDogZmFsc2UsXG4gICAgICBpbnRlcm5hbDogZmFsc2UsXG4gICAgICB0aW1lOlxuICAgICAgICB0aGlzLnBhcmFtZXRlcnMuc29tZSgocCkgPT4gcC5yZWZlcmVuY2Uuc3BlY2lhbERlcGVuZGVuY2llcy50aW1lKSB8fFxuICAgICAgICAhIXRoaXMucmVmZXJlbmNlPy5zcGVjaWFsRGVwZW5kZW5jaWVzLnRpbWUsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHJldHVyblR5cGVTdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZWZlcmVuY2U/LnZvaWQgPyAnJyA6IGAgJHt0aGlzLnJldHVyblR5cGV9YDtcbiAgfVxufVxuIl19
|
|
@@ -28,7 +28,7 @@ class Struct extends go_type_1.GoType {
|
|
|
28
28
|
}
|
|
29
29
|
emit(context) {
|
|
30
30
|
const { code, documenter } = context;
|
|
31
|
-
documenter.emit(this.type.docs);
|
|
31
|
+
documenter.emit(this.type.docs, this.apiLocation);
|
|
32
32
|
code.openBlock(`type ${this.name} struct`);
|
|
33
33
|
for (const property of this.properties) {
|
|
34
34
|
property.emitStructMember(context);
|
|
@@ -44,4 +44,4 @@ class Struct extends go_type_1.GoType {
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
exports.Struct = Struct;
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUFpQztBQU9qQyx3Q0FBMkM7QUFDM0Msa0NBQWdEO0FBQ2hELHVDQUFtQztBQUNuQywrQ0FBMkM7QUFFM0M7O0dBRUc7QUFDSCxNQUFhLE1BQU8sU0FBUSxnQkFBcUI7SUFHL0MsWUFBbUIsTUFBZSxFQUFFLElBQW1CO1FBQ3JELEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFcEIsTUFBTSxDQUNKLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFDakIsMEJBQTBCLElBQUksQ0FBQyxHQUFHLG1CQUFtQixDQUN0RCxDQUFDO1FBRUYsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDdEMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksd0JBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQ3JDLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sNEJBQXFCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFXLG1CQUFtQjtRQUM1QixPQUFPO1lBQ0wsT0FBTyxFQUFFLEtBQUs7WUFDZCxJQUFJLEVBQUUsS0FBSztZQUNYLFFBQVEsRUFBRSxLQUFLO1lBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDO1NBQ3BFLENBQUM7SUFDSixDQUFDO0lBRU0sSUFBSSxDQUFDLE9BQW9CO1FBQzlCLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ3JDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQztRQUMzQyxLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDdEMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3BDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxJQUFlO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyx1QkFBYSxrQkFBa0IsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEIsQ0FBQztDQUNGO0FBOUNELHdCQThDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgQ29kZU1ha2VyIH0gZnJvbSAnY29kZW1ha2VyJztcbmltcG9ydCB7IEludGVyZmFjZVR5cGUgfSBmcm9tICdqc2lpLXJlZmxlY3QnO1xuXG5pbXBvcnQgeyBTcGVjaWFsRGVwZW5kZW5jaWVzIH0gZnJvbSAnLi4vZGVwZW5kZW5jaWVzJztcbmltcG9ydCB7IEVtaXRDb250ZXh0IH0gZnJvbSAnLi4vZW1pdC1jb250ZXh0JztcbmltcG9ydCB7IFBhY2thZ2UgfSBmcm9tICcuLi9wYWNrYWdlJztcbmltcG9ydCB7IEpTSUlfUlRfQUxJQVMgfSBmcm9tICcuLi9ydW50aW1lJztcbmltcG9ydCB7IGdldE1lbWJlckRlcGVuZGVuY2llcyB9IGZyb20gJy4uL3V0aWwnO1xuaW1wb3J0IHsgR29UeXBlIH0gZnJvbSAnLi9nby10eXBlJztcbmltcG9ydCB7IEdvUHJvcGVydHkgfSBmcm9tICcuL3R5cGUtbWVtYmVyJztcblxuLypcbiAqIFN0cnVjdCB3cmFwcyBhIEpTSUkgZGF0YXR5cGUgaW50ZXJmYWNlIGFrYSwgc3RydWN0c1xuICovXG5leHBvcnQgY2xhc3MgU3RydWN0IGV4dGVuZHMgR29UeXBlPEludGVyZmFjZVR5cGU+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wZXJ0aWVzOiByZWFkb25seSBHb1Byb3BlcnR5W107XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmVudDogUGFja2FnZSwgdHlwZTogSW50ZXJmYWNlVHlwZSkge1xuICAgIHN1cGVyKHBhcmVudCwgdHlwZSk7XG5cbiAgICBhc3NlcnQoXG4gICAgICB0eXBlLmlzRGF0YVR5cGUoKSxcbiAgICAgIGBUaGUgcHJvdmlkZWQgaW50ZXJmYWNlICR7dHlwZS5mcW59IGlzIG5vdCBhIHN0cnVjdCFgLFxuICAgICk7XG5cbiAgICB0aGlzLnByb3BlcnRpZXMgPSB0eXBlLmFsbFByb3BlcnRpZXMubWFwKFxuICAgICAgKHByb3ApID0+IG5ldyBHb1Byb3BlcnR5KHRoaXMsIHByb3ApLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlcGVuZGVuY2llcygpOiBQYWNrYWdlW10ge1xuICAgIHJldHVybiBnZXRNZW1iZXJEZXBlbmRlbmNpZXModGhpcy5wcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3BlY2lhbERlcGVuZGVuY2llcygpOiBTcGVjaWFsRGVwZW5kZW5jaWVzIHtcbiAgICByZXR1cm4ge1xuICAgICAgcnVudGltZTogZmFsc2UsXG4gICAgICBpbml0OiBmYWxzZSxcbiAgICAgIGludGVybmFsOiBmYWxzZSxcbiAgICAgIHRpbWU6IHRoaXMucHJvcGVydGllcy5zb21lKChwcm9wKSA9PiBwcm9wLnNwZWNpYWxEZXBlbmRlbmNpZXMudGltZSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0KGNvbnRleHQ6IEVtaXRDb250ZXh0KTogdm9pZCB7XG4gICAgY29uc3QgeyBjb2RlLCBkb2N1bWVudGVyIH0gPSBjb250ZXh0O1xuICAgIGRvY3VtZW50ZXIuZW1pdCh0aGlzLnR5cGUuZG9jcywgdGhpcy5hcGlMb2NhdGlvbik7XG4gICAgY29kZS5vcGVuQmxvY2soYHR5cGUgJHt0aGlzLm5hbWV9IHN0cnVjdGApO1xuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgdGhpcy5wcm9wZXJ0aWVzKSB7XG4gICAgICBwcm9wZXJ0eS5lbWl0U3RydWN0TWVtYmVyKGNvbnRleHQpO1xuICAgIH1cbiAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICBjb2RlLmxpbmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0UmVnaXN0cmF0aW9uKGNvZGU6IENvZGVNYWtlcik6IHZvaWQge1xuICAgIGNvZGUub3BlbihgJHtKU0lJX1JUX0FMSUFTfS5SZWdpc3RlclN0cnVjdChgKTtcbiAgICBjb2RlLmxpbmUoYFwiJHt0aGlzLmZxbn1cIixgKTtcbiAgICBjb2RlLmxpbmUoYHJlZmxlY3QuVHlwZU9mKCgqJHt0aGlzLm5hbWV9KShuaWwpKS5FbGVtKCksYCk7XG4gICAgY29kZS5jbG9zZSgnKScpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Callable, Parameter, Property } from 'jsii-reflect';
|
|
2
|
+
import { ApiLocation } from 'jsii-rosetta';
|
|
2
3
|
import { SpecialDependencies } from '../dependencies';
|
|
3
4
|
import { EmitContext } from '../emit-context';
|
|
4
5
|
import { GoClass, GoType, GoInterface, GoTypeRef } from './index';
|
|
@@ -14,6 +15,7 @@ export declare class GoProperty implements GoTypeMember {
|
|
|
14
15
|
readonly property: Property;
|
|
15
16
|
readonly name: string;
|
|
16
17
|
readonly immutable: boolean;
|
|
18
|
+
protected readonly apiLocation: ApiLocation;
|
|
17
19
|
constructor(parent: GoType, property: Property);
|
|
18
20
|
get reference(): GoTypeRef;
|
|
19
21
|
get specialDependencies(): SpecialDependencies;
|
|
@@ -22,9 +24,9 @@ export declare class GoProperty implements GoTypeMember {
|
|
|
22
24
|
get instanceArg(): string;
|
|
23
25
|
get override(): string;
|
|
24
26
|
emitStructMember({ code, documenter }: EmitContext): void;
|
|
25
|
-
emitGetterDecl(
|
|
26
|
-
emitGetter({ code
|
|
27
|
-
emitSetterDecl(
|
|
27
|
+
emitGetterDecl({ code, documenter }: EmitContext): void;
|
|
28
|
+
emitGetter({ code }: EmitContext): void;
|
|
29
|
+
emitSetterDecl({ code, documenter }: EmitContext): void;
|
|
28
30
|
emitGetterProxy(context: EmitContext): void;
|
|
29
31
|
emitSetterProxy(context: EmitContext): void;
|
|
30
32
|
}
|
|
@@ -33,6 +35,7 @@ export declare abstract class GoMethod implements GoTypeMember {
|
|
|
33
35
|
readonly method: Callable;
|
|
34
36
|
readonly name: string;
|
|
35
37
|
readonly parameters: GoParameter[];
|
|
38
|
+
protected readonly apiLocation: ApiLocation;
|
|
36
39
|
constructor(parent: GoClass | GoInterface, method: Callable);
|
|
37
40
|
abstract emit(context: EmitContext): void;
|
|
38
41
|
abstract get specialDependencies(): SpecialDependencies;
|
|
@@ -16,6 +16,11 @@ class GoProperty {
|
|
|
16
16
|
this.property = property;
|
|
17
17
|
this.name = naming_util_1.jsiiToPascalCase(this.property.name);
|
|
18
18
|
this.immutable = property.immutable;
|
|
19
|
+
this.apiLocation = {
|
|
20
|
+
api: 'member',
|
|
21
|
+
fqn: this.parent.fqn,
|
|
22
|
+
memberName: this.property.name,
|
|
23
|
+
};
|
|
19
24
|
}
|
|
20
25
|
get reference() {
|
|
21
26
|
return new index_1.GoTypeRef(this.parent.pkg.root, this.property.type);
|
|
@@ -44,7 +49,7 @@ class GoProperty {
|
|
|
44
49
|
}
|
|
45
50
|
emitStructMember({ code, documenter }) {
|
|
46
51
|
var _a, _b;
|
|
47
|
-
documenter.emit(this.property.docs);
|
|
52
|
+
documenter.emit(this.property.docs, this.apiLocation);
|
|
48
53
|
const memberType = ((_b = (_a = this.reference) === null || _a === void 0 ? void 0 : _a.type) === null || _b === void 0 ? void 0 : _b.name) === this.parent.name
|
|
49
54
|
? `*${this.returnType}`
|
|
50
55
|
: this.returnType;
|
|
@@ -52,21 +57,23 @@ class GoProperty {
|
|
|
52
57
|
code.line(`${this.name} ${memberType} \`json:"${this.property.name}" yaml:"${this.property.name}"\``);
|
|
53
58
|
// TODO add newline if not the last member
|
|
54
59
|
}
|
|
55
|
-
emitGetterDecl(
|
|
56
|
-
|
|
60
|
+
emitGetterDecl({ code, documenter }) {
|
|
61
|
+
documenter.emit(this.property.docs, this.apiLocation);
|
|
57
62
|
code.line(`${this.name}() ${this.returnType}`);
|
|
58
63
|
}
|
|
59
|
-
emitGetter({ code
|
|
64
|
+
emitGetter({ code }) {
|
|
60
65
|
const receiver = this.parent.name;
|
|
61
66
|
const instanceArg = receiver.substring(0, 1).toLowerCase();
|
|
62
|
-
documenter.emit(this.property.docs);
|
|
63
67
|
code.openBlock(`func (${instanceArg} *${receiver}) Get${this.name}() ${this.returnType}`);
|
|
64
68
|
code.line(`return ${instanceArg}.${this.name}`);
|
|
65
69
|
code.closeBlock();
|
|
66
70
|
}
|
|
67
|
-
emitSetterDecl(
|
|
68
|
-
const { code } = context;
|
|
71
|
+
emitSetterDecl({ code, documenter }) {
|
|
69
72
|
if (!this.immutable) {
|
|
73
|
+
// For setters, only emit the stability. Copying the documentation from
|
|
74
|
+
// the getter might result in confusing documentation. This is an "okay"
|
|
75
|
+
// middle-ground.
|
|
76
|
+
documenter.emitStability(this.property.docs);
|
|
70
77
|
code.line(`Set${this.name}(val ${this.returnType})`);
|
|
71
78
|
}
|
|
72
79
|
}
|
|
@@ -99,6 +106,10 @@ class GoMethod {
|
|
|
99
106
|
this.method = method;
|
|
100
107
|
this.name = naming_util_1.jsiiToPascalCase(method.name);
|
|
101
108
|
this.parameters = this.method.parameters.map((param) => new GoParameter(parent, param));
|
|
109
|
+
this.apiLocation =
|
|
110
|
+
method.kind === jsii_reflect_1.MemberKind.Initializer
|
|
111
|
+
? { api: 'initializer', fqn: parent.fqn }
|
|
112
|
+
: { api: 'member', fqn: parent.fqn, memberName: method.name };
|
|
102
113
|
}
|
|
103
114
|
get reference() {
|
|
104
115
|
if (jsii_reflect_1.Method.isMethod(this.method) && this.method.returns.type) {
|
|
@@ -146,4 +157,4 @@ class GoParameter {
|
|
|
146
157
|
}
|
|
147
158
|
}
|
|
148
159
|
exports.GoParameter = GoParameter;
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1tZW1iZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlLW1lbWJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FNc0I7QUFFdEIsc0RBQXdEO0FBSXhELHdDQUFxRTtBQUNyRSxrQ0FBa0Q7QUFFbEQsbUNBQWtFO0FBY2xFOzs7RUFHRTtBQUNGLE1BQWEsVUFBVTtJQUlyQixZQUNTLE1BQWMsRUFDTCxRQUFrQjtRQUQzQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ0wsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUVsQyxJQUFJLENBQUMsSUFBSSxHQUFHLDhCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLGlCQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELElBQVcsbUJBQW1COztRQUM1QixPQUFPO1lBQ0wsT0FBTyxFQUFFLElBQUk7WUFDYixJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDakIsUUFBUSxFQUFFLEtBQUs7WUFDZixJQUFJLEVBQUUsQ0FBQyxRQUFDLElBQUksQ0FBQyxTQUFTLDBDQUFFLG1CQUFtQixDQUFDLElBQUksQ0FBQTtTQUNqRCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFXLFVBQVU7O1FBQ25CLE9BQU8sYUFDTCxJQUFJLENBQUMsU0FBUywwQ0FBRSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLG9DQUMvQyxJQUFJ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RU0sV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUM7WUFDakMsQ0FBQyxDQUFDLEVBQUU7WUFDSixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRCxDQUFDO0NBQ0Y7QUF2REQsNEJBdURDO0FBRUQsTUFBYSxXQUFXO0lBTXRCLFlBQW1CLE1BQTZCLEVBQUUsU0FBb0I7UUFDcEUsSUFBSSxDQUFDLElBQUksR0FBRyw4QkFBdUIsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksaUJBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVNLFFBQVE7UUFDYixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0QsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsU0FBUyxFQUFFLENBQUM7SUFDcEUsQ0FBQztDQUNGO0FBckJELGtDQXFCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENhbGxhYmxlLFxuICBNZXRob2QsXG4gIFBhcmFtZXRlcixcbiAgUHJvcGVydHksXG4gIFR5cGVSZWZlcmVuY2UsXG59IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5cbmltcG9ydCB7IGpzaWlUb1Bhc2NhbENhc2UgfSBmcm9tICcuLi8uLi8uLi9uYW1pbmctdXRpbCc7XG5pbXBvcnQgeyBTcGVjaWFsRGVwZW5kZW5jaWVzIH0gZnJvbSAnLi4vZGVwZW5kZW5jaWVzJztcbmltcG9ydCB7IEVtaXRDb250ZXh0IH0gZnJvbSAnLi4vZW1pdC1jb250ZXh0JztcbmltcG9ydCB7IFBhY2thZ2UgfSBmcm9tICcuLi9wYWNrYWdlJztcbmltcG9ydCB7IEdldFByb3BlcnR5LCBKU0lJX1JUX0FMSUFTLCBTZXRQcm9wZXJ0eSB9IGZyb20gJy4uL3J1bnRpbWUnO1xuaW1wb3J0IHsgc3Vic3RpdHV0ZVJlc2VydmVkV29yZHMgfSBmcm9tICcuLi91dGlsJztcblxuaW1wb3J0IHsgR29DbGFzcywgR29UeXBlLCBHb0ludGVyZmFjZSwgR29UeXBlUmVmIH0gZnJvbSAnLi9pbmRleCc7XG5cbi8qXG4gKiBTdHJ1Y3R1cmUgZm9yIENsYXNzIGFuZCBJbnRlcmZhY2UgbWV0aG9kcy4gVXNlZnVsIGZvciBzaGFyaW5nIGxvZ2ljIGZvciBkZXBlbmRlbmN5IHJlc29sdXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHb1R5cGVNZW1iZXIge1xuICBuYW1lOiBzdHJpbmc7XG4gIHBhcmVudDogR29UeXBlO1xuICByZWZlcmVuY2U/OiBHb1R5cGVSZWY7XG4gIHJldHVyblR5cGU6IHN0cmluZztcblxuICBzcGVjaWFsRGVwZW5kZW5jaWVzOiBTcGVjaWFsRGVwZW5kZW5jaWVzO1xufVxuXG4vKlxuICogR29Qcm9wZXJ0eSBlbmNhcHN1bGF0ZXMgbG9naWMgZm9yIHB1YmxpYyBwcm9wZXJ0aWVzIG9uIGEgY29uY3JldGUgc3RydWN0LCB3aGljaCBjb3VsZCByZXByZXNlbnRcbiBlaXRoZXIgYSBKU0lJIGNsYXNzIHByb3h5IG9yIGRhdGF0eXBlIGludGVyZmFjZSBwcm94eVxuKi9cbmV4cG9ydCBjbGFzcyBHb1Byb3BlcnR5IGltcGxlbWVudHMgR29UeXBlTWVtYmVyIHtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGltbXV0YWJsZTogYm9vbGVhbjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHBhcmVudDogR29UeXBlLFxuICAgIHB1YmxpYyByZWFkb25seSBwcm9wZXJ0eTogUHJvcGVydHksXG4gICkge1xuICAgIHRoaXMubmFtZSA9IGpzaWlUb1Bhc2NhbENhc2UodGhpcy5wcm9wZXJ0eS5uYW1lKTtcbiAgICB0aGlzLmltbXV0YWJsZSA9IHByb3BlcnR5LmltbXV0YWJsZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVmZXJlbmNlKCk6IEdvVHlwZVJlZiB7XG4gICAgcmV0dXJuIG5ldyBHb1R5cGVSZWYodGhpcy5wYXJlbnQucGtnLnJvb3QsIHRoaXMucHJvcGVydHkudHlwZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNwZWNpYWxEZXBlbmRlbmNpZXMoKTogU3BlY2lhbERlcGVuZGVuY2llcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJ1bnRpbWU6IHRydWUsXG4gICAgICBpbml0OiB0aGlzLnN0YXRpYyxcbiAgICAgIGludGVybmFsOiBmYWxzZSxcbiAgICAgIHRpbWU6ICEhdGhpcy5yZWZlcmVuY2U/LnNwZWNpYWxEZXBlbmRlbmNpZXMudGltZSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldCBzdGF0aWMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5wcm9wZXJ0eS5zdGF0aWM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJldHVyblR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5yZWZlcmVuY2U/LnNjb3BlZFJlZmVyZW5jZSh0aGlzLnBhcmVudC5wa2cpID8/XG4gICAgICB0aGlzLnByb3BlcnR5LnR5cGUudG9TdHJpbmcoKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGluc3RhbmNlQXJnKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50LnByb3h5TmFtZS5zdWJzdHJpbmcoMCwgMSkudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgb3ZlcnJpZGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7SlNJSV9SVF9BTElBU30uTWVtYmVyUHJvcGVydHl7SnNpaVByb3BlcnR5OiBcIiR7dGhpcy5wcm9wZXJ0eS5uYW1lfVwiLCBHb0dldHRlcjogXCIke3RoaXMubmFtZX1cIn1gO1xuICB9XG5cbiAgcHVibGljIGVtaXRTdHJ1Y3RNZW1iZXIoeyBjb2RlLCBkb2N1bWVudGVyIH06IEVtaXRDb250ZXh0KSB7XG4gICAgZG9jdW1lbnRlci5lbWl0KHRoaXMucHJvcGVydHkuZG9jcyk7XG4gICAgY29uc3QgbWVtYmVyVHlwZSA9XG4gICAgICB0aGlzLnJlZmVyZW5jZT8udHlwZT8ubmFtZSA9PT0gdGhpcy5wYXJlbnQubmFtZVxuICAgICAgICA/IGAqJHt0aGlzLnJldHVyblR5cGV9YFxuICAgICAgICA6IHRoaXMucmV0dXJuVHlwZTtcblxuICAgIC8vIEFkZHMganNvbiBhbmQgeWFtbCB0YWdzIGZvciBlYXN5IGRlc2VyaWFsaXphdGlvblxuICAgIGNvZGUubGluZShcbiAgICAgIGAke3RoaXMubmFtZX0gJHttZW1iZXJUeXBlfSBcXGBqc29uOlwiJHt0aGlzLnByb3BlcnR5Lm5hbWV9XCIgeWFtbDpcIiR7dGhpcy5wcm9wZXJ0eS5uYW1lfVwiXFxgYCxcbiAgICApO1xuICAgIC8vIFRPRE8gYWRkIG5ld2xpbmUgaWYgbm90IHRoZSBsYXN0IG1lbWJlclxuICB9XG5cbiAgcHVibGljIGVtaXRHZXR0ZXJEZWNsKGNvbnRleHQ6IEVtaXRDb250ZXh0KSB7XG4gICAgY29uc3QgeyBjb2RlIH0gPSBjb250ZXh0O1xuICAgIGNvZGUubGluZShgJHt0aGlzLm5hbWV9KCkgJHt0aGlzLnJldHVyblR5cGV9YCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdEdldHRlcih7IGNvZGUsIGRvY3VtZW50ZXIgfTogRW1pdENvbnRleHQpOiB2b2lkIHtcbiAgICBjb25zdCByZWNlaXZlciA9IHRoaXMucGFyZW50Lm5hbWU7XG4gICAgY29uc3QgaW5zdGFuY2VBcmcgPSByZWNlaXZlci5zdWJzdHJpbmcoMCwgMSkudG9Mb3dlckNhc2UoKTtcblxuICAgIGRvY3VtZW50ZXIuZW1pdCh0aGlzLnByb3BlcnR5LmRvY3MpO1xuICAgIGNvZGUub3BlbkJsb2NrKFxuICAgICAgYGZ1bmMgKCR7aW5zdGFuY2VBcmd9ICoke3JlY2VpdmVyfSkgR2V0JHt0aGlzLm5hbWV9KCkgJHt0aGlzLnJldHVyblR5cGV9YCxcbiAgICApO1xuICAgIGNvZGUubGluZShgcmV0dXJuICR7aW5zdGFuY2VBcmd9LiR7dGhpcy5uYW1lfWApO1xuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICB9XG5cbiAgcHVibGljIGVtaXRTZXR0ZXJEZWNsKGNvbnRleHQ6IEVtaXRDb250ZXh0KSB7XG4gICAgY29uc3QgeyBjb2RlIH0gPSBjb250ZXh0O1xuICAgIGlmICghdGhpcy5pbW11dGFibGUpIHtcbiAgICAgIGNvZGUubGluZShgU2V0JHt0aGlzLm5hbWV9KHZhbCAke3RoaXMucmV0dXJuVHlwZX0pYCk7XG4gICAgfVxuICB9XG5cbiAgLy8gRW1pdHMgZ2V0dGVyIG1ldGhvZHMgb24gdGhlIHN0cnVjdCBmb3IgZWFjaCBwcm9wZXJ0eVxuICBwdWJsaWMgZW1pdEdldHRlclByb3h5KGNvbnRleHQ6IEVtaXRDb250ZXh0KSB7XG4gICAgY29uc3QgeyBjb2RlIH0gPSBjb250ZXh0O1xuICAgIGNvbnN0IHJlY2VpdmVyID0gdGhpcy5wYXJlbnQucHJveHlOYW1lO1xuICAgIGNvbnN0IGluc3RhbmNlQXJnID0gcmVjZWl2ZXIuc3Vic3RyaW5nKDAsIDEpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBjb2RlLm9wZW5CbG9jayhcbiAgICAgIGBmdW5jICgke2luc3RhbmNlQXJnfSAqJHtyZWNlaXZlcn0pICR7dGhpcy5uYW1lfSgpICR7dGhpcy5yZXR1cm5UeXBlfWAsXG4gICAgKTtcblxuICAgIG5ldyBHZXRQcm9wZXJ0eSh0aGlzKS5lbWl0KGNvZGUpO1xuXG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdFNldHRlclByb3h5KGNvbnRleHQ6IEVtaXRDb250ZXh0KSB7XG4gICAgaWYgKCF0aGlzLmltbXV0YWJsZSkge1xuICAgICAgY29uc3QgeyBjb2RlIH0gPSBjb250ZXh0O1xuICAgICAgY29uc3QgcmVjZWl2ZXIgPSB0aGlzLnBhcmVudC5wcm94eU5hbWU7XG4gICAgICBjb25zdCBpbnN0YW5jZUFyZyA9IHJlY2VpdmVyLnN1YnN0cmluZygwLCAxKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICBjb2RlLm9wZW5CbG9jayhcbiAgICAgICAgYGZ1bmMgKCR7aW5zdGFuY2VBcmd9ICoke3JlY2VpdmVyfSkgU2V0JHt0aGlzLm5hbWV9KHZhbCAke3RoaXMucmV0dXJuVHlwZX0pYCxcbiAgICAgICk7XG5cbiAgICAgIG5ldyBTZXRQcm9wZXJ0eSh0aGlzKS5lbWl0KGNvZGUpO1xuXG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICAgIGNvZGUubGluZSgpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR29NZXRob2QgaW1wbGVtZW50cyBHb1R5cGVNZW1iZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgcGFyYW1ldGVyczogR29QYXJhbWV0ZXJbXTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHBhcmVudDogR29DbGFzcyB8IEdvSW50ZXJmYWNlLFxuICAgIHB1YmxpYyByZWFkb25seSBtZXRob2Q6IENhbGxhYmxlLFxuICApIHtcbiAgICB0aGlzLm5hbWUgPSBqc2lpVG9QYXNjYWxDYXNlKG1ldGhvZC5uYW1lKTtcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSB0aGlzLm1ldGhvZC5wYXJhbWV0ZXJzLm1hcChcbiAgICAgIChwYXJhbSkgPT4gbmV3IEdvUGFyYW1ldGVyKHBhcmVudCwgcGFyYW0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3QgZW1pdChjb250ZXh0OiBFbWl0Q29udGV4dCk6IHZvaWQ7XG5cbiAgcHVibGljIGFic3RyYWN0IGdldCBzcGVjaWFsRGVwZW5kZW5jaWVzKCk6IFNwZWNpYWxEZXBlbmRlbmNpZXM7XG5cbiAgcHVibGljIGdldCByZWZlcmVuY2UoKTogR29UeXBlUmVmIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoTWV0aG9kLmlzTWV0aG9kKHRoaXMubWV0aG9kKSAmJiB0aGlzLm1ldGhvZC5yZXR1cm5zLnR5cGUpIHtcbiAgICAgIHJldHVybiBuZXcgR29UeXBlUmVmKHRoaXMucGFyZW50LnBrZy5yb290LCB0aGlzLm1ldGhvZC5yZXR1cm5zLnR5cGUpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGdldCByZXR1cm5zUmVmKCk6IGJvb2xlYW4ge1xuICAgIGlmIChcbiAgICAgIHRoaXMucmVmZXJlbmNlPy50eXBlPy50eXBlLmlzQ2xhc3NUeXBlKCkgfHxcbiAgICAgIHRoaXMucmVmZXJlbmNlPy50eXBlPy50eXBlLmlzSW50ZXJmYWNlVHlwZSgpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJldHVyblR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5yZWZlcmVuY2U/LnNjb3BlZFJlZmVyZW5jZSh0aGlzLnBhcmVudC5wa2cpID8/IHRoaXMubWV0aG9kLnRvU3RyaW5nKClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBpbnN0YW5jZUFyZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5uYW1lLnN1YnN0cmluZygwLCAxKS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBvdmVycmlkZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtKU0lJX1JUX0FMSUFTfS5NZW1iZXJNZXRob2R7SnNpaU1ldGhvZDogXCIke3RoaXMubWV0aG9kLm5hbWV9XCIsIEdvTWV0aG9kOiBcIiR7dGhpcy5uYW1lfVwifWA7XG4gIH1cblxuICBwdWJsaWMgcGFyYW1TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzLmxlbmd0aCA9PT0gMFxuICAgICAgPyAnJ1xuICAgICAgOiB0aGlzLnBhcmFtZXRlcnMubWFwKChwKSA9PiBwLnRvU3RyaW5nKCkpLmpvaW4oJywgJyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdvUGFyYW1ldGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGlzVmFyaWFkaWM6IGJvb2xlYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgdHlwZTogVHlwZVJlZmVyZW5jZTtcbiAgcHJpdmF0ZSByZWFkb25seSBwa2c6IFBhY2thZ2U7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmVudDogR29DbGFzcyB8IEdvSW50ZXJmYWNlLCBwYXJhbWV0ZXI6IFBhcmFtZXRlcikge1xuICAgIHRoaXMubmFtZSA9IHN1YnN0aXR1dGVSZXNlcnZlZFdvcmRzKHBhcmFtZXRlci5uYW1lKTtcbiAgICB0aGlzLmlzVmFyaWFkaWMgPSBwYXJhbWV0ZXIudmFyaWFkaWM7XG4gICAgdGhpcy50eXBlID0gcGFyYW1ldGVyLnR5cGU7XG4gICAgdGhpcy5wa2cgPSBwYXJlbnQucGtnO1xuICB9XG5cbiAgcHVibGljIGdldCByZWZlcmVuY2UoKTogR29UeXBlUmVmIHtcbiAgICByZXR1cm4gbmV3IEdvVHlwZVJlZih0aGlzLnBrZy5yb290LCB0aGlzLnR5cGUpO1xuICB9XG5cbiAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFyYW1UeXBlID0gdGhpcy5yZWZlcmVuY2Uuc2NvcGVkUmVmZXJlbmNlKHRoaXMucGtnKTtcbiAgICByZXR1cm4gYCR7dGhpcy5uYW1lfSAke3RoaXMuaXNWYXJpYWRpYyA/ICcuLi4nIDogJyd9JHtwYXJhbVR5cGV9YDtcbiAgfVxufVxuIl19
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1tZW1iZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlLW1lbWJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FPc0I7QUFHdEIsc0RBQXdEO0FBSXhELHdDQUFxRTtBQUNyRSxrQ0FBa0Q7QUFFbEQsbUNBQWtFO0FBY2xFOzs7RUFHRTtBQUNGLE1BQWEsVUFBVTtJQUtyQixZQUNTLE1BQWMsRUFDTCxRQUFrQjtRQUQzQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ0wsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUVsQyxJQUFJLENBQUMsSUFBSSxHQUFHLDhCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLEdBQUc7WUFDakIsR0FBRyxFQUFFLFFBQVE7WUFDYixHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHO1lBQ3BCLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUk7U0FDL0IsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLGlCQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELElBQVcsbUJBQW1COztRQUM1QixPQUFPO1lBQ0wsT0FBTyxFQUFFLElBQUk7WUFDYixJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDakIsUUFBUSxFQUFFLEtBQUs7WUFDZixJQUFJLEVBQUUsQ0FBQyxRQUFDLElBQUksQ0FBQyxTQUFTLDBDQUFFLG1CQUFtQixDQUFDLElBQUksQ0FBQTtTQUNqRCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sQ0FBQyxDQUFDLElB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QUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksaUJBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVNLFFBQVE7UUFDYixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0QsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsU0FBUyxFQUFFLENBQUM7SUFDcEUsQ0FBQztDQUNGO0FBckJELGtDQXFCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENhbGxhYmxlLFxuICBNZW1iZXJLaW5kLFxuICBNZXRob2QsXG4gIFBhcmFtZXRlcixcbiAgUHJvcGVydHksXG4gIFR5cGVSZWZlcmVuY2UsXG59IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBBcGlMb2NhdGlvbiB9IGZyb20gJ2pzaWktcm9zZXR0YSc7XG5cbmltcG9ydCB7IGpzaWlUb1Bhc2NhbENhc2UgfSBmcm9tICcuLi8uLi8uLi9uYW1pbmctdXRpbCc7XG5pbXBvcnQgeyBTcGVjaWFsRGVwZW5kZW5jaWVzIH0gZnJvbSAnLi4vZGVwZW5kZW5jaWVzJztcbmltcG9ydCB7IEVtaXRDb250ZXh0IH0gZnJvbSAnLi4vZW1pdC1jb250ZXh0JztcbmltcG9ydCB7IFBhY2thZ2UgfSBmcm9tICcuLi9wYWNrYWdlJztcbmltcG9ydCB7IEdldFByb3BlcnR5LCBKU0lJX1JUX0FMSUFTLCBTZXRQcm9wZXJ0eSB9IGZyb20gJy4uL3J1bnRpbWUnO1xuaW1wb3J0IHsgc3Vic3RpdHV0ZVJlc2VydmVkV29yZHMgfSBmcm9tICcuLi91dGlsJztcblxuaW1wb3J0IHsgR29DbGFzcywgR29UeXBlLCBHb0ludGVyZmFjZSwgR29UeXBlUmVmIH0gZnJvbSAnLi9pbmRleCc7XG5cbi8qXG4gKiBTdHJ1Y3R1cmUgZm9yIENsYXNzIGFuZCBJbnRlcmZhY2UgbWV0aG9kcy4gVXNlZnVsIGZvciBzaGFyaW5nIGxvZ2ljIGZvciBkZXBlbmRlbmN5IHJlc29sdXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHb1R5cGVNZW1iZXIge1xuICBuYW1lOiBzdHJpbmc7XG4gIHBhcmVudDogR29UeXBlO1xuICByZWZlcmVuY2U/OiBHb1R5cGVSZWY7XG4gIHJldHVyblR5cGU6IHN0cmluZztcblxuICBzcGVjaWFsRGVwZW5kZW5jaWVzOiBTcGVjaWFsRGVwZW5kZW5jaWVzO1xufVxuXG4vKlxuICogR29Qcm9wZXJ0eSBlbmNhcHN1bGF0ZXMgbG9naWMgZm9yIHB1YmxpYyBwcm9wZXJ0aWVzIG9uIGEgY29uY3JldGUgc3RydWN0LCB3aGljaCBjb3VsZCByZXByZXNlbnRcbiBlaXRoZXIgYSBKU0lJIGNsYXNzIHByb3h5IG9yIGRhdGF0eXBlIGludGVyZmFjZSBwcm94eVxuKi9cbmV4cG9ydCBjbGFzcyBHb1Byb3BlcnR5IGltcGxlbWVudHMgR29UeXBlTWVtYmVyIHtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGltbXV0YWJsZTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFwaUxvY2F0aW9uOiBBcGlMb2NhdGlvbjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHBhcmVudDogR29UeXBlLFxuICAgIHB1YmxpYyByZWFkb25seSBwcm9wZXJ0eTogUHJvcGVydHksXG4gICkge1xuICAgIHRoaXMubmFtZSA9IGpzaWlUb1Bhc2NhbENhc2UodGhpcy5wcm9wZXJ0eS5uYW1lKTtcbiAgICB0aGlzLmltbXV0YWJsZSA9IHByb3BlcnR5LmltbXV0YWJsZTtcbiAgICB0aGlzLmFwaUxvY2F0aW9uID0ge1xuICAgICAgYXBpOiAnbWVtYmVyJyxcbiAgICAgIGZxbjogdGhpcy5wYXJlbnQuZnFuLFxuICAgICAgbWVtYmVyTmFtZTogdGhpcy5wcm9wZXJ0eS5uYW1lLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlZmVyZW5jZSgpOiBHb1R5cGVSZWYge1xuICAgIHJldHVybiBuZXcgR29UeXBlUmVmKHRoaXMucGFyZW50LnBrZy5yb290LCB0aGlzLnByb3BlcnR5LnR5cGUpO1xuICB9XG5cbiAgcHVibGljIGdldCBzcGVjaWFsRGVwZW5kZW5jaWVzKCk6IFNwZWNpYWxEZXBlbmRlbmNpZXMge1xuICAgIHJldHVybiB7XG4gICAgICBydW50aW1lOiB0cnVlLFxuICAgICAgaW5pdDogdGhpcy5zdGF0aWMsXG4gICAgICBpbnRlcm5hbDogZmFsc2UsXG4gICAgICB0aW1lOiAhIXRoaXMucmVmZXJlbmNlPy5zcGVjaWFsRGVwZW5kZW5jaWVzLnRpbWUsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdGljKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMucHJvcGVydHkuc3RhdGljO1xuICB9XG5cbiAgcHVibGljIGdldCByZXR1cm5UeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMucmVmZXJlbmNlPy5zY29wZWRSZWZlcmVuY2UodGhpcy5wYXJlbnQucGtnKSA/P1xuICAgICAgdGhpcy5wcm9wZXJ0eS50eXBlLnRvU3RyaW5nKClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBpbnN0YW5jZUFyZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5wcm94eU5hbWUuc3Vic3RyaW5nKDAsIDEpLnRvTG93ZXJDYXNlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG92ZXJyaWRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke0pTSUlfUlRfQUxJQVN9Lk1lbWJlclByb3BlcnR5e0pzaWlQcm9wZXJ0eTogXCIke3RoaXMucHJvcGVydHkubmFtZX1cIiwgR29HZXR0ZXI6IFwiJHt0aGlzLm5hbWV9XCJ9YDtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0U3RydWN0TWVtYmVyKHsgY29kZSwgZG9jdW1lbnRlciB9OiBFbWl0Q29udGV4dCkge1xuICAgIGRvY3VtZW50ZXIuZW1pdCh0aGlzLnByb3BlcnR5LmRvY3MsIHRoaXMuYXBpTG9jYXRpb24pO1xuICAgIGNvbnN0IG1lbWJlclR5cGUgPVxuICAgICAgdGhpcy5yZWZlcmVuY2U/LnR5cGU/Lm5hbWUgPT09IHRoaXMucGFyZW50Lm5hbWVcbiAgICAgICAgPyBgKiR7dGhpcy5yZXR1cm5UeXBlfWBcbiAgICAgICAgOiB0aGlzLnJldHVyblR5cGU7XG5cbiAgICAvLyBBZGRzIGpzb24gYW5kIHlhbWwgdGFncyBmb3IgZWFzeSBkZXNlcmlhbGl6YXRpb25cbiAgICBjb2RlLmxpbmUoXG4gICAgICBgJHt0aGlzLm5hbWV9ICR7bWVtYmVyVHlwZX0gXFxganNvbjpcIiR7dGhpcy5wcm9wZXJ0eS5uYW1lfVwiIHlhbWw6XCIke3RoaXMucHJvcGVydHkubmFtZX1cIlxcYGAsXG4gICAgKTtcbiAgICAvLyBUT0RPIGFkZCBuZXdsaW5lIGlmIG5vdCB0aGUgbGFzdCBtZW1iZXJcbiAgfVxuXG4gIHB1YmxpYyBlbWl0R2V0dGVyRGVjbCh7IGNvZGUsIGRvY3VtZW50ZXIgfTogRW1pdENvbnRleHQpIHtcbiAgICBkb2N1bWVudGVyLmVtaXQodGhpcy5wcm9wZXJ0eS5kb2NzLCB0aGlzLmFwaUxvY2F0aW9uKTtcbiAgICBjb2RlLmxpbmUoYCR7dGhpcy5uYW1lfSgpICR7dGhpcy5yZXR1cm5UeXBlfWApO1xuICB9XG5cbiAgcHVibGljIGVtaXRHZXR0ZXIoeyBjb2RlIH06IEVtaXRDb250ZXh0KTogdm9pZCB7XG4gICAgY29uc3QgcmVjZWl2ZXIgPSB0aGlzLnBhcmVudC5uYW1lO1xuICAgIGNvbnN0IGluc3RhbmNlQXJnID0gcmVjZWl2ZXIuc3Vic3RyaW5nKDAsIDEpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBjb2RlLm9wZW5CbG9jayhcbiAgICAgIGBmdW5jICgke2luc3RhbmNlQXJnfSAqJHtyZWNlaXZlcn0pIEdldCR7dGhpcy5uYW1lfSgpICR7dGhpcy5yZXR1cm5UeXBlfWAsXG4gICAgKTtcbiAgICBjb2RlLmxpbmUoYHJldHVybiAke2luc3RhbmNlQXJnfS4ke3RoaXMubmFtZX1gKTtcbiAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0U2V0dGVyRGVjbCh7IGNvZGUsIGRvY3VtZW50ZXIgfTogRW1pdENvbnRleHQpIHtcbiAgICBpZiAoIXRoaXMuaW1tdXRhYmxlKSB7XG4gICAgICAvLyBGb3Igc2V0dGVycywgb25seSBlbWl0IHRoZSBzdGFiaWxpdHkuIENvcHlpbmcgdGhlIGRvY3VtZW50YXRpb24gZnJvbVxuICAgICAgLy8gdGhlIGdldHRlciBtaWdodCByZXN1bHQgaW4gY29uZnVzaW5nIGRvY3VtZW50YXRpb24uIFRoaXMgaXMgYW4gXCJva2F5XCJcbiAgICAgIC8vIG1pZGRsZS1ncm91bmQuXG4gICAgICBkb2N1bWVudGVyLmVtaXRTdGFiaWxpdHkodGhpcy5wcm9wZXJ0eS5kb2NzKTtcbiAgICAgIGNvZGUubGluZShgU2V0JHt0aGlzLm5hbWV9KHZhbCAke3RoaXMucmV0dXJuVHlwZX0pYCk7XG4gICAgfVxuICB9XG5cbiAgLy8gRW1pdHMgZ2V0dGVyIG1ldGhvZHMgb24gdGhlIHN0cnVjdCBmb3IgZWFjaCBwcm9wZXJ0eVxuICBwdWJsaWMgZW1pdEdldHRlclByb3h5KGNvbnRleHQ6IEVtaXRDb250ZXh0KSB7XG4gICAgY29uc3QgeyBjb2RlIH0gPSBjb250ZXh0O1xuICAgIGNvbnN0IHJlY2VpdmVyID0gdGhpcy5wYXJlbnQucHJveHlOYW1lO1xuICAgIGNvbnN0IGluc3RhbmNlQXJnID0gcmVjZWl2ZXIuc3Vic3RyaW5nKDAsIDEpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBjb2RlLm9wZW5CbG9jayhcbiAgICAgIGBmdW5jICgke2luc3RhbmNlQXJnfSAqJHtyZWNlaXZlcn0pICR7dGhpcy5uYW1lfSgpICR7dGhpcy5yZXR1cm5UeXBlfWAsXG4gICAgKTtcblxuICAgIG5ldyBHZXRQcm9wZXJ0eSh0aGlzKS5lbWl0KGNvZGUpO1xuXG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdFNldHRlclByb3h5KGNvbnRleHQ6IEVtaXRDb250ZXh0KSB7XG4gICAgaWYgKCF0aGlzLmltbXV0YWJsZSkge1xuICAgICAgY29uc3QgeyBjb2RlIH0gPSBjb250ZXh0O1xuICAgICAgY29uc3QgcmVjZWl2ZXIgPSB0aGlzLnBhcmVudC5wcm94eU5hbWU7XG4gICAgICBjb25zdCBpbnN0YW5jZUFyZyA9IHJlY2VpdmVyLnN1YnN0cmluZygwLCAxKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICBjb2RlLm9wZW5CbG9jayhcbiAgICAgICAgYGZ1bmMgKCR7aW5zdGFuY2VBcmd9ICoke3JlY2VpdmVyfSkgU2V0JHt0aGlzLm5hbWV9KHZhbCAke3RoaXMucmV0dXJuVHlwZX0pYCxcbiAgICAgICk7XG5cbiAgICAgIG5ldyBTZXRQcm9wZXJ0eSh0aGlzKS5lbWl0KGNvZGUpO1xuXG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICAgIGNvZGUubGluZSgpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR29NZXRob2QgaW1wbGVtZW50cyBHb1R5cGVNZW1iZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgcGFyYW1ldGVyczogR29QYXJhbWV0ZXJbXTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFwaUxvY2F0aW9uOiBBcGlMb2NhdGlvbjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHBhcmVudDogR29DbGFzcyB8IEdvSW50ZXJmYWNlLFxuICAgIHB1YmxpYyByZWFkb25seSBtZXRob2Q6IENhbGxhYmxlLFxuICApIHtcbiAgICB0aGlzLm5hbWUgPSBqc2lpVG9QYXNjYWxDYXNlKG1ldGhvZC5uYW1lKTtcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSB0aGlzLm1ldGhvZC5wYXJhbWV0ZXJzLm1hcChcbiAgICAgIChwYXJhbSkgPT4gbmV3IEdvUGFyYW1ldGVyKHBhcmVudCwgcGFyYW0pLFxuICAgICk7XG5cbiAgICB0aGlzLmFwaUxvY2F0aW9uID1cbiAgICAgIG1ldGhvZC5raW5kID09PSBNZW1iZXJLaW5kLkluaXRpYWxpemVyXG4gICAgICAgID8geyBhcGk6ICdpbml0aWFsaXplcicsIGZxbjogcGFyZW50LmZxbiB9XG4gICAgICAgIDogeyBhcGk6ICdtZW1iZXInLCBmcW46IHBhcmVudC5mcW4sIG1lbWJlck5hbWU6IG1ldGhvZC5uYW1lIH07XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3QgZW1pdChjb250ZXh0OiBFbWl0Q29udGV4dCk6IHZvaWQ7XG5cbiAgcHVibGljIGFic3RyYWN0IGdldCBzcGVjaWFsRGVwZW5kZW5jaWVzKCk6IFNwZWNpYWxEZXBlbmRlbmNpZXM7XG5cbiAgcHVibGljIGdldCByZWZlcmVuY2UoKTogR29UeXBlUmVmIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoTWV0aG9kLmlzTWV0aG9kKHRoaXMubWV0aG9kKSAmJiB0aGlzLm1ldGhvZC5yZXR1cm5zLnR5cGUpIHtcbiAgICAgIHJldHVybiBuZXcgR29UeXBlUmVmKHRoaXMucGFyZW50LnBrZy5yb290LCB0aGlzLm1ldGhvZC5yZXR1cm5zLnR5cGUpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGdldCByZXR1cm5zUmVmKCk6IGJvb2xlYW4ge1xuICAgIGlmIChcbiAgICAgIHRoaXMucmVmZXJlbmNlPy50eXBlPy50eXBlLmlzQ2xhc3NUeXBlKCkgfHxcbiAgICAgIHRoaXMucmVmZXJlbmNlPy50eXBlPy50eXBlLmlzSW50ZXJmYWNlVHlwZSgpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJldHVyblR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5yZWZlcmVuY2U/LnNjb3BlZFJlZmVyZW5jZSh0aGlzLnBhcmVudC5wa2cpID8/IHRoaXMubWV0aG9kLnRvU3RyaW5nKClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBpbnN0YW5jZUFyZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5uYW1lLnN1YnN0cmluZygwLCAxKS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBvdmVycmlkZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtKU0lJX1JUX0FMSUFTfS5NZW1iZXJNZXRob2R7SnNpaU1ldGhvZDogXCIke3RoaXMubWV0aG9kLm5hbWV9XCIsIEdvTWV0aG9kOiBcIiR7dGhpcy5uYW1lfVwifWA7XG4gIH1cblxuICBwdWJsaWMgcGFyYW1TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzLmxlbmd0aCA9PT0gMFxuICAgICAgPyAnJ1xuICAgICAgOiB0aGlzLnBhcmFtZXRlcnMubWFwKChwKSA9PiBwLnRvU3RyaW5nKCkpLmpvaW4oJywgJyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdvUGFyYW1ldGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGlzVmFyaWFkaWM6IGJvb2xlYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgdHlwZTogVHlwZVJlZmVyZW5jZTtcbiAgcHJpdmF0ZSByZWFkb25seSBwa2c6IFBhY2thZ2U7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmVudDogR29DbGFzcyB8IEdvSW50ZXJmYWNlLCBwYXJhbWV0ZXI6IFBhcmFtZXRlcikge1xuICAgIHRoaXMubmFtZSA9IHN1YnN0aXR1dGVSZXNlcnZlZFdvcmRzKHBhcmFtZXRlci5uYW1lKTtcbiAgICB0aGlzLmlzVmFyaWFkaWMgPSBwYXJhbWV0ZXIudmFyaWFkaWM7XG4gICAgdGhpcy50eXBlID0gcGFyYW1ldGVyLnR5cGU7XG4gICAgdGhpcy5wa2cgPSBwYXJlbnQucGtnO1xuICB9XG5cbiAgcHVibGljIGdldCByZWZlcmVuY2UoKTogR29UeXBlUmVmIHtcbiAgICByZXR1cm4gbmV3IEdvVHlwZVJlZih0aGlzLnBrZy5yb290LCB0aGlzLnR5cGUpO1xuICB9XG5cbiAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFyYW1UeXBlID0gdGhpcy5yZWZlcmVuY2Uuc2NvcGVkUmVmZXJlbmNlKHRoaXMucGtnKTtcbiAgICByZXR1cm4gYCR7dGhpcy5uYW1lfSAke3RoaXMuaXNWYXJpYWRpYyA/ICcuLi4nIDogJyd9JHtwYXJhbVR5cGV9YDtcbiAgfVxufVxuIl19
|
package/lib/version.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/** The short version number for this JSII compiler (e.g: `X.Y.Z`) */
|
|
2
|
-
export declare const VERSION = "1.
|
|
2
|
+
export declare const VERSION = "1.55.1";
|
|
3
3
|
/** The qualified version number for this JSII compiler (e.g: `X.Y.Z (build #######)`) */
|
|
4
|
-
export declare const VERSION_DESC = "1.
|
|
4
|
+
export declare const VERSION_DESC = "1.55.1 (build 07d2d90)";
|
package/lib/version.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Generated at 2022-
|
|
2
|
+
// Generated at 2022-03-16T12:53:52Z by generate.sh
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.VERSION_DESC = exports.VERSION = void 0;
|
|
5
5
|
/** The short version number for this JSII compiler (e.g: `X.Y.Z`) */
|
|
6
|
-
exports.VERSION = '1.
|
|
6
|
+
exports.VERSION = '1.55.1';
|
|
7
7
|
/** The qualified version number for this JSII compiler (e.g: `X.Y.Z (build #######)`) */
|
|
8
|
-
exports.VERSION_DESC = '1.
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
exports.VERSION_DESC = '1.55.1 (build 07d2d90)';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG1EQUFtRDs7O0FBRW5ELHFFQUFxRTtBQUN4RCxRQUFBLE9BQU8sR0FBRyxRQUFRLENBQUM7QUFFaEMseUZBQXlGO0FBQzVFLFFBQUEsWUFBWSxHQUFHLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR2VuZXJhdGVkIGF0IDIwMjItMDMtMTZUMTI6NTM6NTJaIGJ5IGdlbmVyYXRlLnNoXG5cbi8qKiBUaGUgc2hvcnQgdmVyc2lvbiBudW1iZXIgZm9yIHRoaXMgSlNJSSBjb21waWxlciAoZS5nOiBgWC5ZLlpgKSAqL1xuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSAnMS41NS4xJztcblxuLyoqIFRoZSBxdWFsaWZpZWQgdmVyc2lvbiBudW1iZXIgZm9yIHRoaXMgSlNJSSBjb21waWxlciAoZS5nOiBgWC5ZLlogKGJ1aWxkICMjIyMjIyMpYCkgKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OX0RFU0MgPSAnMS41NS4xIChidWlsZCAwN2QyZDkwKSc7XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jsii-pacmak",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.55.1",
|
|
4
4
|
"description": "A code generation framework for jsii backend languages",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": {
|
|
@@ -37,35 +37,35 @@
|
|
|
37
37
|
"package": "package-js"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@jsii/check-node": "1.
|
|
41
|
-
"@jsii/spec": "^1.
|
|
40
|
+
"@jsii/check-node": "1.55.1",
|
|
41
|
+
"@jsii/spec": "^1.55.1",
|
|
42
42
|
"clone": "^2.1.2",
|
|
43
|
-
"codemaker": "^1.
|
|
43
|
+
"codemaker": "^1.55.1",
|
|
44
44
|
"commonmark": "^0.30.0",
|
|
45
45
|
"escape-string-regexp": "^4.0.0",
|
|
46
46
|
"fs-extra": "^9.1.0",
|
|
47
|
-
"jsii-reflect": "^1.
|
|
48
|
-
"jsii-rosetta": "^1.
|
|
47
|
+
"jsii-reflect": "^1.55.1",
|
|
48
|
+
"jsii-rosetta": "^1.55.1",
|
|
49
49
|
"semver": "^7.3.5",
|
|
50
50
|
"spdx-license-list": "^6.4.0",
|
|
51
51
|
"xmlbuilder": "^15.1.1",
|
|
52
52
|
"yargs": "^16.2.0"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
|
-
"@jsii/dotnet-runtime": "^1.
|
|
56
|
-
"@jsii/java-runtime": "^1.
|
|
57
|
-
"@jsii/go-runtime": "^1.
|
|
58
|
-
"@scope/jsii-calc-lib": "^1.
|
|
55
|
+
"@jsii/dotnet-runtime": "^1.55.1",
|
|
56
|
+
"@jsii/java-runtime": "^1.55.1",
|
|
57
|
+
"@jsii/go-runtime": "^1.55.1",
|
|
58
|
+
"@scope/jsii-calc-lib": "^1.55.1",
|
|
59
59
|
"@types/clone": "^2.1.1",
|
|
60
60
|
"@types/commonmark": "^0.27.5",
|
|
61
61
|
"@types/fs-extra": "^9.0.13",
|
|
62
|
-
"@types/jest": "^27.4.
|
|
63
|
-
"@types/node": "^12.20.
|
|
62
|
+
"@types/jest": "^27.4.1",
|
|
63
|
+
"@types/node": "^12.20.47",
|
|
64
64
|
"@types/semver": "^7.3.9",
|
|
65
|
-
"eslint": "^8.
|
|
66
|
-
"jest": "^27.
|
|
67
|
-
"jsii": "^1.
|
|
68
|
-
"jsii-build-tools": "^1.
|
|
65
|
+
"eslint": "^8.10.0",
|
|
66
|
+
"jest": "^27.5.1",
|
|
67
|
+
"jsii": "^1.55.1",
|
|
68
|
+
"jsii-build-tools": "^1.55.1",
|
|
69
69
|
"jsii-calc": "^3.20.120",
|
|
70
70
|
"prettier": "^2.5.1",
|
|
71
71
|
"ts-jest": "^27.1.3",
|