ngx-seo
Version:
`ngx-seo` is a library to help generate and inject proper JSON-LD objects and Meta tags that allow for social sharing into server-side generated Angular applications using Universal.
297 lines • 24.8 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import { Meta, Title } from '@angular/platform-browser';
import * as i0 from "@angular/core";
import * as i1 from "@angular/platform-browser";
var SeoSocialShareService = /** @class */ (function () {
function SeoSocialShareService(metaService, titleService) {
this.metaService = metaService;
this.titleService = titleService;
}
/**
* @param {?} data
* @return {?}
*/
SeoSocialShareService.prototype.setData = /**
* @param {?} data
* @return {?}
*/
function (data) {
this.setTitle(data.title);
this.setMetaDescription(data.description);
this.setUrl(data.url);
this.setImage(data.image);
this.setPublished(data.published);
this.setModified(data.modified);
this.setAuthor(data.author);
this.setSection(data.section);
this.setType(data.type);
};
/**
* @param {?=} newSection
* @return {?}
*/
SeoSocialShareService.prototype.setSection = /**
* @param {?=} newSection
* @return {?}
*/
function (newSection) {
if (newSection && newSection.length) {
this.metaService.updateTag({ name: 'article:section', content: newSection });
}
else {
this.metaService.removeTag("name='article:section'");
}
};
/**
* @param {?=} site
* @return {?}
*/
SeoSocialShareService.prototype.setTwitterSiteCreator = /**
* @param {?=} site
* @return {?}
*/
function (site) {
if (site && site.length) {
this.metaService.updateTag({ name: 'twitter:site', content: site });
this.metaService.updateTag({ name: 'twitter:creator', content: site });
}
else {
this.metaService.removeTag("name='twitter:site'");
this.metaService.removeTag("name='twitter:creator'");
}
};
/**
* @param {?=} card
* @return {?}
*/
SeoSocialShareService.prototype.setTwitterCard = /**
* @param {?=} card
* @return {?}
*/
function (card) {
if (card && card.length) {
this.metaService.updateTag({ name: 'twitter:card', content: card });
}
else {
this.metaService.removeTag("name='twitter:card'");
}
};
/**
* @param {?=} appId
* @return {?}
*/
SeoSocialShareService.prototype.setFbAppId = /**
* @param {?=} appId
* @return {?}
*/
function (appId) {
if (appId && appId.length) {
this.metaService.updateTag({ property: 'fb:app_id', content: appId });
}
else {
this.metaService.removeTag("property='fb:app_id'");
}
};
/**
* @private
* @param {?=} title
* @return {?}
*/
SeoSocialShareService.prototype.setTitle = /**
* @private
* @param {?=} title
* @return {?}
*/
function (title) {
if (title === void 0) { title = ''; }
this.titleService.setTitle(title);
if (title && title.length) {
this.metaService.updateTag({ name: 'twitter:title', content: title });
this.metaService.updateTag({ name: 'twitter:image:alt', content: title });
this.metaService.updateTag({ property: 'og:image:alt', content: title });
this.metaService.updateTag({ property: 'og:title', content: title });
this.metaService.updateTag({ name: 'title', content: title });
}
else {
this.metaService.removeTag("name='twitter:title'");
this.metaService.removeTag("name='twitter:image:alt'");
this.metaService.removeTag("property='og:image:alt'");
this.metaService.removeTag("property='og:title'");
this.metaService.removeTag("name='title'");
}
};
/**
* @private
* @param {?=} type
* @return {?}
*/
SeoSocialShareService.prototype.setType = /**
* @private
* @param {?=} type
* @return {?}
*/
function (type) {
if (type && type.length) {
this.metaService.updateTag({ property: 'og:type', content: type });
}
else {
this.metaService.removeTag("property='og:type'");
}
};
/**
* @private
* @param {?=} description
* @return {?}
*/
SeoSocialShareService.prototype.setMetaDescription = /**
* @private
* @param {?=} description
* @return {?}
*/
function (description) {
if (description && description.length) {
this.metaService.updateTag({ name: 'twitter:description', content: description });
this.metaService.updateTag({ property: 'og:description', content: description });
this.metaService.updateTag({ name: 'description', content: description });
}
else {
this.metaService.removeTag("name='twitter:description'");
this.metaService.removeTag("property='og:description'");
this.metaService.removeTag("name='description'");
}
};
/**
* @private
* @param {?=} image
* @return {?}
*/
SeoSocialShareService.prototype.setImage = /**
* @private
* @param {?=} image
* @return {?}
*/
function (image) {
if (image && image.length) {
this.metaService.updateTag({ name: 'twitter:image', content: image });
this.metaService.updateTag({ property: 'og:image', content: image });
this.metaService.updateTag({ property: 'og:image:height', content: '630' });
}
else {
this.metaService.removeTag("name='twitter:image'");
this.metaService.removeTag("property='og:image'");
this.metaService.removeTag("property='og:image:height'");
}
};
/**
* @private
* @param {?=} url
* @return {?}
*/
SeoSocialShareService.prototype.setUrl = /**
* @private
* @param {?=} url
* @return {?}
*/
function (url) {
if (url && url.length) {
this.metaService.updateTag({ property: 'og:url', content: url });
}
else {
this.metaService.removeTag("property='og:url'");
}
};
/**
* @private
* @param {?=} publishedDateString
* @return {?}
*/
SeoSocialShareService.prototype.setPublished = /**
* @private
* @param {?=} publishedDateString
* @return {?}
*/
function (publishedDateString) {
if (publishedDateString) {
/** @type {?} */
var publishedDate = new Date(publishedDateString);
this.metaService.updateTag({ name: 'article:published_time', content: publishedDate.toISOString() });
this.metaService.updateTag({ name: 'published_date', content: publishedDate.toISOString() });
}
else {
this.metaService.removeTag("name='article:published_time'");
this.metaService.removeTag("name='publication_date'");
}
};
/**
* @private
* @param {?=} modifiedDateString
* @return {?}
*/
SeoSocialShareService.prototype.setModified = /**
* @private
* @param {?=} modifiedDateString
* @return {?}
*/
function (modifiedDateString) {
if (modifiedDateString) {
/** @type {?} */
var modifiedDate = new Date(modifiedDateString);
this.metaService.updateTag({ name: 'article:modified_time', content: modifiedDate.toISOString() });
this.metaService.updateTag({ name: 'og:updated_time', content: modifiedDate.toISOString() });
}
else {
this.metaService.removeTag("name='article:modified_time'");
this.metaService.removeTag("name='og:updated_time'");
}
};
/**
* @private
* @param {?=} author
* @return {?}
*/
SeoSocialShareService.prototype.setAuthor = /**
* @private
* @param {?=} author
* @return {?}
*/
function (author) {
if (author && author.length) {
this.metaService.updateTag({ name: 'article:author', content: author });
this.metaService.updateTag({ name: 'author', content: author });
}
else {
this.metaService.removeTag("name='article:author'");
this.metaService.removeTag("name='author'");
}
};
SeoSocialShareService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root',
},] }
];
/** @nocollapse */
SeoSocialShareService.ctorParameters = function () { return [
{ type: Meta },
{ type: Title }
]; };
/** @nocollapse */ SeoSocialShareService.ngInjectableDef = i0.defineInjectable({ factory: function SeoSocialShareService_Factory() { return new SeoSocialShareService(i0.inject(i1.Meta), i0.inject(i1.Title)); }, token: SeoSocialShareService, providedIn: "root" });
return SeoSocialShareService;
}());
export { SeoSocialShareService };
if (false) {
/**
* @type {?}
* @private
*/
SeoSocialShareService.prototype.metaService;
/**
* @type {?}
* @private
*/
SeoSocialShareService.prototype.titleService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLXNvY2lhbC1zaGFyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXNlby8iLCJzb3VyY2VzIjpbImxpYi9zZW8tc29jaWFsLXNoYXJlL3Nlby1zb2NpYWwtc2hhcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFJeEQ7SUFLRSwrQkFDbUIsV0FBaUIsRUFDakIsWUFBbUI7UUFEbkIsZ0JBQVcsR0FBWCxXQUFXLENBQU07UUFDakIsaUJBQVksR0FBWixZQUFZLENBQU87SUFFdEMsQ0FBQzs7Ozs7SUFFRCx1Q0FBTzs7OztJQUFQLFVBQVEsSUFBd0I7UUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDOzs7OztJQUVELDBDQUFVOzs7O0lBQVYsVUFBVyxV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O0lBQWpCLFVBQWtCLE1BQWU7UUFDL0IsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQztZQUN0RSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUM7U0FDL0Q7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDN0M7SUFDSCxDQUFDOztnQkFoSkYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztnQkFOUSxJQUFJO2dCQUFFLEtBQUs7OztnQ0FEcEI7Q0F1SkMsQUFsSkQsSUFrSkM7U0EvSVkscUJBQXFCOzs7Ozs7SUFHOUIsNENBQWtDOzs7OztJQUNsQyw2Q0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXRhLCBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5pbXBvcnQgeyBTZW9Tb2NpYWxTaGFyZURhdGEgfSBmcm9tICcuL2ludGVyZmFjZXMvc2VvLXNvY2lhbC1zaGFyZS1kYXRhJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNlb1NvY2lhbFNoYXJlU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXRhU2VydmljZTogTWV0YSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRpdGxlU2VydmljZTogVGl0bGUsXG4gICkge1xuICB9XG5cbiAgc2V0RGF0YShkYXRhOiBTZW9Tb2NpYWxTaGFyZURhdGEpIHtcbiAgICB0aGlzLnNldFRpdGxlKGRhdGEudGl0bGUpO1xuICAgIHRoaXMuc2V0TWV0YURlc2NyaXB0aW9uKGRhdGEuZGVzY3JpcHRpb24pO1xuICAgIHRoaXMuc2V0VXJsKGRhdGEudXJsKTtcbiAgICB0aGlzLnNldEltYWdlKGRhdGEuaW1hZ2UpO1xuICAgIHRoaXMuc2V0UHVibGlzaGVkKGRhdGEucHVibGlzaGVkKTtcbiAgICB0aGlzLnNldE1vZGlmaWVkKGRhdGEubW9kaWZpZWQpO1xuICAgIHRoaXMuc2V0QXV0aG9yKGRhdGEuYXV0aG9yKTtcbiAgICB0aGlzLnNldFNlY3Rpb24oZGF0YS5zZWN0aW9uKTtcbiAgICB0aGlzLnNldFR5cGUoZGF0YS50eXBlKTtcbiAgfVxuXG4gIHNldFNlY3Rpb24obmV3U2VjdGlvbj86IHN0cmluZykge1xuICAgIGlmIChuZXdTZWN0aW9uICYmIG5ld1NlY3Rpb24ubGVuZ3RoKSB7XG4gICAgICB0aGlzLm1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyh7bmFtZTogJ2FydGljbGU6c2VjdGlvbicsIGNvbnRlbnQ6IG5ld1NlY3Rpb259KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tZXRhU2VydmljZS5yZW1vdmVUYWcoYG5hbWU9J2FydGljbGU6c2VjdGlvbidgKTtcbiAgICB9XG4gIH1cblxuICBzZXRUd2l0dGVyU2l0ZUNyZWF0b3Ioc2l0ZT86IHN0cmluZykge1xuICAgIGlmIChzaXRlICYmIHNpdGUubGVuZ3RoKSB7XG4gICAgICB0aGlzLm1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyh7bmFtZTogJ3R3aXR0ZXI6c2l0ZScsIGNvbnRlbnQ6IHNpdGV9KTtcbiAgICAgIHRoaXMubWV0YVNlcnZpY2UudXBkYXRlVGFnKHtuYW1lOiAndHdpdHRlcjpjcmVhdG9yJywgY29udGVudDogc2l0ZX0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1ldGFTZXJ2aWNlLnJlbW92ZVRhZyhgbmFtZT0ndHdpdHRlcjpzaXRlJ2ApO1xuICAgICAgdGhpcy5tZXRhU2VydmljZS5yZW1vdmVUYWcoYG5hbWU9J3R3aXR0ZXI6Y3JlYXRvcidgKTtcbiAgICB9XG4gIH1cblxuICBzZXRUd2l0dGVyQ2FyZChjYXJkPzogc3RyaW5nKSB7XG4gICAgaWYgKGNhcmQgJiYgY2FyZC5sZW5ndGgpIHtcbiAgICAgIHRoaXMubWV0YVNlcnZpY2UudXBkYXRlVGFnKHtuYW1lOiAndHdpdHRlcjpjYXJkJywgY29udGVudDogY2FyZH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1ldGFTZXJ2aWNlLnJlbW92ZVRhZyhgbmFtZT0ndHdpdHRlcjpjYXJkJ2ApO1xuICAgIH1cbiAgfVxuXG4gIHNldEZiQXBwSWQoYXBwSWQ/OiBzdHJpbmcpIHtcbiAgICBpZiAoYXBwSWQgJiYgYXBwSWQubGVuZ3RoKSB7XG4gICAgICB0aGlzLm1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyh7cHJvcGVydHk6ICdmYjphcHBfaWQnLCBjb250ZW50OiBhcHBJZH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1ldGFTZXJ2aWNlLnJlbW92ZVRhZyhgcHJvcGVydHk9J2ZiOmFwcF9pZCdgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFRpdGxlKHRpdGxlOiBzdHJpbmcgPSAnJykge1xuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKHRpdGxlKTtcbiAgICBpZiAodGl0bGUgJiYgdGl0bGUubGVuZ3RoKSB7XG4gICAgICB0aGlzLm1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyh7bmFtZTogJ3R3aXR0ZXI6dGl0bGUnLCBjb250ZW50OiB0aXRsZX0pO1xuICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoe25hbWU6ICd0d2l0dGVyOmltYWdlOmFsdCcsIGNvbnRlbnQ6IHRpdGxlfSk7XG4gICAgICB0aGlzLm1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyh7cHJvcGVydHk6ICdvZzppbWFnZTphbHQnLCBjb250ZW50OiB0aXRsZX0pO1xuICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoe3Byb3BlcnR5OiAnb2c6dGl0bGUnLCBjb250ZW50OiB0aXRsZX0pO1xuICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoe25hbWU6ICd0aXRsZScsIGNvbnRlbnQ6IHRpdGxlfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWV0YVNlcnZpY2UucmVtb3ZlVGFnKGBuYW1lPSd0d2l0dGVyOnRpdGxlJ2ApO1xuICAgICAgdGhpcy5tZXRhU2VydmljZS5yZW1vdmVUYWcoYG5hbWU9J3R3aXR0ZXI6aW1hZ2U6YWx0J2ApO1xuICAgICAgdGhpcy5tZXRhU2VydmljZS5yZW1vdmVUYWcoYHByb3BlcnR5PSdvZzppbWFnZTphbHQnYCk7XG4gICAgICB0aGlzLm1ldGFTZXJ2aWNlLnJlbW92ZVRhZyhgcHJvcGVydHk9J29nOnRpdGxlJ2ApO1xuICAgICAgdGhpcy5tZXRhU2VydmljZS5yZW1vdmVUYWcoYG5hbWU9J3RpdGxlJ2ApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0VHlwZSh0eXBlPzogc3RyaW5nKSB7XG4gICAgaWYgKHR5cGUgJiYgdHlwZS5sZW5ndGgpIHtcbiAgICAgIHRoaXMubWV0YVNlcnZpY2UudXBkYXRlVGFnKHtwcm9wZXJ0eTogJ29nOnR5cGUnLCBjb250ZW50OiB0eXBlfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWV0YVNlcnZpY2UucmVtb3ZlVGFnKGBwcm9wZXJ0eT0nb2c6dHlwZSdgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldE1ldGFEZXNjcmlwdGlvbihkZXNjcmlwdGlvbj86IHN0cmluZykge1xuICAgIGlmIChkZXNjcmlwdGlvbiAmJiBkZXNjcmlwdGlvbi5sZW5ndGgpIHtcbiAgICAgIHRoaXMubWV0YVNlcnZpY2UudXBkYXRlVGFnKHtuYW1lOiAndHdpdHRlcjpkZXNjcmlwdGlvbicsIGNvbnRlbnQ6IGRlc2NyaXB0aW9ufSk7XG4gICAgICB0aGlzLm1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyh7cHJvcGVydHk6ICdvZzpkZXNjcmlwdGlvbicsIGNvbnRlbnQ6IGRlc2NyaXB0aW9ufSk7XG4gICAgICB0aGlzLm1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyh7bmFtZTogJ2Rlc2NyaXB0aW9uJywgY29udGVudDogZGVzY3JpcHRpb259KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tZXRhU2VydmljZS5yZW1vdmVUYWcoYG5hbWU9J3R3aXR0ZXI6ZGVzY3JpcHRpb24nYCk7XG4gICAgICB0aGlzLm1ldGFTZXJ2aWNlLnJlbW92ZVRhZyhgcHJvcGVydHk9J29nOmRlc2NyaXB0aW9uJ2ApO1xuICAgICAgdGhpcy5tZXRhU2VydmljZS5yZW1vdmVUYWcoYG5hbWU9J2Rlc2NyaXB0aW9uJ2ApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0SW1hZ2UoaW1hZ2U/OiBzdHJpbmcpIHtcbiAgICBpZiAoaW1hZ2UgJiYgaW1hZ2UubGVuZ3RoKSB7XG4gICAgICB0aGlzLm1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyh7bmFtZTogJ3R3aXR0ZXI6aW1hZ2UnLCBjb250ZW50OiBpbWFnZX0pO1xuICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoe3Byb3BlcnR5OiAnb2c6aW1hZ2UnLCBjb250ZW50OiBpbWFnZX0pO1xuICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoe3Byb3BlcnR5OiAnb2c6aW1hZ2U6aGVpZ2h0JywgY29udGVudDogJzYzMCd9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tZXRhU2VydmljZS5yZW1vdmVUYWcoYG5hbWU9J3R3aXR0ZXI6aW1hZ2UnYCk7XG4gICAgICB0aGlzLm1ldGFTZXJ2aWNlLnJlbW92ZVRhZyhgcHJvcGVydHk9J29nOmltYWdlJ2ApO1xuICAgICAgdGhpcy5tZXRhU2VydmljZS5yZW1vdmVUYWcoYHByb3BlcnR5PSdvZzppbWFnZTpoZWlnaHQnYCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRVcmwodXJsPzogc3RyaW5nKSB7XG4gICAgaWYgKHVybCAmJiB1cmwubGVuZ3RoKSB7XG4gICAgICB0aGlzLm1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyh7cHJvcGVydHk6ICdvZzp1cmwnLCBjb250ZW50OiB1cmx9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tZXRhU2VydmljZS5yZW1vdmVUYWcoYHByb3BlcnR5PSdvZzp1cmwnYCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRQdWJsaXNoZWQocHVibGlzaGVkRGF0ZVN0cmluZz86IHN0cmluZykge1xuICAgIGlmIChwdWJsaXNoZWREYXRlU3RyaW5nKSB7XG4gICAgICBjb25zdCBwdWJsaXNoZWREYXRlID0gbmV3IERhdGUocHVibGlzaGVkRGF0ZVN0cmluZyk7XG4gICAgICB0aGlzLm1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyh7bmFtZTogJ2FydGljbGU6cHVibGlzaGVkX3RpbWUnLCBjb250ZW50OiBwdWJsaXNoZWREYXRlLnRvSVNPU3RyaW5nKCl9KTtcbiAgICAgIHRoaXMubWV0YVNlcnZpY2UudXBkYXRlVGFnKHtuYW1lOiAncHVibGlzaGVkX2RhdGUnLCBjb250ZW50OiBwdWJsaXNoZWREYXRlLnRvSVNPU3RyaW5nKCl9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tZXRhU2VydmljZS5yZW1vdmVUYWcoYG5hbWU9J2FydGljbGU6cHVibGlzaGVkX3RpbWUnYCk7XG4gICAgICB0aGlzLm1ldGFTZXJ2aWNlLnJlbW92ZVRhZyhgbmFtZT0ncHVibGljYXRpb25fZGF0ZSdgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldE1vZGlmaWVkKG1vZGlmaWVkRGF0ZVN0cmluZz86IHN0cmluZykge1xuICAgIGlmIChtb2RpZmllZERhdGVTdHJpbmcpIHtcbiAgICAgIGNvbnN0IG1vZGlmaWVkRGF0ZSA9IG5ldyBEYXRlKG1vZGlmaWVkRGF0ZVN0cmluZyk7XG4gICAgICB0aGlzLm1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyh7bmFtZTogJ2FydGljbGU6bW9kaWZpZWRfdGltZScsIGNvbnRlbnQ6IG1vZGlmaWVkRGF0ZS50b0lTT1N0cmluZygpfSk7XG4gICAgICB0aGlzLm1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyh7bmFtZTogJ29nOnVwZGF0ZWRfdGltZScsIGNvbnRlbnQ6IG1vZGlmaWVkRGF0ZS50b0lTT1N0cmluZygpfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWV0YVNlcnZpY2UucmVtb3ZlVGFnKGBuYW1lPSdhcnRpY2xlOm1vZGlmaWVkX3RpbWUnYCk7XG4gICAgICB0aGlzLm1ldGFTZXJ2aWNlLnJlbW92ZVRhZyhgbmFtZT0nb2c6dXBkYXRlZF90aW1lJ2ApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0QXV0aG9yKGF1dGhvcj86IHN0cmluZykge1xuICAgIGlmIChhdXRob3IgJiYgYXV0aG9yLmxlbmd0aCkge1xuICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoe25hbWU6ICdhcnRpY2xlOmF1dGhvcicsIGNvbnRlbnQ6IGF1dGhvcn0pO1xuICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoe25hbWU6ICdhdXRob3InLCBjb250ZW50OiBhdXRob3J9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tZXRhU2VydmljZS5yZW1vdmVUYWcoYG5hbWU9J2FydGljbGU6YXV0aG9yJ2ApO1xuICAgICAgdGhpcy5tZXRhU2VydmljZS5yZW1vdmVUYWcoYG5hbWU9J2F1dGhvcidgKTtcbiAgICB9XG4gIH1cblxufVxuIl19