@aws-amplify/datastore 4.7.5 → 5.0.1-console-preview.4208d73.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.
- package/README.md +4 -0
- package/lib/authModeStrategies/defaultAuthStrategy.js +3 -2
- package/lib/authModeStrategies/index.js +3 -3
- package/lib/authModeStrategies/multiAuthStrategy.js +81 -24
- package/lib/datastore/datastore.d.ts +3 -4
- package/lib/datastore/datastore.js +361 -227
- package/lib/index.d.ts +1 -1
- package/lib/index.js +25 -12
- package/lib/predicates/index.js +46 -12
- package/lib/predicates/next.d.ts +2 -2
- package/lib/predicates/next.js +172 -74
- package/lib/predicates/sort.js +3 -4
- package/lib/ssr/index.js +1 -1
- package/lib/storage/adapter/AsyncStorageAdapter.js +240 -128
- package/lib/storage/adapter/AsyncStorageDatabase.js +100 -39
- package/lib/storage/adapter/InMemoryStore.js +68 -17
- package/lib/storage/adapter/InMemoryStore.native.js +5 -3
- package/lib/storage/adapter/IndexedDBAdapter.js +355 -199
- package/lib/storage/adapter/StorageAdapterBase.js +154 -85
- package/lib/storage/adapter/getDefaultAdapter/index.js +8 -9
- package/lib/storage/adapter/getDefaultAdapter/index.native.js +4 -3
- package/lib/storage/adapter/index.js +0 -1
- package/lib/storage/relationship.js +31 -21
- package/lib/storage/storage.d.ts +3 -3
- package/lib/storage/storage.js +143 -61
- package/lib/sync/datastoreConnectivity.d.ts +1 -1
- package/lib/sync/datastoreConnectivity.js +57 -9
- package/lib/sync/datastoreReachability/index.js +3 -3
- package/lib/sync/datastoreReachability/index.native.js +7 -5
- package/lib/sync/index.d.ts +1 -1
- package/lib/sync/index.js +193 -125
- package/lib/sync/merger.js +81 -10
- package/lib/sync/outbox.js +101 -30
- package/lib/sync/processors/errorMaps.d.ts +1 -1
- package/lib/sync/processors/errorMaps.js +41 -6
- package/lib/sync/processors/mutation.d.ts +1 -1
- package/lib/sync/processors/mutation.js +192 -101
- package/lib/sync/processors/subscription.d.ts +4 -1
- package/lib/sync/processors/subscription.js +190 -178
- package/lib/sync/processors/sync.d.ts +1 -1
- package/lib/sync/processors/sync.js +113 -47
- package/lib/sync/utils.d.ts +4 -4
- package/lib/sync/utils.js +162 -81
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/lib/types.d.ts +138 -140
- package/lib/types.js +40 -5
- package/lib/util.d.ts +9 -17
- package/lib/util.js +216 -100
- package/lib-esm/authModeStrategies/defaultAuthStrategy.js +0 -1
- package/lib-esm/authModeStrategies/index.js +0 -1
- package/lib-esm/authModeStrategies/multiAuthStrategy.js +76 -21
- package/lib-esm/datastore/datastore.d.ts +3 -4
- package/lib-esm/datastore/datastore.js +206 -77
- package/lib-esm/index.d.ts +1 -1
- package/lib-esm/index.js +0 -1
- package/lib-esm/predicates/index.js +40 -7
- package/lib-esm/predicates/next.d.ts +2 -2
- package/lib-esm/predicates/next.js +148 -52
- package/lib-esm/predicates/sort.js +2 -4
- package/lib-esm/ssr/index.js +0 -1
- package/lib-esm/storage/adapter/AsyncStorageAdapter.js +203 -95
- package/lib-esm/storage/adapter/AsyncStorageDatabase.js +66 -5
- package/lib-esm/storage/adapter/InMemoryStore.js +52 -2
- package/lib-esm/storage/adapter/InMemoryStore.native.js +0 -1
- package/lib-esm/storage/adapter/IndexedDBAdapter.js +271 -138
- package/lib-esm/storage/adapter/StorageAdapterBase.js +130 -62
- package/lib-esm/storage/adapter/getDefaultAdapter/index.js +2 -5
- package/lib-esm/storage/adapter/getDefaultAdapter/index.native.js +0 -1
- package/lib-esm/storage/adapter/index.js +1 -1
- package/lib-esm/storage/relationship.js +27 -18
- package/lib-esm/storage/storage.d.ts +3 -3
- package/lib-esm/storage/storage.js +87 -9
- package/lib-esm/sync/datastoreConnectivity.d.ts +1 -1
- package/lib-esm/sync/datastoreConnectivity.js +48 -3
- package/lib-esm/sync/datastoreReachability/index.js +1 -2
- package/lib-esm/sync/datastoreReachability/index.native.js +1 -2
- package/lib-esm/sync/index.d.ts +1 -1
- package/lib-esm/sync/index.js +136 -72
- package/lib-esm/sync/merger.js +73 -3
- package/lib-esm/sync/outbox.js +75 -5
- package/lib-esm/sync/processors/errorMaps.d.ts +1 -1
- package/lib-esm/sync/processors/errorMaps.js +39 -5
- package/lib-esm/sync/processors/mutation.d.ts +1 -1
- package/lib-esm/sync/processors/mutation.js +130 -44
- package/lib-esm/sync/processors/subscription.d.ts +4 -1
- package/lib-esm/sync/processors/subscription.js +134 -126
- package/lib-esm/sync/processors/sync.d.ts +1 -1
- package/lib-esm/sync/processors/sync.js +74 -12
- package/lib-esm/sync/utils.d.ts +4 -4
- package/lib-esm/sync/utils.js +135 -55
- package/lib-esm/tsconfig.tsbuildinfo +1 -0
- package/lib-esm/types.d.ts +138 -140
- package/lib-esm/types.js +36 -2
- package/lib-esm/util.d.ts +9 -17
- package/lib-esm/util.js +96 -16
- package/package.json +139 -132
- package/src/authModeStrategies/multiAuthStrategy.ts +11 -12
- package/src/datastore/datastore.ts +32 -25
- package/src/predicates/sort.ts +3 -1
- package/src/storage/adapter/InMemoryStore.ts +1 -1
- package/src/storage/adapter/IndexedDBAdapter.ts +1 -1
- package/src/storage/adapter/StorageAdapterBase.ts +1 -1
- package/src/storage/adapter/getDefaultAdapter/index.ts +2 -3
- package/src/storage/storage.ts +1 -1
- package/src/sync/datastoreConnectivity.ts +2 -2
- package/src/sync/datastoreReachability/index.native.ts +1 -1
- package/src/sync/datastoreReachability/index.ts +1 -1
- package/src/sync/index.ts +69 -78
- package/src/sync/processors/mutation.ts +16 -10
- package/src/sync/processors/subscription.ts +55 -127
- package/src/sync/processors/sync.ts +8 -4
- package/src/sync/utils.ts +7 -8
- package/src/types.ts +4 -8
- package/src/util.ts +5 -6
- package/lib/.tsbuildinfo +0 -3
- package/lib/authModeStrategies/defaultAuthStrategy.js.map +0 -1
- package/lib/authModeStrategies/index.js.map +0 -1
- package/lib/authModeStrategies/multiAuthStrategy.js.map +0 -1
- package/lib/datastore/datastore.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/predicates/index.js.map +0 -1
- package/lib/predicates/next.js.map +0 -1
- package/lib/predicates/sort.js.map +0 -1
- package/lib/ssr/index.js.map +0 -1
- package/lib/storage/adapter/AsyncStorageAdapter.js.map +0 -1
- package/lib/storage/adapter/AsyncStorageDatabase.js.map +0 -1
- package/lib/storage/adapter/InMemoryStore.js.map +0 -1
- package/lib/storage/adapter/InMemoryStore.native.js.map +0 -1
- package/lib/storage/adapter/IndexedDBAdapter.js.map +0 -1
- package/lib/storage/adapter/StorageAdapterBase.js.map +0 -1
- package/lib/storage/adapter/getDefaultAdapter/index.js.map +0 -1
- package/lib/storage/adapter/getDefaultAdapter/index.native.js.map +0 -1
- package/lib/storage/adapter/index.js.map +0 -1
- package/lib/storage/relationship.js.map +0 -1
- package/lib/storage/storage.js.map +0 -1
- package/lib/sync/datastoreConnectivity.js.map +0 -1
- package/lib/sync/datastoreReachability/index.js.map +0 -1
- package/lib/sync/datastoreReachability/index.native.js.map +0 -1
- package/lib/sync/index.js.map +0 -1
- package/lib/sync/merger.js.map +0 -1
- package/lib/sync/outbox.js.map +0 -1
- package/lib/sync/processors/errorMaps.js.map +0 -1
- package/lib/sync/processors/mutation.js.map +0 -1
- package/lib/sync/processors/subscription.js.map +0 -1
- package/lib/sync/processors/sync.js.map +0 -1
- package/lib/sync/utils.js.map +0 -1
- package/lib/types.js.map +0 -1
- package/lib/util.js.map +0 -1
- package/lib-esm/.tsbuildinfo +0 -3
- package/lib-esm/authModeStrategies/defaultAuthStrategy.js.map +0 -1
- package/lib-esm/authModeStrategies/index.js.map +0 -1
- package/lib-esm/authModeStrategies/multiAuthStrategy.js.map +0 -1
- package/lib-esm/datastore/datastore.js.map +0 -1
- package/lib-esm/index.js.map +0 -1
- package/lib-esm/predicates/index.js.map +0 -1
- package/lib-esm/predicates/next.js.map +0 -1
- package/lib-esm/predicates/sort.js.map +0 -1
- package/lib-esm/ssr/index.js.map +0 -1
- package/lib-esm/storage/adapter/AsyncStorageAdapter.js.map +0 -1
- package/lib-esm/storage/adapter/AsyncStorageDatabase.js.map +0 -1
- package/lib-esm/storage/adapter/InMemoryStore.js.map +0 -1
- package/lib-esm/storage/adapter/InMemoryStore.native.js.map +0 -1
- package/lib-esm/storage/adapter/IndexedDBAdapter.js.map +0 -1
- package/lib-esm/storage/adapter/StorageAdapterBase.js.map +0 -1
- package/lib-esm/storage/adapter/getDefaultAdapter/index.js.map +0 -1
- package/lib-esm/storage/adapter/getDefaultAdapter/index.native.js.map +0 -1
- package/lib-esm/storage/adapter/index.js.map +0 -1
- package/lib-esm/storage/relationship.js.map +0 -1
- package/lib-esm/storage/storage.js.map +0 -1
- package/lib-esm/sync/datastoreConnectivity.js.map +0 -1
- package/lib-esm/sync/datastoreReachability/index.js.map +0 -1
- package/lib-esm/sync/datastoreReachability/index.native.js.map +0 -1
- package/lib-esm/sync/index.js.map +0 -1
- package/lib-esm/sync/merger.js.map +0 -1
- package/lib-esm/sync/outbox.js.map +0 -1
- package/lib-esm/sync/processors/errorMaps.js.map +0 -1
- package/lib-esm/sync/processors/mutation.js.map +0 -1
- package/lib-esm/sync/processors/subscription.js.map +0 -1
- package/lib-esm/sync/processors/sync.js.map +0 -1
- package/lib-esm/sync/utils.js.map +0 -1
- package/lib-esm/types.js.map +0 -1
- package/lib-esm/util.js.map +0 -1
package/lib-esm/sync/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { ConflictHandler, ControlMessageType, ErrorHandler, InternalSchema, Mode
|
|
|
5
5
|
import type { __modelMeta__ } from '../types';
|
|
6
6
|
import DataStoreConnectivity from './datastoreConnectivity';
|
|
7
7
|
import { TransformerMutationType } from './utils';
|
|
8
|
-
|
|
8
|
+
type StartParams = {
|
|
9
9
|
fullSyncInterval: number;
|
|
10
10
|
};
|
|
11
11
|
export declare class MutationEvent {
|
package/lib-esm/sync/index.js
CHANGED
|
@@ -1,8 +1,79 @@
|
|
|
1
|
-
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
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;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
38
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
39
|
+
if (!m) return o;
|
|
40
|
+
var i = m.call(o), r, ar = [], e;
|
|
41
|
+
try {
|
|
42
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
43
|
+
}
|
|
44
|
+
catch (error) { e = { error: error }; }
|
|
45
|
+
finally {
|
|
46
|
+
try {
|
|
47
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
48
|
+
}
|
|
49
|
+
finally { if (e) throw e.error; }
|
|
50
|
+
}
|
|
51
|
+
return ar;
|
|
52
|
+
};
|
|
53
|
+
var __values = (this && this.__values) || function(o) {
|
|
54
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
55
|
+
if (m) return m.call(o);
|
|
56
|
+
if (o && typeof o.length === "number") return {
|
|
57
|
+
next: function () {
|
|
58
|
+
if (o && i >= o.length) o = void 0;
|
|
59
|
+
return { value: o && o[i++], done: !o };
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
63
|
+
};
|
|
64
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
65
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
66
|
+
if (ar || !(i in from)) {
|
|
67
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
68
|
+
ar[i] = from[i];
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
72
|
+
};
|
|
2
73
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
74
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
75
|
+
import { Logger, BackgroundProcessManager, } from '@aws-amplify/core/internals/utils';
|
|
76
|
+
import { Hub } from '@aws-amplify/core';
|
|
6
77
|
import Observable from 'zen-observable-ts';
|
|
7
78
|
import { ModelPredicateCreator } from '../predicates';
|
|
8
79
|
import { OpType, } from '../types';
|
|
@@ -14,7 +85,7 @@ import { MutationProcessor } from './processors/mutation';
|
|
|
14
85
|
import { CONTROL_MSG, SubscriptionProcessor } from './processors/subscription';
|
|
15
86
|
import { SyncProcessor } from './processors/sync';
|
|
16
87
|
import { createMutationInstanceFromModelOperation, getIdentifierValue, predicateToGraphQLCondition, } from './utils';
|
|
17
|
-
|
|
88
|
+
import { CONTROL_MSG as PUBSUB_CONTROL_MSG, ConnectionState, CONNECTION_STATE_CHANGE as PUBSUB_CONNECTION_STATE_CHANGE, } from '@aws-amplify/api-graphql';
|
|
18
89
|
var logger = new Logger('DataStore');
|
|
19
90
|
var ownSymbol = Symbol('sync');
|
|
20
91
|
export var ControlMessage;
|
|
@@ -32,8 +103,8 @@ export var ControlMessage;
|
|
|
32
103
|
})(ControlMessage || (ControlMessage = {}));
|
|
33
104
|
var SyncEngine = /** @class */ (function () {
|
|
34
105
|
function SyncEngine(schema, namespaceResolver, modelClasses, userModelClasses, storage, modelInstanceCreator, conflictHandler, errorHandler, syncPredicates, amplifyConfig, authModeStrategy, amplifyContext, connectivityMonitor) {
|
|
35
|
-
var _this = this;
|
|
36
106
|
if (amplifyConfig === void 0) { amplifyConfig = {}; }
|
|
107
|
+
var _this = this;
|
|
37
108
|
this.schema = schema;
|
|
38
109
|
this.namespaceResolver = namespaceResolver;
|
|
39
110
|
this.modelClasses = modelClasses;
|
|
@@ -99,7 +170,7 @@ var SyncEngine = /** @class */ (function () {
|
|
|
99
170
|
return __generator(this, function (_b) {
|
|
100
171
|
switch (_b.label) {
|
|
101
172
|
case 0:
|
|
102
|
-
if (!(online && !this.online)) return [3 /*break*/,
|
|
173
|
+
if (!(online && !this.online)) return [3 /*break*/, 9];
|
|
103
174
|
this.online = online;
|
|
104
175
|
observer.next({
|
|
105
176
|
type: ControlMessage.SYNC_ENGINE_NETWORK_STATUS,
|
|
@@ -108,17 +179,13 @@ var SyncEngine = /** @class */ (function () {
|
|
|
108
179
|
},
|
|
109
180
|
});
|
|
110
181
|
dataSubsObservable = void 0;
|
|
111
|
-
if (!isNode) return [3 /*break*/, 1];
|
|
112
|
-
logger.warn('Realtime disabled when in a server-side environment');
|
|
113
|
-
return [3 /*break*/, 6];
|
|
114
|
-
case 1:
|
|
115
182
|
this.stopDisruptionListener =
|
|
116
183
|
this.startDisruptionListener();
|
|
117
184
|
//#region GraphQL Subscriptions
|
|
118
185
|
_a = __read(this.subscriptionsProcessor.start(), 2), ctlSubsObservable_1 = _a[0], dataSubsObservable = _a[1];
|
|
119
|
-
_b.label =
|
|
120
|
-
case
|
|
121
|
-
_b.trys.push([
|
|
186
|
+
_b.label = 1;
|
|
187
|
+
case 1:
|
|
188
|
+
_b.trys.push([1, 3, , 4]);
|
|
122
189
|
return [4 /*yield*/, new Promise(function (resolve, reject) {
|
|
123
190
|
onTerminate.then(reject);
|
|
124
191
|
var ctlSubsSubscription = ctlSubsObservable_1.subscribe({
|
|
@@ -135,22 +202,22 @@ var SyncEngine = /** @class */ (function () {
|
|
|
135
202
|
});
|
|
136
203
|
subscriptions.push(ctlSubsSubscription);
|
|
137
204
|
})];
|
|
138
|
-
case
|
|
205
|
+
case 2:
|
|
139
206
|
_b.sent();
|
|
140
|
-
return [3 /*break*/,
|
|
141
|
-
case
|
|
207
|
+
return [3 /*break*/, 4];
|
|
208
|
+
case 3:
|
|
142
209
|
err_2 = _b.sent();
|
|
143
210
|
observer.error(err_2);
|
|
144
211
|
failedStarting();
|
|
145
212
|
return [2 /*return*/];
|
|
146
|
-
case
|
|
213
|
+
case 4:
|
|
147
214
|
logger.log('Realtime ready');
|
|
148
215
|
observer.next({
|
|
149
216
|
type: ControlMessage.SYNC_ENGINE_SUBSCRIPTIONS_ESTABLISHED,
|
|
150
217
|
});
|
|
151
|
-
_b.label =
|
|
152
|
-
case
|
|
153
|
-
_b.trys.push([
|
|
218
|
+
_b.label = 5;
|
|
219
|
+
case 5:
|
|
220
|
+
_b.trys.push([5, 7, , 8]);
|
|
154
221
|
return [4 /*yield*/, new Promise(function (resolve, reject) {
|
|
155
222
|
var syncQuerySubscription = _this.syncQueriesObservable().subscribe({
|
|
156
223
|
next: function (message) {
|
|
@@ -172,15 +239,15 @@ var SyncEngine = /** @class */ (function () {
|
|
|
172
239
|
subscriptions.push(syncQuerySubscription);
|
|
173
240
|
}
|
|
174
241
|
})];
|
|
175
|
-
case
|
|
242
|
+
case 6:
|
|
176
243
|
_b.sent();
|
|
177
|
-
return [3 /*break*/,
|
|
178
|
-
case
|
|
244
|
+
return [3 /*break*/, 8];
|
|
245
|
+
case 7:
|
|
179
246
|
error_1 = _b.sent();
|
|
180
247
|
observer.error(error_1);
|
|
181
248
|
failedStarting();
|
|
182
249
|
return [2 /*return*/];
|
|
183
|
-
case
|
|
250
|
+
case 8:
|
|
184
251
|
//#endregion
|
|
185
252
|
//#region process mutations (outbox)
|
|
186
253
|
subscriptions.push(this.mutationsProcessor
|
|
@@ -220,31 +287,28 @@ var SyncEngine = /** @class */ (function () {
|
|
|
220
287
|
}));
|
|
221
288
|
//#endregion
|
|
222
289
|
//#region Merge subscriptions buffer
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
var
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
}
|
|
246
|
-
return [3 /*break*/, 11];
|
|
247
|
-
case 10:
|
|
290
|
+
subscriptions.push(dataSubsObservable.subscribe(function (_a) {
|
|
291
|
+
var _b = __read(_a, 3), _transformerMutationType = _b[0], modelDefinition = _b[1], item = _b[2];
|
|
292
|
+
return _this.runningProcesses.add(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
293
|
+
var modelConstructor, model;
|
|
294
|
+
var _this = this;
|
|
295
|
+
return __generator(this, function (_a) {
|
|
296
|
+
switch (_a.label) {
|
|
297
|
+
case 0:
|
|
298
|
+
modelConstructor = this.userModelClasses[modelDefinition.name];
|
|
299
|
+
model = this.modelInstanceCreator(modelConstructor, item);
|
|
300
|
+
return [4 /*yield*/, this.storage.runExclusive(function (storage) {
|
|
301
|
+
return _this.modelMerger.merge(storage, model, modelDefinition);
|
|
302
|
+
})];
|
|
303
|
+
case 1:
|
|
304
|
+
_a.sent();
|
|
305
|
+
return [2 /*return*/];
|
|
306
|
+
}
|
|
307
|
+
});
|
|
308
|
+
}); }, 'subscription dataSubsObservable event');
|
|
309
|
+
}));
|
|
310
|
+
return [3 /*break*/, 10];
|
|
311
|
+
case 9:
|
|
248
312
|
if (!online) {
|
|
249
313
|
this.online = online;
|
|
250
314
|
observer.next({
|
|
@@ -256,8 +320,8 @@ var SyncEngine = /** @class */ (function () {
|
|
|
256
320
|
subscriptions.forEach(function (sub) { return sub.unsubscribe(); });
|
|
257
321
|
subscriptions = [];
|
|
258
322
|
}
|
|
259
|
-
_b.label =
|
|
260
|
-
case
|
|
323
|
+
_b.label = 10;
|
|
324
|
+
case 10:
|
|
261
325
|
doneStarting();
|
|
262
326
|
return [2 /*return*/];
|
|
263
327
|
}
|
|
@@ -388,13 +452,13 @@ var SyncEngine = /** @class */ (function () {
|
|
|
388
452
|
terminated = false;
|
|
389
453
|
_loop_1 = function () {
|
|
390
454
|
var count, modelLastSync, paginatingModels, lastFullSyncStartedAt, syncInterval, start, syncDuration, lastStartedAt, msNextFullSync;
|
|
391
|
-
return __generator(this, function (
|
|
392
|
-
switch (
|
|
455
|
+
return __generator(this, function (_b) {
|
|
456
|
+
switch (_b.label) {
|
|
393
457
|
case 0:
|
|
394
458
|
count = new WeakMap();
|
|
395
459
|
return [4 /*yield*/, this_1.getModelsMetadataWithNextFullSync(Date.now())];
|
|
396
460
|
case 1:
|
|
397
|
-
modelLastSync =
|
|
461
|
+
modelLastSync = _b.sent();
|
|
398
462
|
paginatingModels = new Set(modelLastSync.keys());
|
|
399
463
|
return [4 /*yield*/, new Promise(function (resolve, reject) {
|
|
400
464
|
if (!_this.runningProcesses.isOpen)
|
|
@@ -429,13 +493,13 @@ var SyncEngine = /** @class */ (function () {
|
|
|
429
493
|
* merged individually. Otherwise, we can merge them in batches.
|
|
430
494
|
*/
|
|
431
495
|
return [4 /*yield*/, this.storage.runExclusive(function (storage) { return __awaiter(_this, void 0, void 0, function () {
|
|
432
|
-
var idsInOutbox, oneByOne, page, opTypeCount, oneByOne_1, oneByOne_1_1, item, opType, e_1_1, _a, _b, _c, counts;
|
|
433
|
-
var e_1,
|
|
434
|
-
return __generator(this, function (
|
|
435
|
-
switch (
|
|
496
|
+
var idsInOutbox, oneByOne, page, opTypeCount, oneByOne_1, oneByOne_1_1, item, opType, e_1_1, _a, _b, _c, _d, counts;
|
|
497
|
+
var e_1, _e;
|
|
498
|
+
return __generator(this, function (_f) {
|
|
499
|
+
switch (_f.label) {
|
|
436
500
|
case 0: return [4 /*yield*/, this.outbox.getModelIds(storage)];
|
|
437
501
|
case 1:
|
|
438
|
-
idsInOutbox =
|
|
502
|
+
idsInOutbox = _f.sent();
|
|
439
503
|
oneByOne = [];
|
|
440
504
|
page = items.filter(function (item) {
|
|
441
505
|
var itemId = getIdentifierValue(modelDefinition, item);
|
|
@@ -446,41 +510,42 @@ var SyncEngine = /** @class */ (function () {
|
|
|
446
510
|
return false;
|
|
447
511
|
});
|
|
448
512
|
opTypeCount = [];
|
|
449
|
-
|
|
513
|
+
_f.label = 2;
|
|
450
514
|
case 2:
|
|
451
|
-
|
|
515
|
+
_f.trys.push([2, 7, 8, 9]);
|
|
452
516
|
oneByOne_1 = __values(oneByOne), oneByOne_1_1 = oneByOne_1.next();
|
|
453
|
-
|
|
517
|
+
_f.label = 3;
|
|
454
518
|
case 3:
|
|
455
519
|
if (!!oneByOne_1_1.done) return [3 /*break*/, 6];
|
|
456
520
|
item = oneByOne_1_1.value;
|
|
457
521
|
return [4 /*yield*/, this.modelMerger.merge(storage, item, modelDefinition)];
|
|
458
522
|
case 4:
|
|
459
|
-
opType =
|
|
523
|
+
opType = _f.sent();
|
|
460
524
|
if (opType !== undefined) {
|
|
461
525
|
opTypeCount.push([item, opType]);
|
|
462
526
|
}
|
|
463
|
-
|
|
527
|
+
_f.label = 5;
|
|
464
528
|
case 5:
|
|
465
529
|
oneByOne_1_1 = oneByOne_1.next();
|
|
466
530
|
return [3 /*break*/, 3];
|
|
467
531
|
case 6: return [3 /*break*/, 9];
|
|
468
532
|
case 7:
|
|
469
|
-
e_1_1 =
|
|
533
|
+
e_1_1 = _f.sent();
|
|
470
534
|
e_1 = { error: e_1_1 };
|
|
471
535
|
return [3 /*break*/, 9];
|
|
472
536
|
case 8:
|
|
473
537
|
try {
|
|
474
|
-
if (oneByOne_1_1 && !oneByOne_1_1.done && (
|
|
538
|
+
if (oneByOne_1_1 && !oneByOne_1_1.done && (_e = oneByOne_1.return)) _e.call(oneByOne_1);
|
|
475
539
|
}
|
|
476
540
|
finally { if (e_1) throw e_1.error; }
|
|
477
541
|
return [7 /*endfinally*/];
|
|
478
542
|
case 9:
|
|
479
543
|
_b = (_a = opTypeCount.push).apply;
|
|
480
544
|
_c = [opTypeCount];
|
|
545
|
+
_d = [[]];
|
|
481
546
|
return [4 /*yield*/, this.modelMerger.mergePage(storage, modelConstructor, page, modelDefinition)];
|
|
482
547
|
case 10:
|
|
483
|
-
_b.apply(_a, _c.concat([
|
|
548
|
+
_b.apply(_a, _c.concat([__spreadArray.apply(void 0, _d.concat([__read.apply(void 0, [(_f.sent())]), false]))]));
|
|
484
549
|
counts = count.get(modelConstructor);
|
|
485
550
|
opTypeCount.forEach(function (_a) {
|
|
486
551
|
var _b = __read(_a, 2), opType = _b[1];
|
|
@@ -495,7 +560,7 @@ var SyncEngine = /** @class */ (function () {
|
|
|
495
560
|
counts.deleted++;
|
|
496
561
|
break;
|
|
497
562
|
default:
|
|
498
|
-
throw new Error("Invalid opType "
|
|
563
|
+
throw new Error("Invalid opType ".concat(opType));
|
|
499
564
|
}
|
|
500
565
|
});
|
|
501
566
|
return [2 /*return*/];
|
|
@@ -570,7 +635,7 @@ var SyncEngine = /** @class */ (function () {
|
|
|
570
635
|
});
|
|
571
636
|
})];
|
|
572
637
|
case 2:
|
|
573
|
-
|
|
638
|
+
_b.sent();
|
|
574
639
|
if (!lastFullSyncStartedAt) {
|
|
575
640
|
msNextFullSync = syncInterval - syncDuration;
|
|
576
641
|
}
|
|
@@ -580,7 +645,7 @@ var SyncEngine = /** @class */ (function () {
|
|
|
580
645
|
syncInterval -
|
|
581
646
|
(lastStartedAt + syncDuration);
|
|
582
647
|
}
|
|
583
|
-
logger.debug("Next fullSync in "
|
|
648
|
+
logger.debug("Next fullSync in ".concat(msNextFullSync / 1000, " seconds. (").concat(new Date(Date.now() + msNextFullSync), ")"));
|
|
584
649
|
// TODO: create `BackgroundProcessManager.sleep()` ... but, need to put
|
|
585
650
|
// a lot of thought into what that contract looks like to
|
|
586
651
|
// support possible use-cases:
|
|
@@ -626,7 +691,7 @@ var SyncEngine = /** @class */ (function () {
|
|
|
626
691
|
// TLDR; this is a lot of complexity here for a sleep(),
|
|
627
692
|
// but, it's not clear to me yet how to support an
|
|
628
693
|
// extensible, centralized cancelable `sleep()` elegantly.
|
|
629
|
-
|
|
694
|
+
_b.sent();
|
|
630
695
|
this_1.unsleepSyncQueriesObservable = null;
|
|
631
696
|
this_1.waitForSleepState = new Promise(function (resolve) {
|
|
632
697
|
_this.syncQueriesObservableStartSleeping = resolve;
|
|
@@ -1023,4 +1088,3 @@ var SyncEngine = /** @class */ (function () {
|
|
|
1023
1088
|
return SyncEngine;
|
|
1024
1089
|
}());
|
|
1025
1090
|
export { SyncEngine };
|
|
1026
|
-
//# sourceMappingURL=index.js.map
|
package/lib-esm/sync/merger.js
CHANGED
|
@@ -1,4 +1,75 @@
|
|
|
1
|
-
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
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;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
38
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
39
|
+
if (!m) return o;
|
|
40
|
+
var i = m.call(o), r, ar = [], e;
|
|
41
|
+
try {
|
|
42
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
43
|
+
}
|
|
44
|
+
catch (error) { e = { error: error }; }
|
|
45
|
+
finally {
|
|
46
|
+
try {
|
|
47
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
48
|
+
}
|
|
49
|
+
finally { if (e) throw e.error; }
|
|
50
|
+
}
|
|
51
|
+
return ar;
|
|
52
|
+
};
|
|
53
|
+
var __values = (this && this.__values) || function(o) {
|
|
54
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
55
|
+
if (m) return m.call(o);
|
|
56
|
+
if (o && typeof o.length === "number") return {
|
|
57
|
+
next: function () {
|
|
58
|
+
if (o && i >= o.length) o = void 0;
|
|
59
|
+
return { value: o && o[i++], done: !o };
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
63
|
+
};
|
|
64
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
65
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
66
|
+
if (ar || !(i in from)) {
|
|
67
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
68
|
+
ar[i] = from[i];
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
72
|
+
};
|
|
2
73
|
import { OpType, } from '../types';
|
|
3
74
|
import { getIdentifierValue } from './utils';
|
|
4
75
|
// https://github.com/aws-amplify/amplify-js/blob/datastore-docs/packages/datastore/docs/sync-engine.md#merger
|
|
@@ -61,7 +132,7 @@ var ModelMerger = /** @class */ (function () {
|
|
|
61
132
|
}
|
|
62
133
|
finally { if (e_1) throw e_1.error; }
|
|
63
134
|
}
|
|
64
|
-
page =
|
|
135
|
+
page = __spreadArray([], __read(itemsMap.values()), false);
|
|
65
136
|
return [4 /*yield*/, storage.batchSave(modelConstructor, page, this.ownSymbol)];
|
|
66
137
|
case 1: return [2 /*return*/, _b.sent()];
|
|
67
138
|
}
|
|
@@ -71,4 +142,3 @@ var ModelMerger = /** @class */ (function () {
|
|
|
71
142
|
return ModelMerger;
|
|
72
143
|
}());
|
|
73
144
|
export { ModelMerger };
|
|
74
|
-
//# sourceMappingURL=merger.js.map
|
package/lib-esm/sync/outbox.js
CHANGED
|
@@ -1,4 +1,77 @@
|
|
|
1
|
-
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
13
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
14
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
15
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
16
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
17
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
18
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
22
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
23
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
24
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
25
|
+
function step(op) {
|
|
26
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
27
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
28
|
+
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;
|
|
29
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
30
|
+
switch (op[0]) {
|
|
31
|
+
case 0: case 1: t = op; break;
|
|
32
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
33
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
34
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
35
|
+
default:
|
|
36
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
37
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
38
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
39
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
40
|
+
if (t[2]) _.ops.pop();
|
|
41
|
+
_.trys.pop(); continue;
|
|
42
|
+
}
|
|
43
|
+
op = body.call(thisArg, _);
|
|
44
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
45
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
49
|
+
var t = {};
|
|
50
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
51
|
+
t[p] = s[p];
|
|
52
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
53
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
54
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
55
|
+
t[p[i]] = s[p[i]];
|
|
56
|
+
}
|
|
57
|
+
return t;
|
|
58
|
+
};
|
|
59
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
60
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
61
|
+
if (!m) return o;
|
|
62
|
+
var i = m.call(o), r, ar = [], e;
|
|
63
|
+
try {
|
|
64
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
65
|
+
}
|
|
66
|
+
catch (error) { e = { error: error }; }
|
|
67
|
+
finally {
|
|
68
|
+
try {
|
|
69
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
70
|
+
}
|
|
71
|
+
finally { if (e) throw e.error; }
|
|
72
|
+
}
|
|
73
|
+
return ar;
|
|
74
|
+
};
|
|
2
75
|
import { ModelPredicateCreator } from '../predicates';
|
|
3
76
|
import { QueryOne, } from '../types';
|
|
4
77
|
import { USER, SYNC, valuesEqual } from '../util';
|
|
@@ -233,9 +306,7 @@ var MutationEventOutbox = /** @class */ (function () {
|
|
|
233
306
|
MutationEventOutbox.prototype.mergeUserFields = function (previous, current) {
|
|
234
307
|
var _a = JSON.parse(previous.data), _version = _a._version, _lastChangedAt = _a._lastChangedAt, _deleted = _a._deleted, previousData = __rest(_a, ["_version", "_lastChangedAt", "_deleted"]);
|
|
235
308
|
var _b = JSON.parse(current.data), __version = _b._version, __lastChangedAt = _b._lastChangedAt, __deleted = _b._deleted, currentData = __rest(_b, ["_version", "_lastChangedAt", "_deleted"]);
|
|
236
|
-
var data = JSON.stringify(__assign(__assign({ _version: _version,
|
|
237
|
-
_lastChangedAt: _lastChangedAt,
|
|
238
|
-
_deleted: _deleted }, previousData), currentData));
|
|
309
|
+
var data = JSON.stringify(__assign(__assign({ _version: _version, _lastChangedAt: _lastChangedAt, _deleted: _deleted }, previousData), currentData));
|
|
239
310
|
return this.modelInstanceCreator(this.MutationEvent, __assign(__assign({}, current), { data: data }));
|
|
240
311
|
};
|
|
241
312
|
/*
|
|
@@ -274,4 +345,3 @@ var MutationEventOutbox = /** @class */ (function () {
|
|
|
274
345
|
return MutationEventOutbox;
|
|
275
346
|
}());
|
|
276
347
|
export { MutationEventOutbox };
|
|
277
|
-
//# sourceMappingURL=outbox.js.map
|