@aws-amplify/datastore 5.0.1-console-preview.5a31ca1.0 → 5.0.1-console-preview.8d88eef.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/lib/datastore/datastore.js +1 -1
- package/lib/storage/adapter/IndexedDBAdapter.js +2 -2
- package/lib/storage/adapter/StorageAdapterBase.js +2 -2
- package/lib/storage/storage.js +2 -1
- package/lib/sync/datastoreConnectivity.js +2 -2
- package/lib/sync/index.js +1 -1
- package/lib/sync/processors/errorMaps.js +3 -4
- package/lib/sync/processors/mutation.js +2 -1
- package/lib/sync/processors/subscription.js +1 -1
- package/lib/sync/processors/sync.js +11 -11
- package/lib/sync/utils.d.ts +1 -0
- package/lib/sync/utils.js +20 -9
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib-esm/datastore/datastore.js +3 -3
- package/lib-esm/storage/adapter/IndexedDBAdapter.js +2 -2
- package/lib-esm/storage/adapter/StorageAdapterBase.js +2 -2
- package/lib-esm/storage/storage.js +3 -2
- package/lib-esm/sync/datastoreConnectivity.js +2 -2
- package/lib-esm/sync/index.js +3 -3
- package/lib-esm/sync/processors/errorMaps.js +3 -4
- package/lib-esm/sync/processors/mutation.js +3 -2
- package/lib-esm/sync/processors/subscription.js +3 -3
- package/lib-esm/sync/processors/sync.js +13 -13
- package/lib-esm/sync/utils.d.ts +1 -0
- package/lib-esm/sync/utils.js +18 -8
- package/lib-esm/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -7
- package/src/datastore/datastore.ts +3 -6
- package/src/storage/adapter/IndexedDBAdapter.ts +2 -2
- package/src/storage/adapter/StorageAdapterBase.ts +2 -2
- package/src/storage/storage.ts +3 -2
- package/src/sync/datastoreConnectivity.ts +2 -2
- package/src/sync/index.ts +4 -7
- package/src/sync/processors/errorMaps.ts +3 -3
- package/src/sync/processors/mutation.ts +2 -2
- package/src/sync/processors/subscription.ts +2 -3
- package/src/sync/processors/sync.ts +3 -4
- package/src/sync/utils.ts +24 -8
|
@@ -136,7 +136,7 @@ var utils_2 = require("../sync/utils");
|
|
|
136
136
|
var utils_3 = require("@aws-amplify/core/internals/utils");
|
|
137
137
|
(0, immer_1.setAutoFreeze)(true);
|
|
138
138
|
(0, immer_1.enablePatches)();
|
|
139
|
-
var logger = new
|
|
139
|
+
var logger = new core_1.ConsoleLogger('DataStore');
|
|
140
140
|
var ulid = (0, util_1.monotonicUlidFactory)(Date.now());
|
|
141
141
|
var SETTING_SCHEMA_VERSION = 'schemaVersion';
|
|
142
142
|
var schema;
|
|
@@ -123,8 +123,8 @@ var idb = __importStar(require("idb"));
|
|
|
123
123
|
var types_1 = require("../../types");
|
|
124
124
|
var util_1 = require("../../util");
|
|
125
125
|
var StorageAdapterBase_1 = require("./StorageAdapterBase");
|
|
126
|
-
var
|
|
127
|
-
var logger = new
|
|
126
|
+
var core_1 = require("@aws-amplify/core");
|
|
127
|
+
var logger = new core_1.ConsoleLogger('DataStore');
|
|
128
128
|
/**
|
|
129
129
|
* The point after which queries composed of multiple simple OR conditions
|
|
130
130
|
* should scan-and-filter instead of individual queries for each condition.
|
|
@@ -59,8 +59,8 @@ var predicates_1 = require("../../predicates");
|
|
|
59
59
|
var types_1 = require("../../types");
|
|
60
60
|
var util_1 = require("../../util");
|
|
61
61
|
var relationship_1 = require("../relationship");
|
|
62
|
-
var
|
|
63
|
-
var logger = new
|
|
62
|
+
var core_1 = require("@aws-amplify/core");
|
|
63
|
+
var logger = new core_1.ConsoleLogger('DataStore');
|
|
64
64
|
var DB_NAME = 'amplify-datastore';
|
|
65
65
|
var StorageAdapterBase = /** @class */ (function () {
|
|
66
66
|
function StorageAdapterBase() {
|
package/lib/storage/storage.js
CHANGED
|
@@ -98,7 +98,8 @@ var util_1 = require("../util");
|
|
|
98
98
|
var utils_1 = require("../sync/utils");
|
|
99
99
|
var getDefaultAdapter_1 = __importDefault(require("./adapter/getDefaultAdapter"));
|
|
100
100
|
var utils_2 = require("@aws-amplify/core/internals/utils");
|
|
101
|
-
var
|
|
101
|
+
var core_1 = require("@aws-amplify/core");
|
|
102
|
+
var logger = new core_1.ConsoleLogger('DataStore');
|
|
102
103
|
var StorageClass = /** @class */ (function () {
|
|
103
104
|
function StorageClass(schema, namespaceResolver, getModelConstructorByModelName, modelInstanceCreator, adapter, sessionId) {
|
|
104
105
|
this.schema = schema;
|
|
@@ -51,8 +51,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
51
51
|
// SPDX-License-Identifier: Apache-2.0
|
|
52
52
|
var rxjs_1 = require("rxjs");
|
|
53
53
|
var datastoreReachability_1 = require("./datastoreReachability");
|
|
54
|
-
var
|
|
55
|
-
var logger = new
|
|
54
|
+
var core_1 = require("@aws-amplify/core");
|
|
55
|
+
var logger = new core_1.ConsoleLogger('DataStore');
|
|
56
56
|
var RECONNECTING_IN = 5000; // 5s this may be configurable in the future
|
|
57
57
|
var DataStoreConnectivity = /** @class */ (function () {
|
|
58
58
|
function DataStoreConnectivity() {
|
package/lib/sync/index.js
CHANGED
|
@@ -92,7 +92,7 @@ var subscription_1 = require("./processors/subscription");
|
|
|
92
92
|
var sync_1 = require("./processors/sync");
|
|
93
93
|
var utils_2 = require("./utils");
|
|
94
94
|
var api_graphql_1 = require("@aws-amplify/api-graphql");
|
|
95
|
-
var logger = new
|
|
95
|
+
var logger = new core_1.ConsoleLogger('DataStore');
|
|
96
96
|
var ownSymbol = Symbol('sync');
|
|
97
97
|
var ControlMessage;
|
|
98
98
|
(function (ControlMessage) {
|
|
@@ -37,12 +37,11 @@ var __values = (this && this.__values) || function(o) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.mapErrorToType = exports.getSyncErrorType = exports.getSubscriptionErrorType = exports.getMutationErrorType = exports.syncErrorMap = exports.subscriptionErrorMap = exports.mutationErrorMap = void 0;
|
|
40
|
+
var utils_1 = require("../utils");
|
|
40
41
|
var connectionTimeout = function (error) {
|
|
41
42
|
return /^Connection failed: Connection Timeout/.test(error.message);
|
|
42
43
|
};
|
|
43
|
-
var serverError = function (error) {
|
|
44
|
-
return /^Error: Request failed with status code 5\d\d/.test(error.message);
|
|
45
|
-
};
|
|
44
|
+
var serverError = function (error) { return (0, utils_1.resolveServiceErrorStatusCode)(error) >= 500; };
|
|
46
45
|
exports.mutationErrorMap = {
|
|
47
46
|
BadModel: function () { return false; },
|
|
48
47
|
BadRecord: function (error) {
|
|
@@ -54,7 +53,7 @@ exports.mutationErrorMap = {
|
|
|
54
53
|
Transient: function (error) { return connectionTimeout(error) || serverError(error); },
|
|
55
54
|
Unauthorized: function (error) {
|
|
56
55
|
return error.message === 'Unauthorized' ||
|
|
57
|
-
|
|
56
|
+
(0, utils_1.resolveServiceErrorStatusCode)(error) === 401;
|
|
58
57
|
},
|
|
59
58
|
};
|
|
60
59
|
exports.subscriptionErrorMap = {
|
|
@@ -88,13 +88,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
88
88
|
exports.MutationProcessor = exports.safeJitteredBackoff = void 0;
|
|
89
89
|
var internals_1 = require("@aws-amplify/api/internals");
|
|
90
90
|
var utils_1 = require("@aws-amplify/core/internals/utils");
|
|
91
|
+
var core_1 = require("@aws-amplify/core");
|
|
91
92
|
var rxjs_1 = require("rxjs");
|
|
92
93
|
var types_1 = require("../../types");
|
|
93
94
|
var util_1 = require("../../util");
|
|
94
95
|
var utils_2 = require("../utils");
|
|
95
96
|
var errorMaps_1 = require("./errorMaps");
|
|
96
97
|
var MAX_ATTEMPTS = 10;
|
|
97
|
-
var logger = new
|
|
98
|
+
var logger = new core_1.ConsoleLogger('DataStore');
|
|
98
99
|
var MutationProcessor = /** @class */ (function () {
|
|
99
100
|
function MutationProcessor(schema, storage, userClasses, outbox, modelInstanceCreator, MutationEvent, amplifyConfig, authModeStrategy, errorHandler, conflictHandler, amplifyContext) {
|
|
100
101
|
if (amplifyConfig === void 0) { amplifyConfig = {}; }
|
|
@@ -83,7 +83,7 @@ var predicates_1 = require("../../predicates");
|
|
|
83
83
|
var util_1 = require("../../util");
|
|
84
84
|
var errorMaps_1 = require("./errorMaps");
|
|
85
85
|
var api_graphql_1 = require("@aws-amplify/api-graphql");
|
|
86
|
-
var logger = new
|
|
86
|
+
var logger = new core_1.ConsoleLogger('DataStore');
|
|
87
87
|
var CONTROL_MSG;
|
|
88
88
|
(function (CONTROL_MSG) {
|
|
89
89
|
CONTROL_MSG["CONNECTED"] = "CONNECTED";
|
|
@@ -77,7 +77,7 @@ var opResultDefaults = {
|
|
|
77
77
|
nextToken: null,
|
|
78
78
|
startedAt: null,
|
|
79
79
|
};
|
|
80
|
-
var logger = new
|
|
80
|
+
var logger = new core_1.ConsoleLogger('DataStore');
|
|
81
81
|
var SyncProcessor = /** @class */ (function () {
|
|
82
82
|
function SyncProcessor(schema, syncPredicates, amplifyConfig, authModeStrategy, errorHandler, amplifyContext) {
|
|
83
83
|
if (amplifyConfig === void 0) { amplifyConfig = {}; }
|
|
@@ -213,14 +213,14 @@ var SyncProcessor = /** @class */ (function () {
|
|
|
213
213
|
case 0: return [4 /*yield*/, (0, utils_2.jitteredExponentialRetry)(function (query, variables) { return __awaiter(_this, void 0, void 0, function () {
|
|
214
214
|
var authToken, customUserAgentDetails, error_2, clientOrForbiddenErrorMessage, hasItems, unauthorized, otherErrors, result;
|
|
215
215
|
var _this = this;
|
|
216
|
-
var _a, _b, _c, _d;
|
|
217
|
-
return __generator(this, function (
|
|
218
|
-
switch (
|
|
216
|
+
var _a, _b, _c, _d, _e;
|
|
217
|
+
return __generator(this, function (_f) {
|
|
218
|
+
switch (_f.label) {
|
|
219
219
|
case 0:
|
|
220
|
-
|
|
220
|
+
_f.trys.push([0, 3, , 6]);
|
|
221
221
|
return [4 /*yield*/, (0, utils_1.getTokenForCustomAuth)(authMode, this.amplifyConfig)];
|
|
222
222
|
case 1:
|
|
223
|
-
authToken =
|
|
223
|
+
authToken = _f.sent();
|
|
224
224
|
customUserAgentDetails = {
|
|
225
225
|
category: utils_2.Category.DataStore,
|
|
226
226
|
action: utils_2.DataStoreAction.GraphQl,
|
|
@@ -231,9 +231,9 @@ var SyncProcessor = /** @class */ (function () {
|
|
|
231
231
|
authMode: authMode,
|
|
232
232
|
authToken: authToken,
|
|
233
233
|
}, undefined, customUserAgentDetails)];
|
|
234
|
-
case 2: return [2 /*return*/,
|
|
234
|
+
case 2: return [2 /*return*/, _f.sent()];
|
|
235
235
|
case 3:
|
|
236
|
-
error_2 =
|
|
236
|
+
error_2 = _f.sent();
|
|
237
237
|
clientOrForbiddenErrorMessage = (0, utils_1.getClientSideAuthError)(error_2) || (0, utils_1.getForbiddenError)(error_2);
|
|
238
238
|
if (clientOrForbiddenErrorMessage) {
|
|
239
239
|
logger.error('Sync processor retry error:', error_2);
|
|
@@ -278,7 +278,7 @@ var SyncProcessor = /** @class */ (function () {
|
|
|
278
278
|
});
|
|
279
279
|
}); }))];
|
|
280
280
|
case 4:
|
|
281
|
-
|
|
281
|
+
_f.sent();
|
|
282
282
|
core_1.Hub.dispatch('datastore', {
|
|
283
283
|
event: 'nonApplicableDataReceived',
|
|
284
284
|
data: {
|
|
@@ -286,7 +286,7 @@ var SyncProcessor = /** @class */ (function () {
|
|
|
286
286
|
modelName: modelDefinition.name,
|
|
287
287
|
},
|
|
288
288
|
});
|
|
289
|
-
|
|
289
|
+
_f.label = 5;
|
|
290
290
|
case 5:
|
|
291
291
|
/**
|
|
292
292
|
* Handle $util.unauthorized() in resolver request mapper, which responses with something
|
|
@@ -326,7 +326,7 @@ var SyncProcessor = /** @class */ (function () {
|
|
|
326
326
|
});
|
|
327
327
|
throw new utils_2.NonRetryableError(error_2);
|
|
328
328
|
}
|
|
329
|
-
if ((_d = (_c = result.data) === null || _c === void 0 ? void 0 : _c[opName]
|
|
329
|
+
if ((_e = (_d = (_c = result.data) === null || _c === void 0 ? void 0 : _c[opName]) === null || _d === void 0 ? void 0 : _d.items) === null || _e === void 0 ? void 0 : _e.length) {
|
|
330
330
|
return [2 /*return*/, result];
|
|
331
331
|
}
|
|
332
332
|
throw error_2;
|
package/lib/sync/utils.d.ts
CHANGED
|
@@ -100,6 +100,7 @@ export declare function getModelAuthModes({ authModeStrategy, defaultAuthMode, m
|
|
|
100
100
|
[key in ModelOperation]: GraphQLAuthMode[];
|
|
101
101
|
}>;
|
|
102
102
|
export declare function getForbiddenError(error: any): any;
|
|
103
|
+
export declare function resolveServiceErrorStatusCode(error: unknown): number | null;
|
|
103
104
|
export declare function getClientSideAuthError(error: any): GraphQLAuthError;
|
|
104
105
|
export declare function getTokenForCustomAuth(authMode: GraphQLAuthMode, amplifyConfig?: Record<string, any>): Promise<string | undefined>;
|
|
105
106
|
export declare function getIdentifierValue(modelDefinition: SchemaModel, model: ModelInstanceMetadata | PersistentModel): string;
|
package/lib/sync/utils.js
CHANGED
|
@@ -83,14 +83,14 @@ var __values = (this && this.__values) || function(o) {
|
|
|
83
83
|
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
84
84
|
};
|
|
85
85
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
86
|
-
exports.getIdentifierValue = exports.getTokenForCustomAuth = exports.getClientSideAuthError = exports.getForbiddenError = exports.getModelAuthModes = exports.getUserGroupsFromToken = exports.generateRTFRemediation = exports.RTFError = exports.repeatedFieldInGroup = exports.countFilterCombinations = exports.dynamicAuthFields = exports.filterFields = exports.predicateToGraphQLFilter = exports.predicateToGraphQLCondition = exports.createMutationInstanceFromModelOperation = exports.buildGraphQLOperation = exports.buildSubscriptionGraphQLOperation = exports.getAuthorizationRules = exports.generateSelectionSet = exports.getMetadataFields = exports.TransformerMutationType = void 0;
|
|
86
|
+
exports.getIdentifierValue = exports.getTokenForCustomAuth = exports.getClientSideAuthError = exports.resolveServiceErrorStatusCode = exports.getForbiddenError = exports.getModelAuthModes = exports.getUserGroupsFromToken = exports.generateRTFRemediation = exports.RTFError = exports.repeatedFieldInGroup = exports.countFilterCombinations = exports.dynamicAuthFields = exports.filterFields = exports.predicateToGraphQLFilter = exports.predicateToGraphQLCondition = exports.createMutationInstanceFromModelOperation = exports.buildGraphQLOperation = exports.buildSubscriptionGraphQLOperation = exports.getAuthorizationRules = exports.generateSelectionSet = exports.getMetadataFields = exports.TransformerMutationType = void 0;
|
|
87
87
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
88
88
|
// SPDX-License-Identifier: Apache-2.0
|
|
89
89
|
var api_1 = require("@aws-amplify/api");
|
|
90
|
-
var
|
|
90
|
+
var core_1 = require("@aws-amplify/core");
|
|
91
91
|
var types_1 = require("../types");
|
|
92
92
|
var util_1 = require("../util");
|
|
93
|
-
var logger = new
|
|
93
|
+
var logger = new core_1.ConsoleLogger('DataStore');
|
|
94
94
|
var GraphQLOperationType;
|
|
95
95
|
(function (GraphQLOperationType) {
|
|
96
96
|
GraphQLOperationType["LIST"] = "query";
|
|
@@ -765,25 +765,36 @@ function getModelAuthModes(_a) {
|
|
|
765
765
|
}
|
|
766
766
|
exports.getModelAuthModes = getModelAuthModes;
|
|
767
767
|
function getForbiddenError(error) {
|
|
768
|
-
var
|
|
769
|
-
|
|
770
|
-
'Request failed with status code 403',
|
|
771
|
-
];
|
|
768
|
+
var _a;
|
|
769
|
+
var forbiddenErrorCodes = [401, 403];
|
|
772
770
|
var forbiddenError;
|
|
773
771
|
if (error && error.errors) {
|
|
774
772
|
forbiddenError = error.errors.find(function (err) {
|
|
775
|
-
return
|
|
773
|
+
return forbiddenErrorCodes.includes(resolveServiceErrorStatusCode(err));
|
|
776
774
|
});
|
|
777
775
|
}
|
|
778
776
|
else if (error && error.message) {
|
|
779
777
|
forbiddenError = error;
|
|
780
778
|
}
|
|
781
779
|
if (forbiddenError) {
|
|
782
|
-
return forbiddenError.message;
|
|
780
|
+
return ((_a = forbiddenError.message) !== null && _a !== void 0 ? _a : "Request failed with status code ".concat(resolveServiceErrorStatusCode(forbiddenError)));
|
|
783
781
|
}
|
|
784
782
|
return null;
|
|
785
783
|
}
|
|
786
784
|
exports.getForbiddenError = getForbiddenError;
|
|
785
|
+
function resolveServiceErrorStatusCode(error) {
|
|
786
|
+
var _a, _b;
|
|
787
|
+
if ((_a = error === null || error === void 0 ? void 0 : error['$metadata']) === null || _a === void 0 ? void 0 : _a['httpStatusCode']) {
|
|
788
|
+
return Number((_b = error === null || error === void 0 ? void 0 : error['$metadata']) === null || _b === void 0 ? void 0 : _b['httpStatusCode']);
|
|
789
|
+
}
|
|
790
|
+
else if (error === null || error === void 0 ? void 0 : error.originalError) {
|
|
791
|
+
return resolveServiceErrorStatusCode(error === null || error === void 0 ? void 0 : error.originalError);
|
|
792
|
+
}
|
|
793
|
+
else {
|
|
794
|
+
return null;
|
|
795
|
+
}
|
|
796
|
+
}
|
|
797
|
+
exports.resolveServiceErrorStatusCode = resolveServiceErrorStatusCode;
|
|
787
798
|
function getClientSideAuthError(error) {
|
|
788
799
|
var clientSideAuthErrors = Object.values(api_1.GraphQLAuthError);
|
|
789
800
|
var clientSideError = error &&
|