@aws-amplify/datastore 4.7.5 → 5.0.1-console-preview.4208d73.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/README.md +4 -0
- package/lib/authModeStrategies/defaultAuthStrategy.js +3 -2
- package/lib/authModeStrategies/index.js +3 -3
- package/lib/authModeStrategies/multiAuthStrategy.js +81 -24
- package/lib/datastore/datastore.d.ts +3 -4
- package/lib/datastore/datastore.js +361 -227
- package/lib/index.d.ts +1 -1
- package/lib/index.js +25 -12
- package/lib/predicates/index.js +46 -12
- package/lib/predicates/next.d.ts +2 -2
- package/lib/predicates/next.js +172 -74
- package/lib/predicates/sort.js +3 -4
- package/lib/ssr/index.js +1 -1
- package/lib/storage/adapter/AsyncStorageAdapter.js +240 -128
- package/lib/storage/adapter/AsyncStorageDatabase.js +100 -39
- package/lib/storage/adapter/InMemoryStore.js +68 -17
- package/lib/storage/adapter/InMemoryStore.native.js +5 -3
- package/lib/storage/adapter/IndexedDBAdapter.js +355 -199
- package/lib/storage/adapter/StorageAdapterBase.js +154 -85
- package/lib/storage/adapter/getDefaultAdapter/index.js +8 -9
- package/lib/storage/adapter/getDefaultAdapter/index.native.js +4 -3
- package/lib/storage/adapter/index.js +0 -1
- package/lib/storage/relationship.js +31 -21
- package/lib/storage/storage.d.ts +3 -3
- package/lib/storage/storage.js +143 -61
- package/lib/sync/datastoreConnectivity.d.ts +1 -1
- package/lib/sync/datastoreConnectivity.js +57 -9
- package/lib/sync/datastoreReachability/index.js +3 -3
- package/lib/sync/datastoreReachability/index.native.js +7 -5
- package/lib/sync/index.d.ts +1 -1
- package/lib/sync/index.js +193 -125
- package/lib/sync/merger.js +81 -10
- package/lib/sync/outbox.js +101 -30
- package/lib/sync/processors/errorMaps.d.ts +1 -1
- package/lib/sync/processors/errorMaps.js +41 -6
- package/lib/sync/processors/mutation.d.ts +1 -1
- package/lib/sync/processors/mutation.js +192 -101
- package/lib/sync/processors/subscription.d.ts +4 -1
- package/lib/sync/processors/subscription.js +190 -178
- package/lib/sync/processors/sync.d.ts +1 -1
- package/lib/sync/processors/sync.js +113 -47
- package/lib/sync/utils.d.ts +4 -4
- package/lib/sync/utils.js +162 -81
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/lib/types.d.ts +138 -140
- package/lib/types.js +40 -5
- package/lib/util.d.ts +9 -17
- package/lib/util.js +216 -100
- package/lib-esm/authModeStrategies/defaultAuthStrategy.js +0 -1
- package/lib-esm/authModeStrategies/index.js +0 -1
- package/lib-esm/authModeStrategies/multiAuthStrategy.js +76 -21
- package/lib-esm/datastore/datastore.d.ts +3 -4
- package/lib-esm/datastore/datastore.js +206 -77
- package/lib-esm/index.d.ts +1 -1
- package/lib-esm/index.js +0 -1
- package/lib-esm/predicates/index.js +40 -7
- package/lib-esm/predicates/next.d.ts +2 -2
- package/lib-esm/predicates/next.js +148 -52
- package/lib-esm/predicates/sort.js +2 -4
- package/lib-esm/ssr/index.js +0 -1
- package/lib-esm/storage/adapter/AsyncStorageAdapter.js +203 -95
- package/lib-esm/storage/adapter/AsyncStorageDatabase.js +66 -5
- package/lib-esm/storage/adapter/InMemoryStore.js +52 -2
- package/lib-esm/storage/adapter/InMemoryStore.native.js +0 -1
- package/lib-esm/storage/adapter/IndexedDBAdapter.js +271 -138
- package/lib-esm/storage/adapter/StorageAdapterBase.js +130 -62
- package/lib-esm/storage/adapter/getDefaultAdapter/index.js +2 -5
- package/lib-esm/storage/adapter/getDefaultAdapter/index.native.js +0 -1
- package/lib-esm/storage/adapter/index.js +1 -1
- package/lib-esm/storage/relationship.js +27 -18
- package/lib-esm/storage/storage.d.ts +3 -3
- package/lib-esm/storage/storage.js +87 -9
- package/lib-esm/sync/datastoreConnectivity.d.ts +1 -1
- package/lib-esm/sync/datastoreConnectivity.js +48 -3
- package/lib-esm/sync/datastoreReachability/index.js +1 -2
- package/lib-esm/sync/datastoreReachability/index.native.js +1 -2
- package/lib-esm/sync/index.d.ts +1 -1
- package/lib-esm/sync/index.js +136 -72
- package/lib-esm/sync/merger.js +73 -3
- package/lib-esm/sync/outbox.js +75 -5
- package/lib-esm/sync/processors/errorMaps.d.ts +1 -1
- package/lib-esm/sync/processors/errorMaps.js +39 -5
- package/lib-esm/sync/processors/mutation.d.ts +1 -1
- package/lib-esm/sync/processors/mutation.js +130 -44
- package/lib-esm/sync/processors/subscription.d.ts +4 -1
- package/lib-esm/sync/processors/subscription.js +134 -126
- package/lib-esm/sync/processors/sync.d.ts +1 -1
- package/lib-esm/sync/processors/sync.js +74 -12
- package/lib-esm/sync/utils.d.ts +4 -4
- package/lib-esm/sync/utils.js +135 -55
- package/lib-esm/tsconfig.tsbuildinfo +1 -0
- package/lib-esm/types.d.ts +138 -140
- package/lib-esm/types.js +36 -2
- package/lib-esm/util.d.ts +9 -17
- package/lib-esm/util.js +96 -16
- package/package.json +139 -132
- package/src/authModeStrategies/multiAuthStrategy.ts +11 -12
- package/src/datastore/datastore.ts +32 -25
- package/src/predicates/sort.ts +3 -1
- package/src/storage/adapter/InMemoryStore.ts +1 -1
- package/src/storage/adapter/IndexedDBAdapter.ts +1 -1
- package/src/storage/adapter/StorageAdapterBase.ts +1 -1
- package/src/storage/adapter/getDefaultAdapter/index.ts +2 -3
- package/src/storage/storage.ts +1 -1
- package/src/sync/datastoreConnectivity.ts +2 -2
- package/src/sync/datastoreReachability/index.native.ts +1 -1
- package/src/sync/datastoreReachability/index.ts +1 -1
- package/src/sync/index.ts +69 -78
- package/src/sync/processors/mutation.ts +16 -10
- package/src/sync/processors/subscription.ts +55 -127
- package/src/sync/processors/sync.ts +8 -4
- package/src/sync/utils.ts +7 -8
- package/src/types.ts +4 -8
- package/src/util.ts +5 -6
- package/lib/.tsbuildinfo +0 -3
- package/lib/authModeStrategies/defaultAuthStrategy.js.map +0 -1
- package/lib/authModeStrategies/index.js.map +0 -1
- package/lib/authModeStrategies/multiAuthStrategy.js.map +0 -1
- package/lib/datastore/datastore.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/predicates/index.js.map +0 -1
- package/lib/predicates/next.js.map +0 -1
- package/lib/predicates/sort.js.map +0 -1
- package/lib/ssr/index.js.map +0 -1
- package/lib/storage/adapter/AsyncStorageAdapter.js.map +0 -1
- package/lib/storage/adapter/AsyncStorageDatabase.js.map +0 -1
- package/lib/storage/adapter/InMemoryStore.js.map +0 -1
- package/lib/storage/adapter/InMemoryStore.native.js.map +0 -1
- package/lib/storage/adapter/IndexedDBAdapter.js.map +0 -1
- package/lib/storage/adapter/StorageAdapterBase.js.map +0 -1
- package/lib/storage/adapter/getDefaultAdapter/index.js.map +0 -1
- package/lib/storage/adapter/getDefaultAdapter/index.native.js.map +0 -1
- package/lib/storage/adapter/index.js.map +0 -1
- package/lib/storage/relationship.js.map +0 -1
- package/lib/storage/storage.js.map +0 -1
- package/lib/sync/datastoreConnectivity.js.map +0 -1
- package/lib/sync/datastoreReachability/index.js.map +0 -1
- package/lib/sync/datastoreReachability/index.native.js.map +0 -1
- package/lib/sync/index.js.map +0 -1
- package/lib/sync/merger.js.map +0 -1
- package/lib/sync/outbox.js.map +0 -1
- package/lib/sync/processors/errorMaps.js.map +0 -1
- package/lib/sync/processors/mutation.js.map +0 -1
- package/lib/sync/processors/subscription.js.map +0 -1
- package/lib/sync/processors/sync.js.map +0 -1
- package/lib/sync/utils.js.map +0 -1
- package/lib/types.js.map +0 -1
- package/lib/util.js.map +0 -1
- package/lib-esm/.tsbuildinfo +0 -3
- package/lib-esm/authModeStrategies/defaultAuthStrategy.js.map +0 -1
- package/lib-esm/authModeStrategies/index.js.map +0 -1
- package/lib-esm/authModeStrategies/multiAuthStrategy.js.map +0 -1
- package/lib-esm/datastore/datastore.js.map +0 -1
- package/lib-esm/index.js.map +0 -1
- package/lib-esm/predicates/index.js.map +0 -1
- package/lib-esm/predicates/next.js.map +0 -1
- package/lib-esm/predicates/sort.js.map +0 -1
- package/lib-esm/ssr/index.js.map +0 -1
- package/lib-esm/storage/adapter/AsyncStorageAdapter.js.map +0 -1
- package/lib-esm/storage/adapter/AsyncStorageDatabase.js.map +0 -1
- package/lib-esm/storage/adapter/InMemoryStore.js.map +0 -1
- package/lib-esm/storage/adapter/InMemoryStore.native.js.map +0 -1
- package/lib-esm/storage/adapter/IndexedDBAdapter.js.map +0 -1
- package/lib-esm/storage/adapter/StorageAdapterBase.js.map +0 -1
- package/lib-esm/storage/adapter/getDefaultAdapter/index.js.map +0 -1
- package/lib-esm/storage/adapter/getDefaultAdapter/index.native.js.map +0 -1
- package/lib-esm/storage/adapter/index.js.map +0 -1
- package/lib-esm/storage/relationship.js.map +0 -1
- package/lib-esm/storage/storage.js.map +0 -1
- package/lib-esm/sync/datastoreConnectivity.js.map +0 -1
- package/lib-esm/sync/datastoreReachability/index.js.map +0 -1
- package/lib-esm/sync/datastoreReachability/index.native.js.map +0 -1
- package/lib-esm/sync/index.js.map +0 -1
- package/lib-esm/sync/merger.js.map +0 -1
- package/lib-esm/sync/outbox.js.map +0 -1
- package/lib-esm/sync/processors/errorMaps.js.map +0 -1
- package/lib-esm/sync/processors/mutation.js.map +0 -1
- package/lib-esm/sync/processors/subscription.js.map +0 -1
- package/lib-esm/sync/processors/sync.js.map +0 -1
- package/lib-esm/sync/utils.js.map +0 -1
- package/lib-esm/types.js.map +0 -1
- package/lib-esm/util.js.map +0 -1
package/lib/util.js
CHANGED
|
@@ -1,14 +1,96 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
+
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;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
50
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
51
|
+
if (!m) return o;
|
|
52
|
+
var i = m.call(o), r, ar = [], e;
|
|
53
|
+
try {
|
|
54
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
55
|
+
}
|
|
56
|
+
catch (error) { e = { error: error }; }
|
|
57
|
+
finally {
|
|
58
|
+
try {
|
|
59
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
60
|
+
}
|
|
61
|
+
finally { if (e) throw e.error; }
|
|
62
|
+
}
|
|
63
|
+
return ar;
|
|
64
|
+
};
|
|
65
|
+
var __values = (this && this.__values) || function(o) {
|
|
66
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
67
|
+
if (m) return m.call(o);
|
|
68
|
+
if (o && typeof o.length === "number") return {
|
|
69
|
+
next: function () {
|
|
70
|
+
if (o && i >= o.length) o = void 0;
|
|
71
|
+
return { value: o && o[i++], done: !o };
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
75
|
+
};
|
|
76
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
77
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
78
|
+
if (ar || !(i in from)) {
|
|
79
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
80
|
+
ar[i] = from[i];
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
84
|
+
};
|
|
2
85
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
86
|
+
exports.getIndexFromAssociation = exports.getIndex = exports.establishRelationAndKeys = exports.isIdOptionallyManaged = exports.isIdManaged = exports.extractPrimaryKeysAndValues = exports.extractPrimaryKeyValues = exports.extractPrimaryKeyFieldNames = exports.extractKeyIfExists = exports.processCompositeKeys = exports.getStorename = exports.mergePatches = exports.DeferredCallbackResolver = exports.DeferredPromise = exports.isAWSIPAddress = exports.isAWSPhone = exports.isAWSURL = exports.isAWSJSON = exports.isAWSEmail = exports.isAWSTimestamp = exports.isAWSDateTime = exports.isAWSTime = exports.isAWSDate = exports.asyncFilter = exports.asyncEvery = exports.asyncSome = exports.inMemoryPagination = exports.valuesEqual = exports.sortCompareFunction = exports.getNow = exports.monotonicUlidFactory = exports.isSafariCompatabilityMode = exports.isPrivateMode = exports.traverseModel = exports.isNonModelConstructor = exports.registerNonModelClass = exports.isModelConstructor = exports.validatePredicateField = exports.validatePredicate = exports.isNullOrUndefined = exports.exhaustiveCheck = exports.DATASTORE = exports.STORAGE = exports.SYNC = exports.USER = exports.NAMESPACES = exports.errorMessages = exports.IDENTIFIER_KEY_SEPARATOR = exports.DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR = exports.ID = void 0;
|
|
87
|
+
exports.getTimestampFields = exports.getIndexKeys = exports.keysEqual = exports.indexNameFromKeys = exports.extractTargetNamesFromSrc = void 0;
|
|
4
88
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
5
89
|
// SPDX-License-Identifier: Apache-2.0
|
|
6
|
-
var buffer_1 = require("buffer");
|
|
7
90
|
var ulid_1 = require("ulid");
|
|
8
91
|
var uuid_1 = require("uuid");
|
|
9
92
|
var immer_1 = require("immer");
|
|
10
93
|
var types_1 = require("./types");
|
|
11
|
-
var amazon_cognito_identity_js_1 = require("amazon-cognito-identity-js");
|
|
12
94
|
var predicates_1 = require("./predicates");
|
|
13
95
|
exports.ID = 'id';
|
|
14
96
|
/**
|
|
@@ -46,16 +128,18 @@ var SYNC = NAMESPACES.SYNC;
|
|
|
46
128
|
exports.SYNC = SYNC;
|
|
47
129
|
var STORAGE = NAMESPACES.STORAGE;
|
|
48
130
|
exports.STORAGE = STORAGE;
|
|
49
|
-
|
|
131
|
+
var exhaustiveCheck = function (obj, throwOnError) {
|
|
50
132
|
if (throwOnError === void 0) { throwOnError = true; }
|
|
51
133
|
if (throwOnError) {
|
|
52
|
-
throw new Error("Invalid "
|
|
134
|
+
throw new Error("Invalid ".concat(obj));
|
|
53
135
|
}
|
|
54
136
|
};
|
|
55
|
-
exports.
|
|
137
|
+
exports.exhaustiveCheck = exhaustiveCheck;
|
|
138
|
+
var isNullOrUndefined = function (val) {
|
|
56
139
|
return typeof val === 'undefined' || val === undefined || val === null;
|
|
57
140
|
};
|
|
58
|
-
exports.
|
|
141
|
+
exports.isNullOrUndefined = isNullOrUndefined;
|
|
142
|
+
var validatePredicate = function (model, groupType, predicatesOrGroups) {
|
|
59
143
|
var filterType;
|
|
60
144
|
var isNegation = false;
|
|
61
145
|
if (predicatesOrGroups.length === 0) {
|
|
@@ -73,23 +157,24 @@ exports.validatePredicate = function (model, groupType, predicatesOrGroups) {
|
|
|
73
157
|
filterType = 'some';
|
|
74
158
|
break;
|
|
75
159
|
default:
|
|
76
|
-
throw new Error("Invalid "
|
|
160
|
+
throw new Error("Invalid ".concat(groupType));
|
|
77
161
|
}
|
|
78
162
|
var result = predicatesOrGroups[filterType](function (predicateOrGroup) {
|
|
79
|
-
if (types_1.isPredicateObj(predicateOrGroup)) {
|
|
163
|
+
if ((0, types_1.isPredicateObj)(predicateOrGroup)) {
|
|
80
164
|
var field = predicateOrGroup.field, operator = predicateOrGroup.operator, operand = predicateOrGroup.operand;
|
|
81
165
|
var value = model[field];
|
|
82
|
-
return exports.validatePredicateField(value, operator, operand);
|
|
166
|
+
return (0, exports.validatePredicateField)(value, operator, operand);
|
|
83
167
|
}
|
|
84
|
-
if (types_1.isPredicateGroup(predicateOrGroup)) {
|
|
168
|
+
if ((0, types_1.isPredicateGroup)(predicateOrGroup)) {
|
|
85
169
|
var type = predicateOrGroup.type, predicates = predicateOrGroup.predicates;
|
|
86
|
-
return exports.validatePredicate(model, type, predicates);
|
|
170
|
+
return (0, exports.validatePredicate)(model, type, predicates);
|
|
87
171
|
}
|
|
88
172
|
throw new Error('Not a predicate or group');
|
|
89
173
|
});
|
|
90
174
|
return isNegation ? !result : result;
|
|
91
175
|
};
|
|
92
|
-
exports.
|
|
176
|
+
exports.validatePredicate = validatePredicate;
|
|
177
|
+
var validatePredicateField = function (value, operator, operand) {
|
|
93
178
|
switch (operator) {
|
|
94
179
|
case 'ne':
|
|
95
180
|
return value !== operand;
|
|
@@ -104,34 +189,37 @@ exports.validatePredicateField = function (value, operator, operand) {
|
|
|
104
189
|
case 'gt':
|
|
105
190
|
return value > operand;
|
|
106
191
|
case 'between':
|
|
107
|
-
var _c =
|
|
192
|
+
var _c = __read(operand, 2), min = _c[0], max = _c[1];
|
|
108
193
|
return value >= min && value <= max;
|
|
109
194
|
case 'beginsWith':
|
|
110
|
-
return (!exports.isNullOrUndefined(value) &&
|
|
195
|
+
return (!(0, exports.isNullOrUndefined)(value) &&
|
|
111
196
|
value.startsWith(operand));
|
|
112
197
|
case 'contains':
|
|
113
|
-
return (!exports.isNullOrUndefined(value) &&
|
|
198
|
+
return (!(0, exports.isNullOrUndefined)(value) &&
|
|
114
199
|
value.indexOf(operand) > -1);
|
|
115
200
|
case 'notContains':
|
|
116
|
-
return (exports.isNullOrUndefined(value) ||
|
|
201
|
+
return ((0, exports.isNullOrUndefined)(value) ||
|
|
117
202
|
value.indexOf(operand) === -1);
|
|
118
203
|
default:
|
|
119
204
|
return false;
|
|
120
205
|
}
|
|
121
206
|
};
|
|
122
|
-
exports.
|
|
207
|
+
exports.validatePredicateField = validatePredicateField;
|
|
208
|
+
var isModelConstructor = function (obj) {
|
|
123
209
|
return (obj && typeof obj.copyOf === 'function');
|
|
124
210
|
};
|
|
211
|
+
exports.isModelConstructor = isModelConstructor;
|
|
125
212
|
var nonModelClasses = new WeakSet();
|
|
126
213
|
function registerNonModelClass(clazz) {
|
|
127
214
|
nonModelClasses.add(clazz);
|
|
128
215
|
}
|
|
129
216
|
exports.registerNonModelClass = registerNonModelClass;
|
|
130
|
-
|
|
217
|
+
var isNonModelConstructor = function (obj) {
|
|
131
218
|
return nonModelClasses.has(obj);
|
|
132
219
|
};
|
|
220
|
+
exports.isNonModelConstructor = isNonModelConstructor;
|
|
133
221
|
var topologicallySortedModels = new WeakMap();
|
|
134
|
-
|
|
222
|
+
var traverseModel = function (srcModelName, instance, namespace, modelInstanceCreator, getModelConstructorByModelName) {
|
|
135
223
|
var modelConstructor = getModelConstructorByModelName(namespace.name, srcModelName);
|
|
136
224
|
var result = [];
|
|
137
225
|
var newInstance = modelConstructor.copyOf(instance, function () { });
|
|
@@ -149,17 +237,18 @@ exports.traverseModel = function (srcModelName, instance, namespace, modelInstan
|
|
|
149
237
|
});
|
|
150
238
|
return result;
|
|
151
239
|
};
|
|
240
|
+
exports.traverseModel = traverseModel;
|
|
152
241
|
var privateModeCheckResult;
|
|
153
|
-
|
|
242
|
+
var isPrivateMode = function () {
|
|
154
243
|
return new Promise(function (resolve) {
|
|
155
|
-
var dbname = uuid_1.v4();
|
|
244
|
+
var dbname = (0, uuid_1.v4)();
|
|
156
245
|
var db;
|
|
157
246
|
var isPrivate = function () {
|
|
158
247
|
privateModeCheckResult = false;
|
|
159
248
|
resolve(true);
|
|
160
249
|
};
|
|
161
|
-
var isNotPrivate = function () { return
|
|
162
|
-
return
|
|
250
|
+
var isNotPrivate = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
251
|
+
return __generator(this, function (_c) {
|
|
163
252
|
switch (_c.label) {
|
|
164
253
|
case 0:
|
|
165
254
|
if (!(db && db.result && typeof db.result.close === 'function')) return [3 /*break*/, 2];
|
|
@@ -188,6 +277,7 @@ exports.isPrivateMode = function () {
|
|
|
188
277
|
db.onsuccess = isNotPrivate;
|
|
189
278
|
});
|
|
190
279
|
};
|
|
280
|
+
exports.isPrivateMode = isPrivateMode;
|
|
191
281
|
var safariCompatabilityModeResult;
|
|
192
282
|
/**
|
|
193
283
|
* Whether the browser's implementation of IndexedDB breaks on array lookups
|
|
@@ -199,13 +289,13 @@ var safariCompatabilityModeResult;
|
|
|
199
289
|
* In all known, modern Safari browsers as of Q4 2022, the query against an index like
|
|
200
290
|
* this will *always* return `undefined`. So, the index needs to be created as a scalar.
|
|
201
291
|
*/
|
|
202
|
-
|
|
292
|
+
var isSafariCompatabilityMode = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
203
293
|
var dbName_1, storeName_1, indexName_1, db_1, rwTx, rwStore, result, error_1;
|
|
204
|
-
return
|
|
294
|
+
return __generator(this, function (_c) {
|
|
205
295
|
switch (_c.label) {
|
|
206
296
|
case 0:
|
|
207
297
|
_c.trys.push([0, 6, , 7]);
|
|
208
|
-
dbName_1 = uuid_1.v4();
|
|
298
|
+
dbName_1 = (0, uuid_1.v4)();
|
|
209
299
|
storeName_1 = 'indexedDBFeatureProbeStore';
|
|
210
300
|
indexName_1 = 'idx';
|
|
211
301
|
if (indexedDB === null)
|
|
@@ -277,12 +367,14 @@ exports.isSafariCompatabilityMode = function () { return tslib_1.__awaiter(void
|
|
|
277
367
|
}
|
|
278
368
|
});
|
|
279
369
|
}); };
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
370
|
+
exports.isSafariCompatabilityMode = isSafariCompatabilityMode;
|
|
371
|
+
// TODO(v6): refactor this random number logic auth -> core
|
|
372
|
+
// const randomBytes = (nBytes: number): Buffer => {
|
|
373
|
+
// return Buffer.from(new WordArray().random(nBytes).toString(), 'hex');
|
|
374
|
+
// };
|
|
375
|
+
var prng = function () { return 10 / 0xff; };
|
|
284
376
|
function monotonicUlidFactory(seed) {
|
|
285
|
-
var ulid = ulid_1.monotonicFactory(prng);
|
|
377
|
+
var ulid = (0, ulid_1.monotonicFactory)(prng);
|
|
286
378
|
return function () {
|
|
287
379
|
return ulid(seed);
|
|
288
380
|
};
|
|
@@ -317,7 +409,7 @@ function sortCompareFunction(sortPredicates) {
|
|
|
317
409
|
try {
|
|
318
410
|
// enable multi-field sort by iterating over predicates until
|
|
319
411
|
// a comparison returns -1 or 1
|
|
320
|
-
for (var sortPredicates_1 =
|
|
412
|
+
for (var sortPredicates_1 = __values(sortPredicates), sortPredicates_1_1 = sortPredicates_1.next(); !sortPredicates_1_1.done; sortPredicates_1_1 = sortPredicates_1.next()) {
|
|
321
413
|
var predicate = sortPredicates_1_1.value;
|
|
322
414
|
var field = predicate.field, sortDirection = predicate.sortDirection;
|
|
323
415
|
// reverse result when direction is descending
|
|
@@ -372,8 +464,8 @@ function valuesEqual(valA, valB, nullish) {
|
|
|
372
464
|
return false;
|
|
373
465
|
}
|
|
374
466
|
if (a instanceof Set && b instanceof Set) {
|
|
375
|
-
a =
|
|
376
|
-
b =
|
|
467
|
+
a = __spreadArray([], __read(a), false);
|
|
468
|
+
b = __spreadArray([], __read(b), false);
|
|
377
469
|
}
|
|
378
470
|
if (a instanceof Map && b instanceof Map) {
|
|
379
471
|
a = Object.fromEntries(a);
|
|
@@ -390,7 +482,7 @@ function valuesEqual(valA, valB, nullish) {
|
|
|
390
482
|
// we want to iterate through bKeys
|
|
391
483
|
var keys = aKeys.length >= bKeys.length ? aKeys : bKeys;
|
|
392
484
|
try {
|
|
393
|
-
for (var keys_1 =
|
|
485
|
+
for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {
|
|
394
486
|
var key = keys_1_1.value;
|
|
395
487
|
var aVal = a[key];
|
|
396
488
|
var bVal = b[key];
|
|
@@ -441,14 +533,14 @@ exports.inMemoryPagination = inMemoryPagination;
|
|
|
441
533
|
* @returns A `Promise<boolean>`, `true` if "some" items match; `false` otherwise.
|
|
442
534
|
*/
|
|
443
535
|
function asyncSome(items, matches) {
|
|
444
|
-
return
|
|
536
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
445
537
|
var items_1, items_1_1, item, e_3_1;
|
|
446
538
|
var e_3, _c;
|
|
447
|
-
return
|
|
539
|
+
return __generator(this, function (_d) {
|
|
448
540
|
switch (_d.label) {
|
|
449
541
|
case 0:
|
|
450
542
|
_d.trys.push([0, 5, 6, 7]);
|
|
451
|
-
items_1 =
|
|
543
|
+
items_1 = __values(items), items_1_1 = items_1.next();
|
|
452
544
|
_d.label = 1;
|
|
453
545
|
case 1:
|
|
454
546
|
if (!!items_1_1.done) return [3 /*break*/, 4];
|
|
@@ -487,14 +579,14 @@ exports.asyncSome = asyncSome;
|
|
|
487
579
|
* @returns A `Promise<boolean>`, `true` if every item matches; `false` otherwise.
|
|
488
580
|
*/
|
|
489
581
|
function asyncEvery(items, matches) {
|
|
490
|
-
return
|
|
582
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
491
583
|
var items_2, items_2_1, item, e_4_1;
|
|
492
584
|
var e_4, _c;
|
|
493
|
-
return
|
|
585
|
+
return __generator(this, function (_d) {
|
|
494
586
|
switch (_d.label) {
|
|
495
587
|
case 0:
|
|
496
588
|
_d.trys.push([0, 5, 6, 7]);
|
|
497
|
-
items_2 =
|
|
589
|
+
items_2 = __values(items), items_2_1 = items_2.next();
|
|
498
590
|
_d.label = 1;
|
|
499
591
|
case 1:
|
|
500
592
|
if (!!items_2_1.done) return [3 /*break*/, 4];
|
|
@@ -534,17 +626,17 @@ exports.asyncEvery = asyncEvery;
|
|
|
534
626
|
* @returns A `Promise<T>` of matching items.
|
|
535
627
|
*/
|
|
536
628
|
function asyncFilter(items, matches) {
|
|
537
|
-
return
|
|
629
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
538
630
|
var results, items_3, items_3_1, item, e_5_1;
|
|
539
631
|
var e_5, _c;
|
|
540
|
-
return
|
|
632
|
+
return __generator(this, function (_d) {
|
|
541
633
|
switch (_d.label) {
|
|
542
634
|
case 0:
|
|
543
635
|
results = [];
|
|
544
636
|
_d.label = 1;
|
|
545
637
|
case 1:
|
|
546
638
|
_d.trys.push([1, 6, 7, 8]);
|
|
547
|
-
items_3 =
|
|
639
|
+
items_3 = __values(items), items_3_1 = items_3.next();
|
|
548
640
|
_d.label = 2;
|
|
549
641
|
case 2:
|
|
550
642
|
if (!!items_3_1.done) return [3 /*break*/, 5];
|
|
@@ -575,22 +667,27 @@ function asyncFilter(items, matches) {
|
|
|
575
667
|
});
|
|
576
668
|
}
|
|
577
669
|
exports.asyncFilter = asyncFilter;
|
|
578
|
-
|
|
670
|
+
var isAWSDate = function (val) {
|
|
579
671
|
return !!/^\d{4}-\d{2}-\d{2}(Z|[+-]\d{2}:\d{2}($|:\d{2}))?$/.exec(val);
|
|
580
672
|
};
|
|
581
|
-
exports.
|
|
673
|
+
exports.isAWSDate = isAWSDate;
|
|
674
|
+
var isAWSTime = function (val) {
|
|
582
675
|
return !!/^\d{2}:\d{2}(:\d{2}(.\d+)?)?(Z|[+-]\d{2}:\d{2}($|:\d{2}))?$/.exec(val);
|
|
583
676
|
};
|
|
584
|
-
exports.
|
|
677
|
+
exports.isAWSTime = isAWSTime;
|
|
678
|
+
var isAWSDateTime = function (val) {
|
|
585
679
|
return !!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2}(.\d+)?)?(Z|[+-]\d{2}:\d{2}($|:\d{2}))?$/.exec(val);
|
|
586
680
|
};
|
|
587
|
-
exports.
|
|
681
|
+
exports.isAWSDateTime = isAWSDateTime;
|
|
682
|
+
var isAWSTimestamp = function (val) {
|
|
588
683
|
return !!/^\d+$/.exec(String(val));
|
|
589
684
|
};
|
|
590
|
-
exports.
|
|
685
|
+
exports.isAWSTimestamp = isAWSTimestamp;
|
|
686
|
+
var isAWSEmail = function (val) {
|
|
591
687
|
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);
|
|
592
688
|
};
|
|
593
|
-
exports.
|
|
689
|
+
exports.isAWSEmail = isAWSEmail;
|
|
690
|
+
var isAWSJSON = function (val) {
|
|
594
691
|
try {
|
|
595
692
|
JSON.parse(val);
|
|
596
693
|
return true;
|
|
@@ -599,7 +696,8 @@ exports.isAWSJSON = function (val) {
|
|
|
599
696
|
return false;
|
|
600
697
|
}
|
|
601
698
|
};
|
|
602
|
-
exports.
|
|
699
|
+
exports.isAWSJSON = isAWSJSON;
|
|
700
|
+
var isAWSURL = function (val) {
|
|
603
701
|
try {
|
|
604
702
|
return !!new URL(val);
|
|
605
703
|
}
|
|
@@ -607,12 +705,15 @@ exports.isAWSURL = function (val) {
|
|
|
607
705
|
return false;
|
|
608
706
|
}
|
|
609
707
|
};
|
|
610
|
-
exports.
|
|
708
|
+
exports.isAWSURL = isAWSURL;
|
|
709
|
+
var isAWSPhone = function (val) {
|
|
611
710
|
return !!/^\+?\d[\d\s-]+$/.exec(val);
|
|
612
711
|
};
|
|
613
|
-
exports.
|
|
712
|
+
exports.isAWSPhone = isAWSPhone;
|
|
713
|
+
var isAWSIPAddress = function (val) {
|
|
614
714
|
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);
|
|
615
715
|
};
|
|
716
|
+
exports.isAWSIPAddress = isAWSIPAddress;
|
|
616
717
|
var DeferredPromise = /** @class */ (function () {
|
|
617
718
|
function DeferredPromise() {
|
|
618
719
|
var self = this;
|
|
@@ -646,9 +747,9 @@ var DeferredCallbackResolver = /** @class */ (function () {
|
|
|
646
747
|
});
|
|
647
748
|
};
|
|
648
749
|
DeferredCallbackResolver.prototype.racePromises = function () {
|
|
649
|
-
return
|
|
750
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
650
751
|
var winner, err_1;
|
|
651
|
-
return
|
|
752
|
+
return __generator(this, function (_c) {
|
|
652
753
|
switch (_c.label) {
|
|
653
754
|
case 0:
|
|
654
755
|
_c.trys.push([0, 2, 3, 4]);
|
|
@@ -710,18 +811,19 @@ exports.DeferredCallbackResolver = DeferredCallbackResolver;
|
|
|
710
811
|
function mergePatches(originalSource, oldPatches, newPatches) {
|
|
711
812
|
var patchesToMerge = oldPatches.concat(newPatches);
|
|
712
813
|
var patches;
|
|
713
|
-
immer_1.produce(originalSource, function (draft) {
|
|
714
|
-
immer_1.applyPatches(draft, patchesToMerge);
|
|
814
|
+
(0, immer_1.produce)(originalSource, function (draft) {
|
|
815
|
+
(0, immer_1.applyPatches)(draft, patchesToMerge);
|
|
715
816
|
}, function (p) {
|
|
716
817
|
patches = p;
|
|
717
818
|
});
|
|
718
819
|
return patches;
|
|
719
820
|
}
|
|
720
821
|
exports.mergePatches = mergePatches;
|
|
721
|
-
|
|
722
|
-
var storeName = namespace
|
|
822
|
+
var getStorename = function (namespace, modelName) {
|
|
823
|
+
var storeName = "".concat(namespace, "_").concat(modelName);
|
|
723
824
|
return storeName;
|
|
724
825
|
};
|
|
826
|
+
exports.getStorename = getStorename;
|
|
725
827
|
//#region Key Utils
|
|
726
828
|
/*
|
|
727
829
|
When we have GSI(s) with composite sort keys defined on a model
|
|
@@ -755,11 +857,11 @@ exports.getStorename = function (namespace, modelName) {
|
|
|
755
857
|
|
|
756
858
|
See 'processCompositeKeys' test in util.test.ts for more examples
|
|
757
859
|
*/
|
|
758
|
-
|
|
860
|
+
var processCompositeKeys = function (attributes) {
|
|
759
861
|
var extractCompositeSortKey = function (_c) {
|
|
760
862
|
var
|
|
761
863
|
// ignore the HK (fields[0]) we only need to include the composite sort key fields[1...n]
|
|
762
|
-
_d =
|
|
864
|
+
_d = __read(_c.properties.fields), sortKeyFields = _d.slice(1);
|
|
763
865
|
return sortKeyFields;
|
|
764
866
|
};
|
|
765
867
|
var compositeKeyFields = attributes
|
|
@@ -778,10 +880,10 @@ exports.processCompositeKeys = function (attributes) {
|
|
|
778
880
|
}
|
|
779
881
|
// does the current set share values with another set we've already added to `combined`?
|
|
780
882
|
var intersectingSetIdx = combined.findIndex(function (existingSet) {
|
|
781
|
-
return
|
|
883
|
+
return __spreadArray([], __read(existingSet), false).some(function (f) { return sortKeyFieldsSet.has(f); });
|
|
782
884
|
});
|
|
783
885
|
if (intersectingSetIdx > -1) {
|
|
784
|
-
var union = new Set(
|
|
886
|
+
var union = new Set(__spreadArray(__spreadArray([], __read(combined[intersectingSetIdx]), false), __read(sortKeyFieldsSet), false));
|
|
785
887
|
// combine the current set with the intersecting set we found above
|
|
786
888
|
combined[intersectingSetIdx] = union;
|
|
787
889
|
}
|
|
@@ -798,45 +900,52 @@ exports.processCompositeKeys = function (attributes) {
|
|
|
798
900
|
var combined = combineIntersecting(initial);
|
|
799
901
|
return combined;
|
|
800
902
|
};
|
|
801
|
-
exports.
|
|
903
|
+
exports.processCompositeKeys = processCompositeKeys;
|
|
904
|
+
var extractKeyIfExists = function (modelDefinition) {
|
|
802
905
|
var _c;
|
|
803
906
|
var keyAttribute = (_c = modelDefinition === null || modelDefinition === void 0 ? void 0 : modelDefinition.attributes) === null || _c === void 0 ? void 0 : _c.find(types_1.isModelAttributeKey);
|
|
804
907
|
return keyAttribute;
|
|
805
908
|
};
|
|
806
|
-
exports.
|
|
807
|
-
|
|
808
|
-
|
|
909
|
+
exports.extractKeyIfExists = extractKeyIfExists;
|
|
910
|
+
var extractPrimaryKeyFieldNames = function (modelDefinition) {
|
|
911
|
+
var keyAttribute = (0, exports.extractKeyIfExists)(modelDefinition);
|
|
912
|
+
if (keyAttribute && (0, types_1.isModelAttributePrimaryKey)(keyAttribute)) {
|
|
809
913
|
return keyAttribute.properties.fields;
|
|
810
914
|
}
|
|
811
915
|
return [exports.ID];
|
|
812
916
|
};
|
|
813
|
-
exports.
|
|
917
|
+
exports.extractPrimaryKeyFieldNames = extractPrimaryKeyFieldNames;
|
|
918
|
+
var extractPrimaryKeyValues = function (model, keyFields) {
|
|
814
919
|
return keyFields.map(function (key) { return model[key]; });
|
|
815
920
|
};
|
|
816
|
-
exports.
|
|
921
|
+
exports.extractPrimaryKeyValues = extractPrimaryKeyValues;
|
|
922
|
+
var extractPrimaryKeysAndValues = function (model, keyFields) {
|
|
817
923
|
var primaryKeysAndValues = {};
|
|
818
924
|
keyFields.forEach(function (key) { return (primaryKeysAndValues[key] = model[key]); });
|
|
819
925
|
return primaryKeysAndValues;
|
|
820
926
|
};
|
|
927
|
+
exports.extractPrimaryKeysAndValues = extractPrimaryKeysAndValues;
|
|
821
928
|
// IdentifierFields<ManagedIdentifier>
|
|
822
929
|
// Default behavior without explicit @primaryKey defined
|
|
823
|
-
|
|
824
|
-
var keyAttribute = exports.extractKeyIfExists(modelDefinition);
|
|
825
|
-
if (keyAttribute && types_1.isModelAttributePrimaryKey(keyAttribute)) {
|
|
930
|
+
var isIdManaged = function (modelDefinition) {
|
|
931
|
+
var keyAttribute = (0, exports.extractKeyIfExists)(modelDefinition);
|
|
932
|
+
if (keyAttribute && (0, types_1.isModelAttributePrimaryKey)(keyAttribute)) {
|
|
826
933
|
return false;
|
|
827
934
|
}
|
|
828
935
|
return true;
|
|
829
936
|
};
|
|
937
|
+
exports.isIdManaged = isIdManaged;
|
|
830
938
|
// IdentifierFields<OptionallyManagedIdentifier>
|
|
831
939
|
// @primaryKey with explicit `id` in the PK. Single key or composite
|
|
832
|
-
|
|
833
|
-
var keyAttribute = exports.extractKeyIfExists(modelDefinition);
|
|
834
|
-
if (keyAttribute && types_1.isModelAttributePrimaryKey(keyAttribute)) {
|
|
940
|
+
var isIdOptionallyManaged = function (modelDefinition) {
|
|
941
|
+
var keyAttribute = (0, exports.extractKeyIfExists)(modelDefinition);
|
|
942
|
+
if (keyAttribute && (0, types_1.isModelAttributePrimaryKey)(keyAttribute)) {
|
|
835
943
|
return keyAttribute.properties.fields[0] === exports.ID;
|
|
836
944
|
}
|
|
837
945
|
return false;
|
|
838
946
|
};
|
|
839
|
-
exports.
|
|
947
|
+
exports.isIdOptionallyManaged = isIdOptionallyManaged;
|
|
948
|
+
var establishRelationAndKeys = function (namespace) {
|
|
840
949
|
var relationship = {};
|
|
841
950
|
var keys = {};
|
|
842
951
|
Object.keys(namespace.models).forEach(function (mKey) {
|
|
@@ -858,11 +967,11 @@ exports.establishRelationAndKeys = function (namespace) {
|
|
|
858
967
|
associatedWith: fieldAttribute.association['associatedWith'],
|
|
859
968
|
});
|
|
860
969
|
if (connectionType === 'BELONGS_TO') {
|
|
861
|
-
var targetNames = exports.extractTargetNamesFromSrc(fieldAttribute.association);
|
|
970
|
+
var targetNames = (0, exports.extractTargetNamesFromSrc)(fieldAttribute.association);
|
|
862
971
|
if (targetNames) {
|
|
863
|
-
var idxName_1 = exports.indexNameFromKeys(targetNames);
|
|
972
|
+
var idxName_1 = (0, exports.indexNameFromKeys)(targetNames);
|
|
864
973
|
var idxExists = relationship[mKey].indexes.find(function (_c) {
|
|
865
|
-
var _d =
|
|
974
|
+
var _d = __read(_c, 1), index = _d[0];
|
|
866
975
|
return index === idxName_1;
|
|
867
976
|
});
|
|
868
977
|
if (!idxExists) {
|
|
@@ -873,20 +982,20 @@ exports.establishRelationAndKeys = function (namespace) {
|
|
|
873
982
|
}
|
|
874
983
|
});
|
|
875
984
|
if (model.attributes) {
|
|
876
|
-
keys[mKey].compositeKeys = exports.processCompositeKeys(model.attributes);
|
|
985
|
+
keys[mKey].compositeKeys = (0, exports.processCompositeKeys)(model.attributes);
|
|
877
986
|
var _loop_1 = function (attribute) {
|
|
878
|
-
if (!types_1.isModelAttributeKey(attribute)) {
|
|
987
|
+
if (!(0, types_1.isModelAttributeKey)(attribute)) {
|
|
879
988
|
return "continue";
|
|
880
989
|
}
|
|
881
990
|
var fields = attribute.properties.fields;
|
|
882
|
-
if (types_1.isModelAttributePrimaryKey(attribute)) {
|
|
991
|
+
if ((0, types_1.isModelAttributePrimaryKey)(attribute)) {
|
|
883
992
|
keys[mKey].primaryKey = fields;
|
|
884
993
|
return "continue";
|
|
885
994
|
}
|
|
886
995
|
// create indexes for all other keys
|
|
887
|
-
var idxName = exports.indexNameFromKeys(fields);
|
|
996
|
+
var idxName = (0, exports.indexNameFromKeys)(fields);
|
|
888
997
|
var idxExists = relationship[mKey].indexes.find(function (_c) {
|
|
889
|
-
var _d =
|
|
998
|
+
var _d = __read(_c, 1), index = _d[0];
|
|
890
999
|
return index === idxName;
|
|
891
1000
|
});
|
|
892
1001
|
if (!idxExists) {
|
|
@@ -894,7 +1003,7 @@ exports.establishRelationAndKeys = function (namespace) {
|
|
|
894
1003
|
}
|
|
895
1004
|
};
|
|
896
1005
|
try {
|
|
897
|
-
for (var _d =
|
|
1006
|
+
for (var _d = __values(model.attributes), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
898
1007
|
var attribute = _e.value;
|
|
899
1008
|
_loop_1(attribute);
|
|
900
1009
|
}
|
|
@@ -920,31 +1029,34 @@ exports.establishRelationAndKeys = function (namespace) {
|
|
|
920
1029
|
});
|
|
921
1030
|
return [relationship, keys];
|
|
922
1031
|
};
|
|
923
|
-
exports.
|
|
1032
|
+
exports.establishRelationAndKeys = establishRelationAndKeys;
|
|
1033
|
+
var getIndex = function (rel, src) {
|
|
924
1034
|
var indexName;
|
|
925
1035
|
rel.some(function (relItem) {
|
|
926
1036
|
if (relItem.modelName === src) {
|
|
927
|
-
var targetNames = exports.extractTargetNamesFromSrc(relItem);
|
|
928
|
-
indexName = targetNames && exports.indexNameFromKeys(targetNames);
|
|
1037
|
+
var targetNames = (0, exports.extractTargetNamesFromSrc)(relItem);
|
|
1038
|
+
indexName = targetNames && (0, exports.indexNameFromKeys)(targetNames);
|
|
929
1039
|
return true;
|
|
930
1040
|
}
|
|
931
1041
|
});
|
|
932
1042
|
return indexName;
|
|
933
1043
|
};
|
|
934
|
-
exports.
|
|
1044
|
+
exports.getIndex = getIndex;
|
|
1045
|
+
var getIndexFromAssociation = function (indexes, src) {
|
|
935
1046
|
var indexName;
|
|
936
1047
|
if (Array.isArray(src)) {
|
|
937
|
-
indexName = exports.indexNameFromKeys(src);
|
|
1048
|
+
indexName = (0, exports.indexNameFromKeys)(src);
|
|
938
1049
|
}
|
|
939
1050
|
else {
|
|
940
1051
|
indexName = src;
|
|
941
1052
|
}
|
|
942
1053
|
var associationIndex = indexes.find(function (_c) {
|
|
943
|
-
var _d =
|
|
1054
|
+
var _d = __read(_c, 1), idxName = _d[0];
|
|
944
1055
|
return idxName === indexName;
|
|
945
1056
|
});
|
|
946
1057
|
return associationIndex && associationIndex[0];
|
|
947
1058
|
};
|
|
1059
|
+
exports.getIndexFromAssociation = getIndexFromAssociation;
|
|
948
1060
|
/**
|
|
949
1061
|
* Backwards-compatability for schema generated prior to custom primary key support:
|
|
950
1062
|
the single field `targetName` has been replaced with an array of `targetNames`.
|
|
@@ -952,7 +1064,7 @@ the single field `targetName` has been replaced with an array of `targetNames`.
|
|
|
952
1064
|
* @param src {RelationType | ModelAssociation | undefined}
|
|
953
1065
|
* @returns array of targetNames, or `undefined`
|
|
954
1066
|
*/
|
|
955
|
-
|
|
1067
|
+
var extractTargetNamesFromSrc = function (src) {
|
|
956
1068
|
var targetName = src === null || src === void 0 ? void 0 : src.targetName;
|
|
957
1069
|
var targetNames = src === null || src === void 0 ? void 0 : src.targetNames;
|
|
958
1070
|
if (Array.isArray(targetNames)) {
|
|
@@ -965,24 +1077,27 @@ exports.extractTargetNamesFromSrc = function (src) {
|
|
|
965
1077
|
return undefined;
|
|
966
1078
|
}
|
|
967
1079
|
};
|
|
1080
|
+
exports.extractTargetNamesFromSrc = extractTargetNamesFromSrc;
|
|
968
1081
|
// Generates spinal-cased index name from an array of key field names
|
|
969
1082
|
// E.g. for keys `[id, title]` => 'id-title'
|
|
970
|
-
|
|
1083
|
+
var indexNameFromKeys = function (keys) {
|
|
971
1084
|
return keys.reduce(function (prev, cur, idx) {
|
|
972
1085
|
if (idx === 0) {
|
|
973
1086
|
return cur;
|
|
974
1087
|
}
|
|
975
|
-
return ""
|
|
1088
|
+
return "".concat(prev).concat(exports.IDENTIFIER_KEY_SEPARATOR).concat(cur);
|
|
976
1089
|
}, '');
|
|
977
1090
|
};
|
|
978
|
-
exports.
|
|
1091
|
+
exports.indexNameFromKeys = indexNameFromKeys;
|
|
1092
|
+
var keysEqual = function (keysA, keysB) {
|
|
979
1093
|
if (keysA.length !== keysB.length) {
|
|
980
1094
|
return false;
|
|
981
1095
|
}
|
|
982
1096
|
return keysA.every(function (key, idx) { return key === keysB[idx]; });
|
|
983
1097
|
};
|
|
1098
|
+
exports.keysEqual = keysEqual;
|
|
984
1099
|
// Returns primary keys for a model
|
|
985
|
-
|
|
1100
|
+
var getIndexKeys = function (namespace, modelName) {
|
|
986
1101
|
var _c, _d;
|
|
987
1102
|
var keyPath = (_d = (_c = namespace === null || namespace === void 0 ? void 0 : namespace.keys) === null || _c === void 0 ? void 0 : _c[modelName]) === null || _d === void 0 ? void 0 : _d.primaryKey;
|
|
988
1103
|
if (keyPath) {
|
|
@@ -990,6 +1105,7 @@ exports.getIndexKeys = function (namespace, modelName) {
|
|
|
990
1105
|
}
|
|
991
1106
|
return [exports.ID];
|
|
992
1107
|
};
|
|
1108
|
+
exports.getIndexKeys = getIndexKeys;
|
|
993
1109
|
//#endregion
|
|
994
1110
|
/**
|
|
995
1111
|
* Determine what the managed timestamp field names are for the given model definition
|
|
@@ -1003,7 +1119,7 @@ exports.getIndexKeys = function (namespace, modelName) {
|
|
|
1003
1119
|
* @param definition modelDefinition to inspect.
|
|
1004
1120
|
* @returns An object mapping `createdAt` and `updatedAt` to their field names.
|
|
1005
1121
|
*/
|
|
1006
|
-
|
|
1122
|
+
var getTimestampFields = function (definition) {
|
|
1007
1123
|
var _c, _d;
|
|
1008
1124
|
var modelAttributes = (_c = definition.attributes) === null || _c === void 0 ? void 0 : _c.find(function (attr) { return attr.type === 'model'; });
|
|
1009
1125
|
var timestampFieldsMap = (_d = modelAttributes === null || modelAttributes === void 0 ? void 0 : modelAttributes.properties) === null || _d === void 0 ? void 0 : _d.timestamps;
|
|
@@ -1012,6 +1128,6 @@ exports.getTimestampFields = function (definition) {
|
|
|
1012
1128
|
updatedAt: 'updatedAt',
|
|
1013
1129
|
};
|
|
1014
1130
|
var customFields = timestampFieldsMap || {};
|
|
1015
|
-
return
|
|
1131
|
+
return __assign(__assign({}, defaultFields), customFields);
|
|
1016
1132
|
};
|
|
1017
|
-
|
|
1133
|
+
exports.getTimestampFields = getTimestampFields;
|