@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/sync/merger.js
CHANGED
|
@@ -1,6 +1,78 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
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;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
39
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
40
|
+
if (!m) return o;
|
|
41
|
+
var i = m.call(o), r, ar = [], e;
|
|
42
|
+
try {
|
|
43
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
44
|
+
}
|
|
45
|
+
catch (error) { e = { error: error }; }
|
|
46
|
+
finally {
|
|
47
|
+
try {
|
|
48
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
49
|
+
}
|
|
50
|
+
finally { if (e) throw e.error; }
|
|
51
|
+
}
|
|
52
|
+
return ar;
|
|
53
|
+
};
|
|
54
|
+
var __values = (this && this.__values) || function(o) {
|
|
55
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
56
|
+
if (m) return m.call(o);
|
|
57
|
+
if (o && typeof o.length === "number") return {
|
|
58
|
+
next: function () {
|
|
59
|
+
if (o && i >= o.length) o = void 0;
|
|
60
|
+
return { value: o && o[i++], done: !o };
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
64
|
+
};
|
|
65
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
66
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
67
|
+
if (ar || !(i in from)) {
|
|
68
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
69
|
+
ar[i] = from[i];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
73
|
+
};
|
|
2
74
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
75
|
+
exports.ModelMerger = void 0;
|
|
4
76
|
var types_1 = require("../types");
|
|
5
77
|
var utils_1 = require("./utils");
|
|
6
78
|
// https://github.com/aws-amplify/amplify-js/blob/datastore-docs/packages/datastore/docs/sync-engine.md#merger
|
|
@@ -16,10 +88,10 @@ var ModelMerger = /** @class */ (function () {
|
|
|
16
88
|
* @returns The type of operation (INSERT/UPDATE/DELETE)
|
|
17
89
|
*/
|
|
18
90
|
ModelMerger.prototype.merge = function (storage, model, modelDefinition) {
|
|
19
|
-
return
|
|
91
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
20
92
|
var result, mutationsForModel, isDelete;
|
|
21
93
|
var _a, _b;
|
|
22
|
-
return
|
|
94
|
+
return __generator(this, function (_c) {
|
|
23
95
|
switch (_c.label) {
|
|
24
96
|
case 0: return [4 /*yield*/, this.outbox.getForModel(storage, model, modelDefinition)];
|
|
25
97
|
case 1:
|
|
@@ -34,7 +106,7 @@ var ModelMerger = /** @class */ (function () {
|
|
|
34
106
|
return [3 /*break*/, 5];
|
|
35
107
|
case 3: return [4 /*yield*/, storage.save(model, undefined, this.ownSymbol)];
|
|
36
108
|
case 4:
|
|
37
|
-
_a =
|
|
109
|
+
_a = __read.apply(void 0, [_c.sent(), 1]), _b = __read(_a[0], 2), result = _b[1];
|
|
38
110
|
_c.label = 5;
|
|
39
111
|
case 5: return [2 /*return*/, result];
|
|
40
112
|
}
|
|
@@ -42,17 +114,17 @@ var ModelMerger = /** @class */ (function () {
|
|
|
42
114
|
});
|
|
43
115
|
};
|
|
44
116
|
ModelMerger.prototype.mergePage = function (storage, modelConstructor, items, modelDefinition) {
|
|
45
|
-
return
|
|
117
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
46
118
|
var itemsMap, items_1, items_1_1, item, modelId, page;
|
|
47
119
|
var e_1, _a;
|
|
48
|
-
return
|
|
120
|
+
return __generator(this, function (_b) {
|
|
49
121
|
switch (_b.label) {
|
|
50
122
|
case 0:
|
|
51
123
|
itemsMap = new Map();
|
|
52
124
|
try {
|
|
53
|
-
for (items_1 =
|
|
125
|
+
for (items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {
|
|
54
126
|
item = items_1_1.value;
|
|
55
|
-
modelId = utils_1.getIdentifierValue(modelDefinition, item);
|
|
127
|
+
modelId = (0, utils_1.getIdentifierValue)(modelDefinition, item);
|
|
56
128
|
itemsMap.set(modelId, item);
|
|
57
129
|
}
|
|
58
130
|
}
|
|
@@ -63,7 +135,7 @@ var ModelMerger = /** @class */ (function () {
|
|
|
63
135
|
}
|
|
64
136
|
finally { if (e_1) throw e_1.error; }
|
|
65
137
|
}
|
|
66
|
-
page =
|
|
138
|
+
page = __spreadArray([], __read(itemsMap.values()), false);
|
|
67
139
|
return [4 /*yield*/, storage.batchSave(modelConstructor, page, this.ownSymbol)];
|
|
68
140
|
case 1: return [2 /*return*/, _b.sent()];
|
|
69
141
|
}
|
|
@@ -73,4 +145,3 @@ var ModelMerger = /** @class */ (function () {
|
|
|
73
145
|
return ModelMerger;
|
|
74
146
|
}());
|
|
75
147
|
exports.ModelMerger = ModelMerger;
|
|
76
|
-
//# sourceMappingURL=merger.js.map
|
package/lib/sync/outbox.js
CHANGED
|
@@ -1,6 +1,80 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
+
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;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
50
|
+
var t = {};
|
|
51
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
52
|
+
t[p] = s[p];
|
|
53
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
54
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
55
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
56
|
+
t[p[i]] = s[p[i]];
|
|
57
|
+
}
|
|
58
|
+
return t;
|
|
59
|
+
};
|
|
60
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
61
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
62
|
+
if (!m) return o;
|
|
63
|
+
var i = m.call(o), r, ar = [], e;
|
|
64
|
+
try {
|
|
65
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
66
|
+
}
|
|
67
|
+
catch (error) { e = { error: error }; }
|
|
68
|
+
finally {
|
|
69
|
+
try {
|
|
70
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
71
|
+
}
|
|
72
|
+
finally { if (e) throw e.error; }
|
|
73
|
+
}
|
|
74
|
+
return ar;
|
|
75
|
+
};
|
|
2
76
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
77
|
+
exports.MutationEventOutbox = void 0;
|
|
4
78
|
var predicates_1 = require("../predicates");
|
|
5
79
|
var types_1 = require("../types");
|
|
6
80
|
var util_1 = require("../util");
|
|
@@ -15,13 +89,13 @@ var MutationEventOutbox = /** @class */ (function () {
|
|
|
15
89
|
this.ownSymbol = ownSymbol;
|
|
16
90
|
}
|
|
17
91
|
MutationEventOutbox.prototype.enqueue = function (storage, mutationEvent) {
|
|
18
|
-
return
|
|
92
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
19
93
|
var _this = this;
|
|
20
|
-
return
|
|
94
|
+
return __generator(this, function (_a) {
|
|
21
95
|
switch (_a.label) {
|
|
22
|
-
case 0: return [4 /*yield*/, storage.runExclusive(function (s) { return
|
|
96
|
+
case 0: return [4 /*yield*/, storage.runExclusive(function (s) { return __awaiter(_this, void 0, void 0, function () {
|
|
23
97
|
var mutationEventModelDefinition, predicate, _a, first, incomingMutationType, merged_1, incomingConditionJSON, incomingCondition, merged;
|
|
24
|
-
return
|
|
98
|
+
return __generator(this, function (_b) {
|
|
25
99
|
switch (_b.label) {
|
|
26
100
|
case 0:
|
|
27
101
|
mutationEventModelDefinition = this.schema.namespaces[util_1.SYNC].models['MutationEvent'];
|
|
@@ -33,7 +107,7 @@ var MutationEventOutbox = /** @class */ (function () {
|
|
|
33
107
|
});
|
|
34
108
|
return [4 /*yield*/, s.query(this.MutationEvent, predicate)];
|
|
35
109
|
case 1:
|
|
36
|
-
_a =
|
|
110
|
+
_a = __read.apply(void 0, [_b.sent(), 1]), first = _a[0];
|
|
37
111
|
if (!(first === undefined)) return [3 /*break*/, 3];
|
|
38
112
|
return [4 /*yield*/, s.save(mutationEvent, undefined, this.ownSymbol)];
|
|
39
113
|
case 2:
|
|
@@ -88,9 +162,9 @@ var MutationEventOutbox = /** @class */ (function () {
|
|
|
88
162
|
});
|
|
89
163
|
};
|
|
90
164
|
MutationEventOutbox.prototype.dequeue = function (storage, record, recordOp) {
|
|
91
|
-
return
|
|
165
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
92
166
|
var head;
|
|
93
|
-
return
|
|
167
|
+
return __generator(this, function (_a) {
|
|
94
168
|
switch (_a.label) {
|
|
95
169
|
case 0: return [4 /*yield*/, this.peek(storage)];
|
|
96
170
|
case 1:
|
|
@@ -115,9 +189,9 @@ var MutationEventOutbox = /** @class */ (function () {
|
|
|
115
189
|
* @param storage
|
|
116
190
|
*/
|
|
117
191
|
MutationEventOutbox.prototype.peek = function (storage) {
|
|
118
|
-
return
|
|
192
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
119
193
|
var head;
|
|
120
|
-
return
|
|
194
|
+
return __generator(this, function (_a) {
|
|
121
195
|
switch (_a.label) {
|
|
122
196
|
case 0: return [4 /*yield*/, storage.queryOne(this.MutationEvent, types_1.QueryOne.FIRST)];
|
|
123
197
|
case 1:
|
|
@@ -129,13 +203,13 @@ var MutationEventOutbox = /** @class */ (function () {
|
|
|
129
203
|
});
|
|
130
204
|
};
|
|
131
205
|
MutationEventOutbox.prototype.getForModel = function (storage, model, userModelDefinition) {
|
|
132
|
-
return
|
|
206
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
133
207
|
var mutationEventModelDefinition, modelId, mutationEvents;
|
|
134
|
-
return
|
|
208
|
+
return __generator(this, function (_a) {
|
|
135
209
|
switch (_a.label) {
|
|
136
210
|
case 0:
|
|
137
211
|
mutationEventModelDefinition = this.schema.namespaces[util_1.SYNC].models.MutationEvent;
|
|
138
|
-
modelId = utils_1.getIdentifierValue(userModelDefinition, model);
|
|
212
|
+
modelId = (0, utils_1.getIdentifierValue)(userModelDefinition, model);
|
|
139
213
|
return [4 /*yield*/, storage.query(this.MutationEvent, predicates_1.ModelPredicateCreator.createFromAST(mutationEventModelDefinition, {
|
|
140
214
|
and: { modelId: { eq: modelId } },
|
|
141
215
|
}))];
|
|
@@ -147,9 +221,9 @@ var MutationEventOutbox = /** @class */ (function () {
|
|
|
147
221
|
});
|
|
148
222
|
};
|
|
149
223
|
MutationEventOutbox.prototype.getModelIds = function (storage) {
|
|
150
|
-
return
|
|
224
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
151
225
|
var mutationEvents, result;
|
|
152
|
-
return
|
|
226
|
+
return __generator(this, function (_a) {
|
|
153
227
|
switch (_a.label) {
|
|
154
228
|
case 0: return [4 /*yield*/, storage.query(this.MutationEvent)];
|
|
155
229
|
case 1:
|
|
@@ -168,22 +242,22 @@ var MutationEventOutbox = /** @class */ (function () {
|
|
|
168
242
|
// in the mutation queue with the same id
|
|
169
243
|
// see https://github.com/aws-amplify/amplify-js/pull/7354 for more details
|
|
170
244
|
MutationEventOutbox.prototype.syncOutboxVersionsOnDequeue = function (storage, record, head, recordOp) {
|
|
171
|
-
return
|
|
245
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
172
246
|
var _version, _lastChangedAt, _deleted, _incomingData, incomingData, data, __version, __lastChangedAt, __deleted, _outgoingData, outgoingData, mutationEventModelDefinition, userModelDefinition, recordId, predicate, outdatedMutations, reconciledMutations;
|
|
173
247
|
var _this = this;
|
|
174
|
-
return
|
|
248
|
+
return __generator(this, function (_a) {
|
|
175
249
|
switch (_a.label) {
|
|
176
250
|
case 0:
|
|
177
251
|
if (head.operation !== recordOp) {
|
|
178
252
|
return [2 /*return*/];
|
|
179
253
|
}
|
|
180
|
-
_version = record._version, _lastChangedAt = record._lastChangedAt, _deleted = record._deleted, _incomingData =
|
|
254
|
+
_version = record._version, _lastChangedAt = record._lastChangedAt, _deleted = record._deleted, _incomingData = __rest(record, ["_version", "_lastChangedAt", "_deleted"]);
|
|
181
255
|
incomingData = this.removeTimestampFields(head.model, _incomingData);
|
|
182
256
|
data = JSON.parse(head.data);
|
|
183
257
|
if (!data) {
|
|
184
258
|
return [2 /*return*/];
|
|
185
259
|
}
|
|
186
|
-
__version = data._version, __lastChangedAt = data._lastChangedAt, __deleted = data._deleted, _outgoingData =
|
|
260
|
+
__version = data._version, __lastChangedAt = data._lastChangedAt, __deleted = data._deleted, _outgoingData = __rest(data, ["_version", "_lastChangedAt", "_deleted"]);
|
|
187
261
|
outgoingData = this.removeTimestampFields(head.model, _outgoingData);
|
|
188
262
|
// Don't sync the version when the data in the response does not match the data
|
|
189
263
|
// in the request, i.e., when there's a handled conflict
|
|
@@ -191,12 +265,12 @@ var MutationEventOutbox = /** @class */ (function () {
|
|
|
191
265
|
// NOTE: `incomingData` contains all the fields in the record, and `outgoingData`
|
|
192
266
|
// only contains updated fields, resulting in an error when doing a comparison
|
|
193
267
|
// of two equal mutations. Fix this, or mitigate otherwise.
|
|
194
|
-
if (!util_1.valuesEqual(incomingData, outgoingData, true)) {
|
|
268
|
+
if (!(0, util_1.valuesEqual)(incomingData, outgoingData, true)) {
|
|
195
269
|
return [2 /*return*/];
|
|
196
270
|
}
|
|
197
271
|
mutationEventModelDefinition = this.schema.namespaces[util_1.SYNC].models['MutationEvent'];
|
|
198
272
|
userModelDefinition = this.schema.namespaces['user'].models[head.model];
|
|
199
|
-
recordId = utils_1.getIdentifierValue(userModelDefinition, record);
|
|
273
|
+
recordId = (0, utils_1.getIdentifierValue)(userModelDefinition, record);
|
|
200
274
|
predicate = predicates_1.ModelPredicateCreator.createFromAST(mutationEventModelDefinition, {
|
|
201
275
|
and: [
|
|
202
276
|
{ modelId: { eq: recordId } },
|
|
@@ -211,7 +285,7 @@ var MutationEventOutbox = /** @class */ (function () {
|
|
|
211
285
|
}
|
|
212
286
|
reconciledMutations = outdatedMutations.map(function (m) {
|
|
213
287
|
var oldData = JSON.parse(m.data);
|
|
214
|
-
var newData =
|
|
288
|
+
var newData = __assign(__assign({}, oldData), { _version: _version, _lastChangedAt: _lastChangedAt });
|
|
215
289
|
return _this.MutationEvent.copyOf(m, function (draft) {
|
|
216
290
|
draft.data = JSON.stringify(newData);
|
|
217
291
|
});
|
|
@@ -219,7 +293,7 @@ var MutationEventOutbox = /** @class */ (function () {
|
|
|
219
293
|
return [4 /*yield*/, storage.delete(this.MutationEvent, predicate)];
|
|
220
294
|
case 2:
|
|
221
295
|
_a.sent();
|
|
222
|
-
return [4 /*yield*/, Promise.all(reconciledMutations.map(function (m) { return
|
|
296
|
+
return [4 /*yield*/, Promise.all(reconciledMutations.map(function (m) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
223
297
|
switch (_a.label) {
|
|
224
298
|
case 0: return [4 /*yield*/, storage.save(m, undefined, this.ownSymbol)];
|
|
225
299
|
case 1: return [2 /*return*/, _a.sent()];
|
|
@@ -233,12 +307,10 @@ var MutationEventOutbox = /** @class */ (function () {
|
|
|
233
307
|
});
|
|
234
308
|
};
|
|
235
309
|
MutationEventOutbox.prototype.mergeUserFields = function (previous, current) {
|
|
236
|
-
var _a = JSON.parse(previous.data), _version = _a._version, _lastChangedAt = _a._lastChangedAt, _deleted = _a._deleted, previousData =
|
|
237
|
-
var _b = JSON.parse(current.data), __version = _b._version, __lastChangedAt = _b._lastChangedAt, __deleted = _b._deleted, currentData =
|
|
238
|
-
var data = JSON.stringify(
|
|
239
|
-
|
|
240
|
-
_deleted: _deleted }, previousData), currentData));
|
|
241
|
-
return this.modelInstanceCreator(this.MutationEvent, tslib_1.__assign(tslib_1.__assign({}, current), { data: data }));
|
|
310
|
+
var _a = JSON.parse(previous.data), _version = _a._version, _lastChangedAt = _a._lastChangedAt, _deleted = _a._deleted, previousData = __rest(_a, ["_version", "_lastChangedAt", "_deleted"]);
|
|
311
|
+
var _b = JSON.parse(current.data), __version = _b._version, __lastChangedAt = _b._lastChangedAt, __deleted = _b._deleted, currentData = __rest(_b, ["_version", "_lastChangedAt", "_deleted"]);
|
|
312
|
+
var data = JSON.stringify(__assign(__assign({ _version: _version, _lastChangedAt: _lastChangedAt, _deleted: _deleted }, previousData), currentData));
|
|
313
|
+
return this.modelInstanceCreator(this.MutationEvent, __assign(__assign({}, current), { data: data }));
|
|
242
314
|
};
|
|
243
315
|
/*
|
|
244
316
|
if a model is using custom timestamp fields
|
|
@@ -276,4 +348,3 @@ var MutationEventOutbox = /** @class */ (function () {
|
|
|
276
348
|
return MutationEventOutbox;
|
|
277
349
|
}());
|
|
278
350
|
exports.MutationEventOutbox = MutationEventOutbox;
|
|
279
|
-
//# sourceMappingURL=outbox.js.map
|
|
@@ -1,6 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
19
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
20
|
+
if (ar || !(i in from)) {
|
|
21
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
22
|
+
ar[i] = from[i];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
26
|
+
};
|
|
27
|
+
var __values = (this && this.__values) || function(o) {
|
|
28
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
29
|
+
if (m) return m.call(o);
|
|
30
|
+
if (o && typeof o.length === "number") return {
|
|
31
|
+
next: function () {
|
|
32
|
+
if (o && i >= o.length) o = void 0;
|
|
33
|
+
return { value: o && o[i++], done: !o };
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
37
|
+
};
|
|
2
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
39
|
+
exports.mapErrorToType = exports.getSyncErrorType = exports.getSubscriptionErrorType = exports.getMutationErrorType = exports.syncErrorMap = exports.subscriptionErrorMap = exports.mutationErrorMap = void 0;
|
|
4
40
|
var connectionTimeout = function (error) {
|
|
5
41
|
return /^Connection failed: Connection Timeout/.test(error.message);
|
|
6
42
|
};
|
|
@@ -48,9 +84,9 @@ exports.syncErrorMap = {
|
|
|
48
84
|
* @param observableError an error from ZenObservable subscribe error callback
|
|
49
85
|
*/
|
|
50
86
|
function unwrapObservableError(observableError) {
|
|
51
|
-
var _a = observableError.error, _b =
|
|
87
|
+
var _a = observableError.error, _b = _a === void 0 ? {
|
|
52
88
|
errors: [],
|
|
53
|
-
} : _a
|
|
89
|
+
} : _a, _c = __read(_b.errors, 1), error = _c[0];
|
|
54
90
|
return error;
|
|
55
91
|
}
|
|
56
92
|
function getMutationErrorType(error) {
|
|
@@ -73,9 +109,9 @@ exports.getSyncErrorType = getSyncErrorType;
|
|
|
73
109
|
*/
|
|
74
110
|
function mapErrorToType(errorMap, error) {
|
|
75
111
|
var e_1, _a;
|
|
76
|
-
var errorTypes =
|
|
112
|
+
var errorTypes = __spreadArray([], __read(Object.keys(errorMap)), false);
|
|
77
113
|
try {
|
|
78
|
-
for (var errorTypes_1 =
|
|
114
|
+
for (var errorTypes_1 = __values(errorTypes), errorTypes_1_1 = errorTypes_1.next(); !errorTypes_1_1.done; errorTypes_1_1 = errorTypes_1.next()) {
|
|
79
115
|
var errorType = errorTypes_1_1.value;
|
|
80
116
|
var matcher = errorMap[errorType];
|
|
81
117
|
if (matcher === null || matcher === void 0 ? void 0 : matcher(error)) {
|
|
@@ -93,4 +129,3 @@ function mapErrorToType(errorMap, error) {
|
|
|
93
129
|
return 'Unknown';
|
|
94
130
|
}
|
|
95
131
|
exports.mapErrorToType = mapErrorToType;
|
|
96
|
-
//# sourceMappingURL=errorMaps.js.map
|
|
@@ -5,7 +5,7 @@ import { ExclusiveStorage as Storage } from '../../storage/storage';
|
|
|
5
5
|
import { AuthModeStrategy, ConflictHandler, ErrorHandler, InternalSchema, PersistentModel, PersistentModelConstructor, SchemaModel, TypeConstructorMap, AmplifyContext } from '../../types';
|
|
6
6
|
import { MutationEventOutbox } from '../outbox';
|
|
7
7
|
import { TransformerMutationType } from '../utils';
|
|
8
|
-
|
|
8
|
+
type MutationProcessorEvent = {
|
|
9
9
|
operation: TransformerMutationType;
|
|
10
10
|
modelDefinition: SchemaModel;
|
|
11
11
|
model: PersistentModel;
|