@dbg-riskit/common 15.0.0 → 15.0.2

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.
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGJnLXJpc2tpdC1jb21tb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9jb21tb24vc3JjL2RiZy1yaXNraXQtY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
@@ -0,0 +1,7 @@
1
+ export var AuthTokenType;
2
+ (function (AuthTokenType) {
3
+ AuthTokenType[AuthTokenType["NONE"] = 0] = "NONE";
4
+ AuthTokenType[AuthTokenType["API"] = 1] = "API";
5
+ AuthTokenType[AuthTokenType["AUTH"] = 2] = "AUTH";
6
+ })(AuthTokenType || (AuthTokenType = {}));
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BrZy9kYmctcmlza2l0L2NvbW1vbi9zcmMvbGliL2F1dGgudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxDQUFOLElBQVksYUFJWDtBQUpELFdBQVksYUFBYTtJQUNyQixpREFBSSxDQUFBO0lBQ0osK0NBQUcsQ0FBQTtJQUNILGlEQUFJLENBQUE7QUFDUixDQUFDLEVBSlcsYUFBYSxLQUFiLGFBQWEsUUFJeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtVc2VySW5mb30gZnJvbSAnLi91c2VyLmluZm8nO1xuXG5leHBvcnQgZW51bSBBdXRoVG9rZW5UeXBlIHtcbiAgICBOT05FLFxuICAgIEFQSSxcbiAgICBBVVRIXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aFByb3ZpZGVyIHtcbiAgICByZWFkb25seSBsb2dnZWRJbjogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIHJlYWRvbmx5IHVzZXJQcm9maWxlOiBPYnNlcnZhYmxlPFVzZXJJbmZvIHwgdW5kZWZpbmVkPjtcblxuICAgIHJlYWRvbmx5IGxvZ2dlZEluU3RyZWFtOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xufVxuIl19
@@ -0,0 +1,114 @@
1
+ import { globalScope } from './global';
2
+ const BASE64_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
3
+ const atobAvailable = 'atob' in globalScope && typeof globalScope.atob === 'function';
4
+ const btoaAvailable = 'btoa' in globalScope && typeof globalScope.btoa === 'function';
5
+ // credits for decoder goes to https://github.com/atk
6
+ export function base64decode(str) {
7
+ let source = str
8
+ .replace(/-/g, '+')
9
+ .replace(/_/g, '/');
10
+ // Add padding if missing
11
+ switch (source.length % 4) {
12
+ case 0:
13
+ break;
14
+ case 2:
15
+ source += '==';
16
+ break;
17
+ case 3:
18
+ source += '=';
19
+ break;
20
+ default:
21
+ throw new Error('Illegal base64 string!');
22
+ }
23
+ let output = '';
24
+ if (atobAvailable) {
25
+ output = atob(str);
26
+ }
27
+ else {
28
+ source = source.replace(/=+$/, '');
29
+ if (source.length % 4 === 1) {
30
+ throw new Error('\'atob\' failed: The string to be decoded is not correctly encoded.');
31
+ }
32
+ /* eslint-disable no-bitwise, no-cond-assign */
33
+ for (
34
+ // initialize result and counters
35
+ let bc = 0, bs = 0, buffer, idx = 0;
36
+ // get next character
37
+ buffer = source.charAt(idx++);
38
+ // character found in table? initialize bit storage and add its ascii value;
39
+ ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,
40
+ // and if not first of each 4 characters,
41
+ // convert the first 8 bits to one ascii character
42
+ bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0) {
43
+ // try to find character in table (0-63, not found => -1)
44
+ buffer = BASE64_CHARS.indexOf(buffer);
45
+ }
46
+ /* eslint-enable */
47
+ }
48
+ // https://developer.mozilla.org/en/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_Unicode_Problem
49
+ return decodeURIComponent(Array.prototype.map.call(output, (c) => {
50
+ return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
51
+ }).join(''));
52
+ }
53
+ export function base64encode(buffer) {
54
+ let arrayBuffer;
55
+ if (typeof buffer === 'string') {
56
+ if (btoaAvailable) {
57
+ return btoa(buffer);
58
+ }
59
+ arrayBuffer = string2buffer(buffer);
60
+ }
61
+ else {
62
+ arrayBuffer = buffer;
63
+ }
64
+ let base64 = '';
65
+ const bytes = new Uint8Array(arrayBuffer);
66
+ const byteLength = bytes.byteLength;
67
+ const byteRemainder = byteLength % 3;
68
+ const mainLength = byteLength - byteRemainder;
69
+ let a;
70
+ let b;
71
+ let c;
72
+ let d;
73
+ let chunk;
74
+ /* eslint-disable no-bitwise */
75
+ // Main loop deals with bytes in chunks of 3
76
+ for (let i = 0; i < mainLength; i = i + 3) {
77
+ // Combine the three bytes into a single integer
78
+ chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];
79
+ // Use bitmasks to extract 6-bit segments from the triplet
80
+ a = (chunk & 16515072) >> 18; // 16515072 = (2^6 - 1) << 18
81
+ b = (chunk & 258048) >> 12; // 258048 = (2^6 - 1) << 12
82
+ c = (chunk & 4032) >> 6; // 4032 = (2^6 - 1) << 6
83
+ d = chunk & 63; // 63 = 2^6 - 1
84
+ // Convert the raw binary segments to the appropriate ASCII encoding
85
+ base64 += BASE64_CHARS[a] + BASE64_CHARS[b] + BASE64_CHARS[c] + BASE64_CHARS[d];
86
+ }
87
+ // Deal with the remaining bytes and padding
88
+ if (byteRemainder === 1) {
89
+ chunk = bytes[mainLength];
90
+ a = (chunk & 252) >> 2; // 252 = (2^6 - 1) << 2
91
+ // Set the 4 least significant bits to zero
92
+ b = (chunk & 3) << 4; // 3 = 2^2 - 1
93
+ base64 += `${BASE64_CHARS[a] + BASE64_CHARS[b]}==`;
94
+ }
95
+ else if (byteRemainder === 2) {
96
+ chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1];
97
+ a = (chunk & 64512) >> 10; // 64512 = (2^6 - 1) << 10
98
+ b = (chunk & 1008) >> 4; // 1008 = (2^6 - 1) << 4
99
+ // Set the 2 least significant bits to zero
100
+ c = (chunk & 15) << 2; // 15 = 2^4 - 1
101
+ base64 += `${BASE64_CHARS[a] + BASE64_CHARS[b] + BASE64_CHARS[c]}=`;
102
+ }
103
+ /* eslint-enable */
104
+ return base64;
105
+ }
106
+ export function string2buffer(source) {
107
+ const encoder = 'TextEncoder' in globalScope ? new TextEncoder() : {
108
+ encode(str) {
109
+ return Uint8Array.from(Array.prototype.slice.apply(str), (char) => char.codePointAt(0) || 0);
110
+ }
111
+ };
112
+ return encoder.encode(source);
113
+ }
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZTY0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvY29tbW9uL3NyYy9saWIvYmFzZTY0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFckMsTUFBTSxZQUFZLEdBQUcsbUVBQW1FLENBQUM7QUFFekYsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLFdBQVcsSUFBSSxPQUFPLFdBQVcsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDO0FBQ3RGLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxXQUFXLElBQUksT0FBTyxXQUFXLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztBQUV0RixxREFBcUQ7QUFDckQsTUFBTSxVQUFVLFlBQVksQ0FBQyxHQUFXO0lBQ3BDLElBQUksTUFBTSxHQUFHLEdBQUc7U0FDWCxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztTQUNsQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRXhCLHlCQUF5QjtJQUN6QixRQUFRLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3ZCLEtBQUssQ0FBQztZQUNGLE1BQU07UUFDVixLQUFLLENBQUM7WUFDRixNQUFNLElBQUksSUFBSSxDQUFDO1lBQ2YsTUFBTTtRQUNWLEtBQUssQ0FBQztZQUNGLE1BQU0sSUFBSSxHQUFHLENBQUM7WUFDZCxNQUFNO1FBRVY7WUFDSSxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7S0FDakQ7SUFFRCxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDaEIsSUFBSSxhQUFhLEVBQUU7UUFDZixNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ3RCO1NBQU07UUFDSCxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFD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QjtRQUNyRCxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUcseUJBQXlCO1FBRXBELDJDQUEyQztRQUMzQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsa0JBQWtCO1FBRXpDLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7S0FDdkU7SUFDRCxtQkFBbUI7SUFFbkIsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBYztJQUN4QyxNQUFNLE9BQU8sR0FBRyxhQUFhLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvRCxNQUFNLENBQUMsR0FBVztZQUNkLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FDbEIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUNoQyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQzdDLENBQUM7UUFDTixDQUFDO0tBQ0osQ0FBQztJQUNGLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNsQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtnbG9iYWxTY29wZX0gZnJvbSAnLi9nbG9iYWwnO1xuXG5jb25zdCBCQVNFNjRfQ0hBUlMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0nO1xuXG5jb25zdCBhdG9iQXZhaWxhYmxlID0gJ2F0b2InIGluIGdsb2JhbFNjb3BlICYmIHR5cGVvZiBnbG9iYWxTY29wZS5hdG9iID09PSAnZnVuY3Rpb24nO1xuY29uc3QgYnRvYUF2YWlsYWJsZSA9ICdidG9hJyBpbiBnbG9iYWxTY29wZSAmJiB0eXBlb2YgZ2xvYmFsU2NvcGUuYnRvYSA9PT0gJ2Z1bmN0aW9uJztcblxuLy8gY3JlZGl0cyBmb3IgZGVjb2RlciBnb2VzIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9hdGtcbmV4cG9ydCBmdW5jdGlvbiBiYXNlNjRkZWNvZGUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBzb3VyY2UgPSBzdHJcbiAgICAgICAgLnJlcGxhY2UoLy0vZywgJysnKVxuICAgICAgICAucmVwbGFjZSgvXy9nLCAnLycpO1xuXG4gICAgLy8gQWRkIHBhZGRpbmcgaWYgbWlzc2luZ1xuICAgIHN3aXRjaCAoc291cmNlLmxlbmd0aCAlIDQpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHNvdXJjZSArPSAnPT0nO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHNvdXJjZSArPSAnPSc7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbGxlZ2FsIGJhc2U2NCBzdHJpbmchJyk7XG4gICAgfVxuXG4gICAgbGV0IG91dHB1dCA9ICcnO1xuICAgIGlmIChhdG9iQXZhaWxhYmxlKSB7XG4gICAgICAgIG91dHB1dCA9IGF0b2Ioc3RyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzb3VyY2UgPSBzb3VyY2UucmVwbGFjZSgvPSskLywgJycpO1xuXG4gICAgICAgIGlmIChzb3VyY2UubGVuZ3RoICUgNCA9PT0gMSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdcXCdhdG9iXFwnIGZhaWxlZDogVGhlIHN0cmluZyB0byBiZSBkZWNvZGVkIGlzIG5vdCBjb3JyZWN0bHkgZW5jb2RlZC4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLWJpdHdpc2UsIG5vLWNvbmQtYXNzaWduICovXG4gICAgICAgIGZvciAoXG4gICAgICAgICAgICAvLyBpbml0aWFsaXplIHJlc3VsdCBhbmQgY291bnRlcnNcbiAgICAgICAgICAgIGxldCBiYyA9IDAsIGJzID0gMCwgYnVmZmVyOiBzdHJpbmcgfCBudW1iZXIsIGlkeCA9IDA7XG4gICAgICAgICAgICAvLyBnZXQgbmV4dCBjaGFyYWN0ZXJcbiAgICAgICAgICAgIGJ1ZmZlciA9IHNvdXJjZS5jaGFyQXQoaWR4KyspO1xuICAgICAgICAgICAgLy8gY2hhcmFjdGVyIGZvdW5kIGluIHRhYmxlPyBpbml0aWFsaXplIGJpdCBzdG9yYWdlIGFuZCBhZGQgaXRzIGFzY2lpIHZhbHVlO1xuICAgICAgICAgICAgfmJ1ZmZlciAmJiAoYnMgPSBiYyAlIDQgPyBicyAqIDY0ICsgYnVmZmVyIDogYnVmZmVyLFxuICAgICAgICAgICAgICAgIC8vIGFuZCBpZiBub3QgZmlyc3Qgb2YgZWFjaCA0IGNoYXJhY3RlcnMsXG4gICAgICAgICAgICAgICAgLy8gY29udmVydCB0aGUgZmlyc3QgOCBiaXRzIHRvIG9uZSBhc2NpaSBjaGFyYWN0ZXJcbiAgICAgICAgICAgIGJjKysgJSA0KSA/IG91dHB1dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDI1NSAmIGJzID4+ICgtMiAqIGJjICYgNikpIDogMFxuICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIHRyeSB0byBmaW5kIGNoYXJhY3RlciBpbiB0YWJsZSAoMC02Mywgbm90IGZvdW5kID0+IC0xKVxuICAgICAgICAgICAgYnVmZmVyID0gQkFTRTY0X0NIQVJTLmluZGV4T2YoYnVmZmVyKTtcbiAgICAgICAgfVxuICAgICAgICAvKiBlc2xpbnQtZW5hYmxlICovXG4gICAgfVxuXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4vZG9jcy9XZWIvQVBJL1dpbmRvd0Jhc2U2NC9CYXNlNjRfZW5jb2RpbmdfYW5kX2RlY29kaW5nI1RoZV9Vbmljb2RlX1Byb2JsZW1cbiAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChvdXRwdXQsIChjOiBzdHJpbmcpID0+IHtcbiAgICAgICAgcmV0dXJuICclJyArICgnMDAnICsgYy5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpO1xuICAgIH0pLmpvaW4oJycpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJhc2U2NGVuY29kZShidWZmZXI6IEFycmF5QnVmZmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgYXJyYXlCdWZmZXI6IEFycmF5QnVmZmVyO1xuICAgIGlmICh0eXBlb2YgYnVmZmVyID09PSAnc3RyaW5nJykge1xuICAgICAgICBpZiAoYnRvYUF2YWlsYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGJ0b2EoYnVmZmVyKTtcbiAgICAgICAgfVxuICAgICAgICBhcnJheUJ1ZmZlciA9IHN0cmluZzJidWZmZXIoYnVmZmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBhcnJheUJ1ZmZlciA9IGJ1ZmZlcjtcbiAgICB9XG5cbiAgICBsZXQgYmFzZTY0ID0gJyc7XG5cbiAgICBjb25zdCBieXRlczogVWludDhBcnJheSA9IG5ldyBVaW50OEFycmF5KGFycmF5QnVmZmVyKTtcbiAgICBjb25zdCBieXRlTGVuZ3RoOiBudW1iZXIgPSBieXRlcy5ieXRlTGVuZ3RoO1xuICAgIGNvbnN0IGJ5dGVSZW1haW5kZXI6IG51bWJlciA9IGJ5dGVMZW5ndGggJSAzO1xuICAgIGNvbnN0IG1haW5MZW5ndGg6IG51bWJlciA9IGJ5dGVMZW5ndGggLSBieXRlUmVtYWluZGVyO1xuXG4gICAgbGV0IGE6IG51bWJlcjtcbiAgICBsZXQgYjogbnVtYmVyO1xuICAgIGxldCBjOiBudW1iZXI7XG4gICAgbGV0IGQ6IG51bWJlcjtcbiAgICBsZXQgY2h1bms6IG51bWJlcjtcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLWJpdHdpc2UgKi9cbiAgICAvLyBNYWluIGxvb3AgZGVhbHMgd2l0aCBieXRlcyBpbiBjaHVua3Mgb2YgM1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWFpbkxlbmd0aDsgaSA9IGkgKyAzKSB7XG4gICAgICAgIC8vIENvbWJpbmUgdGhlIHRocmVlIGJ5dGVzIGludG8gYSBzaW5nbGUgaW50ZWdlclxuICAgICAgICBjaHVuayA9IChieXRlc1tpXSA8PCAxNikgfCAoYnl0ZXNbaSArIDFdIDw8IDgpIHwgYnl0ZXNbaSArIDJdO1xuXG4gICAgICAgIC8vIFVzZSBiaXRtYXNrcyB0byBleHRyYWN0IDYtYml0IHNlZ21lbnRzIGZyb20gdGhlIHRyaXBsZXRcbiAgICAgICAgYSA9IChjaHVuayAmIDE2NTE1MDcyKSA+PiAxODsgLy8gMTY1MTUwNzIgPSAoMl42IC0gMSkgPDwgMThcbiAgICAgICAgYiA9IChjaHVuayAmIDI1ODA0OCkgPj4gMTI7ICAgLy8gMjU4MDQ4ICAgPSAoMl42IC0gMSkgPDwgMTJcbiAgICAgICAgYyA9IChjaHVuayAmIDQwMzIpID4+IDY7ICAgICAgLy8gNDAzMiAgICAgPSAoMl42IC0gMSkgPDwgNlxuICAgICAgICBkID0gY2h1bmsgJiA2MzsgICAgICAgICAgICAgICAvLyA2MyAgICAgICA9IDJeNiAtIDFcblxuICAgICAgICAvLyBDb252ZXJ0IHRoZSByYXcgYmluYXJ5IHNlZ21lbnRzIHRvIHRoZSBhcHByb3ByaWF0ZSBBU0NJSSBlbmNvZGluZ1xuICAgICAgICBiYXNlNjQgKz0gQkFTRTY0X0NIQVJTW2FdICsgQkFTRTY0X0NIQVJTW2JdICsgQkFTRTY0X0NIQVJTW2NdICsgQkFTRTY0X0NIQVJTW2RdO1xuICAgIH1cblxuICAgIC8vIERlYWwgd2l0aCB0aGUgcmVtYWluaW5nIGJ5dGVzIGFuZCBwYWRkaW5nXG4gICAgaWYgKGJ5dGVSZW1haW5kZXIgPT09IDEpIHtcbiAgICAgICAgY2h1bmsgPSBieXRlc1ttYWluTGVuZ3RoXTtcblxuICAgICAgICBhID0gKGNodW5rICYgMjUyKSA+PiAyOyAvLyAyNTIgPSAoMl42IC0gMSkgPDwgMlxuXG4gICAgICAgIC8vIFNldCB0aGUgNCBsZWFzdCBzaWduaWZpY2FudCBiaXRzIHRvIHplcm9cbiAgICAgICAgYiA9IChjaHVuayAmIDMpIDw8IDQ7IC8vIDMgICA9IDJeMiAtIDFcblxuICAgICAgICBiYXNlNjQgKz0gYCR7QkFTRTY0X0NIQVJTW2FdICsgQkFTRTY0X0NIQVJTW2JdfT09YDtcbiAgICB9IGVsc2UgaWYgKGJ5dGVSZW1haW5kZXIgPT09IDIpIHtcbiAgICAgICAgY2h1bmsgPSAoYnl0ZXNbbWFpbkxlbmd0aF0gPDwgOCkgfCBieXRlc1ttYWluTGVuZ3RoICsgMV07XG5cbiAgICAgICAgYSA9IChjaHVuayAmIDY0NTEyKSA+PiAxMDsgLy8gNjQ1MTIgPSAoMl42IC0gMSkgPDwgMTBcbiAgICAgICAgYiA9IChjaHVuayAmIDEwMDgpID4+IDQ7ICAgLy8gMTAwOCAgPSAoMl42IC0gMSkgPDwgNFxuXG4gICAgICAgIC8vIFNldCB0aGUgMiBsZWFzdCBzaWduaWZpY2FudCBiaXRzIHRvIHplcm9cbiAgICAgICAgYyA9IChjaHVuayAmIDE1KSA8PCAyOyAvLyAxNSAgICA9IDJeNCAtIDFcblxuICAgICAgICBiYXNlNjQgKz0gYCR7QkFTRTY0X0NIQVJTW2FdICsgQkFTRTY0X0NIQVJTW2JdICsgQkFTRTY0X0NIQVJTW2NdfT1gO1xuICAgIH1cbiAgICAvKiBlc2xpbnQtZW5hYmxlICovXG5cbiAgICByZXR1cm4gYmFzZTY0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nMmJ1ZmZlcihzb3VyY2U6IHN0cmluZyk6IEFycmF5QnVmZmVyIHtcbiAgICBjb25zdCBlbmNvZGVyID0gJ1RleHRFbmNvZGVyJyBpbiBnbG9iYWxTY29wZSA/IG5ldyBUZXh0RW5jb2RlcigpIDoge1xuICAgICAgICBlbmNvZGUoc3RyOiBzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBVaW50OEFycmF5LmZyb20oXG4gICAgICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnNsaWNlLmFwcGx5KHN0ciksXG4gICAgICAgICAgICAgICAgKGNoYXI6IHN0cmluZykgPT4gY2hhci5jb2RlUG9pbnRBdCgwKSB8fCAwXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gZW5jb2Rlci5lbmNvZGUoc291cmNlKTtcbn1cbiJdfQ==
@@ -0,0 +1,43 @@
1
+ export function deepClone(obj) {
2
+ return obj && JSON.parse(JSON.stringify(obj));
3
+ }
4
+ function isObject(obj) {
5
+ return typeof obj === 'object' && obj != null;
6
+ }
7
+ /* eslint-enable */
8
+ export function deepEqual(x, y, ignoreArrayOrderOrPaths = [], ignoreArrayOrder = false) {
9
+ let ignorePaths = [];
10
+ if (typeof ignoreArrayOrderOrPaths === 'boolean') {
11
+ ignoreArrayOrder = ignoreArrayOrderOrPaths;
12
+ }
13
+ else if (Array.isArray(ignoreArrayOrderOrPaths)) {
14
+ ignorePaths = ignoreArrayOrderOrPaths;
15
+ }
16
+ return deepEqualImpl(x, y, '', ignorePaths, ignoreArrayOrder);
17
+ }
18
+ function deepEqualImpl(x, y, parentPath, ignorePaths, ignoreArrayOrder) {
19
+ if (x === y) {
20
+ return true;
21
+ }
22
+ if (Array.isArray(x) && Array.isArray(y) && ignoreArrayOrder) {
23
+ x = x.slice().sort();
24
+ y = y.slice().sort();
25
+ }
26
+ if (isObject(x) && isObject(y)) {
27
+ const xObj = x;
28
+ const yObj = y;
29
+ const xKeys = Object.keys(xObj).filter((key) => ignorePaths.indexOf(`${parentPath}.${key}`) === -1);
30
+ const yKeys = Object.keys(yObj).filter((key) => ignorePaths.indexOf(`${parentPath}.${key}`) === -1);
31
+ if (xKeys.length !== yKeys.length) {
32
+ return false;
33
+ }
34
+ return xKeys.every((key) => {
35
+ if (!(key in yObj)) {
36
+ return false;
37
+ }
38
+ return deepEqualImpl(xObj[key], yObj[key], `${parentPath}.${key}`, ignorePaths, ignoreArrayOrder);
39
+ });
40
+ }
41
+ return false;
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmZ1bmN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BrZy9kYmctcmlza2l0L2NvbW1vbi9zcmMvbGliL2NvbW1vbi5mdW5jdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLFNBQVMsQ0FBSSxHQUFNO0lBQy9CLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBQyxHQUFZO0lBQzFCLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUM7QUFDbEQsQ0FBQztBQU9ELG1CQUFtQjtBQUNuQixNQUFNLFVBQVUsU0FBUyxDQUFDLENBQVUsRUFBRSxDQUFVLEVBQ3RCLDBCQUE4QyxFQUFFLEVBQ2hELGdCQUFnQixHQUFHLEtBQUs7SUFDOUMsSUFBSSxXQUFXLEdBQWEsRUFBRSxDQUFDO0lBQy9CLElBQUksT0FBTyx1QkFBdUIsS0FBSyxTQUFTLEVBQUU7UUFDOUMsZ0JBQWdCLEdBQUcsdUJBQXVCLENBQUM7S0FDOUM7U0FBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsRUFBRTtRQUMvQyxXQUFXLEdBQUcsdUJBQXVCLENBQUM7S0FDekM7SUFFRCxPQUFPLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsQ0FBVSxFQUFFLENBQVUsRUFDdEIsVUFBa0IsRUFDbEIsV0FBcUIsRUFDckIsZ0JBQXlCO0lBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNULE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxnQkFBZ0IsRUFBRTtRQUMxRCxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7S0FDeEI7SUFFRCxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDNUIsTUFBTSxJQUFJLEdBQUcsQ0FBK0IsQ0FBQztRQUM3QyxNQUFNLElBQUksR0FBRyxDQUErQixDQUFDO1FBQzdDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsVUFBVSxJQUFJLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLFVBQVUsSUFBSSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEcsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDL0IsT0FBTyxLQUFLLENBQUM7U0FFaEI7UUFDRCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUN2QixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEVBQUU7Z0JBQ2hCLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1lBRUQsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLFVBQVUsSUFBSSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUN0RyxDQUFDLENBQUMsQ0FBQztLQUNOO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBkZWVwQ2xvbmU8VD4ob2JqOiBUKTogVCB7XG4gICAgcmV0dXJuIG9iaiAmJiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9iaikpO1xufVxuXG5mdW5jdGlvbiBpc09iamVjdChvYmo6IHVua25vd24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgJiYgb2JqICE9IG51bGw7XG59XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC91bmlmaWVkLXNpZ25hdHVyZXMgKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWVwRXF1YWwoeDogdW5rbm93biwgeTogdW5rbm93bik6IGJvb2xlYW47XG5leHBvcnQgZnVuY3Rpb24gZGVlcEVxdWFsKHg6IHVua25vd24sIHk6IHVua25vd24sIGlnbm9yZVBhdGhzOiBzdHJpbmdbXSk6IGJvb2xlYW47XG5leHBvcnQgZnVuY3Rpb24gZGVlcEVxdWFsKHg6IHVua25vd24sIHk6IHVua25vd24sIGlnbm9yZUFycmF5T3JkZXI6IGJvb2xlYW4pOiBib29sZWFuO1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBFcXVhbCh4OiB1bmtub3duLCB5OiB1bmtub3duLCBpZ25vcmVQYXRoczogc3RyaW5nW10sIGlnbm9yZUFycmF5T3JkZXI6IGJvb2xlYW4pOiBib29sZWFuO1xuLyogZXNsaW50LWVuYWJsZSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBFcXVhbCh4OiB1bmtub3duLCB5OiB1bmtub3duLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVBcnJheU9yZGVyT3JQYXRoczogc3RyaW5nW10gfCBib29sZWFuID0gW10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZUFycmF5T3JkZXIgPSBmYWxzZSk6IGJvb2xlYW4ge1xuICAgIGxldCBpZ25vcmVQYXRoczogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAodHlwZW9mIGlnbm9yZUFycmF5T3JkZXJPclBhdGhzID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgaWdub3JlQXJyYXlPcmRlciA9IGlnbm9yZUFycmF5T3JkZXJPclBhdGhzO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShpZ25vcmVBcnJheU9yZGVyT3JQYXRocykpIHtcbiAgICAgICAgaWdub3JlUGF0aHMgPSBpZ25vcmVBcnJheU9yZGVyT3JQYXRocztcbiAgICB9XG5cbiAgICByZXR1cm4gZGVlcEVxdWFsSW1wbCh4LCB5LCAnJywgaWdub3JlUGF0aHMsIGlnbm9yZUFycmF5T3JkZXIpO1xufVxuXG5mdW5jdGlvbiBkZWVwRXF1YWxJbXBsKHg6IHVua25vd24sIHk6IHVua25vd24sXG4gICAgICAgICAgICAgICAgICAgICAgIHBhcmVudFBhdGg6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlUGF0aHM6IHN0cmluZ1tdLFxuICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVBcnJheU9yZGVyOiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgaWYgKHggPT09IHkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoeCkgJiYgQXJyYXkuaXNBcnJheSh5KSAmJiBpZ25vcmVBcnJheU9yZGVyKSB7XG4gICAgICAgIHggPSB4LnNsaWNlKCkuc29ydCgpO1xuICAgICAgICB5ID0geS5zbGljZSgpLnNvcnQoKTtcbiAgICB9XG5cbiAgICBpZiAoaXNPYmplY3QoeCkgJiYgaXNPYmplY3QoeSkpIHtcbiAgICAgICAgY29uc3QgeE9iaiA9IHggYXMgeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH07XG4gICAgICAgIGNvbnN0IHlPYmogPSB5IGFzIHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9O1xuICAgICAgICBjb25zdCB4S2V5cyA9IE9iamVjdC5rZXlzKHhPYmopLmZpbHRlcigoa2V5KSA9PiBpZ25vcmVQYXRocy5pbmRleE9mKGAke3BhcmVudFBhdGh9LiR7a2V5fWApID09PSAtMSk7XG4gICAgICAgIGNvbnN0IHlLZXlzID0gT2JqZWN0LmtleXMoeU9iaikuZmlsdGVyKChrZXkpID0+IGlnbm9yZVBhdGhzLmluZGV4T2YoYCR7cGFyZW50UGF0aH0uJHtrZXl9YCkgPT09IC0xKTtcbiAgICAgICAgaWYgKHhLZXlzLmxlbmd0aCAhPT0geUtleXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geEtleXMuZXZlcnkoKGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKCEoa2V5IGluIHlPYmopKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZGVlcEVxdWFsSW1wbCh4T2JqW2tleV0sIHlPYmpba2V5XSwgYCR7cGFyZW50UGF0aH0uJHtrZXl9YCwgaWdub3JlUGF0aHMsIGlnbm9yZUFycmF5T3JkZXIpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuIl19
@@ -0,0 +1,24 @@
1
+ import { filter, map } from 'rxjs/operators';
2
+ export var ObservableEventType;
3
+ (function (ObservableEventType) {
4
+ /**
5
+ * A progress event was received.
6
+ */
7
+ ObservableEventType[ObservableEventType["Progress"] = 0] = "Progress";
8
+ /**
9
+ * A result event was received.
10
+ */
11
+ ObservableEventType[ObservableEventType["Result"] = 1] = "Result";
12
+ })(ObservableEventType || (ObservableEventType = {}));
13
+ export function isEventObject(unknown) {
14
+ return (typeof unknown === 'object'
15
+ && unknown != null
16
+ && 'type' in unknown);
17
+ }
18
+ export function extractResult() {
19
+ return (observable) => observable.pipe(filter((event) => event.type === ObservableEventType.Result), map((event) => {
20
+ const resultEvent = event;
21
+ return resultEvent.result;
22
+ }));
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvY29tbW9uL3NyYy9saWIvY29tbW9uLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUF1QjNDLE1BQU0sQ0FBTixJQUFZLG1CQVNYO0FBVEQsV0FBWSxtQkFBbUI7SUFDM0I7O09BRUc7SUFDSCxxRUFBWSxDQUFBO0lBQ1o7O09BRUc7SUFDSCxpRUFBVSxDQUFBO0FBQ2QsQ0FBQyxFQVRXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFTOUI7QUFJRCxNQUFNLFVBQVUsYUFBYSxDQUFJLE9BQVU7SUFDdkMsT0FBTyxDQUFDLE9BQU8sT0FBTyxLQUFLLFFBQVE7V0FDeEIsT0FBTyxJQUFJLElBQUk7V0FDZixNQUFNLElBQUksT0FBTyxDQUNQLENBQUM7QUFDMUIsQ0FBQztBQWlCRCxNQUFNLFVBQVUsYUFBYTtJQUN6QixPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNsQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssbUJBQW1CLENBQUMsTUFBTSxDQUFDLEVBQzVELEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ1YsTUFBTSxXQUFXLEdBQUcsS0FBdUIsQ0FBQztRQUM1QyxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDOUIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09ic2VydmFibGUsIE9wZXJhdG9yRnVuY3Rpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgdHlwZSBOb25OdWxsUHJpbWl0aXZlcyA9XG4gICAgc3RyaW5nXG4gICAgfCBib29sZWFuXG4gICAgfCBudW1iZXJcbiAgICB8IGJpZ2ludDtcblxuZXhwb3J0IHR5cGUgUHJpbWl0aXZlcyA9XG4gICAgTm9uTnVsbFByaW1pdGl2ZXNcbiAgICB8IG51bGxcbiAgICB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IHR5cGUgSlNPTk9iamVjdDxSIGV4dGVuZHMgeyBba2V5OiBzdHJpbmddOiBKU09OT2JqZWN0IH0gPSB7fT4gPVxuICAgIFJcbiAgICB8IFJbXVxuICAgIHwgUHJpbWl0aXZlc1xuICAgIHwgUHJpbWl0aXZlc1tdO1xuXG5leHBvcnQgdHlwZSBWYWx1ZUdldHRlcjxULCBSID0gdW5rbm93bj4gPSAocm93OiBUKSA9PiBSO1xuXG5leHBvcnQgdHlwZSBNYXliZTxSPiA9IFIgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgZW51bSBPYnNlcnZhYmxlRXZlbnRUeXBlIHtcbiAgICAvKipcbiAgICAgKiBBIHByb2dyZXNzIGV2ZW50IHdhcyByZWNlaXZlZC5cbiAgICAgKi9cbiAgICBQcm9ncmVzcyA9IDAsXG4gICAgLyoqXG4gICAgICogQSByZXN1bHQgZXZlbnQgd2FzIHJlY2VpdmVkLlxuICAgICAqL1xuICAgIFJlc3VsdCA9IDFcbn1cblxuZXhwb3J0IHR5cGUgSXNFdmVudE9iamVjdDxUPiA9IFQgZXh0ZW5kcyBPYnNlcnZhYmxlRXZlbnQ8dW5rbm93bj4gPyB0cnVlIDogZmFsc2U7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0V2ZW50T2JqZWN0PFQ+KHVua25vd246IFQpOiBJc0V2ZW50T2JqZWN0PFQ+IHtcbiAgICByZXR1cm4gKHR5cGVvZiB1bmtub3duID09PSAnb2JqZWN0J1xuICAgICAgICAgICAgJiYgdW5rbm93biAhPSBudWxsXG4gICAgICAgICAgICAmJiAndHlwZScgaW4gdW5rbm93blxuICAgICkgYXMgSXNFdmVudE9iamVjdDxUPjtcbn1cblxuZXhwb3J0IHR5cGUgT2JzZXJ2YWJsZUV2ZW50PFQ+ID0gUHJvZ3Jlc3NFdmVudCB8IFJlc3VsdEV2ZW50PFQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb2dyZXNzRXZlbnQge1xuICAgIGN1cnJlbnQ6IG51bWJlcjtcbiAgICB0b3RhbD86IG51bWJlcjtcbiAgICB0eXBlOiBPYnNlcnZhYmxlRXZlbnRUeXBlLlByb2dyZXNzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3VsdEV2ZW50PFQ+IHtcbiAgICByZXN1bHQ6IFQ7XG4gICAgdHlwZTogT2JzZXJ2YWJsZUV2ZW50VHlwZS5SZXN1bHQ7XG59XG5cbmV4cG9ydCB0eXBlIE9ic2VydmFibGVXaXRoUHJvZ3Jlc3M8VD4gPSBPYnNlcnZhYmxlPE9ic2VydmFibGVFdmVudDxUPj47XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0UmVzdWx0PFQ+KCk6IE9wZXJhdG9yRnVuY3Rpb248T2JzZXJ2YWJsZUV2ZW50PFQ+LCBUPiB7XG4gICAgcmV0dXJuIChvYnNlcnZhYmxlKSA9PiBvYnNlcnZhYmxlLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50LnR5cGUgPT09IE9ic2VydmFibGVFdmVudFR5cGUuUmVzdWx0KSxcbiAgICAgICAgbWFwKChldmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0RXZlbnQgPSBldmVudCBhcyBSZXN1bHRFdmVudDxUPjtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHRFdmVudC5yZXN1bHQ7XG4gICAgICAgIH0pXG4gICAgKTtcbn1cbiJdfQ==
@@ -0,0 +1,46 @@
1
+ import { toString } from './string.utils';
2
+ export class DateUtils {
3
+ /**
4
+ * Converts UTC timestamp to Date object.
5
+ *
6
+ * @param utcTimestamp Value in milliseconds since midnight, January 1, 1970 UTC.
7
+ * @return Date object.
8
+ */
9
+ static utcTimestampToDate(utcTimestamp) {
10
+ const date = new Date(0);
11
+ date.setUTCMilliseconds(utcTimestamp);
12
+ return date;
13
+ }
14
+ /**
15
+ * Converts Date object to UTC timestamp.
16
+ *
17
+ * @param date Date object.
18
+ * @return Value in milliseconds since midnight, January 1, 1970 UTC.
19
+ */
20
+ static toUTCTimestamp(date) {
21
+ return date.valueOf();
22
+ }
23
+ /**
24
+ * Converts date represented as number in form yyyyMMdd to Date object.
25
+ *
26
+ * @param businessDate Date represented as number in form yyyyMMdd.
27
+ * @return Date object.
28
+ */
29
+ static parseBusinessDay(businessDate) {
30
+ const bdate = toString(businessDate);
31
+ const year = parseInt(bdate.substring(0, 4), 10);
32
+ const month = parseInt(bdate.substring(4, 6), 10);
33
+ const day = parseInt(bdate.substring(6, 8), 10);
34
+ return new Date(year, month - 1, day);
35
+ }
36
+ /**
37
+ * Converts Date object to date represented as number in form yyyyMMdd.
38
+ *
39
+ * @param date Date object.
40
+ * @return Date represented as number in form yyyyMMdd.
41
+ */
42
+ static toBusinessDay(date) {
43
+ return date.getFullYear() * 10000 + (date.getMonth() + 1) * 100 + date.getDate();
44
+ }
45
+ }
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BrZy9kYmctcmlza2l0L2NvbW1vbi9zcmMvbGliL2RhdGUudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE1BQU0sT0FBTyxTQUFTO0lBRWxCOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLGtCQUFrQixDQUFDLFlBQW9CO1FBQ2pELE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsY0FBYyxDQUFDLElBQVU7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLGdCQUFnQixDQUFDLFlBQW9CO1FBQy9DLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNyQyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNoRCxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBVTtRQUNsQyxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNyRixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3RvU3RyaW5nfSBmcm9tICcuL3N0cmluZy51dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBEYXRlVXRpbHMge1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgVVRDIHRpbWVzdGFtcCB0byBEYXRlIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB1dGNUaW1lc3RhbXAgVmFsdWUgaW4gbWlsbGlzZWNvbmRzIHNpbmNlIG1pZG5pZ2h0LCBKYW51YXJ5IDEsIDE5NzAgVVRDLlxuICAgICAqIEByZXR1cm4gRGF0ZSBvYmplY3QuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyB1dGNUaW1lc3RhbXBUb0RhdGUodXRjVGltZXN0YW1wOiBudW1iZXIpOiBEYXRlIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKDApO1xuICAgICAgICBkYXRlLnNldFVUQ01pbGxpc2Vjb25kcyh1dGNUaW1lc3RhbXApO1xuICAgICAgICByZXR1cm4gZGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBEYXRlIG9iamVjdCB0byBVVEMgdGltZXN0YW1wLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGUgRGF0ZSBvYmplY3QuXG4gICAgICogQHJldHVybiBWYWx1ZSBpbiBtaWxsaXNlY29uZHMgc2luY2UgbWlkbmlnaHQsIEphbnVhcnkgMSwgMTk3MCBVVEMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyB0b1VUQ1RpbWVzdGFtcChkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGRhdGUudmFsdWVPZigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGRhdGUgcmVwcmVzZW50ZWQgYXMgbnVtYmVyIGluIGZvcm0geXl5eU1NZGQgdG8gRGF0ZSBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYnVzaW5lc3NEYXRlIERhdGUgcmVwcmVzZW50ZWQgYXMgbnVtYmVyIGluIGZvcm0geXl5eU1NZGQuXG4gICAgICogQHJldHVybiBEYXRlIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHBhcnNlQnVzaW5lc3NEYXkoYnVzaW5lc3NEYXRlOiBudW1iZXIpOiBEYXRlIHtcbiAgICAgICAgY29uc3QgYmRhdGUgPSB0b1N0cmluZyhidXNpbmVzc0RhdGUpO1xuICAgICAgICBjb25zdCB5ZWFyID0gcGFyc2VJbnQoYmRhdGUuc3Vic3RyaW5nKDAsIDQpLCAxMCk7XG4gICAgICAgIGNvbnN0IG1vbnRoID0gcGFyc2VJbnQoYmRhdGUuc3Vic3RyaW5nKDQsIDYpLCAxMCk7XG4gICAgICAgIGNvbnN0IGRheSA9IHBhcnNlSW50KGJkYXRlLnN1YnN0cmluZyg2LCA4KSwgMTApO1xuICAgICAgICByZXR1cm4gbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIERhdGUgb2JqZWN0IHRvIGRhdGUgcmVwcmVzZW50ZWQgYXMgbnVtYmVyIGluIGZvcm0geXl5eU1NZGQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGF0ZSBEYXRlIG9iamVjdC5cbiAgICAgKiBAcmV0dXJuIERhdGUgcmVwcmVzZW50ZWQgYXMgbnVtYmVyIGluIGZvcm0geXl5eU1NZGQuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyB0b0J1c2luZXNzRGF5KGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZGF0ZS5nZXRGdWxsWWVhcigpICogMTAwMDAgKyAoZGF0ZS5nZXRNb250aCgpICsgMSkgKiAxMDAgKyBkYXRlLmdldERhdGUoKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,19 @@
1
+ export class ErrorType {
2
+ static { this.NETWORK = new ErrorType(); }
3
+ static { this.REQUEST = new ErrorType(); }
4
+ static { this.AUTH = new ErrorType(); }
5
+ static { this.ERROR = new ErrorType(); }
6
+ isError() {
7
+ return this === ErrorType.ERROR;
8
+ }
9
+ isNetworkError() {
10
+ return this === ErrorType.NETWORK;
11
+ }
12
+ isRequestError() {
13
+ return this === ErrorType.REQUEST;
14
+ }
15
+ isAuthError() {
16
+ return this === ErrorType.AUTH;
17
+ }
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9jb21tb24vc3JjL2xpYi9lcnJvci50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sU0FBUzthQUVKLFlBQU8sR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO2FBQzFCLFlBQU8sR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO2FBQzFCLFNBQUksR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO2FBQ3ZCLFVBQUssR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO0lBRS9CLE9BQU87UUFDVixPQUFPLElBQUksS0FBSyxTQUFTLENBQUMsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxjQUFjO1FBQ2pCLE9BQU8sSUFBSSxLQUFLLFNBQVMsQ0FBQyxPQUFPLENBQUM7SUFDdEMsQ0FBQztJQUVNLGNBQWM7UUFDakIsT0FBTyxJQUFJLEtBQUssU0FBUyxDQUFDLE9BQU8sQ0FBQztJQUN0QyxDQUFDO0lBRU0sV0FBVztRQUNkLE9BQU8sSUFBSSxLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUM7SUFDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBFcnJvclR5cGUge1xuXG4gICAgcHVibGljIHN0YXRpYyBORVRXT1JLID0gbmV3IEVycm9yVHlwZSgpO1xuICAgIHB1YmxpYyBzdGF0aWMgUkVRVUVTVCA9IG5ldyBFcnJvclR5cGUoKTtcbiAgICBwdWJsaWMgc3RhdGljIEFVVEggPSBuZXcgRXJyb3JUeXBlKCk7XG4gICAgcHVibGljIHN0YXRpYyBFUlJPUiA9IG5ldyBFcnJvclR5cGUoKTtcblxuICAgIHB1YmxpYyBpc0Vycm9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcyA9PT0gRXJyb3JUeXBlLkVSUk9SO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc05ldHdvcmtFcnJvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMgPT09IEVycm9yVHlwZS5ORVRXT1JLO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1JlcXVlc3RFcnJvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMgPT09IEVycm9yVHlwZS5SRVFVRVNUO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0F1dGhFcnJvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMgPT09IEVycm9yVHlwZS5BVVRIO1xuICAgIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBFcnJvck1lc3NhZ2Uge1xuICAgIHN0YXR1czogbnVtYmVyO1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICBlcnJvclR5cGU6IEVycm9yVHlwZTtcbiAgICB0cmFjZV9pZD86IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,10 @@
1
+ export const CONTENT_TYPE = {
2
+ APPLICATION_FORM: 'application/x-www-form-urlencoded',
3
+ APPLICATION_FORM_DATA: 'multipart/form-data',
4
+ APPLICATION_JSON: 'application/json',
5
+ TEXT_CSV: 'text/csv;charset=utf-8;',
6
+ TEXT_JAVASCRIPT: 'text/javascript',
7
+ TEXT_CSS: 'text/css',
8
+ TEXT_PLAIN: 'text/plain'
9
+ };
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BrZy9kYmctcmlza2l0L2NvbW1vbi9zcmMvbGliL2ZpbGUudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQ3hCLGdCQUFnQixFQUFPLG1DQUFtQztJQUMxRCxxQkFBcUIsRUFBRSxxQkFBcUI7SUFDNUMsZ0JBQWdCLEVBQU8sa0JBQWtCO0lBQ3pDLFFBQVEsRUFBZSx5QkFBeUI7SUFDaEQsZUFBZSxFQUFRLGlCQUFpQjtJQUN4QyxRQUFRLEVBQWUsVUFBVTtJQUNqQyxVQUFVLEVBQWEsWUFBWTtDQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IENPTlRFTlRfVFlQRSA9IHtcbiAgICBBUFBMSUNBVElPTl9GT1JNICAgICA6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAgIEFQUExJQ0FUSU9OX0ZPUk1fREFUQTogJ211bHRpcGFydC9mb3JtLWRhdGEnLFxuICAgIEFQUExJQ0FUSU9OX0pTT04gICAgIDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgIFRFWFRfQ1NWICAgICAgICAgICAgIDogJ3RleHQvY3N2O2NoYXJzZXQ9dXRmLTg7JyxcbiAgICBURVhUX0pBVkFTQ1JJUFQgICAgICA6ICd0ZXh0L2phdmFzY3JpcHQnLFxuICAgIFRFWFRfQ1NTICAgICAgICAgICAgIDogJ3RleHQvY3NzJyxcbiAgICBURVhUX1BMQUlOICAgICAgICAgICA6ICd0ZXh0L3BsYWluJ1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBGaWxlV2l0aENvbnRlbnQge1xuICAgIGNvbnRlbnQ6IEJsb2I7XG4gICAgZmlsZW5hbWU/OiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,9 @@
1
+ let globalContainer = {};
2
+ if (typeof global !== 'undefined') {
3
+ globalContainer = global;
4
+ }
5
+ if (typeof window !== 'undefined') {
6
+ globalContainer = window;
7
+ }
8
+ export const globalScope = globalContainer;
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvY29tbW9uL3NyYy9saWIvZ2xvYmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLElBQUksZUFBZSxHQUF1QyxFQUFFLENBQUM7QUFDN0QsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUU7SUFDL0IsZUFBZSxHQUFHLE1BQU0sQ0FBQztDQUM1QjtBQUNELElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFO0lBQy9CLGVBQWUsR0FBRyxNQUFNLENBQUM7Q0FDNUI7QUFFRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsibGV0IGdsb2JhbENvbnRhaW5lcjogdHlwZW9mIHdpbmRvdyB8IHR5cGVvZiBnbG9iYWwgfCB7fSA9IHt9O1xuaWYgKHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgZ2xvYmFsQ29udGFpbmVyID0gZ2xvYmFsO1xufVxuaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgZ2xvYmFsQ29udGFpbmVyID0gd2luZG93O1xufVxuXG5leHBvcnQgY29uc3QgZ2xvYmFsU2NvcGUgPSBnbG9iYWxDb250YWluZXI7XG4iXX0=
@@ -0,0 +1,30 @@
1
+ import { map } from 'rxjs/operators';
2
+ import { IndexedDBReplaySubject } from './indexed.db.subject';
3
+ export class IndexedDBArrayReplaySubject extends IndexedDBReplaySubject {
4
+ constructor(partitionSize, dbName, version) {
5
+ super(dbName, null, version);
6
+ this.partitionSize = partitionSize;
7
+ }
8
+ get lastValue() {
9
+ return this.storage.all.pipe(map((items) => {
10
+ if (!items || items.length === 0) {
11
+ return null;
12
+ }
13
+ return items.reduce((result, subItems) => {
14
+ return result.concat(subItems);
15
+ }, []);
16
+ }));
17
+ }
18
+ next(value) {
19
+ const rows = [];
20
+ for (let i = 0; i <= value.length / this.partitionSize; i++) {
21
+ rows[i] = value.slice(i * this.partitionSize, (i + 1) * this.partitionSize);
22
+ }
23
+ this.storage.bulkReplace(rows).subscribe(() => {
24
+ this._next(value);
25
+ }, (err) => {
26
+ super.error(err);
27
+ });
28
+ }
29
+ }
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlZC5kYi5hcnJheS5zdWJqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvY29tbW9uL3NyYy9saWIvaW5kZXhlZGRiL2luZGV4ZWQuZGIuYXJyYXkuc3ViamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFNUQsTUFBTSxPQUFPLDJCQUErQixTQUFRLHNCQUEyQjtJQUUzRSxZQUFvQyxhQUFxQixFQUFFLE1BQWMsRUFBRSxPQUFnQjtRQUN2RixLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQURHLGtCQUFhLEdBQWIsYUFBYSxDQUFRO0lBRXpELENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQ3hCLEdBQUcsQ0FBQyxDQUFDLEtBQVksRUFBRSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQzlCLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7WUFFRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQ2YsQ0FBQyxNQUFXLEVBQUUsUUFBYSxFQUFFLEVBQUU7Z0JBQzNCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuQyxDQUFDLEVBQUUsRUFBUyxDQUFDLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFTSxJQUFJLENBQUMsS0FBVTtRQUNsQixNQUFNLElBQUksR0FBVSxFQUFFLENBQUM7UUFDdkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6RCxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDL0U7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQ3BDLEdBQUcsRUFBRTtZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDSixLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0luZGV4ZWREQlJlcGxheVN1YmplY3R9IGZyb20gJy4vaW5kZXhlZC5kYi5zdWJqZWN0JztcblxuZXhwb3J0IGNsYXNzIEluZGV4ZWREQkFycmF5UmVwbGF5U3ViamVjdDxUPiBleHRlbmRzIEluZGV4ZWREQlJlcGxheVN1YmplY3Q8VFtdPiB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwYXJ0aXRpb25TaXplOiBudW1iZXIsIGRiTmFtZTogc3RyaW5nLCB2ZXJzaW9uPzogbnVtYmVyKSB7XG4gICAgICAgIHN1cGVyKGRiTmFtZSwgbnVsbCwgdmVyc2lvbik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsYXN0VmFsdWUoKTogT2JzZXJ2YWJsZTxUW10gfCBudWxsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JhZ2UuYWxsLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGl0ZW1zOiBUW11bXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghaXRlbXMgfHwgaXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtcy5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgICAgIChyZXN1bHQ6IFRbXSwgc3ViSXRlbXM6IFRbXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5jb25jYXQoc3ViSXRlbXMpO1xuICAgICAgICAgICAgICAgICAgICB9LCBbXSBhcyBUW10pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmV4dCh2YWx1ZTogVFtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJvd3M6IFRbXVtdID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IHZhbHVlLmxlbmd0aCAvIHRoaXMucGFydGl0aW9uU2l6ZTsgaSsrKSB7XG4gICAgICAgICAgICByb3dzW2ldID0gdmFsdWUuc2xpY2UoaSAqIHRoaXMucGFydGl0aW9uU2l6ZSwgKGkgKyAxKSAqIHRoaXMucGFydGl0aW9uU2l6ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdG9yYWdlLmJ1bGtSZXBsYWNlKHJvd3MpLnN1YnNjcmliZShcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9uZXh0KHZhbHVlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgc3VwZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,118 @@
1
+ import { defer, Observable, of, zip } from 'rxjs';
2
+ import { map, switchMap } from 'rxjs/operators';
3
+ import { toString } from '../string.utils';
4
+ import { indexedDB } from './polyfill';
5
+ import { cursorRequestToStream, requestToObservable } from './request.wrappers';
6
+ export class IndexedDbStore {
7
+ constructor(dbName, key, version) {
8
+ this.dbName = dbName;
9
+ this.key = key;
10
+ this.version = version;
11
+ this._bakValue = [];
12
+ }
13
+ get indexedDB() {
14
+ const request = indexedDB.open(this.dbName, this.version || 1);
15
+ let db;
16
+ let close = false;
17
+ request.onupgradeneeded = (ev) => {
18
+ db = ev.target.result;
19
+ let params = { autoIncrement: true };
20
+ if (this.key != null) {
21
+ params = { keyPath: toString(this.key) };
22
+ }
23
+ db.createObjectStore(this.dbName, params);
24
+ if (close) {
25
+ db.close();
26
+ }
27
+ };
28
+ return requestToObservable(request, (ev) => {
29
+ db = ev.target.result;
30
+ if (close) {
31
+ db.close();
32
+ }
33
+ return db;
34
+ }, () => {
35
+ close = true;
36
+ if (db) {
37
+ db.close();
38
+ }
39
+ });
40
+ }
41
+ add(value) {
42
+ return this.bulkAdd([value]).pipe(map((savedValue) => savedValue ? savedValue[0] : null));
43
+ }
44
+ bulkAdd(value) {
45
+ if (!indexedDB) {
46
+ this._bakValue = this._bakValue.concat(value);
47
+ return of(this._bakValue);
48
+ }
49
+ return this.readWriteStore.pipe(switchMap((store) => {
50
+ return this._saveBulk(store, value);
51
+ }));
52
+ }
53
+ replace(value) {
54
+ return this.bulkReplace([value]).pipe(map((savedValue) => savedValue ? savedValue[0] : null));
55
+ }
56
+ bulkReplace(value) {
57
+ if (!indexedDB) {
58
+ this._bakValue = value;
59
+ return of(this._bakValue);
60
+ }
61
+ return this._clear().pipe(switchMap((store) => {
62
+ return this._saveBulk(store, value);
63
+ }));
64
+ }
65
+ clear() {
66
+ if (!indexedDB) {
67
+ this._bakValue = [];
68
+ return of(void 0);
69
+ }
70
+ return this._clear().pipe(map(() => void 0));
71
+ }
72
+ get readWriteStore() {
73
+ return this.indexedDB.pipe(map((db) => {
74
+ const tx = db.transaction(this.dbName, 'readwrite');
75
+ return tx.objectStore(this.dbName);
76
+ }));
77
+ }
78
+ _clear() {
79
+ return this.readWriteStore.pipe(switchMap((store) => {
80
+ const request = store.clear();
81
+ return requestToObservable(request, () => store);
82
+ }));
83
+ }
84
+ _saveBulk(store, items) {
85
+ return defer(() => {
86
+ const requests = [of(null)];
87
+ if (items != null) {
88
+ items.forEach((item) => {
89
+ requests.push(requestToObservable(store.add(item), () => null));
90
+ });
91
+ }
92
+ return zip(...requests);
93
+ }).pipe(map(() => {
94
+ return items;
95
+ }));
96
+ }
97
+ get all() {
98
+ if (!indexedDB) {
99
+ return of(this._bakValue);
100
+ }
101
+ return this.indexedDB.pipe(switchMap((db) => new Observable((subscriber) => {
102
+ const tx = db.transaction(this.dbName, 'readonly');
103
+ const store = tx.objectStore(this.dbName);
104
+ const req = store.openCursor();
105
+ const items = [];
106
+ return cursorRequestToStream(req, tx, (cursor) => {
107
+ return cursor.value;
108
+ })
109
+ .subscribe((item) => items.push(item), (err) => {
110
+ subscriber.error(err);
111
+ }, () => {
112
+ subscriber.next(items);
113
+ subscriber.complete();
114
+ });
115
+ })));
116
+ }
117
+ }
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlZC5kYi5zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BrZy9kYmctcmlza2l0L2NvbW1vbi9zcmMvbGliL2luZGV4ZWRkYi9pbmRleGVkLmRiLnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBYyxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQUMscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUU5RSxNQUFNLE9BQU8sY0FBYztJQUd2QixZQUFvQyxNQUFjLEVBQ2QsR0FBbUIsRUFDbkIsT0FBZ0I7UUFGaEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFFBQUcsR0FBSCxHQUFHLENBQWdCO1FBQ25CLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFKNUMsY0FBUyxHQUFRLEVBQUUsQ0FBQztJQUs1QixDQUFDO0lBRUQsSUFBWSxTQUFTO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQy9ELElBQUksRUFBZSxDQUFDO1FBRXBCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVsQixPQUFPLENBQUMsZUFBZSxHQUFHLENBQUMsRUFBeUIsRUFBRSxFQUFFO1lBQ3BELEVBQUUsR0FBSSxFQUFFLENBQUMsTUFBMkIsQ0FBQyxNQUFNLENBQUM7WUFDNUMsSUFBSSxNQUFNLEdBQTZCLEVBQUMsYUFB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QUMsQ0FBQyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQ0wsQ0FDSixDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZWZlciwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmliZXIsIHppcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge3RvU3RyaW5nfSBmcm9tICcuLi9zdHJpbmcudXRpbHMnO1xuaW1wb3J0IHtpbmRleGVkREJ9IGZyb20gJy4vcG9seWZpbGwnO1xuaW1wb3J0IHtjdXJzb3JSZXF1ZXN0VG9TdHJlYW0sIHJlcXVlc3RUb09ic2VydmFibGV9IGZyb20gJy4vcmVxdWVzdC53cmFwcGVycyc7XG5cbmV4cG9ydCBjbGFzcyBJbmRleGVkRGJTdG9yZTxUPiB7XG4gICAgcHJpdmF0ZSBfYmFrVmFsdWU6IFRbXSA9IFtdO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGJOYW1lOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkga2V5OiBrZXlvZiBUIHwgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSB2ZXJzaW9uPzogbnVtYmVyKSB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaW5kZXhlZERCKCk6IE9ic2VydmFibGU8SURCRGF0YWJhc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKHRoaXMuZGJOYW1lLCB0aGlzLnZlcnNpb24gfHwgMSk7XG4gICAgICAgIGxldCBkYjogSURCRGF0YWJhc2U7XG5cbiAgICAgICAgbGV0IGNsb3NlID0gZmFsc2U7XG5cbiAgICAgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSAoZXY6IElEQlZlcnNpb25DaGFuZ2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgZGIgPSAoZXYudGFyZ2V0IGFzIElEQk9wZW5EQlJlcXVlc3QpLnJlc3VsdDtcbiAgICAgICAgICAgIGxldCBwYXJhbXM6IElEQk9iamVjdFN0b3JlUGFyYW1ldGVycyA9IHthdXRvSW5jcmVtZW50OiB0cnVlfTtcbiAgICAgICAgICAgIGlmICh0aGlzLmtleSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zID0ge2tleVBhdGg6IHRvU3RyaW5nKHRoaXMua2V5KX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSh0aGlzLmRiTmFtZSwgcGFyYW1zKTtcblxuICAgICAgICAgICAgaWYgKGNsb3NlKSB7XG4gICAgICAgICAgICAgICAgZGIuY2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gcmVxdWVzdFRvT2JzZXJ2YWJsZShyZXF1ZXN0LFxuICAgICAgICAgICAgKGV2OiBFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGRiID0gKGV2LnRhcmdldCBhcyBJREJPcGVuREJSZXF1ZXN0KS5yZXN1bHQ7XG4gICAgICAgICAgICAgICAgaWYgKGNsb3NlKSB7XG4gICAgICAgICAgICAgICAgICAgIGRiLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBkYjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY2xvc2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlmIChkYikge1xuICAgICAgICAgICAgICAgICAgICBkYi5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGQodmFsdWU6IFQpOiBPYnNlcnZhYmxlPFQgfCBudWxsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1bGtBZGQoW3ZhbHVlXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoc2F2ZWRWYWx1ZTogVFtdKSA9PiBzYXZlZFZhbHVlID8gc2F2ZWRWYWx1ZVswXSA6IG51bGwpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGJ1bGtBZGQodmFsdWU6IFRbXSk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgICAgIGlmICghaW5kZXhlZERCKSB7XG4gICAgICAgICAgICB0aGlzLl9iYWtWYWx1ZSA9IHRoaXMuX2Jha1ZhbHVlLmNvbmNhdCh2YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy5fYmFrVmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWRXcml0ZVN0b3JlLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKHN0b3JlOiBJREJPYmplY3RTdG9yZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9zYXZlQnVsayhzdG9yZSwgdmFsdWUpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVwbGFjZSh2YWx1ZTogVCk6IE9ic2VydmFibGU8VCB8IG51bGw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVsa1JlcGxhY2UoW3ZhbHVlXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoc2F2ZWRWYWx1ZTogVFtdKSA9PiBzYXZlZFZhbHVlID8gc2F2ZWRWYWx1ZVswXSA6IG51bGwpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGJ1bGtSZXBsYWNlKHZhbHVlOiBUW10pOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgICAgICBpZiAoIWluZGV4ZWREQikge1xuICAgICAgICAgICAgdGhpcy5fYmFrVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHJldHVybiBvZih0aGlzLl9iYWtWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2NsZWFyKCkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoc3RvcmU6IElEQk9iamVjdFN0b3JlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NhdmVCdWxrKHN0b3JlLCB2YWx1ZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhcigpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCFpbmRleGVkREIpIHtcbiAgICAgICAgICAgIHRoaXMuX2Jha1ZhbHVlID0gW107XG4gICAgICAgICAgICByZXR1cm4gb2Yodm9pZCAwKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fY2xlYXIoKS5waXBlKG1hcCgoKSA9PiB2b2lkIDApKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCByZWFkV3JpdGVTdG9yZSgpOiBPYnNlcnZhYmxlPElEQk9iamVjdFN0b3JlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmluZGV4ZWREQi5waXBlKFxuICAgICAgICAgICAgbWFwKChkYjogSURCRGF0YWJhc2UpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0eCA9IGRiLnRyYW5zYWN0aW9uKHRoaXMuZGJOYW1lLCAncmVhZHdyaXRlJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHR4Lm9iamVjdFN0b3JlKHRoaXMuZGJOYW1lKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2xlYXIoKTogT2JzZXJ2YWJsZTxJREJPYmplY3RTdG9yZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkV3JpdGVTdG9yZS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChzdG9yZTogSURCT2JqZWN0U3RvcmUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gc3RvcmUuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdFRvT2JzZXJ2YWJsZShyZXF1ZXN0LCAoKSA9PiBzdG9yZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NhdmVCdWxrKHN0b3JlOiBJREJPYmplY3RTdG9yZSwgaXRlbXM6IFRbXSk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgICAgIHJldHVybiBkZWZlcihcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0czogQXJyYXk8T2JzZXJ2YWJsZTxudWxsPj4gPSBbb2YobnVsbCldO1xuICAgICAgICAgICAgICAgIGlmIChpdGVtcyAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zLmZvckVhY2goKGl0ZW06IFQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RzLnB1c2gocmVxdWVzdFRvT2JzZXJ2YWJsZShzdG9yZS5hZGQoaXRlbSksICgpID0+IG51bGwpKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHppcCguLi5yZXF1ZXN0cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICkucGlwZShcbiAgICAgICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFsbCgpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgICAgICBpZiAoIWluZGV4ZWREQikge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMuX2Jha1ZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmluZGV4ZWREQi5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChkYjogSURCRGF0YWJhc2UpID0+IG5ldyBPYnNlcnZhYmxlKFxuICAgICAgICAgICAgICAgIChzdWJzY3JpYmVyOiBTdWJzY3JpYmVyPFRbXT4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdHggPSBkYi50cmFuc2FjdGlvbih0aGlzLmRiTmFtZSwgJ3JlYWRvbmx5Jyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0b3JlID0gdHgub2JqZWN0U3RvcmUodGhpcy5kYk5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXEgPSBzdG9yZS5vcGVuQ3Vyc29yKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1zOiBUW10gPSBbXTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yUmVxdWVzdFRvU3RyZWFtKHJlcSwgdHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAoY3Vyc29yOiBJREJDdXJzb3JXaXRoVmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGl0ZW06IFQpID0+IGl0ZW1zLnB1c2goaXRlbSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChpdGVtcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,61 @@
1
+ import { ObjectUnsubscribedError, Subject, Subscription } from 'rxjs';
2
+ import { map } from 'rxjs/operators';
3
+ import { IndexedDbStore } from './indexed.db.store';
4
+ import { SubjectSubscription } from './subject.subscription';
5
+ export class IndexedDBReplaySubject extends Subject {
6
+ constructor(dbName, key, version) {
7
+ super();
8
+ this.storage = new IndexedDbStore(dbName, key, version);
9
+ }
10
+ get hasData() {
11
+ return this.lastValue.pipe(map((val) => {
12
+ return val != null;
13
+ }));
14
+ }
15
+ get lastValue() {
16
+ return this.storage.all.pipe(map((value) => value ? value[0] : null));
17
+ }
18
+ next(value) {
19
+ this.storage.replace(value).subscribe((storedValue) => {
20
+ if (storedValue != null) {
21
+ this._next(storedValue);
22
+ }
23
+ }, (err) => {
24
+ super.error(err);
25
+ });
26
+ }
27
+ _next(value) {
28
+ super.next(value);
29
+ }
30
+ _subscribe(subscriber) {
31
+ let subscription;
32
+ switch (true) {
33
+ case this.closed:
34
+ throw new ObjectUnsubscribedError();
35
+ case this.hasError:
36
+ case this.isStopped:
37
+ subscription = Subscription.EMPTY;
38
+ break;
39
+ default:
40
+ this.observers.push(subscriber);
41
+ subscription = new SubjectSubscription(this, subscriber);
42
+ }
43
+ const result = new Subscription();
44
+ result.add(subscription);
45
+ result.add(this.lastValue.subscribe((value) => {
46
+ if (value != null) {
47
+ subscriber.next(value);
48
+ }
49
+ if (this.hasError) {
50
+ subscriber.error(this.thrownError);
51
+ }
52
+ else if (this.isStopped) {
53
+ subscriber.complete();
54
+ }
55
+ }, (err) => {
56
+ subscriber.error(err);
57
+ }));
58
+ return result;
59
+ }
60
+ }
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlZC5kYi5zdWJqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvY29tbW9uL3NyYy9saWIvaW5kZXhlZGRiL2luZGV4ZWQuZGIuc3ViamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQWMsT0FBTyxFQUFjLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM1RixPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRTNELE1BQU0sT0FBTyxzQkFBMEIsU0FBUSxPQUFVO0lBR3JELFlBQW1CLE1BQWMsRUFBRSxHQUFtQixFQUFFLE9BQWdCO1FBQ3BFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGNBQWMsQ0FBSSxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxJQUFXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQWEsRUFBRSxFQUFFO1lBQzdDLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVELElBQVcsU0FBUztRQUNoQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFTSxJQUFJLENBQUMsS0FBUTtRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQ2pDLENBQUMsV0FBcUIsRUFBRSxFQUFFO1lBQ3RCLElBQUksV0FBVyxJQUFJLElBQUksRUFBRTtnQkFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUMzQjtRQUNMLENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ0osS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFUyxLQUFLLENBQUMsS0FBUTtRQUNwQixLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFTSxVQUFVLENBQUMsVUFBeUI7UUFDdkMsSUFBSSxZQUEwQixDQUFDO1FBRS9CLFFBQVEsSUFBSSxFQUFFO1lBQ1YsS0FBSyxJQUFJLENBQUMsTUFBTTtnQkFDWixNQUFNLElBQUksdUJBQXVCLEVBQUUsQ0FBQztZQUN4QyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDbkIsS0FBSyxJQUFJLENBQUMsU0FBUztnQkFDZixZQUFZLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztnQkFDbEMsTUFBTTtZQUNWO2dCQUNJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNoQyxZQUFZLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDaEU7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2xDLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDekIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FDL0IsQ0FBQyxLQUFlLEVBQUUsRUFBRTtZQUNoQixJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUU7Z0JBQ2YsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMxQjtZQUVELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDZixVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUN0QztpQkFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ3ZCLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUN6QjtRQUNMLENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ0osVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRVIsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYmplY3RVbnN1YnNjcmliZWRFcnJvciwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaWJlciwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0luZGV4ZWREYlN0b3JlfSBmcm9tICcuL2luZGV4ZWQuZGIuc3RvcmUnO1xuaW1wb3J0IHtTdWJqZWN0U3Vic2NyaXB0aW9ufSBmcm9tICcuL3N1YmplY3Quc3Vic2NyaXB0aW9uJztcblxuZXhwb3J0IGNsYXNzIEluZGV4ZWREQlJlcGxheVN1YmplY3Q8VD4gZXh0ZW5kcyBTdWJqZWN0PFQ+IHtcbiAgICBwcm90ZWN0ZWQgc3RvcmFnZTogSW5kZXhlZERiU3RvcmU8VD47XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZGJOYW1lOiBzdHJpbmcsIGtleToga2V5b2YgVCB8IG51bGwsIHZlcnNpb24/OiBudW1iZXIpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zdG9yYWdlID0gbmV3IEluZGV4ZWREYlN0b3JlPFQ+KGRiTmFtZSwga2V5LCB2ZXJzaW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc0RhdGEoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxhc3RWYWx1ZS5waXBlKG1hcCgodmFsOiBUIHwgbnVsbCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHZhbCAhPSBudWxsO1xuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsYXN0VmFsdWUoKTogT2JzZXJ2YWJsZTxUIHwgbnVsbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zdG9yYWdlLmFsbC5waXBlKG1hcCgodmFsdWU6IFRbXSkgPT4gdmFsdWUgPyB2YWx1ZVswXSA6IG51bGwpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmV4dCh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JhZ2UucmVwbGFjZSh2YWx1ZSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKHN0b3JlZFZhbHVlOiBUIHwgbnVsbCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzdG9yZWRWYWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX25leHQoc3RvcmVkVmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgc3VwZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfbmV4dCh2YWx1ZTogVCkge1xuICAgICAgICBzdXBlci5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgX3N1YnNjcmliZShzdWJzY3JpYmVyOiBTdWJzY3JpYmVyPFQ+KTogU3Vic2NyaXB0aW9uIHtcbiAgICAgICAgbGV0IHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICAgICAgY2FzZSB0aGlzLmNsb3NlZDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IoKTtcbiAgICAgICAgICAgIGNhc2UgdGhpcy5oYXNFcnJvcjpcbiAgICAgICAgICAgIGNhc2UgdGhpcy5pc1N0b3BwZWQ6XG4gICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLm9ic2VydmVycy5wdXNoKHN1YnNjcmliZXIpO1xuICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJqZWN0U3Vic2NyaXB0aW9uKHRoaXMsIHN1YnNjcmliZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgICAgICByZXN1bHQuYWRkKHN1YnNjcmlwdGlvbik7XG4gICAgICAgIHJlc3VsdC5hZGQodGhpcy5sYXN0VmFsdWUuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKHZhbHVlOiBUIHwgbnVsbCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcih0aGlzLnRocm93bkVycm9yKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNTdG9wcGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgIH0pKTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ import { globalScope } from '../global';
2
+ export const indexedDB = ('indexedDB' in globalScope && globalScope.indexedDB)
3
+ || ('mozIndexedDB' in globalScope && globalScope.mozIndexedDB)
4
+ || ('webkitIndexedDB' in globalScope && globalScope.webkitIndexedDB)
5
+ || ('msIndexedDB' in globalScope && globalScope.msIndexedDB);
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWZpbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9jb21tb24vc3JjL2xpYi9pbmRleGVkZGIvcG9seWZpbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUV0QyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQWUsQ0FBQyxXQUFXLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxTQUFTLENBQUM7T0FDbEQsQ0FBQyxjQUFjLElBQUksV0FBVyxJQUFLLFdBQW1CLENBQUMsWUFBWSxDQUFDO09BQ3BFLENBQUMsaUJBQWlCLElBQUksV0FBVyxJQUFLLFdBQW1CLENBQUMsZUFBZSxDQUFDO09BQzFFLENBQUMsYUFBYSxJQUFJLFdBQVcsSUFBSyxXQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtnbG9iYWxTY29wZX0gZnJvbSAnLi4vZ2xvYmFsJztcblxuZXhwb3J0IGNvbnN0IGluZGV4ZWREQjogSURCRmFjdG9yeSA9ICgnaW5kZXhlZERCJyBpbiBnbG9iYWxTY29wZSAmJiBnbG9iYWxTY29wZS5pbmRleGVkREIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKCdtb3pJbmRleGVkREInIGluIGdsb2JhbFNjb3BlICYmIChnbG9iYWxTY29wZSBhcyBhbnkpLm1vekluZGV4ZWREQilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAoJ3dlYmtpdEluZGV4ZWREQicgaW4gZ2xvYmFsU2NvcGUgJiYgKGdsb2JhbFNjb3BlIGFzIGFueSkud2Via2l0SW5kZXhlZERCKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICgnbXNJbmRleGVkREInIGluIGdsb2JhbFNjb3BlICYmIChnbG9iYWxTY29wZSBhcyBhbnkpLm1zSW5kZXhlZERCKTtcbiJdfQ==