http-request-manager 18.1.1 → 19.0.0
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.
- package/esm2022/lib/http-request-manager.module.mjs +8 -5
- package/esm2022/lib/http-request-services-demo/database-data-demo/database-data-demo.component.mjs +3 -3
- package/esm2022/lib/http-request-services-demo/http-request-services-demo.component.mjs +12 -11
- package/esm2022/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.mjs +3 -3
- package/esm2022/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.mjs +5 -5
- package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.mjs +3 -3
- package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.mjs +4 -4
- package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.mjs +3 -3
- package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.mjs +3 -3
- package/esm2022/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.mjs +3 -3
- package/esm2022/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.mjs +4 -4
- package/esm2022/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.mjs +3 -3
- package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.mjs +9 -0
- package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.mjs +12 -0
- package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.mjs +14 -0
- package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.mjs +336 -0
- package/esm2022/lib/interceptors/credentials.interceptor.mjs +3 -3
- package/esm2022/lib/interceptors/proxy-debugger.interceptor.mjs +3 -3
- package/esm2022/lib/interceptors/request-error.interceptor.mjs +3 -3
- package/esm2022/lib/interceptors/request-header.interceptor.mjs +3 -3
- package/esm2022/lib/services/database-manager-services/database.manager.service.mjs +6 -6
- package/esm2022/lib/services/database-manager-services/db.storage.service.mjs +8 -8
- package/esm2022/lib/services/local-storage-manager-service/local-storage-manager.service.mjs +3 -3
- package/esm2022/lib/services/local-storage-manager-service/local-storage-signals-manager.service.mjs +3 -3
- package/esm2022/lib/services/request-manager-services/http-manager-signals.service.mjs +199 -0
- package/esm2022/lib/services/request-manager-services/http-manager.service.mjs +3 -3
- package/esm2022/lib/services/request-manager-services/index.mjs +2 -1
- package/esm2022/lib/services/request-manager-services/request-signals.service.mjs +170 -0
- package/esm2022/lib/services/request-manager-services/request.service.mjs +7 -5
- package/esm2022/lib/services/request-manager-state-service/http-manager-state.store.mjs +100 -7
- package/esm2022/lib/services/request-manager-state-service/models/api-request.model.mjs +4 -3
- package/esm2022/lib/services/request-manager-state-service/models/ws-options.model.mjs +12 -0
- package/esm2022/lib/services/utils/app.service.mjs +3 -3
- package/esm2022/lib/services/utils/encryption/asymmetrical-encryption.service.mjs +3 -3
- package/esm2022/lib/services/utils/encryption/encryption-test.service.mjs +3 -3
- package/esm2022/lib/services/utils/encryption/symmetrical-encryption.service.mjs +3 -3
- package/esm2022/lib/services/utils/headers.service.mjs +3 -3
- package/esm2022/lib/services/utils/object-merger.service.mjs +3 -3
- package/esm2022/lib/services/utils/path-query.service.mjs +3 -3
- package/esm2022/lib/services/utils/utils.service.mjs +3 -3
- package/esm2022/lib/services/ws-manager-service/models/assortment-data.model.mjs +10 -0
- package/esm2022/lib/services/ws-manager-service/websocket.service.mjs +133 -0
- package/fesm2022/http-request-manager.mjs +1147 -221
- package/fesm2022/http-request-manager.mjs.map +1 -1
- package/http-request-manager-19.0.0.tgz +0 -0
- package/lib/http-request-manager.module.d.ts +24 -23
- package/lib/http-request-services-demo/http-request-services-demo.component.d.ts +8 -0
- package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.d.ts +8 -0
- package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.d.ts +14 -0
- package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.d.ts +14 -0
- package/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.d.ts +106 -0
- package/lib/services/database-manager-services/database.manager.service.d.ts +1 -1
- package/lib/services/database-manager-services/db.storage.service.d.ts +2 -2
- package/lib/services/request-manager-services/http-manager-signals.service.d.ts +38 -0
- package/lib/services/request-manager-services/index.d.ts +1 -0
- package/lib/services/request-manager-services/request-signals.service.d.ts +26 -0
- package/lib/services/request-manager-services/request.service.d.ts +2 -1
- package/lib/services/request-manager-state-service/http-manager-state.store.d.ts +21 -8
- package/lib/services/request-manager-state-service/models/api-request.model.d.ts +4 -1
- package/lib/services/request-manager-state-service/models/ws-options.model.d.ts +14 -0
- package/lib/services/ws-manager-service/models/assortment-data.model.d.ts +10 -0
- package/lib/services/ws-manager-service/websocket.service.d.ts +21 -0
- package/package.json +1 -1
- package/http-request-manager-18.1.1.tgz +0 -0
|
@@ -9,7 +9,7 @@ export class DatabaseManagerService extends DbService {
|
|
|
9
9
|
this.createNewDatabase();
|
|
10
10
|
}
|
|
11
11
|
getDatabaseTables() {
|
|
12
|
-
return from(this.DBOpened()).pipe(map(() => this.db.tables.map(item => item.name)));
|
|
12
|
+
return from(this.DBOpened()).pipe(map(() => this.db.tables.map((item) => item.name)));
|
|
13
13
|
}
|
|
14
14
|
hasDatabaseTable(table) {
|
|
15
15
|
return from(this.DBOpened()).pipe(map(() => {
|
|
@@ -20,7 +20,7 @@ export class DatabaseManagerService extends DbService {
|
|
|
20
20
|
return from(this.DBOpened()).pipe(map((res) => {
|
|
21
21
|
this.hasDatabase().then((res) => {
|
|
22
22
|
const tables = this.db.tables;
|
|
23
|
-
const found = tables.find(item => item.name === this.clean(table)) || null;
|
|
23
|
+
const found = tables.find((item) => item.name === this.clean(table)) || null;
|
|
24
24
|
if (!found) {
|
|
25
25
|
console.warn('No Such Table:', this.clean(table));
|
|
26
26
|
return;
|
|
@@ -107,13 +107,13 @@ export class DatabaseManagerService extends DbService {
|
|
|
107
107
|
.trim(); // Trim leading or trailing spaces
|
|
108
108
|
return cleanStr;
|
|
109
109
|
}
|
|
110
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
111
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
110
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DatabaseManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
111
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DatabaseManagerService, providedIn: 'root' }); }
|
|
112
112
|
}
|
|
113
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
113
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DatabaseManagerService, decorators: [{
|
|
114
114
|
type: Injectable,
|
|
115
115
|
args: [{
|
|
116
116
|
providedIn: 'root'
|
|
117
117
|
}]
|
|
118
118
|
}], ctorParameters: () => [] });
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UubWFuYWdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy9kYXRhYmFzZS1tYW5hZ2VyLXNlcnZpY2VzL2RhdGFiYXNlLm1hbmFnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdqRCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLMUQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFNBQVM7SUFFbkQ7UUFDRSxLQUFLLEVBQUUsQ0FBQTtRQUNQLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO0lBQzFCLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQy9CLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDakQsQ0FBQTtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFhO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDL0IsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7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LENBQUMsQ0FBeUIsa0NBQWtDO1FBRXJFLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7K0dBcExVLHNCQUFzQjttSEFBdEIsc0JBQXNCLGNBRnJCLE1BQU07OzRGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYlNlcnZpY2UgfSBmcm9tICcuL2RiLnN0b3JhZ2Uuc2VydmljZSc7XG5cbmltcG9ydCB7IFRhYmxlU2NoZW1hRGVmIH0gZnJvbSAnLi9tb2RlbHMvdGFibGUtc2NoZW1hJztcbmltcG9ydCB7IEVNUFRZLCBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIG1lcmdlTWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERhdGFiYXNlTWFuYWdlclNlcnZpY2UgZXh0ZW5kcyBEYlNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyBcbiAgICBzdXBlcigpXG4gICAgdGhpcy5jcmVhdGVOZXdEYXRhYmFzZSgpXG4gIH1cblxuICBnZXREYXRhYmFzZVRhYmxlcygpIHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLkRCT3BlbmVkKCkpLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gdGhpcy5kYi50YWJsZXMubWFwKGl0ZW0gPT4gaXRlbS5uYW1lKSlcbiAgICApXG4gIH1cblxuICBoYXNEYXRhYmFzZVRhYmxlKHRhYmxlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLkRCT3BlbmVkKCkpLnBpcGUoXG4gICAgICBtYXAoKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy50YWJsZUV4aXN0cyh0aGlzLmNsZWFuKHRhYmxlKSlcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZ2V0RGF0YWJhc2VUYWJsZSh0YWJsZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLkRCT3BlbmVkKCkpLnBpcGUoXG4gICAgICBtYXAoKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmhhc0RhdGFiYXNlKCkudGhlbigocmVzKSA9PiB7XG5cbiAgICAgICAgICBjb25zdCB0YWJsZXMgPSB0aGlzLmRiLnRhYmxlc1xuICAgICAgICAgIGNvbnN0IGZvdW5kID0gdGFibGVzLmZpbmQoaXRlbSA9PiBpdGVtLm5hbWUgPT09IHRoaXMuY2xlYW4odGFibGUpKSB8fCBudWxsXG5cbiAgICAgICAgICBpZighZm91bmQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignTm8gU3VjaCBUYWJsZTonLCB0aGlzLmNsZWFuKHRhYmxlKSlcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH0gZWxzZSB7IFxuICAgICAgICAgICAgcmV0dXJuIGZvdW5kXG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXREYXRhYmFzZVRhYmxlU2NoZW1hKHRhYmxlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG5cbiAgICByZXR1cm4gZnJvbSh0aGlzLkRCT3BlbmVkKCkpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgocmVzKSA9PiB0aGlzLmdldERhdGFiYXNlVGFibGUodGFibGUpKSxcbiAgICAgIG1hcCgoZGJUYWJsZTogYW55KSA9PiB7XG4gICAgICAgIGlmKCFkYlRhYmxlKSByZXR1cm4gW11cbiAgICAgICAgY29uc3QgY29scyA9IGRiVGFibGUuc2NoZW1hLmluZGV4ZXMubWFwKChjb2w6IGFueSkgPT4gY29sLm5hbWUpXG4gICAgICAgIGNvbnN0IHByaSA9IGRiVGFibGUuc2NoZW1hLnByaW1LZXkubmFtZVxuICAgICAgICByZXR1cm4gW3ByaSwgLi4uY29sc11cbiAgICAgIH0pXG4gICAgKVxuXG4gIH1cblxuICBjcmVhdGVEYXRhYmFzZVRhYmxlKHRhYmxlRGVmOiBUYWJsZVNjaGVtYURlZikge1xuICAgIHRoaXMuY3JlYXRlVGFibGUodGFibGVEZWYudGFibGUsIHRhYmxlRGVmLnNjaGVtYSlcbiAgICByZXR1cm4gZnJvbSh0aGlzLkRCT3BlbmVkKCkpXG4gIH1cblxuICB1cGRhdGVEYXRhYmFzZVRhYmxlU2NoZW1hKHRhYmxlRGVmOiBUYWJsZVNjaGVtYURlZikge1xuXG4gIH1cblxuICAvLyBDUlVEXG4gIGZpbmRUYWJsZVJlY29yZHModGFibGU6IHN0cmluZywgY29sdW1uOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgXG4gIH1cblxuICBmaW5kVGFibGVSZWNvcmQodGFibGU6IHN0cmluZywgY29sdW1uOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICBcbiAgfVxuXG4gIGdldFRhYmxlUmVjb3Jkcyh0YWJsZTogc3RyaW5nKSB7XG4gICAgXG4gIH1cblxuICBnZXRUYWJsZVJlY29yZCh0YWJsZTogc3RyaW5nLCBpZDogbnVtYmVyKSB7XG4gICAgXG4gIH1cblxuICBjcmVhdGVUYWJsZVJlY29yZCh0YWJsZTogc3RyaW5nLCByZWNvcmQ6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZVRhYmxlUmVjb3Jkcyh0YWJsZSwgW3JlY29yZF0pXG4gICAgLnBpcGUoXG4gICAgICBtYXAoKGl0ZW06IGFueSkgPT4gaXRlbSA/IGl0ZW1bMF0gOiBudWxsKSlcbiAgfVxuXG4gIGNyZWF0ZVRhYmxlUmVjb3Jkcyh0YWJsZTogc3RyaW5nLCByZWNvcmRzOiBhbnlbXSkge1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0RGF0YWJhc2VUYWJsZSh0YWJsZSkucGlwZShcblxuICAgICAgc3dpdGNoTWFwKCh0YWJsZURhdGE6IGFueSkgPT4ge1xuICAgICAgICBcbiAgICAgICAgaWYoIXRhYmxlRGF0YSkgcmV0dXJuIEVNUFRZXG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0YWJhc2VUYWJsZVNjaGVtYSh0YWJsZSkucGlwZShcblxuICAgICAgICAgIG1hcCgoc2NoZW1hOiBzdHJpbmdbXSkgPT4ge1xuXG4gICAgICAgICAgICBjb25zdCBpbnNlcnRSZWNvcmRzID0gcmVjb3Jkcy5tYXAoKHJlY29yZDogYW55KSA9PiB7XG5cbiAgICAgICAgICAgICAgY29uc3Qgb2JqZWN0RnJvbVNjaGVtYTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9XG5cbiAgICAgICAgICAgICAgc2NoZW1hLmZvckVhY2goKGZpZWxkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gKHJlY29yZCBhcyBhbnkpW2ZpZWxkXSA/PyBudWxsXG4gICAgICAgICAgICAgICAgb2JqZWN0RnJvbVNjaGVtYVtmaWVsZF0gPSBkYXRhXG4gICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdEZyb21TY2hlbWFcblxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgdGFibGVEYXRhLmJ1bGtQdXQoaW5zZXJ0UmVjb3JkcylcbiAgICAgICAgICAgIHJldHVybiBpbnNlcnRSZWNvcmRzXG5cbiAgICAgICAgICB9KVxuXG4gICAgICAgIClcblxuICAgICAgfSlcblxuICAgIClcblxuICB9XG5cbiAgdXBkYXRlVGFibGVSZWNvcmQodGFibGU6IHN0cmluZywgcmVjb3JkOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVUYWJsZVJlY29yZHModGFibGUsIFtyZWNvcmRdKVxuICAgIC5waXBlKFxuICAgICAgbWFwKGl0ZW0gPT4gaXRlbS5sZW5ndGggPiAwID8gaXRlbVswXSA6IG51bGwpXG4gICAgKVxuICB9XG5cbiAgdXBkYXRlVGFibGVSZWNvcmRzKHRhYmxlOiBzdHJpbmcsIHJlY29yZHM6IGFueVtdKSB7XG4gICAgXG4gICAgcmV0dXJuIHRoaXMuZ2V0RGF0YWJhc2VUYWJsZSh0YWJsZSkucGlwZShcblxuICAgICAgc3dpdGNoTWFwKCh0YWJsZURhdGE6IGFueSkgPT4ge1xuXG4gICAgICAgIHJldHVybiB0aGlzLmdldERhdGFiYXNlVGFibGVTY2hlbWEodGFibGUpLnBpcGUoXG5cbiAgICAgICAgICBtYXAoKHNjaGVtYTogc3RyaW5nW10pID0+IHtcblxuICAgICAgICAgICAgY29uc3QgaW5zZXJ0UmVjb3JkcyA9IHJlY29yZHMubWFwKChyZWNvcmQ6IGFueSkgPT4ge1xuXG4gICAgICAgICAgICAgIGNvbnN0IG9iamVjdEZyb21TY2hlbWE6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fVxuXG4gICAgICAgICAgICAgIHNjaGVtYS5mb3JFYWNoKChmaWVsZDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IChyZWNvcmQgYXMgYW55KVtmaWVsZF0gPz8gbnVsbFxuICAgICAgICAgICAgICAgIG9iamVjdEZyb21TY2hlbWFbZmllbGRdID0gZGF0YVxuICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgIHJldHVybiBvYmplY3RGcm9tU2NoZW1hXG5cbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIHRhYmxlRGF0YS5idWxrUHV0KGluc2VydFJlY29yZHMpLnRoZW4oKCkgPT4gY29uc29sZS5sb2coJ1VwZGF0ZWQgREInKSlcbiAgICAgICAgICAgIHJldHVybiBpbnNlcnRSZWNvcmRzXG5cbiAgICAgICAgICB9KVxuXG4gICAgICAgIClcblxuICAgICAgfSlcblxuICAgIClcblxuICB9XG5cbiAgZGVsZXRlVGFibGVSZWNvcmQ8VD4odGFibGU6IHN0cmluZywgaWQ6IG51bWJlcikge1xuICAgIFxuICB9XG5cbiAgcHJpdmF0ZSBjbGVhbihzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgY2xlYW5TdHIgPSBzdHJcbiAgICAgIC5yZXBsYWNlKC9bXmEtekEtWjAtOVxcc10vZywgJ18nKSAvLyBSZXBsYWNlIG5vbi1hbHBoYW51bWVyaWMgY2hhcmFjdGVycyBleGNlcHQgc3BhY2VzIHdpdGggdW5kZXJzY29yZXNcbiAgICAgIC5yZXBsYWNlKC9cXHMrL2csICdfJykgICAgICAgICAgICAvLyBSZXBsYWNlIHNwYWNlcyB3aXRoIHVuZGVyc2NvcmVzXG4gICAgICAudG9Mb3dlckNhc2UoKSAgICAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRvIGxvd2VyY2FzZVxuICAgICAgLnRyaW0oKTsgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHJpbSBsZWFkaW5nIG9yIHRyYWlsaW5nIHNwYWNlc1xuICBcbiAgICByZXR1cm4gY2xlYW5TdHI7XG4gIH1cblxufVxuIl19
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UubWFuYWdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy9kYXRhYmFzZS1tYW5hZ2VyLXNlcnZpY2VzL2RhdGFiYXNlLm1hbmFnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdqRCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLMUQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFNBQVM7SUFFbkQ7UUFDRSxLQUFLLEVBQUUsQ0FBQTtRQUNQLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO0lBQzFCLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQy9CLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUN4RCxDQUFBO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUMvQixHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMs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LElBQUksRUFBRSxDQUFDLENBQXlCLGtDQUFrQztRQUVyRSxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOytHQXBMVSxzQkFBc0I7bUhBQXRCLHNCQUFzQixjQUZyQixNQUFNOzs0RkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJTZXJ2aWNlIH0gZnJvbSAnLi9kYi5zdG9yYWdlLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBUYWJsZVNjaGVtYURlZiB9IGZyb20gJy4vbW9kZWxzL3RhYmxlLXNjaGVtYSc7XG5pbXBvcnQgeyBFTVBUWSwgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBtZXJnZU1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEYXRhYmFzZU1hbmFnZXJTZXJ2aWNlIGV4dGVuZHMgRGJTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5jcmVhdGVOZXdEYXRhYmFzZSgpXG4gIH1cblxuICBnZXREYXRhYmFzZVRhYmxlcygpIHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLkRCT3BlbmVkKCkpLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gdGhpcy5kYi50YWJsZXMubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0ubmFtZSkpXG4gICAgKVxuICB9XG5cbiAgaGFzRGF0YWJhc2VUYWJsZSh0YWJsZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5EQk9wZW5lZCgpKS5waXBlKFxuICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFibGVFeGlzdHModGhpcy5jbGVhbih0YWJsZSkpXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldERhdGFiYXNlVGFibGUodGFibGU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5EQk9wZW5lZCgpKS5waXBlKFxuICAgICAgbWFwKChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5oYXNEYXRhYmFzZSgpLnRoZW4oKHJlcykgPT4ge1xuXG4gICAgICAgICAgY29uc3QgdGFibGVzID0gdGhpcy5kYi50YWJsZXNcbiAgICAgICAgICBjb25zdCBmb3VuZCA9IHRhYmxlcy5maW5kKChpdGVtOiBhbnkpID0+IGl0ZW0ubmFtZSA9PT0gdGhpcy5jbGVhbih0YWJsZSkpIHx8IG51bGxcblxuICAgICAgICAgIGlmKCFmb3VuZCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdObyBTdWNoIFRhYmxlOicsIHRoaXMuY2xlYW4odGFibGUpKVxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmb3VuZFxuICAgICAgICAgIH1cblxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXREYXRhYmFzZVRhYmxlU2NoZW1hKHRhYmxlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG5cbiAgICByZXR1cm4gZnJvbSh0aGlzLkRCT3BlbmVkKCkpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgocmVzKSA9PiB0aGlzLmdldERhdGFiYXNlVGFibGUodGFibGUpKSxcbiAgICAgIG1hcCgoZGJUYWJsZTogYW55KSA9PiB7XG4gICAgICAgIGlmKCFkYlRhYmxlKSByZXR1cm4gW11cbiAgICAgICAgY29uc3QgY29scyA9IGRiVGFibGUuc2NoZW1hLmluZGV4ZXMubWFwKChjb2w6IGFueSkgPT4gY29sLm5hbWUpXG4gICAgICAgIGNvbnN0IHByaSA9IGRiVGFibGUuc2NoZW1hLnByaW1LZXkubmFtZVxuICAgICAgICByZXR1cm4gW3ByaSwgLi4uY29sc11cbiAgICAgIH0pXG4gICAgKVxuXG4gIH1cblxuICBjcmVhdGVEYXRhYmFzZVRhYmxlKHRhYmxlRGVmOiBUYWJsZVNjaGVtYURlZikge1xuICAgIHRoaXMuY3JlYXRlVGFibGUodGFibGVEZWYudGFibGUsIHRhYmxlRGVmLnNjaGVtYSlcbiAgICByZXR1cm4gZnJvbSh0aGlzLkRCT3BlbmVkKCkpXG4gIH1cblxuICB1cGRhdGVEYXRhYmFzZVRhYmxlU2NoZW1hKHRhYmxlRGVmOiBUYWJsZVNjaGVtYURlZikge1xuXG4gIH1cblxuICAvLyBDUlVEXG4gIGZpbmRUYWJsZVJlY29yZHModGFibGU6IHN0cmluZywgY29sdW1uOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcblxuICB9XG5cbiAgZmluZFRhYmxlUmVjb3JkKHRhYmxlOiBzdHJpbmcsIGNvbHVtbjogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG5cbiAgfVxuXG4gIGdldFRhYmxlUmVjb3Jkcyh0YWJsZTogc3RyaW5nKSB7XG5cbiAgfVxuXG4gIGdldFRhYmxlUmVjb3JkKHRhYmxlOiBzdHJpbmcsIGlkOiBudW1iZXIpIHtcblxuICB9XG5cbiAgY3JlYXRlVGFibGVSZWNvcmQodGFibGU6IHN0cmluZywgcmVjb3JkOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVUYWJsZVJlY29yZHModGFibGUsIFtyZWNvcmRdKVxuICAgIC5waXBlKFxuICAgICAgbWFwKChpdGVtOiBhbnkpID0+IGl0ZW0gPyBpdGVtWzBdIDogbnVsbCkpXG4gIH1cblxuICBjcmVhdGVUYWJsZVJlY29yZHModGFibGU6IHN0cmluZywgcmVjb3JkczogYW55W10pIHtcblxuICAgIHJldHVybiB0aGlzLmdldERhdGFiYXNlVGFibGUodGFibGUpLnBpcGUoXG5cbiAgICAgIHN3aXRjaE1hcCgodGFibGVEYXRhOiBhbnkpID0+IHtcblxuICAgICAgICBpZighdGFibGVEYXRhKSByZXR1cm4gRU1QVFlcblxuICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRhYmFzZVRhYmxlU2NoZW1hKHRhYmxlKS5waXBlKFxuXG4gICAgICAgICAgbWFwKChzY2hlbWE6IHN0cmluZ1tdKSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IGluc2VydFJlY29yZHMgPSByZWNvcmRzLm1hcCgocmVjb3JkOiBhbnkpID0+IHtcblxuICAgICAgICAgICAgICBjb25zdCBvYmplY3RGcm9tU2NoZW1hOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge31cblxuICAgICAgICAgICAgICBzY2hlbWEuZm9yRWFjaCgoZmllbGQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSAocmVjb3JkIGFzIGFueSlbZmllbGRdID8/IG51bGxcbiAgICAgICAgICAgICAgICBvYmplY3RGcm9tU2NoZW1hW2ZpZWxkXSA9IGRhdGFcbiAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0RnJvbVNjaGVtYVxuXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICB0YWJsZURhdGEuYnVsa1B1dChpbnNlcnRSZWNvcmRzKVxuICAgICAgICAgICAgcmV0dXJuIGluc2VydFJlY29yZHNcblxuICAgICAgICAgIH0pXG5cbiAgICAgICAgKVxuXG4gICAgICB9KVxuXG4gICAgKVxuXG4gIH1cblxuICB1cGRhdGVUYWJsZVJlY29yZCh0YWJsZTogc3RyaW5nLCByZWNvcmQ6IGFueSkge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZVRhYmxlUmVjb3Jkcyh0YWJsZSwgW3JlY29yZF0pXG4gICAgLnBpcGUoXG4gICAgICBtYXAoaXRlbSA9PiBpdGVtLmxlbmd0aCA+IDAgPyBpdGVtWzBdIDogbnVsbClcbiAgICApXG4gIH1cblxuICB1cGRhdGVUYWJsZVJlY29yZHModGFibGU6IHN0cmluZywgcmVjb3JkczogYW55W10pIHtcblxuICAgIHJldHVybiB0aGlzLmdldERhdGFiYXNlVGFibGUodGFibGUpLnBpcGUoXG5cbiAgICAgIHN3aXRjaE1hcCgodGFibGVEYXRhOiBhbnkpID0+IHtcblxuICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRhYmFzZVRhYmxlU2NoZW1hKHRhYmxlKS5waXBlKFxuXG4gICAgICAgICAgbWFwKChzY2hlbWE6IHN0cmluZ1tdKSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IGluc2VydFJlY29yZHMgPSByZWNvcmRzLm1hcCgocmVjb3JkOiBhbnkpID0+IHtcblxuICAgICAgICAgICAgICBjb25zdCBvYmplY3RGcm9tU2NoZW1hOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge31cblxuICAgICAgICAgICAgICBzY2hlbWEuZm9yRWFjaCgoZmllbGQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSAocmVjb3JkIGFzIGFueSlbZmllbGRdID8/IG51bGxcbiAgICAgICAgICAgICAgICBvYmplY3RGcm9tU2NoZW1hW2ZpZWxkXSA9IGRhdGFcbiAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0RnJvbVNjaGVtYVxuXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICB0YWJsZURhdGEuYnVsa1B1dChpbnNlcnRSZWNvcmRzKS50aGVuKCgpID0+IGNvbnNvbGUubG9nKCdVcGRhdGVkIERCJykpXG4gICAgICAgICAgICByZXR1cm4gaW5zZXJ0UmVjb3Jkc1xuXG4gICAgICAgICAgfSlcblxuICAgICAgICApXG5cbiAgICAgIH0pXG5cbiAgICApXG5cbiAgfVxuXG4gIGRlbGV0ZVRhYmxlUmVjb3JkPFQ+KHRhYmxlOiBzdHJpbmcsIGlkOiBudW1iZXIpIHtcblxuICB9XG5cbiAgcHJpdmF0ZSBjbGVhbihzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgY2xlYW5TdHIgPSBzdHJcbiAgICAgIC5yZXBsYWNlKC9bXmEtekEtWjAtOVxcc10vZywgJ18nKSAvLyBSZXBsYWNlIG5vbi1hbHBoYW51bWVyaWMgY2hhcmFjdGVycyBleGNlcHQgc3BhY2VzIHdpdGggdW5kZXJzY29yZXNcbiAgICAgIC5yZXBsYWNlKC9cXHMrL2csICdfJykgICAgICAgICAgICAvLyBSZXBsYWNlIHNwYWNlcyB3aXRoIHVuZGVyc2NvcmVzXG4gICAgICAudG9Mb3dlckNhc2UoKSAgICAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRvIGxvd2VyY2FzZVxuICAgICAgLnRyaW0oKTsgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHJpbSBsZWFkaW5nIG9yIHRyYWlsaW5nIHNwYWNlc1xuXG4gICAgcmV0dXJuIGNsZWFuU3RyO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -9,7 +9,7 @@ export class DbService extends Dexie {
|
|
|
9
9
|
return this.vr + 1;
|
|
10
10
|
}
|
|
11
11
|
get getTables() {
|
|
12
|
-
return this.db.tables.map(item => item.name);
|
|
12
|
+
return this.db.tables.map((item) => item.name);
|
|
13
13
|
}
|
|
14
14
|
async hasDatabase() {
|
|
15
15
|
return await Dexie.exists(this.storageDB).then((res) => {
|
|
@@ -22,13 +22,13 @@ export class DbService extends Dexie {
|
|
|
22
22
|
this.storageDB = "global_storage_db";
|
|
23
23
|
this.db = new Dexie(this.storageDB);
|
|
24
24
|
this.getTable = (table) => {
|
|
25
|
-
return this.db.tables.find(item => item.name === table);
|
|
25
|
+
return this.db.tables.find((item) => item.name === table);
|
|
26
26
|
};
|
|
27
27
|
this.tableExists = (table) => {
|
|
28
|
-
return (this.getTables.find(item => item === table)) ? true : false;
|
|
28
|
+
return (this.getTables.find((item) => item === table)) ? true : false;
|
|
29
29
|
};
|
|
30
30
|
this.db = this;
|
|
31
|
-
this.open().then(data => {
|
|
31
|
+
this.open().then((data) => {
|
|
32
32
|
}).catch(err => {
|
|
33
33
|
this.createNewDatabase();
|
|
34
34
|
});
|
|
@@ -131,13 +131,13 @@ export class DbService extends Dexie {
|
|
|
131
131
|
.replace(/\s+/g, '_');
|
|
132
132
|
return cleanStr.trim().toLowerCase();
|
|
133
133
|
}
|
|
134
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
135
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
134
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
135
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DbService, providedIn: 'root' }); }
|
|
136
136
|
}
|
|
137
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
137
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DbService, decorators: [{
|
|
138
138
|
type: Injectable,
|
|
139
139
|
args: [{
|
|
140
140
|
providedIn: 'root',
|
|
141
141
|
}]
|
|
142
142
|
}], ctorParameters: () => [] });
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIuc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy9kYXRhYmFzZS1tYW5hZ2VyLXNlcnZpY2VzL2RiLnN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sS0FBYyxNQUFNLE9BQU8sQ0FBQzs7QUFLbkMsTUFBTSxPQUFPLFNBQVUsU0FBUSxLQUFLO0lBTWxDLElBQUksRUFBRTtRQUNKLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUE7SUFDdEQsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDcEIsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzlDLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVztRQUNmLE9BQU8sTUFBTSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNyRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtZQUN4QixPQUFPLEdBQUcsQ0FBQTtRQUNaLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQVVEO1FBRUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFqQzlCLGNBQVMs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TyxJQUFJLENBQUE7SUFFYixDQUFDO0lBRU8sZUFBZSxDQUFDLElBQXFCO1FBRTNDLElBQUcsQ0FBQyxJQUFJO1lBQUUsT0FBTTtRQUVoQixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFO1lBQ3pELENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO0lBRTFFLENBQUM7SUFFTyxXQUFXLENBQUMsR0FBVztRQUU3QixNQUFNLFFBQVEsR0FBRyxHQUFHO2FBQ2pCLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7YUFDOUIsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUVyQixPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUV4QyxDQUFDOytHQXRMVSxTQUFTO21IQUFULFNBQVMsY0FGUixNQUFNOzs0RkFFUCxTQUFTO2tCQUhyQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBEZXhpZSwge1RhYmxlfSBmcm9tICdkZXhpZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBEYlNlcnZpY2UgZXh0ZW5kcyBEZXhpZSB7XG5cbiAgc3RvcmFnZURCID0gXCJnbG9iYWxfc3RvcmFnZV9kYlwiXG5cbiAgZGIgPSBuZXcgRGV4aWUodGhpcy5zdG9yYWdlREIpXG5cbiAgZ2V0IHZyKCkge1xuICAgIHJldHVybiAodGhpcy5kYi52ZXJubyA9PT0gMCkgPyAxIDogdGhpcy5kYi52ZXJubyArIDFcbiAgfVxuXG4gIGdldCBuZXh0VnIoKSB7XG4gICAgcmV0dXJuIHRoaXMudnIgKyAxXG4gIH1cblxuICBnZXQgZ2V0VGFibGVzKCkge1xuICAgIHJldHVybiB0aGlzLmRiLnRhYmxlcy5tYXAoaXRlbSA9PiBpdGVtLm5hbWUpXG4gIH1cblxuICBhc3luYyBoYXNEYXRhYmFzZSgpIHtcbiAgICByZXR1cm4gYXdhaXQgRGV4aWUuZXhpc3RzKHRoaXMuc3RvcmFnZURCKS50aGVuKChyZXMpID0+IHtcbiAgICAgIHRoaXMuY3JlYXRlTmV3RGF0YWJhc2UoKVxuICAgICAgcmV0dXJuIHJlc1xuICAgIH0pXG4gIH1cblxuICBnZXRUYWJsZSA9ICh0YWJsZTogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZGIudGFibGVzLmZpbmQoaXRlbSA9PiBpdGVtLm5hbWUgPT09IHRhYmxlKVxuICB9XG5cbiAgdGFibGVFeGlzdHMgPSAodGFibGU6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiAodGhpcy5nZXRUYWJsZXMuZmluZChpdGVtID0+IGl0ZW0gPT09IHRhYmxlKSkgPyB0cnVlIDogZmFsc2VcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuXG4gICAgICBzdXBlcihcImdsb2JhbF9zdG9yYWdlX2RiXCIpXG5cbiAgICAgIHRoaXMuZGIgPSB0aGlzXG4gICAgICB0aGlzLm9wZW4oKS50aGVuKGRhdGEgPT4ge1xuXG4gICAgICB9KS5jYXRjaChlcnIgPT4ge1xuICAgICAgICB0aGlzLmNyZWF0ZU5ld0RhdGFiYXNlKClcbiAgICAgIH0pXG5cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyB1cGRhdGVUYWJsZSh0YWJsZTogc3RyaW5nLCBmaW5kOiB7IGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nfG51bWJlciB9LCBkYXRhOiBhbnkpIHtcblxuICAgIGNvbnN0IHRhYmxlU291cmNlID0gdGhpcy5nZXRUYWJsZSh0YWJsZSlcblxuICAgIGlmKCF0YWJsZVNvdXJjZSB8fCAhZmluZCB8fCAhKGZpbmQua2V5IHx8IGZpbmQudmFsdWUpKSByZXR1cm4gZmFsc2VcblxuICAgIGF3YWl0IHRhYmxlU291cmNlPy53aGVyZShmaW5kLmtleSkuZXF1YWxzKGZpbmQudmFsdWUpLmZpcnN0KClcbiAgICAudGhlbihhc3luYyAocmVjOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IG5ld1JlYyA9IHRoaXMudXBkYXRlT2JqZWN0S2V5cyhyZWMsIGRhdGEpXG4gICAgICBhd2FpdCB0YWJsZVNvdXJjZT8udXBkYXRlKHJlYy5pZCwgbmV3UmVjKVxuICAgIH0pXG5cbiAgICByZXR1cm4gdHJ1ZVxuXG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgY3JlYXRlTmV3RGF0YWJhc2UoKSB7XG5cbiAgICBjb25zdCBkYiA9IG5ldyBEZXhpZSgnZ2xvYmFsX3N0b3JhZ2VfZGInKTtcblxuICAgIGlmICghYXdhaXQgRGV4aWUuZXhpc3RzKGRiLm5hbWUpKSB7XG4gICAgICBkYi52ZXJzaW9uKDEpLnN0b3Jlcyh7fSlcbiAgICB9XG5cbiAgICBhd2FpdCBkYi5vcGVuKClcblxuICB9XG5cbiAgLy8gYXN5bmMgY3JlYXRlVGFibGUodGFibGU6IHN0cmluZywgc2NoZW1hOiBzdHJpbmcpIHtcbiAgcHJvdGVjdGVkIGFzeW5jIGNyZWF0ZVRhYmxlKHRhYmxlOiBzdHJpbmcsIHNjaGVtYTogc3RyaW5nKSB7XG5cbiAgICAvLyBjb25zb2xlLmxvZygnY3JlYXRlVGFibGU6JywgdGFibGUsIHNjaGVtYSlcblxuICAgIHRoaXMuaGFzRGF0YWJhc2UoKS50aGVuKGFzeW5jKHJlcykgPT4ge1xuXG4gICAgICBjb25zdCB0YWJsZURlZiA9IHRoaXMubm9ybWFsaXplU3RyaW5nKHRhYmxlKVxuICAgICAgY29uc3Qgc2NoZW1hRGVmID0gdGhpcy5ub3JtYWxpemVTdHJpbmcoc2NoZW1hKVxuXG4gICAgICB0YWJsZSA9IHRhYmxlRGVmIHx8ICcnXG4gICAgICBzY2hlbWEgPSBzY2hlbWFEZWYgfHwgJydcblxuICAgICAgaWYodGFibGUgPT09ICcnIHx8IHNjaGVtYSA9PT0gJycpIHJldHVyblxuXG4gICAgICBpZighdGhpcy5kYi5pc09wZW4oKSkge1xuICAgICAgICBhd2FpdCB0aGlzLmRiLm9wZW4oKVxuICAgICAgICAudGhlbiggYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY3JlYXRlKHRhYmxlLCBzY2hlbWEpXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ09QRU5FRCcsIHRhYmxlKVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdGQUlMRUQnLCB0YWJsZSlcbiAgICAgICAgfSlcblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jcmVhdGUodGFibGUsIHNjaGVtYSlcbiAgICAgIH1cblxuICAgICAgY29uc3QgaGFzVGFibGUgPSB0aGlzLmdldFRhYmxlKHRhYmxlKVxuXG4gICAgICBpZighaGFzVGFibGUpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jcmVhdGVUYWJsZS5iaW5kKHRoaXMsIHRhYmxlLCBzY2hlbWEpXG4gICAgICAgICAgdGhpcy5jcmVhdGUodGFibGUsIHNjaGVtYSlcbiAgICAgICAgfSwgMzAwKVxuICAgICAgfVxuXG4gICAgICAvLyBjb25zb2xlLmxvZygnREIgSEFTJywgdGFibGUsIGhhc1RhYmxlKVxuXG4gICAgfSlcblxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGUodGFibGU6IHN0cmluZywgc2NoZW1hOiBzdHJpbmcpIHtcblxuICAgIC8vIGNvbnNvbGUubG9nKCdPUEVOJywgdGhpcy5kYi5uYW1lLCB0aGlzLnZyLCB0aGlzLmRiLnZlcm5vLCAnT1BFTicsdGhpcy5kYi5pc09wZW4oKSlcblxuICAgIGlmKCF0aGlzLnRhYmxlRXhpc3RzKHRhYmxlKSkge1xuXG4gICAgICBpZih0aGlzLmRiLmlzT3BlbigpKSBhd2FpdCB0aGlzLmRiLmNsb3NlKClcblxuICAgICAgY29uc3QgbmV3U2NoZW1hOiBhbnkgPSB7IFt0YWJsZV06IHNjaGVtYSB9XG4gICAgICBhd2FpdCB0aGlzLmRiLnZlcnNpb24odGhpcy5uZXh0VnIpLnN0b3JlcyhuZXdTY2hlbWEpXG5cbiAgICAgIC8vIGNvbnNvbGUubG9nKCdDcmVhdGVkIE5ldyBUYWJsZTogJywgdGFibGUsIHNjaGVtYSlcblxuICAgICAgaWYoIXRoaXMuZGIuaXNPcGVuKCkpIGF3YWl0IHRoaXMuZGIub3BlbigpXG4gICAgfVxuXG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZU9iamVjdEtleXMob2JqMTogYW55LCBvYmoyOiBhbnkpIHtcblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmoxKS5yZWR1Y2UoKHVwZGF0ZWRPYmo6IGFueSwga2V5OiBhbnkpID0+IHtcbiAgICAgIHVwZGF0ZWRPYmpba2V5XSA9IG9iajIuaGFzT3duUHJvcGVydHkoa2V5KSA/IG9iajJba2V5XSA6IG9iajFba2V5XVxuICAgICAgcmV0dXJuIHVwZGF0ZWRPYmpcbiAgICB9LCB7fSlcblxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIERCT3BlbmVkKCkge1xuXG4gICAgaWYoIXRoaXMuZGIuaXNPcGVuKCkpIHtcbiAgICAgIGF3YWl0IHRoaXMuZGIub3BlbigpXG4gICAgICAudGhlbiggYXN5bmMgKCkgPT4ge1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnT1BFTkVEJylcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goYXN5bmMgKGVycikgPT4ge1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnT1BFTkVEIEVSUicpXG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY29uc29sZS5sb2coJ09QRU5FRCcpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWVcblxuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVTdHJpbmcoaXRlbTogc3RyaW5nfHN0cmluZ1tdKSB7XG5cbiAgICBpZighaXRlbSkgcmV0dXJuXG5cbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShpdGVtKSA/XG4gICAgICBpdGVtLm1hcCgoaXRlbTogc3RyaW5nKSA9PiB0aGlzLmNsZWFuU3RyaW5nKGl0ZW0pKS5qb2luKClcbiAgICAgIDogaXRlbS5zcGxpdCgnLCcpLm1hcCgoaXRlbTogc3RyaW5nKSA9PiB0aGlzLmNsZWFuU3RyaW5nKGl0ZW0pKS5qb2luKClcblxuICB9XG5cbiAgcHJpdmF0ZSBjbGVhblN0cmluZyhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG5cbiAgICBjb25zdCBjbGVhblN0ciA9IHN0clxuICAgICAgLnJlcGxhY2UoL1teYS16QS1aMC05XFxzXS9nLCAnJylcbiAgICAgIC5yZXBsYWNlKC9cXHMrL2csICdfJylcblxuICAgICAgcmV0dXJuIGNsZWFuU3RyLnRyaW0oKS50b0xvd2VyQ2FzZSgpXG5cbiAgfVxuXG59XG4iXX0=
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIuc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy9kYXRhYmFzZS1tYW5hZ2VyLXNlcnZpY2VzL2RiLnN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sS0FBYyxNQUFNLE9BQU8sQ0FBQzs7QUFLbkMsTUFBTSxPQUFPLFNBQVUsU0FBUSxLQUFLO0lBTWxDLElBQUksRUFBRTtRQUNKLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUE7SUFDdEQsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDcEIsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDckQsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXO1FBQ2YsT0FBTyxNQUFNLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQzFELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1lBQ3hCLE9BQU8sR0FBRyxDQUFBO1FBQ1osQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBVUQ7UUFFSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtRQWpDOUIsY0FBUyxHQUFHLG1CQUFtQixDQUFBO1FBRS9CLE9BQUUsR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7UUFxQjlCLGFBQVEsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQzNCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFBO1FBQ2hFLENBQUMsQ0FBQTtRQUVELGdCQUFXLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtZQUM5QixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtRQUM1RSxDQUFDLENBQUE7UUFNRyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQTtRQUNkLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtRQUUvQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDYixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtRQUMxQixDQUFDLENBQUMsQ0FBQTtJQUVOLENBQUM7SUFFUyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQWEsRUFBRSxJQUEyQyxFQUFFLElBQVM7UUFFL0YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUV4QyxJQUFHLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQTtRQUVuRSxNQUFNLFdBQVcsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFO2FBQzVELElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBUSxFQUFFLEVBQUU7WUFDdkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtZQUMvQyxNQUFNLFdBQVcsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUMzQyxDQUFDLENBQUMsQ0FBQTtRQUVGLE9BQU8sSUFBSSxDQUFBO0lBRWIsQ0FBQztJQUVTLEtBQUssQ0FBQyxpQkFBaUI7UUFFL0IsTUFBTSxFQUFFLEdBQUcsSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUUxQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2pDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQzFCLENBQUM7UUFFRCxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUVqQixDQUFDO0lBRUQscURBQXFEO0lBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBYSxFQUFFLE1BQWM7UUFFdkQsNkNBQTZDO1FBRTdDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLEdBQUcsRUFBRSxFQUFFO1lBRW5DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDNUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUU5QyxLQUFLLEdBQUcsUUFBUSxJQUFJLEVBQUUsQ0FBQTtZQUN0QixNQUFNLEdBQUcsU0FBUyxJQUFJLEVBQUUsQ0FBQTtZQUV4QixJQUFHLEtBQUssS0FBSyxFQUFFLElBQUksTUFBTSxLQUFLLEVBQUU7Z0JBQUUsT0FBTTtZQUV4QyxJQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO2dCQUNyQixNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFO3FCQUNuQixJQUFJLENBQUUsS0FBSyxJQUFJLEVBQUU7b0JBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFBO29CQUMxQiwrQkFBK0I7Z0JBQ2pDLENBQUMsQ0FBQztxQkFDRCxLQUFLLENBQUMsR0FBRyxFQUFFO29CQUNWLCtCQUErQjtnQkFDakMsQ0FBQyxDQUFDLENBQUE7WUFFSixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUE7WUFDNUIsQ0FBQztZQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7WUFFckMsSUFBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNiLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQTtvQkFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUE7Z0JBQzVCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtZQUNULENBQUM7WUFFRCx5Q0FBeUM7UUFFM0MsQ0FBQyxDQUFDLENBQUE7SUFFSixDQUFDO0lBRU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFhLEVBQUUsTUFBYztRQUVoRCxxRkFBcUY7UUFFckYsSUFBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUU1QixJQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFO2dCQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtZQUUxQyxNQUFNLFNBQVMsR0FBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUE7WUFDMUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBRXBELG9EQUFvRDtZQUVwRCxJQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUU7Z0JBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFBO1FBQzVDLENBQUM7SUFFSCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsSUFBUyxFQUFFLElBQVM7UUFFM0MsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQWUsRUFBRSxHQUFRLEVBQUUsRUFBRTtZQUM1RCxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDbEUsT0FBTyxVQUFVLENBQUE7UUFDbkIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRVIsQ0FBQztJQUVTLEtBQUssQ0FBQyxRQUFRO1FBRXRCLElBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRTtpQkFDbkIsSUFBSSxDQUFFLEtBQUssSUFBSSxFQUFFO2dCQUNoQix3QkFBd0I7WUFDMUIsQ0FBQyxDQUFDO2lCQUNELEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0JBQ25CLDRCQUE0QjtnQkFDNUIsT0FBTyxLQUFLLENBQUE7WUFDZCxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sd0JBQXdCO1FBQzFCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQTtJQUViLENBQUM7SUFFTyxlQUFlLENBQUMsSUFBcUI7UUFFM0MsSUFBRyxDQUFDLElBQUk7WUFBRSxPQUFNO1FBRWhCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDekQsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7SUFFMUUsQ0FBQztJQUVPLFdBQVcsQ0FBQyxHQUFXO1FBRTdCLE1BQU0sUUFBUSxHQUFHLEdBQUc7YUFDakIsT0FBTyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQzthQUM5QixPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBRXJCLE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBRXhDLENBQUM7K0dBdExVLFNBQVM7bUhBQVQsU0FBUyxjQUZSLE1BQU07OzRGQUVQLFNBQVM7a0JBSHJCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IERleGllLCB7VGFibGV9IGZyb20gJ2RleGllJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIERiU2VydmljZSBleHRlbmRzIERleGllIHtcblxuICBzdG9yYWdlREIgPSBcImdsb2JhbF9zdG9yYWdlX2RiXCJcblxuICBkYiA9IG5ldyBEZXhpZSh0aGlzLnN0b3JhZ2VEQilcblxuICBnZXQgdnIoKSB7XG4gICAgcmV0dXJuICh0aGlzLmRiLnZlcm5vID09PSAwKSA/IDEgOiB0aGlzLmRiLnZlcm5vICsgMVxuICB9XG5cbiAgZ2V0IG5leHRWcigpIHtcbiAgICByZXR1cm4gdGhpcy52ciArIDFcbiAgfVxuXG4gIGdldCBnZXRUYWJsZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGIudGFibGVzLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLm5hbWUpXG4gIH1cblxuICBhc3luYyBoYXNEYXRhYmFzZSgpIHtcbiAgICByZXR1cm4gYXdhaXQgRGV4aWUuZXhpc3RzKHRoaXMuc3RvcmFnZURCKS50aGVuKChyZXM6IGFueSkgPT4ge1xuICAgICAgdGhpcy5jcmVhdGVOZXdEYXRhYmFzZSgpXG4gICAgICByZXR1cm4gcmVzXG4gICAgfSlcbiAgfVxuXG4gIGdldFRhYmxlID0gKHRhYmxlOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gdGhpcy5kYi50YWJsZXMuZmluZCgoaXRlbTogYW55KSA9PiBpdGVtLm5hbWUgPT09IHRhYmxlKVxuICB9XG5cbiAgdGFibGVFeGlzdHMgPSAodGFibGU6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiAodGhpcy5nZXRUYWJsZXMuZmluZCgoaXRlbTogYW55KSA9PiBpdGVtID09PSB0YWJsZSkpID8gdHJ1ZSA6IGZhbHNlXG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcblxuICAgICAgc3VwZXIoXCJnbG9iYWxfc3RvcmFnZV9kYlwiKVxuXG4gICAgICB0aGlzLmRiID0gdGhpc1xuICAgICAgdGhpcy5vcGVuKCkudGhlbigoZGF0YTogYW55KSA9PiB7XG5cbiAgICAgIH0pLmNhdGNoKGVyciA9PiB7XG4gICAgICAgIHRoaXMuY3JlYXRlTmV3RGF0YWJhc2UoKVxuICAgICAgfSlcblxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHVwZGF0ZVRhYmxlKHRhYmxlOiBzdHJpbmcsIGZpbmQ6IHsga2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmd8bnVtYmVyIH0sIGRhdGE6IGFueSkge1xuXG4gICAgY29uc3QgdGFibGVTb3VyY2UgPSB0aGlzLmdldFRhYmxlKHRhYmxlKVxuXG4gICAgaWYoIXRhYmxlU291cmNlIHx8ICFmaW5kIHx8ICEoZmluZC5rZXkgfHwgZmluZC52YWx1ZSkpIHJldHVybiBmYWxzZVxuXG4gICAgYXdhaXQgdGFibGVTb3VyY2U/LndoZXJlKGZpbmQua2V5KS5lcXVhbHMoZmluZC52YWx1ZSkuZmlyc3QoKVxuICAgIC50aGVuKGFzeW5jIChyZWM6IGFueSkgPT4ge1xuICAgICAgY29uc3QgbmV3UmVjID0gdGhpcy51cGRhdGVPYmplY3RLZXlzKHJlYywgZGF0YSlcbiAgICAgIGF3YWl0IHRhYmxlU291cmNlPy51cGRhdGUocmVjLmlkLCBuZXdSZWMpXG4gICAgfSlcblxuICAgIHJldHVybiB0cnVlXG5cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBjcmVhdGVOZXdEYXRhYmFzZSgpIHtcblxuICAgIGNvbnN0IGRiID0gbmV3IERleGllKCdnbG9iYWxfc3RvcmFnZV9kYicpO1xuXG4gICAgaWYgKCFhd2FpdCBEZXhpZS5leGlzdHMoZGIubmFtZSkpIHtcbiAgICAgIGRiLnZlcnNpb24oMSkuc3RvcmVzKHt9KVxuICAgIH1cblxuICAgIGF3YWl0IGRiLm9wZW4oKVxuXG4gIH1cblxuICAvLyBhc3luYyBjcmVhdGVUYWJsZSh0YWJsZTogc3RyaW5nLCBzY2hlbWE6IHN0cmluZykge1xuICBwcm90ZWN0ZWQgYXN5bmMgY3JlYXRlVGFibGUodGFibGU6IHN0cmluZywgc2NoZW1hOiBzdHJpbmcpIHtcblxuICAgIC8vIGNvbnNvbGUubG9nKCdjcmVhdGVUYWJsZTonLCB0YWJsZSwgc2NoZW1hKVxuXG4gICAgdGhpcy5oYXNEYXRhYmFzZSgpLnRoZW4oYXN5bmMocmVzKSA9PiB7XG5cbiAgICAgIGNvbnN0IHRhYmxlRGVmID0gdGhpcy5ub3JtYWxpemVTdHJpbmcodGFibGUpXG4gICAgICBjb25zdCBzY2hlbWFEZWYgPSB0aGlzLm5vcm1hbGl6ZVN0cmluZyhzY2hlbWEpXG5cbiAgICAgIHRhYmxlID0gdGFibGVEZWYgfHwgJydcbiAgICAgIHNjaGVtYSA9IHNjaGVtYURlZiB8fCAnJ1xuXG4gICAgICBpZih0YWJsZSA9PT0gJycgfHwgc2NoZW1hID09PSAnJykgcmV0dXJuXG5cbiAgICAgIGlmKCF0aGlzLmRiLmlzT3BlbigpKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuZGIub3BlbigpXG4gICAgICAgIC50aGVuKCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jcmVhdGUodGFibGUsIHNjaGVtYSlcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZygnT1BFTkVEJywgdGFibGUpXG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ0ZBSUxFRCcsIHRhYmxlKVxuICAgICAgICB9KVxuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNyZWF0ZSh0YWJsZSwgc2NoZW1hKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBoYXNUYWJsZSA9IHRoaXMuZ2V0VGFibGUodGFibGUpXG5cbiAgICAgIGlmKCFoYXNUYWJsZSkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLmNyZWF0ZVRhYmxlLmJpbmQodGhpcywgdGFibGUsIHNjaGVtYSlcbiAgICAgICAgICB0aGlzLmNyZWF0ZSh0YWJsZSwgc2NoZW1hKVxuICAgICAgICB9LCAzMDApXG4gICAgICB9XG5cbiAgICAgIC8vIGNvbnNvbGUubG9nKCdEQiBIQVMnLCB0YWJsZSwgaGFzVGFibGUpXG5cbiAgICB9KVxuXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNyZWF0ZSh0YWJsZTogc3RyaW5nLCBzY2hlbWE6IHN0cmluZykge1xuXG4gICAgLy8gY29uc29sZS5sb2coJ09QRU4nLCB0aGlzLmRiLm5hbWUsIHRoaXMudnIsIHRoaXMuZGIudmVybm8sICdPUEVOJyx0aGlzLmRiLmlzT3BlbigpKVxuXG4gICAgaWYoIXRoaXMudGFibGVFeGlzdHModGFibGUpKSB7XG5cbiAgICAgIGlmKHRoaXMuZGIuaXNPcGVuKCkpIGF3YWl0IHRoaXMuZGIuY2xvc2UoKVxuXG4gICAgICBjb25zdCBuZXdTY2hlbWE6IGFueSA9IHsgW3RhYmxlXTogc2NoZW1hIH1cbiAgICAgIGF3YWl0IHRoaXMuZGIudmVyc2lvbih0aGlzLm5leHRWcikuc3RvcmVzKG5ld1NjaGVtYSlcblxuICAgICAgLy8gY29uc29sZS5sb2coJ0NyZWF0ZWQgTmV3IFRhYmxlOiAnLCB0YWJsZSwgc2NoZW1hKVxuXG4gICAgICBpZighdGhpcy5kYi5pc09wZW4oKSkgYXdhaXQgdGhpcy5kYi5vcGVuKClcbiAgICB9XG5cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlT2JqZWN0S2V5cyhvYmoxOiBhbnksIG9iajI6IGFueSkge1xuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iajEpLnJlZHVjZSgodXBkYXRlZE9iajogYW55LCBrZXk6IGFueSkgPT4ge1xuICAgICAgdXBkYXRlZE9ialtrZXldID0gb2JqMi5oYXNPd25Qcm9wZXJ0eShrZXkpID8gb2JqMltrZXldIDogb2JqMVtrZXldXG4gICAgICByZXR1cm4gdXBkYXRlZE9ialxuICAgIH0sIHt9KVxuXG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgREJPcGVuZWQoKSB7XG5cbiAgICBpZighdGhpcy5kYi5pc09wZW4oKSkge1xuICAgICAgYXdhaXQgdGhpcy5kYi5vcGVuKClcbiAgICAgIC50aGVuKCBhc3luYyAoKSA9PiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdPUEVORUQnKVxuICAgICAgfSlcbiAgICAgIC5jYXRjaChhc3luYyAoZXJyKSA9PiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdPUEVORUQgRVJSJylcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBjb25zb2xlLmxvZygnT1BFTkVEJylcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZVxuXG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZVN0cmluZyhpdGVtOiBzdHJpbmd8c3RyaW5nW10pIHtcblxuICAgIGlmKCFpdGVtKSByZXR1cm5cblxuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGl0ZW0pID9cbiAgICAgIGl0ZW0ubWFwKChpdGVtOiBzdHJpbmcpID0+IHRoaXMuY2xlYW5TdHJpbmcoaXRlbSkpLmpvaW4oKVxuICAgICAgOiBpdGVtLnNwbGl0KCcsJykubWFwKChpdGVtOiBzdHJpbmcpID0+IHRoaXMuY2xlYW5TdHJpbmcoaXRlbSkpLmpvaW4oKVxuXG4gIH1cblxuICBwcml2YXRlIGNsZWFuU3RyaW5nKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcblxuICAgIGNvbnN0IGNsZWFuU3RyID0gc3RyXG4gICAgICAucmVwbGFjZSgvW15hLXpBLVowLTlcXHNdL2csICcnKVxuICAgICAgLnJlcGxhY2UoL1xccysvZywgJ18nKVxuXG4gICAgICByZXR1cm4gY2xlYW5TdHIudHJpbSgpLnRvTG93ZXJDYXNlKClcblxuICB9XG5cbn1cbiJdfQ==
|
package/esm2022/lib/services/local-storage-manager-service/local-storage-manager.service.mjs
CHANGED
|
@@ -287,10 +287,10 @@ export class LocalStorageManagerService extends ComponentStore {
|
|
|
287
287
|
ngOnDestroy() {
|
|
288
288
|
this.persistence$.unsubscribe();
|
|
289
289
|
}
|
|
290
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
291
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
290
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocalStorageManagerService, deps: [{ token: CONFIG_SETTINGS_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
291
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocalStorageManagerService, providedIn: 'root' }); }
|
|
292
292
|
}
|
|
293
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
293
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocalStorageManagerService, decorators: [{
|
|
294
294
|
type: Injectable,
|
|
295
295
|
args: [{ providedIn: 'root' }]
|
|
296
296
|
}], ctorParameters: () => [{ type: i1.ConfigOptions, decorators: [{
|
package/esm2022/lib/services/local-storage-manager-service/local-storage-signals-manager.service.mjs
CHANGED
|
@@ -262,10 +262,10 @@ export class LocalStorageSignalsManagerService {
|
|
|
262
262
|
validStoreName(str) {
|
|
263
263
|
return str.toLowerCase().replace(/\s+/g, '_').replace(/[^ -~]/g, '');
|
|
264
264
|
}
|
|
265
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
266
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
265
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocalStorageSignalsManagerService, deps: [{ token: CONFIG_SETTINGS_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
266
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocalStorageSignalsManagerService, providedIn: 'root' }); }
|
|
267
267
|
}
|
|
268
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
268
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocalStorageSignalsManagerService, decorators: [{
|
|
269
269
|
type: Injectable,
|
|
270
270
|
args: [{ providedIn: 'root' }]
|
|
271
271
|
}], ctorParameters: () => [{ type: i1.ConfigOptions, decorators: [{
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { Inject, inject, Injectable, Injector, Optional, signal } from '@angular/core';
|
|
2
|
+
import { HttpErrorResponse } from '@angular/common/http';
|
|
3
|
+
import { Subject, throwError } from 'rxjs';
|
|
4
|
+
import { tap, map, finalize, catchError } from 'rxjs/operators';
|
|
5
|
+
import { ApiRequest } from '../request-manager-state-service/models/api-request.model';
|
|
6
|
+
import { RequestSignalsService } from './request-signals.service'; // 👈 updated
|
|
7
|
+
import { requestPolling, countdown, delayedRetry } from './rxjs-operators';
|
|
8
|
+
import { ToastColors, ToastDisplay, ToastMessageDisplayService } from 'toast-message-display';
|
|
9
|
+
import { CONFIG_SETTINGS_TOKEN } from '../../models/config-token.model';
|
|
10
|
+
import { ObjectMergerService } from '../utils/object-merger.service';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "../../models";
|
|
13
|
+
export class HTTPManagerSignalsService extends RequestSignalsService {
|
|
14
|
+
constructor(configOptions) {
|
|
15
|
+
super();
|
|
16
|
+
this.configOptions = configOptions;
|
|
17
|
+
this.toastMessage = inject(ToastMessageDisplayService);
|
|
18
|
+
this.ng_injector = inject(Injector);
|
|
19
|
+
this.objectMergerService = inject(ObjectMergerService);
|
|
20
|
+
// ✅ Replaced BehaviorSubjects with Angular signals
|
|
21
|
+
this.countdown = signal(0);
|
|
22
|
+
this.error = signal(false);
|
|
23
|
+
this.data = signal(null);
|
|
24
|
+
this.polling$ = new Subject();
|
|
25
|
+
this.config = ApiRequest.adapt();
|
|
26
|
+
this.config = configOptions
|
|
27
|
+
? ApiRequest.adapt(configOptions.httpRequestOptions)
|
|
28
|
+
: this.config;
|
|
29
|
+
}
|
|
30
|
+
// REQUESTS
|
|
31
|
+
getRequest(options, params) {
|
|
32
|
+
this.isPending.set(true);
|
|
33
|
+
this.data.set(null);
|
|
34
|
+
const updatedOptions = this.defineReqOptions(options, params);
|
|
35
|
+
const func = this.getRecordRequest;
|
|
36
|
+
const requests = this.createRequest(func, updatedOptions);
|
|
37
|
+
return this.createObservable(updatedOptions, requests, func.name).pipe(tap(data => this.data.set(data)), finalize(() => this.isPending.set(false)), catchError((err) => {
|
|
38
|
+
if (updatedOptions.displayError)
|
|
39
|
+
this.handleErrorWithSnackBar(err);
|
|
40
|
+
this.isPending.set(false);
|
|
41
|
+
return this.handleError(err);
|
|
42
|
+
}));
|
|
43
|
+
}
|
|
44
|
+
postRequest(data, options, params) {
|
|
45
|
+
this.isPending.set(true);
|
|
46
|
+
this.data.set(null);
|
|
47
|
+
const updatedOptions = this.defineReqOptions(options, params);
|
|
48
|
+
const func = this.createRecordRequest;
|
|
49
|
+
const requests = this.createRequest(func, updatedOptions, data);
|
|
50
|
+
return this.createObservable(updatedOptions, requests, func.name).pipe(tap(data => this.data.set(data)), finalize(() => this.isPending.set(false)), catchError((err) => {
|
|
51
|
+
if (updatedOptions.displayError)
|
|
52
|
+
this.handleErrorWithSnackBar(err);
|
|
53
|
+
this.isPending.set(false);
|
|
54
|
+
return this.handleError(err);
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
57
|
+
putRequest(data, options, params) {
|
|
58
|
+
this.isPending.set(true);
|
|
59
|
+
this.data.set(null);
|
|
60
|
+
const updatedOptions = this.defineReqOptions(options, params);
|
|
61
|
+
const func = this.updateRecordRequest;
|
|
62
|
+
const requests = this.createRequest(func, updatedOptions, data);
|
|
63
|
+
return this.createObservable(updatedOptions, requests, func.name).pipe(tap(data => this.data.set(data)), finalize(() => this.isPending.set(false)), catchError((err) => {
|
|
64
|
+
if (updatedOptions.displayError)
|
|
65
|
+
this.handleErrorWithSnackBar(err);
|
|
66
|
+
this.isPending.set(false);
|
|
67
|
+
return this.handleError(err);
|
|
68
|
+
}));
|
|
69
|
+
}
|
|
70
|
+
deleteRequest(options, params) {
|
|
71
|
+
this.isPending.set(true);
|
|
72
|
+
this.data.set(null);
|
|
73
|
+
const updatedOptions = this.defineReqOptions(options, params);
|
|
74
|
+
const func = this.deleteRecordRequest;
|
|
75
|
+
const requests = this.createRequest(func, updatedOptions);
|
|
76
|
+
return this.createObservable(updatedOptions, requests, func.name).pipe(tap(data => this.data.set(data)), finalize(() => this.isPending.set(false)), catchError((err) => {
|
|
77
|
+
if (updatedOptions.displayError)
|
|
78
|
+
this.handleErrorWithSnackBar(err);
|
|
79
|
+
this.isPending.set(false);
|
|
80
|
+
return this.handleError(err);
|
|
81
|
+
}));
|
|
82
|
+
}
|
|
83
|
+
downloadRequest(options, params, saveAs) {
|
|
84
|
+
this.isPending.set(true);
|
|
85
|
+
const updatedOptions = this.defineReqOptions(options, params);
|
|
86
|
+
const func = this.downloadFileRequest;
|
|
87
|
+
const requests = this.createRequest(func, updatedOptions);
|
|
88
|
+
return this.createObservable(updatedOptions, requests, func.name).pipe(catchError((err) => {
|
|
89
|
+
this.error.set(true);
|
|
90
|
+
this.isPending.set(false);
|
|
91
|
+
return this.handleError(err);
|
|
92
|
+
}));
|
|
93
|
+
}
|
|
94
|
+
// --- private helpers ---
|
|
95
|
+
createObservable(options, request$, funcName) {
|
|
96
|
+
const polling = options.polling ? (options.polling > 0 ? true : false) : false;
|
|
97
|
+
const isPolling = polling &&
|
|
98
|
+
!(funcName === 'deleteRecordRequest' ||
|
|
99
|
+
funcName === 'updateRecordRequest' ||
|
|
100
|
+
funcName === 'createRecordRequest');
|
|
101
|
+
this.polling$.next();
|
|
102
|
+
const polling$ = (isPolling && options.polling) || 0 >= 3
|
|
103
|
+
? request$.pipe(requestPolling((options.polling || 0) + 1, this.polling$, this.isPending), tap(() => this.countdown.set(0)), tap(() => {
|
|
104
|
+
if (!options.polling)
|
|
105
|
+
return;
|
|
106
|
+
const count = options.polling ? options.polling : 0;
|
|
107
|
+
countdown(count)
|
|
108
|
+
.pipe(map((x) => {
|
|
109
|
+
const pollingInSec = options.polling || 0;
|
|
110
|
+
const percentageCompleted = ((pollingInSec - x) / pollingInSec) * 100;
|
|
111
|
+
return Math.round(percentageCompleted);
|
|
112
|
+
}))
|
|
113
|
+
.subscribe((countDownValue) => {
|
|
114
|
+
this.countdown.set(countDownValue);
|
|
115
|
+
});
|
|
116
|
+
}))
|
|
117
|
+
: request$.pipe(catchError((err) => {
|
|
118
|
+
if (err instanceof HttpErrorResponse) {
|
|
119
|
+
this.error.set(true);
|
|
120
|
+
return this.handleError(err);
|
|
121
|
+
}
|
|
122
|
+
return throwError(() => err);
|
|
123
|
+
}));
|
|
124
|
+
return polling$.pipe(catchError((err, caught) => {
|
|
125
|
+
if (err instanceof HttpErrorResponse) {
|
|
126
|
+
this.error.set(true);
|
|
127
|
+
if (isPolling)
|
|
128
|
+
this.stopPolling();
|
|
129
|
+
return this.handleError(err);
|
|
130
|
+
}
|
|
131
|
+
return throwError(() => err);
|
|
132
|
+
}), options?.retry && options.retry.times > 0
|
|
133
|
+
? delayedRetry((options.retry.delay || 3) * 1000, (options.retry.times || 0) - 1)
|
|
134
|
+
: (source) => source);
|
|
135
|
+
}
|
|
136
|
+
createRequest(func, options, data) {
|
|
137
|
+
const dataItem = this.prepareRequestData(options, data, func.name);
|
|
138
|
+
return func.bind(this)(dataItem.options, dataItem.data);
|
|
139
|
+
}
|
|
140
|
+
prepareRequestData(options, data, funcName) {
|
|
141
|
+
if ((options.mapper && funcName === 'updateRecordRequest') || funcName === 'createRecordRequest') {
|
|
142
|
+
if (options?.mapper) {
|
|
143
|
+
data = options.mapper
|
|
144
|
+
? Array.isArray(data)
|
|
145
|
+
? map((item) => options.mapper(item))
|
|
146
|
+
: options.mapper(data)
|
|
147
|
+
: data;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
if (options?.adapter) {
|
|
152
|
+
data = Array.isArray(data)
|
|
153
|
+
? map((item) => options.adapter(item))
|
|
154
|
+
: options.adapter(data);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return { options: options, data: data };
|
|
158
|
+
}
|
|
159
|
+
handleError(error) {
|
|
160
|
+
this.error.set(error.message || `${error.status} - ${error.statusText}`);
|
|
161
|
+
return throwError(() => error);
|
|
162
|
+
}
|
|
163
|
+
handleErrorWithSnackBar(error) {
|
|
164
|
+
const displayError = ToastDisplay.adapt({
|
|
165
|
+
message: error.message || `${error.status} - ${error.statusText}`,
|
|
166
|
+
action: 'OK',
|
|
167
|
+
color: ToastColors.ERROR,
|
|
168
|
+
icon: 'error',
|
|
169
|
+
duration: 5 * 1000,
|
|
170
|
+
});
|
|
171
|
+
this.toastMessage.toastMessage(displayError);
|
|
172
|
+
}
|
|
173
|
+
stopPolling() {
|
|
174
|
+
this.isPending.set(false);
|
|
175
|
+
this.polling$.next();
|
|
176
|
+
}
|
|
177
|
+
defineReqOptions(options, params) {
|
|
178
|
+
const req = ApiRequest.adapt(options);
|
|
179
|
+
if (req?.path)
|
|
180
|
+
req.path = params ? [...req.path, ...params] : req.path;
|
|
181
|
+
const optionsReq = req ? req : ApiRequest.adapt();
|
|
182
|
+
const updatedOptions = this.objectMergerService.mergeOptions(optionsReq);
|
|
183
|
+
return updatedOptions;
|
|
184
|
+
}
|
|
185
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HTTPManagerSignalsService, deps: [{ token: CONFIG_SETTINGS_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
186
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HTTPManagerSignalsService, providedIn: 'root' }); }
|
|
187
|
+
}
|
|
188
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HTTPManagerSignalsService, decorators: [{
|
|
189
|
+
type: Injectable,
|
|
190
|
+
args: [{
|
|
191
|
+
providedIn: 'root',
|
|
192
|
+
}]
|
|
193
|
+
}], ctorParameters: () => [{ type: i1.ConfigOptions, decorators: [{
|
|
194
|
+
type: Optional
|
|
195
|
+
}, {
|
|
196
|
+
type: Inject,
|
|
197
|
+
args: [CONFIG_SETTINGS_TOKEN]
|
|
198
|
+
}] }] });
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1tYW5hZ2VyLXNpZ25hbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvc2VydmljZXMvcmVxdWVzdC1tYW5hZ2VyLXNlcnZpY2VzL2h0dHAtbWFuYWdlci1zaWduYWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBYyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDdkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUMsQ0FBRyxhQUFhO0FBQ2xGLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7OztBQUtyRSxNQUFNLE9BQU8seUJBQTZCLFNBQVEscUJBQXFCO0lBZXJFLFlBQStELGFBQTZCO1FBQzFGLEtBQUssRUFBRSxDQUFDO1FBRHFELGtCQUFhLEdBQWIsYUFB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SUFBSSxHQUFHLEVBQUUsSUFBSTtZQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBRXZFLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV6RSxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDOytHQW5PVSx5QkFBeUIsa0JBZUoscUJBQXFCO21IQWYxQyx5QkFBeUIsY0FGeEIsTUFBTTs7NEZBRVAseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBZ0JjLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBpbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yLCBPcHRpb25hbCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRhcCwgbWFwLCBmaW5hbGl6ZSwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQXBpUmVxdWVzdCB9IGZyb20gJy4uL3JlcXVlc3QtbWFuYWdlci1zdGF0ZS1zZXJ2aWNlL21vZGVscy9hcGktcmVxdWVzdC5tb2RlbCc7XG5pbXBvcnQgeyBSZXF1ZXN0U2lnbmFsc1NlcnZpY2UgfSBmcm9tICcuL3JlcXVlc3Qtc2lnbmFscy5zZXJ2aWNlJzsgICAvLyDwn5GIIHVwZGF0ZWRcbmltcG9ydCB7IHJlcXVlc3RQb2xsaW5nLCBjb3VudGRvd24sIGRlbGF5ZWRSZXRyeSB9IGZyb20gJy4vcnhqcy1vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBUb2FzdENvbG9ycywgVG9hc3REaXNwbGF5LCBUb2FzdE1lc3NhZ2VEaXNwbGF5U2VydmljZSB9IGZyb20gJ3RvYXN0LW1lc3NhZ2UtZGlzcGxheSc7XG5pbXBvcnQgeyBDT05GSUdfU0VUVElOR1NfVE9LRU4gfSBmcm9tICcuLi8uLi9tb2RlbHMvY29uZmlnLXRva2VuLm1vZGVsJztcbmltcG9ydCB7IENvbmZpZ09wdGlvbnMgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgT2JqZWN0TWVyZ2VyU2VydmljZSB9IGZyb20gJy4uL3V0aWxzL29iamVjdC1tZXJnZXIuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBIVFRQTWFuYWdlclNpZ25hbHNTZXJ2aWNlPFQ+IGV4dGVuZHMgUmVxdWVzdFNpZ25hbHNTZXJ2aWNlIHsgICAvLyDwn5GIIHVzZSBzaWduYWxzIHNlcnZpY2VcblxuICB0b2FzdE1lc3NhZ2UgPSBpbmplY3QoVG9hc3RNZXNzYWdlRGlzcGxheVNlcnZpY2UpO1xuICBuZ19pbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIG9iamVjdE1lcmdlclNlcnZpY2UgPSBpbmplY3QoT2JqZWN0TWVyZ2VyU2VydmljZSk7XG5cbiAgLy8g4pyFIFJlcGxhY2VkIEJlaGF2aW9yU3ViamVjdHMgd2l0aCBBbmd1bGFyIHNpZ25hbHNcbiAgY291bnRkb3duID0gc2lnbmFsPG51bWJlcj4oMCk7XG4gIGVycm9yID0gc2lnbmFsPHN0cmluZyB8IGJvb2xlYW4+KGZhbHNlKTtcbiAgZGF0YSA9IHNpZ25hbDxhbnk+KG51bGwpO1xuXG4gIHByaXZhdGUgcG9sbGluZyQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbmZpZyA9IEFwaVJlcXVlc3QuYWRhcHQoKTtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KENPTkZJR19TRVRUSU5HU19UT0tFTikgcHJpdmF0ZSBjb25maWdPcHRpb25zPzogQ29uZmlnT3B0aW9ucykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWdPcHRpb25zXG4gICAgICA/IEFwaVJlcXVlc3QuYWRhcHQoY29uZmlnT3B0aW9ucy5odHRwUmVxdWVzdE9wdGlvbnMpXG4gICAgICA6IHRoaXMuY29uZmlnO1xuICB9XG5cbiAgLy8gUkVRVUVTVFNcbiAgZ2V0UmVxdWVzdDxUPihvcHRpb25zPzogQXBpUmVxdWVzdCwgcGFyYW1zPzogYW55W10pIHtcbiAgICB0aGlzLmlzUGVuZGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5kYXRhLnNldChudWxsKTtcblxuICAgIGNvbnN0IHVwZGF0ZWRPcHRpb25zID0gdGhpcy5kZWZpbmVSZXFPcHRpb25zKG9wdGlvbnMsIHBhcmFtcyk7XG4gICAgY29uc3QgZnVuYyA9IHRoaXMuZ2V0UmVjb3JkUmVxdWVzdDtcbiAgICBjb25zdCByZXF1ZXN0cyA9IHRoaXMuY3JlYXRlUmVxdWVzdChmdW5jLCB1cGRhdGVkT3B0aW9ucyk7XG5cbiAgICByZXR1cm4gdGhpcy5jcmVhdGVPYnNlcnZhYmxlPFQ+KHVwZGF0ZWRPcHRpb25zLCByZXF1ZXN0cywgZnVuYy5uYW1lKS5waXBlKFxuICAgICAgdGFwKGRhdGEgPT4gdGhpcy5kYXRhLnNldChkYXRhKSksXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmlzUGVuZGluZy5zZXQoZmFsc2UpKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICBpZiAodXBkYXRlZE9wdGlvbnMuZGlzcGxheUVycm9yKSB0aGlzLmhhbmRsZUVycm9yV2l0aFNuYWNrQmFyKGVycik7XG4gICAgICAgIHRoaXMuaXNQZW5kaW5nLnNldChmYWxzZSk7XG4gICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUVycm9yKGVycik7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwb3N0UmVxdWVzdDxUIGV4dGVuZHMgeyBpZD86IG51bWJlcnxzdHJpbmcgfT4oZGF0YTogVCwgb3B0aW9uczogQXBpUmVxdWVzdCwgcGFyYW1zPzogYW55W10pIHtcbiAgICB0aGlzLmlzUGVuZGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5kYXRhLnNldChudWxsKTtcblxuICAgIGNvbnN0IHVwZGF0ZWRPcHRpb25zID0gdGhpcy5kZWZpbmVSZXFPcHRpb25zKG9wdGlvbnMsIHBhcmFtcyk7XG4gICAgY29uc3QgZnVuYyA9IHRoaXMuY3JlYXRlUmVjb3JkUmVxdWVzdDtcbiAgICBjb25zdCByZXF1ZXN0cyA9IHRoaXMuY3JlYXRlUmVxdWVzdChmdW5jLCB1cGRhdGVkT3B0aW9ucywgZGF0YSk7XG5cbiAgICByZXR1cm4gdGhpcy5jcmVhdGVPYnNlcnZhYmxlPFQ+KHVwZGF0ZWRPcHRpb25zLCByZXF1ZXN0cywgZnVuYy5uYW1lKS5waXBlKFxuICAgICAgdGFwKGRhdGEgPT4gdGhpcy5kYXRhLnNldChkYXRhKSksXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmlzUGVuZGluZy5zZXQoZmFsc2UpKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICBpZiAodXBkYXRlZE9wdGlvbnMuZGlzcGxheUVycm9yKSB0aGlzLmhhbmRsZUVycm9yV2l0aFNuYWNrQmFyKGVycik7XG4gICAgICAgIHRoaXMuaXNQZW5kaW5nLnNldChmYWxzZSk7XG4gICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUVycm9yKGVycik7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdXRSZXF1ZXN0PFQgZXh0ZW5kcyB7IGlkPzogbnVtYmVyfHN0cmluZyB9PihkYXRhOiBULCBvcHRpb25zOiBBcGlSZXF1ZXN0LCBwYXJhbXM/OiBhbnlbXSkge1xuICAgIHRoaXMuaXNQZW5kaW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLmRhdGEuc2V0KG51bGwpO1xuXG4gICAgY29uc3QgdXBkYXRlZE9wdGlvbnMgPSB0aGlzLmRlZmluZVJlcU9wdGlvbnMob3B0aW9ucywgcGFyYW1zKTtcbiAgICBjb25zdCBmdW5jID0gdGhpcy51cGRhdGVSZWNvcmRSZXF1ZXN0O1xuICAgIGNvbnN0IHJlcXVlc3RzID0gdGhpcy5jcmVhdGVSZXF1ZXN0KGZ1bmMsIHVwZGF0ZWRPcHRpb25zLCBkYXRhKTtcblxuICAgIHJldHVybiB0aGlzLmNyZWF0ZU9ic2VydmFibGU8VD4odXBkYXRlZE9wdGlvbnMsIHJlcXVlc3RzLCBmdW5jLm5hbWUpLnBpcGUoXG4gICAgICB0YXAoZGF0YSA9PiB0aGlzLmRhdGEuc2V0KGRhdGEpKSxcbiAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuaXNQZW5kaW5nLnNldChmYWxzZSkpLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgIGlmICh1cGRhdGVkT3B0aW9ucy5kaXNwbGF5RXJyb3IpIHRoaXMuaGFuZGxlRXJyb3JXaXRoU25hY2tCYXIoZXJyKTtcbiAgICAgICAgdGhpcy5pc1BlbmRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRXJyb3IoZXJyKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZVJlcXVlc3Q8VD4ob3B0aW9uczogQXBpUmVxdWVzdCwgcGFyYW1zPzogYW55W10pIHtcbiAgICB0aGlzLmlzUGVuZGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5kYXRhLnNldChudWxsKTtcblxuICAgIGNvbnN0IHVwZGF0ZWRPcHRpb25zID0gdGhpcy5kZWZpbmVSZXFPcHRpb25zKG9wdGlvbnMsIHBhcmFtcyk7XG4gICAgY29uc3QgZnVuYyA9IHRoaXMuZGVsZXRlUmVjb3JkUmVxdWVzdDtcbiAgICBjb25zdCByZXF1ZXN0cyA9IHRoaXMuY3JlYXRlUmVxdWVzdChmdW5jLCB1cGRhdGVkT3B0aW9ucyk7XG5cbiAgICByZXR1cm4gdGhpcy5jcmVhdGVPYnNlcnZhYmxlPFQ+KHVwZGF0ZWRPcHRpb25zLCByZXF1ZXN0cywgZnVuYy5uYW1lKS5waXBlKFxuICAgICAgdGFwKGRhdGEgPT4gdGhpcy5kYXRhLnNldChkYXRhKSksXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmlzUGVuZGluZy5zZXQoZmFsc2UpKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICBpZiAodXBkYXRlZE9wdGlvbnMuZGlzcGxheUVycm9yKSB0aGlzLmhhbmRsZUVycm9yV2l0aFNuYWNrQmFyKGVycik7XG4gICAgICAgIHRoaXMuaXNQZW5kaW5nLnNldChmYWxzZSk7XG4gICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUVycm9yKGVycik7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBkb3dubG9hZFJlcXVlc3Q8VD4ob3B0aW9uczogQXBpUmVxdWVzdCwgcGFyYW1zPzogYW55W10sIHNhdmVBcz86IHN0cmluZykge1xuICAgIHRoaXMuaXNQZW5kaW5nLnNldCh0cnVlKTtcblxuICAgIGNvbnN0IHVwZGF0ZWRPcHRpb25zID0gdGhpcy5kZWZpbmVSZXFPcHRpb25zKG9wdGlvbnMsIHBhcmFtcyk7XG4gICAgY29uc3QgZnVuYyA9IHRoaXMuZG93bmxvYWRGaWxlUmVxdWVzdDtcbiAgICBjb25zdCByZXF1ZXN0cyA9IHRoaXMuY3JlYXRlUmVxdWVzdChmdW5jLCB1cGRhdGVkT3B0aW9ucyk7XG5cbiAgICByZXR1cm4gdGhpcy5jcmVhdGVPYnNlcnZhYmxlPFQ+KHVwZGF0ZWRPcHRpb25zLCByZXF1ZXN0cywgZnVuYy5uYW1lKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgIHRoaXMuZXJyb3Iuc2V0KHRydWUpO1xuICAgICAgICB0aGlzLmlzUGVuZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVFcnJvcihlcnIpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLy8gLS0tIHByaXZhdGUgaGVscGVycyAtLS1cbiAgcHJpdmF0ZSBjcmVhdGVPYnNlcnZhYmxlPFQ+KG9wdGlvbnM6IEFwaVJlcXVlc3QsIHJlcXVlc3QkOiBPYnNlcnZhYmxlPFQ+LCBmdW5jTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgcG9sbGluZyA9XG4gICAgICBvcHRpb25zLnBvbGxpbmcgPyAob3B0aW9ucy5wb2xsaW5nID4gMCA/IHRydWUgOiBmYWxzZSkgOiBmYWxzZTtcblxuICAgIGNvbnN0IGlzUG9sbGluZyA9XG4gICAgICBwb2xsaW5nICYmXG4gICAgICAhKGZ1bmNOYW1lID09PSAnZGVsZXRlUmVjb3JkUmVxdWVzdCcgfHxcbiAgICAgICAgZnVuY05hbWUgPT09ICd1cGRhdGVSZWNvcmRSZXF1ZXN0JyB8fFxuICAgICAgICBmdW5jTmFtZSA9PT0gJ2NyZWF0ZVJlY29yZFJlcXVlc3QnKTtcblxuICAgIHRoaXMucG9sbGluZyQubmV4dCgpO1xuXG4gICAgY29uc3QgcG9sbGluZyQgPVxuICAgICAgKGlzUG9sbGluZyAmJiBvcHRpb25zLnBvbGxpbmcpIHx8IDAgPj0gM1xuICAgICAgICA/IHJlcXVlc3QkLnBpcGUoXG4gICAgICAgICAgICByZXF1ZXN0UG9sbGluZygob3B0aW9ucy5wb2xsaW5nIHx8IDApICsgMSwgdGhpcy5wb2xsaW5nJCwgdGhpcy5pc1BlbmRpbmcpLFxuICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMuY291bnRkb3duLnNldCgwKSksXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIW9wdGlvbnMucG9sbGluZykgcmV0dXJuO1xuICAgICAgICAgICAgICBjb25zdCBjb3VudCA9IG9wdGlvbnMucG9sbGluZyA/IG9wdGlvbnMucG9sbGluZyA6IDA7XG4gICAgICAgICAgICAgIGNvdW50ZG93bihjb3VudClcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgIG1hcCgoeDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvbGxpbmdJblNlYyA9IG9wdGlvbnMucG9sbGluZyB8fCAwO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwZXJjZW50YWdlQ29tcGxldGVkID0gKChwb2xsaW5nSW5TZWMgLSB4KSAvIHBvbGxpbmdJblNlYykgKiAxMDA7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLnJvdW5kKHBlcmNlbnRhZ2VDb21wbGV0ZWQpO1xuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoY291bnREb3duVmFsdWU6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb3VudGRvd24uc2V0KGNvdW50RG93blZhbHVlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIClcbiAgICAgICAgOiByZXF1ZXN0JC5waXBlKFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvci5zZXQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnIpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuXG4gICAgcmV0dXJuIHBvbGxpbmckLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKChlcnI6IGFueSwgY2F1Z2h0OiBPYnNlcnZhYmxlPFQ+KSA9PiB7XG4gICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgIHRoaXMuZXJyb3Iuc2V0KHRydWUpO1xuICAgICAgICAgIGlmIChpc1BvbGxpbmcpIHRoaXMuc3RvcFBvbGxpbmcoKTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVFcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycik7XG4gICAgICB9KSxcbiAgICAgIG9wdGlvbnM/LnJldHJ5ICYmIG9wdGlvbnMucmV0cnkudGltZXMgPiAwXG4gICAgICAgID8gZGVsYXllZFJldHJ5KChvcHRpb25zLnJldHJ5LmRlbGF5IHx8IDMpICogMTAwMCwgKG9wdGlvbnMucmV0cnkudGltZXMgfHwgMCkgLSAxKVxuICAgICAgICA6IChzb3VyY2U6IE9ic2VydmFibGU8VD4pID0+IHNvdXJjZVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVJlcXVlc3QoZnVuYzogRnVuY3Rpb24sIG9wdGlvbnM6IEFwaVJlcXVlc3QsIGRhdGE/OiBhbnkgfCBhbnlbXSkge1xuICAgIGNvbnN0IGRhdGFJdGVtID0gdGhpcy5wcmVwYXJlUmVxdWVzdERhdGEob3B0aW9ucywgZGF0YSwgZnVuYy5uYW1lKTtcbiAgICByZXR1cm4gZnVuYy5iaW5kKHRoaXMpKGRhdGFJdGVtLm9wdGlvbnMsIGRhdGFJdGVtLmRhdGEpO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVwYXJlUmVxdWVzdERhdGEob3B0aW9uczogQXBpUmVxdWVzdCwgZGF0YTogYW55LCBmdW5jTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKChvcHRpb25zLm1hcHBlciAmJiBmdW5jTmFtZSA9PT0gJ3VwZGF0ZVJlY29yZFJlcXVlc3QnKSB8fCBmdW5jTmFtZSA9PT0gJ2NyZWF0ZVJlY29yZFJlcXVlc3QnKSB7XG4gICAgICBpZiAob3B0aW9ucz8ubWFwcGVyKSB7XG4gICAgICAgIGRhdGEgPSBvcHRpb25zLm1hcHBlclxuICAgICAgICAgID8gQXJyYXkuaXNBcnJheShkYXRhKVxuICAgICAgICAgICAgPyBtYXAoKGl0ZW0pID0+IG9wdGlvbnMubWFwcGVyKGl0ZW0pKVxuICAgICAgICAgICAgOiBvcHRpb25zLm1hcHBlcihkYXRhKVxuICAgICAgICAgIDogZGF0YTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKG9wdGlvbnM/LmFkYXB0ZXIpIHtcbiAgICAgICAgZGF0YSA9IEFycmF5LmlzQXJyYXkoZGF0YSlcbiAgICAgICAgICA/IG1hcCgoaXRlbSkgPT4gb3B0aW9ucy5hZGFwdGVyKGl0ZW0pKVxuICAgICAgICAgIDogb3B0aW9ucy5hZGFwdGVyKGRhdGEpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBvcHRpb25zOiBvcHRpb25zLCBkYXRhOiBkYXRhIH07XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yKGVycm9yOiBSZXNwb25zZSB8IGFueSkge1xuICAgIHRoaXMuZXJyb3Iuc2V0KGVycm9yLm1lc3NhZ2UgfHwgYCR7ZXJyb3Iuc3RhdHVzfSAtICR7ZXJyb3Iuc3RhdHVzVGV4dH1gKTtcbiAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yV2l0aFNuYWNrQmFyKGVycm9yOiBSZXNwb25zZSB8IGFueSkge1xuICAgIGNvbnN0IGRpc3BsYXlFcnJvciA9IFRvYXN0RGlzcGxheS5hZGFwdCh7XG4gICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlIHx8IGAke2Vycm9yLnN0YXR1c30gLSAke2Vycm9yLnN0YXR1c1RleHR9YCxcbiAgICAgIGFjdGlvbjogJ09LJyxcbiAgICAgIGNvbG9yOiBUb2FzdENvbG9ycy5FUlJPUixcbiAgICAgIGljb246ICdlcnJvcicsXG4gICAgICBkdXJhdGlvbjogNSAqIDEwMDAsXG4gICAgfSk7XG4gICAgdGhpcy50b2FzdE1lc3NhZ2UudG9hc3RNZXNzYWdlKGRpc3BsYXlFcnJvcik7XG4gIH1cblxuICBwcml2YXRlIHN0b3BQb2xsaW5nKCkge1xuICAgIHRoaXMuaXNQZW5kaW5nLnNldChmYWxzZSk7XG4gICAgdGhpcy5wb2xsaW5nJC5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIGRlZmluZVJlcU9wdGlvbnMob3B0aW9uczogYW55LCBwYXJhbXM/OiBhbnlbXSkge1xuICAgIGNvbnN0IHJlcSA9IEFwaVJlcXVlc3QuYWRhcHQob3B0aW9ucyk7XG4gICAgaWYgKHJlcT8ucGF0aCkgcmVxLnBhdGggPSBwYXJhbXMgPyBbLi4ucmVxLnBhdGgsIC4uLnBhcmFtc10gOiByZXEucGF0aDtcblxuICAgIGNvbnN0IG9wdGlvbnNSZXEgPSByZXEgPyByZXEgOiBBcGlSZXF1ZXN0LmFkYXB0KCk7XG4gICAgY29uc3QgdXBkYXRlZE9wdGlvbnMgPSB0aGlzLm9iamVjdE1lcmdlclNlcnZpY2UubWVyZ2VPcHRpb25zKG9wdGlvbnNSZXEpO1xuXG4gICAgcmV0dXJuIHVwZGF0ZWRPcHRpb25zO1xuICB9XG59XG4iXX0=
|
|
@@ -190,10 +190,10 @@ export class HTTPManagerService extends RequestService {
|
|
|
190
190
|
const updatedOptions = this.objectMergerService.mergeOptions(optionsReq);
|
|
191
191
|
return updatedOptions;
|
|
192
192
|
}
|
|
193
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
194
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
193
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HTTPManagerService, deps: [{ token: CONFIG_SETTINGS_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
194
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HTTPManagerService, providedIn: 'root' }); }
|
|
195
195
|
}
|
|
196
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
196
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HTTPManagerService, decorators: [{
|
|
197
197
|
type: Injectable,
|
|
198
198
|
args: [{
|
|
199
199
|
providedIn: 'root',
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from "./http-manager.service";
|
|
2
|
+
export * from "./http-manager-signals.service";
|
|
2
3
|
// export * from './request.service';
|
|
3
4
|
export * from "../../models/index";
|
|
4
5
|
export * from "./rxjs-operators/index";
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3JlcXVlc3QtbWFuYWdlci1zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MscUNBQXFDO0FBRXJDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2h0dHAtbWFuYWdlci5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9odHRwLW1hbmFnZXItc2lnbmFscy5zZXJ2aWNlXCI7XG4vLyBleHBvcnQgKiBmcm9tICcuL3JlcXVlc3Quc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gXCIuLi8uLi9tb2RlbHMvaW5kZXhcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J4anMtb3BlcmF0b3JzL2luZGV4XCI7XG4iXX0=
|