@aws-amplify/datastore 5.0.32 → 5.0.33-s-auth.30d0cd2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/authModeStrategies/multiAuthStrategy.js +1 -1
- package/dist/cjs/authModeStrategies/multiAuthStrategy.js.map +1 -1
- package/dist/cjs/datastore/datastore.js +46 -41
- package/dist/cjs/datastore/datastore.js.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/predicates/index.js +1 -0
- package/dist/cjs/predicates/index.js.map +1 -1
- package/dist/cjs/predicates/next.js +13 -12
- package/dist/cjs/predicates/next.js.map +1 -1
- package/dist/cjs/predicates/sort.js +2 -2
- package/dist/cjs/predicates/sort.js.map +1 -1
- package/dist/cjs/storage/adapter/AsyncStorageAdapter.js +21 -18
- package/dist/cjs/storage/adapter/AsyncStorageAdapter.js.map +1 -1
- package/dist/cjs/storage/adapter/AsyncStorageDatabase.js +10 -9
- package/dist/cjs/storage/adapter/AsyncStorageDatabase.js.map +1 -1
- package/dist/cjs/storage/adapter/InMemoryStore.js +4 -1
- package/dist/cjs/storage/adapter/InMemoryStore.js.map +1 -1
- package/dist/cjs/storage/adapter/IndexedDBAdapter.js +21 -23
- package/dist/cjs/storage/adapter/IndexedDBAdapter.js.map +1 -1
- package/dist/cjs/storage/adapter/StorageAdapterBase.js +7 -7
- package/dist/cjs/storage/adapter/StorageAdapterBase.js.map +1 -1
- package/dist/cjs/storage/adapter/getDefaultAdapter/index.js +4 -1
- package/dist/cjs/storage/adapter/getDefaultAdapter/index.js.map +1 -1
- package/dist/cjs/storage/adapter/getDefaultAdapter/index.native.js +1 -0
- package/dist/cjs/storage/adapter/getDefaultAdapter/index.native.js.map +1 -1
- package/dist/cjs/storage/relationship.js +1 -0
- package/dist/cjs/storage/relationship.js.map +1 -1
- package/dist/cjs/storage/storage.js +14 -14
- package/dist/cjs/storage/storage.js.map +1 -1
- package/dist/cjs/sync/datastoreConnectivity.js +0 -3
- package/dist/cjs/sync/datastoreConnectivity.js.map +1 -1
- package/dist/cjs/sync/index.js +47 -43
- package/dist/cjs/sync/index.js.map +1 -1
- package/dist/cjs/sync/merger.js +1 -1
- package/dist/cjs/sync/merger.js.map +1 -1
- package/dist/cjs/sync/outbox.js +19 -17
- package/dist/cjs/sync/outbox.js.map +1 -1
- package/dist/cjs/sync/processors/errorMaps.js.map +1 -1
- package/dist/cjs/sync/processors/mutation.js +31 -28
- package/dist/cjs/sync/processors/mutation.js.map +1 -1
- package/dist/cjs/sync/processors/subscription.js +21 -12
- package/dist/cjs/sync/processors/subscription.js.map +1 -1
- package/dist/cjs/sync/processors/sync.js +25 -21
- package/dist/cjs/sync/processors/sync.js.map +1 -1
- package/dist/cjs/sync/utils.js +20 -21
- package/dist/cjs/sync/utils.js.map +1 -1
- package/dist/cjs/types.js +1 -0
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/util.js +46 -25
- package/dist/cjs/util.js.map +1 -1
- package/dist/esm/authModeStrategies/multiAuthStrategy.d.ts +1 -1
- package/dist/esm/authModeStrategies/multiAuthStrategy.mjs +1 -1
- package/dist/esm/authModeStrategies/multiAuthStrategy.mjs.map +1 -1
- package/dist/esm/datastore/datastore.d.ts +4 -6
- package/dist/esm/datastore/datastore.mjs +42 -34
- package/dist/esm/datastore/datastore.mjs.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.mjs +2 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/predicates/index.mjs +1 -0
- package/dist/esm/predicates/index.mjs.map +1 -1
- package/dist/esm/predicates/next.d.ts +7 -7
- package/dist/esm/predicates/next.mjs +13 -12
- package/dist/esm/predicates/next.mjs.map +1 -1
- package/dist/esm/predicates/sort.d.ts +1 -1
- package/dist/esm/predicates/sort.mjs +2 -2
- package/dist/esm/predicates/sort.mjs.map +1 -1
- package/dist/esm/storage/adapter/AsyncStorageAdapter.d.ts +1 -1
- package/dist/esm/storage/adapter/AsyncStorageAdapter.mjs +21 -18
- package/dist/esm/storage/adapter/AsyncStorageAdapter.mjs.map +1 -1
- package/dist/esm/storage/adapter/AsyncStorageDatabase.mjs +10 -9
- package/dist/esm/storage/adapter/AsyncStorageDatabase.mjs.map +1 -1
- package/dist/esm/storage/adapter/InMemoryStore.mjs +4 -1
- package/dist/esm/storage/adapter/InMemoryStore.mjs.map +1 -1
- package/dist/esm/storage/adapter/IndexedDBAdapter.mjs +21 -23
- package/dist/esm/storage/adapter/IndexedDBAdapter.mjs.map +1 -1
- package/dist/esm/storage/adapter/StorageAdapterBase.d.ts +2 -2
- package/dist/esm/storage/adapter/StorageAdapterBase.mjs +7 -7
- package/dist/esm/storage/adapter/StorageAdapterBase.mjs.map +1 -1
- package/dist/esm/storage/adapter/getDefaultAdapter/index.mjs +3 -1
- package/dist/esm/storage/adapter/getDefaultAdapter/index.mjs.map +1 -1
- package/dist/esm/storage/adapter/getDefaultAdapter/index.native.mjs +1 -0
- package/dist/esm/storage/adapter/getDefaultAdapter/index.native.mjs.map +1 -1
- package/dist/esm/storage/adapter/index.d.ts +1 -1
- package/dist/esm/storage/relationship.mjs +1 -0
- package/dist/esm/storage/relationship.mjs.map +1 -1
- package/dist/esm/storage/storage.d.ts +11 -11
- package/dist/esm/storage/storage.mjs +10 -10
- package/dist/esm/storage/storage.mjs.map +1 -1
- package/dist/esm/sync/datastoreConnectivity.d.ts +2 -2
- package/dist/esm/sync/datastoreConnectivity.mjs +0 -3
- package/dist/esm/sync/datastoreConnectivity.mjs.map +1 -1
- package/dist/esm/sync/index.d.ts +3 -3
- package/dist/esm/sync/index.mjs +47 -43
- package/dist/esm/sync/index.mjs.map +1 -1
- package/dist/esm/sync/merger.d.ts +1 -1
- package/dist/esm/sync/merger.mjs +1 -1
- package/dist/esm/sync/merger.mjs.map +1 -1
- package/dist/esm/sync/outbox.d.ts +4 -4
- package/dist/esm/sync/outbox.mjs +19 -17
- package/dist/esm/sync/outbox.mjs.map +1 -1
- package/dist/esm/sync/processors/errorMaps.mjs.map +1 -1
- package/dist/esm/sync/processors/mutation.d.ts +5 -5
- package/dist/esm/sync/processors/mutation.mjs +31 -28
- package/dist/esm/sync/processors/mutation.mjs.map +1 -1
- package/dist/esm/sync/processors/subscription.d.ts +1 -1
- package/dist/esm/sync/processors/subscription.mjs +21 -12
- package/dist/esm/sync/processors/subscription.mjs.map +1 -1
- package/dist/esm/sync/processors/sync.d.ts +3 -3
- package/dist/esm/sync/processors/sync.mjs +13 -9
- package/dist/esm/sync/processors/sync.mjs.map +1 -1
- package/dist/esm/sync/utils.d.ts +11 -13
- package/dist/esm/sync/utils.mjs +20 -21
- package/dist/esm/sync/utils.mjs.map +1 -1
- package/dist/esm/types.d.ts +121 -131
- package/dist/esm/types.mjs +3 -2
- package/dist/esm/types.mjs.map +1 -1
- package/dist/esm/util.d.ts +5 -5
- package/dist/esm/util.mjs +46 -25
- package/dist/esm/util.mjs.map +1 -1
- package/package.json +74 -73
- package/src/authModeStrategies/multiAuthStrategy.ts +8 -4
- package/src/datastore/datastore.ts +145 -123
- package/src/index.ts +10 -8
- package/src/predicates/index.ts +10 -2
- package/src/predicates/next.ts +39 -28
- package/src/predicates/sort.ts +23 -26
- package/src/storage/adapter/AsyncStorageAdapter.ts +43 -25
- package/src/storage/adapter/AsyncStorageDatabase.ts +18 -10
- package/src/storage/adapter/InMemoryStore.ts +5 -1
- package/src/storage/adapter/IndexedDBAdapter.ts +50 -37
- package/src/storage/adapter/StorageAdapterBase.ts +24 -18
- package/src/storage/adapter/getDefaultAdapter/index.native.ts +1 -0
- package/src/storage/adapter/getDefaultAdapter/index.ts +4 -1
- package/src/storage/adapter/index.ts +2 -2
- package/src/storage/relationship.ts +5 -1
- package/src/storage/storage.ts +38 -30
- package/src/sync/datastoreConnectivity.ts +4 -6
- package/src/sync/index.ts +228 -230
- package/src/sync/merger.ts +4 -3
- package/src/sync/outbox.ts +26 -24
- package/src/sync/processors/errorMaps.ts +5 -0
- package/src/sync/processors/mutation.ts +80 -72
- package/src/sync/processors/subscription.ts +69 -53
- package/src/sync/processors/sync.ts +49 -37
- package/src/sync/utils.ts +60 -41
- package/src/types.ts +165 -165
- package/src/util.ts +89 -53
package/dist/esm/types.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.mjs","sources":["../../src/types.ts"],"sourcesContent":["import { isAWSDate, isAWSTime, isAWSDateTime, isAWSTimestamp, isAWSEmail, isAWSJSON, isAWSURL, isAWSPhone, isAWSIPAddress, extractPrimaryKeyFieldNames, } from './util';\nexport function isSchemaModel(obj) {\n return obj && obj.pluralName !== undefined;\n}\nexport function isSchemaModelWithAttributes(m) {\n return isSchemaModel(m) && m.attributes !== undefined;\n}\nexport function isAssociatedWith(obj) {\n return obj && obj.associatedWith;\n}\nexport function isTargetNameAssociation(obj) {\n return obj?.targetName || obj?.targetNames;\n}\nexport function isFieldAssociation(obj, fieldName) {\n return obj?.fields[fieldName]?.association?.connectionType;\n}\nexport function isModelAttributeAuth(attr) {\n return (attr.type === 'auth' &&\n attr.properties &&\n attr.properties.rules &&\n attr.properties.rules.length > 0);\n}\nexport function isModelAttributeKey(attr) {\n return (attr.type === 'key' &&\n attr.properties &&\n attr.properties.fields &&\n attr.properties.fields.length > 0);\n}\nexport function isModelAttributePrimaryKey(attr) {\n return isModelAttributeKey(attr) && attr.properties.name === undefined;\n}\nexport function isModelAttributeCompositeKey(attr) {\n return (isModelAttributeKey(attr) &&\n attr.properties.name !== undefined &&\n attr.properties.fields.length > 2);\n}\nexport var ModelAttributeAuthAllow;\n(function (ModelAttributeAuthAllow) {\n ModelAttributeAuthAllow[\"CUSTOM\"] = \"custom\";\n ModelAttributeAuthAllow[\"OWNER\"] = \"owner\";\n ModelAttributeAuthAllow[\"GROUPS\"] = \"groups\";\n ModelAttributeAuthAllow[\"PRIVATE\"] = \"private\";\n ModelAttributeAuthAllow[\"PUBLIC\"] = \"public\";\n})(ModelAttributeAuthAllow || (ModelAttributeAuthAllow = {}));\nexport var ModelAttributeAuthProvider;\n(function (ModelAttributeAuthProvider) {\n ModelAttributeAuthProvider[\"FUNCTION\"] = \"function\";\n ModelAttributeAuthProvider[\"USER_POOLS\"] = \"userPools\";\n ModelAttributeAuthProvider[\"OIDC\"] = \"oidc\";\n ModelAttributeAuthProvider[\"IAM\"] = \"iam\";\n ModelAttributeAuthProvider[\"API_KEY\"] = \"apiKey\";\n})(ModelAttributeAuthProvider || (ModelAttributeAuthProvider = {}));\nexport var GraphQLScalarType;\n(function (GraphQLScalarType) {\n GraphQLScalarType[GraphQLScalarType[\"ID\"] = 0] = \"ID\";\n GraphQLScalarType[GraphQLScalarType[\"String\"] = 1] = \"String\";\n GraphQLScalarType[GraphQLScalarType[\"Int\"] = 2] = \"Int\";\n GraphQLScalarType[GraphQLScalarType[\"Float\"] = 3] = \"Float\";\n GraphQLScalarType[GraphQLScalarType[\"Boolean\"] = 4] = \"Boolean\";\n GraphQLScalarType[GraphQLScalarType[\"AWSDate\"] = 5] = \"AWSDate\";\n GraphQLScalarType[GraphQLScalarType[\"AWSTime\"] = 6] = \"AWSTime\";\n GraphQLScalarType[GraphQLScalarType[\"AWSDateTime\"] = 7] = \"AWSDateTime\";\n GraphQLScalarType[GraphQLScalarType[\"AWSTimestamp\"] = 8] = \"AWSTimestamp\";\n GraphQLScalarType[GraphQLScalarType[\"AWSEmail\"] = 9] = \"AWSEmail\";\n GraphQLScalarType[GraphQLScalarType[\"AWSJSON\"] = 10] = \"AWSJSON\";\n GraphQLScalarType[GraphQLScalarType[\"AWSURL\"] = 11] = \"AWSURL\";\n GraphQLScalarType[GraphQLScalarType[\"AWSPhone\"] = 12] = \"AWSPhone\";\n GraphQLScalarType[GraphQLScalarType[\"AWSIPAddress\"] = 13] = \"AWSIPAddress\";\n})(GraphQLScalarType || (GraphQLScalarType = {}));\n(function (GraphQLScalarType) {\n function getJSType(scalar) {\n switch (scalar) {\n case 'Boolean':\n return 'boolean';\n case 'ID':\n case 'String':\n case 'AWSDate':\n case 'AWSTime':\n case 'AWSDateTime':\n case 'AWSEmail':\n case 'AWSURL':\n case 'AWSPhone':\n case 'AWSIPAddress':\n return 'string';\n case 'Int':\n case 'Float':\n case 'AWSTimestamp':\n return 'number';\n case 'AWSJSON':\n return 'object';\n default:\n throw new Error('Invalid scalar type');\n }\n }\n GraphQLScalarType.getJSType = getJSType;\n function getValidationFunction(scalar) {\n switch (scalar) {\n case 'AWSDate':\n return isAWSDate;\n case 'AWSTime':\n return isAWSTime;\n case 'AWSDateTime':\n return isAWSDateTime;\n case 'AWSTimestamp':\n return isAWSTimestamp;\n case 'AWSEmail':\n return isAWSEmail;\n case 'AWSJSON':\n return isAWSJSON;\n case 'AWSURL':\n return isAWSURL;\n case 'AWSPhone':\n return isAWSPhone;\n case 'AWSIPAddress':\n return isAWSIPAddress;\n default:\n return undefined;\n }\n }\n GraphQLScalarType.getValidationFunction = getValidationFunction;\n})(GraphQLScalarType || (GraphQLScalarType = {}));\nexport function isGraphQLScalarType(obj) {\n return obj && GraphQLScalarType[obj] !== undefined;\n}\nexport function isModelFieldType(obj) {\n const modelField = 'model';\n if (obj && obj[modelField])\n return true;\n return false;\n}\nexport function isNonModelFieldType(obj) {\n const typeField = 'nonModel';\n if (obj && obj[typeField])\n return true;\n return false;\n}\nexport function isEnumFieldType(obj) {\n const modelField = 'enum';\n if (obj && obj[modelField])\n return true;\n return false;\n}\nexport function isIdentifierObject(obj, modelDefinition) {\n const keys = extractPrimaryKeyFieldNames(modelDefinition);\n return (typeof obj === 'object' && obj && keys.every(k => obj[k] !== undefined));\n}\n//#endregion\n//#region Subscription messages\nexport var OpType;\n(function (OpType) {\n OpType[\"INSERT\"] = \"INSERT\";\n OpType[\"UPDATE\"] = \"UPDATE\";\n OpType[\"DELETE\"] = \"DELETE\";\n})(OpType || (OpType = {}));\nexport function isPredicateObj(obj) {\n return obj && obj.field !== undefined;\n}\nexport function isPredicateGroup(obj) {\n return obj && obj.type !== undefined;\n}\nexport var QueryOne;\n(function (QueryOne) {\n QueryOne[QueryOne[\"FIRST\"] = 0] = \"FIRST\";\n QueryOne[QueryOne[\"LAST\"] = 1] = \"LAST\";\n})(QueryOne || (QueryOne = {}));\nexport var SortDirection;\n(function (SortDirection) {\n SortDirection[\"ASCENDING\"] = \"ASCENDING\";\n SortDirection[\"DESCENDING\"] = \"DESCENDING\";\n})(SortDirection || (SortDirection = {}));\nexport var AuthModeStrategyType;\n(function (AuthModeStrategyType) {\n AuthModeStrategyType[\"DEFAULT\"] = \"DEFAULT\";\n AuthModeStrategyType[\"MULTI_AUTH\"] = \"MULTI_AUTH\";\n})(AuthModeStrategyType || (AuthModeStrategyType = {}));\nexport var ModelOperation;\n(function (ModelOperation) {\n ModelOperation[\"CREATE\"] = \"CREATE\";\n ModelOperation[\"READ\"] = \"READ\";\n ModelOperation[\"UPDATE\"] = \"UPDATE\";\n ModelOperation[\"DELETE\"] = \"DELETE\";\n})(ModelOperation || (ModelOperation = {}));\nexport async function syncExpression(modelConstructor, conditionProducer) {\n return {\n modelConstructor,\n conditionProducer,\n };\n}\nexport var ProcessName;\n(function (ProcessName) {\n ProcessName[\"sync\"] = \"sync\";\n ProcessName[\"mutate\"] = \"mutate\";\n ProcessName[\"subscribe\"] = \"subscribe\";\n})(ProcessName || (ProcessName = {}));\nexport const DISCARD = Symbol('DISCARD');\nexport var LimitTimerRaceResolvedValues;\n(function (LimitTimerRaceResolvedValues) {\n LimitTimerRaceResolvedValues[\"LIMIT\"] = \"LIMIT\";\n LimitTimerRaceResolvedValues[\"TIMER\"] = \"TIMER\";\n})(LimitTimerRaceResolvedValues || (LimitTimerRaceResolvedValues = {}));\n/**\n * A pointer used by DataStore internally to lookup predicate details\n * that should not be exposed on public customer interfaces.\n */\nexport class PredicateInternalsKey {\n constructor() {\n this.__isPredicateInternalsKeySentinel = true;\n }\n}\n// #endregion\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.mjs","sources":["../../src/types.ts"],"sourcesContent":["import { extractPrimaryKeyFieldNames, isAWSDate, isAWSDateTime, isAWSEmail, isAWSIPAddress, isAWSJSON, isAWSPhone, isAWSTime, isAWSTimestamp, isAWSURL, } from './util';\nexport function isSchemaModel(obj) {\n return obj && obj.pluralName !== undefined;\n}\nexport function isSchemaModelWithAttributes(m) {\n return isSchemaModel(m) && m.attributes !== undefined;\n}\nexport function isAssociatedWith(obj) {\n return obj && obj.associatedWith;\n}\nexport function isTargetNameAssociation(obj) {\n return obj?.targetName || obj?.targetNames;\n}\nexport function isFieldAssociation(obj, fieldName) {\n return obj?.fields[fieldName]?.association?.connectionType;\n}\nexport function isModelAttributeAuth(attr) {\n return (attr.type === 'auth' &&\n attr.properties &&\n attr.properties.rules &&\n attr.properties.rules.length > 0);\n}\nexport function isModelAttributeKey(attr) {\n return (attr.type === 'key' &&\n attr.properties &&\n attr.properties.fields &&\n attr.properties.fields.length > 0);\n}\nexport function isModelAttributePrimaryKey(attr) {\n return isModelAttributeKey(attr) && attr.properties.name === undefined;\n}\nexport function isModelAttributeCompositeKey(attr) {\n return (isModelAttributeKey(attr) &&\n attr.properties.name !== undefined &&\n attr.properties.fields.length > 2);\n}\nexport var ModelAttributeAuthAllow;\n(function (ModelAttributeAuthAllow) {\n ModelAttributeAuthAllow[\"CUSTOM\"] = \"custom\";\n ModelAttributeAuthAllow[\"OWNER\"] = \"owner\";\n ModelAttributeAuthAllow[\"GROUPS\"] = \"groups\";\n ModelAttributeAuthAllow[\"PRIVATE\"] = \"private\";\n ModelAttributeAuthAllow[\"PUBLIC\"] = \"public\";\n})(ModelAttributeAuthAllow || (ModelAttributeAuthAllow = {}));\nexport var ModelAttributeAuthProvider;\n(function (ModelAttributeAuthProvider) {\n ModelAttributeAuthProvider[\"FUNCTION\"] = \"function\";\n ModelAttributeAuthProvider[\"USER_POOLS\"] = \"userPools\";\n ModelAttributeAuthProvider[\"OIDC\"] = \"oidc\";\n ModelAttributeAuthProvider[\"IAM\"] = \"iam\";\n ModelAttributeAuthProvider[\"API_KEY\"] = \"apiKey\";\n})(ModelAttributeAuthProvider || (ModelAttributeAuthProvider = {}));\nexport var GraphQLScalarType;\n(function (GraphQLScalarType) {\n GraphQLScalarType[GraphQLScalarType[\"ID\"] = 0] = \"ID\";\n GraphQLScalarType[GraphQLScalarType[\"String\"] = 1] = \"String\";\n GraphQLScalarType[GraphQLScalarType[\"Int\"] = 2] = \"Int\";\n GraphQLScalarType[GraphQLScalarType[\"Float\"] = 3] = \"Float\";\n GraphQLScalarType[GraphQLScalarType[\"Boolean\"] = 4] = \"Boolean\";\n GraphQLScalarType[GraphQLScalarType[\"AWSDate\"] = 5] = \"AWSDate\";\n GraphQLScalarType[GraphQLScalarType[\"AWSTime\"] = 6] = \"AWSTime\";\n GraphQLScalarType[GraphQLScalarType[\"AWSDateTime\"] = 7] = \"AWSDateTime\";\n GraphQLScalarType[GraphQLScalarType[\"AWSTimestamp\"] = 8] = \"AWSTimestamp\";\n GraphQLScalarType[GraphQLScalarType[\"AWSEmail\"] = 9] = \"AWSEmail\";\n GraphQLScalarType[GraphQLScalarType[\"AWSJSON\"] = 10] = \"AWSJSON\";\n GraphQLScalarType[GraphQLScalarType[\"AWSURL\"] = 11] = \"AWSURL\";\n GraphQLScalarType[GraphQLScalarType[\"AWSPhone\"] = 12] = \"AWSPhone\";\n GraphQLScalarType[GraphQLScalarType[\"AWSIPAddress\"] = 13] = \"AWSIPAddress\";\n})(GraphQLScalarType || (GraphQLScalarType = {}));\n// eslint-disable-next-line @typescript-eslint/no-namespace\n(function (GraphQLScalarType) {\n function getJSType(scalar) {\n switch (scalar) {\n case 'Boolean':\n return 'boolean';\n case 'ID':\n case 'String':\n case 'AWSDate':\n case 'AWSTime':\n case 'AWSDateTime':\n case 'AWSEmail':\n case 'AWSURL':\n case 'AWSPhone':\n case 'AWSIPAddress':\n return 'string';\n case 'Int':\n case 'Float':\n case 'AWSTimestamp':\n return 'number';\n case 'AWSJSON':\n return 'object';\n default:\n throw new Error('Invalid scalar type');\n }\n }\n GraphQLScalarType.getJSType = getJSType;\n function getValidationFunction(scalar) {\n switch (scalar) {\n case 'AWSDate':\n return isAWSDate;\n case 'AWSTime':\n return isAWSTime;\n case 'AWSDateTime':\n return isAWSDateTime;\n case 'AWSTimestamp':\n return isAWSTimestamp;\n case 'AWSEmail':\n return isAWSEmail;\n case 'AWSJSON':\n return isAWSJSON;\n case 'AWSURL':\n return isAWSURL;\n case 'AWSPhone':\n return isAWSPhone;\n case 'AWSIPAddress':\n return isAWSIPAddress;\n default:\n return undefined;\n }\n }\n GraphQLScalarType.getValidationFunction = getValidationFunction;\n})(GraphQLScalarType || (GraphQLScalarType = {}));\nexport function isGraphQLScalarType(obj) {\n return obj && GraphQLScalarType[obj] !== undefined;\n}\nexport function isModelFieldType(obj) {\n const modelField = 'model';\n if (obj && obj[modelField])\n return true;\n return false;\n}\nexport function isNonModelFieldType(obj) {\n const typeField = 'nonModel';\n if (obj && obj[typeField])\n return true;\n return false;\n}\nexport function isEnumFieldType(obj) {\n const modelField = 'enum';\n if (obj && obj[modelField])\n return true;\n return false;\n}\nexport function isIdentifierObject(obj, modelDefinition) {\n const keys = extractPrimaryKeyFieldNames(modelDefinition);\n return (typeof obj === 'object' && obj && keys.every(k => obj[k] !== undefined));\n}\n// #endregion\n// #region Subscription messages\nexport var OpType;\n(function (OpType) {\n OpType[\"INSERT\"] = \"INSERT\";\n OpType[\"UPDATE\"] = \"UPDATE\";\n OpType[\"DELETE\"] = \"DELETE\";\n})(OpType || (OpType = {}));\nexport function isPredicateObj(obj) {\n return obj && obj.field !== undefined;\n}\nexport function isPredicateGroup(obj) {\n return obj && obj.type !== undefined;\n}\nexport var QueryOne;\n(function (QueryOne) {\n QueryOne[QueryOne[\"FIRST\"] = 0] = \"FIRST\";\n QueryOne[QueryOne[\"LAST\"] = 1] = \"LAST\";\n})(QueryOne || (QueryOne = {}));\nexport var SortDirection;\n(function (SortDirection) {\n SortDirection[\"ASCENDING\"] = \"ASCENDING\";\n SortDirection[\"DESCENDING\"] = \"DESCENDING\";\n})(SortDirection || (SortDirection = {}));\nexport var AuthModeStrategyType;\n(function (AuthModeStrategyType) {\n AuthModeStrategyType[\"DEFAULT\"] = \"DEFAULT\";\n AuthModeStrategyType[\"MULTI_AUTH\"] = \"MULTI_AUTH\";\n})(AuthModeStrategyType || (AuthModeStrategyType = {}));\nexport var ModelOperation;\n(function (ModelOperation) {\n ModelOperation[\"CREATE\"] = \"CREATE\";\n ModelOperation[\"READ\"] = \"READ\";\n ModelOperation[\"UPDATE\"] = \"UPDATE\";\n ModelOperation[\"DELETE\"] = \"DELETE\";\n})(ModelOperation || (ModelOperation = {}));\nexport async function syncExpression(modelConstructor, conditionProducer) {\n return {\n modelConstructor,\n conditionProducer,\n };\n}\nexport var ProcessName;\n(function (ProcessName) {\n ProcessName[\"sync\"] = \"sync\";\n ProcessName[\"mutate\"] = \"mutate\";\n ProcessName[\"subscribe\"] = \"subscribe\";\n})(ProcessName || (ProcessName = {}));\nexport const DISCARD = Symbol('DISCARD');\nexport var LimitTimerRaceResolvedValues;\n(function (LimitTimerRaceResolvedValues) {\n LimitTimerRaceResolvedValues[\"LIMIT\"] = \"LIMIT\";\n LimitTimerRaceResolvedValues[\"TIMER\"] = \"TIMER\";\n})(LimitTimerRaceResolvedValues || (LimitTimerRaceResolvedValues = {}));\n/**\n * A pointer used by DataStore internally to lookup predicate details\n * that should not be exposed on public customer interfaces.\n */\nexport class PredicateInternalsKey {\n constructor() {\n this.__isPredicateInternalsKeySentinel = true;\n }\n}\n// #endregion\n"],"names":[],"mappings":"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"}
|
package/dist/esm/util.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ULID } from 'ulid';
|
|
2
2
|
import { Patch } from 'immer';
|
|
3
3
|
import { ModelInstanceCreator } from './datastore/datastore';
|
|
4
|
-
import { AllOperators,
|
|
4
|
+
import { AllOperators, DeferredCallbackResolverOptions, IndexesType, ModelAssociation, ModelAttribute, ModelAttributes, ModelKeys, NonModelTypeConstructor, PaginationInput, PersistentModel, PersistentModelConstructor, PredicateGroups, PredicateObject, PredicatesGroup, RelationType, RelationshipType, SchemaModel, SchemaNamespace, SortPredicatesGroup } from './types';
|
|
5
5
|
export declare const ID = "id";
|
|
6
6
|
/**
|
|
7
7
|
* Used by the Async Storage Adapter to concatenate key values
|
|
@@ -29,10 +29,10 @@ export declare enum NAMESPACES {
|
|
|
29
29
|
SYNC = "sync",
|
|
30
30
|
STORAGE = "storage"
|
|
31
31
|
}
|
|
32
|
-
declare const DATASTORE
|
|
33
|
-
declare const USER
|
|
34
|
-
declare const SYNC
|
|
35
|
-
declare const STORAGE
|
|
32
|
+
declare const DATASTORE: NAMESPACES;
|
|
33
|
+
declare const USER: NAMESPACES;
|
|
34
|
+
declare const SYNC: NAMESPACES;
|
|
35
|
+
declare const STORAGE: NAMESPACES;
|
|
36
36
|
export { USER, SYNC, STORAGE, DATASTORE };
|
|
37
37
|
export declare const exhaustiveCheck: (obj: never, throwOnError?: boolean) => void;
|
|
38
38
|
export declare const isNullOrUndefined: (val: any) => boolean;
|
package/dist/esm/util.mjs
CHANGED
|
@@ -35,10 +35,10 @@ var NAMESPACES;
|
|
|
35
35
|
NAMESPACES["SYNC"] = "sync";
|
|
36
36
|
NAMESPACES["STORAGE"] = "storage";
|
|
37
37
|
})(NAMESPACES || (NAMESPACES = {}));
|
|
38
|
-
const DATASTORE = NAMESPACES
|
|
39
|
-
const USER = NAMESPACES
|
|
40
|
-
const SYNC = NAMESPACES
|
|
41
|
-
const STORAGE = NAMESPACES
|
|
38
|
+
const { DATASTORE } = NAMESPACES;
|
|
39
|
+
const { USER } = NAMESPACES;
|
|
40
|
+
const { SYNC } = NAMESPACES;
|
|
41
|
+
const { STORAGE } = NAMESPACES;
|
|
42
42
|
const exhaustiveCheck = (obj, throwOnError = true) => {
|
|
43
43
|
if (throwOnError) {
|
|
44
44
|
throw new Error(`Invalid ${obj}`);
|
|
@@ -95,9 +95,10 @@ const validatePredicateField = (value, operator, operand) => {
|
|
|
95
95
|
return value >= operand;
|
|
96
96
|
case 'gt':
|
|
97
97
|
return value > operand;
|
|
98
|
-
case 'between':
|
|
98
|
+
case 'between': {
|
|
99
99
|
const [min, max] = operand;
|
|
100
100
|
return value >= min && value <= max;
|
|
101
|
+
}
|
|
101
102
|
case 'beginsWith':
|
|
102
103
|
return (!isNullOrUndefined(value) &&
|
|
103
104
|
value.startsWith(operand));
|
|
@@ -106,7 +107,8 @@ const validatePredicateField = (value, operator, operand) => {
|
|
|
106
107
|
value.indexOf(operand) > -1);
|
|
107
108
|
case 'notContains':
|
|
108
109
|
return (isNullOrUndefined(value) ||
|
|
109
|
-
value.indexOf(operand) ===
|
|
110
|
+
value.indexOf(operand) ===
|
|
111
|
+
-1);
|
|
110
112
|
default:
|
|
111
113
|
return false;
|
|
112
114
|
}
|
|
@@ -125,7 +127,9 @@ const topologicallySortedModels = new WeakMap();
|
|
|
125
127
|
const traverseModel = (srcModelName, instance, namespace, modelInstanceCreator, getModelConstructorByModelName) => {
|
|
126
128
|
const modelConstructor = getModelConstructorByModelName(namespace.name, srcModelName);
|
|
127
129
|
const result = [];
|
|
128
|
-
const newInstance = modelConstructor.copyOf(instance, () => {
|
|
130
|
+
const newInstance = modelConstructor.copyOf(instance, () => {
|
|
131
|
+
// no-op
|
|
132
|
+
});
|
|
129
133
|
result.unshift({
|
|
130
134
|
modelName: srcModelName,
|
|
131
135
|
item: newInstance,
|
|
@@ -144,6 +148,7 @@ let privateModeCheckResult;
|
|
|
144
148
|
const isPrivateMode = () => {
|
|
145
149
|
return new Promise(resolve => {
|
|
146
150
|
const dbname = amplifyUuid();
|
|
151
|
+
// eslint-disable-next-line prefer-const
|
|
147
152
|
let db;
|
|
148
153
|
const isPrivate = () => {
|
|
149
154
|
privateModeCheckResult = false;
|
|
@@ -155,16 +160,19 @@ const isPrivateMode = () => {
|
|
|
155
160
|
}
|
|
156
161
|
await indexedDB.deleteDatabase(dbname);
|
|
157
162
|
privateModeCheckResult = true;
|
|
158
|
-
|
|
163
|
+
resolve(false);
|
|
159
164
|
};
|
|
160
165
|
if (privateModeCheckResult === true) {
|
|
161
166
|
return isNotPrivate();
|
|
162
167
|
}
|
|
163
168
|
if (privateModeCheckResult === false) {
|
|
164
|
-
|
|
169
|
+
isPrivate();
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
if (indexedDB === null) {
|
|
173
|
+
isPrivate();
|
|
174
|
+
return;
|
|
165
175
|
}
|
|
166
|
-
if (indexedDB === null)
|
|
167
|
-
return isPrivate();
|
|
168
176
|
db = indexedDB.open(dbname);
|
|
169
177
|
db.onerror = isPrivate;
|
|
170
178
|
db.onsuccess = isNotPrivate;
|
|
@@ -193,15 +201,19 @@ const isSafariCompatabilityMode = async () => {
|
|
|
193
201
|
}
|
|
194
202
|
const db = await new Promise(resolve => {
|
|
195
203
|
const dbOpenRequest = indexedDB.open(dbName);
|
|
196
|
-
dbOpenRequest.onerror = () =>
|
|
204
|
+
dbOpenRequest.onerror = () => {
|
|
205
|
+
resolve(false);
|
|
206
|
+
};
|
|
197
207
|
dbOpenRequest.onsuccess = () => {
|
|
198
|
-
const
|
|
199
|
-
resolve(
|
|
208
|
+
const openedDb = dbOpenRequest.result;
|
|
209
|
+
resolve(openedDb);
|
|
200
210
|
};
|
|
201
211
|
dbOpenRequest.onupgradeneeded = (event) => {
|
|
202
|
-
const
|
|
203
|
-
|
|
204
|
-
|
|
212
|
+
const upgradedDb = event?.target?.result;
|
|
213
|
+
upgradedDb.onerror = () => {
|
|
214
|
+
resolve(false);
|
|
215
|
+
};
|
|
216
|
+
const store = upgradedDb.createObjectStore(storeName, {
|
|
205
217
|
autoIncrement: true,
|
|
206
218
|
});
|
|
207
219
|
store.createIndex(indexName, ['id']);
|
|
@@ -221,12 +233,15 @@ const isSafariCompatabilityMode = async () => {
|
|
|
221
233
|
const store = tx.objectStore(storeName);
|
|
222
234
|
const index = store.index(indexName);
|
|
223
235
|
const getRequest = index.get([1]);
|
|
224
|
-
getRequest.onerror = () =>
|
|
236
|
+
getRequest.onerror = () => {
|
|
237
|
+
resolve(false);
|
|
238
|
+
};
|
|
225
239
|
getRequest.onsuccess = (event) => {
|
|
226
240
|
resolve(event?.target?.result);
|
|
227
241
|
};
|
|
228
242
|
});
|
|
229
243
|
if (db && typeof db.close === 'function') {
|
|
244
|
+
// eslint-disable-next-line @typescript-eslint/no-confusing-void-expression
|
|
230
245
|
await db.close();
|
|
231
246
|
}
|
|
232
247
|
await indexedDB.deleteDatabase(dbName);
|
|
@@ -503,6 +518,7 @@ const isAWSIPAddress = (val) => {
|
|
|
503
518
|
};
|
|
504
519
|
class DeferredPromise {
|
|
505
520
|
constructor() {
|
|
521
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
506
522
|
const self = this;
|
|
507
523
|
this.promise = new Promise((resolve, reject) => {
|
|
508
524
|
self.resolve = resolve;
|
|
@@ -514,7 +530,9 @@ class DeferredCallbackResolver {
|
|
|
514
530
|
constructor(options) {
|
|
515
531
|
this.limitPromise = new DeferredPromise();
|
|
516
532
|
this.raceInFlight = false;
|
|
517
|
-
this.callback = () => {
|
|
533
|
+
this.callback = () => {
|
|
534
|
+
// no-op
|
|
535
|
+
};
|
|
518
536
|
this.defaultErrorHandler = (msg = 'DeferredCallbackResolver error') => {
|
|
519
537
|
throw new Error(msg);
|
|
520
538
|
};
|
|
@@ -523,7 +541,7 @@ class DeferredCallbackResolver {
|
|
|
523
541
|
this.maxInterval = options.maxInterval || 2000;
|
|
524
542
|
}
|
|
525
543
|
startTimer() {
|
|
526
|
-
this.timerPromise = new Promise((resolve,
|
|
544
|
+
this.timerPromise = new Promise((resolve, _reject) => {
|
|
527
545
|
this.timer = setTimeout(() => {
|
|
528
546
|
resolve(LimitTimerRaceResolvedValues.TIMER);
|
|
529
547
|
}, this.maxInterval);
|
|
@@ -548,6 +566,7 @@ class DeferredCallbackResolver {
|
|
|
548
566
|
this.clear();
|
|
549
567
|
this.raceInFlight = false;
|
|
550
568
|
this.limitPromise = new DeferredPromise();
|
|
569
|
+
// eslint-disable-next-line no-unsafe-finally
|
|
551
570
|
return winner;
|
|
552
571
|
}
|
|
553
572
|
}
|
|
@@ -593,7 +612,7 @@ const getStorename = (namespace, modelName) => {
|
|
|
593
612
|
const storeName = `${namespace}_${modelName}`;
|
|
594
613
|
return storeName;
|
|
595
614
|
};
|
|
596
|
-
|
|
615
|
+
// #region Key Utils
|
|
597
616
|
/*
|
|
598
617
|
When we have GSI(s) with composite sort keys defined on a model
|
|
599
618
|
There are some very particular rules regarding which fields must be included in the update mutation input
|
|
@@ -715,13 +734,14 @@ const establishRelationAndKeys = (namespace) => {
|
|
|
715
734
|
const fieldAttribute = model.fields[attr];
|
|
716
735
|
if (typeof fieldAttribute.type === 'object' &&
|
|
717
736
|
'model' in fieldAttribute.type) {
|
|
718
|
-
const connectionType = fieldAttribute.association
|
|
737
|
+
const { connectionType } = fieldAttribute.association;
|
|
719
738
|
relationship[mKey].relationTypes.push({
|
|
720
739
|
fieldName: fieldAttribute.name,
|
|
721
740
|
modelName: fieldAttribute.type.model,
|
|
722
741
|
relationType: connectionType,
|
|
723
|
-
targetName: fieldAttribute.association
|
|
724
|
-
targetNames: fieldAttribute.association
|
|
742
|
+
targetName: fieldAttribute.association.targetName,
|
|
743
|
+
targetNames: fieldAttribute.association.targetNames,
|
|
744
|
+
// eslint-disable-next-line dot-notation
|
|
725
745
|
associatedWith: fieldAttribute.association['associatedWith'],
|
|
726
746
|
});
|
|
727
747
|
if (connectionType === 'BELONGS_TO') {
|
|
@@ -770,6 +790,7 @@ const establishRelationAndKeys = (namespace) => {
|
|
|
770
790
|
};
|
|
771
791
|
const getIndex = (rel, src) => {
|
|
772
792
|
let indexName;
|
|
793
|
+
// eslint-disable-next-line array-callback-return
|
|
773
794
|
rel.some((relItem) => {
|
|
774
795
|
if (relItem.modelName === src) {
|
|
775
796
|
const targetNames = extractTargetNamesFromSrc(relItem);
|
|
@@ -834,7 +855,7 @@ const getIndexKeys = (namespace, modelName) => {
|
|
|
834
855
|
}
|
|
835
856
|
return [ID];
|
|
836
857
|
};
|
|
837
|
-
|
|
858
|
+
// #endregion
|
|
838
859
|
/**
|
|
839
860
|
* Determine what the managed timestamp field names are for the given model definition
|
|
840
861
|
* and return the mapping.
|
package/dist/esm/util.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.mjs","sources":["../../src/util.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { monotonicFactory } from 'ulid';\nimport { amplifyUuid, AmplifyUrl, WordArray, } from '@aws-amplify/core/internals/utils';\nimport { produce, applyPatches } from 'immer';\nimport { isPredicateGroup, isPredicateObj, SortDirection, isModelAttributeKey, isModelAttributePrimaryKey, isModelAttributeCompositeKey, LimitTimerRaceResolvedValues, } from './types';\nimport { ModelSortPredicateCreator } from './predicates';\nexport const ID = 'id';\n/**\n * Used by the Async Storage Adapter to concatenate key values\n * for a record. For instance, if a model has the following keys:\n * `customId: ID! @primaryKey(sortKeyFields: [\"createdAt\"])`,\n * we concatenate the `customId` and `createdAt` as:\n * `12-234-5#2022-09-28T00:00:00.000Z`\n */\nexport const DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR = '#';\n/**\n * Used for generating spinal-cased index name from an array of\n * key field names.\n * E.g. for keys `[id, title]` => 'id-title'\n */\nexport const IDENTIFIER_KEY_SEPARATOR = '-';\nexport const errorMessages = {\n idEmptyString: 'An index field cannot contain an empty string value',\n queryByPkWithCompositeKeyPresent: 'Models with composite primary keys cannot be queried by a single key value. Use object literal syntax for composite keys instead: https://docs.amplify.aws/lib/datastore/advanced-workflows/q/platform/js/#querying-records-with-custom-primary-keys',\n deleteByPkWithCompositeKeyPresent: 'Models with composite primary keys cannot be deleted by a single key value, unless using a predicate. Use object literal syntax for composite keys instead: https://docs.amplify.aws/lib/datastore/advanced-workflows/q/platform/js/#querying-records-with-custom-primary-keys',\n observeWithObjectLiteral: 'Object literal syntax cannot be used with observe. Use a predicate instead: https://docs.amplify.aws/lib/datastore/data-access/q/platform/js/#predicates',\n};\nexport var NAMESPACES;\n(function (NAMESPACES) {\n NAMESPACES[\"DATASTORE\"] = \"datastore\";\n NAMESPACES[\"USER\"] = \"user\";\n NAMESPACES[\"SYNC\"] = \"sync\";\n NAMESPACES[\"STORAGE\"] = \"storage\";\n})(NAMESPACES || (NAMESPACES = {}));\nconst DATASTORE = NAMESPACES.DATASTORE;\nconst USER = NAMESPACES.USER;\nconst SYNC = NAMESPACES.SYNC;\nconst STORAGE = NAMESPACES.STORAGE;\nexport { USER, SYNC, STORAGE, DATASTORE };\nexport const exhaustiveCheck = (obj, throwOnError = true) => {\n if (throwOnError) {\n throw new Error(`Invalid ${obj}`);\n }\n};\nexport const isNullOrUndefined = (val) => {\n return typeof val === 'undefined' || val === undefined || val === null;\n};\nexport const validatePredicate = (model, groupType, predicatesOrGroups) => {\n let filterType;\n let isNegation = false;\n if (predicatesOrGroups.length === 0) {\n return true;\n }\n switch (groupType) {\n case 'not':\n filterType = 'every';\n isNegation = true;\n break;\n case 'and':\n filterType = 'every';\n break;\n case 'or':\n filterType = 'some';\n break;\n default:\n throw new Error(`Invalid ${groupType}`);\n }\n const result = predicatesOrGroups[filterType](predicateOrGroup => {\n if (isPredicateObj(predicateOrGroup)) {\n const { field, operator, operand } = predicateOrGroup;\n const value = model[field];\n return validatePredicateField(value, operator, operand);\n }\n if (isPredicateGroup(predicateOrGroup)) {\n const { type, predicates } = predicateOrGroup;\n return validatePredicate(model, type, predicates);\n }\n throw new Error('Not a predicate or group');\n });\n return isNegation ? !result : result;\n};\nexport const validatePredicateField = (value, operator, operand) => {\n switch (operator) {\n case 'ne':\n return value !== operand;\n case 'eq':\n return value === operand;\n case 'le':\n return value <= operand;\n case 'lt':\n return value < operand;\n case 'ge':\n return value >= operand;\n case 'gt':\n return value > operand;\n case 'between':\n const [min, max] = operand;\n return value >= min && value <= max;\n case 'beginsWith':\n return (!isNullOrUndefined(value) &&\n value.startsWith(operand));\n case 'contains':\n return (!isNullOrUndefined(value) &&\n value.indexOf(operand) > -1);\n case 'notContains':\n return (isNullOrUndefined(value) ||\n value.indexOf(operand) === -1);\n default:\n return false;\n }\n};\nexport const isModelConstructor = (obj) => {\n return (obj && typeof obj.copyOf === 'function');\n};\nconst nonModelClasses = new WeakSet();\nexport function registerNonModelClass(clazz) {\n nonModelClasses.add(clazz);\n}\nexport const isNonModelConstructor = (obj) => {\n return nonModelClasses.has(obj);\n};\nconst topologicallySortedModels = new WeakMap();\nexport const traverseModel = (srcModelName, instance, namespace, modelInstanceCreator, getModelConstructorByModelName) => {\n const modelConstructor = getModelConstructorByModelName(namespace.name, srcModelName);\n const result = [];\n const newInstance = modelConstructor.copyOf(instance, () => { });\n result.unshift({\n modelName: srcModelName,\n item: newInstance,\n instance: newInstance,\n });\n if (!topologicallySortedModels.has(namespace)) {\n topologicallySortedModels.set(namespace, Array.from(namespace.modelTopologicalOrdering.keys()));\n }\n const sortedModels = topologicallySortedModels.get(namespace);\n result.sort((a, b) => {\n return (sortedModels.indexOf(a.modelName) - sortedModels.indexOf(b.modelName));\n });\n return result;\n};\nlet privateModeCheckResult;\nexport const isPrivateMode = () => {\n return new Promise(resolve => {\n const dbname = amplifyUuid();\n let db;\n const isPrivate = () => {\n privateModeCheckResult = false;\n resolve(true);\n };\n const isNotPrivate = async () => {\n if (db && db.result && typeof db.result.close === 'function') {\n await db.result.close();\n }\n await indexedDB.deleteDatabase(dbname);\n privateModeCheckResult = true;\n return resolve(false);\n };\n if (privateModeCheckResult === true) {\n return isNotPrivate();\n }\n if (privateModeCheckResult === false) {\n return isPrivate();\n }\n if (indexedDB === null)\n return isPrivate();\n db = indexedDB.open(dbname);\n db.onerror = isPrivate;\n db.onsuccess = isNotPrivate;\n });\n};\nlet safariCompatabilityModeResult;\n/**\n * Whether the browser's implementation of IndexedDB breaks on array lookups\n * against composite indexes whose keypath contains a single column.\n *\n * E.g., Whether `store.createIndex(indexName, ['id'])` followed by\n * `store.index(indexName).get([1])` will *ever* return records.\n *\n * In all known, modern Safari browsers as of Q4 2022, the query against an index like\n * this will *always* return `undefined`. So, the index needs to be created as a scalar.\n */\nexport const isSafariCompatabilityMode = async () => {\n try {\n const dbName = amplifyUuid();\n const storeName = 'indexedDBFeatureProbeStore';\n const indexName = 'idx';\n if (indexedDB === null)\n return false;\n if (safariCompatabilityModeResult !== undefined) {\n return safariCompatabilityModeResult;\n }\n const db = await new Promise(resolve => {\n const dbOpenRequest = indexedDB.open(dbName);\n dbOpenRequest.onerror = () => resolve(false);\n dbOpenRequest.onsuccess = () => {\n const db = dbOpenRequest.result;\n resolve(db);\n };\n dbOpenRequest.onupgradeneeded = (event) => {\n const db = event?.target?.result;\n db.onerror = () => resolve(false);\n const store = db.createObjectStore(storeName, {\n autoIncrement: true,\n });\n store.createIndex(indexName, ['id']);\n };\n });\n if (!db) {\n throw new Error('Could not open probe DB');\n }\n const rwTx = db.transaction(storeName, 'readwrite');\n const rwStore = rwTx.objectStore(storeName);\n rwStore.add({\n id: 1,\n });\n rwTx.commit();\n const result = await new Promise(resolve => {\n const tx = db.transaction(storeName, 'readonly');\n const store = tx.objectStore(storeName);\n const index = store.index(indexName);\n const getRequest = index.get([1]);\n getRequest.onerror = () => resolve(false);\n getRequest.onsuccess = (event) => {\n resolve(event?.target?.result);\n };\n });\n if (db && typeof db.close === 'function') {\n await db.close();\n }\n await indexedDB.deleteDatabase(dbName);\n if (result === undefined) {\n safariCompatabilityModeResult = true;\n }\n else {\n safariCompatabilityModeResult = false;\n }\n }\n catch (error) {\n safariCompatabilityModeResult = false;\n }\n return safariCompatabilityModeResult;\n};\nconst HEX_TO_SHORT = {};\nfor (let i = 0; i < 256; i++) {\n let encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = `0${encodedByte}`;\n }\n HEX_TO_SHORT[encodedByte] = i;\n}\nconst getBytesFromHex = (encoded) => {\n if (encoded.length % 2 !== 0) {\n throw new Error('Hex encoded strings must have an even number length');\n }\n const out = new Uint8Array(encoded.length / 2);\n for (let i = 0; i < encoded.length; i += 2) {\n const encodedByte = encoded.slice(i, i + 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`);\n }\n }\n return out;\n};\nconst randomBytes = (nBytes) => {\n const str = new WordArray().random(nBytes).toString();\n return getBytesFromHex(str);\n};\nconst prng = () => randomBytes(1)[0] / 0xff;\nexport function monotonicUlidFactory(seed) {\n const ulid = monotonicFactory(prng);\n return () => {\n return ulid(seed);\n };\n}\n/**\n * Uses performance.now() if available, otherwise, uses Date.now() (e.g. react native without a polyfill)\n *\n * The values returned by performance.now() always increase at a constant rate,\n * independent of the system clock (which might be adjusted manually or skewed\n * by software like NTP).\n *\n * Otherwise, performance.timing.navigationStart + performance.now() will be\n * approximately equal to Date.now()\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/Performance/now#Example\n */\nexport function getNow() {\n if (typeof performance !== 'undefined' &&\n performance &&\n typeof performance.now === 'function') {\n return performance.now() | 0; // convert to integer\n }\n else {\n return Date.now();\n }\n}\nexport function sortCompareFunction(sortPredicates) {\n return function compareFunction(a, b) {\n // enable multi-field sort by iterating over predicates until\n // a comparison returns -1 or 1\n for (const predicate of sortPredicates) {\n const { field, sortDirection } = predicate;\n // reverse result when direction is descending\n const sortMultiplier = sortDirection === SortDirection.ASCENDING ? 1 : -1;\n if (a[field] < b[field]) {\n return -1 * sortMultiplier;\n }\n if (a[field] > b[field]) {\n return 1 * sortMultiplier;\n }\n }\n return 0;\n };\n}\n/* deep directed comparison ensuring that all fields on \"from\" object exist and\n * are equal to values on an \"against\" object\n *\n * Note: This same guarauntee is not applied for values on \"against\" that aren't on \"from\"\n *\n * @param fromObject - The object that may be an equal subset of the againstObject.\n * @param againstObject - The object that may be an equal superset of the fromObject.\n *\n * @returns True if fromObject is a equal subset of againstObject and False otherwise.\n */\nexport function directedValueEquality(fromObject, againstObject, nullish = false) {\n const aKeys = Object.keys(fromObject);\n for (const key of aKeys) {\n const fromValue = fromObject[key];\n const againstValue = againstObject[key];\n if (!valuesEqual(fromValue, againstValue, nullish)) {\n return false;\n }\n }\n return true;\n}\n// deep compare any 2 values\n// primitives or object types (including arrays, Sets, and Maps)\n// returns true if equal by value\n// if nullish is true, treat undefined and null values as equal\n// to normalize for GQL response values for undefined fields\nexport function valuesEqual(valA, valB, nullish = false) {\n let a = valA;\n let b = valB;\n const nullishCompare = (_a, _b) => {\n return ((_a === undefined || _a === null) && (_b === undefined || _b === null));\n };\n // if one of the values is a primitive and the other is an object\n if ((a instanceof Object && !(b instanceof Object)) ||\n (!(a instanceof Object) && b instanceof Object)) {\n return false;\n }\n // compare primitive types\n if (!(a instanceof Object)) {\n if (nullish && nullishCompare(a, b)) {\n return true;\n }\n return a === b;\n }\n // make sure object types match\n if ((Array.isArray(a) && !Array.isArray(b)) ||\n (Array.isArray(b) && !Array.isArray(a))) {\n return false;\n }\n if (a instanceof Set && b instanceof Set) {\n a = [...a];\n b = [...b];\n }\n if (a instanceof Map && b instanceof Map) {\n a = Object.fromEntries(a);\n b = Object.fromEntries(b);\n }\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n // last condition is to ensure that [] !== [null] even if nullish. However [undefined] === [null] when nullish\n if (aKeys.length !== bKeys.length && (!nullish || Array.isArray(a))) {\n return false;\n }\n // iterate through the longer set of keys\n // e.g., for a nullish comparison of a={ a: 1 } and b={ a: 1, b: null }\n // we want to iterate through bKeys\n const keys = aKeys.length >= bKeys.length ? aKeys : bKeys;\n for (const key of keys) {\n const aVal = a[key];\n const bVal = b[key];\n if (!valuesEqual(aVal, bVal, nullish)) {\n return false;\n }\n }\n return true;\n}\n/**\n * Statelessly extracts the specified page from an array.\n *\n * @param records - The source array to extract a page from.\n * @param pagination - A definition of the page to extract.\n * @returns This items from `records` matching the `pagination` definition.\n */\nexport function inMemoryPagination(records, pagination) {\n if (pagination && records.length > 1) {\n if (pagination.sort) {\n const sortPredicates = ModelSortPredicateCreator.getPredicates(pagination.sort);\n if (sortPredicates.length) {\n const compareFn = sortCompareFunction(sortPredicates);\n records.sort(compareFn);\n }\n }\n const { page = 0, limit = 0 } = pagination;\n const start = Math.max(0, page * limit) || 0;\n const end = limit > 0 ? start + limit : records.length;\n return records.slice(start, end);\n }\n return records;\n}\n/**\n * An `aysnc` implementation of `Array.some()`. Returns as soon as a match is found.\n * @param items The items to check.\n * @param matches The async matcher function, expected to\n * return Promise<boolean>: `true` for a matching item, `false` otherwise.\n * @returns A `Promise<boolean>`, `true` if \"some\" items match; `false` otherwise.\n */\nexport async function asyncSome(items, matches) {\n for (const item of items) {\n if (await matches(item)) {\n return true;\n }\n }\n return false;\n}\n/**\n * An `aysnc` implementation of `Array.every()`. Returns as soon as a non-match is found.\n * @param items The items to check.\n * @param matches The async matcher function, expected to\n * return Promise<boolean>: `true` for a matching item, `false` otherwise.\n * @returns A `Promise<boolean>`, `true` if every item matches; `false` otherwise.\n */\nexport async function asyncEvery(items, matches) {\n for (const item of items) {\n if (!(await matches(item))) {\n return false;\n }\n }\n return true;\n}\n/**\n * An `async` implementation of `Array.filter()`. Returns after all items have been filtered.\n * TODO: Return AsyncIterable.\n * @param items The items to filter.\n * @param matches The `async` matcher function, expected to\n * return Promise<boolean>: `true` for a matching item, `false` otherwise.\n * @returns A `Promise<T>` of matching items.\n */\nexport async function asyncFilter(items, matches) {\n const results = [];\n for (const item of items) {\n if (await matches(item)) {\n results.push(item);\n }\n }\n return results;\n}\nexport const isAWSDate = (val) => {\n return !!/^\\d{4}-\\d{2}-\\d{2}(Z|[+-]\\d{2}:\\d{2}($|:\\d{2}))?$/.exec(val);\n};\nexport const isAWSTime = (val) => {\n return !!/^\\d{2}:\\d{2}(:\\d{2}(.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}($|:\\d{2}))?$/.exec(val);\n};\nexport const isAWSDateTime = (val) => {\n return !!/^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}($|:\\d{2}))?$/.exec(val);\n};\nexport const isAWSTimestamp = (val) => {\n return !!/^\\d+$/.exec(String(val));\n};\nexport const isAWSEmail = (val) => {\n return !!/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.exec(val);\n};\nexport const isAWSJSON = (val) => {\n try {\n JSON.parse(val);\n return true;\n }\n catch {\n return false;\n }\n};\nexport const isAWSURL = (val) => {\n try {\n return !!new AmplifyUrl(val);\n }\n catch {\n return false;\n }\n};\nexport const isAWSPhone = (val) => {\n return !!/^\\+?\\d[\\d\\s-]+$/.exec(val);\n};\nexport const isAWSIPAddress = (val) => {\n return !!/((^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$)|(^((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?$))$/.exec(val);\n};\nexport class DeferredPromise {\n constructor() {\n const self = this;\n this.promise = new Promise((resolve, reject) => {\n self.resolve = resolve;\n self.reject = reject;\n });\n }\n}\nexport class DeferredCallbackResolver {\n constructor(options) {\n this.limitPromise = new DeferredPromise();\n this.raceInFlight = false;\n this.callback = () => { };\n this.defaultErrorHandler = (msg = 'DeferredCallbackResolver error') => {\n throw new Error(msg);\n };\n this.callback = options.callback;\n this.errorHandler = options.errorHandler || this.defaultErrorHandler;\n this.maxInterval = options.maxInterval || 2000;\n }\n startTimer() {\n this.timerPromise = new Promise((resolve, reject) => {\n this.timer = setTimeout(() => {\n resolve(LimitTimerRaceResolvedValues.TIMER);\n }, this.maxInterval);\n });\n }\n async racePromises() {\n let winner;\n try {\n this.raceInFlight = true;\n this.startTimer();\n winner = await Promise.race([\n this.timerPromise,\n this.limitPromise.promise,\n ]);\n this.callback();\n }\n catch (err) {\n this.errorHandler(err);\n }\n finally {\n // reset for the next race\n this.clear();\n this.raceInFlight = false;\n this.limitPromise = new DeferredPromise();\n return winner;\n }\n }\n start() {\n if (!this.raceInFlight)\n this.racePromises();\n }\n clear() {\n clearTimeout(this.timer);\n }\n resolve() {\n this.limitPromise.resolve(LimitTimerRaceResolvedValues.LIMIT);\n }\n}\n/**\n * merge two sets of patches created by immer produce.\n * newPatches take precedent over oldPatches for patches modifying the same path.\n * In the case many consecutive pathces are merged the original model should\n * always be the root model.\n *\n * Example:\n * A -> B, patches1\n * B -> C, patches2\n *\n * mergePatches(A, patches1, patches2) to get patches for A -> C\n *\n * @param originalSource the original Model the patches should be applied to\n * @param oldPatches immer produce patch list\n * @param newPatches immer produce patch list (will take precedence)\n * @return merged patches\n */\nexport function mergePatches(originalSource, oldPatches, newPatches) {\n const patchesToMerge = oldPatches.concat(newPatches);\n let patches;\n produce(originalSource, draft => {\n applyPatches(draft, patchesToMerge);\n }, p => {\n patches = p;\n });\n return patches;\n}\nexport const getStorename = (namespace, modelName) => {\n const storeName = `${namespace}_${modelName}`;\n return storeName;\n};\n//#region Key Utils\n/*\n When we have GSI(s) with composite sort keys defined on a model\n There are some very particular rules regarding which fields must be included in the update mutation input\n The field selection becomes more complex as the number of GSIs with composite sort keys grows\n\n To summarize: any time we update a field that is part of the composite sort key of a GSI, we must include:\n 1. all of the other fields in that composite sort key\n 2. all of the fields from any other composite sort key that intersect with the fields from 1.\n\n E.g.,\n Model @model\n @key(name: 'key1' fields: ['hk', 'a', 'b', 'c'])\n @key(name: 'key2' fields: ['hk', 'a', 'b', 'd'])\n @key(name: 'key3' fields: ['hk', 'x', 'y', 'z'])\n\n Model.a is updated => include ['a', 'b', 'c', 'd']\n Model.c is updated => include ['a', 'b', 'c', 'd']\n Model.d is updated => include ['a', 'b', 'c', 'd']\n Model.x is updated => include ['x', 'y', 'z']\n\n This function accepts a model's attributes and returns grouped sets of composite key fields\n Using our example Model above, the function will return:\n [\n Set('a', 'b', 'c', 'd'),\n Set('x', 'y', 'z'),\n ]\n\n This gives us the opportunity to correctly include the required fields for composite keys\n When crafting the mutation input in Storage.getUpdateMutationInput\n\n See 'processCompositeKeys' test in util.test.ts for more examples\n*/\nexport const processCompositeKeys = (attributes) => {\n const extractCompositeSortKey = ({ properties: { \n // ignore the HK (fields[0]) we only need to include the composite sort key fields[1...n]\n fields: [, ...sortKeyFields], }, }) => sortKeyFields;\n const compositeKeyFields = attributes\n .filter(isModelAttributeCompositeKey)\n .map(extractCompositeSortKey);\n /*\n if 2 sets of fields have any intersecting fields => combine them into 1 union set\n e.g., ['a', 'b', 'c'] and ['a', 'b', 'd'] => ['a', 'b', 'c', 'd']\n */\n const combineIntersecting = (fields) => fields.reduce((combined, sortKeyFields) => {\n const sortKeyFieldsSet = new Set(sortKeyFields);\n if (combined.length === 0) {\n combined.push(sortKeyFieldsSet);\n return combined;\n }\n // does the current set share values with another set we've already added to `combined`?\n const intersectingSetIdx = combined.findIndex(existingSet => {\n return [...existingSet].some(f => sortKeyFieldsSet.has(f));\n });\n if (intersectingSetIdx > -1) {\n const union = new Set([\n ...combined[intersectingSetIdx],\n ...sortKeyFieldsSet,\n ]);\n // combine the current set with the intersecting set we found above\n combined[intersectingSetIdx] = union;\n }\n else {\n // none of the sets in `combined` have intersecting values with the current set\n combined.push(sortKeyFieldsSet);\n }\n return combined;\n }, []);\n const initial = combineIntersecting(compositeKeyFields);\n // a single pass pay not be enough to correctly combine all the fields\n // call the function once more to get a final merged list of sets\n const combined = combineIntersecting(initial);\n return combined;\n};\nexport const extractKeyIfExists = (modelDefinition) => {\n const keyAttribute = modelDefinition?.attributes?.find(isModelAttributeKey);\n return keyAttribute;\n};\nexport const extractPrimaryKeyFieldNames = (modelDefinition) => {\n const keyAttribute = extractKeyIfExists(modelDefinition);\n if (keyAttribute && isModelAttributePrimaryKey(keyAttribute)) {\n return keyAttribute.properties.fields;\n }\n return [ID];\n};\nexport const extractPrimaryKeyValues = (model, keyFields) => {\n return keyFields.map(key => model[key]);\n};\nexport const extractPrimaryKeysAndValues = (model, keyFields) => {\n const primaryKeysAndValues = {};\n keyFields.forEach(key => (primaryKeysAndValues[key] = model[key]));\n return primaryKeysAndValues;\n};\n// IdentifierFields<ManagedIdentifier>\n// Default behavior without explicit @primaryKey defined\nexport const isIdManaged = (modelDefinition) => {\n const keyAttribute = extractKeyIfExists(modelDefinition);\n if (keyAttribute && isModelAttributePrimaryKey(keyAttribute)) {\n return false;\n }\n return true;\n};\n// IdentifierFields<OptionallyManagedIdentifier>\n// @primaryKey with explicit `id` in the PK. Single key or composite\nexport const isIdOptionallyManaged = (modelDefinition) => {\n const keyAttribute = extractKeyIfExists(modelDefinition);\n if (keyAttribute && isModelAttributePrimaryKey(keyAttribute)) {\n return keyAttribute.properties.fields[0] === ID;\n }\n return false;\n};\nexport const establishRelationAndKeys = (namespace) => {\n const relationship = {};\n const keys = {};\n Object.keys(namespace.models).forEach((mKey) => {\n relationship[mKey] = { indexes: [], relationTypes: [] };\n keys[mKey] = {};\n const model = namespace.models[mKey];\n Object.keys(model.fields).forEach((attr) => {\n const fieldAttribute = model.fields[attr];\n if (typeof fieldAttribute.type === 'object' &&\n 'model' in fieldAttribute.type) {\n const connectionType = fieldAttribute.association.connectionType;\n relationship[mKey].relationTypes.push({\n fieldName: fieldAttribute.name,\n modelName: fieldAttribute.type.model,\n relationType: connectionType,\n targetName: fieldAttribute.association['targetName'],\n targetNames: fieldAttribute.association['targetNames'],\n associatedWith: fieldAttribute.association['associatedWith'],\n });\n if (connectionType === 'BELONGS_TO') {\n const targetNames = extractTargetNamesFromSrc(fieldAttribute.association);\n if (targetNames) {\n const idxName = indexNameFromKeys(targetNames);\n const idxExists = relationship[mKey].indexes.find(([index]) => index === idxName);\n if (!idxExists) {\n relationship[mKey].indexes.push([idxName, targetNames]);\n }\n }\n }\n }\n });\n if (model.attributes) {\n keys[mKey].compositeKeys = processCompositeKeys(model.attributes);\n for (const attribute of model.attributes) {\n if (!isModelAttributeKey(attribute)) {\n continue;\n }\n const { fields } = attribute.properties;\n if (isModelAttributePrimaryKey(attribute)) {\n keys[mKey].primaryKey = fields;\n continue;\n }\n // create indexes for all other keys\n const idxName = indexNameFromKeys(fields);\n const idxExists = relationship[mKey].indexes.find(([index]) => index === idxName);\n if (!idxExists) {\n relationship[mKey].indexes.push([idxName, fields]);\n }\n }\n }\n // set 'id' as the PK for models without a custom PK explicitly defined\n if (!keys[mKey].primaryKey) {\n keys[mKey].primaryKey = [ID];\n }\n // create primary index\n relationship[mKey].indexes.push([\n 'byPk',\n keys[mKey].primaryKey,\n { unique: true },\n ]);\n });\n return [relationship, keys];\n};\nexport const getIndex = (rel, src) => {\n let indexName;\n rel.some((relItem) => {\n if (relItem.modelName === src) {\n const targetNames = extractTargetNamesFromSrc(relItem);\n indexName = targetNames && indexNameFromKeys(targetNames);\n return true;\n }\n });\n return indexName;\n};\nexport const getIndexFromAssociation = (indexes, src) => {\n let indexName;\n if (Array.isArray(src)) {\n indexName = indexNameFromKeys(src);\n }\n else {\n indexName = src;\n }\n const associationIndex = indexes.find(([idxName]) => idxName === indexName);\n return associationIndex && associationIndex[0];\n};\n/**\n * Backwards-compatability for schema generated prior to custom primary key support:\nthe single field `targetName` has been replaced with an array of `targetNames`.\n`targetName` and `targetNames` are exclusive (will never exist on the same schema)\n * @param src {RelationType | ModelAssociation | undefined}\n * @returns array of targetNames, or `undefined`\n */\nexport const extractTargetNamesFromSrc = (src) => {\n const targetName = src?.targetName;\n const targetNames = src?.targetNames;\n if (Array.isArray(targetNames)) {\n return targetNames;\n }\n else if (typeof targetName === 'string') {\n return [targetName];\n }\n else {\n return undefined;\n }\n};\n// Generates spinal-cased index name from an array of key field names\n// E.g. for keys `[id, title]` => 'id-title'\nexport const indexNameFromKeys = (keys) => {\n return keys.reduce((prev, cur, idx) => {\n if (idx === 0) {\n return cur;\n }\n return `${prev}${IDENTIFIER_KEY_SEPARATOR}${cur}`;\n }, '');\n};\nexport const keysEqual = (keysA, keysB) => {\n if (keysA.length !== keysB.length) {\n return false;\n }\n return keysA.every((key, idx) => key === keysB[idx]);\n};\n// Returns primary keys for a model\nexport const getIndexKeys = (namespace, modelName) => {\n const keyPath = namespace?.keys?.[modelName]?.primaryKey;\n if (keyPath) {\n return keyPath;\n }\n return [ID];\n};\n//#endregion\n/**\n * Determine what the managed timestamp field names are for the given model definition\n * and return the mapping.\n *\n * All timestamp fields are included in the mapping, regardless of whether the final field\n * names are the defaults or customized in the `@model` directive.\n *\n * @see https://docs.amplify.aws/cli/graphql/data-modeling/#customize-creation-and-update-timestamps\n *\n * @param definition modelDefinition to inspect.\n * @returns An object mapping `createdAt` and `updatedAt` to their field names.\n */\nexport const getTimestampFields = (definition) => {\n const modelAttributes = definition.attributes?.find(attr => attr.type === 'model');\n const timestampFieldsMap = modelAttributes?.properties?.timestamps;\n const defaultFields = {\n createdAt: 'createdAt',\n updatedAt: 'updatedAt',\n };\n const customFields = timestampFieldsMap || {};\n return {\n ...defaultFields,\n ...customFields,\n };\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"util.mjs","sources":["../../src/util.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { monotonicFactory } from 'ulid';\nimport { AmplifyUrl, WordArray, amplifyUuid, } from '@aws-amplify/core/internals/utils';\nimport { applyPatches, produce } from 'immer';\nimport { LimitTimerRaceResolvedValues, SortDirection, isModelAttributeCompositeKey, isModelAttributeKey, isModelAttributePrimaryKey, isPredicateGroup, isPredicateObj, } from './types';\nimport { ModelSortPredicateCreator } from './predicates';\nexport const ID = 'id';\n/**\n * Used by the Async Storage Adapter to concatenate key values\n * for a record. For instance, if a model has the following keys:\n * `customId: ID! @primaryKey(sortKeyFields: [\"createdAt\"])`,\n * we concatenate the `customId` and `createdAt` as:\n * `12-234-5#2022-09-28T00:00:00.000Z`\n */\nexport const DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR = '#';\n/**\n * Used for generating spinal-cased index name from an array of\n * key field names.\n * E.g. for keys `[id, title]` => 'id-title'\n */\nexport const IDENTIFIER_KEY_SEPARATOR = '-';\nexport const errorMessages = {\n idEmptyString: 'An index field cannot contain an empty string value',\n queryByPkWithCompositeKeyPresent: 'Models with composite primary keys cannot be queried by a single key value. Use object literal syntax for composite keys instead: https://docs.amplify.aws/lib/datastore/advanced-workflows/q/platform/js/#querying-records-with-custom-primary-keys',\n deleteByPkWithCompositeKeyPresent: 'Models with composite primary keys cannot be deleted by a single key value, unless using a predicate. Use object literal syntax for composite keys instead: https://docs.amplify.aws/lib/datastore/advanced-workflows/q/platform/js/#querying-records-with-custom-primary-keys',\n observeWithObjectLiteral: 'Object literal syntax cannot be used with observe. Use a predicate instead: https://docs.amplify.aws/lib/datastore/data-access/q/platform/js/#predicates',\n};\nexport var NAMESPACES;\n(function (NAMESPACES) {\n NAMESPACES[\"DATASTORE\"] = \"datastore\";\n NAMESPACES[\"USER\"] = \"user\";\n NAMESPACES[\"SYNC\"] = \"sync\";\n NAMESPACES[\"STORAGE\"] = \"storage\";\n})(NAMESPACES || (NAMESPACES = {}));\nconst { DATASTORE } = NAMESPACES;\nconst { USER } = NAMESPACES;\nconst { SYNC } = NAMESPACES;\nconst { STORAGE } = NAMESPACES;\nexport { USER, SYNC, STORAGE, DATASTORE };\nexport const exhaustiveCheck = (obj, throwOnError = true) => {\n if (throwOnError) {\n throw new Error(`Invalid ${obj}`);\n }\n};\nexport const isNullOrUndefined = (val) => {\n return typeof val === 'undefined' || val === undefined || val === null;\n};\nexport const validatePredicate = (model, groupType, predicatesOrGroups) => {\n let filterType;\n let isNegation = false;\n if (predicatesOrGroups.length === 0) {\n return true;\n }\n switch (groupType) {\n case 'not':\n filterType = 'every';\n isNegation = true;\n break;\n case 'and':\n filterType = 'every';\n break;\n case 'or':\n filterType = 'some';\n break;\n default:\n throw new Error(`Invalid ${groupType}`);\n }\n const result = predicatesOrGroups[filterType](predicateOrGroup => {\n if (isPredicateObj(predicateOrGroup)) {\n const { field, operator, operand } = predicateOrGroup;\n const value = model[field];\n return validatePredicateField(value, operator, operand);\n }\n if (isPredicateGroup(predicateOrGroup)) {\n const { type, predicates } = predicateOrGroup;\n return validatePredicate(model, type, predicates);\n }\n throw new Error('Not a predicate or group');\n });\n return isNegation ? !result : result;\n};\nexport const validatePredicateField = (value, operator, operand) => {\n switch (operator) {\n case 'ne':\n return value !== operand;\n case 'eq':\n return value === operand;\n case 'le':\n return value <= operand;\n case 'lt':\n return value < operand;\n case 'ge':\n return value >= operand;\n case 'gt':\n return value > operand;\n case 'between': {\n const [min, max] = operand;\n return value >= min && value <= max;\n }\n case 'beginsWith':\n return (!isNullOrUndefined(value) &&\n value.startsWith(operand));\n case 'contains':\n return (!isNullOrUndefined(value) &&\n value.indexOf(operand) > -1);\n case 'notContains':\n return (isNullOrUndefined(value) ||\n value.indexOf(operand) ===\n -1);\n default:\n return false;\n }\n};\nexport const isModelConstructor = (obj) => {\n return (obj && typeof obj.copyOf === 'function');\n};\nconst nonModelClasses = new WeakSet();\nexport function registerNonModelClass(clazz) {\n nonModelClasses.add(clazz);\n}\nexport const isNonModelConstructor = (obj) => {\n return nonModelClasses.has(obj);\n};\nconst topologicallySortedModels = new WeakMap();\nexport const traverseModel = (srcModelName, instance, namespace, modelInstanceCreator, getModelConstructorByModelName) => {\n const modelConstructor = getModelConstructorByModelName(namespace.name, srcModelName);\n const result = [];\n const newInstance = modelConstructor.copyOf(instance, () => {\n // no-op\n });\n result.unshift({\n modelName: srcModelName,\n item: newInstance,\n instance: newInstance,\n });\n if (!topologicallySortedModels.has(namespace)) {\n topologicallySortedModels.set(namespace, Array.from(namespace.modelTopologicalOrdering.keys()));\n }\n const sortedModels = topologicallySortedModels.get(namespace);\n result.sort((a, b) => {\n return (sortedModels.indexOf(a.modelName) - sortedModels.indexOf(b.modelName));\n });\n return result;\n};\nlet privateModeCheckResult;\nexport const isPrivateMode = () => {\n return new Promise(resolve => {\n const dbname = amplifyUuid();\n // eslint-disable-next-line prefer-const\n let db;\n const isPrivate = () => {\n privateModeCheckResult = false;\n resolve(true);\n };\n const isNotPrivate = async () => {\n if (db && db.result && typeof db.result.close === 'function') {\n await db.result.close();\n }\n await indexedDB.deleteDatabase(dbname);\n privateModeCheckResult = true;\n resolve(false);\n };\n if (privateModeCheckResult === true) {\n return isNotPrivate();\n }\n if (privateModeCheckResult === false) {\n isPrivate();\n return;\n }\n if (indexedDB === null) {\n isPrivate();\n return;\n }\n db = indexedDB.open(dbname);\n db.onerror = isPrivate;\n db.onsuccess = isNotPrivate;\n });\n};\nlet safariCompatabilityModeResult;\n/**\n * Whether the browser's implementation of IndexedDB breaks on array lookups\n * against composite indexes whose keypath contains a single column.\n *\n * E.g., Whether `store.createIndex(indexName, ['id'])` followed by\n * `store.index(indexName).get([1])` will *ever* return records.\n *\n * In all known, modern Safari browsers as of Q4 2022, the query against an index like\n * this will *always* return `undefined`. So, the index needs to be created as a scalar.\n */\nexport const isSafariCompatabilityMode = async () => {\n try {\n const dbName = amplifyUuid();\n const storeName = 'indexedDBFeatureProbeStore';\n const indexName = 'idx';\n if (indexedDB === null)\n return false;\n if (safariCompatabilityModeResult !== undefined) {\n return safariCompatabilityModeResult;\n }\n const db = await new Promise(resolve => {\n const dbOpenRequest = indexedDB.open(dbName);\n dbOpenRequest.onerror = () => {\n resolve(false);\n };\n dbOpenRequest.onsuccess = () => {\n const openedDb = dbOpenRequest.result;\n resolve(openedDb);\n };\n dbOpenRequest.onupgradeneeded = (event) => {\n const upgradedDb = event?.target?.result;\n upgradedDb.onerror = () => {\n resolve(false);\n };\n const store = upgradedDb.createObjectStore(storeName, {\n autoIncrement: true,\n });\n store.createIndex(indexName, ['id']);\n };\n });\n if (!db) {\n throw new Error('Could not open probe DB');\n }\n const rwTx = db.transaction(storeName, 'readwrite');\n const rwStore = rwTx.objectStore(storeName);\n rwStore.add({\n id: 1,\n });\n rwTx.commit();\n const result = await new Promise(resolve => {\n const tx = db.transaction(storeName, 'readonly');\n const store = tx.objectStore(storeName);\n const index = store.index(indexName);\n const getRequest = index.get([1]);\n getRequest.onerror = () => {\n resolve(false);\n };\n getRequest.onsuccess = (event) => {\n resolve(event?.target?.result);\n };\n });\n if (db && typeof db.close === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression\n await db.close();\n }\n await indexedDB.deleteDatabase(dbName);\n if (result === undefined) {\n safariCompatabilityModeResult = true;\n }\n else {\n safariCompatabilityModeResult = false;\n }\n }\n catch (error) {\n safariCompatabilityModeResult = false;\n }\n return safariCompatabilityModeResult;\n};\nconst HEX_TO_SHORT = {};\nfor (let i = 0; i < 256; i++) {\n let encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = `0${encodedByte}`;\n }\n HEX_TO_SHORT[encodedByte] = i;\n}\nconst getBytesFromHex = (encoded) => {\n if (encoded.length % 2 !== 0) {\n throw new Error('Hex encoded strings must have an even number length');\n }\n const out = new Uint8Array(encoded.length / 2);\n for (let i = 0; i < encoded.length; i += 2) {\n const encodedByte = encoded.slice(i, i + 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`);\n }\n }\n return out;\n};\nconst randomBytes = (nBytes) => {\n const str = new WordArray().random(nBytes).toString();\n return getBytesFromHex(str);\n};\nconst prng = () => randomBytes(1)[0] / 0xff;\nexport function monotonicUlidFactory(seed) {\n const ulid = monotonicFactory(prng);\n return () => {\n return ulid(seed);\n };\n}\n/**\n * Uses performance.now() if available, otherwise, uses Date.now() (e.g. react native without a polyfill)\n *\n * The values returned by performance.now() always increase at a constant rate,\n * independent of the system clock (which might be adjusted manually or skewed\n * by software like NTP).\n *\n * Otherwise, performance.timing.navigationStart + performance.now() will be\n * approximately equal to Date.now()\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/Performance/now#Example\n */\nexport function getNow() {\n if (typeof performance !== 'undefined' &&\n performance &&\n typeof performance.now === 'function') {\n return performance.now() | 0; // convert to integer\n }\n else {\n return Date.now();\n }\n}\nexport function sortCompareFunction(sortPredicates) {\n return function compareFunction(a, b) {\n // enable multi-field sort by iterating over predicates until\n // a comparison returns -1 or 1\n for (const predicate of sortPredicates) {\n const { field, sortDirection } = predicate;\n // reverse result when direction is descending\n const sortMultiplier = sortDirection === SortDirection.ASCENDING ? 1 : -1;\n if (a[field] < b[field]) {\n return -1 * sortMultiplier;\n }\n if (a[field] > b[field]) {\n return 1 * sortMultiplier;\n }\n }\n return 0;\n };\n}\n/* deep directed comparison ensuring that all fields on \"from\" object exist and\n * are equal to values on an \"against\" object\n *\n * Note: This same guarauntee is not applied for values on \"against\" that aren't on \"from\"\n *\n * @param fromObject - The object that may be an equal subset of the againstObject.\n * @param againstObject - The object that may be an equal superset of the fromObject.\n *\n * @returns True if fromObject is a equal subset of againstObject and False otherwise.\n */\nexport function directedValueEquality(fromObject, againstObject, nullish = false) {\n const aKeys = Object.keys(fromObject);\n for (const key of aKeys) {\n const fromValue = fromObject[key];\n const againstValue = againstObject[key];\n if (!valuesEqual(fromValue, againstValue, nullish)) {\n return false;\n }\n }\n return true;\n}\n// deep compare any 2 values\n// primitives or object types (including arrays, Sets, and Maps)\n// returns true if equal by value\n// if nullish is true, treat undefined and null values as equal\n// to normalize for GQL response values for undefined fields\nexport function valuesEqual(valA, valB, nullish = false) {\n let a = valA;\n let b = valB;\n const nullishCompare = (_a, _b) => {\n return ((_a === undefined || _a === null) && (_b === undefined || _b === null));\n };\n // if one of the values is a primitive and the other is an object\n if ((a instanceof Object && !(b instanceof Object)) ||\n (!(a instanceof Object) && b instanceof Object)) {\n return false;\n }\n // compare primitive types\n if (!(a instanceof Object)) {\n if (nullish && nullishCompare(a, b)) {\n return true;\n }\n return a === b;\n }\n // make sure object types match\n if ((Array.isArray(a) && !Array.isArray(b)) ||\n (Array.isArray(b) && !Array.isArray(a))) {\n return false;\n }\n if (a instanceof Set && b instanceof Set) {\n a = [...a];\n b = [...b];\n }\n if (a instanceof Map && b instanceof Map) {\n a = Object.fromEntries(a);\n b = Object.fromEntries(b);\n }\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n // last condition is to ensure that [] !== [null] even if nullish. However [undefined] === [null] when nullish\n if (aKeys.length !== bKeys.length && (!nullish || Array.isArray(a))) {\n return false;\n }\n // iterate through the longer set of keys\n // e.g., for a nullish comparison of a={ a: 1 } and b={ a: 1, b: null }\n // we want to iterate through bKeys\n const keys = aKeys.length >= bKeys.length ? aKeys : bKeys;\n for (const key of keys) {\n const aVal = a[key];\n const bVal = b[key];\n if (!valuesEqual(aVal, bVal, nullish)) {\n return false;\n }\n }\n return true;\n}\n/**\n * Statelessly extracts the specified page from an array.\n *\n * @param records - The source array to extract a page from.\n * @param pagination - A definition of the page to extract.\n * @returns This items from `records` matching the `pagination` definition.\n */\nexport function inMemoryPagination(records, pagination) {\n if (pagination && records.length > 1) {\n if (pagination.sort) {\n const sortPredicates = ModelSortPredicateCreator.getPredicates(pagination.sort);\n if (sortPredicates.length) {\n const compareFn = sortCompareFunction(sortPredicates);\n records.sort(compareFn);\n }\n }\n const { page = 0, limit = 0 } = pagination;\n const start = Math.max(0, page * limit) || 0;\n const end = limit > 0 ? start + limit : records.length;\n return records.slice(start, end);\n }\n return records;\n}\n/**\n * An `aysnc` implementation of `Array.some()`. Returns as soon as a match is found.\n * @param items The items to check.\n * @param matches The async matcher function, expected to\n * return Promise<boolean>: `true` for a matching item, `false` otherwise.\n * @returns A `Promise<boolean>`, `true` if \"some\" items match; `false` otherwise.\n */\nexport async function asyncSome(items, matches) {\n for (const item of items) {\n if (await matches(item)) {\n return true;\n }\n }\n return false;\n}\n/**\n * An `aysnc` implementation of `Array.every()`. Returns as soon as a non-match is found.\n * @param items The items to check.\n * @param matches The async matcher function, expected to\n * return Promise<boolean>: `true` for a matching item, `false` otherwise.\n * @returns A `Promise<boolean>`, `true` if every item matches; `false` otherwise.\n */\nexport async function asyncEvery(items, matches) {\n for (const item of items) {\n if (!(await matches(item))) {\n return false;\n }\n }\n return true;\n}\n/**\n * An `async` implementation of `Array.filter()`. Returns after all items have been filtered.\n * TODO: Return AsyncIterable.\n * @param items The items to filter.\n * @param matches The `async` matcher function, expected to\n * return Promise<boolean>: `true` for a matching item, `false` otherwise.\n * @returns A `Promise<T>` of matching items.\n */\nexport async function asyncFilter(items, matches) {\n const results = [];\n for (const item of items) {\n if (await matches(item)) {\n results.push(item);\n }\n }\n return results;\n}\nexport const isAWSDate = (val) => {\n return !!/^\\d{4}-\\d{2}-\\d{2}(Z|[+-]\\d{2}:\\d{2}($|:\\d{2}))?$/.exec(val);\n};\nexport const isAWSTime = (val) => {\n return !!/^\\d{2}:\\d{2}(:\\d{2}(.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}($|:\\d{2}))?$/.exec(val);\n};\nexport const isAWSDateTime = (val) => {\n return !!/^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}($|:\\d{2}))?$/.exec(val);\n};\nexport const isAWSTimestamp = (val) => {\n return !!/^\\d+$/.exec(String(val));\n};\nexport const isAWSEmail = (val) => {\n return !!/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.exec(val);\n};\nexport const isAWSJSON = (val) => {\n try {\n JSON.parse(val);\n return true;\n }\n catch {\n return false;\n }\n};\nexport const isAWSURL = (val) => {\n try {\n return !!new AmplifyUrl(val);\n }\n catch {\n return false;\n }\n};\nexport const isAWSPhone = (val) => {\n return !!/^\\+?\\d[\\d\\s-]+$/.exec(val);\n};\nexport const isAWSIPAddress = (val) => {\n return !!/((^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$)|(^((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?$))$/.exec(val);\n};\nexport class DeferredPromise {\n constructor() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n this.promise = new Promise((resolve, reject) => {\n self.resolve = resolve;\n self.reject = reject;\n });\n }\n}\nexport class DeferredCallbackResolver {\n constructor(options) {\n this.limitPromise = new DeferredPromise();\n this.raceInFlight = false;\n this.callback = () => {\n // no-op\n };\n this.defaultErrorHandler = (msg = 'DeferredCallbackResolver error') => {\n throw new Error(msg);\n };\n this.callback = options.callback;\n this.errorHandler = options.errorHandler || this.defaultErrorHandler;\n this.maxInterval = options.maxInterval || 2000;\n }\n startTimer() {\n this.timerPromise = new Promise((resolve, _reject) => {\n this.timer = setTimeout(() => {\n resolve(LimitTimerRaceResolvedValues.TIMER);\n }, this.maxInterval);\n });\n }\n async racePromises() {\n let winner;\n try {\n this.raceInFlight = true;\n this.startTimer();\n winner = await Promise.race([\n this.timerPromise,\n this.limitPromise.promise,\n ]);\n this.callback();\n }\n catch (err) {\n this.errorHandler(err);\n }\n finally {\n // reset for the next race\n this.clear();\n this.raceInFlight = false;\n this.limitPromise = new DeferredPromise();\n // eslint-disable-next-line no-unsafe-finally\n return winner;\n }\n }\n start() {\n if (!this.raceInFlight)\n this.racePromises();\n }\n clear() {\n clearTimeout(this.timer);\n }\n resolve() {\n this.limitPromise.resolve(LimitTimerRaceResolvedValues.LIMIT);\n }\n}\n/**\n * merge two sets of patches created by immer produce.\n * newPatches take precedent over oldPatches for patches modifying the same path.\n * In the case many consecutive pathces are merged the original model should\n * always be the root model.\n *\n * Example:\n * A -> B, patches1\n * B -> C, patches2\n *\n * mergePatches(A, patches1, patches2) to get patches for A -> C\n *\n * @param originalSource the original Model the patches should be applied to\n * @param oldPatches immer produce patch list\n * @param newPatches immer produce patch list (will take precedence)\n * @return merged patches\n */\nexport function mergePatches(originalSource, oldPatches, newPatches) {\n const patchesToMerge = oldPatches.concat(newPatches);\n let patches;\n produce(originalSource, draft => {\n applyPatches(draft, patchesToMerge);\n }, p => {\n patches = p;\n });\n return patches;\n}\nexport const getStorename = (namespace, modelName) => {\n const storeName = `${namespace}_${modelName}`;\n return storeName;\n};\n// #region Key Utils\n/*\n When we have GSI(s) with composite sort keys defined on a model\n There are some very particular rules regarding which fields must be included in the update mutation input\n The field selection becomes more complex as the number of GSIs with composite sort keys grows\n\n To summarize: any time we update a field that is part of the composite sort key of a GSI, we must include:\n 1. all of the other fields in that composite sort key\n 2. all of the fields from any other composite sort key that intersect with the fields from 1.\n\n E.g.,\n Model @model\n @key(name: 'key1' fields: ['hk', 'a', 'b', 'c'])\n @key(name: 'key2' fields: ['hk', 'a', 'b', 'd'])\n @key(name: 'key3' fields: ['hk', 'x', 'y', 'z'])\n\n Model.a is updated => include ['a', 'b', 'c', 'd']\n Model.c is updated => include ['a', 'b', 'c', 'd']\n Model.d is updated => include ['a', 'b', 'c', 'd']\n Model.x is updated => include ['x', 'y', 'z']\n\n This function accepts a model's attributes and returns grouped sets of composite key fields\n Using our example Model above, the function will return:\n [\n Set('a', 'b', 'c', 'd'),\n Set('x', 'y', 'z'),\n ]\n\n This gives us the opportunity to correctly include the required fields for composite keys\n When crafting the mutation input in Storage.getUpdateMutationInput\n\n See 'processCompositeKeys' test in util.test.ts for more examples\n*/\nexport const processCompositeKeys = (attributes) => {\n const extractCompositeSortKey = ({ properties: { \n // ignore the HK (fields[0]) we only need to include the composite sort key fields[1...n]\n fields: [, ...sortKeyFields], }, }) => sortKeyFields;\n const compositeKeyFields = attributes\n .filter(isModelAttributeCompositeKey)\n .map(extractCompositeSortKey);\n /*\n if 2 sets of fields have any intersecting fields => combine them into 1 union set\n e.g., ['a', 'b', 'c'] and ['a', 'b', 'd'] => ['a', 'b', 'c', 'd']\n */\n const combineIntersecting = (fields) => fields.reduce((combined, sortKeyFields) => {\n const sortKeyFieldsSet = new Set(sortKeyFields);\n if (combined.length === 0) {\n combined.push(sortKeyFieldsSet);\n return combined;\n }\n // does the current set share values with another set we've already added to `combined`?\n const intersectingSetIdx = combined.findIndex(existingSet => {\n return [...existingSet].some(f => sortKeyFieldsSet.has(f));\n });\n if (intersectingSetIdx > -1) {\n const union = new Set([\n ...combined[intersectingSetIdx],\n ...sortKeyFieldsSet,\n ]);\n // combine the current set with the intersecting set we found above\n combined[intersectingSetIdx] = union;\n }\n else {\n // none of the sets in `combined` have intersecting values with the current set\n combined.push(sortKeyFieldsSet);\n }\n return combined;\n }, []);\n const initial = combineIntersecting(compositeKeyFields);\n // a single pass pay not be enough to correctly combine all the fields\n // call the function once more to get a final merged list of sets\n const combined = combineIntersecting(initial);\n return combined;\n};\nexport const extractKeyIfExists = (modelDefinition) => {\n const keyAttribute = modelDefinition?.attributes?.find(isModelAttributeKey);\n return keyAttribute;\n};\nexport const extractPrimaryKeyFieldNames = (modelDefinition) => {\n const keyAttribute = extractKeyIfExists(modelDefinition);\n if (keyAttribute && isModelAttributePrimaryKey(keyAttribute)) {\n return keyAttribute.properties.fields;\n }\n return [ID];\n};\nexport const extractPrimaryKeyValues = (model, keyFields) => {\n return keyFields.map(key => model[key]);\n};\nexport const extractPrimaryKeysAndValues = (model, keyFields) => {\n const primaryKeysAndValues = {};\n keyFields.forEach(key => (primaryKeysAndValues[key] = model[key]));\n return primaryKeysAndValues;\n};\n// IdentifierFields<ManagedIdentifier>\n// Default behavior without explicit @primaryKey defined\nexport const isIdManaged = (modelDefinition) => {\n const keyAttribute = extractKeyIfExists(modelDefinition);\n if (keyAttribute && isModelAttributePrimaryKey(keyAttribute)) {\n return false;\n }\n return true;\n};\n// IdentifierFields<OptionallyManagedIdentifier>\n// @primaryKey with explicit `id` in the PK. Single key or composite\nexport const isIdOptionallyManaged = (modelDefinition) => {\n const keyAttribute = extractKeyIfExists(modelDefinition);\n if (keyAttribute && isModelAttributePrimaryKey(keyAttribute)) {\n return keyAttribute.properties.fields[0] === ID;\n }\n return false;\n};\nexport const establishRelationAndKeys = (namespace) => {\n const relationship = {};\n const keys = {};\n Object.keys(namespace.models).forEach((mKey) => {\n relationship[mKey] = { indexes: [], relationTypes: [] };\n keys[mKey] = {};\n const model = namespace.models[mKey];\n Object.keys(model.fields).forEach((attr) => {\n const fieldAttribute = model.fields[attr];\n if (typeof fieldAttribute.type === 'object' &&\n 'model' in fieldAttribute.type) {\n const { connectionType } = fieldAttribute.association;\n relationship[mKey].relationTypes.push({\n fieldName: fieldAttribute.name,\n modelName: fieldAttribute.type.model,\n relationType: connectionType,\n targetName: fieldAttribute.association.targetName,\n targetNames: fieldAttribute.association.targetNames,\n // eslint-disable-next-line dot-notation\n associatedWith: fieldAttribute.association['associatedWith'],\n });\n if (connectionType === 'BELONGS_TO') {\n const targetNames = extractTargetNamesFromSrc(fieldAttribute.association);\n if (targetNames) {\n const idxName = indexNameFromKeys(targetNames);\n const idxExists = relationship[mKey].indexes.find(([index]) => index === idxName);\n if (!idxExists) {\n relationship[mKey].indexes.push([idxName, targetNames]);\n }\n }\n }\n }\n });\n if (model.attributes) {\n keys[mKey].compositeKeys = processCompositeKeys(model.attributes);\n for (const attribute of model.attributes) {\n if (!isModelAttributeKey(attribute)) {\n continue;\n }\n const { fields } = attribute.properties;\n if (isModelAttributePrimaryKey(attribute)) {\n keys[mKey].primaryKey = fields;\n continue;\n }\n // create indexes for all other keys\n const idxName = indexNameFromKeys(fields);\n const idxExists = relationship[mKey].indexes.find(([index]) => index === idxName);\n if (!idxExists) {\n relationship[mKey].indexes.push([idxName, fields]);\n }\n }\n }\n // set 'id' as the PK for models without a custom PK explicitly defined\n if (!keys[mKey].primaryKey) {\n keys[mKey].primaryKey = [ID];\n }\n // create primary index\n relationship[mKey].indexes.push([\n 'byPk',\n keys[mKey].primaryKey,\n { unique: true },\n ]);\n });\n return [relationship, keys];\n};\nexport const getIndex = (rel, src) => {\n let indexName;\n // eslint-disable-next-line array-callback-return\n rel.some((relItem) => {\n if (relItem.modelName === src) {\n const targetNames = extractTargetNamesFromSrc(relItem);\n indexName = targetNames && indexNameFromKeys(targetNames);\n return true;\n }\n });\n return indexName;\n};\nexport const getIndexFromAssociation = (indexes, src) => {\n let indexName;\n if (Array.isArray(src)) {\n indexName = indexNameFromKeys(src);\n }\n else {\n indexName = src;\n }\n const associationIndex = indexes.find(([idxName]) => idxName === indexName);\n return associationIndex && associationIndex[0];\n};\n/**\n * Backwards-compatability for schema generated prior to custom primary key support:\nthe single field `targetName` has been replaced with an array of `targetNames`.\n`targetName` and `targetNames` are exclusive (will never exist on the same schema)\n * @param src {RelationType | ModelAssociation | undefined}\n * @returns array of targetNames, or `undefined`\n */\nexport const extractTargetNamesFromSrc = (src) => {\n const targetName = src?.targetName;\n const targetNames = src?.targetNames;\n if (Array.isArray(targetNames)) {\n return targetNames;\n }\n else if (typeof targetName === 'string') {\n return [targetName];\n }\n else {\n return undefined;\n }\n};\n// Generates spinal-cased index name from an array of key field names\n// E.g. for keys `[id, title]` => 'id-title'\nexport const indexNameFromKeys = (keys) => {\n return keys.reduce((prev, cur, idx) => {\n if (idx === 0) {\n return cur;\n }\n return `${prev}${IDENTIFIER_KEY_SEPARATOR}${cur}`;\n }, '');\n};\nexport const keysEqual = (keysA, keysB) => {\n if (keysA.length !== keysB.length) {\n return false;\n }\n return keysA.every((key, idx) => key === keysB[idx]);\n};\n// Returns primary keys for a model\nexport const getIndexKeys = (namespace, modelName) => {\n const keyPath = namespace?.keys?.[modelName]?.primaryKey;\n if (keyPath) {\n return keyPath;\n }\n return [ID];\n};\n// #endregion\n/**\n * Determine what the managed timestamp field names are for the given model definition\n * and return the mapping.\n *\n * All timestamp fields are included in the mapping, regardless of whether the final field\n * names are the defaults or customized in the `@model` directive.\n *\n * @see https://docs.amplify.aws/cli/graphql/data-modeling/#customize-creation-and-update-timestamps\n *\n * @param definition modelDefinition to inspect.\n * @returns An object mapping `createdAt` and `updatedAt` to their field names.\n */\nexport const getTimestampFields = (definition) => {\n const modelAttributes = definition.attributes?.find(attr => attr.type === 'model');\n const timestampFieldsMap = modelAttributes?.properties?.timestamps;\n const defaultFields = {\n createdAt: 'createdAt',\n updatedAt: 'updatedAt',\n };\n const customFields = timestampFieldsMap || {};\n return {\n ...defaultFields,\n ...customFields,\n };\n};\n"],"names":[],"mappings":"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"}
|