@aws-amplify/datastore 3.7.1-unstable.4 → 3.7.2

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.
@@ -1,2 +1 @@
1
- /// <reference types="@react-native-async-storage/async-storage" />
2
- export declare function createInMemoryStore(): import("@react-native-async-storage/async-storage").AsyncStorageStatic;
1
+ export declare function createInMemoryStore(): AsyncStorage;
@@ -22,5 +22,6 @@ declare class MutationEventOutbox {
22
22
  getModelIds(storage: StorageFacade): Promise<Set<string>>;
23
23
  private syncOutboxVersionsOnDequeue;
24
24
  private mergeUserFields;
25
+ private removeTimestampFields;
25
26
  }
26
27
  export { MutationEventOutbox };
@@ -202,8 +202,7 @@ var MutationEventOutbox = /** @class */ (function () {
202
202
  return __generator(this, function (_a) {
203
203
  switch (_a.label) {
204
204
  case 0:
205
- mutationEventModelDefinition = this.schema.namespaces[util_1.SYNC].models
206
- .MutationEvent;
205
+ mutationEventModelDefinition = this.schema.namespaces[util_1.SYNC].models.MutationEvent;
207
206
  return [4 /*yield*/, storage.query(this.MutationEvent, predicates_1.ModelPredicateCreator.createFromExisting(mutationEventModelDefinition, function (c) { return c.modelId('eq', model.id); }))];
208
207
  case 1:
209
208
  mutationEvents = _a.sent();
@@ -235,7 +234,7 @@ var MutationEventOutbox = /** @class */ (function () {
235
234
  // see https://github.com/aws-amplify/amplify-js/pull/7354 for more details
236
235
  MutationEventOutbox.prototype.syncOutboxVersionsOnDequeue = function (storage, record, head, recordOp) {
237
236
  return __awaiter(this, void 0, void 0, function () {
238
- var _version, _lastChangedAt, _deleted, incomingData, data, __version, __lastChangedAt, __deleted, outgoingData, mutationEventModelDefinition, predicate, outdatedMutations, reconciledMutations;
237
+ var _version, _lastChangedAt, _deleted, _incomingData, incomingData, data, __version, __lastChangedAt, __deleted, _outgoingData, outgoingData, mutationEventModelDefinition, predicate, outdatedMutations, reconciledMutations;
239
238
  var _this = this;
240
239
  return __generator(this, function (_a) {
241
240
  switch (_a.label) {
@@ -243,12 +242,14 @@ var MutationEventOutbox = /** @class */ (function () {
243
242
  if (head.operation !== recordOp) {
244
243
  return [2 /*return*/];
245
244
  }
246
- _version = record._version, _lastChangedAt = record._lastChangedAt, _deleted = record._deleted, incomingData = __rest(record, ["_version", "_lastChangedAt", "_deleted"]);
245
+ _version = record._version, _lastChangedAt = record._lastChangedAt, _deleted = record._deleted, _incomingData = __rest(record, ["_version", "_lastChangedAt", "_deleted"]);
246
+ incomingData = this.removeTimestampFields(head.model, _incomingData);
247
247
  data = JSON.parse(head.data);
248
248
  if (!data) {
249
249
  return [2 /*return*/];
250
250
  }
251
- __version = data._version, __lastChangedAt = data._lastChangedAt, __deleted = data._deleted, outgoingData = __rest(data, ["_version", "_lastChangedAt", "_deleted"]);
251
+ __version = data._version, __lastChangedAt = data._lastChangedAt, __deleted = data._deleted, _outgoingData = __rest(data, ["_version", "_lastChangedAt", "_deleted"]);
252
+ outgoingData = this.removeTimestampFields(head.model, _outgoingData);
252
253
  // Don't sync the version when the data in the response does not match the data
253
254
  // in the request, i.e., when there's a handled conflict
254
255
  if (!util_1.valuesEqual(incomingData, outgoingData, true)) {
@@ -294,6 +295,39 @@ var MutationEventOutbox = /** @class */ (function () {
294
295
  _deleted: _deleted }, previousData), currentData));
295
296
  return this.modelInstanceCreator(this.MutationEvent, __assign(__assign({}, current), { data: data }));
296
297
  };
298
+ /*
299
+ if a model is using custom timestamp fields
300
+ the custom field names will be stored in the model attributes
301
+
302
+ e.g.
303
+ "attributes": [
304
+ {
305
+ "type": "model",
306
+ "properties": {
307
+ "timestamps": {
308
+ "createdAt": "createdOn",
309
+ "updatedAt": "updatedOn"
310
+ }
311
+ }
312
+ }
313
+ ]
314
+ */
315
+ MutationEventOutbox.prototype.removeTimestampFields = function (model, record) {
316
+ var _a, _b;
317
+ var CREATED_AT_DEFAULT_KEY = 'createdAt';
318
+ var UPDATED_AT_DEFAULT_KEY = 'updatedAt';
319
+ var createdTimestampKey = CREATED_AT_DEFAULT_KEY;
320
+ var updatedTimestampKey = UPDATED_AT_DEFAULT_KEY;
321
+ var modelAttributes = (_a = this.schema.namespaces[util_1.USER].models[model].attributes) === null || _a === void 0 ? void 0 : _a.find(function (attr) { return attr.type === 'model'; });
322
+ var timestampFieldsMap = (_b = modelAttributes === null || modelAttributes === void 0 ? void 0 : modelAttributes.properties) === null || _b === void 0 ? void 0 : _b.timestamps;
323
+ if (timestampFieldsMap) {
324
+ createdTimestampKey = timestampFieldsMap[CREATED_AT_DEFAULT_KEY];
325
+ updatedTimestampKey = timestampFieldsMap[UPDATED_AT_DEFAULT_KEY];
326
+ }
327
+ delete record[createdTimestampKey];
328
+ delete record[updatedTimestampKey];
329
+ return record;
330
+ };
297
331
  return MutationEventOutbox;
298
332
  }());
299
333
  exports.MutationEventOutbox = MutationEventOutbox;
@@ -1 +1 @@
1
- {"version":3,"file":"outbox.js","sourceRoot":"","sources":["../../src/sync/outbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outbox.js","sourceRoot":"","sources":["../../src/sync/outbox.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1 @@
1
- /// <reference types="@react-native-async-storage/async-storage" />
2
- export declare function createInMemoryStore(): import("@react-native-async-storage/async-storage").AsyncStorageStatic;
1
+ export declare function createInMemoryStore(): AsyncStorage;
@@ -22,5 +22,6 @@ declare class MutationEventOutbox {
22
22
  getModelIds(storage: StorageFacade): Promise<Set<string>>;
23
23
  private syncOutboxVersionsOnDequeue;
24
24
  private mergeUserFields;
25
+ private removeTimestampFields;
25
26
  }
26
27
  export { MutationEventOutbox };
@@ -74,7 +74,7 @@ var __read = (this && this.__read) || function (o, n) {
74
74
  };
75
75
  import { ModelPredicateCreator } from '../predicates';
76
76
  import { QueryOne, } from '../types';
77
- import { SYNC, valuesEqual } from '../util';
77
+ import { USER, SYNC, valuesEqual } from '../util';
78
78
  import { TransformerMutationType } from './utils';
79
79
  // TODO: Persist deleted ids
80
80
  var MutationEventOutbox = /** @class */ (function () {
@@ -200,8 +200,7 @@ var MutationEventOutbox = /** @class */ (function () {
200
200
  return __generator(this, function (_a) {
201
201
  switch (_a.label) {
202
202
  case 0:
203
- mutationEventModelDefinition = this.schema.namespaces[SYNC].models
204
- .MutationEvent;
203
+ mutationEventModelDefinition = this.schema.namespaces[SYNC].models.MutationEvent;
205
204
  return [4 /*yield*/, storage.query(this.MutationEvent, ModelPredicateCreator.createFromExisting(mutationEventModelDefinition, function (c) { return c.modelId('eq', model.id); }))];
206
205
  case 1:
207
206
  mutationEvents = _a.sent();
@@ -233,7 +232,7 @@ var MutationEventOutbox = /** @class */ (function () {
233
232
  // see https://github.com/aws-amplify/amplify-js/pull/7354 for more details
234
233
  MutationEventOutbox.prototype.syncOutboxVersionsOnDequeue = function (storage, record, head, recordOp) {
235
234
  return __awaiter(this, void 0, void 0, function () {
236
- var _version, _lastChangedAt, _deleted, incomingData, data, __version, __lastChangedAt, __deleted, outgoingData, mutationEventModelDefinition, predicate, outdatedMutations, reconciledMutations;
235
+ var _version, _lastChangedAt, _deleted, _incomingData, incomingData, data, __version, __lastChangedAt, __deleted, _outgoingData, outgoingData, mutationEventModelDefinition, predicate, outdatedMutations, reconciledMutations;
237
236
  var _this = this;
238
237
  return __generator(this, function (_a) {
239
238
  switch (_a.label) {
@@ -241,12 +240,14 @@ var MutationEventOutbox = /** @class */ (function () {
241
240
  if (head.operation !== recordOp) {
242
241
  return [2 /*return*/];
243
242
  }
244
- _version = record._version, _lastChangedAt = record._lastChangedAt, _deleted = record._deleted, incomingData = __rest(record, ["_version", "_lastChangedAt", "_deleted"]);
243
+ _version = record._version, _lastChangedAt = record._lastChangedAt, _deleted = record._deleted, _incomingData = __rest(record, ["_version", "_lastChangedAt", "_deleted"]);
244
+ incomingData = this.removeTimestampFields(head.model, _incomingData);
245
245
  data = JSON.parse(head.data);
246
246
  if (!data) {
247
247
  return [2 /*return*/];
248
248
  }
249
- __version = data._version, __lastChangedAt = data._lastChangedAt, __deleted = data._deleted, outgoingData = __rest(data, ["_version", "_lastChangedAt", "_deleted"]);
249
+ __version = data._version, __lastChangedAt = data._lastChangedAt, __deleted = data._deleted, _outgoingData = __rest(data, ["_version", "_lastChangedAt", "_deleted"]);
250
+ outgoingData = this.removeTimestampFields(head.model, _outgoingData);
250
251
  // Don't sync the version when the data in the response does not match the data
251
252
  // in the request, i.e., when there's a handled conflict
252
253
  if (!valuesEqual(incomingData, outgoingData, true)) {
@@ -292,6 +293,39 @@ var MutationEventOutbox = /** @class */ (function () {
292
293
  _deleted: _deleted }, previousData), currentData));
293
294
  return this.modelInstanceCreator(this.MutationEvent, __assign(__assign({}, current), { data: data }));
294
295
  };
296
+ /*
297
+ if a model is using custom timestamp fields
298
+ the custom field names will be stored in the model attributes
299
+
300
+ e.g.
301
+ "attributes": [
302
+ {
303
+ "type": "model",
304
+ "properties": {
305
+ "timestamps": {
306
+ "createdAt": "createdOn",
307
+ "updatedAt": "updatedOn"
308
+ }
309
+ }
310
+ }
311
+ ]
312
+ */
313
+ MutationEventOutbox.prototype.removeTimestampFields = function (model, record) {
314
+ var _a, _b;
315
+ var CREATED_AT_DEFAULT_KEY = 'createdAt';
316
+ var UPDATED_AT_DEFAULT_KEY = 'updatedAt';
317
+ var createdTimestampKey = CREATED_AT_DEFAULT_KEY;
318
+ var updatedTimestampKey = UPDATED_AT_DEFAULT_KEY;
319
+ var modelAttributes = (_a = this.schema.namespaces[USER].models[model].attributes) === null || _a === void 0 ? void 0 : _a.find(function (attr) { return attr.type === 'model'; });
320
+ var timestampFieldsMap = (_b = modelAttributes === null || modelAttributes === void 0 ? void 0 : modelAttributes.properties) === null || _b === void 0 ? void 0 : _b.timestamps;
321
+ if (timestampFieldsMap) {
322
+ createdTimestampKey = timestampFieldsMap[CREATED_AT_DEFAULT_KEY];
323
+ updatedTimestampKey = timestampFieldsMap[UPDATED_AT_DEFAULT_KEY];
324
+ }
325
+ delete record[createdTimestampKey];
326
+ delete record[updatedTimestampKey];
327
+ return record;
328
+ };
295
329
  return MutationEventOutbox;
296
330
  }());
297
331
  export { MutationEventOutbox };
@@ -1 +1 @@
1
- {"version":3,"file":"outbox.js","sourceRoot":"","sources":["../../src/sync/outbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outbox.js","sourceRoot":"","sources":["../../src/sync/outbox.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/datastore",
3
- "version": "3.7.1-unstable.4+6f217aa89",
3
+ "version": "3.7.2",
4
4
  "description": "AppSyncLocal support for aws-amplify",
5
5
  "main": "./lib/index.js",
6
6
  "module": "./lib-esm/index.js",
@@ -48,11 +48,11 @@
48
48
  "fake-indexeddb": "3.0.0"
49
49
  },
50
50
  "dependencies": {
51
- "@aws-amplify/api": "4.0.27-unstable.4+6f217aa89",
52
- "@aws-amplify/auth": "4.3.17-unstable.4+6f217aa89",
53
- "@aws-amplify/core": "4.3.9-unstable.4+6f217aa89",
54
- "@aws-amplify/pubsub": "4.2.3-unstable.4+6f217aa89",
55
- "amazon-cognito-identity-js": "5.2.4-unstable.25+6f217aa89",
51
+ "@aws-amplify/api": "4.0.28",
52
+ "@aws-amplify/auth": "4.3.18",
53
+ "@aws-amplify/core": "4.3.10",
54
+ "@aws-amplify/pubsub": "4.2.4",
55
+ "amazon-cognito-identity-js": "5.2.3",
56
56
  "idb": "5.0.6",
57
57
  "immer": "9.0.6",
58
58
  "ulid": "2.3.0",
@@ -111,5 +111,5 @@
111
111
  "lib-esm"
112
112
  ]
113
113
  },
114
- "gitHead": "6f217aa89e672fc4665816756994e6245b19227e"
114
+ "gitHead": "ab767c197e902ffdbdc909503f0024f44a0058b4"
115
115
  }
@@ -12,7 +12,7 @@ import {
12
12
  PersistentModelConstructor,
13
13
  QueryOne,
14
14
  } from '../types';
15
- import { SYNC, valuesEqual } from '../util';
15
+ import { USER, SYNC, valuesEqual } from '../util';
16
16
  import { TransformerMutationType } from './utils';
17
17
 
18
18
  // TODO: Persist deleted ids
@@ -31,9 +31,8 @@ class MutationEventOutbox {
31
31
  mutationEvent: MutationEvent
32
32
  ): Promise<void> {
33
33
  storage.runExclusive(async s => {
34
- const mutationEventModelDefinition = this.schema.namespaces[SYNC].models[
35
- 'MutationEvent'
36
- ];
34
+ const mutationEventModelDefinition =
35
+ this.schema.namespaces[SYNC].models['MutationEvent'];
37
36
 
38
37
  const predicate = ModelPredicateCreator.createFromExisting<MutationEvent>(
39
38
  mutationEventModelDefinition,
@@ -124,8 +123,8 @@ class MutationEventOutbox {
124
123
  storage: StorageFacade,
125
124
  model: T
126
125
  ): Promise<MutationEvent[]> {
127
- const mutationEventModelDefinition = this.schema.namespaces[SYNC].models
128
- .MutationEvent;
126
+ const mutationEventModelDefinition =
127
+ this.schema.namespaces[SYNC].models.MutationEvent;
129
128
 
130
129
  const mutationEvents = await storage.query(
131
130
  this.MutationEvent,
@@ -161,7 +160,9 @@ class MutationEventOutbox {
161
160
  return;
162
161
  }
163
162
 
164
- const { _version, _lastChangedAt, _deleted, ...incomingData } = record;
163
+ const { _version, _lastChangedAt, _deleted, ..._incomingData } = record;
164
+ const incomingData = this.removeTimestampFields(head.model, _incomingData);
165
+
165
166
  const data = JSON.parse(head.data);
166
167
 
167
168
  if (!data) {
@@ -172,8 +173,9 @@ class MutationEventOutbox {
172
173
  _version: __version,
173
174
  _lastChangedAt: __lastChangedAt,
174
175
  _deleted: __deleted,
175
- ...outgoingData
176
+ ..._outgoingData
176
177
  } = data;
178
+ const outgoingData = this.removeTimestampFields(head.model, _outgoingData);
177
179
 
178
180
  // Don't sync the version when the data in the response does not match the data
179
181
  // in the request, i.e., when there's a handled conflict
@@ -181,9 +183,8 @@ class MutationEventOutbox {
181
183
  return;
182
184
  }
183
185
 
184
- const mutationEventModelDefinition = this.schema.namespaces[SYNC].models[
185
- 'MutationEvent'
186
- ];
186
+ const mutationEventModelDefinition =
187
+ this.schema.namespaces[SYNC].models['MutationEvent'];
187
188
 
188
189
  const predicate = ModelPredicateCreator.createFromExisting<MutationEvent>(
189
190
  mutationEventModelDefinition,
@@ -222,13 +223,8 @@ class MutationEventOutbox {
222
223
  previous: MutationEvent,
223
224
  current: MutationEvent
224
225
  ): MutationEvent {
225
- const {
226
- _version,
227
- id,
228
- _lastChangedAt,
229
- _deleted,
230
- ...previousData
231
- } = JSON.parse(previous.data);
226
+ const { _version, id, _lastChangedAt, _deleted, ...previousData } =
227
+ JSON.parse(previous.data);
232
228
 
233
229
  const {
234
230
  id: __id,
@@ -252,6 +248,49 @@ class MutationEventOutbox {
252
248
  data,
253
249
  });
254
250
  }
251
+
252
+ /*
253
+ if a model is using custom timestamp fields
254
+ the custom field names will be stored in the model attributes
255
+
256
+ e.g.
257
+ "attributes": [
258
+ {
259
+ "type": "model",
260
+ "properties": {
261
+ "timestamps": {
262
+ "createdAt": "createdOn",
263
+ "updatedAt": "updatedOn"
264
+ }
265
+ }
266
+ }
267
+ ]
268
+ */
269
+ private removeTimestampFields(
270
+ model: string,
271
+ record: PersistentModel
272
+ ): PersistentModel {
273
+ const CREATED_AT_DEFAULT_KEY = 'createdAt';
274
+ const UPDATED_AT_DEFAULT_KEY = 'updatedAt';
275
+
276
+ let createdTimestampKey = CREATED_AT_DEFAULT_KEY;
277
+ let updatedTimestampKey = UPDATED_AT_DEFAULT_KEY;
278
+
279
+ const modelAttributes = this.schema.namespaces[USER].models[
280
+ model
281
+ ].attributes?.find(attr => attr.type === 'model');
282
+ const timestampFieldsMap = modelAttributes?.properties?.timestamps;
283
+
284
+ if (timestampFieldsMap) {
285
+ createdTimestampKey = timestampFieldsMap[CREATED_AT_DEFAULT_KEY];
286
+ updatedTimestampKey = timestampFieldsMap[UPDATED_AT_DEFAULT_KEY];
287
+ }
288
+
289
+ delete (record as Record<string, any>)[createdTimestampKey];
290
+ delete (record as Record<string, any>)[updatedTimestampKey];
291
+
292
+ return record;
293
+ }
255
294
  }
256
295
 
257
296
  export { MutationEventOutbox };