@wursha/ngx-prayertimes-api
Version:
an Angular api client for aladhan.com/prayer-times-api
145 lines • 23.1 kB
JavaScript
import { Injectable } from '@angular/core';
import { midnightModes, schoolTypes, } from './api-request.model';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common/http";
import * as i2 from "./utils.service";
/**
* an Angular api client for aladhan.com/prayer-times-api
*/
export class NgxPrayertimesApiService {
constructor(http, utils) {
this.http = http;
this.utils = utils;
this.baseUrl = 'https://api.aladhan.com/v1';
}
/**
* Returns all prayer times for a specific calendar month.
*/
getCalendar(p) {
p.shafaq ??= 'general';
p.school ??= schoolTypes.STANDARD_SHAFI;
p.midnightMode ??= midnightModes.STANDARD;
const q = { ...p, month: undefined, year: undefined };
const month = p.month ? `/${p.month}` : '';
const url = `${this.baseUrl}/calendar/${p.year}${month}?${this.utils.toQueryString(q)}`;
return this.http.get(url);
}
/**
* Returns all prayer times for a specific calendar month at a particular address.
*/
getCalendarByAddress(p) {
p.shafaq ??= 'general';
p.school ??= schoolTypes.STANDARD_SHAFI;
p.midnightMode ??= midnightModes.STANDARD;
const q = { ...p, month: undefined, year: undefined };
const month = p.month ? `/${p.month}` : '';
const url = `${this.baseUrl}/calendarByAddress/${p.year}${month}?${this.utils.toQueryString(q)}`;
return this.http.get(url);
}
/**
* Returns all prayer times for a specific calendar month by City.
*/
getCalendarByCity(p) {
p.shafaq ??= 'general';
p.school ??= schoolTypes.STANDARD_SHAFI;
p.midnightMode ??= midnightModes.STANDARD;
const q = { ...p, month: undefined, year: undefined };
const month = p.month ? `/${p.month}` : '';
const url = `${this.baseUrl}/calendarByCity/${p.year}${month}?${this.utils.toQueryString(q)}`;
return this.http.get(url);
}
/**
* Returns all prayer times for a specific Hijri calendar month.
*/
getHijriCalendar(p) {
p.shafaq ??= 'general';
p.school ??= schoolTypes.STANDARD_SHAFI;
p.midnightMode ??= midnightModes.STANDARD;
const q = { ...p, month: undefined, year: undefined };
const month = p.month ? `/${p.month}` : '';
const url = `${this.baseUrl}/hijriCalendar/${p.year}${month}?${this.utils.toQueryString(q)}`;
return this.http.get(url);
}
/**
* Returns all prayer times for a specific Hijri calendar month at a particular address.
*/
getHijriCalendarByAddress(p) {
p.shafaq ??= 'general';
p.school ??= schoolTypes.STANDARD_SHAFI;
p.midnightMode ??= midnightModes.STANDARD;
const q = { ...p, month: undefined, year: undefined };
const month = p.month ? `/${p.month}` : '';
const url = `${this.baseUrl}/hijriCalendarByAddress/${p.year}${month}?${this.utils.toQueryString(q)}`;
return this.http.get(url);
}
/**
* Returns all prayer times for a specific Hijri calendar month by City.
*/
getHijriCalendarByCity(p) {
p.shafaq ??= 'general';
p.school ??= schoolTypes.STANDARD_SHAFI;
p.midnightMode ??= midnightModes.STANDARD;
const q = { ...p, month: undefined, year: undefined };
const month = p.month ? `/${p.month}` : '';
const url = `${this.baseUrl}/hijriCalendarByCity/${p.year}${month}?${this.utils.toQueryString(q)}`;
return this.http.get(url);
}
/**
* Returns all the prayer times calculation methods supported by this API. For more information on how to use custom methods, see https://aladhan.com/calculation-methods.
*/
getMethods() {
const url = `${this.baseUrl}/methods`;
return this.http.get(url);
}
/**
* Returns all prayer times for a specific date.
*/
getTimings(p) {
p.shafaq ??= 'general';
p.school ??= schoolTypes.STANDARD_SHAFI;
p.midnightMode ??= midnightModes.STANDARD;
const q = { ...p, date: undefined };
const date = p.date
? `/${this.utils.formatDateToDDMMYYYY(p.date)}`
: '';
const url = `${this.baseUrl}/timings${date}?${this.utils.toQueryString(q)}`;
return this.http.get(url);
}
/**
* Returns all prayer times for a specific date at a particular address.
*/
getTimingsByAddress(p) {
p.shafaq ??= 'general';
p.school ??= schoolTypes.STANDARD_SHAFI;
p.midnightMode ??= midnightModes.STANDARD;
const q = { ...p, date: undefined };
const date = p.date
? `/${this.utils.formatDateToDDMMYYYY(p.date)}`
: '';
const url = `${this.baseUrl}/timingsByAddress${date}?${this.utils.toQueryString(q)}`;
return this.http.get(url);
}
/**
* Returns all prayer times for a specific date in a particular city.
*/
getTimingsByCity(p) {
p.shafaq ??= 'general';
p.school ??= schoolTypes.STANDARD_SHAFI;
p.midnightMode ??= midnightModes.STANDARD;
const q = { ...p, date: undefined };
const date = p.date
? `/${this.utils.formatDateToDDMMYYYY(p.date)}`
: '';
const url = `${this.baseUrl}/timingsByCity${date}?${this.utils.toQueryString(q)}`;
return this.http.get(url);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgxPrayertimesApiService, deps: [{ token: i1.HttpClient }, { token: i2.UtilsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgxPrayertimesApiService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgxPrayertimesApiService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.UtilsService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXByYXllcnRpbWVzLWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXByYXllcnRpbWVzLWFwaS9zcmMvbGliL25neC1wcmF5ZXJ0aW1lcy1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFVSCxhQUFhLEVBQ2IsV0FBVyxHQUNkLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFRN0I7O0dBRUc7QUFJSCxNQUFNLE9BQU8sd0JBQXdCO0lBR2pDLFlBQ1ksSUFBZ0IsRUFDaEIsS0FBbUI7UUFEbkIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBSnZCLFlBQU8sR0FBRyw0QkFBNEIsQ0FBQztJQUs1QyxDQUFDO0lBRUo7O09BRUc7SUFDSSxXQUFXLENBQUMsQ0FBcUI7UUFDcEMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUM7UUFDdkIsQ0FBQyxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsY0FBYyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxZQUFZLEtBQUssYUFBYSxDQUFDLFFBQVEsQ0FBQztRQUMxQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ3RELE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0MsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxhQUFhLENBQUMsQ0FBQyxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxF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QztRQUNsRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFxQixHQUFHLENBQUMsQ0FBQztJQUNsRCxDQUFDOzhHQTFKUSx3QkFBd0I7a0hBQXhCLHdCQUF3QixjQUZyQixNQUFNOzsyRkFFVCx3QkFBd0I7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gICAgZ2V0Q2FsZW5kYXJCeUFkZHJlc3NSZXF1ZXN0LFxuICAgIGdldENhbGVuZGFyQnlDaXR5UmVxdWVzdCxcbiAgICBnZXRDYWxlbmRhclJlcXVlc3QsXG4gICAgZ2V0SGlqcmlDYWxlbmRhckJ5QWRkcmVzc1JlcXVlc3QsXG4gICAgZ2V0SGlqcmlDYWxlbmRhckJ5Q2l0eVJlcXVlc3QsXG4gICAgZ2V0SGlqcmlDYWxlbmRhclJlcXVlc3QsXG4gICAgZ2V0VGltaW5nc0J5QWRkcmVzc1JlcXVlc3QsXG4gICAgZ2V0VGltaW5nc0J5Q2l0eVJlcXVlc3QsXG4gICAgZ2V0VGltaW5nc1JlcXVlc3QsXG4gICAgbWlkbmlnaHRNb2RlcyxcbiAgICBzY2hvb2xUeXBlcyxcbn0gZnJvbSAnLi9hcGktcmVxdWVzdC5tb2RlbCc7XG5pbXBvcnQge1xuICAgIGdldENhbGVuZGFyUmVzcG9uc2UsXG4gICAgZ2V0TWV0aG9kc1Jlc3BvbnNlLFxuICAgIGdldFRpbWluZ3NSZXNwb25zZSxcbn0gZnJvbSAnLi9hcGktcmVzcG9uc2UubW9kZWwnO1xuaW1wb3J0IHsgVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi91dGlscy5zZXJ2aWNlJztcblxuLyoqXG4gKiBhbiBBbmd1bGFyIGFwaSBjbGllbnQgZm9yIGFsYWRoYW4uY29tL3ByYXllci10aW1lcy1hcGlcbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTmd4UHJheWVydGltZXNBcGlTZXJ2aWNlIHtcbiAgICBwcml2YXRlIGJhc2VVcmwgPSAnaHR0cHM6Ly9hcGkuYWxhZGhhbi5jb20vdjEnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgcHJpdmF0ZSB1dGlsczogVXRpbHNTZXJ2aWNlLFxuICAgICkge31cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYWxsIHByYXllciB0aW1lcyBmb3IgYSBzcGVjaWZpYyBjYWxlbmRhciBtb250aC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q2FsZW5kYXIocDogZ2V0Q2FsZW5kYXJSZXF1ZXN0KTogT2JzZXJ2YWJsZTxnZXRDYWxlbmRhclJlc3BvbnNlPiB7XG4gICAgICAgIHAuc2hhZmFxID8/PSAnZ2VuZXJhbCc7XG4gICAgICAgIHAuc2Nob29sID8/PSBzY2hvb2xUeXBlcy5TVEFOREFSRF9TSEFGSTtcbiAgICAgICAgcC5taWRuaWdodE1vZGUgPz89IG1pZG5pZ2h0TW9kZXMuU1RBTkRBUkQ7XG4gICAgICAgIGNvbnN0IHEgPSB7IC4uLnAsIG1vbnRoOiB1bmRlZmluZWQsIHllYXI6IHVuZGVmaW5lZCB9O1xuICAgICAgICBjb25zdCBtb250aCA9IHAubW9udGggPyBgLyR7cC5tb250aH1gIDogJyc7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYmFzZVVybH0vY2FsZW5kYXIvJHtwLnllYXJ9JHttb250aH0/JHt0aGlzLnV0aWxzLnRvUXVlcnlTdHJpbmcocSl9YDtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Z2V0Q2FsZW5kYXJSZXNwb25zZT4odXJsKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFsbCBwcmF5ZXIgdGltZXMgZm9yIGEgc3BlY2lmaWMgY2FsZW5kYXIgbW9udGggYXQgYSBwYXJ0aWN1bGFyIGFkZHJlc3MuXG4gICAgICovXG4gICAgcHVibGljIGdldENhbGVuZGFyQnlBZGRyZXNzKFxuICAgICAgICBwOiBnZXRDYWxlbmRhckJ5QWRkcmVzc1JlcXVlc3QsXG4gICAgKTogT2JzZXJ2YWJsZTxnZXRDYWxlbmRhclJlc3BvbnNlPiB7XG4gICAgICAgIHAuc2hhZmFxID8/PSAnZ2VuZXJhbCc7XG4gICAgICAgIHAuc2Nob29sID8/PSBzY2hvb2xUeXBlcy5TVEFOREFSRF9TSEFGSTtcbiAgICAgICAgcC5taWRuaWdodE1vZGUgPz89IG1pZG5pZ2h0TW9kZXMuU1RBTkRBUkQ7XG4gICAgICAgIGNvbnN0IHEgPSB7IC4uLnAsIG1vbnRoOiB1bmRlZmluZWQsIHllYXI6IHVuZGVmaW5lZCB9O1xuICAgICAgICBjb25zdCBtb250aCA9IHAubW9udGggPyBgLyR7cC5tb250aH1gIDogJyc7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYmFzZVVybH0vY2FsZW5kYXJCeUFkZHJlc3MvJHtwLnllYXJ9JHttb250aH0/JHt0aGlzLnV0aWxzLnRvUXVlcnlTdHJpbmcocSl9YDtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Z2V0Q2FsZW5kYXJSZXNwb25zZT4odXJsKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFsbCBwcmF5ZXIgdGltZXMgZm9yIGEgc3BlY2lmaWMgY2FsZW5kYXIgbW9udGggYnkgQ2l0eS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q2FsZW5kYXJCeUNpdHkoXG4gICAgICAgIHA6IGdldENhbGVuZGFyQnlDaXR5UmVxdWVzdCxcbiAgICApOiBPYnNlcnZhYmxlPGdldENhbGVuZGFyUmVzcG9uc2U+IHtcbiAgICAgICAgcC5zaGFmYXEgPz89ICdnZW5lcmFsJztcbiAgICAgICAgcC5zY2hvb2wgPz89IHNjaG9vbFR5cGVzLlNUQU5EQVJEX1NIQUZJO1xuICAgICAgICBwLm1pZG5pZ2h0TW9kZSA/Pz0gbWlkbmlnaHRNb2Rlcy5TVEFOREFSRDtcbiAgICAgICAgY29uc3QgcSA9IHsgLi4ucCwgbW9udGg6IHVuZGVmaW5lZCwgeWVhcjogdW5kZWZpbmVkIH07XG4gICAgICAgIGNvbnN0IG1vbnRoID0gcC5tb250aCA/IGAvJHtwLm1vbnRofWAgOiAnJztcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS9jYWxlbmRhckJ5Q2l0eS8ke3AueWVhcn0ke21vbnRofT8ke3RoaXMudXRpbHMudG9RdWVyeVN0cmluZyhxKX1gO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxnZXRDYWxlbmRhclJlc3BvbnNlPih1cmwpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYWxsIHByYXllciB0aW1lcyBmb3IgYSBzcGVjaWZpYyBIaWpyaSBjYWxlbmRhciBtb250aC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0SGlqcmlDYWxlbmRhcihcbiAgICAgICAgcDogZ2V0SGlqcmlDYWxlbmRhclJlcXVlc3QsXG4gICAgKTogT2JzZXJ2YWJsZTxnZXRDYWxlbmRhclJlc3BvbnNlPiB7XG4gICAgICAgIHAuc2hhZmFxID8/PSAnZ2VuZXJhbCc7XG4gICAgICAgIHAuc2Nob29sID8/PSBzY2hvb2xUeXBlcy5TVEFOREFSRF9TSEFGSTtcbiAgICAgICAgcC5taWRuaWdodE1vZGUgPz89IG1pZG5pZ2h0TW9kZXMuU1RBTkRBUkQ7XG4gICAgICAgIGNvbnN0IHEgPSB7IC4uLnAsIG1vbnRoOiB1bmRlZmluZWQsIHllYXI6IHVuZGVmaW5lZCB9O1xuICAgICAgICBjb25zdCBtb250aCA9IHAubW9udGggPyBgLyR7cC5tb250aH1gIDogJyc7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYmFzZVVybH0vaGlqcmlDYWxlbmRhci8ke3AueWVhcn0ke21vbnRofT8ke3RoaXMudXRpbHMudG9RdWVyeVN0cmluZyhxKX1gO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxnZXRDYWxlbmRhclJlc3BvbnNlPih1cmwpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYWxsIHByYXllciB0aW1lcyBmb3IgYSBzcGVjaWZpYyBIaWpyaSBjYWxlbmRhciBtb250aCBhdCBhIHBhcnRpY3VsYXIgYWRkcmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0SGlqcmlDYWxlbmRhckJ5QWRkcmVzcyhcbiAgICAgICAgcDogZ2V0SGlqcmlDYWxlbmRhckJ5QWRkcmVzc1JlcXVlc3QsXG4gICAgKTogT2JzZXJ2YWJsZTxnZXRDYWxlbmRhclJlc3BvbnNlPiB7XG4gICAgICAgIHAuc2hhZmFxID8/PSAnZ2VuZXJhbCc7XG4gICAgICAgIHAuc2Nob29sID8/PSBzY2hvb2xUeXBlcy5TVEFOREFSRF9TSEFGSTtcbiAgICAgICAgcC5taWRuaWdodE1vZGUgPz89IG1pZG5pZ2h0TW9kZXMuU1RBTkRBUkQ7XG4gICAgICAgIGNvbnN0IHEgPSB7IC4uLnAsIG1vbnRoOiB1bmRlZmluZWQsIHllYXI6IHVuZGVmaW5lZCB9O1xuICAgICAgICBjb25zdCBtb250aCA9IHAubW9udGggPyBgLyR7cC5tb250aH1gIDogJyc7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYmFzZVVybH0vaGlqcmlDYWxlbmRhckJ5QWRkcmVzcy8ke3AueWVhcn0ke21vbnRofT8ke3RoaXMudXRpbHMudG9RdWVyeVN0cmluZyhxKX1gO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxnZXRDYWxlbmRhclJlc3BvbnNlPih1cmwpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYWxsIHByYXllciB0aW1lcyBmb3IgYSBzcGVjaWZpYyBIaWpyaSBjYWxlbmRhciBtb250aCBieSBDaXR5LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRIaWpyaUNhbGVuZGFyQnlDaXR5KFxuICAgICAgICBwOiBnZXRIaWpyaUNhbGVuZGFyQnlDaXR5UmVxdWVzdCxcbiAgICApOiBPYnNlcnZhYmxlPGdldENhbGVuZGFyUmVzcG9uc2U+IHtcbiAgICAgICAgcC5zaGFmYXEgPz89ICdnZW5lcmFsJztcbiAgICAgICAgcC5zY2hvb2wgPz89IHNjaG9vbFR5cGVzLlNUQU5EQVJEX1NIQUZJO1xuICAgICAgICBwLm1pZG5pZ2h0TW9kZSA/Pz0gbWlkbmlnaHRNb2Rlcy5TVEFOREFSRDtcbiAgICAgICAgY29uc3QgcSA9IHsgLi4ucCwgbW9udGg6IHVuZGVmaW5lZCwgeWVhcjogdW5kZWZpbmVkIH07XG4gICAgICAgIGNvbnN0IG1vbnRoID0gcC5tb250aCA/IGAvJHtwLm1vbnRofWAgOiAnJztcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS9oaWpyaUNhbGVuZGFyQnlDaXR5LyR7cC55ZWFyfSR7bW9udGh9PyR7dGhpcy51dGlscy50b1F1ZXJ5U3RyaW5nKHEpfWA7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGdldENhbGVuZGFyUmVzcG9uc2U+KHVybCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbGwgdGhlIHByYXllciB0aW1lcyBjYWxjdWxhdGlvbiBtZXRob2RzIHN1cHBvcnRlZCBieSB0aGlzIEFQSS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaG93IHRvIHVzZSBjdXN0b20gbWV0aG9kcywgc2VlIGh0dHBzOi8vYWxhZGhhbi5jb20vY2FsY3VsYXRpb24tbWV0aG9kcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0TWV0aG9kcygpOiBPYnNlcnZhYmxlPGdldE1ldGhvZHNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmJhc2VVcmx9L21ldGhvZHNgO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxnZXRNZXRob2RzUmVzcG9uc2U+KHVybCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbGwgcHJheWVyIHRpbWVzIGZvciBhIHNwZWNpZmljIGRhdGUuXG4gICAgICovXG4gICAgcHVibGljIGdldFRpbWluZ3MocDogZ2V0VGltaW5nc1JlcXVlc3QpOiBPYnNlcnZhYmxlPGdldFRpbWluZ3NSZXNwb25zZT4ge1xuICAgICAgICBwLnNoYWZhcSA/Pz0gJ2dlbmVyYWwnO1xuICAgICAgICBwLnNjaG9vbCA/Pz0gc2Nob29sVHlwZXMuU1RBTkRBUkRfU0hBRkk7XG4gICAgICAgIHAubWlkbmlnaHRNb2RlID8/PSBtaWRuaWdodE1vZGVzLlNUQU5EQVJEO1xuICAgICAgICBjb25zdCBxID0geyAuLi5wLCBkYXRlOiB1bmRlZmluZWQgfTtcbiAgICAgICAgY29uc3QgZGF0ZSA9IHAuZGF0ZVxuICAgICAgICAgICAgPyBgLyR7dGhpcy51dGlscy5mb3JtYXREYXRlVG9ERE1NWVlZWShwLmRhdGUpfWBcbiAgICAgICAgICAgIDogJyc7XG5cbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS90aW1pbmdzJHtkYXRlfT8ke3RoaXMudXRpbHMudG9RdWVyeVN0cmluZyhxKX1gO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxnZXRUaW1pbmdzUmVzcG9uc2U+KHVybCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbGwgcHJheWVyIHRpbWVzIGZvciBhIHNwZWNpZmljIGRhdGUgYXQgYSBwYXJ0aWN1bGFyIGFkZHJlc3MuXG4gICAgICovXG4gICAgcHVibGljIGdldFRpbWluZ3NCeUFkZHJlc3MoXG4gICAgICAgIHA6IGdldFRpbWluZ3NCeUFkZHJlc3NSZXF1ZXN0LFxuICAgICk6IE9ic2VydmFibGU8Z2V0VGltaW5nc1Jlc3BvbnNlPiB7XG4gICAgICAgIHAuc2hhZmFxID8/PSAnZ2VuZXJhbCc7XG4gICAgICAgIHAuc2Nob29sID8/PSBzY2hvb2xUeXBlcy5TVEFOREFSRF9TSEFGSTtcbiAgICAgICAgcC5taWRuaWdodE1vZGUgPz89IG1pZG5pZ2h0TW9kZXMuU1RBTkRBUkQ7XG4gICAgICAgIGNvbnN0IHEgPSB7IC4uLnAsIGRhdGU6IHVuZGVmaW5lZCB9O1xuICAgICAgICBjb25zdCBkYXRlID0gcC5kYXRlXG4gICAgICAgICAgICA/IGAvJHt0aGlzLnV0aWxzLmZvcm1hdERhdGVUb0RETU1ZWVlZKHAuZGF0ZSl9YFxuICAgICAgICAgICAgOiAnJztcblxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmJhc2VVcmx9L3RpbWluZ3NCeUFkZHJlc3Mke2RhdGV9PyR7dGhpcy51dGlscy50b1F1ZXJ5U3RyaW5nKHEpfWA7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGdldFRpbWluZ3NSZXNwb25zZT4odXJsKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFsbCBwcmF5ZXIgdGltZXMgZm9yIGEgc3BlY2lmaWMgZGF0ZSBpbiBhIHBhcnRpY3VsYXIgY2l0eS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VGltaW5nc0J5Q2l0eShcbiAgICAgICAgcDogZ2V0VGltaW5nc0J5Q2l0eVJlcXVlc3QsXG4gICAgKTogT2JzZXJ2YWJsZTxnZXRUaW1pbmdzUmVzcG9uc2U+IHtcbiAgICAgICAgcC5zaGFmYXEgPz89ICdnZW5lcmFsJztcbiAgICAgICAgcC5zY2hvb2wgPz89IHNjaG9vbFR5cGVzLlNUQU5EQVJEX1NIQUZJO1xuICAgICAgICBwLm1pZG5pZ2h0TW9kZSA/Pz0gbWlkbmlnaHRNb2Rlcy5TVEFOREFSRDtcbiAgICAgICAgY29uc3QgcSA9IHsgLi4ucCwgZGF0ZTogdW5kZWZpbmVkIH07XG4gICAgICAgIGNvbnN0IGRhdGUgPSBwLmRhdGVcbiAgICAgICAgICAgID8gYC8ke3RoaXMudXRpbHMuZm9ybWF0RGF0ZVRvRERNTVlZWVkocC5kYXRlKX1gXG4gICAgICAgICAgICA6ICcnO1xuXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYmFzZVVybH0vdGltaW5nc0J5Q2l0eSR7ZGF0ZX0/JHt0aGlzLnV0aWxzLnRvUXVlcnlTdHJpbmcocSl9YDtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Z2V0VGltaW5nc1Jlc3BvbnNlPih1cmwpO1xuICAgIH1cbn1cbiJdfQ==