jsii-pacmak 1.52.1 → 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.
@@ -10,7 +10,6 @@ const type_member_1 = require("./type-member");
10
10
  class GoInterface extends go_type_1.GoType {
11
11
  constructor(pkg, type) {
12
12
  super(pkg, type);
13
- this.type = type;
14
13
  this.methods = type.ownMethods
15
14
  .map((method) => new InterfaceMethod(this, method))
16
15
  .sort(comparators.byName);
@@ -158,14 +157,16 @@ class InterfaceProperty extends type_member_1.GoProperty {
158
157
  this.property = property;
159
158
  }
160
159
  get returnType() {
161
- var _a, _b;
162
- return ((_b = (_a = this.reference) === null || _a === void 0 ? void 0 : _a.scopedReference(this.parent.pkg)) !== null && _b !== void 0 ? _b : this.property.type.toString());
160
+ return this.reference.scopedReference(this.parent.pkg);
163
161
  }
164
162
  emit({ code, documenter }) {
165
- documenter.emit(this.property.docs);
163
+ documenter.emit(this.property.docs, this.apiLocation);
166
164
  code.line(`${this.name}() ${this.returnType}`);
167
165
  if (!this.property.immutable) {
168
- 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);
169
170
  code.line(`Set${this.name}(${this.name[0].toLowerCase()} ${this.returnType})`);
170
171
  }
171
172
  }
@@ -177,12 +178,8 @@ class InterfaceMethod extends type_member_1.GoMethod {
177
178
  this.method = method;
178
179
  this.runtimeCall = new runtime_1.MethodCall(this);
179
180
  }
180
- emitDecl(context) {
181
- const docs = this.method.docs;
182
- if (docs) {
183
- context.documenter.emit(docs);
184
- }
185
- const { code } = context;
181
+ emitDecl({ code, documenter }) {
182
+ documenter.emit(this.method.docs, this.apiLocation);
186
183
  code.line(`${this.name}(${this.paramString()})${this.returnTypeString}`);
187
184
  }
188
185
  emit({ code }) {
@@ -207,4 +204,4 @@ class InterfaceMethod extends type_member_1.GoMethod {
207
204
  return ((_a = this.reference) === null || _a === void 0 ? void 0 : _a.void) ? '' : ` ${this.returnType}`;
208
205
  }
209
206
  }
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLDhDQUE4QztBQUk5Qyx3Q0FBdUQ7QUFDdkQsa0NBQXNFO0FBQ3RFLHVDQUFtQztBQUNuQywyREFBZ0Q7QUFDaEQsK0NBQXFEO0FBRXJELE1BQWEsV0FBWSxTQUFRLGdCQUFNO0lBTXJDLFlBQW1CLEdBQVksRUFBUyxJQUFtQjtRQUN6RCxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRHFCLFNBQUksR0FBSixJQUFJLENBQWU7UUFHekQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVTthQUMzQixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksZUFBZSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQzthQUNsRCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTVCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWE7YUFDakMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzthQUNoRCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTVCLDBFQUEwRTtRQUMxRSwyRUFBMkU7UUFDM0Usc0VBQXNFO1FBQ3RFLDRFQUE0RTtRQUM1RSx5Q0FBeUM7UUFDekMsSUFDRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQzFCLElBQUk7aUJBQ0QsYUFBYSxDQUFDLElBQUksQ0FBQztpQkFDbkIsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUNsRTtZQUNBLElBQUksQ0FB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QUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7Z0JBQ2pFLENBQUMsUUFBQyxJQUFJLENBQUMsU0FBUywwQ0FBRSxtQkFBbUIsQ0FBQyxJQUFJLENBQUE7U0FDN0MsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFZLGdCQUFnQjs7UUFDMUIsT0FBTyxPQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLElBQUksRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2RlTWFrZXIgfSBmcm9tICdjb2RlbWFrZXInO1xuaW1wb3J0IHsgSW50ZXJmYWNlVHlwZSwgTWV0aG9kLCBQcm9wZXJ0eSB9IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5cbmltcG9ydCAqIGFzIGNvbXBhcmF0b3JzIGZyb20gJy4uL2NvbXBhcmF0b3JzJztcbmltcG9ydCB7IFNwZWNpYWxEZXBlbmRlbmNpZXMgfSBmcm9tICcuLi9kZXBlbmRlbmNpZXMnO1xuaW1wb3J0IHsgRW1pdENvbnRleHQgfSBmcm9tICcuLi9lbWl0LWNvbnRleHQnO1xuaW1wb3J0IHsgUGFja2FnZSB9IGZyb20gJy4uL3BhY2thZ2UnO1xuaW1wb3J0IHsgSlNJSV9SVF9BTElBUywgTWV0aG9kQ2FsbCB9IGZyb20gJy4uL3J1bnRpbWUnO1xuaW1wb3J0IHsgZ2V0TWVtYmVyRGVwZW5kZW5jaWVzLCBnZXRQYXJhbURlcGVuZGVuY2llcyB9IGZyb20gJy4uL3V0aWwnO1xuaW1wb3J0IHsgR29UeXBlIH0gZnJvbSAnLi9nby10eXBlJztcbmltcG9ydCB7IEdvVHlwZVJlZiB9IGZyb20gJy4vZ28tdHlwZS1yZWZlcmVuY2UnO1xuaW1wb3J0IHsgR29NZXRob2QsIEdvUHJvcGVydHkgfSBmcm9tICcuL3R5cGUtbWVtYmVyJztcblxuZXhwb3J0IGNsYXNzIEdvSW50ZXJmYWNlIGV4dGVuZHMgR29UeXBlIHtcbiAgcHVibGljIHJlYWRvbmx5IG1ldGhvZHM6IEludGVyZmFjZU1ldGhvZFtdO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVpbXBsZW1lbnRlZE1ldGhvZHM/OiByZWFkb25seSBJbnRlcmZhY2VNZXRob2RbXTtcbiAgcHVibGljIHJlYWRvbmx5IHByb3BlcnRpZXM6IEludGVyZmFjZVByb3BlcnR5W107XG4gIHB1YmxpYyByZWFkb25seSByZWltcGxlbWVudGVkUHJvcGVydGllcz86IHJlYWRvbmx5IEludGVyZmFjZVByb3BlcnR5W107XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBrZzogUGFja2FnZSwgcHVibGljIHR5cGU6IEludGVyZmFjZVR5cGUpIHtcbiAgICBzdXBlcihwa2csIHR5cGUpO1xuXG4gICAgdGhpcy5tZXRob2RzID0gdHlwZS5vd25NZXRob2RzXG4gICAgICAubWFwKChtZXRob2QpID0+IG5ldyBJbnRlcmZhY2VNZXRob2QodGhpcywgbWV0aG9kKSlcbiAgICAgIC5zb3J0KGNvbXBhcmF0b3JzLmJ5TmFtZSk7XG5cbiAgICB0aGlzLnByb3BlcnRpZXMgPSB0eXBlLm93blByb3BlcnRpZXNcbiAgICAgIC5tYXAoKHByb3ApID0+IG5ldyBJbnRlcmZhY2VQcm9wZXJ0eSh0aGlzLCBwcm9wKSlcbiAgICAgIC5zb3J0KGNvbXBhcmF0b3JzLmJ5TmFtZSk7XG5cbiAgICAvLyBJZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIGJhc2UsIGFuZCBhbnkgYW5jZXN0b3IgKGluY2x1ZGluZyB0cmFuc2l0aXZlKVxuICAgIC8vIGNvbWVzIGZyb20gYSBkaWZmZXJlbnQgYXNzZW1ibHksIHdlIHdpbGwgcmUtaW1wbGVtZW50IGFsbCBtZW1iZXJzIG9uIHRoZVxuICAgIC8vIHByb3h5IHN0cnVjdCwgYXMgb3RoZXJ3aXNlIHdlIHJ1biB0aGUgcmlzayBvZiB1bi1wcm9tb3RhYmxlIG1ldGhvZHNcbiAgICAvLyBjYXVzZWQgYnkgaW5oZXJpdGluZyB0aGUgc2FtZSBpbnRlcmZhY2UgdmlhIG11bHRpcGxlIHBhdGhzIChzaW5jZSB3ZSBoYXZlXG4gICAgLy8gdG8gcmVwcmVzZW50IHRob3NlIGFzIGVtYmVkZGVkIHR5cGVzKS5cbiAgICBpZiAoXG4gICAgICB0eXBlLmludGVyZmFjZXMubGVuZ3RoID4gMSAmJlxuICAgICAgdHlwZVxuICAgICAgICAuZ2V0SW50ZXJmYWNlcyh0cnVlKVxuICAgICAgICAuc29tZSgoYW5jZXN0b3IpID0+IGFuY2VzdG9yLmFzc2VtYmx5LmZxbiAhPT0gdHlwZS5hc3NlbWJseS5mcW4pXG4gICAgKSB7XG4gICAgICB0aGlzLnJlaW1wbGVtZW50ZWRNZXRob2RzID0gdHlwZS5hbGxNZXRob2RzXG4gICAgICAgIC5maWx0ZXIoKG1ldGhvZCkgPT4gIW1ldGhvZC5zdGF0aWMgJiYgbWV0aG9kLmRlZmluaW5nVHlwZSAhPT0gdHlwZSlcbiAgICAgICAgLm1hcCgobWV0aG9kKSA9PiBuZXcgSW50ZXJmYWNlTWV0aG9kKHRoaXMsIG1ldGhvZCkpXG4gICAgICAgIC5zb3J0KGNvbXBhcmF0b3JzLmJ5TmFtZSk7XG5cbiAgICAgIHRoaXMucmVpbXBsZW1lbnRlZFByb3BlcnRpZXMgPSB0eXBlLmFsbFByb3BlcnRpZXNcbiAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAocHJvcGVydHkpID0+ICFwcm9wZXJ0eS5zdGF0aWMgJiYgcHJvcGVydHkuZGVmaW5pbmdUeXBlICE9PSB0eXBlLFxuICAgICAgICApXG4gICAgICAgIC5tYXAoKHByb3BlcnR5KSA9PiBuZXcgSW50ZXJmYWNlUHJvcGVydHkodGhpcywgcHJvcGVydHkpKVxuICAgICAgICAuc29ydChjb21wYXJhdG9ycy5ieU5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbWl0KGNvbnRleHQ6IEVtaXRDb250ZXh0KSB7XG4gICAgdGhpcy5lbWl0RG9jcyhjb250ZXh0KTtcblxuICAgIGNvbnN0IHsgY29kZSB9ID0gY29udGV4dDtcbiAgICBjb2RlLm9wZW5CbG9jayhgdHlwZSAke3RoaXMubmFtZX0gaW50ZXJmYWNlYCk7XG5cbiAgICAvLyBlbWJlZCBleHRlbmRlZCBpbnRlcmZhY2VzXG4gICAgZm9yIChjb25zdCBpZmFjZSBvZiB0aGlzLmV4dGVuZHMpIHtcbiAgICAgIGNvZGUubGluZShcbiAgICAgICAgbmV3IEdvVHlwZVJlZih0aGlzLnBrZy5yb290LCBpZmFjZS50eXBlLnJlZmVyZW5jZSkuc2NvcGVkTmFtZSh0aGlzLnBrZyksXG4gICAgICApO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgbWV0aG9kIG9mIHRoaXMubWV0aG9kcykge1xuICAgICAgbWV0aG9kLmVtaXREZWNsKGNvbnRleHQpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgcHJvcCBvZiB0aGlzLnByb3BlcnRpZXMpIHtcbiAgICAgIHByb3AuZW1pdChjb250ZXh0KTtcbiAgICB9XG5cbiAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICBjb2RlLmxpbmUoKTtcblxuICAgIGNvZGUubGluZShgLy8gVGhlIGpzaWkgcHJveHkgZm9yICR7dGhpcy5uYW1lfWApO1xuICAgIGNvZGUub3BlbkJsb2NrKGB0eXBlICR7dGhpcy5wcm94eU5hbWV9IHN0cnVjdGApO1xuICAgIGlmICh0aGlzLmV4dGVuZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAvLyBFbnN1cmUgdGhpcyBpcyBub3QgMC13aWR0aFxuICAgICAgY29kZS5saW5lKCdfIGJ5dGUgLy8gcGFkZGluZycpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGNvbnN0IGJhc2Ugb2YgdGhpcy5leHRlbmRzKSB7XG4gICAgICAgIGNvZGUubGluZSh0aGlzLnBrZy5yZXNvbHZlRW1iZWRkZWRUeXBlKGJhc2UpLmVtYmVkKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG5cbiAgICBmb3IgKGNvbnN0IG1ldGhvZCBvZiB0aGlzLm1ldGhvZHMpIHtcbiAgICAgIG1ldGhvZC5lbWl0KGNvbnRleHQpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgbWV0aG9kIG9mIHRoaXMucmVpbXBsZW1lbnRlZE1ldGhvZHMgPz8gW10pIHtcbiAgICAgIG1ldGhvZC5lbWl0KGNvbnRleHQpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgcHJvcCBvZiB0aGlzLnByb3BlcnRpZXMpIHtcbiAgICAgIHByb3AuZW1pdEdldHRlclByb3h5KGNvbnRleHQpO1xuXG4gICAgICBpZiAoIXByb3AuaW1tdXRhYmxlKSB7XG4gICAgICAgIHByb3AuZW1pdFNldHRlclByb3h5KGNvbnRleHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgcHJvcCBvZiB0aGlzLnJlaW1wbGVtZW50ZWRQcm9wZXJ0aWVzID8/IFtdKSB7XG4gICAgICBwcm9wLmVtaXRHZXR0ZXJQcm94eShjb250ZXh0KTtcblxuICAgICAgaWYgKCFwcm9wLmltbXV0YWJsZSkge1xuICAgICAgICBwcm9wLmVtaXRTZXR0ZXJQcm94eShjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZW1pdFJlZ2lzdHJhdGlvbihjb2RlOiBDb2RlTWFrZXIpOiB2b2lkIHtcbiAgICBjb2RlLm9wZW4oYCR7SlNJSV9SVF9BTElBU30uUmVnaXN0ZXJJbnRlcmZhY2UoYCk7XG4gICAgY29kZS5saW5lKGBcIiR7dGhpcy5mcW59XCIsYCk7XG4gICAgY29kZS5saW5lKGByZWZsZWN0LlR5cGVPZigoKiR7dGhpcy5uYW1lfSkobmlsKSkuRWxlbSgpLGApO1xuXG4gICAgY29uc3QgYWxsTWVtYmVycyA9IFtcbiAgICAgIC4uLnRoaXMudHlwZS5hbGxNZXRob2RzXG4gICAgICAgIC5maWx0ZXIoKG1ldGhvZCkgPT4gIW1ldGhvZC5zdGF0aWMpXG4gICAgICAgIC5tYXAoKG1ldGhvZCkgPT4gbmV3IEludGVyZmFjZU1ldGhvZCh0aGlzLCBtZXRob2QpKSxcbiAgICAgIC4uLnRoaXMudHlwZS5hbGxQcm9wZXJ0aWVzXG4gICAgICAgIC5maWx0ZXIoKHByb3BlcnR5KSA9PiAhcHJvcGVydHkuc3RhdGljKVxuICAgICAgICAubWFwKChwcm9wZXJ0eSkgPT4gbmV3IEdvUHJvcGVydHkodGhpcywgcHJvcGVydHkpKSxcbiAgICBdLnNvcnQoY29tcGFyYXRvcnMuYnlOYW1lKTtcbiAgICBpZiAoYWxsTWVtYmVycy5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvZGUubGluZSgnbmlsLCAvLyBubyBtZW1iZXJzJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvZGUub3BlbihgW10ke0pTSUlfUlRfQUxJQVN9Lk1lbWJlcntgKTtcbiAgICAgIGZvciAoY29uc3QgbWVtYmVyIG9mIGFsbE1lbWJlcnMpIHtcbiAgICAgICAgY29kZS5saW5lKGAke21lbWJlci5vdmVycmlkZX0sYCk7XG4gICAgICB9XG4gICAgICBjb2RlLmNsb3NlKCd9LCcpO1xuICAgIH1cblxuICAgIHRoaXMuZW1pdFByb3h5TWFrZXJGdW5jdGlvbihjb2RlLCB0aGlzLmV4dGVuZHMpO1xuICAgIGNvZGUuY2xvc2UoJyknKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3BlY2lhbERlcGVuZGVuY2llcygpOiBTcGVjaWFsRGVwZW5kZW5jaWVzIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4udGhpcy5wcm9wZXJ0aWVzLm1hcCgocCkgPT4gcC5zcGVjaWFsRGVwZW5kZW5jaWVzKSxcbiAgICAgIC4uLnRoaXMubWV0aG9kcy5tYXAoKG0pID0+IG0uc3BlY2lhbERlcGVuZGVuY2llcyksXG4gICAgXS5yZWR1Y2UoXG4gICAgICAoYWNjLCBlbHQpID0+ICh7XG4gICAgICAgIHJ1bnRpbWU6IGFjYy5ydW50aW1lIHx8IGVsdC5ydW50aW1lLFxuICAgICAgICBpbml0OiBhY2MuaW5pdCB8fCBlbHQuaW5pdCxcbiAgICAgICAgaW50ZXJuYWw6IGFjYy5pbnRlcm5hbCxcbiAgICAgICAgdGltZTogYWNjLnRpbWUgfHwgZWx0LnRpbWUsXG4gICAgICB9KSxcbiAgICAgIHtcbiAgICAgICAgcnVudGltZTogZmFsc2UsXG4gICAgICAgIGluaXQ6IGZhbHNlLFxuICAgICAgICBpbnRlcm5hbDogdGhpcy5leHRlbmRzLnNvbWUoKGJhc2UpID0+IHRoaXMucGtnLmlzRXh0ZXJuYWxUeXBlKGJhc2UpKSxcbiAgICAgICAgdGltZTogZmFsc2UsXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGV4dGVuZHMoKTogR29JbnRlcmZhY2VbXSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZS5pbnRlcmZhY2VzXG4gICAgICAubWFwKChpZmFjZSkgPT4gdGhpcy5wa2cucm9vdC5maW5kVHlwZShpZmFjZS5mcW4pIGFzIEdvSW50ZXJmYWNlKVxuICAgICAgLnNvcnQoY29tcGFyYXRvcnMuYnlOYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZXh0ZW5kc0RlcGVuZGVuY2llcygpOiBQYWNrYWdlW10ge1xuICAgIGNvbnN0IHBhY2thZ2VzOiBQYWNrYWdlW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGlmYWNlUmVmIG9mIHRoaXMuZXh0ZW5kcykge1xuICAgICAgY29uc3QgcGtnID0gaWZhY2VSZWYucGtnO1xuICAgICAgaWYgKHBrZykge1xuICAgICAgICBwYWNrYWdlcy5wdXNoKHBrZyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhY2thZ2VzO1xuICB9XG5cbiAgcHVibGljIGdldCBkZXBlbmRlbmNpZXMoKTogUGFja2FnZVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4udGhpcy5leHRlbmRzRGVwZW5kZW5jaWVzLFxuICAgICAgLi4uZ2V0TWVtYmVyRGVwZW5kZW5jaWVzKHRoaXMubWV0aG9kcyksXG4gICAgICAuLi5nZXRQYXJhbURlcGVuZGVuY2llcyh0aGlzLm1ldGhvZHMpLFxuICAgICAgLi4uZ2V0TWVtYmVyRGVwZW5kZW5jaWVzKHRoaXMucHJvcGVydGllcyksXG4gICAgXTtcbiAgfVxufVxuXG5jbGFzcyBJbnRlcmZhY2VQcm9wZXJ0eSBleHRlbmRzIEdvUHJvcGVydHkge1xuICBwdWJsaWMgcmVhZG9ubHkgcmVmZXJlbmNlPzogR29UeXBlUmVmO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGFyZW50OiBHb0ludGVyZmFjZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgcHJvcGVydHk6IFByb3BlcnR5LFxuICApIHtcbiAgICBzdXBlcihwYXJlbnQsIHByb3BlcnR5KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmV0dXJuVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnJlZmVyZW5jZT8uc2NvcGVkUmVmZXJlbmNlKHRoaXMucGFyZW50LnBrZykgPz9cbiAgICAgIHRoaXMucHJvcGVydHkudHlwZS50b1N0cmluZygpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0KHsgY29kZSwgZG9jdW1lbnRlciB9OiBFbWl0Q29udGV4dCkge1xuICAgIGRvY3VtZW50ZXIuZW1pdCh0aGlzLnByb3BlcnR5LmRvY3MpO1xuICAgIGNvZGUubGluZShgJHt0aGlzLm5hbWV9KCkgJHt0aGlzLnJldHVyblR5cGV9YCk7XG5cbiAgICBpZiAoIXRoaXMucHJvcGVydHkuaW1tdXRhYmxlKSB7XG4gICAgICBkb2N1bWVudGVyLmVtaXQodGhpcy5wcm9wZXJ0eS5kb2NzKTtcbiAgICAgIGNvZGUubGluZShcbiAgICAgICAgYFNldCR7dGhpcy5uYW1lfSgke3RoaXMubmFtZVswXS50b0xvd2VyQ2FzZSgpfSAke3RoaXMucmV0dXJuVHlwZX0pYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbmNsYXNzIEludGVyZmFjZU1ldGhvZCBleHRlbmRzIEdvTWV0aG9kIHtcbiAgcHVibGljIHJlYWRvbmx5IHJ1bnRpbWVDYWxsOiBNZXRob2RDYWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGFyZW50OiBHb0ludGVyZmFjZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgbWV0aG9kOiBNZXRob2QsXG4gICkge1xuICAgIHN1cGVyKHBhcmVudCwgbWV0aG9kKTtcbiAgICB0aGlzLnJ1bnRpbWVDYWxsID0gbmV3IE1ldGhvZENhbGwodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgZW1pdERlY2woY29udGV4dDogRW1pdENvbnRleHQpIHtcbiAgICBjb25zdCBkb2NzID0gdGhpcy5tZXRob2QuZG9jcztcbiAgICBpZiAoZG9jcykge1xuICAgICAgY29udGV4dC5kb2N1bWVudGVyLmVtaXQoZG9jcyk7XG4gICAgfVxuICAgIGNvbnN0IHsgY29kZSB9ID0gY29udGV4dDtcbiAgICBjb2RlLmxpbmUoYCR7dGhpcy5uYW1lfSgke3RoaXMucGFyYW1TdHJpbmcoKX0pJHt0aGlzLnJldHVyblR5cGVTdHJpbmd9YCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdCh7IGNvZGUgfTogRW1pdENvbnRleHQpIHtcbiAgICBjb25zdCBuYW1lID0gdGhpcy5uYW1lO1xuICAgIGNvZGUub3BlbkJsb2NrKFxuICAgICAgYGZ1bmMgKCR7dGhpcy5pbnN0YW5jZUFyZ30gKiR7XG4gICAgICAgIHRoaXMucGFyZW50LnByb3h5TmFtZVxuICAgICAgfSkgJHtuYW1lfSgke3RoaXMucGFyYW1TdHJpbmcoKX0pJHt0aGlzLnJldHVyblR5cGVTdHJpbmd9YCxcbiAgICApO1xuXG4gICAgdGhpcy5ydW50aW1lQ2FsbC5lbWl0KGNvZGUpO1xuXG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNwZWNpYWxEZXBlbmRlbmNpZXMoKTogU3BlY2lhbERlcGVuZGVuY2llcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJ1bnRpbWU6IHRydWUsXG4gICAgICBpbml0OiBmYWxzZSxcbiAgICAgIGludGVybmFsOiBmYWxzZSxcbiAgICAgIHRpbWU6XG4gICAgICAgIHRoaXMucGFyYW1ldGVycy5zb21lKChwKSA9PiBwLnJlZmVyZW5jZS5zcGVjaWFsRGVwZW5kZW5jaWVzLnRpbWUpIHx8XG4gICAgICAgICEhdGhpcy5yZWZlcmVuY2U/LnNwZWNpYWxEZXBlbmRlbmNpZXMudGltZSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgcmV0dXJuVHlwZVN0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlZmVyZW5jZT8udm9pZCA/ICcnIDogYCAke3RoaXMucmV0dXJuVHlwZX1gO1xuICB9XG59XG4iXX0=
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLDhDQUE4QztBQUk5Qyx3Q0FBdUQ7QUFDdkQsa0NBQXNFO0FBQ3RFLHVDQUFtQztBQUNuQywyREFBZ0Q7QUFDaEQsK0NBQXFEO0FBRXJELE1BQWEsV0FBWSxTQUFRLGdCQUFxQjtJQU1wRCxZQUFtQixHQUFZLEVBQUUsSUFBbUI7UUFDbEQsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVO2FBQzNCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQ2xELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYTthQUNqQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFNUIsMEVBQTBFO1FBQzFFLDJFQUEyRTtRQUMzRSxzRUFBc0U7UUFDdEUsNEVBQTRFO1FBQzVFLHlDQUF5QztRQUN6QyxJQUNFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDMUIsSUFBSTtpQkFDRCxhQUFhLENBQUMsSUFBSSxDQUFDO2lCQUNuQixJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQ2xFO1lBQ0EsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxV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Q0FBQyxRQUFDLElBQUksQ0FBQyxTQUFTLDBDQUFFLG1CQUFtQixDQUFDLElBQUksQ0FBQTtTQUM3QyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQVksZ0JBQWdCOztRQUMxQixPQUFPLE9BQUEsSUFBSSxDQUFDLFNBQVMsMENBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzNELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gJ2NvZGVtYWtlcic7XG5pbXBvcnQgeyBJbnRlcmZhY2VUeXBlLCBNZXRob2QsIFByb3BlcnR5IH0gZnJvbSAnanNpaS1yZWZsZWN0JztcblxuaW1wb3J0ICogYXMgY29tcGFyYXRvcnMgZnJvbSAnLi4vY29tcGFyYXRvcnMnO1xuaW1wb3J0IHsgU3BlY2lhbERlcGVuZGVuY2llcyB9IGZyb20gJy4uL2RlcGVuZGVuY2llcyc7XG5pbXBvcnQgeyBFbWl0Q29udGV4dCB9IGZyb20gJy4uL2VtaXQtY29udGV4dCc7XG5pbXBvcnQgeyBQYWNrYWdlIH0gZnJvbSAnLi4vcGFja2FnZSc7XG5pbXBvcnQgeyBKU0lJX1JUX0FMSUFTLCBNZXRob2RDYWxsIH0gZnJvbSAnLi4vcnVudGltZSc7XG5pbXBvcnQgeyBnZXRNZW1iZXJEZXBlbmRlbmNpZXMsIGdldFBhcmFtRGVwZW5kZW5jaWVzIH0gZnJvbSAnLi4vdXRpbCc7XG5pbXBvcnQgeyBHb1R5cGUgfSBmcm9tICcuL2dvLXR5cGUnO1xuaW1wb3J0IHsgR29UeXBlUmVmIH0gZnJvbSAnLi9nby10eXBlLXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBHb01ldGhvZCwgR29Qcm9wZXJ0eSB9IGZyb20gJy4vdHlwZS1tZW1iZXInO1xuXG5leHBvcnQgY2xhc3MgR29JbnRlcmZhY2UgZXh0ZW5kcyBHb1R5cGU8SW50ZXJmYWNlVHlwZT4ge1xuICBwdWJsaWMgcmVhZG9ubHkgbWV0aG9kczogSW50ZXJmYWNlTWV0aG9kW107XG4gIHB1YmxpYyByZWFkb25seSByZWltcGxlbWVudGVkTWV0aG9kcz86IHJlYWRvbmx5IEludGVyZmFjZU1ldGhvZFtdO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvcGVydGllczogSW50ZXJmYWNlUHJvcGVydHlbXTtcbiAgcHVibGljIHJlYWRvbmx5IHJlaW1wbGVtZW50ZWRQcm9wZXJ0aWVzPzogcmVhZG9ubHkgSW50ZXJmYWNlUHJvcGVydHlbXTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocGtnOiBQYWNrYWdlLCB0eXBlOiBJbnRlcmZhY2VUeXBlKSB7XG4gICAgc3VwZXIocGtnLCB0eXBlKTtcblxuICAgIHRoaXMubWV0aG9kcyA9IHR5cGUub3duTWV0aG9kc1xuICAgICAgLm1hcCgobWV0aG9kKSA9PiBuZXcgSW50ZXJmYWNlTWV0aG9kKHRoaXMsIG1ldGhvZCkpXG4gICAgICAuc29ydChjb21wYXJhdG9ycy5ieU5hbWUpO1xuXG4gICAgdGhpcy5wcm9wZXJ0aWVzID0gdHlwZS5vd25Qcm9wZXJ0aWVzXG4gICAgICAubWFwKChwcm9wKSA9PiBuZXcgSW50ZXJmYWNlUHJvcGVydHkodGhpcywgcHJvcCkpXG4gICAgICAuc29ydChjb21wYXJhdG9ycy5ieU5hbWUpO1xuXG4gICAgLy8gSWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBiYXNlLCBhbmQgYW55IGFuY2VzdG9yIChpbmNsdWRpbmcgdHJhbnNpdGl2ZSlcbiAgICAvLyBjb21lcyBmcm9tIGEgZGlmZmVyZW50IGFzc2VtYmx5LCB3ZSB3aWxsIHJlLWltcGxlbWVudCBhbGwgbWVtYmVycyBvbiB0aGVcbiAgICAvLyBwcm94eSBzdHJ1Y3QsIGFzIG90aGVyd2lzZSB3ZSBydW4gdGhlIHJpc2sgb2YgdW4tcHJvbW90YWJsZSBtZXRob2RzXG4gICAgLy8gY2F1c2VkIGJ5IGluaGVyaXRpbmcgdGhlIHNhbWUgaW50ZXJmYWNlIHZpYSBtdWx0aXBsZSBwYXRocyAoc2luY2Ugd2UgaGF2ZVxuICAgIC8vIHRvIHJlcHJlc2VudCB0aG9zZSBhcyBlbWJlZGRlZCB0eXBlcykuXG4gICAgaWYgKFxuICAgICAgdHlwZS5pbnRlcmZhY2VzLmxlbmd0aCA+IDEgJiZcbiAgICAgIHR5cGVcbiAgICAgICAgLmdldEludGVyZmFjZXModHJ1ZSlcbiAgICAgICAgLnNvbWUoKGFuY2VzdG9yKSA9PiBhbmNlc3Rvci5hc3NlbWJseS5mcW4gIT09IHR5cGUuYXNzZW1ibHkuZnFuKVxuICAgICkge1xuICAgICAgdGhpcy5yZWltcGxlbWVudGVkTWV0aG9kcyA9IHR5cGUuYWxsTWV0aG9kc1xuICAgICAgICAuZmlsdGVyKChtZXRob2QpID0+ICFtZXRob2Quc3RhdGljICYmIG1ldGhvZC5kZWZpbmluZ1R5cGUgIT09IHR5cGUpXG4gICAgICAgIC5tYXAoKG1ldGhvZCkgPT4gbmV3IEludGVyZmFjZU1ldGhvZCh0aGlzLCBtZXRob2QpKVxuICAgICAgICAuc29ydChjb21wYXJhdG9ycy5ieU5hbWUpO1xuXG4gICAgICB0aGlzLnJlaW1wbGVtZW50ZWRQcm9wZXJ0aWVzID0gdHlwZS5hbGxQcm9wZXJ0aWVzXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgKHByb3BlcnR5KSA9PiAhcHJvcGVydHkuc3RhdGljICYmIHByb3BlcnR5LmRlZmluaW5nVHlwZSAhPT0gdHlwZSxcbiAgICAgICAgKVxuICAgICAgICAubWFwKChwcm9wZXJ0eSkgPT4gbmV3IEludGVyZmFjZVByb3BlcnR5KHRoaXMsIHByb3BlcnR5KSlcbiAgICAgICAgLnNvcnQoY29tcGFyYXRvcnMuYnlOYW1lKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZW1pdChjb250ZXh0OiBFbWl0Q29udGV4dCkge1xuICAgIHRoaXMuZW1pdERvY3MoY29udGV4dCk7XG5cbiAgICBjb25zdCB7IGNvZGUgfSA9IGNvbnRleHQ7XG4gICAgY29kZS5vcGVuQmxvY2soYHR5cGUgJHt0aGlzLm5hbWV9IGludGVyZmFjZWApO1xuXG4gICAgLy8gZW1iZWQgZXh0ZW5kZWQgaW50ZXJmYWNlc1xuICAgIGZvciAoY29uc3QgaWZhY2Ugb2YgdGhpcy5leHRlbmRzKSB7XG4gICAgICBjb2RlLmxpbmUoXG4gICAgICAgIG5ldyBHb1R5cGVSZWYodGhpcy5wa2cucm9vdCwgaWZhY2UudHlwZS5yZWZlcmVuY2UpLnNjb3BlZE5hbWUodGhpcy5wa2cpLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IG1ldGhvZCBvZiB0aGlzLm1ldGhvZHMpIHtcbiAgICAgIG1ldGhvZC5lbWl0RGVjbChjb250ZXh0KTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgdGhpcy5wcm9wZXJ0aWVzKSB7XG4gICAgICBwcm9wLmVtaXQoY29udGV4dCk7XG4gICAgfVxuXG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG5cbiAgICBjb2RlLmxpbmUoYC8vIFRoZSBqc2lpIHByb3h5IGZvciAke3RoaXMubmFtZX1gKTtcbiAgICBjb2RlLm9wZW5CbG9jayhgdHlwZSAke3RoaXMucHJveHlOYW1lfSBzdHJ1Y3RgKTtcbiAgICBpZiAodGhpcy5leHRlbmRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gRW5zdXJlIHRoaXMgaXMgbm90IDAtd2lkdGhcbiAgICAgIGNvZGUubGluZSgnXyBieXRlIC8vIHBhZGRpbmcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChjb25zdCBiYXNlIG9mIHRoaXMuZXh0ZW5kcykge1xuICAgICAgICBjb2RlLmxpbmUodGhpcy5wa2cucmVzb2x2ZUVtYmVkZGVkVHlwZShiYXNlKS5lbWJlZCk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIGNvZGUubGluZSgpO1xuXG4gICAgZm9yIChjb25zdCBtZXRob2Qgb2YgdGhpcy5tZXRob2RzKSB7XG4gICAgICBtZXRob2QuZW1pdChjb250ZXh0KTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IG1ldGhvZCBvZiB0aGlzLnJlaW1wbGVtZW50ZWRNZXRob2RzID8/IFtdKSB7XG4gICAgICBtZXRob2QuZW1pdChjb250ZXh0KTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgdGhpcy5wcm9wZXJ0aWVzKSB7XG4gICAgICBwcm9wLmVtaXRHZXR0ZXJQcm94eShjb250ZXh0KTtcblxuICAgICAgaWYgKCFwcm9wLmltbXV0YWJsZSkge1xuICAgICAgICBwcm9wLmVtaXRTZXR0ZXJQcm94eShjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgdGhpcy5yZWltcGxlbWVudGVkUHJvcGVydGllcyA/PyBbXSkge1xuICAgICAgcHJvcC5lbWl0R2V0dGVyUHJveHkoY29udGV4dCk7XG5cbiAgICAgIGlmICghcHJvcC5pbW11dGFibGUpIHtcbiAgICAgICAgcHJvcC5lbWl0U2V0dGVyUHJveHkoY29udGV4dCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGVtaXRSZWdpc3RyYXRpb24oY29kZTogQ29kZU1ha2VyKTogdm9pZCB7XG4gICAgY29kZS5vcGVuKGAke0pTSUlfUlRfQUxJQVN9LlJlZ2lzdGVySW50ZXJmYWNlKGApO1xuICAgIGNvZGUubGluZShgXCIke3RoaXMuZnFufVwiLGApO1xuICAgIGNvZGUubGluZShgcmVmbGVjdC5UeXBlT2YoKCoke3RoaXMubmFtZX0pKG5pbCkpLkVsZW0oKSxgKTtcblxuICAgIGNvbnN0IGFsbE1lbWJlcnMgPSBbXG4gICAgICAuLi50aGlzLnR5cGUuYWxsTWV0aG9kc1xuICAgICAgICAuZmlsdGVyKChtZXRob2QpID0+ICFtZXRob2Quc3RhdGljKVxuICAgICAgICAubWFwKChtZXRob2QpID0+IG5ldyBJbnRlcmZhY2VNZXRob2QodGhpcywgbWV0aG9kKSksXG4gICAgICAuLi50aGlzLnR5cGUuYWxsUHJvcGVydGllc1xuICAgICAgICAuZmlsdGVyKChwcm9wZXJ0eSkgPT4gIXByb3BlcnR5LnN0YXRpYylcbiAgICAgICAgLm1hcCgocHJvcGVydHkpID0+IG5ldyBHb1Byb3BlcnR5KHRoaXMsIHByb3BlcnR5KSksXG4gICAgXS5zb3J0KGNvbXBhcmF0b3JzLmJ5TmFtZSk7XG4gICAgaWYgKGFsbE1lbWJlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb2RlLmxpbmUoJ25pbCwgLy8gbm8gbWVtYmVycycpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb2RlLm9wZW4oYFtdJHtKU0lJX1JUX0FMSUFTfS5NZW1iZXJ7YCk7XG4gICAgICBmb3IgKGNvbnN0IG1lbWJlciBvZiBhbGxNZW1iZXJzKSB7XG4gICAgICAgIGNvZGUubGluZShgJHttZW1iZXIub3ZlcnJpZGV9LGApO1xuICAgICAgfVxuICAgICAgY29kZS5jbG9zZSgnfSwnKTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRQcm94eU1ha2VyRnVuY3Rpb24oY29kZSwgdGhpcy5leHRlbmRzKTtcbiAgICBjb2RlLmNsb3NlKCcpJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNwZWNpYWxEZXBlbmRlbmNpZXMoKTogU3BlY2lhbERlcGVuZGVuY2llcyB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLnRoaXMucHJvcGVydGllcy5tYXAoKHApID0+IHAuc3BlY2lhbERlcGVuZGVuY2llcyksXG4gICAgICAuLi50aGlzLm1ldGhvZHMubWFwKChtKSA9PiBtLnNwZWNpYWxEZXBlbmRlbmNpZXMpLFxuICAgIF0ucmVkdWNlKFxuICAgICAgKGFjYywgZWx0KSA9PiAoe1xuICAgICAgICBydW50aW1lOiBhY2MucnVudGltZSB8fCBlbHQucnVudGltZSxcbiAgICAgICAgaW5pdDogYWNjLmluaXQgfHwgZWx0LmluaXQsXG4gICAgICAgIGludGVybmFsOiBhY2MuaW50ZXJuYWwsXG4gICAgICAgIHRpbWU6IGFjYy50aW1lIHx8IGVsdC50aW1lLFxuICAgICAgfSksXG4gICAgICB7XG4gICAgICAgIHJ1bnRpbWU6IGZhbHNlLFxuICAgICAgICBpbml0OiBmYWxzZSxcbiAgICAgICAgaW50ZXJuYWw6IHRoaXMuZXh0ZW5kcy5zb21lKChiYXNlKSA9PiB0aGlzLnBrZy5pc0V4dGVybmFsVHlwZShiYXNlKSksXG4gICAgICAgIHRpbWU6IGZhbHNlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBleHRlbmRzKCk6IEdvSW50ZXJmYWNlW10ge1xuICAgIHJldHVybiB0aGlzLnR5cGUuaW50ZXJmYWNlc1xuICAgICAgLm1hcCgoaWZhY2UpID0+IHRoaXMucGtnLnJvb3QuZmluZFR5cGUoaWZhY2UuZnFuKSBhcyBHb0ludGVyZmFjZSlcbiAgICAgIC5zb3J0KGNvbXBhcmF0b3JzLmJ5TmFtZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGV4dGVuZHNEZXBlbmRlbmNpZXMoKTogUGFja2FnZVtdIHtcbiAgICBjb25zdCBwYWNrYWdlczogUGFja2FnZVtdID0gW107XG4gICAgZm9yIChjb25zdCBpZmFjZVJlZiBvZiB0aGlzLmV4dGVuZHMpIHtcbiAgICAgIGNvbnN0IHBrZyA9IGlmYWNlUmVmLnBrZztcbiAgICAgIGlmIChwa2cpIHtcbiAgICAgICAgcGFja2FnZXMucHVzaChwa2cpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwYWNrYWdlcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGVwZW5kZW5jaWVzKCk6IFBhY2thZ2VbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLnRoaXMuZXh0ZW5kc0RlcGVuZGVuY2llcyxcbiAgICAgIC4uLmdldE1lbWJlckRlcGVuZGVuY2llcyh0aGlzLm1ldGhvZHMpLFxuICAgICAgLi4uZ2V0UGFyYW1EZXBlbmRlbmNpZXModGhpcy5tZXRob2RzKSxcbiAgICAgIC4uLmdldE1lbWJlckRlcGVuZGVuY2llcyh0aGlzLnByb3BlcnRpZXMpLFxuICAgIF07XG4gIH1cbn1cblxuY2xhc3MgSW50ZXJmYWNlUHJvcGVydHkgZXh0ZW5kcyBHb1Byb3BlcnR5IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBwYXJlbnQ6IEdvSW50ZXJmYWNlLFxuICAgIHB1YmxpYyByZWFkb25seSBwcm9wZXJ0eTogUHJvcGVydHksXG4gICkge1xuICAgIHN1cGVyKHBhcmVudCwgcHJvcGVydHkpO1xuICB9XG5cbiAgcHVibGljIGdldCByZXR1cm5UeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlLnNjb3BlZFJlZmVyZW5jZSh0aGlzLnBhcmVudC5wa2cpO1xuICB9XG5cbiAgcHVibGljIGVtaXQoeyBjb2RlLCBkb2N1bWVudGVyIH06IEVtaXRDb250ZXh0KSB7XG4gICAgZG9jdW1lbnRlci5lbWl0KHRoaXMucHJvcGVydHkuZG9jcywgdGhpcy5hcGlMb2NhdGlvbik7XG4gICAgY29kZS5saW5lKGAke3RoaXMubmFtZX0oKSAke3RoaXMucmV0dXJuVHlwZX1gKTtcblxuICAgIGlmICghdGhpcy5wcm9wZXJ0eS5pbW11dGFibGUpIHtcbiAgICAgIC8vIEZvciBzZXR0ZXJzLCBvbmx5IGVtaXQgdGhlIHN0YWJpbGl0eS4gQ29weWluZyB0aGUgZG9jdW1lbnRhdGlvbiBmcm9tXG4gICAgICAvLyB0aGUgZ2V0dGVyIG1pZ2h0IHJlc3VsdCBpbiBjb25mdXNpbmcgZG9jdW1lbnRhdGlvbi4gVGhpcyBpcyBhbiBcIm9rYXlcIlxuICAgICAgLy8gbWlkZGxlLWdyb3VuZC5cbiAgICAgIGRvY3VtZW50ZXIuZW1pdFN0YWJpbGl0eSh0aGlzLnByb3BlcnR5LmRvY3MpO1xuICAgICAgY29kZS5saW5lKFxuICAgICAgICBgU2V0JHt0aGlzLm5hbWV9KCR7dGhpcy5uYW1lWzBdLnRvTG93ZXJDYXNlKCl9ICR7dGhpcy5yZXR1cm5UeXBlfSlgLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuY2xhc3MgSW50ZXJmYWNlTWV0aG9kIGV4dGVuZHMgR29NZXRob2Qge1xuICBwdWJsaWMgcmVhZG9ubHkgcnVudGltZUNhbGw6IE1ldGhvZENhbGw7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBwYXJlbnQ6IEdvSW50ZXJmYWNlLFxuICAgIHB1YmxpYyByZWFkb25seSBtZXRob2Q6IE1ldGhvZCxcbiAgKSB7XG4gICAgc3VwZXIocGFyZW50LCBtZXRob2QpO1xuICAgIHRoaXMucnVudGltZUNhbGwgPSBuZXcgTWV0aG9kQ2FsbCh0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0RGVjbCh7IGNvZGUsIGRvY3VtZW50ZXIgfTogRW1pdENvbnRleHQpIHtcbiAgICBkb2N1bWVudGVyLmVtaXQodGhpcy5tZXRob2QuZG9jcywgdGhpcy5hcGlMb2NhdGlvbik7XG4gICAgY29kZS5saW5lKGAke3RoaXMubmFtZX0oJHt0aGlzLnBhcmFtU3RyaW5nKCl9KSR7dGhpcy5yZXR1cm5UeXBlU3RyaW5nfWApO1xuICB9XG5cbiAgcHVibGljIGVtaXQoeyBjb2RlIH06IEVtaXRDb250ZXh0KSB7XG4gICAgY29uc3QgbmFtZSA9IHRoaXMubmFtZTtcbiAgICBjb2RlLm9wZW5CbG9jayhcbiAgICAgIGBmdW5jICgke3RoaXMuaW5zdGFuY2VBcmd9ICoke1xuICAgICAgICB0aGlzLnBhcmVudC5wcm94eU5hbWVcbiAgICAgIH0pICR7bmFtZX0oJHt0aGlzLnBhcmFtU3RyaW5nKCl9KSR7dGhpcy5yZXR1cm5UeXBlU3RyaW5nfWAsXG4gICAgKTtcblxuICAgIHRoaXMucnVudGltZUNhbGwuZW1pdChjb2RlKTtcblxuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIGNvZGUubGluZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBzcGVjaWFsRGVwZW5kZW5jaWVzKCk6IFNwZWNpYWxEZXBlbmRlbmNpZXMge1xuICAgIHJldHVybiB7XG4gICAgICBydW50aW1lOiB0cnVlLFxuICAgICAgaW5pdDogZmFsc2UsXG4gICAgICBpbnRlcm5hbDogZmFsc2UsXG4gICAgICB0aW1lOlxuICAgICAgICB0aGlzLnBhcmFtZXRlcnMuc29tZSgocCkgPT4gcC5yZWZlcmVuY2Uuc3BlY2lhbERlcGVuZGVuY2llcy50aW1lKSB8fFxuICAgICAgICAhIXRoaXMucmVmZXJlbmNlPy5zcGVjaWFsRGVwZW5kZW5jaWVzLnRpbWUsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHJldHVyblR5cGVTdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZWZlcmVuY2U/LnZvaWQgPyAnJyA6IGAgJHt0aGlzLnJldHVyblR5cGV9YDtcbiAgfVxufVxuIl19
@@ -4,8 +4,7 @@ import { SpecialDependencies } from '../dependencies';
4
4
  import { EmitContext } from '../emit-context';
5
5
  import { Package } from '../package';
6
6
  import { GoType } from './go-type';
7
- export declare class Struct extends GoType {
8
- readonly type: InterfaceType;
7
+ export declare class Struct extends GoType<InterfaceType> {
9
8
  private readonly properties;
10
9
  constructor(parent: Package, type: InterfaceType);
11
10
  get dependencies(): Package[];
@@ -12,7 +12,6 @@ const type_member_1 = require("./type-member");
12
12
  class Struct extends go_type_1.GoType {
13
13
  constructor(parent, type) {
14
14
  super(parent, type);
15
- this.type = type;
16
15
  assert(type.isDataType(), `The provided interface ${type.fqn} is not a struct!`);
17
16
  this.properties = type.allProperties.map((prop) => new type_member_1.GoProperty(this, prop));
18
17
  }
@@ -29,7 +28,7 @@ class Struct extends go_type_1.GoType {
29
28
  }
30
29
  emit(context) {
31
30
  const { code, documenter } = context;
32
- documenter.emit(this.type.docs);
31
+ documenter.emit(this.type.docs, this.apiLocation);
33
32
  code.openBlock(`type ${this.name} struct`);
34
33
  for (const property of this.properties) {
35
34
  property.emitStructMember(context);
@@ -45,4 +44,4 @@ class Struct extends go_type_1.GoType {
45
44
  }
46
45
  }
47
46
  exports.Struct = Struct;
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUFpQztBQU9qQyx3Q0FBMkM7QUFDM0Msa0NBQWdEO0FBQ2hELHVDQUFtQztBQUNuQywrQ0FBMkM7QUFFM0M7O0dBRUc7QUFDSCxNQUFhLE1BQU8sU0FBUSxnQkFBTTtJQUdoQyxZQUFtQixNQUFlLEVBQWtCLElBQW1CO1FBQ3JFLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFEOEIsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUdyRSxNQUFNLENBQ0osSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUNqQiwwQkFBMEIsSUFBSSxDQUFDLEdBQUcsbUJBQW1CLENBQ3RELENBQUM7UUFFRixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUN0QyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSx3QkFBVSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FDckMsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDckIsT0FBTyw0QkFBcUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQVcsbUJBQW1CO1FBQzVCLE9BQU87WUFDTCxPQUFPLEVBQUUsS0FBSztZQUNkLElBQUksRUFBRSxLQUFLO1lBQ1gsUUFBUSxFQUFFLEtBQUs7WUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7U0FDcEUsQ0FBQztJQUNKLENBQUM7SUFFTSxJQUFJLENBQUMsT0FBb0I7UUFDOUIsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDckMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQztRQUMzQyxLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDdEMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3BDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxJQUFlO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyx1QkFBYSxrQkFBa0IsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEIsQ0FBQztDQUNGO0FBOUNELHdCQThDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgQ29kZU1ha2VyIH0gZnJvbSAnY29kZW1ha2VyJztcbmltcG9ydCB7IEludGVyZmFjZVR5cGUgfSBmcm9tICdqc2lpLXJlZmxlY3QnO1xuXG5pbXBvcnQgeyBTcGVjaWFsRGVwZW5kZW5jaWVzIH0gZnJvbSAnLi4vZGVwZW5kZW5jaWVzJztcbmltcG9ydCB7IEVtaXRDb250ZXh0IH0gZnJvbSAnLi4vZW1pdC1jb250ZXh0JztcbmltcG9ydCB7IFBhY2thZ2UgfSBmcm9tICcuLi9wYWNrYWdlJztcbmltcG9ydCB7IEpTSUlfUlRfQUxJQVMgfSBmcm9tICcuLi9ydW50aW1lJztcbmltcG9ydCB7IGdldE1lbWJlckRlcGVuZGVuY2llcyB9IGZyb20gJy4uL3V0aWwnO1xuaW1wb3J0IHsgR29UeXBlIH0gZnJvbSAnLi9nby10eXBlJztcbmltcG9ydCB7IEdvUHJvcGVydHkgfSBmcm9tICcuL3R5cGUtbWVtYmVyJztcblxuLypcbiAqIFN0cnVjdCB3cmFwcyBhIEpTSUkgZGF0YXR5cGUgaW50ZXJmYWNlIGFrYSwgc3RydWN0c1xuICovXG5leHBvcnQgY2xhc3MgU3RydWN0IGV4dGVuZHMgR29UeXBlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wZXJ0aWVzOiByZWFkb25seSBHb1Byb3BlcnR5W107XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmVudDogUGFja2FnZSwgcHVibGljIHJlYWRvbmx5IHR5cGU6IEludGVyZmFjZVR5cGUpIHtcbiAgICBzdXBlcihwYXJlbnQsIHR5cGUpO1xuXG4gICAgYXNzZXJ0KFxuICAgICAgdHlwZS5pc0RhdGFUeXBlKCksXG4gICAgICBgVGhlIHByb3ZpZGVkIGludGVyZmFjZSAke3R5cGUuZnFufSBpcyBub3QgYSBzdHJ1Y3QhYCxcbiAgICApO1xuXG4gICAgdGhpcy5wcm9wZXJ0aWVzID0gdHlwZS5hbGxQcm9wZXJ0aWVzLm1hcChcbiAgICAgIChwcm9wKSA9PiBuZXcgR29Qcm9wZXJ0eSh0aGlzLCBwcm9wKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBkZXBlbmRlbmNpZXMoKTogUGFja2FnZVtdIHtcbiAgICByZXR1cm4gZ2V0TWVtYmVyRGVwZW5kZW5jaWVzKHRoaXMucHJvcGVydGllcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNwZWNpYWxEZXBlbmRlbmNpZXMoKTogU3BlY2lhbERlcGVuZGVuY2llcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJ1bnRpbWU6IGZhbHNlLFxuICAgICAgaW5pdDogZmFsc2UsXG4gICAgICBpbnRlcm5hbDogZmFsc2UsXG4gICAgICB0aW1lOiB0aGlzLnByb3BlcnRpZXMuc29tZSgocHJvcCkgPT4gcHJvcC5zcGVjaWFsRGVwZW5kZW5jaWVzLnRpbWUpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZW1pdChjb250ZXh0OiBFbWl0Q29udGV4dCk6IHZvaWQge1xuICAgIGNvbnN0IHsgY29kZSwgZG9jdW1lbnRlciB9ID0gY29udGV4dDtcbiAgICBkb2N1bWVudGVyLmVtaXQodGhpcy50eXBlLmRvY3MpO1xuICAgIGNvZGUub3BlbkJsb2NrKGB0eXBlICR7dGhpcy5uYW1lfSBzdHJ1Y3RgKTtcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHRoaXMucHJvcGVydGllcykge1xuICAgICAgcHJvcGVydHkuZW1pdFN0cnVjdE1lbWJlcihjb250ZXh0KTtcbiAgICB9XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdFJlZ2lzdHJhdGlvbihjb2RlOiBDb2RlTWFrZXIpOiB2b2lkIHtcbiAgICBjb2RlLm9wZW4oYCR7SlNJSV9SVF9BTElBU30uUmVnaXN0ZXJTdHJ1Y3QoYCk7XG4gICAgY29kZS5saW5lKGBcIiR7dGhpcy5mcW59XCIsYCk7XG4gICAgY29kZS5saW5lKGByZWZsZWN0LlR5cGVPZigoKiR7dGhpcy5uYW1lfSkobmlsKSkuRWxlbSgpLGApO1xuICAgIGNvZGUuY2xvc2UoJyknKTtcbiAgfVxufVxuIl19
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';
@@ -13,18 +14,19 @@ export declare class GoProperty implements GoTypeMember {
13
14
  parent: GoType;
14
15
  readonly property: Property;
15
16
  readonly name: string;
16
- readonly reference?: GoTypeRef;
17
17
  readonly immutable: boolean;
18
+ protected readonly apiLocation: ApiLocation;
18
19
  constructor(parent: GoType, property: Property);
20
+ get reference(): GoTypeRef;
19
21
  get specialDependencies(): SpecialDependencies;
20
22
  get static(): boolean;
21
23
  get returnType(): string;
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
  }
@@ -32,11 +34,12 @@ export declare abstract class GoMethod implements GoTypeMember {
32
34
  readonly parent: GoClass | GoInterface;
33
35
  readonly method: Callable;
34
36
  readonly name: string;
35
- readonly reference?: GoTypeRef;
36
37
  readonly parameters: GoParameter[];
38
+ protected readonly apiLocation: ApiLocation;
37
39
  constructor(parent: GoClass | GoInterface, method: Callable);
38
40
  abstract emit(context: EmitContext): void;
39
41
  abstract get specialDependencies(): SpecialDependencies;
42
+ get reference(): GoTypeRef | undefined;
40
43
  get returnsRef(): boolean;
41
44
  get returnType(): string;
42
45
  get instanceArg(): string;
@@ -44,10 +47,11 @@ export declare abstract class GoMethod implements GoTypeMember {
44
47
  paramString(): string;
45
48
  }
46
49
  export declare class GoParameter {
47
- parent: GoClass | GoInterface;
48
- readonly parameter: Parameter;
49
50
  readonly name: string;
50
- readonly reference: GoTypeRef;
51
+ readonly isVariadic: boolean;
52
+ private readonly type;
53
+ private readonly pkg;
51
54
  constructor(parent: GoClass | GoInterface, parameter: Parameter);
55
+ get reference(): GoTypeRef;
52
56
  toString(): string;
53
57
  }
@@ -16,9 +16,14 @@ 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
- if (property.type) {
20
- this.reference = new index_1.GoTypeRef(parent.pkg.root, property.type);
21
- }
19
+ this.apiLocation = {
20
+ api: 'member',
21
+ fqn: this.parent.fqn,
22
+ memberName: this.property.name,
23
+ };
24
+ }
25
+ get reference() {
26
+ return new index_1.GoTypeRef(this.parent.pkg.root, this.property.type);
22
27
  }
23
28
  get specialDependencies() {
24
29
  var _a;
@@ -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
  }
@@ -98,10 +105,17 @@ class GoMethod {
98
105
  this.parent = parent;
99
106
  this.method = method;
100
107
  this.name = naming_util_1.jsiiToPascalCase(method.name);
101
- if (jsii_reflect_1.Method.isMethod(method) && method.returns.type) {
102
- this.reference = new index_1.GoTypeRef(parent.pkg.root, method.returns.type);
103
- }
104
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 };
113
+ }
114
+ get reference() {
115
+ if (jsii_reflect_1.Method.isMethod(this.method) && this.method.returns.type) {
116
+ return new index_1.GoTypeRef(this.parent.pkg.root, this.method.returns.type);
117
+ }
118
+ return undefined;
105
119
  }
106
120
  get returnsRef() {
107
121
  var _a, _b, _c, _d;
@@ -129,15 +143,18 @@ class GoMethod {
129
143
  exports.GoMethod = GoMethod;
130
144
  class GoParameter {
131
145
  constructor(parent, parameter) {
132
- this.parent = parent;
133
- this.parameter = parameter;
134
146
  this.name = util_1.substituteReservedWords(parameter.name);
135
- this.reference = new index_1.GoTypeRef(parent.pkg.root, parameter.type);
147
+ this.isVariadic = parameter.variadic;
148
+ this.type = parameter.type;
149
+ this.pkg = parent.pkg;
150
+ }
151
+ get reference() {
152
+ return new index_1.GoTypeRef(this.pkg.root, this.type);
136
153
  }
137
154
  toString() {
138
- const paramType = this.reference.scopedReference(this.parent.pkg);
139
- return `${this.name} ${this.parameter.variadic ? '...' : ''}${paramType}`;
155
+ const paramType = this.reference.scopedReference(this.pkg);
156
+ return `${this.name} ${this.isVariadic ? '...' : ''}${paramType}`;
140
157
  }
141
158
  }
142
159
  exports.GoParameter = GoParameter;
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1tZW1iZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlLW1lbWJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBcUU7QUFFckUsc0RBQXdEO0FBR3hELHdDQUFxRTtBQUNyRSxrQ0FBa0Q7QUFFbEQsbUNBQWtFO0FBY2xFOzs7RUFHRTtBQUNGLE1BQWEsVUFBVTtJQUtyQixZQUNTLE1BQWMsRUFDTCxRQUFrQjtRQUQzQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ0wsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUVsQyxJQUFJLENBQUMsSUFBSSxHQUFHLDhCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBRXBDLElBQUksUUFBUSxDQUFDLElBQUksRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksaUJBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDaEU7SUFDSCxDQUFDO0lBRUQsSUFBVyxtQkFBbUI7O1FBQzVCLE9BQU87WUFDTCxPQUFPLEVBQUUsSUFBSTtZQUNiLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNqQixRQUFRLEVBQUUsS0FBSztZQUNmLElBQUksRUFBRSxDQUFDLFFBQUMsSUFBSSxDQUFDLFNBQVMsMENBQUUsbUJBQW1CLENBQUMsSUFBSSxDQUFBO1NBQ2pELENBQUM7SUFDSixDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2YsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsVUFBVTs7UUFDbkIsT0FBTyxhQUNMLElBQUksQ0FBQyxTQUFTLDBDQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsb0NBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUM5QixDQUFDO0lBQ0osQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLEdBQUcsdUJBQWEsa0NBQWtDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxpQkFBaUIsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDO0lBQzVHLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQWU7O1FBQ3ZELFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxNQUFNLFVBQVUsR0FDZCxhQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLElBQUksMENBQUUsSUFBSSxNQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtZQUM3QyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3ZCLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBRXRCLG1EQUFtRDtRQUNuRCxJQUFJLENBQUMsSUFBSSxDQUNQLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxVQUFVLFlBQVksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssQ0FDM0YsQ0FBQztRQUNGLDBDQUEwQztJQUM1QyxDQUFDO0lBRU0sY0FBYyxDQUFDLE9BQW9CO1FBQ3hDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVNLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQWU7UUFDakQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDbEMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFM0QsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxTQUFTLENBQ1osU0FBUyxXQUFXLEtBQUssUUFBUSxRQUFRLElBQUksQ0FBQyxJQUFJLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUMxRSxDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLFdBQVcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVNLGNBQWMsQ0FBQyxPQUFvQjtRQUN4QyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxRQUFRLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1NBQ3REO0lBQ0gsQ0FBQztJQUVELHVEQUF1RDtJQUNoRCxlQUFlLENBQUMsT0FBb0I7UUFDekMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUN6QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUN2QyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUUzRCxJQUFJLENBQUMsU0FBUyxDQUNaLFNBQVMsV0FBVyxLQUFLLFFBQVEsS0FBSyxJQUFJLENBQUMsSUFBSSxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FDdkUsQ0FBQztRQUVGLElBQUkscUJBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFakMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFTSxlQUFlLENBQUMsT0FBb0I7UUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztZQUN6QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUN2QyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUUzRCxJQUFJLENBQUMsU0FBUyxDQUNaLFNBQVMsV0FBVyxLQUFLLFFBQVEsUUFBUSxJQUFJLENBQUMsSUFBSSxRQUFRLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FDN0UsQ0FBQztZQUVGLElBQUkscUJBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFakMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNiO0lBQ0gsQ0FBQztDQUNGO0FBbkhELGdDQW1IQztBQUVELE1BQXNCLFFBQVE7SUFLNUIsWUFDa0IsTUFBNkIsRUFDN0IsTUFBZ0I7UUFEaEIsV0FBTSxHQUFOLE1BQU0sQ0FBdUI7UUFDN0IsV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQUVoQyxJQUFJLENBQUMsSUFBSSxHQUFHLDhCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxJQUFJLHFCQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQ2xELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxpQkFBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEU7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FDMUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FDMUMsQ0FBQztJQUNKLENBQUM7SUFNRCxJQUFXLFVBQVU7O1FBQ25CLElBQ0UsYUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxJQUFJLDBDQUFFLElBQUksQ0FBQyxXQUFXLG9CQUN0QyxJQUFJLENBQUMsU0FBUywwQ0FBRSxJQUFJLDBDQUFFLElBQUksQ0FBQyxlQUFlLEdBQUUsRUFDNUM7WUFDQSxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBVyxVQUFVOztRQUNuQixPQUFPLGFBQ0wsSUFBSSxDQUFDLFNBQVMsMENBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxvQ0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUMzRSxDQUFDO0lBQ0osQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLEdBQUcsdUJBQWEsOEJBQThCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxpQkFBaUIsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ3RHLENBQUM7SUFFTSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUNqQyxDQUFDLENBQUMsRUFBRTtZQUNKLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFELENBQUM7Q0FDRjtBQXBERCw0QkFvREM7QUFFRCxNQUFhLFdBQVc7SUFJdEIsWUFDUyxNQUE2QixFQUNwQixTQUFvQjtRQUQ3QixXQUFNLEdBQU4sTUFBTSxDQUF1QjtRQUNwQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBRXBDLElBQUksQ0FBQyxJQUFJLEdBQUcsOEJBQXVCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxpQkFBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRU0sUUFBUTtRQUNiLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEUsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLFNBQVMsRUFBRSxDQUFDO0lBQzVFLENBQUM7Q0FDRjtBQWhCRCxrQ0FnQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDYWxsYWJsZSwgTWV0aG9kLCBQYXJhbWV0ZXIsIFByb3BlcnR5IH0gZnJvbSAnanNpaS1yZWZsZWN0JztcblxuaW1wb3J0IHsganNpaVRvUGFzY2FsQ2FzZSB9IGZyb20gJy4uLy4uLy4uL25hbWluZy11dGlsJztcbmltcG9ydCB7IFNwZWNpYWxEZXBlbmRlbmNpZXMgfSBmcm9tICcuLi9kZXBlbmRlbmNpZXMnO1xuaW1wb3J0IHsgRW1pdENvbnRleHQgfSBmcm9tICcuLi9lbWl0LWNvbnRleHQnO1xuaW1wb3J0IHsgR2V0UHJvcGVydHksIEpTSUlfUlRfQUxJQVMsIFNldFByb3BlcnR5IH0gZnJvbSAnLi4vcnVudGltZSc7XG5pbXBvcnQgeyBzdWJzdGl0dXRlUmVzZXJ2ZWRXb3JkcyB9IGZyb20gJy4uL3V0aWwnO1xuXG5pbXBvcnQgeyBHb0NsYXNzLCBHb1R5cGUsIEdvSW50ZXJmYWNlLCBHb1R5cGVSZWYgfSBmcm9tICcuL2luZGV4JztcblxuLypcbiAqIFN0cnVjdHVyZSBmb3IgQ2xhc3MgYW5kIEludGVyZmFjZSBtZXRob2RzLiBVc2VmdWwgZm9yIHNoYXJpbmcgbG9naWMgZm9yIGRlcGVuZGVuY3kgcmVzb2x1dGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdvVHlwZU1lbWJlciB7XG4gIG5hbWU6IHN0cmluZztcbiAgcGFyZW50OiBHb1R5cGU7XG4gIHJlZmVyZW5jZT86IEdvVHlwZVJlZjtcbiAgcmV0dXJuVHlwZTogc3RyaW5nO1xuXG4gIHNwZWNpYWxEZXBlbmRlbmNpZXM6IFNwZWNpYWxEZXBlbmRlbmNpZXM7XG59XG5cbi8qXG4gKiBHb1Byb3BlcnR5IGVuY2Fwc3VsYXRlcyBsb2dpYyBmb3IgcHVibGljIHByb3BlcnRpZXMgb24gYSBjb25jcmV0ZSBzdHJ1Y3QsIHdoaWNoIGNvdWxkIHJlcHJlc2VudFxuIGVpdGhlciBhIEpTSUkgY2xhc3MgcHJveHkgb3IgZGF0YXR5cGUgaW50ZXJmYWNlIHByb3h5XG4qL1xuZXhwb3J0IGNsYXNzIEdvUHJvcGVydHkgaW1wbGVtZW50cyBHb1R5cGVNZW1iZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVmZXJlbmNlPzogR29UeXBlUmVmO1xuICBwdWJsaWMgcmVhZG9ubHkgaW1tdXRhYmxlOiBib29sZWFuO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcGFyZW50OiBHb1R5cGUsXG4gICAgcHVibGljIHJlYWRvbmx5IHByb3BlcnR5OiBQcm9wZXJ0eSxcbiAgKSB7XG4gICAgdGhpcy5uYW1lID0ganNpaVRvUGFzY2FsQ2FzZSh0aGlzLnByb3BlcnR5Lm5hbWUpO1xuICAgIHRoaXMuaW1tdXRhYmxlID0gcHJvcGVydHkuaW1tdXRhYmxlO1xuXG4gICAgaWYgKHByb3BlcnR5LnR5cGUpIHtcbiAgICAgIHRoaXMucmVmZXJlbmNlID0gbmV3IEdvVHlwZVJlZihwYXJlbnQucGtnLnJvb3QsIHByb3BlcnR5LnR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3BlY2lhbERlcGVuZGVuY2llcygpOiBTcGVjaWFsRGVwZW5kZW5jaWVzIHtcbiAgICByZXR1cm4ge1xuICAgICAgcnVudGltZTogdHJ1ZSxcbiAgICAgIGluaXQ6IHRoaXMuc3RhdGljLFxuICAgICAgaW50ZXJuYWw6IGZhbHNlLFxuICAgICAgdGltZTogISF0aGlzLnJlZmVyZW5jZT8uc3BlY2lhbERlcGVuZGVuY2llcy50aW1lLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXRpYygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnByb3BlcnR5LnN0YXRpYztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmV0dXJuVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnJlZmVyZW5jZT8uc2NvcGVkUmVmZXJlbmNlKHRoaXMucGFyZW50LnBrZykgPz9cbiAgICAgIHRoaXMucHJvcGVydHkudHlwZS50b1N0cmluZygpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5zdGFuY2VBcmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQucHJveHlOYW1lLnN1YnN0cmluZygwLCAxKS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBvdmVycmlkZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtKU0lJX1JUX0FMSUFTfS5NZW1iZXJQcm9wZXJ0eXtKc2lpUHJvcGVydHk6IFwiJHt0aGlzLnByb3BlcnR5Lm5hbWV9XCIsIEdvR2V0dGVyOiBcIiR7dGhpcy5uYW1lfVwifWA7XG4gIH1cblxuICBwdWJsaWMgZW1pdFN0cnVjdE1lbWJlcih7IGNvZGUsIGRvY3VtZW50ZXIgfTogRW1pdENvbnRleHQpIHtcbiAgICBkb2N1bWVudGVyLmVtaXQodGhpcy5wcm9wZXJ0eS5kb2NzKTtcbiAgICBjb25zdCBtZW1iZXJUeXBlID1cbiAgICAgIHRoaXMucmVmZXJlbmNlPy50eXBlPy5uYW1lID09PSB0aGlzLnBhcmVudC5uYW1lXG4gICAgICAgID8gYCoke3RoaXMucmV0dXJuVHlwZX1gXG4gICAgICAgIDogdGhpcy5yZXR1cm5UeXBlO1xuXG4gICAgLy8gQWRkcyBqc29uIGFuZCB5YW1sIHRhZ3MgZm9yIGVhc3kgZGVzZXJpYWxpemF0aW9uXG4gICAgY29kZS5saW5lKFxuICAgICAgYCR7dGhpcy5uYW1lfSAke21lbWJlclR5cGV9IFxcYGpzb246XCIke3RoaXMucHJvcGVydHkubmFtZX1cIiB5YW1sOlwiJHt0aGlzLnByb3BlcnR5Lm5hbWV9XCJcXGBgLFxuICAgICk7XG4gICAgLy8gVE9ETyBhZGQgbmV3bGluZSBpZiBub3QgdGhlIGxhc3QgbWVtYmVyXG4gIH1cblxuICBwdWJsaWMgZW1pdEdldHRlckRlY2woY29udGV4dDogRW1pdENvbnRleHQpIHtcbiAgICBjb25zdCB7IGNvZGUgfSA9IGNvbnRleHQ7XG4gICAgY29kZS5saW5lKGAke3RoaXMubmFtZX0oKSAke3RoaXMucmV0dXJuVHlwZX1gKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0R2V0dGVyKHsgY29kZSwgZG9jdW1lbnRlciB9OiBFbWl0Q29udGV4dCk6IHZvaWQge1xuICAgIGNvbnN0IHJlY2VpdmVyID0gdGhpcy5wYXJlbnQubmFtZTtcbiAgICBjb25zdCBpbnN0YW5jZUFyZyA9IHJlY2VpdmVyLnN1YnN0cmluZygwLCAxKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgZG9jdW1lbnRlci5lbWl0KHRoaXMucHJvcGVydHkuZG9jcyk7XG4gICAgY29kZS5vcGVuQmxvY2soXG4gICAgICBgZnVuYyAoJHtpbnN0YW5jZUFyZ30gKiR7cmVjZWl2ZXJ9KSBHZXQke3RoaXMubmFtZX0oKSAke3RoaXMucmV0dXJuVHlwZX1gLFxuICAgICk7XG4gICAgY29kZS5saW5lKGByZXR1cm4gJHtpbnN0YW5jZUFyZ30uJHt0aGlzLm5hbWV9YCk7XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdFNldHRlckRlY2woY29udGV4dDogRW1pdENvbnRleHQpIHtcbiAgICBjb25zdCB7IGNvZGUgfSA9IGNvbnRleHQ7XG4gICAgaWYgKCF0aGlzLmltbXV0YWJsZSkge1xuICAgICAgY29kZS5saW5lKGBTZXQke3RoaXMubmFtZX0odmFsICR7dGhpcy5yZXR1cm5UeXBlfSlgKTtcbiAgICB9XG4gIH1cblxuICAvLyBFbWl0cyBnZXR0ZXIgbWV0aG9kcyBvbiB0aGUgc3RydWN0IGZvciBlYWNoIHByb3BlcnR5XG4gIHB1YmxpYyBlbWl0R2V0dGVyUHJveHkoY29udGV4dDogRW1pdENvbnRleHQpIHtcbiAgICBjb25zdCB7IGNvZGUgfSA9IGNvbnRleHQ7XG4gICAgY29uc3QgcmVjZWl2ZXIgPSB0aGlzLnBhcmVudC5wcm94eU5hbWU7XG4gICAgY29uc3QgaW5zdGFuY2VBcmcgPSByZWNlaXZlci5zdWJzdHJpbmcoMCwgMSkudG9Mb3dlckNhc2UoKTtcblxuICAgIGNvZGUub3BlbkJsb2NrKFxuICAgICAgYGZ1bmMgKCR7aW5zdGFuY2VBcmd9ICoke3JlY2VpdmVyfSkgJHt0aGlzLm5hbWV9KCkgJHt0aGlzLnJldHVyblR5cGV9YCxcbiAgICApO1xuXG4gICAgbmV3IEdldFByb3BlcnR5KHRoaXMpLmVtaXQoY29kZSk7XG5cbiAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICBjb2RlLmxpbmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0U2V0dGVyUHJveHkoY29udGV4dDogRW1pdENvbnRleHQpIHtcbiAgICBpZiAoIXRoaXMuaW1tdXRhYmxlKSB7XG4gICAgICBjb25zdCB7IGNvZGUgfSA9IGNvbnRleHQ7XG4gICAgICBjb25zdCByZWNlaXZlciA9IHRoaXMucGFyZW50LnByb3h5TmFtZTtcbiAgICAgIGNvbnN0IGluc3RhbmNlQXJnID0gcmVjZWl2ZXIuc3Vic3RyaW5nKDAsIDEpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgIGNvZGUub3BlbkJsb2NrKFxuICAgICAgICBgZnVuYyAoJHtpbnN0YW5jZUFyZ30gKiR7cmVjZWl2ZXJ9KSBTZXQke3RoaXMubmFtZX0odmFsICR7dGhpcy5yZXR1cm5UeXBlfSlgLFxuICAgICAgKTtcblxuICAgICAgbmV3IFNldFByb3BlcnR5KHRoaXMpLmVtaXQoY29kZSk7XG5cbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgICAgY29kZS5saW5lKCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBHb01ldGhvZCBpbXBsZW1lbnRzIEdvVHlwZU1lbWJlciB7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSByZWZlcmVuY2U/OiBHb1R5cGVSZWY7XG4gIHB1YmxpYyByZWFkb25seSBwYXJhbWV0ZXJzOiBHb1BhcmFtZXRlcltdO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGFyZW50OiBHb0NsYXNzIHwgR29JbnRlcmZhY2UsXG4gICAgcHVibGljIHJlYWRvbmx5IG1ldGhvZDogQ2FsbGFibGUsXG4gICkge1xuICAgIHRoaXMubmFtZSA9IGpzaWlUb1Bhc2NhbENhc2UobWV0aG9kLm5hbWUpO1xuICAgIGlmIChNZXRob2QuaXNNZXRob2QobWV0aG9kKSAmJiBtZXRob2QucmV0dXJucy50eXBlKSB7XG4gICAgICB0aGlzLnJlZmVyZW5jZSA9IG5ldyBHb1R5cGVSZWYocGFyZW50LnBrZy5yb290LCBtZXRob2QucmV0dXJucy50eXBlKTtcbiAgICB9XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gdGhpcy5tZXRob2QucGFyYW1ldGVycy5tYXAoXG4gICAgICAocGFyYW0pID0+IG5ldyBHb1BhcmFtZXRlcihwYXJlbnQsIHBhcmFtKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFic3RyYWN0IGVtaXQoY29udGV4dDogRW1pdENvbnRleHQpOiB2b2lkO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXQgc3BlY2lhbERlcGVuZGVuY2llcygpOiBTcGVjaWFsRGVwZW5kZW5jaWVzO1xuXG4gIHB1YmxpYyBnZXQgcmV0dXJuc1JlZigpOiBib29sZWFuIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnJlZmVyZW5jZT8udHlwZT8udHlwZS5pc0NsYXNzVHlwZSgpIHx8XG4gICAgICB0aGlzLnJlZmVyZW5jZT8udHlwZT8udHlwZS5pc0ludGVyZmFjZVR5cGUoKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldCByZXR1cm5UeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMucmVmZXJlbmNlPy5zY29wZWRSZWZlcmVuY2UodGhpcy5wYXJlbnQucGtnKSA/PyB0aGlzLm1ldGhvZC50b1N0cmluZygpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5zdGFuY2VBcmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQubmFtZS5zdWJzdHJpbmcoMCwgMSkudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgb3ZlcnJpZGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7SlNJSV9SVF9BTElBU30uTWVtYmVyTWV0aG9ke0pzaWlNZXRob2Q6IFwiJHt0aGlzLm1ldGhvZC5uYW1lfVwiLCBHb01ldGhvZDogXCIke3RoaXMubmFtZX1cIn1gO1xuICB9XG5cbiAgcHVibGljIHBhcmFtU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVycy5sZW5ndGggPT09IDBcbiAgICAgID8gJydcbiAgICAgIDogdGhpcy5wYXJhbWV0ZXJzLm1hcCgocCkgPT4gcC50b1N0cmluZygpKS5qb2luKCcsICcpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHb1BhcmFtZXRlciB7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSByZWZlcmVuY2U6IEdvVHlwZVJlZjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHBhcmVudDogR29DbGFzcyB8IEdvSW50ZXJmYWNlLFxuICAgIHB1YmxpYyByZWFkb25seSBwYXJhbWV0ZXI6IFBhcmFtZXRlcixcbiAgKSB7XG4gICAgdGhpcy5uYW1lID0gc3Vic3RpdHV0ZVJlc2VydmVkV29yZHMocGFyYW1ldGVyLm5hbWUpO1xuICAgIHRoaXMucmVmZXJlbmNlID0gbmV3IEdvVHlwZVJlZihwYXJlbnQucGtnLnJvb3QsIHBhcmFtZXRlci50eXBlKTtcbiAgfVxuXG4gIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhcmFtVHlwZSA9IHRoaXMucmVmZXJlbmNlLnNjb3BlZFJlZmVyZW5jZSh0aGlzLnBhcmVudC5wa2cpO1xuICAgIHJldHVybiBgJHt0aGlzLm5hbWV9ICR7dGhpcy5wYXJhbWV0ZXIudmFyaWFkaWMgPyAnLi4uJyA6ICcnfSR7cGFyYW1UeXBlfWA7XG4gIH1cbn1cbiJdfQ==
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1tZW1iZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlLW1lbWJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FPc0I7QUFHdEIsc0RBQXdEO0FBSXhELHdDQUFxRTtBQUNyRSxrQ0FBa0Q7QUFFbEQsbUNBQWtFO0FBY2xFOzs7RUFHRTtBQUNGLE1BQWEsVUFBVTtJQUtyQixZQUNTLE1BQWMsRUFDTCxRQUFrQjtRQUQzQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ0wsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUVsQyxJQUFJLENBQUMsSUFBSSxHQUFHLDhCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLEdBQUc7WUFDakIsR0FBRyxFQUFFLFFBQVE7WUFDYixHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHO1lBQ3BCLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUk7U0FDL0IsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLGlCQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELElBQVcsbUJBQW1COztRQUM1QixPQUFPO1lBQ0wsT0FBTyxFQUFFLElBQUk7WUFDYixJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDakIsUUFBUSxFQUFFLEtBQUs7WUFDZixJQUFJLEVBQUUsQ0FBQyxRQUFDLElBQUksQ0FBQyxTQUFTLDBDQUFFLG1CQUFtQixDQUFDLElBQUksQ0FBQTtTQUNqRCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sQ0FBQyxDQUFDLElB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QUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksaUJBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVNLFFBQVE7UUFDYixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0QsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsU0FBUyxFQUFFLENBQUM7SUFDcEUsQ0FBQztDQUNGO0FBckJELGtDQXFCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENhbGxhYmxlLFxuICBNZW1iZXJLaW5kLFxuICBNZXRob2QsXG4gIFBhcmFtZXRlcixcbiAgUHJvcGVydHksXG4gIFR5cGVSZWZlcmVuY2UsXG59IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBBcGlMb2NhdGlvbiB9IGZyb20gJ2pzaWktcm9zZXR0YSc7XG5cbmltcG9ydCB7IGpzaWlUb1Bhc2NhbENhc2UgfSBmcm9tICcuLi8uLi8uLi9uYW1pbmctdXRpbCc7XG5pbXBvcnQgeyBTcGVjaWFsRGVwZW5kZW5jaWVzIH0gZnJvbSAnLi4vZGVwZW5kZW5jaWVzJztcbmltcG9ydCB7IEVtaXRDb250ZXh0IH0gZnJvbSAnLi4vZW1pdC1jb250ZXh0JztcbmltcG9ydCB7IFBhY2thZ2UgfSBmcm9tICcuLi9wYWNrYWdlJztcbmltcG9ydCB7IEdldFByb3BlcnR5LCBKU0lJX1JUX0FMSUFTLCBTZXRQcm9wZXJ0eSB9IGZyb20gJy4uL3J1bnRpbWUnO1xuaW1wb3J0IHsgc3Vic3RpdHV0ZVJlc2VydmVkV29yZHMgfSBmcm9tICcuLi91dGlsJztcblxuaW1wb3J0IHsgR29DbGFzcywgR29UeXBlLCBHb0ludGVyZmFjZSwgR29UeXBlUmVmIH0gZnJvbSAnLi9pbmRleCc7XG5cbi8qXG4gKiBTdHJ1Y3R1cmUgZm9yIENsYXNzIGFuZCBJbnRlcmZhY2UgbWV0aG9kcy4gVXNlZnVsIGZvciBzaGFyaW5nIGxvZ2ljIGZvciBkZXBlbmRlbmN5IHJlc29sdXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHb1R5cGVNZW1iZXIge1xuICBuYW1lOiBzdHJpbmc7XG4gIHBhcmVudDogR29UeXBlO1xuICByZWZlcmVuY2U/OiBHb1R5cGVSZWY7XG4gIHJldHVyblR5cGU6IHN0cmluZztcblxuICBzcGVjaWFsRGVwZW5kZW5jaWVzOiBTcGVjaWFsRGVwZW5kZW5jaWVzO1xufVxuXG4vKlxuICogR29Qcm9wZXJ0eSBlbmNhcHN1bGF0ZXMgbG9naWMgZm9yIHB1YmxpYyBwcm9wZXJ0aWVzIG9uIGEgY29uY3JldGUgc3RydWN0LCB3aGljaCBjb3VsZCByZXByZXNlbnRcbiBlaXRoZXIgYSBKU0lJIGNsYXNzIHByb3h5IG9yIGRhdGF0eXBlIGludGVyZmFjZSBwcm94eVxuKi9cbmV4cG9ydCBjbGFzcyBHb1Byb3BlcnR5IGltcGxlbWVudHMgR29UeXBlTWVtYmVyIHtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGltbXV0YWJsZTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFwaUxvY2F0aW9uOiBBcGlMb2NhdGlvbjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHBhcmVudDogR29UeXBlLFxuICAgIHB1YmxpYyByZWFkb25seSBwcm9wZXJ0eTogUHJvcGVydHksXG4gICkge1xuICAgIHRoaXMubmFtZSA9IGpzaWlUb1Bhc2NhbENhc2UodGhpcy5wcm9wZXJ0eS5uYW1lKTtcbiAgICB0aGlzLmltbXV0YWJsZSA9IHByb3BlcnR5LmltbXV0YWJsZTtcbiAgICB0aGlzLmFwaUxvY2F0aW9uID0ge1xuICAgICAgYXBpOiAnbWVtYmVyJyxcbiAgICAgIGZxbjogdGhpcy5wYXJlbnQuZnFuLFxuICAgICAgbWVtYmVyTmFtZTogdGhpcy5wcm9wZXJ0eS5uYW1lLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlZmVyZW5jZSgpOiBHb1R5cGVSZWYge1xuICAgIHJldHVybiBuZXcgR29UeXBlUmVmKHRoaXMucGFyZW50LnBrZy5yb290LCB0aGlzLnByb3BlcnR5LnR5cGUpO1xuICB9XG5cbiAgcHVibGljIGdldCBzcGVjaWFsRGVwZW5kZW5jaWVzKCk6IFNwZWNpYWxEZXBlbmRlbmNpZXMge1xuICAgIHJldHVybiB7XG4gICAgICBydW50aW1lOiB0cnVlLFxuICAgICAgaW5pdDogdGhpcy5zdGF0aWMsXG4gICAgICBpbnRlcm5hbDogZmFsc2UsXG4gICAgICB0aW1lOiAhIXRoaXMucmVmZXJlbmNlPy5zcGVjaWFsRGVwZW5kZW5jaWVzLnRpbWUsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdGljKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMucHJvcGVydHkuc3RhdGljO1xuICB9XG5cbiAgcHVibGljIGdldCByZXR1cm5UeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMucmVmZXJlbmNlPy5zY29wZWRSZWZlcmVuY2UodGhpcy5wYXJlbnQucGtnKSA/P1xuICAgICAgdGhpcy5wcm9wZXJ0eS50eXBlLnRvU3RyaW5nKClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBpbnN0YW5jZUFyZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5wcm94eU5hbWUuc3Vic3RyaW5nKDAsIDEpLnRvTG93ZXJDYXNlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG92ZXJyaWRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke0pTSUlfUlRfQUxJQVN9Lk1lbWJlclByb3BlcnR5e0pzaWlQcm9wZXJ0eTogXCIke3RoaXMucHJvcGVydHkubmFtZX1cIiwgR29HZXR0ZXI6IFwiJHt0aGlzLm5hbWV9XCJ9YDtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0U3RydWN0TWVtYmVyKHsgY29kZSwgZG9jdW1lbnRlciB9OiBFbWl0Q29udGV4dCkge1xuICAgIGRvY3VtZW50ZXIuZW1pdCh0aGlzLnByb3BlcnR5LmRvY3MsIHRoaXMuYXBpTG9jYXRpb24pO1xuICAgIGNvbnN0IG1lbWJlclR5cGUgPVxuICAgICAgdGhpcy5yZWZlcmVuY2U/LnR5cGU/Lm5hbWUgPT09IHRoaXMucGFyZW50Lm5hbWVcbiAgICAgICAgPyBgKiR7dGhpcy5yZXR1cm5UeXBlfWBcbiAgICAgICAgOiB0aGlzLnJldHVyblR5cGU7XG5cbiAgICAvLyBBZGRzIGpzb24gYW5kIHlhbWwgdGFncyBmb3IgZWFzeSBkZXNlcmlhbGl6YXRpb25cbiAgICBjb2RlLmxpbmUoXG4gICAgICBgJHt0aGlzLm5hbWV9ICR7bWVtYmVyVHlwZX0gXFxganNvbjpcIiR7dGhpcy5wcm9wZXJ0eS5uYW1lfVwiIHlhbWw6XCIke3RoaXMucHJvcGVydHkubmFtZX1cIlxcYGAsXG4gICAgKTtcbiAgICAvLyBUT0RPIGFkZCBuZXdsaW5lIGlmIG5vdCB0aGUgbGFzdCBtZW1iZXJcbiAgfVxuXG4gIHB1YmxpYyBlbWl0R2V0dGVyRGVjbCh7IGNvZGUsIGRvY3VtZW50ZXIgfTogRW1pdENvbnRleHQpIHtcbiAgICBkb2N1bWVudGVyLmVtaXQodGhpcy5wcm9wZXJ0eS5kb2NzLCB0aGlzLmFwaUxvY2F0aW9uKTtcbiAgICBjb2RlLmxpbmUoYCR7dGhpcy5uYW1lfSgpICR7dGhpcy5yZXR1cm5UeXBlfWApO1xuICB9XG5cbiAgcHVibGljIGVtaXRHZXR0ZXIoeyBjb2RlIH06IEVtaXRDb250ZXh0KTogdm9pZCB7XG4gICAgY29uc3QgcmVjZWl2ZXIgPSB0aGlzLnBhcmVudC5uYW1lO1xuICAgIGNvbnN0IGluc3RhbmNlQXJnID0gcmVjZWl2ZXIuc3Vic3RyaW5nKDAsIDEpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBjb2RlLm9wZW5CbG9jayhcbiAgICAgIGBmdW5jICgke2luc3RhbmNlQXJnfSAqJHtyZWNlaXZlcn0pIEdldCR7dGhpcy5uYW1lfSgpICR7dGhpcy5yZXR1cm5UeXBlfWAsXG4gICAgKTtcbiAgICBjb2RlLmxpbmUoYHJldHVybiAke2luc3RhbmNlQXJnfS4ke3RoaXMubmFtZX1gKTtcbiAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0U2V0dGVyRGVjbCh7IGNvZGUsIGRvY3VtZW50ZXIgfTogRW1pdENvbnRleHQpIHtcbiAgICBpZiAoIXRoaXMuaW1tdXRhYmxlKSB7XG4gICAgICAvLyBGb3Igc2V0dGVycywgb25seSBlbWl0IHRoZSBzdGFiaWxpdHkuIENvcHlpbmcgdGhlIGRvY3VtZW50YXRpb24gZnJvbVxuICAgICAgLy8gdGhlIGdldHRlciBtaWdodCByZXN1bHQgaW4gY29uZnVzaW5nIGRvY3VtZW50YXRpb24uIFRoaXMgaXMgYW4gXCJva2F5XCJcbiAgICAgIC8vIG1pZGRsZS1ncm91bmQuXG4gICAgICBkb2N1bWVudGVyLmVtaXRTdGFiaWxpdHkodGhpcy5wcm9wZXJ0eS5kb2NzKTtcbiAgICAgIGNvZGUubGluZShgU2V0JHt0aGlzLm5hbWV9KHZhbCAke3RoaXMucmV0dXJuVHlwZX0pYCk7XG4gICAgfVxuICB9XG5cbiAgLy8gRW1pdHMgZ2V0dGVyIG1ldGhvZHMgb24gdGhlIHN0cnVjdCBmb3IgZWFjaCBwcm9wZXJ0eVxuICBwdWJsaWMgZW1pdEdldHRlclByb3h5KGNvbnRleHQ6IEVtaXRDb250ZXh0KSB7XG4gICAgY29uc3QgeyBjb2RlIH0gPSBjb250ZXh0O1xuICAgIGNvbnN0IHJlY2VpdmVyID0gdGhpcy5wYXJlbnQucHJveHlOYW1lO1xuICAgIGNvbnN0IGluc3RhbmNlQXJnID0gcmVjZWl2ZXIuc3Vic3RyaW5nKDAsIDEpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBjb2RlLm9wZW5CbG9jayhcbiAgICAgIGBmdW5jICgke2luc3RhbmNlQXJnfSAqJHtyZWNlaXZlcn0pICR7dGhpcy5uYW1lfSgpICR7dGhpcy5yZXR1cm5UeXBlfWAsXG4gICAgKTtcblxuICAgIG5ldyBHZXRQcm9wZXJ0eSh0aGlzKS5lbWl0KGNvZGUpO1xuXG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdFNldHRlclByb3h5KGNvbnRleHQ6IEVtaXRDb250ZXh0KSB7XG4gICAgaWYgKCF0aGlzLmltbXV0YWJsZSkge1xuICAgICAgY29uc3QgeyBjb2RlIH0gPSBjb250ZXh0O1xuICAgICAgY29uc3QgcmVjZWl2ZXIgPSB0aGlzLnBhcmVudC5wcm94eU5hbWU7XG4gICAgICBjb25zdCBpbnN0YW5jZUFyZyA9IHJlY2VpdmVyLnN1YnN0cmluZygwLCAxKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICBjb2RlLm9wZW5CbG9jayhcbiAgICAgICAgYGZ1bmMgKCR7aW5zdGFuY2VBcmd9ICoke3JlY2VpdmVyfSkgU2V0JHt0aGlzLm5hbWV9KHZhbCAke3RoaXMucmV0dXJuVHlwZX0pYCxcbiAgICAgICk7XG5cbiAgICAgIG5ldyBTZXRQcm9wZXJ0eSh0aGlzKS5lbWl0KGNvZGUpO1xuXG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICAgIGNvZGUubGluZSgpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR29NZXRob2QgaW1wbGVtZW50cyBHb1R5cGVNZW1iZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgcGFyYW1ldGVyczogR29QYXJhbWV0ZXJbXTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFwaUxvY2F0aW9uOiBBcGlMb2NhdGlvbjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHBhcmVudDogR29DbGFzcyB8IEdvSW50ZXJmYWNlLFxuICAgIHB1YmxpYyByZWFkb25seSBtZXRob2Q6IENhbGxhYmxlLFxuICApIHtcbiAgICB0aGlzLm5hbWUgPSBqc2lpVG9QYXNjYWxDYXNlKG1ldGhvZC5uYW1lKTtcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSB0aGlzLm1ldGhvZC5wYXJhbWV0ZXJzLm1hcChcbiAgICAgIChwYXJhbSkgPT4gbmV3IEdvUGFyYW1ldGVyKHBhcmVudCwgcGFyYW0pLFxuICAgICk7XG5cbiAgICB0aGlzLmFwaUxvY2F0aW9uID1cbiAgICAgIG1ldGhvZC5raW5kID09PSBNZW1iZXJLaW5kLkluaXRpYWxpemVyXG4gICAgICAgID8geyBhcGk6ICdpbml0aWFsaXplcicsIGZxbjogcGFyZW50LmZxbiB9XG4gICAgICAgIDogeyBhcGk6ICdtZW1iZXInLCBmcW46IHBhcmVudC5mcW4sIG1lbWJlck5hbWU6IG1ldGhvZC5uYW1lIH07XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3QgZW1pdChjb250ZXh0OiBFbWl0Q29udGV4dCk6IHZvaWQ7XG5cbiAgcHVibGljIGFic3RyYWN0IGdldCBzcGVjaWFsRGVwZW5kZW5jaWVzKCk6IFNwZWNpYWxEZXBlbmRlbmNpZXM7XG5cbiAgcHVibGljIGdldCByZWZlcmVuY2UoKTogR29UeXBlUmVmIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoTWV0aG9kLmlzTWV0aG9kKHRoaXMubWV0aG9kKSAmJiB0aGlzLm1ldGhvZC5yZXR1cm5zLnR5cGUpIHtcbiAgICAgIHJldHVybiBuZXcgR29UeXBlUmVmKHRoaXMucGFyZW50LnBrZy5yb290LCB0aGlzLm1ldGhvZC5yZXR1cm5zLnR5cGUpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGdldCByZXR1cm5zUmVmKCk6IGJvb2xlYW4ge1xuICAgIGlmIChcbiAgICAgIHRoaXMucmVmZXJlbmNlPy50eXBlPy50eXBlLmlzQ2xhc3NUeXBlKCkgfHxcbiAgICAgIHRoaXMucmVmZXJlbmNlPy50eXBlPy50eXBlLmlzSW50ZXJmYWNlVHlwZSgpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJldHVyblR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5yZWZlcmVuY2U/LnNjb3BlZFJlZmVyZW5jZSh0aGlzLnBhcmVudC5wa2cpID8/IHRoaXMubWV0aG9kLnRvU3RyaW5nKClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBpbnN0YW5jZUFyZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5uYW1lLnN1YnN0cmluZygwLCAxKS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBvdmVycmlkZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtKU0lJX1JUX0FMSUFTfS5NZW1iZXJNZXRob2R7SnNpaU1ldGhvZDogXCIke3RoaXMubWV0aG9kLm5hbWV9XCIsIEdvTWV0aG9kOiBcIiR7dGhpcy5uYW1lfVwifWA7XG4gIH1cblxuICBwdWJsaWMgcGFyYW1TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzLmxlbmd0aCA9PT0gMFxuICAgICAgPyAnJ1xuICAgICAgOiB0aGlzLnBhcmFtZXRlcnMubWFwKChwKSA9PiBwLnRvU3RyaW5nKCkpLmpvaW4oJywgJyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdvUGFyYW1ldGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGlzVmFyaWFkaWM6IGJvb2xlYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgdHlwZTogVHlwZVJlZmVyZW5jZTtcbiAgcHJpdmF0ZSByZWFkb25seSBwa2c6IFBhY2thZ2U7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmVudDogR29DbGFzcyB8IEdvSW50ZXJmYWNlLCBwYXJhbWV0ZXI6IFBhcmFtZXRlcikge1xuICAgIHRoaXMubmFtZSA9IHN1YnN0aXR1dGVSZXNlcnZlZFdvcmRzKHBhcmFtZXRlci5uYW1lKTtcbiAgICB0aGlzLmlzVmFyaWFkaWMgPSBwYXJhbWV0ZXIudmFyaWFkaWM7XG4gICAgdGhpcy50eXBlID0gcGFyYW1ldGVyLnR5cGU7XG4gICAgdGhpcy5wa2cgPSBwYXJlbnQucGtnO1xuICB9XG5cbiAgcHVibGljIGdldCByZWZlcmVuY2UoKTogR29UeXBlUmVmIHtcbiAgICByZXR1cm4gbmV3IEdvVHlwZVJlZih0aGlzLnBrZy5yb290LCB0aGlzLnR5cGUpO1xuICB9XG5cbiAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFyYW1UeXBlID0gdGhpcy5yZWZlcmVuY2Uuc2NvcGVkUmVmZXJlbmNlKHRoaXMucGtnKTtcbiAgICByZXR1cm4gYCR7dGhpcy5uYW1lfSAke3RoaXMuaXNWYXJpYWRpYyA/ICcuLi4nIDogJyd9JHtwYXJhbVR5cGV9YDtcbiAgfVxufVxuIl19
@@ -6,4 +6,4 @@
6
6
  setuptools~=59.6.0 # build-system
7
7
  wheel~=0.37.1 # build-system
8
8
 
9
- twine~=3.7.1
9
+ twine~=3.8.0
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.52.1";
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.52.1 (build 5ccc8f6)";
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-01-10T00:25:39Z 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.52.1';
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.52.1 (build 5ccc8f6)';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG1EQUFtRDs7O0FBRW5ELHFFQUFxRTtBQUN4RCxRQUFBLE9BQU8sR0FBRyxRQUFRLENBQUM7QUFFaEMseUZBQXlGO0FBQzVFLFFBQUEsWUFBWSxHQUFHLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR2VuZXJhdGVkIGF0IDIwMjItMDEtMTBUMDA6MjU6MzlaIGJ5IGdlbmVyYXRlLnNoXG5cbi8qKiBUaGUgc2hvcnQgdmVyc2lvbiBudW1iZXIgZm9yIHRoaXMgSlNJSSBjb21waWxlciAoZS5nOiBgWC5ZLlpgKSAqL1xuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSAnMS41Mi4xJztcblxuLyoqIFRoZSBxdWFsaWZpZWQgdmVyc2lvbiBudW1iZXIgZm9yIHRoaXMgSlNJSSBjb21waWxlciAoZS5nOiBgWC5ZLlogKGJ1aWxkICMjIyMjIyMpYCkgKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OX0RFU0MgPSAnMS41Mi4xIChidWlsZCA1Y2NjOGY2KSc7XG4iXX0=
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.52.1",
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,38 +37,38 @@
37
37
  "package": "package-js"
38
38
  },
39
39
  "dependencies": {
40
- "@jsii/check-node": "1.52.1",
41
- "@jsii/spec": "^1.52.1",
40
+ "@jsii/check-node": "1.55.0",
41
+ "@jsii/spec": "^1.55.0",
42
42
  "clone": "^2.1.2",
43
- "codemaker": "^1.52.1",
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.52.1",
48
- "jsii-rosetta": "^1.52.1",
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.52.1",
56
- "@jsii/java-runtime": "^1.52.1",
57
- "@jsii/go-runtime": "^1.52.1",
58
- "@scope/jsii-calc-lib": "^1.52.1",
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.0.3",
63
- "@types/node": "^12.20.39",
62
+ "@types/jest": "^27.4.1",
63
+ "@types/node": "^12.20.46",
64
64
  "@types/semver": "^7.3.9",
65
- "eslint": "^8.5.0",
66
- "jest": "^27.4.5",
67
- "jsii": "^1.52.1",
68
- "jsii-build-tools": "^1.52.1",
65
+ "eslint": "^8.10.0",
66
+ "jest": "^27.5.1",
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
- "ts-jest": "^27.1.2",
71
+ "ts-jest": "^27.1.3",
72
72
  "typescript": "~3.9.10"
73
73
  },
74
74
  "keywords": [