dexie-cloud-addon 4.0.0-beta.22 → 4.0.0-beta.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/copydts.sh +0 -0
- package/dist/modern/dexie-cloud-addon.js +380 -326
- package/dist/modern/dexie-cloud-addon.js.map +1 -1
- package/dist/modern/dexie-cloud-addon.min.js +1 -1
- package/dist/modern/dexie-cloud-addon.min.js.map +1 -1
- package/dist/modern/service-worker.js +381 -327
- package/dist/modern/service-worker.js.map +1 -1
- package/dist/modern/service-worker.min.js +1 -1
- package/dist/modern/service-worker.min.js.map +1 -1
- package/dist/module-es5/dexie-cloud-addon.js +556 -509
- package/dist/module-es5/dexie-cloud-addon.js.map +1 -1
- package/dist/module-es5/dexie-cloud-addon.min.js +1 -1
- package/dist/module-es5/dexie-cloud-addon.min.js.map +1 -1
- package/dist/types/helpers/visibilityState.d.ts +1 -1
- package/dist/umd/dexie-cloud-addon.js +555 -508
- package/dist/umd/dexie-cloud-addon.js.map +1 -1
- package/dist/umd/dexie-cloud-addon.min.js +1 -1
- package/dist/umd/dexie-cloud-addon.min.js.map +1 -1
- package/dist/umd/service-worker.js +381 -327
- package/dist/umd/service-worker.js.map +1 -1
- package/dist/umd/service-worker.min.js +1 -1
- package/dist/umd/service-worker.min.js.map +1 -1
- package/dist/umd-modern/dexie-cloud-addon.js +377 -323
- package/dist/umd-modern/dexie-cloud-addon.js.map +1 -1
- package/package.json +11 -10
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* ==========================================================================
|
|
10
10
|
*
|
|
11
|
-
* Version 4.0.0-beta.
|
|
11
|
+
* Version 4.0.0-beta.24, Mon Oct 17 2022
|
|
12
12
|
*
|
|
13
13
|
* https://dexie.org
|
|
14
14
|
*
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
import Dexie, { cmp, liveQuery } from 'dexie';
|
|
20
20
|
import { Observable as Observable$1, BehaviorSubject, Subject, fromEvent, of, merge, Subscription as Subscription$1, from as from$1, throwError, combineLatest, map as map$1, share, timer as timer$1, switchMap as switchMap$1 } from 'rxjs';
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
/******************************************************************************
|
|
23
23
|
Copyright (c) Microsoft Corporation.
|
|
24
24
|
|
|
25
25
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -33,8 +33,24 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
|
33
33
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
34
34
|
PERFORMANCE OF THIS SOFTWARE.
|
|
35
35
|
***************************************************************************** */
|
|
36
|
+
/* global Reflect, Promise */
|
|
37
|
+
|
|
38
|
+
var extendStatics = function(d, b) {
|
|
39
|
+
extendStatics = Object.setPrototypeOf ||
|
|
40
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
41
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
42
|
+
return extendStatics(d, b);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
function __extends(d, b) {
|
|
46
|
+
if (typeof b !== "function" && b !== null)
|
|
47
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
48
|
+
extendStatics(d, b);
|
|
49
|
+
function __() { this.constructor = d; }
|
|
50
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
51
|
+
}
|
|
36
52
|
|
|
37
|
-
function __awaiter
|
|
53
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
38
54
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
39
55
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
40
56
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
@@ -42,6 +58,97 @@ function __awaiter$1(thisArg, _arguments, P, generator) {
|
|
|
42
58
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
43
59
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
44
60
|
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function __generator(thisArg, body) {
|
|
64
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
65
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
66
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
67
|
+
function step(op) {
|
|
68
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
69
|
+
while (_) try {
|
|
70
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
71
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
72
|
+
switch (op[0]) {
|
|
73
|
+
case 0: case 1: t = op; break;
|
|
74
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
75
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
76
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
77
|
+
default:
|
|
78
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
79
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
80
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
81
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
82
|
+
if (t[2]) _.ops.pop();
|
|
83
|
+
_.trys.pop(); continue;
|
|
84
|
+
}
|
|
85
|
+
op = body.call(thisArg, _);
|
|
86
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
87
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function __values(o) {
|
|
92
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
93
|
+
if (m) return m.call(o);
|
|
94
|
+
if (o && typeof o.length === "number") return {
|
|
95
|
+
next: function () {
|
|
96
|
+
if (o && i >= o.length) o = void 0;
|
|
97
|
+
return { value: o && o[i++], done: !o };
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function __read(o, n) {
|
|
104
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
105
|
+
if (!m) return o;
|
|
106
|
+
var i = m.call(o), r, ar = [], e;
|
|
107
|
+
try {
|
|
108
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
109
|
+
}
|
|
110
|
+
catch (error) { e = { error: error }; }
|
|
111
|
+
finally {
|
|
112
|
+
try {
|
|
113
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
114
|
+
}
|
|
115
|
+
finally { if (e) throw e.error; }
|
|
116
|
+
}
|
|
117
|
+
return ar;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
function __spreadArray(to, from, pack) {
|
|
121
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
122
|
+
if (ar || !(i in from)) {
|
|
123
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
124
|
+
ar[i] = from[i];
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
function __await(v) {
|
|
131
|
+
return this instanceof __await ? (this.v = v, this) : new __await(v);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
function __asyncGenerator(thisArg, _arguments, generator) {
|
|
135
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
136
|
+
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
137
|
+
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
|
|
138
|
+
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
|
|
139
|
+
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
140
|
+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
141
|
+
function fulfill(value) { resume("next", value); }
|
|
142
|
+
function reject(value) { resume("throw", value); }
|
|
143
|
+
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
function __asyncValues(o) {
|
|
147
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
148
|
+
var m = o[Symbol.asyncIterator], i;
|
|
149
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
150
|
+
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
151
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
45
152
|
}
|
|
46
153
|
|
|
47
154
|
//@ts-check
|
|
@@ -51,6 +158,10 @@ function assert(b) {
|
|
|
51
158
|
if (!b)
|
|
52
159
|
throw new Error('Assertion Failed');
|
|
53
160
|
}
|
|
161
|
+
const _hasOwn = {}.hasOwnProperty;
|
|
162
|
+
function hasOwn(obj, prop) {
|
|
163
|
+
return _hasOwn.call(obj, prop);
|
|
164
|
+
}
|
|
54
165
|
function setByKeyPath(obj, keyPath, value) {
|
|
55
166
|
if (!obj || keyPath === undefined)
|
|
56
167
|
return;
|
|
@@ -83,8 +194,8 @@ function setByKeyPath(obj, keyPath, value) {
|
|
|
83
194
|
//@ts-ignore: even if currentKeyPath would be numeric string and obj would be array - it works.
|
|
84
195
|
var innerObj = obj[currentKeyPath];
|
|
85
196
|
//@ts-ignore: even if currentKeyPath would be numeric string and obj would be array - it works.
|
|
86
|
-
if (!innerObj)
|
|
87
|
-
innerObj = obj[currentKeyPath] = {};
|
|
197
|
+
if (!innerObj || !hasOwn(obj, currentKeyPath))
|
|
198
|
+
innerObj = (obj[currentKeyPath] = {});
|
|
88
199
|
setByKeyPath(innerObj, remainingKeyPath, value);
|
|
89
200
|
}
|
|
90
201
|
}
|
|
@@ -103,7 +214,7 @@ function setByKeyPath(obj, keyPath, value) {
|
|
|
103
214
|
}
|
|
104
215
|
}
|
|
105
216
|
}
|
|
106
|
-
const randomString$1 = typeof
|
|
217
|
+
const randomString$1 = typeof Buffer !== 'undefined' ? (bytes) => {
|
|
107
218
|
// Node
|
|
108
219
|
const buf = Buffer.alloc(bytes);
|
|
109
220
|
randomFillSync(buf);
|
|
@@ -364,134 +475,6 @@ function operate(init) {
|
|
|
364
475
|
};
|
|
365
476
|
}
|
|
366
477
|
|
|
367
|
-
/*! *****************************************************************************
|
|
368
|
-
Copyright (c) Microsoft Corporation.
|
|
369
|
-
|
|
370
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
371
|
-
purpose with or without fee is hereby granted.
|
|
372
|
-
|
|
373
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
374
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
375
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
376
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
377
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
378
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
379
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
380
|
-
***************************************************************************** */
|
|
381
|
-
/* global Reflect, Promise */
|
|
382
|
-
|
|
383
|
-
var extendStatics = function(d, b) {
|
|
384
|
-
extendStatics = Object.setPrototypeOf ||
|
|
385
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
386
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
387
|
-
return extendStatics(d, b);
|
|
388
|
-
};
|
|
389
|
-
|
|
390
|
-
function __extends(d, b) {
|
|
391
|
-
if (typeof b !== "function" && b !== null)
|
|
392
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
393
|
-
extendStatics(d, b);
|
|
394
|
-
function __() { this.constructor = d; }
|
|
395
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
function __awaiter(thisArg, _arguments, P, generator) {
|
|
399
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
400
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
401
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
402
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
403
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
404
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
405
|
-
});
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
function __generator(thisArg, body) {
|
|
409
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
410
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
411
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
412
|
-
function step(op) {
|
|
413
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
414
|
-
while (_) try {
|
|
415
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
416
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
417
|
-
switch (op[0]) {
|
|
418
|
-
case 0: case 1: t = op; break;
|
|
419
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
420
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
421
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
422
|
-
default:
|
|
423
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
424
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
425
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
426
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
427
|
-
if (t[2]) _.ops.pop();
|
|
428
|
-
_.trys.pop(); continue;
|
|
429
|
-
}
|
|
430
|
-
op = body.call(thisArg, _);
|
|
431
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
432
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
function __values(o) {
|
|
437
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
438
|
-
if (m) return m.call(o);
|
|
439
|
-
if (o && typeof o.length === "number") return {
|
|
440
|
-
next: function () {
|
|
441
|
-
if (o && i >= o.length) o = void 0;
|
|
442
|
-
return { value: o && o[i++], done: !o };
|
|
443
|
-
}
|
|
444
|
-
};
|
|
445
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
function __read(o, n) {
|
|
449
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
450
|
-
if (!m) return o;
|
|
451
|
-
var i = m.call(o), r, ar = [], e;
|
|
452
|
-
try {
|
|
453
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
454
|
-
}
|
|
455
|
-
catch (error) { e = { error: error }; }
|
|
456
|
-
finally {
|
|
457
|
-
try {
|
|
458
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
459
|
-
}
|
|
460
|
-
finally { if (e) throw e.error; }
|
|
461
|
-
}
|
|
462
|
-
return ar;
|
|
463
|
-
}
|
|
464
|
-
|
|
465
|
-
function __spreadArray(to, from) {
|
|
466
|
-
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
|
|
467
|
-
to[j] = from[i];
|
|
468
|
-
return to;
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
function __await(v) {
|
|
472
|
-
return this instanceof __await ? (this.v = v, this) : new __await(v);
|
|
473
|
-
}
|
|
474
|
-
|
|
475
|
-
function __asyncGenerator(thisArg, _arguments, generator) {
|
|
476
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
477
|
-
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
478
|
-
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
|
|
479
|
-
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
|
|
480
|
-
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
481
|
-
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
482
|
-
function fulfill(value) { resume("next", value); }
|
|
483
|
-
function reject(value) { resume("throw", value); }
|
|
484
|
-
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
function __asyncValues(o) {
|
|
488
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
489
|
-
var m = o[Symbol.asyncIterator], i;
|
|
490
|
-
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
491
|
-
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
492
|
-
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
493
|
-
}
|
|
494
|
-
|
|
495
478
|
var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });
|
|
496
479
|
|
|
497
480
|
function isPromise(value) {
|
|
@@ -532,7 +515,7 @@ var Subscription = (function () {
|
|
|
532
515
|
this.initialTeardown = initialTeardown;
|
|
533
516
|
this.closed = false;
|
|
534
517
|
this._parentage = null;
|
|
535
|
-
this.
|
|
518
|
+
this._finalizers = null;
|
|
536
519
|
}
|
|
537
520
|
Subscription.prototype.unsubscribe = function () {
|
|
538
521
|
var e_1, _a, e_2, _b;
|
|
@@ -561,23 +544,23 @@ var Subscription = (function () {
|
|
|
561
544
|
_parentage.remove(this);
|
|
562
545
|
}
|
|
563
546
|
}
|
|
564
|
-
var
|
|
565
|
-
if (isFunction(
|
|
547
|
+
var initialFinalizer = this.initialTeardown;
|
|
548
|
+
if (isFunction(initialFinalizer)) {
|
|
566
549
|
try {
|
|
567
|
-
|
|
550
|
+
initialFinalizer();
|
|
568
551
|
}
|
|
569
552
|
catch (e) {
|
|
570
553
|
errors = e instanceof UnsubscriptionError ? e.errors : [e];
|
|
571
554
|
}
|
|
572
555
|
}
|
|
573
|
-
var
|
|
574
|
-
if (
|
|
575
|
-
this.
|
|
556
|
+
var _finalizers = this._finalizers;
|
|
557
|
+
if (_finalizers) {
|
|
558
|
+
this._finalizers = null;
|
|
576
559
|
try {
|
|
577
|
-
for (var
|
|
578
|
-
var
|
|
560
|
+
for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {
|
|
561
|
+
var finalizer = _finalizers_1_1.value;
|
|
579
562
|
try {
|
|
580
|
-
|
|
563
|
+
execFinalizer(finalizer);
|
|
581
564
|
}
|
|
582
565
|
catch (err) {
|
|
583
566
|
errors = errors !== null && errors !== void 0 ? errors : [];
|
|
@@ -593,7 +576,7 @@ var Subscription = (function () {
|
|
|
593
576
|
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
594
577
|
finally {
|
|
595
578
|
try {
|
|
596
|
-
if (
|
|
579
|
+
if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);
|
|
597
580
|
}
|
|
598
581
|
finally { if (e_2) throw e_2.error; }
|
|
599
582
|
}
|
|
@@ -607,7 +590,7 @@ var Subscription = (function () {
|
|
|
607
590
|
var _a;
|
|
608
591
|
if (teardown && teardown !== this) {
|
|
609
592
|
if (this.closed) {
|
|
610
|
-
|
|
593
|
+
execFinalizer(teardown);
|
|
611
594
|
}
|
|
612
595
|
else {
|
|
613
596
|
if (teardown instanceof Subscription) {
|
|
@@ -616,7 +599,7 @@ var Subscription = (function () {
|
|
|
616
599
|
}
|
|
617
600
|
teardown._addParent(this);
|
|
618
601
|
}
|
|
619
|
-
(this.
|
|
602
|
+
(this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);
|
|
620
603
|
}
|
|
621
604
|
}
|
|
622
605
|
};
|
|
@@ -638,8 +621,8 @@ var Subscription = (function () {
|
|
|
638
621
|
}
|
|
639
622
|
};
|
|
640
623
|
Subscription.prototype.remove = function (teardown) {
|
|
641
|
-
var
|
|
642
|
-
|
|
624
|
+
var _finalizers = this._finalizers;
|
|
625
|
+
_finalizers && arrRemove(_finalizers, teardown);
|
|
643
626
|
if (teardown instanceof Subscription) {
|
|
644
627
|
teardown._removeParent(this);
|
|
645
628
|
}
|
|
@@ -651,16 +634,17 @@ var Subscription = (function () {
|
|
|
651
634
|
})();
|
|
652
635
|
return Subscription;
|
|
653
636
|
}());
|
|
637
|
+
Subscription.EMPTY;
|
|
654
638
|
function isSubscription(value) {
|
|
655
639
|
return (value instanceof Subscription ||
|
|
656
640
|
(value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));
|
|
657
641
|
}
|
|
658
|
-
function
|
|
659
|
-
if (isFunction(
|
|
660
|
-
|
|
642
|
+
function execFinalizer(finalizer) {
|
|
643
|
+
if (isFunction(finalizer)) {
|
|
644
|
+
finalizer();
|
|
661
645
|
}
|
|
662
646
|
else {
|
|
663
|
-
|
|
647
|
+
finalizer.unsubscribe();
|
|
664
648
|
}
|
|
665
649
|
}
|
|
666
650
|
|
|
@@ -673,13 +657,16 @@ var config = {
|
|
|
673
657
|
};
|
|
674
658
|
|
|
675
659
|
var timeoutProvider = {
|
|
676
|
-
setTimeout: function () {
|
|
660
|
+
setTimeout: function (handler, timeout) {
|
|
677
661
|
var args = [];
|
|
678
|
-
for (var _i =
|
|
679
|
-
args[_i] = arguments[_i];
|
|
662
|
+
for (var _i = 2; _i < arguments.length; _i++) {
|
|
663
|
+
args[_i - 2] = arguments[_i];
|
|
680
664
|
}
|
|
681
665
|
var delegate = timeoutProvider.delegate;
|
|
682
|
-
|
|
666
|
+
if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {
|
|
667
|
+
return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));
|
|
668
|
+
}
|
|
669
|
+
return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));
|
|
683
670
|
},
|
|
684
671
|
clearTimeout: function (handle) {
|
|
685
672
|
var delegate = timeoutProvider.delegate;
|
|
@@ -690,7 +677,11 @@ var timeoutProvider = {
|
|
|
690
677
|
|
|
691
678
|
function reportUnhandledError(err) {
|
|
692
679
|
timeoutProvider.setTimeout(function () {
|
|
693
|
-
|
|
680
|
+
var onUnhandledError = config.onUnhandledError;
|
|
681
|
+
if (onUnhandledError) {
|
|
682
|
+
onUnhandledError(err);
|
|
683
|
+
}
|
|
684
|
+
else {
|
|
694
685
|
throw err;
|
|
695
686
|
}
|
|
696
687
|
});
|
|
@@ -715,14 +706,22 @@ function createNotification(kind, value, error) {
|
|
|
715
706
|
|
|
716
707
|
var context = null;
|
|
717
708
|
function errorContext(cb) {
|
|
718
|
-
{
|
|
709
|
+
if (config.useDeprecatedSynchronousErrorHandling) {
|
|
710
|
+
var isRoot = !context;
|
|
711
|
+
if (isRoot) {
|
|
712
|
+
context = { errorThrown: false, error: null };
|
|
713
|
+
}
|
|
719
714
|
cb();
|
|
715
|
+
if (isRoot) {
|
|
716
|
+
var _a = context, errorThrown = _a.errorThrown, error = _a.error;
|
|
717
|
+
context = null;
|
|
718
|
+
if (errorThrown) {
|
|
719
|
+
throw error;
|
|
720
|
+
}
|
|
721
|
+
}
|
|
720
722
|
}
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
if (config.useDeprecatedSynchronousErrorHandling && context) {
|
|
724
|
-
context.errorThrown = true;
|
|
725
|
-
context.error = err;
|
|
723
|
+
else {
|
|
724
|
+
cb();
|
|
726
725
|
}
|
|
727
726
|
}
|
|
728
727
|
|
|
@@ -799,55 +798,88 @@ var Subscriber = (function (_super) {
|
|
|
799
798
|
};
|
|
800
799
|
return Subscriber;
|
|
801
800
|
}(Subscription));
|
|
801
|
+
var _bind = Function.prototype.bind;
|
|
802
|
+
function bind(fn, thisArg) {
|
|
803
|
+
return _bind.call(fn, thisArg);
|
|
804
|
+
}
|
|
805
|
+
var ConsumerObserver = (function () {
|
|
806
|
+
function ConsumerObserver(partialObserver) {
|
|
807
|
+
this.partialObserver = partialObserver;
|
|
808
|
+
}
|
|
809
|
+
ConsumerObserver.prototype.next = function (value) {
|
|
810
|
+
var partialObserver = this.partialObserver;
|
|
811
|
+
if (partialObserver.next) {
|
|
812
|
+
try {
|
|
813
|
+
partialObserver.next(value);
|
|
814
|
+
}
|
|
815
|
+
catch (error) {
|
|
816
|
+
handleUnhandledError(error);
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
};
|
|
820
|
+
ConsumerObserver.prototype.error = function (err) {
|
|
821
|
+
var partialObserver = this.partialObserver;
|
|
822
|
+
if (partialObserver.error) {
|
|
823
|
+
try {
|
|
824
|
+
partialObserver.error(err);
|
|
825
|
+
}
|
|
826
|
+
catch (error) {
|
|
827
|
+
handleUnhandledError(error);
|
|
828
|
+
}
|
|
829
|
+
}
|
|
830
|
+
else {
|
|
831
|
+
handleUnhandledError(err);
|
|
832
|
+
}
|
|
833
|
+
};
|
|
834
|
+
ConsumerObserver.prototype.complete = function () {
|
|
835
|
+
var partialObserver = this.partialObserver;
|
|
836
|
+
if (partialObserver.complete) {
|
|
837
|
+
try {
|
|
838
|
+
partialObserver.complete();
|
|
839
|
+
}
|
|
840
|
+
catch (error) {
|
|
841
|
+
handleUnhandledError(error);
|
|
842
|
+
}
|
|
843
|
+
}
|
|
844
|
+
};
|
|
845
|
+
return ConsumerObserver;
|
|
846
|
+
}());
|
|
802
847
|
var SafeSubscriber = (function (_super) {
|
|
803
848
|
__extends(SafeSubscriber, _super);
|
|
804
849
|
function SafeSubscriber(observerOrNext, error, complete) {
|
|
805
850
|
var _this = _super.call(this) || this;
|
|
806
|
-
var
|
|
807
|
-
if (isFunction(observerOrNext)) {
|
|
808
|
-
|
|
851
|
+
var partialObserver;
|
|
852
|
+
if (isFunction(observerOrNext) || !observerOrNext) {
|
|
853
|
+
partialObserver = {
|
|
854
|
+
next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),
|
|
855
|
+
error: error !== null && error !== void 0 ? error : undefined,
|
|
856
|
+
complete: complete !== null && complete !== void 0 ? complete : undefined,
|
|
857
|
+
};
|
|
809
858
|
}
|
|
810
|
-
else
|
|
811
|
-
(next = observerOrNext.next, error = observerOrNext.error, complete = observerOrNext.complete);
|
|
859
|
+
else {
|
|
812
860
|
var context_1;
|
|
813
861
|
if (_this && config.useDeprecatedNextContext) {
|
|
814
862
|
context_1 = Object.create(observerOrNext);
|
|
815
863
|
context_1.unsubscribe = function () { return _this.unsubscribe(); };
|
|
864
|
+
partialObserver = {
|
|
865
|
+
next: observerOrNext.next && bind(observerOrNext.next, context_1),
|
|
866
|
+
error: observerOrNext.error && bind(observerOrNext.error, context_1),
|
|
867
|
+
complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),
|
|
868
|
+
};
|
|
816
869
|
}
|
|
817
870
|
else {
|
|
818
|
-
|
|
871
|
+
partialObserver = observerOrNext;
|
|
819
872
|
}
|
|
820
|
-
next = next === null || next === void 0 ? void 0 : next.bind(context_1);
|
|
821
|
-
error = error === null || error === void 0 ? void 0 : error.bind(context_1);
|
|
822
|
-
complete = complete === null || complete === void 0 ? void 0 : complete.bind(context_1);
|
|
823
873
|
}
|
|
824
|
-
_this.destination =
|
|
825
|
-
next: next ? wrapForErrorHandling(next) : noop,
|
|
826
|
-
error: wrapForErrorHandling(error !== null && error !== void 0 ? error : defaultErrorHandler),
|
|
827
|
-
complete: complete ? wrapForErrorHandling(complete) : noop,
|
|
828
|
-
};
|
|
874
|
+
_this.destination = new ConsumerObserver(partialObserver);
|
|
829
875
|
return _this;
|
|
830
876
|
}
|
|
831
877
|
return SafeSubscriber;
|
|
832
878
|
}(Subscriber));
|
|
833
|
-
function
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
args[_i] = arguments[_i];
|
|
838
|
-
}
|
|
839
|
-
try {
|
|
840
|
-
handler.apply(void 0, __spreadArray([], __read(args)));
|
|
841
|
-
}
|
|
842
|
-
catch (err) {
|
|
843
|
-
if (config.useDeprecatedSynchronousErrorHandling) {
|
|
844
|
-
captureError(err);
|
|
845
|
-
}
|
|
846
|
-
else {
|
|
847
|
-
reportUnhandledError(err);
|
|
848
|
-
}
|
|
849
|
-
}
|
|
850
|
-
};
|
|
879
|
+
function handleUnhandledError(error) {
|
|
880
|
+
{
|
|
881
|
+
reportUnhandledError(error);
|
|
882
|
+
}
|
|
851
883
|
}
|
|
852
884
|
function defaultErrorHandler(err) {
|
|
853
885
|
throw err;
|
|
@@ -921,16 +953,20 @@ var Observable = (function () {
|
|
|
921
953
|
var _this = this;
|
|
922
954
|
promiseCtor = getPromiseCtor(promiseCtor);
|
|
923
955
|
return new promiseCtor(function (resolve, reject) {
|
|
924
|
-
var
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
956
|
+
var subscriber = new SafeSubscriber({
|
|
957
|
+
next: function (value) {
|
|
958
|
+
try {
|
|
959
|
+
next(value);
|
|
960
|
+
}
|
|
961
|
+
catch (err) {
|
|
962
|
+
reject(err);
|
|
963
|
+
subscriber.unsubscribe();
|
|
964
|
+
}
|
|
965
|
+
},
|
|
966
|
+
error: reject,
|
|
967
|
+
complete: resolve,
|
|
968
|
+
});
|
|
969
|
+
_this.subscribe(subscriber);
|
|
934
970
|
});
|
|
935
971
|
};
|
|
936
972
|
Observable.prototype._subscribe = function (subscriber) {
|
|
@@ -1162,11 +1198,15 @@ function process(asyncIterable, subscriber) {
|
|
|
1162
1198
|
});
|
|
1163
1199
|
}
|
|
1164
1200
|
|
|
1201
|
+
function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {
|
|
1202
|
+
return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);
|
|
1203
|
+
}
|
|
1165
1204
|
var OperatorSubscriber = (function (_super) {
|
|
1166
1205
|
__extends(OperatorSubscriber, _super);
|
|
1167
|
-
function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {
|
|
1206
|
+
function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {
|
|
1168
1207
|
var _this = _super.call(this, destination) || this;
|
|
1169
1208
|
_this.onFinalize = onFinalize;
|
|
1209
|
+
_this.shouldUnsubscribe = shouldUnsubscribe;
|
|
1170
1210
|
_this._next = onNext
|
|
1171
1211
|
? function (value) {
|
|
1172
1212
|
try {
|
|
@@ -1207,9 +1247,11 @@ var OperatorSubscriber = (function (_super) {
|
|
|
1207
1247
|
}
|
|
1208
1248
|
OperatorSubscriber.prototype.unsubscribe = function () {
|
|
1209
1249
|
var _a;
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1250
|
+
if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {
|
|
1251
|
+
var closed_1 = this.closed;
|
|
1252
|
+
_super.prototype.unsubscribe.call(this);
|
|
1253
|
+
!closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));
|
|
1254
|
+
}
|
|
1213
1255
|
};
|
|
1214
1256
|
return OperatorSubscriber;
|
|
1215
1257
|
}(Subscriber));
|
|
@@ -1226,13 +1268,16 @@ var Action = (function (_super) {
|
|
|
1226
1268
|
}(Subscription));
|
|
1227
1269
|
|
|
1228
1270
|
var intervalProvider = {
|
|
1229
|
-
setInterval: function () {
|
|
1271
|
+
setInterval: function (handler, timeout) {
|
|
1230
1272
|
var args = [];
|
|
1231
|
-
for (var _i =
|
|
1232
|
-
args[_i] = arguments[_i];
|
|
1273
|
+
for (var _i = 2; _i < arguments.length; _i++) {
|
|
1274
|
+
args[_i - 2] = arguments[_i];
|
|
1233
1275
|
}
|
|
1234
1276
|
var delegate = intervalProvider.delegate;
|
|
1235
|
-
|
|
1277
|
+
if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) {
|
|
1278
|
+
return delegate.setInterval.apply(delegate, __spreadArray([handler, timeout], __read(args)));
|
|
1279
|
+
}
|
|
1280
|
+
return setInterval.apply(void 0, __spreadArray([handler, timeout], __read(args)));
|
|
1236
1281
|
},
|
|
1237
1282
|
clearInterval: function (handle) {
|
|
1238
1283
|
var delegate = intervalProvider.delegate;
|
|
@@ -1451,7 +1496,7 @@ function catchError(selector) {
|
|
|
1451
1496
|
var innerSub = null;
|
|
1452
1497
|
var syncUnsub = false;
|
|
1453
1498
|
var handledResult;
|
|
1454
|
-
innerSub = source.subscribe(
|
|
1499
|
+
innerSub = source.subscribe(createOperatorSubscriber(subscriber, undefined, undefined, function (err) {
|
|
1455
1500
|
handledResult = innerFrom(selector(err, catchError(selector)(source)));
|
|
1456
1501
|
if (innerSub) {
|
|
1457
1502
|
innerSub.unsubscribe();
|
|
@@ -1473,7 +1518,7 @@ function catchError(selector) {
|
|
|
1473
1518
|
function observeOn(scheduler, delay) {
|
|
1474
1519
|
if (delay === void 0) { delay = 0; }
|
|
1475
1520
|
return operate(function (source, subscriber) {
|
|
1476
|
-
source.subscribe(
|
|
1521
|
+
source.subscribe(createOperatorSubscriber(subscriber, function (value) { return executeSchedule(subscriber, scheduler, function () { return subscriber.next(value); }, delay); }, function () { return executeSchedule(subscriber, scheduler, function () { return subscriber.complete(); }, delay); }, function (err) { return executeSchedule(subscriber, scheduler, function () { return subscriber.error(err); }, delay); }));
|
|
1477
1522
|
});
|
|
1478
1523
|
}
|
|
1479
1524
|
|
|
@@ -1593,13 +1638,13 @@ function from(input, scheduler) {
|
|
|
1593
1638
|
function map(project, thisArg) {
|
|
1594
1639
|
return operate(function (source, subscriber) {
|
|
1595
1640
|
var index = 0;
|
|
1596
|
-
source.subscribe(
|
|
1641
|
+
source.subscribe(createOperatorSubscriber(subscriber, function (value) {
|
|
1597
1642
|
subscriber.next(project.call(thisArg, value, index++));
|
|
1598
1643
|
}));
|
|
1599
1644
|
});
|
|
1600
1645
|
}
|
|
1601
1646
|
|
|
1602
|
-
function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler,
|
|
1647
|
+
function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {
|
|
1603
1648
|
var buffer = [];
|
|
1604
1649
|
var active = 0;
|
|
1605
1650
|
var index = 0;
|
|
@@ -1614,7 +1659,7 @@ function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, e
|
|
|
1614
1659
|
expand && subscriber.next(value);
|
|
1615
1660
|
active++;
|
|
1616
1661
|
var innerComplete = false;
|
|
1617
|
-
innerFrom(project(value, index++)).subscribe(
|
|
1662
|
+
innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, function (innerValue) {
|
|
1618
1663
|
onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);
|
|
1619
1664
|
if (expand) {
|
|
1620
1665
|
outerNext(innerValue);
|
|
@@ -1648,12 +1693,12 @@ function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, e
|
|
|
1648
1693
|
}
|
|
1649
1694
|
}));
|
|
1650
1695
|
};
|
|
1651
|
-
source.subscribe(
|
|
1696
|
+
source.subscribe(createOperatorSubscriber(subscriber, outerNext, function () {
|
|
1652
1697
|
isComplete = true;
|
|
1653
1698
|
checkComplete();
|
|
1654
1699
|
}));
|
|
1655
1700
|
return function () {
|
|
1656
|
-
|
|
1701
|
+
additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer();
|
|
1657
1702
|
};
|
|
1658
1703
|
}
|
|
1659
1704
|
|
|
@@ -1702,7 +1747,7 @@ function debounceTime(dueTime, scheduler) {
|
|
|
1702
1747
|
}
|
|
1703
1748
|
emit();
|
|
1704
1749
|
}
|
|
1705
|
-
source.subscribe(
|
|
1750
|
+
source.subscribe(createOperatorSubscriber(subscriber, function (value) {
|
|
1706
1751
|
lastValue = value;
|
|
1707
1752
|
lastTime = scheduler.now();
|
|
1708
1753
|
if (!activeTask) {
|
|
@@ -1734,7 +1779,7 @@ function take(count) {
|
|
|
1734
1779
|
function () { return EMPTY; }
|
|
1735
1780
|
: operate(function (source, subscriber) {
|
|
1736
1781
|
var seen = 0;
|
|
1737
|
-
source.subscribe(
|
|
1782
|
+
source.subscribe(createOperatorSubscriber(subscriber, function (value) {
|
|
1738
1783
|
if (++seen <= count) {
|
|
1739
1784
|
subscriber.next(value);
|
|
1740
1785
|
if (count <= seen) {
|
|
@@ -1747,7 +1792,7 @@ function take(count) {
|
|
|
1747
1792
|
|
|
1748
1793
|
function ignoreElements() {
|
|
1749
1794
|
return operate(function (source, subscriber) {
|
|
1750
|
-
source.subscribe(
|
|
1795
|
+
source.subscribe(createOperatorSubscriber(subscriber, noop));
|
|
1751
1796
|
});
|
|
1752
1797
|
}
|
|
1753
1798
|
|
|
@@ -1776,7 +1821,7 @@ function distinctUntilChanged(comparator, keySelector) {
|
|
|
1776
1821
|
return operate(function (source, subscriber) {
|
|
1777
1822
|
var previousKey;
|
|
1778
1823
|
var first = true;
|
|
1779
|
-
source.subscribe(
|
|
1824
|
+
source.subscribe(createOperatorSubscriber(subscriber, function (value) {
|
|
1780
1825
|
var currentKey = keySelector(value);
|
|
1781
1826
|
if (first || !comparator(previousKey, currentKey)) {
|
|
1782
1827
|
first = false;
|
|
@@ -1793,7 +1838,7 @@ function defaultCompare(a, b) {
|
|
|
1793
1838
|
function filter(predicate, thisArg) {
|
|
1794
1839
|
return operate(function (source, subscriber) {
|
|
1795
1840
|
var index = 0;
|
|
1796
|
-
source.subscribe(
|
|
1841
|
+
source.subscribe(createOperatorSubscriber(subscriber, function (value) { return predicate.call(thisArg, value, index++) && subscriber.next(value); }));
|
|
1797
1842
|
});
|
|
1798
1843
|
}
|
|
1799
1844
|
|
|
@@ -1818,11 +1863,11 @@ function switchMap(project, resultSelector) {
|
|
|
1818
1863
|
var index = 0;
|
|
1819
1864
|
var isComplete = false;
|
|
1820
1865
|
var checkComplete = function () { return isComplete && !innerSubscriber && subscriber.complete(); };
|
|
1821
|
-
source.subscribe(
|
|
1866
|
+
source.subscribe(createOperatorSubscriber(subscriber, function (value) {
|
|
1822
1867
|
innerSubscriber === null || innerSubscriber === void 0 ? void 0 : innerSubscriber.unsubscribe();
|
|
1823
1868
|
var innerIndex = 0;
|
|
1824
1869
|
var outerIndex = index++;
|
|
1825
|
-
innerFrom(project(value, outerIndex)).subscribe((innerSubscriber =
|
|
1870
|
+
innerFrom(project(value, outerIndex)).subscribe((innerSubscriber = createOperatorSubscriber(subscriber, function (innerValue) { return subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue); }, function () {
|
|
1826
1871
|
innerSubscriber = null;
|
|
1827
1872
|
checkComplete();
|
|
1828
1873
|
})));
|
|
@@ -1843,7 +1888,7 @@ function tap(observerOrNext, error, complete) {
|
|
|
1843
1888
|
var _a;
|
|
1844
1889
|
(_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);
|
|
1845
1890
|
var isUnsub = true;
|
|
1846
|
-
source.subscribe(
|
|
1891
|
+
source.subscribe(createOperatorSubscriber(subscriber, function (value) {
|
|
1847
1892
|
var _a;
|
|
1848
1893
|
(_a = tapObserver.next) === null || _a === void 0 ? void 0 : _a.call(tapObserver, value);
|
|
1849
1894
|
subscriber.next(value);
|
|
@@ -1879,11 +1924,7 @@ var TimeoutError = createErrorClass(function (_super) {
|
|
|
1879
1924
|
};
|
|
1880
1925
|
});
|
|
1881
1926
|
function timeout(config, schedulerArg) {
|
|
1882
|
-
var _a = (isValidDate(config)
|
|
1883
|
-
? { first: config }
|
|
1884
|
-
: typeof config === 'number'
|
|
1885
|
-
? { each: config }
|
|
1886
|
-
: config), first = _a.first, each = _a.each, _b = _a.with, _with = _b === void 0 ? timeoutErrorFactory : _b, _c = _a.scheduler, scheduler = _c === void 0 ? schedulerArg !== null && schedulerArg !== void 0 ? schedulerArg : asyncScheduler : _c, _d = _a.meta, meta = _d === void 0 ? null : _d;
|
|
1927
|
+
var _a = (isValidDate(config) ? { first: config } : typeof config === 'number' ? { each: config } : config), first = _a.first, each = _a.each, _b = _a.with, _with = _b === void 0 ? timeoutErrorFactory : _b, _c = _a.scheduler, scheduler = _c === void 0 ? schedulerArg !== null && schedulerArg !== void 0 ? schedulerArg : asyncScheduler : _c, _d = _a.meta, meta = _d === void 0 ? null : _d;
|
|
1887
1928
|
if (first == null && each == null) {
|
|
1888
1929
|
throw new TypeError('No timeout provided.');
|
|
1889
1930
|
}
|
|
@@ -1907,7 +1948,7 @@ function timeout(config, schedulerArg) {
|
|
|
1907
1948
|
}
|
|
1908
1949
|
}, delay);
|
|
1909
1950
|
};
|
|
1910
|
-
originalSourceSubscription = source.subscribe(
|
|
1951
|
+
originalSourceSubscription = source.subscribe(createOperatorSubscriber(subscriber, function (value) {
|
|
1911
1952
|
timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();
|
|
1912
1953
|
seen++;
|
|
1913
1954
|
subscriber.next((lastValue = value));
|
|
@@ -1918,7 +1959,7 @@ function timeout(config, schedulerArg) {
|
|
|
1918
1959
|
}
|
|
1919
1960
|
lastValue = null;
|
|
1920
1961
|
}));
|
|
1921
|
-
startTimer(first != null ? (typeof first === 'number' ? first : +first - scheduler.now()) : each);
|
|
1962
|
+
!seen && startTimer(first != null ? (typeof first === 'number' ? first : +first - scheduler.now()) : each);
|
|
1922
1963
|
});
|
|
1923
1964
|
}
|
|
1924
1965
|
function timeoutErrorFactory(info) {
|
|
@@ -1928,7 +1969,7 @@ function timeoutErrorFactory(info) {
|
|
|
1928
1969
|
//const hasSW = 'serviceWorker' in navigator;
|
|
1929
1970
|
let hasComplainedAboutSyncEvent = false;
|
|
1930
1971
|
function registerSyncEvent(db, purpose) {
|
|
1931
|
-
return __awaiter
|
|
1972
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1932
1973
|
try {
|
|
1933
1974
|
// Send sync event to SW:
|
|
1934
1975
|
const sw = yield navigator.serviceWorker.ready;
|
|
@@ -1959,7 +2000,7 @@ function registerSyncEvent(db, purpose) {
|
|
|
1959
2000
|
}
|
|
1960
2001
|
function registerPeriodicSyncEvent(db) {
|
|
1961
2002
|
var _a;
|
|
1962
|
-
return __awaiter
|
|
2003
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1963
2004
|
try {
|
|
1964
2005
|
// Register periodicSync event to SW:
|
|
1965
2006
|
// @ts-ignore
|
|
@@ -2017,15 +2058,12 @@ const b64encode = typeof Buffer !== "undefined"
|
|
|
2017
2058
|
};
|
|
2018
2059
|
|
|
2019
2060
|
function interactWithUser(userInteraction, req) {
|
|
2020
|
-
let done = false;
|
|
2021
2061
|
return new Promise((resolve, reject) => {
|
|
2022
2062
|
const interactionProps = Object.assign(Object.assign({}, req), { onSubmit: (res) => {
|
|
2023
2063
|
userInteraction.next(undefined);
|
|
2024
|
-
done = true;
|
|
2025
2064
|
resolve(res);
|
|
2026
2065
|
}, onCancel: () => {
|
|
2027
2066
|
userInteraction.next(undefined);
|
|
2028
|
-
done = true;
|
|
2029
2067
|
reject(new Dexie.AbortError("User cancelled"));
|
|
2030
2068
|
} });
|
|
2031
2069
|
userInteraction.next(interactionProps);
|
|
@@ -2049,7 +2087,7 @@ function alertUser(userInteraction, title, ...alerts) {
|
|
|
2049
2087
|
});
|
|
2050
2088
|
}
|
|
2051
2089
|
function promptForEmail(userInteraction, title, emailHint) {
|
|
2052
|
-
return __awaiter
|
|
2090
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2053
2091
|
let email = emailHint || '';
|
|
2054
2092
|
while (!email || !/^[\w-\.]+@([\w-]+\.)+[\w-]{2,10}$/.test(email)) {
|
|
2055
2093
|
email = (yield interactWithUser(userInteraction, {
|
|
@@ -2077,7 +2115,7 @@ function promptForEmail(userInteraction, title, emailHint) {
|
|
|
2077
2115
|
});
|
|
2078
2116
|
}
|
|
2079
2117
|
function promptForOTP(userInteraction, email, alert) {
|
|
2080
|
-
return __awaiter
|
|
2118
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2081
2119
|
const alerts = [
|
|
2082
2120
|
{
|
|
2083
2121
|
type: 'info',
|
|
@@ -2107,7 +2145,7 @@ function promptForOTP(userInteraction, email, alert) {
|
|
|
2107
2145
|
|
|
2108
2146
|
function loadAccessToken(db) {
|
|
2109
2147
|
var _a, _b;
|
|
2110
|
-
return __awaiter
|
|
2148
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2111
2149
|
const currentUser = yield db.getCurrentUser();
|
|
2112
2150
|
const { accessToken, accessTokenExpiration, refreshToken, refreshTokenExpiration, claims, } = currentUser;
|
|
2113
2151
|
if (!accessToken)
|
|
@@ -2132,7 +2170,7 @@ function loadAccessToken(db) {
|
|
|
2132
2170
|
});
|
|
2133
2171
|
}
|
|
2134
2172
|
function authenticate(url, context, fetchToken, userInteraction, hints) {
|
|
2135
|
-
return __awaiter
|
|
2173
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2136
2174
|
if (context.accessToken &&
|
|
2137
2175
|
context.accessTokenExpiration.getTime() > Date.now()) {
|
|
2138
2176
|
return context;
|
|
@@ -2148,7 +2186,7 @@ function authenticate(url, context, fetchToken, userInteraction, hints) {
|
|
|
2148
2186
|
});
|
|
2149
2187
|
}
|
|
2150
2188
|
function refreshAccessToken(url, login) {
|
|
2151
|
-
return __awaiter
|
|
2189
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2152
2190
|
if (!login.refreshToken)
|
|
2153
2191
|
throw new Error(`Cannot refresh token - refresh token is missing.`);
|
|
2154
2192
|
if (!login.nonExportablePrivateKey)
|
|
@@ -2184,7 +2222,7 @@ function refreshAccessToken(url, login) {
|
|
|
2184
2222
|
});
|
|
2185
2223
|
}
|
|
2186
2224
|
function userAuthenticate(context, fetchToken, userInteraction, hints) {
|
|
2187
|
-
return __awaiter
|
|
2225
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2188
2226
|
const { privateKey, publicKey } = yield crypto.subtle.generateKey({
|
|
2189
2227
|
name: 'RSASSA-PKCS1-v1_5',
|
|
2190
2228
|
modulusLength: 2048,
|
|
@@ -2271,7 +2309,7 @@ class AuthPersistedContext {
|
|
|
2271
2309
|
}));
|
|
2272
2310
|
}
|
|
2273
2311
|
save() {
|
|
2274
|
-
return __awaiter
|
|
2312
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2275
2313
|
const db = wm$1.get(this);
|
|
2276
2314
|
db.table("$logins").put(this);
|
|
2277
2315
|
});
|
|
@@ -2292,7 +2330,7 @@ function otpFetchTokenCallback(db) {
|
|
|
2292
2330
|
const { userInteraction } = db.cloud;
|
|
2293
2331
|
return function otpAuthenticate({ public_key, hints }) {
|
|
2294
2332
|
var _a;
|
|
2295
|
-
return __awaiter
|
|
2333
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2296
2334
|
let tokenRequest;
|
|
2297
2335
|
const url = (_a = db.cloud.options) === null || _a === void 0 ? void 0 : _a.databaseUrl;
|
|
2298
2336
|
if (!url)
|
|
@@ -2394,11 +2432,11 @@ function otpFetchTokenCallback(db) {
|
|
|
2394
2432
|
* @param newUser
|
|
2395
2433
|
*/
|
|
2396
2434
|
function setCurrentUser(db, user) {
|
|
2397
|
-
return __awaiter
|
|
2435
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2398
2436
|
if (user.userId === db.cloud.currentUserId)
|
|
2399
2437
|
return; // Already this user.
|
|
2400
2438
|
const $logins = db.table('$logins');
|
|
2401
|
-
yield db.transaction('rw', $logins, (tx) => __awaiter
|
|
2439
|
+
yield db.transaction('rw', $logins, (tx) => __awaiter(this, void 0, void 0, function* () {
|
|
2402
2440
|
const existingLogins = yield $logins.toArray();
|
|
2403
2441
|
yield Promise.all(existingLogins
|
|
2404
2442
|
.filter((login) => login.userId !== user.userId && login.isLoggedIn)
|
|
@@ -2449,7 +2487,7 @@ function setCurrentUser(db, user) {
|
|
|
2449
2487
|
}
|
|
2450
2488
|
|
|
2451
2489
|
function login(db, hints) {
|
|
2452
|
-
return __awaiter
|
|
2490
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2453
2491
|
const currentUser = yield db.getCurrentUser();
|
|
2454
2492
|
if (currentUser.isLoggedIn) {
|
|
2455
2493
|
if (hints) {
|
|
@@ -2582,7 +2620,7 @@ class BroadcastedAndLocalEvent extends Observable$1 {
|
|
|
2582
2620
|
}
|
|
2583
2621
|
|
|
2584
2622
|
function computeRealmSetHash({ realms, inviteRealms, }) {
|
|
2585
|
-
return __awaiter
|
|
2623
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2586
2624
|
const data = JSON.stringify([
|
|
2587
2625
|
...realms.map((realmId) => ({ realmId, accepted: true })),
|
|
2588
2626
|
...inviteRealms.map((realmId) => ({ realmId, accepted: false })),
|
|
@@ -2619,8 +2657,8 @@ function flatten(a) {
|
|
|
2619
2657
|
}
|
|
2620
2658
|
|
|
2621
2659
|
function listClientChanges(mutationTables, db, { since = {}, limit = Infinity } = {}) {
|
|
2622
|
-
return __awaiter
|
|
2623
|
-
const allMutsOnTables = yield Promise.all(mutationTables.map((mutationTable) => __awaiter
|
|
2660
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2661
|
+
const allMutsOnTables = yield Promise.all(mutationTables.map((mutationTable) => __awaiter(this, void 0, void 0, function* () {
|
|
2624
2662
|
const tableName = getTableFromMutationTable(mutationTable.name);
|
|
2625
2663
|
const lastRevision = since[tableName];
|
|
2626
2664
|
let query = lastRevision
|
|
@@ -2672,28 +2710,28 @@ function randomString(bytes) {
|
|
|
2672
2710
|
}
|
|
2673
2711
|
|
|
2674
2712
|
function listSyncifiedChanges(tablesToSyncify, currentUser, schema, alreadySyncedRealms) {
|
|
2675
|
-
return __awaiter
|
|
2713
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2676
2714
|
const txid = `upload-${randomString(8)}`;
|
|
2677
2715
|
if (currentUser.isLoggedIn) {
|
|
2678
2716
|
if (tablesToSyncify.length > 0) {
|
|
2679
2717
|
const ignoredRealms = new Set(alreadySyncedRealms || []);
|
|
2680
|
-
const upserts = yield Promise.all(tablesToSyncify.map((table) => __awaiter
|
|
2718
|
+
const upserts = yield Promise.all(tablesToSyncify.map((table) => __awaiter(this, void 0, void 0, function* () {
|
|
2681
2719
|
const { extractKey } = table.core.schema.primaryKey;
|
|
2682
2720
|
if (!extractKey)
|
|
2683
2721
|
return { table: table.name, muts: [] }; // Outbound tables are not synced.
|
|
2684
2722
|
const dexieCloudTableSchema = schema[table.name];
|
|
2685
2723
|
const query = (dexieCloudTableSchema === null || dexieCloudTableSchema === void 0 ? void 0 : dexieCloudTableSchema.generatedGlobalId)
|
|
2686
2724
|
? table.filter((item) => {
|
|
2687
|
-
|
|
2725
|
+
extractKey(item);
|
|
2688
2726
|
return (!ignoredRealms.has(item.realmId || '') &&
|
|
2689
2727
|
//(id[0] !== '#' || !!item.$ts) && // Private obj need no sync if not changed
|
|
2690
|
-
|
|
2728
|
+
isValidAtID(extractKey(item), dexieCloudTableSchema === null || dexieCloudTableSchema === void 0 ? void 0 : dexieCloudTableSchema.idPrefix));
|
|
2691
2729
|
})
|
|
2692
2730
|
: table.filter((item) => {
|
|
2693
|
-
extractKey(item);
|
|
2731
|
+
const id = extractKey(item);
|
|
2694
2732
|
return (!ignoredRealms.has(item.realmId || '') &&
|
|
2695
2733
|
//(id[0] !== '#' || !!item.$ts) && // Private obj need no sync if not changed
|
|
2696
|
-
|
|
2734
|
+
isValidSyncableID(id));
|
|
2697
2735
|
});
|
|
2698
2736
|
const unsyncedObjects = yield query.toArray();
|
|
2699
2737
|
if (unsyncedObjects.length > 0) {
|
|
@@ -3312,7 +3350,7 @@ function cloneChange(change, rewriteValues) {
|
|
|
3312
3350
|
|
|
3313
3351
|
//import {BisonWebStreamReader} from "dreambase-library/dist/typeson-simplified/BisonWebStreamReader";
|
|
3314
3352
|
function syncWithServer(changes, syncState, baseRevs, db, databaseUrl, schema, clientIdentity, currentUser) {
|
|
3315
|
-
return __awaiter
|
|
3353
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3316
3354
|
//
|
|
3317
3355
|
// Push changes to server using fetch
|
|
3318
3356
|
//
|
|
@@ -3368,7 +3406,7 @@ function syncWithServer(changes, syncState, baseRevs, db, databaseUrl, schema, c
|
|
|
3368
3406
|
}
|
|
3369
3407
|
|
|
3370
3408
|
function modifyLocalObjectsWithNewUserId(syncifiedTables, currentUser, alreadySyncedRealms) {
|
|
3371
|
-
return __awaiter
|
|
3409
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3372
3410
|
const ignoredRealms = new Set(alreadySyncedRealms || []);
|
|
3373
3411
|
for (const table of syncifiedTables) {
|
|
3374
3412
|
if (table.name === "members") {
|
|
@@ -3418,7 +3456,7 @@ self.addEventListener('online', () => isOnline = true);
|
|
|
3418
3456
|
self.addEventListener('offline', () => isOnline = false);
|
|
3419
3457
|
|
|
3420
3458
|
function updateBaseRevs(db, schema, latestRevisions, serverRev) {
|
|
3421
|
-
return __awaiter
|
|
3459
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3422
3460
|
yield db.$baseRevs.bulkPut(Object.keys(schema)
|
|
3423
3461
|
.filter((table) => schema[table].markedForSync)
|
|
3424
3462
|
.map((tableName) => {
|
|
@@ -3441,7 +3479,7 @@ function getLatestRevisionsPerTable(clientChangeSet, lastRevisions = {}) {
|
|
|
3441
3479
|
}
|
|
3442
3480
|
|
|
3443
3481
|
function bulkUpdate(table, keys, changeSpecs) {
|
|
3444
|
-
return __awaiter
|
|
3482
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3445
3483
|
const objs = yield table.bulkGet(keys);
|
|
3446
3484
|
const resultKeys = [];
|
|
3447
3485
|
const resultObjs = [];
|
|
@@ -3469,7 +3507,7 @@ function bulkUpdate(table, keys, changeSpecs) {
|
|
|
3469
3507
|
}
|
|
3470
3508
|
|
|
3471
3509
|
function applyServerChanges(changes, db) {
|
|
3472
|
-
return __awaiter
|
|
3510
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3473
3511
|
console.debug('Applying server changes', changes, Dexie.currentTransaction);
|
|
3474
3512
|
for (const { table: tableName, muts } of changes) {
|
|
3475
3513
|
const table = db.table(tableName);
|
|
@@ -3555,7 +3593,7 @@ function sync(db, options, schema, syncOptions) {
|
|
|
3555
3593
|
});
|
|
3556
3594
|
}
|
|
3557
3595
|
})
|
|
3558
|
-
.catch((error) => __awaiter
|
|
3596
|
+
.catch((error) => __awaiter(this, void 0, void 0, function* () {
|
|
3559
3597
|
if (syncOptions === null || syncOptions === void 0 ? void 0 : syncOptions.justCheckIfNeeded)
|
|
3560
3598
|
return Promise.reject(error); // Just rethrow.
|
|
3561
3599
|
console.debug('Error from _sync', {
|
|
@@ -3592,7 +3630,7 @@ function _sync(db, options, schema, { isInitialSync, cancelToken, justCheckIfNee
|
|
|
3592
3630
|
isInitialSync: false,
|
|
3593
3631
|
}) {
|
|
3594
3632
|
var _a;
|
|
3595
|
-
return __awaiter
|
|
3633
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3596
3634
|
if (!justCheckIfNeeded) {
|
|
3597
3635
|
console.debug('SYNC STARTED', { isInitialSync, purpose });
|
|
3598
3636
|
}
|
|
@@ -3609,7 +3647,8 @@ function _sync(db, options, schema, { isInitialSync, cancelToken, justCheckIfNee
|
|
|
3609
3647
|
// Prepare for syncification by modifying locally unauthorized objects:
|
|
3610
3648
|
//
|
|
3611
3649
|
const persistedSyncState = yield db.getPersistedSyncState();
|
|
3612
|
-
const
|
|
3650
|
+
const readyForSyncification = !isInitialSync && currentUser.isLoggedIn;
|
|
3651
|
+
const tablesToSyncify = readyForSyncification
|
|
3613
3652
|
? getTablesToSyncify(db, persistedSyncState)
|
|
3614
3653
|
: [];
|
|
3615
3654
|
throwIfCancelled(cancelToken);
|
|
@@ -3618,7 +3657,7 @@ function _sync(db, options, schema, { isInitialSync, cancelToken, justCheckIfNee
|
|
|
3618
3657
|
if (justCheckIfNeeded)
|
|
3619
3658
|
return true;
|
|
3620
3659
|
//console.debug('sync doSyncify is true');
|
|
3621
|
-
yield db.transaction('rw', tablesToSyncify, (tx) => __awaiter
|
|
3660
|
+
yield db.transaction('rw', tablesToSyncify, (tx) => __awaiter(this, void 0, void 0, function* () {
|
|
3622
3661
|
// @ts-ignore
|
|
3623
3662
|
tx.idbtrans.disableChangeTracking = true;
|
|
3624
3663
|
// @ts-ignore
|
|
@@ -3630,7 +3669,7 @@ function _sync(db, options, schema, { isInitialSync, cancelToken, justCheckIfNee
|
|
|
3630
3669
|
//
|
|
3631
3670
|
// List changes to sync
|
|
3632
3671
|
//
|
|
3633
|
-
const [clientChangeSet, syncState, baseRevs] = yield db.transaction('r', db.tables, () => __awaiter
|
|
3672
|
+
const [clientChangeSet, syncState, baseRevs] = yield db.transaction('r', db.tables, () => __awaiter(this, void 0, void 0, function* () {
|
|
3634
3673
|
const syncState = yield db.getPersistedSyncState();
|
|
3635
3674
|
const baseRevs = yield db.$baseRevs.toArray();
|
|
3636
3675
|
let clientChanges = yield listClientChanges(mutationTables);
|
|
@@ -3667,7 +3706,7 @@ function _sync(db, options, schema, { isInitialSync, cancelToken, justCheckIfNee
|
|
|
3667
3706
|
//
|
|
3668
3707
|
// Apply changes locally and clear old change entries:
|
|
3669
3708
|
//
|
|
3670
|
-
const done = yield db.transaction('rw', db.tables, (tx) => __awaiter
|
|
3709
|
+
const done = yield db.transaction('rw', db.tables, (tx) => __awaiter(this, void 0, void 0, function* () {
|
|
3671
3710
|
// @ts-ignore
|
|
3672
3711
|
tx.idbtrans.disableChangeTracking = true;
|
|
3673
3712
|
// @ts-ignore
|
|
@@ -3741,9 +3780,11 @@ function _sync(db, options, schema, { isInitialSync, cancelToken, justCheckIfNee
|
|
|
3741
3780
|
inviteRealms: [],
|
|
3742
3781
|
clientIdentity,
|
|
3743
3782
|
};
|
|
3744
|
-
|
|
3745
|
-
.
|
|
3746
|
-
|
|
3783
|
+
if (readyForSyncification) {
|
|
3784
|
+
newSyncState.syncedTables = tablesToSync
|
|
3785
|
+
.map((tbl) => tbl.name)
|
|
3786
|
+
.concat(tablesToSyncify.map((tbl) => tbl.name));
|
|
3787
|
+
}
|
|
3747
3788
|
newSyncState.latestRevisions = latestRevisions;
|
|
3748
3789
|
newSyncState.remoteDbId = res.dbId;
|
|
3749
3790
|
newSyncState.initiallySynced = true;
|
|
@@ -3772,7 +3813,7 @@ function _sync(db, options, schema, { isInitialSync, cancelToken, justCheckIfNee
|
|
|
3772
3813
|
});
|
|
3773
3814
|
}
|
|
3774
3815
|
function deleteObjectsFromRemovedRealms(db, res, prevState) {
|
|
3775
|
-
return __awaiter
|
|
3816
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3776
3817
|
const deletedRealms = new Set();
|
|
3777
3818
|
const rejectedRealms = new Set();
|
|
3778
3819
|
const previousRealmSet = prevState ? prevState.realms : [];
|
|
@@ -3836,7 +3877,7 @@ function MessagesFromServerConsumer(db) {
|
|
|
3836
3877
|
let isWorking = false;
|
|
3837
3878
|
let loopWarning = 0;
|
|
3838
3879
|
let loopDetection = [0, 0, 0, 0, 0, 0, 0, 0, 0, Date.now()];
|
|
3839
|
-
event.subscribe(() => __awaiter
|
|
3880
|
+
event.subscribe(() => __awaiter(this, void 0, void 0, function* () {
|
|
3840
3881
|
if (isWorking)
|
|
3841
3882
|
return;
|
|
3842
3883
|
if (queue.length > 0) {
|
|
@@ -3875,7 +3916,7 @@ function MessagesFromServerConsumer(db) {
|
|
|
3875
3916
|
}
|
|
3876
3917
|
function consumeQueue() {
|
|
3877
3918
|
var _a, _b, _c;
|
|
3878
|
-
return __awaiter
|
|
3919
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3879
3920
|
while (queue.length > 0) {
|
|
3880
3921
|
const msg = queue.shift();
|
|
3881
3922
|
try {
|
|
@@ -3932,7 +3973,7 @@ function MessagesFromServerConsumer(db) {
|
|
|
3932
3973
|
triggerSync(db, 'pull');
|
|
3933
3974
|
break;
|
|
3934
3975
|
}
|
|
3935
|
-
yield db.transaction('rw', db.dx.tables, (tx) => __awaiter
|
|
3976
|
+
yield db.transaction('rw', db.dx.tables, (tx) => __awaiter(this, void 0, void 0, function* () {
|
|
3936
3977
|
// @ts-ignore
|
|
3937
3978
|
tx.idbtrans.disableChangeTracking = true;
|
|
3938
3979
|
// @ts-ignore
|
|
@@ -4693,7 +4734,7 @@ function overrideParseStoresSpec(origFunc, dexie) {
|
|
|
4693
4734
|
}
|
|
4694
4735
|
|
|
4695
4736
|
function performInitialSync(db, cloudOptions, cloudSchema) {
|
|
4696
|
-
return __awaiter
|
|
4737
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4697
4738
|
console.debug('Performing initial sync');
|
|
4698
4739
|
yield sync(db, cloudOptions, cloudSchema, { isInitialSync: true });
|
|
4699
4740
|
console.debug('Done initial sync');
|
|
@@ -4836,7 +4877,7 @@ class WSConnection extends Subscription$1 {
|
|
|
4836
4877
|
.then(() => (this.reconnecting = false)); // finally()
|
|
4837
4878
|
}
|
|
4838
4879
|
connect() {
|
|
4839
|
-
return __awaiter
|
|
4880
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4840
4881
|
this.lastServerActivity = new Date();
|
|
4841
4882
|
if (this.pauseUntil && this.pauseUntil > new Date()) {
|
|
4842
4883
|
console.debug('WS not reconnecting just yet', {
|
|
@@ -4859,7 +4900,7 @@ class WSConnection extends Subscription$1 {
|
|
|
4859
4900
|
return;
|
|
4860
4901
|
}
|
|
4861
4902
|
this.webSocketStatus.next('connecting');
|
|
4862
|
-
this.pinger = setInterval(() => __awaiter
|
|
4903
|
+
this.pinger = setInterval(() => __awaiter(this, void 0, void 0, function* () {
|
|
4863
4904
|
if (this.closed) {
|
|
4864
4905
|
console.debug('pinger check', this.id, 'CLOSED.');
|
|
4865
4906
|
this.teardown();
|
|
@@ -4985,7 +5026,7 @@ function sleep(ms) {
|
|
|
4985
5026
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
4986
5027
|
}
|
|
4987
5028
|
function waitAndReconnectWhenUserDoesSomething(error) {
|
|
4988
|
-
return __awaiter
|
|
5029
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4989
5030
|
console.error(`WebSocket observable: error but revive when user does some active thing...`, error);
|
|
4990
5031
|
// Sleep some seconds...
|
|
4991
5032
|
yield sleep(3000);
|
|
@@ -5011,7 +5052,7 @@ function connectWebSocket(db) {
|
|
|
5011
5052
|
function createObservable() {
|
|
5012
5053
|
return db.cloud.persistedSyncState.pipe(filter((syncState) => syncState === null || syncState === void 0 ? void 0 : syncState.serverRevision), // Don't connect before there's no initial sync performed.
|
|
5013
5054
|
take(1), // Don't continue waking up whenever syncState change
|
|
5014
|
-
switchMap((syncState) => db.cloud.currentUser.pipe(map((userLogin) => [userLogin, syncState]))), switchMap(([userLogin, syncState]) => userIsReallyActive.pipe(map((isActive) => [isActive ? userLogin : null, syncState]))), switchMap(([userLogin, syncState]) => __awaiter
|
|
5055
|
+
switchMap((syncState) => db.cloud.currentUser.pipe(map((userLogin) => [userLogin, syncState]))), switchMap(([userLogin, syncState]) => userIsReallyActive.pipe(map((isActive) => [isActive ? userLogin : null, syncState]))), switchMap(([userLogin, syncState]) => __awaiter(this, void 0, void 0, function* () { return [userLogin, yield computeRealmSetHash(syncState)]; })), switchMap(([userLogin, realmSetHash]) =>
|
|
5015
5056
|
// Let server end query changes from last entry of same client-ID and forward.
|
|
5016
5057
|
// If no new entries, server won't bother the client. If new entries, server sends only those
|
|
5017
5058
|
// and the baseRev of the last from same client-ID.
|
|
@@ -5020,7 +5061,7 @@ function connectWebSocket(db) {
|
|
|
5020
5061
|
: from$1([])), catchError((error) => {
|
|
5021
5062
|
if ((error === null || error === void 0 ? void 0 : error.name) === 'TokenExpiredError') {
|
|
5022
5063
|
console.debug('WebSocket observable: Token expired. Refreshing token...');
|
|
5023
|
-
return of(true).pipe(switchMap(() => __awaiter
|
|
5064
|
+
return of(true).pipe(switchMap(() => __awaiter(this, void 0, void 0, function* () {
|
|
5024
5065
|
// Refresh access token
|
|
5025
5066
|
const user = yield db.getCurrentUser();
|
|
5026
5067
|
const refreshedLogin = yield refreshAccessToken(db.cloud.options.databaseUrl, user);
|
|
@@ -5053,7 +5094,7 @@ function connectWebSocket(db) {
|
|
|
5053
5094
|
|
|
5054
5095
|
function isSyncNeeded(db) {
|
|
5055
5096
|
var _a;
|
|
5056
|
-
return __awaiter
|
|
5097
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
5057
5098
|
return ((_a = db.cloud.options) === null || _a === void 0 ? void 0 : _a.databaseUrl) && db.cloud.schema
|
|
5058
5099
|
? yield sync(db, db.cloud.options, db.cloud.schema, { justCheckIfNeeded: true })
|
|
5059
5100
|
: false;
|
|
@@ -5068,15 +5109,15 @@ const myId = randomString(16);
|
|
|
5068
5109
|
const GUARDED_JOB_HEARTBEAT = 1 * SECONDS;
|
|
5069
5110
|
const GUARDED_JOB_TIMEOUT = 1 * MINUTES;
|
|
5070
5111
|
function performGuardedJob(db, jobName, jobsTableName, job, { awaitRemoteJob } = {}) {
|
|
5071
|
-
return __awaiter
|
|
5112
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
5072
5113
|
// Start working.
|
|
5073
5114
|
//
|
|
5074
5115
|
// Check if someone else is working on this already.
|
|
5075
5116
|
//
|
|
5076
5117
|
const jobsTable = db.table(jobsTableName);
|
|
5077
5118
|
function aquireLock() {
|
|
5078
|
-
return __awaiter
|
|
5079
|
-
const gotTheLock = yield db.transaction('rw!', jobsTableName, () => __awaiter
|
|
5119
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
5120
|
+
const gotTheLock = yield db.transaction('rw!', jobsTableName, () => __awaiter(this, void 0, void 0, function* () {
|
|
5080
5121
|
const currentWork = yield jobsTable.get(jobName);
|
|
5081
5122
|
if (!currentWork) {
|
|
5082
5123
|
// No one else is working. Let's record that we are.
|
|
@@ -5142,7 +5183,7 @@ function performGuardedJob(db, jobName, jobsTableName, job, { awaitRemoteJob } =
|
|
|
5142
5183
|
// Stop heartbeat
|
|
5143
5184
|
clearInterval(heartbeat);
|
|
5144
5185
|
// Remove the persisted job state:
|
|
5145
|
-
yield db.transaction('rw!', jobsTableName, () => __awaiter
|
|
5186
|
+
yield db.transaction('rw!', jobsTableName, () => __awaiter(this, void 0, void 0, function* () {
|
|
5146
5187
|
const currentWork = yield jobsTable.get(jobName);
|
|
5147
5188
|
if (currentWork && currentWork.nodeId === myId) {
|
|
5148
5189
|
yield jobsTable.delete(jobName);
|
|
@@ -5202,7 +5243,7 @@ function syncIfPossible(db, cloudOptions, cloudSchema, options) {
|
|
|
5202
5243
|
ongoingSyncs.set(db, { promise, pull: (options === null || options === void 0 ? void 0 : options.purpose) !== 'push' });
|
|
5203
5244
|
return promise;
|
|
5204
5245
|
function _syncIfPossible() {
|
|
5205
|
-
return __awaiter
|
|
5246
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
5206
5247
|
try {
|
|
5207
5248
|
if (db.cloud.isServiceWorkerDB) {
|
|
5208
5249
|
// We are the dedicated sync SW:
|
|
@@ -5314,7 +5355,7 @@ function verifySchema(db) {
|
|
|
5314
5355
|
}
|
|
5315
5356
|
}
|
|
5316
5357
|
|
|
5317
|
-
var n,
|
|
5358
|
+
var n,l$1,u$1,t$1,o$1,f$1={},e$1=[],c$1=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function s$1(n,l){for(var u in l)n[u]=l[u];return n}function a$1(n){var l=n.parentNode;l&&l.removeChild(n);}function h(l,u,i){var t,o,r,f={};for(r in u)"key"==r?t=u[r]:"ref"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),"function"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return v$1(l,f,t,o,null)}function v$1(n,i,t,o,r){var f={type:n,props:i,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++u$1:r};return null==r&&null!=l$1.vnode&&l$1.vnode(f),f}function p$1(n){return n.children}function d$1(n,l){this.props=n,this.context=l;}function _$1(n,l){if(null==l)return n.__?_$1(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return "function"==typeof n.type?_$1(n):null}function k$1(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return k$1(n)}}function b$1(n){(!n.__d&&(n.__d=!0)&&t$1.push(n)&&!g$1.__r++||o$1!==l$1.debounceRendering)&&((o$1=l$1.debounceRendering)||setTimeout)(g$1);}function g$1(){for(var n;g$1.__r=t$1.length;)n=t$1.sort(function(n,l){return n.__v.__b-l.__v.__b}),t$1=[],n.some(function(n){var l,u,i,t,o,r;n.__d&&(o=(t=(l=n).__v).__e,(r=l.__P)&&(u=[],(i=s$1({},t)).__v=t.__v+1,j$1(r,t,i,l.__n,void 0!==r.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?_$1(t):o,t.__h),z$1(u,t),t.__e!=o&&k$1(t)));});}function w$1(n,l,u,i,t,o,r,c,s,a){var h,y,d,k,b,g,w,x=i&&i.__k||e$1,C=x.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(k=u.__k[h]=null==(k=l[h])||"boolean"==typeof k?null:"string"==typeof k||"number"==typeof k||"bigint"==typeof k?v$1(null,k,null,null,k):Array.isArray(k)?v$1(p$1,{children:k},null,null,null):k.__b>0?v$1(k.type,k.props,k.key,null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(d=x[h])||d&&k.key==d.key&&k.type===d.type)x[h]=void 0;else for(y=0;y<C;y++){if((d=x[y])&&k.key==d.key&&k.type===d.type){x[y]=void 0;break}d=null;}j$1(n,k,d=d||f$1,t,o,r,c,s,a),b=k.__e,(y=k.ref)&&d.ref!=y&&(w||(w=[]),d.ref&&w.push(d.ref,null,k),w.push(y,k.__c||b,k)),null!=b?(null==g&&(g=b),"function"==typeof k.type&&k.__k===d.__k?k.__d=s=m$1(k,s,n):s=A(n,k,d,x,b,s),"function"==typeof u.type&&(u.__d=s)):s&&d.__e==s&&s.parentNode!=n&&(s=_$1(d));}for(u.__e=g,h=C;h--;)null!=x[h]&&("function"==typeof u.type&&null!=x[h].__e&&x[h].__e==u.__d&&(u.__d=_$1(i,h+1)),N(x[h],x[h]));if(w)for(h=0;h<w.length;h++)M(w[h],w[++h],w[++h]);}function m$1(n,l,u){for(var i,t=n.__k,o=0;t&&o<t.length;o++)(i=t[o])&&(i.__=n,l="function"==typeof i.type?m$1(i,l,u):A(u,i,i,t,i.__e,l));return l}function A(n,l,u,i,t,o){var r,f,e;if(void 0!==l.__d)r=l.__d,l.__d=void 0;else if(null==u||t!=o||null==t.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(t),r=null;else {for(f=o,e=0;(f=f.nextSibling)&&e<i.length;e+=2)if(f==t)break n;n.insertBefore(t,o),r=o;}return void 0!==r?r:t.nextSibling}function C(n,l,u,i,t){var o;for(o in u)"children"===o||"key"===o||o in l||H(n,o,null,u[o],i);for(o in l)t&&"function"!=typeof l[o]||"children"===o||"key"===o||"value"===o||"checked"===o||u[o]===l[o]||H(n,o,l[o],u[o],i);}function $(n,l,u){"-"===l[0]?n.setProperty(l,u):n[l]=null==u?"":"number"!=typeof u||c$1.test(l)?u:u+"px";}function H(n,l,u,i,t){var o;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else {if("string"==typeof i&&(n.style.cssText=i=""),i)for(l in i)u&&l in u||$(n.style,l,"");if(u)for(l in u)i&&u[l]===i[l]||$(n.style,l,u[l]);}else if("o"===l[0]&&"n"===l[1])o=l!==(l=l.replace(/Capture$/,"")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?i||n.addEventListener(l,o?T:I,o):n.removeEventListener(l,o?T:I,o);else if("dangerouslySetInnerHTML"!==l){if(t)l=l.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("href"!==l&&"list"!==l&&"form"!==l&&"tabIndex"!==l&&"download"!==l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null!=u&&(!1!==u||"a"===l[0]&&"r"===l[1])?n.setAttribute(l,u):n.removeAttribute(l));}}function I(n){this.l[n.type+!1](l$1.event?l$1.event(n):n);}function T(n){this.l[n.type+!0](l$1.event?l$1.event(n):n);}function j$1(n,u,i,t,o,r,f,e,c){var a,h,v,y,_,k,b,g,m,x,A,C,$,H=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(a=l$1.__b)&&a(u);try{n:if("function"==typeof H){if(g=u.props,m=(a=H.contextType)&&t[a.__c],x=a?m?m.props.value:a.__:t,i.__c?b=(h=u.__c=i.__c).__=h.__E:("prototype"in H&&H.prototype.render?u.__c=h=new H(g,x):(u.__c=h=new d$1(g,x),h.constructor=H,h.render=O),m&&m.sub(h),h.props=g,h.state||(h.state={}),h.context=x,h.__n=t,v=h.__d=!0,h.__h=[]),null==h.__s&&(h.__s=h.state),null!=H.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=s$1({},h.__s)),s$1(h.__s,H.getDerivedStateFromProps(g,h.__s))),y=h.props,_=h.state,v)null==H.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else {if(null==H.getDerivedStateFromProps&&g!==y&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(g,x),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(g,h.__s,x)||u.__v===i.__v){h.props=g,h.state=h.__s,u.__v!==i.__v&&(h.__d=!1),h.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u);}),h.__h.length&&f.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(g,h.__s,x),null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(y,_,k);});}if(h.context=x,h.props=g,h.__v=u,h.__P=n,A=l$1.__r,C=0,"prototype"in H&&H.prototype.render)h.state=h.__s,h.__d=!1,A&&A(u),a=h.render(h.props,h.state,h.context);else do{h.__d=!1,A&&A(u),a=h.render(h.props,h.state,h.context),h.state=h.__s;}while(h.__d&&++C<25);h.state=h.__s,null!=h.getChildContext&&(t=s$1(s$1({},t),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(k=h.getSnapshotBeforeUpdate(y,_)),$=null!=a&&a.type===p$1&&null==a.key?a.props.children:a,w$1(n,Array.isArray($)?$:[$],u,i,t,o,r,f,e,c),h.base=u.__e,u.__h=null,h.__h.length&&f.push(h),b&&(h.__E=h.__=null),h.__e=!1;}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=L(i.__e,u,i,t,o,r,f,c);(a=l$1.diffed)&&a(u);}catch(n){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),l$1.__e(n,u,i);}}function z$1(n,u){l$1.__c&&l$1.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u);});}catch(n){l$1.__e(n,u.__v);}});}function L(l,u,i,t,o,r,e,c){var s,h,v,y=i.props,p=u.props,d=u.type,k=0;if("svg"===d&&(o=!0),null!=r)for(;k<r.length;k++)if((s=r[k])&&"setAttribute"in s==!!d&&(d?s.localName===d:3===s.nodeType)){l=s,r[k]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=o?document.createElementNS("http://www.w3.org/2000/svg",d):document.createElement(d,p.is&&p),r=null,c=!1;}if(null===d)y===p||c&&l.data===p||(l.data=p);else {if(r=r&&n.call(l.childNodes),h=(y=i.props||f$1).dangerouslySetInnerHTML,v=p.dangerouslySetInnerHTML,!c){if(null!=r)for(y={},k=0;k<l.attributes.length;k++)y[l.attributes[k].name]=l.attributes[k].value;(v||h)&&(v&&(h&&v.__html==h.__html||v.__html===l.innerHTML)||(l.innerHTML=v&&v.__html||""));}if(C(l,p,y,o,c),v)u.__k=[];else if(k=u.props.children,w$1(l,Array.isArray(k)?k:[k],u,i,t,o&&"foreignObject"!==d,r,e,r?r[0]:i.__k&&_$1(i,0),c),null!=r)for(k=r.length;k--;)null!=r[k]&&a$1(r[k]);c||("value"in p&&void 0!==(k=p.value)&&(k!==l.value||"progress"===d&&!k||"option"===d&&k!==y.value)&&H(l,"value",k,y.value,!1),"checked"in p&&void 0!==(k=p.checked)&&k!==l.checked&&H(l,"checked",k,y.checked,!1));}return l}function M(n,u,i){try{"function"==typeof n?n(u):n.current=u;}catch(n){l$1.__e(n,i);}}function N(n,u,i){var t,o;if(l$1.unmount&&l$1.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||M(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount();}catch(n){l$1.__e(n,u);}t.base=t.__P=null;}if(t=n.__k)for(o=0;o<t.length;o++)t[o]&&N(t[o],u,"function"!=typeof n.type);i||null==n.__e||a$1(n.__e),n.__e=n.__d=void 0;}function O(n,l,u){return this.constructor(n,u)}function P(u,i,t){var o,r,e;l$1.__&&l$1.__(u,i),r=(o="function"==typeof t)?null:t&&t.__k||i.__k,e=[],j$1(i,u=(!o&&t||i).__k=h(p$1,null,[u]),r||f$1,f$1,void 0!==i.ownerSVGElement,!o&&t?[t]:r?null:i.firstChild?n.call(i.childNodes):null,e,!o&&t?t:r?r.__e:i.firstChild,o),z$1(e,u);}n=e$1.slice,l$1={__e:function(n,l,u,i){for(var t,o,r;l=l.__;)if((t=l.__c)&&!t.__)try{if((o=t.constructor)&&null!=o.getDerivedStateFromError&&(t.setState(o.getDerivedStateFromError(n)),r=t.__d),null!=t.componentDidCatch&&(t.componentDidCatch(n,i||{}),r=t.__d),r)return t.__E=t}catch(l){n=l;}throw n}},u$1=0,d$1.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=s$1({},this.state),"function"==typeof n&&(n=n(s$1({},u),this.props)),n&&s$1(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),b$1(this));},d$1.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),b$1(this));},d$1.prototype.render=p$1,t$1=[],g$1.__r=0;
|
|
5318
5359
|
|
|
5319
5360
|
const Styles = {
|
|
5320
5361
|
Error: {
|
|
@@ -5379,35 +5420,35 @@ const Styles = {
|
|
|
5379
5420
|
};
|
|
5380
5421
|
|
|
5381
5422
|
function Dialog({ children, className }) {
|
|
5382
|
-
return (
|
|
5383
|
-
|
|
5384
|
-
|
|
5385
|
-
|
|
5423
|
+
return (h("div", { className: className },
|
|
5424
|
+
h("div", { style: Styles.Darken }),
|
|
5425
|
+
h("div", { style: Styles.DialogOuter },
|
|
5426
|
+
h("div", { style: Styles.DialogInner }, children))));
|
|
5386
5427
|
}
|
|
5387
5428
|
|
|
5388
|
-
var t,u,
|
|
5429
|
+
var t,r,u,i,o=0,c=[],f=[],e=l$1.__b,a=l$1.__r,v=l$1.diffed,l=l$1.__c,m=l$1.unmount;function d(t,u){l$1.__h&&l$1.__h(r,t,o||u),o=0;var i=r.__H||(r.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({__V:f}),i.__[t]}function p(n){return o=1,y(z,n)}function y(n,u,i){var o=d(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):z(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}));}],o.__c=r,!r.u)){r.u=!0;var c=r.shouldComponentUpdate;r.shouldComponentUpdate=function(n,t,r){if(!o.__c.__H)return !0;var u=o.__c.__H.__.filter(function(n){return n.__c});if(u.every(function(n){return !n.__N}))return !c||c.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0);}}),!!i&&(!c||c.call(this,n,t,r))};}return o.__N||o.__}function s(u,i){var o=d(t++,4);!l$1.__s&&w(o.__H,i)&&(o.__=u,o.i=i,r.__h.push(o));}function _(n){return o=5,F(function(){return {current:n}},[])}function F(n,r){var u=d(t++,7);return w(u.__H,r)?(u.__V=n(),u.i=r,u.__h=n,u.__V):u.__}function b(){for(var t;t=c.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(j),t.__H.__h.forEach(k),t.__H.__h=[];}catch(r){t.__H.__h=[],l$1.__e(r,t.__v);}}l$1.__b=function(n){r=null,e&&e(n);},l$1.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.__V=f,n.__N=n.i=void 0;})):(i.__h.forEach(j),i.__h.forEach(k),i.__h=[])),u=r;},l$1.diffed=function(t){v&&v(t);var o=t.__c;o&&o.__H&&(o.__H.__h.length&&(1!==c.push(o)&&i===l$1.requestAnimationFrame||((i=l$1.requestAnimationFrame)||function(n){var t,r=function(){clearTimeout(u),g&&cancelAnimationFrame(t),setTimeout(n);},u=setTimeout(r,100);g&&(t=requestAnimationFrame(r));})(b)),o.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.__V!==f&&(n.__=n.__V),n.i=void 0,n.__V=f;})),u=r=null;},l$1.__c=function(t,r){r.some(function(t){try{t.__h.forEach(j),t.__h=t.__h.filter(function(n){return !n.__||k(n)});}catch(u){r.some(function(n){n.__h&&(n.__h=[]);}),r=[],l$1.__e(u,t.__v);}}),l&&l(t,r);},l$1.unmount=function(t){m&&m(t);var r,u=t.__c;u&&u.__H&&(u.__H.__.forEach(function(n){try{j(n);}catch(n){r=n;}}),r&&l$1.__e(r,u.__v));};var g="function"==typeof requestAnimationFrame;function j(n){var t=r,u=n.__c;"function"==typeof u&&(n.__c=void 0,u()),r=t;}function k(n){var t=r;n.__c=n.__(),r=t;}function w(n,t){return !n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function z(n,t){return "function"==typeof t?t(n):t}
|
|
5389
5430
|
|
|
5390
5431
|
function resolveText({ message, messageCode, messageParams }) {
|
|
5391
5432
|
return message.replace(/\{\w+\}/ig, n => messageParams[n.substr(1, n.length - 2)]);
|
|
5392
5433
|
}
|
|
5393
5434
|
|
|
5394
5435
|
function LoginDialog({ title, alerts, fields, onCancel, onSubmit, }) {
|
|
5395
|
-
const [params, setParams] =
|
|
5396
|
-
const firstFieldRef =
|
|
5397
|
-
|
|
5398
|
-
return (
|
|
5399
|
-
|
|
5400
|
-
|
|
5401
|
-
alerts.map((alert) => (
|
|
5402
|
-
|
|
5436
|
+
const [params, setParams] = p({});
|
|
5437
|
+
const firstFieldRef = _(null);
|
|
5438
|
+
s(() => { var _a; return (_a = firstFieldRef.current) === null || _a === void 0 ? void 0 : _a.focus(); }, []);
|
|
5439
|
+
return (h(Dialog, { className: "dxc-login-dlg" },
|
|
5440
|
+
h(p$1, null,
|
|
5441
|
+
h("h3", { style: Styles.WindowHeader }, title),
|
|
5442
|
+
alerts.map((alert) => (h("p", { style: Styles.Alert[alert.type] }, resolveText(alert)))),
|
|
5443
|
+
h("form", { onSubmit: ev => {
|
|
5403
5444
|
ev.preventDefault();
|
|
5404
5445
|
onSubmit(params);
|
|
5405
|
-
} }, Object.entries(fields).map(([fieldName, { type, label, placeholder }], idx) => (
|
|
5446
|
+
} }, Object.entries(fields).map(([fieldName, { type, label, placeholder }], idx) => (h("label", { style: Styles.Label },
|
|
5406
5447
|
label ? `${label}: ` : '',
|
|
5407
|
-
|
|
5408
|
-
|
|
5409
|
-
|
|
5410
|
-
|
|
5448
|
+
h("input", { ref: idx === 0 ? firstFieldRef : undefined, type: type, name: fieldName, autoComplete: "on", style: Styles.Input, autoFocus: true, placeholder: placeholder, value: params[fieldName] || '', onInput: (ev) => { var _a; return setParams(Object.assign(Object.assign({}, params), { [fieldName]: valueTransformer(type, (_a = ev.target) === null || _a === void 0 ? void 0 : _a['value']) })); } })))))),
|
|
5449
|
+
h("div", { style: Styles.ButtonsDiv },
|
|
5450
|
+
h("button", { type: "submit", style: Styles.Button, onClick: () => onSubmit(params) }, "Submit"),
|
|
5451
|
+
h("button", { style: Styles.Button, onClick: onCancel }, "Cancel"))));
|
|
5411
5452
|
}
|
|
5412
5453
|
function valueTransformer(type, value) {
|
|
5413
5454
|
switch (type) {
|
|
@@ -5417,7 +5458,7 @@ function valueTransformer(type, value) {
|
|
|
5417
5458
|
}
|
|
5418
5459
|
}
|
|
5419
5460
|
|
|
5420
|
-
class LoginGui extends
|
|
5461
|
+
class LoginGui extends d$1 {
|
|
5421
5462
|
constructor(props) {
|
|
5422
5463
|
super(props);
|
|
5423
5464
|
this.observer = (userInteraction) => this.setState({ userInteraction });
|
|
@@ -5436,17 +5477,30 @@ class LoginGui extends p$1 {
|
|
|
5436
5477
|
if (!userInteraction)
|
|
5437
5478
|
return null;
|
|
5438
5479
|
//if (props.db.cloud.userInteraction.observers.length > 1) return null; // Someone else subscribes.
|
|
5439
|
-
return
|
|
5480
|
+
return h(LoginDialog, Object.assign({}, userInteraction));
|
|
5440
5481
|
}
|
|
5441
5482
|
}
|
|
5442
5483
|
function setupDefaultGUI(db) {
|
|
5443
|
-
const el = document.createElement('div');
|
|
5444
|
-
document.body.appendChild(el);
|
|
5445
|
-
N(a$1(LoginGui, { db: db.vip }), el);
|
|
5446
5484
|
let closed = false;
|
|
5485
|
+
const el = document.createElement('div');
|
|
5486
|
+
if (document.body) {
|
|
5487
|
+
document.body.appendChild(el);
|
|
5488
|
+
P(h(LoginGui, { db: db.vip }), el);
|
|
5489
|
+
}
|
|
5490
|
+
else {
|
|
5491
|
+
addEventListener('DOMContentLoaded', () => {
|
|
5492
|
+
if (!closed) {
|
|
5493
|
+
document.body.appendChild(el);
|
|
5494
|
+
P(h(LoginGui, { db: db.vip }), el);
|
|
5495
|
+
}
|
|
5496
|
+
});
|
|
5497
|
+
}
|
|
5447
5498
|
return {
|
|
5448
5499
|
unsubscribe() {
|
|
5449
|
-
|
|
5500
|
+
try {
|
|
5501
|
+
el.remove();
|
|
5502
|
+
}
|
|
5503
|
+
catch (_a) { }
|
|
5450
5504
|
closed = true;
|
|
5451
5505
|
},
|
|
5452
5506
|
get closed() {
|
|
@@ -5812,12 +5866,12 @@ const getInvitesObservable = associate((db) => {
|
|
|
5812
5866
|
return Object.values(membersById)
|
|
5813
5867
|
.filter((invite) => !invite.accepted && !invite.rejected)
|
|
5814
5868
|
.map((invite) => (Object.assign(Object.assign({}, invite), { accept() {
|
|
5815
|
-
return __awaiter
|
|
5869
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
5816
5870
|
yield db.members.update(invite.id, { accepted: new Date() });
|
|
5817
5871
|
});
|
|
5818
5872
|
},
|
|
5819
5873
|
reject() {
|
|
5820
|
-
return __awaiter
|
|
5874
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
5821
5875
|
yield db.members.update(invite.id, { rejected: new Date() });
|
|
5822
5876
|
});
|
|
5823
5877
|
} })));
|
|
@@ -5844,7 +5898,7 @@ function dexieCloud(dexie) {
|
|
|
5844
5898
|
let configuredProgramatically = false;
|
|
5845
5899
|
// local sync worker - used when there's no service worker.
|
|
5846
5900
|
let localSyncWorker = null;
|
|
5847
|
-
dexie.on('ready', (dexie) => __awaiter
|
|
5901
|
+
dexie.on('ready', (dexie) => __awaiter(this, void 0, void 0, function* () {
|
|
5848
5902
|
try {
|
|
5849
5903
|
yield onDbReady(dexie);
|
|
5850
5904
|
}
|
|
@@ -5868,7 +5922,7 @@ function dexieCloud(dexie) {
|
|
|
5868
5922
|
currentUserEmitter.next(UNAUTHORIZED_USER);
|
|
5869
5923
|
});
|
|
5870
5924
|
dexie.cloud = {
|
|
5871
|
-
version: '4.0.0-beta.
|
|
5925
|
+
version: '4.0.0-beta.24',
|
|
5872
5926
|
options: Object.assign({}, DEFAULT_OPTIONS),
|
|
5873
5927
|
schema: null,
|
|
5874
5928
|
get currentUserId() {
|
|
@@ -5883,7 +5937,7 @@ function dexieCloud(dexie) {
|
|
|
5883
5937
|
userInteraction: new BehaviorSubject(undefined),
|
|
5884
5938
|
webSocketStatus: new BehaviorSubject('not-started'),
|
|
5885
5939
|
login(hint) {
|
|
5886
|
-
return __awaiter
|
|
5940
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
5887
5941
|
const db = DexieCloudDB(dexie);
|
|
5888
5942
|
yield db.cloud.sync();
|
|
5889
5943
|
yield login(db, hint);
|
|
@@ -5902,7 +5956,7 @@ function dexieCloud(dexie) {
|
|
|
5902
5956
|
updateSchemaFromOptions(dexie.cloud.schema, dexie.cloud.options);
|
|
5903
5957
|
},
|
|
5904
5958
|
sync({ wait, purpose } = { wait: true, purpose: 'push' }) {
|
|
5905
|
-
return __awaiter
|
|
5959
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
5906
5960
|
if (wait === undefined)
|
|
5907
5961
|
wait = true;
|
|
5908
5962
|
const db = DexieCloudDB(dexie);
|
|
@@ -5924,7 +5978,7 @@ function dexieCloud(dexie) {
|
|
|
5924
5978
|
triggerSync(db, purpose);
|
|
5925
5979
|
if (wait) {
|
|
5926
5980
|
console.debug('db.cloud.login() is waiting for sync completion...');
|
|
5927
|
-
yield from$1(liveQuery(() => __awaiter
|
|
5981
|
+
yield from$1(liveQuery(() => __awaiter(this, void 0, void 0, function* () {
|
|
5928
5982
|
const syncNeeded = yield isSyncNeeded(db);
|
|
5929
5983
|
const newSyncState = yield db.getPersistedSyncState();
|
|
5930
5984
|
if ((newSyncState === null || newSyncState === void 0 ? void 0 : newSyncState.timestamp) !== (syncState === null || syncState === void 0 ? void 0 : syncState.timestamp) &&
|
|
@@ -5960,7 +6014,7 @@ function dexieCloud(dexie) {
|
|
|
5960
6014
|
dexie.use(createIdGenerationMiddleware(DexieCloudDB(dexie)));
|
|
5961
6015
|
function onDbReady(dexie) {
|
|
5962
6016
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
5963
|
-
return __awaiter
|
|
6017
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
5964
6018
|
closed = false; // As Dexie calls us, we are not closed anymore. Maybe reopened? Remember db.ready event is registered with sticky flag!
|
|
5965
6019
|
const db = DexieCloudDB(dexie);
|
|
5966
6020
|
// Setup default GUI:
|
|
@@ -5980,7 +6034,7 @@ function dexieCloud(dexie) {
|
|
|
5980
6034
|
const swRegistrations = 'serviceWorker' in navigator
|
|
5981
6035
|
? yield navigator.serviceWorker.getRegistrations()
|
|
5982
6036
|
: [];
|
|
5983
|
-
const initiallySynced = yield db.transaction('rw', db.$syncState, () => __awaiter
|
|
6037
|
+
const initiallySynced = yield db.transaction('rw', db.$syncState, () => __awaiter(this, void 0, void 0, function* () {
|
|
5984
6038
|
var _h, _j;
|
|
5985
6039
|
const { options, schema } = db.cloud;
|
|
5986
6040
|
const [persistedOptions, persistedSchema, persistedSyncState] = yield Promise.all([
|
|
@@ -6121,7 +6175,7 @@ function dexieCloud(dexie) {
|
|
|
6121
6175
|
});
|
|
6122
6176
|
}
|
|
6123
6177
|
}
|
|
6124
|
-
dexieCloud.version = '4.0.0-beta.
|
|
6178
|
+
dexieCloud.version = '4.0.0-beta.24';
|
|
6125
6179
|
Dexie.Cloud = dexieCloud;
|
|
6126
6180
|
|
|
6127
6181
|
export { dexieCloud as default, dexieCloud, getTiedObjectId, getTiedRealmId };
|