http-request-manager 19.0.0 → 19.2.5
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/README.md +585 -300
- package/fesm2022/http-request-manager.mjs +9434 -3133
- package/fesm2022/http-request-manager.mjs.map +1 -1
- package/package.json +7 -9
- package/types/http-request-manager.d.ts +3546 -0
- package/esm2022/http-request-manager.mjs +0 -5
- package/esm2022/lib/http-request-manager.module.mjs +0 -186
- package/esm2022/lib/http-request-services-demo/database-data-demo/database-data-demo.component.mjs +0 -71
- package/esm2022/lib/http-request-services-demo/http-request-services-demo.component.mjs +0 -45
- package/esm2022/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.mjs +0 -173
- package/esm2022/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.mjs +0 -184
- package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.mjs +0 -80
- package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.mjs +0 -42
- package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.mjs +0 -88
- package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.mjs +0 -11
- package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.mjs +0 -29
- package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.mjs +0 -9
- package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.mjs +0 -12
- package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.mjs +0 -14
- package/esm2022/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.mjs +0 -315
- package/esm2022/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.mjs +0 -270
- package/esm2022/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.mjs +0 -67
- package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.mjs +0 -9
- package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.mjs +0 -12
- package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.mjs +0 -14
- package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.mjs +0 -336
- package/esm2022/lib/index.mjs +0 -4
- package/esm2022/lib/interceptors/credentials.interceptor.mjs +0 -14
- package/esm2022/lib/interceptors/index.mjs +0 -5
- package/esm2022/lib/interceptors/models/error-settings.model.mjs +0 -10
- package/esm2022/lib/interceptors/proxy-debugger.interceptor.mjs +0 -47
- package/esm2022/lib/interceptors/request-error.interceptor.mjs +0 -49
- package/esm2022/lib/interceptors/request-header.interceptor.mjs +0 -41
- package/esm2022/lib/models/config-http-options.model.mjs +0 -18
- package/esm2022/lib/models/config-local-storage-options.model.mjs +0 -12
- package/esm2022/lib/models/config-options.model.mjs +0 -12
- package/esm2022/lib/models/config-token.model.mjs +0 -8
- package/esm2022/lib/models/data-type.enum.mjs +0 -7
- package/esm2022/lib/models/database-storage.model.mjs +0 -10
- package/esm2022/lib/models/index.mjs +0 -7
- package/esm2022/lib/models/retry-options.model.mjs +0 -10
- package/esm2022/lib/services/database-manager-services/database.manager.service.mjs +0 -119
- package/esm2022/lib/services/database-manager-services/db.storage.service.mjs +0 -143
- package/esm2022/lib/services/database-manager-services/index.mjs +0 -4
- package/esm2022/lib/services/database-manager-services/models/table-schema.mjs +0 -20
- package/esm2022/lib/services/index.mjs +0 -6
- package/esm2022/lib/services/local-storage-manager-service/index.mjs +0 -4
- package/esm2022/lib/services/local-storage-manager-service/local-storage-manager.service.mjs +0 -302
- package/esm2022/lib/services/local-storage-manager-service/local-storage-signals-manager.service.mjs +0 -277
- package/esm2022/lib/services/local-storage-manager-service/models/global-store-options.model.mjs +0 -13
- package/esm2022/lib/services/local-storage-manager-service/models/index.mjs +0 -6
- package/esm2022/lib/services/local-storage-manager-service/models/setting-options.model.mjs +0 -17
- package/esm2022/lib/services/local-storage-manager-service/models/storage-data.model.mjs +0 -10
- package/esm2022/lib/services/local-storage-manager-service/models/storage-option.model.mjs +0 -12
- package/esm2022/lib/services/local-storage-manager-service/models/storage-type.enum.mjs +0 -7
- package/esm2022/lib/services/request-manager-services/http-manager-signals.service.mjs +0 -199
- package/esm2022/lib/services/request-manager-services/http-manager.service.mjs +0 -207
- package/esm2022/lib/services/request-manager-services/index.mjs +0 -6
- package/esm2022/lib/services/request-manager-services/request-signals.service.mjs +0 -170
- package/esm2022/lib/services/request-manager-services/request.service.mjs +0 -191
- package/esm2022/lib/services/request-manager-services/rxjs-operators/countdown.mjs +0 -9
- package/esm2022/lib/services/request-manager-services/rxjs-operators/delay-retry.mjs +0 -10
- package/esm2022/lib/services/request-manager-services/rxjs-operators/index.mjs +0 -5
- package/esm2022/lib/services/request-manager-services/rxjs-operators/request-polling.mjs +0 -33
- package/esm2022/lib/services/request-manager-services/rxjs-operators/request-streaming.mjs +0 -19
- package/esm2022/lib/services/request-manager-state-service/http-manager-state.store.mjs +0 -360
- package/esm2022/lib/services/request-manager-state-service/index.mjs +0 -3
- package/esm2022/lib/services/request-manager-state-service/models/api-request.model.mjs +0 -21
- package/esm2022/lib/services/request-manager-state-service/models/index.mjs +0 -3
- package/esm2022/lib/services/request-manager-state-service/models/request-options.model.mjs +0 -10
- package/esm2022/lib/services/request-manager-state-service/models/ws-options.model.mjs +0 -12
- package/esm2022/lib/services/utils/app.service.mjs +0 -26
- package/esm2022/lib/services/utils/encryption/asymmetrical-encryption.service.mjs +0 -186
- package/esm2022/lib/services/utils/encryption/encryption-test.service.mjs +0 -35
- package/esm2022/lib/services/utils/encryption/index.mjs +0 -4
- package/esm2022/lib/services/utils/encryption/random.mjs +0 -52
- package/esm2022/lib/services/utils/encryption/symmetrical-encryption.service.mjs +0 -77
- package/esm2022/lib/services/utils/headers.service.mjs +0 -21
- package/esm2022/lib/services/utils/index.mjs +0 -6
- package/esm2022/lib/services/utils/object-merger.service.mjs +0 -70
- package/esm2022/lib/services/utils/path-query.service.mjs +0 -54
- package/esm2022/lib/services/utils/utils.service.mjs +0 -155
- package/esm2022/lib/services/ws-manager-service/models/assortment-data.model.mjs +0 -10
- package/esm2022/lib/services/ws-manager-service/websocket.service.mjs +0 -133
- package/esm2022/public-api.mjs +0 -11
- package/http-request-manager-19.0.0.tgz +0 -0
- package/index.d.ts +0 -5
- package/lib/http-request-manager.module.d.ts +0 -35
- package/lib/http-request-services-demo/database-data-demo/database-data-demo.component.d.ts +0 -19
- package/lib/http-request-services-demo/http-request-services-demo.component.d.ts +0 -32
- package/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.d.ts +0 -56
- package/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.d.ts +0 -55
- package/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.d.ts +0 -26
- package/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.d.ts +0 -13
- package/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.d.ts +0 -27
- package/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.d.ts +0 -12
- package/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.d.ts +0 -16
- package/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.d.ts +0 -8
- package/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.d.ts +0 -14
- package/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.d.ts +0 -14
- package/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.d.ts +0 -107
- package/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.d.ts +0 -122
- package/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.d.ts +0 -15
- package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.d.ts +0 -8
- package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.d.ts +0 -14
- package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.d.ts +0 -14
- package/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.d.ts +0 -106
- package/lib/index.d.ts +0 -3
- package/lib/interceptors/credentials.interceptor.d.ts +0 -8
- package/lib/interceptors/index.d.ts +0 -4
- package/lib/interceptors/models/error-settings.model.d.ts +0 -10
- package/lib/interceptors/proxy-debugger.interceptor.d.ts +0 -12
- package/lib/interceptors/request-error.interceptor.d.ts +0 -10
- package/lib/interceptors/request-header.interceptor.d.ts +0 -15
- package/lib/models/config-http-options.model.d.ts +0 -21
- package/lib/models/config-local-storage-options.model.d.ts +0 -13
- package/lib/models/config-options.model.d.ts +0 -12
- package/lib/models/config-token.model.d.ts +0 -8
- package/lib/models/data-type.enum.d.ts +0 -5
- package/lib/models/database-storage.model.d.ts +0 -10
- package/lib/models/index.d.ts +0 -6
- package/lib/models/retry-options.model.d.ts +0 -10
- package/lib/services/database-manager-services/database.manager.service.d.ts +0 -31
- package/lib/services/database-manager-services/db.storage.service.d.ts +0 -26
- package/lib/services/database-manager-services/index.d.ts +0 -3
- package/lib/services/database-manager-services/models/table-schema.d.ts +0 -11
- package/lib/services/index.d.ts +0 -4
- package/lib/services/local-storage-manager-service/index.d.ts +0 -3
- package/lib/services/local-storage-manager-service/local-storage-manager.service.d.ts +0 -86
- package/lib/services/local-storage-manager-service/local-storage-signals-manager.service.d.ts +0 -64
- package/lib/services/local-storage-manager-service/models/global-store-options.model.d.ts +0 -15
- package/lib/services/local-storage-manager-service/models/index.d.ts +0 -5
- package/lib/services/local-storage-manager-service/models/setting-options.model.d.ts +0 -15
- package/lib/services/local-storage-manager-service/models/storage-data.model.d.ts +0 -10
- package/lib/services/local-storage-manager-service/models/storage-option.model.d.ts +0 -13
- package/lib/services/local-storage-manager-service/models/storage-type.enum.d.ts +0 -5
- package/lib/services/request-manager-services/http-manager-signals.service.d.ts +0 -38
- package/lib/services/request-manager-services/http-manager.service.d.ts +0 -41
- package/lib/services/request-manager-services/index.d.ts +0 -4
- package/lib/services/request-manager-services/request-signals.service.d.ts +0 -26
- package/lib/services/request-manager-services/request.service.d.ts +0 -28
- package/lib/services/request-manager-services/rxjs-operators/countdown.d.ts +0 -2
- package/lib/services/request-manager-services/rxjs-operators/delay-retry.d.ts +0 -2
- package/lib/services/request-manager-services/rxjs-operators/index.d.ts +0 -4
- package/lib/services/request-manager-services/rxjs-operators/request-polling.d.ts +0 -2
- package/lib/services/request-manager-services/rxjs-operators/request-streaming.d.ts +0 -2
- package/lib/services/request-manager-state-service/http-manager-state.store.d.ts +0 -64
- package/lib/services/request-manager-state-service/index.d.ts +0 -2
- package/lib/services/request-manager-state-service/models/api-request.model.d.ts +0 -30
- package/lib/services/request-manager-state-service/models/index.d.ts +0 -2
- package/lib/services/request-manager-state-service/models/request-options.model.d.ts +0 -10
- package/lib/services/request-manager-state-service/models/ws-options.model.d.ts +0 -14
- package/lib/services/utils/app.service.d.ts +0 -8
- package/lib/services/utils/encryption/asymmetrical-encryption.service.d.ts +0 -17
- package/lib/services/utils/encryption/encryption-test.service.d.ts +0 -10
- package/lib/services/utils/encryption/index.d.ts +0 -3
- package/lib/services/utils/encryption/random.d.ts +0 -7
- package/lib/services/utils/encryption/symmetrical-encryption.service.d.ts +0 -14
- package/lib/services/utils/headers.service.d.ts +0 -10
- package/lib/services/utils/index.d.ts +0 -5
- package/lib/services/utils/object-merger.service.d.ts +0 -14
- package/lib/services/utils/path-query.service.d.ts +0 -11
- package/lib/services/utils/utils.service.d.ts +0 -24
- package/lib/services/ws-manager-service/models/assortment-data.model.d.ts +0 -10
- package/lib/services/ws-manager-service/websocket.service.d.ts +0 -21
- package/public-api.d.ts +0 -7
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
import { HttpClient } from '@angular/common/http';
|
|
2
|
-
import { Injectable, inject } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class UtilsService {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.http = inject(HttpClient);
|
|
7
|
-
this.lc = (str) => str.toLowerCase().replace(/[^\w\s]/g, '').replace(/\s+/g, '_');
|
|
8
|
-
}
|
|
9
|
-
isString(x) {
|
|
10
|
-
return Object.prototype.toString.call(x) === '[object String]';
|
|
11
|
-
}
|
|
12
|
-
isObject(obj) {
|
|
13
|
-
return Object.prototype.toString.call(obj) === '[object Object]';
|
|
14
|
-
}
|
|
15
|
-
JSONToString(value) {
|
|
16
|
-
return (this.isObject(value)) ? JSON.stringify(value) : value;
|
|
17
|
-
}
|
|
18
|
-
stringToJSON(value) {
|
|
19
|
-
return (this.isJSON(value)) ? JSON.parse(value) : value;
|
|
20
|
-
}
|
|
21
|
-
isJSON(str) {
|
|
22
|
-
try {
|
|
23
|
-
JSON.parse(str);
|
|
24
|
-
}
|
|
25
|
-
catch (e) {
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
return true;
|
|
29
|
-
}
|
|
30
|
-
getValueByProp(obj, prop) {
|
|
31
|
-
if (typeof obj === 'undefined')
|
|
32
|
-
return false;
|
|
33
|
-
return obj[prop];
|
|
34
|
-
}
|
|
35
|
-
objectsEqual(x, y) {
|
|
36
|
-
const ok = Object.keys, tx = typeof x, ty = typeof y;
|
|
37
|
-
return x && y && tx === 'object' && tx === ty ? (ok(x).length === ok(y).length &&
|
|
38
|
-
ok(x).every((key) => this.objectsEqual(x[key], y[key]))) : (x === y);
|
|
39
|
-
}
|
|
40
|
-
getJSON(file) {
|
|
41
|
-
return this.http.get(`assets/data/${file}`);
|
|
42
|
-
}
|
|
43
|
-
get today() {
|
|
44
|
-
return new Date().getMilliseconds() / 1000;
|
|
45
|
-
}
|
|
46
|
-
base32ToHex(base32) {
|
|
47
|
-
const base32chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";
|
|
48
|
-
const charToValue = (char) => base32chars.indexOf(char.toUpperCase());
|
|
49
|
-
let bits = '';
|
|
50
|
-
let hex = '';
|
|
51
|
-
for (let i = 0; i < base32.length; i++) {
|
|
52
|
-
const val = charToValue(base32.charAt(i));
|
|
53
|
-
bits += val.toString(2).padStart(5, '0');
|
|
54
|
-
}
|
|
55
|
-
for (let i = 0; i + 4 <= bits.length; i += 4) {
|
|
56
|
-
const chunk = bits.substr(i, 4);
|
|
57
|
-
hex += parseInt(chunk, 2).toString(16);
|
|
58
|
-
}
|
|
59
|
-
return hex.toUpperCase();
|
|
60
|
-
}
|
|
61
|
-
binaryToHex(binary) {
|
|
62
|
-
let hex = '';
|
|
63
|
-
for (let i = 0; i < binary.length; i += 8) {
|
|
64
|
-
const byte = binary.substr(i, 8);
|
|
65
|
-
const decimal = parseInt(byte, 2);
|
|
66
|
-
hex += decimal.toString(16).padStart(2, '0');
|
|
67
|
-
}
|
|
68
|
-
return hex.padStart(32, '0').substr(0, 32);
|
|
69
|
-
}
|
|
70
|
-
// y = years, m = months, w = weeks, d = days, hr = hours, mn = minutes else seconds
|
|
71
|
-
// returns epoch time corresponding to the expiry type
|
|
72
|
-
expires(str) {
|
|
73
|
-
if (!str)
|
|
74
|
-
return;
|
|
75
|
-
const match = str.match(/[^0-9]+$/);
|
|
76
|
-
const type = (match) ? str.slice(-match[0].length) : 0;
|
|
77
|
-
const now = Math.floor(new Date().getTime() / 1000);
|
|
78
|
-
let value = 0;
|
|
79
|
-
switch (type) {
|
|
80
|
-
case 'y':
|
|
81
|
-
const years = parseInt(str.slice(0, -1));
|
|
82
|
-
value = now + (years * 31556926);
|
|
83
|
-
break;
|
|
84
|
-
case 'm':
|
|
85
|
-
const months = parseInt(str.slice(0, -1));
|
|
86
|
-
value = now + (months * 2629743);
|
|
87
|
-
break;
|
|
88
|
-
case 'w':
|
|
89
|
-
const weeks = parseInt(str.slice(0, -1));
|
|
90
|
-
value = now + (weeks * 604800);
|
|
91
|
-
break;
|
|
92
|
-
case 'd':
|
|
93
|
-
const days = parseInt(str.slice(0, -1));
|
|
94
|
-
value = now + (days * 86400);
|
|
95
|
-
break;
|
|
96
|
-
case 'hr':
|
|
97
|
-
const hrs = parseInt(str.slice(0, -2));
|
|
98
|
-
value = now + (hrs * 3600);
|
|
99
|
-
break;
|
|
100
|
-
case 'mn':
|
|
101
|
-
const min = parseInt(str.slice(0, -2));
|
|
102
|
-
value = now + (min * 60);
|
|
103
|
-
break;
|
|
104
|
-
default: //seconds
|
|
105
|
-
const sec = parseInt(str.slice(0, -1));
|
|
106
|
-
value = now + (sec);
|
|
107
|
-
break;
|
|
108
|
-
}
|
|
109
|
-
return value;
|
|
110
|
-
}
|
|
111
|
-
hasExpired(expiryDate) {
|
|
112
|
-
if (!expiryDate || expiryDate === 0)
|
|
113
|
-
return false;
|
|
114
|
-
const currentTime = Math.floor(new Date().getTime() / 1000);
|
|
115
|
-
return expiryDate < currentTime;
|
|
116
|
-
}
|
|
117
|
-
hasExpiry(setting) {
|
|
118
|
-
return (setting?.expires) ? true : false;
|
|
119
|
-
}
|
|
120
|
-
expiresIn(expiryDate) {
|
|
121
|
-
if (!expiryDate)
|
|
122
|
-
return;
|
|
123
|
-
const now = Math.floor(new Date().getTime() / 1000);
|
|
124
|
-
let diff = expiryDate - now;
|
|
125
|
-
if (diff <= 0)
|
|
126
|
-
return "Expired";
|
|
127
|
-
const units = [
|
|
128
|
-
{ label: 'y', seconds: 31536000 },
|
|
129
|
-
{ label: 'm', seconds: 2592000 },
|
|
130
|
-
{ label: 'w', seconds: 604800 },
|
|
131
|
-
{ label: 'd', seconds: 86400 },
|
|
132
|
-
{ label: 'h', seconds: 3600 },
|
|
133
|
-
{ label: 'min', seconds: 60 },
|
|
134
|
-
{ label: '', seconds: 1 },
|
|
135
|
-
];
|
|
136
|
-
let result = [];
|
|
137
|
-
for (const unit of units) {
|
|
138
|
-
if (diff >= unit.seconds) {
|
|
139
|
-
const value = Math.floor(diff / unit.seconds);
|
|
140
|
-
diff %= unit.seconds;
|
|
141
|
-
result.push(`${value}${unit.label}${value > 1 ? 's' : ''}`);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
return result.join(', ');
|
|
145
|
-
}
|
|
146
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UtilsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
147
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UtilsService, providedIn: 'root' }); }
|
|
148
|
-
}
|
|
149
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UtilsService, decorators: [{
|
|
150
|
-
type: Injectable,
|
|
151
|
-
args: [{
|
|
152
|
-
providedIn: 'root'
|
|
153
|
-
}]
|
|
154
|
-
}], ctorParameters: () => [] });
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvc2VydmljZXMvdXRpbHMvdXRpbHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS25ELE1BQU0sT0FBTyxZQUFZO0lBSXZCO1FBRkEsU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQW9MekIsT0FBRSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBbExwRSxDQUFDO0lBRWpCLFFBQVEsQ0FBQyxDQUFrQjtRQUN6QixPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxpQkFBaUIsQ0FBQTtJQUNoRSxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQVE7UUFDZixPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxpQkFBaUIsQ0FBQTtJQUNsRSxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVU7UUFDckIsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0lBQy9ELENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYTtRQUN4QixPQUFPLENBQUMsSUFB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LCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVXRpbHNTZXJ2aWNlIHtcblxuICBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpXG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBpc1N0cmluZyh4OiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHgpID09PSAnW29iamVjdCBTdHJpbmddJ1xuICB9XG5cbiAgaXNPYmplY3Qob2JqOiBhbnkpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikgPT09ICdbb2JqZWN0IE9iamVjdF0nXG4gIH1cblxuICBKU09OVG9TdHJpbmcodmFsdWU6IGFueSkge1xuICAgIHJldHVybiAodGhpcy5pc09iamVjdCh2YWx1ZSkpID8gSlNPTi5zdHJpbmdpZnkodmFsdWUpIDogdmFsdWVcbiAgfVxuXG4gIHN0cmluZ1RvSlNPTih2YWx1ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuICh0aGlzLmlzSlNPTih2YWx1ZSkpID8gSlNPTi5wYXJzZSh2YWx1ZSkgOiB2YWx1ZVxuICB9XG5cbiAgaXNKU09OKHN0cjogYW55KSB7XG4gICAgdHJ5IHtcbiAgICAgIEpTT04ucGFyc2Uoc3RyKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgZ2V0VmFsdWVCeVByb3Aob2JqOiBhbnksIHByb3A6IHN0cmluZykge1xuICAgIGlmKHR5cGVvZiBvYmogPT09ICd1bmRlZmluZWQnKSByZXR1cm4gZmFsc2VcbiAgICByZXR1cm4gb2JqW3Byb3BdXG4gIH1cblxuICBvYmplY3RzRXF1YWwoeDogYW55LCB5OiBhbnkpOiBib29sZWFuIHtcblxuICAgIGNvbnN0IG9rID0gT2JqZWN0LmtleXMsIHR4ID0gdHlwZW9mIHgsIHR5ID0gdHlwZW9mIHlcblxuICAgIHJldHVybiB4ICYmIHkgJiYgdHggPT09ICdvYmplY3QnICYmIHR4ID09PSB0eSA/IChcbiAgICAgIG9rKHgpLmxlbmd0aCA9PT0gb2soeSkubGVuZ3RoICYmXG4gICAgICAgIG9rKHgpLmV2ZXJ5KChrZXk6IGFueSkgPT4gdGhpcy5vYmplY3RzRXF1YWwoeFtrZXldLCB5W2tleV0pKVxuICAgICkgOiAoeCA9PT0geSlcblxuICB9XG5cbiAgZ2V0SlNPTihmaWxlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgYXNzZXRzL2RhdGEvJHtmaWxlfWApXG4gIH1cblxuICBnZXQgdG9kYXkoKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKCkuZ2V0TWlsbGlzZWNvbmRzKCkgLyAxMDAwXG4gIH1cblxuICBiYXNlMzJUb0hleChiYXNlMzI6IHN0cmluZyk6IHN0cmluZyB7XG5cbiAgICBjb25zdCBiYXNlMzJjaGFycyA9IFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoyMzQ1NjdcIlxuXG4gICAgY29uc3QgY2hhclRvVmFsdWUgPSAoY2hhcjogc3RyaW5nKSA9PiBiYXNlMzJjaGFycy5pbmRleE9mKGNoYXIudG9VcHBlckNhc2UoKSlcblxuICAgIGxldCBiaXRzID0gJydcbiAgICBsZXQgaGV4ID0gJydcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYmFzZTMyLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCB2YWwgPSBjaGFyVG9WYWx1ZShiYXNlMzIuY2hhckF0KGkpKVxuICAgICAgYml0cyArPSB2YWwudG9TdHJpbmcoMikucGFkU3RhcnQoNSwgJzAnKVxuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpICsgNCA8PSBiaXRzLmxlbmd0aDsgaSArPSA0KSB7XG4gICAgICBjb25zdCBjaHVuayA9IGJpdHMuc3Vic3RyKGksIDQpXG4gICAgICBoZXggKz0gcGFyc2VJbnQoY2h1bmssIDIpLnRvU3RyaW5nKDE2KVxuICAgIH1cblxuICAgIHJldHVybiBoZXgudG9VcHBlckNhc2UoKVxuICB9XG5cbiAgYmluYXJ5VG9IZXgoYmluYXJ5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBoZXggPSAnJztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJpbmFyeS5sZW5ndGg7IGkgKz0gOCkge1xuICAgICAgY29uc3QgYnl0ZSA9IGJpbmFyeS5zdWJzdHIoaSwgOCk7XG4gICAgICBjb25zdCBkZWNpbWFsID0gcGFyc2VJbnQoYnl0ZSwgMik7XG4gICAgICBoZXggKz0gZGVjaW1hbC50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKTtcbiAgICB9XG4gICAgcmV0dXJuIGhleC5wYWRTdGFydCgzMiwgJzAnKS5zdWJzdHIoMCwgMzIpO1xuICB9XG5cbiAgLy8geSA9IHllYXJzLCBtID0gbW9udGhzLCB3ID0gd2Vla3MsIGQgPSBkYXlzLCBociA9IGhvdXJzLCBtbiA9IG1pbnV0ZXMgZWxzZSBzZWNvbmRzXG4gIC8vIHJldHVybnMgZXBvY2ggdGltZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBleHBpcnkgdHlwZVxuICBleHBpcmVzKHN0cj86IHN0cmluZykge1xuXG4gICAgaWYoIXN0cikgcmV0dXJuXG5cbiAgICBjb25zdCBtYXRjaCA9IHN0ci5tYXRjaCgvW14wLTldKyQvKVxuXG4gICAgY29uc3QgdHlwZSA9IChtYXRjaCkgPyBzdHIuc2xpY2UoLW1hdGNoWzBdLmxlbmd0aCkgOiAwXG5cbiAgICBjb25zdCBub3cgPSBNYXRoLmZsb29yKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMClcblxuICAgIGxldCB2YWx1ZSA9IDA7XG5cbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2VcbiAgICAgICd5JzpcbiAgICAgICAgY29uc3QgeWVhcnMgPSBwYXJzZUludChzdHIuc2xpY2UoMCwgLTEpKVxuICAgICAgICB2YWx1ZSA9IG5vdyArICh5ZWFycyAqIDMxNTU2OTI2KVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2VcbiAgICAgICdtJzpcbiAgICAgICAgY29uc3QgbW9udGhzID0gcGFyc2VJbnQoc3RyLnNsaWNlKDAsIC0xKSlcbiAgICAgICAgdmFsdWUgPSBub3cgKyAobW9udGhzICogMjYyOTc0MylcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlXG4gICAgICAndyc6XG4gICAgICAgIGNvbnN0IHdlZWtzID0gcGFyc2VJbnQoc3RyLnNsaWNlKDAsIC0xKSlcbiAgICAgICAgdmFsdWUgPSBub3cgKyAod2Vla3MgKiA2MDQ4MDApXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZVxuICAgICAgJ2QnOlxuICAgICAgICBjb25zdCBkYXlzID0gcGFyc2VJbnQoc3RyLnNsaWNlKDAsIC0xKSlcbiAgICAgICAgdmFsdWUgPSBub3cgKyAoZGF5cyAqIDg2NDAwKVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2VcbiAgICAgICdocic6XG4gICAgICAgIGNvbnN0IGhycyA9IHBhcnNlSW50KHN0ci5zbGljZSgwLCAtMikpXG4gICAgICAgIHZhbHVlID0gbm93ICsgKGhycyAqIDM2MDApXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZVxuICAgICAgJ21uJzpcbiAgICAgICAgY29uc3QgbWluID0gcGFyc2VJbnQoc3RyLnNsaWNlKDAsIC0yKSlcbiAgICAgICAgdmFsdWUgPSBub3cgKyAobWluICogNjApXG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDogLy9zZWNvbmRzXG4gICAgICAgIGNvbnN0IHNlYyA9IHBhcnNlSW50KHN0ci5zbGljZSgwLCAtMSkpXG4gICAgICAgIHZhbHVlID0gbm93ICsgKHNlYylcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGhhc0V4cGlyZWQoZXhwaXJ5RGF0ZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgaWYgKCFleHBpcnlEYXRlIHx8IGV4cGlyeURhdGUgPT09IDApIHJldHVybiBmYWxzZVxuICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gTWF0aC5mbG9vcihuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDApXG4gICAgcmV0dXJuIGV4cGlyeURhdGUgPCBjdXJyZW50VGltZVxuICB9XG5cbiAgaGFzRXhwaXJ5KHNldHRpbmc6IGFueSkge1xuICAgIHJldHVybiAoc2V0dGluZz8uZXhwaXJlcykgPyB0cnVlIDogZmFsc2VcbiAgfVxuXG4gIGV4cGlyZXNJbihleHBpcnlEYXRlOiBudW1iZXIpIHtcblxuICAgIGlmICghZXhwaXJ5RGF0ZSkgcmV0dXJuO1xuXG4gICAgY29uc3Qgbm93ID0gTWF0aC5mbG9vcihuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDApO1xuICAgIGxldCBkaWZmID0gZXhwaXJ5RGF0ZSAtIG5vdztcblxuICAgIGlmIChkaWZmIDw9IDApIHJldHVybiBcIkV4cGlyZWRcIjtcblxuICAgIGNvbnN0IHVuaXRzID0gW1xuICAgICAgICB7IGxhYmVsOiAneScsIHNlY29uZHM6IDMxNTM2MDAwIH0sXG4gICAgICAgIHsgbGFiZWw6ICdtJywgc2Vjb25kczogMjU5MjAwMCB9LFxuICAgICAgICB7IGxhYmVsOiAndycsIHNlY29uZHM6IDYwNDgwMCB9LFxuICAgICAgICB7IGxhYmVsOiAnZCcsIHNlY29uZHM6IDg2NDAwIH0sXG4gICAgICAgIHsgbGFiZWw6ICdoJywgc2Vjb25kczogMzYwMCB9LFxuICAgICAgICB7IGxhYmVsOiAnbWluJywgc2Vjb25kczogNjAgfSxcbiAgICAgICAgeyBsYWJlbDogJycsIHNlY29uZHM6IDEgfSxcbiAgICBdO1xuXG4gICAgbGV0IHJlc3VsdCA9IFtdO1xuXG4gICAgZm9yIChjb25zdCB1bml0IG9mIHVuaXRzKSB7XG4gICAgICAgIGlmIChkaWZmID49IHVuaXQuc2Vjb25kcykge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBNYXRoLmZsb29yKGRpZmYgLyB1bml0LnNlY29uZHMpO1xuICAgICAgICAgICAgZGlmZiAlPSB1bml0LnNlY29uZHM7XG4gICAgICAgICAgICByZXN1bHQucHVzaChgJHt2YWx1ZX0ke3VuaXQubGFiZWx9JHt2YWx1ZSA+IDEgPyAncycgOiAnJ31gKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQuam9pbignLCAnKTtcbiAgfVxuXG4gIGxjID0gKHN0cjogc3RyaW5nKSA9PiBzdHIudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bXlxcd1xcc10vZywgJycpLnJlcGxhY2UoL1xccysvZywgJ18nKVxuXG59XG4iXX0=
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export class ChannelInfo {
|
|
2
|
-
constructor(name = '', canSubscribe = false) {
|
|
3
|
-
this.name = name;
|
|
4
|
-
this.canSubscribe = canSubscribe;
|
|
5
|
-
}
|
|
6
|
-
static adapt(item) {
|
|
7
|
-
return new ChannelInfo(item?.name, item?.canSubscribe);
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzb3J0bWVudC1kYXRhLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy93cy1tYW5hZ2VyLXNlcnZpY2UvbW9kZWxzL2Fzc29ydG1lbnQtZGF0YS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLE9BQU8sV0FBVztJQUV0QixZQUNTLE9BQU8sRUFBRSxFQUNULGVBQWUsS0FBSztRQURwQixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ1QsaUJBQVksR0FBWixZQUFZLENBQVE7SUFDMUIsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBVTtRQUVyQixPQUFPLElBQUksV0FBVyxDQUNwQixJQUFJLEVBQUUsSUFBSSxFQUNWLElBQUksRUFBRSxZQUFZLENBQ25CLENBQUE7SUFFSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENoYW5uZWxJbmZvSW50ZXJmYWNlIHtcbiAgbmFtZTogc3RyaW5nXG4gIGNhblN1YnNjcmliZTogYm9vbGVhblxufVxuXG5leHBvcnQgY2xhc3MgQ2hhbm5lbEluZm8gaW1wbGVtZW50cyBDaGFubmVsSW5mb0ludGVyZmFjZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG5hbWUgPSAnJyxcbiAgICBwdWJsaWMgY2FuU3Vic2NyaWJlID0gZmFsc2UsXG4gICkge31cblxuICBzdGF0aWMgYWRhcHQoaXRlbT86IGFueSk6IENoYW5uZWxJbmZvIHtcblxuICAgIHJldHVybiBuZXcgQ2hhbm5lbEluZm8oXG4gICAgICBpdGVtPy5uYW1lLFxuICAgICAgaXRlbT8uY2FuU3Vic2NyaWJlLFxuICAgIClcblxuICB9XG5cbn1cblxuXG4iXX0=
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class WebsocketService {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.socket = null;
|
|
7
|
-
this.messages = new BehaviorSubject(null);
|
|
8
|
-
this.messages$ = this.messages.asObservable();
|
|
9
|
-
this.connectionStatus = new BehaviorSubject(false);
|
|
10
|
-
this.connectionStatus$ = this.connectionStatus.asObservable();
|
|
11
|
-
}
|
|
12
|
-
connect(url, jwtToken) {
|
|
13
|
-
if (this.socket)
|
|
14
|
-
return;
|
|
15
|
-
const URL = (jwtToken) ? `${url}?token=${jwtToken}` : url;
|
|
16
|
-
this.socket = new WebSocket(URL);
|
|
17
|
-
this.socket.onopen = () => {
|
|
18
|
-
console.log(`📡 Connected to WebSocket`);
|
|
19
|
-
this.connectionStatus.next(true);
|
|
20
|
-
};
|
|
21
|
-
this.socket.onmessage = (event) => {
|
|
22
|
-
try {
|
|
23
|
-
const data = JSON.parse(event.data);
|
|
24
|
-
if (data.error && data.error === 'JWT_INVALID') {
|
|
25
|
-
console.error('JWT validation failed. Authentication error!');
|
|
26
|
-
this.connectionStatus.next(false);
|
|
27
|
-
this.socket?.close();
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
this.messages.next(data);
|
|
31
|
-
}
|
|
32
|
-
catch (error) {
|
|
33
|
-
console.error('Error parsing WebSocket message:', event.data);
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
this.socket.onclose = () => {
|
|
37
|
-
console.log('WebSocket connection closed');
|
|
38
|
-
this.connectionStatus.next(false);
|
|
39
|
-
this.socket = null;
|
|
40
|
-
};
|
|
41
|
-
this.socket.onerror = (error) => {
|
|
42
|
-
console.error('WebSocket error:', error);
|
|
43
|
-
this.connectionStatus.next(false);
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
disconnect() {
|
|
47
|
-
if (this.socket) {
|
|
48
|
-
this.socket.close();
|
|
49
|
-
this.socket = null;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
subscribeToChannel(channel) {
|
|
53
|
-
if (this.socket?.readyState === WebSocket.OPEN) {
|
|
54
|
-
this.socket.send(JSON.stringify({ type: 'subscribe', subscribedChannel: channel }));
|
|
55
|
-
console.log(`💬 Subscribed to channel: ${channel}`);
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
console.error('WebSocket is not open. Cannot subscribe to channel.');
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
unsubscribeToChannel(channel) {
|
|
62
|
-
if (this.socket?.readyState === WebSocket.OPEN) {
|
|
63
|
-
this.socket.send(JSON.stringify({ type: 'unsubscribe', subscribedChannel: channel }));
|
|
64
|
-
console.log(`💬 Unsubscribed to channel: ${channel}`);
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
console.error('WebSocket is not open. Cannot unsubscribed to channel.');
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
sendMessage(channel, content) {
|
|
71
|
-
if (this.socket?.readyState === WebSocket.OPEN) {
|
|
72
|
-
this.socket.send(JSON.stringify({ type: 'message', subscribedChannel: channel, content }));
|
|
73
|
-
console.log(`💬 Send message: ${content}`);
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
console.error('WebSocket is not open. Cannot send message.');
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
sendBroadcast(content) {
|
|
80
|
-
if (this.socket?.readyState === WebSocket.OPEN) {
|
|
81
|
-
this.socket.send(JSON.stringify({ type: 'broadcast', content }));
|
|
82
|
-
console.log(`📢 Send broadcast: ${content}`);
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
console.error('WebSocket is not open. Cannot send broadcast.');
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
getAllChannels() {
|
|
89
|
-
if (this.socket?.readyState === WebSocket.OPEN) {
|
|
90
|
-
this.socket.send(JSON.stringify({ type: 'getChannels' }));
|
|
91
|
-
console.log('🗂️ List of all channels');
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
console.error('WebSocket is not open. Cannot request channels.');
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
createChannel(channel) {
|
|
98
|
-
if (this.socket?.readyState === WebSocket.OPEN) {
|
|
99
|
-
this.socket.send(JSON.stringify({ type: 'createChannel', content: channel }));
|
|
100
|
-
console.log('🗂️ Created channel:', channel);
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
console.error('WebSocket is not open. Cannot request channels.');
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
deleteChannel(channel) {
|
|
107
|
-
if (this.socket?.readyState === WebSocket.OPEN) {
|
|
108
|
-
this.socket.send(JSON.stringify({ type: 'deleteChannel', content: channel }));
|
|
109
|
-
console.log('🗂️ Delete channel:', channel);
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
console.error('WebSocket is not open. Cannot request channels.');
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
getUsersInChannel(channel) {
|
|
116
|
-
if (this.socket?.readyState === WebSocket.OPEN) {
|
|
117
|
-
this.socket.send(JSON.stringify({ type: 'getUsers', subscribedChannel: channel }));
|
|
118
|
-
console.log(`👥 List all users in channel: ${channel}`);
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
console.error('WebSocket is not open. Cannot request users.');
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WebsocketService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
125
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WebsocketService, providedIn: 'root' }); }
|
|
126
|
-
}
|
|
127
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WebsocketService, decorators: [{
|
|
128
|
-
type: Injectable,
|
|
129
|
-
args: [{
|
|
130
|
-
providedIn: 'root',
|
|
131
|
-
}]
|
|
132
|
-
}] });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3dzLW1hbmFnZXItc2VydmljZS93ZWJzb2NrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBS25ELE1BQU0sT0FBTyxnQkFBZ0I7SUFIN0I7UUFLVSxXQUFNLEdBQXFCLElBQUksQ0FBQztRQUVoQyxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFDM0MsY0FBUyxHQUFvQixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXpELHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3hELHNCQUFpQixHQUF3QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7S0E2SHRGO0lBM0hDLE9BQU8sQ0FBQyxHQUFXLEVBQUUsUUFBaUI7UUFFcEMsSUFBSSxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU87UUFFeEIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLFVBQVUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUUxRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtZQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJ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SSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbkYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMxRCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztRQUNoRSxDQUFDO0lBQ0gsQ0FBQzsrR0FuSVUsZ0JBQWdCO21IQUFoQixnQkFBZ0IsY0FGZixNQUFNOzs0RkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBXZWJzb2NrZXRTZXJ2aWNlIHtcblxuICBwcml2YXRlIHNvY2tldDogV2ViU29ja2V0IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBtZXNzYWdlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgcHVibGljIG1lc3NhZ2VzJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5tZXNzYWdlcy5hc09ic2VydmFibGUoKTtcblxuICBwcml2YXRlIGNvbm5lY3Rpb25TdGF0dXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIGNvbm5lY3Rpb25TdGF0dXMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5jb25uZWN0aW9uU3RhdHVzLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbm5lY3QodXJsOiBzdHJpbmcsIGp3dFRva2VuPzogc3RyaW5nKSB7XG5cbiAgICBpZiAodGhpcy5zb2NrZXQpIHJldHVybjtcblxuICAgIGNvbnN0IFVSTCA9IChqd3RUb2tlbikgPyBgJHt1cmx9P3Rva2VuPSR7and0VG9rZW59YCA6IHVybDtcblxuICAgIHRoaXMuc29ja2V0ID0gbmV3IFdlYlNvY2tldChVUkwpO1xuXG4gICAgdGhpcy5zb2NrZXQub25vcGVuID0gKCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coYPCfk6EgQ29ubmVjdGVkIHRvIFdlYlNvY2tldGApO1xuICAgICAgdGhpcy5jb25uZWN0aW9uU3RhdHVzLm5leHQodHJ1ZSk7XG4gICAgfTtcblxuICAgIHRoaXMuc29ja2V0Lm9ubWVzc2FnZSA9IChldmVudCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoZXZlbnQuZGF0YSk7XG5cbiAgICAgICAgaWYgKGRhdGEuZXJyb3IgJiYgZGF0YS5lcnJvciA9PT0gJ0pXVF9JTlZBTElEJykge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0pXVCB2YWxpZGF0aW9uIGZhaWxlZC4gQXV0aGVudGljYXRpb24gZXJyb3IhJyk7XG4gICAgICAgICAgdGhpcy5jb25uZWN0aW9uU3RhdHVzLm5leHQoZmFsc2UpO1xuICAgICAgICAgIHRoaXMuc29ja2V0Py5jbG9zZSgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubWVzc2FnZXMubmV4dChkYXRhKTtcblxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcGFyc2luZyBXZWJTb2NrZXQgbWVzc2FnZTonLCBldmVudC5kYXRhKTtcbiAgICAgIH1cblxuICAgIH07XG5cbiAgICB0aGlzLnNvY2tldC5vbmNsb3NlID0gKCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ1dlYlNvY2tldCBjb25uZWN0aW9uIGNsb3NlZCcpO1xuICAgICAgdGhpcy5jb25uZWN0aW9uU3RhdHVzLm5leHQoZmFsc2UpO1xuICAgICAgdGhpcy5zb2NrZXQgPSBudWxsO1xuICAgIH07XG5cbiAgICB0aGlzLnNvY2tldC5vbmVycm9yID0gKGVycm9yKSA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKCdXZWJTb2NrZXQgZXJyb3I6JywgZXJyb3IpO1xuICAgICAgdGhpcy5jb25uZWN0aW9uU3RhdHVzLm5leHQoZmFsc2UpO1xuICAgIH07XG4gIH1cblxuICBkaXNjb25uZWN0KCkge1xuICAgIGlmICh0aGlzLnNvY2tldCkge1xuICAgICAgdGhpcy5zb2NrZXQuY2xvc2UoKTtcbiAgICAgIHRoaXMuc29ja2V0ID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBzdWJzY3JpYmVUb0NoYW5uZWwoY2hhbm5lbDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuc29ja2V0Py5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuT1BFTikge1xuICAgICAgdGhpcy5zb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICdzdWJzY3JpYmUnLCBzdWJzY3JpYmVkQ2hhbm5lbDogY2hhbm5lbCB9KSk7XG4gICAgICBjb25zb2xlLmxvZyhg8J+SrCBTdWJzY3JpYmVkIHRvIGNoYW5uZWw6ICR7Y2hhbm5lbH1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignV2ViU29ja2V0IGlzIG5vdCBvcGVuLiBDYW5ub3Qgc3Vic2NyaWJlIHRvIGNoYW5uZWwuJyk7XG4gICAgfVxuICB9XG5cbiAgdW5zdWJzY3JpYmVUb0NoYW5uZWwoY2hhbm5lbDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuc29ja2V0Py5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuT1BFTikge1xuICAgICAgdGhpcy5zb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICd1bnN1YnNjcmliZScsIHN1YnNjcmliZWRDaGFubmVsOiBjaGFubmVsIH0pKTtcbiAgICAgIGNvbnNvbGUubG9nKGDwn5KsIFVuc3Vic2NyaWJlZCB0byBjaGFubmVsOiAke2NoYW5uZWx9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYlNvY2tldCBpcyBub3Qgb3Blbi4gQ2Fubm90IHVuc3Vic2NyaWJlZCB0byBjaGFubmVsLicpO1xuICAgIH1cbiAgfVxuXG4gIHNlbmRNZXNzYWdlKGNoYW5uZWw6IHN0cmluZywgY29udGVudDogYW55KSB7XG4gICAgaWYgKHRoaXMuc29ja2V0Py5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuT1BFTikge1xuICAgICAgdGhpcy5zb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICdtZXNzYWdlJywgc3Vic2NyaWJlZENoYW5uZWw6IGNoYW5uZWwsIGNvbnRlbnQgfSkpO1xuICAgICAgICBjb25zb2xlLmxvZyhg8J+SrCBTZW5kIG1lc3NhZ2U6ICR7Y29udGVudH1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignV2ViU29ja2V0IGlzIG5vdCBvcGVuLiBDYW5ub3Qgc2VuZCBtZXNzYWdlLicpO1xuICAgIH1cbiAgfVxuXG4gIHNlbmRCcm9hZGNhc3QoY29udGVudDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuc29ja2V0Py5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuT1BFTikge1xuICAgICAgdGhpcy5zb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICdicm9hZGNhc3QnLCBjb250ZW50IH0pKTtcbiAgICAgIGNvbnNvbGUubG9nKGDwn5OiIFNlbmQgYnJvYWRjYXN0OiAke2NvbnRlbnR9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYlNvY2tldCBpcyBub3Qgb3Blbi4gQ2Fubm90IHNlbmQgYnJvYWRjYXN0LicpO1xuICAgIH1cbiAgfVxuXG4gIGdldEFsbENoYW5uZWxzKCkge1xuICAgIGlmICh0aGlzLnNvY2tldD8ucmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0Lk9QRU4pIHtcbiAgICAgIHRoaXMuc29ja2V0LnNlbmQoSlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAnZ2V0Q2hhbm5lbHMnIH0pKTtcbiAgICAgIGNvbnNvbGUubG9nKCfwn5eC77iPIExpc3Qgb2YgYWxsIGNoYW5uZWxzJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYlNvY2tldCBpcyBub3Qgb3Blbi4gQ2Fubm90IHJlcXVlc3QgY2hhbm5lbHMuJyk7XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlQ2hhbm5lbChjaGFubmVsOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5zb2NrZXQ/LnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5PUEVOKSB7XG4gICAgICB0aGlzLnNvY2tldC5zZW5kKEpTT04uc3RyaW5naWZ5KHsgdHlwZTogJ2NyZWF0ZUNoYW5uZWwnLCBjb250ZW50OiBjaGFubmVsIH0pKTtcbiAgICAgIGNvbnNvbGUubG9nKCfwn5eC77iPIENyZWF0ZWQgY2hhbm5lbDonLCBjaGFubmVsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignV2ViU29ja2V0IGlzIG5vdCBvcGVuLiBDYW5ub3QgcmVxdWVzdCBjaGFubmVscy4nKTtcbiAgICB9XG4gIH1cblxuICBkZWxldGVDaGFubmVsKGNoYW5uZWw6IHN0cmluZykge1xuICAgIGlmICh0aGlzLnNvY2tldD8ucmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0Lk9QRU4pIHtcbiAgICAgIHRoaXMuc29ja2V0LnNlbmQoSlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAnZGVsZXRlQ2hhbm5lbCcsIGNvbnRlbnQ6IGNoYW5uZWwgfSkpO1xuICAgICAgY29uc29sZS5sb2coJ/Cfl4LvuI8gRGVsZXRlIGNoYW5uZWw6JywgY2hhbm5lbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYlNvY2tldCBpcyBub3Qgb3Blbi4gQ2Fubm90IHJlcXVlc3QgY2hhbm5lbHMuJyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0VXNlcnNJbkNoYW5uZWwoY2hhbm5lbDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuc29ja2V0Py5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuT1BFTikge1xuICAgICAgdGhpcy5zb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICdnZXRVc2VycycsIHN1YnNjcmliZWRDaGFubmVsOiBjaGFubmVsIH0pKTtcbiAgICAgIGNvbnNvbGUubG9nKGDwn5GlIExpc3QgYWxsIHVzZXJzIGluIGNoYW5uZWw6ICR7Y2hhbm5lbH1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignV2ViU29ja2V0IGlzIG5vdCBvcGVuLiBDYW5ub3QgcmVxdWVzdCB1c2Vycy4nKTtcbiAgICB9XG4gIH1cblxufVxuIl19
|
package/esm2022/public-api.mjs
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of http-request-manager
|
|
3
|
-
*/
|
|
4
|
-
export * from './lib/index';
|
|
5
|
-
export * from './lib/http-request-manager.module';
|
|
6
|
-
export * from './lib/http-request-services-demo/http-request-services-demo.component';
|
|
7
|
-
export * from './lib/http-request-services-demo/database-data-demo/database-data-demo.component';
|
|
8
|
-
export * from './lib/http-request-services-demo/local-storage-demo/local-storage-demo.component';
|
|
9
|
-
export * from './lib/http-request-services-demo/request-manager-demo/request-manager-demo.component';
|
|
10
|
-
export * from './lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component';
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxtQ0FBbUMsQ0FBQztBQUVsRCxjQUFjLHVFQUF1RSxDQUFDO0FBRXRGLGNBQWMsa0ZBQWtGLENBQUM7QUFDakcsY0FBYyxrRkFBa0YsQ0FBQztBQUNqRyxjQUFjLHNGQUFzRixDQUFDO0FBQ3JHLGNBQWMsa0dBQWtHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGh0dHAtcmVxdWVzdC1tYW5hZ2VyXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaHR0cC1yZXF1ZXN0LW1hbmFnZXIubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8uY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vZGF0YWJhc2UtZGF0YS1kZW1vL2RhdGFiYXNlLWRhdGEtZGVtby5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vbG9jYWwtc3RvcmFnZS1kZW1vL2xvY2FsLXN0b3JhZ2UtZGVtby5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLWRlbW8uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vL3JlcXVlc3QtbWFuYWdlci1zdGF0ZS1kZW1vL3JlcXVlc3QtbWFuYWdlci1zdGF0ZS1kZW1vLmNvbXBvbmVudCc7XG5cbiJdfQ==
|
|
Binary file
|
package/index.d.ts
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { ModuleWithProviders } from '@angular/core';
|
|
2
|
-
import { ConfigOptions } from './models';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "./http-request-services-demo/http-request-services-demo.component";
|
|
5
|
-
import * as i2 from "./http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component";
|
|
6
|
-
import * as i3 from "./http-request-services-demo/request-manager-demo/request-manager-demo.component";
|
|
7
|
-
import * as i4 from "./http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component";
|
|
8
|
-
import * as i5 from "./http-request-services-demo/local-storage-demo/local-storage-demo.component";
|
|
9
|
-
import * as i6 from "./http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component";
|
|
10
|
-
import * as i7 from "@angular/common";
|
|
11
|
-
import * as i8 from "toast-message-display";
|
|
12
|
-
import * as i9 from "@angular/forms";
|
|
13
|
-
import * as i10 from "@angular/material/button";
|
|
14
|
-
import * as i11 from "@angular/material/select";
|
|
15
|
-
import * as i12 from "@angular/material/chips";
|
|
16
|
-
import * as i13 from "@angular/material/menu";
|
|
17
|
-
import * as i14 from "@angular/material/icon";
|
|
18
|
-
import * as i15 from "@angular/material/table";
|
|
19
|
-
import * as i16 from "@angular/material/button-toggle";
|
|
20
|
-
import * as i17 from "@angular/material/autocomplete";
|
|
21
|
-
import * as i18 from "@angular/material/progress-bar";
|
|
22
|
-
import * as i19 from "@angular/material/slide-toggle";
|
|
23
|
-
import * as i20 from "@angular/material/divider";
|
|
24
|
-
import * as i21 from "@angular/material/form-field";
|
|
25
|
-
import * as i22 from "@angular/material/input";
|
|
26
|
-
import * as i23 from "@angular/material/toolbar";
|
|
27
|
-
import * as i24 from "@ngx-translate/core";
|
|
28
|
-
import * as i25 from "@angular/material/sidenav";
|
|
29
|
-
import * as i26 from "./http-request-services-demo/request-manager-demo/file-downloader/file-download.module";
|
|
30
|
-
export declare class HttpRequestManagerModule {
|
|
31
|
-
static forRoot(config?: ConfigOptions): ModuleWithProviders<HttpRequestManagerModule>;
|
|
32
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<HttpRequestManagerModule, never>;
|
|
33
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<HttpRequestManagerModule, [typeof i1.HttpRequestServicesDemoComponent, typeof i2.RequestManagerStateDemoComponent, typeof i3.RequestManagerDemoComponent, typeof i4.RequestSignalsManagerDemoComponent, typeof i5.LocalStorageDemoComponent, typeof i6.LocalStorageSignalsDemoComponent], [typeof i7.CommonModule, typeof i8.ToastMessageDisplayModule, typeof i9.FormsModule, typeof i9.ReactiveFormsModule, typeof i10.MatButtonModule, typeof i11.MatSelectModule, typeof i12.MatChipsModule, typeof i13.MatMenuModule, typeof i14.MatIconModule, typeof i15.MatTableModule, typeof i16.MatButtonToggleModule, typeof i17.MatAutocompleteModule, typeof i18.MatProgressBarModule, typeof i19.MatSlideToggleModule, typeof i20.MatDividerModule, typeof i21.MatFormFieldModule, typeof i22.MatInputModule, typeof i23.MatToolbarModule, typeof i19.MatSlideToggleModule, typeof i24.TranslateModule, typeof i25.MatSidenavModule, typeof i26.FileDownloaderModule], [typeof i1.HttpRequestServicesDemoComponent, typeof i7.CommonModule, typeof i16.MatButtonToggleModule, typeof i21.MatFormFieldModule, typeof i11.MatSelectModule, typeof i22.MatInputModule, typeof i14.MatIconModule, typeof i15.MatTableModule, typeof i19.MatSlideToggleModule, typeof i18.MatProgressBarModule, typeof i20.MatDividerModule]>;
|
|
34
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<HttpRequestManagerModule>;
|
|
35
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
2
|
-
import { TableSchemaDef } from '../../services/database-manager-services/models/table-schema';
|
|
3
|
-
import { DatabaseManagerService } from '../../services/database-manager-services';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class DatabaseDataDemoComponent implements OnInit {
|
|
6
|
-
db: DatabaseManagerService;
|
|
7
|
-
constructor();
|
|
8
|
-
ngOnInit(): void;
|
|
9
|
-
createTable(tableDef: TableSchemaDef): import("rxjs").Observable<boolean>;
|
|
10
|
-
findTableRecords(table: string, column: string, value: any): void;
|
|
11
|
-
findTableRecord(table: string, column: string, value: any): void;
|
|
12
|
-
getTableRecords(table: string): void;
|
|
13
|
-
getTableRecord(table: string, id: number): void;
|
|
14
|
-
createTableRecord<T>(table: string, record: T): void;
|
|
15
|
-
updateTableRecord<T>(table: string, record: T): void;
|
|
16
|
-
deleteTableRecord<T>(table: string, id: number): void;
|
|
17
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DatabaseDataDemoComponent, never>;
|
|
18
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DatabaseDataDemoComponent, "app-database-data-demo", never, {}, {}, never, never, false, never>;
|
|
19
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
2
|
-
import { ConfigOptions } from '../models/config-options.model';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class HttpRequestServicesDemoComponent implements OnInit {
|
|
5
|
-
private configOptions?;
|
|
6
|
-
requestTypes: ({
|
|
7
|
-
name: string;
|
|
8
|
-
value: string;
|
|
9
|
-
new?: undefined;
|
|
10
|
-
divider?: undefined;
|
|
11
|
-
disabled?: undefined;
|
|
12
|
-
} | {
|
|
13
|
-
name: string;
|
|
14
|
-
value: string;
|
|
15
|
-
new: boolean;
|
|
16
|
-
divider?: undefined;
|
|
17
|
-
disabled?: undefined;
|
|
18
|
-
} | {
|
|
19
|
-
name: string;
|
|
20
|
-
value: string;
|
|
21
|
-
divider: boolean;
|
|
22
|
-
disabled: boolean;
|
|
23
|
-
new?: undefined;
|
|
24
|
-
})[];
|
|
25
|
-
selectedService: string;
|
|
26
|
-
injectionOptions?: ConfigOptions;
|
|
27
|
-
constructor(configOptions?: ConfigOptions | undefined);
|
|
28
|
-
ngOnInit(): void;
|
|
29
|
-
onSelected(type: number): void;
|
|
30
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<HttpRequestServicesDemoComponent, never>;
|
|
31
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<HttpRequestServicesDemoComponent, "app-http-request-services-demo", never, {}, {}, never, never, false, never>;
|
|
32
|
-
}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
2
|
-
import { LocalStorageManagerService, SettingOptions, StorageOption, StorageType } from '../../services/local-storage-manager-service';
|
|
3
|
-
import { FormBuilder } from '@angular/forms';
|
|
4
|
-
import { BehaviorSubject, Observable } from 'rxjs';
|
|
5
|
-
import { ConfigOptions, LocalStorageOptions, UtilsService } from '../../services';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export declare class LocalStorageDemoComponent implements OnInit {
|
|
8
|
-
private configOptions?;
|
|
9
|
-
fb: FormBuilder;
|
|
10
|
-
utils: UtilsService;
|
|
11
|
-
type$: BehaviorSubject<StorageType>;
|
|
12
|
-
get type(): number;
|
|
13
|
-
typeControl: import("@angular/forms").FormControl<string | null>;
|
|
14
|
-
localStorageManagerService: LocalStorageManagerService;
|
|
15
|
-
settings$: Observable<any>;
|
|
16
|
-
setting$: (store: string) => Observable<StorageOption | null>;
|
|
17
|
-
storageForm: import("@angular/forms").FormGroup<{
|
|
18
|
-
store: import("@angular/forms").FormControl<string | null>;
|
|
19
|
-
type: import("@angular/forms").FormControl<string | null>;
|
|
20
|
-
settingType: import("@angular/forms").FormControl<string | null>;
|
|
21
|
-
encrypted: import("@angular/forms").FormControl<boolean | null>;
|
|
22
|
-
data: import("@angular/forms").FormControl<string | null>;
|
|
23
|
-
}>;
|
|
24
|
-
newStoreForm: import("@angular/forms").FormGroup<{
|
|
25
|
-
name: import("@angular/forms").FormControl<string | null>;
|
|
26
|
-
storage: import("@angular/forms").FormControl<string | null>;
|
|
27
|
-
encrypted: import("@angular/forms").FormControl<boolean | null>;
|
|
28
|
-
data: import("@angular/forms").FormControl<string | null>;
|
|
29
|
-
expiresIn: import("@angular/forms").FormControl<string | null>;
|
|
30
|
-
}>;
|
|
31
|
-
store$?: Observable<any>;
|
|
32
|
-
storeData$: Observable<any> | undefined;
|
|
33
|
-
expiresIn: (epoch: number) => string | undefined;
|
|
34
|
-
get isValid(): boolean;
|
|
35
|
-
get isValidData(): boolean;
|
|
36
|
-
isValidJSON: (str: string) => boolean;
|
|
37
|
-
displayedColumns: string[];
|
|
38
|
-
filterData: (values: SettingOptions[]) => SettingOptions[];
|
|
39
|
-
data$?: Observable<any>;
|
|
40
|
-
store: any;
|
|
41
|
-
create: boolean;
|
|
42
|
-
storeProps?: LocalStorageOptions;
|
|
43
|
-
options?: SettingOptions;
|
|
44
|
-
constructor(configOptions?: ConfigOptions | undefined);
|
|
45
|
-
ngOnInit(): void;
|
|
46
|
-
onCreateStore(): void;
|
|
47
|
-
onUpdateStore(store: any): void;
|
|
48
|
-
onSelectedRow(store: any): void;
|
|
49
|
-
onCreate(): void;
|
|
50
|
-
onDelete(store: StorageOption): void;
|
|
51
|
-
onCancel(): void;
|
|
52
|
-
onUpdate(store: StorageOption, data: any): void;
|
|
53
|
-
onReset(): void;
|
|
54
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<LocalStorageDemoComponent, never>;
|
|
55
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LocalStorageDemoComponent, "app-local-storage-demo", never, {}, {}, never, never, false, never>;
|
|
56
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
2
|
-
import { LocalStorageSignalsManagerService, SettingOptions, StorageOption } from '../../services/local-storage-manager-service';
|
|
3
|
-
import { FormBuilder } from '@angular/forms';
|
|
4
|
-
import { ConfigOptions, LocalStorageOptions, UtilsService } from '../../services';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class LocalStorageSignalsDemoComponent implements OnInit {
|
|
7
|
-
private configOptions?;
|
|
8
|
-
fb: FormBuilder;
|
|
9
|
-
utils: UtilsService;
|
|
10
|
-
get type(): number;
|
|
11
|
-
typeControl: import("@angular/forms").FormControl<string | null>;
|
|
12
|
-
localStorageManagerService: LocalStorageSignalsManagerService;
|
|
13
|
-
readonly settings: import("@angular/core").Signal<StorageOption[]>;
|
|
14
|
-
storeSelected: import("@angular/core").WritableSignal<StorageOption | null>;
|
|
15
|
-
selectedStoreData: import("@angular/core").Signal<string>;
|
|
16
|
-
selectedType: import("@angular/core").WritableSignal<number>;
|
|
17
|
-
filteredSettings: import("@angular/core").Signal<StorageOption[]>;
|
|
18
|
-
storageForm: import("@angular/forms").FormGroup<{
|
|
19
|
-
store: import("@angular/forms").FormControl<string | null>;
|
|
20
|
-
type: import("@angular/forms").FormControl<string | null>;
|
|
21
|
-
settingType: import("@angular/forms").FormControl<string | null>;
|
|
22
|
-
encrypted: import("@angular/forms").FormControl<boolean | null>;
|
|
23
|
-
data: import("@angular/forms").FormControl<string | null>;
|
|
24
|
-
}>;
|
|
25
|
-
newStoreForm: import("@angular/forms").FormGroup<{
|
|
26
|
-
name: import("@angular/forms").FormControl<string | null>;
|
|
27
|
-
storage: import("@angular/forms").FormControl<string | null>;
|
|
28
|
-
encrypted: import("@angular/forms").FormControl<boolean | null>;
|
|
29
|
-
data: import("@angular/forms").FormControl<string | null>;
|
|
30
|
-
expiresIn: import("@angular/forms").FormControl<string | null>;
|
|
31
|
-
}>;
|
|
32
|
-
expiresIn: (epoch: number) => string | undefined;
|
|
33
|
-
get isValid(): boolean;
|
|
34
|
-
get isValidData(): boolean;
|
|
35
|
-
isValidJSON: (str: string) => boolean;
|
|
36
|
-
displayedColumns: string[];
|
|
37
|
-
filterData: (values: StorageOption[] | null | undefined) => StorageOption[];
|
|
38
|
-
settingFor(name: string): StorageOption | null;
|
|
39
|
-
store: any;
|
|
40
|
-
create: boolean;
|
|
41
|
-
storeProps?: LocalStorageOptions;
|
|
42
|
-
options?: SettingOptions;
|
|
43
|
-
constructor(configOptions?: ConfigOptions | undefined);
|
|
44
|
-
ngOnInit(): void;
|
|
45
|
-
onCreateStore(): void;
|
|
46
|
-
onUpdateStore(store: any): void;
|
|
47
|
-
onSelectedRow(store: any): void;
|
|
48
|
-
onCreate(): void;
|
|
49
|
-
onDelete(store: StorageOption): void;
|
|
50
|
-
onCancel(): void;
|
|
51
|
-
onUpdate(store: StorageOption, data: any): void;
|
|
52
|
-
onReset(): void;
|
|
53
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<LocalStorageSignalsDemoComponent, never>;
|
|
54
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LocalStorageSignalsDemoComponent, "app-local-storage-signals-demo", never, {}, {}, never, never, false, never>;
|
|
55
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
|
-
import { ProgressSpinnerMode } from '@angular/material/progress-spinner';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class DownloadFileComponent implements OnInit {
|
|
5
|
-
private subscriptions;
|
|
6
|
-
event?: Function;
|
|
7
|
-
displayError: number;
|
|
8
|
-
diameter: number;
|
|
9
|
-
mode: ProgressSpinnerMode;
|
|
10
|
-
isPending: boolean;
|
|
11
|
-
active: boolean;
|
|
12
|
-
disabled: boolean;
|
|
13
|
-
error: EventEmitter<void>;
|
|
14
|
-
private _progress;
|
|
15
|
-
set progress(value: any);
|
|
16
|
-
get progress(): any;
|
|
17
|
-
private _hasError;
|
|
18
|
-
private errorTimerActive;
|
|
19
|
-
set hasError(value: boolean | any);
|
|
20
|
-
get hasError(): boolean | any;
|
|
21
|
-
ngOnInit(): void;
|
|
22
|
-
onAction(): void;
|
|
23
|
-
ngOnDestroy(): void;
|
|
24
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DownloadFileComponent, never>;
|
|
25
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DownloadFileComponent, "app-download-file", never, { "event": { "alias": "event"; "required": false; }; "displayError": { "alias": "displayError"; "required": false; }; "diameter": { "alias": "diameter"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "isPending": { "alias": "isPending"; "required": false; }; "active": { "alias": "active"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "progress": { "alias": "progress"; "required": false; }; "hasError": { "alias": "hasError"; "required": false; }; }, { "error": "error"; }, never, never, false, never>;
|
|
26
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
import * as i1 from "./spinner/spinner.component";
|
|
3
|
-
import * as i2 from "./download-file/download-file.component";
|
|
4
|
-
import * as i3 from "./file-downloader.component";
|
|
5
|
-
import * as i4 from "@angular/common";
|
|
6
|
-
import * as i5 from "@angular/material/icon";
|
|
7
|
-
import * as i6 from "@angular/material/progress-spinner";
|
|
8
|
-
import * as i7 from "@angular/material/button";
|
|
9
|
-
export declare class FileDownloaderModule {
|
|
10
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<FileDownloaderModule, never>;
|
|
11
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<FileDownloaderModule, [typeof i1.SpinnerComponent, typeof i2.DownloadFileComponent, typeof i3.FileDownloaderComponent], [typeof i4.CommonModule, typeof i5.MatIconModule, typeof i6.MatProgressSpinnerModule, typeof i7.MatButtonModule], [typeof i3.FileDownloaderComponent]>;
|
|
12
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<FileDownloaderModule>;
|
|
13
|
-
}
|