jsii-pacmak 1.54.0 → 1.55.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
- constructor(code: CodeMaker, _rosetta: Rosetta);
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 TODO rosetta stuff
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, _rosetta) {
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 TODO rosetta stuff
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.emitComment('TODO: EXAMPLE');
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
- for (const line of text.split('\n')) {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRvY3VtZW50YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQXVDO0FBS3ZDLE1BQWEsYUFBYTtJQUN4QixZQUFvQyxJQUFlLEVBQUUsUUFBaUI7UUFBbEMsU0FBSSxHQUFKLElBQUksQ0FBVztJQUFzQixDQUFDO0lBRTFFOzs7Ozs7Ozs7O09BVUc7SUFDSSxJQUFJLENBQUMsSUFBVTtRQUNwQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDbEMsU0FBUyxHQUFHLEtBQUssQ0FBQztTQUNuQjtRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDZCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDcEI7WUFDRCxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUM5QztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDZCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDcEI7WUFDRCxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ2xCLCtFQUErRTtZQUMvRSxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjtRQUVELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjtRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVNLGFBQWEsQ0FBQyxJQUFVO1FBQzdCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDakMsSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2xELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7YUFDM0Q7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUMzRDtTQUNGO0lBQ0gsQ0FBQztJQUVPLFdBQVcsQ0FBQyxJQUFJLEdBQUcsRUFBRTtRQUMzQixLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEVBQUUsU0FBUyxFQUFRO1FBQ2hELDRFQUE0RTtRQUM1RSxPQUFPLENBQ0wsU0FBUyxLQUFLLGdCQUFTLENBQUMsVUFBVSxJQUFJLFNBQVMsS0FBSyxnQkFBUyxDQUFDLFlBQVksQ0FDM0UsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXRFRCxzQ0FzRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFiaWxpdHkgfSBmcm9tICdAanNpaS9zcGVjJztcbmltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gJ2NvZGVtYWtlcic7XG5pbXBvcnQgeyBEb2NzIH0gZnJvbSAnanNpaS1yZWZsZWN0JztcbmltcG9ydCB7IFJvc2V0dGEgfSBmcm9tICdqc2lpLXJvc2V0dGEnO1xuXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRhdGlvbiB7XG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvZGU6IENvZGVNYWtlciwgX3Jvc2V0dGE6IFJvc2V0dGEpIHt9XG5cbiAgLyoqXG4gICAqIEVtaXRzIGFsbCBkb2N1bWVudGF0aW9uIGRlcGVuZGluZyBvbiB3aGF0IGlzIGF2YWlsYWJsZSBpbiB0aGUganNpaSBtb2RlbFxuICAgKlxuICAgKiBVc2VkIGJ5IGFsbCBraW5kIG9mIG1lbWJlcnMgKyBjbGFzc2VzLCBpbnRlcmZhY2VzLCBlbnVtc1xuICAgKiBPcmRlciBzaG91bGQgYmVcbiAgICogU3VtbWFyeSArIFJlbWFya3NcbiAgICogUmV0dXJuc1xuICAgKiBFeGFtcGxlcyBUT0RPIHJvc2V0dGEgc3R1ZmZcbiAgICogTGlua1xuICAgKiBTdGFiaWxpdHkvRGVwcmVjYXRpb24gZGVzY3JpcHRpb25cbiAgICovXG4gIHB1YmxpYyBlbWl0KGRvY3M6IERvY3MpOiB2b2lkIHtcbiAgICBsZXQgZmlyc3RMaW5lID0gdHJ1ZTtcbiAgICBpZiAoZG9jcy50b1N0cmluZygpICE9PSAnJykge1xuICAgICAgdGhpcy5lbWl0Q29tbWVudChkb2NzLnRvU3RyaW5nKCkpO1xuICAgICAgZmlyc3RMaW5lID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGRvY3MucmV0dXJucyAhPT0gJycpIHtcbiAgICAgIGlmICghZmlyc3RMaW5lKSB7XG4gICAgICAgIHRoaXMuZW1pdENvbW1lbnQoKTtcbiAgICAgIH1cbiAgICAgIGZpcnN0TGluZSA9IGZhbHNlO1xuICAgICAgdGhpcy5lbWl0Q29tbWVudChgUmV0dXJuczogJHtkb2NzLnJldHVybnN9YCk7XG4gICAgfVxuXG4gICAgaWYgKGRvY3MuZXhhbXBsZSAhPT0gJycpIHtcbiAgICAgIGlmICghZmlyc3RMaW5lKSB7XG4gICAgICAgIHRoaXMuZW1pdENvbW1lbnQoKTtcbiAgICAgIH1cbiAgICAgIGZpcnN0TGluZSA9IGZhbHNlO1xuICAgICAgLy8gVE9ETzogVHJhbnNsYXRlIGNvZGUgZXhhbXBsZXMgdG8gR28gd2l0aCBSb3NldHRhIChub3QgaW1wbGVtZW50ZWQgdGhlcmUgeWV0KVxuICAgICAgdGhpcy5lbWl0Q29tbWVudCgnVE9ETzogRVhBTVBMRScpO1xuICAgICAgdGhpcy5lbWl0Q29tbWVudCgpO1xuICAgIH1cblxuICAgIGlmIChkb2NzLmxpbmsgIT09ICcnKSB7XG4gICAgICB0aGlzLmVtaXRDb21tZW50KGBTZWU6ICR7ZG9jcy5saW5rfWApO1xuICAgICAgdGhpcy5lbWl0Q29tbWVudCgpO1xuICAgIH1cblxuICAgIHRoaXMuZW1pdFN0YWJpbGl0eShkb2NzKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0U3RhYmlsaXR5KGRvY3M6IERvY3MpOiB2b2lkIHtcbiAgICBjb25zdCBzdGFiaWxpdHkgPSBkb2NzLnN0YWJpbGl0eTtcbiAgICBpZiAoc3RhYmlsaXR5ICYmIHRoaXMuc2hvdWxkTWVudGlvblN0YWJpbGl0eShkb2NzKSkge1xuICAgICAgaWYgKGRvY3MuZGVwcmVjYXRlZCkge1xuICAgICAgICB0aGlzLmVtaXRDb21tZW50KGBEZXByZWNhdGVkOiAke2RvY3MuZGVwcmVjYXRpb25SZWFzb259YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmVtaXRDb21tZW50KGAke3RoaXMuY29kZS50b1Bhc2NhbENhc2Uoc3RhYmlsaXR5KX0uYCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Q29tbWVudCh0ZXh0ID0gJycpIHtcbiAgICBmb3IgKGNvbnN0IGxpbmUgb2YgdGV4dC5zcGxpdCgnXFxuJykpIHtcbiAgICAgIHRoaXMuY29kZS5saW5lKGAvLyAke2xpbmV9YC50cmltKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkTWVudGlvblN0YWJpbGl0eSh7IHN0YWJpbGl0eSB9OiBEb2NzKTogYm9vbGVhbiB7XG4gICAgLy8gRG9uJ3QgcmVuZGVyIFwic3RhYmxlXCIgb3IgXCJleHRlcm5hbFwiLCB0aG9zZSBhcmUgYm90aCBzdGFibGUgYnkgaW1wbGljYXRpb25cbiAgICByZXR1cm4gKFxuICAgICAgc3RhYmlsaXR5ID09PSBTdGFiaWxpdHkuRGVwcmVjYXRlZCB8fCBzdGFiaWxpdHkgPT09IFN0YWJpbGl0eS5FeHBlcmltZW50YWxcbiAgICApO1xuICB9XG59XG4iXX0=
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, documenter }: EmitContext): void;
50
- emitDecl(context: EmitContext): void;
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, documenter }) {
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(context) {
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(code);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEsd0NBQTJDO0FBQzNDLHVDQUFtQztBQUVuQyxNQUFhLElBQUssU0FBUSxnQkFBZ0I7SUFHeEMsWUFBbUIsR0FBWSxFQUFFLElBQWM7UUFDN0MsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRU0sSUFBSSxDQUFDLE9BQW9CO1FBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdkIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUN6QixvRUFBb0U7UUFDcEUsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxJQUFJLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVyQixzREFBc0Q7UUFDdEQsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbkI7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxJQUFlO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyx1QkFBYSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNyQyxLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLE1BQU0sTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7U0FDcEQ7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNyQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxJQUFXLG1CQUFtQjtRQUM1QixPQUFPO1lBQ0wsT0FBTyxFQUFFLEtBQUs7WUFDZCxJQUFJLEVBQUUsS0FBSztZQUNYLFFBQVEsRUFBRSxLQUFLO1lBQ2YsSUFBSSxFQUFFLEtBQUs7U0FDWixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBcERELG9CQW9EQztBQUVELE1BQU0sWUFBWTtJQUloQixZQUFvQyxNQUFZLEVBQUUsS0FBaUI7UUFBL0IsV0FBTSxHQUFOLE1BQU0sQ0FBTTtRQUM5QyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFFTSxJQUFJLENBQUMsSUFBZTtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksT0FBTyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNyRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2RlTWFrZXIgfSBmcm9tICdjb2RlbWFrZXInO1xuaW1wb3J0IHsgRW51bVR5cGUsIEVudW1NZW1iZXIgfSBmcm9tICdqc2lpLXJlZmxlY3QnO1xuXG5pbXBvcnQgeyBTcGVjaWFsRGVwZW5kZW5jaWVzIH0gZnJvbSAnLi4vZGVwZW5kZW5jaWVzJztcbmltcG9ydCB7IEVtaXRDb250ZXh0IH0gZnJvbSAnLi4vZW1pdC1jb250ZXh0JztcbmltcG9ydCB7IFBhY2thZ2UgfSBmcm9tICcuLi9wYWNrYWdlJztcbmltcG9ydCB7IEpTSUlfUlRfQUxJQVMgfSBmcm9tICcuLi9ydW50aW1lJztcbmltcG9ydCB7IEdvVHlwZSB9IGZyb20gJy4vZ28tdHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBFbnVtIGV4dGVuZHMgR29UeXBlPEVudW1UeXBlPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWVtYmVyczogcmVhZG9ubHkgR29FbnVtTWVtYmVyW107XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBrZzogUGFja2FnZSwgdHlwZTogRW51bVR5cGUpIHtcbiAgICBzdXBlcihwa2csIHR5cGUpO1xuXG4gICAgdGhpcy5tZW1iZXJzID0gdHlwZS5tZW1iZXJzLm1hcCgobWVtKSA9PiBuZXcgR29FbnVtTWVtYmVyKHRoaXMsIG1lbSkpO1xuICB9XG5cbiAgcHVibGljIGVtaXQoY29udGV4dDogRW1pdENvbnRleHQpIHtcbiAgICB0aGlzLmVtaXREb2NzKGNvbnRleHQpO1xuXG4gICAgY29uc3QgeyBjb2RlIH0gPSBjb250ZXh0O1xuICAgIC8vIFRPRE8gZmlndXJlIG91dCB0aGUgdmFsdWUgdHlwZSAtLSBwcm9iYWJseSBhIHN0cmluZyBpbiBtb3N0IGNhc2VzXG4gICAgY29uc3QgdmFsdWVUeXBlID0gJ3N0cmluZyc7XG4gICAgY29kZS5saW5lKGB0eXBlICR7dGhpcy5uYW1lfSAke3ZhbHVlVHlwZX1gKTtcbiAgICBjb2RlLmxpbmUoKTtcbiAgICBjb2RlLm9wZW4oYGNvbnN0IChgKTtcblxuICAgIC8vIENvbnN0IHZhbHVlcyBhcmUgcHJlZml4ZWQgYnkgdGhlIHdyYXBwZWQgdmFsdWUgdHlwZVxuICAgIGZvciAoY29uc3QgbWVtYmVyIG9mIHRoaXMubWVtYmVycykge1xuICAgICAgbWVtYmVyLmVtaXQoY29kZSk7XG4gICAgfVxuXG4gICAgY29kZS5jbG9zZShgKWApO1xuICAgIGNvZGUubGluZSgpO1xuICB9XG5cbiAgcHVibGljIGVtaXRSZWdpc3RyYXRpb24oY29kZTogQ29kZU1ha2VyKTogdm9pZCB7XG4gICAgY29kZS5vcGVuKGAke0pTSUlfUlRfQUxJQVN9LlJlZ2lzdGVyRW51bShgKTtcbiAgICBjb2RlLmxpbmUoYFwiJHt0aGlzLmZxbn1cIixgKTtcbiAgICBjb2RlLmxpbmUoYHJlZmxlY3QuVHlwZU9mKCgqJHt0aGlzLm5hbWV9KShuaWwpKS5FbGVtKCksYCk7XG4gICAgY29kZS5vcGVuKGBtYXBbc3RyaW5nXWludGVyZmFjZXt9e2ApO1xuICAgIGZvciAoY29uc3QgbWVtYmVyIG9mIHRoaXMubWVtYmVycykge1xuICAgICAgY29kZS5saW5lKGBcIiR7bWVtYmVyLnJhd1ZhbHVlfVwiOiAke21lbWJlci5uYW1lfSxgKTtcbiAgICB9XG4gICAgY29kZS5jbG9zZShgfSxgKTtcbiAgICBjb2RlLmNsb3NlKCcpJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlcGVuZGVuY2llcygpOiBQYWNrYWdlW10ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3BlY2lhbERlcGVuZGVuY2llcygpOiBTcGVjaWFsRGVwZW5kZW5jaWVzIHtcbiAgICByZXR1cm4ge1xuICAgICAgcnVudGltZTogZmFsc2UsXG4gICAgICBpbml0OiBmYWxzZSxcbiAgICAgIGludGVybmFsOiBmYWxzZSxcbiAgICAgIHRpbWU6IGZhbHNlLFxuICAgIH07XG4gIH1cbn1cblxuY2xhc3MgR29FbnVtTWVtYmVyIHtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHJhd1ZhbHVlOiBzdHJpbmc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcGFyZW50OiBFbnVtLCBlbnRyeTogRW51bU1lbWJlcikge1xuICAgIHRoaXMubmFtZSA9IGAke3BhcmVudC5uYW1lfV8ke2VudHJ5Lm5hbWV9YDtcbiAgICB0aGlzLnJhd1ZhbHVlID0gZW50cnkubmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0KGNvZGU6IENvZGVNYWtlcikge1xuICAgIGNvZGUubGluZShgJHt0aGlzLm5hbWV9ICR7dGhpcy5wYXJlbnQubmFtZX0gPSBcIiR7dGhpcy5yYXdWYWx1ZX1cImApO1xuICB9XG59XG4iXX0=
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ28tdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImdvLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEsd0NBQTJDO0FBSTNDLE1BQXNCLE1BQU07SUFLMUIsWUFBbUMsR0FBWSxFQUFrQixJQUFPO1FBQXJDLFFBQUcsR0FBSCxHQUFHLENBQVM7UUFBa0IsU0FBSSxHQUFKLElBQUksQ0FBRztRQUN0RSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFFdEIsZ0VBQWdFO1FBQ2hFLEtBQ0UsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFDL0IsTUFBTSxJQUFJLElBQUksRUFDZCxNQUFNLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFDN0I7WUFDQSxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDM0M7UUFFRCw0RUFBNEU7UUFDNUUsaUVBQWlFO1FBQ2pFLElBQUksQ0FBQyxTQUFTLEdBQUcsYUFBYSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFMUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3RCLENBQUM7SUFTRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztJQUM5QixDQUFDO0lBRU0sUUFBUSxDQUFDLE9BQW9CO1FBQ2xDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVTLGFBQWEsQ0FBQyxPQUFvQjtRQUMxQyxPQUFPLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFUyxzQkFBc0IsQ0FDOUIsSUFBZSxFQUNmLEtBQTJDO1FBRTNDLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNsQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQztZQUNuRCxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtnQkFDeEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDckQsSUFBSSxDQUFDLElBQUksQ0FDUCxHQUFHLHVCQUFhLG1CQUFtQixXQUFXLElBQUksU0FBUyxDQUFDLFNBQVMsR0FBRyxDQUN6RSxDQUFDO2FBQ0g7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsV0FBVyxFQUFFLENBQUMsQ0FBQztTQUNyQzthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDO1NBQzFDO1FBQ0QseUVBQXlFO1FBQ3pFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBaEVELHdCQWdFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gJ2NvZGVtYWtlcic7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnanNpaS1yZWZsZWN0JztcblxuaW1wb3J0IHsgU3BlY2lhbERlcGVuZGVuY2llcyB9IGZyb20gJy4uL2RlcGVuZGVuY2llcyc7XG5pbXBvcnQgeyBFbWl0Q29udGV4dCB9IGZyb20gJy4uL2VtaXQtY29udGV4dCc7XG5pbXBvcnQgeyBQYWNrYWdlIH0gZnJvbSAnLi4vcGFja2FnZSc7XG5pbXBvcnQgeyBKU0lJX1JUX0FMSUFTIH0gZnJvbSAnLi4vcnVudGltZSc7XG5pbXBvcnQgeyBHb0NsYXNzIH0gZnJvbSAnLi9jbGFzcyc7XG5pbXBvcnQgeyBHb0ludGVyZmFjZSB9IGZyb20gJy4vaW50ZXJmYWNlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEdvVHlwZTxUIGV4dGVuZHMgVHlwZSA9IFR5cGU+IHtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGZxbjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJveHlOYW1lOiBzdHJpbmc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBwa2c6IFBhY2thZ2UsIHB1YmxpYyByZWFkb25seSB0eXBlOiBUKSB7XG4gICAgdGhpcy5uYW1lID0gdHlwZS5uYW1lO1xuXG4gICAgLy8gUHJlZml4IHdpdGggdGhlIG5lc3RpbmcgcGFyZW50IG5hbWUocyksIHVzaW5nIGFuIF8gZGVsaW1pdGVyLlxuICAgIGZvciAoXG4gICAgICBsZXQgcGFyZW50ID0gdHlwZS5uZXN0aW5nUGFyZW50O1xuICAgICAgcGFyZW50ICE9IG51bGw7XG4gICAgICBwYXJlbnQgPSBwYXJlbnQubmVzdGluZ1BhcmVudFxuICAgICkge1xuICAgICAgdGhpcy5uYW1lID0gYCR7cGFyZW50Lm5hbWV9XyR7dGhpcy5uYW1lfWA7XG4gICAgfVxuXG4gICAgLy8gQWRkIFwianNpaVByb3h5X1wiIHByZWZpeCB0byBwcml2YXRlIHN0cnVjdCBuYW1lIHRvIGF2b2lkIGtleXdvcmQgY29uZmxpY3RzXG4gICAgLy8gc3VjaCBhcyBcImRlZmF1bHRcIi4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvanNpaS9pc3N1ZXMvMjYzN1xuICAgIHRoaXMucHJveHlOYW1lID0gYGpzaWlQcm94eV8ke3RoaXMubmFtZX1gO1xuXG4gICAgdGhpcy5mcW4gPSB0eXBlLmZxbjtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCBlbWl0KGNvbnRleHQ6IEVtaXRDb250ZXh0KTogdm9pZDtcblxuICBwdWJsaWMgYWJzdHJhY3QgZW1pdFJlZ2lzdHJhdGlvbihjb2RlOiBDb2RlTWFrZXIpOiB2b2lkO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXQgZGVwZW5kZW5jaWVzKCk6IFBhY2thZ2VbXTtcbiAgcHVibGljIGFic3RyYWN0IGdldCBzcGVjaWFsRGVwZW5kZW5jaWVzKCk6IFNwZWNpYWxEZXBlbmRlbmNpZXM7XG5cbiAgcHVibGljIGdldCBuYW1lc3BhY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucGtnLnBhY2thZ2VOYW1lO1xuICB9XG5cbiAgcHVibGljIGVtaXREb2NzKGNvbnRleHQ6IEVtaXRDb250ZXh0KTogdm9pZCB7XG4gICAgY29udGV4dC5kb2N1bWVudGVyLmVtaXQodGhpcy50eXBlLmRvY3MpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGVtaXRTdGFiaWxpdHkoY29udGV4dDogRW1pdENvbnRleHQpOiB2b2lkIHtcbiAgICBjb250ZXh0LmRvY3VtZW50ZXIuZW1pdFN0YWJpbGl0eSh0aGlzLnR5cGUuZG9jcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZW1pdFByb3h5TWFrZXJGdW5jdGlvbihcbiAgICBjb2RlOiBDb2RlTWFrZXIsXG4gICAgYmFzZXM6IFJlYWRvbmx5QXJyYXk8R29DbGFzcyB8IEdvSW50ZXJmYWNlPixcbiAgKTogdm9pZCB7XG4gICAgY29kZS5vcGVuKCdmdW5jKCkgaW50ZXJmYWNle30geycpO1xuICAgIGlmIChiYXNlcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBpbnN0YW5jZVZhciA9IHRoaXMucHJveHlOYW1lWzBdO1xuICAgICAgY29kZS5saW5lKGAke2luc3RhbmNlVmFyfSA6PSAke3RoaXMucHJveHlOYW1lfXt9YCk7XG4gICAgICBmb3IgKGNvbnN0IGJhc2Ugb2YgYmFzZXMpIHtcbiAgICAgICAgY29uc3QgYmFzZUVtYmVkID0gdGhpcy5wa2cucmVzb2x2ZUVtYmVkZGVkVHlwZShiYXNlKTtcbiAgICAgICAgY29kZS5saW5lKFxuICAgICAgICAgIGAke0pTSUlfUlRfQUxJQVN9LkluaXRKc2lpUHJveHkoJiR7aW5zdGFuY2VWYXJ9LiR7YmFzZUVtYmVkLmZpZWxkTmFtZX0pYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvZGUubGluZShgcmV0dXJuICYke2luc3RhbmNlVmFyfWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb2RlLmxpbmUoYHJldHVybiAmJHt0aGlzLnByb3h5TmFtZX17fWApO1xuICAgIH1cbiAgICAvLyBUaGlzIGlzIGFsd2F5cyB1c2VkIGFzIGEgZnVuY3Rpb24gYXJndW1lbnQsIHNvIHdlIGFkZCBhIHRyYWlsaW5nIGNvbW1hXG4gICAgY29kZS5jbG9zZSgnfSwnKTtcbiAgfVxufVxuIl19
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(context: EmitContext): void;
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
- documenter.emit(this.property.docs);
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(context) {
179
- const docs = this.method.docs;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLDhDQUE4QztBQUk5Qyx3Q0FBdUQ7QUFDdkQsa0NBQXNFO0FBQ3RFLHVDQUFtQztBQUNuQywyREFBZ0Q7QUFDaEQsK0NBQXFEO0FBRXJELE1BQWEsV0FBWSxTQUFRLGdCQUFxQjtJQU1wRCxZQUFtQixHQUFZLEVBQUUsSUFBbUI7UUFDbEQsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVO2FBQzNCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQ2xELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYTthQUNqQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFNUIsMEVBQTBFO1FBQzFFLDJFQUEyRTtRQUMzRSxzRUFBc0U7UUFDdEUsNEVBQTRFO1FBQzVFLHlDQUF5QztRQUN6QyxJQUNFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDMUIsSUFBSTtpQkFDRCxhQUFhLENBQUMsSUFBSSxDQUFDO2lCQUNuQixJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQ2xFO1lBQ0EsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxV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QztnQkFDakUsQ0FBQyxRQUFDLElBQUksQ0FBQyxTQUFTLDBDQUFFLG1CQUFtQixDQUFDLElBQUksQ0FBQTtTQUM3QyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQVksZ0JBQWdCOztRQUMxQixPQUFPLE9BQUEsSUFBSSxDQUFDLFNBQVMsMENBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzNELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gJ2NvZGVtYWtlcic7XG5pbXBvcnQgeyBJbnRlcmZhY2VUeXBlLCBNZXRob2QsIFByb3BlcnR5IH0gZnJvbSAnanNpaS1yZWZsZWN0JztcblxuaW1wb3J0ICogYXMgY29tcGFyYXRvcnMgZnJvbSAnLi4vY29tcGFyYXRvcnMnO1xuaW1wb3J0IHsgU3BlY2lhbERlcGVuZGVuY2llcyB9IGZyb20gJy4uL2RlcGVuZGVuY2llcyc7XG5pbXBvcnQgeyBFbWl0Q29udGV4dCB9IGZyb20gJy4uL2VtaXQtY29udGV4dCc7XG5pbXBvcnQgeyBQYWNrYWdlIH0gZnJvbSAnLi4vcGFja2FnZSc7XG5pbXBvcnQgeyBKU0lJX1JUX0FMSUFTLCBNZXRob2RDYWxsIH0gZnJvbSAnLi4vcnVudGltZSc7XG5pbXBvcnQgeyBnZXRNZW1iZXJEZXBlbmRlbmNpZXMsIGdldFBhcmFtRGVwZW5kZW5jaWVzIH0gZnJvbSAnLi4vdXRpbCc7XG5pbXBvcnQgeyBHb1R5cGUgfSBmcm9tICcuL2dvLXR5cGUnO1xuaW1wb3J0IHsgR29UeXBlUmVmIH0gZnJvbSAnLi9nby10eXBlLXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBHb01ldGhvZCwgR29Qcm9wZXJ0eSB9IGZyb20gJy4vdHlwZS1tZW1iZXInO1xuXG5leHBvcnQgY2xhc3MgR29JbnRlcmZhY2UgZXh0ZW5kcyBHb1R5cGU8SW50ZXJmYWNlVHlwZT4ge1xuICBwdWJsaWMgcmVhZG9ubHkgbWV0aG9kczogSW50ZXJmYWNlTWV0aG9kW107XG4gIHB1YmxpYyByZWFkb25seSByZWltcGxlbWVudGVkTWV0aG9kcz86IHJlYWRvbmx5IEludGVyZmFjZU1ldGhvZFtdO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvcGVydGllczogSW50ZXJmYWNlUHJvcGVydHlbXTtcbiAgcHVibGljIHJlYWRvbmx5IHJlaW1wbGVtZW50ZWRQcm9wZXJ0aWVzPzogcmVhZG9ubHkgSW50ZXJmYWNlUHJvcGVydHlbXTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocGtnOiBQYWNrYWdlLCB0eXBlOiBJbnRlcmZhY2VUeXBlKSB7XG4gICAgc3VwZXIocGtnLCB0eXBlKTtcblxuICAgIHRoaXMubWV0aG9kcyA9IHR5cGUub3duTWV0aG9kc1xuICAgICAgLm1hcCgobWV0aG9kKSA9PiBuZXcgSW50ZXJmYWNlTWV0aG9kKHRoaXMsIG1ldGhvZCkpXG4gICAgICAuc29ydChjb21wYXJhdG9ycy5ieU5hbWUpO1xuXG4gICAgdGhpcy5wcm9wZXJ0aWVzID0gdHlwZS5vd25Qcm9wZXJ0aWVzXG4gICAgICAubWFwKChwcm9wKSA9PiBuZXcgSW50ZXJmYWNlUHJvcGVydHkodGhpcywgcHJvcCkpXG4gICAgICAuc29ydChjb21wYXJhdG9ycy5ieU5hbWUpO1xuXG4gICAgLy8gSWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBiYXNlLCBhbmQgYW55IGFuY2VzdG9yIChpbmNsdWRpbmcgdHJhbnNpdGl2ZSlcbiAgICAvLyBjb21lcyBmcm9tIGEgZGlmZmVyZW50IGFzc2VtYmx5LCB3ZSB3aWxsIHJlLWltcGxlbWVudCBhbGwgbWVtYmVycyBvbiB0aGVcbiAgICAvLyBwcm94eSBzdHJ1Y3QsIGFzIG90aGVyd2lzZSB3ZSBydW4gdGhlIHJpc2sgb2YgdW4tcHJvbW90YWJsZSBtZXRob2RzXG4gICAgLy8gY2F1c2VkIGJ5IGluaGVyaXRpbmcgdGhlIHNhbWUgaW50ZXJmYWNlIHZpYSBtdWx0aXBsZSBwYXRocyAoc2luY2Ugd2UgaGF2ZVxuICAgIC8vIHRvIHJlcHJlc2VudCB0aG9zZSBhcyBlbWJlZGRlZCB0eXBlcykuXG4gICAgaWYgKFxuICAgICAgdHlwZS5pbnRlcmZhY2VzLmxlbmd0aCA+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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUFpQztBQU9qQyx3Q0FBMkM7QUFDM0Msa0NBQWdEO0FBQ2hELHVDQUFtQztBQUNuQywrQ0FBMkM7QUFFM0M7O0dBRUc7QUFDSCxNQUFhLE1BQU8sU0FBUSxnQkFBcUI7SUFHL0MsWUFBbUIsTUFBZSxFQUFFLElBQW1CO1FBQ3JELEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFcEIsTUFBTSxDQUNKLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFDakIsMEJBQTBCLElBQUksQ0FBQyxHQUFHLG1CQUFtQixDQUN0RCxDQUFDO1FBRUYsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDdEMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksd0JBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQ3JDLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sNEJBQXFCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFXLG1CQUFtQjtRQUM1QixPQUFPO1lBQ0wsT0FBTyxFQUFFLEtBQUs7WUFDZCxJQUFJLEVBQUUsS0FBSztZQUNYLFFBQVEsRUFBRSxLQUFLO1lBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDO1NBQ3BFLENBQUM7SUFDSixDQUFDO0lBRU0sSUFBSSxDQUFDLE9BQW9CO1FBQzlCLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ3JDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksU0FBUyxDQUFDLENBQUM7UUFDM0MsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3RDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNwQztRQUNELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsSUFBZTtRQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsdUJBQWEsa0JBQWtCLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLElBQUksaUJBQWlCLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7Q0FDRjtBQTlDRCx3QkE4Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gJ2NvZGVtYWtlcic7XG5pbXBvcnQgeyBJbnRlcmZhY2VUeXBlIH0gZnJvbSAnanNpaS1yZWZsZWN0JztcblxuaW1wb3J0IHsgU3BlY2lhbERlcGVuZGVuY2llcyB9IGZyb20gJy4uL2RlcGVuZGVuY2llcyc7XG5pbXBvcnQgeyBFbWl0Q29udGV4dCB9IGZyb20gJy4uL2VtaXQtY29udGV4dCc7XG5pbXBvcnQgeyBQYWNrYWdlIH0gZnJvbSAnLi4vcGFja2FnZSc7XG5pbXBvcnQgeyBKU0lJX1JUX0FMSUFTIH0gZnJvbSAnLi4vcnVudGltZSc7XG5pbXBvcnQgeyBnZXRNZW1iZXJEZXBlbmRlbmNpZXMgfSBmcm9tICcuLi91dGlsJztcbmltcG9ydCB7IEdvVHlwZSB9IGZyb20gJy4vZ28tdHlwZSc7XG5pbXBvcnQgeyBHb1Byb3BlcnR5IH0gZnJvbSAnLi90eXBlLW1lbWJlcic7XG5cbi8qXG4gKiBTdHJ1Y3Qgd3JhcHMgYSBKU0lJIGRhdGF0eXBlIGludGVyZmFjZSBha2EsIHN0cnVjdHNcbiAqL1xuZXhwb3J0IGNsYXNzIFN0cnVjdCBleHRlbmRzIEdvVHlwZTxJbnRlcmZhY2VUeXBlPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcGVydGllczogcmVhZG9ubHkgR29Qcm9wZXJ0eVtdO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJlbnQ6IFBhY2thZ2UsIHR5cGU6IEludGVyZmFjZVR5cGUpIHtcbiAgICBzdXBlcihwYXJlbnQsIHR5cGUpO1xuXG4gICAgYXNzZXJ0KFxuICAgICAgdHlwZS5pc0RhdGFUeXBlKCksXG4gICAgICBgVGhlIHByb3ZpZGVkIGludGVyZmFjZSAke3R5cGUuZnFufSBpcyBub3QgYSBzdHJ1Y3QhYCxcbiAgICApO1xuXG4gICAgdGhpcy5wcm9wZXJ0aWVzID0gdHlwZS5hbGxQcm9wZXJ0aWVzLm1hcChcbiAgICAgIChwcm9wKSA9PiBuZXcgR29Qcm9wZXJ0eSh0aGlzLCBwcm9wKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBkZXBlbmRlbmNpZXMoKTogUGFja2FnZVtdIHtcbiAgICByZXR1cm4gZ2V0TWVtYmVyRGVwZW5kZW5jaWVzKHRoaXMucHJvcGVydGllcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNwZWNpYWxEZXBlbmRlbmNpZXMoKTogU3BlY2lhbERlcGVuZGVuY2llcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJ1bnRpbWU6IGZhbHNlLFxuICAgICAgaW5pdDogZmFsc2UsXG4gICAgICBpbnRlcm5hbDogZmFsc2UsXG4gICAgICB0aW1lOiB0aGlzLnByb3BlcnRpZXMuc29tZSgocHJvcCkgPT4gcHJvcC5zcGVjaWFsRGVwZW5kZW5jaWVzLnRpbWUpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZW1pdChjb250ZXh0OiBFbWl0Q29udGV4dCk6IHZvaWQge1xuICAgIGNvbnN0IHsgY29kZSwgZG9jdW1lbnRlciB9ID0gY29udGV4dDtcbiAgICBkb2N1bWVudGVyLmVtaXQodGhpcy50eXBlLmRvY3MpO1xuICAgIGNvZGUub3BlbkJsb2NrKGB0eXBlICR7dGhpcy5uYW1lfSBzdHJ1Y3RgKTtcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHRoaXMucHJvcGVydGllcykge1xuICAgICAgcHJvcGVydHkuZW1pdFN0cnVjdE1lbWJlcihjb250ZXh0KTtcbiAgICB9XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdFJlZ2lzdHJhdGlvbihjb2RlOiBDb2RlTWFrZXIpOiB2b2lkIHtcbiAgICBjb2RlLm9wZW4oYCR7SlNJSV9SVF9BTElBU30uUmVnaXN0ZXJTdHJ1Y3QoYCk7XG4gICAgY29kZS5saW5lKGBcIiR7dGhpcy5mcW59XCIsYCk7XG4gICAgY29kZS5saW5lKGByZWZsZWN0LlR5cGVPZigoKiR7dGhpcy5uYW1lfSkobmlsKSkuRWxlbSgpLGApO1xuICAgIGNvZGUuY2xvc2UoJyknKTtcbiAgfVxufVxuIl19
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(context: EmitContext): void;
26
- emitGetter({ code, documenter }: EmitContext): void;
27
- emitSetterDecl(context: EmitContext): void;
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(context) {
56
- const { code } = context;
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, documenter }) {
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(context) {
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.54.0";
2
+ export declare const VERSION = "1.55.0";
3
3
  /** The qualified version number for this JSII compiler (e.g: `X.Y.Z (build #######)`) */
4
- export declare const VERSION_DESC = "1.54.0 (build b1b977a)";
4
+ export declare const VERSION_DESC = "1.55.0 (build 3e0fc04)";
package/lib/version.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
- // Generated at 2022-02-15T21:18:48Z by generate.sh
2
+ // Generated at 2022-03-10T10:29:19Z 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.54.0';
6
+ exports.VERSION = '1.55.0';
7
7
  /** The qualified version number for this JSII compiler (e.g: `X.Y.Z (build #######)`) */
8
- exports.VERSION_DESC = '1.54.0 (build b1b977a)';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG1EQUFtRDs7O0FBRW5ELHFFQUFxRTtBQUN4RCxRQUFBLE9BQU8sR0FBRyxRQUFRLENBQUM7QUFFaEMseUZBQXlGO0FBQzVFLFFBQUEsWUFBWSxHQUFHLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR2VuZXJhdGVkIGF0IDIwMjItMDItMTVUMjE6MTg6NDhaIGJ5IGdlbmVyYXRlLnNoXG5cbi8qKiBUaGUgc2hvcnQgdmVyc2lvbiBudW1iZXIgZm9yIHRoaXMgSlNJSSBjb21waWxlciAoZS5nOiBgWC5ZLlpgKSAqL1xuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSAnMS41NC4wJztcblxuLyoqIFRoZSBxdWFsaWZpZWQgdmVyc2lvbiBudW1iZXIgZm9yIHRoaXMgSlNJSSBjb21waWxlciAoZS5nOiBgWC5ZLlogKGJ1aWxkICMjIyMjIyMpYCkgKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OX0RFU0MgPSAnMS41NC4wIChidWlsZCBiMWI5NzdhKSc7XG4iXX0=
8
+ exports.VERSION_DESC = '1.55.0 (build 3e0fc04)';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG1EQUFtRDs7O0FBRW5ELHFFQUFxRTtBQUN4RCxRQUFBLE9BQU8sR0FBRyxRQUFRLENBQUM7QUFFaEMseUZBQXlGO0FBQzVFLFFBQUEsWUFBWSxHQUFHLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR2VuZXJhdGVkIGF0IDIwMjItMDMtMTBUMTA6Mjk6MTlaIGJ5IGdlbmVyYXRlLnNoXG5cbi8qKiBUaGUgc2hvcnQgdmVyc2lvbiBudW1iZXIgZm9yIHRoaXMgSlNJSSBjb21waWxlciAoZS5nOiBgWC5ZLlpgKSAqL1xuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSAnMS41NS4wJztcblxuLyoqIFRoZSBxdWFsaWZpZWQgdmVyc2lvbiBudW1iZXIgZm9yIHRoaXMgSlNJSSBjb21waWxlciAoZS5nOiBgWC5ZLlogKGJ1aWxkICMjIyMjIyMpYCkgKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OX0RFU0MgPSAnMS41NS4wIChidWlsZCAzZTBmYzA0KSc7XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jsii-pacmak",
3
- "version": "1.54.0",
3
+ "version": "1.55.0",
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.54.0",
41
- "@jsii/spec": "^1.54.0",
40
+ "@jsii/check-node": "1.55.0",
41
+ "@jsii/spec": "^1.55.0",
42
42
  "clone": "^2.1.2",
43
- "codemaker": "^1.54.0",
43
+ "codemaker": "^1.55.0",
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.54.0",
48
- "jsii-rosetta": "^1.54.0",
47
+ "jsii-reflect": "^1.55.0",
48
+ "jsii-rosetta": "^1.55.0",
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.54.0",
56
- "@jsii/java-runtime": "^1.54.0",
57
- "@jsii/go-runtime": "^1.54.0",
58
- "@scope/jsii-calc-lib": "^1.54.0",
55
+ "@jsii/dotnet-runtime": "^1.55.0",
56
+ "@jsii/java-runtime": "^1.55.0",
57
+ "@jsii/go-runtime": "^1.55.0",
58
+ "@scope/jsii-calc-lib": "^1.55.0",
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.0",
63
- "@types/node": "^12.20.43",
62
+ "@types/jest": "^27.4.1",
63
+ "@types/node": "^12.20.46",
64
64
  "@types/semver": "^7.3.9",
65
- "eslint": "^8.8.0",
65
+ "eslint": "^8.10.0",
66
66
  "jest": "^27.5.1",
67
- "jsii": "^1.54.0",
68
- "jsii-build-tools": "^1.54.0",
67
+ "jsii": "^1.55.0",
68
+ "jsii-build-tools": "^1.55.0",
69
69
  "jsii-calc": "^3.20.120",
70
70
  "prettier": "^2.5.1",
71
71
  "ts-jest": "^27.1.3",