@aws-amplify/datastore 3.14.4 → 3.14.5-unstable.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +0 -8
- package/lib/authModeStrategies/defaultAuthStrategy.d.ts +2 -0
- package/lib/authModeStrategies/index.d.ts +2 -0
- package/lib/authModeStrategies/multiAuthStrategy.d.ts +13 -0
- package/lib/authModeStrategies/multiAuthStrategy.js +6 -64
- package/lib/authModeStrategies/multiAuthStrategy.js.map +1 -1
- package/lib/datastore/datastore.d.ts +207 -0
- package/lib/datastore/datastore.js +703 -297
- package/lib/datastore/datastore.js.map +1 -1
- package/lib/index.d.ts +16 -0
- package/lib/index.js +6 -4
- package/lib/index.js.map +1 -1
- package/lib/predicates/index.d.ts +30 -0
- package/lib/predicates/index.js +127 -6
- package/lib/predicates/index.js.map +1 -1
- package/lib/predicates/next.d.ts +301 -0
- package/lib/predicates/next.js +816 -0
- package/lib/predicates/next.js.map +1 -0
- package/lib/predicates/sort.d.ts +8 -0
- package/lib/predicates/sort.js +10 -4
- package/lib/predicates/sort.js.map +1 -1
- package/lib/ssr/index.d.ts +3 -0
- package/lib/storage/adapter/AsyncStorageAdapter.d.ts +42 -0
- package/lib/storage/adapter/AsyncStorageAdapter.js +141 -382
- package/lib/storage/adapter/AsyncStorageAdapter.js.map +1 -1
- package/lib/storage/adapter/AsyncStorageDatabase.d.ts +39 -0
- package/lib/storage/adapter/AsyncStorageDatabase.js +37 -98
- package/lib/storage/adapter/AsyncStorageDatabase.js.map +1 -1
- package/lib/storage/adapter/InMemoryStore.d.ts +11 -0
- package/lib/storage/adapter/InMemoryStore.js +16 -67
- package/lib/storage/adapter/InMemoryStore.js.map +1 -1
- package/lib/storage/adapter/InMemoryStore.native.d.ts +1 -0
- package/lib/storage/adapter/InMemoryStore.native.js +2 -4
- package/lib/storage/adapter/InMemoryStore.native.js.map +1 -1
- package/lib/storage/adapter/IndexedDBAdapter.d.ts +61 -0
- package/lib/storage/adapter/IndexedDBAdapter.js +275 -419
- package/lib/storage/adapter/IndexedDBAdapter.js.map +1 -1
- package/lib/storage/adapter/getDefaultAdapter/index.d.ts +3 -0
- package/lib/storage/adapter/getDefaultAdapter/index.js +3 -5
- package/lib/storage/adapter/getDefaultAdapter/index.js.map +1 -1
- package/lib/storage/adapter/getDefaultAdapter/index.native.d.ts +3 -0
- package/lib/storage/adapter/getDefaultAdapter/index.native.js +2 -4
- package/lib/storage/adapter/getDefaultAdapter/index.native.js.map +1 -1
- package/lib/storage/adapter/index.d.ts +9 -0
- package/lib/storage/relationship.d.ts +140 -0
- package/lib/storage/relationship.js +335 -0
- package/lib/storage/relationship.js.map +1 -0
- package/lib/storage/storage.d.ts +50 -0
- package/lib/storage/storage.js +72 -143
- package/lib/storage/storage.js.map +1 -1
- package/lib/sync/datastoreConnectivity.d.ts +16 -0
- package/lib/sync/datastoreConnectivity.js +6 -55
- package/lib/sync/datastoreConnectivity.js.map +1 -1
- package/lib/sync/datastoreReachability/index.d.ts +3 -0
- package/lib/sync/datastoreReachability/index.native.d.ts +3 -0
- package/lib/sync/datastoreReachability/index.native.js +2 -4
- package/lib/sync/datastoreReachability/index.native.js.map +1 -1
- package/lib/sync/index.d.ts +89 -0
- package/lib/sync/index.js +49 -124
- package/lib/sync/index.js.map +1 -1
- package/lib/sync/merger.d.ts +17 -0
- package/lib/sync/merger.js +8 -74
- package/lib/sync/merger.js.map +1 -1
- package/lib/sync/outbox.d.ts +27 -0
- package/lib/sync/outbox.js +24 -97
- package/lib/sync/outbox.js.map +1 -1
- package/lib/sync/processors/errorMaps.d.ts +17 -0
- package/lib/sync/processors/errorMaps.js +5 -35
- package/lib/sync/processors/errorMaps.js.map +1 -1
- package/lib/sync/processors/mutation.d.ts +58 -0
- package/lib/sync/processors/mutation.js +47 -131
- package/lib/sync/processors/mutation.js.map +1 -1
- package/lib/sync/processors/subscription.d.ts +33 -0
- package/lib/sync/processors/subscription.js +29 -102
- package/lib/sync/processors/subscription.js.map +1 -1
- package/lib/sync/processors/sync.d.ts +28 -0
- package/lib/sync/processors/sync.js +26 -102
- package/lib/sync/processors/sync.js.map +1 -1
- package/lib/sync/utils.d.ts +42 -0
- package/lib/sync/utils.js +40 -103
- package/lib/sync/utils.js.map +1 -1
- package/lib/types.d.ts +554 -0
- package/lib/types.js +9 -39
- package/lib/types.js.map +1 -1
- package/lib/util.d.ts +189 -0
- package/lib/util.js +192 -188
- package/lib/util.js.map +1 -1
- package/lib-esm/authModeStrategies/multiAuthStrategy.js +2 -57
- package/lib-esm/authModeStrategies/multiAuthStrategy.js.map +1 -1
- package/lib-esm/datastore/datastore.d.ts +59 -8
- package/lib-esm/datastore/datastore.js +642 -234
- package/lib-esm/datastore/datastore.js.map +1 -1
- package/lib-esm/index.d.ts +3 -2
- package/lib-esm/index.js +2 -1
- package/lib-esm/index.js.map +1 -1
- package/lib-esm/predicates/index.d.ts +16 -2
- package/lib-esm/predicates/index.js +128 -7
- package/lib-esm/predicates/index.js.map +1 -1
- package/lib-esm/predicates/next.d.ts +301 -0
- package/lib-esm/predicates/next.js +812 -0
- package/lib-esm/predicates/next.js.map +1 -0
- package/lib-esm/predicates/sort.js +10 -4
- package/lib-esm/predicates/sort.js.map +1 -1
- package/lib-esm/storage/adapter/AsyncStorageAdapter.d.ts +2 -1
- package/lib-esm/storage/adapter/AsyncStorageAdapter.js +112 -350
- package/lib-esm/storage/adapter/AsyncStorageAdapter.js.map +1 -1
- package/lib-esm/storage/adapter/AsyncStorageDatabase.js +7 -68
- package/lib-esm/storage/adapter/AsyncStorageDatabase.js.map +1 -1
- package/lib-esm/storage/adapter/InMemoryStore.d.ts +1 -1
- package/lib-esm/storage/adapter/InMemoryStore.js +1 -52
- package/lib-esm/storage/adapter/InMemoryStore.js.map +1 -1
- package/lib-esm/storage/adapter/IndexedDBAdapter.d.ts +4 -2
- package/lib-esm/storage/adapter/IndexedDBAdapter.js +230 -367
- package/lib-esm/storage/adapter/IndexedDBAdapter.js.map +1 -1
- package/lib-esm/storage/adapter/getDefaultAdapter/index.js.map +1 -1
- package/lib-esm/storage/relationship.d.ts +140 -0
- package/lib-esm/storage/relationship.js +333 -0
- package/lib-esm/storage/relationship.js.map +1 -0
- package/lib-esm/storage/storage.d.ts +7 -6
- package/lib-esm/storage/storage.js +33 -101
- package/lib-esm/storage/storage.js.map +1 -1
- package/lib-esm/sync/datastoreConnectivity.js +1 -47
- package/lib-esm/sync/datastoreConnectivity.js.map +1 -1
- package/lib-esm/sync/index.js +4 -76
- package/lib-esm/sync/index.js.map +1 -1
- package/lib-esm/sync/merger.js +1 -67
- package/lib-esm/sync/merger.js.map +1 -1
- package/lib-esm/sync/outbox.js +1 -74
- package/lib-esm/sync/outbox.js.map +1 -1
- package/lib-esm/sync/processors/errorMaps.js +2 -32
- package/lib-esm/sync/processors/errorMaps.js.map +1 -1
- package/lib-esm/sync/processors/mutation.js +12 -93
- package/lib-esm/sync/processors/mutation.js.map +1 -1
- package/lib-esm/sync/processors/subscription.js +6 -69
- package/lib-esm/sync/processors/subscription.js.map +1 -1
- package/lib-esm/sync/processors/sync.js +2 -75
- package/lib-esm/sync/processors/sync.js.map +1 -1
- package/lib-esm/sync/utils.d.ts +1 -1
- package/lib-esm/sync/utils.js +32 -95
- package/lib-esm/sync/utils.js.map +1 -1
- package/lib-esm/types.d.ts +63 -10
- package/lib-esm/types.js +7 -38
- package/lib-esm/types.js.map +1 -1
- package/lib-esm/util.d.ts +39 -6
- package/lib-esm/util.js +171 -171
- package/lib-esm/util.js.map +1 -1
- package/package.json +21 -14
- package/src/authModeStrategies/multiAuthStrategy.ts +2 -2
- package/src/datastore/datastore.ts +699 -206
- package/src/index.ts +4 -0
- package/src/predicates/index.ts +143 -17
- package/src/predicates/next.ts +967 -0
- package/src/predicates/sort.ts +8 -2
- package/src/storage/adapter/AsyncStorageAdapter.ts +59 -181
- package/src/storage/adapter/AsyncStorageDatabase.ts +16 -15
- package/src/storage/adapter/InMemoryStore.ts +5 -2
- package/src/storage/adapter/IndexedDBAdapter.ts +169 -192
- package/src/storage/adapter/getDefaultAdapter/index.ts +2 -2
- package/src/storage/relationship.ts +272 -0
- package/src/storage/storage.ts +56 -37
- package/src/sync/datastoreConnectivity.ts +4 -4
- package/src/sync/index.ts +22 -28
- package/src/sync/merger.ts +1 -1
- package/src/sync/outbox.ts +6 -6
- package/src/sync/processors/errorMaps.ts +1 -1
- package/src/sync/processors/mutation.ts +23 -19
- package/src/sync/processors/subscription.ts +20 -16
- package/src/sync/processors/sync.ts +17 -17
- package/src/sync/utils.ts +42 -48
- package/src/types.ts +128 -16
- package/src/util.ts +108 -150
- package/build.js +0 -5
- package/dist/aws-amplify-datastore.js +0 -92787
- package/dist/aws-amplify-datastore.js.map +0 -1
- package/dist/aws-amplify-datastore.min.js +0 -66
- package/dist/aws-amplify-datastore.min.js.map +0 -1
- package/index.js +0 -7
- package/webpack.config.dev.js +0 -6
package/CHANGELOG.md
CHANGED
|
@@ -3,14 +3,6 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
## [3.14.4](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore@3.14.3...@aws-amplify/datastore@3.14.4) (2022-11-04)
|
|
7
|
-
|
|
8
|
-
**Note:** Version bump only for package @aws-amplify/datastore
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
6
|
## [3.14.3](https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/datastore@3.14.2...@aws-amplify/datastore@3.14.3) (2022-10-27)
|
|
15
7
|
|
|
16
8
|
**Note:** Version bump only for package @aws-amplify/datastore
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AuthModeStrategy, AmplifyContext } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Returns an array of auth modes to try based on the schema, model, and
|
|
4
|
+
* authenticated user (or lack thereof). Rules are sourced from `getAuthRules`
|
|
5
|
+
* and returned in the order they ought to be attempted.
|
|
6
|
+
*
|
|
7
|
+
* @see sortAuthRulesWithPriority
|
|
8
|
+
* @see getAuthRules
|
|
9
|
+
*
|
|
10
|
+
* @param param0 The `{schema, modelName}` to inspect.
|
|
11
|
+
* @returns A sorted array of auth modes to attempt.
|
|
12
|
+
*/
|
|
13
|
+
export declare const multiAuthStrategy: (amplifyContext: AmplifyContext) => AuthModeStrategy;
|
|
@@ -1,65 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
39
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
40
|
-
if (!m) return o;
|
|
41
|
-
var i = m.call(o), r, ar = [], e;
|
|
42
|
-
try {
|
|
43
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
44
|
-
}
|
|
45
|
-
catch (error) { e = { error: error }; }
|
|
46
|
-
finally {
|
|
47
|
-
try {
|
|
48
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
49
|
-
}
|
|
50
|
-
finally { if (e) throw e.error; }
|
|
51
|
-
}
|
|
52
|
-
return ar;
|
|
53
|
-
};
|
|
54
|
-
var __spread = (this && this.__spread) || function () {
|
|
55
|
-
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
|
|
56
|
-
return ar;
|
|
57
|
-
};
|
|
58
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
59
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
60
|
-
};
|
|
61
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
62
|
-
var
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var auth_1 = require("@aws-amplify/auth");
|
|
63
5
|
var api_graphql_1 = require("@aws-amplify/api-graphql");
|
|
64
6
|
var types_1 = require("../types");
|
|
65
7
|
function getProviderFromRule(rule) {
|
|
@@ -88,7 +30,7 @@ function sortAuthRulesWithPriority(rules) {
|
|
|
88
30
|
types_1.ModelAttributeAuthProvider.IAM,
|
|
89
31
|
types_1.ModelAttributeAuthProvider.API_KEY,
|
|
90
32
|
];
|
|
91
|
-
return __spread(rules).sort(function (a, b) {
|
|
33
|
+
return tslib_1.__spread(rules).sort(function (a, b) {
|
|
92
34
|
if (a.allow === b.allow) {
|
|
93
35
|
return (providerSortPriority.indexOf(getProviderFromRule(a)) -
|
|
94
36
|
providerSortPriority.indexOf(getProviderFromRule(b)));
|
|
@@ -167,13 +109,13 @@ function getAuthRules(_a) {
|
|
|
167
109
|
exports.multiAuthStrategy = function (amplifyContext) {
|
|
168
110
|
return function (_a) {
|
|
169
111
|
var schema = _a.schema, modelName = _a.modelName;
|
|
170
|
-
return __awaiter(void 0, void 0, void 0, function () {
|
|
112
|
+
return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
171
113
|
var currentUser, e_1, attributes, authAttribute, sortedRules;
|
|
172
114
|
var _b;
|
|
173
|
-
return __generator(this, function (_c) {
|
|
115
|
+
return tslib_1.__generator(this, function (_c) {
|
|
174
116
|
switch (_c.label) {
|
|
175
117
|
case 0:
|
|
176
|
-
amplifyContext.Auth = amplifyContext.Auth || auth_1.
|
|
118
|
+
amplifyContext.Auth = amplifyContext.Auth || auth_1.Auth;
|
|
177
119
|
_c.label = 1;
|
|
178
120
|
case 1:
|
|
179
121
|
_c.trys.push([1, 3, , 4]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiAuthStrategy.js","sourceRoot":"","sources":["../../src/authModeStrategies/multiAuthStrategy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"multiAuthStrategy.js","sourceRoot":"","sources":["../../src/authModeStrategies/multiAuthStrategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import Observable from 'zen-observable-ts';
|
|
2
|
+
import { PredicateAll } from '../predicates';
|
|
3
|
+
import { ConflictHandler, DataStoreConfig, NonModelTypeConstructor, ProducerPaginationInput, PersistentModel, PersistentModelConstructor, Schema, SubscriptionMessage, DataStoreSnapshot, TypeConstructorMap, ErrorHandler, ObserveQueryOptions, PersistentModelMetaData, IdentifierFieldOrIdentifierObject } from '../types';
|
|
4
|
+
import { RecursiveModelPredicateExtender, ModelPredicateExtender } from '../predicates/next';
|
|
5
|
+
export declare let syncClasses: TypeConstructorMap;
|
|
6
|
+
/**
|
|
7
|
+
* Describes whether and to what a model is attached for lazy loading purposes.
|
|
8
|
+
*/
|
|
9
|
+
declare enum ModelAttachment {
|
|
10
|
+
/**
|
|
11
|
+
* Model doesn't lazy load from any data source.
|
|
12
|
+
*
|
|
13
|
+
* Related entity properties provided at instantiation are returned
|
|
14
|
+
* via the respective lazy interfaces when their properties are invoked.
|
|
15
|
+
*/
|
|
16
|
+
Detached = "Detached",
|
|
17
|
+
/**
|
|
18
|
+
* Model lazy loads from the global DataStore.
|
|
19
|
+
*/
|
|
20
|
+
DataStore = "DataStore",
|
|
21
|
+
/**
|
|
22
|
+
* Demonstrative. Not yet implemented.
|
|
23
|
+
*/
|
|
24
|
+
API = "API"
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Registers a model instance against a data source (DataStore, API, or
|
|
28
|
+
* Detached/None).
|
|
29
|
+
*
|
|
30
|
+
* The API option is demonstrative. Lazy loading against API is not yet
|
|
31
|
+
* implemented.
|
|
32
|
+
*
|
|
33
|
+
* @param result A model instance or array of instances
|
|
34
|
+
* @param attachment A ModelAttachment data source
|
|
35
|
+
* @returns passes the `result` back through after attachment
|
|
36
|
+
*/
|
|
37
|
+
export declare function attached<T extends PersistentModel | PersistentModel[]>(result: T, attachment: ModelAttachment): T;
|
|
38
|
+
/**
|
|
39
|
+
* Determines what source a model instance should lazy load from.
|
|
40
|
+
*
|
|
41
|
+
* If the instace was never explicitly registered, it is detached by default.
|
|
42
|
+
*
|
|
43
|
+
* @param instance A model instance
|
|
44
|
+
*/
|
|
45
|
+
export declare const getAttachment: (instance: Readonly<Record<string, any>>) => ModelAttachment.Detached | ModelAttachment;
|
|
46
|
+
declare const initSchema: (userSchema: Schema) => Record<string, PersistentModelConstructor<any> | NonModelTypeConstructor<unknown>>;
|
|
47
|
+
/**
|
|
48
|
+
* Constructs a model and records it with its metadata in a weakset. Allows for
|
|
49
|
+
* the separate storage of core model fields and Amplify/DataStore metadata
|
|
50
|
+
* fields that the customer app does not want exposed.
|
|
51
|
+
*
|
|
52
|
+
* @param modelConstructor The model constructor.
|
|
53
|
+
* @param init Init data that would normally be passed to the constructor.
|
|
54
|
+
* @returns The initialized model.
|
|
55
|
+
*/
|
|
56
|
+
export declare type ModelInstanceCreator = typeof modelInstanceCreator;
|
|
57
|
+
declare function modelInstanceCreator<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, init: Partial<T>): T;
|
|
58
|
+
export declare class AsyncItem<T> extends Promise<T> {
|
|
59
|
+
}
|
|
60
|
+
export declare class AsyncCollection<T> implements AsyncIterable<T> {
|
|
61
|
+
private values;
|
|
62
|
+
constructor(values: Array<any> | Promise<Array<any>>);
|
|
63
|
+
[Symbol.asyncIterator](): AsyncIterator<T>;
|
|
64
|
+
toArray({ max, }?: {
|
|
65
|
+
max?: number;
|
|
66
|
+
}): Promise<T[]>;
|
|
67
|
+
}
|
|
68
|
+
declare class DataStore {
|
|
69
|
+
private Auth;
|
|
70
|
+
private API;
|
|
71
|
+
private Cache;
|
|
72
|
+
private amplifyConfig;
|
|
73
|
+
private authModeStrategy;
|
|
74
|
+
private conflictHandler;
|
|
75
|
+
private errorHandler;
|
|
76
|
+
private fullSyncInterval;
|
|
77
|
+
private initialized?;
|
|
78
|
+
private initReject;
|
|
79
|
+
private initResolve;
|
|
80
|
+
private maxRecordsToSync;
|
|
81
|
+
private storage?;
|
|
82
|
+
private sync?;
|
|
83
|
+
private syncPageSize;
|
|
84
|
+
private syncExpressions;
|
|
85
|
+
private syncPredicates;
|
|
86
|
+
private sessionId?;
|
|
87
|
+
private storageAdapter;
|
|
88
|
+
private amplifyContext;
|
|
89
|
+
private connectivityMonitor?;
|
|
90
|
+
/**
|
|
91
|
+
* **IMPORTANT!**
|
|
92
|
+
*
|
|
93
|
+
* Accumulator for background things that can **and MUST** be called when
|
|
94
|
+
* DataStore stops.
|
|
95
|
+
*
|
|
96
|
+
* These jobs **MUST** be *idempotent promises* that resolve ONLY
|
|
97
|
+
* once the intended jobs are completely finished and/or otherwise destroyed
|
|
98
|
+
* and cleaned up with ZERO outstanding:
|
|
99
|
+
*
|
|
100
|
+
* 1. side effects (e.g., state changes)
|
|
101
|
+
* 1. callbacks
|
|
102
|
+
* 1. subscriptions
|
|
103
|
+
* 1. calls to storage
|
|
104
|
+
* 1. *etc.*
|
|
105
|
+
*
|
|
106
|
+
* Methods that create pending promises, subscriptions, callbacks, or any
|
|
107
|
+
* type of side effect **MUST** be registered with the manager. And, a new
|
|
108
|
+
* manager must be created after each `exit()`.
|
|
109
|
+
*
|
|
110
|
+
* Failure to comply will put DataStore into a highly unpredictable state
|
|
111
|
+
* when it needs to stop or clear -- which occurs when restarting with new
|
|
112
|
+
* sync expressions, during testing, and potentially during app code
|
|
113
|
+
* recovery handling, etc..
|
|
114
|
+
*
|
|
115
|
+
* It is up to the discretion of each disposer whether to wait for job
|
|
116
|
+
* completion or to cancel operations and issue failures *as long as the
|
|
117
|
+
* disposer returns in a reasonable amount of time.*
|
|
118
|
+
*
|
|
119
|
+
* (Reasonable = *seconds*, not minutes.)
|
|
120
|
+
*/
|
|
121
|
+
private runningProcesses;
|
|
122
|
+
/**
|
|
123
|
+
* Indicates what state DataStore is in.
|
|
124
|
+
*
|
|
125
|
+
* Not [yet?] used for actual state management; but for messaging
|
|
126
|
+
* when errors occur, to help troubleshoot.
|
|
127
|
+
*/
|
|
128
|
+
private state;
|
|
129
|
+
getModuleName(): string;
|
|
130
|
+
/**
|
|
131
|
+
* Builds a function to capture `BackgroundManagerNotOpenError`'s to produce friendlier,
|
|
132
|
+
* more instructive errors for customers.
|
|
133
|
+
*
|
|
134
|
+
* @param operation The name of the operation (usually a Datastore method) the customer
|
|
135
|
+
* tried to call.
|
|
136
|
+
*/
|
|
137
|
+
handleAddProcError(operation: string): (err: Error) => never;
|
|
138
|
+
/**
|
|
139
|
+
* If not already done:
|
|
140
|
+
* 1. Attaches and initializes storage.
|
|
141
|
+
* 1. Loads the schema and records metadata.
|
|
142
|
+
* 1. If `this.amplifyConfig.aws_appsync_graphqlEndpoint` contains a URL,
|
|
143
|
+
* attaches a sync engine, starts it, and subscribes.
|
|
144
|
+
*/
|
|
145
|
+
start: () => Promise<void>;
|
|
146
|
+
query: {
|
|
147
|
+
<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, identifier: IdentifierFieldOrIdentifierObject<T, PersistentModelMetaData<T>>): Promise<T | undefined>;
|
|
148
|
+
<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, criteria?: RecursiveModelPredicateExtender<T> | typeof PredicateAll | null, paginationProducer?: ProducerPaginationInput<T>): Promise<T[]>;
|
|
149
|
+
};
|
|
150
|
+
save: <T extends Readonly<Record<string, any>>>(model: T, condition?: ModelPredicateExtender<T>) => Promise<T>;
|
|
151
|
+
setConflictHandler: (config: DataStoreConfig) => ConflictHandler;
|
|
152
|
+
setErrorHandler: (config: DataStoreConfig) => ErrorHandler;
|
|
153
|
+
delete: {
|
|
154
|
+
<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, identifier: IdentifierFieldOrIdentifierObject<T, PersistentModelMetaData<T>>): Promise<T[]>;
|
|
155
|
+
<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, condition: ModelPredicateExtender<T> | typeof PredicateAll): Promise<T[]>;
|
|
156
|
+
<T extends PersistentModel>(model: T, condition?: ModelPredicateExtender<T>): Promise<T>;
|
|
157
|
+
};
|
|
158
|
+
observe: {
|
|
159
|
+
(): Observable<SubscriptionMessage<PersistentModel>>;
|
|
160
|
+
<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, identifier: string): Observable<SubscriptionMessage<T>>;
|
|
161
|
+
<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, criteria?: RecursiveModelPredicateExtender<T> | typeof PredicateAll): Observable<SubscriptionMessage<T>>;
|
|
162
|
+
<T extends PersistentModel>(model: T): Observable<SubscriptionMessage<T>>;
|
|
163
|
+
};
|
|
164
|
+
observeQuery: {
|
|
165
|
+
<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, criteria?: RecursiveModelPredicateExtender<T> | typeof PredicateAll, paginationProducer?: ObserveQueryOptions<T>): Observable<DataStoreSnapshot<T>>;
|
|
166
|
+
};
|
|
167
|
+
configure: (config?: DataStoreConfig) => void;
|
|
168
|
+
/**
|
|
169
|
+
* Clears all data from storage and removes all data, schema info, other
|
|
170
|
+
* initialization details, and then stops DataStore.
|
|
171
|
+
*
|
|
172
|
+
* That said, reinitialization is required after clearing. This can be done
|
|
173
|
+
* by explicitiliy calling `start()` or any method that implicitly starts
|
|
174
|
+
* DataStore, such as `query()`, `save()`, or `delete()`.
|
|
175
|
+
*/
|
|
176
|
+
clear(): Promise<void>;
|
|
177
|
+
/**
|
|
178
|
+
* Stops all DataStore sync activities.
|
|
179
|
+
*
|
|
180
|
+
* TODO: "Waits for graceful termination of
|
|
181
|
+
* running queries and terminates subscriptions."
|
|
182
|
+
*/
|
|
183
|
+
stop(this: InstanceType<typeof DataStore>): Promise<void>;
|
|
184
|
+
/**
|
|
185
|
+
* Validates given pagination input from a query and creates a pagination
|
|
186
|
+
* argument for use against the storage layer.
|
|
187
|
+
*
|
|
188
|
+
* @param modelDefinition
|
|
189
|
+
* @param paginationProducer
|
|
190
|
+
*/
|
|
191
|
+
private processPagination;
|
|
192
|
+
/**
|
|
193
|
+
* Examines the configured `syncExpressions` and produces a WeakMap of
|
|
194
|
+
* SchemaModel -> predicate to use during sync.
|
|
195
|
+
*/
|
|
196
|
+
private processSyncExpressions;
|
|
197
|
+
private createFromCondition;
|
|
198
|
+
private unwrapPromise;
|
|
199
|
+
private weakMapFromEntries;
|
|
200
|
+
/**
|
|
201
|
+
* A session ID to allow CMS to open databases against multiple apps.
|
|
202
|
+
* This session ID is only expected be set by AWS Amplify Studio.
|
|
203
|
+
*/
|
|
204
|
+
private retrieveSessionId;
|
|
205
|
+
}
|
|
206
|
+
declare const instance: DataStore;
|
|
207
|
+
export { DataStore as DataStoreClass, initSchema, instance as DataStore };
|