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

@chatie/angular

Package Overview
Dependencies
Maintainers
2
Versions
62
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@chatie/angular - npm Package Compare versions

Comparing version 0.6.3 to 0.7.1

362

bundles/chatie-angular.umd.js
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs'), require('rxjs/operators'), require('brolog'), require('state-switch')) :
typeof define === 'function' && define.amd ? define('@chatie/angular', ['exports', '@angular/core', 'rxjs', 'rxjs/operators', 'brolog', 'state-switch'], factory) :
(global = global || self, factory((global.chatie = global.chatie || {}, global.chatie.angular = {}), global.ng.core, global.rxjs, global.rxjs.operators, global.brolog, global.stateSwitch));
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.chatie = global.chatie || {}, global.chatie.angular = {}), global.ng.core, global.rxjs, global.rxjs.operators, global.brolog, global.stateSwitch));
}(this, (function (exports, core, rxjs, operators, brolog, stateSwitch) { 'use strict';

@@ -22,10 +22,10 @@

/* global Reflect, Promise */
var extendStatics = function(d, b) {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
function (d, b) { for (var p in b)
if (Object.prototype.hasOwnProperty.call(b, p))
d[p] = b[p]; };
return extendStatics(d, b);
};
function __extends(d, b) {

@@ -36,8 +36,9 @@ extendStatics(d, b);

}
var __assign = function() {
var __assign = function () {
__assign = Object.assign || function __assign(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
for (var p in s)
if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}

@@ -48,7 +49,7 @@ return t;

};
function __rest(s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
for (var p in s)
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")

@@ -61,23 +62,34 @@ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {

}
function __decorate(decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
r = Reflect.decorate(decorators, target, key, desc);
else
for (var i = decorators.length - 1; i >= 0; i--)
if (d = decorators[i])
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
}
function __param(paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
return function (target, key) { decorator(target, key, paramIndex); };
}
function __metadata(metadataKey, metadataValue) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(metadataKey, metadataValue);
}
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function fulfilled(value) { try {
step(generator.next(value));
}
catch (e) {
reject(e);
} }
function rejected(value) { try {
step(generator["throw"](value));
}
catch (e) {
reject(e);
} }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }

@@ -87,69 +99,123 @@ step((generator = generator.apply(thisArg, _arguments || [])).next());

}
function __generator(thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
var _ = { label: 0, sent: function () { if (t[0] & 1)
throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
if (f)
throw new TypeError("Generator is already executing.");
while (_)
try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
return t;
if (y = 0, t)
op = [op[0] & 2, t.value];
switch (op[0]) {
case 0:
case 1:
t = op;
break;
case 4:
_.label++;
return { value: op[1], done: false };
case 5:
_.label++;
y = op[1];
op = [0];
continue;
case 7:
op = _.ops.pop();
_.trys.pop();
continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
_ = 0;
continue;
}
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
_.label = op[1];
break;
}
if (op[0] === 6 && _.label < t[1]) {
_.label = t[1];
t = op;
break;
}
if (t && _.label < t[2]) {
_.label = t[2];
_.ops.push(op);
break;
}
if (t[2])
_.ops.pop();
_.trys.pop();
continue;
}
op = body.call(thisArg, _);
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
catch (e) {
op = [6, e];
y = 0;
}
finally {
f = t = 0;
}
if (op[0] & 5)
throw op[1];
return { value: op[0] ? op[1] : void 0, done: true };
}
}
function __createBinding(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var __createBinding = Object.create ? (function (o, m, k, k2) {
if (k2 === undefined)
k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } });
}) : (function (o, m, k, k2) {
if (k2 === undefined)
k2 = k;
o[k2] = m[k];
});
function __exportStar(m, o) {
for (var p in m)
if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p))
__createBinding(o, m, p);
}
function __exportStar(m, exports) {
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) exports[p] = m[p];
}
function __values(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
if (m)
return m.call(o);
if (o && typeof o.length === "number")
return {
next: function () {
if (o && i >= o.length)
o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
}
function __read(o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
if (!m)
return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
ar.push(r.value);
}
catch (error) { e = { error: error }; }
catch (error) {
e = { error: error };
}
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
if (r && !r.done && (m = i["return"]))
m.call(i);
}
finally { if (e) throw e.error; }
finally {
if (e)
throw e.error;
}
}
return ar;
}
function __spread() {

@@ -160,5 +226,5 @@ for (var ar = [], i = 0; i < arguments.length; i++)

}
function __spreadArrays() {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var s = 0, i = 0, il = arguments.length; i < il; i++)
s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)

@@ -168,20 +234,26 @@ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)

return r;
};
}
;
function __await(v) {
return this instanceof __await ? (this.v = v, this) : new __await(v);
}
function __asyncGenerator(thisArg, _arguments, generator) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
if (!Symbol.asyncIterator)
throw new TypeError("Symbol.asyncIterator is not defined.");
var g = generator.apply(thisArg, _arguments || []), i, q = [];
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
function verb(n) { if (g[n])
i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
function resume(n, v) { try {
step(g[n](v));
}
catch (e) {
settle(q[0][3], e);
} }
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
function fulfill(value) { resume("next", value); }
function reject(value) { resume("throw", value); }
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
function settle(f, v) { if (f(v), q.shift(), q.length)
resume(q[0][0], q[0][1]); }
}
function __asyncDelegator(o) {

@@ -192,28 +264,39 @@ var i, p;

}
function __asyncValues(o) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
if (!Symbol.asyncIterator)
throw new TypeError("Symbol.asyncIterator is not defined.");
var m = o[Symbol.asyncIterator], i;
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); }
}
function __makeTemplateObject(cooked, raw) {
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
if (Object.defineProperty) {
Object.defineProperty(cooked, "raw", { value: raw });
}
else {
cooked.raw = raw;
}
return cooked;
}
;
var __setModuleDefault = Object.create ? (function (o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function (o, v) {
o["default"] = v;
};
function __importStar(mod) {
if (mod && mod.__esModule) return mod;
if (mod && mod.__esModule)
return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result.default = mod;
if (mod != null)
for (var k in mod)
if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
__createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
}
function __importDefault(mod) {
return (mod && mod.__esModule) ? mod : { default: mod };
}
function __classPrivateFieldGet(receiver, privateMap) {

@@ -225,3 +308,2 @@ if (!privateMap.has(receiver)) {

}
function __classPrivateFieldSet(receiver, privateMap, value) {

@@ -238,3 +320,3 @@ if (!privateMap.has(receiver)) {

*/
var VERSION = '0.6.3';
var VERSION = '0.7.1';

@@ -262,3 +344,3 @@ var ReadyState;

},
enumerable: true,
enumerable: false,
configurable: true

@@ -711,3 +793,3 @@ });

},
enumerable: true,
enumerable: false,
configurable: true

@@ -846,49 +928,37 @@ });

},
enumerable: true,
enumerable: false,
configurable: true
});
WechatyComponent.ctorParameters = function () { return [
{ type: brolog.Brolog },
{ type: core.NgZone }
]; };
__decorate([
core.Output()
], WechatyComponent.prototype, "message", void 0);
__decorate([
core.Output()
], WechatyComponent.prototype, "scan", void 0);
__decorate([
core.Output()
], WechatyComponent.prototype, "login", void 0);
__decorate([
core.Output()
], WechatyComponent.prototype, "logout", void 0);
__decorate([
core.Output()
], WechatyComponent.prototype, "error", void 0);
__decorate([
core.Output()
], WechatyComponent.prototype, "heartbeat", void 0);
__decorate([
core.Input()
], WechatyComponent.prototype, "token", null);
WechatyComponent = __decorate([
core.Component({
// tslint:disable-next-line:component-selector
selector: 'wechaty',
/**
* http://localhost:4200/app.component.html 404 (Not Found)
* zone.js:344 Unhandled Promise rejection: Failed to load app.component.html
* https://github.com/angular/angular-cli/issues/2592#issuecomment-266635266
* https://github.com/angular/angular-cli/issues/2293
*
* console.log from angular:
* If you're using Webpack you should inline the template and the styles,
* see https://goo.gl/X2J8zc.
*/
template: '<ng-content></ng-content>'
})
], WechatyComponent);
return WechatyComponent;
}());
WechatyComponent.decorators = [
{ type: core.Component, args: [{
// tslint:disable-next-line:component-selector
selector: 'wechaty',
/**
* http://localhost:4200/app.component.html 404 (Not Found)
* zone.js:344 Unhandled Promise rejection: Failed to load app.component.html
* https://github.com/angular/angular-cli/issues/2592#issuecomment-266635266
* https://github.com/angular/angular-cli/issues/2293
*
* console.log from angular:
* If you're using Webpack you should inline the template and the styles,
* see https://goo.gl/X2J8zc.
*/
template: '<ng-content></ng-content>'
},] }
];
WechatyComponent.ctorParameters = function () { return [
{ type: brolog.Brolog },
{ type: core.NgZone }
]; };
WechatyComponent.propDecorators = {
message: [{ type: core.Output }],
scan: [{ type: core.Output }],
login: [{ type: core.Output }],
logout: [{ type: core.Output }],
error: [{ type: core.Output }],
heartbeat: [{ type: core.Output }],
token: [{ type: core.Input }]
};

@@ -898,16 +968,20 @@ var WechatyModule = /** @class */ (function () {

}
WechatyModule = __decorate([
core.NgModule({
id: 'wechaty',
declarations: [
WechatyComponent,
],
exports: [
WechatyComponent,
],
})
], WechatyModule);
return WechatyModule;
}());
WechatyModule.decorators = [
{ type: core.NgModule, args: [{
id: 'wechaty',
declarations: [
WechatyComponent,
],
exports: [
WechatyComponent,
],
},] }
];
/**
* Generated bundle index. Do not edit.
*/
exports.VERSION = VERSION;

@@ -914,0 +988,0 @@ exports.WechatyComponent = WechatyComponent;

@@ -1,2 +0,2 @@

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("rxjs"),require("rxjs/operators"),require("brolog"),require("state-switch")):"function"==typeof define&&define.amd?define("@chatie/angular",["exports","@angular/core","rxjs","rxjs/operators","brolog","state-switch"],t):t(((e=e||self).chatie=e.chatie||{},e.chatie.angular={}),e.ng.core,e.rxjs,e.rxjs.operators,e.brolog,e.stateSwitch)}(this,(function(e,t,o,n,i,r){"use strict";
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("rxjs"),require("rxjs/operators"),require("brolog"),require("state-switch")):"function"==typeof define&&define.amd?define("@chatie/angular",["exports","@angular/core","rxjs","rxjs/operators","brolog","state-switch"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).chatie=e.chatie||{},e.chatie.angular={}),e.ng.core,e.rxjs,e.rxjs.operators,e.brolog,e.stateSwitch)}(this,(function(e,t,o,n,s,i){"use strict";
/*! *****************************************************************************

@@ -15,3 +15,3 @@ Copyright (c) Microsoft Corporation.

PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */function s(e,t,o,n){var i,r=arguments.length,s=r<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,o,s):i(t,o))||s);return r>3&&s&&Object.defineProperty(t,o,s),s}function a(e,t,o,n){return new(o||(o=Promise))((function(i,r){function s(e){try{c(n.next(e))}catch(e){r(e)}}function a(e){try{c(n.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))}function c(e,t){var o,n,i,r,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return r={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function a(r){return function(a){return function(r){if(o)throw new TypeError("Generator is already executing.");for(;s;)try{if(o=1,n&&(i=2&r[0]?n.return:r[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,r[1])).done)return i;switch(n=0,i&&(r=[2&r[0],i.value]),r[0]){case 0:case 1:i=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,n=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:if(!(i=s.trys,(i=i.length>0&&i[i.length-1])||6!==r[0]&&2!==r[0])){s=0;continue}if(3===r[0]&&(!i||r[1]>i[0]&&r[1]<i[3])){s.label=r[1];break}if(6===r[0]&&s.label<i[1]){s.label=i[1],i=r;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(r);break}i[2]&&s.ops.pop(),s.trys.pop();continue}r=t.call(e,s)}catch(e){r=[6,e],n=0}finally{o=i=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,a])}}}var h;!function(e){e[e.CLOSED=WebSocket.CLOSED]="CLOSED",e[e.CLOSING=WebSocket.CLOSING]="CLOSING",e[e.CONNECTING=WebSocket.CONNECTING]="CONNECTING",e[e.OPEN=WebSocket.OPEN]="OPEN"}(h||(h={}));var u=function(){function e(){this.autoReconnect=!0,this.log=i.Brolog.instance(),this.CONNECT_TIMEOUT=1e4,this.ENDPOINT="wss://api.chatie.io/v0/websocket/token/",this.PROTOCOL="web|0.0.1",this.sendBuffer=[],this.log.verbose("IoService","constructor()")}return Object.defineProperty(e.prototype,"readyState",{get:function(){return this._readyState.asObservable()},enumerable:!0,configurable:!0}),e.prototype.init=function(){return a(this,void 0,void 0,(function(){var e,t=this;return c(this,(function(n){switch(n.label){case 0:if(this.log.verbose("IoService","init()"),this.state)throw new Error("re-init");this.snapshot={readyState:h.CLOSED,event:null},this._readyState=new o.BehaviorSubject(h.CLOSED),this.state=new r.StateSwitch("IoService",this.log),this.state.setLog(this.log),n.label=1;case 1:return n.trys.push([1,4,,5]),[4,this.initStateDealer()];case 2:return n.sent(),[4,this.initRxSocket()];case 3:return n.sent(),[3,5];case 4:throw e=n.sent(),this.log.silly("IoService","init() exception: %s",e.message),e;case 5:return this.readyState.subscribe((function(e){t.log.silly("IoService","init() readyState.subscribe(%s)",h[e]),t.snapshot.readyState=e})),this.event.subscribe((function(e){t.log.silly("IoService","init() event.subscribe({name:%s})",e.name),t.snapshot.event=e})),[2]}}))}))},e.prototype.token=function(e){if(this.log.silly("IoService","token(%s)",e),!e)return this._token;this._token=e},e.prototype.start=function(){return a(this,void 0,void 0,(function(){var e;return c(this,(function(t){switch(t.label){case 0:if(this.log.verbose("IoService","start() with token:%s",this._token),!this._token)throw new Error("start() without token");if(this.state.on())throw new Error("state is already ON");if(this.state.pending())throw new Error("state is pending");this.state.on("pending"),this.autoReconnect=!0,t.label=1;case 1:return t.trys.push([1,3,,4]),[4,this.connectRxSocket()];case 2:return t.sent(),this.state.on(!0),[3,4];case 3:return e=t.sent(),this.log.warn("IoService","start() failed:%s",e.message),this.state.off(!0),[3,4];case 4:return[2]}}))}))},e.prototype.stop=function(){return a(this,void 0,void 0,(function(){return c(this,(function(e){switch(e.label){case 0:if(this.log.verbose("IoService","stop()"),this.state.off()){if(this.log.warn("IoService","stop() state is already off"),this.state.pending())throw new Error("state pending() is true");return[2]}if(this.state.off("pending"),this.autoReconnect=!1,!this._websocket)throw new Error("no websocket");return[4,this.socketClose(1e3,"IoService.stop()")];case 1:return e.sent(),this.state.off(!0),[2]}}))}))},e.prototype.restart=function(){return a(this,void 0,void 0,(function(){var e;return c(this,(function(t){switch(t.label){case 0:this.log.verbose("IoService","restart()"),t.label=1;case 1:return t.trys.push([1,4,,5]),[4,this.stop()];case 2:return t.sent(),[4,this.start()];case 3:return t.sent(),[3,5];case 4:throw e=t.sent(),this.log.error("IoService","restart() error:%s",e.message),e;case 5:return[2]}}))}))},e.prototype.initStateDealer=function(){var e=this;this.log.verbose("IoService","initStateDealer()");this.readyState.pipe(n.filter((function(e){return e===h.OPEN}))).subscribe((function(t){return e.stateOnOpen()}))},e.prototype.initRxSocket=function(){return a(this,void 0,void 0,(function(){var e,t=this;return c(this,(function(i){if(this.log.verbose("IoService","initRxSocket()"),this.event)throw new Error("re-init is not permitted");return this.moObserver={next:this.socketSend.bind(this),error:this.socketClose.bind(this),complete:this.socketClose.bind(this)},e=new o.Observable((function(e){return t.log.verbose("IoService","initRxSocket() Observable.create()"),t.mtObserver=e,t.socketClose.bind(t)})),this.event=o.Subject.create(this.moObserver,e.pipe(n.share())),[2]}))}))},e.prototype.connectRxSocket=function(){return a(this,void 0,void 0,(function(){var e,t=this;return c(this,(function(o){if(this.log.verbose("IoService","connectRxSocket()"),this._websocket)throw new Error("already has a websocket");if(this.state.off())throw new Error("switch state is off");if(!this.state.pending())throw new Error("switch state is already ON");return this._websocket=new WebSocket(this.endPoint(),this.PROTOCOL),this.socketUpdateState(),e=new Promise((function(e,o){t.log.verbose("IoService","connectRxSocket() Promise()");var n=setTimeout((function(){t._websocket=null;var e=new Error("rxSocket connect timeout after "+Math.round(t.CONNECT_TIMEOUT/1e3));o(e)}),t.CONNECT_TIMEOUT);t._websocket.onopen=function(o){t.log.verbose("IoService","connectRxSocket() Promise() WebSocket.onOpen() resolve()"),t.socketUpdateState(),clearTimeout(n),e()}})),this._websocket.onmessage=this.socketOnMessage.bind(this),this._websocket.onerror=this.socketOnError.bind(this),this._websocket.onclose=this.socketOnClose.bind(this),[2,e]}))}))},e.prototype.endPoint=function(){var e=this.ENDPOINT+this._token;return this.log.verbose("IoService","endPoint() => %s",e),e},e.prototype.stateOnOpen=function(){this.log.verbose("IoService","stateOnOpen()"),this.socketSendBuffer(),this.rpcUpdate("from stateOnOpen()")},e.prototype.rpcDing=function(e){return a(this,void 0,void 0,(function(){var t;return c(this,(function(o){return this.log.verbose("IoService","ding(%s)",e),t={name:"ding",payload:e},this.event.next(t),[2]}))}))},e.prototype.rpcUpdate=function(e){return a(this,void 0,void 0,(function(){return c(this,(function(t){return this.event.next({name:"update",payload:e}),[2]}))}))},e.prototype.socketClose=function(e,t){return a(this,void 0,void 0,(function(){var o=this;return c(this,(function(i){switch(i.label){case 0:if(this.log.verbose("IoService","socketClose()"),!this._websocket)throw new Error("no websocket");return this._websocket.close(e,t),this.socketUpdateState(),[4,new Promise((function(e){o.readyState.pipe(n.filter((function(e){return e===h.CLOSED}))).subscribe(e)}))];case 1:return i.sent(),[2]}}))}))},e.prototype.socketSend=function(e){this.log.silly("IoService","socketSend({name:%s, payload:%s})",e.name,e.payload),this._websocket||this.log.silly("IoService","socketSend() no _websocket");var t=JSON.stringify(e);this.sendBuffer.push(t),this.socketSendBuffer()},e.prototype.socketSendBuffer=function(){if(this.log.silly("IoService","socketSendBuffer() length:%s",this.sendBuffer.length),!this._websocket)throw new Error("socketSendBuffer(): no _websocket");if(this._websocket.readyState===WebSocket.OPEN)for(;this.sendBuffer.length;){var e=this.sendBuffer.shift();this.log.silly("IoService","socketSendBuffer() sending(%s)",e),this._websocket.send(e)}else this.log.warn("IoService","socketSendBuffer() readyState is not OPEN, send job delayed.")},e.prototype.socketUpdateState=function(){this.log.verbose("IoService","socketUpdateState() is %s",h[this._websocket.readyState]),this._websocket?this._readyState.next(this._websocket.readyState):this.log.error("IoService","socketUpdateState() no _websocket")},e.prototype.socketOnMessage=function(e){this.log.verbose("IoService","onMessage({data: %s})",e.data);var t=e.data,o={name:"raw",payload:t};try{var n=JSON.parse(t);o.name=n.name,o.payload=n.payload}catch(e){this.log.warn("IoService","onMessage parse message fail. save as RAW")}this.mtObserver.next(o)},e.prototype.socketOnError=function(e){this.log.silly("IoService","socketOnError(%s)",e)},e.prototype.socketOnClose=function(e){var t=this;this.log.verbose("IoService","socketOnClose({code:%s, reason:%s, returnValue:%s})",e.code,e.reason,e.returnValue),this.socketUpdateState(),this.autoReconnect?(this.state.on("pending"),setTimeout((function(){return a(t,void 0,void 0,(function(){var e;return c(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,this.connectRxSocket()];case 1:return t.sent(),this.state.on(!0),[3,3];case 2:return e=t.sent(),this.log.warn("IoService","socketOnClose() autoReconnect() exception: %s",e),this.state.off(!0),[3,3];case 3:return[2]}}))}))}),1e3)):this.state.off(!0),this._websocket=null,e.wasClean||this.log.warn("IoService","socketOnClose() event.wasClean FALSE")},e}(),l=function(){function e(e,o){this.log=e,this.ngZone=o,this.message=new t.EventEmitter,this.scan=new t.EventEmitter,this.login=new t.EventEmitter,this.logout=new t.EventEmitter,this.error=new t.EventEmitter,this.heartbeat=new t.EventEmitter,this.timerSub=null,this.counter=0,this.timestamp=new Date,this.log.verbose("WechatyComponent","constructor() v%s","0.6.3")}return Object.defineProperty(e.prototype,"token",{get:function(){return this._token},set:function(e){this.log.verbose("WechatyComponent","set token(%s)",e);var t=(e||"").trim();if(this._token!==t){if(this._token=t,!this.ioService)return this.log.silly("WechatyComponent","set token() skip token init value"),void this.log.silly("WechatyComponent","set token() because ioService will do it inside ngOnInit()");this.log.silly("WechatyComponent","set token(%s) reloading ioService now...",t),this.ioService.token(this.token),this.ioService.restart()}else this.log.silly("WechatyComponent","set token(%s) not new",t)},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){return a(this,void 0,void 0,(function(){return c(this,(function(e){switch(e.label){case 0:return this.log.verbose("WechatyComponent","ngOnInit() with token: "+this.token),this.ioService=new u,[4,this.ioService.init()];case 1:return e.sent(),this.ioService.event.subscribe(this.onIo.bind(this)),this.log.silly("WechatyComponent","ngOnInit() ioService.event.subscribe()-ed"),this.token?(this.ioService.token(this.token),[4,this.ioService.start()]):[3,3];case 2:e.sent(),e.label=3;case 3:return[2]}}))}))},e.prototype.ngOnDestroy=function(){this.log.verbose("WechatyComponent","ngOnDestroy()"),this.endTimer(),this.ioService&&this.ioService.stop()},e.prototype.onIo=function(e){switch(this.log.silly("WechatyComponent","onIo#%d(%s)",this.counter++,e.name),this.timestamp=new Date,e.name){case"scan":this.scan.emit(e.payload);break;case"login":this.login.emit(e.payload);break;case"logout":this.logout.emit(e.payload);break;case"message":this.message.emit(e.payload);break;case"error":this.error.emit(e.payload);break;case"ding":case"dong":case"raw":this.heartbeat.emit(e.name+"["+e.payload+"]");break;case"heartbeat":this.heartbeat.emit(e.payload);break;case"sys":this.log.silly("WechatyComponent","onIo(%s): %s",e.name,e.payload);break;default:this.log.warn("WechatyComponent","onIo() unknown event name: %s[%s]",e.name,e.payload)}},e.prototype.reset=function(e){this.log.verbose("WechatyComponent","reset(%s)",e);var t={name:"reset",payload:e};if(!this.ioService)throw new Error("no ioService");this.ioService.event.next(t)},e.prototype.shutdown=function(e){this.log.verbose("WechatyComponent","shutdown(%s)",e);var t={name:"shutdown",payload:e};if(!this.ioService)throw new Error("no ioService");this.ioService.event.next(t)},e.prototype.startTimer=function(){var e=this;this.log.verbose("WechatyComponent","startTimer()"),this.ender=new o.Subject,this.ngZone.runOutsideAngular((function(){e.timer=o.interval(3e3).pipe(n.tap((function(t){e.log.verbose("do"," %d",t)})),n.takeUntil(e.ender),n.share())})),this.timerSub=this.timer.subscribe((function(t){if(e.counter=t,!e.ioService)throw new Error("no ioService");e.ioService.rpcDing(e.counter)}))},e.prototype.endTimer=function(){this.log.verbose("WechatyComponent","endTimer()"),this.timerSub&&(this.timerSub.unsubscribe(),this.timerSub=null),this.ender&&this.ender.next(null)},e.prototype.logoff=function(e){this.log.silly("WechatyComponent","logoff(%s)",e);var t={name:"logout",payload:e};this.ioService.event.next(t)},Object.defineProperty(e.prototype,"readyState",{get:function(){return this.ioService.readyState},enumerable:!0,configurable:!0}),e.ctorParameters=function(){return[{type:i.Brolog},{type:t.NgZone}]},s([t.Output()],e.prototype,"message",void 0),s([t.Output()],e.prototype,"scan",void 0),s([t.Output()],e.prototype,"login",void 0),s([t.Output()],e.prototype,"logout",void 0),s([t.Output()],e.prototype,"error",void 0),s([t.Output()],e.prototype,"heartbeat",void 0),s([t.Input()],e.prototype,"token",null),e=s([t.Component({selector:"wechaty",template:"<ng-content></ng-content>"})],e)}(),p=function(){function e(){}return e=s([t.NgModule({id:"wechaty",declarations:[l],exports:[l]})],e)}();e.VERSION="0.6.3",e.WechatyComponent=l,e.WechatyModule=p,e.ɵa=l,Object.defineProperty(e,"__esModule",{value:!0})}));
***************************************************************************** */function r(e,t,o,n){return new(o||(o=Promise))((function(s,i){function r(e){try{c(n.next(e))}catch(e){i(e)}}function a(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(r,a)}c((n=n.apply(e,t||[])).next())}))}function a(e,t){var o,n,s,i,r={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(o)throw new TypeError("Generator is already executing.");for(;r;)try{if(o=1,n&&(s=2&i[0]?n.return:i[0]?n.throw||((s=n.return)&&s.call(n),0):n.next)&&!(s=s.call(n,i[1])).done)return s;switch(n=0,s&&(i=[2&i[0],s.value]),i[0]){case 0:case 1:s=i;break;case 4:return r.label++,{value:i[1],done:!1};case 5:r.label++,n=i[1],i=[0];continue;case 7:i=r.ops.pop(),r.trys.pop();continue;default:if(!(s=r.trys,(s=s.length>0&&s[s.length-1])||6!==i[0]&&2!==i[0])){r=0;continue}if(3===i[0]&&(!s||i[1]>s[0]&&i[1]<s[3])){r.label=i[1];break}if(6===i[0]&&r.label<s[1]){r.label=s[1],s=i;break}if(s&&r.label<s[2]){r.label=s[2],r.ops.push(i);break}s[2]&&r.ops.pop(),r.trys.pop();continue}i=t.call(e,r)}catch(e){i=[6,e],n=0}finally{o=s=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}}Object.create;Object.create;var c,h="0.7.1";!function(e){e[e.CLOSED=WebSocket.CLOSED]="CLOSED",e[e.CLOSING=WebSocket.CLOSING]="CLOSING",e[e.CONNECTING=WebSocket.CONNECTING]="CONNECTING",e[e.OPEN=WebSocket.OPEN]="OPEN"}(c||(c={}));var u=function(){function e(){this.autoReconnect=!0,this.log=s.Brolog.instance(),this.CONNECT_TIMEOUT=1e4,this.ENDPOINT="wss://api.chatie.io/v0/websocket/token/",this.PROTOCOL="web|0.0.1",this.sendBuffer=[],this.log.verbose("IoService","constructor()")}return Object.defineProperty(e.prototype,"readyState",{get:function(){return this._readyState.asObservable()},enumerable:!1,configurable:!0}),e.prototype.init=function(){return r(this,void 0,void 0,(function(){var e,t=this;return a(this,(function(n){switch(n.label){case 0:if(this.log.verbose("IoService","init()"),this.state)throw new Error("re-init");this.snapshot={readyState:c.CLOSED,event:null},this._readyState=new o.BehaviorSubject(c.CLOSED),this.state=new i.StateSwitch("IoService",this.log),this.state.setLog(this.log),n.label=1;case 1:return n.trys.push([1,4,,5]),[4,this.initStateDealer()];case 2:return n.sent(),[4,this.initRxSocket()];case 3:return n.sent(),[3,5];case 4:throw e=n.sent(),this.log.silly("IoService","init() exception: %s",e.message),e;case 5:return this.readyState.subscribe((function(e){t.log.silly("IoService","init() readyState.subscribe(%s)",c[e]),t.snapshot.readyState=e})),this.event.subscribe((function(e){t.log.silly("IoService","init() event.subscribe({name:%s})",e.name),t.snapshot.event=e})),[2]}}))}))},e.prototype.token=function(e){if(this.log.silly("IoService","token(%s)",e),!e)return this._token;this._token=e},e.prototype.start=function(){return r(this,void 0,void 0,(function(){var e;return a(this,(function(t){switch(t.label){case 0:if(this.log.verbose("IoService","start() with token:%s",this._token),!this._token)throw new Error("start() without token");if(this.state.on())throw new Error("state is already ON");if(this.state.pending())throw new Error("state is pending");this.state.on("pending"),this.autoReconnect=!0,t.label=1;case 1:return t.trys.push([1,3,,4]),[4,this.connectRxSocket()];case 2:return t.sent(),this.state.on(!0),[3,4];case 3:return e=t.sent(),this.log.warn("IoService","start() failed:%s",e.message),this.state.off(!0),[3,4];case 4:return[2]}}))}))},e.prototype.stop=function(){return r(this,void 0,void 0,(function(){return a(this,(function(e){switch(e.label){case 0:if(this.log.verbose("IoService","stop()"),this.state.off()){if(this.log.warn("IoService","stop() state is already off"),this.state.pending())throw new Error("state pending() is true");return[2]}if(this.state.off("pending"),this.autoReconnect=!1,!this._websocket)throw new Error("no websocket");return[4,this.socketClose(1e3,"IoService.stop()")];case 1:return e.sent(),this.state.off(!0),[2]}}))}))},e.prototype.restart=function(){return r(this,void 0,void 0,(function(){var e;return a(this,(function(t){switch(t.label){case 0:this.log.verbose("IoService","restart()"),t.label=1;case 1:return t.trys.push([1,4,,5]),[4,this.stop()];case 2:return t.sent(),[4,this.start()];case 3:return t.sent(),[3,5];case 4:throw e=t.sent(),this.log.error("IoService","restart() error:%s",e.message),e;case 5:return[2]}}))}))},e.prototype.initStateDealer=function(){var e=this;this.log.verbose("IoService","initStateDealer()");this.readyState.pipe(n.filter((function(e){return e===c.OPEN}))).subscribe((function(t){return e.stateOnOpen()}))},e.prototype.initRxSocket=function(){return r(this,void 0,void 0,(function(){var e,t=this;return a(this,(function(s){if(this.log.verbose("IoService","initRxSocket()"),this.event)throw new Error("re-init is not permitted");return this.moObserver={next:this.socketSend.bind(this),error:this.socketClose.bind(this),complete:this.socketClose.bind(this)},e=new o.Observable((function(e){return t.log.verbose("IoService","initRxSocket() Observable.create()"),t.mtObserver=e,t.socketClose.bind(t)})),this.event=o.Subject.create(this.moObserver,e.pipe(n.share())),[2]}))}))},e.prototype.connectRxSocket=function(){return r(this,void 0,void 0,(function(){var e,t=this;return a(this,(function(o){if(this.log.verbose("IoService","connectRxSocket()"),this._websocket)throw new Error("already has a websocket");if(this.state.off())throw new Error("switch state is off");if(!this.state.pending())throw new Error("switch state is already ON");return this._websocket=new WebSocket(this.endPoint(),this.PROTOCOL),this.socketUpdateState(),e=new Promise((function(e,o){t.log.verbose("IoService","connectRxSocket() Promise()");var n=setTimeout((function(){t._websocket=null;var e=new Error("rxSocket connect timeout after "+Math.round(t.CONNECT_TIMEOUT/1e3));o(e)}),t.CONNECT_TIMEOUT);t._websocket.onopen=function(o){t.log.verbose("IoService","connectRxSocket() Promise() WebSocket.onOpen() resolve()"),t.socketUpdateState(),clearTimeout(n),e()}})),this._websocket.onmessage=this.socketOnMessage.bind(this),this._websocket.onerror=this.socketOnError.bind(this),this._websocket.onclose=this.socketOnClose.bind(this),[2,e]}))}))},e.prototype.endPoint=function(){var e=this.ENDPOINT+this._token;return this.log.verbose("IoService","endPoint() => %s",e),e},e.prototype.stateOnOpen=function(){this.log.verbose("IoService","stateOnOpen()"),this.socketSendBuffer(),this.rpcUpdate("from stateOnOpen()")},e.prototype.rpcDing=function(e){return r(this,void 0,void 0,(function(){var t;return a(this,(function(o){return this.log.verbose("IoService","ding(%s)",e),t={name:"ding",payload:e},this.event.next(t),[2]}))}))},e.prototype.rpcUpdate=function(e){return r(this,void 0,void 0,(function(){return a(this,(function(t){return this.event.next({name:"update",payload:e}),[2]}))}))},e.prototype.socketClose=function(e,t){return r(this,void 0,void 0,(function(){var o=this;return a(this,(function(s){switch(s.label){case 0:if(this.log.verbose("IoService","socketClose()"),!this._websocket)throw new Error("no websocket");return this._websocket.close(e,t),this.socketUpdateState(),[4,new Promise((function(e){o.readyState.pipe(n.filter((function(e){return e===c.CLOSED}))).subscribe(e)}))];case 1:return s.sent(),[2]}}))}))},e.prototype.socketSend=function(e){this.log.silly("IoService","socketSend({name:%s, payload:%s})",e.name,e.payload),this._websocket||this.log.silly("IoService","socketSend() no _websocket");var t=JSON.stringify(e);this.sendBuffer.push(t),this.socketSendBuffer()},e.prototype.socketSendBuffer=function(){if(this.log.silly("IoService","socketSendBuffer() length:%s",this.sendBuffer.length),!this._websocket)throw new Error("socketSendBuffer(): no _websocket");if(this._websocket.readyState===WebSocket.OPEN)for(;this.sendBuffer.length;){var e=this.sendBuffer.shift();this.log.silly("IoService","socketSendBuffer() sending(%s)",e),this._websocket.send(e)}else this.log.warn("IoService","socketSendBuffer() readyState is not OPEN, send job delayed.")},e.prototype.socketUpdateState=function(){this.log.verbose("IoService","socketUpdateState() is %s",c[this._websocket.readyState]),this._websocket?this._readyState.next(this._websocket.readyState):this.log.error("IoService","socketUpdateState() no _websocket")},e.prototype.socketOnMessage=function(e){this.log.verbose("IoService","onMessage({data: %s})",e.data);var t=e.data,o={name:"raw",payload:t};try{var n=JSON.parse(t);o.name=n.name,o.payload=n.payload}catch(e){this.log.warn("IoService","onMessage parse message fail. save as RAW")}this.mtObserver.next(o)},e.prototype.socketOnError=function(e){this.log.silly("IoService","socketOnError(%s)",e)},e.prototype.socketOnClose=function(e){var t=this;this.log.verbose("IoService","socketOnClose({code:%s, reason:%s, returnValue:%s})",e.code,e.reason,e.returnValue),this.socketUpdateState(),this.autoReconnect?(this.state.on("pending"),setTimeout((function(){return r(t,void 0,void 0,(function(){var e;return a(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,this.connectRxSocket()];case 1:return t.sent(),this.state.on(!0),[3,3];case 2:return e=t.sent(),this.log.warn("IoService","socketOnClose() autoReconnect() exception: %s",e),this.state.off(!0),[3,3];case 3:return[2]}}))}))}),1e3)):this.state.off(!0),this._websocket=null,e.wasClean||this.log.warn("IoService","socketOnClose() event.wasClean FALSE")},e}(),l=function(){function e(e,o){this.log=e,this.ngZone=o,this.message=new t.EventEmitter,this.scan=new t.EventEmitter,this.login=new t.EventEmitter,this.logout=new t.EventEmitter,this.error=new t.EventEmitter,this.heartbeat=new t.EventEmitter,this.timerSub=null,this.counter=0,this.timestamp=new Date,this.log.verbose("WechatyComponent","constructor() v%s",h)}return Object.defineProperty(e.prototype,"token",{get:function(){return this._token},set:function(e){this.log.verbose("WechatyComponent","set token(%s)",e);var t=(e||"").trim();if(this._token!==t){if(this._token=t,!this.ioService)return this.log.silly("WechatyComponent","set token() skip token init value"),void this.log.silly("WechatyComponent","set token() because ioService will do it inside ngOnInit()");this.log.silly("WechatyComponent","set token(%s) reloading ioService now...",t),this.ioService.token(this.token),this.ioService.restart()}else this.log.silly("WechatyComponent","set token(%s) not new",t)},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){return r(this,void 0,void 0,(function(){return a(this,(function(e){switch(e.label){case 0:return this.log.verbose("WechatyComponent","ngOnInit() with token: "+this.token),this.ioService=new u,[4,this.ioService.init()];case 1:return e.sent(),this.ioService.event.subscribe(this.onIo.bind(this)),this.log.silly("WechatyComponent","ngOnInit() ioService.event.subscribe()-ed"),this.token?(this.ioService.token(this.token),[4,this.ioService.start()]):[3,3];case 2:e.sent(),e.label=3;case 3:return[2]}}))}))},e.prototype.ngOnDestroy=function(){this.log.verbose("WechatyComponent","ngOnDestroy()"),this.endTimer(),this.ioService&&this.ioService.stop()},e.prototype.onIo=function(e){switch(this.log.silly("WechatyComponent","onIo#%d(%s)",this.counter++,e.name),this.timestamp=new Date,e.name){case"scan":this.scan.emit(e.payload);break;case"login":this.login.emit(e.payload);break;case"logout":this.logout.emit(e.payload);break;case"message":this.message.emit(e.payload);break;case"error":this.error.emit(e.payload);break;case"ding":case"dong":case"raw":this.heartbeat.emit(e.name+"["+e.payload+"]");break;case"heartbeat":this.heartbeat.emit(e.payload);break;case"sys":this.log.silly("WechatyComponent","onIo(%s): %s",e.name,e.payload);break;default:this.log.warn("WechatyComponent","onIo() unknown event name: %s[%s]",e.name,e.payload)}},e.prototype.reset=function(e){this.log.verbose("WechatyComponent","reset(%s)",e);var t={name:"reset",payload:e};if(!this.ioService)throw new Error("no ioService");this.ioService.event.next(t)},e.prototype.shutdown=function(e){this.log.verbose("WechatyComponent","shutdown(%s)",e);var t={name:"shutdown",payload:e};if(!this.ioService)throw new Error("no ioService");this.ioService.event.next(t)},e.prototype.startTimer=function(){var e=this;this.log.verbose("WechatyComponent","startTimer()"),this.ender=new o.Subject,this.ngZone.runOutsideAngular((function(){e.timer=o.interval(3e3).pipe(n.tap((function(t){e.log.verbose("do"," %d",t)})),n.takeUntil(e.ender),n.share())})),this.timerSub=this.timer.subscribe((function(t){if(e.counter=t,!e.ioService)throw new Error("no ioService");e.ioService.rpcDing(e.counter)}))},e.prototype.endTimer=function(){this.log.verbose("WechatyComponent","endTimer()"),this.timerSub&&(this.timerSub.unsubscribe(),this.timerSub=null),this.ender&&this.ender.next(null)},e.prototype.logoff=function(e){this.log.silly("WechatyComponent","logoff(%s)",e);var t={name:"logout",payload:e};this.ioService.event.next(t)},Object.defineProperty(e.prototype,"readyState",{get:function(){return this.ioService.readyState},enumerable:!1,configurable:!0}),e}();l.decorators=[{type:t.Component,args:[{selector:"wechaty",template:"<ng-content></ng-content>"}]}],l.ctorParameters=function(){return[{type:s.Brolog},{type:t.NgZone}]},l.propDecorators={message:[{type:t.Output}],scan:[{type:t.Output}],login:[{type:t.Output}],logout:[{type:t.Output}],error:[{type:t.Output}],heartbeat:[{type:t.Output}],token:[{type:t.Input}]};var p=function(){};p.decorators=[{type:t.NgModule,args:[{id:"wechaty",declarations:[l],exports:[l]}]}],e.VERSION=h,e.WechatyComponent=l,e.WechatyModule=p,e.ɵa=l,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=chatie-angular.umd.min.js.map

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"ɵa":{"__symbolic":"reference","name":"WechatyComponent"},"ScanInfo":{"__symbolic":"interface"},"UserInfo":{"__symbolic":"interface"},"WechatyComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":47,"character":1},"arguments":[{"selector":"wechaty","template":"<ng-content></ng-content>"}]}],"members":{"message":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":66,"character":3}}]}],"scan":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":67,"character":3}}]}],"login":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":68,"character":3}}]}],"logout":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":69,"character":3}}]}],"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":70,"character":3}}]}],"heartbeat":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":71,"character":3}}]}],"token":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":75,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"brolog","name":"Brolog","line":108,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":109,"character":20}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onIo":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"shutdown":[{"__symbolic":"method"}],"startTimer":[{"__symbolic":"method"}],"endTimer":[{"__symbolic":"method"}],"logoff":[{"__symbolic":"method"}]}},"WechatyModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"id":"wechaty","declarations":[{"__symbolic":"reference","name":"ɵa"}],"exports":[{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{}},"VERSION":"0.6.3"},"origins":{"ɵa":"./src/wechaty/wechaty.component","ScanInfo":"./src/wechaty/wechaty.component","UserInfo":"./src/wechaty/wechaty.component","WechatyComponent":"./src/wechaty/wechaty.component","WechatyModule":"./src/wechaty/wechaty.module","VERSION":"./src/version"},"importAs":"@chatie/angular"}
{"__symbolic":"module","version":4,"metadata":{"ɵa":{"__symbolic":"reference","name":"WechatyComponent"},"ScanInfo":{"__symbolic":"interface"},"UserInfo":{"__symbolic":"interface"},"WechatyComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":47,"character":1},"arguments":[{"selector":"wechaty","template":"<ng-content></ng-content>"}]}],"members":{"message":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":66,"character":3}}]}],"scan":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":67,"character":3}}]}],"login":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":68,"character":3}}]}],"logout":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":69,"character":3}}]}],"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":70,"character":3}}]}],"heartbeat":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":71,"character":3}}]}],"token":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":75,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"brolog","name":"Brolog","line":108,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":109,"character":20}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onIo":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"shutdown":[{"__symbolic":"method"}],"startTimer":[{"__symbolic":"method"}],"endTimer":[{"__symbolic":"method"}],"logoff":[{"__symbolic":"method"}]}},"WechatyModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"id":"wechaty","declarations":[{"__symbolic":"reference","name":"ɵa"}],"exports":[{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{}},"VERSION":"0.7.1"},"origins":{"ɵa":"./src/wechaty/wechaty.component","ScanInfo":"./src/wechaty/wechaty.component","UserInfo":"./src/wechaty/wechaty.component","WechatyComponent":"./src/wechaty/wechaty.component","WechatyModule":"./src/wechaty/wechaty.module","VERSION":"./src/version"},"importAs":"@chatie/angular"}

@@ -6,2 +6,2 @@ /**

export { WechatyComponent as ɵa } from './src/wechaty/wechaty.component';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdGllLWFuZ3VsYXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY2hhdGllL2FuZ3VsYXIvIiwic291cmNlcyI6WyJjaGF0aWUtYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcblxuZXhwb3J0IHtXZWNoYXR5Q29tcG9uZW50IGFzIMm1YX0gZnJvbSAnLi9zcmMvd2VjaGF0eS93ZWNoYXR5LmNvbXBvbmVudCc7Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdGllLWFuZ3VsYXIuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvYW5ndWxhci9hbmd1bGFyLyIsInNvdXJjZXMiOlsiY2hhdGllLWFuZ3VsYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0saUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG5cbmV4cG9ydCB7V2VjaGF0eUNvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vc3JjL3dlY2hhdHkvd2VjaGF0eS5jb21wb25lbnQnOyJdfQ==
export { WechatyComponent, } from './src/wechaty/wechaty.component';
export { WechatyModule } from './src/wechaty/wechaty.module';
export { VERSION } from './src/config';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BjaGF0aWUvYW5ndWxhci8iLCJzb3VyY2VzIjpbInB1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLGdCQUFnQixHQUNqQixNQUFnQyxpQ0FBaUMsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQVMsOEJBQThCLENBQUE7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFlLGNBQWMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIFNjYW5JbmZvLFxuICBVc2VySW5mbyxcbiAgV2VjaGF0eUNvbXBvbmVudCxcbn0gICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuL3NyYy93ZWNoYXR5L3dlY2hhdHkuY29tcG9uZW50J1xuZXhwb3J0IHsgV2VjaGF0eU1vZHVsZSB9ICAgIGZyb20gJy4vc3JjL3dlY2hhdHkvd2VjaGF0eS5tb2R1bGUnXG5leHBvcnQgeyBWRVJTSU9OIH0gICAgICAgICAgZnJvbSAnLi9zcmMvY29uZmlnJ1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9hbmd1bGFyL2FuZ3VsYXIvIiwic291cmNlcyI6WyJwdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxnQkFBZ0IsR0FDakIsTUFBZ0MsaUNBQWlDLENBQUE7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFTLDhCQUE4QixDQUFBO0FBQy9ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBZSxjQUFjLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBTY2FuSW5mbyxcbiAgVXNlckluZm8sXG4gIFdlY2hhdHlDb21wb25lbnQsXG59ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi9zcmMvd2VjaGF0eS93ZWNoYXR5LmNvbXBvbmVudCdcbmV4cG9ydCB7IFdlY2hhdHlNb2R1bGUgfSAgICBmcm9tICcuL3NyYy93ZWNoYXR5L3dlY2hhdHkubW9kdWxlJ1xuZXhwb3J0IHsgVkVSU0lPTiB9ICAgICAgICAgIGZyb20gJy4vc3JjL2NvbmZpZydcbiJdfQ==
export { VERSION } from './version';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNoYXRpZS9hbmd1bGFyLyIsInNvdXJjZXMiOlsic3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgVkVSU0lPTiB9IGZyb20gJy4vdmVyc2lvbidcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL2FuZ3VsYXIvYW5ndWxhci8iLCJzb3VyY2VzIjpbInNyYy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFZFUlNJT04gfSBmcm9tICcuL3ZlcnNpb24nXG4iXX0=
/**
* This file was auto generated from scripts/generate-version.sh
*/
export const VERSION = '0.6.3';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BjaGF0aWUvYW5ndWxhci8iLCJzb3VyY2VzIjpbInNyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFXLE9BQU8sQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpcyBmaWxlIHdhcyBhdXRvIGdlbmVyYXRlZCBmcm9tIHNjcmlwdHMvZ2VuZXJhdGUtdmVyc2lvbi5zaFxuICovXG5leHBvcnQgY29uc3QgVkVSU0lPTjogc3RyaW5nID0gJzAuNi4zJ1xuIl19
export const VERSION = '0.7.1';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9hbmd1bGFyL2FuZ3VsYXIvIiwic291cmNlcyI6WyJzcmMvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBVyxPQUFPLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgZmlsZSB3YXMgYXV0byBnZW5lcmF0ZWQgZnJvbSBzY3JpcHRzL2dlbmVyYXRlLXZlcnNpb24uc2hcbiAqL1xuZXhwb3J0IGNvbnN0IFZFUlNJT046IHN0cmluZyA9ICcwLjcuMSdcbiJdfQ==

@@ -355,2 +355,2 @@ import { __awaiter } from "tslib";

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY2hhdGllL2FuZ3VsYXIvIiwic291cmNlcyI6WyJzcmMvd2VjaGF0eS9pby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUNMLGVBQWUsRUFDZixVQUFVLEVBRVYsT0FBTyxHQUNSLE1BQXdCLE1BQU0sQ0FBQTtBQUMvQixPQUFPLEVBQ0wsTUFBTSxFQUNOLEtBQUssR0FDTixNQUF3QixnQkFBZ0IsQ0FBQTtBQUV6QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQVksUUFBUSxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTyxjQUFjLENBQUE7QUFzQjNDLE1BQU0sQ0FBTixJQUFZLFVBS1g7QUFMRCxXQUFZLFVBQVU7SUFDcEIsa0NBQWMsU0FBUyxDQUFDLE1BQU0sWUFBQSxDQUFBO0lBQzlCLG1DQUFjLFNBQVMsQ0FBQyxPQUFPLGFBQUEsQ0FBQTtJQUMvQixzQ0FBYyxTQUFTLENBQUMsVUFBVSxnQkFBQSxDQUFBO0lBQ2xDLGdDQUFjLFNBQVMsQ0FBQyxJQUFJLFVBQUEsQ0FBQTtBQUM5QixDQUFDLEVBTFcsVUFBVSxLQUFWLFVBQVUsUUFLckI7QUFPRCxNQUFNLE9BQU8sU0FBUztJQTBCcEI7UUFmUSxrQkFBYSxHQUFHLElBQUksQ0FBQTtRQUNwQixRQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBRWQsb0JBQWUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFBLENBQUMsYUFBYTtRQUN6QyxhQUFRLEdBQUcseUNBQXlDLENBQUE7UUFDcEQsYUFBUSxHQUFHLFdBQVcsQ0FBQTtRQU0vQixlQUFVLEdBQWEsRUFBRSxDQUFBO1FBSy9CLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0lBdkJELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUE7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QUFDLFNBQVMsQ0FBQyxDQUFBO1lBQ3hCLFVBQVUsQ0FBQyxHQUFTLEVBQUU7Z0JBQ3BCLElBQUk7b0JBQ0YsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUE7b0JBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFBO2lCQUNwQjtnQkFBQyxPQUFPLENBQUMsRUFBRTtvQkFDVixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsK0NBQStDLEVBQUUsQ0FBQyxDQUFDLENBQUE7b0JBQzlFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO2lCQUNyQjtZQUNILENBQUMsQ0FBQSxFQUFFLElBQUksQ0FBQyxDQUFBO1NBQ1Q7YUFBTTtZQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1NBQ3JCO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUE7UUFFdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUU7WUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLHNDQUFzQyxDQUFDLENBQUE7WUFDbEUsa0JBQWtCO1NBQ25CO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVkVSU0lPTiB9ICAgICAgZnJvbSAnLi4vY29uZmlnJ1xuXG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIE9ic2VydmFibGUsXG4gIE9ic2VydmVyLFxuICBTdWJqZWN0LFxufSAgICAgICAgICAgICAgICAgICBmcm9tICdyeGpzJ1xuaW1wb3J0IHtcbiAgZmlsdGVyLFxuICBzaGFyZSxcbn0gICAgICAgICAgICAgICAgICAgZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB7IEJyb2xvZyB9ICAgICAgIGZyb20gJ2Jyb2xvZydcbmltcG9ydCB7IFN0YXRlU3dpdGNoIH0gIGZyb20gJ3N0YXRlLXN3aXRjaCdcblxuZXhwb3J0IHR5cGUgV2VjaGF0eUV2ZW50TmFtZSA9XG4gICAgJ3NjYW4nXG4gIHwgJ2xvZ2luJyB8ICdsb2dvdXQnXG4gIHwgJ3Jlc2V0JyB8ICdzaHV0ZG93bidcbiAgfCAnZGluZycgIHwgJ2RvbmcnXG4gIHwgJ21lc3NhZ2UnXG4gIHwgJ2hlYXJ0YmVhdCdcbiAgfCAndXBkYXRlJ1xuICB8ICdlcnJvcidcblxuZXhwb3J0IHR5cGUgU2VydmVyRXZlbnROYW1lID1cbiAgJ3N5cydcblxuZXhwb3J0IHR5cGUgSW9FdmVudE5hbWUgPSAncmF3JyB8IFdlY2hhdHlFdmVudE5hbWUgfCBTZXJ2ZXJFdmVudE5hbWVcblxuZXhwb3J0IGludGVyZmFjZSBJb0V2ZW50IHtcbiAgbmFtZTogSW9FdmVudE5hbWUsXG4gIHBheWxvYWQ6IGFueSxcbn1cblxuZXhwb3J0IGVudW0gUmVhZHlTdGF0ZSB7XG4gIENMT1NFRCAgICAgID0gV2ViU29ja2V0LkNMT1NFRCxcbiAgQ0xPU0lORyAgICAgPSBXZWJTb2NrZXQuQ0xPU0lORyxcbiAgQ09OTkVDVElORyAgPSBXZWJTb2NrZXQuQ09OTkVDVElORyxcbiAgT1BFTiAgICAgICAgPSBXZWJTb2NrZXQuT1BFTixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJb1NlcnZpY2VTbmFwc2hvdCB7XG4gIHJlYWR5U3RhdGU6IFJlYWR5U3RhdGVcbiAgZXZlbnQ6ICAgICBJb0V2ZW50XG59XG5cbmV4cG9ydCBjbGFzcyBJb1NlcnZpY2Uge1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vUmVhY3RpdmVYL3J4anMvYmxvYi9tYXN0ZXIvc3JjL29ic2VydmFibGUvZG9tL1dlYlNvY2tldFN1YmplY3QudHNcbiAgcHVibGljIGV2ZW50OiBTdWJqZWN0PElvRXZlbnQ+XG5cbiAgcHJpdmF0ZSBfcmVhZHlTdGF0ZTogQmVoYXZpb3JTdWJqZWN0PFJlYWR5U3RhdGU+XG4gIHB1YmxpYyBnZXQgcmVhZHlTdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVhZHlTdGF0ZS5hc09ic2VydmFibGUoKVxuICB9XG5cbiAgcHVibGljIHNuYXBzaG90OiBJb1NlcnZpY2VTbmFwc2hvdFxuXG4gIHByaXZhdGUgYXV0b1JlY29ubmVjdCA9IHRydWVcbiAgcHJpdmF0ZSBsb2cgPSBCcm9sb2cuaW5zdGFuY2UoKVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgQ09OTkVDVF9USU1FT1VUID0gMTAgKiAxMDAwIC8vIDEwIHNlY29uZHNcbiAgcHJpdmF0ZSByZWFkb25seSBFTkRQT0lOVCA9ICd3c3M6Ly9hcGkuY2hhdGllLmlvL3YwL3dlYnNvY2tldC90b2tlbi8nXG4gIHByaXZhdGUgcmVhZG9ubHkgUFJPVE9DT0wgPSAnd2VifDAuMC4xJ1xuXG4gIHByaXZhdGUgX3Rva2VuOiBzdHJpbmcgLy8gRklYTUUgcG9zc2libGUgYmUgYHVuZGVmaW5lZGBcbiAgcHJpdmF0ZSBfd2Vic29ja2V0OiBXZWJTb2NrZXQgfCBudWxsXG4gIHByaXZhdGUgbW9PYnNlcnZlcjogT2JzZXJ2ZXI8SW9FdmVudD4gLy8gTW9iaWxlIE9yaWdpbmF0ZWQuIG1vT2JzZXJ2ZXIubmV4dCgpIG1lYW5zIG1vYmlsZSBpcyBzZW5kaW5nXG4gIHByaXZhdGUgbXRPYnNlcnZlcjogT2JzZXJ2ZXI8SW9FdmVudD4gLy8gTW9iaWxlIFRlcm1pbmF0ZWQuIG10T2JzZXJ2ZXIubmV4dCgpIG1lYW5zIG1vYmlsZSBpcyByZWNlaXZpbmdcbiAgcHJpdmF0ZSBzZW5kQnVmZmVyOiBzdHJpbmdbXSA9IFtdXG5cbiAgcHJpdmF0ZSBzdGF0ZTogU3RhdGVTd2l0Y2hcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmxvZy52ZXJib3NlKCdJb1NlcnZpY2UnLCAnY29uc3RydWN0b3IoKScpXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvZy52ZXJib3NlKCdJb1NlcnZpY2UnLCAnaW5pdCgpJylcblxuICAgIGlmICh0aGlzLnN0YXRlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlLWluaXQnKVxuICAgIH1cblxuICAgIHRoaXMuc25hcHNob3QgPSB7XG4gICAgICByZWFkeVN0YXRlOiBSZWFkeVN0YXRlLkNMT1NFRCxcbiAgICAgIGV2ZW50OiAgICAgbnVsbCxcbiAgICB9XG5cbiAgICB0aGlzLl9yZWFkeVN0YXRlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZWFkeVN0YXRlPihSZWFkeVN0YXRlLkNMT1NFRClcbiAgICB0aGlzLnN0YXRlID0gbmV3IFN0YXRlU3dpdGNoKCdJb1NlcnZpY2UnLCB0aGlzLmxvZylcbiAgICB0aGlzLnN0YXRlLnNldExvZyh0aGlzLmxvZylcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmluaXRTdGF0ZURlYWxlcigpXG4gICAgICBhd2FpdCB0aGlzLmluaXRSeFNvY2tldCgpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2cuc2lsbHkoJ0lvU2VydmljZScsICdpbml0KCkgZXhjZXB0aW9uOiAlcycsIGUubWVzc2FnZSlcbiAgICAgIHRocm93IGVcbiAgICB9XG5cbiAgICB0aGlzLnJlYWR5U3RhdGUuc3Vic2NyaWJlKHMgPT4ge1xuICAgICAgdGhpcy5sb2cuc2lsbHkoJ0lvU2VydmljZScsICdpbml0KCkgcmVhZHlTdGF0ZS5zdWJzY3JpYmUoJXMpJywgUmVhZHlTdGF0ZVtzXSlcbiAgICAgIHRoaXMuc25hcHNob3QucmVhZHlTdGF0ZSA9IHNcbiAgICB9KVxuICAgIC8vIElNUE9SVEFOVDogc3Vic2NyaWJlIHRvIGV2ZW50IGFuZCBtYWtlIGl0IEhPVCFcbiAgICB0aGlzLmV2ZW50LnN1YnNjcmliZShzID0+IHtcbiAgICAgIHRoaXMubG9nLnNpbGx5KCdJb1NlcnZpY2UnLCAnaW5pdCgpIGV2ZW50LnN1YnNjcmliZSh7bmFtZTolc30pJywgcy5uYW1lKVxuICAgICAgdGhpcy5zbmFwc2hvdC5ldmVudCA9IHNcbiAgICB9KVxuXG4gICAgcmV0dXJuXG4gIH1cblxuICBwdWJsaWMgdG9rZW4oKTogc3RyaW5nXG4gIHB1YmxpYyB0b2tlbihuZXdUb2tlbjogc3RyaW5nKTogdm9pZFxuXG4gIHB1YmxpYyB0b2tlbihuZXdUb2tlbj86IHN0cmluZyk6IHN0cmluZyB8IHZvaWQge1xuICAgIHRoaXMubG9nLnNpbGx5KCdJb1NlcnZpY2UnLCAndG9rZW4oJXMpJywgbmV3VG9rZW4pXG4gICAgaWYgKG5ld1Rva2VuKSB7XG4gICAgICB0aGlzLl90b2tlbiA9IG5ld1Rva2VuXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3Rva2VuXG4gIH1cblxuICBhc3luYyBzdGFydCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvZy52ZXJib3NlKCdJb1NlcnZpY2UnLCAnc3RhcnQoKSB3aXRoIHRva2VuOiVzJywgdGhpcy5fdG9rZW4pXG5cbiAgICBpZiAoIXRoaXMuX3Rva2VuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3N0YXJ0KCkgd2l0aG91dCB0b2tlbicpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3RhdGUub24oKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzdGF0ZSBpcyBhbHJlYWR5IE9OJylcbiAgICB9XG4gICAgaWYgKHRoaXMuc3RhdGUucGVuZGluZygpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3N0YXRlIGlzIHBlbmRpbmcnKVxuICAgIH1cblxuICAgIHRoaXMuc3RhdGUub24oJ3BlbmRpbmcnKVxuXG4gICAgdGhpcy5hdXRvUmVjb25uZWN0ID0gdHJ1ZVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY29ubmVjdFJ4U29ja2V0KClcbiAgICAgIHRoaXMuc3RhdGUub24odHJ1ZSlcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZy53YXJuKCdJb1NlcnZpY2UnLCAnc3RhcnQoKSBmYWlsZWQ6JXMnLCBlLm1lc3NhZ2UpXG5cbiAgICAgIHRoaXMuc3RhdGUub2ZmKHRydWUpXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc3RvcCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvZy52ZXJib3NlKCdJb1NlcnZpY2UnLCAnc3RvcCgpJylcblxuICAgIGlmICh0aGlzLnN0YXRlLm9mZigpKSB7XG4gICAgICB0aGlzLmxvZy53YXJuKCdJb1NlcnZpY2UnLCAnc3RvcCgpIHN0YXRlIGlzIGFscmVhZHkgb2ZmJylcbiAgICAgIGlmICh0aGlzLnN0YXRlLnBlbmRpbmcoKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3N0YXRlIHBlbmRpbmcoKSBpcyB0cnVlJylcbiAgICAgIH1cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuc3RhdGUub2ZmKCdwZW5kaW5nJylcblxuICAgIHRoaXMuYXV0b1JlY29ubmVjdCA9IGZhbHNlXG5cbiAgICBpZiAoIXRoaXMuX3dlYnNvY2tldCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdubyB3ZWJzb2NrZXQnKVxuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuc29ja2V0Q2xvc2UoMTAwMCwgJ0lvU2VydmljZS5zdG9wKCknKVxuICAgIHRoaXMuc3RhdGUub2ZmKHRydWUpXG5cbiAgICByZXR1cm5cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyByZXN0YXJ0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubG9nLnZlcmJvc2UoJ0lvU2VydmljZScsICdyZXN0YXJ0KCknKVxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnN0b3AoKVxuICAgICAgYXdhaXQgdGhpcy5zdGFydCgpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2cuZXJyb3IoJ0lvU2VydmljZScsICdyZXN0YXJ0KCkgZXJyb3I6JXMnLCBlLm1lc3NhZ2UpXG4gICAgICB0aHJvdyBlXG4gICAgfVxuICAgIHJldHVyblxuICB9XG5cbiAgcHJpdmF0ZSBpbml0U3RhdGVEZWFsZXIoKSB7XG4gICAgdGhpcy5sb2cudmVyYm9zZSgnSW9TZXJ2aWNlJywgJ2luaXRTdGF0ZURlYWxlcigpJylcblxuICAgIGNvbnN0IGlzUmVhZHlTdGF0ZU9wZW4gPSAoczogUmVhZHlTdGF0ZSkgPT4gcyA9PT0gUmVhZHlTdGF0ZS5PUEVOXG5cbiAgICB0aGlzLnJlYWR5U3RhdGUucGlwZShcbiAgICAgIGZpbHRlcihpc1JlYWR5U3RhdGVPcGVuKSxcbiAgICApXG4gICAgICAuc3Vic2NyaWJlKG9wZW4gPT4gdGhpcy5zdGF0ZU9uT3BlbigpKVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdWJqZWN0IGZyb20gdGhlIHNwZWNpZmllZCBvYnNlcnZlciBhbmQgb2JzZXJ2YWJsZS5cbiAgICogIC0gaHR0cHM6Ly9naXRodWIuY29tL1JlYWN0aXZlLUV4dGVuc2lvbnMvUnhKUy9ibG9iL21hc3Rlci9kb2MvYXBpL3N1YmplY3RzL3N1YmplY3QubWRcbiAgICogQ3JlYXRlIGFuIFJ4LlN1YmplY3QgdXNpbmcgU3ViamVjdC5jcmVhdGUgdGhhdCBhbGxvd3Mgb25OZXh0IHdpdGhvdXQgc3Vic2NyaXB0aW9uXG4gICAqICAgQSBzb2NrZXQgaW1wbGVtZW50YXRpb24gKGV4YW1wbGUsIGRvbid0IHVzZSlcbiAgICogIC0gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMzQ4NjIyODYvMTEyMzk1NVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBpbml0UnhTb2NrZXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5sb2cudmVyYm9zZSgnSW9TZXJ2aWNlJywgJ2luaXRSeFNvY2tldCgpJylcblxuICAgIGlmICh0aGlzLmV2ZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlLWluaXQgaXMgbm90IHBlcm1pdHRlZCcpXG4gICAgfVxuXG4gICAgLy8gMS4gTW9iaWxlIE9yaWdpbmF0ZWQuIG1vT2JzZXJ2ZXIubmV4dCgpIG1lYW5zIG1vYmlsZSBpcyBzZW5kaW5nXG4gICAgdGhpcy5tb09ic2VydmVyID0ge1xuICAgICAgbmV4dDogICAgIHRoaXMuc29ja2V0U2VuZC5iaW5kKHRoaXMpLFxuICAgICAgZXJyb3I6ICAgIHRoaXMuc29ja2V0Q2xvc2UuYmluZCh0aGlzKSxcbiAgICAgIGNvbXBsZXRlOiB0aGlzLnNvY2tldENsb3NlLmJpbmQodGhpcyksXG4gICAgfVxuXG4gICAgLy8gMi4gTW9iaWxlIFRlcm1pbmF0ZWQuIG10T2JzZXJ2ZXIubmV4dCgpIG1lYW5zIG1vYmlsZSBpcyByZWNlaXZpbmdcbiAgICBjb25zdCBvYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyOiBPYnNlcnZlcjxJb0V2ZW50PikgPT4ge1xuICAgICAgdGhpcy5sb2cudmVyYm9zZSgnSW9TZXJ2aWNlJywgJ2luaXRSeFNvY2tldCgpIE9ic2VydmFibGUuY3JlYXRlKCknKVxuICAgICAgdGhpcy5tdE9ic2VydmVyID0gb2JzZXJ2ZXJcblxuICAgICAgcmV0dXJuIHRoaXMuc29ja2V0Q2xvc2UuYmluZCh0aGlzKVxuICAgIH0pXG5cbiAgICAvLyAzLiBTdWJqZWN0IGZvciBNTyAmIE1UIE9ic2VydmVyc1xuICAgIHRoaXMuZXZlbnQgPSBTdWJqZWN0LmNyZWF0ZSh0aGlzLm1vT2JzZXJ2ZXIsIG9ic2VydmFibGUucGlwZShzaGFyZSgpKSlcblxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjb25uZWN0UnhTb2NrZXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5sb2cudmVyYm9zZSgnSW9TZXJ2aWNlJywgJ2Nvbm5lY3RSeFNvY2tldCgpJylcblxuICAgIC8vIEZJWE1FOiBjaGVjayAmIGNsb3NlIHRoZSBvbGQgb25lXG4gICAgaWYgKHRoaXMuX3dlYnNvY2tldCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhbHJlYWR5IGhhcyBhIHdlYnNvY2tldCcpXG4gICAgfVxuXG4gICAgLy8gaWYgKHRoaXMuc3RhdGUudGFyZ2V0KCkgIT09ICdvcGVuJ1xuICAgIC8vICAgfHwgdGhpcy5zdGF0ZS5jdXJyZW50KCkgIT09ICdvcGVuJ1xuICAgIC8vICAgfHwgdGhpcy5zdGF0ZS5zdGFibGUoKVxuICAgIGlmICh0aGlzLnN0YXRlLm9mZigpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3N3aXRjaCBzdGF0ZSBpcyBvZmYnKVxuICAgIH0gZWxzZSBpZiAoIXRoaXMuc3RhdGUucGVuZGluZygpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3N3aXRjaCBzdGF0ZSBpcyBhbHJlYWR5IE9OJylcbiAgICB9XG5cbiAgICB0aGlzLl93ZWJzb2NrZXQgPSBuZXcgV2ViU29ja2V0KHRoaXMuZW5kUG9pbnQoKSwgdGhpcy5QUk9UT0NPTClcbiAgICB0aGlzLnNvY2tldFVwZGF0ZVN0YXRlKClcblxuICAgIGNvbnN0IG9uT3BlblByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmxvZy52ZXJib3NlKCdJb1NlcnZpY2UnLCAnY29ubmVjdFJ4U29ja2V0KCkgUHJvbWlzZSgpJylcblxuICAgICAgY29uc3QgaWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5fd2Vic29ja2V0ID0gbnVsbFxuICAgICAgICBjb25zdCBlID0gbmV3IEVycm9yKCdyeFNvY2tldCBjb25uZWN0IHRpbWVvdXQgYWZ0ZXIgJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgTWF0aC5yb3VuZCh0aGlzLkNPTk5FQ1RfVElNRU9VVCAvIDEwMDApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgIHJlamVjdChlKVxuICAgICAgfSwgdGhpcy5DT05ORUNUX1RJTUVPVVQpIC8vIHRpbWVvdXQgZm9yIGNvbm5lY3Qgd2Vic29ja2V0XG5cbiAgICAgIHRoaXMuX3dlYnNvY2tldC5vbm9wZW4gPSAoZSkgPT4ge1xuICAgICAgICB0aGlzLmxvZy52ZXJib3NlKCdJb1NlcnZpY2UnLCAnY29ubmVjdFJ4U29ja2V0KCkgUHJvbWlzZSgpIFdlYlNvY2tldC5vbk9wZW4oKSByZXNvbHZlKCknKVxuICAgICAgICB0aGlzLnNvY2tldFVwZGF0ZVN0YXRlKClcbiAgICAgICAgY2xlYXJUaW1lb3V0KGlkKVxuICAgICAgICByZXNvbHZlKClcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgLy8gSGFuZGxlIHRoZSBwYXlsb2FkXG4gICAgdGhpcy5fd2Vic29ja2V0Lm9ubWVzc2FnZSA9IHRoaXMuc29ja2V0T25NZXNzYWdlLmJpbmQodGhpcylcbiAgICAvLyBEZWFsIHRoZSBldmVudFxuICAgIHRoaXMuX3dlYnNvY2tldC5vbmVycm9yICAgPSB0aGlzLnNvY2tldE9uRXJyb3IuYmluZCh0aGlzKVxuICAgIHRoaXMuX3dlYnNvY2tldC5vbmNsb3NlICAgPSB0aGlzLnNvY2tldE9uQ2xvc2UuYmluZCh0aGlzKVxuXG4gICAgcmV0dXJuIG9uT3BlblByb21pc2VcbiAgfVxuXG4gIHByaXZhdGUgZW5kUG9pbnQoKTogc3RyaW5nIHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLkVORFBPSU5UICsgdGhpcy5fdG9rZW5cbiAgICB0aGlzLmxvZy52ZXJib3NlKCdJb1NlcnZpY2UnLCAnZW5kUG9pbnQoKSA9PiAlcycsIHVybClcbiAgICByZXR1cm4gdXJsXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqXG4gICAqIFN0YXRlIEV2ZW50IExpc3RlbmVyc1xuICAgKlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0ZU9uT3BlbigpIHtcbiAgICB0aGlzLmxvZy52ZXJib3NlKCdJb1NlcnZpY2UnLCAnc3RhdGVPbk9wZW4oKScpXG5cbiAgICB0aGlzLnNvY2tldFNlbmRCdWZmZXIoKVxuICAgIHRoaXMucnBjVXBkYXRlKCdmcm9tIHN0YXRlT25PcGVuKCknKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKlxuICAgKiBJbyBSUEMgTWV0aG9kc1xuICAgKlxuICAgKi9cbiAgYXN5bmMgcnBjRGluZyhwYXlsb2FkOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIHRoaXMubG9nLnZlcmJvc2UoJ0lvU2VydmljZScsICdkaW5nKCVzKScsIHBheWxvYWQpXG5cbiAgICBjb25zdCBlOiBJb0V2ZW50ID0ge1xuICAgICAgbmFtZTogJ2RpbmcnLFxuICAgICAgcGF5bG9hZCxcbiAgICB9XG4gICAgdGhpcy5ldmVudC5uZXh0KGUpXG4gICAgLy8gVE9ETzogZ2V0IHRoZSByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIGFzeW5jIHJwY1VwZGF0ZShwYXlsb2FkOiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmV2ZW50Lm5leHQoe1xuICAgICAgbmFtZTogICAgICd1cGRhdGUnLFxuICAgICAgcGF5bG9hZCxcbiAgICB9KVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKlxuICAgKiBTb2NrZXQgQWN0aW9uc1xuICAgKlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBzb2NrZXRDbG9zZShjb2RlPzogbnVtYmVyLCByZWFzb24/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvZy52ZXJib3NlKCdJb1NlcnZpY2UnLCAnc29ja2V0Q2xvc2UoKScpXG5cbiAgICBpZiAoIXRoaXMuX3dlYnNvY2tldCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdubyB3ZWJzb2NrZXQnKVxuICAgIH1cblxuICAgIHRoaXMuX3dlYnNvY2tldC5jbG9zZShjb2RlLCByZWFzb24pXG4gICAgdGhpcy5zb2NrZXRVcGRhdGVTdGF0ZSgpXG5cbiAgICBjb25zdCBmdXR1cmUgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgIHRoaXMucmVhZHlTdGF0ZS5waXBlKFxuICAgICAgICBmaWx0ZXIocyA9PiBzID09PSBSZWFkeVN0YXRlLkNMT1NFRCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlc29sdmUpXG4gICAgfSlcbiAgICBhd2FpdCBmdXR1cmVcblxuICAgIHJldHVyblxuICB9XG5cbiAgcHJpdmF0ZSBzb2NrZXRTZW5kKGlvRXZlbnQ6IElvRXZlbnQpIHtcbiAgICB0aGlzLmxvZy5zaWxseSgnSW9TZXJ2aWNlJywgJ3NvY2tldFNlbmQoe25hbWU6JXMsIHBheWxvYWQ6JXN9KScsIGlvRXZlbnQubmFtZSwgaW9FdmVudC5wYXlsb2FkKVxuXG4gICAgaWYgKCF0aGlzLl93ZWJzb2NrZXQpIHtcbiAgICAgIHRoaXMubG9nLnNpbGx5KCdJb1NlcnZpY2UnLCAnc29ja2V0U2VuZCgpIG5vIF93ZWJzb2NrZXQnKVxuICAgIH1cblxuICAgIGNvbnN0IHN0ckV2dCA9IEpTT04uc3RyaW5naWZ5KGlvRXZlbnQpXG4gICAgdGhpcy5zZW5kQnVmZmVyLnB1c2goc3RyRXZ0KVxuXG4gICAgLy8gWFhYIGNhbiBtb3ZlIHRoaXMgdG8gb25PcGVuP1xuICAgIHRoaXMuc29ja2V0U2VuZEJ1ZmZlcigpXG4gIH1cblxuICBwcml2YXRlIHNvY2tldFNlbmRCdWZmZXIoKTogdm9pZCB7XG4gICAgdGhpcy5sb2cuc2lsbHkoJ0lvU2VydmljZScsICdzb2NrZXRTZW5kQnVmZmVyKCkgbGVuZ3RoOiVzJywgdGhpcy5zZW5kQnVmZmVyLmxlbmd0aClcblxuICAgIGlmICghdGhpcy5fd2Vic29ja2V0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3NvY2tldFNlbmRCdWZmZXIoKTogbm8gX3dlYnNvY2tldCcpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3dlYnNvY2tldC5yZWFkeVN0YXRlICE9PSBXZWJTb2NrZXQuT1BFTikge1xuICAgICAgdGhpcy5sb2cud2FybignSW9TZXJ2aWNlJywgJ3NvY2tldFNlbmRCdWZmZXIoKSByZWFkeVN0YXRlIGlzIG5vdCBPUEVOLCBzZW5kIGpvYiBkZWxheWVkLicpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB3aGlsZSAodGhpcy5zZW5kQnVmZmVyLmxlbmd0aCkge1xuICAgICAgY29uc3QgYnVmID0gdGhpcy5zZW5kQnVmZmVyLnNoaWZ0KClcbiAgICAgIHRoaXMubG9nLnNpbGx5KCdJb1NlcnZpY2UnLCAnc29ja2V0U2VuZEJ1ZmZlcigpIHNlbmRpbmcoJXMpJywgYnVmKVxuICAgICAgdGhpcy5fd2Vic29ja2V0LnNlbmQoYnVmKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc29ja2V0VXBkYXRlU3RhdGUoKSB7XG4gICAgdGhpcy5sb2cudmVyYm9zZSgnSW9TZXJ2aWNlJywgJ3NvY2tldFVwZGF0ZVN0YXRlKCkgaXMgJXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWR5U3RhdGVbdGhpcy5fd2Vic29ja2V0LnJlYWR5U3RhdGVdLFxuICAgICAgICAgICAgICAgICAgICApXG5cbiAgICBpZiAoIXRoaXMuX3dlYnNvY2tldCkge1xuICAgICAgdGhpcy5sb2cuZXJyb3IoJ0lvU2VydmljZScsICdzb2NrZXRVcGRhdGVTdGF0ZSgpIG5vIF93ZWJzb2NrZXQnKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5fcmVhZHlTdGF0ZS5uZXh0KHRoaXMuX3dlYnNvY2tldC5yZWFkeVN0YXRlKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKlxuICAgKiBTb2NrZXQgRXZlbnRzIExpc3RlbmVyXG4gICAqXG4gICAqL1xuICBwcml2YXRlIHNvY2tldE9uTWVzc2FnZShtZXNzYWdlOiBNZXNzYWdlRXZlbnQpIHtcbiAgICB0aGlzLmxvZy52ZXJib3NlKCdJb1NlcnZpY2UnLCAnb25NZXNzYWdlKHtkYXRhOiAlc30pJywgbWVzc2FnZS5kYXRhKVxuXG4gICAgY29uc3QgZGF0YSA9IG1lc3NhZ2UuZGF0YSAvLyBXZWJTb2NrZXQgZGF0YVxuXG4gICAgY29uc3QgaW9FdmVudDogSW9FdmVudCA9IHtcbiAgICAgIG5hbWU6ICAgICAncmF3JyxcbiAgICAgIHBheWxvYWQ6ICBkYXRhLFxuICAgIH0gLy8gdGhpcyBpcyBkZWZhdWx0IGlvIGV2ZW50IGZvciB1bmtub3duIGZvcm1hdCBtZXNzYWdlXG5cbiAgICB0cnkge1xuICAgICAgY29uc3Qgb2JqID0gSlNPTi5wYXJzZShkYXRhKVxuICAgICAgaW9FdmVudC5uYW1lID0gb2JqLm5hbWVcbiAgICAgIGlvRXZlbnQucGF5bG9hZCA9IG9iai5wYXlsb2FkXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2cud2FybignSW9TZXJ2aWNlJywgJ29uTWVzc2FnZSBwYXJzZSBtZXNzYWdlIGZhaWwuIHNhdmUgYXMgUkFXJylcbiAgICB9XG5cbiAgICB0aGlzLm10T2JzZXJ2ZXIubmV4dChpb0V2ZW50KVxuICB9XG5cbiAgcHJpdmF0ZSBzb2NrZXRPbkVycm9yKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMubG9nLnNpbGx5KCdJb1NlcnZpY2UnLCAnc29ja2V0T25FcnJvciglcyknLCBldmVudClcbiAgICAvLyB0aGlzLl93ZWJzb2NrZXQgPSBudWxsXG4gIH1cblxuICAvKipcbiAgICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0Nsb3NlRXZlbnRcbiAgICogY29kZTogMTAwNlx0Q0xPU0VfQUJOT1JNQUxcbiAgICogIC0gUmVzZXJ2ZWQuIFVzZWQgdG8gaW5kaWNhdGUgdGhhdCBhIGNvbm5lY3Rpb24gd2FzIGNsb3NlZCBhYm5vcm1hbGx5XG4gICAqICAgICh0aGF0IGlzLCB3aXRoIG5vIGNsb3NlIGZyYW1lIGJlaW5nIHNlbnQpIHdoZW4gYSBzdGF0dXMgY29kZSBpcyBleHBlY3RlZC5cbiAgICovXG4gIHByaXZhdGUgc29ja2V0T25DbG9zZShjbG9zZUV2ZW50OiBDbG9zZUV2ZW50KSB7XG4gICAgdGhpcy5sb2cudmVyYm9zZSgnSW9TZXJ2aWNlJywgJ3NvY2tldE9uQ2xvc2Uoe2NvZGU6JXMsIHJlYXNvbjolcywgcmV0dXJuVmFsdWU6JXN9KScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VFdmVudC5jb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlRXZlbnQucmVhc29uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlRXZlbnQucmV0dXJuVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICB0aGlzLnNvY2tldFVwZGF0ZVN0YXRlKClcbiAgICAvKipcbiAgICAgKiByZWNvbm5lY3QgaW5zaWRlIG9uQ2xvc2VcbiAgICAgKi9cbiAgICBpZiAodGhpcy5hdXRvUmVjb25uZWN0KSB7XG4gICAgICB0aGlzLnN0YXRlLm9uKCdwZW5kaW5nJylcbiAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuY29ubmVjdFJ4U29ja2V0KClcbiAgICAgICAgICB0aGlzLnN0YXRlLm9uKHRydWUpXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICB0aGlzLmxvZy53YXJuKCdJb1NlcnZpY2UnLCAnc29ja2V0T25DbG9zZSgpIGF1dG9SZWNvbm5lY3QoKSBleGNlcHRpb246ICVzJywgZSlcbiAgICAgICAgICB0aGlzLnN0YXRlLm9mZih0cnVlKVxuICAgICAgICB9XG4gICAgICB9LCAxMDAwKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0YXRlLm9mZih0cnVlKVxuICAgIH1cbiAgICB0aGlzLl93ZWJzb2NrZXQgPSBudWxsXG5cbiAgICBpZiAoIWNsb3NlRXZlbnQud2FzQ2xlYW4pIHtcbiAgICAgIHRoaXMubG9nLndhcm4oJ0lvU2VydmljZScsICdzb2NrZXRPbkNsb3NlKCkgZXZlbnQud2FzQ2xlYW4gRkFMU0UnKVxuICAgICAgLy8gVE9ETyBlbWl0IGVycm9yXG4gICAgfVxuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8uanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvYW5ndWxhci9hbmd1bGFyLyIsInNvdXJjZXMiOlsic3JjL3dlY2hhdHkvaW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFDTCxlQUFlLEVBQ2YsVUFBVSxFQUVWLE9BQU8sR0FDUixNQUF3QixNQUFNLENBQUE7QUFDL0IsT0FBTyxFQUNMLE1BQU0sRUFDTixLQUFLLEdBQ04sTUFBd0IsZ0JBQWdCLENBQUE7QUFFekMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFZLFFBQVEsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU8sY0FBYyxDQUFBO0FBc0IzQyxNQUFNLENBQU4sSUFBWSxVQUtYO0FBTEQsV0FBWSxVQUFVO0lBQ3BCLGtDQUFjLFNBQVMsQ0FBQyxNQUFNLFlBQUEsQ0FBQTtJQUM5QixtQ0FBYyxTQUFTLENBQUMsT0FBTyxhQUFBLENBQUE7SUFDL0Isc0NBQWMsU0FBUyxDQUFDLFVBQVUsZ0JBQUEsQ0FBQTtJQUNsQyxnQ0FBYyxTQUFTLENBQUMsSUFBSSxVQUFBLENBQUE7QUFDOUIsQ0FBQyxFQUxXLFVBQVUsS0FBVixVQUFVLFFBS3JCO0FBT0QsTUFBTSxPQUFPLFNBQVM7SUEwQnBCO1FBZlEsa0JBQWEsR0FBRyxJQUFJLENBQUE7UUFDcEIsUUFBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQTtRQUVkLG9CQUFlLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQSxDQUFDLGFBQWE7UUFDekMsYUFBUSxHQUFHLHlDQUF5QyxDQUFBO1FBQ3BELGFBQVEsR0FBRyxXQUFXLENBQUE7UUFNL0IsZUFBVSxHQUFhLEVBQUUsQ0FBQTtRQUsvQixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDLENBQUE7SUFDaEQsQ0FBQztJQXZCRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFlB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SyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUN4QixVQUFVLENBQUMsR0FBUyxFQUFFO2dCQUNwQixJQUFJO29CQUNGLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFBO29CQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtpQkFDcEI7Z0JBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ1YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLCtDQUErQyxFQUFFLENBQUMsQ0FBQyxDQUFBO29CQUM5RSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtpQkFDckI7WUFDSCxDQUFDLENBQUEsRUFBRSxJQUFJLENBQUMsQ0FBQTtTQUNUO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtTQUNyQjtRQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFBO1FBRXRCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxzQ0FBc0MsQ0FBQyxDQUFBO1lBQ2xFLGtCQUFrQjtTQUNuQjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZFUlNJT04gfSAgICAgIGZyb20gJy4uL2NvbmZpZydcblxuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBPYnNlcnZhYmxlLFxuICBPYnNlcnZlcixcbiAgU3ViamVjdCxcbn0gICAgICAgICAgICAgICAgICAgZnJvbSAncnhqcydcbmltcG9ydCB7XG4gIGZpbHRlcixcbiAgc2hhcmUsXG59ICAgICAgICAgICAgICAgICAgIGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBCcm9sb2cgfSAgICAgICBmcm9tICdicm9sb2cnXG5pbXBvcnQgeyBTdGF0ZVN3aXRjaCB9ICBmcm9tICdzdGF0ZS1zd2l0Y2gnXG5cbmV4cG9ydCB0eXBlIFdlY2hhdHlFdmVudE5hbWUgPVxuICAgICdzY2FuJ1xuICB8ICdsb2dpbicgfCAnbG9nb3V0J1xuICB8ICdyZXNldCcgfCAnc2h1dGRvd24nXG4gIHwgJ2RpbmcnICB8ICdkb25nJ1xuICB8ICdtZXNzYWdlJ1xuICB8ICdoZWFydGJlYXQnXG4gIHwgJ3VwZGF0ZSdcbiAgfCAnZXJyb3InXG5cbmV4cG9ydCB0eXBlIFNlcnZlckV2ZW50TmFtZSA9XG4gICdzeXMnXG5cbmV4cG9ydCB0eXBlIElvRXZlbnROYW1lID0gJ3JhdycgfCBXZWNoYXR5RXZlbnROYW1lIHwgU2VydmVyRXZlbnROYW1lXG5cbmV4cG9ydCBpbnRlcmZhY2UgSW9FdmVudCB7XG4gIG5hbWU6IElvRXZlbnROYW1lLFxuICBwYXlsb2FkOiBhbnksXG59XG5cbmV4cG9ydCBlbnVtIFJlYWR5U3RhdGUge1xuICBDTE9TRUQgICAgICA9IFdlYlNvY2tldC5DTE9TRUQsXG4gIENMT1NJTkcgICAgID0gV2ViU29ja2V0LkNMT1NJTkcsXG4gIENPTk5FQ1RJTkcgID0gV2ViU29ja2V0LkNPTk5FQ1RJTkcsXG4gIE9QRU4gICAgICAgID0gV2ViU29ja2V0Lk9QRU4sXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW9TZXJ2aWNlU25hcHNob3Qge1xuICByZWFkeVN0YXRlOiBSZWFkeVN0YXRlXG4gIGV2ZW50OiAgICAgSW9FdmVudFxufVxuXG5leHBvcnQgY2xhc3MgSW9TZXJ2aWNlIHtcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL1JlYWN0aXZlWC9yeGpzL2Jsb2IvbWFzdGVyL3NyYy9vYnNlcnZhYmxlL2RvbS9XZWJTb2NrZXRTdWJqZWN0LnRzXG4gIHB1YmxpYyBldmVudDogU3ViamVjdDxJb0V2ZW50PlxuXG4gIHByaXZhdGUgX3JlYWR5U3RhdGU6IEJlaGF2aW9yU3ViamVjdDxSZWFkeVN0YXRlPlxuICBwdWJsaWMgZ2V0IHJlYWR5U3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlYWR5U3RhdGUuYXNPYnNlcnZhYmxlKClcbiAgfVxuXG4gIHB1YmxpYyBzbmFwc2hvdDogSW9TZXJ2aWNlU25hcHNob3RcblxuICBwcml2YXRlIGF1dG9SZWNvbm5lY3QgPSB0cnVlXG4gIHByaXZhdGUgbG9nID0gQnJvbG9nLmluc3RhbmNlKClcblxuICBwcml2YXRlIHJlYWRvbmx5IENPTk5FQ1RfVElNRU9VVCA9IDEwICogMTAwMCAvLyAxMCBzZWNvbmRzXG4gIHByaXZhdGUgcmVhZG9ubHkgRU5EUE9JTlQgPSAnd3NzOi8vYXBpLmNoYXRpZS5pby92MC93ZWJzb2NrZXQvdG9rZW4vJ1xuICBwcml2YXRlIHJlYWRvbmx5IFBST1RPQ09MID0gJ3dlYnwwLjAuMSdcblxuICBwcml2YXRlIF90b2tlbjogc3RyaW5nIC8vIEZJWE1FIHBvc3NpYmxlIGJlIGB1bmRlZmluZWRgXG4gIHByaXZhdGUgX3dlYnNvY2tldDogV2ViU29ja2V0IHwgbnVsbFxuICBwcml2YXRlIG1vT2JzZXJ2ZXI6IE9ic2VydmVyPElvRXZlbnQ+IC8vIE1vYmlsZSBPcmlnaW5hdGVkLiBtb09ic2VydmVyLm5leHQoKSBtZWFucyBtb2JpbGUgaXMgc2VuZGluZ1xuICBwcml2YXRlIG10T2JzZXJ2ZXI6IE9ic2VydmVyPElvRXZlbnQ+IC8vIE1vYmlsZSBUZXJtaW5hdGVkLiBtdE9ic2VydmVyLm5leHQoKSBtZWFucyBtb2JpbGUgaXMgcmVjZWl2aW5nXG4gIHByaXZhdGUgc2VuZEJ1ZmZlcjogc3RyaW5nW10gPSBbXVxuXG4gIHByaXZhdGUgc3RhdGU6IFN0YXRlU3dpdGNoXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5sb2cudmVyYm9zZSgnSW9TZXJ2aWNlJywgJ2NvbnN0cnVjdG9yKCknKVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5sb2cudmVyYm9zZSgnSW9TZXJ2aWNlJywgJ2luaXQoKScpXG5cbiAgICBpZiAodGhpcy5zdGF0ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdyZS1pbml0JylcbiAgICB9XG5cbiAgICB0aGlzLnNuYXBzaG90ID0ge1xuICAgICAgcmVhZHlTdGF0ZTogUmVhZHlTdGF0ZS5DTE9TRUQsXG4gICAgICBldmVudDogICAgIG51bGwsXG4gICAgfVxuXG4gICAgdGhpcy5fcmVhZHlTdGF0ZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmVhZHlTdGF0ZT4oUmVhZHlTdGF0ZS5DTE9TRUQpXG4gICAgdGhpcy5zdGF0ZSA9IG5ldyBTdGF0ZVN3aXRjaCgnSW9TZXJ2aWNlJywgdGhpcy5sb2cpXG4gICAgdGhpcy5zdGF0ZS5zZXRMb2codGhpcy5sb2cpXG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5pbml0U3RhdGVEZWFsZXIoKVxuICAgICAgYXdhaXQgdGhpcy5pbml0UnhTb2NrZXQoKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nLnNpbGx5KCdJb1NlcnZpY2UnLCAnaW5pdCgpIGV4Y2VwdGlvbjogJXMnLCBlLm1lc3NhZ2UpXG4gICAgICB0aHJvdyBlXG4gICAgfVxuXG4gICAgdGhpcy5yZWFkeVN0YXRlLnN1YnNjcmliZShzID0+IHtcbiAgICAgIHRoaXMubG9nLnNpbGx5KCdJb1NlcnZpY2UnLCAnaW5pdCgpIHJlYWR5U3RhdGUuc3Vic2NyaWJlKCVzKScsIFJlYWR5U3RhdGVbc10pXG4gICAgICB0aGlzLnNuYXBzaG90LnJlYWR5U3RhdGUgPSBzXG4gICAgfSlcbiAgICAvLyBJTVBPUlRBTlQ6IHN1YnNjcmliZSB0byBldmVudCBhbmQgbWFrZSBpdCBIT1QhXG4gICAgdGhpcy5ldmVudC5zdWJzY3JpYmUocyA9PiB7XG4gICAgICB0aGlzLmxvZy5zaWxseSgnSW9TZXJ2aWNlJywgJ2luaXQoKSBldmVudC5zdWJzY3JpYmUoe25hbWU6JXN9KScsIHMubmFtZSlcbiAgICAgIHRoaXMuc25hcHNob3QuZXZlbnQgPSBzXG4gICAgfSlcblxuICAgIHJldHVyblxuICB9XG5cbiAgcHVibGljIHRva2VuKCk6IHN0cmluZ1xuICBwdWJsaWMgdG9rZW4obmV3VG9rZW46IHN0cmluZyk6IHZvaWRcblxuICBwdWJsaWMgdG9rZW4obmV3VG9rZW4/OiBzdHJpbmcpOiBzdHJpbmcgfCB2b2lkIHtcbiAgICB0aGlzLmxvZy5zaWxseSgnSW9TZXJ2aWNlJywgJ3Rva2VuKCVzKScsIG5ld1Rva2VuKVxuICAgIGlmIChuZXdUb2tlbikge1xuICAgICAgdGhpcy5fdG9rZW4gPSBuZXdUb2tlblxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHJldHVybiB0aGlzLl90b2tlblxuICB9XG5cbiAgYXN5bmMgc3RhcnQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5sb2cudmVyYm9zZSgnSW9TZXJ2aWNlJywgJ3N0YXJ0KCkgd2l0aCB0b2tlbjolcycsIHRoaXMuX3Rva2VuKVxuXG4gICAgaWYgKCF0aGlzLl90b2tlbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzdGFydCgpIHdpdGhvdXQgdG9rZW4nKVxuICAgIH1cblxuICAgIGlmICh0aGlzLnN0YXRlLm9uKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignc3RhdGUgaXMgYWxyZWFkeSBPTicpXG4gICAgfVxuICAgIGlmICh0aGlzLnN0YXRlLnBlbmRpbmcoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzdGF0ZSBpcyBwZW5kaW5nJylcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlLm9uKCdwZW5kaW5nJylcblxuICAgIHRoaXMuYXV0b1JlY29ubmVjdCA9IHRydWVcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmNvbm5lY3RSeFNvY2tldCgpXG4gICAgICB0aGlzLnN0YXRlLm9uKHRydWUpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2cud2FybignSW9TZXJ2aWNlJywgJ3N0YXJ0KCkgZmFpbGVkOiVzJywgZS5tZXNzYWdlKVxuXG4gICAgICB0aGlzLnN0YXRlLm9mZih0cnVlKVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHN0b3AoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5sb2cudmVyYm9zZSgnSW9TZXJ2aWNlJywgJ3N0b3AoKScpXG5cbiAgICBpZiAodGhpcy5zdGF0ZS5vZmYoKSkge1xuICAgICAgdGhpcy5sb2cud2FybignSW9TZXJ2aWNlJywgJ3N0b3AoKSBzdGF0ZSBpcyBhbHJlYWR5IG9mZicpXG4gICAgICBpZiAodGhpcy5zdGF0ZS5wZW5kaW5nKCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdzdGF0ZSBwZW5kaW5nKCkgaXMgdHJ1ZScpXG4gICAgICB9XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlLm9mZigncGVuZGluZycpXG5cbiAgICB0aGlzLmF1dG9SZWNvbm5lY3QgPSBmYWxzZVxuXG4gICAgaWYgKCF0aGlzLl93ZWJzb2NrZXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbm8gd2Vic29ja2V0JylcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLnNvY2tldENsb3NlKDEwMDAsICdJb1NlcnZpY2Uuc3RvcCgpJylcbiAgICB0aGlzLnN0YXRlLm9mZih0cnVlKVxuXG4gICAgcmV0dXJuXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVzdGFydCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvZy52ZXJib3NlKCdJb1NlcnZpY2UnLCAncmVzdGFydCgpJylcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5zdG9wKClcbiAgICAgIGF3YWl0IHRoaXMuc3RhcnQoKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nLmVycm9yKCdJb1NlcnZpY2UnLCAncmVzdGFydCgpIGVycm9yOiVzJywgZS5tZXNzYWdlKVxuICAgICAgdGhyb3cgZVxuICAgIH1cbiAgICByZXR1cm5cbiAgfVxuXG4gIHByaXZhdGUgaW5pdFN0YXRlRGVhbGVyKCkge1xuICAgIHRoaXMubG9nLnZlcmJvc2UoJ0lvU2VydmljZScsICdpbml0U3RhdGVEZWFsZXIoKScpXG5cbiAgICBjb25zdCBpc1JlYWR5U3RhdGVPcGVuID0gKHM6IFJlYWR5U3RhdGUpID0+IHMgPT09IFJlYWR5U3RhdGUuT1BFTlxuXG4gICAgdGhpcy5yZWFkeVN0YXRlLnBpcGUoXG4gICAgICBmaWx0ZXIoaXNSZWFkeVN0YXRlT3BlbiksXG4gICAgKVxuICAgICAgLnN1YnNjcmliZShvcGVuID0+IHRoaXMuc3RhdGVPbk9wZW4oKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgc3ViamVjdCBmcm9tIHRoZSBzcGVjaWZpZWQgb2JzZXJ2ZXIgYW5kIG9ic2VydmFibGUuXG4gICAqICAtIGh0dHBzOi8vZ2l0aHViLmNvbS9SZWFjdGl2ZS1FeHRlbnNpb25zL1J4SlMvYmxvYi9tYXN0ZXIvZG9jL2FwaS9zdWJqZWN0cy9zdWJqZWN0Lm1kXG4gICAqIENyZWF0ZSBhbiBSeC5TdWJqZWN0IHVzaW5nIFN1YmplY3QuY3JlYXRlIHRoYXQgYWxsb3dzIG9uTmV4dCB3aXRob3V0IHN1YnNjcmlwdGlvblxuICAgKiAgIEEgc29ja2V0IGltcGxlbWVudGF0aW9uIChleGFtcGxlLCBkb24ndCB1c2UpXG4gICAqICAtIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzM0ODYyMjg2LzExMjM5NTVcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgaW5pdFJ4U29ja2V0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubG9nLnZlcmJvc2UoJ0lvU2VydmljZScsICdpbml0UnhTb2NrZXQoKScpXG5cbiAgICBpZiAodGhpcy5ldmVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdyZS1pbml0IGlzIG5vdCBwZXJtaXR0ZWQnKVxuICAgIH1cblxuICAgIC8vIDEuIE1vYmlsZSBPcmlnaW5hdGVkLiBtb09ic2VydmVyLm5leHQoKSBtZWFucyBtb2JpbGUgaXMgc2VuZGluZ1xuICAgIHRoaXMubW9PYnNlcnZlciA9IHtcbiAgICAgIG5leHQ6ICAgICB0aGlzLnNvY2tldFNlbmQuYmluZCh0aGlzKSxcbiAgICAgIGVycm9yOiAgICB0aGlzLnNvY2tldENsb3NlLmJpbmQodGhpcyksXG4gICAgICBjb21wbGV0ZTogdGhpcy5zb2NrZXRDbG9zZS5iaW5kKHRoaXMpLFxuICAgIH1cblxuICAgIC8vIDIuIE1vYmlsZSBUZXJtaW5hdGVkLiBtdE9ic2VydmVyLm5leHQoKSBtZWFucyBtb2JpbGUgaXMgcmVjZWl2aW5nXG4gICAgY29uc3Qgb2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcjogT2JzZXJ2ZXI8SW9FdmVudD4pID0+IHtcbiAgICAgIHRoaXMubG9nLnZlcmJvc2UoJ0lvU2VydmljZScsICdpbml0UnhTb2NrZXQoKSBPYnNlcnZhYmxlLmNyZWF0ZSgpJylcbiAgICAgIHRoaXMubXRPYnNlcnZlciA9IG9ic2VydmVyXG5cbiAgICAgIHJldHVybiB0aGlzLnNvY2tldENsb3NlLmJpbmQodGhpcylcbiAgICB9KVxuXG4gICAgLy8gMy4gU3ViamVjdCBmb3IgTU8gJiBNVCBPYnNlcnZlcnNcbiAgICB0aGlzLmV2ZW50ID0gU3ViamVjdC5jcmVhdGUodGhpcy5tb09ic2VydmVyLCBvYnNlcnZhYmxlLnBpcGUoc2hhcmUoKSkpXG5cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY29ubmVjdFJ4U29ja2V0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubG9nLnZlcmJvc2UoJ0lvU2VydmljZScsICdjb25uZWN0UnhTb2NrZXQoKScpXG5cbiAgICAvLyBGSVhNRTogY2hlY2sgJiBjbG9zZSB0aGUgb2xkIG9uZVxuICAgIGlmICh0aGlzLl93ZWJzb2NrZXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYWxyZWFkeSBoYXMgYSB3ZWJzb2NrZXQnKVxuICAgIH1cblxuICAgIC8vIGlmICh0aGlzLnN0YXRlLnRhcmdldCgpICE9PSAnb3BlbidcbiAgICAvLyAgIHx8IHRoaXMuc3RhdGUuY3VycmVudCgpICE9PSAnb3BlbidcbiAgICAvLyAgIHx8IHRoaXMuc3RhdGUuc3RhYmxlKClcbiAgICBpZiAodGhpcy5zdGF0ZS5vZmYoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzd2l0Y2ggc3RhdGUgaXMgb2ZmJylcbiAgICB9IGVsc2UgaWYgKCF0aGlzLnN0YXRlLnBlbmRpbmcoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzd2l0Y2ggc3RhdGUgaXMgYWxyZWFkeSBPTicpXG4gICAgfVxuXG4gICAgdGhpcy5fd2Vic29ja2V0ID0gbmV3IFdlYlNvY2tldCh0aGlzLmVuZFBvaW50KCksIHRoaXMuUFJPVE9DT0wpXG4gICAgdGhpcy5zb2NrZXRVcGRhdGVTdGF0ZSgpXG5cbiAgICBjb25zdCBvbk9wZW5Qcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5sb2cudmVyYm9zZSgnSW9TZXJ2aWNlJywgJ2Nvbm5lY3RSeFNvY2tldCgpIFByb21pc2UoKScpXG5cbiAgICAgIGNvbnN0IGlkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3dlYnNvY2tldCA9IG51bGxcbiAgICAgICAgY29uc3QgZSA9IG5ldyBFcnJvcigncnhTb2NrZXQgY29ubmVjdCB0aW1lb3V0IGFmdGVyICdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICArIE1hdGgucm91bmQodGhpcy5DT05ORUNUX1RJTUVPVVQgLyAxMDAwKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICByZWplY3QoZSlcbiAgICAgIH0sIHRoaXMuQ09OTkVDVF9USU1FT1VUKSAvLyB0aW1lb3V0IGZvciBjb25uZWN0IHdlYnNvY2tldFxuXG4gICAgICB0aGlzLl93ZWJzb2NrZXQub25vcGVuID0gKGUpID0+IHtcbiAgICAgICAgdGhpcy5sb2cudmVyYm9zZSgnSW9TZXJ2aWNlJywgJ2Nvbm5lY3RSeFNvY2tldCgpIFByb21pc2UoKSBXZWJTb2NrZXQub25PcGVuKCkgcmVzb2x2ZSgpJylcbiAgICAgICAgdGhpcy5zb2NrZXRVcGRhdGVTdGF0ZSgpXG4gICAgICAgIGNsZWFyVGltZW91dChpZClcbiAgICAgICAgcmVzb2x2ZSgpXG4gICAgICB9XG4gICAgfSlcblxuICAgIC8vIEhhbmRsZSB0aGUgcGF5bG9hZFxuICAgIHRoaXMuX3dlYnNvY2tldC5vbm1lc3NhZ2UgPSB0aGlzLnNvY2tldE9uTWVzc2FnZS5iaW5kKHRoaXMpXG4gICAgLy8gRGVhbCB0aGUgZXZlbnRcbiAgICB0aGlzLl93ZWJzb2NrZXQub25lcnJvciAgID0gdGhpcy5zb2NrZXRPbkVycm9yLmJpbmQodGhpcylcbiAgICB0aGlzLl93ZWJzb2NrZXQub25jbG9zZSAgID0gdGhpcy5zb2NrZXRPbkNsb3NlLmJpbmQodGhpcylcblxuICAgIHJldHVybiBvbk9wZW5Qcm9taXNlXG4gIH1cblxuICBwcml2YXRlIGVuZFBvaW50KCk6IHN0cmluZyB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5FTkRQT0lOVCArIHRoaXMuX3Rva2VuXG4gICAgdGhpcy5sb2cudmVyYm9zZSgnSW9TZXJ2aWNlJywgJ2VuZFBvaW50KCkgPT4gJXMnLCB1cmwpXG4gICAgcmV0dXJuIHVybFxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKlxuICAgKiBTdGF0ZSBFdmVudCBMaXN0ZW5lcnNcbiAgICpcbiAgICovXG4gIHByaXZhdGUgc3RhdGVPbk9wZW4oKSB7XG4gICAgdGhpcy5sb2cudmVyYm9zZSgnSW9TZXJ2aWNlJywgJ3N0YXRlT25PcGVuKCknKVxuXG4gICAgdGhpcy5zb2NrZXRTZW5kQnVmZmVyKClcbiAgICB0aGlzLnJwY1VwZGF0ZSgnZnJvbSBzdGF0ZU9uT3BlbigpJylcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICpcbiAgICogSW8gUlBDIE1ldGhvZHNcbiAgICpcbiAgICovXG4gIGFzeW5jIHJwY0RpbmcocGF5bG9hZDogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICB0aGlzLmxvZy52ZXJib3NlKCdJb1NlcnZpY2UnLCAnZGluZyglcyknLCBwYXlsb2FkKVxuXG4gICAgY29uc3QgZTogSW9FdmVudCA9IHtcbiAgICAgIG5hbWU6ICdkaW5nJyxcbiAgICAgIHBheWxvYWQsXG4gICAgfVxuICAgIHRoaXMuZXZlbnQubmV4dChlKVxuICAgIC8vIFRPRE86IGdldCB0aGUgcmV0dXJuIHZhbHVlXG4gIH1cblxuICBhc3luYyBycGNVcGRhdGUocGF5bG9hZDogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5ldmVudC5uZXh0KHtcbiAgICAgIG5hbWU6ICAgICAndXBkYXRlJyxcbiAgICAgIHBheWxvYWQsXG4gICAgfSlcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICpcbiAgICogU29ja2V0IEFjdGlvbnNcbiAgICpcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgc29ja2V0Q2xvc2UoY29kZT86IG51bWJlciwgcmVhc29uPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5sb2cudmVyYm9zZSgnSW9TZXJ2aWNlJywgJ3NvY2tldENsb3NlKCknKVxuXG4gICAgaWYgKCF0aGlzLl93ZWJzb2NrZXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbm8gd2Vic29ja2V0JylcbiAgICB9XG5cbiAgICB0aGlzLl93ZWJzb2NrZXQuY2xvc2UoY29kZSwgcmVhc29uKVxuICAgIHRoaXMuc29ja2V0VXBkYXRlU3RhdGUoKVxuXG4gICAgY29uc3QgZnV0dXJlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICB0aGlzLnJlYWR5U3RhdGUucGlwZShcbiAgICAgICAgZmlsdGVyKHMgPT4gcyA9PT0gUmVhZHlTdGF0ZS5DTE9TRUQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyZXNvbHZlKVxuICAgIH0pXG4gICAgYXdhaXQgZnV0dXJlXG5cbiAgICByZXR1cm5cbiAgfVxuXG4gIHByaXZhdGUgc29ja2V0U2VuZChpb0V2ZW50OiBJb0V2ZW50KSB7XG4gICAgdGhpcy5sb2cuc2lsbHkoJ0lvU2VydmljZScsICdzb2NrZXRTZW5kKHtuYW1lOiVzLCBwYXlsb2FkOiVzfSknLCBpb0V2ZW50Lm5hbWUsIGlvRXZlbnQucGF5bG9hZClcblxuICAgIGlmICghdGhpcy5fd2Vic29ja2V0KSB7XG4gICAgICB0aGlzLmxvZy5zaWxseSgnSW9TZXJ2aWNlJywgJ3NvY2tldFNlbmQoKSBubyBfd2Vic29ja2V0JylcbiAgICB9XG5cbiAgICBjb25zdCBzdHJFdnQgPSBKU09OLnN0cmluZ2lmeShpb0V2ZW50KVxuICAgIHRoaXMuc2VuZEJ1ZmZlci5wdXNoKHN0ckV2dClcblxuICAgIC8vIFhYWCBjYW4gbW92ZSB0aGlzIHRvIG9uT3Blbj9cbiAgICB0aGlzLnNvY2tldFNlbmRCdWZmZXIoKVxuICB9XG5cbiAgcHJpdmF0ZSBzb2NrZXRTZW5kQnVmZmVyKCk6IHZvaWQge1xuICAgIHRoaXMubG9nLnNpbGx5KCdJb1NlcnZpY2UnLCAnc29ja2V0U2VuZEJ1ZmZlcigpIGxlbmd0aDolcycsIHRoaXMuc2VuZEJ1ZmZlci5sZW5ndGgpXG5cbiAgICBpZiAoIXRoaXMuX3dlYnNvY2tldCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzb2NrZXRTZW5kQnVmZmVyKCk6IG5vIF93ZWJzb2NrZXQnKVxuICAgIH1cblxuICAgIGlmICh0aGlzLl93ZWJzb2NrZXQucmVhZHlTdGF0ZSAhPT0gV2ViU29ja2V0Lk9QRU4pIHtcbiAgICAgIHRoaXMubG9nLndhcm4oJ0lvU2VydmljZScsICdzb2NrZXRTZW5kQnVmZmVyKCkgcmVhZHlTdGF0ZSBpcyBub3QgT1BFTiwgc2VuZCBqb2IgZGVsYXllZC4nKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgd2hpbGUgKHRoaXMuc2VuZEJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGJ1ZiA9IHRoaXMuc2VuZEJ1ZmZlci5zaGlmdCgpXG4gICAgICB0aGlzLmxvZy5zaWxseSgnSW9TZXJ2aWNlJywgJ3NvY2tldFNlbmRCdWZmZXIoKSBzZW5kaW5nKCVzKScsIGJ1ZilcbiAgICAgIHRoaXMuX3dlYnNvY2tldC5zZW5kKGJ1ZilcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNvY2tldFVwZGF0ZVN0YXRlKCkge1xuICAgIHRoaXMubG9nLnZlcmJvc2UoJ0lvU2VydmljZScsICdzb2NrZXRVcGRhdGVTdGF0ZSgpIGlzICVzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFkeVN0YXRlW3RoaXMuX3dlYnNvY2tldC5yZWFkeVN0YXRlXSxcbiAgICAgICAgICAgICAgICAgICAgKVxuXG4gICAgaWYgKCF0aGlzLl93ZWJzb2NrZXQpIHtcbiAgICAgIHRoaXMubG9nLmVycm9yKCdJb1NlcnZpY2UnLCAnc29ja2V0VXBkYXRlU3RhdGUoKSBubyBfd2Vic29ja2V0JylcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuX3JlYWR5U3RhdGUubmV4dCh0aGlzLl93ZWJzb2NrZXQucmVhZHlTdGF0ZSlcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICpcbiAgICogU29ja2V0IEV2ZW50cyBMaXN0ZW5lclxuICAgKlxuICAgKi9cbiAgcHJpdmF0ZSBzb2NrZXRPbk1lc3NhZ2UobWVzc2FnZTogTWVzc2FnZUV2ZW50KSB7XG4gICAgdGhpcy5sb2cudmVyYm9zZSgnSW9TZXJ2aWNlJywgJ29uTWVzc2FnZSh7ZGF0YTogJXN9KScsIG1lc3NhZ2UuZGF0YSlcblxuICAgIGNvbnN0IGRhdGEgPSBtZXNzYWdlLmRhdGEgLy8gV2ViU29ja2V0IGRhdGFcblxuICAgIGNvbnN0IGlvRXZlbnQ6IElvRXZlbnQgPSB7XG4gICAgICBuYW1lOiAgICAgJ3JhdycsXG4gICAgICBwYXlsb2FkOiAgZGF0YSxcbiAgICB9IC8vIHRoaXMgaXMgZGVmYXVsdCBpbyBldmVudCBmb3IgdW5rbm93biBmb3JtYXQgbWVzc2FnZVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG9iaiA9IEpTT04ucGFyc2UoZGF0YSlcbiAgICAgIGlvRXZlbnQubmFtZSA9IG9iai5uYW1lXG4gICAgICBpb0V2ZW50LnBheWxvYWQgPSBvYmoucGF5bG9hZFxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nLndhcm4oJ0lvU2VydmljZScsICdvbk1lc3NhZ2UgcGFyc2UgbWVzc2FnZSBmYWlsLiBzYXZlIGFzIFJBVycpXG4gICAgfVxuXG4gICAgdGhpcy5tdE9ic2VydmVyLm5leHQoaW9FdmVudClcbiAgfVxuXG4gIHByaXZhdGUgc29ja2V0T25FcnJvcihldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmxvZy5zaWxseSgnSW9TZXJ2aWNlJywgJ3NvY2tldE9uRXJyb3IoJXMpJywgZXZlbnQpXG4gICAgLy8gdGhpcy5fd2Vic29ja2V0ID0gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9DbG9zZUV2ZW50XG4gICAqIGNvZGU6IDEwMDZcdENMT1NFX0FCTk9STUFMXG4gICAqICAtIFJlc2VydmVkLiBVc2VkIHRvIGluZGljYXRlIHRoYXQgYSBjb25uZWN0aW9uIHdhcyBjbG9zZWQgYWJub3JtYWxseVxuICAgKiAgICAodGhhdCBpcywgd2l0aCBubyBjbG9zZSBmcmFtZSBiZWluZyBzZW50KSB3aGVuIGEgc3RhdHVzIGNvZGUgaXMgZXhwZWN0ZWQuXG4gICAqL1xuICBwcml2YXRlIHNvY2tldE9uQ2xvc2UoY2xvc2VFdmVudDogQ2xvc2VFdmVudCkge1xuICAgIHRoaXMubG9nLnZlcmJvc2UoJ0lvU2VydmljZScsICdzb2NrZXRPbkNsb3NlKHtjb2RlOiVzLCByZWFzb246JXMsIHJldHVyblZhbHVlOiVzfSknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlRXZlbnQuY29kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZUV2ZW50LnJlYXNvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZUV2ZW50LnJldHVyblZhbHVlLFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgdGhpcy5zb2NrZXRVcGRhdGVTdGF0ZSgpXG4gICAgLyoqXG4gICAgICogcmVjb25uZWN0IGluc2lkZSBvbkNsb3NlXG4gICAgICovXG4gICAgaWYgKHRoaXMuYXV0b1JlY29ubmVjdCkge1xuICAgICAgdGhpcy5zdGF0ZS5vbigncGVuZGluZycpXG4gICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmNvbm5lY3RSeFNvY2tldCgpXG4gICAgICAgICAgdGhpcy5zdGF0ZS5vbih0cnVlKVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgdGhpcy5sb2cud2FybignSW9TZXJ2aWNlJywgJ3NvY2tldE9uQ2xvc2UoKSBhdXRvUmVjb25uZWN0KCkgZXhjZXB0aW9uOiAlcycsIGUpXG4gICAgICAgICAgdGhpcy5zdGF0ZS5vZmYodHJ1ZSlcbiAgICAgICAgfVxuICAgICAgfSwgMTAwMClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdGF0ZS5vZmYodHJ1ZSlcbiAgICB9XG4gICAgdGhpcy5fd2Vic29ja2V0ID0gbnVsbFxuXG4gICAgaWYgKCFjbG9zZUV2ZW50Lndhc0NsZWFuKSB7XG4gICAgICB0aGlzLmxvZy53YXJuKCdJb1NlcnZpY2UnLCAnc29ja2V0T25DbG9zZSgpIGV2ZW50Lndhc0NsZWFuIEZBTFNFJylcbiAgICAgIC8vIFRPRE8gZW1pdCBlcnJvclxuICAgIH1cbiAgfVxufVxuIl19

@@ -1,4 +0,4 @@

import { __awaiter, __decorate } from "tslib";
import { __awaiter } from "tslib";
import { VERSION } from '../config';
import { Component, EventEmitter, Input, NgZone, Output, OnDestroy, OnInit, } from '@angular/core';
import { Component, EventEmitter, Input, NgZone, Output, } from '@angular/core';
import { Subject, interval, } from 'rxjs';

@@ -8,3 +8,3 @@ import { share, tap, takeUntil, } from 'rxjs/operators';

import { IoService, } from './io';
let WechatyComponent = class WechatyComponent {
export class WechatyComponent {
constructor(log, ngZone) {

@@ -165,3 +165,20 @@ this.log = log;

}
};
}
WechatyComponent.decorators = [
{ type: Component, args: [{
// tslint:disable-next-line:component-selector
selector: 'wechaty',
/**
* http://localhost:4200/app.component.html 404 (Not Found)
* zone.js:344 Unhandled Promise rejection: Failed to load app.component.html
* https://github.com/angular/angular-cli/issues/2592#issuecomment-266635266
* https://github.com/angular/angular-cli/issues/2293
*
* console.log from angular:
* If you're using Webpack you should inline the template and the styles,
* see https://goo.gl/X2J8zc.
*/
template: '<ng-content></ng-content>'
},] }
];
WechatyComponent.ctorParameters = () => [

@@ -171,41 +188,11 @@ { type: Brolog },

];
__decorate([
Output()
], WechatyComponent.prototype, "message", void 0);
__decorate([
Output()
], WechatyComponent.prototype, "scan", void 0);
__decorate([
Output()
], WechatyComponent.prototype, "login", void 0);
__decorate([
Output()
], WechatyComponent.prototype, "logout", void 0);
__decorate([
Output()
], WechatyComponent.prototype, "error", void 0);
__decorate([
Output()
], WechatyComponent.prototype, "heartbeat", void 0);
__decorate([
Input()
], WechatyComponent.prototype, "token", null);
WechatyComponent = __decorate([
Component({
// tslint:disable-next-line:component-selector
selector: 'wechaty',
/**
* http://localhost:4200/app.component.html 404 (Not Found)
* zone.js:344 Unhandled Promise rejection: Failed to load app.component.html
* https://github.com/angular/angular-cli/issues/2592#issuecomment-266635266
* https://github.com/angular/angular-cli/issues/2293
*
* console.log from angular:
* If you're using Webpack you should inline the template and the styles,
* see https://goo.gl/X2J8zc.
*/
template: '<ng-content></ng-content>'
})
], WechatyComponent);
export { WechatyComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VjaGF0eS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY2hhdGllL2FuZ3VsYXIvIiwic291cmNlcyI6WyJzcmMvd2VjaGF0eS93ZWNoYXR5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUVuQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQXdCLGVBQWUsQ0FBQTtBQUV4QyxPQUFPLEVBRUwsT0FBTyxFQUVQLFFBQVEsR0FDVCxNQUF3QixNQUFNLENBQUE7QUFDL0IsT0FBTyxFQUNMLEtBQUssRUFDTCxHQUFHLEVBQ0gsU0FBUyxHQUNWLE1BQXdCLGdCQUFnQixDQUFBO0FBRXpDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBUSxRQUFRLENBQUE7QUFFakMsT0FBTyxFQUVMLFNBQVMsR0FHVixNQUF3QixNQUFNLENBQUE7QUFrQy9CLElBQWEsZ0JBQWdCLEdBQTdCLE1BQWEsZ0JBQWdCO0lBMEMzQixZQUNVLEdBQWMsRUFDZCxNQUFjO1FBRGQsUUFBRyxHQUFILEdBQUcsQ0FBVztRQUNkLFdBQU0sR0FBTixNQUFNLENBQVE7UUEzQ2QsWUFBTyxHQUFLLElBQUksWUFBWSxFQUFVLENBQUE7UUFDdEMsU0FBSSxHQUFRLElBQUksWUFBWSxFQUFZLENBQUE7UUFDeEMsVUFBSyxHQUFPLElBQUksWUFBWSxFQUFZLENBQUE7UUFDeEMsV0FBTSxHQUFNLElBQUksWUFBWSxFQUFZLENBQUE7UUFDeEMsVUFBSyxHQUFPLElBQUksWUFBWSxFQUFTLENBQUE7UUFDckMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUE7UUE0QnJDLGFBQVEsR0FBd0IsSUFBSSxDQUFBO1FBSzVDLFlBQU8sR0FBRyxDQUFDLENBQUE7UUFDWCxjQUFTLEdBQUcsSUFBSSxJQUFJ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QUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBRXhELE1BQU0sU0FBUyxHQUFZO1lBQ3pCLElBQUksRUFBRSxRQUFRO1lBQ2QsT0FBTyxFQUFFLE1BQU07U0FDaEIsQ0FBQTtRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUN0QyxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUE7SUFDbEMsQ0FBQztDQUVGLENBQUE7O1lBaEttQixNQUFNO1lBQ04sTUFBTTs7QUEzQ2Q7SUFBVCxNQUFNLEVBQUU7aURBQXVDO0FBQ3RDO0lBQVQsTUFBTSxFQUFFOzhDQUF5QztBQUN4QztJQUFULE1BQU0sRUFBRTsrQ0FBeUM7QUFDeEM7SUFBVCxNQUFNLEVBQUU7Z0RBQXlDO0FBQ3hDO0lBQVQsTUFBTSxFQUFFOytDQUFzQztBQUNyQztJQUFULE1BQU0sRUFBRTttREFBb0M7QUFJcEM7SUFBUixLQUFLLEVBQUU7NkNBcUJQO0FBL0JVLGdCQUFnQjtJQWxCNUIsU0FBUyxDQUFDO1FBQ1QsOENBQThDO1FBQzlDLFFBQVEsRUFBRSxTQUFTO1FBQ25COzs7Ozs7Ozs7V0FTRztRQUNILFFBQVEsRUFBRSwyQkFBMkI7S0FJdEMsQ0FBQztHQUNXLGdCQUFnQixDQTJNNUI7U0EzTVksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVkVSU0lPTiB9IGZyb20gJy4uL2NvbmZpZydcblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE91dHB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG59ICAgICAgICAgICAgICAgICAgIGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmltcG9ydCB7XG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIFN1YnNjcmlwdGlvbixcbiAgaW50ZXJ2YWwsXG59ICAgICAgICAgICAgICAgICAgIGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBzaGFyZSxcbiAgdGFwLFxuICB0YWtlVW50aWwsXG59ICAgICAgICAgICAgICAgICAgIGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBCcm9sb2cgfSAgIGZyb20gJ2Jyb2xvZydcblxuaW1wb3J0IHtcbiAgSW9FdmVudCxcbiAgSW9TZXJ2aWNlLFxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tdW51c2VkLXZhcmlhYmxlXG4gIFJlYWR5U3RhdGUsXG59ICAgICAgICAgICAgICAgICAgIGZyb20gJy4vaW8nXG5cbi8qKlxuICogZm9yIHBheWxvYWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY2FuSW5mbyB7XG4gIHFyY29kZTogc3RyaW5nXG4gIHN0YXR1czogbnVtYmVyXG4gIGRhdGE/OiAgc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckluZm8ge1xuICBpZDogbnVtYmVyXG4gIG5hbWU6IHN0cmluZ1xufVxuXG5AQ29tcG9uZW50KHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ3dlY2hhdHknLFxuICAvKipcbiAgICogaHR0cDovL2xvY2FsaG9zdDo0MjAwL2FwcC5jb21wb25lbnQuaHRtbCA0MDQgKE5vdCBGb3VuZClcbiAgICogem9uZS5qczozNDQgVW5oYW5kbGVkIFByb21pc2UgcmVqZWN0aW9uOiBGYWlsZWQgdG8gbG9hZCBhcHAuY29tcG9uZW50Lmh0bWxcbiAgICogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci1jbGkvaXNzdWVzLzI1OTIjaXNzdWVjb21tZW50LTI2NjYzNTI2NlxuICAgKiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyLWNsaS9pc3N1ZXMvMjI5M1xuICAgKlxuICAgKiBjb25zb2xlLmxvZyBmcm9tIGFuZ3VsYXI6XG4gICAqICAgSWYgeW91J3JlIHVzaW5nIFdlYnBhY2sgeW91IHNob3VsZCBpbmxpbmUgdGhlIHRlbXBsYXRlIGFuZCB0aGUgc3R5bGVzLFxuICAgKiAgIHNlZSBodHRwczovL2dvby5nbC9YMko4emMuXG4gICAqL1xuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBzdHlsZVVybHM6IFsnLi93ZWNoYXR5LmNvbXBvbmVudC5jc3MnXSxcbiAgLy8gdGVtcGxhdGVVcmw6ICd3ZWNoYXR5LmNvbXBvbmVudC5odG1sJyxcbiAgLy8gbW9kdWxlSWQ6IG1vZHVsZS5pZCxcbn0pXG5leHBvcnQgY2xhc3MgV2VjaGF0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQE91dHB1dCgpIG1lc3NhZ2UgICA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpXG4gIEBPdXRwdXQoKSBzY2FuICAgICAgPSBuZXcgRXZlbnRFbWl0dGVyPFNjYW5JbmZvPigpXG4gIEBPdXRwdXQoKSBsb2dpbiAgICAgPSBuZXcgRXZlbnRFbWl0dGVyPFVzZXJJbmZvPigpXG4gIEBPdXRwdXQoKSBsb2dvdXQgICAgPSBuZXcgRXZlbnRFbWl0dGVyPFVzZXJJbmZvPigpXG4gIEBPdXRwdXQoKSBlcnJvciAgICAgPSBuZXcgRXZlbnRFbWl0dGVyPEVycm9yPigpXG4gIEBPdXRwdXQoKSBoZWFydGJlYXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuXG4gIHByaXZhdGUgX3Rva2VuOiBzdHJpbmdcbiAgZ2V0IHRva2VuKCkgeyByZXR1cm4gdGhpcy5fdG9rZW4gfVxuICBASW5wdXQoKSBzZXQgdG9rZW4oX25ld1Rva2VuOiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvZy52ZXJib3NlKCdXZWNoYXR5Q29tcG9uZW50JywgJ3NldCB0b2tlbiglcyknLCBfbmV3VG9rZW4pXG5cbiAgICBjb25zdCBuZXdUb2tlbiA9IChfbmV3VG9rZW4gfHwgJycpLnRyaW0oKVxuXG4gICAgaWYgKHRoaXMuX3Rva2VuID09PSBuZXdUb2tlbikge1xuICAgICAgdGhpcy5sb2cuc2lsbHkoJ1dlY2hhdHlDb21wb25lbnQnLCAnc2V0IHRva2VuKCVzKSBub3QgbmV3JywgbmV3VG9rZW4pXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLl90b2tlbiA9IG5ld1Rva2VuXG5cbiAgICBpZiAoIXRoaXMuaW9TZXJ2aWNlKSB7XG4gICAgICB0aGlzLmxvZy5zaWxseSgnV2VjaGF0eUNvbXBvbmVudCcsICdzZXQgdG9rZW4oKSBza2lwIHRva2VuIGluaXQgdmFsdWUnKVxuICAgICAgdGhpcy5sb2cuc2lsbHkoJ1dlY2hhdHlDb21wb25lbnQnLCAnc2V0IHRva2VuKCkgYmVjYXVzZSBpb1NlcnZpY2Ugd2lsbCBkbyBpdCBpbnNpZGUgbmdPbkluaXQoKScpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLmxvZy5zaWxseSgnV2VjaGF0eUNvbXBvbmVudCcsICdzZXQgdG9rZW4oJXMpIHJlbG9hZGluZyBpb1NlcnZpY2Ugbm93Li4uJywgbmV3VG9rZW4pXG4gICAgdGhpcy5pb1NlcnZpY2UudG9rZW4odGhpcy50b2tlbilcbiAgICB0aGlzLmlvU2VydmljZS5yZXN0YXJ0KCkgLy8gYXN5bmNcbiAgfVxuXG4gIHByaXZhdGUgdGltZXI6IE9ic2VydmFibGU8YW55PlxuICBwcml2YXRlIHRpbWVyU3ViOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbFxuICBwcml2YXRlIGVuZGVyOiBTdWJqZWN0PGFueT5cblxuICBwcml2YXRlIGlvU2VydmljZTogSW9TZXJ2aWNlXG5cbiAgY291bnRlciA9IDBcbiAgdGltZXN0YW1wID0gbmV3IERhdGUoKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbG9nOiAgICBCcm9sb2csXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgKSB7XG4gICAgdGhpcy5sb2cudmVyYm9zZSgnV2VjaGF0eUNvbXBvbmVudCcsICdjb25zdHJ1Y3RvcigpIHYlcycsIFZFUlNJT04pXG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmxvZy52ZXJib3NlKCdXZWNoYXR5Q29tcG9uZW50JywgJ25nT25Jbml0KCkgd2l0aCB0b2tlbjogJyArIHRoaXMudG9rZW4pXG5cbiAgICB0aGlzLmlvU2VydmljZSA9IG5ldyBJb1NlcnZpY2UoKVxuICAgIGF3YWl0IHRoaXMuaW9TZXJ2aWNlLmluaXQoKVxuXG4gICAgdGhpcy5pb1NlcnZpY2UuZXZlbnQuc3Vic2NyaWJlKHRoaXMub25Jby5iaW5kKHRoaXMpKVxuICAgIHRoaXMubG9nLnNpbGx5KCdXZWNoYXR5Q29tcG9uZW50JywgJ25nT25Jbml0KCkgaW9TZXJ2aWNlLmV2ZW50LnN1YnNjcmliZSgpLWVkJylcblxuICAgIC8qKlxuICAgICAqIEBJbnB1dCh0b2tlbikgbWlnaHQgbm90IGluaXRpYWxpemVkIGluIGNvbnN0cnVjdG9yKClcbiAgICAgKi9cbiAgICBpZiAodGhpcy50b2tlbikge1xuICAgICAgdGhpcy5pb1NlcnZpY2UudG9rZW4odGhpcy50b2tlbilcbiAgICAgIGF3YWl0IHRoaXMuaW9TZXJ2aWNlLnN0YXJ0KClcbiAgICB9XG5cbiAgICAvLyB0aGlzLnN0YXJ0VGltZXIoKVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5sb2cudmVyYm9zZSgnV2VjaGF0eUNvbXBvbmVudCcsICduZ09uRGVzdHJveSgpJylcblxuICAgIHRoaXMuZW5kVGltZXIoKVxuXG4gICAgaWYgKHRoaXMuaW9TZXJ2aWNlKSB7XG4gICAgICB0aGlzLmlvU2VydmljZS5zdG9wKClcbiAgICAgIC8vIHRoaXMuaW9TZXJ2aWNlID0gbnVsbFxuICAgIH1cbiAgfVxuXG4gIG9uSW8oZTogSW9FdmVudCkge1xuICAgIHRoaXMubG9nLnNpbGx5KCdXZWNoYXR5Q29tcG9uZW50JywgJ29uSW8jJWQoJXMpJywgdGhpcy5jb3VudGVyKyssIGUubmFtZSlcbiAgICB0aGlzLnRpbWVzdGFtcCA9IG5ldyBEYXRlKClcblxuICAgIHN3aXRjaCAoZS5uYW1lKSB7XG4gICAgICBjYXNlICdzY2FuJzpcbiAgICAgICAgdGhpcy5zY2FuLmVtaXQoZS5wYXlsb2FkIGFzIFNjYW5JbmZvKVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnbG9naW4nOlxuICAgICAgICB0aGlzLmxvZ2luLmVtaXQoZS5wYXlsb2FkIGFzIFVzZXJJbmZvKVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnbG9nb3V0JzpcbiAgICAgICAgdGhpcy5sb2dvdXQuZW1pdChlLnBheWxvYWQgYXMgVXNlckluZm8pXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdtZXNzYWdlJzpcbiAgICAgICAgdGhpcy5tZXNzYWdlLmVtaXQoZS5wYXlsb2FkKVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICB0aGlzLmVycm9yLmVtaXQoZS5wYXlsb2FkKVxuICAgICAgICBicmVha1xuXG4gICAgICBjYXNlICdkaW5nJzpcbiAgICAgIGNhc2UgJ2RvbmcnOlxuICAgICAgY2FzZSAncmF3JzpcbiAgICAgICAgdGhpcy5oZWFydGJlYXQuZW1pdChlLm5hbWUgKyAnWycgKyBlLnBheWxvYWQgKyAnXScpXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdoZWFydGJlYXQnOlxuICAgICAgICB0aGlzLmhlYXJ0YmVhdC5lbWl0KGUucGF5bG9hZClcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAnc3lzJzpcbiAgICAgICAgdGhpcy5sb2cuc2lsbHkoJ1dlY2hhdHlDb21wb25lbnQnLCAnb25Jbyglcyk6ICVzJywgZS5uYW1lLCBlLnBheWxvYWQpXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMubG9nLndhcm4oJ1dlY2hhdHlDb21wb25lbnQnLCAnb25JbygpIHVua25vd24gZXZlbnQgbmFtZTogJXNbJXNdJywgZS5uYW1lLCBlLnBheWxvYWQpXG4gICAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlc2V0KHJlYXNvbjogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2cudmVyYm9zZSgnV2VjaGF0eUNvbXBvbmVudCcsICdyZXNldCglcyknLCByZWFzb24pXG5cbiAgICBjb25zdCByZXNldEV2ZW50OiBJb0V2ZW50ID0ge1xuICAgICAgbmFtZTogJ3Jlc2V0JyxcbiAgICAgIHBheWxvYWQ6IHJlYXNvbixcbiAgICB9XG4gICAgaWYgKCF0aGlzLmlvU2VydmljZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdubyBpb1NlcnZpY2UnKVxuICAgIH1cbiAgICB0aGlzLmlvU2VydmljZS5ldmVudC5uZXh0KHJlc2V0RXZlbnQpXG4gIH1cblxuICBwdWJsaWMgc2h1dGRvd24ocmVhc29uOiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvZy52ZXJib3NlKCdXZWNoYXR5Q29tcG9uZW50JywgJ3NodXRkb3duKCVzKScsIHJlYXNvbilcblxuICAgIGNvbnN0IHNodXRkb3duRXZlbnQ6IElvRXZlbnQgPSB7XG4gICAgICBuYW1lOiAnc2h1dGRvd24nLFxuICAgICAgcGF5bG9hZDogcmVhc29uLFxuICAgIH1cbiAgICBpZiAoIXRoaXMuaW9TZXJ2aWNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGlvU2VydmljZScpXG4gICAgfVxuICAgIHRoaXMuaW9TZXJ2aWNlLmV2ZW50Lm5leHQoc2h1dGRvd25FdmVudClcbiAgfVxuXG4gIHN0YXJ0VGltZXIoKSB7XG4gICAgdGhpcy5sb2cudmVyYm9zZSgnV2VjaGF0eUNvbXBvbmVudCcsICdzdGFydFRpbWVyKCknKVxuICAgIHRoaXMuZW5kZXIgPSBuZXcgU3ViamVjdCgpXG5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9wcm90cmFjdG9yL2lzc3Vlcy8zMzQ5I2lzc3VlY29tbWVudC0yMzIyNTMwNTlcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vanVsaWVtci9uZ2NvbmYtMjAxNi16b25lcy9ibG9iL21hc3Rlci9zcmMvYXBwL21haW4udHMjTDM4XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy50aW1lciA9IGludGVydmFsKDMwMDApLnBpcGUoXG4gICAgICAgIHRhcChpID0+IHsgdGhpcy5sb2cudmVyYm9zZSgnZG8nLCAnICVkJywgaSkgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmVuZGVyKSxcbiAgICAgICAgc2hhcmUoKSxcbiAgICAgIClcbiAgICAgIC8vIC5wdWJsaXNoKClcblxuICAgIH0pXG5cbiAgICB0aGlzLnRpbWVyU3ViID0gdGhpcy50aW1lci5zdWJzY3JpYmUodCA9PiB7XG4gICAgICB0aGlzLmNvdW50ZXIgPSB0XG5cbiAgICAgIGlmICghdGhpcy5pb1NlcnZpY2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdubyBpb1NlcnZpY2UnKVxuICAgICAgfVxuICAgICAgdGhpcy5pb1NlcnZpY2UucnBjRGluZyh0aGlzLmNvdW50ZXIpXG4gICAgICAvLyB0aGlzLm1lc3NhZ2UuZW1pdCgnIycgKyB0aGlzLnRva2VuICsgJzonICsgZG9uZylcbiAgICB9KVxuXG4gIH1cblxuICBlbmRUaW1lcigpIHtcbiAgICB0aGlzLmxvZy52ZXJib3NlKCdXZWNoYXR5Q29tcG9uZW50JywgJ2VuZFRpbWVyKCknKVxuXG4gICAgaWYgKHRoaXMudGltZXJTdWIpIHtcbiAgICAgIHRoaXMudGltZXJTdWIudW5zdWJzY3JpYmUoKVxuICAgICAgdGhpcy50aW1lclN1YiA9IG51bGxcbiAgICB9XG4gICAgLy8gdGhpcy50aW1lciA9IG51bGxcblxuICAgIGlmICh0aGlzLmVuZGVyKSB7XG4gICAgICB0aGlzLmVuZGVyLm5leHQobnVsbClcbiAgICAgIC8vIHRoaXMuZW5kZXIgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgbG9nb2ZmKHJlYXNvbj86IHN0cmluZykgeyAvLyB1c2UgdGhlIG5hbWUgYGxvZ29mZmAgaGVyZSB0byBwcmV2ZW50IGNvbmZsaWN0IHdpdGggQE91dHB1dChsb2dvdXQpXG4gICAgdGhpcy5sb2cuc2lsbHkoJ1dlY2hhdHlDb21wb25lbnQnLCAnbG9nb2ZmKCVzKScsIHJlYXNvbilcblxuICAgIGNvbnN0IHF1aXRFdmVudDogSW9FdmVudCA9IHtcbiAgICAgIG5hbWU6ICdsb2dvdXQnLFxuICAgICAgcGF5bG9hZDogcmVhc29uLFxuICAgIH1cbiAgICB0aGlzLmlvU2VydmljZS5ldmVudC5uZXh0KHF1aXRFdmVudClcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVhZHlTdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pb1NlcnZpY2UucmVhZHlTdGF0ZVxuICB9XG5cbn1cbiJdfQ==
WechatyComponent.propDecorators = {
message: [{ type: Output }],
scan: [{ type: Output }],
login: [{ type: Output }],
logout: [{ type: Output }],
error: [{ type: Output }],
heartbeat: [{ type: Output }],
token: [{ type: Input }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VjaGF0eS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvYW5ndWxhci9hbmd1bGFyLyIsInNvdXJjZXMiOlsic3JjL3dlY2hhdHkvd2VjaGF0eS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFbkMsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEdBR1AsTUFBd0IsZUFBZSxDQUFBO0FBRXhDLE9BQU8sRUFFTCxPQUFPLEVBRVAsUUFBUSxHQUNULE1BQXdCLE1BQU0sQ0FBQTtBQUMvQixPQUFPLEVBQ0wsS0FBSyxFQUNMLEdBQUcsRUFDSCxTQUFTLEdBQ1YsTUFBd0IsZ0JBQWdCLENBQUE7QUFFekMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFRLFFBQVEsQ0FBQTtBQUVqQyxPQUFPLEVBRUwsU0FBUyxHQUdWLE1BQXdCLE1BQU0sQ0FBQTtBQWtDL0IsTUFBTSxPQUFPLGdCQUFnQjtJQTBDM0IsWUFDVSxHQUFjLEVBQ2QsTUFBYztRQURkLFFBQUcsR0FBSCxHQUFHLENBQVc7UUFDZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBM0NkLFlBQU8sR0FBSyxJQUFJLFlBQVksRUFBVSxDQUFBO1FBQ3RDLFNBQUksR0FBUSxJQUFJLFlBQVksRUFBWSxDQUFBO1FBQ3hDLFVBQUssR0FBTyxJQUFJLFlBQVksRUFBWSxDQUFBO1FBQ3hDLFdBQU0sR0FBTSxJQUFJLFlBQVksRUFBWSxDQUFBO1FBQ3hDLFVBQUssR0FBTyxJQUFJLFlBQVksRUFBUyxDQUFBO1FBQ3JDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFBO1FBNEJyQyxhQUFRLEdBQXdCLElBQUksQ0FBQTtRQUs1QyxZQUFPLEdBQUcsQ0FBQyxDQUFBO1FBQ1gsY0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUE7UUFNcEIsSUFB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QUFDLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUV4RCxNQUFNLFNBQVMsR0FBWTtZQUN6QixJQUFJLEVBQUUsUUFBUTtZQUNkLE9BQU8sRUFBRSxNQUFNO1NBQ2hCLENBQUE7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDdEMsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFBO0lBQ2xDLENBQUM7OztZQTNORixTQUFTLFNBQUM7Z0JBQ1QsOENBQThDO2dCQUM5QyxRQUFRLEVBQUUsU0FBUztnQkFDbkI7Ozs7Ozs7OzttQkFTRztnQkFDSCxRQUFRLEVBQUUsMkJBQTJCO2FBSXRDOzs7WUF4Q1EsTUFBTTtZQWxCYixNQUFNOzs7c0JBNERMLE1BQU07bUJBQ04sTUFBTTtvQkFDTixNQUFNO3FCQUNOLE1BQU07b0JBQ04sTUFBTTt3QkFDTixNQUFNO29CQUlOLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWRVJTSU9OIH0gZnJvbSAnLi4vY29uZmlnJ1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT3V0cHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbn0gICAgICAgICAgICAgICAgICAgZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgU3Vic2NyaXB0aW9uLFxuICBpbnRlcnZhbCxcbn0gICAgICAgICAgICAgICAgICAgZnJvbSAncnhqcydcbmltcG9ydCB7XG4gIHNoYXJlLFxuICB0YXAsXG4gIHRha2VVbnRpbCxcbn0gICAgICAgICAgICAgICAgICAgZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB7IEJyb2xvZyB9ICAgZnJvbSAnYnJvbG9nJ1xuXG5pbXBvcnQge1xuICBJb0V2ZW50LFxuICBJb1NlcnZpY2UsXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby11bnVzZWQtdmFyaWFibGVcbiAgUmVhZHlTdGF0ZSxcbn0gICAgICAgICAgICAgICAgICAgZnJvbSAnLi9pbydcblxuLyoqXG4gKiBmb3IgcGF5bG9hZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjYW5JbmZvIHtcbiAgcXJjb2RlOiBzdHJpbmdcbiAgc3RhdHVzOiBudW1iZXJcbiAgZGF0YT86ICBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VySW5mbyB7XG4gIGlkOiBudW1iZXJcbiAgbmFtZTogc3RyaW5nXG59XG5cbkBDb21wb25lbnQoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnd2VjaGF0eScsXG4gIC8qKlxuICAgKiBodHRwOi8vbG9jYWxob3N0OjQyMDAvYXBwLmNvbXBvbmVudC5odG1sIDQwNCAoTm90IEZvdW5kKVxuICAgKiB6b25lLmpzOjM0NCBVbmhhbmRsZWQgUHJvbWlzZSByZWplY3Rpb246IEZhaWxlZCB0byBsb2FkIGFwcC5jb21wb25lbnQuaHRtbFxuICAgKiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyLWNsaS9pc3N1ZXMvMjU5MiNpc3N1ZWNvbW1lbnQtMjY2NjM1MjY2XG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXItY2xpL2lzc3Vlcy8yMjkzXG4gICAqXG4gICAqIGNvbnNvbGUubG9nIGZyb20gYW5ndWxhcjpcbiAgICogICBJZiB5b3UncmUgdXNpbmcgV2VicGFjayB5b3Ugc2hvdWxkIGlubGluZSB0aGUgdGVtcGxhdGUgYW5kIHRoZSBzdHlsZXMsXG4gICAqICAgc2VlIGh0dHBzOi8vZ29vLmdsL1gySjh6Yy5cbiAgICovXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIHN0eWxlVXJsczogWycuL3dlY2hhdHkuY29tcG9uZW50LmNzcyddLFxuICAvLyB0ZW1wbGF0ZVVybDogJ3dlY2hhdHkuY29tcG9uZW50Lmh0bWwnLFxuICAvLyBtb2R1bGVJZDogbW9kdWxlLmlkLFxufSlcbmV4cG9ydCBjbGFzcyBXZWNoYXR5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBAT3V0cHV0KCkgbWVzc2FnZSAgID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KClcbiAgQE91dHB1dCgpIHNjYW4gICAgICA9IG5ldyBFdmVudEVtaXR0ZXI8U2NhbkluZm8+KClcbiAgQE91dHB1dCgpIGxvZ2luICAgICA9IG5ldyBFdmVudEVtaXR0ZXI8VXNlckluZm8+KClcbiAgQE91dHB1dCgpIGxvZ291dCAgICA9IG5ldyBFdmVudEVtaXR0ZXI8VXNlckluZm8+KClcbiAgQE91dHB1dCgpIGVycm9yICAgICA9IG5ldyBFdmVudEVtaXR0ZXI8RXJyb3I+KClcbiAgQE91dHB1dCgpIGhlYXJ0YmVhdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG5cbiAgcHJpdmF0ZSBfdG9rZW46IHN0cmluZ1xuICBnZXQgdG9rZW4oKSB7IHJldHVybiB0aGlzLl90b2tlbiB9XG4gIEBJbnB1dCgpIHNldCB0b2tlbihfbmV3VG9rZW46IHN0cmluZykge1xuICAgIHRoaXMubG9nLnZlcmJvc2UoJ1dlY2hhdHlDb21wb25lbnQnLCAnc2V0IHRva2VuKCVzKScsIF9uZXdUb2tlbilcblxuICAgIGNvbnN0IG5ld1Rva2VuID0gKF9uZXdUb2tlbiB8fCAnJykudHJpbSgpXG5cbiAgICBpZiAodGhpcy5fdG9rZW4gPT09IG5ld1Rva2VuKSB7XG4gICAgICB0aGlzLmxvZy5zaWxseSgnV2VjaGF0eUNvbXBvbmVudCcsICdzZXQgdG9rZW4oJXMpIG5vdCBuZXcnLCBuZXdUb2tlbilcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuX3Rva2VuID0gbmV3VG9rZW5cblxuICAgIGlmICghdGhpcy5pb1NlcnZpY2UpIHtcbiAgICAgIHRoaXMubG9nLnNpbGx5KCdXZWNoYXR5Q29tcG9uZW50JywgJ3NldCB0b2tlbigpIHNraXAgdG9rZW4gaW5pdCB2YWx1ZScpXG4gICAgICB0aGlzLmxvZy5zaWxseSgnV2VjaGF0eUNvbXBvbmVudCcsICdzZXQgdG9rZW4oKSBiZWNhdXNlIGlvU2VydmljZSB3aWxsIGRvIGl0IGluc2lkZSBuZ09uSW5pdCgpJylcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMubG9nLnNpbGx5KCdXZWNoYXR5Q29tcG9uZW50JywgJ3NldCB0b2tlbiglcykgcmVsb2FkaW5nIGlvU2VydmljZSBub3cuLi4nLCBuZXdUb2tlbilcbiAgICB0aGlzLmlvU2VydmljZS50b2tlbih0aGlzLnRva2VuKVxuICAgIHRoaXMuaW9TZXJ2aWNlLnJlc3RhcnQoKSAvLyBhc3luY1xuICB9XG5cbiAgcHJpdmF0ZSB0aW1lcjogT2JzZXJ2YWJsZTxhbnk+XG4gIHByaXZhdGUgdGltZXJTdWI6IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsXG4gIHByaXZhdGUgZW5kZXI6IFN1YmplY3Q8YW55PlxuXG4gIHByaXZhdGUgaW9TZXJ2aWNlOiBJb1NlcnZpY2VcblxuICBjb3VudGVyID0gMFxuICB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsb2c6ICAgIEJyb2xvZyxcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICApIHtcbiAgICB0aGlzLmxvZy52ZXJib3NlKCdXZWNoYXR5Q29tcG9uZW50JywgJ2NvbnN0cnVjdG9yKCkgdiVzJywgVkVSU0lPTilcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMubG9nLnZlcmJvc2UoJ1dlY2hhdHlDb21wb25lbnQnLCAnbmdPbkluaXQoKSB3aXRoIHRva2VuOiAnICsgdGhpcy50b2tlbilcblxuICAgIHRoaXMuaW9TZXJ2aWNlID0gbmV3IElvU2VydmljZSgpXG4gICAgYXdhaXQgdGhpcy5pb1NlcnZpY2UuaW5pdCgpXG5cbiAgICB0aGlzLmlvU2VydmljZS5ldmVudC5zdWJzY3JpYmUodGhpcy5vbklvLmJpbmQodGhpcykpXG4gICAgdGhpcy5sb2cuc2lsbHkoJ1dlY2hhdHlDb21wb25lbnQnLCAnbmdPbkluaXQoKSBpb1NlcnZpY2UuZXZlbnQuc3Vic2NyaWJlKCktZWQnKVxuXG4gICAgLyoqXG4gICAgICogQElucHV0KHRva2VuKSBtaWdodCBub3QgaW5pdGlhbGl6ZWQgaW4gY29uc3RydWN0b3IoKVxuICAgICAqL1xuICAgIGlmICh0aGlzLnRva2VuKSB7XG4gICAgICB0aGlzLmlvU2VydmljZS50b2tlbih0aGlzLnRva2VuKVxuICAgICAgYXdhaXQgdGhpcy5pb1NlcnZpY2Uuc3RhcnQoKVxuICAgIH1cblxuICAgIC8vIHRoaXMuc3RhcnRUaW1lcigpXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmxvZy52ZXJib3NlKCdXZWNoYXR5Q29tcG9uZW50JywgJ25nT25EZXN0cm95KCknKVxuXG4gICAgdGhpcy5lbmRUaW1lcigpXG5cbiAgICBpZiAodGhpcy5pb1NlcnZpY2UpIHtcbiAgICAgIHRoaXMuaW9TZXJ2aWNlLnN0b3AoKVxuICAgICAgLy8gdGhpcy5pb1NlcnZpY2UgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgb25JbyhlOiBJb0V2ZW50KSB7XG4gICAgdGhpcy5sb2cuc2lsbHkoJ1dlY2hhdHlDb21wb25lbnQnLCAnb25JbyMlZCglcyknLCB0aGlzLmNvdW50ZXIrKywgZS5uYW1lKVxuICAgIHRoaXMudGltZXN0YW1wID0gbmV3IERhdGUoKVxuXG4gICAgc3dpdGNoIChlLm5hbWUpIHtcbiAgICAgIGNhc2UgJ3NjYW4nOlxuICAgICAgICB0aGlzLnNjYW4uZW1pdChlLnBheWxvYWQgYXMgU2NhbkluZm8pXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdsb2dpbic6XG4gICAgICAgIHRoaXMubG9naW4uZW1pdChlLnBheWxvYWQgYXMgVXNlckluZm8pXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdsb2dvdXQnOlxuICAgICAgICB0aGlzLmxvZ291dC5lbWl0KGUucGF5bG9hZCBhcyBVc2VySW5mbylcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ21lc3NhZ2UnOlxuICAgICAgICB0aGlzLm1lc3NhZ2UuZW1pdChlLnBheWxvYWQpXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgIHRoaXMuZXJyb3IuZW1pdChlLnBheWxvYWQpXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgJ2RpbmcnOlxuICAgICAgY2FzZSAnZG9uZyc6XG4gICAgICBjYXNlICdyYXcnOlxuICAgICAgICB0aGlzLmhlYXJ0YmVhdC5lbWl0KGUubmFtZSArICdbJyArIGUucGF5bG9hZCArICddJylcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ2hlYXJ0YmVhdCc6XG4gICAgICAgIHRoaXMuaGVhcnRiZWF0LmVtaXQoZS5wYXlsb2FkKVxuICAgICAgICBicmVha1xuXG4gICAgICBjYXNlICdzeXMnOlxuICAgICAgICB0aGlzLmxvZy5zaWxseSgnV2VjaGF0eUNvbXBvbmVudCcsICdvbklvKCVzKTogJXMnLCBlLm5hbWUsIGUucGF5bG9hZClcbiAgICAgICAgYnJlYWtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5sb2cud2FybignV2VjaGF0eUNvbXBvbmVudCcsICdvbklvKCkgdW5rbm93biBldmVudCBuYW1lOiAlc1slc10nLCBlLm5hbWUsIGUucGF5bG9hZClcbiAgICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVzZXQocmVhc29uOiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvZy52ZXJib3NlKCdXZWNoYXR5Q29tcG9uZW50JywgJ3Jlc2V0KCVzKScsIHJlYXNvbilcblxuICAgIGNvbnN0IHJlc2V0RXZlbnQ6IElvRXZlbnQgPSB7XG4gICAgICBuYW1lOiAncmVzZXQnLFxuICAgICAgcGF5bG9hZDogcmVhc29uLFxuICAgIH1cbiAgICBpZiAoIXRoaXMuaW9TZXJ2aWNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGlvU2VydmljZScpXG4gICAgfVxuICAgIHRoaXMuaW9TZXJ2aWNlLmV2ZW50Lm5leHQocmVzZXRFdmVudClcbiAgfVxuXG4gIHB1YmxpYyBzaHV0ZG93bihyZWFzb246IHN0cmluZykge1xuICAgIHRoaXMubG9nLnZlcmJvc2UoJ1dlY2hhdHlDb21wb25lbnQnLCAnc2h1dGRvd24oJXMpJywgcmVhc29uKVxuXG4gICAgY29uc3Qgc2h1dGRvd25FdmVudDogSW9FdmVudCA9IHtcbiAgICAgIG5hbWU6ICdzaHV0ZG93bicsXG4gICAgICBwYXlsb2FkOiByZWFzb24sXG4gICAgfVxuICAgIGlmICghdGhpcy5pb1NlcnZpY2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbm8gaW9TZXJ2aWNlJylcbiAgICB9XG4gICAgdGhpcy5pb1NlcnZpY2UuZXZlbnQubmV4dChzaHV0ZG93bkV2ZW50KVxuICB9XG5cbiAgc3RhcnRUaW1lcigpIHtcbiAgICB0aGlzLmxvZy52ZXJib3NlKCdXZWNoYXR5Q29tcG9uZW50JywgJ3N0YXJ0VGltZXIoKScpXG4gICAgdGhpcy5lbmRlciA9IG5ldyBTdWJqZWN0KClcblxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL3Byb3RyYWN0b3IvaXNzdWVzLzMzNDkjaXNzdWVjb21tZW50LTIzMjI1MzA1OVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9qdWxpZW1yL25nY29uZi0yMDE2LXpvbmVzL2Jsb2IvbWFzdGVyL3NyYy9hcHAvbWFpbi50cyNMMzhcbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLnRpbWVyID0gaW50ZXJ2YWwoMzAwMCkucGlwZShcbiAgICAgICAgdGFwKGkgPT4geyB0aGlzLmxvZy52ZXJib3NlKCdkbycsICcgJWQnLCBpKSB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZW5kZXIpLFxuICAgICAgICBzaGFyZSgpLFxuICAgICAgKVxuICAgICAgLy8gLnB1Ymxpc2goKVxuXG4gICAgfSlcblxuICAgIHRoaXMudGltZXJTdWIgPSB0aGlzLnRpbWVyLnN1YnNjcmliZSh0ID0+IHtcbiAgICAgIHRoaXMuY291bnRlciA9IHRcblxuICAgICAgaWYgKCF0aGlzLmlvU2VydmljZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGlvU2VydmljZScpXG4gICAgICB9XG4gICAgICB0aGlzLmlvU2VydmljZS5ycGNEaW5nKHRoaXMuY291bnRlcilcbiAgICAgIC8vIHRoaXMubWVzc2FnZS5lbWl0KCcjJyArIHRoaXMudG9rZW4gKyAnOicgKyBkb25nKVxuICAgIH0pXG5cbiAgfVxuXG4gIGVuZFRpbWVyKCkge1xuICAgIHRoaXMubG9nLnZlcmJvc2UoJ1dlY2hhdHlDb21wb25lbnQnLCAnZW5kVGltZXIoKScpXG5cbiAgICBpZiAodGhpcy50aW1lclN1Yikge1xuICAgICAgdGhpcy50aW1lclN1Yi51bnN1YnNjcmliZSgpXG4gICAgICB0aGlzLnRpbWVyU3ViID0gbnVsbFxuICAgIH1cbiAgICAvLyB0aGlzLnRpbWVyID0gbnVsbFxuXG4gICAgaWYgKHRoaXMuZW5kZXIpIHtcbiAgICAgIHRoaXMuZW5kZXIubmV4dChudWxsKVxuICAgICAgLy8gdGhpcy5lbmRlciA9IG51bGxcbiAgICB9XG4gIH1cblxuICBsb2dvZmYocmVhc29uPzogc3RyaW5nKSB7IC8vIHVzZSB0aGUgbmFtZSBgbG9nb2ZmYCBoZXJlIHRvIHByZXZlbnQgY29uZmxpY3Qgd2l0aCBAT3V0cHV0KGxvZ291dClcbiAgICB0aGlzLmxvZy5zaWxseSgnV2VjaGF0eUNvbXBvbmVudCcsICdsb2dvZmYoJXMpJywgcmVhc29uKVxuXG4gICAgY29uc3QgcXVpdEV2ZW50OiBJb0V2ZW50ID0ge1xuICAgICAgbmFtZTogJ2xvZ291dCcsXG4gICAgICBwYXlsb2FkOiByZWFzb24sXG4gICAgfVxuICAgIHRoaXMuaW9TZXJ2aWNlLmV2ZW50Lm5leHQocXVpdEV2ZW50KVxuICB9XG5cbiAgcHVibGljIGdldCByZWFkeVN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLmlvU2VydmljZS5yZWFkeVN0YXRlXG4gIH1cblxufVxuIl19

@@ -1,20 +0,18 @@

import { __decorate } from "tslib";
import { NgModule } from '@angular/core';
import { WechatyComponent } from './wechaty.component';
let WechatyModule = class WechatyModule {
};
WechatyModule = __decorate([
NgModule({
id: 'wechaty',
declarations: [
WechatyComponent,
],
exports: [
WechatyComponent,
],
})
], WechatyModule);
export { WechatyModule };
export class WechatyModule {
}
WechatyModule.decorators = [
{ type: NgModule, args: [{
id: 'wechaty',
declarations: [
WechatyComponent,
],
exports: [
WechatyComponent,
],
},] }
];
export * from './wechaty.component';
export { ReadyState } from './io';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VjaGF0eS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY2hhdGllL2FuZ3VsYXIvIiwic291cmNlcyI6WyJzcmMvd2VjaGF0eS93ZWNoYXR5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFjLGVBQWUsQ0FBQTtBQUVoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQVd0RCxJQUFhLGFBQWEsR0FBMUIsTUFBYSxhQUFhO0NBQUcsQ0FBQTtBQUFoQixhQUFhO0lBVHpCLFFBQVEsQ0FBQztRQUNSLEVBQUUsRUFBRSxTQUFTO1FBQ2IsWUFBWSxFQUFFO1lBQ1osZ0JBQWdCO1NBQ2pCO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsZ0JBQWdCO1NBQ2pCO0tBQ0YsQ0FBQztHQUNXLGFBQWEsQ0FBRztTQUFoQixhQUFhO0FBRTFCLGNBQWMscUJBQXFCLENBQUE7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gICAgICAgICBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5pbXBvcnQgeyBXZWNoYXR5Q29tcG9uZW50IH0gZnJvbSAnLi93ZWNoYXR5LmNvbXBvbmVudCdcblxuQE5nTW9kdWxlKHtcbiAgaWQ6ICd3ZWNoYXR5JyxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgV2VjaGF0eUNvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFdlY2hhdHlDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdlY2hhdHlNb2R1bGUge31cblxuZXhwb3J0ICogZnJvbSAnLi93ZWNoYXR5LmNvbXBvbmVudCdcbmV4cG9ydCB7IFJlYWR5U3RhdGUgfSBmcm9tICcuL2lvJ1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VjaGF0eS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvYW5ndWxhci9hbmd1bGFyLyIsInNvdXJjZXMiOlsic3JjL3dlY2hhdHkvd2VjaGF0eS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFjLGVBQWUsQ0FBQTtBQUVoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQVd0RCxNQUFNLE9BQU8sYUFBYTs7O1lBVHpCLFFBQVEsU0FBQztnQkFDUixFQUFFLEVBQUUsU0FBUztnQkFDYixZQUFZLEVBQUU7b0JBQ1osZ0JBQWdCO2lCQUNqQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsZ0JBQWdCO2lCQUNqQjthQUNGOztBQUdELGNBQWMscUJBQXFCLENBQUE7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gICAgICAgICBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5pbXBvcnQgeyBXZWNoYXR5Q29tcG9uZW50IH0gZnJvbSAnLi93ZWNoYXR5LmNvbXBvbmVudCdcblxuQE5nTW9kdWxlKHtcbiAgaWQ6ICd3ZWNoYXR5JyxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgV2VjaGF0eUNvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFdlY2hhdHlDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdlY2hhdHlNb2R1bGUge31cblxuZXhwb3J0ICogZnJvbSAnLi93ZWNoYXR5LmNvbXBvbmVudCdcbmV4cG9ydCB7IFJlYWR5U3RhdGUgfSBmcm9tICcuL2lvJ1xuIl19

@@ -1,3 +0,3 @@

import { __awaiter, __decorate } from 'tslib';
import { EventEmitter, NgZone, Output, Input, Component, NgModule } from '@angular/core';
import { __awaiter } from 'tslib';
import { EventEmitter, Component, NgZone, Output, Input, NgModule } from '@angular/core';
import { BehaviorSubject, Observable, Subject, interval } from 'rxjs';

@@ -11,3 +11,3 @@ import { filter, share, tap, takeUntil } from 'rxjs/operators';

*/
const VERSION = '0.6.3';
const VERSION = '0.7.1';

@@ -364,3 +364,3 @@ var ReadyState;

let WechatyComponent = class WechatyComponent {
class WechatyComponent {
constructor(log, ngZone) {

@@ -521,3 +521,20 @@ this.log = log;

}
};
}
WechatyComponent.decorators = [
{ type: Component, args: [{
// tslint:disable-next-line:component-selector
selector: 'wechaty',
/**
* http://localhost:4200/app.component.html 404 (Not Found)
* zone.js:344 Unhandled Promise rejection: Failed to load app.component.html
* https://github.com/angular/angular-cli/issues/2592#issuecomment-266635266
* https://github.com/angular/angular-cli/issues/2293
*
* console.log from angular:
* If you're using Webpack you should inline the template and the styles,
* see https://goo.gl/X2J8zc.
*/
template: '<ng-content></ng-content>'
},] }
];
WechatyComponent.ctorParameters = () => [

@@ -527,55 +544,26 @@ { type: Brolog },

];
__decorate([
Output()
], WechatyComponent.prototype, "message", void 0);
__decorate([
Output()
], WechatyComponent.prototype, "scan", void 0);
__decorate([
Output()
], WechatyComponent.prototype, "login", void 0);
__decorate([
Output()
], WechatyComponent.prototype, "logout", void 0);
__decorate([
Output()
], WechatyComponent.prototype, "error", void 0);
__decorate([
Output()
], WechatyComponent.prototype, "heartbeat", void 0);
__decorate([
Input()
], WechatyComponent.prototype, "token", null);
WechatyComponent = __decorate([
Component({
// tslint:disable-next-line:component-selector
selector: 'wechaty',
/**
* http://localhost:4200/app.component.html 404 (Not Found)
* zone.js:344 Unhandled Promise rejection: Failed to load app.component.html
* https://github.com/angular/angular-cli/issues/2592#issuecomment-266635266
* https://github.com/angular/angular-cli/issues/2293
*
* console.log from angular:
* If you're using Webpack you should inline the template and the styles,
* see https://goo.gl/X2J8zc.
*/
template: '<ng-content></ng-content>'
})
], WechatyComponent);
let WechatyModule = class WechatyModule {
WechatyComponent.propDecorators = {
message: [{ type: Output }],
scan: [{ type: Output }],
login: [{ type: Output }],
logout: [{ type: Output }],
error: [{ type: Output }],
heartbeat: [{ type: Output }],
token: [{ type: Input }]
};
WechatyModule = __decorate([
NgModule({
id: 'wechaty',
declarations: [
WechatyComponent,
],
exports: [
WechatyComponent,
],
})
], WechatyModule);
class WechatyModule {
}
WechatyModule.decorators = [
{ type: NgModule, args: [{
id: 'wechaty',
declarations: [
WechatyComponent,
],
exports: [
WechatyComponent,
],
},] }
];
/**

@@ -582,0 +570,0 @@ * Generated bundle index. Do not edit.

{
"$schema": "./node_modules/ng-packagr/package.schema.json",
"name": "@chatie/angular",
"version": "0.6.3",
"version": "0.7.1",
"description": "Wechaty Component NgModule",

@@ -25,3 +25,3 @@ "license": "Apache-2.0",

"dependencies": {
"tslib": "^1.10.0"
"tslib": "^2.0.0"
},

@@ -35,3 +35,3 @@ "peerDependencies": {

"access": "public",
"tag": "latest"
"tag": "next"
},

@@ -44,7 +44,5 @@ "git": {

"main": "bundles/chatie-angular.umd.js",
"module": "fesm5/chatie-angular.js",
"module": "fesm2015/chatie-angular.js",
"es2015": "fesm2015/chatie-angular.js",
"esm5": "esm5/chatie-angular.js",
"esm2015": "esm2015/chatie-angular.js",
"fesm5": "fesm5/chatie-angular.js",
"fesm2015": "fesm2015/chatie-angular.js",

@@ -51,0 +49,0 @@ "typings": "chatie-angular.d.ts",

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