@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.
Files changed (149) hide show
  1. package/dist/cjs/authModeStrategies/multiAuthStrategy.js +1 -1
  2. package/dist/cjs/authModeStrategies/multiAuthStrategy.js.map +1 -1
  3. package/dist/cjs/datastore/datastore.js +46 -41
  4. package/dist/cjs/datastore/datastore.js.map +1 -1
  5. package/dist/cjs/index.js +3 -1
  6. package/dist/cjs/index.js.map +1 -1
  7. package/dist/cjs/predicates/index.js +1 -0
  8. package/dist/cjs/predicates/index.js.map +1 -1
  9. package/dist/cjs/predicates/next.js +13 -12
  10. package/dist/cjs/predicates/next.js.map +1 -1
  11. package/dist/cjs/predicates/sort.js +2 -2
  12. package/dist/cjs/predicates/sort.js.map +1 -1
  13. package/dist/cjs/storage/adapter/AsyncStorageAdapter.js +21 -18
  14. package/dist/cjs/storage/adapter/AsyncStorageAdapter.js.map +1 -1
  15. package/dist/cjs/storage/adapter/AsyncStorageDatabase.js +10 -9
  16. package/dist/cjs/storage/adapter/AsyncStorageDatabase.js.map +1 -1
  17. package/dist/cjs/storage/adapter/InMemoryStore.js +4 -1
  18. package/dist/cjs/storage/adapter/InMemoryStore.js.map +1 -1
  19. package/dist/cjs/storage/adapter/IndexedDBAdapter.js +21 -23
  20. package/dist/cjs/storage/adapter/IndexedDBAdapter.js.map +1 -1
  21. package/dist/cjs/storage/adapter/StorageAdapterBase.js +7 -7
  22. package/dist/cjs/storage/adapter/StorageAdapterBase.js.map +1 -1
  23. package/dist/cjs/storage/adapter/getDefaultAdapter/index.js +4 -1
  24. package/dist/cjs/storage/adapter/getDefaultAdapter/index.js.map +1 -1
  25. package/dist/cjs/storage/adapter/getDefaultAdapter/index.native.js +1 -0
  26. package/dist/cjs/storage/adapter/getDefaultAdapter/index.native.js.map +1 -1
  27. package/dist/cjs/storage/relationship.js +1 -0
  28. package/dist/cjs/storage/relationship.js.map +1 -1
  29. package/dist/cjs/storage/storage.js +14 -14
  30. package/dist/cjs/storage/storage.js.map +1 -1
  31. package/dist/cjs/sync/datastoreConnectivity.js +0 -3
  32. package/dist/cjs/sync/datastoreConnectivity.js.map +1 -1
  33. package/dist/cjs/sync/index.js +47 -43
  34. package/dist/cjs/sync/index.js.map +1 -1
  35. package/dist/cjs/sync/merger.js +1 -1
  36. package/dist/cjs/sync/merger.js.map +1 -1
  37. package/dist/cjs/sync/outbox.js +19 -17
  38. package/dist/cjs/sync/outbox.js.map +1 -1
  39. package/dist/cjs/sync/processors/errorMaps.js.map +1 -1
  40. package/dist/cjs/sync/processors/mutation.js +31 -28
  41. package/dist/cjs/sync/processors/mutation.js.map +1 -1
  42. package/dist/cjs/sync/processors/subscription.js +21 -12
  43. package/dist/cjs/sync/processors/subscription.js.map +1 -1
  44. package/dist/cjs/sync/processors/sync.js +25 -21
  45. package/dist/cjs/sync/processors/sync.js.map +1 -1
  46. package/dist/cjs/sync/utils.js +20 -21
  47. package/dist/cjs/sync/utils.js.map +1 -1
  48. package/dist/cjs/types.js +1 -0
  49. package/dist/cjs/types.js.map +1 -1
  50. package/dist/cjs/util.js +46 -25
  51. package/dist/cjs/util.js.map +1 -1
  52. package/dist/esm/authModeStrategies/multiAuthStrategy.d.ts +1 -1
  53. package/dist/esm/authModeStrategies/multiAuthStrategy.mjs +1 -1
  54. package/dist/esm/authModeStrategies/multiAuthStrategy.mjs.map +1 -1
  55. package/dist/esm/datastore/datastore.d.ts +4 -6
  56. package/dist/esm/datastore/datastore.mjs +42 -34
  57. package/dist/esm/datastore/datastore.mjs.map +1 -1
  58. package/dist/esm/index.d.ts +1 -1
  59. package/dist/esm/index.mjs +2 -2
  60. package/dist/esm/index.mjs.map +1 -1
  61. package/dist/esm/predicates/index.mjs +1 -0
  62. package/dist/esm/predicates/index.mjs.map +1 -1
  63. package/dist/esm/predicates/next.d.ts +7 -7
  64. package/dist/esm/predicates/next.mjs +13 -12
  65. package/dist/esm/predicates/next.mjs.map +1 -1
  66. package/dist/esm/predicates/sort.d.ts +1 -1
  67. package/dist/esm/predicates/sort.mjs +2 -2
  68. package/dist/esm/predicates/sort.mjs.map +1 -1
  69. package/dist/esm/storage/adapter/AsyncStorageAdapter.d.ts +1 -1
  70. package/dist/esm/storage/adapter/AsyncStorageAdapter.mjs +21 -18
  71. package/dist/esm/storage/adapter/AsyncStorageAdapter.mjs.map +1 -1
  72. package/dist/esm/storage/adapter/AsyncStorageDatabase.mjs +10 -9
  73. package/dist/esm/storage/adapter/AsyncStorageDatabase.mjs.map +1 -1
  74. package/dist/esm/storage/adapter/InMemoryStore.mjs +4 -1
  75. package/dist/esm/storage/adapter/InMemoryStore.mjs.map +1 -1
  76. package/dist/esm/storage/adapter/IndexedDBAdapter.mjs +21 -23
  77. package/dist/esm/storage/adapter/IndexedDBAdapter.mjs.map +1 -1
  78. package/dist/esm/storage/adapter/StorageAdapterBase.d.ts +2 -2
  79. package/dist/esm/storage/adapter/StorageAdapterBase.mjs +7 -7
  80. package/dist/esm/storage/adapter/StorageAdapterBase.mjs.map +1 -1
  81. package/dist/esm/storage/adapter/getDefaultAdapter/index.mjs +3 -1
  82. package/dist/esm/storage/adapter/getDefaultAdapter/index.mjs.map +1 -1
  83. package/dist/esm/storage/adapter/getDefaultAdapter/index.native.mjs +1 -0
  84. package/dist/esm/storage/adapter/getDefaultAdapter/index.native.mjs.map +1 -1
  85. package/dist/esm/storage/adapter/index.d.ts +1 -1
  86. package/dist/esm/storage/relationship.mjs +1 -0
  87. package/dist/esm/storage/relationship.mjs.map +1 -1
  88. package/dist/esm/storage/storage.d.ts +11 -11
  89. package/dist/esm/storage/storage.mjs +10 -10
  90. package/dist/esm/storage/storage.mjs.map +1 -1
  91. package/dist/esm/sync/datastoreConnectivity.d.ts +2 -2
  92. package/dist/esm/sync/datastoreConnectivity.mjs +0 -3
  93. package/dist/esm/sync/datastoreConnectivity.mjs.map +1 -1
  94. package/dist/esm/sync/index.d.ts +3 -3
  95. package/dist/esm/sync/index.mjs +47 -43
  96. package/dist/esm/sync/index.mjs.map +1 -1
  97. package/dist/esm/sync/merger.d.ts +1 -1
  98. package/dist/esm/sync/merger.mjs +1 -1
  99. package/dist/esm/sync/merger.mjs.map +1 -1
  100. package/dist/esm/sync/outbox.d.ts +4 -4
  101. package/dist/esm/sync/outbox.mjs +19 -17
  102. package/dist/esm/sync/outbox.mjs.map +1 -1
  103. package/dist/esm/sync/processors/errorMaps.mjs.map +1 -1
  104. package/dist/esm/sync/processors/mutation.d.ts +5 -5
  105. package/dist/esm/sync/processors/mutation.mjs +31 -28
  106. package/dist/esm/sync/processors/mutation.mjs.map +1 -1
  107. package/dist/esm/sync/processors/subscription.d.ts +1 -1
  108. package/dist/esm/sync/processors/subscription.mjs +21 -12
  109. package/dist/esm/sync/processors/subscription.mjs.map +1 -1
  110. package/dist/esm/sync/processors/sync.d.ts +3 -3
  111. package/dist/esm/sync/processors/sync.mjs +13 -9
  112. package/dist/esm/sync/processors/sync.mjs.map +1 -1
  113. package/dist/esm/sync/utils.d.ts +11 -13
  114. package/dist/esm/sync/utils.mjs +20 -21
  115. package/dist/esm/sync/utils.mjs.map +1 -1
  116. package/dist/esm/types.d.ts +121 -131
  117. package/dist/esm/types.mjs +3 -2
  118. package/dist/esm/types.mjs.map +1 -1
  119. package/dist/esm/util.d.ts +5 -5
  120. package/dist/esm/util.mjs +46 -25
  121. package/dist/esm/util.mjs.map +1 -1
  122. package/package.json +74 -73
  123. package/src/authModeStrategies/multiAuthStrategy.ts +8 -4
  124. package/src/datastore/datastore.ts +145 -123
  125. package/src/index.ts +10 -8
  126. package/src/predicates/index.ts +10 -2
  127. package/src/predicates/next.ts +39 -28
  128. package/src/predicates/sort.ts +23 -26
  129. package/src/storage/adapter/AsyncStorageAdapter.ts +43 -25
  130. package/src/storage/adapter/AsyncStorageDatabase.ts +18 -10
  131. package/src/storage/adapter/InMemoryStore.ts +5 -1
  132. package/src/storage/adapter/IndexedDBAdapter.ts +50 -37
  133. package/src/storage/adapter/StorageAdapterBase.ts +24 -18
  134. package/src/storage/adapter/getDefaultAdapter/index.native.ts +1 -0
  135. package/src/storage/adapter/getDefaultAdapter/index.ts +4 -1
  136. package/src/storage/adapter/index.ts +2 -2
  137. package/src/storage/relationship.ts +5 -1
  138. package/src/storage/storage.ts +38 -30
  139. package/src/sync/datastoreConnectivity.ts +4 -6
  140. package/src/sync/index.ts +228 -230
  141. package/src/sync/merger.ts +4 -3
  142. package/src/sync/outbox.ts +26 -24
  143. package/src/sync/processors/errorMaps.ts +5 -0
  144. package/src/sync/processors/mutation.ts +80 -72
  145. package/src/sync/processors/subscription.ts +69 -53
  146. package/src/sync/processors/sync.ts +49 -37
  147. package/src/sync/utils.ts +60 -41
  148. package/src/types.ts +165 -165
  149. package/src/util.ts +89 -53
@@ -5,14 +5,17 @@ exports.AsyncStorageAdapter = void 0;
5
5
  const tslib_1 = require("tslib");
6
6
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
7
7
  // SPDX-License-Identifier: Apache-2.0
8
- const AsyncStorageDatabase_1 = tslib_1.__importDefault(require("./AsyncStorageDatabase"));
9
8
  const types_1 = require("../../types");
10
9
  const util_1 = require("../../util");
10
+ const AsyncStorageDatabase_1 = tslib_1.__importDefault(require("./AsyncStorageDatabase"));
11
11
  const StorageAdapterBase_1 = require("./StorageAdapterBase");
12
12
  class AsyncStorageAdapter extends StorageAdapterBase_1.StorageAdapterBase {
13
- // no-ops for this adapter
14
- async preSetUpChecks() { }
15
- async preOpCheck() { }
13
+ async preSetUpChecks() {
14
+ // no-ops for AsyncStorageAdapter
15
+ }
16
+ async preOpCheck() {
17
+ // no-ops for AsyncStorageAdapter
18
+ }
16
19
  /**
17
20
  * Open AsyncStorage database
18
21
  * Create new DB if one doesn't exist
@@ -44,17 +47,17 @@ class AsyncStorageAdapter extends StorageAdapterBase_1.StorageAdapterBase {
44
47
  const model = this.modelInstanceCreator(modelConstructor, item);
45
48
  const connectedModels = (0, util_1.traverseModel)(modelName, model, this.schema.namespaces[namespaceName], this.modelInstanceCreator, this.getModelConstructorByModelName);
46
49
  const keyValuesPath = this.getIndexKeyValuesPath(model);
47
- const { instance } = connectedModels.find(({ instance }) => {
48
- const instanceKeyValuesPath = this.getIndexKeyValuesPath(instance);
50
+ const { instance } = connectedModels.find(({ instance: connectedModelInstance }) => {
51
+ const instanceKeyValuesPath = this.getIndexKeyValuesPath(connectedModelInstance);
49
52
  return (0, util_1.keysEqual)([instanceKeyValuesPath], [keyValuesPath]);
50
53
  });
51
54
  batch.push(instance);
52
55
  }
53
- return await this.db.batchSave(storeName, batch, keys);
56
+ return this.db.batchSave(storeName, batch, keys);
54
57
  }
55
58
  async _get(storeName, keyArr) {
56
59
  const itemKeyValuesPath = keyArr.join(util_1.DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);
57
- return await this.db.get(itemKeyValuesPath, storeName);
60
+ return (await this.db.get(itemKeyValuesPath, storeName));
58
61
  }
59
62
  async save(model, condition) {
60
63
  const { storeName, connectionStoreNames, modelKeyValues } = this.saveMetadata(model);
@@ -62,13 +65,13 @@ class AsyncStorageAdapter extends StorageAdapterBase_1.StorageAdapterBase {
62
65
  this.validateSaveCondition(condition, fromDB);
63
66
  const result = [];
64
67
  for await (const resItem of connectionStoreNames) {
65
- const { storeName, item, instance, keys } = resItem;
68
+ const { storeName: storeNameForRestItem, item, instance, keys } = resItem;
66
69
  const itemKeyValues = keys.map(key => item[key]);
67
- const fromDB = await this._get(storeName, itemKeyValues);
68
- const opType = fromDB ? types_1.OpType.UPDATE : types_1.OpType.INSERT;
70
+ const fromDBForRestItem = (await this._get(storeNameForRestItem, itemKeyValues));
71
+ const opType = fromDBForRestItem ? types_1.OpType.UPDATE : types_1.OpType.INSERT;
69
72
  if ((0, util_1.keysEqual)(itemKeyValues, modelKeyValues) ||
70
73
  opType === types_1.OpType.INSERT) {
71
- await this.db.save(item, storeName, keys, itemKeyValues.join(util_1.DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR));
74
+ await this.db.save(item, storeNameForRestItem, keys, itemKeyValues.join(util_1.DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR));
72
75
  result.push([instance, opType]);
73
76
  }
74
77
  }
@@ -92,17 +95,17 @@ class AsyncStorageAdapter extends StorageAdapterBase_1.StorageAdapterBase {
92
95
  }
93
96
  return this.getAll(storeName);
94
97
  })());
95
- return await this.load(namespaceName, modelConstructor.name, records);
98
+ return this.load(namespaceName, modelConstructor.name, records);
96
99
  }
97
100
  async getByKey(storeName, keyValuePath) {
98
- return await this.db.get(keyValuePath, storeName);
101
+ return (await this.db.get(keyValuePath, storeName));
99
102
  }
100
103
  async getAll(storeName) {
101
- return await this.db.getAll(storeName);
104
+ return this.db.getAll(storeName);
102
105
  }
103
106
  async filterOnPredicate(storeName, predicates) {
104
107
  const { predicates: predicateObjs, type } = predicates;
105
- const all = await this.getAll(storeName);
108
+ const all = (await this.getAll(storeName));
106
109
  const filtered = predicateObjs
107
110
  ? all.filter(m => (0, util_1.validatePredicate)(m, type, predicateObjs))
108
111
  : all;
@@ -113,7 +116,7 @@ class AsyncStorageAdapter extends StorageAdapterBase_1.StorageAdapterBase {
113
116
  }
114
117
  async queryOne(modelConstructor, firstOrLast = types_1.QueryOne.FIRST) {
115
118
  const storeName = this.getStorenameForModel(modelConstructor);
116
- const result = await this.db.getOne(firstOrLast, storeName);
119
+ const result = (await this.db.getOne(firstOrLast, storeName));
117
120
  return result && this.modelInstanceCreator(modelConstructor, result);
118
121
  }
119
122
  async deleteItem(deleteQueue) {
@@ -129,7 +132,7 @@ class AsyncStorageAdapter extends StorageAdapterBase_1.StorageAdapterBase {
129
132
  }
130
133
  }
131
134
  }
132
- //#region platform-specific helper methods
135
+ // #region platform-specific helper methods
133
136
  /**
134
137
  * Retrieves concatenated primary key values from a model
135
138
  *
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncStorageAdapter.js","sources":["../../../../src/storage/adapter/AsyncStorageAdapter.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncStorageAdapter = void 0;\nconst tslib_1 = require(\"tslib\");\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst AsyncStorageDatabase_1 = tslib_1.__importDefault(require(\"./AsyncStorageDatabase\"));\nconst types_1 = require(\"../../types\");\nconst util_1 = require(\"../../util\");\nconst StorageAdapterBase_1 = require(\"./StorageAdapterBase\");\nclass AsyncStorageAdapter extends StorageAdapterBase_1.StorageAdapterBase {\n // no-ops for this adapter\n async preSetUpChecks() { }\n async preOpCheck() { }\n /**\n * Open AsyncStorage database\n * Create new DB if one doesn't exist\n *\n * Called by `StorageAdapterBase.setUp()`\n *\n * @returns AsyncStorageDatabase instance\n */\n async initDb() {\n const db = new AsyncStorageDatabase_1.default();\n await db.init();\n return db;\n }\n async clear() {\n await this.db.clear();\n this.db = undefined;\n this.initPromise = undefined;\n }\n async batchSave(modelConstructor, items) {\n if (items.length === 0) {\n return [];\n }\n const modelName = modelConstructor.name;\n const namespaceName = this.namespaceResolver(modelConstructor);\n const storeName = (0, util_1.getStorename)(namespaceName, modelName);\n const keys = (0, util_1.getIndexKeys)(this.schema.namespaces[namespaceName], modelName);\n const batch = [];\n for (const item of items) {\n const model = this.modelInstanceCreator(modelConstructor, item);\n const connectedModels = (0, util_1.traverseModel)(modelName, model, this.schema.namespaces[namespaceName], this.modelInstanceCreator, this.getModelConstructorByModelName);\n const keyValuesPath = this.getIndexKeyValuesPath(model);\n const { instance } = connectedModels.find(({ instance }) => {\n const instanceKeyValuesPath = this.getIndexKeyValuesPath(instance);\n return (0, util_1.keysEqual)([instanceKeyValuesPath], [keyValuesPath]);\n });\n batch.push(instance);\n }\n return await this.db.batchSave(storeName, batch, keys);\n }\n async _get(storeName, keyArr) {\n const itemKeyValuesPath = keyArr.join(util_1.DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);\n return await this.db.get(itemKeyValuesPath, storeName);\n }\n async save(model, condition) {\n const { storeName, connectionStoreNames, modelKeyValues } = this.saveMetadata(model);\n const fromDB = await this._get(storeName, modelKeyValues);\n this.validateSaveCondition(condition, fromDB);\n const result = [];\n for await (const resItem of connectionStoreNames) {\n const { storeName, item, instance, keys } = resItem;\n const itemKeyValues = keys.map(key => item[key]);\n const fromDB = await this._get(storeName, itemKeyValues);\n const opType = fromDB ? types_1.OpType.UPDATE : types_1.OpType.INSERT;\n if ((0, util_1.keysEqual)(itemKeyValues, modelKeyValues) ||\n opType === types_1.OpType.INSERT) {\n await this.db.save(item, storeName, keys, itemKeyValues.join(util_1.DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR));\n result.push([instance, opType]);\n }\n }\n return result;\n }\n async query(modelConstructor, predicate, pagination) {\n const { storeName, namespaceName, queryByKey, predicates, hasSort, hasPagination, } = this.queryMetadata(modelConstructor, predicate, pagination);\n const records = (await (async () => {\n if (queryByKey) {\n const keyValues = queryByKey.join(util_1.DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);\n const record = await this.getByKey(storeName, keyValues);\n return record ? [record] : [];\n }\n if (predicates) {\n const filtered = await this.filterOnPredicate(storeName, predicates);\n return this.inMemoryPagination(filtered, pagination);\n }\n if (hasSort || hasPagination) {\n const all = await this.getAll(storeName);\n return this.inMemoryPagination(all, pagination);\n }\n return this.getAll(storeName);\n })());\n return await this.load(namespaceName, modelConstructor.name, records);\n }\n async getByKey(storeName, keyValuePath) {\n return await this.db.get(keyValuePath, storeName);\n }\n async getAll(storeName) {\n return await this.db.getAll(storeName);\n }\n async filterOnPredicate(storeName, predicates) {\n const { predicates: predicateObjs, type } = predicates;\n const all = await this.getAll(storeName);\n const filtered = predicateObjs\n ? all.filter(m => (0, util_1.validatePredicate)(m, type, predicateObjs))\n : all;\n return filtered;\n }\n inMemoryPagination(records, pagination) {\n return (0, util_1.inMemoryPagination)(records, pagination);\n }\n async queryOne(modelConstructor, firstOrLast = types_1.QueryOne.FIRST) {\n const storeName = this.getStorenameForModel(modelConstructor);\n const result = await this.db.getOne(firstOrLast, storeName);\n return result && this.modelInstanceCreator(modelConstructor, result);\n }\n async deleteItem(deleteQueue) {\n for await (const deleteItem of deleteQueue) {\n const { storeName, items } = deleteItem;\n for await (const item of items) {\n if (item) {\n if (typeof item === 'object') {\n const keyValuesPath = this.getIndexKeyValuesPath(item);\n await this.db.delete(keyValuesPath, storeName);\n }\n }\n }\n }\n }\n //#region platform-specific helper methods\n /**\n * Retrieves concatenated primary key values from a model\n *\n * @param model\n * @returns\n */\n getIndexKeyValuesPath(model) {\n return this.getIndexKeyValuesFromModel(model).join(util_1.DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);\n }\n}\nexports.AsyncStorageAdapter = AsyncStorageAdapter;\nexports.default = new AsyncStorageAdapter();\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AsyncStorageAdapter.js","sources":["../../../../src/storage/adapter/AsyncStorageAdapter.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncStorageAdapter = void 0;\nconst tslib_1 = require(\"tslib\");\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst types_1 = require(\"../../types\");\nconst util_1 = require(\"../../util\");\nconst AsyncStorageDatabase_1 = tslib_1.__importDefault(require(\"./AsyncStorageDatabase\"));\nconst StorageAdapterBase_1 = require(\"./StorageAdapterBase\");\nclass AsyncStorageAdapter extends StorageAdapterBase_1.StorageAdapterBase {\n async preSetUpChecks() {\n // no-ops for AsyncStorageAdapter\n }\n async preOpCheck() {\n // no-ops for AsyncStorageAdapter\n }\n /**\n * Open AsyncStorage database\n * Create new DB if one doesn't exist\n *\n * Called by `StorageAdapterBase.setUp()`\n *\n * @returns AsyncStorageDatabase instance\n */\n async initDb() {\n const db = new AsyncStorageDatabase_1.default();\n await db.init();\n return db;\n }\n async clear() {\n await this.db.clear();\n this.db = undefined;\n this.initPromise = undefined;\n }\n async batchSave(modelConstructor, items) {\n if (items.length === 0) {\n return [];\n }\n const modelName = modelConstructor.name;\n const namespaceName = this.namespaceResolver(modelConstructor);\n const storeName = (0, util_1.getStorename)(namespaceName, modelName);\n const keys = (0, util_1.getIndexKeys)(this.schema.namespaces[namespaceName], modelName);\n const batch = [];\n for (const item of items) {\n const model = this.modelInstanceCreator(modelConstructor, item);\n const connectedModels = (0, util_1.traverseModel)(modelName, model, this.schema.namespaces[namespaceName], this.modelInstanceCreator, this.getModelConstructorByModelName);\n const keyValuesPath = this.getIndexKeyValuesPath(model);\n const { instance } = connectedModels.find(({ instance: connectedModelInstance }) => {\n const instanceKeyValuesPath = this.getIndexKeyValuesPath(connectedModelInstance);\n return (0, util_1.keysEqual)([instanceKeyValuesPath], [keyValuesPath]);\n });\n batch.push(instance);\n }\n return this.db.batchSave(storeName, batch, keys);\n }\n async _get(storeName, keyArr) {\n const itemKeyValuesPath = keyArr.join(util_1.DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);\n return (await this.db.get(itemKeyValuesPath, storeName));\n }\n async save(model, condition) {\n const { storeName, connectionStoreNames, modelKeyValues } = this.saveMetadata(model);\n const fromDB = await this._get(storeName, modelKeyValues);\n this.validateSaveCondition(condition, fromDB);\n const result = [];\n for await (const resItem of connectionStoreNames) {\n const { storeName: storeNameForRestItem, item, instance, keys } = resItem;\n const itemKeyValues = keys.map(key => item[key]);\n const fromDBForRestItem = (await this._get(storeNameForRestItem, itemKeyValues));\n const opType = fromDBForRestItem ? types_1.OpType.UPDATE : types_1.OpType.INSERT;\n if ((0, util_1.keysEqual)(itemKeyValues, modelKeyValues) ||\n opType === types_1.OpType.INSERT) {\n await this.db.save(item, storeNameForRestItem, keys, itemKeyValues.join(util_1.DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR));\n result.push([instance, opType]);\n }\n }\n return result;\n }\n async query(modelConstructor, predicate, pagination) {\n const { storeName, namespaceName, queryByKey, predicates, hasSort, hasPagination, } = this.queryMetadata(modelConstructor, predicate, pagination);\n const records = (await (async () => {\n if (queryByKey) {\n const keyValues = queryByKey.join(util_1.DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);\n const record = await this.getByKey(storeName, keyValues);\n return record ? [record] : [];\n }\n if (predicates) {\n const filtered = await this.filterOnPredicate(storeName, predicates);\n return this.inMemoryPagination(filtered, pagination);\n }\n if (hasSort || hasPagination) {\n const all = await this.getAll(storeName);\n return this.inMemoryPagination(all, pagination);\n }\n return this.getAll(storeName);\n })());\n return this.load(namespaceName, modelConstructor.name, records);\n }\n async getByKey(storeName, keyValuePath) {\n return (await this.db.get(keyValuePath, storeName));\n }\n async getAll(storeName) {\n return this.db.getAll(storeName);\n }\n async filterOnPredicate(storeName, predicates) {\n const { predicates: predicateObjs, type } = predicates;\n const all = (await this.getAll(storeName));\n const filtered = predicateObjs\n ? all.filter(m => (0, util_1.validatePredicate)(m, type, predicateObjs))\n : all;\n return filtered;\n }\n inMemoryPagination(records, pagination) {\n return (0, util_1.inMemoryPagination)(records, pagination);\n }\n async queryOne(modelConstructor, firstOrLast = types_1.QueryOne.FIRST) {\n const storeName = this.getStorenameForModel(modelConstructor);\n const result = (await this.db.getOne(firstOrLast, storeName));\n return result && this.modelInstanceCreator(modelConstructor, result);\n }\n async deleteItem(deleteQueue) {\n for await (const deleteItem of deleteQueue) {\n const { storeName, items } = deleteItem;\n for await (const item of items) {\n if (item) {\n if (typeof item === 'object') {\n const keyValuesPath = this.getIndexKeyValuesPath(item);\n await this.db.delete(keyValuesPath, storeName);\n }\n }\n }\n }\n }\n // #region platform-specific helper methods\n /**\n * Retrieves concatenated primary key values from a model\n *\n * @param model\n * @returns\n */\n getIndexKeyValuesPath(model) {\n return this.getIndexKeyValuesFromModel(model).join(util_1.DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);\n }\n}\nexports.AsyncStorageAdapter = AsyncStorageAdapter;\nexports.default = new AsyncStorageAdapter();\n"],"names":[],"mappings":";;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,mBAAmB,GAAG,KAAK,CAAC,CAAC;AACrC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AACjC;AACA;AACA,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AACvC,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AACrC,MAAM,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC;AAC1F,MAAM,oBAAoB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAC7D,MAAM,mBAAmB,SAAS,oBAAoB,CAAC,kBAAkB,CAAC;AAC1E,IAAI,MAAM,cAAc,GAAG;AAC3B;AACA,KAAK;AACL,IAAI,MAAM,UAAU,GAAG;AACvB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,MAAM,GAAG;AACnB,QAAQ,MAAM,EAAE,GAAG,IAAI,sBAAsB,CAAC,OAAO,EAAE,CAAC;AACxD,QAAQ,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AACxB,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK;AACL,IAAI,MAAM,KAAK,GAAG;AAClB,QAAQ,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;AAC9B,QAAQ,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;AAC5B,QAAQ,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;AACrC,KAAK;AACL,IAAI,MAAM,SAAS,CAAC,gBAAgB,EAAE,KAAK,EAAE;AAC7C,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,YAAY,OAAO,EAAE,CAAC;AACtB,SAAS;AACT,QAAQ,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC;AAChD,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;AACvE,QAAQ,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;AAC7E,QAAQ,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;AAChG,QAAQ,MAAM,KAAK,GAAG,EAAE,CAAC;AACzB,QAAQ,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAClC,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;AAC5E,YAAY,MAAM,eAAe,GAAG,IAAI,MAAM,CAAC,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,8BAA8B,CAAC,CAAC;AACvL,YAAY,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACpE,YAAY,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,sBAAsB,EAAE,KAAK;AAChG,gBAAgB,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,CAAC;AACjG,gBAAgB,OAAO,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AACvF,aAAa,CAAC,CAAC;AACf,YAAY,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjC,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACzD,KAAK;AACL,IAAI,MAAM,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE;AAClC,QAAQ,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC;AAC1F,QAAQ,QAAQ,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,iBAAiB,EAAE,SAAS,CAAC,EAAE;AACjE,KAAK;AACL,IAAI,MAAM,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE;AACjC,QAAQ,MAAM,EAAE,SAAS,EAAE,oBAAoB,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC7F,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AAClE,QAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACtD,QAAQ,MAAM,MAAM,GAAG,EAAE,CAAC;AAC1B,QAAQ,WAAW,MAAM,OAAO,IAAI,oBAAoB,EAAE;AAC1D,YAAY,MAAM,EAAE,SAAS,EAAE,oBAAoB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;AACtF,YAAY,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,YAAY,MAAM,iBAAiB,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC,CAAC;AAC7F,YAAY,MAAM,MAAM,GAAG,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;AAC7F,YAAY,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,aAAa,EAAE,cAAc,CAAC;AACpE,gBAAgB,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;AAClD,gBAAgB,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC,CAAC;AACrI,gBAAgB,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAChD,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK;AACL,IAAI,MAAM,KAAK,CAAC,gBAAgB,EAAE,SAAS,EAAE,UAAU,EAAE;AACzD,QAAQ,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAC1J,QAAQ,MAAM,OAAO,IAAI,MAAM,CAAC,YAAY;AAC5C,YAAY,IAAI,UAAU,EAAE;AAC5B,gBAAgB,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC;AAC9F,gBAAgB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACzE,gBAAgB,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AAC9C,aAAa;AACb,YAAY,IAAI,UAAU,EAAE;AAC5B,gBAAgB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AACrF,gBAAgB,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACrE,aAAa;AACb,YAAY,IAAI,OAAO,IAAI,aAAa,EAAE;AAC1C,gBAAgB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACzD,gBAAgB,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AAChE,aAAa;AACb,YAAY,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC1C,SAAS,GAAG,CAAC,CAAC;AACd,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxE,KAAK;AACL,IAAI,MAAM,QAAQ,CAAC,SAAS,EAAE,YAAY,EAAE;AAC5C,QAAQ,QAAQ,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE;AAC5D,KAAK;AACL,IAAI,MAAM,MAAM,CAAC,SAAS,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACzC,KAAK;AACL,IAAI,MAAM,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE;AACnD,QAAQ,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;AAC/D,QAAQ,MAAM,GAAG,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AACnD,QAAQ,MAAM,QAAQ,GAAG,aAAa;AACtC,cAAc,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;AACpF,cAAc,GAAG,CAAC;AAClB,QAAQ,OAAO,QAAQ,CAAC;AACxB,KAAK;AACL,IAAI,kBAAkB,CAAC,OAAO,EAAE,UAAU,EAAE;AAC5C,QAAQ,OAAO,IAAI,MAAM,CAAC,kBAAkB,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AACnE,KAAK;AACL,IAAI,MAAM,QAAQ,CAAC,gBAAgB,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC3E,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;AACtE,QAAQ,MAAM,MAAM,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AACtE,QAAQ,OAAO,MAAM,IAAI,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAC7E,KAAK;AACL,IAAI,MAAM,UAAU,CAAC,WAAW,EAAE;AAClC,QAAQ,WAAW,MAAM,UAAU,IAAI,WAAW,EAAE;AACpD,YAAY,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;AACpD,YAAY,WAAW,MAAM,IAAI,IAAI,KAAK,EAAE;AAC5C,gBAAgB,IAAI,IAAI,EAAE;AAC1B,oBAAoB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClD,wBAAwB,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;AAC/E,wBAAwB,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;AACvE,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,qBAAqB,CAAC,KAAK,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC;AACvG,KAAK;AACL,CAAC;AACD,OAAO,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;AAClD,OAAO,CAAC,OAAO,GAAG,IAAI,mBAAmB,EAAE;;"}
@@ -49,10 +49,10 @@ class AsyncStorageDatabase {
49
49
  let ulid;
50
50
  if (id === undefined) {
51
51
  // It is an old entry (without ulid). Need to migrate to new key format
52
- const id = ulidOrId;
52
+ const resolvedId = ulidOrId;
53
53
  const newUlid = this.getMonotonicFactory(storeName)();
54
- const oldKey = this.getLegacyKeyForItem(storeName, id);
55
- const newKey = this.getKeyForItem(storeName, id, newUlid);
54
+ const oldKey = this.getLegacyKeyForItem(storeName, resolvedId);
55
+ const newKey = this.getKeyForItem(storeName, resolvedId, newUlid);
56
56
  const item = await this.storage.getItem(oldKey);
57
57
  await this.storage.setItem(newKey, item);
58
58
  await this.storage.removeItem(oldKey);
@@ -191,16 +191,17 @@ class AsyncStorageDatabase {
191
191
  const collection = this.getCollectionIndex(storeName);
192
192
  const [itemId, ulid] = firstOrLast === types_1.QueryOne.FIRST
193
193
  ? (() => {
194
- let id, ulid;
195
- for ([id, ulid] of collection)
194
+ let resolvedId, resolvedUlid;
195
+ // eslint-disable-next-line no-unreachable-loop
196
+ for ([resolvedId, resolvedUlid] of collection)
196
197
  break; // Get first element of the set
197
- return [id, ulid];
198
+ return [resolvedId, resolvedUlid];
198
199
  })()
199
200
  : (() => {
200
- let id, ulid;
201
- for ([id, ulid] of collection)
201
+ let resolvedId, resolvedUlid;
202
+ for ([resolvedId, resolvedUlid] of collection)
202
203
  ; // Get last element of the set
203
- return [id, ulid];
204
+ return [resolvedId, resolvedUlid];
204
205
  })();
205
206
  const itemKey = this.getKeyForItem(storeName, itemId, ulid);
206
207
  const itemString = itemKey && (await this.storage.getItem(itemKey));
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncStorageDatabase.js","sources":["../../../../src/storage/adapter/AsyncStorageDatabase.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst types_1 = require(\"../../types\");\nconst util_1 = require(\"../../util\");\nconst InMemoryStore_1 = require(\"./InMemoryStore\");\nconst DB_NAME = '@AmplifyDatastore';\nconst COLLECTION = 'Collection';\nconst DATA = 'Data';\nconst monotonicFactoriesMap = new Map();\nclass AsyncStorageDatabase {\n constructor() {\n /**\n * Maps storeNames to a map of ulid->id\n */\n this._collectionInMemoryIndex = new Map();\n this.storage = (0, InMemoryStore_1.createInMemoryStore)();\n }\n /**\n * Collection index is map of stores (i.e. sync, metadata, mutation event, and data)\n * @param storeName {string} - Name of the store\n * @returns Map of ulid->id\n */\n getCollectionIndex(storeName) {\n if (!this._collectionInMemoryIndex.has(storeName)) {\n this._collectionInMemoryIndex.set(storeName, new Map());\n }\n return this._collectionInMemoryIndex.get(storeName);\n }\n /**\n * Return ULID for store if it exists, otherwise create a new one\n * @param storeName {string} - Name of the store\n * @returns ulid\n */\n getMonotonicFactory(storeName) {\n if (!monotonicFactoriesMap.has(storeName)) {\n monotonicFactoriesMap.set(storeName, (0, util_1.monotonicUlidFactory)());\n }\n return monotonicFactoriesMap.get(storeName);\n }\n async init() {\n this._collectionInMemoryIndex.clear();\n const allKeys = await this.storage.getAllKeys();\n const keysForCollectionEntries = [];\n for (const key of allKeys) {\n const [dbName, storeName, recordType, ulidOrId, id] = key.split('::');\n if (dbName === DB_NAME) {\n if (recordType === DATA) {\n let ulid;\n if (id === undefined) {\n // It is an old entry (without ulid). Need to migrate to new key format\n const id = ulidOrId;\n const newUlid = this.getMonotonicFactory(storeName)();\n const oldKey = this.getLegacyKeyForItem(storeName, id);\n const newKey = this.getKeyForItem(storeName, id, newUlid);\n const item = await this.storage.getItem(oldKey);\n await this.storage.setItem(newKey, item);\n await this.storage.removeItem(oldKey);\n ulid = newUlid;\n }\n else {\n ulid = ulidOrId;\n }\n this.getCollectionIndex(storeName).set(id, ulid);\n }\n else if (recordType === COLLECTION) {\n keysForCollectionEntries.push(key);\n }\n }\n }\n if (keysForCollectionEntries.length > 0) {\n await this.storage.multiRemove(keysForCollectionEntries);\n }\n }\n async save(item, storeName, keys, keyValuesPath) {\n const idxName = (0, util_1.indexNameFromKeys)(keys);\n const ulid = this.getCollectionIndex(storeName)?.get(idxName) ||\n this.getMonotonicFactory(storeName)();\n // Retrieve db key for item\n const itemKey = this.getKeyForItem(storeName, keyValuesPath, ulid);\n // Set key in collection index\n this.getCollectionIndex(storeName)?.set(keyValuesPath, ulid);\n // Save item in db\n await this.storage.setItem(itemKey, JSON.stringify(item));\n }\n async batchSave(storeName, items, keys) {\n if (items.length === 0) {\n return [];\n }\n const result = [];\n const collection = this.getCollectionIndex(storeName);\n const keysToDelete = new Set();\n const keysToSave = new Set();\n const allItemsKeys = [];\n const itemsMap = {};\n /* Populate allItemKeys, keysToDelete, and keysToSave */\n for (const item of items) {\n // Extract keys from concatenated key path, map to item values\n const keyValues = keys.map(field => item[field]);\n const { _deleted } = item;\n // If id is in the store, retrieve, otherwise generate new ULID\n const ulid = collection.get(keyValues.join(util_1.DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR)) ||\n this.getMonotonicFactory(storeName)();\n // Generate the \"longer key\" for the item\n const key = this.getKeyForItem(storeName, keyValues.join(util_1.DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR), ulid);\n allItemsKeys.push(key);\n itemsMap[key] = { ulid, model: item };\n if (_deleted) {\n keysToDelete.add(key);\n }\n else {\n keysToSave.add(key);\n }\n }\n const existingRecordsMap = await this.storage.multiGet(allItemsKeys);\n const existingRecordsKeys = existingRecordsMap\n .filter(([, v]) => !!v)\n .reduce((set, [k]) => set.add(k), new Set());\n // Delete\n await new Promise((resolve, reject) => {\n if (keysToDelete.size === 0) {\n resolve();\n return;\n }\n const keysToDeleteArray = Array.from(keysToDelete);\n keysToDeleteArray.forEach(key => {\n // key: full db key\n // keys: PK and/or SK keys\n const primaryKeyValues = keys\n .map(field => itemsMap[key].model[field])\n .join(util_1.DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);\n collection.delete(primaryKeyValues);\n });\n this.storage.multiRemove(keysToDeleteArray, (errors) => {\n if (errors && errors.length > 0) {\n reject(errors);\n }\n else {\n resolve();\n }\n });\n });\n // Save\n await new Promise((resolve, reject) => {\n if (keysToSave.size === 0) {\n resolve();\n return;\n }\n const entriesToSet = Array.from(keysToSave).map(key => [\n key,\n JSON.stringify(itemsMap[key].model),\n ]);\n keysToSave.forEach(key => {\n const { model, ulid } = itemsMap[key];\n // Retrieve values from model, use as key for collection index\n const keyValues = keys\n .map(field => model[field])\n .join(util_1.DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);\n collection.set(keyValues, ulid);\n });\n this.storage.multiSet(entriesToSet, (errors) => {\n if (errors && errors.length > 0) {\n reject(errors);\n }\n else {\n resolve();\n }\n });\n });\n for (const key of allItemsKeys) {\n if (keysToDelete.has(key) && existingRecordsKeys.has(key)) {\n result.push([itemsMap[key].model, types_1.OpType.DELETE]);\n }\n else if (keysToSave.has(key)) {\n result.push([\n itemsMap[key].model,\n existingRecordsKeys.has(key) ? types_1.OpType.UPDATE : types_1.OpType.INSERT,\n ]);\n }\n }\n return result;\n }\n async get(keyValuePath, storeName) {\n const ulid = this.getCollectionIndex(storeName).get(keyValuePath);\n const itemKey = this.getKeyForItem(storeName, keyValuePath, ulid);\n const recordAsString = await this.storage.getItem(itemKey);\n const record = recordAsString && JSON.parse(recordAsString);\n return record;\n }\n async getOne(firstOrLast, storeName) {\n const collection = this.getCollectionIndex(storeName);\n const [itemId, ulid] = firstOrLast === types_1.QueryOne.FIRST\n ? (() => {\n let id, ulid;\n for ([id, ulid] of collection)\n break; // Get first element of the set\n return [id, ulid];\n })()\n : (() => {\n let id, ulid;\n for ([id, ulid] of collection)\n ; // Get last element of the set\n return [id, ulid];\n })();\n const itemKey = this.getKeyForItem(storeName, itemId, ulid);\n const itemString = itemKey && (await this.storage.getItem(itemKey));\n const result = itemString ? JSON.parse(itemString) || undefined : undefined;\n return result;\n }\n /**\n * This function gets all the records stored in async storage for a particular storeName\n * It then loads all the records for that filtered set of keys using multiGet()\n */\n async getAll(storeName, pagination) {\n const collection = this.getCollectionIndex(storeName);\n const { page = 0, limit = 0 } = pagination || {};\n const start = Math.max(0, page * limit) || 0;\n const end = limit > 0 ? start + limit : undefined;\n const keysForStore = [];\n let count = 0;\n for (const [id, ulid] of collection) {\n count++;\n if (count <= start) {\n continue;\n }\n keysForStore.push(this.getKeyForItem(storeName, id, ulid));\n if (count === end) {\n break;\n }\n }\n const storeRecordStrings = await this.storage.multiGet(keysForStore);\n const records = storeRecordStrings\n .filter(([, value]) => value)\n .map(([, value]) => JSON.parse(value));\n return records;\n }\n async delete(key, storeName) {\n const ulid = this.getCollectionIndex(storeName).get(key);\n const itemKey = this.getKeyForItem(storeName, key, ulid);\n this.getCollectionIndex(storeName).delete(key);\n await this.storage.removeItem(itemKey);\n }\n /**\n * Clear the AsyncStorage of all DataStore entries\n */\n async clear() {\n const allKeys = await this.storage.getAllKeys();\n const allDataStoreKeys = allKeys.filter(key => key.startsWith(DB_NAME));\n await this.storage.multiRemove(allDataStoreKeys);\n this._collectionInMemoryIndex.clear();\n }\n getKeyForItem(storeName, id, ulid) {\n return `${this.getKeyPrefixForStoreItems(storeName)}::${ulid}::${id}`;\n }\n getLegacyKeyForItem(storeName, id) {\n return `${this.getKeyPrefixForStoreItems(storeName)}::${id}`;\n }\n getKeyPrefixForStoreItems(storeName) {\n return `${DB_NAME}::${storeName}::${DATA}`;\n }\n}\nexports.default = AsyncStorageDatabase;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AsyncStorageDatabase.js","sources":["../../../../src/storage/adapter/AsyncStorageDatabase.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst types_1 = require(\"../../types\");\nconst util_1 = require(\"../../util\");\nconst InMemoryStore_1 = require(\"./InMemoryStore\");\nconst DB_NAME = '@AmplifyDatastore';\nconst COLLECTION = 'Collection';\nconst DATA = 'Data';\nconst monotonicFactoriesMap = new Map();\nclass AsyncStorageDatabase {\n constructor() {\n /**\n * Maps storeNames to a map of ulid->id\n */\n this._collectionInMemoryIndex = new Map();\n this.storage = (0, InMemoryStore_1.createInMemoryStore)();\n }\n /**\n * Collection index is map of stores (i.e. sync, metadata, mutation event, and data)\n * @param storeName {string} - Name of the store\n * @returns Map of ulid->id\n */\n getCollectionIndex(storeName) {\n if (!this._collectionInMemoryIndex.has(storeName)) {\n this._collectionInMemoryIndex.set(storeName, new Map());\n }\n return this._collectionInMemoryIndex.get(storeName);\n }\n /**\n * Return ULID for store if it exists, otherwise create a new one\n * @param storeName {string} - Name of the store\n * @returns ulid\n */\n getMonotonicFactory(storeName) {\n if (!monotonicFactoriesMap.has(storeName)) {\n monotonicFactoriesMap.set(storeName, (0, util_1.monotonicUlidFactory)());\n }\n return monotonicFactoriesMap.get(storeName);\n }\n async init() {\n this._collectionInMemoryIndex.clear();\n const allKeys = await this.storage.getAllKeys();\n const keysForCollectionEntries = [];\n for (const key of allKeys) {\n const [dbName, storeName, recordType, ulidOrId, id] = key.split('::');\n if (dbName === DB_NAME) {\n if (recordType === DATA) {\n let ulid;\n if (id === undefined) {\n // It is an old entry (without ulid). Need to migrate to new key format\n const resolvedId = ulidOrId;\n const newUlid = this.getMonotonicFactory(storeName)();\n const oldKey = this.getLegacyKeyForItem(storeName, resolvedId);\n const newKey = this.getKeyForItem(storeName, resolvedId, newUlid);\n const item = await this.storage.getItem(oldKey);\n await this.storage.setItem(newKey, item);\n await this.storage.removeItem(oldKey);\n ulid = newUlid;\n }\n else {\n ulid = ulidOrId;\n }\n this.getCollectionIndex(storeName).set(id, ulid);\n }\n else if (recordType === COLLECTION) {\n keysForCollectionEntries.push(key);\n }\n }\n }\n if (keysForCollectionEntries.length > 0) {\n await this.storage.multiRemove(keysForCollectionEntries);\n }\n }\n async save(item, storeName, keys, keyValuesPath) {\n const idxName = (0, util_1.indexNameFromKeys)(keys);\n const ulid = this.getCollectionIndex(storeName)?.get(idxName) ||\n this.getMonotonicFactory(storeName)();\n // Retrieve db key for item\n const itemKey = this.getKeyForItem(storeName, keyValuesPath, ulid);\n // Set key in collection index\n this.getCollectionIndex(storeName)?.set(keyValuesPath, ulid);\n // Save item in db\n await this.storage.setItem(itemKey, JSON.stringify(item));\n }\n async batchSave(storeName, items, keys) {\n if (items.length === 0) {\n return [];\n }\n const result = [];\n const collection = this.getCollectionIndex(storeName);\n const keysToDelete = new Set();\n const keysToSave = new Set();\n const allItemsKeys = [];\n const itemsMap = {};\n /* Populate allItemKeys, keysToDelete, and keysToSave */\n for (const item of items) {\n // Extract keys from concatenated key path, map to item values\n const keyValues = keys.map(field => item[field]);\n const { _deleted } = item;\n // If id is in the store, retrieve, otherwise generate new ULID\n const ulid = collection.get(keyValues.join(util_1.DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR)) ||\n this.getMonotonicFactory(storeName)();\n // Generate the \"longer key\" for the item\n const key = this.getKeyForItem(storeName, keyValues.join(util_1.DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR), ulid);\n allItemsKeys.push(key);\n itemsMap[key] = { ulid, model: item };\n if (_deleted) {\n keysToDelete.add(key);\n }\n else {\n keysToSave.add(key);\n }\n }\n const existingRecordsMap = await this.storage.multiGet(allItemsKeys);\n const existingRecordsKeys = existingRecordsMap\n .filter(([, v]) => !!v)\n .reduce((set, [k]) => set.add(k), new Set());\n // Delete\n await new Promise((resolve, reject) => {\n if (keysToDelete.size === 0) {\n resolve();\n return;\n }\n const keysToDeleteArray = Array.from(keysToDelete);\n keysToDeleteArray.forEach(key => {\n // key: full db key\n // keys: PK and/or SK keys\n const primaryKeyValues = keys\n .map(field => itemsMap[key].model[field])\n .join(util_1.DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);\n collection.delete(primaryKeyValues);\n });\n this.storage.multiRemove(keysToDeleteArray, (errors) => {\n if (errors && errors.length > 0) {\n reject(errors);\n }\n else {\n resolve();\n }\n });\n });\n // Save\n await new Promise((resolve, reject) => {\n if (keysToSave.size === 0) {\n resolve();\n return;\n }\n const entriesToSet = Array.from(keysToSave).map(key => [\n key,\n JSON.stringify(itemsMap[key].model),\n ]);\n keysToSave.forEach(key => {\n const { model, ulid } = itemsMap[key];\n // Retrieve values from model, use as key for collection index\n const keyValues = keys\n .map(field => model[field])\n .join(util_1.DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);\n collection.set(keyValues, ulid);\n });\n this.storage.multiSet(entriesToSet, (errors) => {\n if (errors && errors.length > 0) {\n reject(errors);\n }\n else {\n resolve();\n }\n });\n });\n for (const key of allItemsKeys) {\n if (keysToDelete.has(key) && existingRecordsKeys.has(key)) {\n result.push([itemsMap[key].model, types_1.OpType.DELETE]);\n }\n else if (keysToSave.has(key)) {\n result.push([\n itemsMap[key].model,\n existingRecordsKeys.has(key) ? types_1.OpType.UPDATE : types_1.OpType.INSERT,\n ]);\n }\n }\n return result;\n }\n async get(keyValuePath, storeName) {\n const ulid = this.getCollectionIndex(storeName).get(keyValuePath);\n const itemKey = this.getKeyForItem(storeName, keyValuePath, ulid);\n const recordAsString = await this.storage.getItem(itemKey);\n const record = recordAsString && JSON.parse(recordAsString);\n return record;\n }\n async getOne(firstOrLast, storeName) {\n const collection = this.getCollectionIndex(storeName);\n const [itemId, ulid] = firstOrLast === types_1.QueryOne.FIRST\n ? (() => {\n let resolvedId, resolvedUlid;\n // eslint-disable-next-line no-unreachable-loop\n for ([resolvedId, resolvedUlid] of collection)\n break; // Get first element of the set\n return [resolvedId, resolvedUlid];\n })()\n : (() => {\n let resolvedId, resolvedUlid;\n for ([resolvedId, resolvedUlid] of collection)\n ; // Get last element of the set\n return [resolvedId, resolvedUlid];\n })();\n const itemKey = this.getKeyForItem(storeName, itemId, ulid);\n const itemString = itemKey && (await this.storage.getItem(itemKey));\n const result = itemString ? JSON.parse(itemString) || undefined : undefined;\n return result;\n }\n /**\n * This function gets all the records stored in async storage for a particular storeName\n * It then loads all the records for that filtered set of keys using multiGet()\n */\n async getAll(storeName, pagination) {\n const collection = this.getCollectionIndex(storeName);\n const { page = 0, limit = 0 } = pagination || {};\n const start = Math.max(0, page * limit) || 0;\n const end = limit > 0 ? start + limit : undefined;\n const keysForStore = [];\n let count = 0;\n for (const [id, ulid] of collection) {\n count++;\n if (count <= start) {\n continue;\n }\n keysForStore.push(this.getKeyForItem(storeName, id, ulid));\n if (count === end) {\n break;\n }\n }\n const storeRecordStrings = await this.storage.multiGet(keysForStore);\n const records = storeRecordStrings\n .filter(([, value]) => value)\n .map(([, value]) => JSON.parse(value));\n return records;\n }\n async delete(key, storeName) {\n const ulid = this.getCollectionIndex(storeName).get(key);\n const itemKey = this.getKeyForItem(storeName, key, ulid);\n this.getCollectionIndex(storeName).delete(key);\n await this.storage.removeItem(itemKey);\n }\n /**\n * Clear the AsyncStorage of all DataStore entries\n */\n async clear() {\n const allKeys = await this.storage.getAllKeys();\n const allDataStoreKeys = allKeys.filter(key => key.startsWith(DB_NAME));\n await this.storage.multiRemove(allDataStoreKeys);\n this._collectionInMemoryIndex.clear();\n }\n getKeyForItem(storeName, id, ulid) {\n return `${this.getKeyPrefixForStoreItems(storeName)}::${ulid}::${id}`;\n }\n getLegacyKeyForItem(storeName, id) {\n return `${this.getKeyPrefixForStoreItems(storeName)}::${id}`;\n }\n getKeyPrefixForStoreItems(storeName) {\n return `${DB_NAME}::${storeName}::${DATA}`;\n }\n}\nexports.default = AsyncStorageDatabase;\n"],"names":[],"mappings":"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"}
@@ -11,7 +11,10 @@ class InMemoryStore {
11
11
  return Array.from(this.db.keys());
12
12
  };
13
13
  this.multiGet = async (keys) => {
14
- return keys.reduce((res, k) => (res.push([k, this.db.get(k)]), res), []);
14
+ return keys.reduce((res, k) => {
15
+ res.push([k, this.db.get(k)]);
16
+ return res;
17
+ }, []);
15
18
  };
16
19
  this.multiRemove = async (keys, callback) => {
17
20
  keys.forEach(k => this.db.delete(k));
@@ -1 +1 @@
1
- {"version":3,"file":"InMemoryStore.js","sources":["../../../../src/storage/adapter/InMemoryStore.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createInMemoryStore = exports.InMemoryStore = void 0;\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nclass InMemoryStore {\n constructor() {\n this.db = new Map();\n this.getAllKeys = async () => {\n return Array.from(this.db.keys());\n };\n this.multiGet = async (keys) => {\n return keys.reduce((res, k) => (res.push([k, this.db.get(k)]), res), []);\n };\n this.multiRemove = async (keys, callback) => {\n keys.forEach(k => this.db.delete(k));\n typeof callback === 'function' && callback();\n };\n this.multiSet = async (entries, callback) => {\n entries.forEach(([key, value]) => {\n this.setItem(key, value);\n });\n typeof callback === 'function' && callback();\n };\n this.setItem = async (key, value) => {\n return this.db.set(key, value);\n };\n this.removeItem = async (key) => {\n return this.db.delete(key);\n };\n this.getItem = async (key) => {\n return this.db.get(key);\n };\n }\n}\nexports.InMemoryStore = InMemoryStore;\nfunction createInMemoryStore() {\n return new InMemoryStore();\n}\nexports.createInMemoryStore = createInMemoryStore;\n"],"names":[],"mappings":";;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,mBAAmB,GAAG,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC;AAC7D;AACA;AACA,MAAM,aAAa,CAAC;AACpB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,GAAG,EAAE,CAAC;AAC5B,QAAQ,IAAI,CAAC,UAAU,GAAG,YAAY;AACtC,YAAY,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9C,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAI,KAAK;AACxC,YAAY,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACrF,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,WAAW,GAAG,OAAO,IAAI,EAAE,QAAQ,KAAK;AACrD,YAAY,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,YAAY,OAAO,QAAQ,KAAK,UAAU,IAAI,QAAQ,EAAE,CAAC;AACzD,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,QAAQ,GAAG,OAAO,OAAO,EAAE,QAAQ,KAAK;AACrD,YAAY,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;AAC9C,gBAAgB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACzC,aAAa,CAAC,CAAC;AACf,YAAY,OAAO,QAAQ,KAAK,UAAU,IAAI,QAAQ,EAAE,CAAC;AACzD,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,GAAG,EAAE,KAAK,KAAK;AAC7C,YAAY,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC3C,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,UAAU,GAAG,OAAO,GAAG,KAAK;AACzC,YAAY,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACvC,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,GAAG,KAAK;AACtC,YAAY,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACpC,SAAS,CAAC;AACV,KAAK;AACL,CAAC;AACD,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;AACtC,SAAS,mBAAmB,GAAG;AAC/B,IAAI,OAAO,IAAI,aAAa,EAAE,CAAC;AAC/B,CAAC;AACD,OAAO,CAAC,mBAAmB,GAAG,mBAAmB;;"}
1
+ {"version":3,"file":"InMemoryStore.js","sources":["../../../../src/storage/adapter/InMemoryStore.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createInMemoryStore = exports.InMemoryStore = void 0;\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nclass InMemoryStore {\n constructor() {\n this.db = new Map();\n this.getAllKeys = async () => {\n return Array.from(this.db.keys());\n };\n this.multiGet = async (keys) => {\n return keys.reduce((res, k) => {\n res.push([k, this.db.get(k)]);\n return res;\n }, []);\n };\n this.multiRemove = async (keys, callback) => {\n keys.forEach(k => this.db.delete(k));\n typeof callback === 'function' && callback();\n };\n this.multiSet = async (entries, callback) => {\n entries.forEach(([key, value]) => {\n this.setItem(key, value);\n });\n typeof callback === 'function' && callback();\n };\n this.setItem = async (key, value) => {\n return this.db.set(key, value);\n };\n this.removeItem = async (key) => {\n return this.db.delete(key);\n };\n this.getItem = async (key) => {\n return this.db.get(key);\n };\n }\n}\nexports.InMemoryStore = InMemoryStore;\nfunction createInMemoryStore() {\n return new InMemoryStore();\n}\nexports.createInMemoryStore = createInMemoryStore;\n"],"names":[],"mappings":";;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,mBAAmB,GAAG,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC;AAC7D;AACA;AACA,MAAM,aAAa,CAAC;AACpB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,GAAG,EAAE,CAAC;AAC5B,QAAQ,IAAI,CAAC,UAAU,GAAG,YAAY;AACtC,YAAY,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9C,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAI,KAAK;AACxC,YAAY,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;AAC3C,gBAAgB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,gBAAgB,OAAO,GAAG,CAAC;AAC3B,aAAa,EAAE,EAAE,CAAC,CAAC;AACnB,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,WAAW,GAAG,OAAO,IAAI,EAAE,QAAQ,KAAK;AACrD,YAAY,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,YAAY,OAAO,QAAQ,KAAK,UAAU,IAAI,QAAQ,EAAE,CAAC;AACzD,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,QAAQ,GAAG,OAAO,OAAO,EAAE,QAAQ,KAAK;AACrD,YAAY,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;AAC9C,gBAAgB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACzC,aAAa,CAAC,CAAC;AACf,YAAY,OAAO,QAAQ,KAAK,UAAU,IAAI,QAAQ,EAAE,CAAC;AACzD,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,GAAG,EAAE,KAAK,KAAK;AAC7C,YAAY,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC3C,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,UAAU,GAAG,OAAO,GAAG,KAAK;AACzC,YAAY,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACvC,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,GAAG,KAAK;AACtC,YAAY,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACpC,SAAS,CAAC;AACV,KAAK;AACL,CAAC;AACD,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;AACtC,SAAS,mBAAmB,GAAG;AAC/B,IAAI,OAAO,IAAI,aAAa,EAAE,CAAC;AAC/B,CAAC;AACD,OAAO,CAAC,mBAAmB,GAAG,mBAAmB;;"}
@@ -5,10 +5,10 @@ const tslib_1 = require("tslib");
5
5
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
6
6
  // SPDX-License-Identifier: Apache-2.0
7
7
  const idb = tslib_1.__importStar(require("idb"));
8
+ const core_1 = require("@aws-amplify/core");
8
9
  const types_1 = require("../../types");
9
10
  const util_1 = require("../../util");
10
11
  const StorageAdapterBase_1 = require("./StorageAdapterBase");
11
- const core_1 = require("@aws-amplify/core");
12
12
  const logger = new core_1.ConsoleLogger('DataStore');
13
13
  /**
14
14
  * The point after which queries composed of multiple simple OR conditions
@@ -52,7 +52,7 @@ class IndexedDBAdapter extends StorageAdapterBase_1.StorageAdapterBase {
52
52
  }
53
53
  return keyArr;
54
54
  };
55
- //#endregion
55
+ // #endregion
56
56
  }
57
57
  // checks are called by StorageAdapterBase class
58
58
  async preSetUpChecks() {
@@ -72,7 +72,7 @@ class IndexedDBAdapter extends StorageAdapterBase_1.StorageAdapterBase {
72
72
  * @returns IDB Database instance
73
73
  */
74
74
  async initDb() {
75
- return await idb.openDB(this.dbName, DB_VERSION, {
75
+ return idb.openDB(this.dbName, DB_VERSION, {
76
76
  upgrade: async (db, oldVersion, newVersion, txn) => {
77
77
  // create new database
78
78
  if (oldVersion === 0) {
@@ -135,7 +135,6 @@ class IndexedDBAdapter extends StorageAdapterBase_1.StorageAdapterBase {
135
135
  txn.abort();
136
136
  throw error;
137
137
  }
138
- return;
139
138
  }
140
139
  },
141
140
  });
@@ -169,17 +168,17 @@ class IndexedDBAdapter extends StorageAdapterBase_1.StorageAdapterBase {
169
168
  this.validateSaveCondition(condition, fromDB);
170
169
  const result = [];
171
170
  for await (const resItem of connectionStoreNames) {
172
- const { storeName, item, instance, keys } = resItem;
173
- const store = tx.objectStore(storeName);
171
+ const { storeName: storeNameForRestItem, item, instance, keys } = resItem;
172
+ const storeForRestItem = tx.objectStore(storeNameForRestItem);
174
173
  const itemKeyValues = keys.map(key => item[key]);
175
- const fromDB = await this._get(store, itemKeyValues);
176
- const opType = fromDB ? types_1.OpType.UPDATE : types_1.OpType.INSERT;
174
+ const fromDBForRestItem = (await this._get(storeForRestItem, itemKeyValues));
175
+ const opType = fromDBForRestItem ? types_1.OpType.UPDATE : types_1.OpType.INSERT;
177
176
  if ((0, util_1.keysEqual)(itemKeyValues, modelKeyValues) ||
178
177
  opType === types_1.OpType.INSERT) {
179
- const key = await store
178
+ const key = await storeForRestItem
180
179
  .index('byPk')
181
180
  .getKey(this.canonicalKeyPath(itemKeyValues));
182
- await store.put(item, key);
181
+ await storeForRestItem.put(item, key);
183
182
  result.push([instance, opType]);
184
183
  }
185
184
  }
@@ -218,7 +217,7 @@ class IndexedDBAdapter extends StorageAdapterBase_1.StorageAdapterBase {
218
217
  }
219
218
  return this.getAll(storeName);
220
219
  })());
221
- return await this.load(namespaceName, modelConstructor.name, records);
220
+ return this.load(namespaceName, modelConstructor.name, records);
222
221
  }
223
222
  async queryOne(modelConstructor, firstOrLast = types_1.QueryOne.FIRST) {
224
223
  await this.checkPrivate();
@@ -240,7 +239,7 @@ class IndexedDBAdapter extends StorageAdapterBase_1.StorageAdapterBase {
240
239
  const storeName = this.getStorenameForModel(modelConstructor);
241
240
  const result = [];
242
241
  const txn = this.db.transaction(storeName, 'readwrite');
243
- const store = txn.store;
242
+ const { store } = txn;
244
243
  for (const item of items) {
245
244
  const model = this.modelInstanceCreator(modelConstructor, item);
246
245
  const connectedModels = (0, util_1.traverseModel)(modelName, model, this.schema.namespaces[namespaceName], this.modelInstanceCreator, this.getModelConstructorByModelName);
@@ -249,8 +248,8 @@ class IndexedDBAdapter extends StorageAdapterBase_1.StorageAdapterBase {
249
248
  const index = store.index('byPk');
250
249
  const key = await index.getKey(this.canonicalKeyPath(keyValues));
251
250
  if (!_deleted) {
252
- const { instance } = connectedModels.find(({ instance }) => {
253
- const instanceKeyValues = this.getIndexKeyValuesFromModel(instance);
251
+ const { instance } = connectedModels.find(({ instance: connectedModelInstance }) => {
252
+ const instanceKeyValues = this.getIndexKeyValuesFromModel(connectedModelInstance);
254
253
  return (0, util_1.keysEqual)(instanceKeyValues, keyValues);
255
254
  });
256
255
  result.push([
@@ -297,13 +296,12 @@ class IndexedDBAdapter extends StorageAdapterBase_1.StorageAdapterBase {
297
296
  }
298
297
  }
299
298
  }
300
- //#region platform-specific helper methods
299
+ // #region platform-specific helper methods
301
300
  async checkPrivate() {
302
- const isPrivate = await (0, util_1.isPrivateMode)().then(isPrivate => {
303
- return isPrivate;
304
- });
301
+ const isPrivate = await (0, util_1.isPrivateMode)();
305
302
  if (isPrivate) {
306
303
  logger.error("IndexedDB not supported in this browser's private mode");
304
+ // eslint-disable-next-line prefer-promise-reject-errors
307
305
  return Promise.reject("IndexedDB not supported in this browser's private mode");
308
306
  }
309
307
  else {
@@ -344,10 +342,10 @@ class IndexedDBAdapter extends StorageAdapterBase_1.StorageAdapterBase {
344
342
  return store;
345
343
  }
346
344
  async getByKey(storeName, keyValue) {
347
- return await this._get(storeName, keyValue);
345
+ return (await this._get(storeName, keyValue));
348
346
  }
349
347
  async getAll(storeName) {
350
- return await this.db.getAll(storeName);
348
+ return this.db.getAll(storeName);
351
349
  }
352
350
  /**
353
351
  * Tries to generate an index fetcher for the given predicates. Assumes
@@ -402,7 +400,7 @@ class IndexedDBAdapter extends StorageAdapterBase_1.StorageAdapterBase {
402
400
  while (predicateObjs.length === 1 &&
403
401
  (0, types_1.isPredicateGroup)(predicateObjs[0]) &&
404
402
  predicateObjs[0].type !== 'not') {
405
- type = predicateObjs[0].type;
403
+ ({ type } = predicateObjs[0]);
406
404
  predicateObjs = predicateObjs[0].predicates;
407
405
  }
408
406
  const fieldPredicates = predicateObjs.filter(p => (0, types_1.isPredicateObj)(p) && p.operator === 'eq');
@@ -506,7 +504,7 @@ class IndexedDBAdapter extends StorageAdapterBase_1.StorageAdapterBase {
506
504
  // nothing intelligent we can do with `not` groups unless or until we start
507
505
  // smashing comparison operators against indexes -- at which point we could
508
506
  // perform some reversal here.
509
- candidateResults = await this.getAll(storeName);
507
+ candidateResults = (await this.getAll(storeName));
510
508
  }
511
509
  const filtered = predicateObjs
512
510
  ? candidateResults.filter(m => (0, util_1.validatePredicate)(m, type, predicateObjs))
@@ -540,7 +538,7 @@ class IndexedDBAdapter extends StorageAdapterBase_1.StorageAdapterBase {
540
538
  result = pageResults;
541
539
  }
542
540
  else {
543
- result = await this.db.getAll(storeName);
541
+ result = (await this.db.getAll(storeName));
544
542
  }
545
543
  return result;
546
544
  }