@libs-ui/utils 0.1.1-1
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 +3 -0
- package/base64.d.ts +5 -0
- package/cache.d.ts +42 -0
- package/color.d.ts +11 -0
- package/communicate-micro.d.ts +16 -0
- package/constants.d.ts +10 -0
- package/crypto-3rd.d.ts +7 -0
- package/crypto.d.ts +8 -0
- package/dangerous-object.d.ts +79 -0
- package/date.d.ts +44 -0
- package/dom.d.ts +52 -0
- package/download.d.ts +3 -0
- package/esm2022/base64.mjs +43 -0
- package/esm2022/cache.mjs +388 -0
- package/esm2022/color.mjs +133 -0
- package/esm2022/communicate-micro.mjs +149 -0
- package/esm2022/constants.mjs +11 -0
- package/esm2022/crypto-3rd.mjs +38 -0
- package/esm2022/crypto.mjs +41 -0
- package/esm2022/dangerous-object.mjs +149 -0
- package/esm2022/date.mjs +191 -0
- package/esm2022/dom.mjs +256 -0
- package/esm2022/download.mjs +41 -0
- package/esm2022/file.mjs +90 -0
- package/esm2022/format-number.mjs +66 -0
- package/esm2022/format-text.mjs +149 -0
- package/esm2022/function-check-embed-frame.mjs +10 -0
- package/esm2022/get-smart-axis-scale.mjs +174 -0
- package/esm2022/helpers.mjs +651 -0
- package/esm2022/http-params.mjs +80 -0
- package/esm2022/index.mjs +30 -0
- package/esm2022/inject-token.mjs +5 -0
- package/esm2022/key-cache.mjs +31 -0
- package/esm2022/key-code.mjs +123 -0
- package/esm2022/language.mjs +70 -0
- package/esm2022/libs-ui-utils.mjs +5 -0
- package/esm2022/pattern.mjs +62 -0
- package/esm2022/random.mjs +42 -0
- package/esm2022/two-way-signal-object.mjs +131 -0
- package/esm2022/uri.mjs +25 -0
- package/esm2022/url-search-params.mjs +99 -0
- package/esm2022/uuid.mjs +18 -0
- package/esm2022/xss-filter.mjs +10 -0
- package/fesm2022/libs-ui-utils.mjs +3234 -0
- package/fesm2022/libs-ui-utils.mjs.map +1 -0
- package/file.d.ts +18 -0
- package/format-number.d.ts +2 -0
- package/format-text.d.ts +11 -0
- package/function-check-embed-frame.d.ts +2 -0
- package/get-smart-axis-scale.d.ts +34 -0
- package/helpers.d.ts +270 -0
- package/http-params.d.ts +37 -0
- package/index.d.ts +29 -0
- package/inject-token.d.ts +4 -0
- package/key-cache.d.ts +1 -0
- package/key-code.d.ts +122 -0
- package/language.d.ts +37 -0
- package/package.json +29 -0
- package/pattern.d.ts +20 -0
- package/random.d.ts +3 -0
- package/two-way-signal-object.d.ts +15 -0
- package/uri.d.ts +5 -0
- package/url-search-params.d.ts +25 -0
- package/uuid.d.ts +1 -0
- package/xss-filter.d.ts +3 -0
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { Subject, filter, fromEvent, takeUntil } from 'rxjs';
|
|
3
|
+
import { decrypt, encrypt } from './crypto';
|
|
4
|
+
import { decrypt3rd, encrypt3rd } from './crypto-3rd';
|
|
5
|
+
import { isEmbedFrame } from './function-check-embed-frame';
|
|
6
|
+
import { UtilsCache } from './cache';
|
|
7
|
+
import { COMMUNICATE_MICRO_KEY_GET_ALL_MESSAGE, COMMUNICATE_MICRO_PREFIX_TYPE } from './constants';
|
|
8
|
+
export class UtilsCommunicateMicroKeyGlobal {
|
|
9
|
+
static KEY_MESSAGE_MODAL = 'LIBS_UI_MODEL_EVENT';
|
|
10
|
+
}
|
|
11
|
+
export class UtilsCommunicateMicro {
|
|
12
|
+
static initdEvent;
|
|
13
|
+
static subs = new Map();
|
|
14
|
+
static allMessageSub = new Subject();
|
|
15
|
+
static initEvent(currentWindow, onDestroy) {
|
|
16
|
+
if (this.initdEvent) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
this.initdEvent = true;
|
|
20
|
+
if (!this.subs.get(COMMUNICATE_MICRO_KEY_GET_ALL_MESSAGE)) {
|
|
21
|
+
this.subs.set(COMMUNICATE_MICRO_KEY_GET_ALL_MESSAGE, UtilsCommunicateMicro.allMessageSub);
|
|
22
|
+
}
|
|
23
|
+
fromEvent(currentWindow, 'message')
|
|
24
|
+
.pipe(takeUntil(onDestroy))
|
|
25
|
+
.subscribe((e) => {
|
|
26
|
+
const event = { data: { ...e.data } };
|
|
27
|
+
const data = event.data;
|
|
28
|
+
const type = data.type;
|
|
29
|
+
if (!type) {
|
|
30
|
+
return this.allMessageSub.next(event);
|
|
31
|
+
}
|
|
32
|
+
const sub = UtilsCommunicateMicro.GetMessage(type);
|
|
33
|
+
if (!type || !data.response) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
if (type.includes(COMMUNICATE_MICRO_PREFIX_TYPE)) {
|
|
38
|
+
data.response = JSON.parse(decrypt3rd(data.response));
|
|
39
|
+
sub.next(event);
|
|
40
|
+
this.allMessageSub.next(event);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
data.response = JSON.parse(decrypt(data.response));
|
|
44
|
+
sub.next(event);
|
|
45
|
+
this.allMessageSub.next(event);
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
console.log(error);
|
|
49
|
+
sub.next(event);
|
|
50
|
+
this.allMessageSub.next(event);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
UtilsCommunicateMicro.GetMessage(UtilsCache.typeKeyClearLocalStorage)
|
|
54
|
+
.pipe(filter((e) => e.data.response !== UtilsCache.idService), takeUntil(onDestroy))
|
|
55
|
+
.subscribe(() => {
|
|
56
|
+
console.log('clear all cache by event');
|
|
57
|
+
UtilsCache.ClearAll();
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
static PostMessageToParent(data) {
|
|
61
|
+
data = this.convertData(data);
|
|
62
|
+
try {
|
|
63
|
+
if (isEmbedFrame()) {
|
|
64
|
+
window?.parent?.postMessage(data, '*');
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
window?.top?.postMessage(data, '*');
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
console.log(error);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
static PostMessageToChildren(data) {
|
|
74
|
+
data = this.convertData(data);
|
|
75
|
+
const iframes = document.querySelectorAll('iframe');
|
|
76
|
+
Array.from(iframes).forEach((iframe) => {
|
|
77
|
+
iframe?.contentWindow?.postMessage(data, '*');
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
static PostMessageToOpener(data) {
|
|
81
|
+
if (!window.opener) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
data = this.convertData(data);
|
|
85
|
+
window.opener.postMessage(data, '*');
|
|
86
|
+
}
|
|
87
|
+
static convertData(data) {
|
|
88
|
+
if (!data || !data.type || !data.response) {
|
|
89
|
+
return data;
|
|
90
|
+
}
|
|
91
|
+
data = { ...data };
|
|
92
|
+
const type = data.type;
|
|
93
|
+
if (type.includes(COMMUNICATE_MICRO_PREFIX_TYPE)) {
|
|
94
|
+
try {
|
|
95
|
+
JSON.parse(decrypt3rd(data.response));
|
|
96
|
+
return data;
|
|
97
|
+
}
|
|
98
|
+
catch (_) {
|
|
99
|
+
data.response = encrypt3rd(JSON.stringify(data.response));
|
|
100
|
+
return data;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
try {
|
|
104
|
+
JSON.parse(decrypt(data.response));
|
|
105
|
+
return data;
|
|
106
|
+
}
|
|
107
|
+
catch (_) {
|
|
108
|
+
data.response = encrypt(JSON.stringify(data.response));
|
|
109
|
+
return data;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
static GetMessage(messageType) {
|
|
113
|
+
if (!this.initdEvent) {
|
|
114
|
+
throw Error('chưa khơi tạo hàm lắng nghe sự kiện, gọi UtilsCommunicateMicro.initEvent(window) tại root component');
|
|
115
|
+
}
|
|
116
|
+
if (typeof messageType === 'string') {
|
|
117
|
+
let sub = this.subs.get(messageType);
|
|
118
|
+
if (!sub) {
|
|
119
|
+
sub = new Subject();
|
|
120
|
+
this.subs.set(messageType, sub);
|
|
121
|
+
return sub;
|
|
122
|
+
}
|
|
123
|
+
return sub;
|
|
124
|
+
}
|
|
125
|
+
if (!Array.isArray(messageType) || !messageType.length) {
|
|
126
|
+
throw new Error('message type empty');
|
|
127
|
+
}
|
|
128
|
+
if (messageType.length === 1) {
|
|
129
|
+
return this.GetMessage(messageType[0]);
|
|
130
|
+
}
|
|
131
|
+
const types = messageType.sort().join(';');
|
|
132
|
+
let sub = this.subs.get(types);
|
|
133
|
+
if (sub) {
|
|
134
|
+
return sub;
|
|
135
|
+
}
|
|
136
|
+
sub = new Subject();
|
|
137
|
+
this.subs.set(types, sub);
|
|
138
|
+
this.initSubject(sub, messageType);
|
|
139
|
+
return sub;
|
|
140
|
+
}
|
|
141
|
+
static initSubject(subRoot, messageType) {
|
|
142
|
+
messageType.forEach((key) => {
|
|
143
|
+
this.GetMessage(key).subscribe((e) => {
|
|
144
|
+
subRoot.next(e);
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbXVuaWNhdGUtbWljcm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzLXVpL3V0aWxzL3NyYy9jb21tdW5pY2F0ZS1taWNyby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNyQyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkcsTUFBTSxPQUFPLDhCQUE4QjtJQUNsQyxNQUFNLENBQUMsaUJBQWlCLEdBQUcscUJBQXFCLENBQUM7O0FBRzFELE1BQU0sT0FBTyxxQkFBcUI7SUFDeEIsTUFBTSxDQUFDLFVBQVUsQ0FBVztJQUM1QixNQUFNLENBQUMsSUFBSSxHQUF1QyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzVELE1BQU0sQ0FBQyxhQUFhLEdBQTBCLElBQUksT0FBTyxFQUFFLENBQUM7SUFFN0QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFxQixFQUFFLFNBQXdCO1FBQ3JFLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLHFDQUFxQyxDQUFDLEVBQUUsQ0FBQztZQUMxRCxJQUFJLENBQUMsSUFB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LENBQUMsQ0FBQztJQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBTdWJqZWN0LCBmaWx0ZXIsIGZyb21FdmVudCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWNyeXB0LCBlbmNyeXB0IH0gZnJvbSAnLi9jcnlwdG8nO1xuaW1wb3J0IHsgZGVjcnlwdDNyZCwgZW5jcnlwdDNyZCB9IGZyb20gJy4vY3J5cHRvLTNyZCc7XG5pbXBvcnQgeyBpc0VtYmVkRnJhbWUgfSBmcm9tICcuL2Z1bmN0aW9uLWNoZWNrLWVtYmVkLWZyYW1lJztcbmltcG9ydCB7IFV0aWxzQ2FjaGUgfSBmcm9tICcuL2NhY2hlJztcbmltcG9ydCB7IENPTU1VTklDQVRFX01JQ1JPX0tFWV9HRVRfQUxMX01FU1NBR0UsIENPTU1VTklDQVRFX01JQ1JPX1BSRUZJWF9UWVBFIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuZXhwb3J0IGNsYXNzIFV0aWxzQ29tbXVuaWNhdGVNaWNyb0tleUdsb2JhbCB7XG4gIHB1YmxpYyBzdGF0aWMgS0VZX01FU1NBR0VfTU9EQUwgPSAnTElCU19VSV9NT0RFTF9FVkVOVCc7XG59XG5cbmV4cG9ydCBjbGFzcyBVdGlsc0NvbW11bmljYXRlTWljcm8ge1xuICBwcml2YXRlIHN0YXRpYyBpbml0ZEV2ZW50PzogYm9vbGVhbjtcbiAgcHJpdmF0ZSBzdGF0aWMgc3ViczogTWFwPHN0cmluZywgU3ViamVjdDxNZXNzYWdlRXZlbnQ+PiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSBzdGF0aWMgYWxsTWVzc2FnZVN1YjogU3ViamVjdDxNZXNzYWdlRXZlbnQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwdWJsaWMgc3RhdGljIGluaXRFdmVudChjdXJyZW50V2luZG93OiBXaW5kb3csIG9uRGVzdHJveTogU3ViamVjdDx2b2lkPikge1xuICAgIGlmICh0aGlzLmluaXRkRXZlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbml0ZEV2ZW50ID0gdHJ1ZTtcbiAgICBpZiAoIXRoaXMuc3Vicy5nZXQoQ09NTVVOSUNBVEVfTUlDUk9fS0VZX0dFVF9BTExfTUVTU0FHRSkpIHtcbiAgICAgIHRoaXMuc3Vicy5zZXQoQ09NTVVOSUNBVEVfTUlDUk9fS0VZX0dFVF9BTExfTUVTU0FHRSwgVXRpbHNDb21tdW5pY2F0ZU1pY3JvLmFsbE1lc3NhZ2VTdWIpO1xuICAgIH1cblxuICAgIGZyb21FdmVudDxNZXNzYWdlRXZlbnQ+KGN1cnJlbnRXaW5kb3csICdtZXNzYWdlJylcbiAgICAgIC5waXBlKHRha2VVbnRpbChvbkRlc3Ryb3kpKVxuICAgICAgLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICBjb25zdCBldmVudCA9IHsgZGF0YTogeyAuLi5lLmRhdGEgfSB9IGFzIE1lc3NhZ2VFdmVudDtcblxuICAgICAgICBjb25zdCBkYXRhID0gZXZlbnQuZGF0YTtcbiAgICAgICAgY29uc3QgdHlwZSA9IGRhdGEudHlwZTtcblxuICAgICAgICBpZiAoIXR5cGUpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5hbGxNZXNzYWdlU3ViLm5leHQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN1YiA9IFV0aWxzQ29tbXVuaWNhdGVNaWNyby5HZXRNZXNzYWdlKHR5cGUpO1xuXG4gICAgICAgIGlmICghdHlwZSB8fCAhZGF0YS5yZXNwb25zZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmICh0eXBlLmluY2x1ZGVzKENPTU1VTklDQVRFX01JQ1JPX1BSRUZJWF9UWVBFKSkge1xuICAgICAgICAgICAgZGF0YS5yZXNwb25zZSA9IEpTT04ucGFyc2UoZGVjcnlwdDNyZChkYXRhLnJlc3BvbnNlKSk7XG4gICAgICAgICAgICBzdWIubmV4dChldmVudCk7XG4gICAgICAgICAgICB0aGlzLmFsbE1lc3NhZ2VTdWIubmV4dChldmVudCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgZGF0YS5yZXNwb25zZSA9IEpTT04ucGFyc2UoZGVjcnlwdChkYXRhLnJlc3BvbnNlKSk7XG4gICAgICAgICAgc3ViLm5leHQoZXZlbnQpO1xuICAgICAgICAgIHRoaXMuYWxsTWVzc2FnZVN1Yi5uZXh0KGV2ZW50KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAgICAgICAgc3ViLm5leHQoZXZlbnQpO1xuICAgICAgICAgIHRoaXMuYWxsTWVzc2FnZVN1Yi5uZXh0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBVdGlsc0NvbW11bmljYXRlTWljcm8uR2V0TWVzc2FnZShVdGlsc0NhY2hlLnR5cGVLZXlDbGVhckxvY2FsU3RvcmFnZSlcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGUpID0+IGUuZGF0YS5yZXNwb25zZSAhPT0gVXRpbHNDYWNoZS5pZFNlcnZpY2UpLFxuICAgICAgICB0YWtlVW50aWwob25EZXN0cm95KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdjbGVhciBhbGwgY2FjaGUgYnkgZXZlbnQnKTtcbiAgICAgICAgVXRpbHNDYWNoZS5DbGVhckFsbCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBzdGF0aWMgUG9zdE1lc3NhZ2VUb1BhcmVudChkYXRhOiBhbnkpIHtcbiAgICBkYXRhID0gdGhpcy5jb252ZXJ0RGF0YShkYXRhKTtcbiAgICB0cnkge1xuICAgICAgaWYgKGlzRW1iZWRGcmFtZSgpKSB7XG4gICAgICAgIHdpbmRvdz8ucGFyZW50Py5wb3N0TWVzc2FnZShkYXRhLCAnKicpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgd2luZG93Py50b3A/LnBvc3RNZXNzYWdlKGRhdGEsICcqJyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgUG9zdE1lc3NhZ2VUb0NoaWxkcmVuKGRhdGE6IGFueSkge1xuICAgIGRhdGEgPSB0aGlzLmNvbnZlcnREYXRhKGRhdGEpO1xuICAgIGNvbnN0IGlmcmFtZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpZnJhbWUnKTtcblxuICAgIEFycmF5LmZyb20oaWZyYW1lcykuZm9yRWFjaCgoaWZyYW1lKSA9PiB7XG4gICAgICBpZnJhbWU/LmNvbnRlbnRXaW5kb3c/LnBvc3RNZXNzYWdlKGRhdGEsICcqJyk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgUG9zdE1lc3NhZ2VUb09wZW5lcihkYXRhOiBhbnkpIHtcbiAgICBpZiAoIXdpbmRvdy5vcGVuZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZGF0YSA9IHRoaXMuY29udmVydERhdGEoZGF0YSk7XG5cbiAgICB3aW5kb3cub3BlbmVyLnBvc3RNZXNzYWdlKGRhdGEsICcqJyk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjb252ZXJ0RGF0YShkYXRhOiBhbnkpIHtcbiAgICBpZiAoIWRhdGEgfHwgIWRhdGEudHlwZSB8fCAhZGF0YS5yZXNwb25zZSkge1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGRhdGEgPSB7IC4uLmRhdGEgfTtcbiAgICBjb25zdCB0eXBlID0gZGF0YS50eXBlO1xuXG4gICAgaWYgKHR5cGUuaW5jbHVkZXMoQ09NTVVOSUNBVEVfTUlDUk9fUFJFRklYX1RZUEUpKSB7XG4gICAgICB0cnkge1xuICAgICAgICBKU09OLnBhcnNlKGRlY3J5cHQzcmQoZGF0YS5yZXNwb25zZSkpO1xuXG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfSBjYXRjaCAoXykge1xuICAgICAgICBkYXRhLnJlc3BvbnNlID0gZW5jcnlwdDNyZChKU09OLnN0cmluZ2lmeShkYXRhLnJlc3BvbnNlKSk7XG5cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBKU09OLnBhcnNlKGRlY3J5cHQoZGF0YS5yZXNwb25zZSkpO1xuXG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9IGNhdGNoIChfKSB7XG4gICAgICBkYXRhLnJlc3BvbnNlID0gZW5jcnlwdChKU09OLnN0cmluZ2lmeShkYXRhLnJlc3BvbnNlKSk7XG5cbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBHZXRNZXNzYWdlKG1lc3NhZ2VUeXBlOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+KTogU3ViamVjdDxNZXNzYWdlRXZlbnQ+IHtcbiAgICBpZiAoIXRoaXMuaW5pdGRFdmVudCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ2NoxrBhIGtoxqFpIHThuqFvIGjDoG0gbOG6r25nIG5naGUgc+G7sSBraeG7h24sIGfhu41pIFV0aWxzQ29tbXVuaWNhdGVNaWNyby5pbml0RXZlbnQod2luZG93KSB04bqhaSByb290IGNvbXBvbmVudCcpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG1lc3NhZ2VUeXBlID09PSAnc3RyaW5nJykge1xuICAgICAgbGV0IHN1YiA9IHRoaXMuc3Vicy5nZXQobWVzc2FnZVR5cGUpO1xuXG4gICAgICBpZiAoIXN1Yikge1xuICAgICAgICBzdWIgPSBuZXcgU3ViamVjdCgpO1xuICAgICAgICB0aGlzLnN1YnMuc2V0KG1lc3NhZ2VUeXBlLCBzdWIpO1xuXG4gICAgICAgIHJldHVybiBzdWI7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzdWI7XG4gICAgfVxuICAgIGlmICghQXJyYXkuaXNBcnJheShtZXNzYWdlVHlwZSkgfHwgIW1lc3NhZ2VUeXBlLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdtZXNzYWdlIHR5cGUgZW1wdHknKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VUeXBlLmxlbmd0aCA9PT0gMSkge1xuICAgICAgcmV0dXJuIHRoaXMuR2V0TWVzc2FnZShtZXNzYWdlVHlwZVswXSk7XG4gICAgfVxuICAgIGNvbnN0IHR5cGVzID0gbWVzc2FnZVR5cGUuc29ydCgpLmpvaW4oJzsnKTtcblxuICAgIGxldCBzdWIgPSB0aGlzLnN1YnMuZ2V0KHR5cGVzKTtcblxuICAgIGlmIChzdWIpIHtcbiAgICAgIHJldHVybiBzdWI7XG4gICAgfVxuXG4gICAgc3ViID0gbmV3IFN1YmplY3QoKTtcbiAgICB0aGlzLnN1YnMuc2V0KHR5cGVzLCBzdWIpO1xuICAgIHRoaXMuaW5pdFN1YmplY3Qoc3ViLCBtZXNzYWdlVHlwZSk7XG5cbiAgICByZXR1cm4gc3ViO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaW5pdFN1YmplY3Qoc3ViUm9vdDogU3ViamVjdDxNZXNzYWdlRXZlbnQ+LCBtZXNzYWdlVHlwZTogQXJyYXk8c3RyaW5nPikge1xuICAgIG1lc3NhZ2VUeXBlLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgdGhpcy5HZXRNZXNzYWdlKGtleSkuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgIHN1YlJvb3QubmV4dChlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export const ERROR_MESSAGE_EMPTY_VALID = 'i18n_valid_empty_message';
|
|
2
|
+
export const ERROR_MESSAGE_PATTEN_VALID = 'i18n_valid_pattern_message';
|
|
3
|
+
export const ERROR_MESSAGE_MIN_VALID = 'i18n_message_error_input_min_value';
|
|
4
|
+
export const ERROR_MESSAGE_MAX_VALID = 'i18n_message_error_input_max_value';
|
|
5
|
+
export const ERROR_MESSAGE_MIN_LENGTH = 'i18n_message_error_input_min_length';
|
|
6
|
+
export const ERROR_MESSAGE_MAX_LENGTH = 'i18n_message_error_input_max_length';
|
|
7
|
+
export const CHARACTER_DATA_EMPTY = '__';
|
|
8
|
+
export const DEFAULT_START_PAGE_0 = 'defaultStartPage0';
|
|
9
|
+
export const COMMUNICATE_MICRO_PREFIX_TYPE = '3RD_INTEGRATE_MICRO_SITE_';
|
|
10
|
+
export const COMMUNICATE_MICRO_KEY_GET_ALL_MESSAGE = 'MICRO_SITES_ALL_MESSAGE';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy11aS91dGlscy9zcmMvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLDBCQUEwQixDQUFDO0FBQ3BFLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLDRCQUE0QixDQUFDO0FBQ3ZFLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLG9DQUFvQyxDQUFDO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLG9DQUFvQyxDQUFDO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLHFDQUFxQyxDQUFDO0FBQzlFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLHFDQUFxQyxDQUFDO0FBQzlFLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRywyQkFBMkIsQ0FBQztBQUN6RSxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBFUlJPUl9NRVNTQUdFX0VNUFRZX1ZBTElEID0gJ2kxOG5fdmFsaWRfZW1wdHlfbWVzc2FnZSc7XG5leHBvcnQgY29uc3QgRVJST1JfTUVTU0FHRV9QQVRURU5fVkFMSUQgPSAnaTE4bl92YWxpZF9wYXR0ZXJuX21lc3NhZ2UnO1xuZXhwb3J0IGNvbnN0IEVSUk9SX01FU1NBR0VfTUlOX1ZBTElEID0gJ2kxOG5fbWVzc2FnZV9lcnJvcl9pbnB1dF9taW5fdmFsdWUnO1xuZXhwb3J0IGNvbnN0IEVSUk9SX01FU1NBR0VfTUFYX1ZBTElEID0gJ2kxOG5fbWVzc2FnZV9lcnJvcl9pbnB1dF9tYXhfdmFsdWUnO1xuZXhwb3J0IGNvbnN0IEVSUk9SX01FU1NBR0VfTUlOX0xFTkdUSCA9ICdpMThuX21lc3NhZ2VfZXJyb3JfaW5wdXRfbWluX2xlbmd0aCc7XG5leHBvcnQgY29uc3QgRVJST1JfTUVTU0FHRV9NQVhfTEVOR1RIID0gJ2kxOG5fbWVzc2FnZV9lcnJvcl9pbnB1dF9tYXhfbGVuZ3RoJztcbmV4cG9ydCBjb25zdCBDSEFSQUNURVJfREFUQV9FTVBUWSA9ICdfXyc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9TVEFSVF9QQUdFXzAgPSAnZGVmYXVsdFN0YXJ0UGFnZTAnO1xuZXhwb3J0IGNvbnN0IENPTU1VTklDQVRFX01JQ1JPX1BSRUZJWF9UWVBFID0gJzNSRF9JTlRFR1JBVEVfTUlDUk9fU0lURV8nO1xuZXhwb3J0IGNvbnN0IENPTU1VTklDQVRFX01JQ1JPX0tFWV9HRVRfQUxMX01FU1NBR0UgPSAnTUlDUk9fU0lURVNfQUxMX01FU1NBR0UnO1xuIl19
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import CryptoES from 'crypto-es';
|
|
2
|
+
let key = '12~@#loqwsxacva(3rdhaq12';
|
|
3
|
+
/**
|
|
4
|
+
* @description Thiết lập key mã hóa
|
|
5
|
+
* @param value key mã hóa, độ dài bằng 24 hoặc 32 ký tự.
|
|
6
|
+
*/
|
|
7
|
+
export const setKeyCrypto3rd = (value) => {
|
|
8
|
+
if (value.length !== 24 && value.length !== 32) {
|
|
9
|
+
throw Error(`key.length = ${value.length}; Key phải là 1 chuỗi dài 24 hoặc 32 ký tự`);
|
|
10
|
+
}
|
|
11
|
+
key = value;
|
|
12
|
+
};
|
|
13
|
+
const keyStore = () => {
|
|
14
|
+
return key;
|
|
15
|
+
};
|
|
16
|
+
export const encrypt3rd = (plainData) => {
|
|
17
|
+
if (!keyStore()) {
|
|
18
|
+
throw Error('lỗi chưa setup key mã hóa');
|
|
19
|
+
}
|
|
20
|
+
const key = CryptoES.enc.Hex.parse(keyStore());
|
|
21
|
+
const iv = CryptoES.enc.Hex.parse(keyStore());
|
|
22
|
+
const mode = CryptoES.mode.CBC;
|
|
23
|
+
const padding = CryptoES.pad.Pkcs7;
|
|
24
|
+
const options = { iv: iv, mode: mode, padding: padding };
|
|
25
|
+
return CryptoES.AES.encrypt(plainData, key, options).toString();
|
|
26
|
+
};
|
|
27
|
+
export const decrypt3rd = (encryptedData) => {
|
|
28
|
+
if (!keyStore()) {
|
|
29
|
+
throw Error('lỗi chưa setup key mã hóa');
|
|
30
|
+
}
|
|
31
|
+
const key = CryptoES.enc.Hex.parse(keyStore());
|
|
32
|
+
const iv = CryptoES.enc.Hex.parse(keyStore());
|
|
33
|
+
const mode = CryptoES.mode.CBC;
|
|
34
|
+
const padding = CryptoES.pad.Pkcs7;
|
|
35
|
+
const options = { iv: iv, mode: mode, padding: padding };
|
|
36
|
+
return CryptoES.AES.decrypt(encryptedData, key, options).toString(CryptoES.enc.Utf8);
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLTNyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMtdWkvdXRpbHMvc3JjL2NyeXB0by0zcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBRWpDLElBQUksR0FBRyxHQUFHLDBCQUEwQixDQUFDO0FBRXJDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFO0lBQy9DLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUMvQyxNQUFNLEtBQUssQ0FBQyxnQkFBZ0IsS0FBSyxDQUFDLE1BQU0sNENBQTRDLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBQ0QsR0FBRyxHQUFHLEtBQUssQ0FBQztBQUNkLENBQUMsQ0FBQztBQUVGLE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRTtJQUNwQixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLFNBQWlCLEVBQVUsRUFBRTtJQUN0RCxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztRQUNoQixNQUFNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMvQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM5QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUMvQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztJQUNuQyxNQUFNLE9BQU8sR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFFekQsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQ2xFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLGFBQXFCLEVBQVUsRUFBRTtJQUMxRCxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztRQUNoQixNQUFNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMvQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM5QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUMvQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztJQUNuQyxNQUFNLE9BQU8sR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFFekQsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3ZGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDcnlwdG9FUyBmcm9tICdjcnlwdG8tZXMnO1xuXG5sZXQga2V5ID0gJzEyfkAjbG9xd3N4YWN2YSgzcmRoYXExMic7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFRoaeG6v3QgbOG6rXAga2V5IG3DoyBow7NhXG4gKiBAcGFyYW0gdmFsdWUga2V5IG3DoyBow7NhLCDEkeG7mSBkw6BpIGLhurFuZyAyNCBob+G6t2MgMzIga8O9IHThu7EuXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRLZXlDcnlwdG8zcmQgPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICBpZiAodmFsdWUubGVuZ3RoICE9PSAyNCAmJiB2YWx1ZS5sZW5ndGggIT09IDMyKSB7XG4gICAgdGhyb3cgRXJyb3IoYGtleS5sZW5ndGggPSAke3ZhbHVlLmxlbmd0aH07IEtleSBwaOG6o2kgbMOgIDEgY2h14buXaSBkw6BpIDI0IGhv4bq3YyAzMiBrw70gdOG7sWApO1xuICB9XG4gIGtleSA9IHZhbHVlO1xufTtcblxuY29uc3Qga2V5U3RvcmUgPSAoKSA9PiB7XG4gIHJldHVybiBrZXk7XG59O1xuXG5leHBvcnQgY29uc3QgZW5jcnlwdDNyZCA9IChwbGFpbkRhdGE6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGlmICgha2V5U3RvcmUoKSkge1xuICAgIHRocm93IEVycm9yKCds4buXaSBjaMawYSBzZXR1cCBrZXkgbcOjIGjDs2EnKTtcbiAgfVxuICBjb25zdCBrZXkgPSBDcnlwdG9FUy5lbmMuSGV4LnBhcnNlKGtleVN0b3JlKCkpO1xuICBjb25zdCBpdiA9IENyeXB0b0VTLmVuYy5IZXgucGFyc2Uoa2V5U3RvcmUoKSk7XG4gIGNvbnN0IG1vZGUgPSBDcnlwdG9FUy5tb2RlLkNCQztcbiAgY29uc3QgcGFkZGluZyA9IENyeXB0b0VTLnBhZC5Qa2NzNztcbiAgY29uc3Qgb3B0aW9ucyA9IHsgaXY6IGl2LCBtb2RlOiBtb2RlLCBwYWRkaW5nOiBwYWRkaW5nIH07XG5cbiAgcmV0dXJuIENyeXB0b0VTLkFFUy5lbmNyeXB0KHBsYWluRGF0YSwga2V5LCBvcHRpb25zKS50b1N0cmluZygpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlY3J5cHQzcmQgPSAoZW5jcnlwdGVkRGF0YTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaWYgKCFrZXlTdG9yZSgpKSB7XG4gICAgdGhyb3cgRXJyb3IoJ2zhu5dpIGNoxrBhIHNldHVwIGtleSBtw6MgaMOzYScpO1xuICB9XG4gIGNvbnN0IGtleSA9IENyeXB0b0VTLmVuYy5IZXgucGFyc2Uoa2V5U3RvcmUoKSk7XG4gIGNvbnN0IGl2ID0gQ3J5cHRvRVMuZW5jLkhleC5wYXJzZShrZXlTdG9yZSgpKTtcbiAgY29uc3QgbW9kZSA9IENyeXB0b0VTLm1vZGUuQ0JDO1xuICBjb25zdCBwYWRkaW5nID0gQ3J5cHRvRVMucGFkLlBrY3M3O1xuICBjb25zdCBvcHRpb25zID0geyBpdjogaXYsIG1vZGU6IG1vZGUsIHBhZGRpbmc6IHBhZGRpbmcgfTtcblxuICByZXR1cm4gQ3J5cHRvRVMuQUVTLmRlY3J5cHQoZW5jcnlwdGVkRGF0YSwga2V5LCBvcHRpb25zKS50b1N0cmluZyhDcnlwdG9FUy5lbmMuVXRmOCk7XG59O1xuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import CryptoES from 'crypto-es';
|
|
2
|
+
let key = '12~@#loqwsxacva(3rdhaq12';
|
|
3
|
+
/**
|
|
4
|
+
* @description Thiết lập key mã hóa
|
|
5
|
+
* @param value key mã hóa, độ dài bằng 24 hoặc 32 ký tự.
|
|
6
|
+
*/
|
|
7
|
+
export const setKeyCrypto = (value) => {
|
|
8
|
+
if (value.length !== 24 && value.length !== 32) {
|
|
9
|
+
throw Error(`key.length = ${value.length}; Key phải là 1 chuỗi dài 24 hoặc 32 ký tự`);
|
|
10
|
+
}
|
|
11
|
+
key = value;
|
|
12
|
+
};
|
|
13
|
+
const keyStore = () => {
|
|
14
|
+
return key;
|
|
15
|
+
};
|
|
16
|
+
export const encrypt = (plainData) => {
|
|
17
|
+
if (!keyStore()) {
|
|
18
|
+
throw Error('lỗi chưa setup key mã hóa');
|
|
19
|
+
}
|
|
20
|
+
const key = CryptoES.enc.Hex.parse(keyStore());
|
|
21
|
+
const iv = CryptoES.enc.Hex.parse(keyStore());
|
|
22
|
+
const mode = CryptoES.mode.CBC;
|
|
23
|
+
const padding = CryptoES.pad.Pkcs7;
|
|
24
|
+
const options = { iv: iv, mode: mode, padding: padding };
|
|
25
|
+
return CryptoES.AES.encrypt(plainData, key, options).toString();
|
|
26
|
+
};
|
|
27
|
+
export const decrypt = (encryptedData) => {
|
|
28
|
+
if (!keyStore()) {
|
|
29
|
+
throw Error('lỗi chưa setup key mã hóa');
|
|
30
|
+
}
|
|
31
|
+
const key = CryptoES.enc.Hex.parse(keyStore());
|
|
32
|
+
const iv = CryptoES.enc.Hex.parse(keyStore());
|
|
33
|
+
const mode = CryptoES.mode.CBC;
|
|
34
|
+
const padding = CryptoES.pad.Pkcs7;
|
|
35
|
+
const options = { iv: iv, mode: mode, padding: padding };
|
|
36
|
+
return CryptoES.AES.decrypt(encryptedData, key, options).toString(CryptoES.enc.Utf8);
|
|
37
|
+
};
|
|
38
|
+
export const md5 = (plainData) => {
|
|
39
|
+
return CryptoES.MD5(plainData).toString();
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy11aS91dGlscy9zcmMvY3J5cHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUVqQyxJQUFJLEdBQUcsR0FBRywwQkFBMEIsQ0FBQztBQUVyQzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtJQUM1QyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDL0MsTUFBTSxLQUFLLENBQUMsZ0JBQWdCLEtBQUssQ0FBQyxNQUFNLDRDQUE0QyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUNELEdBQUcsR0FBRyxLQUFLLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUU7SUFDcEIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxTQUFpQixFQUFVLEVBQUU7SUFDbkQsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7UUFDaEIsTUFBTSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDL0MsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDOUMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDL0IsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDbkMsTUFBTSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBRXpELE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUNsRSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxhQUFxQixFQUFVLEVBQUU7SUFDdkQsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7UUFDaEIsTUFBTSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDL0MsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDOUMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDL0IsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDbkMsTUFBTSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBRXpELE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN2RixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxTQUFpQixFQUFFLEVBQUU7SUFDdkMsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQzVDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDcnlwdG9FUyBmcm9tICdjcnlwdG8tZXMnO1xuXG5sZXQga2V5ID0gJzEyfkAjbG9xd3N4YWN2YSgzcmRoYXExMic7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFRoaeG6v3QgbOG6rXAga2V5IG3DoyBow7NhXG4gKiBAcGFyYW0gdmFsdWUga2V5IG3DoyBow7NhLCDEkeG7mSBkw6BpIGLhurFuZyAyNCBob+G6t2MgMzIga8O9IHThu7EuXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRLZXlDcnlwdG8gPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICBpZiAodmFsdWUubGVuZ3RoICE9PSAyNCAmJiB2YWx1ZS5sZW5ndGggIT09IDMyKSB7XG4gICAgdGhyb3cgRXJyb3IoYGtleS5sZW5ndGggPSAke3ZhbHVlLmxlbmd0aH07IEtleSBwaOG6o2kgbMOgIDEgY2h14buXaSBkw6BpIDI0IGhv4bq3YyAzMiBrw70gdOG7sWApO1xuICB9XG4gIGtleSA9IHZhbHVlO1xufTtcblxuY29uc3Qga2V5U3RvcmUgPSAoKSA9PiB7XG4gIHJldHVybiBrZXk7XG59O1xuXG5leHBvcnQgY29uc3QgZW5jcnlwdCA9IChwbGFpbkRhdGE6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGlmICgha2V5U3RvcmUoKSkge1xuICAgIHRocm93IEVycm9yKCds4buXaSBjaMawYSBzZXR1cCBrZXkgbcOjIGjDs2EnKTtcbiAgfVxuICBjb25zdCBrZXkgPSBDcnlwdG9FUy5lbmMuSGV4LnBhcnNlKGtleVN0b3JlKCkpO1xuICBjb25zdCBpdiA9IENyeXB0b0VTLmVuYy5IZXgucGFyc2Uoa2V5U3RvcmUoKSk7XG4gIGNvbnN0IG1vZGUgPSBDcnlwdG9FUy5tb2RlLkNCQztcbiAgY29uc3QgcGFkZGluZyA9IENyeXB0b0VTLnBhZC5Qa2NzNztcbiAgY29uc3Qgb3B0aW9ucyA9IHsgaXY6IGl2LCBtb2RlOiBtb2RlLCBwYWRkaW5nOiBwYWRkaW5nIH07XG5cbiAgcmV0dXJuIENyeXB0b0VTLkFFUy5lbmNyeXB0KHBsYWluRGF0YSwga2V5LCBvcHRpb25zKS50b1N0cmluZygpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlY3J5cHQgPSAoZW5jcnlwdGVkRGF0YTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaWYgKCFrZXlTdG9yZSgpKSB7XG4gICAgdGhyb3cgRXJyb3IoJ2zhu5dpIGNoxrBhIHNldHVwIGtleSBtw6MgaMOzYScpO1xuICB9XG4gIGNvbnN0IGtleSA9IENyeXB0b0VTLmVuYy5IZXgucGFyc2Uoa2V5U3RvcmUoKSk7XG4gIGNvbnN0IGl2ID0gQ3J5cHRvRVMuZW5jLkhleC5wYXJzZShrZXlTdG9yZSgpKTtcbiAgY29uc3QgbW9kZSA9IENyeXB0b0VTLm1vZGUuQ0JDO1xuICBjb25zdCBwYWRkaW5nID0gQ3J5cHRvRVMucGFkLlBrY3M3O1xuICBjb25zdCBvcHRpb25zID0geyBpdjogaXYsIG1vZGU6IG1vZGUsIHBhZGRpbmc6IHBhZGRpbmcgfTtcblxuICByZXR1cm4gQ3J5cHRvRVMuQUVTLmRlY3J5cHQoZW5jcnlwdGVkRGF0YSwga2V5LCBvcHRpb25zKS50b1N0cmluZyhDcnlwdG9FUy5lbmMuVXRmOCk7XG59O1xuXG5leHBvcnQgY29uc3QgbWQ1ID0gKHBsYWluRGF0YTogc3RyaW5nKSA9PiB7XG4gIHJldHVybiBDcnlwdG9FUy5NRDUocGxhaW5EYXRhKS50b1N0cmluZygpO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { HttpParams } from '@angular/common/http';
|
|
3
|
+
import { TemplateRef, ElementRef } from '@angular/core';
|
|
4
|
+
import dayjs from 'dayjs';
|
|
5
|
+
import { Observable } from 'rxjs';
|
|
6
|
+
/**
|
|
7
|
+
* Danh sách các constructor name nguy hiểm
|
|
8
|
+
*/
|
|
9
|
+
const DANGEROUS_CONSTRUCTOR_NAMES = ['Window', 'Document', 'HTMLDocument', 'HTMLElement', 'Element', 'Node', 'Location', 'Navigator', 'Screen', 'History', 'Storage', 'Console', 'Performance'];
|
|
10
|
+
/**
|
|
11
|
+
* Kiểm tra xem đối tượng có phải là browser global object không
|
|
12
|
+
*/
|
|
13
|
+
export const isBrowserGlobalObject = (obj) => {
|
|
14
|
+
if (obj === null || typeof obj !== 'object') {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
return obj instanceof Window || obj instanceof Document || obj === window || obj === document || obj === globalThis;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Kiểm tra xem đối tượng có phải là DOM object không
|
|
21
|
+
*/
|
|
22
|
+
export const isDOMObject = (obj) => {
|
|
23
|
+
if (obj === null || typeof obj !== 'object') {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
return obj instanceof HTMLElement || obj instanceof Node || obj instanceof Element;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Kiểm tra xem đối tượng có phải là browser API object không
|
|
30
|
+
*/
|
|
31
|
+
export const isBrowserAPIObject = (obj) => {
|
|
32
|
+
if (obj === null || typeof obj !== 'object' || typeof window === 'undefined') {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
return obj === window.location || obj === window.navigator || obj === window.screen || obj === window.history || obj === window.localStorage || obj === window.sessionStorage || obj === window.console || obj === window.performance;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Kiểm tra constructor name có nằm trong danh sách nguy hiểm không
|
|
39
|
+
*/
|
|
40
|
+
export const hasDangerousConstructorName = (obj) => {
|
|
41
|
+
if (obj === null || typeof obj !== 'object') {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
const constructorName = obj.constructor?.name;
|
|
45
|
+
return constructorName && DANGEROUS_CONSTRUCTOR_NAMES.includes(constructorName);
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Kiểm tra xem đối tượng có phải là DOM object hoặc browser object nguy hiểm không
|
|
49
|
+
* Những đối tượng này có thể gây ra circular reference và maximum call stack
|
|
50
|
+
*/
|
|
51
|
+
export const isDangerousObject = (obj) => {
|
|
52
|
+
if (obj === null || typeof obj !== 'object') {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
return isBrowserGlobalObject(obj) || isDOMObject(obj) || isBrowserAPIObject(obj) || hasDangerousConstructorName(obj);
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Kiểm tra đối tượng có phải là Angular/Framework object không
|
|
59
|
+
*/
|
|
60
|
+
export const isFrameworkObject = (obj) => {
|
|
61
|
+
if (obj === null || typeof obj !== 'object') {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
return obj instanceof TemplateRef || obj instanceof ElementRef;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Kiểm tra đối tượng có phải là File/Blob object không
|
|
68
|
+
*/
|
|
69
|
+
export const isFile = (obj) => {
|
|
70
|
+
if (obj === null || typeof obj !== 'object') {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
return obj instanceof File || obj instanceof Blob || Object.prototype.toString.call(obj) === '[object File]';
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Kiểm tra đối tượng có phải là Built-in object không
|
|
77
|
+
*/
|
|
78
|
+
export const isBuiltInObject = (obj) => {
|
|
79
|
+
if (obj === null || typeof obj !== 'object') {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
return obj instanceof Date || isRegExp(obj) || obj instanceof HttpParams || ('hasOwnProperty' in obj && '__ngContext__' in obj);
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Kiểm tra đối tượng có phải là RegExp object không
|
|
86
|
+
*/
|
|
87
|
+
export const isRegExp = (obj) => {
|
|
88
|
+
return obj instanceof RegExp;
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Kiểm tra đối tượng có phải là Async object không
|
|
92
|
+
*/
|
|
93
|
+
export const isAsyncObject = (obj) => {
|
|
94
|
+
if (obj === null || typeof obj !== 'object') {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
return obj instanceof Promise || obj instanceof Observable;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Kiểm tra đối tượng có phải là Special object cần bỏ qua không
|
|
101
|
+
* Bao gồm: Framework objects, File objects, Built-in objects, Async objects
|
|
102
|
+
*/
|
|
103
|
+
export const isSpecialObject = (obj) => {
|
|
104
|
+
return isFrameworkObject(obj) || isFile(obj) || isBuiltInObject(obj) || isAsyncObject(obj);
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Kiểm tra đối tượng có phải là dayjs object không
|
|
108
|
+
*/
|
|
109
|
+
export const isDayjsObject = (obj) => {
|
|
110
|
+
return dayjs.isDayjs(obj);
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* Kiểm tra đối tượng có phải là object cần bỏ qua trong quá trình convert không
|
|
114
|
+
*/
|
|
115
|
+
export const isSkippableObject = (obj) => {
|
|
116
|
+
return isDangerousObject(obj) || isSpecialObject(obj);
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* Kiểm tra đối tượng có phải là Map object không
|
|
120
|
+
*/
|
|
121
|
+
export const isMap = (obj) => {
|
|
122
|
+
return obj instanceof Map;
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Kiểm tra đối tượng có phải là Set object không
|
|
126
|
+
*/
|
|
127
|
+
export const isSet = (obj) => {
|
|
128
|
+
return obj instanceof Set;
|
|
129
|
+
};
|
|
130
|
+
/**
|
|
131
|
+
* Kiểm tra đối tượng có phải là Array object không
|
|
132
|
+
*/
|
|
133
|
+
export const isArray = (obj) => {
|
|
134
|
+
return Array.isArray(obj);
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Kiểm tra đối tượng có phải là object cần trả về nguyên trạng không
|
|
138
|
+
* Bao gồm: dangerous objects, special objects, dayjs objects
|
|
139
|
+
*/
|
|
140
|
+
export const isReturnAsIsObject = (obj) => {
|
|
141
|
+
return isSkippableObject(obj) || isDayjsObject(obj);
|
|
142
|
+
};
|
|
143
|
+
/**
|
|
144
|
+
* Kiểm tra xem đối tượng có an toàn để clone/convert không
|
|
145
|
+
*/
|
|
146
|
+
export const isSafeToProcess = (obj) => {
|
|
147
|
+
return !isDangerousObject(obj);
|
|
148
|
+
};
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFuZ2Vyb3VzLW9iamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMtdWkvdXRpbHMvc3JjL2Rhbmdlcm91cy1vYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RCxPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEM7O0dBRUc7QUFDSCxNQUFNLDJCQUEyQixHQUFHLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFVLENBQUM7QUFFek07O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEdBQVEsRUFBb0UsRUFBRTtJQUNsSCxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDNUMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsT0FBTyxHQUFHLFlBQVksTUFBTSxJQUFJLEdBQUcsWUFBWSxRQUFRLElBQUksR0FBRyxLQUFLLE1BQU0sSUFBSSxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsS0FBSyxVQUFVLENBQUM7QUFDdEgsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFRLEVBQXVDLEVBQUU7SUFDM0UsSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxD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QUFDLENBQUM7QUFDeEQsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBVSxHQUFRLEVBQXlCLEVBQUU7SUFDaEUsT0FBTyxHQUFHLFlBQVksR0FBRyxDQUFDO0FBQzVCLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQVUsR0FBUSxFQUFpQixFQUFFO0lBQ3hELE9BQU8sR0FBRyxZQUFZLEdBQUcsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxDQUFVLEdBQVEsRUFBbUIsRUFBRTtJQUM1RCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDNUIsQ0FBQyxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxHQUFRLEVBQVcsRUFBRTtJQUN0RCxPQUFPLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN0RCxDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLEdBQVEsRUFBVyxFQUFFO0lBQ25ELE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNqQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgVGVtcGxhdGVSZWYsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBkYXlqcywgeyBEYXlqcyB9IGZyb20gJ2RheWpzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBEYW5oIHPDoWNoIGPDoWMgY29uc3RydWN0b3IgbmFtZSBuZ3V5IGhp4buDbVxuICovXG5jb25zdCBEQU5HRVJPVVNfQ09OU1RSVUNUT1JfTkFNRVMgPSBbJ1dpbmRvdycsICdEb2N1bWVudCcsICdIVE1MRG9jdW1lbnQnLCAnSFRNTEVsZW1lbnQnLCAnRWxlbWVudCcsICdOb2RlJywgJ0xvY2F0aW9uJywgJ05hdmlnYXRvcicsICdTY3JlZW4nLCAnSGlzdG9yeScsICdTdG9yYWdlJywgJ0NvbnNvbGUnLCAnUGVyZm9ybWFuY2UnXSBhcyBjb25zdDtcblxuLyoqXG4gKiBLaeG7g20gdHJhIHhlbSDEkeG7kWkgdMaw4bujbmcgY8OzIHBo4bqjaSBsw6AgYnJvd3NlciBnbG9iYWwgb2JqZWN0IGtow7RuZ1xuICovXG5leHBvcnQgY29uc3QgaXNCcm93c2VyR2xvYmFsT2JqZWN0ID0gKG9iajogYW55KTogb2JqIGlzIFdpbmRvdyB8IERvY3VtZW50IHwgV2luZG93IHwgRG9jdW1lbnQgfCB0eXBlb2YgZ2xvYmFsVGhpcyA9PiB7XG4gIGlmIChvYmogPT09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIFdpbmRvdyB8fCBvYmogaW5zdGFuY2VvZiBEb2N1bWVudCB8fCBvYmogPT09IHdpbmRvdyB8fCBvYmogPT09IGRvY3VtZW50IHx8IG9iaiA9PT0gZ2xvYmFsVGhpcztcbn07XG5cbi8qKlxuICogS2nhu4NtIHRyYSB4ZW0gxJHhu5FpIHTGsOG7o25nIGPDsyBwaOG6o2kgbMOgIERPTSBvYmplY3Qga2jDtG5nXG4gKi9cbmV4cG9ydCBjb25zdCBpc0RPTU9iamVjdCA9IChvYmo6IGFueSk6IG9iaiBpcyBIVE1MRWxlbWVudCB8IE5vZGUgfCBFbGVtZW50ID0+IHtcbiAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gb2JqIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgfHwgb2JqIGluc3RhbmNlb2YgTm9kZSB8fCBvYmogaW5zdGFuY2VvZiBFbGVtZW50O1xufTtcblxuLyoqXG4gKiBLaeG7g20gdHJhIHhlbSDEkeG7kWkgdMaw4bujbmcgY8OzIHBo4bqjaSBsw6AgYnJvd3NlciBBUEkgb2JqZWN0IGtow7RuZ1xuICovXG5leHBvcnQgY29uc3QgaXNCcm93c2VyQVBJT2JqZWN0ID0gKG9iajogYW55KTogYm9vbGVhbiA9PiB7XG4gIGlmIChvYmogPT09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gJ29iamVjdCcgfHwgdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIG9iaiA9PT0gd2luZG93LmxvY2F0aW9uIHx8IG9iaiA9PT0gd2luZG93Lm5hdmlnYXRvciB8fCBvYmogPT09IHdpbmRvdy5zY3JlZW4gfHwgb2JqID09PSB3aW5kb3cuaGlzdG9yeSB8fCBvYmogPT09IHdpbmRvdy5sb2NhbFN0b3JhZ2UgfHwgb2JqID09PSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UgfHwgb2JqID09PSB3aW5kb3cuY29uc29sZSB8fCBvYmogPT09IHdpbmRvdy5wZXJmb3JtYW5jZTtcbn07XG5cbi8qKlxuICogS2nhu4NtIHRyYSBjb25zdHJ1Y3RvciBuYW1lIGPDsyBu4bqxbSB0cm9uZyBkYW5oIHPDoWNoIG5ndXkgaGnhu4NtIGtow7RuZ1xuICovXG5leHBvcnQgY29uc3QgaGFzRGFuZ2Vyb3VzQ29uc3RydWN0b3JOYW1lID0gKG9iajogYW55KTogYm9vbGVhbiA9PiB7XG4gIGlmIChvYmogPT09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3QgY29uc3RydWN0b3JOYW1lID0gb2JqLmNvbnN0cnVjdG9yPy5uYW1lO1xuICByZXR1cm4gY29uc3RydWN0b3JOYW1lICYmIERBTkdFUk9VU19DT05TVFJVQ1RPUl9OQU1FUy5pbmNsdWRlcyhjb25zdHJ1Y3Rvck5hbWUgYXMgYW55KTtcbn07XG5cbi8qKlxuICogS2nhu4NtIHRyYSB4ZW0gxJHhu5FpIHTGsOG7o25nIGPDsyBwaOG6o2kgbMOgIERPTSBvYmplY3QgaG/hurdjIGJyb3dzZXIgb2JqZWN0IG5ndXkgaGnhu4NtIGtow7RuZ1xuICogTmjhu69uZyDEkeG7kWkgdMaw4bujbmcgbsOgeSBjw7MgdGjhu4MgZ8OieSByYSBjaXJjdWxhciByZWZlcmVuY2UgdsOgIG1heGltdW0gY2FsbCBzdGFja1xuICovXG5leHBvcnQgY29uc3QgaXNEYW5nZXJvdXNPYmplY3QgPSAob2JqOiBhbnkpOiBib29sZWFuID0+IHtcbiAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBpc0Jyb3dzZXJHbG9iYWxPYmplY3Qob2JqKSB8fCBpc0RPTU9iamVjdChvYmopIHx8IGlzQnJvd3NlckFQSU9iamVjdChvYmopIHx8IGhhc0Rhbmdlcm91c0NvbnN0cnVjdG9yTmFtZShvYmopO1xufTtcblxuLyoqXG4gKiBLaeG7g20gdHJhIMSR4buRaSB0xrDhu6NuZyBjw7MgcGjhuqNpIGzDoCBBbmd1bGFyL0ZyYW1ld29yayBvYmplY3Qga2jDtG5nXG4gKi9cbmV4cG9ydCBjb25zdCBpc0ZyYW1ld29ya09iamVjdCA9IDxUID0gYW55PihvYmo6IGFueSk6IG9iaiBpcyBUZW1wbGF0ZVJlZjxUPiB8IEVsZW1lbnRSZWY8VD4gPT4ge1xuICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBvYmogaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZiB8fCBvYmogaW5zdGFuY2VvZiBFbGVtZW50UmVmO1xufTtcblxuLyoqXG4gKiBLaeG7g20gdHJhIMSR4buRaSB0xrDhu6NuZyBjw7MgcGjhuqNpIGzDoCBGaWxlL0Jsb2Igb2JqZWN0IGtow7RuZ1xuICovXG5leHBvcnQgY29uc3QgaXNGaWxlID0gKG9iajogYW55KTogb2JqIGlzIEZpbGUgfCBCbG9iID0+IHtcbiAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gb2JqIGluc3RhbmNlb2YgRmlsZSB8fCBvYmogaW5zdGFuY2VvZiBCbG9iIHx8IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopID09PSAnW29iamVjdCBGaWxlXSc7XG59O1xuXG4vKipcbiAqIEtp4buDbSB0cmEgxJHhu5FpIHTGsOG7o25nIGPDsyBwaOG6o2kgbMOgIEJ1aWx0LWluIG9iamVjdCBraMO0bmdcbiAqL1xuZXhwb3J0IGNvbnN0IGlzQnVpbHRJbk9iamVjdCA9IChvYmo6IGFueSk6IG9iaiBpcyBEYXRlIHwgUmVnRXhwIHwgSHR0cFBhcmFtcyA9PiB7XG4gIGlmIChvYmogPT09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIERhdGUgfHwgaXNSZWdFeHAob2JqKSB8fCBvYmogaW5zdGFuY2VvZiBIdHRwUGFyYW1zIHx8ICgnaGFzT3duUHJvcGVydHknIGluIG9iaiAmJiAnX19uZ0NvbnRleHRfXycgaW4gb2JqKTtcbn07XG5cbi8qKlxuICogS2nhu4NtIHRyYSDEkeG7kWkgdMaw4bujbmcgY8OzIHBo4bqjaSBsw6AgUmVnRXhwIG9iamVjdCBraMO0bmdcbiAqL1xuZXhwb3J0IGNvbnN0IGlzUmVnRXhwID0gKG9iajogYW55KTogb2JqIGlzIFJlZ0V4cCA9PiB7XG4gIHJldHVybiBvYmogaW5zdGFuY2VvZiBSZWdFeHA7XG59O1xuXG4vKipcbiAqIEtp4buDbSB0cmEgxJHhu5FpIHTGsOG7o25nIGPDsyBwaOG6o2kgbMOgIEFzeW5jIG9iamVjdCBraMO0bmdcbiAqL1xuZXhwb3J0IGNvbnN0IGlzQXN5bmNPYmplY3QgPSA8VCA9IGFueT4ob2JqOiBhbnkpOiBvYmogaXMgUHJvbWlzZTxUPiB8IE9ic2VydmFibGU8VD4gPT4ge1xuICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBvYmogaW5zdGFuY2VvZiBQcm9taXNlIHx8IG9iaiBpbnN0YW5jZW9mIE9ic2VydmFibGU7XG59O1xuXG4vKipcbiAqIEtp4buDbSB0cmEgxJHhu5FpIHTGsOG7o25nIGPDsyBwaOG6o2kgbMOgIFNwZWNpYWwgb2JqZWN0IGPhuqduIGLhu48gcXVhIGtow7RuZ1xuICogQmFvIGfhu5NtOiBGcmFtZXdvcmsgb2JqZWN0cywgRmlsZSBvYmplY3RzLCBCdWlsdC1pbiBvYmplY3RzLCBBc3luYyBvYmplY3RzXG4gKi9cbmV4cG9ydCBjb25zdCBpc1NwZWNpYWxPYmplY3QgPSAob2JqOiBhbnkpOiBib29sZWFuID0+IHtcbiAgcmV0dXJuIGlzRnJhbWV3b3JrT2JqZWN0KG9iaikgfHwgaXNGaWxlKG9iaikgfHwgaXNCdWlsdEluT2JqZWN0KG9iaikgfHwgaXNBc3luY09iamVjdChvYmopO1xufTtcblxuLyoqXG4gKiBLaeG7g20gdHJhIMSR4buRaSB0xrDhu6NuZyBjw7MgcGjhuqNpIGzDoCBkYXlqcyBvYmplY3Qga2jDtG5nXG4gKi9cbmV4cG9ydCBjb25zdCBpc0RheWpzT2JqZWN0ID0gKG9iajogYW55KTogb2JqIGlzIERheWpzID0+IHtcbiAgcmV0dXJuIGRheWpzLmlzRGF5anMob2JqKTtcbn07XG5cbi8qKlxuICogS2nhu4NtIHRyYSDEkeG7kWkgdMaw4bujbmcgY8OzIHBo4bqjaSBsw6Agb2JqZWN0IGPhuqduIGLhu48gcXVhIHRyb25nIHF1w6EgdHLDrG5oIGNvbnZlcnQga2jDtG5nXG4gKi9cbmV4cG9ydCBjb25zdCBpc1NraXBwYWJsZU9iamVjdCA9IChvYmo6IGFueSk6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gaXNEYW5nZXJvdXNPYmplY3Qob2JqKSB8fCBpc1NwZWNpYWxPYmplY3Qob2JqKTtcbn07XG5cbi8qKlxuICogS2nhu4NtIHRyYSDEkeG7kWkgdMaw4bujbmcgY8OzIHBo4bqjaSBsw6AgTWFwIG9iamVjdCBraMO0bmdcbiAqL1xuZXhwb3J0IGNvbnN0IGlzTWFwID0gPFQgPSBhbnk+KG9iajogYW55KTogb2JqIGlzIE1hcDxzdHJpbmcsIFQ+ID0+IHtcbiAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIE1hcDtcbn07XG5cbi8qKlxuICogS2nhu4NtIHRyYSDEkeG7kWkgdMaw4bujbmcgY8OzIHBo4bqjaSBsw6AgU2V0IG9iamVjdCBraMO0bmdcbiAqL1xuZXhwb3J0IGNvbnN0IGlzU2V0ID0gPFQgPSBhbnk+KG9iajogYW55KTogb2JqIGlzIFNldDxUPiA9PiB7XG4gIHJldHVybiBvYmogaW5zdGFuY2VvZiBTZXQ7XG59O1xuXG4vKipcbiAqIEtp4buDbSB0cmEgxJHhu5FpIHTGsOG7o25nIGPDsyBwaOG6o2kgbMOgIEFycmF5IG9iamVjdCBraMO0bmdcbiAqL1xuZXhwb3J0IGNvbnN0IGlzQXJyYXkgPSA8VCA9IGFueT4ob2JqOiBhbnkpOiBvYmogaXMgQXJyYXk8VD4gPT4ge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShvYmopO1xufTtcblxuLyoqXG4gKiBLaeG7g20gdHJhIMSR4buRaSB0xrDhu6NuZyBjw7MgcGjhuqNpIGzDoCBvYmplY3QgY+G6p24gdHLhuqMgduG7gSBuZ3V5w6puIHRy4bqhbmcga2jDtG5nXG4gKiBCYW8gZ+G7k206IGRhbmdlcm91cyBvYmplY3RzLCBzcGVjaWFsIG9iamVjdHMsIGRheWpzIG9iamVjdHNcbiAqL1xuZXhwb3J0IGNvbnN0IGlzUmV0dXJuQXNJc09iamVjdCA9IChvYmo6IGFueSk6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gaXNTa2lwcGFibGVPYmplY3Qob2JqKSB8fCBpc0RheWpzT2JqZWN0KG9iaik7XG59O1xuXG4vKipcbiAqIEtp4buDbSB0cmEgeGVtIMSR4buRaSB0xrDhu6NuZyBjw7MgYW4gdG/DoG4gxJHhu4MgY2xvbmUvY29udmVydCBraMO0bmdcbiAqL1xuZXhwb3J0IGNvbnN0IGlzU2FmZVRvUHJvY2VzcyA9IChvYmo6IGFueSk6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gIWlzRGFuZ2Vyb3VzT2JqZWN0KG9iaik7XG59O1xuIl19
|