@aws-amplify/datastore 5.0.1-unstable.cfbde4c.0 → 5.0.1
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 → dist/cjs}/authModeStrategies/defaultAuthStrategy.js +3 -1
- package/dist/cjs/authModeStrategies/defaultAuthStrategy.js.map +1 -0
- package/{lib → dist/cjs}/authModeStrategies/index.js +3 -1
- package/dist/cjs/authModeStrategies/index.js.map +1 -0
- package/{lib → dist/cjs}/authModeStrategies/multiAuthStrategy.js +3 -3
- package/dist/cjs/authModeStrategies/multiAuthStrategy.js.map +1 -0
- package/{lib → dist/cjs}/datastore/datastore.js +5 -3
- package/dist/cjs/datastore/datastore.js.map +1 -0
- package/{lib → dist/cjs}/index.js +5 -16
- package/dist/cjs/index.js.map +1 -0
- package/{lib → dist/cjs}/predicates/index.js +3 -1
- package/dist/cjs/predicates/index.js.map +1 -0
- package/{lib → dist/cjs}/predicates/next.js +3 -1
- package/dist/cjs/predicates/next.js.map +1 -0
- package/{lib → dist/cjs}/predicates/sort.js +4 -3
- package/dist/cjs/predicates/sort.js.map +1 -0
- package/{lib → dist/cjs}/storage/adapter/AsyncStorageAdapter.js +5 -5
- package/dist/cjs/storage/adapter/AsyncStorageAdapter.js.map +1 -0
- package/{lib → dist/cjs}/storage/adapter/AsyncStorageDatabase.js +3 -1
- package/dist/cjs/storage/adapter/AsyncStorageDatabase.js.map +1 -0
- package/{lib → dist/cjs}/storage/adapter/InMemoryStore.js +3 -1
- package/dist/cjs/storage/adapter/InMemoryStore.js.map +1 -0
- package/{lib → dist/cjs}/storage/adapter/InMemoryStore.native.js +5 -5
- package/dist/cjs/storage/adapter/InMemoryStore.native.js.map +1 -0
- package/{lib → dist/cjs}/storage/adapter/IndexedDBAdapter.js +5 -25
- package/dist/cjs/storage/adapter/IndexedDBAdapter.js.map +1 -0
- package/{lib → dist/cjs}/storage/adapter/StorageAdapterBase.js +3 -1
- package/dist/cjs/storage/adapter/StorageAdapterBase.js.map +1 -0
- package/{lib → dist/cjs}/storage/adapter/getDefaultAdapter/index.js +6 -6
- package/dist/cjs/storage/adapter/getDefaultAdapter/index.js.map +1 -0
- package/dist/cjs/storage/adapter/getDefaultAdapter/index.native.js +10 -0
- package/dist/cjs/storage/adapter/getDefaultAdapter/index.native.js.map +1 -0
- package/{lib → dist/cjs}/storage/adapter/index.js +3 -1
- package/dist/cjs/storage/adapter/index.js.map +1 -0
- package/{lib → dist/cjs}/storage/relationship.js +3 -1
- package/dist/cjs/storage/relationship.js.map +1 -0
- package/{lib → dist/cjs}/storage/storage.js +5 -5
- package/dist/cjs/storage/storage.js.map +1 -0
- package/{lib → dist/cjs}/sync/datastoreConnectivity.js +4 -2
- package/dist/cjs/sync/datastoreConnectivity.js.map +1 -0
- package/{lib → dist/cjs}/sync/datastoreReachability/index.js +3 -1
- package/dist/cjs/sync/datastoreReachability/index.js.map +1 -0
- package/{lib → dist/cjs}/sync/datastoreReachability/index.native.js +3 -1
- package/dist/cjs/sync/datastoreReachability/index.native.js.map +1 -0
- package/{lib → dist/cjs}/sync/index.js +6 -7
- package/dist/cjs/sync/index.js.map +1 -0
- package/{lib → dist/cjs}/sync/merger.js +3 -1
- package/dist/cjs/sync/merger.js.map +1 -0
- package/{lib → dist/cjs}/sync/outbox.js +3 -1
- package/dist/cjs/sync/outbox.js.map +1 -0
- package/{lib → dist/cjs}/sync/processors/errorMaps.js +4 -4
- package/dist/cjs/sync/processors/errorMaps.js.map +1 -0
- package/{lib → dist/cjs}/sync/processors/mutation.js +3 -1
- package/dist/cjs/sync/processors/mutation.js.map +1 -0
- package/{lib → dist/cjs}/sync/processors/subscription.js +4 -4
- package/dist/cjs/sync/processors/subscription.js.map +1 -0
- package/{lib → dist/cjs}/sync/processors/sync.js +3 -1
- package/dist/cjs/sync/processors/sync.js.map +1 -0
- package/{lib → dist/cjs}/sync/utils.js +3 -1
- package/dist/cjs/sync/utils.js.map +1 -0
- package/{lib → dist/cjs}/types.js +12 -21
- package/dist/cjs/types.js.map +1 -0
- package/{lib → dist/cjs}/util.js +3 -1
- package/dist/cjs/util.js.map +1 -0
- package/{lib-esm/authModeStrategies/defaultAuthStrategy.js → dist/esm/authModeStrategies/defaultAuthStrategy.mjs} +4 -1
- package/dist/esm/authModeStrategies/defaultAuthStrategy.mjs.map +1 -0
- package/dist/esm/authModeStrategies/index.mjs +3 -0
- package/dist/esm/authModeStrategies/index.mjs.map +1 -0
- package/{lib-esm/authModeStrategies/multiAuthStrategy.js → dist/esm/authModeStrategies/multiAuthStrategy.mjs} +7 -5
- package/dist/esm/authModeStrategies/multiAuthStrategy.mjs.map +1 -0
- package/{lib-esm/datastore/datastore.js → dist/esm/datastore/datastore.mjs} +30 -26
- package/dist/esm/datastore/datastore.mjs.map +1 -0
- package/dist/esm/index.mjs +19 -0
- package/dist/esm/index.mjs.map +1 -0
- package/{lib-esm/predicates/index.js → dist/esm/predicates/index.mjs} +10 -7
- package/dist/esm/predicates/index.mjs.map +1 -0
- package/{lib-esm/predicates/next.js → dist/esm/predicates/next.mjs} +15 -11
- package/dist/esm/predicates/next.mjs.map +1 -0
- package/{lib-esm/predicates/sort.js → dist/esm/predicates/sort.mjs} +3 -2
- package/dist/esm/predicates/sort.mjs.map +1 -0
- package/{lib-esm/storage/adapter/AsyncStorageAdapter.js → dist/esm/storage/adapter/AsyncStorageAdapter.mjs} +10 -6
- package/dist/esm/storage/adapter/AsyncStorageAdapter.mjs.map +1 -0
- package/{lib-esm/storage/adapter/AsyncStorageDatabase.js → dist/esm/storage/adapter/AsyncStorageDatabase.mjs} +7 -4
- package/dist/esm/storage/adapter/AsyncStorageDatabase.mjs.map +1 -0
- package/{lib-esm/storage/adapter/InMemoryStore.js → dist/esm/storage/adapter/InMemoryStore.mjs} +5 -2
- package/dist/esm/storage/adapter/InMemoryStore.mjs.map +1 -0
- package/{lib-esm/storage/adapter/InMemoryStore.native.js → dist/esm/storage/adapter/InMemoryStore.native.mjs} +6 -2
- package/dist/esm/storage/adapter/InMemoryStore.native.mjs.map +1 -0
- package/{lib-esm/storage/adapter/IndexedDBAdapter.js → dist/esm/storage/adapter/IndexedDBAdapter.mjs} +10 -6
- package/dist/esm/storage/adapter/IndexedDBAdapter.mjs.map +1 -0
- package/{lib-esm/storage/adapter/StorageAdapterBase.js → dist/esm/storage/adapter/StorageAdapterBase.mjs} +9 -5
- package/dist/esm/storage/adapter/StorageAdapterBase.mjs.map +1 -0
- package/dist/esm/storage/adapter/getDefaultAdapter/index.mjs +13 -0
- package/dist/esm/storage/adapter/getDefaultAdapter/index.mjs.map +1 -0
- package/dist/esm/storage/adapter/getDefaultAdapter/index.native.mjs +8 -0
- package/dist/esm/storage/adapter/getDefaultAdapter/index.native.mjs.map +1 -0
- package/dist/esm/storage/adapter/index.mjs +2 -0
- package/dist/esm/storage/adapter/index.mjs.map +1 -0
- package/{lib-esm/storage/relationship.js → dist/esm/storage/relationship.mjs} +6 -2
- package/dist/esm/storage/relationship.mjs.map +1 -0
- package/{lib-esm/storage/storage.js → dist/esm/storage/storage.mjs} +11 -8
- package/dist/esm/storage/storage.mjs.map +1 -0
- package/{lib-esm/sync/datastoreConnectivity.js → dist/esm/sync/datastoreConnectivity.mjs} +9 -5
- package/dist/esm/sync/datastoreConnectivity.mjs.map +1 -0
- package/dist/esm/sync/datastoreReachability/index.d.ts +1 -0
- package/{lib-esm/sync/datastoreReachability/index.js → dist/esm/sync/datastoreReachability/index.mjs} +6 -2
- package/dist/esm/sync/datastoreReachability/index.mjs.map +1 -0
- package/dist/esm/sync/datastoreReachability/index.native.d.ts +1 -0
- package/{lib-esm/sync/datastoreReachability/index.native.js → dist/esm/sync/datastoreReachability/index.native.mjs} +7 -3
- package/dist/esm/sync/datastoreReachability/index.native.mjs.map +1 -0
- package/{lib-esm/sync/index.js → dist/esm/sync/index.mjs} +24 -21
- package/dist/esm/sync/index.mjs.map +1 -0
- package/{lib-esm/sync/merger.js → dist/esm/sync/merger.mjs} +5 -2
- package/dist/esm/sync/merger.mjs.map +1 -0
- package/{lib-esm/sync/outbox.js → dist/esm/sync/outbox.mjs} +7 -4
- package/dist/esm/sync/outbox.mjs.map +1 -0
- package/{lib-esm/sync/processors/errorMaps.js → dist/esm/sync/processors/errorMaps.mjs} +13 -11
- package/dist/esm/sync/processors/errorMaps.mjs.map +1 -0
- package/{lib → dist/esm}/sync/processors/mutation.d.ts +1 -1
- package/{lib-esm/sync/processors/mutation.js → dist/esm/sync/processors/mutation.mjs} +10 -7
- package/dist/esm/sync/processors/mutation.mjs.map +1 -0
- package/{lib-esm/sync/processors/subscription.js → dist/esm/sync/processors/subscription.mjs} +18 -17
- package/dist/esm/sync/processors/subscription.mjs.map +1 -0
- package/{lib-esm/sync/processors/sync.js → dist/esm/sync/processors/sync.mjs} +8 -5
- package/dist/esm/sync/processors/sync.mjs.map +1 -0
- package/{lib-esm/sync/utils.js → dist/esm/sync/utils.mjs} +30 -26
- package/dist/esm/sync/utils.mjs.map +1 -0
- package/{lib-esm/types.js → dist/esm/types.mjs} +34 -30
- package/dist/esm/types.mjs.map +1 -0
- package/{lib-esm/util.js → dist/esm/util.mjs} +61 -57
- package/dist/esm/util.mjs.map +1 -0
- package/package.json +133 -137
- package/lib/authModeStrategies/defaultAuthStrategy.d.ts +0 -2
- package/lib/authModeStrategies/index.d.ts +0 -2
- package/lib/authModeStrategies/multiAuthStrategy.d.ts +0 -13
- package/lib/datastore/datastore.d.ts +0 -231
- package/lib/index.d.ts +0 -16
- package/lib/predicates/index.d.ts +0 -100
- package/lib/predicates/next.d.ts +0 -317
- package/lib/predicates/sort.d.ts +0 -8
- package/lib/ssr/index.d.ts +0 -3
- package/lib/ssr/index.js +0 -18
- package/lib/storage/adapter/AsyncStorageAdapter.d.ts +0 -40
- package/lib/storage/adapter/AsyncStorageDatabase.d.ts +0 -39
- package/lib/storage/adapter/InMemoryStore.d.ts +0 -11
- package/lib/storage/adapter/InMemoryStore.native.d.ts +0 -1
- package/lib/storage/adapter/IndexedDBAdapter.d.ts +0 -70
- package/lib/storage/adapter/StorageAdapterBase.d.ts +0 -134
- package/lib/storage/adapter/getDefaultAdapter/index.d.ts +0 -3
- package/lib/storage/adapter/getDefaultAdapter/index.native.d.ts +0 -3
- package/lib/storage/adapter/getDefaultAdapter/index.native.js +0 -10
- package/lib/storage/adapter/index.d.ts +0 -9
- package/lib/storage/relationship.d.ts +0 -149
- package/lib/storage/storage.d.ts +0 -50
- package/lib/sync/datastoreConnectivity.d.ts +0 -16
- package/lib/sync/datastoreReachability/index.d.ts +0 -1
- package/lib/sync/datastoreReachability/index.native.d.ts +0 -1
- package/lib/sync/index.d.ts +0 -103
- package/lib/sync/merger.d.ts +0 -17
- package/lib/sync/outbox.d.ts +0 -27
- package/lib/sync/processors/errorMaps.d.ts +0 -17
- package/lib/sync/processors/subscription.d.ts +0 -42
- package/lib/sync/processors/sync.d.ts +0 -28
- package/lib/sync/utils.d.ts +0 -107
- package/lib/tsconfig.tsbuildinfo +0 -1
- package/lib/types.d.ts +0 -641
- package/lib/util.d.ts +0 -196
- package/lib-esm/authModeStrategies/index.js +0 -4
- package/lib-esm/index.js +0 -14
- package/lib-esm/ssr/index.d.ts +0 -3
- package/lib-esm/ssr/index.js +0 -13
- package/lib-esm/storage/adapter/getDefaultAdapter/index.js +0 -10
- package/lib-esm/storage/adapter/getDefaultAdapter/index.native.js +0 -5
- package/lib-esm/storage/adapter/index.js +0 -1
- package/lib-esm/sync/datastoreReachability/index.d.ts +0 -1
- package/lib-esm/sync/datastoreReachability/index.native.d.ts +0 -1
- package/lib-esm/sync/processors/mutation.d.ts +0 -67
- package/lib-esm/tsconfig.tsbuildinfo +0 -1
- package/src/ssr/index.ts +0 -27
- package/ssr/package.json +0 -8
- /package/{lib-esm → dist/esm}/authModeStrategies/defaultAuthStrategy.d.ts +0 -0
- /package/{lib-esm → dist/esm}/authModeStrategies/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/authModeStrategies/multiAuthStrategy.d.ts +0 -0
- /package/{lib-esm → dist/esm}/datastore/datastore.d.ts +0 -0
- /package/{lib-esm → dist/esm}/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/predicates/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/predicates/next.d.ts +0 -0
- /package/{lib-esm → dist/esm}/predicates/sort.d.ts +0 -0
- /package/{lib-esm → dist/esm}/storage/adapter/AsyncStorageAdapter.d.ts +0 -0
- /package/{lib-esm → dist/esm}/storage/adapter/AsyncStorageDatabase.d.ts +0 -0
- /package/{lib-esm → dist/esm}/storage/adapter/InMemoryStore.d.ts +0 -0
- /package/{lib-esm → dist/esm}/storage/adapter/InMemoryStore.native.d.ts +0 -0
- /package/{lib-esm → dist/esm}/storage/adapter/IndexedDBAdapter.d.ts +0 -0
- /package/{lib-esm → dist/esm}/storage/adapter/StorageAdapterBase.d.ts +0 -0
- /package/{lib-esm → dist/esm}/storage/adapter/getDefaultAdapter/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/storage/adapter/getDefaultAdapter/index.native.d.ts +0 -0
- /package/{lib-esm → dist/esm}/storage/adapter/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/storage/relationship.d.ts +0 -0
- /package/{lib-esm → dist/esm}/storage/storage.d.ts +0 -0
- /package/{lib-esm → dist/esm}/sync/datastoreConnectivity.d.ts +0 -0
- /package/{lib-esm → dist/esm}/sync/index.d.ts +0 -0
- /package/{lib-esm → dist/esm}/sync/merger.d.ts +0 -0
- /package/{lib-esm → dist/esm}/sync/outbox.d.ts +0 -0
- /package/{lib-esm → dist/esm}/sync/processors/errorMaps.d.ts +0 -0
- /package/{lib-esm → dist/esm}/sync/processors/subscription.d.ts +0 -0
- /package/{lib-esm → dist/esm}/sync/processors/sync.d.ts +0 -0
- /package/{lib-esm → dist/esm}/sync/utils.d.ts +0 -0
- /package/{lib-esm → dist/esm}/types.d.ts +0 -0
- /package/{lib-esm → dist/esm}/util.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/storage/adapter/index.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n"],"names":[],"mappings":";;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.ModelRelationship = void 0;
|
|
4
5
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
@@ -268,3 +269,4 @@ class ModelRelationship {
|
|
|
268
269
|
}
|
|
269
270
|
}
|
|
270
271
|
exports.ModelRelationship = ModelRelationship;
|
|
272
|
+
//# sourceMappingURL=relationship.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relationship.js","sources":["../../../src/storage/relationship.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ModelRelationship = void 0;\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst types_1 = require(\"../types\");\n/**\n * Defines a relationship from a LOCAL model.field to a REMOTE model.field and helps\n * navigate the relationship, providing a simplified peek at the relationship details\n * pertinent to setting FK's and constructing join conditions.\n *\n * Because I mean, relationships are tough.\n *\n */\nclass ModelRelationship {\n /**\n * @param modelDefinition The \"local\" model.\n * @param field The \"local\" model field.\n */\n constructor(model, field) {\n if (!(0, types_1.isFieldAssociation)(model.schema, field)) {\n throw new Error(`${model.schema.name}.${field} is not a relationship.`);\n }\n this.localModel = model;\n this._field = field;\n }\n /**\n * Returns a ModelRelationship for the the given model and field if the pair\n * indicates a relationship to another model. Else, returns `null`.\n *\n * @param model The model the relationship field exists in.\n * @param field The field that may relates the local model to the remote model.\n */\n static from(model, field) {\n if ((0, types_1.isFieldAssociation)(model.schema, field)) {\n return new this(model, field);\n }\n else {\n return null;\n }\n }\n /**\n * Enumerates all valid `ModelRelationship`'s on the given model.\n *\n * @param model The model definition to enumerate relationships of.\n */\n static allFrom(model) {\n const relationships = [];\n for (const field of Object.keys(model.schema.fields)) {\n const relationship = ModelRelationship.from(model, field);\n relationship && relationships.push(relationship);\n }\n return relationships;\n }\n get localDefinition() {\n return this.localModel.schema;\n }\n /**\n * The virtual/computed field on the local model that should contain\n * the related model.\n */\n get field() {\n return this._field;\n }\n /**\n * The constructor that can be used to query DataStore or create instance for\n * the local model.\n */\n get localConstructor() {\n return this.localModel.builder;\n }\n /**\n * The name/type of the relationship the local model has with the remote model\n * via the defined local model field.\n */\n get type() {\n return this.localAssocation.connectionType;\n }\n /**\n * Raw details about the local FK as-is from the local model's field definition in\n * the schema. This field requires interpretation.\n *\n * @see localJoinFields\n * @see localAssociatedWith\n */\n get localAssocation() {\n return this.localDefinition.fields[this.field].association;\n }\n /**\n * The field names on the local model that can be used to query or queried to match\n * with instances of the remote model.\n *\n * Fields are returned in-order to match the order of `this.remoteKeyFields`.\n */\n get localJoinFields() {\n /**\n * This is relatively straightforward, actually.\n *\n * If we have explicitly stated targetNames, codegen is telling us authoritatively\n * to use those fields for this relationship. The local model \"points to\" fields\n * in the remote one.\n *\n * In other cases, the remote model points to this one's\n */\n if (this.localAssocation.targetName) {\n // This case is theoretically unnecessary going forward.\n return [this.localAssocation.targetName];\n }\n else if (this.localAssocation.targetNames) {\n return this.localAssocation.targetNames;\n }\n else {\n return this.localPKFields;\n }\n }\n /**\n * The field names on the local model that uniquely identify it.\n *\n * These fields may or may not be relevant to the join fields.\n */\n get localPKFields() {\n return this.localModel.pkField;\n }\n get remoteDefinition() {\n return this.remoteModelType.modelConstructor?.schema;\n }\n get remoteModelType() {\n return this.localDefinition.fields[this.field].type;\n }\n /**\n * Constructor that can be used to query DataStore or create instances for\n * the remote model.\n */\n get remoteModelConstructor() {\n return this.remoteModelType.modelConstructor.builder;\n }\n /**\n * The field names on the remote model that uniquely identify it.\n *\n * These fields may or may not be relevant to the join fields.\n */\n get remotePKFields() {\n return this.remoteModelType.modelConstructor?.pkField || ['id'];\n }\n /**\n * The `associatedWith` fields from the local perspective.\n *\n * When present, these fields indicate which fields on the remote model to use\n * when looking for a remote association and/or determining the final remote\n * key fields.\n */\n get localAssociatedWith() {\n if (this.localAssocation.connectionType === 'HAS_MANY' ||\n this.localAssocation.connectionType === 'HAS_ONE') {\n // This de-arraying is theoretically unnecessary going forward.\n return Array.isArray(this.localAssocation.associatedWith)\n ? this.localAssocation.associatedWith\n : [this.localAssocation.associatedWith];\n }\n else {\n return undefined;\n }\n }\n /**\n * The `remote` model's associated field's `assocation` metadata, if\n * present.\n *\n * This is used when determining if the remote model's associated field\n * specifies which FK fields to use. If this value is `undefined`, the\n * name of the remote field (`this.localAssociatedWith`) *is* the remote\n * key field.\n */\n get explicitRemoteAssociation() {\n if (this.localAssociatedWith) {\n if (this.localAssociatedWith.length === 1) {\n return this.remoteDefinition.fields[this.localAssociatedWith[0]]\n ?.association;\n }\n else {\n return undefined;\n }\n }\n }\n /**\n * The field names on the remote model that can used to query or queried to match\n * with instances of the local model.\n *\n * Fields are returned in-order to match the order of `this.localKeyFields`.\n */\n get remoteJoinFields() {\n /**\n * If the local relationship explicitly names \"associated with\" fields, we\n * need to see if this points direction to a reciprocating assocation. If it\n * does, the remote assocation indicates what fields to use.\n */\n if (this.explicitRemoteAssociation?.targetName) {\n // This case is theoretically unnecessary going forward.\n return [this.explicitRemoteAssociation.targetName];\n }\n else if (this.explicitRemoteAssociation?.targetNames) {\n return this.explicitRemoteAssociation?.targetNames;\n }\n else if (this.localAssociatedWith) {\n return this.localAssociatedWith;\n }\n else {\n return this.remotePKFields;\n }\n }\n /**\n * Whether this relationship everything necessary to get, set, and query from\n * the perspective of the local model provided at instantiation.\n */\n get isComplete() {\n return this.localJoinFields.length > 0 && this.remoteJoinFields.length > 0;\n }\n /**\n * Creates an FK mapper object with respect to the given related instance.\n *\n * E.g., if the local FK fields are `[parentId, parentName]` and point to\n * `[customId, name]` on the remote model, `createLocalFKObject(remote)`\n * will return:\n *\n * ```\n * {\n * \tparentId: remote.customId,\n * \tparentName: remote.name\n * }\n * ```\n *\n * @param remote The remote related instance.\n */\n createLocalFKObject(remote) {\n const fk = {};\n for (let i = 0; i < this.localJoinFields.length; i++) {\n fk[this.localJoinFields[i]] = remote[this.remoteJoinFields[i]];\n }\n return fk;\n }\n /**\n * Creates an query mapper object to help fetch the remote instance(s) or\n * `null` if any of the necessary local fields are `null` or `undefined`.\n *\n * E.g., if the local FK fields are `[parentId, parentName]` and point to\n * `[customId, name]` on the remote model, `createLocalFKObject(remote)`\n * will return:\n *\n * ```\n * {\n * \tcustomId: local.parentId\n * \tname: local.parentName\n * }\n * ```\n *\n * If the local fields are not populated, returns\n *\n * @param local The local instance.\n */\n createRemoteQueryObject(local) {\n const query = {};\n for (let i = 0; i < this.remoteJoinFields.length; i++) {\n const localValue = local[this.localJoinFields[i]];\n if (localValue === null || localValue === undefined)\n return null;\n query[this.remoteJoinFields[i]] = local[this.localJoinFields[i]];\n }\n return query;\n }\n}\nexports.ModelRelationship = ModelRelationship;\n"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
5
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
4
|
exports.ExclusiveStorage = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
7
6
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
8
7
|
// SPDX-License-Identifier: Apache-2.0
|
|
9
8
|
const rxjs_1 = require("rxjs");
|
|
@@ -11,7 +10,7 @@ const predicates_1 = require("../predicates");
|
|
|
11
10
|
const types_1 = require("../types");
|
|
12
11
|
const util_1 = require("../util");
|
|
13
12
|
const utils_1 = require("../sync/utils");
|
|
14
|
-
const getDefaultAdapter_1 = __importDefault(require("./adapter/getDefaultAdapter"));
|
|
13
|
+
const getDefaultAdapter_1 = tslib_1.__importDefault(require("./adapter/getDefaultAdapter"));
|
|
15
14
|
const utils_2 = require("@aws-amplify/core/internals/utils");
|
|
16
15
|
const core_1 = require("@aws-amplify/core");
|
|
17
16
|
const logger = new core_1.ConsoleLogger('DataStore');
|
|
@@ -335,3 +334,4 @@ class ExclusiveStorage {
|
|
|
335
334
|
}
|
|
336
335
|
}
|
|
337
336
|
exports.ExclusiveStorage = ExclusiveStorage;
|
|
337
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sources":["../../../src/storage/storage.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExclusiveStorage = void 0;\nconst tslib_1 = require(\"tslib\");\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst rxjs_1 = require(\"rxjs\");\nconst predicates_1 = require(\"../predicates\");\nconst types_1 = require(\"../types\");\nconst util_1 = require(\"../util\");\nconst utils_1 = require(\"../sync/utils\");\nconst getDefaultAdapter_1 = tslib_1.__importDefault(require(\"./adapter/getDefaultAdapter\"));\nconst utils_2 = require(\"@aws-amplify/core/internals/utils\");\nconst core_1 = require(\"@aws-amplify/core\");\nconst logger = new core_1.ConsoleLogger('DataStore');\nclass StorageClass {\n constructor(schema, namespaceResolver, getModelConstructorByModelName, modelInstanceCreator, adapter, sessionId) {\n this.schema = schema;\n this.namespaceResolver = namespaceResolver;\n this.getModelConstructorByModelName = getModelConstructorByModelName;\n this.modelInstanceCreator = modelInstanceCreator;\n this.adapter = adapter;\n this.sessionId = sessionId;\n this.adapter = this.adapter || (0, getDefaultAdapter_1.default)();\n this.pushStream = new rxjs_1.Subject();\n }\n static getNamespace() {\n const namespace = {\n name: util_1.STORAGE,\n relationships: {},\n enums: {},\n models: {},\n nonModels: {},\n };\n return namespace;\n }\n async init() {\n if (this.initialized !== undefined) {\n await this.initialized;\n return;\n }\n logger.debug('Starting Storage');\n let resolve;\n let reject;\n this.initialized = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n this.adapter.setUp(this.schema, this.namespaceResolver, this.modelInstanceCreator, this.getModelConstructorByModelName, this.sessionId).then(resolve, reject);\n await this.initialized;\n }\n async save(model, condition, mutator, patchesTuple) {\n await this.init();\n if (!this.adapter) {\n throw new Error('Storage adapter is missing');\n }\n const result = await this.adapter.save(model, condition);\n result.forEach(r => {\n const [savedElement, opType] = r;\n // truthy when save is called by the Merger\n const syncResponse = !!mutator;\n let updateMutationInput;\n // don't attempt to calc mutation input when storage.save\n // is called by Merger, i.e., when processing an AppSync response\n if ((opType === types_1.OpType.UPDATE || opType === types_1.OpType.INSERT) &&\n !syncResponse) {\n //\n // TODO: LOOK!!!\n // the `model` used here is in effect regardless of what model\n // comes back from adapter.save().\n // Prior to fix, SQLite adapter had been returning two models\n // of different types, resulting in invalid outbox entries.\n //\n // the bug is essentially fixed in SQLite adapter.\n // leaving as-is, because it's currently unclear whether anything\n // depends on this remaining as-is.\n //\n updateMutationInput = this.getChangedFieldsInput(model, savedElement, patchesTuple);\n // // an update without changed user fields\n // => don't create mutationEvent\n if (updateMutationInput === null) {\n return result;\n }\n }\n const element = updateMutationInput || savedElement;\n const modelConstructor = Object.getPrototypeOf(savedElement)\n .constructor;\n this.pushStream.next({\n model: modelConstructor,\n opType,\n element,\n mutator,\n condition: (condition &&\n predicates_1.ModelPredicateCreator.getPredicates(condition, false)) ||\n null,\n savedElement,\n });\n });\n return result;\n }\n async delete(modelOrModelConstructor, condition, mutator) {\n await this.init();\n if (!this.adapter) {\n throw new Error('Storage adapter is missing');\n }\n let models;\n let deleted;\n [models, deleted] = await this.adapter.delete(modelOrModelConstructor, condition);\n const modelConstructor = (0, util_1.isModelConstructor)(modelOrModelConstructor)\n ? modelOrModelConstructor\n : Object.getPrototypeOf(modelOrModelConstructor || {})\n .constructor;\n const namespaceName = this.namespaceResolver(modelConstructor);\n const modelDefinition = this.schema.namespaces[namespaceName].models[modelConstructor.name];\n const modelIds = new Set(models.map(model => {\n const modelId = (0, utils_1.getIdentifierValue)(modelDefinition, model);\n return modelId;\n }));\n if (!(0, util_1.isModelConstructor)(modelOrModelConstructor) &&\n !Array.isArray(deleted)) {\n deleted = [deleted];\n }\n deleted.forEach(model => {\n const modelConstructor = Object.getPrototypeOf(model)\n .constructor;\n let theCondition;\n if (!(0, util_1.isModelConstructor)(modelOrModelConstructor)) {\n const modelId = (0, utils_1.getIdentifierValue)(modelDefinition, model);\n theCondition = modelIds.has(modelId)\n ? predicates_1.ModelPredicateCreator.getPredicates(condition, false)\n : undefined;\n }\n this.pushStream.next({\n model: modelConstructor,\n opType: types_1.OpType.DELETE,\n element: model,\n mutator,\n condition: theCondition || null,\n });\n });\n return [models, deleted];\n }\n async query(modelConstructor, predicate, pagination) {\n await this.init();\n if (!this.adapter) {\n throw new Error('Storage adapter is missing');\n }\n return await this.adapter.query(modelConstructor, predicate, pagination);\n }\n async queryOne(modelConstructor, firstOrLast = types_1.QueryOne.FIRST) {\n await this.init();\n if (!this.adapter) {\n throw new Error('Storage adapter is missing');\n }\n return await this.adapter.queryOne(modelConstructor, firstOrLast);\n }\n observe(modelConstructor, predicate, skipOwn) {\n const listenToAll = !modelConstructor;\n const { predicates, type } = (predicate && predicates_1.ModelPredicateCreator.getPredicates(predicate, false)) ||\n {};\n let result = this.pushStream\n .pipe((0, rxjs_1.filter)(({ mutator }) => {\n return !skipOwn || mutator !== skipOwn;\n }))\n .pipe((0, rxjs_1.map)(({ mutator: _mutator, ...message }) => message));\n if (!listenToAll) {\n result = result.pipe((0, rxjs_1.filter)(({ model, element }) => {\n if (modelConstructor !== model) {\n return false;\n }\n if (!!predicates && !!type) {\n return (0, util_1.validatePredicate)(element, type, predicates);\n }\n return true;\n }));\n }\n return result;\n }\n async clear(completeObservable = true) {\n this.initialized = undefined;\n if (!this.adapter) {\n throw new Error('Storage adapter is missing');\n }\n await this.adapter.clear();\n if (completeObservable) {\n this.pushStream.complete();\n }\n }\n async batchSave(modelConstructor, items, mutator) {\n await this.init();\n if (!this.adapter) {\n throw new Error('Storage adapter is missing');\n }\n const result = await this.adapter.batchSave(modelConstructor, items);\n result.forEach(([element, opType]) => {\n this.pushStream.next({\n model: modelConstructor,\n opType,\n element,\n mutator,\n condition: null,\n });\n });\n return result;\n }\n // returns null if no user fields were changed (determined by value comparison)\n getChangedFieldsInput(model, originalElement, patchesTuple) {\n const containsPatches = patchesTuple && patchesTuple.length;\n if (!containsPatches) {\n return null;\n }\n const [patches, source] = patchesTuple;\n const updatedElement = {};\n // extract array of updated fields from patches\n const updatedFields = (patches.map(patch => patch.path && patch.path[0]));\n // check model def for association and replace with targetName if exists\n const modelConstructor = Object.getPrototypeOf(model)\n .constructor;\n const namespace = this.namespaceResolver(modelConstructor);\n const { fields } = this.schema.namespaces[namespace].models[modelConstructor.name];\n const { primaryKey, compositeKeys = [] } = this.schema.namespaces[namespace].keys?.[modelConstructor.name] || {};\n // set original values for these fields\n updatedFields.forEach((field) => {\n const targetNames = (0, types_1.isTargetNameAssociation)(fields[field]?.association);\n if (Array.isArray(targetNames)) {\n // if field refers to a belongsTo relation, use the target field instead\n for (const targetName of targetNames) {\n // check field values by value. Ignore unchanged fields\n if (!(0, util_1.valuesEqual)(source[targetName], originalElement[targetName])) {\n // if the field was updated to 'undefined', replace with 'null' for compatibility with JSON and GraphQL\n updatedElement[targetName] =\n originalElement[targetName] === undefined\n ? null\n : originalElement[targetName];\n for (const fieldSet of compositeKeys) {\n // include all of the fields that comprise the composite key\n if (fieldSet.has(targetName)) {\n for (const compositeField of fieldSet) {\n updatedElement[compositeField] =\n originalElement[compositeField];\n }\n }\n }\n }\n }\n }\n else {\n // Backwards compatibility pre-CPK\n // if field refers to a belongsTo relation, use the target field instead\n const key = targetNames || field;\n // check field values by value. Ignore unchanged fields\n if (!(0, util_1.valuesEqual)(source[key], originalElement[key])) {\n // if the field was updated to 'undefined', replace with 'null' for compatibility with JSON and GraphQL\n updatedElement[key] =\n originalElement[key] === undefined ? null : originalElement[key];\n for (const fieldSet of compositeKeys) {\n // include all of the fields that comprise the composite key\n if (fieldSet.has(key)) {\n for (const compositeField of fieldSet) {\n updatedElement[compositeField] =\n originalElement[compositeField];\n }\n }\n }\n }\n }\n });\n // Exit early when there are no changes introduced in the update mutation\n if (Object.keys(updatedElement).length === 0) {\n return null;\n }\n // include field(s) from custom PK if one is specified for the model\n if (primaryKey && primaryKey.length) {\n for (const pkField of primaryKey) {\n updatedElement[pkField] = originalElement[pkField];\n }\n }\n const { id, _version, _lastChangedAt, _deleted } = originalElement;\n // For update mutations we only want to send fields with changes\n // and the required internal fields\n return {\n ...updatedElement,\n id,\n _version,\n _lastChangedAt,\n _deleted,\n };\n }\n}\nclass ExclusiveStorage {\n constructor(schema, namespaceResolver, getModelConstructorByModelName, modelInstanceCreator, adapter, sessionId) {\n this.mutex = new utils_2.Mutex();\n this.storage = new StorageClass(schema, namespaceResolver, getModelConstructorByModelName, modelInstanceCreator, adapter, sessionId);\n }\n runExclusive(fn) {\n return this.mutex.runExclusive(fn.bind(this, this.storage));\n }\n async save(model, condition, mutator, patchesTuple) {\n return this.runExclusive(storage => storage.save(model, condition, mutator, patchesTuple));\n }\n async delete(modelOrModelConstructor, condition, mutator) {\n return this.runExclusive(storage => {\n if ((0, util_1.isModelConstructor)(modelOrModelConstructor)) {\n const modelConstructor = modelOrModelConstructor;\n return storage.delete(modelConstructor, condition, mutator);\n }\n else {\n const model = modelOrModelConstructor;\n return storage.delete(model, condition, mutator);\n }\n });\n }\n async query(modelConstructor, predicate, pagination) {\n return this.runExclusive(storage => storage.query(modelConstructor, predicate, pagination));\n }\n async queryOne(modelConstructor, firstOrLast = types_1.QueryOne.FIRST) {\n return this.runExclusive(storage => storage.queryOne(modelConstructor, firstOrLast));\n }\n static getNamespace() {\n return StorageClass.getNamespace();\n }\n observe(modelConstructor, predicate, skipOwn) {\n return this.storage.observe(modelConstructor, predicate, skipOwn);\n }\n async clear() {\n await this.runExclusive(storage => storage.clear());\n }\n batchSave(modelConstructor, items) {\n return this.storage.batchSave(modelConstructor, items);\n }\n async init() {\n return this.storage.init();\n }\n}\nexports.ExclusiveStorage = ExclusiveStorage;\n"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
5
|
// SPDX-License-Identifier: Apache-2.0
|
|
5
6
|
const rxjs_1 = require("rxjs");
|
|
6
7
|
const datastoreReachability_1 = require("./datastoreReachability");
|
|
7
8
|
const core_1 = require("@aws-amplify/core");
|
|
8
|
-
|
|
9
|
+
new core_1.ConsoleLogger('DataStore');
|
|
9
10
|
const RECONNECTING_IN = 5000; // 5s this may be configurable in the future
|
|
10
11
|
class DataStoreConnectivity {
|
|
11
12
|
constructor() {
|
|
@@ -53,3 +54,4 @@ class DataStoreConnectivity {
|
|
|
53
54
|
}
|
|
54
55
|
}
|
|
55
56
|
exports.default = DataStoreConnectivity;
|
|
57
|
+
//# sourceMappingURL=datastoreConnectivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datastoreConnectivity.js","sources":["../../../src/sync/datastoreConnectivity.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst rxjs_1 = require(\"rxjs\");\nconst datastoreReachability_1 = require(\"./datastoreReachability\");\nconst core_1 = require(\"@aws-amplify/core\");\nconst logger = new core_1.ConsoleLogger('DataStore');\nconst RECONNECTING_IN = 5000; // 5s this may be configurable in the future\nclass DataStoreConnectivity {\n constructor() {\n this.connectionStatus = {\n online: false,\n };\n }\n status() {\n if (this.observer) {\n throw new Error('Subscriber already exists');\n }\n return new rxjs_1.Observable(observer => {\n this.observer = observer;\n // Will be used to forward socket connection changes, enhancing Reachability\n this.subscription = datastoreReachability_1.ReachabilityMonitor.subscribe(({ online }) => {\n this.connectionStatus.online = online;\n const observerResult = { ...this.connectionStatus }; // copyOf status\n observer.next(observerResult);\n });\n return () => {\n clearTimeout(this.timeout);\n this.unsubscribe();\n };\n });\n }\n unsubscribe() {\n if (this.subscription) {\n clearTimeout(this.timeout);\n this.subscription.unsubscribe();\n }\n }\n // for consistency with other background processors.\n async stop() {\n this.unsubscribe();\n return;\n }\n socketDisconnected() {\n if (this.observer && typeof this.observer.next === 'function') {\n this.observer.next({ online: false }); // Notify network issue from the socket\n this.timeout = setTimeout(() => {\n const observerResult = { ...this.connectionStatus }; // copyOf status\n this.observer.next(observerResult);\n }, RECONNECTING_IN); // giving time for socket cleanup and network status stabilization\n }\n }\n}\nexports.default = DataStoreConnectivity;\n"],"names":[],"mappings":";;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D;AACA;AACA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC/B,MAAM,uBAAuB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;AACnE,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE;AACrD,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,qBAAqB,CAAC;AAC5B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,gBAAgB,GAAG;AAChC,YAAY,MAAM,EAAE,KAAK;AACzB,SAAS,CAAC;AACV,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;AACzD,SAAS;AACT,QAAQ,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,IAAI;AACjD,YAAY,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACrC;AACA,YAAY,IAAI,CAAC,YAAY,GAAG,uBAAuB,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK;AACtG,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,MAAM,CAAC;AACtD,gBAAgB,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACpE,gBAAgB,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC9C,aAAa,CAAC,CAAC;AACf,YAAY,OAAO,MAAM;AACzB,gBAAgB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3C,gBAAgB,IAAI,CAAC,WAAW,EAAE,CAAC;AACnC,aAAa,CAAC;AACd,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;AAC/B,YAAY,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvC,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;AAC5C,SAAS;AACT,KAAK;AACL;AACA,IAAI,MAAM,IAAI,GAAG;AACjB,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3B,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,kBAAkB,GAAG;AACzB,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE;AACvE,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AAClD,YAAY,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM;AAC5C,gBAAgB,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACpE,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACnD,aAAa,EAAE,eAAe,CAAC,CAAC;AAChC,SAAS;AACT,KAAK;AACL,CAAC;AACD,OAAO,CAAC,OAAO,GAAG,qBAAqB;;"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.ReachabilityMonitor = void 0;
|
|
4
5
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
5
6
|
// SPDX-License-Identifier: Apache-2.0
|
|
6
7
|
const utils_1 = require("@aws-amplify/core/internals/utils");
|
|
7
8
|
exports.ReachabilityMonitor = new utils_1.Reachability().networkMonitor();
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/sync/datastoreReachability/index.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReachabilityMonitor = void 0;\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nexports.ReachabilityMonitor = new utils_1.Reachability().networkMonitor();\n"],"names":[],"mappings":";;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,mBAAmB,GAAG,KAAK,CAAC,CAAC;AACrC;AACA;AACA,MAAM,OAAO,GAAG,OAAO,CAAC,mCAAmC,CAAC,CAAC;AAC7D,OAAO,CAAC,mBAAmB,GAAG,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,cAAc,EAAE;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.ReachabilityMonitor = void 0;
|
|
4
5
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
@@ -6,3 +7,4 @@ exports.ReachabilityMonitor = void 0;
|
|
|
6
7
|
const utils_1 = require("@aws-amplify/core/internals/utils");
|
|
7
8
|
const react_native_1 = require("@aws-amplify/react-native");
|
|
8
9
|
exports.ReachabilityMonitor = new utils_1.Reachability().networkMonitor((0, react_native_1.loadNetInfo)());
|
|
10
|
+
//# sourceMappingURL=index.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.native.js","sources":["../../../../src/sync/datastoreReachability/index.native.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReachabilityMonitor = void 0;\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst react_native_1 = require(\"@aws-amplify/react-native\");\nexports.ReachabilityMonitor = new utils_1.Reachability().networkMonitor((0, react_native_1.loadNetInfo)());\n"],"names":[],"mappings":";;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,mBAAmB,GAAG,KAAK,CAAC,CAAC;AACrC;AACA;AACA,MAAM,OAAO,GAAG,OAAO,CAAC,mCAAmC,CAAC,CAAC;AAC7D,MAAM,cAAc,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;AAC5D,OAAO,CAAC,mBAAmB,GAAG,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,WAAW,GAAG,CAAC;;"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
5
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
4
|
exports.SyncEngine = exports.ControlMessage = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
7
6
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
8
7
|
// SPDX-License-Identifier: Apache-2.0
|
|
9
8
|
const utils_1 = require("@aws-amplify/core/internals/utils");
|
|
@@ -12,7 +11,7 @@ const rxjs_1 = require("rxjs");
|
|
|
12
11
|
const predicates_1 = require("../predicates");
|
|
13
12
|
const types_1 = require("../types");
|
|
14
13
|
const util_1 = require("../util");
|
|
15
|
-
const datastoreConnectivity_1 = __importDefault(require("./datastoreConnectivity"));
|
|
14
|
+
const datastoreConnectivity_1 = tslib_1.__importDefault(require("./datastoreConnectivity"));
|
|
16
15
|
const merger_1 = require("./merger");
|
|
17
16
|
const outbox_1 = require("./outbox");
|
|
18
17
|
const mutation_1 = require("./processors/mutation");
|
|
@@ -426,11 +425,10 @@ class SyncEngine {
|
|
|
426
425
|
// but, it's not clear to me yet how to support an
|
|
427
426
|
// extensible, centralized cancelable `sleep()` elegantly.
|
|
428
427
|
await this.runningProcesses.add(async (onTerminate) => {
|
|
429
|
-
let sleepTimer;
|
|
430
428
|
let unsleep;
|
|
431
429
|
const sleep = new Promise(_unsleep => {
|
|
432
430
|
unsleep = _unsleep;
|
|
433
|
-
|
|
431
|
+
setTimeout(unsleep, msNextFullSync);
|
|
434
432
|
});
|
|
435
433
|
onTerminate.then(() => {
|
|
436
434
|
terminated = true;
|
|
@@ -721,3 +719,4 @@ class SyncEngine {
|
|
|
721
719
|
}
|
|
722
720
|
}
|
|
723
721
|
exports.SyncEngine = SyncEngine;
|
|
722
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/sync/index.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SyncEngine = exports.ControlMessage = void 0;\nconst tslib_1 = require(\"tslib\");\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst core_1 = require(\"@aws-amplify/core\");\nconst rxjs_1 = require(\"rxjs\");\nconst predicates_1 = require(\"../predicates\");\nconst types_1 = require(\"../types\");\nconst util_1 = require(\"../util\");\nconst datastoreConnectivity_1 = tslib_1.__importDefault(require(\"./datastoreConnectivity\"));\nconst merger_1 = require(\"./merger\");\nconst outbox_1 = require(\"./outbox\");\nconst mutation_1 = require(\"./processors/mutation\");\nconst subscription_1 = require(\"./processors/subscription\");\nconst sync_1 = require(\"./processors/sync\");\nconst utils_2 = require(\"./utils\");\nconst api_graphql_1 = require(\"@aws-amplify/api-graphql\");\nconst logger = new core_1.ConsoleLogger('DataStore');\nconst ownSymbol = Symbol('sync');\nvar ControlMessage;\n(function (ControlMessage) {\n ControlMessage[\"SYNC_ENGINE_STORAGE_SUBSCRIBED\"] = \"storageSubscribed\";\n ControlMessage[\"SYNC_ENGINE_SUBSCRIPTIONS_ESTABLISHED\"] = \"subscriptionsEstablished\";\n ControlMessage[\"SYNC_ENGINE_SYNC_QUERIES_STARTED\"] = \"syncQueriesStarted\";\n ControlMessage[\"SYNC_ENGINE_SYNC_QUERIES_READY\"] = \"syncQueriesReady\";\n ControlMessage[\"SYNC_ENGINE_MODEL_SYNCED\"] = \"modelSynced\";\n ControlMessage[\"SYNC_ENGINE_OUTBOX_MUTATION_ENQUEUED\"] = \"outboxMutationEnqueued\";\n ControlMessage[\"SYNC_ENGINE_OUTBOX_MUTATION_PROCESSED\"] = \"outboxMutationProcessed\";\n ControlMessage[\"SYNC_ENGINE_OUTBOX_STATUS\"] = \"outboxStatus\";\n ControlMessage[\"SYNC_ENGINE_NETWORK_STATUS\"] = \"networkStatus\";\n ControlMessage[\"SYNC_ENGINE_READY\"] = \"ready\";\n})(ControlMessage = exports.ControlMessage || (exports.ControlMessage = {}));\nclass SyncEngine {\n getModelSyncedStatus(modelConstructor) {\n return this.modelSyncedStatus.get(modelConstructor);\n }\n constructor(schema, namespaceResolver, modelClasses, userModelClasses, storage, modelInstanceCreator, conflictHandler, errorHandler, syncPredicates, amplifyConfig = {}, authModeStrategy, amplifyContext, connectivityMonitor) {\n this.schema = schema;\n this.namespaceResolver = namespaceResolver;\n this.modelClasses = modelClasses;\n this.userModelClasses = userModelClasses;\n this.storage = storage;\n this.modelInstanceCreator = modelInstanceCreator;\n this.syncPredicates = syncPredicates;\n this.amplifyConfig = amplifyConfig;\n this.authModeStrategy = authModeStrategy;\n this.amplifyContext = amplifyContext;\n this.connectivityMonitor = connectivityMonitor;\n this.online = false;\n this.modelSyncedStatus = new WeakMap();\n this.connectionDisrupted = false;\n this.runningProcesses = new utils_1.BackgroundProcessManager();\n this.waitForSleepState = new Promise(resolve => {\n this.syncQueriesObservableStartSleeping = resolve;\n });\n const MutationEvent = this.modelClasses['MutationEvent'];\n this.outbox = new outbox_1.MutationEventOutbox(this.schema, MutationEvent, modelInstanceCreator, ownSymbol);\n this.modelMerger = new merger_1.ModelMerger(this.outbox, ownSymbol);\n this.syncQueriesProcessor = new sync_1.SyncProcessor(this.schema, this.syncPredicates, this.amplifyConfig, this.authModeStrategy, errorHandler, this.amplifyContext);\n this.subscriptionsProcessor = new subscription_1.SubscriptionProcessor(this.schema, this.syncPredicates, this.amplifyConfig, this.authModeStrategy, errorHandler, this.amplifyContext);\n this.mutationsProcessor = new mutation_1.MutationProcessor(this.schema, this.storage, this.userModelClasses, this.outbox, this.modelInstanceCreator, MutationEvent, this.amplifyConfig, this.authModeStrategy, errorHandler, conflictHandler, this.amplifyContext);\n this.datastoreConnectivity =\n this.connectivityMonitor || new datastoreConnectivity_1.default();\n }\n start(params) {\n return new rxjs_1.Observable(observer => {\n logger.log('starting sync engine...');\n let subscriptions = [];\n this.runningProcesses.add(async () => {\n try {\n await this.setupModels(params);\n }\n catch (err) {\n observer.error(err);\n return;\n }\n // this is awaited at the bottom. so, we don't need to register\n // this explicitly with the context. it's already contained.\n const startPromise = new Promise((doneStarting, failedStarting) => {\n this.datastoreConnectivity.status().subscribe(async ({ online }) => this.runningProcesses.isOpen &&\n this.runningProcesses.add(async (onTerminate) => {\n // From offline to online\n if (online && !this.online) {\n this.online = online;\n observer.next({\n type: ControlMessage.SYNC_ENGINE_NETWORK_STATUS,\n data: {\n active: this.online,\n },\n });\n let ctlSubsObservable;\n let dataSubsObservable;\n this.stopDisruptionListener =\n this.startDisruptionListener();\n //#region GraphQL Subscriptions\n [ctlSubsObservable, dataSubsObservable] =\n this.subscriptionsProcessor.start();\n try {\n await new Promise((resolve, reject) => {\n onTerminate.then(reject);\n const ctlSubsSubscription = ctlSubsObservable.subscribe({\n next: msg => {\n if (msg === subscription_1.CONTROL_MSG.CONNECTED) {\n resolve();\n }\n },\n error: err => {\n reject(err);\n const handleDisconnect = this.disconnectionHandler();\n handleDisconnect(err);\n },\n });\n subscriptions.push(ctlSubsSubscription);\n });\n }\n catch (err) {\n observer.error(err);\n failedStarting();\n return;\n }\n logger.log('Realtime ready');\n observer.next({\n type: ControlMessage.SYNC_ENGINE_SUBSCRIPTIONS_ESTABLISHED,\n });\n //#endregion\n //#region Base & Sync queries\n try {\n await new Promise((resolve, reject) => {\n const syncQuerySubscription = this.syncQueriesObservable().subscribe({\n next: message => {\n const { type } = message;\n if (type ===\n ControlMessage.SYNC_ENGINE_SYNC_QUERIES_READY) {\n resolve();\n }\n observer.next(message);\n },\n complete: () => {\n resolve();\n },\n error: error => {\n reject(error);\n },\n });\n if (syncQuerySubscription) {\n subscriptions.push(syncQuerySubscription);\n }\n });\n }\n catch (error) {\n observer.error(error);\n failedStarting();\n return;\n }\n //#endregion\n //#region process mutations (outbox)\n subscriptions.push(this.mutationsProcessor\n .start()\n .subscribe(({ modelDefinition, model: item, hasMore }) => this.runningProcesses.add(async () => {\n const modelConstructor = this.userModelClasses[modelDefinition.name];\n const model = this.modelInstanceCreator(modelConstructor, item);\n await this.storage.runExclusive(storage => this.modelMerger.merge(storage, model, modelDefinition));\n observer.next({\n type: ControlMessage.SYNC_ENGINE_OUTBOX_MUTATION_PROCESSED,\n data: {\n model: modelConstructor,\n element: model,\n },\n });\n observer.next({\n type: ControlMessage.SYNC_ENGINE_OUTBOX_STATUS,\n data: {\n isEmpty: !hasMore,\n },\n });\n }, 'mutation processor event')));\n //#endregion\n //#region Merge subscriptions buffer\n subscriptions.push(dataSubsObservable.subscribe(([_transformerMutationType, modelDefinition, item]) => this.runningProcesses.add(async () => {\n const modelConstructor = this.userModelClasses[modelDefinition.name];\n const model = this.modelInstanceCreator(modelConstructor, item);\n await this.storage.runExclusive(storage => this.modelMerger.merge(storage, model, modelDefinition));\n }, 'subscription dataSubsObservable event')));\n //#endregion\n }\n else if (!online) {\n this.online = online;\n observer.next({\n type: ControlMessage.SYNC_ENGINE_NETWORK_STATUS,\n data: {\n active: this.online,\n },\n });\n subscriptions.forEach(sub => sub.unsubscribe());\n subscriptions = [];\n }\n doneStarting();\n }, 'datastore connectivity event'));\n });\n this.storage\n .observe(null, null, ownSymbol)\n .pipe((0, rxjs_1.filter)(({ model }) => {\n const modelDefinition = this.getModelDefinition(model);\n return modelDefinition.syncable === true;\n }))\n .subscribe({\n next: async ({ opType, model, element, condition }) => this.runningProcesses.add(async () => {\n const namespace = this.schema.namespaces[this.namespaceResolver(model)];\n const MutationEventConstructor = this.modelClasses['MutationEvent'];\n const modelDefinition = this.getModelDefinition(model);\n const graphQLCondition = (0, utils_2.predicateToGraphQLCondition)(condition, modelDefinition);\n const mutationEvent = (0, utils_2.createMutationInstanceFromModelOperation)(namespace.relationships, this.getModelDefinition(model), opType, model, element, graphQLCondition, MutationEventConstructor, this.modelInstanceCreator);\n await this.outbox.enqueue(this.storage, mutationEvent);\n observer.next({\n type: ControlMessage.SYNC_ENGINE_OUTBOX_MUTATION_ENQUEUED,\n data: {\n model,\n element,\n },\n });\n observer.next({\n type: ControlMessage.SYNC_ENGINE_OUTBOX_STATUS,\n data: {\n isEmpty: false,\n },\n });\n await startPromise;\n // Set by the this.datastoreConnectivity.status().subscribe() loop\n if (this.online) {\n this.mutationsProcessor.resume();\n }\n }, 'storage event'),\n });\n observer.next({\n type: ControlMessage.SYNC_ENGINE_STORAGE_SUBSCRIBED,\n });\n const hasMutationsInOutbox = (await this.outbox.peek(this.storage)) === undefined;\n observer.next({\n type: ControlMessage.SYNC_ENGINE_OUTBOX_STATUS,\n data: {\n isEmpty: hasMutationsInOutbox,\n },\n });\n await startPromise;\n observer.next({\n type: ControlMessage.SYNC_ENGINE_READY,\n });\n }, 'sync start');\n });\n }\n async getModelsMetadataWithNextFullSync(currentTimeStamp) {\n const modelLastSync = new Map((await this.runningProcesses.add(() => this.getModelsMetadata(), 'sync/index getModelsMetadataWithNextFullSync')).map(({ namespace, model, lastSync, lastFullSync, fullSyncInterval, lastSyncPredicate, }) => {\n const nextFullSync = lastFullSync + fullSyncInterval;\n const syncFrom = !lastFullSync || nextFullSync < currentTimeStamp\n ? 0 // perform full sync if expired\n : lastSync; // perform delta sync\n return [\n this.schema.namespaces[namespace].models[model],\n [namespace, syncFrom],\n ];\n }));\n return modelLastSync;\n }\n syncQueriesObservable() {\n if (!this.online) {\n return (0, rxjs_1.of)({}); // TODO(v6): fix this\n }\n return new rxjs_1.Observable(observer => {\n let syncQueriesSubscription;\n this.runningProcesses.isOpen &&\n this.runningProcesses.add(async (onTerminate) => {\n let terminated = false;\n while (!observer.closed && !terminated) {\n const count = new WeakMap();\n const modelLastSync = await this.getModelsMetadataWithNextFullSync(Date.now());\n const paginatingModels = new Set(modelLastSync.keys());\n let lastFullSyncStartedAt;\n let syncInterval;\n let start;\n let syncDuration;\n let lastStartedAt;\n await new Promise((resolve, reject) => {\n if (!this.runningProcesses.isOpen)\n resolve();\n onTerminate.then(() => resolve());\n syncQueriesSubscription = this.syncQueriesProcessor\n .start(modelLastSync)\n .subscribe({\n next: async ({ namespace, modelDefinition, items, done, startedAt, isFullSync, }) => {\n const modelConstructor = this.userModelClasses[modelDefinition.name];\n if (!count.has(modelConstructor)) {\n count.set(modelConstructor, {\n new: 0,\n updated: 0,\n deleted: 0,\n });\n start = (0, util_1.getNow)();\n lastStartedAt =\n lastStartedAt === undefined\n ? startedAt\n : Math.max(lastStartedAt, startedAt);\n }\n /**\n * If there are mutations in the outbox for a given id, those need to be\n * merged individually. Otherwise, we can merge them in batches.\n */\n await this.storage.runExclusive(async (storage) => {\n const idsInOutbox = await this.outbox.getModelIds(storage);\n const oneByOne = [];\n const page = items.filter(item => {\n const itemId = (0, utils_2.getIdentifierValue)(modelDefinition, item);\n if (!idsInOutbox.has(itemId)) {\n return true;\n }\n oneByOne.push(item);\n return false;\n });\n const opTypeCount = [];\n for (const item of oneByOne) {\n const opType = await this.modelMerger.merge(storage, item, modelDefinition);\n if (opType !== undefined) {\n opTypeCount.push([item, opType]);\n }\n }\n opTypeCount.push(...(await this.modelMerger.mergePage(storage, modelConstructor, page, modelDefinition)));\n const counts = count.get(modelConstructor);\n opTypeCount.forEach(([, opType]) => {\n switch (opType) {\n case types_1.OpType.INSERT:\n counts.new++;\n break;\n case types_1.OpType.UPDATE:\n counts.updated++;\n break;\n case types_1.OpType.DELETE:\n counts.deleted++;\n break;\n default:\n throw new Error(`Invalid opType ${opType}`);\n }\n });\n });\n if (done) {\n const { name: modelName } = modelDefinition;\n //#region update last sync for type\n let modelMetadata = await this.getModelMetadata(namespace, modelName);\n const { lastFullSync, fullSyncInterval } = modelMetadata;\n syncInterval = fullSyncInterval;\n lastFullSyncStartedAt =\n lastFullSyncStartedAt === undefined\n ? lastFullSync\n : Math.max(lastFullSyncStartedAt, isFullSync ? startedAt : lastFullSync);\n modelMetadata = this.modelClasses\n .ModelMetadata.copyOf(modelMetadata, draft => {\n draft.lastSync = startedAt;\n draft.lastFullSync = isFullSync\n ? startedAt\n : modelMetadata.lastFullSync;\n });\n await this.storage.save(modelMetadata, undefined, ownSymbol);\n //#endregion\n const counts = count.get(modelConstructor);\n this.modelSyncedStatus.set(modelConstructor, true);\n observer.next({\n type: ControlMessage.SYNC_ENGINE_MODEL_SYNCED,\n data: {\n model: modelConstructor,\n isFullSync,\n isDeltaSync: !isFullSync,\n counts,\n },\n });\n paginatingModels.delete(modelDefinition);\n if (paginatingModels.size === 0) {\n syncDuration = (0, util_1.getNow)() - start;\n resolve();\n observer.next({\n type: ControlMessage.SYNC_ENGINE_SYNC_QUERIES_READY,\n });\n syncQueriesSubscription.unsubscribe();\n }\n }\n },\n error: error => {\n observer.error(error);\n },\n });\n observer.next({\n type: ControlMessage.SYNC_ENGINE_SYNC_QUERIES_STARTED,\n data: {\n models: Array.from(paginatingModels).map(({ name }) => name),\n },\n });\n });\n // null is cast to 0 resulting in unexpected behavior.\n // undefined in arithmetic operations results in NaN also resulting in unexpected behavior.\n // If lastFullSyncStartedAt is null this is the first sync.\n // Assume lastStartedAt is is also newest full sync.\n let msNextFullSync;\n if (!lastFullSyncStartedAt) {\n msNextFullSync = syncInterval - syncDuration;\n }\n else {\n msNextFullSync =\n lastFullSyncStartedAt +\n syncInterval -\n (lastStartedAt + syncDuration);\n }\n logger.debug(`Next fullSync in ${msNextFullSync / 1000} seconds. (${new Date(Date.now() + msNextFullSync)})`);\n // TODO: create `BackgroundProcessManager.sleep()` ... but, need to put\n // a lot of thought into what that contract looks like to\n // support possible use-cases:\n //\n // 1. non-cancelable\n // 2. cancelable, unsleep on exit()\n // 3. cancelable, throw Error on exit()\n // 4. cancelable, callback first on exit()?\n // 5. ... etc. ? ...\n //\n // TLDR; this is a lot of complexity here for a sleep(),\n // but, it's not clear to me yet how to support an\n // extensible, centralized cancelable `sleep()` elegantly.\n await this.runningProcesses.add(async (onTerminate) => {\n let sleepTimer;\n let unsleep;\n const sleep = new Promise(_unsleep => {\n unsleep = _unsleep;\n sleepTimer = setTimeout(unsleep, msNextFullSync);\n });\n onTerminate.then(() => {\n terminated = true;\n this.syncQueriesObservableStartSleeping();\n unsleep();\n });\n this.unsleepSyncQueriesObservable = unsleep;\n this.syncQueriesObservableStartSleeping();\n return sleep;\n }, 'syncQueriesObservable sleep');\n this.unsleepSyncQueriesObservable = null;\n this.waitForSleepState = new Promise(resolve => {\n this.syncQueriesObservableStartSleeping = resolve;\n });\n }\n }, 'syncQueriesObservable main');\n });\n }\n disconnectionHandler() {\n return (msg) => {\n // This implementation is tied to AWSAppSyncRealTimeProvider 'Connection closed', 'Timeout disconnect' msg\n if (api_graphql_1.CONTROL_MSG.CONNECTION_CLOSED === msg ||\n api_graphql_1.CONTROL_MSG.TIMEOUT_DISCONNECT === msg) {\n this.datastoreConnectivity.socketDisconnected();\n }\n };\n }\n unsubscribeConnectivity() {\n this.datastoreConnectivity.unsubscribe();\n }\n /**\n * Stops all subscription activities and resolves when all activies report\n * that they're disconnected, done retrying, etc..\n */\n async stop() {\n logger.debug('stopping sync engine');\n /**\n * Gracefully disconnecting subscribers first just prevents *more* work\n * from entering the pipelines.\n */\n this.unsubscribeConnectivity();\n /**\n * Stop listening for websocket connection disruption\n */\n this.stopDisruptionListener && this.stopDisruptionListener();\n /**\n * aggressively shut down any lingering background processes.\n * some of this might be semi-redundant with unsubscribing. however,\n * unsubscribing doesn't allow us to wait for settling.\n * (Whereas `stop()` does.)\n */\n await this.mutationsProcessor.stop();\n await this.subscriptionsProcessor.stop();\n await this.datastoreConnectivity.stop();\n await this.syncQueriesProcessor.stop();\n await this.runningProcesses.close();\n await this.runningProcesses.open();\n logger.debug('sync engine stopped and ready to restart');\n }\n async setupModels(params) {\n const { fullSyncInterval } = params;\n const ModelMetadataConstructor = this.modelClasses\n .ModelMetadata;\n const models = [];\n let savedModel;\n Object.values(this.schema.namespaces).forEach(namespace => {\n Object.values(namespace.models)\n .filter(({ syncable }) => syncable)\n .forEach(model => {\n models.push([namespace.name, model]);\n if (namespace.name === util_1.USER) {\n const modelConstructor = this.userModelClasses[model.name];\n this.modelSyncedStatus.set(modelConstructor, false);\n }\n });\n });\n const promises = models.map(async ([namespace, model]) => {\n const modelMetadata = await this.getModelMetadata(namespace, model.name);\n const syncPredicate = predicates_1.ModelPredicateCreator.getPredicates(this.syncPredicates.get(model), false);\n const lastSyncPredicate = syncPredicate\n ? JSON.stringify(syncPredicate)\n : null;\n if (modelMetadata === undefined) {\n [[savedModel]] = await this.storage.save(this.modelInstanceCreator(ModelMetadataConstructor, {\n model: model.name,\n namespace,\n lastSync: null,\n fullSyncInterval,\n lastFullSync: null,\n lastSyncPredicate,\n }), undefined, ownSymbol);\n }\n else {\n const prevSyncPredicate = modelMetadata.lastSyncPredicate\n ? modelMetadata.lastSyncPredicate\n : null;\n const syncPredicateUpdated = prevSyncPredicate !== lastSyncPredicate;\n [[savedModel]] = await this.storage.save(ModelMetadataConstructor.copyOf(modelMetadata, draft => {\n draft.fullSyncInterval = fullSyncInterval;\n // perform a base sync if the syncPredicate changed in between calls to DataStore.start\n // ensures that the local store contains all the data specified by the syncExpression\n if (syncPredicateUpdated) {\n draft.lastSync = null;\n draft.lastFullSync = null;\n draft.lastSyncPredicate = lastSyncPredicate;\n }\n }));\n }\n return savedModel;\n });\n const result = {};\n for (const modelMetadata of await Promise.all(promises)) {\n const { model: modelName } = modelMetadata;\n result[modelName] = modelMetadata;\n }\n return result;\n }\n async getModelsMetadata() {\n const ModelMetadata = this.modelClasses\n .ModelMetadata;\n const modelsMetadata = await this.storage.query(ModelMetadata);\n return modelsMetadata;\n }\n async getModelMetadata(namespace, model) {\n const ModelMetadata = this.modelClasses\n .ModelMetadata;\n const predicate = predicates_1.ModelPredicateCreator.createFromAST(this.schema.namespaces[util_1.SYNC].models[ModelMetadata.name], { and: [{ namespace: { eq: namespace } }, { model: { eq: model } }] });\n const [modelMetadata] = await this.storage.query(ModelMetadata, predicate, {\n page: 0,\n limit: 1,\n });\n return modelMetadata;\n }\n getModelDefinition(modelConstructor) {\n const namespaceName = this.namespaceResolver(modelConstructor);\n const modelDefinition = this.schema.namespaces[namespaceName].models[modelConstructor.name];\n return modelDefinition;\n }\n static getNamespace() {\n const namespace = {\n name: util_1.SYNC,\n relationships: {},\n enums: {\n OperationType: {\n name: 'OperationType',\n values: ['CREATE', 'UPDATE', 'DELETE'],\n },\n },\n nonModels: {},\n models: {\n MutationEvent: {\n name: 'MutationEvent',\n pluralName: 'MutationEvents',\n syncable: false,\n fields: {\n id: {\n name: 'id',\n type: 'ID',\n isRequired: true,\n isArray: false,\n },\n model: {\n name: 'model',\n type: 'String',\n isRequired: true,\n isArray: false,\n },\n data: {\n name: 'data',\n type: 'String',\n isRequired: true,\n isArray: false,\n },\n modelId: {\n name: 'modelId',\n type: 'String',\n isRequired: true,\n isArray: false,\n },\n operation: {\n name: 'operation',\n type: {\n enum: 'Operationtype',\n },\n isArray: false,\n isRequired: true,\n },\n condition: {\n name: 'condition',\n type: 'String',\n isArray: false,\n isRequired: true,\n },\n },\n },\n ModelMetadata: {\n name: 'ModelMetadata',\n pluralName: 'ModelsMetadata',\n syncable: false,\n fields: {\n id: {\n name: 'id',\n type: 'ID',\n isRequired: true,\n isArray: false,\n },\n namespace: {\n name: 'namespace',\n type: 'String',\n isRequired: true,\n isArray: false,\n },\n model: {\n name: 'model',\n type: 'String',\n isRequired: true,\n isArray: false,\n },\n lastSync: {\n name: 'lastSync',\n type: 'Int',\n isRequired: false,\n isArray: false,\n },\n lastFullSync: {\n name: 'lastFullSync',\n type: 'Int',\n isRequired: false,\n isArray: false,\n },\n fullSyncInterval: {\n name: 'fullSyncInterval',\n type: 'Int',\n isRequired: true,\n isArray: false,\n },\n lastSyncPredicate: {\n name: 'lastSyncPredicate',\n type: 'String',\n isRequired: false,\n isArray: false,\n },\n },\n },\n },\n };\n return namespace;\n }\n /**\n * listen for websocket connection disruption\n *\n * May indicate there was a period of time where messages\n * from AppSync were missed. A sync needs to be triggered to\n * retrieve the missed data.\n */\n startDisruptionListener() {\n return core_1.Hub.listen('api', (data) => {\n if (data.source === 'PubSub' &&\n data.payload.event === api_graphql_1.CONNECTION_STATE_CHANGE) {\n const connectionState = data.payload.data\n .connectionState;\n switch (connectionState) {\n // Do not need to listen for ConnectionDisruptedPendingNetwork\n // Normal network reconnection logic will handle the sync\n case api_graphql_1.ConnectionState.ConnectionDisrupted:\n this.connectionDisrupted = true;\n break;\n case api_graphql_1.ConnectionState.Connected:\n if (this.connectionDisrupted) {\n this.scheduleSync();\n }\n this.connectionDisrupted = false;\n break;\n }\n }\n });\n }\n /*\n * Schedule a sync to start when syncQueriesObservable enters sleep state\n * Start sync immediately if syncQueriesObservable is already in sleep state\n */\n scheduleSync() {\n return (this.runningProcesses.isOpen &&\n this.runningProcesses.add(() => this.waitForSleepState.then(() => {\n // unsleepSyncQueriesObservable will be set if waitForSleepState has resolved\n this.unsleepSyncQueriesObservable();\n })));\n }\n}\nexports.SyncEngine = SyncEngine;\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.ModelMerger = void 0;
|
|
4
5
|
const types_1 = require("../types");
|
|
@@ -42,3 +43,4 @@ class ModelMerger {
|
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
exports.ModelMerger = ModelMerger;
|
|
46
|
+
//# sourceMappingURL=merger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merger.js","sources":["../../../src/sync/merger.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ModelMerger = void 0;\nconst types_1 = require(\"../types\");\nconst utils_1 = require(\"./utils\");\n// https://github.com/aws-amplify/amplify-js/blob/datastore-docs/packages/datastore/docs/sync-engine.md#merger\nclass ModelMerger {\n constructor(outbox, ownSymbol) {\n this.outbox = outbox;\n this.ownSymbol = ownSymbol;\n }\n /**\n *\n * @param storage Storage adapter that contains the data.\n * @param model The model from an outbox mutation.\n * @returns The type of operation (INSERT/UPDATE/DELETE)\n */\n async merge(storage, model, modelDefinition) {\n let result;\n const mutationsForModel = await this.outbox.getForModel(storage, model, modelDefinition);\n const isDelete = model._deleted;\n if (mutationsForModel.length === 0) {\n if (isDelete) {\n result = types_1.OpType.DELETE;\n await storage.delete(model, undefined, this.ownSymbol);\n }\n else {\n [[, result]] = await storage.save(model, undefined, this.ownSymbol);\n }\n }\n return result;\n }\n async mergePage(storage, modelConstructor, items, modelDefinition) {\n const itemsMap = new Map();\n for (const item of items) {\n // merge items by model id. Latest record for a given id remains.\n const modelId = (0, utils_1.getIdentifierValue)(modelDefinition, item);\n itemsMap.set(modelId, item);\n }\n const page = [...itemsMap.values()];\n return await storage.batchSave(modelConstructor, page, this.ownSymbol);\n }\n}\nexports.ModelMerger = ModelMerger;\n"],"names":[],"mappings":";;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC;AAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACpC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACnC;AACA,MAAM,WAAW,CAAC;AAClB,IAAI,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE;AACnC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AACnC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE;AACjD,QAAQ,IAAI,MAAM,CAAC;AACnB,QAAQ,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;AACjG,QAAQ,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;AACxC,QAAQ,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5C,YAAY,IAAI,QAAQ,EAAE;AAC1B,gBAAgB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;AAC/C,gBAAgB,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AACvE,aAAa;AACb,iBAAiB;AACjB,gBAAgB,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AACpF,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK;AACL,IAAI,MAAM,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE;AACvE,QAAQ,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;AACnC,QAAQ,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAClC;AACA,YAAY,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,kBAAkB,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;AACnF,YAAY,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACxC,SAAS;AACT,QAAQ,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;AAC5C,QAAQ,OAAO,MAAM,OAAO,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/E,KAAK;AACL,CAAC;AACD,OAAO,CAAC,WAAW,GAAG,WAAW;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.MutationEventOutbox = void 0;
|
|
4
5
|
const predicates_1 = require("../predicates");
|
|
@@ -193,3 +194,4 @@ class MutationEventOutbox {
|
|
|
193
194
|
}
|
|
194
195
|
}
|
|
195
196
|
exports.MutationEventOutbox = MutationEventOutbox;
|
|
197
|
+
//# sourceMappingURL=outbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outbox.js","sources":["../../../src/sync/outbox.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MutationEventOutbox = void 0;\nconst predicates_1 = require(\"../predicates\");\nconst types_1 = require(\"../types\");\nconst util_1 = require(\"../util\");\nconst utils_1 = require(\"./utils\");\n// TODO: Persist deleted ids\n// https://github.com/aws-amplify/amplify-js/blob/datastore-docs/packages/datastore/docs/sync-engine.md#outbox\nclass MutationEventOutbox {\n constructor(schema, MutationEvent, modelInstanceCreator, ownSymbol) {\n this.schema = schema;\n this.MutationEvent = MutationEvent;\n this.modelInstanceCreator = modelInstanceCreator;\n this.ownSymbol = ownSymbol;\n }\n async enqueue(storage, mutationEvent) {\n await storage.runExclusive(async (s) => {\n const mutationEventModelDefinition = this.schema.namespaces[util_1.SYNC].models['MutationEvent'];\n // `id` is the key for the record in the mutationEvent;\n // `modelId` is the key for the actual record that was mutated\n const predicate = predicates_1.ModelPredicateCreator.createFromAST(mutationEventModelDefinition, {\n and: [\n { modelId: { eq: mutationEvent.modelId } },\n { id: { ne: this.inProgressMutationEventId } },\n ],\n });\n // Check if there are any other records with same id\n const [first] = await s.query(this.MutationEvent, predicate);\n // No other record with same modelId, so enqueue\n if (first === undefined) {\n await s.save(mutationEvent, undefined, this.ownSymbol);\n return;\n }\n // There was an enqueued mutation for the modelId, so continue\n const { operation: incomingMutationType } = mutationEvent;\n if (first.operation === utils_1.TransformerMutationType.CREATE) {\n if (incomingMutationType === utils_1.TransformerMutationType.DELETE) {\n await s.delete(this.MutationEvent, predicate);\n }\n else {\n // first gets updated with the incoming mutation's data, condition intentionally skipped\n // we need to merge the fields for a create and update mutation to prevent\n // data loss, since update mutations only include changed fields\n const merged = this.mergeUserFields(first, mutationEvent);\n await s.save(this.MutationEvent.copyOf(first, draft => {\n draft.data = merged.data;\n }), undefined, this.ownSymbol);\n }\n }\n else {\n const { condition: incomingConditionJSON } = mutationEvent;\n const incomingCondition = JSON.parse(incomingConditionJSON);\n let merged;\n // If no condition\n if (Object.keys(incomingCondition).length === 0) {\n merged = this.mergeUserFields(first, mutationEvent);\n // delete all for model\n await s.delete(this.MutationEvent, predicate);\n }\n merged = merged || mutationEvent;\n // Enqueue new one\n await s.save(merged, undefined, this.ownSymbol);\n }\n });\n }\n async dequeue(storage, record, recordOp) {\n const head = await this.peek(storage);\n if (record) {\n await this.syncOutboxVersionsOnDequeue(storage, record, head, recordOp);\n }\n await storage.delete(head);\n this.inProgressMutationEventId = undefined;\n return head;\n }\n /**\n * Doing a peek() implies that the mutation goes \"inProgress\"\n *\n * @param storage\n */\n async peek(storage) {\n const head = await storage.queryOne(this.MutationEvent, types_1.QueryOne.FIRST);\n this.inProgressMutationEventId = head ? head.id : undefined;\n return head;\n }\n async getForModel(storage, model, userModelDefinition) {\n const mutationEventModelDefinition = this.schema.namespaces[util_1.SYNC].models.MutationEvent;\n const modelId = (0, utils_1.getIdentifierValue)(userModelDefinition, model);\n const mutationEvents = await storage.query(this.MutationEvent, predicates_1.ModelPredicateCreator.createFromAST(mutationEventModelDefinition, {\n and: { modelId: { eq: modelId } },\n }));\n return mutationEvents;\n }\n async getModelIds(storage) {\n const mutationEvents = await storage.query(this.MutationEvent);\n const result = new Set();\n mutationEvents.forEach(({ modelId }) => result.add(modelId));\n return result;\n }\n // applies _version from the AppSync mutation response to other items\n // in the mutation queue with the same id\n // see https://github.com/aws-amplify/amplify-js/pull/7354 for more details\n async syncOutboxVersionsOnDequeue(storage, record, head, recordOp) {\n if (head.operation !== recordOp) {\n return;\n }\n const { _version, _lastChangedAt, _deleted, ..._incomingData } = record;\n const incomingData = this.removeTimestampFields(head.model, _incomingData);\n const data = JSON.parse(head.data);\n if (!data) {\n return;\n }\n const { _version: __version, _lastChangedAt: __lastChangedAt, _deleted: __deleted, ..._outgoingData } = data;\n const outgoingData = this.removeTimestampFields(head.model, _outgoingData);\n // Don't sync the version when the data in the response does not match the data\n // in the request, i.e., when there's a handled conflict\n //\n // NOTE: `incomingData` contains all the fields in the record, and `outgoingData`\n // only contains updated fields, resulting in an error when doing a comparison\n // of two equal mutations. Fix this, or mitigate otherwise.\n if (!(0, util_1.valuesEqual)(incomingData, outgoingData, true)) {\n return;\n }\n const mutationEventModelDefinition = this.schema.namespaces[util_1.SYNC].models['MutationEvent'];\n const userModelDefinition = this.schema.namespaces['user'].models[head.model];\n const recordId = (0, utils_1.getIdentifierValue)(userModelDefinition, record);\n const predicate = predicates_1.ModelPredicateCreator.createFromAST(mutationEventModelDefinition, {\n and: [\n { modelId: { eq: recordId } },\n { id: { ne: this.inProgressMutationEventId } },\n ],\n });\n const outdatedMutations = await storage.query(this.MutationEvent, predicate);\n if (!outdatedMutations.length) {\n return;\n }\n const reconciledMutations = outdatedMutations.map(m => {\n const oldData = JSON.parse(m.data);\n const newData = { ...oldData, _version, _lastChangedAt };\n return this.MutationEvent.copyOf(m, draft => {\n draft.data = JSON.stringify(newData);\n });\n });\n await storage.delete(this.MutationEvent, predicate);\n await Promise.all(reconciledMutations.map(async (m) => await storage.save(m, undefined, this.ownSymbol)));\n }\n mergeUserFields(previous, current) {\n const { _version, _lastChangedAt, _deleted, ...previousData } = JSON.parse(previous.data);\n const { _version: __version, _lastChangedAt: __lastChangedAt, _deleted: __deleted, ...currentData } = JSON.parse(current.data);\n const data = JSON.stringify({\n _version,\n _lastChangedAt,\n _deleted,\n ...previousData,\n ...currentData,\n });\n return this.modelInstanceCreator(this.MutationEvent, {\n ...current,\n data,\n });\n }\n /*\n if a model is using custom timestamp fields\n the custom field names will be stored in the model attributes\n\n e.g.\n \"attributes\": [\n {\n \"type\": \"model\",\n \"properties\": {\n \"timestamps\": {\n \"createdAt\": \"createdOn\",\n \"updatedAt\": \"updatedOn\"\n }\n }\n }\n ]\n */\n removeTimestampFields(model, record) {\n const CREATED_AT_DEFAULT_KEY = 'createdAt';\n const UPDATED_AT_DEFAULT_KEY = 'updatedAt';\n let createdTimestampKey = CREATED_AT_DEFAULT_KEY;\n let updatedTimestampKey = UPDATED_AT_DEFAULT_KEY;\n const modelAttributes = this.schema.namespaces[util_1.USER].models[model].attributes?.find(attr => attr.type === 'model');\n const timestampFieldsMap = modelAttributes?.properties?.timestamps;\n if (timestampFieldsMap) {\n createdTimestampKey = timestampFieldsMap[CREATED_AT_DEFAULT_KEY];\n updatedTimestampKey = timestampFieldsMap[UPDATED_AT_DEFAULT_KEY];\n }\n delete record[createdTimestampKey];\n delete record[updatedTimestampKey];\n return record;\n }\n}\nexports.MutationEventOutbox = MutationEventOutbox;\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.mapErrorToType = exports.getSyncErrorType = exports.getSubscriptionErrorType = exports.getMutationErrorType = exports.syncErrorMap = exports.subscriptionErrorMap = exports.mutationErrorMap = void 0;
|
|
4
5
|
const utils_1 = require("../utils");
|
|
@@ -43,9 +44,7 @@ exports.syncErrorMap = {
|
|
|
43
44
|
* @param observableError an error from ZenObservable subscribe error callback
|
|
44
45
|
*/
|
|
45
46
|
function unwrapObservableError(observableError) {
|
|
46
|
-
const { errors: [error], } = (
|
|
47
|
-
errors: [],
|
|
48
|
-
} = observableError);
|
|
47
|
+
const { errors: [error], } = (observableError);
|
|
49
48
|
return error;
|
|
50
49
|
}
|
|
51
50
|
function getMutationErrorType(error) {
|
|
@@ -77,3 +76,4 @@ function mapErrorToType(errorMap, error) {
|
|
|
77
76
|
return 'Unknown';
|
|
78
77
|
}
|
|
79
78
|
exports.mapErrorToType = mapErrorToType;
|
|
79
|
+
//# sourceMappingURL=errorMaps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorMaps.js","sources":["../../../../src/sync/processors/errorMaps.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mapErrorToType = exports.getSyncErrorType = exports.getSubscriptionErrorType = exports.getMutationErrorType = exports.syncErrorMap = exports.subscriptionErrorMap = exports.mutationErrorMap = void 0;\nconst utils_1 = require(\"../utils\");\nconst connectionTimeout = error => /^Connection failed: Connection Timeout/.test(error.message);\nconst serverError = error => (0, utils_1.resolveServiceErrorStatusCode)(error) >= 500;\nexports.mutationErrorMap = {\n BadModel: () => false,\n BadRecord: error => {\n const { message } = error;\n return (/^Cannot return \\w+ for [\\w-_]+ type/.test(message) ||\n /^Variable '.+' has coerced Null value for NonNull type/.test(message)); // newly required field, out of date client\n },\n ConfigError: () => false,\n Transient: error => connectionTimeout(error) || serverError(error),\n Unauthorized: error => error.message === 'Unauthorized' ||\n (0, utils_1.resolveServiceErrorStatusCode)(error) === 401,\n};\nexports.subscriptionErrorMap = {\n BadModel: () => false,\n BadRecord: () => false,\n ConfigError: () => false,\n Transient: observableError => {\n const error = unwrapObservableError(observableError);\n return connectionTimeout(error) || serverError(error);\n },\n Unauthorized: observableError => {\n const error = unwrapObservableError(observableError);\n return /Connection failed.+Unauthorized/.test(error.message);\n },\n};\nexports.syncErrorMap = {\n BadModel: () => false,\n BadRecord: error => /^Cannot return \\w+ for [\\w-_]+ type/.test(error.message),\n ConfigError: () => false,\n Transient: error => connectionTimeout(error) || serverError(error),\n Unauthorized: error => error.errorType === 'Unauthorized',\n};\n/**\n * Get the first error reason of an observable.\n * Allows for error maps to be easily applied to observable errors\n *\n * @param observableError an error from ZenObservable subscribe error callback\n */\nfunction unwrapObservableError(observableError) {\n const { errors: [error], } = ({\n errors: [],\n } = observableError);\n return error;\n}\nfunction getMutationErrorType(error) {\n return mapErrorToType(exports.mutationErrorMap, error);\n}\nexports.getMutationErrorType = getMutationErrorType;\nfunction getSubscriptionErrorType(error) {\n return mapErrorToType(exports.subscriptionErrorMap, error);\n}\nexports.getSubscriptionErrorType = getSubscriptionErrorType;\nfunction getSyncErrorType(error) {\n return mapErrorToType(exports.syncErrorMap, error);\n}\nexports.getSyncErrorType = getSyncErrorType;\n/**\n * Categorizes an error with a broad error type, intended to make\n * customer error handling code simpler.\n * @param errorMap Error names and a list of patterns that indicate them (each pattern as a regex or function)\n * @param error The underying error to categorize.\n */\nfunction mapErrorToType(errorMap, error) {\n const errorTypes = [...Object.keys(errorMap)];\n for (const errorType of errorTypes) {\n const matcher = errorMap[errorType];\n if (matcher?.(error)) {\n return errorType;\n }\n }\n return 'Unknown';\n}\nexports.mapErrorToType = mapErrorToType;\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.MutationProcessor = exports.safeJitteredBackoff = void 0;
|
|
4
5
|
const internals_1 = require("@aws-amplify/api/internals");
|
|
@@ -433,3 +434,4 @@ const safeJitteredBackoff = (attempt, _args, error) => {
|
|
|
433
434
|
return attemptResult;
|
|
434
435
|
};
|
|
435
436
|
exports.safeJitteredBackoff = safeJitteredBackoff;
|
|
437
|
+
//# sourceMappingURL=mutation.js.map
|