@sd-angular/core 1.3.251 → 1.3.252

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,6 +15,7 @@ export declare class SdApiService {
15
15
  get http(): HttpClient;
16
16
  post: <T = any>(url: string, body?: any, headers?: HttpHeaders, options?: {
17
17
  responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';
18
+ encodeURI?: boolean;
18
19
  timeout?: number;
19
20
  }) => Promise<T>;
20
21
  postCache: <T = any>(url: string, body?: any, options?: {
@@ -476,6 +476,7 @@
476
476
  var _a, _b, hashKey, apiTimeout;
477
477
  var _this = this;
478
478
  return __generator(this, function (_e) {
479
+ url = (options === null || options === void 0 ? void 0 : options.encodeURI) === false ? url : encodeURI(url);
479
480
  headers =
480
481
  headers ||
481
482
  this.tokenService.customHeaders({
@@ -497,7 +498,7 @@
497
498
  };
498
499
  if ((options === null || options === void 0 ? void 0 : options.responseType) && options.responseType !== 'json') {
499
500
  this.httpClient
500
- .post(encodeURI(url), body, {
501
+ .post(url, body, {
501
502
  observe: 'body',
502
503
  headers: headers,
503
504
  responseType: options === null || options === void 0 ? void 0 : options.responseType,
@@ -519,7 +520,7 @@
519
520
  }
520
521
  else {
521
522
  this.httpClient
522
- .post(encodeURI(url), body, {
523
+ .post(url, body, {
523
524
  observe: 'response',
524
525
  headers: headers,
525
526
  })
@@ -1 +1 @@
1
- {"version":3,"file":"sd-angular-core-api.umd.js","sources":["../../../../projects/sd-core/api/src/lib/api.model.ts","../../../../projects/sd-core/api/src/lib/token.service.ts","../../../../projects/sd-core/api/src/lib/http.interceptor.ts","../../../../projects/sd-core/api/src/lib/api.module.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/api/src/lib/api.service.ts","../../../../projects/sd-core/api/src/lib/http.service.ts","../../../../projects/sd-core/api/src/public-api.ts","../../../../projects/sd-core/api/sd-angular-core-api.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { HttpErrorResponse, HttpHeaders, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport hash from 'object-hash';\r\n\r\nexport interface IApiConfiguration {\r\n host?: string;\r\n tokenHeader?: string;\r\n customHeaders?: (args?: { url?: string }) => HttpHeaders;\r\n beforeRemote?: (request: HttpRequest<any>) => void | Promise<void>;\r\n afterRemote?: (response: HttpResponse<any> | HttpErrorResponse) => void | Promise<void>;\r\n translate?: (value: string) => string;\r\n}\r\n\r\nexport const API_CONFIG = new InjectionToken<IApiConfiguration>('api.configuration');\r\n\r\nexport const TOKEN = hash({\r\n origin: location.origin,\r\n key: 'ed4a2ffc-af43-41fb-9ac9-970f43d99571'\r\n});","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { IApiConfiguration, API_CONFIG, TOKEN } from './api.model';\r\nimport { SdCacheService } from '@sd-angular/core/cache';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdTokenService {\r\n\r\n get token() {\r\n const { get } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n return get();\r\n }\r\n\r\n set = (token: string) => {\r\n const { set } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n set(token);\r\n }\r\n\r\n clear = () => {\r\n const { remove } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n remove();\r\n }\r\n\r\n customHeaders = (args?: { url?: string }) => {\r\n return this.configuration?.customHeaders?.(args) || null;\r\n }\r\n\r\n constructor(\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private cacheService: SdCacheService) {\r\n }\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { from, Observable, of, throwError } from 'rxjs';\r\nimport { catchError, map, switchMap } from 'rxjs/operators';\r\nimport { API_CONFIG, IApiConfiguration } from './api.model';\r\nimport { SdTokenService } from './token.service';\r\n\r\n@Injectable()\r\nexport class SdHttpInterceptor implements HttpInterceptor {\r\n constructor(\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private tokenService: SdTokenService\r\n ) { }\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n if (this.configuration?.tokenHeader && this.tokenService.token) {\r\n request = request.clone({ headers: request.headers.set(this.configuration.tokenHeader, this.tokenService.token) });\r\n }\r\n\r\n if (!request.url.startsWith('http')) {\r\n request = request.clone({\r\n url: (this.configuration?.host || location.host) + request.url\r\n });\r\n }\r\n if (request.body instanceof FormData) {\r\n request = request.clone({\r\n headers: request.headers.delete('Content-Type')\r\n });\r\n }\r\n const beforeRemote = this.configuration?.beforeRemote?.(request);\r\n if (beforeRemote instanceof Promise) {\r\n return from(beforeRemote).pipe(\r\n switchMap(() => next.handle(request)),\r\n map((event: HttpEvent<any>) => {\r\n if (event instanceof HttpResponse) {\r\n this.configuration?.afterRemote?.(event);\r\n }\r\n return event;\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n this.configuration?.afterRemote?.(error);\r\n return throwError(error);\r\n }));\r\n }\r\n return next.handle(request).pipe(\r\n map((event: HttpEvent<any>) => {\r\n if (event instanceof HttpResponse) {\r\n this.configuration?.afterRemote?.(event);\r\n }\r\n return event;\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n this.configuration?.afterRemote?.(error);\r\n return throwError(error);\r\n }));\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { SdHttpInterceptor } from './http.interceptor';\r\n\r\n@NgModule({\r\n imports: [\r\n HttpClientModule,\r\n ],\r\n exports: [\r\n HttpClientModule\r\n ],\r\n providers: [\r\n { provide: HTTP_INTERCEPTORS, useClass: SdHttpInterceptor, multi: true }\r\n ],\r\n})\r\nexport class SdApiModule { }\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n 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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n 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); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n 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);\r\n 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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { take, timeout } from 'rxjs/operators';\r\nimport { IApiConfiguration, API_CONFIG } from './api.model';\r\nimport { SdCacheService } from '@sd-angular/core/cache';\r\nimport { SdTokenService } from './token.service';\r\nimport { Subject } from 'rxjs';\r\nimport hash from 'object-hash';\r\nimport * as uuid from 'uuid';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SdApiService {\r\n private uploadId = 'U118fefb1-3085-4641-8cb8-f7fe5c28f509';\r\n\r\n #timeout = 120000; // 120s\r\n\r\n #cacheDuration = 2000; // 2s\r\n #cache: {\r\n [key: string]: {\r\n createdDate: Date;\r\n subject: Subject<any>;\r\n response?: {\r\n status?: 'success' | 'error';\r\n result: any;\r\n };\r\n };\r\n } = {};\r\n\r\n private translate = (value: string): string => {\r\n return this.configuration?.translate(value) || value;\r\n };\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private cacheService: SdCacheService,\r\n private tokenService: SdTokenService\r\n ) {}\r\n\r\n get http() {\r\n return this.httpClient;\r\n }\r\n\r\n post = async <T = any>(\r\n url: string,\r\n body?: any,\r\n headers?: HttpHeaders,\r\n options?: {\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n timeout?: number;\r\n }\r\n ): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n let hashKey = uuid.v4();\r\n if (!(body instanceof FormData)) {\r\n hashKey = hash({\r\n url,\r\n headers,\r\n body,\r\n });\r\n }\r\n const apiTimeout = options?.timeout || this.#timeout;\r\n if (!this.#cache[hashKey] || Date.addMiliseconds(this.#cache[hashKey].createdDate, this.#cacheDuration) < new Date()) {\r\n this.#cache[hashKey] = {\r\n createdDate: new Date(),\r\n subject: new Subject(),\r\n };\r\n if (options?.responseType && options.responseType !== 'json') {\r\n this.httpClient\r\n .post(encodeURI(url), body, {\r\n observe: 'body',\r\n headers,\r\n responseType: options?.responseType as any,\r\n })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res,\r\n };\r\n this.#cache[hashKey].subject.next(res);\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n } else {\r\n this.httpClient\r\n .post(encodeURI(url), body, {\r\n observe: 'response',\r\n headers,\r\n })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n if (res.ok) {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.next(res.body);\r\n } else {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.error(res.body);\r\n }\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n }\r\n }\r\n if (this.#cache[hashKey].response?.status) {\r\n if (this.#cache[hashKey].response?.status === 'success') {\r\n return this.#cache[hashKey].response.result;\r\n }\r\n throw this.#cache[hashKey].response.result;\r\n }\r\n return this.#cache[hashKey].subject.pipe(take(1)).toPromise();\r\n };\r\n\r\n postCache = async <T = any>(\r\n url: string,\r\n body?: any,\r\n options?: {\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n }\r\n ): Promise<T> => {\r\n const headers =\r\n options?.headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n const { get, set, has } = this.cacheService.create(\r\n {\r\n url,\r\n headers,\r\n body,\r\n },\r\n {\r\n type: options?.cacheType,\r\n hours: options?.cacheHours,\r\n }\r\n );\r\n if (!has()) {\r\n const result = await this.post(url, body, options?.headers, {\r\n timeout: 5000, // 5s\r\n });\r\n set(result);\r\n return result;\r\n }\r\n return get();\r\n };\r\n\r\n put = async <T = any>(url: string, body?: any, headers?: HttpHeaders): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n return await new Promise<any>((resolve, reject) => {\r\n this.httpClient\r\n .put(encodeURI(url), body, {\r\n observe: 'response',\r\n headers,\r\n })\r\n .pipe(timeout(this.#timeout))\r\n .toPromise()\r\n .then(result => {\r\n if (result.ok) {\r\n resolve(result.body);\r\n } else {\r\n reject(result.body);\r\n }\r\n })\r\n .catch((httpErrorResponse: HttpErrorResponse) => {\r\n reject(httpErrorResponse);\r\n });\r\n });\r\n };\r\n\r\n patch = async <T = any>(url: string, body?: any, headers?: HttpHeaders): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n return await new Promise<any>((resolve, reject) => {\r\n this.httpClient\r\n .patch(encodeURI(url), body, {\r\n observe: 'response',\r\n headers,\r\n })\r\n .pipe(timeout(this.#timeout))\r\n .toPromise()\r\n .then(result => {\r\n if (result.ok) {\r\n resolve(result.body);\r\n } else {\r\n reject(result.body);\r\n }\r\n })\r\n .catch((httpErrorResponse: HttpErrorResponse) => {\r\n reject(httpErrorResponse);\r\n });\r\n });\r\n };\r\n\r\n #defineParams = (request: any) => {\r\n const rq = [];\r\n for (const [key, value] of Object.entries(request)) {\r\n if (value !== null && value !== undefined && value !== '' && value?.toString() !== '') {\r\n rq.push(`${encodeURIComponent(key as string)}=${encodeURIComponent(value as string)}`);\r\n }\r\n }\r\n return `?${rq?.join('&')}`;\r\n };\r\n\r\n getWithParams = async <T = any>(\r\n url: string,\r\n params: any,\r\n options?: {\r\n headers?: HttpHeaders;\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n }\r\n ): Promise<T> => {\r\n return await this.get(`${url}${this.#defineParams(params)}`, options?.headers, { ...options, encodeURI: false });\r\n };\r\n\r\n getCacheWithParams = async <T = any>(\r\n url: string,\r\n params: any,\r\n headers?: HttpHeaders,\r\n options?: {\r\n reload?: boolean;\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n }\r\n ): Promise<T> => {\r\n return await this.getCache(`${url}${this.#defineParams(params)}`, { ...options, headers, encodeURI: false });\r\n };\r\n\r\n get = async <T = any>(\r\n url: string,\r\n headers?: HttpHeaders,\r\n options?: {\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n encodeURI?: boolean;\r\n timeout?: number;\r\n }\r\n ): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n const encodedUrl = options?.encodeURI === false ? url : encodeURI(url);\r\n // const hashKey = hash({\r\n // encodedUrl,\r\n // headers\r\n // });\r\n const hashKey = hash({\r\n encodedUrl,\r\n headers,\r\n });\r\n const apiTimeout = options?.timeout || this.#timeout;\r\n if (!this.#cache[hashKey] || Date.addMiliseconds(this.#cache[hashKey].createdDate, this.#cacheDuration) < new Date()) {\r\n this.#cache[hashKey] = {\r\n createdDate: new Date(),\r\n subject: new Subject(),\r\n };\r\n if (options?.responseType && options.responseType !== 'json') {\r\n this.httpClient\r\n .get(encodedUrl, { observe: 'body', headers, responseType: options?.responseType as any })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res,\r\n };\r\n this.#cache[hashKey].subject.next(res);\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n } else {\r\n this.httpClient\r\n .get(encodedUrl, { observe: 'response', headers })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n if (res.ok) {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.next(res.body);\r\n } else {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.error(res.body);\r\n }\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n }\r\n }\r\n if (this.#cache[hashKey].response?.status) {\r\n if (this.#cache[hashKey].response?.status === 'success') {\r\n return this.#cache[hashKey].response.result;\r\n }\r\n throw this.#cache[hashKey].response.result;\r\n }\r\n return this.#cache[hashKey].subject.pipe(take(1)).toPromise();\r\n };\r\n\r\n getCache = async <T = any>(\r\n url: string,\r\n options?: {\r\n reload?: boolean;\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n encodeURI?: boolean;\r\n }\r\n ): Promise<T> => {\r\n const headers =\r\n options?.headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n const encodedUrl = options?.encodeURI === false ? url : encodeURI(url);\r\n const { get, set, has } = this.cacheService.create(\r\n {\r\n encodedUrl,\r\n headers,\r\n },\r\n {\r\n type: options?.cacheType,\r\n hours: options?.cacheHours,\r\n }\r\n );\r\n if (!has() || options?.reload) {\r\n const result = await this.get(encodedUrl, options?.headers, { encodeURI: false, timeout: 5000 });\r\n set(result);\r\n return result;\r\n }\r\n return get();\r\n };\r\n\r\n delete = async <T = any>(url: string, headers?: HttpHeaders): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n return await new Promise<any>((resolve, reject) => {\r\n this.httpClient\r\n .delete(encodeURI(url), { observe: 'response', headers })\r\n .pipe(timeout(this.#timeout))\r\n .toPromise()\r\n .then(result => {\r\n if (result.ok) {\r\n resolve(result.body);\r\n } else {\r\n reject(result.body);\r\n }\r\n })\r\n .catch((httpErrorResponse: HttpErrorResponse) => {\r\n reject(httpErrorResponse);\r\n });\r\n });\r\n };\r\n\r\n uploadSingle = (\r\n url: string,\r\n option?: {\r\n extensions?: string[];\r\n maxSizeInMb?: number;\r\n validator?: (fileName: string) => string;\r\n }\r\n ): Promise<any> => {\r\n return SdUtility.upload(option).then(file => this.upload(url, file));\r\n };\r\n\r\n upload = async (url: string, file: File) => {\r\n const lastDot = file.name.lastIndexOf('.');\r\n if (lastDot === -1) {\r\n const message = this.translate(`Invalid file extension`);\r\n throw new Error(message);\r\n }\r\n const formData: FormData = new FormData();\r\n formData.append('file', file, file.name);\r\n return await this.post(url, formData);\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { SdTokenService } from './token.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdHttpService {\r\n constructor(\r\n private httpClient: HttpClient,\r\n private tokenService: SdTokenService) {\r\n }\r\n\r\n get =<T = any>(url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.get<T>(url, option);\r\n }\r\n\r\n post = <T = any>(url: string, body?: any, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.post<T>(url, body, option);\r\n }\r\n\r\n put = <T = any>(url: string, body?: any, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.put<T>(url, body, option);\r\n }\r\n\r\n delete = <T = any>(url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.delete<T>(url, option);\r\n }\r\n\r\n request = <T = any>(method: string, url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.request<T>(method, url, option);\r\n }\r\n}\r\n\r\ninterface ObservableOption {\r\n body?: any;\r\n headers?: HttpHeaders | {\r\n [header: string]: string | string[];\r\n };\r\n observe?: 'body';\r\n params?: HttpParams | {\r\n [param: string]: string | string[];\r\n };\r\n reportProgress?: boolean;\r\n responseType?: 'json';\r\n withCredentials?: boolean;\r\n}","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/api.module';\r\nexport * from './lib/token.service';\r\nexport * from './lib/api.model';\r\nexport * from './lib/api.service';\r\nexport * from './lib/http.service';\r\nexport * from './lib/http.interceptor';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["InjectionToken","hash","Injectable","Inject","Optional","SdCacheService","from","switchMap","map","HttpResponse","catchError","throwError","NgModule","HttpClientModule","HTTP_INTERCEPTORS","uuid.v4","Subject","timeout","take","HttpClient"],"mappings":"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"}
1
+ {"version":3,"file":"sd-angular-core-api.umd.js","sources":["../../../../projects/sd-core/api/src/lib/api.model.ts","../../../../projects/sd-core/api/src/lib/token.service.ts","../../../../projects/sd-core/api/src/lib/http.interceptor.ts","../../../../projects/sd-core/api/src/lib/api.module.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/api/src/lib/api.service.ts","../../../../projects/sd-core/api/src/lib/http.service.ts","../../../../projects/sd-core/api/src/public-api.ts","../../../../projects/sd-core/api/sd-angular-core-api.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { HttpErrorResponse, HttpHeaders, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport hash from 'object-hash';\r\n\r\nexport interface IApiConfiguration {\r\n host?: string;\r\n tokenHeader?: string;\r\n customHeaders?: (args?: { url?: string }) => HttpHeaders;\r\n beforeRemote?: (request: HttpRequest<any>) => void | Promise<void>;\r\n afterRemote?: (response: HttpResponse<any> | HttpErrorResponse) => void | Promise<void>;\r\n translate?: (value: string) => string;\r\n}\r\n\r\nexport const API_CONFIG = new InjectionToken<IApiConfiguration>('api.configuration');\r\n\r\nexport const TOKEN = hash({\r\n origin: location.origin,\r\n key: 'ed4a2ffc-af43-41fb-9ac9-970f43d99571'\r\n});","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { IApiConfiguration, API_CONFIG, TOKEN } from './api.model';\r\nimport { SdCacheService } from '@sd-angular/core/cache';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdTokenService {\r\n\r\n get token() {\r\n const { get } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n return get();\r\n }\r\n\r\n set = (token: string) => {\r\n const { set } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n set(token);\r\n }\r\n\r\n clear = () => {\r\n const { remove } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n remove();\r\n }\r\n\r\n customHeaders = (args?: { url?: string }) => {\r\n return this.configuration?.customHeaders?.(args) || null;\r\n }\r\n\r\n constructor(\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private cacheService: SdCacheService) {\r\n }\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { from, Observable, of, throwError } from 'rxjs';\r\nimport { catchError, map, switchMap } from 'rxjs/operators';\r\nimport { API_CONFIG, IApiConfiguration } from './api.model';\r\nimport { SdTokenService } from './token.service';\r\n\r\n@Injectable()\r\nexport class SdHttpInterceptor implements HttpInterceptor {\r\n constructor(\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private tokenService: SdTokenService\r\n ) { }\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n if (this.configuration?.tokenHeader && this.tokenService.token) {\r\n request = request.clone({ headers: request.headers.set(this.configuration.tokenHeader, this.tokenService.token) });\r\n }\r\n\r\n if (!request.url.startsWith('http')) {\r\n request = request.clone({\r\n url: (this.configuration?.host || location.host) + request.url\r\n });\r\n }\r\n if (request.body instanceof FormData) {\r\n request = request.clone({\r\n headers: request.headers.delete('Content-Type')\r\n });\r\n }\r\n const beforeRemote = this.configuration?.beforeRemote?.(request);\r\n if (beforeRemote instanceof Promise) {\r\n return from(beforeRemote).pipe(\r\n switchMap(() => next.handle(request)),\r\n map((event: HttpEvent<any>) => {\r\n if (event instanceof HttpResponse) {\r\n this.configuration?.afterRemote?.(event);\r\n }\r\n return event;\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n this.configuration?.afterRemote?.(error);\r\n return throwError(error);\r\n }));\r\n }\r\n return next.handle(request).pipe(\r\n map((event: HttpEvent<any>) => {\r\n if (event instanceof HttpResponse) {\r\n this.configuration?.afterRemote?.(event);\r\n }\r\n return event;\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n this.configuration?.afterRemote?.(error);\r\n return throwError(error);\r\n }));\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { SdHttpInterceptor } from './http.interceptor';\r\n\r\n@NgModule({\r\n imports: [\r\n HttpClientModule,\r\n ],\r\n exports: [\r\n HttpClientModule\r\n ],\r\n providers: [\r\n { provide: HTTP_INTERCEPTORS, useClass: SdHttpInterceptor, multi: true }\r\n ],\r\n})\r\nexport class SdApiModule { }\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n 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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n 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); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n 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);\r\n 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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { take, timeout } from 'rxjs/operators';\r\nimport { IApiConfiguration, API_CONFIG } from './api.model';\r\nimport { SdCacheService } from '@sd-angular/core/cache';\r\nimport { SdTokenService } from './token.service';\r\nimport { Subject } from 'rxjs';\r\nimport hash from 'object-hash';\r\nimport * as uuid from 'uuid';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SdApiService {\r\n private uploadId = 'U118fefb1-3085-4641-8cb8-f7fe5c28f509';\r\n\r\n #timeout = 120000; // 120s\r\n\r\n #cacheDuration = 2000; // 2s\r\n #cache: {\r\n [key: string]: {\r\n createdDate: Date;\r\n subject: Subject<any>;\r\n response?: {\r\n status?: 'success' | 'error';\r\n result: any;\r\n };\r\n };\r\n } = {};\r\n\r\n private translate = (value: string): string => {\r\n return this.configuration?.translate(value) || value;\r\n };\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private cacheService: SdCacheService,\r\n private tokenService: SdTokenService\r\n ) {}\r\n\r\n get http() {\r\n return this.httpClient;\r\n }\r\n\r\n post = async <T = any>(\r\n url: string,\r\n body?: any,\r\n headers?: HttpHeaders,\r\n options?: {\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n encodeURI?: boolean;\r\n timeout?: number;\r\n }\r\n ): Promise<T> => {\r\n url = options?.encodeURI === false ? url : encodeURI(url);\r\n\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n let hashKey = uuid.v4();\r\n if (!(body instanceof FormData)) {\r\n hashKey = hash({\r\n url,\r\n headers,\r\n body,\r\n });\r\n }\r\n const apiTimeout = options?.timeout || this.#timeout;\r\n if (!this.#cache[hashKey] || Date.addMiliseconds(this.#cache[hashKey].createdDate, this.#cacheDuration) < new Date()) {\r\n this.#cache[hashKey] = {\r\n createdDate: new Date(),\r\n subject: new Subject(),\r\n };\r\n if (options?.responseType && options.responseType !== 'json') {\r\n this.httpClient\r\n .post(url, body, {\r\n observe: 'body',\r\n headers,\r\n responseType: options?.responseType as any,\r\n })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res,\r\n };\r\n this.#cache[hashKey].subject.next(res);\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n } else {\r\n this.httpClient\r\n .post(url, body, {\r\n observe: 'response',\r\n headers,\r\n })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n if (res.ok) {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.next(res.body);\r\n } else {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.error(res.body);\r\n }\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n }\r\n }\r\n if (this.#cache[hashKey].response?.status) {\r\n if (this.#cache[hashKey].response?.status === 'success') {\r\n return this.#cache[hashKey].response.result;\r\n }\r\n throw this.#cache[hashKey].response.result;\r\n }\r\n return this.#cache[hashKey].subject.pipe(take(1)).toPromise();\r\n };\r\n\r\n postCache = async <T = any>(\r\n url: string,\r\n body?: any,\r\n options?: {\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n }\r\n ): Promise<T> => {\r\n const headers =\r\n options?.headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n const { get, set, has } = this.cacheService.create(\r\n {\r\n url,\r\n headers,\r\n body,\r\n },\r\n {\r\n type: options?.cacheType,\r\n hours: options?.cacheHours,\r\n }\r\n );\r\n if (!has()) {\r\n const result = await this.post(url, body, options?.headers, {\r\n timeout: 5000, // 5s\r\n });\r\n set(result);\r\n return result;\r\n }\r\n return get();\r\n };\r\n\r\n put = async <T = any>(url: string, body?: any, headers?: HttpHeaders): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n return await new Promise<any>((resolve, reject) => {\r\n this.httpClient\r\n .put(encodeURI(url), body, {\r\n observe: 'response',\r\n headers,\r\n })\r\n .pipe(timeout(this.#timeout))\r\n .toPromise()\r\n .then(result => {\r\n if (result.ok) {\r\n resolve(result.body);\r\n } else {\r\n reject(result.body);\r\n }\r\n })\r\n .catch((httpErrorResponse: HttpErrorResponse) => {\r\n reject(httpErrorResponse);\r\n });\r\n });\r\n };\r\n\r\n patch = async <T = any>(url: string, body?: any, headers?: HttpHeaders): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n return await new Promise<any>((resolve, reject) => {\r\n this.httpClient\r\n .patch(encodeURI(url), body, {\r\n observe: 'response',\r\n headers,\r\n })\r\n .pipe(timeout(this.#timeout))\r\n .toPromise()\r\n .then(result => {\r\n if (result.ok) {\r\n resolve(result.body);\r\n } else {\r\n reject(result.body);\r\n }\r\n })\r\n .catch((httpErrorResponse: HttpErrorResponse) => {\r\n reject(httpErrorResponse);\r\n });\r\n });\r\n };\r\n\r\n #defineParams = (request: any) => {\r\n const rq = [];\r\n for (const [key, value] of Object.entries(request)) {\r\n if (value !== null && value !== undefined && value !== '' && value?.toString() !== '') {\r\n rq.push(`${encodeURIComponent(key as string)}=${encodeURIComponent(value as string)}`);\r\n }\r\n }\r\n return `?${rq?.join('&')}`;\r\n };\r\n\r\n getWithParams = async <T = any>(\r\n url: string,\r\n params: any,\r\n options?: {\r\n headers?: HttpHeaders;\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n }\r\n ): Promise<T> => {\r\n return await this.get(`${url}${this.#defineParams(params)}`, options?.headers, { ...options, encodeURI: false });\r\n };\r\n\r\n getCacheWithParams = async <T = any>(\r\n url: string,\r\n params: any,\r\n headers?: HttpHeaders,\r\n options?: {\r\n reload?: boolean;\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n }\r\n ): Promise<T> => {\r\n return await this.getCache(`${url}${this.#defineParams(params)}`, { ...options, headers, encodeURI: false });\r\n };\r\n\r\n get = async <T = any>(\r\n url: string,\r\n headers?: HttpHeaders,\r\n options?: {\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n encodeURI?: boolean;\r\n timeout?: number;\r\n }\r\n ): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n const encodedUrl = options?.encodeURI === false ? url : encodeURI(url);\r\n // const hashKey = hash({\r\n // encodedUrl,\r\n // headers\r\n // });\r\n const hashKey = hash({\r\n encodedUrl,\r\n headers,\r\n });\r\n const apiTimeout = options?.timeout || this.#timeout;\r\n if (!this.#cache[hashKey] || Date.addMiliseconds(this.#cache[hashKey].createdDate, this.#cacheDuration) < new Date()) {\r\n this.#cache[hashKey] = {\r\n createdDate: new Date(),\r\n subject: new Subject(),\r\n };\r\n if (options?.responseType && options.responseType !== 'json') {\r\n this.httpClient\r\n .get(encodedUrl, { observe: 'body', headers, responseType: options?.responseType as any })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res,\r\n };\r\n this.#cache[hashKey].subject.next(res);\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n } else {\r\n this.httpClient\r\n .get(encodedUrl, { observe: 'response', headers })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n if (res.ok) {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.next(res.body);\r\n } else {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.error(res.body);\r\n }\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n }\r\n }\r\n if (this.#cache[hashKey].response?.status) {\r\n if (this.#cache[hashKey].response?.status === 'success') {\r\n return this.#cache[hashKey].response.result;\r\n }\r\n throw this.#cache[hashKey].response.result;\r\n }\r\n return this.#cache[hashKey].subject.pipe(take(1)).toPromise();\r\n };\r\n\r\n getCache = async <T = any>(\r\n url: string,\r\n options?: {\r\n reload?: boolean;\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n encodeURI?: boolean;\r\n }\r\n ): Promise<T> => {\r\n const headers =\r\n options?.headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n const encodedUrl = options?.encodeURI === false ? url : encodeURI(url);\r\n const { get, set, has } = this.cacheService.create(\r\n {\r\n encodedUrl,\r\n headers,\r\n },\r\n {\r\n type: options?.cacheType,\r\n hours: options?.cacheHours,\r\n }\r\n );\r\n if (!has() || options?.reload) {\r\n const result = await this.get(encodedUrl, options?.headers, { encodeURI: false, timeout: 5000 });\r\n set(result);\r\n return result;\r\n }\r\n return get();\r\n };\r\n\r\n delete = async <T = any>(url: string, headers?: HttpHeaders): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n return await new Promise<any>((resolve, reject) => {\r\n this.httpClient\r\n .delete(encodeURI(url), { observe: 'response', headers })\r\n .pipe(timeout(this.#timeout))\r\n .toPromise()\r\n .then(result => {\r\n if (result.ok) {\r\n resolve(result.body);\r\n } else {\r\n reject(result.body);\r\n }\r\n })\r\n .catch((httpErrorResponse: HttpErrorResponse) => {\r\n reject(httpErrorResponse);\r\n });\r\n });\r\n };\r\n\r\n uploadSingle = (\r\n url: string,\r\n option?: {\r\n extensions?: string[];\r\n maxSizeInMb?: number;\r\n validator?: (fileName: string) => string;\r\n }\r\n ): Promise<any> => {\r\n return SdUtility.upload(option).then(file => this.upload(url, file));\r\n };\r\n\r\n upload = async (url: string, file: File) => {\r\n const lastDot = file.name.lastIndexOf('.');\r\n if (lastDot === -1) {\r\n const message = this.translate(`Invalid file extension`);\r\n throw new Error(message);\r\n }\r\n const formData: FormData = new FormData();\r\n formData.append('file', file, file.name);\r\n return await this.post(url, formData);\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { SdTokenService } from './token.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdHttpService {\r\n constructor(\r\n private httpClient: HttpClient,\r\n private tokenService: SdTokenService) {\r\n }\r\n\r\n get =<T = any>(url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.get<T>(url, option);\r\n }\r\n\r\n post = <T = any>(url: string, body?: any, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.post<T>(url, body, option);\r\n }\r\n\r\n put = <T = any>(url: string, body?: any, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.put<T>(url, body, option);\r\n }\r\n\r\n delete = <T = any>(url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.delete<T>(url, option);\r\n }\r\n\r\n request = <T = any>(method: string, url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.request<T>(method, url, option);\r\n }\r\n}\r\n\r\ninterface ObservableOption {\r\n body?: any;\r\n headers?: HttpHeaders | {\r\n [header: string]: string | string[];\r\n };\r\n observe?: 'body';\r\n params?: HttpParams | {\r\n [param: string]: string | string[];\r\n };\r\n reportProgress?: boolean;\r\n responseType?: 'json';\r\n withCredentials?: boolean;\r\n}","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/api.module';\r\nexport * from './lib/token.service';\r\nexport * from './lib/api.model';\r\nexport * from './lib/api.service';\r\nexport * from './lib/http.service';\r\nexport * from './lib/http.interceptor';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["InjectionToken","hash","Injectable","Inject","Optional","SdCacheService","from","switchMap","map","HttpResponse","catchError","throwError","NgModule","HttpClientModule","HTTP_INTERCEPTORS","uuid.v4","Subject","timeout","take","HttpClient"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common/http"),require("rxjs"),require("rxjs/operators"),require("object-hash"),require("@sd-angular/core/cache"),require("uuid")):"function"==typeof define&&define.amd?define("@sd-angular/core/api",["exports","@angular/core","@angular/common/http","rxjs","rxjs/operators","object-hash","@sd-angular/core/cache","uuid"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self)["sd-angular"]=e["sd-angular"]||{},e["sd-angular"].core=e["sd-angular"].core||{},e["sd-angular"].core.api={}),e.ng.core,e.ng.common.http,e.rxjs,e.rxjs.operators,e["object-hash"],e["sd-angular"].core.cache,e.uuid)}(this,(function(e,t,r,n,o,i,s,c){"use strict";function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=u(i),l=new t.InjectionToken("api.configuration"),d=a.default({origin:location.origin,key:"ed4a2ffc-af43-41fb-9ac9-970f43d99571"}),h=function(){function e(e,t){var r=this;this.configuration=e,this.cacheService=t,this.set=function(e){(0,r.cacheService.create(d,{type:"local",hours:240}).set)(e)},this.clear=function(){(0,r.cacheService.create(d,{type:"local",hours:240}).remove)()},this.customHeaders=function(e){var t,n;return(null===(n=null===(t=r.configuration)||void 0===t?void 0:t.customHeaders)||void 0===n?void 0:n.call(t,e))||null}}return Object.defineProperty(e.prototype,"token",{get:function(){return(0,this.cacheService.create(d,{type:"local",hours:240}).get)()},enumerable:!1,configurable:!0}),e}();h.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new h(t.ɵɵinject(l,8),t.ɵɵinject(s.SdCacheService))},token:h,providedIn:"root"}),h.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],h.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[l]},{type:t.Optional}]},{type:s.SdCacheService}]};var p=function(){function e(e,t){this.configuration=e,this.tokenService=t}return e.prototype.intercept=function(e,t){var i,s,c,u,a=this;(null===(i=this.configuration)||void 0===i?void 0:i.tokenHeader)&&this.tokenService.token&&(e=e.clone({headers:e.headers.set(this.configuration.tokenHeader,this.tokenService.token)})),e.url.startsWith("http")||(e=e.clone({url:((null===(s=this.configuration)||void 0===s?void 0:s.host)||location.host)+e.url})),e.body instanceof FormData&&(e=e.clone({headers:e.headers.delete("Content-Type")}));var l=null===(u=null===(c=this.configuration)||void 0===c?void 0:c.beforeRemote)||void 0===u?void 0:u.call(c,e);return l instanceof Promise?n.from(l).pipe(o.switchMap((function(){return t.handle(e)})),o.map((function(e){var t,n;return e instanceof r.HttpResponse&&(null===(n=null===(t=a.configuration)||void 0===t?void 0:t.afterRemote)||void 0===n||n.call(t,e)),e})),o.catchError((function(e){var t,r;return null===(r=null===(t=a.configuration)||void 0===t?void 0:t.afterRemote)||void 0===r||r.call(t,e),n.throwError(e)}))):t.handle(e).pipe(o.map((function(e){var t,n;return e instanceof r.HttpResponse&&(null===(n=null===(t=a.configuration)||void 0===t?void 0:t.afterRemote)||void 0===n||n.call(t,e)),e})),o.catchError((function(e){var t,r;return null===(r=null===(t=a.configuration)||void 0===t?void 0:t.afterRemote)||void 0===r||r.call(t,e),n.throwError(e)})))},e}();p.decorators=[{type:t.Injectable}],p.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[l]},{type:t.Optional}]},{type:h}]};var f=function(){};f.decorators=[{type:t.NgModule,args:[{imports:[r.HttpClientModule],exports:[r.HttpClientModule],providers:[{provide:r.HTTP_INTERCEPTORS,useClass:p,multi:!0}]}]}];function v(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{u(n.next(e))}catch(e){i(e)}}function c(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,c)}u((n=n.apply(e,t||[])).next())}))}function b(e,t){var r,n,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,n=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,c])}}}Object.create;function y(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function g(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)s.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return s}var m,j,w,S;Object.create;function k(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)}var I=function(){function e(e,t,r,i){var s=this;this.httpClient=e,this.configuration=t,this.cacheService=r,this.tokenService=i,this.uploadId="U118fefb1-3085-4641-8cb8-f7fe5c28f509",m.set(this,12e4),j.set(this,2e3),w.set(this,{}),this.translate=function(e){var t;return(null===(t=s.configuration)||void 0===t?void 0:t.translate(e))||e},this.post=function(e,t,r,i){return v(s,void 0,void 0,(function(){var s,u,l,d,h=this;return b(this,(function(p){if(r=r||this.tokenService.customHeaders({url:e}),l=c.v4(),t instanceof FormData||(l=a.default({url:e,headers:r,body:t})),d=(null==i?void 0:i.timeout)||k(this,m),(!k(this,w)[l]||Date.addMiliseconds(k(this,w)[l].createdDate,k(this,j))<new Date)&&(k(this,w)[l]={createdDate:new Date,subject:new n.Subject},(null==i?void 0:i.responseType)&&"json"!==i.responseType?this.httpClient.post(encodeURI(e),t,{observe:"body",headers:r,responseType:null==i?void 0:i.responseType}).pipe(o.timeout(d)).subscribe((function(e){k(h,w)[l].response={status:"success",result:e},k(h,w)[l].subject.next(e)}),(function(e){k(h,w)[l].response={status:"error",result:e},k(h,w)[l].subject.error(e)})):this.httpClient.post(encodeURI(e),t,{observe:"response",headers:r}).pipe(o.timeout(d)).subscribe((function(e){e.ok?(k(h,w)[l].response={status:"success",result:e.body},k(h,w)[l].subject.next(e.body)):(k(h,w)[l].response={status:"error",result:e.body},k(h,w)[l].subject.error(e.body))}),(function(e){k(h,w)[l].response={status:"error",result:e},k(h,w)[l].subject.error(e)}))),null===(s=k(this,w)[l].response)||void 0===s?void 0:s.status){if("success"===(null===(u=k(this,w)[l].response)||void 0===u?void 0:u.status))return[2,k(this,w)[l].response.result];throw k(this,w)[l].response.result}return[2,k(this,w)[l].subject.pipe(o.take(1)).toPromise()]}))}))},this.postCache=function(e,t,r){return v(s,void 0,void 0,(function(){var n,o,i,s,c;return b(this,(function(u){switch(u.label){case 0:return n=(null==r?void 0:r.headers)||this.tokenService.customHeaders({url:e}),o=this.cacheService.create({url:e,headers:n,body:t},{type:null==r?void 0:r.cacheType,hours:null==r?void 0:r.cacheHours}),i=o.get,s=o.set,(0,o.has)()?[3,2]:[4,this.post(e,t,null==r?void 0:r.headers,{timeout:5e3})];case 1:return c=u.sent(),s(c),[2,c];case 2:return[2,i()]}}))}))},this.put=function(e,t,r){return v(s,void 0,void 0,(function(){var n=this;return b(this,(function(i){switch(i.label){case 0:return r=r||this.tokenService.customHeaders({url:e}),[4,new Promise((function(i,s){n.httpClient.put(encodeURI(e),t,{observe:"response",headers:r}).pipe(o.timeout(k(n,m))).toPromise().then((function(e){e.ok?i(e.body):s(e.body)})).catch((function(e){s(e)}))}))];case 1:return[2,i.sent()]}}))}))},this.patch=function(e,t,r){return v(s,void 0,void 0,(function(){var n=this;return b(this,(function(i){switch(i.label){case 0:return r=r||this.tokenService.customHeaders({url:e}),[4,new Promise((function(i,s){n.httpClient.patch(encodeURI(e),t,{observe:"response",headers:r}).pipe(o.timeout(k(n,m))).toPromise().then((function(e){e.ok?i(e.body):s(e.body)})).catch((function(e){s(e)}))}))];case 1:return[2,i.sent()]}}))}))},S.set(this,(function(e){var t,r,n=[];try{for(var o=y(Object.entries(e)),i=o.next();!i.done;i=o.next()){var s=g(i.value,2),c=s[0],u=s[1];null!=u&&""!==u&&""!==(null==u?void 0:u.toString())&&n.push(encodeURIComponent(c)+"="+encodeURIComponent(u))}}catch(e){t={error:e}}finally{try{i&&!i.done&&(r=o.return)&&r.call(o)}finally{if(t)throw t.error}}return"?"+(null==n?void 0:n.join("&"))})),this.getWithParams=function(e,t,r){return v(s,void 0,void 0,(function(){return b(this,(function(n){switch(n.label){case 0:return[4,this.get(""+e+k(this,S).call(this,t),null==r?void 0:r.headers,Object.assign(Object.assign({},r),{encodeURI:!1}))];case 1:return[2,n.sent()]}}))}))},this.getCacheWithParams=function(e,t,r,n){return v(s,void 0,void 0,(function(){return b(this,(function(o){switch(o.label){case 0:return[4,this.getCache(""+e+k(this,S).call(this,t),Object.assign(Object.assign({},n),{headers:r,encodeURI:!1}))];case 1:return[2,o.sent()]}}))}))},this.get=function(e,t,r){return v(s,void 0,void 0,(function(){var i,s,c,u,l,d=this;return b(this,(function(h){if(t=t||this.tokenService.customHeaders({url:e}),c=!1===(null==r?void 0:r.encodeURI)?e:encodeURI(e),u=a.default({encodedUrl:c,headers:t}),l=(null==r?void 0:r.timeout)||k(this,m),(!k(this,w)[u]||Date.addMiliseconds(k(this,w)[u].createdDate,k(this,j))<new Date)&&(k(this,w)[u]={createdDate:new Date,subject:new n.Subject},(null==r?void 0:r.responseType)&&"json"!==r.responseType?this.httpClient.get(c,{observe:"body",headers:t,responseType:null==r?void 0:r.responseType}).pipe(o.timeout(l)).subscribe((function(e){k(d,w)[u].response={status:"success",result:e},k(d,w)[u].subject.next(e)}),(function(e){k(d,w)[u].response={status:"error",result:e},k(d,w)[u].subject.error(e)})):this.httpClient.get(c,{observe:"response",headers:t}).pipe(o.timeout(l)).subscribe((function(e){e.ok?(k(d,w)[u].response={status:"success",result:e.body},k(d,w)[u].subject.next(e.body)):(k(d,w)[u].response={status:"error",result:e.body},k(d,w)[u].subject.error(e.body))}),(function(e){k(d,w)[u].response={status:"error",result:e},k(d,w)[u].subject.error(e)}))),null===(i=k(this,w)[u].response)||void 0===i?void 0:i.status){if("success"===(null===(s=k(this,w)[u].response)||void 0===s?void 0:s.status))return[2,k(this,w)[u].response.result];throw k(this,w)[u].response.result}return[2,k(this,w)[u].subject.pipe(o.take(1)).toPromise()]}))}))},this.getCache=function(e,t){return v(s,void 0,void 0,(function(){var r,n,o,i,s,c;return b(this,(function(u){switch(u.label){case 0:return r=(null==t?void 0:t.headers)||this.tokenService.customHeaders({url:e}),n=!1===(null==t?void 0:t.encodeURI)?e:encodeURI(e),o=this.cacheService.create({encodedUrl:n,headers:r},{type:null==t?void 0:t.cacheType,hours:null==t?void 0:t.cacheHours}),i=o.get,s=o.set,(0,o.has)()&&!(null==t?void 0:t.reload)?[3,2]:[4,this.get(n,null==t?void 0:t.headers,{encodeURI:!1,timeout:5e3})];case 1:return c=u.sent(),s(c),[2,c];case 2:return[2,i()]}}))}))},this.delete=function(e,t){return v(s,void 0,void 0,(function(){var r=this;return b(this,(function(n){switch(n.label){case 0:return t=t||this.tokenService.customHeaders({url:e}),[4,new Promise((function(n,i){r.httpClient.delete(encodeURI(e),{observe:"response",headers:t}).pipe(o.timeout(k(r,m))).toPromise().then((function(e){e.ok?n(e.body):i(e.body)})).catch((function(e){i(e)}))}))];case 1:return[2,n.sent()]}}))}))},this.uploadSingle=function(e,t){return SdUtility.upload(t).then((function(t){return s.upload(e,t)}))},this.upload=function(e,t){return v(s,void 0,void 0,(function(){var r,n;return b(this,(function(o){switch(o.label){case 0:if(-1===t.name.lastIndexOf("."))throw r=this.translate("Invalid file extension"),new Error(r);return(n=new FormData).append("file",t,t.name),[4,this.post(e,n)];case 1:return[2,o.sent()]}}))}))}}return Object.defineProperty(e.prototype,"http",{get:function(){return this.httpClient},enumerable:!1,configurable:!0}),e}();m=new WeakMap,j=new WeakMap,w=new WeakMap,S=new WeakMap,I.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new I(t.ɵɵinject(r.HttpClient),t.ɵɵinject(l,8),t.ɵɵinject(s.SdCacheService),t.ɵɵinject(h))},token:I,providedIn:"root"}),I.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],I.ctorParameters=function(){return[{type:r.HttpClient},{type:void 0,decorators:[{type:t.Inject,args:[l]},{type:t.Optional}]},{type:s.SdCacheService},{type:h}]};var C=function(e,t){var r=this;this.httpClient=e,this.tokenService=t,this.get=function(e,t){return t=Object.assign(Object.assign({},t),{headers:t.headers||r.tokenService.customHeaders({url:e})}),r.httpClient.get(e,t)},this.post=function(e,t,n){return n=Object.assign(Object.assign({},n),{headers:n.headers||r.tokenService.customHeaders({url:e})}),r.httpClient.post(e,t,n)},this.put=function(e,t,n){return n=Object.assign(Object.assign({},n),{headers:n.headers||r.tokenService.customHeaders({url:e})}),r.httpClient.put(e,t,n)},this.delete=function(e,t){return t=Object.assign(Object.assign({},t),{headers:t.headers||r.tokenService.customHeaders({url:e})}),r.httpClient.delete(e,t)},this.request=function(e,t,n){return n=Object.assign(Object.assign({},n),{headers:n.headers||r.tokenService.customHeaders({url:t})}),r.httpClient.request(e,t,n)}};C.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new C(t.ɵɵinject(r.HttpClient),t.ɵɵinject(h))},token:C,providedIn:"root"}),C.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],C.ctorParameters=function(){return[{type:r.HttpClient},{type:h}]},e.API_CONFIG=l,e.SdApiModule=f,e.SdApiService=I,e.SdHttpInterceptor=p,e.SdHttpService=C,e.SdTokenService=h,e.TOKEN=d,Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common/http"),require("rxjs"),require("rxjs/operators"),require("object-hash"),require("@sd-angular/core/cache"),require("uuid")):"function"==typeof define&&define.amd?define("@sd-angular/core/api",["exports","@angular/core","@angular/common/http","rxjs","rxjs/operators","object-hash","@sd-angular/core/cache","uuid"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self)["sd-angular"]=e["sd-angular"]||{},e["sd-angular"].core=e["sd-angular"].core||{},e["sd-angular"].core.api={}),e.ng.core,e.ng.common.http,e.rxjs,e.rxjs.operators,e["object-hash"],e["sd-angular"].core.cache,e.uuid)}(this,(function(e,t,r,n,o,i,s,c){"use strict";function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=u(i),l=new t.InjectionToken("api.configuration"),d=a.default({origin:location.origin,key:"ed4a2ffc-af43-41fb-9ac9-970f43d99571"}),h=function(){function e(e,t){var r=this;this.configuration=e,this.cacheService=t,this.set=function(e){(0,r.cacheService.create(d,{type:"local",hours:240}).set)(e)},this.clear=function(){(0,r.cacheService.create(d,{type:"local",hours:240}).remove)()},this.customHeaders=function(e){var t,n;return(null===(n=null===(t=r.configuration)||void 0===t?void 0:t.customHeaders)||void 0===n?void 0:n.call(t,e))||null}}return Object.defineProperty(e.prototype,"token",{get:function(){return(0,this.cacheService.create(d,{type:"local",hours:240}).get)()},enumerable:!1,configurable:!0}),e}();h.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new h(t.ɵɵinject(l,8),t.ɵɵinject(s.SdCacheService))},token:h,providedIn:"root"}),h.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],h.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[l]},{type:t.Optional}]},{type:s.SdCacheService}]};var p=function(){function e(e,t){this.configuration=e,this.tokenService=t}return e.prototype.intercept=function(e,t){var i,s,c,u,a=this;(null===(i=this.configuration)||void 0===i?void 0:i.tokenHeader)&&this.tokenService.token&&(e=e.clone({headers:e.headers.set(this.configuration.tokenHeader,this.tokenService.token)})),e.url.startsWith("http")||(e=e.clone({url:((null===(s=this.configuration)||void 0===s?void 0:s.host)||location.host)+e.url})),e.body instanceof FormData&&(e=e.clone({headers:e.headers.delete("Content-Type")}));var l=null===(u=null===(c=this.configuration)||void 0===c?void 0:c.beforeRemote)||void 0===u?void 0:u.call(c,e);return l instanceof Promise?n.from(l).pipe(o.switchMap((function(){return t.handle(e)})),o.map((function(e){var t,n;return e instanceof r.HttpResponse&&(null===(n=null===(t=a.configuration)||void 0===t?void 0:t.afterRemote)||void 0===n||n.call(t,e)),e})),o.catchError((function(e){var t,r;return null===(r=null===(t=a.configuration)||void 0===t?void 0:t.afterRemote)||void 0===r||r.call(t,e),n.throwError(e)}))):t.handle(e).pipe(o.map((function(e){var t,n;return e instanceof r.HttpResponse&&(null===(n=null===(t=a.configuration)||void 0===t?void 0:t.afterRemote)||void 0===n||n.call(t,e)),e})),o.catchError((function(e){var t,r;return null===(r=null===(t=a.configuration)||void 0===t?void 0:t.afterRemote)||void 0===r||r.call(t,e),n.throwError(e)})))},e}();p.decorators=[{type:t.Injectable}],p.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[l]},{type:t.Optional}]},{type:h}]};var f=function(){};f.decorators=[{type:t.NgModule,args:[{imports:[r.HttpClientModule],exports:[r.HttpClientModule],providers:[{provide:r.HTTP_INTERCEPTORS,useClass:p,multi:!0}]}]}];function v(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{u(n.next(e))}catch(e){i(e)}}function c(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,c)}u((n=n.apply(e,t||[])).next())}))}function b(e,t){var r,n,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,n=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,c])}}}Object.create;function y(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function g(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)s.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return s}var m,j,w,S;Object.create;function k(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)}var I=function(){function e(e,t,r,i){var s=this;this.httpClient=e,this.configuration=t,this.cacheService=r,this.tokenService=i,this.uploadId="U118fefb1-3085-4641-8cb8-f7fe5c28f509",m.set(this,12e4),j.set(this,2e3),w.set(this,{}),this.translate=function(e){var t;return(null===(t=s.configuration)||void 0===t?void 0:t.translate(e))||e},this.post=function(e,t,r,i){return v(s,void 0,void 0,(function(){var s,u,l,d,h=this;return b(this,(function(p){if(e=!1===(null==i?void 0:i.encodeURI)?e:encodeURI(e),r=r||this.tokenService.customHeaders({url:e}),l=c.v4(),t instanceof FormData||(l=a.default({url:e,headers:r,body:t})),d=(null==i?void 0:i.timeout)||k(this,m),(!k(this,w)[l]||Date.addMiliseconds(k(this,w)[l].createdDate,k(this,j))<new Date)&&(k(this,w)[l]={createdDate:new Date,subject:new n.Subject},(null==i?void 0:i.responseType)&&"json"!==i.responseType?this.httpClient.post(e,t,{observe:"body",headers:r,responseType:null==i?void 0:i.responseType}).pipe(o.timeout(d)).subscribe((function(e){k(h,w)[l].response={status:"success",result:e},k(h,w)[l].subject.next(e)}),(function(e){k(h,w)[l].response={status:"error",result:e},k(h,w)[l].subject.error(e)})):this.httpClient.post(e,t,{observe:"response",headers:r}).pipe(o.timeout(d)).subscribe((function(e){e.ok?(k(h,w)[l].response={status:"success",result:e.body},k(h,w)[l].subject.next(e.body)):(k(h,w)[l].response={status:"error",result:e.body},k(h,w)[l].subject.error(e.body))}),(function(e){k(h,w)[l].response={status:"error",result:e},k(h,w)[l].subject.error(e)}))),null===(s=k(this,w)[l].response)||void 0===s?void 0:s.status){if("success"===(null===(u=k(this,w)[l].response)||void 0===u?void 0:u.status))return[2,k(this,w)[l].response.result];throw k(this,w)[l].response.result}return[2,k(this,w)[l].subject.pipe(o.take(1)).toPromise()]}))}))},this.postCache=function(e,t,r){return v(s,void 0,void 0,(function(){var n,o,i,s,c;return b(this,(function(u){switch(u.label){case 0:return n=(null==r?void 0:r.headers)||this.tokenService.customHeaders({url:e}),o=this.cacheService.create({url:e,headers:n,body:t},{type:null==r?void 0:r.cacheType,hours:null==r?void 0:r.cacheHours}),i=o.get,s=o.set,(0,o.has)()?[3,2]:[4,this.post(e,t,null==r?void 0:r.headers,{timeout:5e3})];case 1:return c=u.sent(),s(c),[2,c];case 2:return[2,i()]}}))}))},this.put=function(e,t,r){return v(s,void 0,void 0,(function(){var n=this;return b(this,(function(i){switch(i.label){case 0:return r=r||this.tokenService.customHeaders({url:e}),[4,new Promise((function(i,s){n.httpClient.put(encodeURI(e),t,{observe:"response",headers:r}).pipe(o.timeout(k(n,m))).toPromise().then((function(e){e.ok?i(e.body):s(e.body)})).catch((function(e){s(e)}))}))];case 1:return[2,i.sent()]}}))}))},this.patch=function(e,t,r){return v(s,void 0,void 0,(function(){var n=this;return b(this,(function(i){switch(i.label){case 0:return r=r||this.tokenService.customHeaders({url:e}),[4,new Promise((function(i,s){n.httpClient.patch(encodeURI(e),t,{observe:"response",headers:r}).pipe(o.timeout(k(n,m))).toPromise().then((function(e){e.ok?i(e.body):s(e.body)})).catch((function(e){s(e)}))}))];case 1:return[2,i.sent()]}}))}))},S.set(this,(function(e){var t,r,n=[];try{for(var o=y(Object.entries(e)),i=o.next();!i.done;i=o.next()){var s=g(i.value,2),c=s[0],u=s[1];null!=u&&""!==u&&""!==(null==u?void 0:u.toString())&&n.push(encodeURIComponent(c)+"="+encodeURIComponent(u))}}catch(e){t={error:e}}finally{try{i&&!i.done&&(r=o.return)&&r.call(o)}finally{if(t)throw t.error}}return"?"+(null==n?void 0:n.join("&"))})),this.getWithParams=function(e,t,r){return v(s,void 0,void 0,(function(){return b(this,(function(n){switch(n.label){case 0:return[4,this.get(""+e+k(this,S).call(this,t),null==r?void 0:r.headers,Object.assign(Object.assign({},r),{encodeURI:!1}))];case 1:return[2,n.sent()]}}))}))},this.getCacheWithParams=function(e,t,r,n){return v(s,void 0,void 0,(function(){return b(this,(function(o){switch(o.label){case 0:return[4,this.getCache(""+e+k(this,S).call(this,t),Object.assign(Object.assign({},n),{headers:r,encodeURI:!1}))];case 1:return[2,o.sent()]}}))}))},this.get=function(e,t,r){return v(s,void 0,void 0,(function(){var i,s,c,u,l,d=this;return b(this,(function(h){if(t=t||this.tokenService.customHeaders({url:e}),c=!1===(null==r?void 0:r.encodeURI)?e:encodeURI(e),u=a.default({encodedUrl:c,headers:t}),l=(null==r?void 0:r.timeout)||k(this,m),(!k(this,w)[u]||Date.addMiliseconds(k(this,w)[u].createdDate,k(this,j))<new Date)&&(k(this,w)[u]={createdDate:new Date,subject:new n.Subject},(null==r?void 0:r.responseType)&&"json"!==r.responseType?this.httpClient.get(c,{observe:"body",headers:t,responseType:null==r?void 0:r.responseType}).pipe(o.timeout(l)).subscribe((function(e){k(d,w)[u].response={status:"success",result:e},k(d,w)[u].subject.next(e)}),(function(e){k(d,w)[u].response={status:"error",result:e},k(d,w)[u].subject.error(e)})):this.httpClient.get(c,{observe:"response",headers:t}).pipe(o.timeout(l)).subscribe((function(e){e.ok?(k(d,w)[u].response={status:"success",result:e.body},k(d,w)[u].subject.next(e.body)):(k(d,w)[u].response={status:"error",result:e.body},k(d,w)[u].subject.error(e.body))}),(function(e){k(d,w)[u].response={status:"error",result:e},k(d,w)[u].subject.error(e)}))),null===(i=k(this,w)[u].response)||void 0===i?void 0:i.status){if("success"===(null===(s=k(this,w)[u].response)||void 0===s?void 0:s.status))return[2,k(this,w)[u].response.result];throw k(this,w)[u].response.result}return[2,k(this,w)[u].subject.pipe(o.take(1)).toPromise()]}))}))},this.getCache=function(e,t){return v(s,void 0,void 0,(function(){var r,n,o,i,s,c;return b(this,(function(u){switch(u.label){case 0:return r=(null==t?void 0:t.headers)||this.tokenService.customHeaders({url:e}),n=!1===(null==t?void 0:t.encodeURI)?e:encodeURI(e),o=this.cacheService.create({encodedUrl:n,headers:r},{type:null==t?void 0:t.cacheType,hours:null==t?void 0:t.cacheHours}),i=o.get,s=o.set,(0,o.has)()&&!(null==t?void 0:t.reload)?[3,2]:[4,this.get(n,null==t?void 0:t.headers,{encodeURI:!1,timeout:5e3})];case 1:return c=u.sent(),s(c),[2,c];case 2:return[2,i()]}}))}))},this.delete=function(e,t){return v(s,void 0,void 0,(function(){var r=this;return b(this,(function(n){switch(n.label){case 0:return t=t||this.tokenService.customHeaders({url:e}),[4,new Promise((function(n,i){r.httpClient.delete(encodeURI(e),{observe:"response",headers:t}).pipe(o.timeout(k(r,m))).toPromise().then((function(e){e.ok?n(e.body):i(e.body)})).catch((function(e){i(e)}))}))];case 1:return[2,n.sent()]}}))}))},this.uploadSingle=function(e,t){return SdUtility.upload(t).then((function(t){return s.upload(e,t)}))},this.upload=function(e,t){return v(s,void 0,void 0,(function(){var r,n;return b(this,(function(o){switch(o.label){case 0:if(-1===t.name.lastIndexOf("."))throw r=this.translate("Invalid file extension"),new Error(r);return(n=new FormData).append("file",t,t.name),[4,this.post(e,n)];case 1:return[2,o.sent()]}}))}))}}return Object.defineProperty(e.prototype,"http",{get:function(){return this.httpClient},enumerable:!1,configurable:!0}),e}();m=new WeakMap,j=new WeakMap,w=new WeakMap,S=new WeakMap,I.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new I(t.ɵɵinject(r.HttpClient),t.ɵɵinject(l,8),t.ɵɵinject(s.SdCacheService),t.ɵɵinject(h))},token:I,providedIn:"root"}),I.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],I.ctorParameters=function(){return[{type:r.HttpClient},{type:void 0,decorators:[{type:t.Inject,args:[l]},{type:t.Optional}]},{type:s.SdCacheService},{type:h}]};var C=function(e,t){var r=this;this.httpClient=e,this.tokenService=t,this.get=function(e,t){return t=Object.assign(Object.assign({},t),{headers:t.headers||r.tokenService.customHeaders({url:e})}),r.httpClient.get(e,t)},this.post=function(e,t,n){return n=Object.assign(Object.assign({},n),{headers:n.headers||r.tokenService.customHeaders({url:e})}),r.httpClient.post(e,t,n)},this.put=function(e,t,n){return n=Object.assign(Object.assign({},n),{headers:n.headers||r.tokenService.customHeaders({url:e})}),r.httpClient.put(e,t,n)},this.delete=function(e,t){return t=Object.assign(Object.assign({},t),{headers:t.headers||r.tokenService.customHeaders({url:e})}),r.httpClient.delete(e,t)},this.request=function(e,t,n){return n=Object.assign(Object.assign({},n),{headers:n.headers||r.tokenService.customHeaders({url:t})}),r.httpClient.request(e,t,n)}};C.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new C(t.ɵɵinject(r.HttpClient),t.ɵɵinject(h))},token:C,providedIn:"root"}),C.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],C.ctorParameters=function(){return[{type:r.HttpClient},{type:h}]},e.API_CONFIG=l,e.SdApiModule=f,e.SdApiService=I,e.SdHttpInterceptor=p,e.SdHttpService=C,e.SdTokenService=h,e.TOKEN=d,Object.defineProperty(e,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=sd-angular-core-api.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../projects/sd-core/api/src/lib/api.model.ts","../../../../projects/sd-core/api/src/lib/token.service.ts","../../../../projects/sd-core/api/src/lib/http.interceptor.ts","../../../../projects/sd-core/api/src/lib/api.module.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/api/src/lib/api.service.ts","../../../../projects/sd-core/api/src/lib/http.service.ts"],"names":["API_CONFIG","InjectionToken","TOKEN","hash","origin","location","key","SdTokenService","configuration","cacheService","_this","this","set","token","create","type","hours","clear","remove","customHeaders","args","_b","_a","call","Object","defineProperty","prototype","get","Injectable","providedIn","Inject","Optional","SdCacheService","SdHttpInterceptor","tokenService","intercept","request","next","tokenHeader","clone","headers","url","startsWith","host","body","FormData","delete","beforeRemote","_d","_c","Promise","from","pipe","switchMap","handle","map","event","HttpResponse","afterRemote","catchError","error","throwError","NgModule","imports","HttpClientModule","exports","providers","provide","HTTP_INTERCEPTORS","useClass","multi","__awaiter","thisArg","_arguments","P","generator","resolve","reject","fulfilled","value","step","e","rejected","result","done","then","apply","__generator","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","TypeError","pop","length","push","__values","o","s","m","i","__read","r","ar","__classPrivateFieldGet","receiver","state","kind","has","SdApiService","httpClient","uploadId","_timeout","_cacheDuration","_cache","translate","post","options","hashKey","uuid.v4","apiTimeout","timeout","Date","addMiliseconds","createdDate","subject","Subject","responseType","encodeURI","observe","subscribe","res","response","status","err","ok","take","toPromise","postCache","_e","cacheType","cacheHours","_f","put","catch","httpErrorResponse","patch","_defineParams","rq","entries","_g","_h","toString","encodeURIComponent","join","getWithParams","params","assign","getCacheWithParams","getCache","encodedUrl","reload","uploadSingle","option","SdUtility","upload","file","name","lastIndexOf","message","Error","formData","append","HttpClient","method"],"mappings":"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","sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { HttpErrorResponse, HttpHeaders, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport hash from 'object-hash';\r\n\r\nexport interface IApiConfiguration {\r\n host?: string;\r\n tokenHeader?: string;\r\n customHeaders?: (args?: { url?: string }) => HttpHeaders;\r\n beforeRemote?: (request: HttpRequest<any>) => void | Promise<void>;\r\n afterRemote?: (response: HttpResponse<any> | HttpErrorResponse) => void | Promise<void>;\r\n translate?: (value: string) => string;\r\n}\r\n\r\nexport const API_CONFIG = new InjectionToken<IApiConfiguration>('api.configuration');\r\n\r\nexport const TOKEN = hash({\r\n origin: location.origin,\r\n key: 'ed4a2ffc-af43-41fb-9ac9-970f43d99571'\r\n});","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { IApiConfiguration, API_CONFIG, TOKEN } from './api.model';\r\nimport { SdCacheService } from '@sd-angular/core/cache';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdTokenService {\r\n\r\n get token() {\r\n const { get } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n return get();\r\n }\r\n\r\n set = (token: string) => {\r\n const { set } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n set(token);\r\n }\r\n\r\n clear = () => {\r\n const { remove } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n remove();\r\n }\r\n\r\n customHeaders = (args?: { url?: string }) => {\r\n return this.configuration?.customHeaders?.(args) || null;\r\n }\r\n\r\n constructor(\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private cacheService: SdCacheService) {\r\n }\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { from, Observable, of, throwError } from 'rxjs';\r\nimport { catchError, map, switchMap } from 'rxjs/operators';\r\nimport { API_CONFIG, IApiConfiguration } from './api.model';\r\nimport { SdTokenService } from './token.service';\r\n\r\n@Injectable()\r\nexport class SdHttpInterceptor implements HttpInterceptor {\r\n constructor(\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private tokenService: SdTokenService\r\n ) { }\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n if (this.configuration?.tokenHeader && this.tokenService.token) {\r\n request = request.clone({ headers: request.headers.set(this.configuration.tokenHeader, this.tokenService.token) });\r\n }\r\n\r\n if (!request.url.startsWith('http')) {\r\n request = request.clone({\r\n url: (this.configuration?.host || location.host) + request.url\r\n });\r\n }\r\n if (request.body instanceof FormData) {\r\n request = request.clone({\r\n headers: request.headers.delete('Content-Type')\r\n });\r\n }\r\n const beforeRemote = this.configuration?.beforeRemote?.(request);\r\n if (beforeRemote instanceof Promise) {\r\n return from(beforeRemote).pipe(\r\n switchMap(() => next.handle(request)),\r\n map((event: HttpEvent<any>) => {\r\n if (event instanceof HttpResponse) {\r\n this.configuration?.afterRemote?.(event);\r\n }\r\n return event;\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n this.configuration?.afterRemote?.(error);\r\n return throwError(error);\r\n }));\r\n }\r\n return next.handle(request).pipe(\r\n map((event: HttpEvent<any>) => {\r\n if (event instanceof HttpResponse) {\r\n this.configuration?.afterRemote?.(event);\r\n }\r\n return event;\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n this.configuration?.afterRemote?.(error);\r\n return throwError(error);\r\n }));\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { SdHttpInterceptor } from './http.interceptor';\r\n\r\n@NgModule({\r\n imports: [\r\n HttpClientModule,\r\n ],\r\n exports: [\r\n HttpClientModule\r\n ],\r\n providers: [\r\n { provide: HTTP_INTERCEPTORS, useClass: SdHttpInterceptor, multi: true }\r\n ],\r\n})\r\nexport class SdApiModule { }\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n 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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n 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); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n 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);\r\n 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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { take, timeout } from 'rxjs/operators';\r\nimport { IApiConfiguration, API_CONFIG } from './api.model';\r\nimport { SdCacheService } from '@sd-angular/core/cache';\r\nimport { SdTokenService } from './token.service';\r\nimport { Subject } from 'rxjs';\r\nimport hash from 'object-hash';\r\nimport * as uuid from 'uuid';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SdApiService {\r\n private uploadId = 'U118fefb1-3085-4641-8cb8-f7fe5c28f509';\r\n\r\n #timeout = 120000; // 120s\r\n\r\n #cacheDuration = 2000; // 2s\r\n #cache: {\r\n [key: string]: {\r\n createdDate: Date;\r\n subject: Subject<any>;\r\n response?: {\r\n status?: 'success' | 'error';\r\n result: any;\r\n };\r\n };\r\n } = {};\r\n\r\n private translate = (value: string): string => {\r\n return this.configuration?.translate(value) || value;\r\n };\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private cacheService: SdCacheService,\r\n private tokenService: SdTokenService\r\n ) {}\r\n\r\n get http() {\r\n return this.httpClient;\r\n }\r\n\r\n post = async <T = any>(\r\n url: string,\r\n body?: any,\r\n headers?: HttpHeaders,\r\n options?: {\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n timeout?: number;\r\n }\r\n ): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n let hashKey = uuid.v4();\r\n if (!(body instanceof FormData)) {\r\n hashKey = hash({\r\n url,\r\n headers,\r\n body,\r\n });\r\n }\r\n const apiTimeout = options?.timeout || this.#timeout;\r\n if (!this.#cache[hashKey] || Date.addMiliseconds(this.#cache[hashKey].createdDate, this.#cacheDuration) < new Date()) {\r\n this.#cache[hashKey] = {\r\n createdDate: new Date(),\r\n subject: new Subject(),\r\n };\r\n if (options?.responseType && options.responseType !== 'json') {\r\n this.httpClient\r\n .post(encodeURI(url), body, {\r\n observe: 'body',\r\n headers,\r\n responseType: options?.responseType as any,\r\n })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res,\r\n };\r\n this.#cache[hashKey].subject.next(res);\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n } else {\r\n this.httpClient\r\n .post(encodeURI(url), body, {\r\n observe: 'response',\r\n headers,\r\n })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n if (res.ok) {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.next(res.body);\r\n } else {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.error(res.body);\r\n }\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n }\r\n }\r\n if (this.#cache[hashKey].response?.status) {\r\n if (this.#cache[hashKey].response?.status === 'success') {\r\n return this.#cache[hashKey].response.result;\r\n }\r\n throw this.#cache[hashKey].response.result;\r\n }\r\n return this.#cache[hashKey].subject.pipe(take(1)).toPromise();\r\n };\r\n\r\n postCache = async <T = any>(\r\n url: string,\r\n body?: any,\r\n options?: {\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n }\r\n ): Promise<T> => {\r\n const headers =\r\n options?.headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n const { get, set, has } = this.cacheService.create(\r\n {\r\n url,\r\n headers,\r\n body,\r\n },\r\n {\r\n type: options?.cacheType,\r\n hours: options?.cacheHours,\r\n }\r\n );\r\n if (!has()) {\r\n const result = await this.post(url, body, options?.headers, {\r\n timeout: 5000, // 5s\r\n });\r\n set(result);\r\n return result;\r\n }\r\n return get();\r\n };\r\n\r\n put = async <T = any>(url: string, body?: any, headers?: HttpHeaders): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n return await new Promise<any>((resolve, reject) => {\r\n this.httpClient\r\n .put(encodeURI(url), body, {\r\n observe: 'response',\r\n headers,\r\n })\r\n .pipe(timeout(this.#timeout))\r\n .toPromise()\r\n .then(result => {\r\n if (result.ok) {\r\n resolve(result.body);\r\n } else {\r\n reject(result.body);\r\n }\r\n })\r\n .catch((httpErrorResponse: HttpErrorResponse) => {\r\n reject(httpErrorResponse);\r\n });\r\n });\r\n };\r\n\r\n patch = async <T = any>(url: string, body?: any, headers?: HttpHeaders): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n return await new Promise<any>((resolve, reject) => {\r\n this.httpClient\r\n .patch(encodeURI(url), body, {\r\n observe: 'response',\r\n headers,\r\n })\r\n .pipe(timeout(this.#timeout))\r\n .toPromise()\r\n .then(result => {\r\n if (result.ok) {\r\n resolve(result.body);\r\n } else {\r\n reject(result.body);\r\n }\r\n })\r\n .catch((httpErrorResponse: HttpErrorResponse) => {\r\n reject(httpErrorResponse);\r\n });\r\n });\r\n };\r\n\r\n #defineParams = (request: any) => {\r\n const rq = [];\r\n for (const [key, value] of Object.entries(request)) {\r\n if (value !== null && value !== undefined && value !== '' && value?.toString() !== '') {\r\n rq.push(`${encodeURIComponent(key as string)}=${encodeURIComponent(value as string)}`);\r\n }\r\n }\r\n return `?${rq?.join('&')}`;\r\n };\r\n\r\n getWithParams = async <T = any>(\r\n url: string,\r\n params: any,\r\n options?: {\r\n headers?: HttpHeaders;\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n }\r\n ): Promise<T> => {\r\n return await this.get(`${url}${this.#defineParams(params)}`, options?.headers, { ...options, encodeURI: false });\r\n };\r\n\r\n getCacheWithParams = async <T = any>(\r\n url: string,\r\n params: any,\r\n headers?: HttpHeaders,\r\n options?: {\r\n reload?: boolean;\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n }\r\n ): Promise<T> => {\r\n return await this.getCache(`${url}${this.#defineParams(params)}`, { ...options, headers, encodeURI: false });\r\n };\r\n\r\n get = async <T = any>(\r\n url: string,\r\n headers?: HttpHeaders,\r\n options?: {\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n encodeURI?: boolean;\r\n timeout?: number;\r\n }\r\n ): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n const encodedUrl = options?.encodeURI === false ? url : encodeURI(url);\r\n // const hashKey = hash({\r\n // encodedUrl,\r\n // headers\r\n // });\r\n const hashKey = hash({\r\n encodedUrl,\r\n headers,\r\n });\r\n const apiTimeout = options?.timeout || this.#timeout;\r\n if (!this.#cache[hashKey] || Date.addMiliseconds(this.#cache[hashKey].createdDate, this.#cacheDuration) < new Date()) {\r\n this.#cache[hashKey] = {\r\n createdDate: new Date(),\r\n subject: new Subject(),\r\n };\r\n if (options?.responseType && options.responseType !== 'json') {\r\n this.httpClient\r\n .get(encodedUrl, { observe: 'body', headers, responseType: options?.responseType as any })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res,\r\n };\r\n this.#cache[hashKey].subject.next(res);\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n } else {\r\n this.httpClient\r\n .get(encodedUrl, { observe: 'response', headers })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n if (res.ok) {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.next(res.body);\r\n } else {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.error(res.body);\r\n }\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n }\r\n }\r\n if (this.#cache[hashKey].response?.status) {\r\n if (this.#cache[hashKey].response?.status === 'success') {\r\n return this.#cache[hashKey].response.result;\r\n }\r\n throw this.#cache[hashKey].response.result;\r\n }\r\n return this.#cache[hashKey].subject.pipe(take(1)).toPromise();\r\n };\r\n\r\n getCache = async <T = any>(\r\n url: string,\r\n options?: {\r\n reload?: boolean;\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n encodeURI?: boolean;\r\n }\r\n ): Promise<T> => {\r\n const headers =\r\n options?.headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n const encodedUrl = options?.encodeURI === false ? url : encodeURI(url);\r\n const { get, set, has } = this.cacheService.create(\r\n {\r\n encodedUrl,\r\n headers,\r\n },\r\n {\r\n type: options?.cacheType,\r\n hours: options?.cacheHours,\r\n }\r\n );\r\n if (!has() || options?.reload) {\r\n const result = await this.get(encodedUrl, options?.headers, { encodeURI: false, timeout: 5000 });\r\n set(result);\r\n return result;\r\n }\r\n return get();\r\n };\r\n\r\n delete = async <T = any>(url: string, headers?: HttpHeaders): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n return await new Promise<any>((resolve, reject) => {\r\n this.httpClient\r\n .delete(encodeURI(url), { observe: 'response', headers })\r\n .pipe(timeout(this.#timeout))\r\n .toPromise()\r\n .then(result => {\r\n if (result.ok) {\r\n resolve(result.body);\r\n } else {\r\n reject(result.body);\r\n }\r\n })\r\n .catch((httpErrorResponse: HttpErrorResponse) => {\r\n reject(httpErrorResponse);\r\n });\r\n });\r\n };\r\n\r\n uploadSingle = (\r\n url: string,\r\n option?: {\r\n extensions?: string[];\r\n maxSizeInMb?: number;\r\n validator?: (fileName: string) => string;\r\n }\r\n ): Promise<any> => {\r\n return SdUtility.upload(option).then(file => this.upload(url, file));\r\n };\r\n\r\n upload = async (url: string, file: File) => {\r\n const lastDot = file.name.lastIndexOf('.');\r\n if (lastDot === -1) {\r\n const message = this.translate(`Invalid file extension`);\r\n throw new Error(message);\r\n }\r\n const formData: FormData = new FormData();\r\n formData.append('file', file, file.name);\r\n return await this.post(url, formData);\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { SdTokenService } from './token.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdHttpService {\r\n constructor(\r\n private httpClient: HttpClient,\r\n private tokenService: SdTokenService) {\r\n }\r\n\r\n get =<T = any>(url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.get<T>(url, option);\r\n }\r\n\r\n post = <T = any>(url: string, body?: any, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.post<T>(url, body, option);\r\n }\r\n\r\n put = <T = any>(url: string, body?: any, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.put<T>(url, body, option);\r\n }\r\n\r\n delete = <T = any>(url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.delete<T>(url, option);\r\n }\r\n\r\n request = <T = any>(method: string, url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.request<T>(method, url, option);\r\n }\r\n}\r\n\r\ninterface ObservableOption {\r\n body?: any;\r\n headers?: HttpHeaders | {\r\n [header: string]: string | string[];\r\n };\r\n observe?: 'body';\r\n params?: HttpParams | {\r\n [param: string]: string | string[];\r\n };\r\n reportProgress?: boolean;\r\n responseType?: 'json';\r\n withCredentials?: boolean;\r\n}"]}
1
+ {"version":3,"sources":["../../../../projects/sd-core/api/src/lib/api.model.ts","../../../../projects/sd-core/api/src/lib/token.service.ts","../../../../projects/sd-core/api/src/lib/http.interceptor.ts","../../../../projects/sd-core/api/src/lib/api.module.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/api/src/lib/api.service.ts","../../../../projects/sd-core/api/src/lib/http.service.ts"],"names":["API_CONFIG","InjectionToken","TOKEN","hash","origin","location","key","SdTokenService","configuration","cacheService","_this","this","set","token","create","type","hours","clear","remove","customHeaders","args","_b","_a","call","Object","defineProperty","prototype","get","Injectable","providedIn","Inject","Optional","SdCacheService","SdHttpInterceptor","tokenService","intercept","request","next","tokenHeader","clone","headers","url","startsWith","host","body","FormData","delete","beforeRemote","_d","_c","Promise","from","pipe","switchMap","handle","map","event","HttpResponse","afterRemote","catchError","error","throwError","NgModule","imports","HttpClientModule","exports","providers","provide","HTTP_INTERCEPTORS","useClass","multi","__awaiter","thisArg","_arguments","P","generator","resolve","reject","fulfilled","value","step","e","rejected","result","done","then","apply","__generator","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","TypeError","pop","length","push","__values","o","s","m","i","__read","r","ar","__classPrivateFieldGet","receiver","state","kind","has","SdApiService","httpClient","uploadId","_timeout","_cacheDuration","_cache","translate","post","options","encodeURI","hashKey","uuid.v4","apiTimeout","timeout","Date","addMiliseconds","createdDate","subject","Subject","responseType","observe","subscribe","res","response","status","err","ok","take","toPromise","postCache","_e","cacheType","cacheHours","_f","put","catch","httpErrorResponse","patch","_defineParams","rq","entries","_g","_h","toString","encodeURIComponent","join","getWithParams","params","assign","getCacheWithParams","getCache","encodedUrl","reload","uploadSingle","option","SdUtility","upload","file","name","lastIndexOf","message","Error","formData","append","HttpClient","method"],"mappings":"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","sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { HttpErrorResponse, HttpHeaders, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport hash from 'object-hash';\r\n\r\nexport interface IApiConfiguration {\r\n host?: string;\r\n tokenHeader?: string;\r\n customHeaders?: (args?: { url?: string }) => HttpHeaders;\r\n beforeRemote?: (request: HttpRequest<any>) => void | Promise<void>;\r\n afterRemote?: (response: HttpResponse<any> | HttpErrorResponse) => void | Promise<void>;\r\n translate?: (value: string) => string;\r\n}\r\n\r\nexport const API_CONFIG = new InjectionToken<IApiConfiguration>('api.configuration');\r\n\r\nexport const TOKEN = hash({\r\n origin: location.origin,\r\n key: 'ed4a2ffc-af43-41fb-9ac9-970f43d99571'\r\n});","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { IApiConfiguration, API_CONFIG, TOKEN } from './api.model';\r\nimport { SdCacheService } from '@sd-angular/core/cache';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdTokenService {\r\n\r\n get token() {\r\n const { get } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n return get();\r\n }\r\n\r\n set = (token: string) => {\r\n const { set } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n set(token);\r\n }\r\n\r\n clear = () => {\r\n const { remove } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n remove();\r\n }\r\n\r\n customHeaders = (args?: { url?: string }) => {\r\n return this.configuration?.customHeaders?.(args) || null;\r\n }\r\n\r\n constructor(\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private cacheService: SdCacheService) {\r\n }\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { from, Observable, of, throwError } from 'rxjs';\r\nimport { catchError, map, switchMap } from 'rxjs/operators';\r\nimport { API_CONFIG, IApiConfiguration } from './api.model';\r\nimport { SdTokenService } from './token.service';\r\n\r\n@Injectable()\r\nexport class SdHttpInterceptor implements HttpInterceptor {\r\n constructor(\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private tokenService: SdTokenService\r\n ) { }\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n if (this.configuration?.tokenHeader && this.tokenService.token) {\r\n request = request.clone({ headers: request.headers.set(this.configuration.tokenHeader, this.tokenService.token) });\r\n }\r\n\r\n if (!request.url.startsWith('http')) {\r\n request = request.clone({\r\n url: (this.configuration?.host || location.host) + request.url\r\n });\r\n }\r\n if (request.body instanceof FormData) {\r\n request = request.clone({\r\n headers: request.headers.delete('Content-Type')\r\n });\r\n }\r\n const beforeRemote = this.configuration?.beforeRemote?.(request);\r\n if (beforeRemote instanceof Promise) {\r\n return from(beforeRemote).pipe(\r\n switchMap(() => next.handle(request)),\r\n map((event: HttpEvent<any>) => {\r\n if (event instanceof HttpResponse) {\r\n this.configuration?.afterRemote?.(event);\r\n }\r\n return event;\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n this.configuration?.afterRemote?.(error);\r\n return throwError(error);\r\n }));\r\n }\r\n return next.handle(request).pipe(\r\n map((event: HttpEvent<any>) => {\r\n if (event instanceof HttpResponse) {\r\n this.configuration?.afterRemote?.(event);\r\n }\r\n return event;\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n this.configuration?.afterRemote?.(error);\r\n return throwError(error);\r\n }));\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { SdHttpInterceptor } from './http.interceptor';\r\n\r\n@NgModule({\r\n imports: [\r\n HttpClientModule,\r\n ],\r\n exports: [\r\n HttpClientModule\r\n ],\r\n providers: [\r\n { provide: HTTP_INTERCEPTORS, useClass: SdHttpInterceptor, multi: true }\r\n ],\r\n})\r\nexport class SdApiModule { }\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n 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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n 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); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n 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);\r\n 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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { take, timeout } from 'rxjs/operators';\r\nimport { IApiConfiguration, API_CONFIG } from './api.model';\r\nimport { SdCacheService } from '@sd-angular/core/cache';\r\nimport { SdTokenService } from './token.service';\r\nimport { Subject } from 'rxjs';\r\nimport hash from 'object-hash';\r\nimport * as uuid from 'uuid';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SdApiService {\r\n private uploadId = 'U118fefb1-3085-4641-8cb8-f7fe5c28f509';\r\n\r\n #timeout = 120000; // 120s\r\n\r\n #cacheDuration = 2000; // 2s\r\n #cache: {\r\n [key: string]: {\r\n createdDate: Date;\r\n subject: Subject<any>;\r\n response?: {\r\n status?: 'success' | 'error';\r\n result: any;\r\n };\r\n };\r\n } = {};\r\n\r\n private translate = (value: string): string => {\r\n return this.configuration?.translate(value) || value;\r\n };\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private cacheService: SdCacheService,\r\n private tokenService: SdTokenService\r\n ) {}\r\n\r\n get http() {\r\n return this.httpClient;\r\n }\r\n\r\n post = async <T = any>(\r\n url: string,\r\n body?: any,\r\n headers?: HttpHeaders,\r\n options?: {\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n encodeURI?: boolean;\r\n timeout?: number;\r\n }\r\n ): Promise<T> => {\r\n url = options?.encodeURI === false ? url : encodeURI(url);\r\n\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n let hashKey = uuid.v4();\r\n if (!(body instanceof FormData)) {\r\n hashKey = hash({\r\n url,\r\n headers,\r\n body,\r\n });\r\n }\r\n const apiTimeout = options?.timeout || this.#timeout;\r\n if (!this.#cache[hashKey] || Date.addMiliseconds(this.#cache[hashKey].createdDate, this.#cacheDuration) < new Date()) {\r\n this.#cache[hashKey] = {\r\n createdDate: new Date(),\r\n subject: new Subject(),\r\n };\r\n if (options?.responseType && options.responseType !== 'json') {\r\n this.httpClient\r\n .post(url, body, {\r\n observe: 'body',\r\n headers,\r\n responseType: options?.responseType as any,\r\n })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res,\r\n };\r\n this.#cache[hashKey].subject.next(res);\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n } else {\r\n this.httpClient\r\n .post(url, body, {\r\n observe: 'response',\r\n headers,\r\n })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n if (res.ok) {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.next(res.body);\r\n } else {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.error(res.body);\r\n }\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n }\r\n }\r\n if (this.#cache[hashKey].response?.status) {\r\n if (this.#cache[hashKey].response?.status === 'success') {\r\n return this.#cache[hashKey].response.result;\r\n }\r\n throw this.#cache[hashKey].response.result;\r\n }\r\n return this.#cache[hashKey].subject.pipe(take(1)).toPromise();\r\n };\r\n\r\n postCache = async <T = any>(\r\n url: string,\r\n body?: any,\r\n options?: {\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n }\r\n ): Promise<T> => {\r\n const headers =\r\n options?.headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n const { get, set, has } = this.cacheService.create(\r\n {\r\n url,\r\n headers,\r\n body,\r\n },\r\n {\r\n type: options?.cacheType,\r\n hours: options?.cacheHours,\r\n }\r\n );\r\n if (!has()) {\r\n const result = await this.post(url, body, options?.headers, {\r\n timeout: 5000, // 5s\r\n });\r\n set(result);\r\n return result;\r\n }\r\n return get();\r\n };\r\n\r\n put = async <T = any>(url: string, body?: any, headers?: HttpHeaders): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n return await new Promise<any>((resolve, reject) => {\r\n this.httpClient\r\n .put(encodeURI(url), body, {\r\n observe: 'response',\r\n headers,\r\n })\r\n .pipe(timeout(this.#timeout))\r\n .toPromise()\r\n .then(result => {\r\n if (result.ok) {\r\n resolve(result.body);\r\n } else {\r\n reject(result.body);\r\n }\r\n })\r\n .catch((httpErrorResponse: HttpErrorResponse) => {\r\n reject(httpErrorResponse);\r\n });\r\n });\r\n };\r\n\r\n patch = async <T = any>(url: string, body?: any, headers?: HttpHeaders): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n return await new Promise<any>((resolve, reject) => {\r\n this.httpClient\r\n .patch(encodeURI(url), body, {\r\n observe: 'response',\r\n headers,\r\n })\r\n .pipe(timeout(this.#timeout))\r\n .toPromise()\r\n .then(result => {\r\n if (result.ok) {\r\n resolve(result.body);\r\n } else {\r\n reject(result.body);\r\n }\r\n })\r\n .catch((httpErrorResponse: HttpErrorResponse) => {\r\n reject(httpErrorResponse);\r\n });\r\n });\r\n };\r\n\r\n #defineParams = (request: any) => {\r\n const rq = [];\r\n for (const [key, value] of Object.entries(request)) {\r\n if (value !== null && value !== undefined && value !== '' && value?.toString() !== '') {\r\n rq.push(`${encodeURIComponent(key as string)}=${encodeURIComponent(value as string)}`);\r\n }\r\n }\r\n return `?${rq?.join('&')}`;\r\n };\r\n\r\n getWithParams = async <T = any>(\r\n url: string,\r\n params: any,\r\n options?: {\r\n headers?: HttpHeaders;\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n }\r\n ): Promise<T> => {\r\n return await this.get(`${url}${this.#defineParams(params)}`, options?.headers, { ...options, encodeURI: false });\r\n };\r\n\r\n getCacheWithParams = async <T = any>(\r\n url: string,\r\n params: any,\r\n headers?: HttpHeaders,\r\n options?: {\r\n reload?: boolean;\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n }\r\n ): Promise<T> => {\r\n return await this.getCache(`${url}${this.#defineParams(params)}`, { ...options, headers, encodeURI: false });\r\n };\r\n\r\n get = async <T = any>(\r\n url: string,\r\n headers?: HttpHeaders,\r\n options?: {\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n encodeURI?: boolean;\r\n timeout?: number;\r\n }\r\n ): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n const encodedUrl = options?.encodeURI === false ? url : encodeURI(url);\r\n // const hashKey = hash({\r\n // encodedUrl,\r\n // headers\r\n // });\r\n const hashKey = hash({\r\n encodedUrl,\r\n headers,\r\n });\r\n const apiTimeout = options?.timeout || this.#timeout;\r\n if (!this.#cache[hashKey] || Date.addMiliseconds(this.#cache[hashKey].createdDate, this.#cacheDuration) < new Date()) {\r\n this.#cache[hashKey] = {\r\n createdDate: new Date(),\r\n subject: new Subject(),\r\n };\r\n if (options?.responseType && options.responseType !== 'json') {\r\n this.httpClient\r\n .get(encodedUrl, { observe: 'body', headers, responseType: options?.responseType as any })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res,\r\n };\r\n this.#cache[hashKey].subject.next(res);\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n } else {\r\n this.httpClient\r\n .get(encodedUrl, { observe: 'response', headers })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n if (res.ok) {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.next(res.body);\r\n } else {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.error(res.body);\r\n }\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n }\r\n }\r\n if (this.#cache[hashKey].response?.status) {\r\n if (this.#cache[hashKey].response?.status === 'success') {\r\n return this.#cache[hashKey].response.result;\r\n }\r\n throw this.#cache[hashKey].response.result;\r\n }\r\n return this.#cache[hashKey].subject.pipe(take(1)).toPromise();\r\n };\r\n\r\n getCache = async <T = any>(\r\n url: string,\r\n options?: {\r\n reload?: boolean;\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n encodeURI?: boolean;\r\n }\r\n ): Promise<T> => {\r\n const headers =\r\n options?.headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n const encodedUrl = options?.encodeURI === false ? url : encodeURI(url);\r\n const { get, set, has } = this.cacheService.create(\r\n {\r\n encodedUrl,\r\n headers,\r\n },\r\n {\r\n type: options?.cacheType,\r\n hours: options?.cacheHours,\r\n }\r\n );\r\n if (!has() || options?.reload) {\r\n const result = await this.get(encodedUrl, options?.headers, { encodeURI: false, timeout: 5000 });\r\n set(result);\r\n return result;\r\n }\r\n return get();\r\n };\r\n\r\n delete = async <T = any>(url: string, headers?: HttpHeaders): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n return await new Promise<any>((resolve, reject) => {\r\n this.httpClient\r\n .delete(encodeURI(url), { observe: 'response', headers })\r\n .pipe(timeout(this.#timeout))\r\n .toPromise()\r\n .then(result => {\r\n if (result.ok) {\r\n resolve(result.body);\r\n } else {\r\n reject(result.body);\r\n }\r\n })\r\n .catch((httpErrorResponse: HttpErrorResponse) => {\r\n reject(httpErrorResponse);\r\n });\r\n });\r\n };\r\n\r\n uploadSingle = (\r\n url: string,\r\n option?: {\r\n extensions?: string[];\r\n maxSizeInMb?: number;\r\n validator?: (fileName: string) => string;\r\n }\r\n ): Promise<any> => {\r\n return SdUtility.upload(option).then(file => this.upload(url, file));\r\n };\r\n\r\n upload = async (url: string, file: File) => {\r\n const lastDot = file.name.lastIndexOf('.');\r\n if (lastDot === -1) {\r\n const message = this.translate(`Invalid file extension`);\r\n throw new Error(message);\r\n }\r\n const formData: FormData = new FormData();\r\n formData.append('file', file, file.name);\r\n return await this.post(url, formData);\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { SdTokenService } from './token.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdHttpService {\r\n constructor(\r\n private httpClient: HttpClient,\r\n private tokenService: SdTokenService) {\r\n }\r\n\r\n get =<T = any>(url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.get<T>(url, option);\r\n }\r\n\r\n post = <T = any>(url: string, body?: any, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.post<T>(url, body, option);\r\n }\r\n\r\n put = <T = any>(url: string, body?: any, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.put<T>(url, body, option);\r\n }\r\n\r\n delete = <T = any>(url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.delete<T>(url, option);\r\n }\r\n\r\n request = <T = any>(method: string, url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.request<T>(method, url, option);\r\n }\r\n}\r\n\r\ninterface ObservableOption {\r\n body?: any;\r\n headers?: HttpHeaders | {\r\n [header: string]: string | string[];\r\n };\r\n observe?: 'body';\r\n params?: HttpParams | {\r\n [param: string]: string | string[];\r\n };\r\n reportProgress?: boolean;\r\n responseType?: 'json';\r\n withCredentials?: boolean;\r\n}"]}
@@ -30,6 +30,7 @@ export class SdApiService {
30
30
  };
31
31
  this.post = (url, body, headers, options) => __awaiter(this, void 0, void 0, function* () {
32
32
  var _a, _b;
33
+ url = (options === null || options === void 0 ? void 0 : options.encodeURI) === false ? url : encodeURI(url);
33
34
  headers =
34
35
  headers ||
35
36
  this.tokenService.customHeaders({
@@ -51,7 +52,7 @@ export class SdApiService {
51
52
  };
52
53
  if ((options === null || options === void 0 ? void 0 : options.responseType) && options.responseType !== 'json') {
53
54
  this.httpClient
54
- .post(encodeURI(url), body, {
55
+ .post(url, body, {
55
56
  observe: 'body',
56
57
  headers,
57
58
  responseType: options === null || options === void 0 ? void 0 : options.responseType,
@@ -73,7 +74,7 @@ export class SdApiService {
73
74
  }
74
75
  else {
75
76
  this.httpClient
76
- .post(encodeURI(url), body, {
77
+ .post(url, body, {
77
78
  observe: 'response',
78
79
  headers,
79
80
  })
@@ -352,4 +353,4 @@ SdApiService.ctorParameters = () => [
352
353
  { type: SdCacheService },
353
354
  { type: SdTokenService }
354
355
  ];
355
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2FwaS8iLCJzb3VyY2VzIjpbInNyYy9saWIvYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBa0MsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBcUIsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7Ozs7OztBQUs3QixNQUFNLE9BQU8sWUFBWTtJQXFCdkIsWUFDVSxVQUFzQixFQUNVLGFBQWdDLEVBQ2hFLFlBQTRCLEVBQzVCLFlBQTRCO1FBSDVCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDVSxrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFDaEUsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBQzVCLGlCQUFZLEdBQVosWUFBWSxDQUFnQjtRQXhCOUIsYUFBUSxHQUFHLHVDQUF1QyxDQUFDO1FBRTNELG1CQUFXLE1BQU0sRUFBQyxDQUFDLE9BQU87UUFFMUIseUJBQWlCLElBQUksRUFBQyxDQUFDLEtBQUs7UUFDNUIsaUJBU0ksRUFBRSxFQUFDO1FBRUMsY0FBUyxHQUFHLENB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QUMsQ0FBQztZQUMzQyxJQUFJLE9BQU8sS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDbEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO2dCQUN6RCxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzFCO1lBQ0QsTUFBTSxRQUFRLEdBQWEsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUMxQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUEsQ0FBQztJQXRZQyxDQUFDO0lBRUosSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7Ozs7O1lBakNGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBWFEsVUFBVTs0Q0FtQ2QsTUFBTSxTQUFDLFVBQVUsY0FBRyxRQUFRO1lBaEN4QixjQUFjO1lBQ2QsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyB0YWtlLCB0aW1lb3V0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBJQXBpQ29uZmlndXJhdGlvbiwgQVBJX0NPTkZJRyB9IGZyb20gJy4vYXBpLm1vZGVsJztcclxuaW1wb3J0IHsgU2RDYWNoZVNlcnZpY2UgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2NhY2hlJztcclxuaW1wb3J0IHsgU2RUb2tlblNlcnZpY2UgfSBmcm9tICcuL3Rva2VuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCBoYXNoIGZyb20gJ29iamVjdC1oYXNoJztcclxuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZEFwaVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgdXBsb2FkSWQgPSAnVTExOGZlZmIxLTMwODUtNDY0MS04Y2I4LWY3ZmU1YzI4ZjUwOSc7XHJcblxyXG4gICN0aW1lb3V0ID0gMTIwMDAwOyAvLyAxMjBzXHJcblxyXG4gICNjYWNoZUR1cmF0aW9uID0gMjAwMDsgLy8gMnNcclxuICAjY2FjaGU6IHtcclxuICAgIFtrZXk6IHN0cmluZ106IHtcclxuICAgICAgY3JlYXRlZERhdGU6IERhdGU7XHJcbiAgICAgIHN1YmplY3Q6IFN1YmplY3Q8YW55PjtcclxuICAgICAgcmVzcG9uc2U/OiB7XHJcbiAgICAgICAgc3RhdHVzPzogJ3N1Y2Nlc3MnIHwgJ2Vycm9yJztcclxuICAgICAgICByZXN1bHQ6IGFueTtcclxuICAgICAgfTtcclxuICAgIH07XHJcbiAgfSA9IHt9O1xyXG5cclxuICBwcml2YXRlIHRyYW5zbGF0ZSA9ICh2YWx1ZTogc3RyaW5nKTogc3RyaW5nID0+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb24/LnRyYW5zbGF0ZSh2YWx1ZSkgfHwgdmFsdWU7XHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXHJcbiAgICBASW5qZWN0KEFQSV9DT05GSUcpIEBPcHRpb25hbCgpIHByaXZhdGUgY29uZmlndXJhdGlvbjogSUFwaUNvbmZpZ3VyYXRpb24sXHJcbiAgICBwcml2YXRlIGNhY2hlU2VydmljZTogU2RDYWNoZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRva2VuU2VydmljZTogU2RUb2tlblNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIGdldCBodHRwKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudDtcclxuICB9XHJcblxyXG4gIHBvc3QgPSBhc3luYyA8VCA9IGFueT4oXHJcbiAgICB1cmw6IHN0cmluZyxcclxuICAgIGJvZHk/OiBhbnksXHJcbiAgICBoZWFkZXJzPzogSHR0cEhlYWRlcnMsXHJcbiAgICBvcHRpb25zPzoge1xyXG4gICAgICByZXNwb25zZVR5cGU/OiAnYXJyYXlidWZmZXInIHwgJ2Jsb2InIHwgJ2pzb24nIHwgJ3RleHQnO1xyXG4gICAgICB0aW1lb3V0PzogbnVtYmVyO1xyXG4gICAgfVxyXG4gICk6IFByb21pc2U8VD4gPT4ge1xyXG4gICAgaGVhZGVycyA9XHJcbiAgICAgIGhlYWRlcnMgfHxcclxuICAgICAgdGhpcy50b2tlblNlcnZpY2UuY3VzdG9tSGVhZGVycyh7XHJcbiAgICAgICAgdXJsLFxyXG4gICAgICB9KTtcclxuICAgIGxldCBoYXNoS2V5ID0gdXVpZC52NCgpO1xyXG4gICAgaWYgKCEoYm9keSBpbnN0YW5jZW9mIEZvcm1EYXRhKSkge1xyXG4gICAgICBoYXNoS2V5ID0gaGFzaCh7XHJcbiAgICAgICAgdXJsLFxyXG4gICAgICAgIGhlYWRlcnMsXHJcbiAgICAgICAgYm9keSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBhcGlUaW1lb3V0ID0gb3B0aW9ucz8udGltZW91dCB8fCB0aGlzLiN0aW1lb3V0O1xyXG4gICAgaWYgKCF0aGlzLiNjYWNoZVtoYXNoS2V5XSB8fCBEYXRlLmFkZE1pbGlzZWNvbmRzKHRoaXMuI2NhY2hlW2hhc2hLZXldLmNyZWF0ZWREYXRlLCB0aGlzLiNjYWNoZUR1cmF0aW9uKSA8IG5ldyBEYXRlKCkpIHtcclxuICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0gPSB7XHJcbiAgICAgICAgY3JlYXRlZERhdGU6IG5ldyBEYXRlKCksXHJcbiAgICAgICAgc3ViamVjdDogbmV3IFN1YmplY3QoKSxcclxuICAgICAgfTtcclxuICAgICAgaWYgKG9wdGlvbnM/LnJlc3BvbnNlVHlwZSAmJiBvcHRpb25zLnJlc3BvbnNlVHlwZSAhPT0gJ2pzb24nKSB7XHJcbiAgICAgICAgdGhpcy5odHRwQ2xpZW50XHJcbiAgICAgICAgICAucG9zdChlbmNvZGVVUkkodXJsKSwgYm9keSwge1xyXG4gICAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXHJcbiAgICAgICAgICAgIGhlYWRlcnMsXHJcbiAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogb3B0aW9ucz8ucmVzcG9uc2VUeXBlIGFzIGFueSxcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAucGlwZSh0aW1lb3V0KGFwaVRpbWVvdXQpKVxyXG4gICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgcmVzID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZSA9IHtcclxuICAgICAgICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgICAgICAgICAgcmVzdWx0OiByZXMsXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5zdWJqZWN0Lm5leHQocmVzKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZSA9IHtcclxuICAgICAgICAgICAgICAgIHN0YXR1czogJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAgIHJlc3VsdDogZXJyLFxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5lcnJvcihlcnIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaHR0cENsaWVudFxyXG4gICAgICAgICAgLnBvc3QoZW5jb2RlVVJJKHVybCksIGJvZHksIHtcclxuICAgICAgICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyxcclxuICAgICAgICAgICAgaGVhZGVycyxcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAucGlwZSh0aW1lb3V0KGFwaVRpbWVvdXQpKVxyXG4gICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgcmVzID0+IHtcclxuICAgICAgICAgICAgICBpZiAocmVzLm9rKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZSA9IHtcclxuICAgICAgICAgICAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsXHJcbiAgICAgICAgICAgICAgICAgIHJlc3VsdDogcmVzLmJvZHksXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5uZXh0KHJlcy5ib2R5KTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgICAgIHN0YXR1czogJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAgICAgcmVzdWx0OiByZXMuYm9keSxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5zdWJqZWN0LmVycm9yKHJlcy5ib2R5KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsXHJcbiAgICAgICAgICAgICAgICByZXN1bHQ6IGVycixcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QuZXJyb3IoZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlPy5zdGF0dXMpIHtcclxuICAgICAgaWYgKHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlPy5zdGF0dXMgPT09ICdzdWNjZXNzJykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZS5yZXN1bHQ7XHJcbiAgICAgIH1cclxuICAgICAgdGhyb3cgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UucmVzdWx0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QucGlwZSh0YWtlKDEpKS50b1Byb21pc2UoKTtcclxuICB9O1xyXG5cclxuICBwb3N0Q2FjaGUgPSBhc3luYyA8VCA9IGFueT4oXHJcbiAgICB1cmw6IHN0cmluZyxcclxuICAgIGJvZHk/OiBhbnksXHJcbiAgICBvcHRpb25zPzoge1xyXG4gICAgICBjYWNoZVR5cGU/OiAnZGVmYXVsdCcgfCAnc2Vzc2lvbicgfCAnbG9jYWwnO1xyXG4gICAgICBjYWNoZUhvdXJzPzogbnVtYmVyO1xyXG4gICAgICBoZWFkZXJzPzogSHR0cEhlYWRlcnM7XHJcbiAgICB9XHJcbiAgKTogUHJvbWlzZTxUPiA9PiB7XHJcbiAgICBjb25zdCBoZWFkZXJzID1cclxuICAgICAgb3B0aW9ucz8uaGVhZGVycyB8fFxyXG4gICAgICB0aGlzLnRva2VuU2VydmljZS5jdXN0b21IZWFkZXJzKHtcclxuICAgICAgICB1cmwsXHJcbiAgICAgIH0pO1xyXG4gICAgY29uc3QgeyBnZXQsIHNldCwgaGFzIH0gPSB0aGlzLmNhY2hlU2VydmljZS5jcmVhdGUoXHJcbiAgICAgIHtcclxuICAgICAgICB1cmwsXHJcbiAgICAgICAgaGVhZGVycyxcclxuICAgICAgICBib2R5LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdHlwZTogb3B0aW9ucz8uY2FjaGVUeXBlLFxyXG4gICAgICAgIGhvdXJzOiBvcHRpb25zPy5jYWNoZUhvdXJzLFxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgaWYgKCFoYXMoKSkge1xyXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnBvc3QodXJsLCBib2R5LCBvcHRpb25zPy5oZWFkZXJzLCB7XHJcbiAgICAgICAgdGltZW91dDogNTAwMCwgLy8gNXNcclxuICAgICAgfSk7XHJcbiAgICAgIHNldChyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGdldCgpO1xyXG4gIH07XHJcblxyXG4gIHB1dCA9IGFzeW5jIDxUID0gYW55Pih1cmw6IHN0cmluZywgYm9keT86IGFueSwgaGVhZGVycz86IEh0dHBIZWFkZXJzKTogUHJvbWlzZTxUPiA9PiB7XHJcbiAgICBoZWFkZXJzID1cclxuICAgICAgaGVhZGVycyB8fFxyXG4gICAgICB0aGlzLnRva2VuU2VydmljZS5jdXN0b21IZWFkZXJzKHtcclxuICAgICAgICB1cmwsXHJcbiAgICAgIH0pO1xyXG4gICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlPGFueT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB0aGlzLmh0dHBDbGllbnRcclxuICAgICAgICAucHV0KGVuY29kZVVSSSh1cmwpLCBib2R5LCB7XHJcbiAgICAgICAgICBvYnNlcnZlOiAncmVzcG9uc2UnLFxyXG4gICAgICAgICAgaGVhZGVycyxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5waXBlKHRpbWVvdXQodGhpcy4jdGltZW91dCkpXHJcbiAgICAgICAgLnRvUHJvbWlzZSgpXHJcbiAgICAgICAgLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgICAgIGlmIChyZXN1bHQub2spIHtcclxuICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQuYm9keSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZWplY3QocmVzdWx0LmJvZHkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChodHRwRXJyb3JSZXNwb25zZTogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJlamVjdChodHRwRXJyb3JSZXNwb25zZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9O1xyXG5cclxuICBwYXRjaCA9IGFzeW5jIDxUID0gYW55Pih1cmw6IHN0cmluZywgYm9keT86IGFueSwgaGVhZGVycz86IEh0dHBIZWFkZXJzKTogUHJvbWlzZTxUPiA9PiB7XHJcbiAgICBoZWFkZXJzID1cclxuICAgICAgaGVhZGVycyB8fFxyXG4gICAgICB0aGlzLnRva2VuU2VydmljZS5jdXN0b21IZWFkZXJzKHtcclxuICAgICAgICB1cmwsXHJcbiAgICAgIH0pO1xyXG4gICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlPGFueT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB0aGlzLmh0dHBDbGllbnRcclxuICAgICAgICAucGF0Y2goZW5jb2RlVVJJKHVybCksIGJvZHksIHtcclxuICAgICAgICAgIG9ic2VydmU6ICdyZXNwb25zZScsXHJcbiAgICAgICAgICBoZWFkZXJzLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnBpcGUodGltZW91dCh0aGlzLiN0aW1lb3V0KSlcclxuICAgICAgICAudG9Qcm9taXNlKClcclxuICAgICAgICAudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5vaykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHJlc3VsdC5ib2R5KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJlamVjdChyZXN1bHQuYm9keSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGh0dHBFcnJvclJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmVqZWN0KGh0dHBFcnJvclJlc3BvbnNlKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gICNkZWZpbmVQYXJhbXMgPSAocmVxdWVzdDogYW55KSA9PiB7XHJcbiAgICBjb25zdCBycSA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocmVxdWVzdCkpIHtcclxuICAgICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09ICcnICYmIHZhbHVlPy50b1N0cmluZygpICE9PSAnJykge1xyXG4gICAgICAgIHJxLnB1c2goYCR7ZW5jb2RlVVJJQ29tcG9uZW50KGtleSBhcyBzdHJpbmcpfT0ke2VuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSBhcyBzdHJpbmcpfWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYD8ke3JxPy5qb2luKCcmJyl9YDtcclxuICB9O1xyXG5cclxuICBnZXRXaXRoUGFyYW1zID0gYXN5bmMgPFQgPSBhbnk+KFxyXG4gICAgdXJsOiBzdHJpbmcsXHJcbiAgICBwYXJhbXM6IGFueSxcclxuICAgIG9wdGlvbnM/OiB7XHJcbiAgICAgIGhlYWRlcnM/OiBIdHRwSGVhZGVycztcclxuICAgICAgcmVzcG9uc2VUeXBlPzogJ2FycmF5YnVmZmVyJyB8ICdibG9iJyB8ICdqc29uJyB8ICd0ZXh0JztcclxuICAgIH1cclxuICApOiBQcm9taXNlPFQ+ID0+IHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLmdldChgJHt1cmx9JHt0aGlzLiNkZWZpbmVQYXJhbXMocGFyYW1zKX1gLCBvcHRpb25zPy5oZWFkZXJzLCB7IC4uLm9wdGlvbnMsIGVuY29kZVVSSTogZmFsc2UgfSk7XHJcbiAgfTtcclxuXHJcbiAgZ2V0Q2FjaGVXaXRoUGFyYW1zID0gYXN5bmMgPFQgPSBhbnk+KFxyXG4gICAgdXJsOiBzdHJpbmcsXHJcbiAgICBwYXJhbXM6IGFueSxcclxuICAgIGhlYWRlcnM/OiBIdHRwSGVhZGVycyxcclxuICAgIG9wdGlvbnM/OiB7XHJcbiAgICAgIHJlbG9hZD86IGJvb2xlYW47XHJcbiAgICAgIGNhY2hlVHlwZT86ICdkZWZhdWx0JyB8ICdzZXNzaW9uJyB8ICdsb2NhbCc7XHJcbiAgICAgIGNhY2hlSG91cnM/OiBudW1iZXI7XHJcbiAgICAgIGhlYWRlcnM/OiBIdHRwSGVhZGVycztcclxuICAgIH1cclxuICApOiBQcm9taXNlPFQ+ID0+IHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLmdldENhY2hlKGAke3VybH0ke3RoaXMuI2RlZmluZVBhcmFtcyhwYXJhbXMpfWAsIHsgLi4ub3B0aW9ucywgaGVhZGVycywgZW5jb2RlVVJJOiBmYWxzZSB9KTtcclxuICB9O1xyXG5cclxuICBnZXQgPSBhc3luYyA8VCA9IGFueT4oXHJcbiAgICB1cmw6IHN0cmluZyxcclxuICAgIGhlYWRlcnM/OiBIdHRwSGVhZGVycyxcclxuICAgIG9wdGlvbnM/OiB7XHJcbiAgICAgIHJlc3BvbnNlVHlwZT86ICdhcnJheWJ1ZmZlcicgfCAnYmxvYicgfCAnanNvbicgfCAndGV4dCc7XHJcbiAgICAgIGVuY29kZVVSST86IGJvb2xlYW47XHJcbiAgICAgIHRpbWVvdXQ/OiBudW1iZXI7XHJcbiAgICB9XHJcbiAgKTogUHJvbWlzZTxUPiA9PiB7XHJcbiAgICBoZWFkZXJzID1cclxuICAgICAgaGVhZGVycyB8fFxyXG4gICAgICB0aGlzLnRva2VuU2VydmljZS5jdXN0b21IZWFkZXJzKHtcclxuICAgICAgICB1cmwsXHJcbiAgICAgIH0pO1xyXG4gICAgY29uc3QgZW5jb2RlZFVybCA9IG9wdGlvbnM/LmVuY29kZVVSSSA9PT0gZmFsc2UgPyB1cmwgOiBlbmNvZGVVUkkodXJsKTtcclxuICAgIC8vIGNvbnN0IGhhc2hLZXkgPSBoYXNoKHtcclxuICAgIC8vICAgZW5jb2RlZFVybCxcclxuICAgIC8vICAgaGVhZGVyc1xyXG4gICAgLy8gfSk7XHJcbiAgICBjb25zdCBoYXNoS2V5ID0gaGFzaCh7XHJcbiAgICAgIGVuY29kZWRVcmwsXHJcbiAgICAgIGhlYWRlcnMsXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGFwaVRpbWVvdXQgPSBvcHRpb25zPy50aW1lb3V0IHx8IHRoaXMuI3RpbWVvdXQ7XHJcbiAgICBpZiAoIXRoaXMuI2NhY2hlW2hhc2hLZXldIHx8IERhdGUuYWRkTWlsaXNlY29uZHModGhpcy4jY2FjaGVbaGFzaEtleV0uY3JlYXRlZERhdGUsIHRoaXMuI2NhY2hlRHVyYXRpb24pIDwgbmV3IERhdGUoKSkge1xyXG4gICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XSA9IHtcclxuICAgICAgICBjcmVhdGVkRGF0ZTogbmV3IERhdGUoKSxcclxuICAgICAgICBzdWJqZWN0OiBuZXcgU3ViamVjdCgpLFxyXG4gICAgICB9O1xyXG4gICAgICBpZiAob3B0aW9ucz8ucmVzcG9uc2VUeXBlICYmIG9wdGlvbnMucmVzcG9uc2VUeXBlICE9PSAnanNvbicpIHtcclxuICAgICAgICB0aGlzLmh0dHBDbGllbnRcclxuICAgICAgICAgIC5nZXQoZW5jb2RlZFVybCwgeyBvYnNlcnZlOiAnYm9keScsIGhlYWRlcnMsIHJlc3BvbnNlVHlwZTogb3B0aW9ucz8ucmVzcG9uc2VUeXBlIGFzIGFueSB9KVxyXG4gICAgICAgICAgLnBpcGUodGltZW91dChhcGlUaW1lb3V0KSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcclxuICAgICAgICAgICAgICAgIHJlc3VsdDogcmVzLFxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5uZXh0KHJlcyk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsXHJcbiAgICAgICAgICAgICAgICByZXN1bHQ6IGVycixcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QuZXJyb3IoZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmh0dHBDbGllbnRcclxuICAgICAgICAgIC5nZXQoZW5jb2RlZFVybCwgeyBvYnNlcnZlOiAncmVzcG9uc2UnLCBoZWFkZXJzIH0pXHJcbiAgICAgICAgICAucGlwZSh0aW1lb3V0KGFwaVRpbWVvdXQpKVxyXG4gICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgcmVzID0+IHtcclxuICAgICAgICAgICAgICBpZiAocmVzLm9rKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZSA9IHtcclxuICAgICAgICAgICAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsXHJcbiAgICAgICAgICAgICAgICAgIHJlc3VsdDogcmVzLmJvZHksXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5uZXh0KHJlcy5ib2R5KTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgICAgIHN0YXR1czogJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAgICAgcmVzdWx0OiByZXMuYm9keSxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5zdWJqZWN0LmVycm9yKHJlcy5ib2R5KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsXHJcbiAgICAgICAgICAgICAgICByZXN1bHQ6IGVycixcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QuZXJyb3IoZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlPy5zdGF0dXMpIHtcclxuICAgICAgaWYgKHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlPy5zdGF0dXMgPT09ICdzdWNjZXNzJykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZS5yZXN1bHQ7XHJcbiAgICAgIH1cclxuICAgICAgdGhyb3cgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UucmVzdWx0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QucGlwZSh0YWtlKDEpKS50b1Byb21pc2UoKTtcclxuICB9O1xyXG5cclxuICBnZXRDYWNoZSA9IGFzeW5jIDxUID0gYW55PihcclxuICAgIHVybDogc3RyaW5nLFxyXG4gICAgb3B0aW9ucz86IHtcclxuICAgICAgcmVsb2FkPzogYm9vbGVhbjtcclxuICAgICAgY2FjaGVUeXBlPzogJ2RlZmF1bHQnIHwgJ3Nlc3Npb24nIHwgJ2xvY2FsJztcclxuICAgICAgY2FjaGVIb3Vycz86IG51bWJlcjtcclxuICAgICAgaGVhZGVycz86IEh0dHBIZWFkZXJzO1xyXG4gICAgICBlbmNvZGVVUkk/OiBib29sZWFuO1xyXG4gICAgfVxyXG4gICk6IFByb21pc2U8VD4gPT4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9XHJcbiAgICAgIG9wdGlvbnM/LmhlYWRlcnMgfHxcclxuICAgICAgdGhpcy50b2tlblNlcnZpY2UuY3VzdG9tSGVhZGVycyh7XHJcbiAgICAgICAgdXJsLFxyXG4gICAgICB9KTtcclxuICAgIGNvbnN0IGVuY29kZWRVcmwgPSBvcHRpb25zPy5lbmNvZGVVUkkgPT09IGZhbHNlID8gdXJsIDogZW5jb2RlVVJJKHVybCk7XHJcbiAgICBjb25zdCB7IGdldCwgc2V0LCBoYXMgfSA9IHRoaXMuY2FjaGVTZXJ2aWNlLmNyZWF0ZShcclxuICAgICAge1xyXG4gICAgICAgIGVuY29kZWRVcmwsXHJcbiAgICAgICAgaGVhZGVycyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHR5cGU6IG9wdGlvbnM/LmNhY2hlVHlwZSxcclxuICAgICAgICBob3Vyczogb3B0aW9ucz8uY2FjaGVIb3VycyxcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIGlmICghaGFzKCkgfHwgb3B0aW9ucz8ucmVsb2FkKSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZ2V0KGVuY29kZWRVcmwsIG9wdGlvbnM/LmhlYWRlcnMsIHsgZW5jb2RlVVJJOiBmYWxzZSwgdGltZW91dDogNTAwMCB9KTtcclxuICAgICAgc2V0KHJlc3VsdCk7XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZ2V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZGVsZXRlID0gYXN5bmMgPFQgPSBhbnk+KHVybDogc3RyaW5nLCBoZWFkZXJzPzogSHR0cEhlYWRlcnMpOiBQcm9taXNlPFQ+ID0+IHtcclxuICAgIGhlYWRlcnMgPVxyXG4gICAgICBoZWFkZXJzIHx8XHJcbiAgICAgIHRoaXMudG9rZW5TZXJ2aWNlLmN1c3RvbUhlYWRlcnMoe1xyXG4gICAgICAgIHVybCxcclxuICAgICAgfSk7XHJcbiAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHRoaXMuaHR0cENsaWVudFxyXG4gICAgICAgIC5kZWxldGUoZW5jb2RlVVJJKHVybCksIHsgb2JzZXJ2ZTogJ3Jlc3BvbnNlJywgaGVhZGVycyB9KVxyXG4gICAgICAgIC5waXBlKHRpbWVvdXQodGhpcy4jdGltZW91dCkpXHJcbiAgICAgICAgLnRvUHJvbWlzZSgpXHJcbiAgICAgICAgLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgICAgIGlmIChyZXN1bHQub2spIHtcclxuICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQuYm9keSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZWplY3QocmVzdWx0LmJvZHkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChodHRwRXJyb3JSZXNwb25zZTogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJlamVjdChodHRwRXJyb3JSZXNwb25zZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9O1xyXG5cclxuICB1cGxvYWRTaW5nbGUgPSAoXHJcbiAgICB1cmw6IHN0cmluZyxcclxuICAgIG9wdGlvbj86IHtcclxuICAgICAgZXh0ZW5zaW9ucz86IHN0cmluZ1tdO1xyXG4gICAgICBtYXhTaXplSW5NYj86IG51bWJlcjtcclxuICAgICAgdmFsaWRhdG9yPzogKGZpbGVOYW1lOiBzdHJpbmcpID0+IHN0cmluZztcclxuICAgIH1cclxuICApOiBQcm9taXNlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIFNkVXRpbGl0eS51cGxvYWQob3B0aW9uKS50aGVuKGZpbGUgPT4gdGhpcy51cGxvYWQodXJsLCBmaWxlKSk7XHJcbiAgfTtcclxuXHJcbiAgdXBsb2FkID0gYXN5bmMgKHVybDogc3RyaW5nLCBmaWxlOiBGaWxlKSA9PiB7XHJcbiAgICBjb25zdCBsYXN0RG90ID0gZmlsZS5uYW1lLmxhc3RJbmRleE9mKCcuJyk7XHJcbiAgICBpZiAobGFzdERvdCA9PT0gLTEpIHtcclxuICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlKGBJbnZhbGlkIGZpbGUgZXh0ZW5zaW9uYCk7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSwgZmlsZS5uYW1lKTtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLnBvc3QodXJsLCBmb3JtRGF0YSk7XHJcbiAgfTtcclxufVxyXG4iXX0=
356
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2FwaS8iLCJzb3VyY2VzIjpbInNyYy9saWIvYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBa0MsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBcUIsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7Ozs7OztBQUs3QixNQUFNLE9BQU8sWUFBWTtJQXFCdkIsWUFDVSxVQUFzQixFQUNVLGFBQWdDLEVBQ2hFLFlBQTRCLEVBQzVCLFlBQTRCO1FBSDVCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDVSxrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFDaEUsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBQzVCLGlCQUFZLEdBQVosWUFBWSxDQUFnQjtRQXhCOUIsYUFBUSxHQUFHLHVDQUF1QyxDQUFDO1FBRTNELG1CQUFXLE1BQU0sRUFBQyxDQUFDLE9BQU87UUFFMUIseUJBQWlCLElBQUksRUFBQyxDQUFDLEtBQUs7UUFDNUIsaUJBU0ksRUFBRSxFQUFDO1FBRUMsY0FBUyxHQUFHLENBQUMsS0FBYSxFQUFVLEVBQUU7O1lBQzVDLE9BQU8sT0FBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxTQUFTLENBQUMsS0FBSyxNQUFLLEtBQUssQ0FBQztRQUN2RCxDQUFDLENBQUM7UUFhRixTQUFJLEdBQUcsQ0FDTCxHQUFXLEVBQ1gsSUFBVSxFQUNWLE9BQXFCLEVBQ3JCLE9BSUMsRUFDVyxFQUFFOztZQUNkLEdBQUcsR0FBRyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxTQUFTLE1BQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUUxRCxPQUFPO2dCQUNMLE9BQU87b0JBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUM7d0JBQzlCLEdBQUc7cUJBQ0osQ0FBQyxDQUFDO1lBQ0wsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxDQUFDLElBQUksWUFBWSxRQUFRLENBQUMsRUFBRTtnQkFDL0IsT0FBTyxHQUFHLElBQUksQ0FBQztvQkFDYixHQUFHO29CQUNILE9BQU87b0JBQ1AsSUFBSTtpQkFDTCxDQUFDLENBQUM7YUFDSjtZQUNELE1BQU0sVUFBVSxHQUFHLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE9BQU8sMkNBQWlCLENBQUM7WUFDckQsSUFBSSxDQUFDLHFDQUFZLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMscUNBQVksT0FBTyxDQUFDLENBQUMsV0FBVywrQ0FBc0IsR0FBRyxJQUFJLElBQUksRUFBRSxFQUFFO2dCQUNwSCxxQ0FBWSxPQUFPLENBQUMsR0FBRztvQkFDckIsV0FBVyxFQUFFLElBQUksSUFBSSxFQUFFO29CQUN2QixPQUFPLEVBQUUsSUFBSSxPQUFPLEVBQUU7aUJBQ3ZCLENBQUM7Z0JBQ0YsSUFBSSxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxZQUFZLEtBQUksT0FBTyxDQUFDLFlBQVksS0FBSyxNQUFNLEVBQUU7b0JBQzVELElBQUksQ0FBQyxVQUFVO3lCQUNaLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFO3dCQUNmLE9BQU8sRUFBRSxNQUFNO3dCQUNmLE9BQU87d0JBQ1AsWUFBWSxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxZQUFtQjtxQkFDM0MsQ0FBQzt5QkFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO3lCQUN6QixTQUFTLENBQ1IsR0FBRyxDQUFDLEVBQUU7d0JBQ0oscUNBQVksT0FBTyxDQUFDLENBQUMsUUFBUSxHQUFHOzRCQUM5QixNQUFNLEVBQUUsU0FBUzs0QkFDakIsTUFBTSxFQUFFLEdBQUc7eUJBQ1osQ0FBQzt3QkFDRixxQ0FBWSxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUN6QyxDQUFDLEVBQ0QsR0FBRyxDQUFDLEVBQUU7d0JBQ0oscUNBQVksT0FBTyxDQUFDLENBQUMsUUFBUSxHQUFHOzRCQUM5QixNQUFNLEVBQUUsT0FBTzs0QkFDZixNQUFNLEVBQUUsR0FBRzt5QkFDWixDQUFDO3dCQUNGLHFDQUFZLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzFDLENBQUMsQ0FDRixDQUFDO2lCQUNMO3FCQUFNO29CQUNMLElBQUksQ0FBQyxVQUFVO3lCQUNaLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFO3dCQUNmLE9BQU8sRUFBRSxVQUFVO3dCQUNuQixPQUFPO3FCQUNSLENBQUM7eUJBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQzt5QkFDekIsU0FBUyxDQUNSLEdBQUcsQ0FBQyxFQUFFO3dCQUNKLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRTs0QkFDVixxQ0FBWSxPQUFPLENBQUMsQ0FBQyxRQUFRLEdBQUc7Z0NBQzlCLE1BQU0sRUFBRSxTQUFTO2dDQUNqQixNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUk7NkJBQ2pCLENBQUM7NEJBQ0YscUNBQVksT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQzdDOzZCQUFNOzRCQUNMLHFDQUFZLE9BQU8sQ0FBQyxDQUFDLFFBQVEsR0FBRztnQ0FDOUIsTUFBTSxFQUFFLE9BQU87Z0NBQ2YsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFJOzZCQUNqQixDQUFDOzRCQUNGLHFDQUFZLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUM5QztvQkFDSCxDQUFDLEVBQ0QsR0FBRyxDQUFDLEVBQUU7d0JBQ0oscUNBQVksT0FBTyxDQUFDLENBQUMsUUFBUSxHQUFHOzRCQUM5QixNQUFNLEVBQUUsT0FBTzs0QkFDZixNQUFNLEVBQUUsR0FBRzt5QkFDWixDQUFDO3dCQUNGLHFDQUFZLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzFDLENBQUMsQ0FDRixDQUFDO2lCQUNMO2FBQ0Y7WUFDRCxVQUFJLHFDQUFZLE9BQU8sQ0FBQyxDQUFDLFFBQVEsMENBQUUsTUFBTSxFQUFFO2dCQUN6QyxJQUFJLE9BQUEscUNBQVksT0FBTyxDQUFDLENBQUMsUUFBUSwwQ0FBRSxNQUFNLE1BQUssU0FBUyxFQUFFO29CQUN2RCxPQUFPLHFDQUFZLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7aUJBQzdDO2dCQUNELE1BQU0scUNBQVksT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQzthQUM1QztZQUNELE9BQU8scUNBQVksT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNoRSxDQUFDLENBQUEsQ0FBQztRQUVGLGNBQVMsR0FBRyxDQUNWLEdBQVcsRUFDWCxJQUFVLEVBQ1YsT0FJQyxFQUNXLEVBQUU7WUFDZCxNQUFNLE9BQU8sR0FDWCxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPO2dCQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQztvQkFDOUIsR0FBRztpQkFDSixDQUFDLENBQUM7WUFDTCxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FDaEQ7Z0JBQ0UsR0FBRztnQkFDSCxPQUFPO2dCQUNQLElBQUk7YUFDTCxFQUNEO2dCQUNFLElBQUksRUFBRSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsU0FBUztnQkFDeEIsS0FBSyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxVQUFVO2FBQzNCLENBQ0YsQ0FBQztZQUNGLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDVixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsT0FBTyxFQUFFO29CQUMxRCxPQUFPLEVBQUUsSUFBSTtpQkFDZCxDQUFDLENBQUM7Z0JBQ0gsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNaLE9BQU8sTUFBTSxDQUFDO2FBQ2Y7WUFDRCxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2YsQ0FBQyxDQUFBLENBQUM7UUFFRixRQUFHLEdBQUcsQ0FBZ0IsR0FBVyxFQUFFLElBQVUsRUFBRSxPQUFxQixFQUFjLEVBQUU7WUFDbEYsT0FBTztnQkFDTCxPQUFPO29CQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDO3dCQUM5QixHQUFHO3FCQUNKLENBQUMsQ0FBQztZQUNMLE9BQU8sTUFBTSxJQUFJLE9BQU8sQ0FBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDaEQsSUFBSSxDQUFDLFVBQVU7cUJBQ1osR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUU7b0JBQ3pCLE9BQU8sRUFBRSxVQUFVO29CQUNuQixPQUFPO2lCQUNSLENBQUM7cUJBQ0QsSUFBSSxDQUFDLE9BQU8sd0NBQWUsQ0FBQztxQkFDNUIsU0FBUyxFQUFFO3FCQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDYixJQUFJLE1BQU0sQ0FBQyxFQUFFLEVBQUU7d0JBQ2IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDdEI7eUJBQU07d0JBQ0wsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDckI7Z0JBQ0gsQ0FBQyxDQUFDO3FCQUNELEtBQUssQ0FBQyxDQUFDLGlCQUFvQyxFQUFFLEVBQUU7b0JBQzlDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUM1QixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFBLENBQUM7UUFFRixVQUFLLEdBQUcsQ0FBZ0IsR0FBVyxFQUFFLElBQVUsRUFBRSxPQUFxQixFQUFjLEVBQUU7WUFDcEYsT0FBTztnQkFDTCxPQUFPO29CQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDO3dCQUM5QixHQUFHO3FCQUNKLENBQUMsQ0FBQztZQUNMLE9BQU8sTUFBTSxJQUFJLE9BQU8sQ0FBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDaEQsSUFBSSxDQUFDLFVBQVU7cUJBQ1osS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUU7b0JBQzNCLE9BQU8sRUFBRSxVQUFVO29CQUNuQixPQUFPO2lCQUNSLENBQUM7cUJBQ0QsSUFBSSxDQUFDLE9BQU8sd0NBQWUsQ0FBQztxQkFDNUIsU0FBUyxFQUFFO3FCQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDYixJQUFJLE1BQU0sQ0FBQyxFQUFFLEVBQUU7d0JBQ2IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDdEI7eUJBQU07d0JBQ0wsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDckI7Z0JBQ0gsQ0FBQyxDQUFDO3FCQUNELEtBQUssQ0FBQyxDQUFDLGlCQUFvQyxFQUFFLEVBQUU7b0JBQzlDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUM1QixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFBLENBQUM7UUFFRix3QkFBZ0IsQ0FBQyxPQUFZLEVBQUUsRUFBRTtZQUMvQixNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDZCxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDbEQsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLEVBQUUsSUFBSSxDQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxRQUFRLFFBQU8sRUFBRSxFQUFFO29CQUNyRixFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsa0JBQWtCLENBQUMsR0FBYSxDQUFDLElBQUksa0JBQWtCLENBQUMsS0FBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUN4RjthQUNGO1lBQ0QsT0FBTyxJQUFJLEVBQUUsYUFBRixFQUFFLHVCQUFGLEVBQUUsQ0FBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM3QixDQUFDLEVBQUM7UUFFRixrQkFBYSxHQUFHLENBQ2QsR0FBVyxFQUNYLE1BQVcsRUFDWCxPQUdDLEVBQ1csRUFBRTtZQUNkLE9BQU8sTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLGlEQUFBLElBQUksRUFBZSxNQUFNLENBQUMsRUFBRSxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPLGtDQUFPLE9BQU8sS0FBRSxTQUFTLEVBQUUsS0FBSyxJQUFHLENBQUM7UUFDbkgsQ0FBQyxDQUFBLENBQUM7UUFFRix1QkFBa0IsR0FBRyxDQUNuQixHQUFXLEVBQ1gsTUFBVyxFQUNYLE9BQXFCLEVBQ3JCLE9BS0MsRUFDVyxFQUFFO1lBQ2QsT0FBTyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLEdBQUcsaURBQUEsSUFBSSxFQUFlLE1BQU0sQ0FBQyxFQUFFLGtDQUFPLE9BQU8sS0FBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssSUFBRyxDQUFDO1FBQy9HLENBQUMsQ0FBQSxDQUFDO1FBRUYsUUFBRyxHQUFHLENBQ0osR0FBVyxFQUNYLE9BQXFCLEVBQ3JCLE9BSUMsRUFDVyxFQUFFOztZQUNkLE9BQU87Z0JBQ0wsT0FBTztvQkFDUCxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQzt3QkFDOUIsR0FBRztxQkFDSixDQUFDLENBQUM7WUFDTCxNQUFNLFVBQVUsR0FBRyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxTQUFTLE1BQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2RSx5QkFBeUI7WUFDekIsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixNQUFNO1lBQ04sTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDO2dCQUNuQixVQUFVO2dCQUNWLE9BQU87YUFDUixDQUFDLENBQUM7WUFDSCxNQUFNLFVBQVUsR0FBRyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPLDJDQUFpQixDQUFDO1lBQ3JELElBQUksQ0FBQyxxQ0FBWSxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLHFDQUFZLE9BQU8sQ0FBQyxDQUFDLFdBQVcsK0NBQXNCLEdBQUcsSUFBSSxJQUFJLEVBQUUsRUFBRTtnQkFDcEgscUNBQVksT0FBTyxDQUFDLEdBQUc7b0JBQ3JCLFdBQVcsRUFBRSxJQUFJLElBQUksRUFBRTtvQkFDdkIsT0FBTyxFQUFFLElBQUksT0FBTyxFQUFFO2lCQUN2QixDQUFDO2dCQUNGLElBQUksQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsWUFBWSxLQUFJLE9BQU8sQ0FBQyxZQUFZLEtBQUssTUFBTSxFQUFFO29CQUM1RCxJQUFJLENBQUMsVUFBVTt5QkFDWixHQUFHLENBQUMsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxZQUFtQixFQUFFLENBQUM7eUJBQ3pGLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7eUJBQ3pCLFNBQVMsQ0FDUixHQUFHLENBQUMsRUFBRTt3QkFDSixxQ0FBWSxPQUFPLENBQUMsQ0FBQyxRQUFRLEdBQUc7NEJBQzlCLE1BQU0sRUFBRSxTQUFTOzRCQUNqQixNQUFNLEVBQUUsR0FBRzt5QkFDWixDQUFDO3dCQUNGLHFDQUFZLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3pDLENBQUMsRUFDRCxHQUFHLENBQUMsRUFBRTt3QkFDSixxQ0FBWSxPQUFPLENBQUMsQ0FBQyxRQUFRLEdBQUc7NEJBQzlCLE1BQU0sRUFBRSxPQUFPOzRCQUNmLE1BQU0sRUFBRSxHQUFHO3lCQUNaLENBQUM7d0JBQ0YscUNBQVksT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDMUMsQ0FBQyxDQUNGLENBQUM7aUJBQ0w7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLFVBQVU7eUJBQ1osR0FBRyxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUM7eUJBQ2pELElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7eUJBQ3pCLFNBQVMsQ0FDUixHQUFHLENBQUMsRUFBRTt3QkFDSixJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUU7NEJBQ1YscUNBQVksT0FBTyxDQUFDLENBQUMsUUFBUSxHQUFHO2dDQUM5QixNQUFNLEVBQUUsU0FBUztnQ0FDakIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFJOzZCQUNqQixDQUFDOzRCQUNGLHFDQUFZLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUM3Qzs2QkFBTTs0QkFDTCxxQ0FBWSxPQUFPLENBQUMsQ0FBQyxRQUFRLEdBQUc7Z0NBQzlCLE1BQU0sRUFBRSxPQUFPO2dDQUNmLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSTs2QkFDakIsQ0FBQzs0QkFDRixxQ0FBWSxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQzt5QkFDOUM7b0JBQ0gsQ0FBQyxFQUNELEdBQUcsQ0FBQyxFQUFFO3dCQUNKLHFDQUFZLE9BQU8sQ0FBQyxDQUFDLFFBQVEsR0FBRzs0QkFDOUIsTUFBTSxFQUFFLE9BQU87NEJBQ2YsTUFBTSxFQUFFLEdBQUc7eUJBQ1osQ0FBQzt3QkFDRixxQ0FBWSxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUMxQyxDQUFDLENBQ0YsQ0FBQztpQkFDTDthQUNGO1lBQ0QsVUFBSSxxQ0FBWSxPQUFPLENBQUMsQ0FBQyxRQUFRLDBDQUFFLE1BQU0sRUFBRTtnQkFDekMsSUFBSSxPQUFBLHFDQUFZLE9BQU8sQ0FBQyxDQUFDLFFBQVEsMENBQUUsTUFBTSxNQUFLLFNBQVMsRUFBRTtvQkFDdkQsT0FBTyxxQ0FBWSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO2lCQUM3QztnQkFDRCxNQUFNLHFDQUFZLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7YUFDNUM7WUFDRCxPQUFPLHFDQUFZLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDaEUsQ0FBQyxDQUFBLENBQUM7UUFFRixhQUFRLEdBQUcsQ0FDVCxHQUFXLEVBQ1gsT0FNQyxFQUNXLEVBQUU7WUFDZCxNQUFNLE9BQU8sR0FDWCxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPO2dCQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQztvQkFDOUIsR0FBRztpQkFDSixDQUFDLENBQUM7WUFDTCxNQUFNLFVBQVUsR0FBRyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxTQUFTLE1BQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2RSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FDaEQ7Z0JBQ0UsVUFBVTtnQkFDVixPQUFPO2FBQ1IsRUFDRDtnQkFDRSxJQUFJLEVBQUUsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFNBQVM7Z0JBQ3hCLEtBQUssRUFBRSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsVUFBVTthQUMzQixDQUNGLENBQUM7WUFDRixJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE1BQU0sQ0FBQSxFQUFFO2dCQUM3QixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ1osT0FBTyxNQUFNLENBQUM7YUFDZjtZQUNELE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDZixDQUFDLENBQUEsQ0FBQztRQUVGLFdBQU0sR0FBRyxDQUFnQixHQUFXLEVBQUUsT0FBcUIsRUFBYyxFQUFFO1lBQ3pFLE9BQU87Z0JBQ0wsT0FBTztvQkFDUCxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQzt3QkFDOUIsR0FBRztxQkFDSixDQUFDLENBQUM7WUFDTCxPQUFPLE1BQU0sSUFBSSxPQUFPLENBQU0sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxVQUFVO3FCQUNaLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDO3FCQUN4RCxJQUFJLENBQUMsT0FBTyx3Q0FBZSxDQUFDO3FCQUM1QixTQUFTLEVBQUU7cUJBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNiLElBQUksTUFBTSxDQUFDLEVBQUUsRUFBRTt3QkFDYixPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUN0Qjt5QkFBTTt3QkFDTCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUNyQjtnQkFDSCxDQUFDLENBQUM7cUJBQ0QsS0FBSyxDQUFDLENBQUMsaUJBQW9DLEVBQUUsRUFBRTtvQkFDOUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQzVCLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUEsQ0FBQztRQUVGLGlCQUFZLEdBQUcsQ0FDYixHQUFXLEVBQ1gsTUFJQyxFQUNhLEVBQUU7WUFDaEIsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdkUsQ0FBQyxDQUFDO1FBRUYsV0FBTSxHQUFHLENBQU8sR0FBVyxFQUFFLElBQVUsRUFBRSxFQUFFO1lBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNDLElBQUksT0FBTyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUNsQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLENBQUM7Z0JBQ3pELE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDMUI7WUFDRCxNQUFNLFFBQVEsR0FBYSxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekMsT0FBTyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQSxDQUFDO0lBellDLENBQUM7SUFFSixJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQzs7Ozs7WUFqQ0YsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFYUSxVQUFVOzRDQW1DZCxNQUFNLFNBQUMsVUFBVSxjQUFHLFFBQVE7WUFoQ3hCLGNBQWM7WUFDZCxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IHRha2UsIHRpbWVvdXQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IElBcGlDb25maWd1cmF0aW9uLCBBUElfQ09ORklHIH0gZnJvbSAnLi9hcGkubW9kZWwnO1xyXG5pbXBvcnQgeyBTZENhY2hlU2VydmljZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvY2FjaGUnO1xyXG5pbXBvcnQgeyBTZFRva2VuU2VydmljZSB9IGZyb20gJy4vdG9rZW4uc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IGhhc2ggZnJvbSAnb2JqZWN0LWhhc2gnO1xyXG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkQXBpU2VydmljZSB7XHJcbiAgcHJpdmF0ZSB1cGxvYWRJZCA9ICdVMTE4ZmVmYjEtMzA4NS00NjQxLThjYjgtZjdmZTVjMjhmNTA5JztcclxuXHJcbiAgI3RpbWVvdXQgPSAxMjAwMDA7IC8vIDEyMHNcclxuXHJcbiAgI2NhY2hlRHVyYXRpb24gPSAyMDAwOyAvLyAyc1xyXG4gICNjYWNoZToge1xyXG4gICAgW2tleTogc3RyaW5nXToge1xyXG4gICAgICBjcmVhdGVkRGF0ZTogRGF0ZTtcclxuICAgICAgc3ViamVjdDogU3ViamVjdDxhbnk+O1xyXG4gICAgICByZXNwb25zZT86IHtcclxuICAgICAgICBzdGF0dXM/OiAnc3VjY2VzcycgfCAnZXJyb3InO1xyXG4gICAgICAgIHJlc3VsdDogYW55O1xyXG4gICAgICB9O1xyXG4gICAgfTtcclxuICB9ID0ge307XHJcblxyXG4gIHByaXZhdGUgdHJhbnNsYXRlID0gKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbj8udHJhbnNsYXRlKHZhbHVlKSB8fCB2YWx1ZTtcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgIEBJbmplY3QoQVBJX0NPTkZJRykgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb25maWd1cmF0aW9uOiBJQXBpQ29uZmlndXJhdGlvbixcclxuICAgIHByaXZhdGUgY2FjaGVTZXJ2aWNlOiBTZENhY2hlU2VydmljZSxcclxuICAgIHByaXZhdGUgdG9rZW5TZXJ2aWNlOiBTZFRva2VuU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgZ2V0IGh0dHAoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50O1xyXG4gIH1cclxuXHJcbiAgcG9zdCA9IGFzeW5jIDxUID0gYW55PihcclxuICAgIHVybDogc3RyaW5nLFxyXG4gICAgYm9keT86IGFueSxcclxuICAgIGhlYWRlcnM/OiBIdHRwSGVhZGVycyxcclxuICAgIG9wdGlvbnM/OiB7XHJcbiAgICAgIHJlc3BvbnNlVHlwZT86ICdhcnJheWJ1ZmZlcicgfCAnYmxvYicgfCAnanNvbicgfCAndGV4dCc7XHJcbiAgICAgIGVuY29kZVVSST86IGJvb2xlYW47XHJcbiAgICAgIHRpbWVvdXQ/OiBudW1iZXI7XHJcbiAgICB9XHJcbiAgKTogUHJvbWlzZTxUPiA9PiB7XHJcbiAgICB1cmwgPSBvcHRpb25zPy5lbmNvZGVVUkkgPT09IGZhbHNlID8gdXJsIDogZW5jb2RlVVJJKHVybCk7XHJcblxyXG4gICAgaGVhZGVycyA9XHJcbiAgICAgIGhlYWRlcnMgfHxcclxuICAgICAgdGhpcy50b2tlblNlcnZpY2UuY3VzdG9tSGVhZGVycyh7XHJcbiAgICAgICAgdXJsLFxyXG4gICAgICB9KTtcclxuICAgIGxldCBoYXNoS2V5ID0gdXVpZC52NCgpO1xyXG4gICAgaWYgKCEoYm9keSBpbnN0YW5jZW9mIEZvcm1EYXRhKSkge1xyXG4gICAgICBoYXNoS2V5ID0gaGFzaCh7XHJcbiAgICAgICAgdXJsLFxyXG4gICAgICAgIGhlYWRlcnMsXHJcbiAgICAgICAgYm9keSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBhcGlUaW1lb3V0ID0gb3B0aW9ucz8udGltZW91dCB8fCB0aGlzLiN0aW1lb3V0O1xyXG4gICAgaWYgKCF0aGlzLiNjYWNoZVtoYXNoS2V5XSB8fCBEYXRlLmFkZE1pbGlzZWNvbmRzKHRoaXMuI2NhY2hlW2hhc2hLZXldLmNyZWF0ZWREYXRlLCB0aGlzLiNjYWNoZUR1cmF0aW9uKSA8IG5ldyBEYXRlKCkpIHtcclxuICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0gPSB7XHJcbiAgICAgICAgY3JlYXRlZERhdGU6IG5ldyBEYXRlKCksXHJcbiAgICAgICAgc3ViamVjdDogbmV3IFN1YmplY3QoKSxcclxuICAgICAgfTtcclxuICAgICAgaWYgKG9wdGlvbnM/LnJlc3BvbnNlVHlwZSAmJiBvcHRpb25zLnJlc3BvbnNlVHlwZSAhPT0gJ2pzb24nKSB7XHJcbiAgICAgICAgdGhpcy5odHRwQ2xpZW50XHJcbiAgICAgICAgICAucG9zdCh1cmwsIGJvZHksIHtcclxuICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxyXG4gICAgICAgICAgICBoZWFkZXJzLFxyXG4gICAgICAgICAgICByZXNwb25zZVR5cGU6IG9wdGlvbnM/LnJlc3BvbnNlVHlwZSBhcyBhbnksXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLnBpcGUodGltZW91dChhcGlUaW1lb3V0KSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcclxuICAgICAgICAgICAgICAgIHJlc3VsdDogcmVzLFxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5uZXh0KHJlcyk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsXHJcbiAgICAgICAgICAgICAgICByZXN1bHQ6IGVycixcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QuZXJyb3IoZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmh0dHBDbGllbnRcclxuICAgICAgICAgIC5wb3N0KHVybCwgYm9keSwge1xyXG4gICAgICAgICAgICBvYnNlcnZlOiAncmVzcG9uc2UnLFxyXG4gICAgICAgICAgICBoZWFkZXJzLFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5waXBlKHRpbWVvdXQoYXBpVGltZW91dCkpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICByZXMgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXMub2spIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlID0ge1xyXG4gICAgICAgICAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcclxuICAgICAgICAgICAgICAgICAgcmVzdWx0OiByZXMuYm9keSxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5zdWJqZWN0Lm5leHQocmVzLmJvZHkpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZSA9IHtcclxuICAgICAgICAgICAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxyXG4gICAgICAgICAgICAgICAgICByZXN1bHQ6IHJlcy5ib2R5LFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QuZXJyb3IocmVzLmJvZHkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZSA9IHtcclxuICAgICAgICAgICAgICAgIHN0YXR1czogJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAgIHJlc3VsdDogZXJyLFxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5lcnJvcihlcnIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2U/LnN0YXR1cykge1xyXG4gICAgICBpZiAodGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2U/LnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlLnJlc3VsdDtcclxuICAgICAgfVxyXG4gICAgICB0aHJvdyB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZS5yZXN1bHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xyXG4gIH07XHJcblxyXG4gIHBvc3RDYWNoZSA9IGFzeW5jIDxUID0gYW55PihcclxuICAgIHVybDogc3RyaW5nLFxyXG4gICAgYm9keT86IGFueSxcclxuICAgIG9wdGlvbnM/OiB7XHJcbiAgICAgIGNhY2hlVHlwZT86ICdkZWZhdWx0JyB8ICdzZXNzaW9uJyB8ICdsb2NhbCc7XHJcbiAgICAgIGNhY2hlSG91cnM/OiBudW1iZXI7XHJcbiAgICAgIGhlYWRlcnM/OiBIdHRwSGVhZGVycztcclxuICAgIH1cclxuICApOiBQcm9taXNlPFQ+ID0+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPVxyXG4gICAgICBvcHRpb25zPy5oZWFkZXJzIHx8XHJcbiAgICAgIHRoaXMudG9rZW5TZXJ2aWNlLmN1c3RvbUhlYWRlcnMoe1xyXG4gICAgICAgIHVybCxcclxuICAgICAgfSk7XHJcbiAgICBjb25zdCB7IGdldCwgc2V0LCBoYXMgfSA9IHRoaXMuY2FjaGVTZXJ2aWNlLmNyZWF0ZShcclxuICAgICAge1xyXG4gICAgICAgIHVybCxcclxuICAgICAgICBoZWFkZXJzLFxyXG4gICAgICAgIGJvZHksXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0eXBlOiBvcHRpb25zPy5jYWNoZVR5cGUsXHJcbiAgICAgICAgaG91cnM6IG9wdGlvbnM/LmNhY2hlSG91cnMsXHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICBpZiAoIWhhcygpKSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucG9zdCh1cmwsIGJvZHksIG9wdGlvbnM/LmhlYWRlcnMsIHtcclxuICAgICAgICB0aW1lb3V0OiA1MDAwLCAvLyA1c1xyXG4gICAgICB9KTtcclxuICAgICAgc2V0KHJlc3VsdCk7XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZ2V0KCk7XHJcbiAgfTtcclxuXHJcbiAgcHV0ID0gYXN5bmMgPFQgPSBhbnk+KHVybDogc3RyaW5nLCBib2R5PzogYW55LCBoZWFkZXJzPzogSHR0cEhlYWRlcnMpOiBQcm9taXNlPFQ+ID0+IHtcclxuICAgIGhlYWRlcnMgPVxyXG4gICAgICBoZWFkZXJzIHx8XHJcbiAgICAgIHRoaXMudG9rZW5TZXJ2aWNlLmN1c3RvbUhlYWRlcnMoe1xyXG4gICAgICAgIHVybCxcclxuICAgICAgfSk7XHJcbiAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHRoaXMuaHR0cENsaWVudFxyXG4gICAgICAgIC5wdXQoZW5jb2RlVVJJKHVybCksIGJvZHksIHtcclxuICAgICAgICAgIG9ic2VydmU6ICdyZXNwb25zZScsXHJcbiAgICAgICAgICBoZWFkZXJzLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnBpcGUodGltZW91dCh0aGlzLiN0aW1lb3V0KSlcclxuICAgICAgICAudG9Qcm9taXNlKClcclxuICAgICAgICAudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5vaykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHJlc3VsdC5ib2R5KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJlamVjdChyZXN1bHQuYm9keSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGh0dHBFcnJvclJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmVqZWN0KGh0dHBFcnJvclJlc3BvbnNlKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIHBhdGNoID0gYXN5bmMgPFQgPSBhbnk+KHVybDogc3RyaW5nLCBib2R5PzogYW55LCBoZWFkZXJzPzogSHR0cEhlYWRlcnMpOiBQcm9taXNlPFQ+ID0+IHtcclxuICAgIGhlYWRlcnMgPVxyXG4gICAgICBoZWFkZXJzIHx8XHJcbiAgICAgIHRoaXMudG9rZW5TZXJ2aWNlLmN1c3RvbUhlYWRlcnMoe1xyXG4gICAgICAgIHVybCxcclxuICAgICAgfSk7XHJcbiAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHRoaXMuaHR0cENsaWVudFxyXG4gICAgICAgIC5wYXRjaChlbmNvZGVVUkkodXJsKSwgYm9keSwge1xyXG4gICAgICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyxcclxuICAgICAgICAgIGhlYWRlcnMsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAucGlwZSh0aW1lb3V0KHRoaXMuI3RpbWVvdXQpKVxyXG4gICAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgICAgIC50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0Lm9rKSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUocmVzdWx0LmJvZHkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmVqZWN0KHJlc3VsdC5ib2R5KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoaHR0cEVycm9yUmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZWplY3QoaHR0cEVycm9yUmVzcG9uc2UpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfTtcclxuXHJcbiAgI2RlZmluZVBhcmFtcyA9IChyZXF1ZXN0OiBhbnkpID0+IHtcclxuICAgIGNvbnN0IHJxID0gW107XHJcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhyZXF1ZXN0KSkge1xyXG4gICAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gJycgJiYgdmFsdWU/LnRvU3RyaW5nKCkgIT09ICcnKSB7XHJcbiAgICAgICAgcnEucHVzaChgJHtlbmNvZGVVUklDb21wb25lbnQoa2V5IGFzIHN0cmluZyl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlIGFzIHN0cmluZyl9YCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBgPyR7cnE/LmpvaW4oJyYnKX1gO1xyXG4gIH07XHJcblxyXG4gIGdldFdpdGhQYXJhbXMgPSBhc3luYyA8VCA9IGFueT4oXHJcbiAgICB1cmw6IHN0cmluZyxcclxuICAgIHBhcmFtczogYW55LFxyXG4gICAgb3B0aW9ucz86IHtcclxuICAgICAgaGVhZGVycz86IEh0dHBIZWFkZXJzO1xyXG4gICAgICByZXNwb25zZVR5cGU/OiAnYXJyYXlidWZmZXInIHwgJ2Jsb2InIHwgJ2pzb24nIHwgJ3RleHQnO1xyXG4gICAgfVxyXG4gICk6IFByb21pc2U8VD4gPT4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0KGAke3VybH0ke3RoaXMuI2RlZmluZVBhcmFtcyhwYXJhbXMpfWAsIG9wdGlvbnM/LmhlYWRlcnMsIHsgLi4ub3B0aW9ucywgZW5jb2RlVVJJOiBmYWxzZSB9KTtcclxuICB9O1xyXG5cclxuICBnZXRDYWNoZVdpdGhQYXJhbXMgPSBhc3luYyA8VCA9IGFueT4oXHJcbiAgICB1cmw6IHN0cmluZyxcclxuICAgIHBhcmFtczogYW55LFxyXG4gICAgaGVhZGVycz86IEh0dHBIZWFkZXJzLFxyXG4gICAgb3B0aW9ucz86IHtcclxuICAgICAgcmVsb2FkPzogYm9vbGVhbjtcclxuICAgICAgY2FjaGVUeXBlPzogJ2RlZmF1bHQnIHwgJ3Nlc3Npb24nIHwgJ2xvY2FsJztcclxuICAgICAgY2FjaGVIb3Vycz86IG51bWJlcjtcclxuICAgICAgaGVhZGVycz86IEh0dHBIZWFkZXJzO1xyXG4gICAgfVxyXG4gICk6IFByb21pc2U8VD4gPT4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0Q2FjaGUoYCR7dXJsfSR7dGhpcy4jZGVmaW5lUGFyYW1zKHBhcmFtcyl9YCwgeyAuLi5vcHRpb25zLCBoZWFkZXJzLCBlbmNvZGVVUkk6IGZhbHNlIH0pO1xyXG4gIH07XHJcblxyXG4gIGdldCA9IGFzeW5jIDxUID0gYW55PihcclxuICAgIHVybDogc3RyaW5nLFxyXG4gICAgaGVhZGVycz86IEh0dHBIZWFkZXJzLFxyXG4gICAgb3B0aW9ucz86IHtcclxuICAgICAgcmVzcG9uc2VUeXBlPzogJ2FycmF5YnVmZmVyJyB8ICdibG9iJyB8ICdqc29uJyB8ICd0ZXh0JztcclxuICAgICAgZW5jb2RlVVJJPzogYm9vbGVhbjtcclxuICAgICAgdGltZW91dD86IG51bWJlcjtcclxuICAgIH1cclxuICApOiBQcm9taXNlPFQ+ID0+IHtcclxuICAgIGhlYWRlcnMgPVxyXG4gICAgICBoZWFkZXJzIHx8XHJcbiAgICAgIHRoaXMudG9rZW5TZXJ2aWNlLmN1c3RvbUhlYWRlcnMoe1xyXG4gICAgICAgIHVybCxcclxuICAgICAgfSk7XHJcbiAgICBjb25zdCBlbmNvZGVkVXJsID0gb3B0aW9ucz8uZW5jb2RlVVJJID09PSBmYWxzZSA/IHVybCA6IGVuY29kZVVSSSh1cmwpO1xyXG4gICAgLy8gY29uc3QgaGFzaEtleSA9IGhhc2goe1xyXG4gICAgLy8gICBlbmNvZGVkVXJsLFxyXG4gICAgLy8gICBoZWFkZXJzXHJcbiAgICAvLyB9KTtcclxuICAgIGNvbnN0IGhhc2hLZXkgPSBoYXNoKHtcclxuICAgICAgZW5jb2RlZFVybCxcclxuICAgICAgaGVhZGVycyxcclxuICAgIH0pO1xyXG4gICAgY29uc3QgYXBpVGltZW91dCA9IG9wdGlvbnM/LnRpbWVvdXQgfHwgdGhpcy4jdGltZW91dDtcclxuICAgIGlmICghdGhpcy4jY2FjaGVbaGFzaEtleV0gfHwgRGF0ZS5hZGRNaWxpc2Vjb25kcyh0aGlzLiNjYWNoZVtoYXNoS2V5XS5jcmVhdGVkRGF0ZSwgdGhpcy4jY2FjaGVEdXJhdGlvbikgPCBuZXcgRGF0ZSgpKSB7XHJcbiAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldID0ge1xyXG4gICAgICAgIGNyZWF0ZWREYXRlOiBuZXcgRGF0ZSgpLFxyXG4gICAgICAgIHN1YmplY3Q6IG5ldyBTdWJqZWN0KCksXHJcbiAgICAgIH07XHJcbiAgICAgIGlmIChvcHRpb25zPy5yZXNwb25zZVR5cGUgJiYgb3B0aW9ucy5yZXNwb25zZVR5cGUgIT09ICdqc29uJykge1xyXG4gICAgICAgIHRoaXMuaHR0cENsaWVudFxyXG4gICAgICAgICAgLmdldChlbmNvZGVkVXJsLCB7IG9ic2VydmU6ICdib2R5JywgaGVhZGVycywgcmVzcG9uc2VUeXBlOiBvcHRpb25zPy5yZXNwb25zZVR5cGUgYXMgYW55IH0pXHJcbiAgICAgICAgICAucGlwZSh0aW1lb3V0KGFwaVRpbWVvdXQpKVxyXG4gICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgcmVzID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZSA9IHtcclxuICAgICAgICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgICAgICAgICAgcmVzdWx0OiByZXMsXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5zdWJqZWN0Lm5leHQocmVzKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZSA9IHtcclxuICAgICAgICAgICAgICAgIHN0YXR1czogJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAgIHJlc3VsdDogZXJyLFxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5lcnJvcihlcnIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaHR0cENsaWVudFxyXG4gICAgICAgICAgLmdldChlbmNvZGVkVXJsLCB7IG9ic2VydmU6ICdyZXNwb25zZScsIGhlYWRlcnMgfSlcclxuICAgICAgICAgIC5waXBlKHRpbWVvdXQoYXBpVGltZW91dCkpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICByZXMgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXMub2spIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlID0ge1xyXG4gICAgICAgICAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcclxuICAgICAgICAgICAgICAgICAgcmVzdWx0OiByZXMuYm9keSxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5zdWJqZWN0Lm5leHQocmVzLmJvZHkpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZSA9IHtcclxuICAgICAgICAgICAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxyXG4gICAgICAgICAgICAgICAgICByZXN1bHQ6IHJlcy5ib2R5LFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIHRoaXMuI2NhY2hlW2hhc2hLZXldLnN1YmplY3QuZXJyb3IocmVzLmJvZHkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZSA9IHtcclxuICAgICAgICAgICAgICAgIHN0YXR1czogJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAgIHJlc3VsdDogZXJyLFxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5lcnJvcihlcnIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2U/LnN0YXR1cykge1xyXG4gICAgICBpZiAodGhpcy4jY2FjaGVbaGFzaEtleV0ucmVzcG9uc2U/LnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuI2NhY2hlW2hhc2hLZXldLnJlc3BvbnNlLnJlc3VsdDtcclxuICAgICAgfVxyXG4gICAgICB0aHJvdyB0aGlzLiNjYWNoZVtoYXNoS2V5XS5yZXNwb25zZS5yZXN1bHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy4jY2FjaGVbaGFzaEtleV0uc3ViamVjdC5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xyXG4gIH07XHJcblxyXG4gIGdldENhY2hlID0gYXN5bmMgPFQgPSBhbnk+KFxyXG4gICAgdXJsOiBzdHJpbmcsXHJcbiAgICBvcHRpb25zPzoge1xyXG4gICAgICByZWxvYWQ/OiBib29sZWFuO1xyXG4gICAgICBjYWNoZVR5cGU/OiAnZGVmYXVsdCcgfCAnc2Vzc2lvbicgfCAnbG9jYWwnO1xyXG4gICAgICBjYWNoZUhvdXJzPzogbnVtYmVyO1xyXG4gICAgICBoZWFkZXJzPzogSHR0cEhlYWRlcnM7XHJcbiAgICAgIGVuY29kZVVSST86IGJvb2xlYW47XHJcbiAgICB9XHJcbiAgKTogUHJvbWlzZTxUPiA9PiB7XHJcbiAgICBjb25zdCBoZWFkZXJzID1cclxuICAgICAgb3B0aW9ucz8uaGVhZGVycyB8fFxyXG4gICAgICB0aGlzLnRva2VuU2VydmljZS5jdXN0b21IZWFkZXJzKHtcclxuICAgICAgICB1cmwsXHJcbiAgICAgIH0pO1xyXG4gICAgY29uc3QgZW5jb2RlZFVybCA9IG9wdGlvbnM/LmVuY29kZVVSSSA9PT0gZmFsc2UgPyB1cmwgOiBlbmNvZGVVUkkodXJsKTtcclxuICAgIGNvbnN0IHsgZ2V0LCBzZXQsIGhhcyB9ID0gdGhpcy5jYWNoZVNlcnZpY2UuY3JlYXRlKFxyXG4gICAgICB7XHJcbiAgICAgICAgZW5jb2RlZFVybCxcclxuICAgICAgICBoZWFkZXJzLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdHlwZTogb3B0aW9ucz8uY2FjaGVUeXBlLFxyXG4gICAgICAgIGhvdXJzOiBvcHRpb25zPy5jYWNoZUhvdXJzLFxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgaWYgKCFoYXMoKSB8fCBvcHRpb25zPy5yZWxvYWQpIHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5nZXQoZW5jb2RlZFVybCwgb3B0aW9ucz8uaGVhZGVycywgeyBlbmNvZGVVUkk6IGZhbHNlLCB0aW1lb3V0OiA1MDAwIH0pO1xyXG4gICAgICBzZXQocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuICAgIHJldHVybiBnZXQoKTtcclxuICB9O1xyXG5cclxuICBkZWxldGUgPSBhc3luYyA8VCA9IGFueT4odXJsOiBzdHJpbmcsIGhlYWRlcnM/OiBIdHRwSGVhZGVycyk6IFByb21pc2U8VD4gPT4ge1xyXG4gICAgaGVhZGVycyA9XHJcbiAgICAgIGhlYWRlcnMgfHxcclxuICAgICAgdGhpcy50b2tlblNlcnZpY2UuY3VzdG9tSGVhZGVycyh7XHJcbiAgICAgICAgdXJsLFxyXG4gICAgICB9KTtcclxuICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZTxhbnk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdGhpcy5odHRwQ2xpZW50XHJcbiAgICAgICAgLmRlbGV0ZShlbmNvZGVVUkkodXJsKSwgeyBvYnNlcnZlOiAncmVzcG9uc2UnLCBoZWFkZXJzIH0pXHJcbiAgICAgICAgLnBpcGUodGltZW91dCh0aGlzLiN0aW1lb3V0KSlcclxuICAgICAgICAudG9Qcm9taXNlKClcclxuICAgICAgICAudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5vaykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHJlc3VsdC5ib2R5KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJlamVjdChyZXN1bHQuYm9keSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGh0dHBFcnJvclJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmVqZWN0KGh0dHBFcnJvclJlc3BvbnNlKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIHVwbG9hZFNpbmdsZSA9IChcclxuICAgIHVybDogc3RyaW5nLFxyXG4gICAgb3B0aW9uPzoge1xyXG4gICAgICBleHRlbnNpb25zPzogc3RyaW5nW107XHJcbiAgICAgIG1heFNpemVJbk1iPzogbnVtYmVyO1xyXG4gICAgICB2YWxpZGF0b3I/OiAoZmlsZU5hbWU6IHN0cmluZykgPT4gc3RyaW5nO1xyXG4gICAgfVxyXG4gICk6IFByb21pc2U8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gU2RVdGlsaXR5LnVwbG9hZChvcHRpb24pLnRoZW4oZmlsZSA9PiB0aGlzLnVwbG9hZCh1cmwsIGZpbGUpKTtcclxuICB9O1xyXG5cclxuICB1cGxvYWQgPSBhc3luYyAodXJsOiBzdHJpbmcsIGZpbGU6IEZpbGUpID0+IHtcclxuICAgIGNvbnN0IGxhc3REb3QgPSBmaWxlLm5hbWUubGFzdEluZGV4T2YoJy4nKTtcclxuICAgIGlmIChsYXN0RG90ID09PSAtMSkge1xyXG4gICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGUoYEludmFsaWQgZmlsZSBleHRlbnNpb25gKTtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlLCBmaWxlLm5hbWUpO1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucG9zdCh1cmwsIGZvcm1EYXRhKTtcclxuICB9O1xyXG59XHJcbiJdfQ==
@@ -143,6 +143,7 @@ class SdApiService {
143
143
  };
144
144
  this.post = (url, body, headers, options) => __awaiter(this, void 0, void 0, function* () {
145
145
  var _a, _b;
146
+ url = (options === null || options === void 0 ? void 0 : options.encodeURI) === false ? url : encodeURI(url);
146
147
  headers =
147
148
  headers ||
148
149
  this.tokenService.customHeaders({
@@ -164,7 +165,7 @@ class SdApiService {
164
165
  };
165
166
  if ((options === null || options === void 0 ? void 0 : options.responseType) && options.responseType !== 'json') {
166
167
  this.httpClient
167
- .post(encodeURI(url), body, {
168
+ .post(url, body, {
168
169
  observe: 'body',
169
170
  headers,
170
171
  responseType: options === null || options === void 0 ? void 0 : options.responseType,
@@ -186,7 +187,7 @@ class SdApiService {
186
187
  }
187
188
  else {
188
189
  this.httpClient
189
- .post(encodeURI(url), body, {
190
+ .post(url, body, {
190
191
  observe: 'response',
191
192
  headers,
192
193
  })
@@ -1 +1 @@
1
- {"version":3,"file":"sd-angular-core-api.js","sources":["../../../../projects/sd-core/api/src/lib/api.model.ts","../../../../projects/sd-core/api/src/lib/token.service.ts","../../../../projects/sd-core/api/src/lib/http.interceptor.ts","../../../../projects/sd-core/api/src/lib/api.module.ts","../../../../projects/sd-core/api/src/lib/api.service.ts","../../../../projects/sd-core/api/src/lib/http.service.ts","../../../../projects/sd-core/api/src/public-api.ts","../../../../projects/sd-core/api/sd-angular-core-api.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { HttpErrorResponse, HttpHeaders, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport hash from 'object-hash';\r\n\r\nexport interface IApiConfiguration {\r\n host?: string;\r\n tokenHeader?: string;\r\n customHeaders?: (args?: { url?: string }) => HttpHeaders;\r\n beforeRemote?: (request: HttpRequest<any>) => void | Promise<void>;\r\n afterRemote?: (response: HttpResponse<any> | HttpErrorResponse) => void | Promise<void>;\r\n translate?: (value: string) => string;\r\n}\r\n\r\nexport const API_CONFIG = new InjectionToken<IApiConfiguration>('api.configuration');\r\n\r\nexport const TOKEN = hash({\r\n origin: location.origin,\r\n key: 'ed4a2ffc-af43-41fb-9ac9-970f43d99571'\r\n});","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { IApiConfiguration, API_CONFIG, TOKEN } from './api.model';\r\nimport { SdCacheService } from '@sd-angular/core/cache';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdTokenService {\r\n\r\n get token() {\r\n const { get } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n return get();\r\n }\r\n\r\n set = (token: string) => {\r\n const { set } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n set(token);\r\n }\r\n\r\n clear = () => {\r\n const { remove } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n remove();\r\n }\r\n\r\n customHeaders = (args?: { url?: string }) => {\r\n return this.configuration?.customHeaders?.(args) || null;\r\n }\r\n\r\n constructor(\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private cacheService: SdCacheService) {\r\n }\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { from, Observable, of, throwError } from 'rxjs';\r\nimport { catchError, map, switchMap } from 'rxjs/operators';\r\nimport { API_CONFIG, IApiConfiguration } from './api.model';\r\nimport { SdTokenService } from './token.service';\r\n\r\n@Injectable()\r\nexport class SdHttpInterceptor implements HttpInterceptor {\r\n constructor(\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private tokenService: SdTokenService\r\n ) { }\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n if (this.configuration?.tokenHeader && this.tokenService.token) {\r\n request = request.clone({ headers: request.headers.set(this.configuration.tokenHeader, this.tokenService.token) });\r\n }\r\n\r\n if (!request.url.startsWith('http')) {\r\n request = request.clone({\r\n url: (this.configuration?.host || location.host) + request.url\r\n });\r\n }\r\n if (request.body instanceof FormData) {\r\n request = request.clone({\r\n headers: request.headers.delete('Content-Type')\r\n });\r\n }\r\n const beforeRemote = this.configuration?.beforeRemote?.(request);\r\n if (beforeRemote instanceof Promise) {\r\n return from(beforeRemote).pipe(\r\n switchMap(() => next.handle(request)),\r\n map((event: HttpEvent<any>) => {\r\n if (event instanceof HttpResponse) {\r\n this.configuration?.afterRemote?.(event);\r\n }\r\n return event;\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n this.configuration?.afterRemote?.(error);\r\n return throwError(error);\r\n }));\r\n }\r\n return next.handle(request).pipe(\r\n map((event: HttpEvent<any>) => {\r\n if (event instanceof HttpResponse) {\r\n this.configuration?.afterRemote?.(event);\r\n }\r\n return event;\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n this.configuration?.afterRemote?.(error);\r\n return throwError(error);\r\n }));\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { SdHttpInterceptor } from './http.interceptor';\r\n\r\n@NgModule({\r\n imports: [\r\n HttpClientModule,\r\n ],\r\n exports: [\r\n HttpClientModule\r\n ],\r\n providers: [\r\n { provide: HTTP_INTERCEPTORS, useClass: SdHttpInterceptor, multi: true }\r\n ],\r\n})\r\nexport class SdApiModule { }\r\n","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { take, timeout } from 'rxjs/operators';\r\nimport { IApiConfiguration, API_CONFIG } from './api.model';\r\nimport { SdCacheService } from '@sd-angular/core/cache';\r\nimport { SdTokenService } from './token.service';\r\nimport { Subject } from 'rxjs';\r\nimport hash from 'object-hash';\r\nimport * as uuid from 'uuid';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SdApiService {\r\n private uploadId = 'U118fefb1-3085-4641-8cb8-f7fe5c28f509';\r\n\r\n #timeout = 120000; // 120s\r\n\r\n #cacheDuration = 2000; // 2s\r\n #cache: {\r\n [key: string]: {\r\n createdDate: Date;\r\n subject: Subject<any>;\r\n response?: {\r\n status?: 'success' | 'error';\r\n result: any;\r\n };\r\n };\r\n } = {};\r\n\r\n private translate = (value: string): string => {\r\n return this.configuration?.translate(value) || value;\r\n };\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private cacheService: SdCacheService,\r\n private tokenService: SdTokenService\r\n ) {}\r\n\r\n get http() {\r\n return this.httpClient;\r\n }\r\n\r\n post = async <T = any>(\r\n url: string,\r\n body?: any,\r\n headers?: HttpHeaders,\r\n options?: {\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n timeout?: number;\r\n }\r\n ): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n let hashKey = uuid.v4();\r\n if (!(body instanceof FormData)) {\r\n hashKey = hash({\r\n url,\r\n headers,\r\n body,\r\n });\r\n }\r\n const apiTimeout = options?.timeout || this.#timeout;\r\n if (!this.#cache[hashKey] || Date.addMiliseconds(this.#cache[hashKey].createdDate, this.#cacheDuration) < new Date()) {\r\n this.#cache[hashKey] = {\r\n createdDate: new Date(),\r\n subject: new Subject(),\r\n };\r\n if (options?.responseType && options.responseType !== 'json') {\r\n this.httpClient\r\n .post(encodeURI(url), body, {\r\n observe: 'body',\r\n headers,\r\n responseType: options?.responseType as any,\r\n })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res,\r\n };\r\n this.#cache[hashKey].subject.next(res);\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n } else {\r\n this.httpClient\r\n .post(encodeURI(url), body, {\r\n observe: 'response',\r\n headers,\r\n })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n if (res.ok) {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.next(res.body);\r\n } else {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.error(res.body);\r\n }\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n }\r\n }\r\n if (this.#cache[hashKey].response?.status) {\r\n if (this.#cache[hashKey].response?.status === 'success') {\r\n return this.#cache[hashKey].response.result;\r\n }\r\n throw this.#cache[hashKey].response.result;\r\n }\r\n return this.#cache[hashKey].subject.pipe(take(1)).toPromise();\r\n };\r\n\r\n postCache = async <T = any>(\r\n url: string,\r\n body?: any,\r\n options?: {\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n }\r\n ): Promise<T> => {\r\n const headers =\r\n options?.headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n const { get, set, has } = this.cacheService.create(\r\n {\r\n url,\r\n headers,\r\n body,\r\n },\r\n {\r\n type: options?.cacheType,\r\n hours: options?.cacheHours,\r\n }\r\n );\r\n if (!has()) {\r\n const result = await this.post(url, body, options?.headers, {\r\n timeout: 5000, // 5s\r\n });\r\n set(result);\r\n return result;\r\n }\r\n return get();\r\n };\r\n\r\n put = async <T = any>(url: string, body?: any, headers?: HttpHeaders): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n return await new Promise<any>((resolve, reject) => {\r\n this.httpClient\r\n .put(encodeURI(url), body, {\r\n observe: 'response',\r\n headers,\r\n })\r\n .pipe(timeout(this.#timeout))\r\n .toPromise()\r\n .then(result => {\r\n if (result.ok) {\r\n resolve(result.body);\r\n } else {\r\n reject(result.body);\r\n }\r\n })\r\n .catch((httpErrorResponse: HttpErrorResponse) => {\r\n reject(httpErrorResponse);\r\n });\r\n });\r\n };\r\n\r\n patch = async <T = any>(url: string, body?: any, headers?: HttpHeaders): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n return await new Promise<any>((resolve, reject) => {\r\n this.httpClient\r\n .patch(encodeURI(url), body, {\r\n observe: 'response',\r\n headers,\r\n })\r\n .pipe(timeout(this.#timeout))\r\n .toPromise()\r\n .then(result => {\r\n if (result.ok) {\r\n resolve(result.body);\r\n } else {\r\n reject(result.body);\r\n }\r\n })\r\n .catch((httpErrorResponse: HttpErrorResponse) => {\r\n reject(httpErrorResponse);\r\n });\r\n });\r\n };\r\n\r\n #defineParams = (request: any) => {\r\n const rq = [];\r\n for (const [key, value] of Object.entries(request)) {\r\n if (value !== null && value !== undefined && value !== '' && value?.toString() !== '') {\r\n rq.push(`${encodeURIComponent(key as string)}=${encodeURIComponent(value as string)}`);\r\n }\r\n }\r\n return `?${rq?.join('&')}`;\r\n };\r\n\r\n getWithParams = async <T = any>(\r\n url: string,\r\n params: any,\r\n options?: {\r\n headers?: HttpHeaders;\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n }\r\n ): Promise<T> => {\r\n return await this.get(`${url}${this.#defineParams(params)}`, options?.headers, { ...options, encodeURI: false });\r\n };\r\n\r\n getCacheWithParams = async <T = any>(\r\n url: string,\r\n params: any,\r\n headers?: HttpHeaders,\r\n options?: {\r\n reload?: boolean;\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n }\r\n ): Promise<T> => {\r\n return await this.getCache(`${url}${this.#defineParams(params)}`, { ...options, headers, encodeURI: false });\r\n };\r\n\r\n get = async <T = any>(\r\n url: string,\r\n headers?: HttpHeaders,\r\n options?: {\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n encodeURI?: boolean;\r\n timeout?: number;\r\n }\r\n ): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n const encodedUrl = options?.encodeURI === false ? url : encodeURI(url);\r\n // const hashKey = hash({\r\n // encodedUrl,\r\n // headers\r\n // });\r\n const hashKey = hash({\r\n encodedUrl,\r\n headers,\r\n });\r\n const apiTimeout = options?.timeout || this.#timeout;\r\n if (!this.#cache[hashKey] || Date.addMiliseconds(this.#cache[hashKey].createdDate, this.#cacheDuration) < new Date()) {\r\n this.#cache[hashKey] = {\r\n createdDate: new Date(),\r\n subject: new Subject(),\r\n };\r\n if (options?.responseType && options.responseType !== 'json') {\r\n this.httpClient\r\n .get(encodedUrl, { observe: 'body', headers, responseType: options?.responseType as any })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res,\r\n };\r\n this.#cache[hashKey].subject.next(res);\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n } else {\r\n this.httpClient\r\n .get(encodedUrl, { observe: 'response', headers })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n if (res.ok) {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.next(res.body);\r\n } else {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.error(res.body);\r\n }\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n }\r\n }\r\n if (this.#cache[hashKey].response?.status) {\r\n if (this.#cache[hashKey].response?.status === 'success') {\r\n return this.#cache[hashKey].response.result;\r\n }\r\n throw this.#cache[hashKey].response.result;\r\n }\r\n return this.#cache[hashKey].subject.pipe(take(1)).toPromise();\r\n };\r\n\r\n getCache = async <T = any>(\r\n url: string,\r\n options?: {\r\n reload?: boolean;\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n encodeURI?: boolean;\r\n }\r\n ): Promise<T> => {\r\n const headers =\r\n options?.headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n const encodedUrl = options?.encodeURI === false ? url : encodeURI(url);\r\n const { get, set, has } = this.cacheService.create(\r\n {\r\n encodedUrl,\r\n headers,\r\n },\r\n {\r\n type: options?.cacheType,\r\n hours: options?.cacheHours,\r\n }\r\n );\r\n if (!has() || options?.reload) {\r\n const result = await this.get(encodedUrl, options?.headers, { encodeURI: false, timeout: 5000 });\r\n set(result);\r\n return result;\r\n }\r\n return get();\r\n };\r\n\r\n delete = async <T = any>(url: string, headers?: HttpHeaders): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n return await new Promise<any>((resolve, reject) => {\r\n this.httpClient\r\n .delete(encodeURI(url), { observe: 'response', headers })\r\n .pipe(timeout(this.#timeout))\r\n .toPromise()\r\n .then(result => {\r\n if (result.ok) {\r\n resolve(result.body);\r\n } else {\r\n reject(result.body);\r\n }\r\n })\r\n .catch((httpErrorResponse: HttpErrorResponse) => {\r\n reject(httpErrorResponse);\r\n });\r\n });\r\n };\r\n\r\n uploadSingle = (\r\n url: string,\r\n option?: {\r\n extensions?: string[];\r\n maxSizeInMb?: number;\r\n validator?: (fileName: string) => string;\r\n }\r\n ): Promise<any> => {\r\n return SdUtility.upload(option).then(file => this.upload(url, file));\r\n };\r\n\r\n upload = async (url: string, file: File) => {\r\n const lastDot = file.name.lastIndexOf('.');\r\n if (lastDot === -1) {\r\n const message = this.translate(`Invalid file extension`);\r\n throw new Error(message);\r\n }\r\n const formData: FormData = new FormData();\r\n formData.append('file', file, file.name);\r\n return await this.post(url, formData);\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { SdTokenService } from './token.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdHttpService {\r\n constructor(\r\n private httpClient: HttpClient,\r\n private tokenService: SdTokenService) {\r\n }\r\n\r\n get =<T = any>(url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.get<T>(url, option);\r\n }\r\n\r\n post = <T = any>(url: string, body?: any, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.post<T>(url, body, option);\r\n }\r\n\r\n put = <T = any>(url: string, body?: any, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.put<T>(url, body, option);\r\n }\r\n\r\n delete = <T = any>(url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.delete<T>(url, option);\r\n }\r\n\r\n request = <T = any>(method: string, url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.request<T>(method, url, option);\r\n }\r\n}\r\n\r\ninterface ObservableOption {\r\n body?: any;\r\n headers?: HttpHeaders | {\r\n [header: string]: string | string[];\r\n };\r\n observe?: 'body';\r\n params?: HttpParams | {\r\n [param: string]: string | string[];\r\n };\r\n reportProgress?: boolean;\r\n responseType?: 'json';\r\n withCredentials?: boolean;\r\n}","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/api.module';\r\nexport * from './lib/token.service';\r\nexport * from './lib/api.model';\r\nexport * from './lib/api.service';\r\nexport * from './lib/http.service';\r\nexport * from './lib/http.interceptor';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["uuid.v4"],"mappings":"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"}
1
+ {"version":3,"file":"sd-angular-core-api.js","sources":["../../../../projects/sd-core/api/src/lib/api.model.ts","../../../../projects/sd-core/api/src/lib/token.service.ts","../../../../projects/sd-core/api/src/lib/http.interceptor.ts","../../../../projects/sd-core/api/src/lib/api.module.ts","../../../../projects/sd-core/api/src/lib/api.service.ts","../../../../projects/sd-core/api/src/lib/http.service.ts","../../../../projects/sd-core/api/src/public-api.ts","../../../../projects/sd-core/api/sd-angular-core-api.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { HttpErrorResponse, HttpHeaders, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport hash from 'object-hash';\r\n\r\nexport interface IApiConfiguration {\r\n host?: string;\r\n tokenHeader?: string;\r\n customHeaders?: (args?: { url?: string }) => HttpHeaders;\r\n beforeRemote?: (request: HttpRequest<any>) => void | Promise<void>;\r\n afterRemote?: (response: HttpResponse<any> | HttpErrorResponse) => void | Promise<void>;\r\n translate?: (value: string) => string;\r\n}\r\n\r\nexport const API_CONFIG = new InjectionToken<IApiConfiguration>('api.configuration');\r\n\r\nexport const TOKEN = hash({\r\n origin: location.origin,\r\n key: 'ed4a2ffc-af43-41fb-9ac9-970f43d99571'\r\n});","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { IApiConfiguration, API_CONFIG, TOKEN } from './api.model';\r\nimport { SdCacheService } from '@sd-angular/core/cache';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdTokenService {\r\n\r\n get token() {\r\n const { get } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n return get();\r\n }\r\n\r\n set = (token: string) => {\r\n const { set } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n set(token);\r\n }\r\n\r\n clear = () => {\r\n const { remove } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n remove();\r\n }\r\n\r\n customHeaders = (args?: { url?: string }) => {\r\n return this.configuration?.customHeaders?.(args) || null;\r\n }\r\n\r\n constructor(\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private cacheService: SdCacheService) {\r\n }\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { from, Observable, of, throwError } from 'rxjs';\r\nimport { catchError, map, switchMap } from 'rxjs/operators';\r\nimport { API_CONFIG, IApiConfiguration } from './api.model';\r\nimport { SdTokenService } from './token.service';\r\n\r\n@Injectable()\r\nexport class SdHttpInterceptor implements HttpInterceptor {\r\n constructor(\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private tokenService: SdTokenService\r\n ) { }\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n if (this.configuration?.tokenHeader && this.tokenService.token) {\r\n request = request.clone({ headers: request.headers.set(this.configuration.tokenHeader, this.tokenService.token) });\r\n }\r\n\r\n if (!request.url.startsWith('http')) {\r\n request = request.clone({\r\n url: (this.configuration?.host || location.host) + request.url\r\n });\r\n }\r\n if (request.body instanceof FormData) {\r\n request = request.clone({\r\n headers: request.headers.delete('Content-Type')\r\n });\r\n }\r\n const beforeRemote = this.configuration?.beforeRemote?.(request);\r\n if (beforeRemote instanceof Promise) {\r\n return from(beforeRemote).pipe(\r\n switchMap(() => next.handle(request)),\r\n map((event: HttpEvent<any>) => {\r\n if (event instanceof HttpResponse) {\r\n this.configuration?.afterRemote?.(event);\r\n }\r\n return event;\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n this.configuration?.afterRemote?.(error);\r\n return throwError(error);\r\n }));\r\n }\r\n return next.handle(request).pipe(\r\n map((event: HttpEvent<any>) => {\r\n if (event instanceof HttpResponse) {\r\n this.configuration?.afterRemote?.(event);\r\n }\r\n return event;\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n this.configuration?.afterRemote?.(error);\r\n return throwError(error);\r\n }));\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { SdHttpInterceptor } from './http.interceptor';\r\n\r\n@NgModule({\r\n imports: [\r\n HttpClientModule,\r\n ],\r\n exports: [\r\n HttpClientModule\r\n ],\r\n providers: [\r\n { provide: HTTP_INTERCEPTORS, useClass: SdHttpInterceptor, multi: true }\r\n ],\r\n})\r\nexport class SdApiModule { }\r\n","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { take, timeout } from 'rxjs/operators';\r\nimport { IApiConfiguration, API_CONFIG } from './api.model';\r\nimport { SdCacheService } from '@sd-angular/core/cache';\r\nimport { SdTokenService } from './token.service';\r\nimport { Subject } from 'rxjs';\r\nimport hash from 'object-hash';\r\nimport * as uuid from 'uuid';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SdApiService {\r\n private uploadId = 'U118fefb1-3085-4641-8cb8-f7fe5c28f509';\r\n\r\n #timeout = 120000; // 120s\r\n\r\n #cacheDuration = 2000; // 2s\r\n #cache: {\r\n [key: string]: {\r\n createdDate: Date;\r\n subject: Subject<any>;\r\n response?: {\r\n status?: 'success' | 'error';\r\n result: any;\r\n };\r\n };\r\n } = {};\r\n\r\n private translate = (value: string): string => {\r\n return this.configuration?.translate(value) || value;\r\n };\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private cacheService: SdCacheService,\r\n private tokenService: SdTokenService\r\n ) {}\r\n\r\n get http() {\r\n return this.httpClient;\r\n }\r\n\r\n post = async <T = any>(\r\n url: string,\r\n body?: any,\r\n headers?: HttpHeaders,\r\n options?: {\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n encodeURI?: boolean;\r\n timeout?: number;\r\n }\r\n ): Promise<T> => {\r\n url = options?.encodeURI === false ? url : encodeURI(url);\r\n\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n let hashKey = uuid.v4();\r\n if (!(body instanceof FormData)) {\r\n hashKey = hash({\r\n url,\r\n headers,\r\n body,\r\n });\r\n }\r\n const apiTimeout = options?.timeout || this.#timeout;\r\n if (!this.#cache[hashKey] || Date.addMiliseconds(this.#cache[hashKey].createdDate, this.#cacheDuration) < new Date()) {\r\n this.#cache[hashKey] = {\r\n createdDate: new Date(),\r\n subject: new Subject(),\r\n };\r\n if (options?.responseType && options.responseType !== 'json') {\r\n this.httpClient\r\n .post(url, body, {\r\n observe: 'body',\r\n headers,\r\n responseType: options?.responseType as any,\r\n })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res,\r\n };\r\n this.#cache[hashKey].subject.next(res);\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n } else {\r\n this.httpClient\r\n .post(url, body, {\r\n observe: 'response',\r\n headers,\r\n })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n if (res.ok) {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.next(res.body);\r\n } else {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.error(res.body);\r\n }\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n }\r\n }\r\n if (this.#cache[hashKey].response?.status) {\r\n if (this.#cache[hashKey].response?.status === 'success') {\r\n return this.#cache[hashKey].response.result;\r\n }\r\n throw this.#cache[hashKey].response.result;\r\n }\r\n return this.#cache[hashKey].subject.pipe(take(1)).toPromise();\r\n };\r\n\r\n postCache = async <T = any>(\r\n url: string,\r\n body?: any,\r\n options?: {\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n }\r\n ): Promise<T> => {\r\n const headers =\r\n options?.headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n const { get, set, has } = this.cacheService.create(\r\n {\r\n url,\r\n headers,\r\n body,\r\n },\r\n {\r\n type: options?.cacheType,\r\n hours: options?.cacheHours,\r\n }\r\n );\r\n if (!has()) {\r\n const result = await this.post(url, body, options?.headers, {\r\n timeout: 5000, // 5s\r\n });\r\n set(result);\r\n return result;\r\n }\r\n return get();\r\n };\r\n\r\n put = async <T = any>(url: string, body?: any, headers?: HttpHeaders): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n return await new Promise<any>((resolve, reject) => {\r\n this.httpClient\r\n .put(encodeURI(url), body, {\r\n observe: 'response',\r\n headers,\r\n })\r\n .pipe(timeout(this.#timeout))\r\n .toPromise()\r\n .then(result => {\r\n if (result.ok) {\r\n resolve(result.body);\r\n } else {\r\n reject(result.body);\r\n }\r\n })\r\n .catch((httpErrorResponse: HttpErrorResponse) => {\r\n reject(httpErrorResponse);\r\n });\r\n });\r\n };\r\n\r\n patch = async <T = any>(url: string, body?: any, headers?: HttpHeaders): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n return await new Promise<any>((resolve, reject) => {\r\n this.httpClient\r\n .patch(encodeURI(url), body, {\r\n observe: 'response',\r\n headers,\r\n })\r\n .pipe(timeout(this.#timeout))\r\n .toPromise()\r\n .then(result => {\r\n if (result.ok) {\r\n resolve(result.body);\r\n } else {\r\n reject(result.body);\r\n }\r\n })\r\n .catch((httpErrorResponse: HttpErrorResponse) => {\r\n reject(httpErrorResponse);\r\n });\r\n });\r\n };\r\n\r\n #defineParams = (request: any) => {\r\n const rq = [];\r\n for (const [key, value] of Object.entries(request)) {\r\n if (value !== null && value !== undefined && value !== '' && value?.toString() !== '') {\r\n rq.push(`${encodeURIComponent(key as string)}=${encodeURIComponent(value as string)}`);\r\n }\r\n }\r\n return `?${rq?.join('&')}`;\r\n };\r\n\r\n getWithParams = async <T = any>(\r\n url: string,\r\n params: any,\r\n options?: {\r\n headers?: HttpHeaders;\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n }\r\n ): Promise<T> => {\r\n return await this.get(`${url}${this.#defineParams(params)}`, options?.headers, { ...options, encodeURI: false });\r\n };\r\n\r\n getCacheWithParams = async <T = any>(\r\n url: string,\r\n params: any,\r\n headers?: HttpHeaders,\r\n options?: {\r\n reload?: boolean;\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n }\r\n ): Promise<T> => {\r\n return await this.getCache(`${url}${this.#defineParams(params)}`, { ...options, headers, encodeURI: false });\r\n };\r\n\r\n get = async <T = any>(\r\n url: string,\r\n headers?: HttpHeaders,\r\n options?: {\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n encodeURI?: boolean;\r\n timeout?: number;\r\n }\r\n ): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n const encodedUrl = options?.encodeURI === false ? url : encodeURI(url);\r\n // const hashKey = hash({\r\n // encodedUrl,\r\n // headers\r\n // });\r\n const hashKey = hash({\r\n encodedUrl,\r\n headers,\r\n });\r\n const apiTimeout = options?.timeout || this.#timeout;\r\n if (!this.#cache[hashKey] || Date.addMiliseconds(this.#cache[hashKey].createdDate, this.#cacheDuration) < new Date()) {\r\n this.#cache[hashKey] = {\r\n createdDate: new Date(),\r\n subject: new Subject(),\r\n };\r\n if (options?.responseType && options.responseType !== 'json') {\r\n this.httpClient\r\n .get(encodedUrl, { observe: 'body', headers, responseType: options?.responseType as any })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res,\r\n };\r\n this.#cache[hashKey].subject.next(res);\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n } else {\r\n this.httpClient\r\n .get(encodedUrl, { observe: 'response', headers })\r\n .pipe(timeout(apiTimeout))\r\n .subscribe(\r\n res => {\r\n if (res.ok) {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.next(res.body);\r\n } else {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: res.body,\r\n };\r\n this.#cache[hashKey].subject.error(res.body);\r\n }\r\n },\r\n err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err,\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n }\r\n );\r\n }\r\n }\r\n if (this.#cache[hashKey].response?.status) {\r\n if (this.#cache[hashKey].response?.status === 'success') {\r\n return this.#cache[hashKey].response.result;\r\n }\r\n throw this.#cache[hashKey].response.result;\r\n }\r\n return this.#cache[hashKey].subject.pipe(take(1)).toPromise();\r\n };\r\n\r\n getCache = async <T = any>(\r\n url: string,\r\n options?: {\r\n reload?: boolean;\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n encodeURI?: boolean;\r\n }\r\n ): Promise<T> => {\r\n const headers =\r\n options?.headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n const encodedUrl = options?.encodeURI === false ? url : encodeURI(url);\r\n const { get, set, has } = this.cacheService.create(\r\n {\r\n encodedUrl,\r\n headers,\r\n },\r\n {\r\n type: options?.cacheType,\r\n hours: options?.cacheHours,\r\n }\r\n );\r\n if (!has() || options?.reload) {\r\n const result = await this.get(encodedUrl, options?.headers, { encodeURI: false, timeout: 5000 });\r\n set(result);\r\n return result;\r\n }\r\n return get();\r\n };\r\n\r\n delete = async <T = any>(url: string, headers?: HttpHeaders): Promise<T> => {\r\n headers =\r\n headers ||\r\n this.tokenService.customHeaders({\r\n url,\r\n });\r\n return await new Promise<any>((resolve, reject) => {\r\n this.httpClient\r\n .delete(encodeURI(url), { observe: 'response', headers })\r\n .pipe(timeout(this.#timeout))\r\n .toPromise()\r\n .then(result => {\r\n if (result.ok) {\r\n resolve(result.body);\r\n } else {\r\n reject(result.body);\r\n }\r\n })\r\n .catch((httpErrorResponse: HttpErrorResponse) => {\r\n reject(httpErrorResponse);\r\n });\r\n });\r\n };\r\n\r\n uploadSingle = (\r\n url: string,\r\n option?: {\r\n extensions?: string[];\r\n maxSizeInMb?: number;\r\n validator?: (fileName: string) => string;\r\n }\r\n ): Promise<any> => {\r\n return SdUtility.upload(option).then(file => this.upload(url, file));\r\n };\r\n\r\n upload = async (url: string, file: File) => {\r\n const lastDot = file.name.lastIndexOf('.');\r\n if (lastDot === -1) {\r\n const message = this.translate(`Invalid file extension`);\r\n throw new Error(message);\r\n }\r\n const formData: FormData = new FormData();\r\n formData.append('file', file, file.name);\r\n return await this.post(url, formData);\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { SdTokenService } from './token.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdHttpService {\r\n constructor(\r\n private httpClient: HttpClient,\r\n private tokenService: SdTokenService) {\r\n }\r\n\r\n get =<T = any>(url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.get<T>(url, option);\r\n }\r\n\r\n post = <T = any>(url: string, body?: any, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.post<T>(url, body, option);\r\n }\r\n\r\n put = <T = any>(url: string, body?: any, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.put<T>(url, body, option);\r\n }\r\n\r\n delete = <T = any>(url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.delete<T>(url, option);\r\n }\r\n\r\n request = <T = any>(method: string, url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders({\r\n url\r\n })\r\n }\r\n return this.httpClient.request<T>(method, url, option);\r\n }\r\n}\r\n\r\ninterface ObservableOption {\r\n body?: any;\r\n headers?: HttpHeaders | {\r\n [header: string]: string | string[];\r\n };\r\n observe?: 'body';\r\n params?: HttpParams | {\r\n [param: string]: string | string[];\r\n };\r\n reportProgress?: boolean;\r\n responseType?: 'json';\r\n withCredentials?: boolean;\r\n}","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/api.module';\r\nexport * from './lib/token.service';\r\nexport * from './lib/api.model';\r\nexport * from './lib/api.service';\r\nexport * from './lib/http.service';\r\nexport * from './lib/http.interceptor';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["uuid.v4"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sd-angular/core",
3
- "version": "1.3.251",
3
+ "version": "1.3.252",
4
4
  "homepage": "https://www.facebook.com/DarkP3ter",
5
5
  "author": {
6
6
  "name": "darkpeter",
index 5a74d8a..1f2183e 100644
Binary file