@dbg-riskit/common 15.1.0 → 16.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/esm2022/lib/error.types.mjs +19 -0
  2. package/esm2022/lib/indexeddb/indexed.db.array.subject.mjs +31 -0
  3. package/esm2022/lib/indexeddb/indexed.db.store.mjs +121 -0
  4. package/esm2022/lib/indexeddb/indexed.db.subject.mjs +62 -0
  5. package/esm2022/lib/indexeddb/subject.subscription.mjs +31 -0
  6. package/esm2022/lib/replay.subject.ext.mjs +23 -0
  7. package/{fesm2020 → fesm2022}/dbg-riskit-common.mjs +16 -7
  8. package/{fesm2020 → fesm2022}/dbg-riskit-common.mjs.map +1 -1
  9. package/lib/common.types.d.ts +8 -8
  10. package/package.json +5 -11
  11. package/esm2020/lib/error.types.mjs +0 -19
  12. package/esm2020/lib/indexeddb/indexed.db.array.subject.mjs +0 -30
  13. package/esm2020/lib/indexeddb/indexed.db.store.mjs +0 -118
  14. package/esm2020/lib/indexeddb/indexed.db.subject.mjs +0 -61
  15. package/esm2020/lib/indexeddb/subject.subscription.mjs +0 -29
  16. package/esm2020/lib/replay.subject.ext.mjs +0 -21
  17. package/fesm2015/dbg-riskit-common.mjs +0 -749
  18. package/fesm2015/dbg-riskit-common.mjs.map +0 -1
  19. /package/{esm2020 → esm2022}/dbg-riskit-common.mjs +0 -0
  20. /package/{esm2020 → esm2022}/lib/auth.types.mjs +0 -0
  21. /package/{esm2020 → esm2022}/lib/base64.mjs +0 -0
  22. /package/{esm2020 → esm2022}/lib/common.functions.mjs +0 -0
  23. /package/{esm2020 → esm2022}/lib/common.types.mjs +0 -0
  24. /package/{esm2020 → esm2022}/lib/date.utils.mjs +0 -0
  25. /package/{esm2020 → esm2022}/lib/file.types.mjs +0 -0
  26. /package/{esm2020 → esm2022}/lib/global.mjs +0 -0
  27. /package/{esm2020 → esm2022}/lib/indexeddb/polyfill.mjs +0 -0
  28. /package/{esm2020 → esm2022}/lib/indexeddb/request.wrappers.mjs +0 -0
  29. /package/{esm2020 → esm2022}/lib/logger.mjs +0 -0
  30. /package/{esm2020 → esm2022}/lib/random.mjs +0 -0
  31. /package/{esm2020 → esm2022}/lib/rxjs.utils.mjs +0 -0
  32. /package/{esm2020 → esm2022}/lib/storage.mjs +0 -0
  33. /package/{esm2020 → esm2022}/lib/string.utils.mjs +0 -0
  34. /package/{esm2020 → esm2022}/lib/uid.utils.mjs +0 -0
  35. /package/{esm2020 → esm2022}/lib/user.info.mjs +0 -0
  36. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
@@ -0,0 +1,19 @@
1
+ export class ErrorType {
2
+ static NETWORK = new ErrorType();
3
+ static REQUEST = new ErrorType();
4
+ static AUTH = new ErrorType();
5
+ static 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9jb21tb24vc3JjL2xpYi9lcnJvci50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sU0FBUztJQUVYLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztJQUNqQyxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7SUFDakMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO0lBQzlCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztJQUUvQixPQUFPO1FBQ1YsT0FBTyxJQUFJLEtBQUssU0FBUyxDQUFDLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBRU0sY0FBYztRQUNqQixPQUFPLElBQUksS0FBSyxTQUFTLENBQUMsT0FBTyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxjQUFjO1FBQ2pCLE9BQU8sSUFBSSxLQUFLLFNBQVMsQ0FBQyxPQUFPLENBQUM7SUFDdEMsQ0FBQztJQUVNLFdBQVc7UUFDZCxPQUFPLElBQUksS0FBSyxTQUFTLENBQUMsSUFBSSxDQUFDO0lBQ25DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRXJyb3JUeXBlIHtcblxuICAgIHB1YmxpYyBzdGF0aWMgTkVUV09SSyA9IG5ldyBFcnJvclR5cGUoKTtcbiAgICBwdWJsaWMgc3RhdGljIFJFUVVFU1QgPSBuZXcgRXJyb3JUeXBlKCk7XG4gICAgcHVibGljIHN0YXRpYyBBVVRIID0gbmV3IEVycm9yVHlwZSgpO1xuICAgIHB1YmxpYyBzdGF0aWMgRVJST1IgPSBuZXcgRXJyb3JUeXBlKCk7XG5cbiAgICBwdWJsaWMgaXNFcnJvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMgPT09IEVycm9yVHlwZS5FUlJPUjtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNOZXR3b3JrRXJyb3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzID09PSBFcnJvclR5cGUuTkVUV09SSztcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNSZXF1ZXN0RXJyb3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzID09PSBFcnJvclR5cGUuUkVRVUVTVDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNBdXRoRXJyb3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzID09PSBFcnJvclR5cGUuQVVUSDtcbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JNZXNzYWdlIHtcbiAgICBzdGF0dXM6IG51bWJlcjtcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgZXJyb3JUeXBlOiBFcnJvclR5cGU7XG4gICAgdHJhY2VfaWQ/OiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,31 @@
1
+ import { map } from 'rxjs/operators';
2
+ import { IndexedDBReplaySubject } from './indexed.db.subject';
3
+ export class IndexedDBArrayReplaySubject extends IndexedDBReplaySubject {
4
+ partitionSize;
5
+ constructor(partitionSize, dbName, version) {
6
+ super(dbName, null, version);
7
+ this.partitionSize = partitionSize;
8
+ }
9
+ get lastValue() {
10
+ return this.storage.all.pipe(map((items) => {
11
+ if (!items || items.length === 0) {
12
+ return null;
13
+ }
14
+ return items.reduce((result, subItems) => {
15
+ return result.concat(subItems);
16
+ }, []);
17
+ }));
18
+ }
19
+ next(value) {
20
+ const rows = [];
21
+ for (let i = 0; i <= value.length / this.partitionSize; i++) {
22
+ rows[i] = value.slice(i * this.partitionSize, (i + 1) * this.partitionSize);
23
+ }
24
+ this.storage.bulkReplace(rows).subscribe(() => {
25
+ this._next(value);
26
+ }, (err) => {
27
+ super.error(err);
28
+ });
29
+ }
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlZC5kYi5hcnJheS5zdWJqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvY29tbW9uL3NyYy9saWIvaW5kZXhlZGRiL2luZGV4ZWQuZGIuYXJyYXkuc3ViamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFNUQsTUFBTSxPQUFPLDJCQUErQixTQUFRLHNCQUEyQjtJQUV2QztJQUFwQyxZQUFvQyxhQUFxQixFQUFFLE1BQWMsRUFBRSxPQUFnQjtRQUN2RixLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQURHLGtCQUFhLEdBQWIsYUFBYSxDQUFRO0lBRXpELENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQ3hCLEdBQUcsQ0FBQyxDQUFDLEtBQVksRUFBRSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQzlCLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7WUFFRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQ2YsQ0FBQyxNQUFXLEVBQUUsUUFBYSxFQUFFLEVBQUU7Z0JBQzNCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuQyxDQUFDLEVBQUUsRUFBUyxDQUFDLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFTSxJQUFJLENBQUMsS0FBVTtRQUNsQixNQUFNLElBQUksR0FBVSxFQUFFLENBQUM7UUFDdkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6RCxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDL0U7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQ3BDLEdBQUcsRUFBRTtZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDSixLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0luZGV4ZWREQlJlcGxheVN1YmplY3R9IGZyb20gJy4vaW5kZXhlZC5kYi5zdWJqZWN0JztcblxuZXhwb3J0IGNsYXNzIEluZGV4ZWREQkFycmF5UmVwbGF5U3ViamVjdDxUPiBleHRlbmRzIEluZGV4ZWREQlJlcGxheVN1YmplY3Q8VFtdPiB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwYXJ0aXRpb25TaXplOiBudW1iZXIsIGRiTmFtZTogc3RyaW5nLCB2ZXJzaW9uPzogbnVtYmVyKSB7XG4gICAgICAgIHN1cGVyKGRiTmFtZSwgbnVsbCwgdmVyc2lvbik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsYXN0VmFsdWUoKTogT2JzZXJ2YWJsZTxUW10gfCBudWxsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JhZ2UuYWxsLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGl0ZW1zOiBUW11bXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghaXRlbXMgfHwgaXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtcy5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgICAgIChyZXN1bHQ6IFRbXSwgc3ViSXRlbXM6IFRbXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5jb25jYXQoc3ViSXRlbXMpO1xuICAgICAgICAgICAgICAgICAgICB9LCBbXSBhcyBUW10pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmV4dCh2YWx1ZTogVFtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJvd3M6IFRbXVtdID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IHZhbHVlLmxlbmd0aCAvIHRoaXMucGFydGl0aW9uU2l6ZTsgaSsrKSB7XG4gICAgICAgICAgICByb3dzW2ldID0gdmFsdWUuc2xpY2UoaSAqIHRoaXMucGFydGl0aW9uU2l6ZSwgKGkgKyAxKSAqIHRoaXMucGFydGl0aW9uU2l6ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdG9yYWdlLmJ1bGtSZXBsYWNlKHJvd3MpLnN1YnNjcmliZShcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9uZXh0KHZhbHVlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgc3VwZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,121 @@
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
+ dbName;
8
+ key;
9
+ version;
10
+ _bakValue = [];
11
+ constructor(dbName, key, version) {
12
+ this.dbName = dbName;
13
+ this.key = key;
14
+ this.version = version;
15
+ }
16
+ get indexedDB() {
17
+ const request = indexedDB.open(this.dbName, this.version || 1);
18
+ let db;
19
+ let close = false;
20
+ request.onupgradeneeded = (ev) => {
21
+ db = ev.target.result;
22
+ let params = { autoIncrement: true };
23
+ if (this.key != null) {
24
+ params = { keyPath: toString(this.key) };
25
+ }
26
+ db.createObjectStore(this.dbName, params);
27
+ if (close) {
28
+ db.close();
29
+ }
30
+ };
31
+ return requestToObservable(request, (ev) => {
32
+ db = ev.target.result;
33
+ if (close) {
34
+ db.close();
35
+ }
36
+ return db;
37
+ }, () => {
38
+ close = true;
39
+ if (db) {
40
+ db.close();
41
+ }
42
+ });
43
+ }
44
+ add(value) {
45
+ return this.bulkAdd([value]).pipe(map((savedValue) => savedValue ? savedValue[0] : null));
46
+ }
47
+ bulkAdd(value) {
48
+ if (!indexedDB) {
49
+ this._bakValue = this._bakValue.concat(value);
50
+ return of(this._bakValue);
51
+ }
52
+ return this.readWriteStore.pipe(switchMap((store) => {
53
+ return this._saveBulk(store, value);
54
+ }));
55
+ }
56
+ replace(value) {
57
+ return this.bulkReplace([value]).pipe(map((savedValue) => savedValue ? savedValue[0] : null));
58
+ }
59
+ bulkReplace(value) {
60
+ if (!indexedDB) {
61
+ this._bakValue = value;
62
+ return of(this._bakValue);
63
+ }
64
+ return this._clear().pipe(switchMap((store) => {
65
+ return this._saveBulk(store, value);
66
+ }));
67
+ }
68
+ clear() {
69
+ if (!indexedDB) {
70
+ this._bakValue = [];
71
+ return of(void 0);
72
+ }
73
+ return this._clear().pipe(map(() => void 0));
74
+ }
75
+ get readWriteStore() {
76
+ return this.indexedDB.pipe(map((db) => {
77
+ const tx = db.transaction(this.dbName, 'readwrite');
78
+ return tx.objectStore(this.dbName);
79
+ }));
80
+ }
81
+ _clear() {
82
+ return this.readWriteStore.pipe(switchMap((store) => {
83
+ const request = store.clear();
84
+ return requestToObservable(request, () => store);
85
+ }));
86
+ }
87
+ _saveBulk(store, items) {
88
+ return defer(() => {
89
+ const requests = [of(null)];
90
+ if (items != null) {
91
+ items.forEach((item) => {
92
+ requests.push(requestToObservable(store.add(item), () => null));
93
+ });
94
+ }
95
+ return zip(...requests);
96
+ }).pipe(map(() => {
97
+ return items;
98
+ }));
99
+ }
100
+ get all() {
101
+ if (!indexedDB) {
102
+ return of(this._bakValue);
103
+ }
104
+ return this.indexedDB.pipe(switchMap((db) => new Observable((subscriber) => {
105
+ const tx = db.transaction(this.dbName, 'readonly');
106
+ const store = tx.objectStore(this.dbName);
107
+ const req = store.openCursor();
108
+ const items = [];
109
+ return cursorRequestToStream(req, tx, (cursor) => {
110
+ return cursor.value;
111
+ })
112
+ .subscribe((item) => items.push(item), (err) => {
113
+ subscriber.error(err);
114
+ }, () => {
115
+ subscriber.next(items);
116
+ subscriber.complete();
117
+ });
118
+ })));
119
+ }
120
+ }
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlZC5kYi5zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BrZy9kYmctcmlza2l0L2NvbW1vbi9zcmMvbGliL2luZGV4ZWRkYi9pbmRleGVkLmRiLnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBYyxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQUMscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUU5RSxNQUFNLE9BQU8sY0FBYztJQUdhO0lBQ0E7SUFDQTtJQUo1QixTQUFTLEdBQVEsRUFBRSxDQUFDO0lBRTVCLFlBQW9DLE1BQWMsRUFDZCxHQUFtQixFQUNuQixPQUFnQjtRQUZoQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsUUFBRyxHQUFILEdBQUcsQ0FBZ0I7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBUztJQUNwRCxDQUFDO0lBRUQsSUFBWSxTQUFTO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQy9ELElBQUksRUFBZSxDQUFDO1FBRXBCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVsQixPQUFPLENBQUMsZUFBZSxHQUFHLENBQUMsRUFBeUIsRUFBRSxFQUFFO1lBQ3BELEVBQUUsR0FBSSxFQUFFLENBQUMsTUFBMkIsQ0FBQyxNQUFNLENBQUM7WUFDNUMsSUFBSSxNQUFN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RSxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQ0wsQ0FDSixDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZWZlciwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmliZXIsIHppcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge3RvU3RyaW5nfSBmcm9tICcuLi9zdHJpbmcudXRpbHMnO1xuaW1wb3J0IHtpbmRleGVkREJ9IGZyb20gJy4vcG9seWZpbGwnO1xuaW1wb3J0IHtjdXJzb3JSZXF1ZXN0VG9TdHJlYW0sIHJlcXVlc3RUb09ic2VydmFibGV9IGZyb20gJy4vcmVxdWVzdC53cmFwcGVycyc7XG5cbmV4cG9ydCBjbGFzcyBJbmRleGVkRGJTdG9yZTxUPiB7XG4gICAgcHJpdmF0ZSBfYmFrVmFsdWU6IFRbXSA9IFtdO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGJOYW1lOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkga2V5OiBrZXlvZiBUIHwgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSB2ZXJzaW9uPzogbnVtYmVyKSB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaW5kZXhlZERCKCk6IE9ic2VydmFibGU8SURCRGF0YWJhc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKHRoaXMuZGJOYW1lLCB0aGlzLnZlcnNpb24gfHwgMSk7XG4gICAgICAgIGxldCBkYjogSURCRGF0YWJhc2U7XG5cbiAgICAgICAgbGV0IGNsb3NlID0gZmFsc2U7XG5cbiAgICAgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSAoZXY6IElEQlZlcnNpb25DaGFuZ2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgZGIgPSAoZXYudGFyZ2V0IGFzIElEQk9wZW5EQlJlcXVlc3QpLnJlc3VsdDtcbiAgICAgICAgICAgIGxldCBwYXJhbXM6IElEQk9iamVjdFN0b3JlUGFyYW1ldGVycyA9IHthdXRvSW5jcmVtZW50OiB0cnVlfTtcbiAgICAgICAgICAgIGlmICh0aGlzLmtleSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zID0ge2tleVBhdGg6IHRvU3RyaW5nKHRoaXMua2V5KX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSh0aGlzLmRiTmFtZSwgcGFyYW1zKTtcblxuICAgICAgICAgICAgaWYgKGNsb3NlKSB7XG4gICAgICAgICAgICAgICAgZGIuY2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gcmVxdWVzdFRvT2JzZXJ2YWJsZShyZXF1ZXN0LFxuICAgICAgICAgICAgKGV2OiBFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGRiID0gKGV2LnRhcmdldCBhcyBJREJPcGVuREJSZXF1ZXN0KS5yZXN1bHQ7XG4gICAgICAgICAgICAgICAgaWYgKGNsb3NlKSB7XG4gICAgICAgICAgICAgICAgICAgIGRiLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBkYjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY2xvc2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlmIChkYikge1xuICAgICAgICAgICAgICAgICAgICBkYi5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGQodmFsdWU6IFQpOiBPYnNlcnZhYmxlPFQgfCBudWxsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1bGtBZGQoW3ZhbHVlXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoc2F2ZWRWYWx1ZTogVFtdKSA9PiBzYXZlZFZhbHVlID8gc2F2ZWRWYWx1ZVswXSA6IG51bGwpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGJ1bGtBZGQodmFsdWU6IFRbXSk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgICAgIGlmICghaW5kZXhlZERCKSB7XG4gICAgICAgICAgICB0aGlzLl9iYWtWYWx1ZSA9IHRoaXMuX2Jha1ZhbHVlLmNvbmNhdCh2YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy5fYmFrVmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWRXcml0ZVN0b3JlLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKHN0b3JlOiBJREJPYmplY3RTdG9yZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9zYXZlQnVsayhzdG9yZSwgdmFsdWUpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVwbGFjZSh2YWx1ZTogVCk6IE9ic2VydmFibGU8VCB8IG51bGw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVsa1JlcGxhY2UoW3ZhbHVlXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoc2F2ZWRWYWx1ZTogVFtdKSA9PiBzYXZlZFZhbHVlID8gc2F2ZWRWYWx1ZVswXSA6IG51bGwpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGJ1bGtSZXBsYWNlKHZhbHVlOiBUW10pOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgICAgICBpZiAoIWluZGV4ZWREQikge1xuICAgICAgICAgICAgdGhpcy5fYmFrVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHJldHVybiBvZih0aGlzLl9iYWtWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2NsZWFyKCkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoc3RvcmU6IElEQk9iamVjdFN0b3JlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NhdmVCdWxrKHN0b3JlLCB2YWx1ZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhcigpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCFpbmRleGVkREIpIHtcbiAgICAgICAgICAgIHRoaXMuX2Jha1ZhbHVlID0gW107XG4gICAgICAgICAgICByZXR1cm4gb2Yodm9pZCAwKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fY2xlYXIoKS5waXBlKG1hcCgoKSA9PiB2b2lkIDApKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCByZWFkV3JpdGVTdG9yZSgpOiBPYnNlcnZhYmxlPElEQk9iamVjdFN0b3JlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmluZGV4ZWREQi5waXBlKFxuICAgICAgICAgICAgbWFwKChkYjogSURCRGF0YWJhc2UpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0eCA9IGRiLnRyYW5zYWN0aW9uKHRoaXMuZGJOYW1lLCAncmVhZHdyaXRlJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHR4Lm9iamVjdFN0b3JlKHRoaXMuZGJOYW1lKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2xlYXIoKTogT2JzZXJ2YWJsZTxJREJPYmplY3RTdG9yZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkV3JpdGVTdG9yZS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChzdG9yZTogSURCT2JqZWN0U3RvcmUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gc3RvcmUuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdFRvT2JzZXJ2YWJsZShyZXF1ZXN0LCAoKSA9PiBzdG9yZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NhdmVCdWxrKHN0b3JlOiBJREJPYmplY3RTdG9yZSwgaXRlbXM6IFRbXSk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgICAgIHJldHVybiBkZWZlcihcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0czogQXJyYXk8T2JzZXJ2YWJsZTxudWxsPj4gPSBbb2YobnVsbCldO1xuICAgICAgICAgICAgICAgIGlmIChpdGVtcyAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zLmZvckVhY2goKGl0ZW06IFQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RzLnB1c2gocmVxdWVzdFRvT2JzZXJ2YWJsZShzdG9yZS5hZGQoaXRlbSksICgpID0+IG51bGwpKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHppcCguLi5yZXF1ZXN0cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICkucGlwZShcbiAgICAgICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFsbCgpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgICAgICBpZiAoIWluZGV4ZWREQikge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMuX2Jha1ZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmluZGV4ZWREQi5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChkYjogSURCRGF0YWJhc2UpID0+IG5ldyBPYnNlcnZhYmxlKFxuICAgICAgICAgICAgICAgIChzdWJzY3JpYmVyOiBTdWJzY3JpYmVyPFRbXT4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdHggPSBkYi50cmFuc2FjdGlvbih0aGlzLmRiTmFtZSwgJ3JlYWRvbmx5Jyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0b3JlID0gdHgub2JqZWN0U3RvcmUodGhpcy5kYk5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXEgPSBzdG9yZS5vcGVuQ3Vyc29yKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1zOiBUW10gPSBbXTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yUmVxdWVzdFRvU3RyZWFtKHJlcSwgdHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAoY3Vyc29yOiBJREJDdXJzb3JXaXRoVmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGl0ZW06IFQpID0+IGl0ZW1zLnB1c2goaXRlbSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChpdGVtcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,62 @@
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
+ storage;
7
+ constructor(dbName, key, version) {
8
+ super();
9
+ this.storage = new IndexedDbStore(dbName, key, version);
10
+ }
11
+ get hasData() {
12
+ return this.lastValue.pipe(map((val) => {
13
+ return val != null;
14
+ }));
15
+ }
16
+ get lastValue() {
17
+ return this.storage.all.pipe(map((value) => value ? value[0] : null));
18
+ }
19
+ next(value) {
20
+ this.storage.replace(value).subscribe((storedValue) => {
21
+ if (storedValue != null) {
22
+ this._next(storedValue);
23
+ }
24
+ }, (err) => {
25
+ super.error(err);
26
+ });
27
+ }
28
+ _next(value) {
29
+ super.next(value);
30
+ }
31
+ _subscribe(subscriber) {
32
+ let subscription;
33
+ switch (true) {
34
+ case this.closed:
35
+ throw new ObjectUnsubscribedError();
36
+ case this.hasError:
37
+ case this.isStopped:
38
+ subscription = Subscription.EMPTY;
39
+ break;
40
+ default:
41
+ this.observers.push(subscriber);
42
+ subscription = new SubjectSubscription(this, subscriber);
43
+ }
44
+ const result = new Subscription();
45
+ result.add(subscription);
46
+ result.add(this.lastValue.subscribe((value) => {
47
+ if (value != null) {
48
+ subscriber.next(value);
49
+ }
50
+ if (this.hasError) {
51
+ subscriber.error(this.thrownError);
52
+ }
53
+ else if (this.isStopped) {
54
+ subscriber.complete();
55
+ }
56
+ }, (err) => {
57
+ subscriber.error(err);
58
+ }));
59
+ return result;
60
+ }
61
+ }
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlZC5kYi5zdWJqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvY29tbW9uL3NyYy9saWIvaW5kZXhlZGRiL2luZGV4ZWQuZGIuc3ViamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQWMsT0FBTyxFQUFjLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM1RixPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRTNELE1BQU0sT0FBTyxzQkFBMEIsU0FBUSxPQUFVO0lBQzNDLE9BQU8sQ0FBb0I7SUFFckMsWUFBbUIsTUFBYyxFQUFFLEdBQW1CLEVBQUUsT0FBZ0I7UUFDcEUsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksY0FBYyxDQUFJLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELElBQVcsT0FBTztRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBYSxFQUFFLEVBQUU7WUFDN0MsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVNLElBQUksQ0FBQyxLQUFRO1FBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FDakMsQ0FBQyxXQUFxQixFQUFFLEVBQUU7WUFDdEIsSUFBSSxXQUFXLElBQUksSUFBSSxFQUFFO2dCQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQzNCO1FBQ0wsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDSixLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVTLEtBQUssQ0FBQyxLQUFRO1FBQ3BCLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxVQUF5QjtRQUN2QyxJQUFJLFlBQTBCLENBQUM7UUFFL0IsUUFBUSxJQUFJLEVBQUU7WUFDVixLQUFLLElBQUksQ0FBQyxNQUFNO2dCQUNaLE1BQU0sSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1lBQ3hDLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNuQixLQUFLLElBQUksQ0FBQyxTQUFTO2dCQUNmLFlBQVksR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO2dCQUNsQyxNQUFNO1lBQ1Y7Z0JBQ0ksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ2hDLFlBQVksR0FBRyxJQUFJLG1CQUFtQixDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztTQUNoRTtRQUVELE1BQU0sTUFBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN6QixNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUMvQixDQUFDLEtBQWUsRUFBRSxFQUFFO1lBQ2hCLElBQUksS0FBSyxJQUFJLElBQUksRUFBRTtnQkFDZixVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzFCO1lBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNmLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ3RDO2lCQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDdkIsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ3pCO1FBQ0wsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDSixVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFUixPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09iamVjdFVuc3Vic2NyaWJlZEVycm9yLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpYmVyLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7SW5kZXhlZERiU3RvcmV9IGZyb20gJy4vaW5kZXhlZC5kYi5zdG9yZSc7XG5pbXBvcnQge1N1YmplY3RTdWJzY3JpcHRpb259IGZyb20gJy4vc3ViamVjdC5zdWJzY3JpcHRpb24nO1xuXG5leHBvcnQgY2xhc3MgSW5kZXhlZERCUmVwbGF5U3ViamVjdDxUPiBleHRlbmRzIFN1YmplY3Q8VD4ge1xuICAgIHByb3RlY3RlZCBzdG9yYWdlOiBJbmRleGVkRGJTdG9yZTxUPjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihkYk5hbWU6IHN0cmluZywga2V5OiBrZXlvZiBUIHwgbnVsbCwgdmVyc2lvbj86IG51bWJlcikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnN0b3JhZ2UgPSBuZXcgSW5kZXhlZERiU3RvcmU8VD4oZGJOYW1lLCBrZXksIHZlcnNpb24pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzRGF0YSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGFzdFZhbHVlLnBpcGUobWFwKCh2YWw6IFQgfCBudWxsKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdmFsICE9IG51bGw7XG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGxhc3RWYWx1ZSgpOiBPYnNlcnZhYmxlPFQgfCBudWxsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JhZ2UuYWxsLnBpcGUobWFwKCh2YWx1ZTogVFtdKSA9PiB2YWx1ZSA/IHZhbHVlWzBdIDogbnVsbCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZXh0KHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmFnZS5yZXBsYWNlKHZhbHVlKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoc3RvcmVkVmFsdWU6IFQgfCBudWxsKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHN0b3JlZFZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbmV4dChzdG9yZWRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBzdXBlci5lcnJvcihlcnIpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9uZXh0KHZhbHVlOiBUKSB7XG4gICAgICAgIHN1cGVyLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBfc3Vic2NyaWJlKHN1YnNjcmliZXI6IFN1YnNjcmliZXI8VD4pOiBTdWJzY3JpcHRpb24ge1xuICAgICAgICBsZXQgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICAgICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAgICAgICBjYXNlIHRoaXMuY2xvc2VkOlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBPYmplY3RVbnN1YnNjcmliZWRFcnJvcigpO1xuICAgICAgICAgICAgY2FzZSB0aGlzLmhhc0Vycm9yOlxuICAgICAgICAgICAgY2FzZSB0aGlzLmlzU3RvcHBlZDpcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb24uRU1QVFk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXJzLnB1c2goc3Vic2NyaWJlcik7XG4gICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uID0gbmV3IFN1YmplY3RTdWJzY3JpcHRpb24odGhpcywgc3Vic2NyaWJlcik7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgICAgIHJlc3VsdC5hZGQoc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgcmVzdWx0LmFkZCh0aGlzLmxhc3RWYWx1ZS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAodmFsdWU6IFQgfCBudWxsKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKHRoaXMudGhyb3duRXJyb3IpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1N0b3BwZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihlcnIpO1xuICAgICAgICAgICAgfSkpO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,31 @@
1
+ import { Subscription } from 'rxjs';
2
+ /**
3
+ * We need this JSDoc comment for affecting ESDoc.
4
+ */
5
+ export class SubjectSubscription extends Subscription {
6
+ subject;
7
+ subscriber;
8
+ closed = false;
9
+ constructor(subject, subscriber) {
10
+ super();
11
+ this.subject = subject;
12
+ this.subscriber = subscriber;
13
+ }
14
+ unsubscribe() {
15
+ if (this.closed || this.subject == null) {
16
+ return;
17
+ }
18
+ this.closed = true;
19
+ const subject = this.subject;
20
+ const observers = subject.observers;
21
+ this.subject = null;
22
+ if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {
23
+ return;
24
+ }
25
+ const subscriberIndex = observers.indexOf(this.subscriber);
26
+ if (subscriberIndex !== -1) {
27
+ observers.splice(subscriberIndex, 1);
28
+ }
29
+ }
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViamVjdC5zdWJzY3JpcHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9jb21tb24vc3JjL2xpYi9pbmRleGVkZGIvc3ViamVjdC5zdWJzY3JpcHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFckQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUJBQXVCLFNBQVEsWUFBWTtJQUcxQjtJQUFtQztJQUZ0RCxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBRXRCLFlBQTBCLE9BQTBCLEVBQVMsVUFBdUI7UUFDaEYsS0FBSyxFQUFFLENBQUM7UUFEYyxZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUFTLGVBQVUsR0FBVixVQUFVLENBQWE7SUFFcEYsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUU7WUFDckMsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFFbkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM3QixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBRXBDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXBCLElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQzdFLE9BQU87U0FDVjtRQUVELE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTNELElBQUksZUFBZSxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3hCLFNBQVMsQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3hDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYnNlcnZlciwgU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBXZSBuZWVkIHRoaXMgSlNEb2MgY29tbWVudCBmb3IgYWZmZWN0aW5nIEVTRG9jLlxuICovXG5leHBvcnQgY2xhc3MgU3ViamVjdFN1YnNjcmlwdGlvbjxUPiBleHRlbmRzIFN1YnNjcmlwdGlvbiB7XG4gICAgcHVibGljIGNsb3NlZCA9IGZhbHNlO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBzdWJqZWN0OiBTdWJqZWN0PFQ+IHwgbnVsbCwgcHVibGljIHN1YnNjcmliZXI6IE9ic2VydmVyPFQ+KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHVuc3Vic2NyaWJlKCkge1xuICAgICAgICBpZiAodGhpcy5jbG9zZWQgfHwgdGhpcy5zdWJqZWN0ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2xvc2VkID0gdHJ1ZTtcblxuICAgICAgICBjb25zdCBzdWJqZWN0ID0gdGhpcy5zdWJqZWN0O1xuICAgICAgICBjb25zdCBvYnNlcnZlcnMgPSBzdWJqZWN0Lm9ic2VydmVycztcblxuICAgICAgICB0aGlzLnN1YmplY3QgPSBudWxsO1xuXG4gICAgICAgIGlmICghb2JzZXJ2ZXJzIHx8IG9ic2VydmVycy5sZW5ndGggPT09IDAgfHwgc3ViamVjdC5pc1N0b3BwZWQgfHwgc3ViamVjdC5jbG9zZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN1YnNjcmliZXJJbmRleCA9IG9ic2VydmVycy5pbmRleE9mKHRoaXMuc3Vic2NyaWJlcik7XG5cbiAgICAgICAgaWYgKHN1YnNjcmliZXJJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgIG9ic2VydmVycy5zcGxpY2Uoc3Vic2NyaWJlckluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { ReplaySubject } from 'rxjs';
2
+ export class ReplaySubjectExt extends ReplaySubject {
3
+ _hasData = false;
4
+ _lastValue;
5
+ oldNext;
6
+ constructor(bufferSize, windowTime, scheduler) {
7
+ super(bufferSize, windowTime, scheduler);
8
+ this.oldNext = this.next;
9
+ this.next = this.nextAndStoreValue;
10
+ }
11
+ nextAndStoreValue(value) {
12
+ this._lastValue = value;
13
+ this._hasData = true;
14
+ this.oldNext(value);
15
+ }
16
+ get hasData() {
17
+ return this._hasData;
18
+ }
19
+ get lastValue() {
20
+ return this._lastValue;
21
+ }
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGF5LnN1YmplY3QuZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvY29tbW9uL3NyYy9saWIvcmVwbGF5LnN1YmplY3QuZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxhQUFhLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRWxELE1BQU0sT0FBTyxnQkFBb0IsU0FBUSxhQUFnQjtJQUU3QyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLFVBQVUsQ0FBSztJQUNOLE9BQU8sQ0FBcUI7SUFFN0MsWUFBbUIsVUFBbUIsRUFBRSxVQUFtQixFQUFFLFNBQXlCO1FBQ2xGLEtBQUssQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRXpDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUN2QyxDQUFDO0lBRU0saUJBQWlCLENBQUMsS0FBUTtRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsU0FBUztRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZXBsYXlTdWJqZWN0LCBTY2hlZHVsZXJMaWtlfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGNsYXNzIFJlcGxheVN1YmplY3RFeHQ8VD4gZXh0ZW5kcyBSZXBsYXlTdWJqZWN0PFQ+IHtcblxuICAgIHByaXZhdGUgX2hhc0RhdGEgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9sYXN0VmFsdWU/OiBUO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb2xkTmV4dDogKHZhbHVlOiBUKSA9PiB2b2lkO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGJ1ZmZlclNpemU/OiBudW1iZXIsIHdpbmRvd1RpbWU/OiBudW1iZXIsIHNjaGVkdWxlcj86IFNjaGVkdWxlckxpa2UpIHtcbiAgICAgICAgc3VwZXIoYnVmZmVyU2l6ZSwgd2luZG93VGltZSwgc2NoZWR1bGVyKTtcblxuICAgICAgICB0aGlzLm9sZE5leHQgPSB0aGlzLm5leHQ7XG4gICAgICAgIHRoaXMubmV4dCA9IHRoaXMubmV4dEFuZFN0b3JlVmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIG5leHRBbmRTdG9yZVZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xhc3RWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9oYXNEYXRhID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vbGROZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc0RhdGEoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNEYXRhO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbGFzdFZhbHVlKCk6IFQgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGFzdFZhbHVlO1xuICAgIH1cbn1cbiJdfQ==
@@ -41,6 +41,10 @@ function extractResult() {
41
41
  }
42
42
 
43
43
  class ErrorType {
44
+ static NETWORK = new ErrorType();
45
+ static REQUEST = new ErrorType();
46
+ static AUTH = new ErrorType();
47
+ static ERROR = new ErrorType();
44
48
  isError() {
45
49
  return this === ErrorType.ERROR;
46
50
  }
@@ -54,10 +58,6 @@ class ErrorType {
54
58
  return this === ErrorType.AUTH;
55
59
  }
56
60
  }
57
- ErrorType.NETWORK = new ErrorType();
58
- ErrorType.REQUEST = new ErrorType();
59
- ErrorType.AUTH = new ErrorType();
60
- ErrorType.ERROR = new ErrorType();
61
61
 
62
62
  const CONTENT_TYPE = {
63
63
  APPLICATION_FORM: 'application/x-www-form-urlencoded',
@@ -205,11 +205,14 @@ function cursorRequestToStream(request, tx, result, tearDown) {
205
205
  }
206
206
 
207
207
  class IndexedDbStore {
208
+ dbName;
209
+ key;
210
+ version;
211
+ _bakValue = [];
208
212
  constructor(dbName, key, version) {
209
213
  this.dbName = dbName;
210
214
  this.key = key;
211
215
  this.version = version;
212
- this._bakValue = [];
213
216
  }
214
217
  get indexedDB() {
215
218
  const request = indexedDB.open(this.dbName, this.version || 1);
@@ -321,11 +324,13 @@ class IndexedDbStore {
321
324
  * We need this JSDoc comment for affecting ESDoc.
322
325
  */
323
326
  class SubjectSubscription extends Subscription {
327
+ subject;
328
+ subscriber;
329
+ closed = false;
324
330
  constructor(subject, subscriber) {
325
331
  super();
326
332
  this.subject = subject;
327
333
  this.subscriber = subscriber;
328
- this.closed = false;
329
334
  }
330
335
  unsubscribe() {
331
336
  if (this.closed || this.subject == null) {
@@ -346,6 +351,7 @@ class SubjectSubscription extends Subscription {
346
351
  }
347
352
 
348
353
  class IndexedDBReplaySubject extends Subject {
354
+ storage;
349
355
  constructor(dbName, key, version) {
350
356
  super();
351
357
  this.storage = new IndexedDbStore(dbName, key, version);
@@ -403,6 +409,7 @@ class IndexedDBReplaySubject extends Subject {
403
409
  }
404
410
 
405
411
  class IndexedDBArrayReplaySubject extends IndexedDBReplaySubject {
412
+ partitionSize;
406
413
  constructor(partitionSize, dbName, version) {
407
414
  super(dbName, null, version);
408
415
  this.partitionSize = partitionSize;
@@ -431,9 +438,11 @@ class IndexedDBArrayReplaySubject extends IndexedDBReplaySubject {
431
438
  }
432
439
 
433
440
  class ReplaySubjectExt extends ReplaySubject {
441
+ _hasData = false;
442
+ _lastValue;
443
+ oldNext;
434
444
  constructor(bufferSize, windowTime, scheduler) {
435
445
  super(bufferSize, windowTime, scheduler);
436
- this._hasData = false;
437
446
  this.oldNext = this.next;
438
447
  this.next = this.nextAndStoreValue;
439
448
  }