New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@protobuf-ts/runtime-angular

Package Overview
Dependencies
Maintainers
1
Versions
89
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@protobuf-ts/runtime-angular - npm Package Compare versions

Comparing version 1.0.5 to 1.0.6-alpha.0

17

bundles/protobuf-ts-runtime-angular.umd.js

@@ -434,3 +434,5 @@ (function (global, factory) {

var _a;
var opt = options, url = this.makeUrl(method, opt), requestBody = opt.sendJson ? method.I.toJsonString(input, opt.jsonOptions) : method.I.toBinary(input, opt.binaryOptions).buffer, defHeader = new runtimeRpc.Deferred(), defMessage = new runtimeRpc.Deferred(), defStatus = new runtimeRpc.Deferred(), defTrailer = new runtimeRpc.Deferred(), cancellationToken = new rxjs.Subject(), cancellationRequested = false;
var opt = options, url = this.makeUrl(method, opt), requestBody = opt.sendJson ? method.I.toJsonString(input, opt.jsonOptions) : method.I.toBinary(input, opt.binaryOptions).buffer, defHeader = new runtimeRpc.Deferred(), defMessage = new runtimeRpc.Deferred(), defStatus = new runtimeRpc.Deferred(), defTrailer = new runtimeRpc.Deferred(), abortObservable = !options.abort ? rxjs.NEVER : (options.abort.aborted
? rxjs.of(undefined)
: rxjs.fromEvent(options.abort, "abort"));
this.http.request('POST', url, {

@@ -442,6 +444,7 @@ body: requestBody,

})
.pipe(operators.takeUntil(cancellationToken))
.pipe(operators.takeUntil(abortObservable))
.toPromise()
.then(function (ngResponse) {
if (ngResponse === undefined && cancellationRequested)
var _a;
if (ngResponse === undefined && ((_a = options.abort) === null || _a === void 0 ? void 0 : _a.aborted))
return undefined;

@@ -476,3 +479,4 @@ defHeader.resolve(parseMetadataFromResponseHeaders(ngResponse.headers));

.then(function (message) {
if (message === undefined && cancellationRequested)
var _a;
if (message === undefined && ((_a = options.abort) === null || _a === void 0 ? void 0 : _a.aborted))
throw new runtimeRpc.RpcError("request cancelled", twirpTransport.TwirpErrorCode[twirpTransport.TwirpErrorCode.cancelled]);

@@ -492,6 +496,3 @@ defMessage.resolve(message);

});
return new runtimeRpc.UnaryCall(method, (_a = opt.meta) !== null && _a !== void 0 ? _a : {}, input, defHeader.promise, defMessage.promise, defStatus.promise, defTrailer.promise, function () {
cancellationRequested = true;
cancellationToken.next();
});
return new runtimeRpc.UnaryCall(method, (_a = opt.meta) !== null && _a !== void 0 ? _a : {}, input, defHeader.promise, defMessage.promise, defStatus.promise, defTrailer.promise);
};

@@ -498,0 +499,0 @@ /**

@@ -15,3 +15,3 @@ !function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/common"),require("@protobuf-ts/runtime"),require("@angular/common/http"),require("@protobuf-ts/runtime-rpc"),require("rxjs"),require("@protobuf-ts/twirp-transport"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@protobuf-ts/runtime-angular",["exports","@angular/core","@angular/common","@protobuf-ts/runtime","@angular/common/http","@protobuf-ts/runtime-rpc","rxjs","@protobuf-ts/twirp-transport","rxjs/operators"],e):e(((r=r||self)["protobuf-ts"]=r["protobuf-ts"]||{},r["protobuf-ts"]["runtime-angular"]={}),r.ng.core,r.ng.common,r.protobufTs.runtime,r.ng.common.http,r.protobufTs.runtimeRpc,r.rxjs,r.protobufTs.twirpTransport,r.rxjs.operators)}(this,(function(r,e,t,o,n,i,a,s,u){"use strict";var p=function(){function r(r){this.locale=r}return r.prototype.transform=function(r,e,n,i){if(void 0===e&&(e="mediumDate"),null==r||""===r||r!=r)return null;if(function(r){if("object"!=typeof r||null===r)return!1;if("number"!=typeof r.year)return!1;if("number"!=typeof r.month)return!1;if("number"!=typeof r.day)return!1;if("number"!=typeof r.hours)return!1;if("number"!=typeof r.minutes)return!1;if("number"!=typeof r.seconds)return!1;if("number"!=typeof r.nanos)return!1;if(!o.isOneofGroup(r.timeOffset))return!1;var e=r.timeOffset.oneofKind;return(void 0===e||"timeZone"==e||"utcOffset"==e)&&(void 0===r.timeOffset.utcOffset||function(r){if("object"!=typeof r||null===r)return!1;if("number"!=typeof r.nanos)return!1;var e=typeof r.seconds;return"number"==e||"string"==e||"bigint"==e}(r.timeOffset.utcOffset))}(r)){var a=new Date(r.year,r.month-1,r.day,r.hours,r.minutes,r.seconds,r.nanos/1e3);if(r.timeOffset){if("timeZone"===r.timeOffset.oneofKind)throw new Error("Do not understand IANA time zone. Cannot convert to javascript Date.");if("utcOffset"===r.timeOffset.oneofKind){var s=o.PbLong.from(r.timeOffset.utcOffset.seconds).toNumber()/60,u=a.getTimezoneOffset();a.setMinutes(a.getMinutes()+(s-u))}}return t.formatDate(a,e,null!=i?i:this.locale,n)}if(function(r){if("object"!=typeof r||null===r)return!1;if("number"!=typeof r.nanos)return!1;var e=typeof r.seconds;return"number"==e||"string"==e||"bigint"==e}(r)){var p=o.PbLong.from(r.seconds).toNumber();a=new Date(1e3*p+Math.ceil(r.nanos/1e6));return t.formatDate(a,e,null!=i?i:this.locale,n)}return t.formatDate(r,e,null!=i?i:this.locale,n)},r}();p.decorators=[{type:e.Pipe,args:[{name:"date",pure:!0}]}],p.ctorParameters=function(){return[{type:String,decorators:[{type:e.Inject,args:[e.LOCALE_ID]}]}]};var f=function(){};f.decorators=[{type:e.NgModule,args:[{declarations:[p],exports:[p]}]}];var c=new e.InjectionToken("RpcTransport");

PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */Object.create;function l(r){var e="function"==typeof Symbol&&Symbol.iterator,t=e&&r[e],o=0;if(t)return t.call(r);if(r&&"number"==typeof r.length)return{next:function(){return r&&o>=r.length&&(r=void 0),{value:r&&r[o++],done:!r}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function d(r,e){var t="function"==typeof Symbol&&r[Symbol.iterator];if(!t)return r;var o,n,i=t.call(r),a=[];try{for(;(void 0===e||e-- >0)&&!(o=i.next()).done;)a.push(o.value)}catch(r){n={error:r}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(n)throw n.error}}return a}Object.create;var y=new e.InjectionToken("TwirpOptions"),m=function(){function r(r,e){this.defaultOptions=r,this.http=e}return r.prototype.mergeOptions=function(r){return i.mergeExtendedRpcOptions(this.defaultOptions,r)},r.prototype.unary=function(r,e,t){var p,f=t,c=this.makeUrl(r,f),d=f.sendJson?r.I.toJsonString(e,f.jsonOptions):r.I.toBinary(e,f.binaryOptions).buffer,y=new i.Deferred,m=new i.Deferred,v=new i.Deferred,h=new i.Deferred,g=new a.Subject,T=!1;return this.http.request("POST",c,{body:d,headers:w(!!f.sendJson,f.meta),responseType:"arraybuffer",observe:"response"}).pipe(u.takeUntil(g)).toPromise().then((function(e){if(void 0!==e||!T){if(y.resolve(function(r){var e,t,o,n,i={};try{for(var a=l(r.keys()),s=a.next();!s.done;s=a.next()){var u=s.value;if("content-type"!==u.toLowerCase()&&"content-length"!==u.toLowerCase()){var p=r.getAll(u);if(p)try{for(var f=(o=void 0,l(p)),c=f.next();!c.done;c=f.next()){var d=c.value;i.hasOwnProperty(u)?i[u].push(d):i[u]=d}}catch(r){o={error:r}}finally{try{c&&!c.done&&(n=f.return)&&n.call(f)}finally{if(o)throw o.error}}}}}catch(r){e={error:r}}finally{try{s&&!s.done&&(t=a.return)&&t.call(a)}finally{if(e)throw e.error}}return i}(e.headers)),!e.body)throw new i.RpcError("premature end of response",s.TwirpErrorCode[s.TwirpErrorCode.dataloss]);if(!e.ok)throw b(e.body);if(f.sendJson)try{return r.O.fromJsonString(o.utf8read(new Uint8Array(e.body)),f.jsonOptions)}catch(r){throw new i.RpcError("unable to read response body as json",s.TwirpErrorCode[s.TwirpErrorCode.dataloss])}try{return r.O.fromBinary(new Uint8Array(e.body),f.binaryOptions)}catch(r){throw new i.RpcError("unable to read response body",s.TwirpErrorCode[s.TwirpErrorCode.dataloss])}}}),(function(r){if(r instanceof n.HttpErrorResponse){if(r.error instanceof ArrayBuffer)throw b(r.error);throw new i.RpcError(r.message,s.TwirpErrorCode[s.TwirpErrorCode.unknown])}throw new i.RpcError("unknown error",s.TwirpErrorCode[s.TwirpErrorCode.unknown])})).then((function(r){if(void 0===r&&T)throw new i.RpcError("request cancelled",s.TwirpErrorCode[s.TwirpErrorCode.cancelled]);m.resolve(r),v.resolve({code:"OK",detail:""}),h.resolve({})})).catch((function(r){var e=r instanceof i.RpcError?r:new i.RpcError(r instanceof Error?r.message:r,s.TwirpErrorCode[s.TwirpErrorCode.internal]);y.rejectPending(e),m.rejectPending(e),v.rejectPending(e),h.rejectPending(e)})),new i.UnaryCall(r,null!==(p=f.meta)&&void 0!==p?p:{},e,y.promise,m.promise,v.promise,h.promise,(function(){T=!0,g.next()}))},r.prototype.makeUrl=function(r,e){var t=e.baseUrl;t.endsWith("/")&&(t=t.substring(0,t.length-1));var n=r.name;return!0!==e.useProtoMethodName&&(n=(n=o.lowerCamelCase(n)).substring(0,1).toUpperCase()+n.substring(1)),t+"/"+r.service.typeName+"/"+n},r.prototype.clientStreaming=function(){throw new i.RpcError("Client streaming is not supported by Twirp",s.TwirpErrorCode[s.TwirpErrorCode.unimplemented])},r.prototype.duplex=function(){throw new i.RpcError("Duplex streaming is not supported by Twirp",s.TwirpErrorCode[s.TwirpErrorCode.unimplemented])},r.prototype.serverStreaming=function(){throw new i.RpcError("Server streaming is not supported by Twirp",s.TwirpErrorCode[s.TwirpErrorCode.unimplemented])},r}();function w(r,e){var t,o,i,a,s=new n.HttpHeaders;if(e)try{for(var u=l(Object.entries(e)),p=u.next();!p.done;p=u.next()){var f=d(p.value,2),c=f[0],y=f[1];if("string"==typeof y)s=s.append(c,y);else try{for(var m=(i=void 0,l(y)),w=m.next();!w.done;w=m.next()){var b=w.value;s=s.append(c,b)}}catch(r){i={error:r}}finally{try{w&&!w.done&&(a=m.return)&&a.call(m)}finally{if(i)throw i.error}}}}catch(r){t={error:r}}finally{try{p&&!p.done&&(o=u.return)&&o.call(u)}finally{if(t)throw t.error}}return s=(s=s.set("Content-Type",r?"application/json":"application/protobuf")).set("Accept",r?"application/json":"application/protobuf, application/json")}function b(r){var e,t,n;try{n=JSON.parse(o.utf8read(new Uint8Array(r)))}catch(r){return new i.RpcError("cannot read twirp error response",s.TwirpErrorCode[s.TwirpErrorCode.internal])}if(!o.isJsonObject(n)||"string"!=typeof n.code||"string"!=typeof n.msg)return new i.RpcError("cannot read twirp error response",s.TwirpErrorCode[s.TwirpErrorCode.internal]);var a={};if(o.isJsonObject(n.meta))try{for(var u=l(Object.entries(n.meta)),p=u.next();!p.done;p=u.next()){var f=d(p.value,2),c=f[0],y=f[1];"string"==typeof y&&(a[c]=y)}}catch(r){e={error:r}}finally{try{p&&!p.done&&(t=u.return)&&t.call(u)}finally{if(e)throw e.error}}return new i.RpcError(n.msg,n.code,a)}m.decorators=[{type:e.Injectable}],m.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[y]}]},{type:n.HttpClient}]};var v=function(){function r(){}return r.forRoot=function(e){return{ngModule:r,providers:[{provide:y,useValue:e},{provide:c,useExisting:m}]}},r}();v.decorators=[{type:e.NgModule,args:[{imports:[n.HttpClientModule],providers:[m]}]}],r.PbDatePipe=p,r.PbDatePipeModule=f,r.RPC_TRANSPORT=c,r.TWIRP_TRANSPORT_OPTIONS=y,r.TwirpModule=v,r.TwirpTransport=m,Object.defineProperty(r,"__esModule",{value:!0})}));
***************************************************************************** */Object.create;function l(r){var e="function"==typeof Symbol&&Symbol.iterator,t=e&&r[e],o=0;if(t)return t.call(r);if(r&&"number"==typeof r.length)return{next:function(){return r&&o>=r.length&&(r=void 0),{value:r&&r[o++],done:!r}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function d(r,e){var t="function"==typeof Symbol&&r[Symbol.iterator];if(!t)return r;var o,n,i=t.call(r),a=[];try{for(;(void 0===e||e-- >0)&&!(o=i.next()).done;)a.push(o.value)}catch(r){n={error:r}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(n)throw n.error}}return a}Object.create;var m=new e.InjectionToken("TwirpOptions"),y=function(){function r(r,e){this.defaultOptions=r,this.http=e}return r.prototype.mergeOptions=function(r){return i.mergeExtendedRpcOptions(this.defaultOptions,r)},r.prototype.unary=function(r,e,t){var p,f=t,c=this.makeUrl(r,f),d=f.sendJson?r.I.toJsonString(e,f.jsonOptions):r.I.toBinary(e,f.binaryOptions).buffer,m=new i.Deferred,y=new i.Deferred,v=new i.Deferred,h=new i.Deferred,g=t.abort?t.abort.aborted?a.of(void 0):a.fromEvent(t.abort,"abort"):a.NEVER;return this.http.request("POST",c,{body:d,headers:w(!!f.sendJson,f.meta),responseType:"arraybuffer",observe:"response"}).pipe(u.takeUntil(g)).toPromise().then((function(e){var n;if(void 0!==e||!(null===(n=t.abort)||void 0===n?void 0:n.aborted)){if(m.resolve(function(r){var e,t,o,n,i={};try{for(var a=l(r.keys()),s=a.next();!s.done;s=a.next()){var u=s.value;if("content-type"!==u.toLowerCase()&&"content-length"!==u.toLowerCase()){var p=r.getAll(u);if(p)try{for(var f=(o=void 0,l(p)),c=f.next();!c.done;c=f.next()){var d=c.value;i.hasOwnProperty(u)?i[u].push(d):i[u]=d}}catch(r){o={error:r}}finally{try{c&&!c.done&&(n=f.return)&&n.call(f)}finally{if(o)throw o.error}}}}}catch(r){e={error:r}}finally{try{s&&!s.done&&(t=a.return)&&t.call(a)}finally{if(e)throw e.error}}return i}(e.headers)),!e.body)throw new i.RpcError("premature end of response",s.TwirpErrorCode[s.TwirpErrorCode.dataloss]);if(!e.ok)throw b(e.body);if(f.sendJson)try{return r.O.fromJsonString(o.utf8read(new Uint8Array(e.body)),f.jsonOptions)}catch(r){throw new i.RpcError("unable to read response body as json",s.TwirpErrorCode[s.TwirpErrorCode.dataloss])}try{return r.O.fromBinary(new Uint8Array(e.body),f.binaryOptions)}catch(r){throw new i.RpcError("unable to read response body",s.TwirpErrorCode[s.TwirpErrorCode.dataloss])}}}),(function(r){if(r instanceof n.HttpErrorResponse){if(r.error instanceof ArrayBuffer)throw b(r.error);throw new i.RpcError(r.message,s.TwirpErrorCode[s.TwirpErrorCode.unknown])}throw new i.RpcError("unknown error",s.TwirpErrorCode[s.TwirpErrorCode.unknown])})).then((function(r){var e;if(void 0===r&&(null===(e=t.abort)||void 0===e?void 0:e.aborted))throw new i.RpcError("request cancelled",s.TwirpErrorCode[s.TwirpErrorCode.cancelled]);y.resolve(r),v.resolve({code:"OK",detail:""}),h.resolve({})})).catch((function(r){var e=r instanceof i.RpcError?r:new i.RpcError(r instanceof Error?r.message:r,s.TwirpErrorCode[s.TwirpErrorCode.internal]);m.rejectPending(e),y.rejectPending(e),v.rejectPending(e),h.rejectPending(e)})),new i.UnaryCall(r,null!==(p=f.meta)&&void 0!==p?p:{},e,m.promise,y.promise,v.promise,h.promise)},r.prototype.makeUrl=function(r,e){var t=e.baseUrl;t.endsWith("/")&&(t=t.substring(0,t.length-1));var n=r.name;return!0!==e.useProtoMethodName&&(n=(n=o.lowerCamelCase(n)).substring(0,1).toUpperCase()+n.substring(1)),t+"/"+r.service.typeName+"/"+n},r.prototype.clientStreaming=function(){throw new i.RpcError("Client streaming is not supported by Twirp",s.TwirpErrorCode[s.TwirpErrorCode.unimplemented])},r.prototype.duplex=function(){throw new i.RpcError("Duplex streaming is not supported by Twirp",s.TwirpErrorCode[s.TwirpErrorCode.unimplemented])},r.prototype.serverStreaming=function(){throw new i.RpcError("Server streaming is not supported by Twirp",s.TwirpErrorCode[s.TwirpErrorCode.unimplemented])},r}();function w(r,e){var t,o,i,a,s=new n.HttpHeaders;if(e)try{for(var u=l(Object.entries(e)),p=u.next();!p.done;p=u.next()){var f=d(p.value,2),c=f[0],m=f[1];if("string"==typeof m)s=s.append(c,m);else try{for(var y=(i=void 0,l(m)),w=y.next();!w.done;w=y.next()){var b=w.value;s=s.append(c,b)}}catch(r){i={error:r}}finally{try{w&&!w.done&&(a=y.return)&&a.call(y)}finally{if(i)throw i.error}}}}catch(r){t={error:r}}finally{try{p&&!p.done&&(o=u.return)&&o.call(u)}finally{if(t)throw t.error}}return s=(s=s.set("Content-Type",r?"application/json":"application/protobuf")).set("Accept",r?"application/json":"application/protobuf, application/json")}function b(r){var e,t,n;try{n=JSON.parse(o.utf8read(new Uint8Array(r)))}catch(r){return new i.RpcError("cannot read twirp error response",s.TwirpErrorCode[s.TwirpErrorCode.internal])}if(!o.isJsonObject(n)||"string"!=typeof n.code||"string"!=typeof n.msg)return new i.RpcError("cannot read twirp error response",s.TwirpErrorCode[s.TwirpErrorCode.internal]);var a={};if(o.isJsonObject(n.meta))try{for(var u=l(Object.entries(n.meta)),p=u.next();!p.done;p=u.next()){var f=d(p.value,2),c=f[0],m=f[1];"string"==typeof m&&(a[c]=m)}}catch(r){e={error:r}}finally{try{p&&!p.done&&(t=u.return)&&t.call(u)}finally{if(e)throw e.error}}return new i.RpcError(n.msg,n.code,a)}y.decorators=[{type:e.Injectable}],y.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[m]}]},{type:n.HttpClient}]};var v=function(){function r(){}return r.forRoot=function(e){return{ngModule:r,providers:[{provide:m,useValue:e},{provide:c,useExisting:y}]}},r}();v.decorators=[{type:e.NgModule,args:[{imports:[n.HttpClientModule],providers:[y]}]}],r.PbDatePipe=p,r.PbDatePipeModule=f,r.RPC_TRANSPORT=c,r.TWIRP_TRANSPORT_OPTIONS=m,r.TwirpModule=v,r.TwirpTransport=y,Object.defineProperty(r,"__esModule",{value:!0})}));
//# sourceMappingURL=protobuf-ts-runtime-angular.umd.min.js.map
import { HttpClient, HttpErrorResponse, HttpHeaders } from "@angular/common/http";
import { Deferred, mergeExtendedRpcOptions, RpcError, UnaryCall } from "@protobuf-ts/runtime-rpc";
import { isJsonObject, lowerCamelCase, utf8read } from "@protobuf-ts/runtime";
import { Subject } from "rxjs";
import { fromEvent, NEVER, of } from "rxjs";
import { TwirpErrorCode } from "@protobuf-ts/twirp-transport";

@@ -30,3 +30,5 @@ import { Inject, Injectable } from "@angular/core";

var _a;
let opt = options, url = this.makeUrl(method, opt), requestBody = opt.sendJson ? method.I.toJsonString(input, opt.jsonOptions) : method.I.toBinary(input, opt.binaryOptions).buffer, defHeader = new Deferred(), defMessage = new Deferred(), defStatus = new Deferred(), defTrailer = new Deferred(), cancellationToken = new Subject(), cancellationRequested = false;
let opt = options, url = this.makeUrl(method, opt), requestBody = opt.sendJson ? method.I.toJsonString(input, opt.jsonOptions) : method.I.toBinary(input, opt.binaryOptions).buffer, defHeader = new Deferred(), defMessage = new Deferred(), defStatus = new Deferred(), defTrailer = new Deferred(), abortObservable = !options.abort ? NEVER : (options.abort.aborted
? of(undefined)
: fromEvent(options.abort, "abort"));
this.http.request('POST', url, {

@@ -38,6 +40,7 @@ body: requestBody,

})
.pipe(takeUntil(cancellationToken))
.pipe(takeUntil(abortObservable))
.toPromise()
.then(ngResponse => {
if (ngResponse === undefined && cancellationRequested)
var _a;
if (ngResponse === undefined && ((_a = options.abort) === null || _a === void 0 ? void 0 : _a.aborted))
return undefined;

@@ -72,3 +75,4 @@ defHeader.resolve(parseMetadataFromResponseHeaders(ngResponse.headers));

.then(message => {
if (message === undefined && cancellationRequested)
var _a;
if (message === undefined && ((_a = options.abort) === null || _a === void 0 ? void 0 : _a.aborted))
throw new RpcError("request cancelled", TwirpErrorCode[TwirpErrorCode.cancelled]);

@@ -88,6 +92,3 @@ defMessage.resolve(message);

});
return new UnaryCall(method, (_a = opt.meta) !== null && _a !== void 0 ? _a : {}, input, defHeader.promise, defMessage.promise, defStatus.promise, defTrailer.promise, () => {
cancellationRequested = true;
cancellationToken.next();
});
return new UnaryCall(method, (_a = opt.meta) !== null && _a !== void 0 ? _a : {}, input, defHeader.promise, defMessage.promise, defStatus.promise, defTrailer.promise);
}

@@ -207,2 +208,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdpcnAtdHJhbnNwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R3aXJwLXRyYW5zcG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEYsT0FBTyxFQUVMLFFBQVEsRUFFUix1QkFBdUIsRUFFdkIsUUFBUSxFQU1SLFNBQVMsRUFDVixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBQyxZQUFZLEVBQWEsY0FBYyxFQUFFLFFBQVEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFDLGNBQWMsRUFBZSxNQUFNLDhCQUE4QixDQUFDO0FBQzFFLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6Qzs7Ozs7Ozs7OztHQVVHO0FBRUgsTUFBTSxPQUFPLGNBQWM7SUFLekIsWUFBNkMsT0FBcUIsRUFBRSxJQUFnQjtRQUNsRixJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQTZCO1FBQ3hDLE9BQU8sdUJBQXVCLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsS0FBSyxDQUFxQyxNQUFrQixFQUFFLEtBQVEsRUFBRSxPQUFtQjs7UUFDekYsSUFBSSxHQUFHLEdBQUcsT0FBdUIsRUFDL0IsR0FBRyxHQUFH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O1FBQzlCLElBQUksR0FBRyxDQUFDLFdBQVcsRUFBRSxLQUFLLGNBQWM7WUFDdEMsU0FBUztRQUNYLElBQUksR0FBRyxDQUFDLFdBQVcsRUFBRSxLQUFLLGdCQUFnQjtZQUN4QyxTQUFTO1FBQ1gsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTTtZQUNULFNBQVM7UUFDWCxLQUFLLElBQUksR0FBRyxJQUFJLE1BQU0sRUFBRTtZQUN0QixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO2dCQUN6QixJQUFJLENBQUMsR0FBRyxDQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDOztnQkFFbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUNuQjtLQUNGO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEhlYWRlcnN9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHtcbiAgQ2xpZW50U3RyZWFtaW5nQ2FsbCxcbiAgRGVmZXJyZWQsXG4gIER1cGxleFN0cmVhbWluZ0NhbGwsXG4gIG1lcmdlRXh0ZW5kZWRScGNPcHRpb25zLFxuICBNZXRob2RJbmZvLFxuICBScGNFcnJvcixcbiAgUnBjTWV0YWRhdGEsXG4gIFJwY09wdGlvbnMsXG4gIFJwY1N0YXR1cyxcbiAgUnBjVHJhbnNwb3J0LFxuICBTZXJ2ZXJTdHJlYW1pbmdDYWxsLFxuICBVbmFyeUNhbGxcbn0gZnJvbSBcIkBwcm90b2J1Zi10cy9ydW50aW1lLXJwY1wiO1xuaW1wb3J0IHtpc0pzb25PYmplY3QsIEpzb25WYWx1ZSwgbG93ZXJDYW1lbENhc2UsIHV0ZjhyZWFkfSBmcm9tIFwiQHByb3RvYnVmLXRzL3J1bnRpbWVcIjtcbmltcG9ydCB7U3ViamVjdH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7VHdpcnBFcnJvckNvZGUsIFR3aXJwT3B0aW9uc30gZnJvbSBcIkBwcm90b2J1Zi10cy90d2lycC10cmFuc3BvcnRcIjtcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtUV0lSUF9UUkFOU1BPUlRfT1BUSU9OU30gZnJvbSBcIi4vdHdpcnAtdHJhbnNwb3J0LW9wdGlvbnNcIjtcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuXG4vKipcbiAqIEltcGxlbWVudHMgdGhlIFR3aXJwIHByb3RvY29sLCBzdXBwb3J0aW5nIEpTT04gb3IgYmluYXJ5IGZvcm1hdCBvblxuICogdGhlIHdpcmUuIFNlZSBodHRwczovL3R3aXRjaHR2LmdpdGh1Yi5pby90d2lycC9kb2NzL3NwZWNfdjUuaHRtbFxuICpcbiAqIFVzZXMgYEh0dHBDbGllbnRgIG9mIEBhbmd1bGFyL2NvbW1vbi9odHRwIGZvciByZXF1ZXN0cy5cbiAqXG4gKiBUaGlzIGlzIGFuIGluamVjdGFibGUgc2VydmljZS4gVG8gaW5qZWN0LCB5b3UgbXVzdCBwcm92aWRlIHRoZVxuICogaW5qZWN0aW9uIHRva2VuIFRXSVJQX1RSQU5TUE9SVF9PUFRJT05TLiBGb3IgZWFzeSBpbnRlZ3JhdGlvbixcbiAqIGp1c3QgYWRkIFR3aXJwQW5ndWxhck1vZHVsZS5mb3JSb290KCkgdG8gdGhlIFwiaW1wb3J0c1wiIG9mIHlvdXJcbiAqIGBBcHBDb21wb25lbnRgLiBUaGUgbWV0aG9kIHRha2VzIGEgYFR3aXJwT3B0aW9uc2AgYXJndW1lbnQuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUd2lycFRyYW5zcG9ydCBpbXBsZW1lbnRzIFJwY1RyYW5zcG9ydCB7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlZmF1bHRPcHRpb25zOiBUd2lycE9wdGlvbnM7XG4gIHByb3RlY3RlZCByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50O1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoVFdJUlBfVFJBTlNQT1JUX09QVElPTlMpIG9wdGlvbnM6IFR3aXJwT3B0aW9ucywgaHR0cDogSHR0cENsaWVudCkge1xuICAgIHRoaXMuZGVmYXVsdE9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMuaHR0cCA9IGh0dHA7XG4gIH1cblxuICBtZXJnZU9wdGlvbnMob3B0aW9ucz86IFBhcnRpYWw8UnBjT3B0aW9ucz4pOiBScGNPcHRpb25zIHtcbiAgICByZXR1cm4gbWVyZ2VFeHRlbmRlZFJwY09wdGlvbnModGhpcy5kZWZhdWx0T3B0aW9ucywgb3B0aW9ucyk7XG4gIH1cblxuICB1bmFyeTxJIGV4dGVuZHMgb2JqZWN0LCBPIGV4dGVuZHMgb2JqZWN0PihtZXRob2Q6IE1ldGhvZEluZm8sIGlucHV0OiBJLCBvcHRpb25zOiBScGNPcHRpb25zKTogVW5hcnlDYWxsPEksIE8+IHtcbiAgICBsZXQgb3B0ID0gb3B0aW9ucyBhcyBUd2lycE9wdGlvbnMsXG4gICAgICB1cmwgPSB0aGlzLm1ha2VVcmwobWV0aG9kLCBvcHQpLFxuICAgICAgcmVxdWVzdEJvZHkgPSBvcHQuc2VuZEpzb24gPyBtZXRob2QuSS50b0pzb25TdHJpbmcoaW5wdXQsIG9wdC5qc29uT3B0aW9ucykgOiBtZXRob2QuSS50b0JpbmFyeShpbnB1dCwgb3B0LmJpbmFyeU9wdGlvbnMpLmJ1ZmZlcixcbiAgICAgIGRlZkhlYWRlciA9IG5ldyBEZWZlcnJlZDxScGNNZXRhZGF0YT4oKSxcbiAgICAgIGRlZk1lc3NhZ2UgPSBuZXcgRGVmZXJyZWQ8Tz4oKSxcbiAgICAgIGRlZlN0YXR1cyA9IG5ldyBEZWZlcnJlZDxScGNTdGF0dXM+KCksXG4gICAgICBkZWZUcmFpbGVyID0gbmV3IERlZmVycmVkPFJwY01ldGFkYXRhPigpLFxuICAgICAgY2FuY2VsbGF0aW9uVG9rZW4gPSBuZXcgU3ViamVjdDx2b2lkPigpLFxuICAgICAgY2FuY2VsbGF0aW9uUmVxdWVzdGVkID0gZmFsc2U7XG5cbiAgICB0aGlzLmh0dHAucmVxdWVzdCgnUE9TVCcsIHVybCwge1xuICAgICAgYm9keTogcmVxdWVzdEJvZHksXG4gICAgICBoZWFkZXJzOiBjcmVhdGVUd2lycFJlcXVlc3RIZWFkZXIoISFvcHQuc2VuZEpzb24sIG9wdC5tZXRhKSxcbiAgICAgIHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiLFxuICAgICAgb2JzZXJ2ZTogXCJyZXNwb25zZVwiLFxuICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKGNhbmNlbGxhdGlvblRva2VuKVxuICAgICAgKVxuICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAudGhlbihuZ1Jlc3BvbnNlID0+IHtcblxuICAgICAgICBpZiAobmdSZXNwb25zZSA9PT0gdW5kZWZpbmVkICYmIGNhbmNlbGxhdGlvblJlcXVlc3RlZClcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICAgIGRlZkhlYWRlci5yZXNvbHZlKHBhcnNlTWV0YWRhdGFGcm9tUmVzcG9uc2VIZWFkZXJzKG5nUmVzcG9uc2UuaGVhZGVycykpO1xuXG4gICAgICAgIGlmICghbmdSZXNwb25zZS5ib2R5KVxuICAgICAgICAgIHRocm93IG5ldyBScGNFcnJvcigncHJlbWF0dXJlIGVuZCBvZiByZXNwb25zZScsIFR3aXJwRXJyb3JDb2RlW1R3aXJwRXJyb3JDb2RlLmRhdGFsb3NzXSk7XG5cbiAgICAgICAgaWYgKCFuZ1Jlc3BvbnNlLm9rKVxuICAgICAgICAgIHRocm93IHBhcnNlVHdpcnBFcnJvclJlc3BvbnNlKG5nUmVzcG9uc2UuYm9keSk7XG5cbiAgICAgICAgaWYgKG9wdC5zZW5kSnNvbikge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gbWV0aG9kLk8uZnJvbUpzb25TdHJpbmcodXRmOHJlYWQobmV3IFVpbnQ4QXJyYXkobmdSZXNwb25zZS5ib2R5KSksIG9wdC5qc29uT3B0aW9ucyk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFJwY0Vycm9yKCd1bmFibGUgdG8gcmVhZCByZXNwb25zZSBib2R5IGFzIGpzb24nLCBUd2lycEVycm9yQ29kZVtUd2lycEVycm9yQ29kZS5kYXRhbG9zc10pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIG1ldGhvZC5PLmZyb21CaW5hcnkobmV3IFVpbnQ4QXJyYXkobmdSZXNwb25zZS5ib2R5KSwgb3B0LmJpbmFyeU9wdGlvbnMpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFJwY0Vycm9yKCd1bmFibGUgdG8gcmVhZCByZXNwb25zZSBib2R5JywgVHdpcnBFcnJvckNvZGVbVHdpcnBFcnJvckNvZGUuZGF0YWxvc3NdKTtcbiAgICAgICAgfVxuXG4gICAgICB9LCByZWFzb24gPT4ge1xuICAgICAgICBpZiAocmVhc29uIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICBpZiAocmVhc29uLmVycm9yIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpXG4gICAgICAgICAgICB0aHJvdyBwYXJzZVR3aXJwRXJyb3JSZXNwb25zZShyZWFzb24uZXJyb3IpO1xuICAgICAgICAgIHRocm93IG5ldyBScGNFcnJvcihyZWFzb24ubWVzc2FnZSwgVHdpcnBFcnJvckNvZGVbVHdpcnBFcnJvckNvZGUudW5rbm93bl0pO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBScGNFcnJvcihcInVua25vd24gZXJyb3JcIiwgVHdpcnBFcnJvckNvZGVbVHdpcnBFcnJvckNvZGUudW5rbm93bl0pO1xuICAgICAgfSlcblxuICAgICAgLnRoZW4obWVzc2FnZSA9PiB7XG4gICAgICAgIGlmIChtZXNzYWdlID09PSB1bmRlZmluZWQgJiYgY2FuY2VsbGF0aW9uUmVxdWVzdGVkKVxuICAgICAgICAgIHRocm93IG5ldyBScGNFcnJvcihcInJlcXVlc3QgY2FuY2VsbGVkXCIsIFR3aXJwRXJyb3JDb2RlW1R3aXJwRXJyb3JDb2RlLmNhbmNlbGxlZF0pO1xuICAgICAgICBkZWZNZXNzYWdlLnJlc29sdmUobWVzc2FnZSk7XG4gICAgICAgIGRlZlN0YXR1cy5yZXNvbHZlKHtjb2RlOiAnT0snLCBkZXRhaWw6ICcnfSk7XG4gICAgICAgIGRlZlRyYWlsZXIucmVzb2x2ZSh7fSk7XG5cbiAgICAgIH0pXG5cbiAgICAgIC5jYXRjaCgocmVhc29uOiBhbnkpID0+IHtcbiAgICAgICAgLy8gUnBjRXJyb3JzIGFyZSB0aHJvd24gYnkgdXMsIGV2ZXJ5dGhpbmcgZWxzZSBpcyBhbiBpbnRlcm5hbCBlcnJvclxuICAgICAgICBsZXQgZXJyb3IgPSByZWFzb24gaW5zdGFuY2VvZiBScGNFcnJvciA/IHJlYXNvblxuICAgICAgICAgIDogbmV3IFJwY0Vycm9yKHJlYXNvbiBpbnN0YW5jZW9mIEVycm9yID8gcmVhc29uLm1lc3NhZ2UgOiByZWFzb24sIFR3aXJwRXJyb3JDb2RlW1R3aXJwRXJyb3JDb2RlLmludGVybmFsXSk7XG4gICAgICAgIGRlZkhlYWRlci5yZWplY3RQZW5kaW5nKGVycm9yKTtcbiAgICAgICAgZGVmTWVzc2FnZS5yZWplY3RQZW5kaW5nKGVycm9yKTtcbiAgICAgICAgZGVmU3RhdHVzLnJlamVjdFBlbmRpbmcoZXJyb3IpO1xuICAgICAgICBkZWZUcmFpbGVyLnJlamVjdFBlbmRpbmcoZXJyb3IpO1xuICAgICAgfSk7XG5cbiAgICByZXR1cm4gbmV3IFVuYXJ5Q2FsbDxJLCBPPihcbiAgICAgIG1ldGhvZCxcbiAgICAgIG9wdC5tZXRhID8/IHt9LFxuICAgICAgaW5wdXQsXG4gICAgICBkZWZIZWFkZXIucHJvbWlzZSxcbiAgICAgIGRlZk1lc3NhZ2UucHJvbWlzZSxcbiAgICAgIGRlZlN0YXR1cy5wcm9taXNlLFxuICAgICAgZGVmVHJhaWxlci5wcm9taXNlLFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjYW5jZWxsYXRpb25SZXF1ZXN0ZWQgPSB0cnVlO1xuICAgICAgICBjYW5jZWxsYXRpb25Ub2tlbi5uZXh0KCk7XG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gVVJJIGZvciBhIFJQQyBjYWxsLlxuICAgKlxuICAgKiBUYWtlcyB0aGUgYGJhc2VVcmxgIG9wdGlvbiBhbmQgYXBwZW5kczpcbiAgICogLSBzbGFzaCBcIi9cIlxuICAgKiAtIHBhY2thZ2UgbmFtZVxuICAgKiAtIGRvdCBcIi5cIlxuICAgKiAtIHNlcnZpY2UgbmFtZVxuICAgKiAtIHNsYXNoIFwiL1wiXG4gICAqIC0gbWV0aG9kIG5hbWVcbiAgICpcbiAgICogSWYgdGhlIHNlcnZpY2Ugd2FzIGRlY2xhcmVkIHdpdGhvdXQgYSBwYWNrYWdlLCB0aGUgcGFja2FnZSBuYW1lIGFuZCBkb3RcbiAgICogYXJlIG9taXR0ZWQuXG4gICAqXG4gICAqIFRoZSBtZXRob2QgbmFtZSBpcyBDYW1lbENhc2VkIGp1c3QgYXMgaXQgd291bGQgYmUgaW4gR28sIHVubGVzcyB0aGVcbiAgICogb3B0aW9uIGB1c2VQcm90b01ldGhvZE5hbWVgIGlzIGB0cnVlYC5cbiAgICovXG4gIHByb3RlY3RlZCBtYWtlVXJsKG1ldGhvZDogTWV0aG9kSW5mbywgb3B0aW9uczogVHdpcnBPcHRpb25zKTogc3RyaW5nIHtcbiAgICBsZXQgYmFzZSA9IG9wdGlvbnMuYmFzZVVybDtcbiAgICBpZiAoYmFzZS5lbmRzV2l0aCgnLycpKVxuICAgICAgYmFzZSA9IGJhc2Uuc3Vic3RyaW5nKDAsIGJhc2UubGVuZ3RoIC0gMSk7XG4gICAgbGV0IG1ldGhvZE5hbWUgPSBtZXRob2QubmFtZTtcbiAgICBpZiAob3B0aW9ucy51c2VQcm90b01ldGhvZE5hbWUgIT09IHRydWUpIHtcbiAgICAgIG1ldGhvZE5hbWUgPSBsb3dlckNhbWVsQ2FzZShtZXRob2ROYW1lKTtcbiAgICAgIG1ldGhvZE5hbWUgPSBtZXRob2ROYW1lLnN1YnN0cmluZygwLCAxKS50b1VwcGVyQ2FzZSgpICsgbWV0aG9kTmFtZS5zdWJzdHJpbmcoMSk7XG4gICAgfVxuICAgIHJldHVybiBgJHtiYXNlfS8ke21ldGhvZC5zZXJ2aWNlLnR5cGVOYW1lfS8ke21ldGhvZE5hbWV9YDtcbiAgfVxuXG5cbiAgY2xpZW50U3RyZWFtaW5nPEkgZXh0ZW5kcyBvYmplY3QsIE8gZXh0ZW5kcyBvYmplY3Q+KC8qc2VydmljZTogU2VydmljZUluZm8sIG1ldGhvZDogTWV0aG9kSW5mbzxJLCBPPiwgb3B0aW9uczogUnBjT3B0aW9ucyovKTogQ2xpZW50U3RyZWFtaW5nQ2FsbDxJLCBPPiB7XG4gICAgdGhyb3cgbmV3IFJwY0Vycm9yKCdDbGllbnQgc3RyZWFtaW5nIGlzIG5vdCBzdXBwb3J0ZWQgYnkgVHdpcnAnLCBUd2lycEVycm9yQ29kZVtUd2lycEVycm9yQ29kZS51bmltcGxlbWVudGVkXSk7XG4gIH1cblxuICBkdXBsZXg8SSBleHRlbmRzIG9iamVjdCwgTyBleHRlbmRzIG9iamVjdD4oLypzZXJ2aWNlOiBTZXJ2aWNlSW5mbywgbWV0aG9kOiBNZXRob2RJbmZvPEksIE8+LCBvcHRpb25zOiBScGNPcHRpb25zKi8pOiBEdXBsZXhTdHJlYW1pbmdDYWxsPEksIE8+IHtcbiAgICB0aHJvdyBuZXcgUnBjRXJyb3IoJ0R1cGxleCBzdHJlYW1pbmcgaXMgbm90IHN1cHBvcnRlZCBieSBUd2lycCcsIFR3aXJwRXJyb3JDb2RlW1R3aXJwRXJyb3JDb2RlLnVuaW1wbGVtZW50ZWRdKTtcbiAgfVxuXG4gIHNlcnZlclN0cmVhbWluZzxJIGV4dGVuZHMgb2JqZWN0LCBPIGV4dGVuZHMgb2JqZWN0PigvKnNlcnZpY2U6IFNlcnZpY2VJbmZvLCBtZXRob2Q6IE1ldGhvZEluZm88SSwgTz4sIGlucHV0OiBJLCBvcHRpb25zPzogUnBjT3B0aW9ucyovKTogU2VydmVyU3RyZWFtaW5nQ2FsbDxJLCBPPiB7XG4gICAgdGhyb3cgbmV3IFJwY0Vycm9yKCdTZXJ2ZXIgc3RyZWFtaW5nIGlzIG5vdCBzdXBwb3J0ZWQgYnkgVHdpcnAnLCBUd2lycEVycm9yQ29kZVtUd2lycEVycm9yQ29kZS51bmltcGxlbWVudGVkXSk7XG4gIH1cblxufVxuXG5cbi8qKlxuICogQ3JlYXRlIEFuZ3VsYXIgaGVhZGVycyBmb3IgYSBUd2lycCByZXF1ZXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHdpcnBSZXF1ZXN0SGVhZGVyKHNlbmRKc29uOiBib29sZWFuLCBtZXRhPzogUnBjTWV0YWRhdGEpOiBIdHRwSGVhZGVycyB7XG4gIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gIC8vIGFkZCBtZXRhIGFzIGhlYWRlcnNcbiAgaWYgKG1ldGEpIHtcbiAgICBmb3IgKGxldCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMobWV0YSkpIHtcbiAgICAgIGlmICh0eXBlb2YgdiA9PSBcInN0cmluZ1wiKVxuICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5hcHBlbmQoaywgdik7XG4gICAgICBlbHNlXG4gICAgICAgIGZvciAobGV0IGkgb2YgdilcbiAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5hcHBlbmQoaywgaSk7XG4gICAgfVxuICB9XG4gIC8vIHNldCBzdGFuZGFyZCBoZWFkZXJzIChwb3NzaWJseSBvdmVyd3JpdGluZyBtZXRhKVxuICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0NvbnRlbnQtVHlwZScsIHNlbmRKc29uID8gXCJhcHBsaWNhdGlvbi9qc29uXCIgOiBcImFwcGxpY2F0aW9uL3Byb3RvYnVmXCIpO1xuICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIHNlbmRKc29uID8gXCJhcHBsaWNhdGlvbi9qc29uXCIgOiBcImFwcGxpY2F0aW9uL3Byb3RvYnVmLCBhcHBsaWNhdGlvbi9qc29uXCIpO1xuICByZXR1cm4gaGVhZGVycztcbn1cblxuXG4vKipcbiAqIFBhcnNlIFR3aXJwIGVycm9yIG1lc3NhZ2UgZnJvbSBKU09OIChnaXZlbiBhcyBhcnJheSBidWZmZXIpIGFuZCBjcmVhdGVcbiAqIFJwY0Vycm9yIGZyb20gdGhlIFR3aXJwIGVycm9yLlxuICpcbiAqIHNlZSBodHRwczovL3R3aXRjaHR2LmdpdGh1Yi5pby90d2lycC9kb2NzL3NwZWNfdjUuaHRtbFxuICovXG5mdW5jdGlvbiBwYXJzZVR3aXJwRXJyb3JSZXNwb25zZShkYXRhOiBBcnJheUJ1ZmZlcik6IFJwY0Vycm9yIHtcbiAgbGV0IGpzb246IEpzb25WYWx1ZTtcbiAgdHJ5IHtcbiAgICBqc29uID0gSlNPTi5wYXJzZSh1dGY4cmVhZChuZXcgVWludDhBcnJheShkYXRhKSkpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIG5ldyBScGNFcnJvcignY2Fubm90IHJlYWQgdHdpcnAgZXJyb3IgcmVzcG9uc2UnLCBUd2lycEVycm9yQ29kZVtUd2lycEVycm9yQ29kZS5pbnRlcm5hbF0pO1xuICB9XG4gIGlmICghaXNKc29uT2JqZWN0KGpzb24pIHx8IHR5cGVvZiBqc29uLmNvZGUgIT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIGpzb24ubXNnICE9PSBcInN0cmluZ1wiKVxuICAgIHJldHVybiBuZXcgUnBjRXJyb3IoJ2Nhbm5vdCByZWFkIHR3aXJwIGVycm9yIHJlc3BvbnNlJywgVHdpcnBFcnJvckNvZGVbVHdpcnBFcnJvckNvZGUuaW50ZXJuYWxdKTtcbiAgbGV0IG1ldGE6IFJwY01ldGFkYXRhID0ge307XG4gIGlmIChpc0pzb25PYmplY3QoanNvbi5tZXRhKSkge1xuICAgIGZvciAobGV0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhqc29uLm1ldGEpKSB7XG4gICAgICBpZiAodHlwZW9mIHYgPT0gXCJzdHJpbmdcIilcbiAgICAgICAgbWV0YVtrXSA9IHY7XG4gICAgfVxuICB9XG4gIHJldHVybiBuZXcgUnBjRXJyb3IoanNvbi5tc2csIGpzb24uY29kZSwgbWV0YSk7XG59XG5cblxuLyoqXG4gKiBQYXJzZXMgQW5ndWxhciByZXNwb25zZSBoZWFkZXJzIHRvIFJwY01ldGFEYXRhLlxuICogRHJvcHMgdGhlIGhlYWRlcnMgQ29udGVudC1UeXBlIGFuZCBDb250ZW50LUxlbmd0aC5cbiAqL1xuZnVuY3Rpb24gcGFyc2VNZXRhZGF0YUZyb21SZXNwb25zZUhlYWRlcnMoaGVhZGVyczogSHR0cEhlYWRlcnMpOiBScGNNZXRhZGF0YSB7XG4gIGxldCBtZXRhOiBScGNNZXRhZGF0YSA9IHt9O1xuICBmb3IgKGxldCBrZXkgb2YgaGVhZGVycy5rZXlzKCkpIHtcbiAgICBpZiAoa2V5LnRvTG93ZXJDYXNlKCkgPT09ICdjb250ZW50LXR5cGUnKVxuICAgICAgY29udGludWU7XG4gICAgaWYgKGtleS50b0xvd2VyQ2FzZSgpID09PSAnY29udGVudC1sZW5ndGgnKVxuICAgICAgY29udGludWU7XG4gICAgbGV0IHZhbHVlcyA9IGhlYWRlcnMuZ2V0QWxsKGtleSk7XG4gICAgaWYgKCF2YWx1ZXMpXG4gICAgICBjb250aW51ZTtcbiAgICBmb3IgKGxldCB2YWwgb2YgdmFsdWVzKSB7XG4gICAgICBpZiAobWV0YS5oYXNPd25Qcm9wZXJ0eShrZXkpKVxuICAgICAgICAobWV0YVtrZXldIGFzIHN0cmluZ1tdKS5wdXNoKHZhbCk7XG4gICAgICBlbHNlXG4gICAgICAgIG1ldGFba2V5XSA9IHZhbDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1ldGE7XG59XG5cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdpcnAtdHJhbnNwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R3aXJwLXRyYW5zcG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEYsT0FBTyxFQUVMLFFBQVEsRUFFUix1QkFBdUIsRUFFdkIsUUFBUSxFQU1SLFNBQVMsRUFDVixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBQyxZQUFZLEVBQWEsY0FBYyxFQUFFLFFBQVEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUMsY0FBYyxFQUFlLE1BQU0sOEJBQThCLENBQUM7QUFDMUUsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR3pDOzs7Ozs7Ozs7O0dBVUc7QUFFSCxNQUFNLE9BQU8sY0FBYztJQUt6QixZQUE2QyxPQUFxQixFQUFFLElBQWdCO1FBQ2xGLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRCxZQUFZLENBQUMsT0FBNkI7UUFDeEMsT0FBTyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxLQUFLLENBQXFDLE1BQWtCLEVBQUUsS0FBUSxFQUFFLE9BQW1COztRQUN6RixJQUFJLEdBQUcsR0FBRyxP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QztBQUdEOzs7R0FHRztBQUNILFNBQVMsZ0NBQWdDLENBQUMsT0FBb0I7SUFDNUQsSUFBSSxJQUFJLEdBQWdCLEVBQUUsQ0FBQztJQUMzQixLQUFLLElBQUksR0FBRyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUM5QixJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxjQUFjO1lBQ3RDLFNBQVM7UUFDWCxJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxnQkFBZ0I7WUFDeEMsU0FBUztRQUNYLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU07WUFDVCxTQUFTO1FBQ1gsS0FBSyxJQUFJLEdBQUcsSUFBSSxNQUFNLEVBQUU7WUFDdEIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQztnQkFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzs7Z0JBRWxDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7U0FDbkI7S0FDRjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBIZWFkZXJzfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7XG4gIENsaWVudFN0cmVhbWluZ0NhbGwsXG4gIERlZmVycmVkLFxuICBEdXBsZXhTdHJlYW1pbmdDYWxsLFxuICBtZXJnZUV4dGVuZGVkUnBjT3B0aW9ucyxcbiAgTWV0aG9kSW5mbyxcbiAgUnBjRXJyb3IsXG4gIFJwY01ldGFkYXRhLFxuICBScGNPcHRpb25zLFxuICBScGNTdGF0dXMsXG4gIFJwY1RyYW5zcG9ydCxcbiAgU2VydmVyU3RyZWFtaW5nQ2FsbCxcbiAgVW5hcnlDYWxsXG59IGZyb20gXCJAcHJvdG9idWYtdHMvcnVudGltZS1ycGNcIjtcbmltcG9ydCB7aXNKc29uT2JqZWN0LCBKc29uVmFsdWUsIGxvd2VyQ2FtZWxDYXNlLCB1dGY4cmVhZH0gZnJvbSBcIkBwcm90b2J1Zi10cy9ydW50aW1lXCI7XG5pbXBvcnQge2Zyb21FdmVudCwgTkVWRVIsIG9mfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtUd2lycEVycm9yQ29kZSwgVHdpcnBPcHRpb25zfSBmcm9tIFwiQHByb3RvYnVmLXRzL3R3aXJwLXRyYW5zcG9ydFwiO1xuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1RXSVJQX1RSQU5TUE9SVF9PUFRJT05TfSBmcm9tIFwiLi90d2lycC10cmFuc3BvcnQtb3B0aW9uc1wiO1xuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5cbi8qKlxuICogSW1wbGVtZW50cyB0aGUgVHdpcnAgcHJvdG9jb2wsIHN1cHBvcnRpbmcgSlNPTiBvciBiaW5hcnkgZm9ybWF0IG9uXG4gKiB0aGUgd2lyZS4gU2VlIGh0dHBzOi8vdHdpdGNodHYuZ2l0aHViLmlvL3R3aXJwL2RvY3Mvc3BlY192NS5odG1sXG4gKlxuICogVXNlcyBgSHR0cENsaWVudGAgb2YgQGFuZ3VsYXIvY29tbW9uL2h0dHAgZm9yIHJlcXVlc3RzLlxuICpcbiAqIFRoaXMgaXMgYW4gaW5qZWN0YWJsZSBzZXJ2aWNlLiBUbyBpbmplY3QsIHlvdSBtdXN0IHByb3ZpZGUgdGhlXG4gKiBpbmplY3Rpb24gdG9rZW4gVFdJUlBfVFJBTlNQT1JUX09QVElPTlMuIEZvciBlYXN5IGludGVncmF0aW9uLFxuICoganVzdCBhZGQgVHdpcnBBbmd1bGFyTW9kdWxlLmZvclJvb3QoKSB0byB0aGUgXCJpbXBvcnRzXCIgb2YgeW91clxuICogYEFwcENvbXBvbmVudGAuIFRoZSBtZXRob2QgdGFrZXMgYSBgVHdpcnBPcHRpb25zYCBhcmd1bWVudC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFR3aXJwVHJhbnNwb3J0IGltcGxlbWVudHMgUnBjVHJhbnNwb3J0IHtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVmYXVsdE9wdGlvbnM6IFR3aXJwT3B0aW9ucztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQ7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChUV0lSUF9UUkFOU1BPUlRfT1BUSU9OUykgb3B0aW9uczogVHdpcnBPcHRpb25zLCBodHRwOiBIdHRwQ2xpZW50KSB7XG4gICAgdGhpcy5kZWZhdWx0T3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5odHRwID0gaHR0cDtcbiAgfVxuXG4gIG1lcmdlT3B0aW9ucyhvcHRpb25zPzogUGFydGlhbDxScGNPcHRpb25zPik6IFJwY09wdGlvbnMge1xuICAgIHJldHVybiBtZXJnZUV4dGVuZGVkUnBjT3B0aW9ucyh0aGlzLmRlZmF1bHRPcHRpb25zLCBvcHRpb25zKTtcbiAgfVxuXG4gIHVuYXJ5PEkgZXh0ZW5kcyBvYmplY3QsIE8gZXh0ZW5kcyBvYmplY3Q+KG1ldGhvZDogTWV0aG9kSW5mbywgaW5wdXQ6IEksIG9wdGlvbnM6IFJwY09wdGlvbnMpOiBVbmFyeUNhbGw8SSwgTz4ge1xuICAgIGxldCBvcHQgPSBvcHRpb25zIGFzIFR3aXJwT3B0aW9ucyxcbiAgICAgIHVybCA9IHRoaXMubWFrZVVybChtZXRob2QsIG9wdCksXG4gICAgICByZXF1ZXN0Qm9keSA9IG9wdC5zZW5kSnNvbiA/IG1ldGhvZC5JLnRvSnNvblN0cmluZyhpbnB1dCwgb3B0Lmpzb25PcHRpb25zKSA6IG1ldGhvZC5JLnRvQmluYXJ5KGlucHV0LCBvcHQuYmluYXJ5T3B0aW9ucykuYnVmZmVyLFxuICAgICAgZGVmSGVhZGVyID0gbmV3IERlZmVycmVkPFJwY01ldGFkYXRhPigpLFxuICAgICAgZGVmTWVzc2FnZSA9IG5ldyBEZWZlcnJlZDxPPigpLFxuICAgICAgZGVmU3RhdHVzID0gbmV3IERlZmVycmVkPFJwY1N0YXR1cz4oKSxcbiAgICAgIGRlZlRyYWlsZXIgPSBuZXcgRGVmZXJyZWQ8UnBjTWV0YWRhdGE+KCksXG4gICAgICBhYm9ydE9ic2VydmFibGUgPSAhb3B0aW9ucy5hYm9ydCA/IE5FVkVSIDogKFxuICAgICAgICBvcHRpb25zLmFib3J0LmFib3J0ZWRcbiAgICAgICAgICA/IG9mKHVuZGVmaW5lZClcbiAgICAgICAgICA6IGZyb21FdmVudChvcHRpb25zLmFib3J0LCBcImFib3J0XCIpXG4gICAgICApO1xuXG4gICAgdGhpcy5odHRwLnJlcXVlc3QoJ1BPU1QnLCB1cmwsIHtcbiAgICAgIGJvZHk6IHJlcXVlc3RCb2R5LFxuICAgICAgaGVhZGVyczogY3JlYXRlVHdpcnBSZXF1ZXN0SGVhZGVyKCEhb3B0LnNlbmRKc29uLCBvcHQubWV0YSksXG4gICAgICByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIixcbiAgICAgIG9ic2VydmU6IFwicmVzcG9uc2VcIixcbiAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbChhYm9ydE9ic2VydmFibGUpXG4gICAgICApXG4gICAgICAudG9Qcm9taXNlKClcbiAgICAgIC50aGVuKG5nUmVzcG9uc2UgPT4ge1xuXG4gICAgICAgIGlmIChuZ1Jlc3BvbnNlID09PSB1bmRlZmluZWQgJiYgb3B0aW9ucy5hYm9ydD8uYWJvcnRlZClcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICAgIGRlZkhlYWRlci5yZXNvbHZlKHBhcnNlTWV0YWRhdGFGcm9tUmVzcG9uc2VIZWFkZXJzKG5nUmVzcG9uc2UuaGVhZGVycykpO1xuXG4gICAgICAgIGlmICghbmdSZXNwb25zZS5ib2R5KVxuICAgICAgICAgIHRocm93IG5ldyBScGNFcnJvcigncHJlbWF0dXJlIGVuZCBvZiByZXNwb25zZScsIFR3aXJwRXJyb3JDb2RlW1R3aXJwRXJyb3JDb2RlLmRhdGFsb3NzXSk7XG5cbiAgICAgICAgaWYgKCFuZ1Jlc3BvbnNlLm9rKVxuICAgICAgICAgIHRocm93IHBhcnNlVHdpcnBFcnJvclJlc3BvbnNlKG5nUmVzcG9uc2UuYm9keSk7XG5cbiAgICAgICAgaWYgKG9wdC5zZW5kSnNvbikge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gbWV0aG9kLk8uZnJvbUpzb25TdHJpbmcodXRmOHJlYWQobmV3IFVpbnQ4QXJyYXkobmdSZXNwb25zZS5ib2R5KSksIG9wdC5qc29uT3B0aW9ucyk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFJwY0Vycm9yKCd1bmFibGUgdG8gcmVhZCByZXNwb25zZSBib2R5IGFzIGpzb24nLCBUd2lycEVycm9yQ29kZVtUd2lycEVycm9yQ29kZS5kYXRhbG9zc10pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIG1ldGhvZC5PLmZyb21CaW5hcnkobmV3IFVpbnQ4QXJyYXkobmdSZXNwb25zZS5ib2R5KSwgb3B0LmJpbmFyeU9wdGlvbnMpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFJwY0Vycm9yKCd1bmFibGUgdG8gcmVhZCByZXNwb25zZSBib2R5JywgVHdpcnBFcnJvckNvZGVbVHdpcnBFcnJvckNvZGUuZGF0YWxvc3NdKTtcbiAgICAgICAgfVxuXG4gICAgICB9LCByZWFzb24gPT4ge1xuICAgICAgICBpZiAocmVhc29uIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICBpZiAocmVhc29uLmVycm9yIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpXG4gICAgICAgICAgICB0aHJvdyBwYXJzZVR3aXJwRXJyb3JSZXNwb25zZShyZWFzb24uZXJyb3IpO1xuICAgICAgICAgIHRocm93IG5ldyBScGNFcnJvcihyZWFzb24ubWVzc2FnZSwgVHdpcnBFcnJvckNvZGVbVHdpcnBFcnJvckNvZGUudW5rbm93bl0pO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBScGNFcnJvcihcInVua25vd24gZXJyb3JcIiwgVHdpcnBFcnJvckNvZGVbVHdpcnBFcnJvckNvZGUudW5rbm93bl0pO1xuICAgICAgfSlcblxuICAgICAgLnRoZW4obWVzc2FnZSA9PiB7XG4gICAgICAgIGlmIChtZXNzYWdlID09PSB1bmRlZmluZWQgJiYgIG9wdGlvbnMuYWJvcnQ/LmFib3J0ZWQpXG4gICAgICAgICAgdGhyb3cgbmV3IFJwY0Vycm9yKFwicmVxdWVzdCBjYW5jZWxsZWRcIiwgVHdpcnBFcnJvckNvZGVbVHdpcnBFcnJvckNvZGUuY2FuY2VsbGVkXSk7XG4gICAgICAgIGRlZk1lc3NhZ2UucmVzb2x2ZShtZXNzYWdlKTtcbiAgICAgICAgZGVmU3RhdHVzLnJlc29sdmUoe2NvZGU6ICdPSycsIGRldGFpbDogJyd9KTtcbiAgICAgICAgZGVmVHJhaWxlci5yZXNvbHZlKHt9KTtcblxuICAgICAgfSlcblxuICAgICAgLmNhdGNoKChyZWFzb246IGFueSkgPT4ge1xuICAgICAgICAvLyBScGNFcnJvcnMgYXJlIHRocm93biBieSB1cywgZXZlcnl0aGluZyBlbHNlIGlzIGFuIGludGVybmFsIGVycm9yXG4gICAgICAgIGxldCBlcnJvciA9IHJlYXNvbiBpbnN0YW5jZW9mIFJwY0Vycm9yID8gcmVhc29uXG4gICAgICAgICAgOiBuZXcgUnBjRXJyb3IocmVhc29uIGluc3RhbmNlb2YgRXJyb3IgPyByZWFzb24ubWVzc2FnZSA6IHJlYXNvbiwgVHdpcnBFcnJvckNvZGVbVHdpcnBFcnJvckNvZGUuaW50ZXJuYWxdKTtcbiAgICAgICAgZGVmSGVhZGVyLnJlamVjdFBlbmRpbmcoZXJyb3IpO1xuICAgICAgICBkZWZNZXNzYWdlLnJlamVjdFBlbmRpbmcoZXJyb3IpO1xuICAgICAgICBkZWZTdGF0dXMucmVqZWN0UGVuZGluZyhlcnJvcik7XG4gICAgICAgIGRlZlRyYWlsZXIucmVqZWN0UGVuZGluZyhlcnJvcik7XG4gICAgICB9KTtcblxuICAgIHJldHVybiBuZXcgVW5hcnlDYWxsPEksIE8+KFxuICAgICAgbWV0aG9kLFxuICAgICAgb3B0Lm1ldGEgPz8ge30sXG4gICAgICBpbnB1dCxcbiAgICAgIGRlZkhlYWRlci5wcm9taXNlLFxuICAgICAgZGVmTWVzc2FnZS5wcm9taXNlLFxuICAgICAgZGVmU3RhdHVzLnByb21pc2UsXG4gICAgICBkZWZUcmFpbGVyLnByb21pc2UsXG4gICAgKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBVUkkgZm9yIGEgUlBDIGNhbGwuXG4gICAqXG4gICAqIFRha2VzIHRoZSBgYmFzZVVybGAgb3B0aW9uIGFuZCBhcHBlbmRzOlxuICAgKiAtIHNsYXNoIFwiL1wiXG4gICAqIC0gcGFja2FnZSBuYW1lXG4gICAqIC0gZG90IFwiLlwiXG4gICAqIC0gc2VydmljZSBuYW1lXG4gICAqIC0gc2xhc2ggXCIvXCJcbiAgICogLSBtZXRob2QgbmFtZVxuICAgKlxuICAgKiBJZiB0aGUgc2VydmljZSB3YXMgZGVjbGFyZWQgd2l0aG91dCBhIHBhY2thZ2UsIHRoZSBwYWNrYWdlIG5hbWUgYW5kIGRvdFxuICAgKiBhcmUgb21pdHRlZC5cbiAgICpcbiAgICogVGhlIG1ldGhvZCBuYW1lIGlzIENhbWVsQ2FzZWQganVzdCBhcyBpdCB3b3VsZCBiZSBpbiBHbywgdW5sZXNzIHRoZVxuICAgKiBvcHRpb24gYHVzZVByb3RvTWV0aG9kTmFtZWAgaXMgYHRydWVgLlxuICAgKi9cbiAgcHJvdGVjdGVkIG1ha2VVcmwobWV0aG9kOiBNZXRob2RJbmZvLCBvcHRpb25zOiBUd2lycE9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGxldCBiYXNlID0gb3B0aW9ucy5iYXNlVXJsO1xuICAgIGlmIChiYXNlLmVuZHNXaXRoKCcvJykpXG4gICAgICBiYXNlID0gYmFzZS5zdWJzdHJpbmcoMCwgYmFzZS5sZW5ndGggLSAxKTtcbiAgICBsZXQgbWV0aG9kTmFtZSA9IG1ldGhvZC5uYW1lO1xuICAgIGlmIChvcHRpb25zLnVzZVByb3RvTWV0aG9kTmFtZSAhPT0gdHJ1ZSkge1xuICAgICAgbWV0aG9kTmFtZSA9IGxvd2VyQ2FtZWxDYXNlKG1ldGhvZE5hbWUpO1xuICAgICAgbWV0aG9kTmFtZSA9IG1ldGhvZE5hbWUuc3Vic3RyaW5nKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyBtZXRob2ROYW1lLnN1YnN0cmluZygxKTtcbiAgICB9XG4gICAgcmV0dXJuIGAke2Jhc2V9LyR7bWV0aG9kLnNlcnZpY2UudHlwZU5hbWV9LyR7bWV0aG9kTmFtZX1gO1xuICB9XG5cblxuICBjbGllbnRTdHJlYW1pbmc8SSBleHRlbmRzIG9iamVjdCwgTyBleHRlbmRzIG9iamVjdD4oLypzZXJ2aWNlOiBTZXJ2aWNlSW5mbywgbWV0aG9kOiBNZXRob2RJbmZvPEksIE8+LCBvcHRpb25zOiBScGNPcHRpb25zKi8pOiBDbGllbnRTdHJlYW1pbmdDYWxsPEksIE8+IHtcbiAgICB0aHJvdyBuZXcgUnBjRXJyb3IoJ0NsaWVudCBzdHJlYW1pbmcgaXMgbm90IHN1cHBvcnRlZCBieSBUd2lycCcsIFR3aXJwRXJyb3JDb2RlW1R3aXJwRXJyb3JDb2RlLnVuaW1wbGVtZW50ZWRdKTtcbiAgfVxuXG4gIGR1cGxleDxJIGV4dGVuZHMgb2JqZWN0LCBPIGV4dGVuZHMgb2JqZWN0PigvKnNlcnZpY2U6IFNlcnZpY2VJbmZvLCBtZXRob2Q6IE1ldGhvZEluZm88SSwgTz4sIG9wdGlvbnM6IFJwY09wdGlvbnMqLyk6IER1cGxleFN0cmVhbWluZ0NhbGw8SSwgTz4ge1xuICAgIHRocm93IG5ldyBScGNFcnJvcignRHVwbGV4IHN0cmVhbWluZyBpcyBub3Qgc3VwcG9ydGVkIGJ5IFR3aXJwJywgVHdpcnBFcnJvckNvZGVbVHdpcnBFcnJvckNvZGUudW5pbXBsZW1lbnRlZF0pO1xuICB9XG5cbiAgc2VydmVyU3RyZWFtaW5nPEkgZXh0ZW5kcyBvYmplY3QsIE8gZXh0ZW5kcyBvYmplY3Q+KC8qc2VydmljZTogU2VydmljZUluZm8sIG1ldGhvZDogTWV0aG9kSW5mbzxJLCBPPiwgaW5wdXQ6IEksIG9wdGlvbnM/OiBScGNPcHRpb25zKi8pOiBTZXJ2ZXJTdHJlYW1pbmdDYWxsPEksIE8+IHtcbiAgICB0aHJvdyBuZXcgUnBjRXJyb3IoJ1NlcnZlciBzdHJlYW1pbmcgaXMgbm90IHN1cHBvcnRlZCBieSBUd2lycCcsIFR3aXJwRXJyb3JDb2RlW1R3aXJwRXJyb3JDb2RlLnVuaW1wbGVtZW50ZWRdKTtcbiAgfVxuXG59XG5cblxuLyoqXG4gKiBDcmVhdGUgQW5ndWxhciBoZWFkZXJzIGZvciBhIFR3aXJwIHJlcXVlc3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUd2lycFJlcXVlc3RIZWFkZXIoc2VuZEpzb246IGJvb2xlYW4sIG1ldGE/OiBScGNNZXRhZGF0YSk6IEh0dHBIZWFkZXJzIHtcbiAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgLy8gYWRkIG1ldGEgYXMgaGVhZGVyc1xuICBpZiAobWV0YSkge1xuICAgIGZvciAobGV0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhtZXRhKSkge1xuICAgICAgaWYgKHR5cGVvZiB2ID09IFwic3RyaW5nXCIpXG4gICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLmFwcGVuZChrLCB2KTtcbiAgICAgIGVsc2VcbiAgICAgICAgZm9yIChsZXQgaSBvZiB2KVxuICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLmFwcGVuZChrLCBpKTtcbiAgICB9XG4gIH1cbiAgLy8gc2V0IHN0YW5kYXJkIGhlYWRlcnMgKHBvc3NpYmx5IG92ZXJ3cml0aW5nIG1ldGEpXG4gIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgc2VuZEpzb24gPyBcImFwcGxpY2F0aW9uL2pzb25cIiA6IFwiYXBwbGljYXRpb24vcHJvdG9idWZcIik7XG4gIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0Jywgc2VuZEpzb24gPyBcImFwcGxpY2F0aW9uL2pzb25cIiA6IFwiYXBwbGljYXRpb24vcHJvdG9idWYsIGFwcGxpY2F0aW9uL2pzb25cIik7XG4gIHJldHVybiBoZWFkZXJzO1xufVxuXG5cbi8qKlxuICogUGFyc2UgVHdpcnAgZXJyb3IgbWVzc2FnZSBmcm9tIEpTT04gKGdpdmVuIGFzIGFycmF5IGJ1ZmZlcikgYW5kIGNyZWF0ZVxuICogUnBjRXJyb3IgZnJvbSB0aGUgVHdpcnAgZXJyb3IuXG4gKlxuICogc2VlIGh0dHBzOi8vdHdpdGNodHYuZ2l0aHViLmlvL3R3aXJwL2RvY3Mvc3BlY192NS5odG1sXG4gKi9cbmZ1bmN0aW9uIHBhcnNlVHdpcnBFcnJvclJlc3BvbnNlKGRhdGE6IEFycmF5QnVmZmVyKTogUnBjRXJyb3Ige1xuICBsZXQganNvbjogSnNvblZhbHVlO1xuICB0cnkge1xuICAgIGpzb24gPSBKU09OLnBhcnNlKHV0ZjhyZWFkKG5ldyBVaW50OEFycmF5KGRhdGEpKSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gbmV3IFJwY0Vycm9yKCdjYW5ub3QgcmVhZCB0d2lycCBlcnJvciByZXNwb25zZScsIFR3aXJwRXJyb3JDb2RlW1R3aXJwRXJyb3JDb2RlLmludGVybmFsXSk7XG4gIH1cbiAgaWYgKCFpc0pzb25PYmplY3QoanNvbikgfHwgdHlwZW9mIGpzb24uY29kZSAhPT0gXCJzdHJpbmdcIiB8fCB0eXBlb2YganNvbi5tc2cgIT09IFwic3RyaW5nXCIpXG4gICAgcmV0dXJuIG5ldyBScGNFcnJvcignY2Fubm90IHJlYWQgdHdpcnAgZXJyb3IgcmVzcG9uc2UnLCBUd2lycEVycm9yQ29kZVtUd2lycEVycm9yQ29kZS5pbnRlcm5hbF0pO1xuICBsZXQgbWV0YTogUnBjTWV0YWRhdGEgPSB7fTtcbiAgaWYgKGlzSnNvbk9iamVjdChqc29uLm1ldGEpKSB7XG4gICAgZm9yIChsZXQgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKGpzb24ubWV0YSkpIHtcbiAgICAgIGlmICh0eXBlb2YgdiA9PSBcInN0cmluZ1wiKVxuICAgICAgICBtZXRhW2tdID0gdjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ldyBScGNFcnJvcihqc29uLm1zZywganNvbi5jb2RlLCBtZXRhKTtcbn1cblxuXG4vKipcbiAqIFBhcnNlcyBBbmd1bGFyIHJlc3BvbnNlIGhlYWRlcnMgdG8gUnBjTWV0YURhdGEuXG4gKiBEcm9wcyB0aGUgaGVhZGVycyBDb250ZW50LVR5cGUgYW5kIENvbnRlbnQtTGVuZ3RoLlxuICovXG5mdW5jdGlvbiBwYXJzZU1ldGFkYXRhRnJvbVJlc3BvbnNlSGVhZGVycyhoZWFkZXJzOiBIdHRwSGVhZGVycyk6IFJwY01ldGFkYXRhIHtcbiAgbGV0IG1ldGE6IFJwY01ldGFkYXRhID0ge307XG4gIGZvciAobGV0IGtleSBvZiBoZWFkZXJzLmtleXMoKSkge1xuICAgIGlmIChrZXkudG9Mb3dlckNhc2UoKSA9PT0gJ2NvbnRlbnQtdHlwZScpXG4gICAgICBjb250aW51ZTtcbiAgICBpZiAoa2V5LnRvTG93ZXJDYXNlKCkgPT09ICdjb250ZW50LWxlbmd0aCcpXG4gICAgICBjb250aW51ZTtcbiAgICBsZXQgdmFsdWVzID0gaGVhZGVycy5nZXRBbGwoa2V5KTtcbiAgICBpZiAoIXZhbHVlcylcbiAgICAgIGNvbnRpbnVlO1xuICAgIGZvciAobGV0IHZhbCBvZiB2YWx1ZXMpIHtcbiAgICAgIGlmIChtZXRhLmhhc093blByb3BlcnR5KGtleSkpXG4gICAgICAgIChtZXRhW2tleV0gYXMgc3RyaW5nW10pLnB1c2godmFsKTtcbiAgICAgIGVsc2VcbiAgICAgICAgbWV0YVtrZXldID0gdmFsO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbWV0YTtcbn1cblxuIl19

@@ -6,3 +6,3 @@ import { Pipe, Inject, LOCALE_ID, NgModule, InjectionToken, Injectable } from '@angular/core';

import { mergeExtendedRpcOptions, Deferred, RpcError, UnaryCall } from '@protobuf-ts/runtime-rpc';
import { Subject } from 'rxjs';
import { NEVER, of, fromEvent } from 'rxjs';
import { TwirpErrorCode } from '@protobuf-ts/twirp-transport';

@@ -132,3 +132,5 @@ import { takeUntil } from 'rxjs/operators';

var _a;
let opt = options, url = this.makeUrl(method, opt), requestBody = opt.sendJson ? method.I.toJsonString(input, opt.jsonOptions) : method.I.toBinary(input, opt.binaryOptions).buffer, defHeader = new Deferred(), defMessage = new Deferred(), defStatus = new Deferred(), defTrailer = new Deferred(), cancellationToken = new Subject(), cancellationRequested = false;
let opt = options, url = this.makeUrl(method, opt), requestBody = opt.sendJson ? method.I.toJsonString(input, opt.jsonOptions) : method.I.toBinary(input, opt.binaryOptions).buffer, defHeader = new Deferred(), defMessage = new Deferred(), defStatus = new Deferred(), defTrailer = new Deferred(), abortObservable = !options.abort ? NEVER : (options.abort.aborted
? of(undefined)
: fromEvent(options.abort, "abort"));
this.http.request('POST', url, {

@@ -140,6 +142,7 @@ body: requestBody,

})
.pipe(takeUntil(cancellationToken))
.pipe(takeUntil(abortObservable))
.toPromise()
.then(ngResponse => {
if (ngResponse === undefined && cancellationRequested)
var _a;
if (ngResponse === undefined && ((_a = options.abort) === null || _a === void 0 ? void 0 : _a.aborted))
return undefined;

@@ -174,3 +177,4 @@ defHeader.resolve(parseMetadataFromResponseHeaders(ngResponse.headers));

.then(message => {
if (message === undefined && cancellationRequested)
var _a;
if (message === undefined && ((_a = options.abort) === null || _a === void 0 ? void 0 : _a.aborted))
throw new RpcError("request cancelled", TwirpErrorCode[TwirpErrorCode.cancelled]);

@@ -190,6 +194,3 @@ defMessage.resolve(message);

});
return new UnaryCall(method, (_a = opt.meta) !== null && _a !== void 0 ? _a : {}, input, defHeader.promise, defMessage.promise, defStatus.promise, defTrailer.promise, () => {
cancellationRequested = true;
cancellationToken.next();
});
return new UnaryCall(method, (_a = opt.meta) !== null && _a !== void 0 ? _a : {}, input, defHeader.promise, defMessage.promise, defStatus.promise, defTrailer.promise);
}

@@ -196,0 +197,0 @@ /**

{
"name": "@protobuf-ts/runtime-angular",
"version": "1.0.5",
"description": "Runtime library for using protobuf-ts with angular",
"version": "1.0.6-alpha.0",
"description": "Runtime library for using the protoc plugin \"protobuf-ts\" with Angular",
"license": "Apache-2.0",

@@ -28,5 +28,5 @@ "author": "Timo Stamm <ts@timostamm.com>",

"@angular/core": ">=8.0.0 <=11.0.0",
"@protobuf-ts/runtime": "1.0.5",
"@protobuf-ts/runtime-rpc": "1.0.5",
"@protobuf-ts/twirp-transport": "1.0.5",
"@protobuf-ts/runtime": "1.0.6-alpha.0",
"@protobuf-ts/runtime-rpc": "1.0.6-alpha.0",
"@protobuf-ts/twirp-transport": "1.0.6-alpha.0",
"rxjs": "~6.5.5"

@@ -33,0 +33,0 @@ },

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc