@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.
Files changed (38) hide show
  1. package/lib/datastore/datastore.js +1 -1
  2. package/lib/storage/adapter/IndexedDBAdapter.js +2 -2
  3. package/lib/storage/adapter/StorageAdapterBase.js +2 -2
  4. package/lib/storage/storage.js +2 -1
  5. package/lib/sync/datastoreConnectivity.js +2 -2
  6. package/lib/sync/index.js +1 -1
  7. package/lib/sync/processors/errorMaps.js +3 -4
  8. package/lib/sync/processors/mutation.js +2 -1
  9. package/lib/sync/processors/subscription.js +1 -1
  10. package/lib/sync/processors/sync.js +11 -11
  11. package/lib/sync/utils.d.ts +1 -0
  12. package/lib/sync/utils.js +20 -9
  13. package/lib/tsconfig.tsbuildinfo +1 -1
  14. package/lib-esm/datastore/datastore.js +3 -3
  15. package/lib-esm/storage/adapter/IndexedDBAdapter.js +2 -2
  16. package/lib-esm/storage/adapter/StorageAdapterBase.js +2 -2
  17. package/lib-esm/storage/storage.js +3 -2
  18. package/lib-esm/sync/datastoreConnectivity.js +2 -2
  19. package/lib-esm/sync/index.js +3 -3
  20. package/lib-esm/sync/processors/errorMaps.js +3 -4
  21. package/lib-esm/sync/processors/mutation.js +3 -2
  22. package/lib-esm/sync/processors/subscription.js +3 -3
  23. package/lib-esm/sync/processors/sync.js +13 -13
  24. package/lib-esm/sync/utils.d.ts +1 -0
  25. package/lib-esm/sync/utils.js +18 -8
  26. package/lib-esm/tsconfig.tsbuildinfo +1 -1
  27. package/package.json +8 -7
  28. package/src/datastore/datastore.ts +3 -6
  29. package/src/storage/adapter/IndexedDBAdapter.ts +2 -2
  30. package/src/storage/adapter/StorageAdapterBase.ts +2 -2
  31. package/src/storage/storage.ts +3 -2
  32. package/src/sync/datastoreConnectivity.ts +2 -2
  33. package/src/sync/index.ts +4 -7
  34. package/src/sync/processors/errorMaps.ts +3 -3
  35. package/src/sync/processors/mutation.ts +2 -2
  36. package/src/sync/processors/subscription.ts +2 -3
  37. package/src/sync/processors/sync.ts +3 -4
  38. 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 utils_3.Logger('DataStore');
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 utils_1 = require("@aws-amplify/core/internals/utils");
127
- var logger = new utils_1.Logger('DataStore');
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 utils_1 = require("@aws-amplify/core/internals/utils");
63
- var logger = new utils_1.Logger('DataStore');
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() {
@@ -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 logger = new utils_2.Logger('DataStore');
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 utils_1 = require("@aws-amplify/core/internals/utils");
55
- var logger = new utils_1.Logger('DataStore');
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 utils_1.Logger('DataStore');
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
- /^Request failed with status code 401/.test(error.message);
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 utils_1.Logger('DataStore');
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 utils_1.Logger('DataStore');
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 utils_2.ConsoleLogger('DataStore');
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 (_e) {
218
- switch (_e.label) {
216
+ var _a, _b, _c, _d, _e;
217
+ return __generator(this, function (_f) {
218
+ switch (_f.label) {
219
219
  case 0:
220
- _e.trys.push([0, 3, , 6]);
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 = _e.sent();
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*/, _e.sent()];
234
+ case 2: return [2 /*return*/, _f.sent()];
235
235
  case 3:
236
- error_2 = _e.sent();
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
- _e.sent();
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
- _e.label = 5;
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].items) === null || _d === void 0 ? void 0 : _d.length) {
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;
@@ -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 utils_1 = require("@aws-amplify/core/internals/utils");
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 utils_1.Logger('DataStore');
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 forbiddenErrorMessages = [
769
- 'Request failed with status code 401',
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 forbiddenErrorMessages.includes(err.message);
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 &&