@aws-amplify/datastore 3.12.6-next.13 → 3.12.6-next.32

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 (162) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/lib/authModeStrategies/multiAuthStrategy.js +17 -64
  3. package/lib/authModeStrategies/multiAuthStrategy.js.map +1 -1
  4. package/lib/datastore/datastore.js +682 -469
  5. package/lib/datastore/datastore.js.map +1 -1
  6. package/lib/index.js +2 -4
  7. package/lib/index.js.map +1 -1
  8. package/lib/predicates/index.js +12 -2
  9. package/lib/predicates/index.js.map +1 -1
  10. package/lib/storage/adapter/AsyncStorageAdapter.js +393 -298
  11. package/lib/storage/adapter/AsyncStorageAdapter.js.map +1 -1
  12. package/lib/storage/adapter/AsyncStorageDatabase.js +97 -122
  13. package/lib/storage/adapter/AsyncStorageDatabase.js.map +1 -1
  14. package/lib/storage/adapter/InMemoryStore.js +16 -67
  15. package/lib/storage/adapter/InMemoryStore.js.map +1 -1
  16. package/lib/storage/adapter/InMemoryStore.native.js +2 -4
  17. package/lib/storage/adapter/InMemoryStore.native.js.map +1 -1
  18. package/lib/storage/adapter/IndexedDBAdapter.js +497 -404
  19. package/lib/storage/adapter/IndexedDBAdapter.js.map +1 -1
  20. package/lib/storage/adapter/getDefaultAdapter/index.js +3 -5
  21. package/lib/storage/adapter/getDefaultAdapter/index.js.map +1 -1
  22. package/lib/storage/adapter/getDefaultAdapter/index.native.js +2 -4
  23. package/lib/storage/adapter/getDefaultAdapter/index.native.js.map +1 -1
  24. package/lib/storage/storage.js +129 -151
  25. package/lib/storage/storage.js.map +1 -1
  26. package/lib/sync/datastoreConnectivity.js +13 -17
  27. package/lib/sync/datastoreConnectivity.js.map +1 -1
  28. package/lib/sync/datastoreReachability/index.native.js +2 -4
  29. package/lib/sync/datastoreReachability/index.native.js.map +1 -1
  30. package/lib/sync/index.js +544 -488
  31. package/lib/sync/index.js.map +1 -1
  32. package/lib/sync/merger.js +21 -80
  33. package/lib/sync/merger.js.map +1 -1
  34. package/lib/sync/outbox.js +95 -162
  35. package/lib/sync/outbox.js.map +1 -1
  36. package/lib/sync/processors/errorMaps.js +4 -34
  37. package/lib/sync/processors/errorMaps.js.map +1 -1
  38. package/lib/sync/processors/mutation.js +285 -312
  39. package/lib/sync/processors/mutation.js.map +1 -1
  40. package/lib/sync/processors/subscription.js +218 -259
  41. package/lib/sync/processors/subscription.js.map +1 -1
  42. package/lib/sync/processors/sync.js +141 -212
  43. package/lib/sync/processors/sync.js.map +1 -1
  44. package/lib/sync/utils.js +50 -61
  45. package/lib/sync/utils.js.map +1 -1
  46. package/lib/types.js +13 -39
  47. package/lib/types.js.map +1 -1
  48. package/lib/util.js +429 -242
  49. package/lib/util.js.map +1 -1
  50. package/lib-esm/authModeStrategies/multiAuthStrategy.d.ts +11 -0
  51. package/lib-esm/authModeStrategies/multiAuthStrategy.js +13 -57
  52. package/lib-esm/authModeStrategies/multiAuthStrategy.js.map +1 -1
  53. package/lib-esm/datastore/datastore.d.ts +107 -17
  54. package/lib-esm/datastore/datastore.js +649 -433
  55. package/lib-esm/datastore/datastore.js.map +1 -1
  56. package/lib-esm/index.d.ts +3 -19
  57. package/lib-esm/predicates/index.d.ts +3 -2
  58. package/lib-esm/predicates/index.js +13 -3
  59. package/lib-esm/predicates/index.js.map +1 -1
  60. package/lib-esm/storage/adapter/AsyncStorageAdapter.d.ts +4 -3
  61. package/lib-esm/storage/adapter/AsyncStorageAdapter.js +356 -258
  62. package/lib-esm/storage/adapter/AsyncStorageAdapter.js.map +1 -1
  63. package/lib-esm/storage/adapter/AsyncStorageDatabase.d.ts +14 -4
  64. package/lib-esm/storage/adapter/AsyncStorageDatabase.js +67 -92
  65. package/lib-esm/storage/adapter/AsyncStorageDatabase.js.map +1 -1
  66. package/lib-esm/storage/adapter/InMemoryStore.js +1 -52
  67. package/lib-esm/storage/adapter/InMemoryStore.js.map +1 -1
  68. package/lib-esm/storage/adapter/IndexedDBAdapter.d.ts +26 -4
  69. package/lib-esm/storage/adapter/IndexedDBAdapter.js +446 -346
  70. package/lib-esm/storage/adapter/IndexedDBAdapter.js.map +1 -1
  71. package/lib-esm/storage/adapter/index.d.ts +1 -1
  72. package/lib-esm/storage/storage.d.ts +1 -1
  73. package/lib-esm/storage/storage.js +94 -113
  74. package/lib-esm/storage/storage.js.map +1 -1
  75. package/lib-esm/sync/datastoreConnectivity.d.ts +1 -0
  76. package/lib-esm/sync/datastoreConnectivity.js +10 -11
  77. package/lib-esm/sync/datastoreConnectivity.js.map +1 -1
  78. package/lib-esm/sync/index.d.ts +31 -5
  79. package/lib-esm/sync/index.js +525 -466
  80. package/lib-esm/sync/index.js.map +1 -1
  81. package/lib-esm/sync/merger.d.ts +9 -3
  82. package/lib-esm/sync/merger.js +14 -73
  83. package/lib-esm/sync/merger.js.map +1 -1
  84. package/lib-esm/sync/outbox.d.ts +2 -2
  85. package/lib-esm/sync/outbox.js +79 -146
  86. package/lib-esm/sync/outbox.js.map +1 -1
  87. package/lib-esm/sync/processors/errorMaps.js +1 -31
  88. package/lib-esm/sync/processors/errorMaps.js.map +1 -1
  89. package/lib-esm/sync/processors/mutation.d.ts +2 -0
  90. package/lib-esm/sync/processors/mutation.js +271 -295
  91. package/lib-esm/sync/processors/mutation.js.map +1 -1
  92. package/lib-esm/sync/processors/subscription.d.ts +2 -0
  93. package/lib-esm/sync/processors/subscription.js +214 -245
  94. package/lib-esm/sync/processors/subscription.js.map +1 -1
  95. package/lib-esm/sync/processors/sync.d.ts +2 -1
  96. package/lib-esm/sync/processors/sync.js +127 -195
  97. package/lib-esm/sync/processors/sync.js.map +1 -1
  98. package/lib-esm/sync/utils.d.ts +3 -2
  99. package/lib-esm/sync/utils.js +45 -57
  100. package/lib-esm/sync/utils.js.map +1 -1
  101. package/lib-esm/types.d.ts +65 -26
  102. package/lib-esm/types.js +10 -38
  103. package/lib-esm/types.js.map +1 -1
  104. package/lib-esm/util.d.ts +67 -24
  105. package/lib-esm/util.js +420 -233
  106. package/lib-esm/util.js.map +1 -1
  107. package/package.json +14 -7
  108. package/src/authModeStrategies/multiAuthStrategy.ts +12 -1
  109. package/src/datastore/datastore.ts +798 -397
  110. package/src/predicates/index.ts +32 -10
  111. package/src/storage/adapter/AsyncStorageAdapter.ts +309 -93
  112. package/src/storage/adapter/AsyncStorageDatabase.ts +74 -26
  113. package/src/storage/adapter/IndexedDBAdapter.ts +358 -134
  114. package/src/storage/adapter/index.ts +1 -1
  115. package/src/storage/storage.ts +69 -22
  116. package/src/sync/datastoreConnectivity.ts +6 -0
  117. package/src/sync/index.ts +521 -412
  118. package/src/sync/merger.ts +20 -4
  119. package/src/sync/outbox.ts +22 -9
  120. package/src/sync/processors/mutation.ts +188 -150
  121. package/src/sync/processors/subscription.ts +289 -253
  122. package/src/sync/processors/sync.ts +151 -138
  123. package/src/sync/utils.ts +67 -12
  124. package/src/types.ts +182 -30
  125. package/src/util.ts +505 -176
  126. package/build.js +0 -5
  127. package/dist/aws-amplify-datastore.js +0 -98255
  128. package/dist/aws-amplify-datastore.js.map +0 -1
  129. package/dist/aws-amplify-datastore.min.js +0 -66
  130. package/dist/aws-amplify-datastore.min.js.map +0 -1
  131. package/index.js +0 -7
  132. package/lib/authModeStrategies/defaultAuthStrategy.d.ts +0 -2
  133. package/lib/authModeStrategies/index.d.ts +0 -2
  134. package/lib/authModeStrategies/multiAuthStrategy.d.ts +0 -2
  135. package/lib/datastore/datastore.d.ts +0 -66
  136. package/lib/index.d.ts +0 -31
  137. package/lib/predicates/index.d.ts +0 -15
  138. package/lib/predicates/sort.d.ts +0 -8
  139. package/lib/ssr/index.d.ts +0 -3
  140. package/lib/storage/adapter/AsyncStorageAdapter.d.ts +0 -40
  141. package/lib/storage/adapter/AsyncStorageDatabase.d.ts +0 -29
  142. package/lib/storage/adapter/InMemoryStore.d.ts +0 -11
  143. package/lib/storage/adapter/InMemoryStore.native.d.ts +0 -1
  144. package/lib/storage/adapter/IndexedDBAdapter.d.ts +0 -37
  145. package/lib/storage/adapter/getDefaultAdapter/index.d.ts +0 -3
  146. package/lib/storage/adapter/getDefaultAdapter/index.native.d.ts +0 -3
  147. package/lib/storage/adapter/index.d.ts +0 -9
  148. package/lib/storage/storage.d.ts +0 -49
  149. package/lib/sync/datastoreConnectivity.d.ts +0 -15
  150. package/lib/sync/datastoreReachability/index.d.ts +0 -3
  151. package/lib/sync/datastoreReachability/index.native.d.ts +0 -3
  152. package/lib/sync/index.d.ts +0 -63
  153. package/lib/sync/merger.d.ts +0 -11
  154. package/lib/sync/outbox.d.ts +0 -27
  155. package/lib/sync/processors/errorMaps.d.ts +0 -17
  156. package/lib/sync/processors/mutation.d.ts +0 -56
  157. package/lib/sync/processors/subscription.d.ts +0 -31
  158. package/lib/sync/processors/sync.d.ts +0 -27
  159. package/lib/sync/utils.d.ts +0 -41
  160. package/lib/types.d.ts +0 -462
  161. package/lib/util.d.ts +0 -113
  162. package/webpack.config.dev.js +0 -6
@@ -1,55 +1,9 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
- return new (P || (P = Promise))(function (resolve, reject) {
15
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
- step((generator = generator.apply(thisArg, _arguments || [])).next());
19
- });
20
- };
21
- var __generator = (this && this.__generator) || function (thisArg, body) {
22
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
- function verb(n) { return function (v) { return step([n, v]); }; }
25
- function step(op) {
26
- if (f) throw new TypeError("Generator is already executing.");
27
- while (_) try {
28
- 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;
29
- if (y = 0, t) op = [op[0] & 2, t.value];
30
- switch (op[0]) {
31
- case 0: case 1: t = op; break;
32
- case 4: _.label++; return { value: op[1], done: false };
33
- case 5: _.label++; y = op[1]; op = [0]; continue;
34
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
- default:
36
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
- if (t[2]) _.ops.pop();
41
- _.trys.pop(); continue;
42
- }
43
- op = body.call(thisArg, _);
44
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
- }
47
- };
1
+ import { __assign, __awaiter, __generator, __read } from "tslib";
48
2
  import { GRAPHQL_AUTH_MODE } from '@aws-amplify/api-graphql';
49
3
  import { GraphQLAuthError } from '@aws-amplify/api';
50
4
  import { Logger } from '@aws-amplify/core';
51
- import { isEnumFieldType, isGraphQLScalarType, isPredicateObj, isSchemaModel, isTargetNameAssociation, isNonModelFieldType, OpType, ModelOperation, } from '../types';
52
- import { exhaustiveCheck } from '../util';
5
+ import { isEnumFieldType, isGraphQLScalarType, isPredicateObj, isSchemaModel, isSchemaModelWithAttributes, isTargetNameAssociation, isNonModelFieldType, OpType, ModelOperation, } from '../types';
6
+ import { exhaustiveCheck, extractPrimaryKeyFieldNames, establishRelationAndKeys, IDENTIFIER_KEY_SEPARATOR, } from '../util';
53
7
  var logger = new Logger('DataStore');
54
8
  var GraphQLOperationType;
55
9
  (function (GraphQLOperationType) {
@@ -89,7 +43,7 @@ export function generateSelectionSet(namespace, modelDefinition) {
89
43
  if (isSchemaModel(modelDefinition)) {
90
44
  scalarAndMetadataFields = scalarAndMetadataFields
91
45
  .concat(getMetadataFields())
92
- .concat(getConnectionFields(modelDefinition));
46
+ .concat(getConnectionFields(modelDefinition, namespace));
93
47
  }
94
48
  var result = scalarAndMetadataFields.join('\n');
95
49
  return result;
@@ -103,7 +57,7 @@ function getImplicitOwnerField(modelDefinition, scalarFields) {
103
57
  }
104
58
  function getOwnerFields(modelDefinition) {
105
59
  var ownerFields = [];
106
- if (isSchemaModel(modelDefinition) && modelDefinition.attributes) {
60
+ if (isSchemaModelWithAttributes(modelDefinition)) {
107
61
  modelDefinition.attributes.forEach(function (attr) {
108
62
  if (attr.properties && attr.properties.rules) {
109
63
  var rule = attr.properties.rules.find(function (rule) { return rule.allow === 'owner'; });
@@ -130,7 +84,8 @@ function getScalarFields(modelDefinition) {
130
84
  }, {});
131
85
  return result;
132
86
  }
133
- function getConnectionFields(modelDefinition) {
87
+ // Used for generating the selection set for queries and mutations
88
+ function getConnectionFields(modelDefinition, namespace) {
134
89
  var result = [];
135
90
  Object.values(modelDefinition.fields)
136
91
  .filter(function (_a) {
@@ -147,7 +102,24 @@ function getConnectionFields(modelDefinition) {
147
102
  break;
148
103
  case 'BELONGS_TO':
149
104
  if (isTargetNameAssociation(association)) {
150
- result.push(name + " { id _deleted }");
105
+ // New codegen (CPK)
106
+ if (association.targetNames && association.targetNames.length > 0) {
107
+ // Need to retrieve relations in order to get connected model keys
108
+ var _b = __read(establishRelationAndKeys(namespace), 1), relations = _b[0];
109
+ var connectedModelName = modelDefinition.fields[name].type['model'];
110
+ var byPkIndex = relations[connectedModelName].indexes.find(function (_a) {
111
+ var _b = __read(_a, 1), name = _b[0];
112
+ return name === 'byPk';
113
+ });
114
+ var keyFields = byPkIndex && byPkIndex[1];
115
+ var keyFieldSelectionSet = keyFields === null || keyFields === void 0 ? void 0 : keyFields.join(' ');
116
+ // We rely on `_deleted` when we process the sync query (e.g. in batchSave in the adapters)
117
+ result.push(name + " { " + keyFieldSelectionSet + " _deleted }");
118
+ }
119
+ else {
120
+ // backwards-compatability for schema generated prior to custom primary key support
121
+ result.push(name + " { id _deleted }");
122
+ }
151
123
  }
152
124
  break;
153
125
  default:
@@ -321,25 +293,35 @@ export function createMutationInstanceFromModelOperation(relationships, modelDef
321
293
  }
322
294
  return v;
323
295
  };
324
- var mutationEvent = modelInstanceCreator(MutationEventConstructor, __assign(__assign({}, (id ? { id: id } : {})), { data: JSON.stringify(element, replacer), modelId: element.id, model: model.name, operation: operation, condition: JSON.stringify(condition) }));
296
+ var modelId = getIdentifierValue(modelDefinition, element);
297
+ var optionalId = OpType.INSERT && id ? { id: id } : {};
298
+ var mutationEvent = modelInstanceCreator(MutationEventConstructor, __assign(__assign({}, optionalId), { data: JSON.stringify(element, replacer), modelId: modelId, model: model.name, operation: operation, condition: JSON.stringify(condition) }));
325
299
  return mutationEvent;
326
300
  }
327
- export function predicateToGraphQLCondition(predicate) {
301
+ export function predicateToGraphQLCondition(predicate, modelDefinition) {
328
302
  var result = {};
329
303
  if (!predicate || !Array.isArray(predicate.predicates)) {
330
304
  return result;
331
305
  }
306
+ var keyFields = extractPrimaryKeyFieldNames(modelDefinition);
332
307
  predicate.predicates.forEach(function (p) {
333
308
  var _a;
334
309
  if (isPredicateObj(p)) {
335
310
  var field = p.field, operator = p.operator, operand = p.operand;
336
- if (field === 'id') {
311
+ // This is compatible with how the GQL Transform currently generates the Condition Input,
312
+ // i.e. any PK and SK fields are omitted and can't be used as conditions.
313
+ // However, I think this limits usability.
314
+ // What if we want to delete all records where SK > some value
315
+ // Or all records where PK = some value but SKs are different values
316
+ // TODO: if the Transform gets updated ^ we'll need to modify this logic to only omit
317
+ // key fields from the predicate/condition when ALL of the keyFields are present and using `eq` operators
318
+ if (keyFields.includes(field)) {
337
319
  return;
338
320
  }
339
321
  result[field] = (_a = {}, _a[operator] = operand, _a);
340
322
  }
341
323
  else {
342
- result[p.type] = predicateToGraphQLCondition(p);
324
+ result[p.type] = predicateToGraphQLCondition(p, modelDefinition);
343
325
  }
344
326
  });
345
327
  return result;
@@ -496,4 +478,10 @@ export function getTokenForCustomAuth(authMode, amplifyConfig) {
496
478
  });
497
479
  });
498
480
  }
481
+ // Util that takes a modelDefinition and model and returns either the id value(s) or the custom primary key value(s)
482
+ export function getIdentifierValue(modelDefinition, model) {
483
+ var pkFieldNames = extractPrimaryKeyFieldNames(modelDefinition);
484
+ var idOrPk = pkFieldNames.map(function (f) { return model[f]; }).join(IDENTIFIER_KEY_SEPARATOR);
485
+ return idOrPk;
486
+ }
499
487
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/sync/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAKN,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EAGnB,MAAM,EAQN,cAAc,GAGd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG1C,IAAM,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvC,IAAK,oBAMJ;AAND,WAAK,oBAAoB;IACxB,sCAAc,CAAA;IACd,2CAAmB,CAAA;IACnB,2CAAmB,CAAA;IACnB,2CAAmB,CAAA;IACnB,qCAAa,CAAA;AACd,CAAC,EANI,oBAAoB,KAApB,oBAAoB,QAMxB;AAED,MAAM,CAAN,IAAY,uBAKX;AALD,WAAY,uBAAuB;IAClC,4CAAiB,CAAA;IACjB,4CAAiB,CAAA;IACjB,4CAAiB,CAAA;IACjB,sCAAW,CAAA;AACZ,CAAC,EALW,uBAAuB,KAAvB,uBAAuB,QAKlC;AAED,IAAM,aAAa,GAAsC;IACxD,QAAQ,EAAE,SAAS;IACnB,cAAc,EAAE,SAAS;IACzB,QAAQ,EAAE,SAAS;CACnB,CAAC;AAEF,IAAM,cAAc,GAAoC,CACvD,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAC1B,CAAC;AACF,MAAM,UAAU,iBAAiB;IAChC,OAAO,cAAc,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,oBAAoB,CACnC,SAA0B,EAC1B,eAA6C;IAE7C,IAAM,YAAY,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;IACtD,IAAM,cAAc,GAAG,iBAAiB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACrE,IAAM,kBAAkB,GAAG,qBAAqB,CAC/C,eAAe,EACf,YAAY,CACZ,CAAC;IAEF,IAAI,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;SACvD,GAAG,CAAC,UAAC,EAAQ;YAAN,cAAI;QAAO,OAAA,IAAI;IAAJ,CAAI,CAAC;SACvB,MAAM,CAAC,kBAAkB,CAAC;SAC1B,MAAM,CAAC,cAAc,CAAC,CAAC;IAEzB,IAAI,aAAa,CAAC,eAAe,CAAC,EAAE;QACnC,uBAAuB,GAAG,uBAAuB;aAC/C,MAAM,CAAC,iBAAiB,EAAE,CAAC;aAC3B,MAAM,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC,CAAC;KAC/C;IAED,IAAM,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAElD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB,CAC7B,eAA6C,EAC7C,YAAyB;IAEzB,IAAM,WAAW,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;IAEpD,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACzD,OAAO,CAAC,OAAO,CAAC,CAAC;KACjB;IACD,OAAO,EAAE,CAAC;AACX,CAAC;AAED,SAAS,cAAc,CACtB,eAA6C;IAE7C,IAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,aAAa,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE;QACjE,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,UAAA,IAAI;YACtC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;gBAC7C,IAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,KAAK,KAAK,OAAO,EAAtB,CAAsB,CAAC,CAAC;gBACxE,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;oBAC5B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBAClC;aACD;QACF,CAAC,CAAC,CAAC;KACH;IACD,OAAO,WAAW,CAAC;AACpB,CAAC;AAED,SAAS,eAAe,CACvB,eAA6C;IAErC,IAAA,+BAAM,CAAqB;IAEnC,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;SAClC,MAAM,CAAC,UAAA,KAAK;QACZ,IAAI,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACnE,OAAO,IAAI,CAAC;SACZ;QAED,OAAO,KAAK,CAAC;IACd,CAAC,CAAC;SACD,MAAM,CAAC,UAAC,GAAG,EAAE,KAAK;QAClB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAExB,OAAO,GAAG,CAAC;IACZ,CAAC,EAAE,EAAiB,CAAC,CAAC;IAEvB,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,eAA4B;IACxD,IAAM,MAAM,GAAG,EAAE,CAAC;IAElB,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC;SACnC,MAAM,CAAC,UAAC,EAAe;YAAb,4BAAW;QAAO,OAAA,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM;IAA9C,CAA8C,CAAC;SAC3E,OAAO,CAAC,UAAC,EAAqB;YAAnB,cAAI,EAAE,4BAAW;QACpB,IAAA,2CAAc,CAAiB;QAEvC,QAAQ,cAAc,EAAE;YACvB,KAAK,SAAS,CAAC;YACf,KAAK,UAAU;gBACd,sBAAsB;gBACtB,MAAM;YACP,KAAK,YAAY;gBAChB,IAAI,uBAAuB,CAAC,WAAW,CAAC,EAAE;oBACzC,MAAM,CAAC,IAAI,CAAI,IAAI,qBAAkB,CAAC,CAAC;iBACvC;gBACD,MAAM;YACP;gBACC,eAAe,CAAC,cAAc,CAAC,CAAC;SACjC;IACF,CAAC,CAAC,CAAC;IAEJ,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CACzB,SAA0B,EAC1B,eAA6C;IAE7C,IAAM,MAAM,GAAG,EAAE,CAAC;IAElB,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,EAAc;YAAZ,cAAI,EAAE,cAAI;QAC1D,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE;YAC9B,IAAM,cAAc,GAAG,SAAS,CAAC,SAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3D,IAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CACtE,UAAC,EAAQ;oBAAN,cAAI;gBAAO,OAAA,IAAI;YAAJ,CAAI,CAClB,CAAC;YAEF,IAAM,QAAM,GAAG,EAAE,CAAC;YAClB,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAA,KAAK;gBACzC,IAAA,iBAAI,EAAE,iBAAI,CAAW;gBAE7B,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE;oBAC9B,IAAM,gBAAc,GAAG,SAAS,CAAC,SAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAE3D,QAAM,CAAC,IAAI,CACP,IAAI,WAAM,oBAAoB,CAAC,SAAS,EAAE,gBAAc,CAAC,OAAI,CAChE,CAAC;iBACF;YACF,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAI,IAAI,WAAM,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,SAAI,QAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAI,CAAC,CAAC;SACzE;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qBAAqB,CACpC,eAA4B;IAE5B,kDAAkD;IAClD,IAAM,UAAU,GAAG,EAAE;SACnB,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC;SAClC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAA5B,CAA4B,CAAC,CAAC;IAErC,IAAA,kCAA+B,EAAjB,oCAAU,EAAV,+BAAiB,CAAsB;IAE7D,IAAM,WAAW,GAAwB,EAAE,CAAC;IAC5C,kDAAkD;IAClD,KAAK,CAAC,OAAO,CAAC,UAAA,IAAI;QACjB,4DAA4D;QAE3D,IAAA,uBAAkC,EAAlC,uDAAkC,EAClC,oBAAoB,EAApB,yCAAoB,EACpB,oBAAmD,EAAnD,wEAAmD,EACnD,kBAAsB,EAAtB,2CAAsB,EACtB,oBAA6B,EAA7B,kDAA6B,EAC7B,eAA2B,EAA3B,yCAA2B,EAC3B,gBAAW,EAAX,gCAAW,CACH;QAET,IAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrD,IAAM,WAAW,GAAG,YAAY,KAAK,OAAO,CAAC;QAE7C,IAAI,CAAC,gBAAgB,IAAI,CAAC,WAAW,EAAE;YACtC,OAAO;SACP;QAED,IAAM,QAAQ,GAAsB;YACnC,aAAa,eAAA;YACb,UAAU,YAAA;YACV,QAAQ,UAAA;YACR,UAAU,YAAA;YACV,YAAY,cAAA;YACZ,MAAM,QAAA;YACN,sBAAsB,EAAE,KAAK;SAC7B,CAAC;QAEF,IAAI,WAAW,EAAE;YAChB,2CAA2C;YAC3C,yCAAyC;YACzC,IAAM,WAAW,GAAuC,EAAG;iBACzD,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC;iBAClC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAA7B,CAA6B,CAAC,CAAC;YAE9C,8CAA8C;YACtC,IAAA,mCAAyD,EAA3C,4CAAoC,EAAnB,oCAAY,EAAZ,iCAA0B,CAC9C;YAEnB,sEAAsE;YACtE,2CAA2C;YAC3C,QAAQ,CAAC,sBAAsB;gBAC9B,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,QAAQ,CAAC;SACpD;QAED,IAAI,WAAW,EAAE;YAChB,iCAAiC;YACjC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,OAAO;SACP;QAED,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,iCAAiC,CAChD,SAA0B,EAC1B,eAA4B,EAC5B,uBAAgD,EAChD,oBAA6B,EAC7B,UAAkB;IAElB,IAAM,YAAY,GAAG,oBAAoB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAE9D,IAAA,+BAAc,EAAE,2CAA0B,CAAqB;IAEvE,IAAM,MAAM,GAAG,OAAK,uBAAuB,GAAG,QAAU,CAAC;IACzD,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,IAAI,oBAAoB,EAAE;QACzB,OAAO,GAAG,OAAK,UAAU,eAAY,CAAC;QACtC,MAAM,GAAG,MAAI,UAAU,WAAM,UAAU,MAAG,CAAC;KAC3C;IAED,OAAO;QACN,uBAAuB;QACvB,MAAM;QACN,2BAAyB,OAAO,iBAC7B,MAAM,GAAG,MAAM,mBACd,YAAY,qBAEd;KACF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACpC,SAA0B,EAC1B,eAA4B,EAC5B,aAAgD;IAEhD,IAAI,YAAY,GAAG,oBAAoB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAE5D,IAAA,+BAAc,EAAE,2CAA0B,CAAqB;IAEvE,IAAI,SAAiB,CAAC;IACtB,IAAI,YAAY,GAAW,GAAG,CAAC;IAC/B,IAAI,aAAa,GAAW,GAAG,CAAC;IAChC,IAAI,uBAAgD,CAAC;IAErD,QAAQ,aAAa,EAAE;QACtB,KAAK,MAAM;YACV,SAAS,GAAG,SAAO,cAAgB,CAAC;YACpC,YAAY,GAAG,8EAA4E,QAAQ,iBAAc,CAAC;YAClH,aAAa;gBACZ,8EAA8E,CAAC;YAChF,YAAY,GAAG,4BACT,YAAY,kEAGL,CAAC;YACd,MAAM;QACP,KAAK,QAAQ;YACZ,SAAS,GAAG,WAAS,QAAU,CAAC;YAChC,YAAY,GAAG,oBAAkB,QAAQ,YAAS,CAAC;YACnD,aAAa,GAAG,iBAAiB,CAAC;YAClC,uBAAuB,GAAG,uBAAuB,CAAC,MAAM,CAAC;YACzD,MAAM;QACP,KAAK,QAAQ;YACZ,SAAS,GAAG,WAAS,QAAU,CAAC;YAChC,YAAY,GAAG,oBAAkB,QAAQ,iCAA4B,QAAQ,oBAAiB,CAAC;YAC/F,aAAa,GAAG,wCAAwC,CAAC;YACzD,uBAAuB,GAAG,uBAAuB,CAAC,MAAM,CAAC;YACzD,MAAM;QACP,KAAK,QAAQ;YACZ,SAAS,GAAG,WAAS,QAAU,CAAC;YAChC,YAAY,GAAG,oBAAkB,QAAQ,iCAA4B,QAAQ,oBAAiB,CAAC;YAC/F,aAAa,GAAG,wCAAwC,CAAC;YACzD,uBAAuB,GAAG,uBAAuB,CAAC,MAAM,CAAC;YACzD,MAAM;QACP,KAAK,KAAK;YACT,SAAS,GAAG,QAAM,QAAU,CAAC;YAC7B,YAAY,GAAG,YAAY,CAAC;YAC5B,aAAa,GAAG,WAAW,CAAC;YAC5B,uBAAuB,GAAG,uBAAuB,CAAC,GAAG,CAAC;YACtD,MAAM;QAEP;YACC,eAAe,CAAC,aAAa,CAAC,CAAC;KAChC;IAED,OAAO;QACN;YACC,uBAAuB;YACvB,SAAS;YACN,oBAAoB,CAAC,aAAa,CAAC,kBAAa,YAAY,eAC9D,SAAS,GAAG,aAAa,iBACxB,YAAY,iBAEd;SACA;KACD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wCAAwC,CAGvD,aAA+B,EAC/B,eAA4B,EAC5B,MAAc,EACd,KAAoC,EACpC,OAAU,EACV,SAA2B,EAC3B,wBAAmE,EACnE,oBAA0C,EAC1C,EAAW;IAEX,IAAI,SAAkC,CAAC;IAEvC,QAAQ,MAAM,EAAE;QACf,KAAK,MAAM,CAAC,MAAM;YACjB,SAAS,GAAG,uBAAuB,CAAC,MAAM,CAAC;YAC3C,MAAM;QACP,KAAK,MAAM,CAAC,MAAM;YACjB,SAAS,GAAG,uBAAuB,CAAC,MAAM,CAAC;YAC3C,MAAM;QACP,KAAK,MAAM,CAAC,MAAM;YACjB,SAAS,GAAG,uBAAuB,CAAC,MAAM,CAAC;YAC3C,MAAM;QACP;YACC,eAAe,CAAC,MAAM,CAAC,CAAC;KACzB;IAED,2CAA2C;IAC3C,4FAA4F;IAC5F,oDAAoD;IACpD,IAAM,QAAQ,GAAG,UAAC,CAAC,EAAE,CAAC;QACrB,IAAM,SAAS,GACd,CAAC;YACD,CAAC,KAAK,IAAI;YACV,OAAO,CAAC,KAAK,QAAQ;YACrB,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;YACzB,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;QAE9C,IAAI,SAAS,EAAE;YACd,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACzB;QACD,OAAO,CAAC,CAAC;IACV,CAAC,CAAC;IAEF,IAAM,aAAa,GAAG,oBAAoB,CAAC,wBAAwB,wBAC/D,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAA,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,EACvC,OAAO,EAAE,OAAO,CAAC,EAAE,EACnB,KAAK,EAAE,KAAK,CAAC,IAAI,EACjB,SAAS,WAAA,EACT,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IACnC,CAAC;IAEH,OAAO,aAAa,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAC1C,SAA+B;IAE/B,IAAM,MAAM,GAAG,EAAE,CAAC;IAElB,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;QACvD,OAAO,MAAM,CAAC;KACd;IAED,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,UAAA,CAAC;;QAC7B,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE;YACd,IAAA,eAAK,EAAE,qBAAQ,EAAE,mBAAO,CAAO;YAEvC,IAAI,KAAK,KAAK,IAAI,EAAE;gBACnB,OAAO;aACP;YAED,MAAM,CAAC,KAAK,CAAC,aAAK,GAAC,QAAQ,IAAG,OAAO,KAAE,CAAC;SACxC;aAAM;YACN,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC;SAChD;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,UAAU,wBAAwB,CACvC,eAAqC;IAErC,IAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,IAAI,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE;QACnE,OAAO,MAAM,CAAC;KACd;IAEO,IAAA,2BAAI,EAAE,uCAAU,CAAqB;IAC7C,IAAM,MAAM,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,CAAC;IAE/C,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEhC,IAAM,cAAc,GAAG,UAAA,KAAK;QAC3B,OAAA,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAA1D,CAA0D,CAAC;IAE5D,UAAU,CAAC,OAAO,CAAC,UAAA,SAAS;;QAC3B,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE;YACtB,IAAA,uBAAK,EAAE,6BAAQ,EAAE,2BAAO,CAAe;YAE/C,IAAM,QAAQ;gBACb,GAAC,KAAK,cAAK,GAAC,QAAQ,IAAG,OAAO,KAAE;mBAChC,CAAC;YAEF,cAAc,CAAC,QAAQ,CAAC,CAAC;YACzB,OAAO;SACP;QAED,cAAc,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,UAAU,sBAAsB,CACrC,KAA+B,EAC/B,IAAuB;IAEvB,oCAAoC;IACpC,IAAI,UAAU,GAAsB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAEjE,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;QACnC,IAAI,YAAY,SAAA,CAAC;QACjB,IAAI;YACH,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;SACtC;QAAC,OAAO,CAAC,EAAE;YACX,YAAY,GAAG,UAAU,CAAC;SAC1B;QACD,UAAU,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;KACrC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC;AAED,MAAM,UAAgB,iBAAiB,CAAC,EAUvC;QATA,sCAAgB,EAChB,oCAAe,EACf,wBAAS,EACT,kBAAM;;;;;;;oBASA,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;oBAE3C,cAAc,GAEhB;wBACH,MAAM,EAAE,EAAE;wBACV,IAAI,EAAE,EAAE;wBACR,MAAM,EAAE,EAAE;wBACV,MAAM,EAAE,EAAE;qBACV,CAAC;;;;oBAGD,qBAAM,OAAO,CAAC,GAAG,CAChB,UAAU,CAAC,GAAG,CAAC,UAAM,SAAS;;;;4CACX,qBAAM,gBAAgB,CAAC;4CACxC,MAAM,QAAA;4CACN,SAAS,WAAA;4CACT,SAAS,WAAA;yCACT,CAAC,EAAA;;wCAJI,SAAS,GAAG,SAIhB;wCAEF,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;4CAClC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;yCACxC;6CAAM,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE;4CACxD,cAAc,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;yCACtC;6CAAM;4CACN,qEAAqE;4CACrE,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;yCAC9C;;;;6BACD,CAAC,CACF,EAAA;;oBAjBD,SAiBC,CAAC;;;;oBAEF,MAAM,CAAC,KAAK,CAAC,yCAAuC,SAAW,EAAE,OAAK,CAAC,CAAC;;wBAEzE,sBAAO,cAAc,EAAC;;;;CACtB;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAK;IACtC,IAAM,sBAAsB,GAAG;QAC9B,qCAAqC;QACrC,qCAAqC;KACrC,CAAC;IACF,IAAI,cAAc,CAAC;IACnB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;QAC1B,cAAc,GAAI,KAAK,CAAC,MAAgB,CAAC,IAAI,CAAC,UAAA,GAAG;YAChD,OAAA,sBAAsB,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;QAA5C,CAA4C,CAC5C,CAAC;KACF;SAAM,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE;QAClC,cAAc,GAAG,KAAK,CAAC;KACvB;IAED,IAAI,cAAc,EAAE;QACnB,OAAO,cAAc,CAAC,OAAO,CAAC;KAC9B;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAK;IAC3C,IAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC7D,IAAM,eAAe,GACpB,KAAK;QACL,KAAK,CAAC,OAAO;QACb,oBAAoB,CAAC,IAAI,CAAC,UAAA,WAAW;YACpC,OAAA,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAnC,CAAmC,CACnC,CAAC;IACH,OAAO,eAAe,IAAI,IAAI,CAAC;AAChC,CAAC;AAED,MAAM,UAAgB,qBAAqB,CAC1C,QAA2B,EAC3B,aAAuC;IAAvC,8BAAA,EAAA,kBAAuC;;;;;;yBAEnC,CAAA,QAAQ,KAAK,iBAAiB,CAAC,UAAU,CAAA,EAAzC,wBAAyC;oBAE3C,KACG,aAAa,cADwD,EAAvD,oBAAoB,oBAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,2BAAnC,CACpB;yBACd,CAAA,oBAAoB,IAAI,OAAO,oBAAoB,KAAK,UAAU,CAAA,EAAlE,wBAAkE;;;;oBAElD,qBAAM,oBAAoB,EAAE,EAAA;;oBAAtC,KAAK,GAAK,CAAA,SAA4B,CAAA,MAAjC;oBACb,sBAAO,KAAK,EAAC;;;oBAEb,MAAM,IAAI,KAAK,CACd,yDAAyD,OAAO,CAChE,CAAC;;;gBAGH,qCAAqC;gBACrC,MAAM,IAAI,KAAK,CACd,4FAA8F,iBAAiB,CAAC,UAAY,CAC5H,CAAC;;;;;CAGJ"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/sync/utils.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { PredicateAll } from './predicates';
3
3
  import { GRAPHQL_AUTH_MODE } from '@aws-amplify/api-graphql';
4
4
  import { Auth } from '@aws-amplify/auth';
5
5
  import { API } from '@aws-amplify/api';
6
- import Cache from '@aws-amplify/cache';
6
+ import { BrowserStorageCache as Cache } from '@aws-amplify/cache';
7
7
  import { Adapter } from './storage/adapter';
8
8
  export declare type Schema = UserSchema & {
9
9
  version: string;
@@ -33,6 +33,7 @@ export declare type SchemaModel = {
33
33
  syncable?: boolean;
34
34
  };
35
35
  export declare function isSchemaModel(obj: any): obj is SchemaModel;
36
+ export declare function isSchemaModelWithAttributes(m: SchemaModel | SchemaNonModel): m is SchemaModel;
36
37
  export declare type SchemaNonModels = Record<string, SchemaNonModel>;
37
38
  export declare type SchemaNonModel = {
38
39
  name: string;
@@ -46,17 +47,19 @@ declare type SchemaEnum = {
46
47
  export declare type ModelAssociation = AssociatedWith | TargetNameAssociation;
47
48
  declare type AssociatedWith = {
48
49
  connectionType: 'HAS_MANY' | 'HAS_ONE';
49
- associatedWith: string;
50
+ associatedWith: string | string[];
50
51
  targetName?: string;
52
+ targetNames?: string[];
51
53
  };
52
54
  export declare function isAssociatedWith(obj: any): obj is AssociatedWith;
53
55
  declare type TargetNameAssociation = {
54
56
  connectionType: 'BELONGS_TO';
55
- targetName: string;
57
+ targetName?: string;
58
+ targetNames?: string[];
56
59
  };
57
60
  export declare function isTargetNameAssociation(obj: any): obj is TargetNameAssociation;
58
61
  export declare type ModelAttributes = ModelAttribute[];
59
- declare type ModelAttribute = {
62
+ export declare type ModelAttribute = {
60
63
  type: string;
61
64
  properties?: Record<string, any>;
62
65
  };
@@ -87,6 +90,7 @@ declare type ModelAttributeKey = {
87
90
  declare type ModelAttributePrimaryKey = {
88
91
  type: 'key';
89
92
  properties: {
93
+ name: never;
90
94
  fields: string[];
91
95
  };
92
96
  };
@@ -179,34 +183,64 @@ export declare type ModelField = {
179
183
  export declare type NonModelTypeConstructor<T> = {
180
184
  new (init: T): T;
181
185
  };
182
- export declare type PersistentModelConstructor<T extends PersistentModel, K extends PersistentModelMetaData = {
183
- readOnlyFields: 'createdAt' | 'updatedAt';
184
- }> = {
185
- new (init: ModelInit<T, K>): T;
186
- copyOf(src: T, mutator: (draft: MutableModel<T, K>) => void): T;
187
- };
188
- export declare type TypeConstructorMap = Record<string, PersistentModelConstructor<any> | NonModelTypeConstructor<any>>;
189
- export declare type PersistentModelMetaData = {
190
- readOnlyFields: string;
191
- };
192
- export declare type PersistentModel = Readonly<{
193
- id: string;
194
- } & Record<string, any>>;
195
- export declare type ModelInit<T, K extends PersistentModelMetaData = {
196
- readOnlyFields: 'createdAt' | 'updatedAt';
197
- }> = Omit<T, 'id' | K['readOnlyFields']>;
186
+ export declare type PersistentModelConstructor<T extends PersistentModel> = {
187
+ new (init: ModelInit<T, PersistentModelMetaData<T>>): T;
188
+ copyOf(src: T, mutator: (draft: MutableModel<T, PersistentModelMetaData<T>>) => void): T;
189
+ };
190
+ export declare type TypeConstructorMap = Record<string, PersistentModelConstructor<any> | NonModelTypeConstructor<unknown>>;
191
+ /**
192
+ * Each identifier type is represented using nominal types, see:
193
+ * https://basarat.gitbook.io/typescript/main-1/nominaltyping
194
+ */
195
+ export declare const __identifierBrand__: unique symbol;
196
+ export declare type IdentifierBrand<T, K> = T & {
197
+ [__identifierBrand__]: K;
198
+ };
199
+ export declare type ManagedIdentifier<T, F extends keyof T> = IdentifierBrand<{
200
+ field: F extends string ? F : never;
201
+ type: T;
202
+ }, 'ManagedIdentifier'>;
203
+ export declare type OptionallyManagedIdentifier<T, F extends keyof T> = IdentifierBrand<{
204
+ field: F extends string ? F : never;
205
+ type: T;
206
+ }, 'OptionallyManagedIdentifier'>;
207
+ export declare type CompositeIdentifier<T, K extends Array<keyof T>> = IdentifierBrand<{
208
+ fields: K;
209
+ type: T;
210
+ }, 'CompositeIdentifier'>;
211
+ export declare type CustomIdentifier<T, K extends keyof T> = CompositeIdentifier<T, [K]>;
212
+ export declare type Identifier<T> = ManagedIdentifier<T, any> | OptionallyManagedIdentifier<T, any> | CompositeIdentifier<T, any> | CustomIdentifier<T, any>;
213
+ export declare type IdentifierFields<T extends PersistentModel, M extends PersistentModelMetaData<T> = never> = (MetadataOrDefault<T, M>['identifier'] extends ManagedIdentifier<any, any> | OptionallyManagedIdentifier<any, any> ? MetadataOrDefault<T, M>['identifier']['field'] : MetadataOrDefault<T, M>['identifier'] extends CompositeIdentifier<T, infer B> ? B[number] : MetadataOrDefault<T, M>['identifier']['field']) & string;
214
+ export declare type IdentifierFieldsForInit<T extends PersistentModel, M extends PersistentModelMetaData<T>> = MetadataOrDefault<T, M>['identifier'] extends DefaultPersistentModelMetaData | ManagedIdentifier<T, any> ? never : MetadataOrDefault<T, M>['identifier'] extends OptionallyManagedIdentifier<T, any> ? IdentifierFields<T, M> : MetadataOrDefault<T, M>['identifier'] extends CompositeIdentifier<T, any> ? IdentifierFields<T, M> : never;
215
+ export declare const __modelMeta__: unique symbol;
216
+ export declare type PersistentModelMetaData<T> = {
217
+ identifier?: Identifier<T>;
218
+ readOnlyFields?: string;
219
+ };
220
+ export declare type DefaultPersistentModelMetaData = {
221
+ identifier: ManagedIdentifier<{
222
+ id: string;
223
+ }, 'id'>;
224
+ readOnlyFields: never;
225
+ };
226
+ export declare type MetadataOrDefault<T extends PersistentModel, _ extends PersistentModelMetaData<T> = never> = T extends {
227
+ [__modelMeta__]: PersistentModelMetaData<T>;
228
+ } ? T[typeof __modelMeta__] : DefaultPersistentModelMetaData;
229
+ export declare type PersistentModel = Readonly<Record<string, any>>;
230
+ export declare type MetadataReadOnlyFields<T extends PersistentModel, M extends PersistentModelMetaData<T>> = Extract<MetadataOrDefault<T, M>['readOnlyFields'] | M['readOnlyFields'], keyof T>;
231
+ export declare type ModelInit<T extends PersistentModel, M extends PersistentModelMetaData<T> = {}> = Omit<T, typeof __modelMeta__ | IdentifierFields<T, M> | MetadataReadOnlyFields<T, M>> & (MetadataOrDefault<T, M>['identifier'] extends OptionallyManagedIdentifier<T, any> ? Partial<Pick<T, IdentifierFieldsForInit<T, M>>> : Required<Pick<T, IdentifierFieldsForInit<T, M>>>);
198
232
  declare type DeepWritable<T> = {
199
233
  -readonly [P in keyof T]: T[P] extends TypeName<T[P]> ? T[P] : DeepWritable<T[P]>;
200
234
  };
201
- export declare type MutableModel<T extends Record<string, any>, K extends PersistentModelMetaData = {
202
- readOnlyFields: 'createdAt' | 'updatedAt';
203
- }> = DeepWritable<Omit<T, 'id' | K['readOnlyFields']>> & Readonly<Pick<T, 'id' | K['readOnlyFields']>>;
235
+ export declare type MutableModel<T extends PersistentModel, M extends PersistentModelMetaData<T> = {}> = DeepWritable<Omit<T, IdentifierFields<T, M> | MetadataReadOnlyFields<T, M>>> & Readonly<Pick<T, IdentifierFields<T, M> | MetadataReadOnlyFields<T, M>>>;
204
236
  export declare type ModelInstanceMetadata = {
205
- id: string;
206
237
  _version: number;
207
238
  _lastChangedAt: number;
208
239
  _deleted: boolean;
209
240
  };
241
+ export declare type IdentifierFieldValue<T extends PersistentModel, M extends PersistentModelMetaData<T>> = MetadataOrDefault<T, M>['identifier'] extends CompositeIdentifier<T, any> ? MetadataOrDefault<T, M>['identifier']['fields'] extends [any] ? T[MetadataOrDefault<T, M>['identifier']['fields'][0]] : never : T[MetadataOrDefault<T, M>['identifier']['field']];
242
+ export declare type IdentifierFieldOrIdentifierObject<T extends PersistentModel, M extends PersistentModelMetaData<T>> = Pick<T, IdentifierFields<T, M>> | IdentifierFieldValue<T, M>;
243
+ export declare function isIdentifierObject<T extends PersistentModel>(obj: any, modelDefinition: SchemaModel): obj is IdentifierFields<T extends PersistentModel ? T : never, any>;
210
244
  export declare enum OpType {
211
245
  INSERT = "INSERT",
212
246
  UPDATE = "UPDATE",
@@ -337,11 +371,16 @@ export declare type RelationType = {
337
371
  modelName: string;
338
372
  relationType: 'HAS_ONE' | 'HAS_MANY' | 'BELONGS_TO';
339
373
  targetName?: string;
340
- associatedWith?: string;
374
+ targetNames?: string[];
375
+ associatedWith?: string | string[];
376
+ };
377
+ declare type IndexOptions = {
378
+ unique?: boolean;
341
379
  };
380
+ export declare type IndexesType = Array<[string, string[], IndexOptions?]>;
342
381
  export declare type RelationshipType = {
343
382
  [modelName: string]: {
344
- indexes: string[];
383
+ indexes: IndexesType;
345
384
  relationTypes: RelationType[];
346
385
  };
347
386
  };
package/lib-esm/types.js CHANGED
@@ -1,48 +1,16 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- var __generator = (this && this.__generator) || function (thisArg, body) {
11
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
- function verb(n) { return function (v) { return step([n, v]); }; }
14
- function step(op) {
15
- if (f) throw new TypeError("Generator is already executing.");
16
- while (_) try {
17
- 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;
18
- if (y = 0, t) op = [op[0] & 2, t.value];
19
- switch (op[0]) {
20
- case 0: case 1: t = op; break;
21
- case 4: _.label++; return { value: op[1], done: false };
22
- case 5: _.label++; y = op[1]; op = [0]; continue;
23
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
- default:
25
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
- if (t[2]) _.ops.pop();
30
- _.trys.pop(); continue;
31
- }
32
- op = body.call(thisArg, _);
33
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
- }
36
- };
37
- import { exhaustiveCheck, isAWSDate, isAWSTime, isAWSDateTime, isAWSTimestamp, isAWSEmail, isAWSJSON, isAWSURL, isAWSPhone, isAWSIPAddress, } from './util';
1
+ import { __awaiter, __generator } from "tslib";
2
+ import { exhaustiveCheck, isAWSDate, isAWSTime, isAWSDateTime, isAWSTimestamp, isAWSEmail, isAWSJSON, isAWSURL, isAWSPhone, isAWSIPAddress, extractPrimaryKeyFieldNames, } from './util';
38
3
  export function isSchemaModel(obj) {
39
4
  return obj && obj.pluralName !== undefined;
40
5
  }
6
+ export function isSchemaModelWithAttributes(m) {
7
+ return isSchemaModel(m) && m.attributes !== undefined;
8
+ }
41
9
  export function isAssociatedWith(obj) {
42
10
  return obj && obj.associatedWith;
43
11
  }
44
12
  export function isTargetNameAssociation(obj) {
45
- return obj && obj.targetName;
13
+ return (obj === null || obj === void 0 ? void 0 : obj.targetName) || (obj === null || obj === void 0 ? void 0 : obj.targetNames);
46
14
  }
47
15
  export function isModelAttributeAuth(attr) {
48
16
  return (attr.type === 'auth' &&
@@ -170,6 +138,10 @@ export function isEnumFieldType(obj) {
170
138
  return true;
171
139
  return false;
172
140
  }
141
+ export function isIdentifierObject(obj, modelDefinition) {
142
+ var keys = extractPrimaryKeyFieldNames(modelDefinition);
143
+ return (typeof obj === 'object' && obj && keys.every(function (k) { return obj[k] !== undefined; }));
144
+ }
173
145
  //#endregion
174
146
  //#region Subscription messages
175
147
  export var OpType;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/lib-esm/util.d.ts CHANGED
@@ -1,6 +1,27 @@
1
1
  import { ULID } from 'ulid';
2
2
  import { Patch } from 'immer';
3
- import { ModelInstanceMetadata, PersistentModel, PersistentModelConstructor, PredicateObject, PredicatesGroup, RelationshipType, RelationType, ModelKeys, ModelAttributes, SchemaNamespace, SortPredicatesGroup, NonModelTypeConstructor, DeferredCallbackResolverOptions } from './types';
3
+ import { PersistentModel, PersistentModelConstructor, PredicateObject, PredicatesGroup, RelationshipType, RelationType, ModelKeys, ModelAttributes, SchemaNamespace, SortPredicatesGroup, NonModelTypeConstructor, DeferredCallbackResolverOptions, SchemaModel, ModelAttribute, IndexesType } from './types';
4
+ export declare const ID = "id";
5
+ /**
6
+ * Used by the Async Storage Adapter to concatenate key values
7
+ * for a record. For instance, if a model has the following keys:
8
+ * `customId: ID! @primaryKey(sortKeyFields: ["createdAt"])`,
9
+ * we concatenate the `customId` and `createdAt` as:
10
+ * `12-234-5#2022-09-28T00:00:00.000Z`
11
+ */
12
+ export declare const DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR = "#";
13
+ /**
14
+ * Used for generating spinal-cased index name from an array of
15
+ * key field names.
16
+ * E.g. for keys `[id, title]` => 'id-title'
17
+ */
18
+ export declare const IDENTIFIER_KEY_SEPARATOR = "-";
19
+ export declare const errorMessages: {
20
+ idEmptyString: string;
21
+ queryByPkWithCompositeKeyPresent: string;
22
+ deleteByPkWithCompositeKeyPresent: string;
23
+ observeWithObjectLiteral: string;
24
+ };
4
25
  export declare enum NAMESPACES {
5
26
  DATASTORE = "datastore",
6
27
  USER = "user",
@@ -15,37 +36,28 @@ export { USER, SYNC, STORAGE, DATASTORE };
15
36
  export declare const USER_AGENT_SUFFIX_DATASTORE = "/DataStore";
16
37
  export declare const exhaustiveCheck: (obj: never, throwOnError?: boolean) => void;
17
38
  export declare const isNullOrUndefined: (val: any) => boolean;
18
- export declare const validatePredicate: <T extends Readonly<{
19
- id: string;
20
- } & Record<string, any>>>(model: T, groupType: "and" | "or" | "not", predicatesOrGroups: (PredicateObject<T> | PredicatesGroup<T>)[]) => any;
39
+ export declare const validatePredicate: <T extends Readonly<Record<string, any>>>(model: T, groupType: "and" | "or" | "not", predicatesOrGroups: (PredicateObject<T> | PredicatesGroup<T>)[]) => any;
21
40
  export declare const validatePredicateField: <T>(value: T, operator: "ne" | "eq" | "le" | "lt" | "ge" | "gt" | "between" | "beginsWith" | "contains" | "notContains", operand: T | [T, T]) => boolean;
22
- export declare const isModelConstructor: <T extends Readonly<{
23
- id: string;
24
- } & Record<string, any>>>(obj: any) => obj is PersistentModelConstructor<T, {
25
- readOnlyFields: "createdAt" | "updatedAt";
26
- }>;
41
+ export declare const isModelConstructor: <T extends Readonly<Record<string, any>>>(obj: any) => obj is PersistentModelConstructor<T>;
27
42
  export declare function registerNonModelClass(clazz: NonModelTypeConstructor<any>): void;
28
43
  export declare const isNonModelConstructor: (obj: any) => obj is NonModelTypeConstructor<any>;
29
- export declare const processCompositeKeys: (attributes: ModelAttributes) => Set<string>[];
30
- export declare const establishRelationAndKeys: (namespace: SchemaNamespace) => [RelationshipType, ModelKeys];
31
- export declare const traverseModel: <T extends Readonly<{
32
- id: string;
33
- } & Record<string, any>>>(srcModelName: string, instance: T, namespace: SchemaNamespace, modelInstanceCreator: <T_1 extends Readonly<{
34
- id: string;
35
- } & Record<string, any>> = Readonly<{
36
- id: string;
37
- } & Record<string, any>>>(modelConstructor: PersistentModelConstructor<T_1, {
38
- readOnlyFields: "createdAt" | "updatedAt";
39
- }>, init: Pick<T_1, Exclude<keyof T_1, "id" | "createdAt" | "updatedAt">> & Partial<ModelInstanceMetadata>) => T_1, getModelConstructorByModelName: (namsespaceName: string, modelName: string) => PersistentModelConstructor<any, {
40
- readOnlyFields: "createdAt" | "updatedAt";
41
- }>) => {
44
+ export declare const traverseModel: <T extends Readonly<Record<string, any>>>(srcModelName: string, instance: T, namespace: SchemaNamespace, modelInstanceCreator: <T_1 extends Readonly<Record<string, any>>>(modelConstructor: PersistentModelConstructor<T_1>, init: Partial<T_1>) => T_1, getModelConstructorByModelName: (namsespaceName: string, modelName: string) => PersistentModelConstructor<any>) => {
42
45
  modelName: string;
43
46
  item: T;
44
47
  instance: T;
45
48
  }[];
46
- export declare const getIndex: (rel: RelationType[], src: string) => string;
47
- export declare const getIndexFromAssociation: (indexes: string[], src: string) => string;
48
49
  export declare const isPrivateMode: () => Promise<unknown>;
50
+ /**
51
+ * Whether the browser's implementation of IndexedDB breaks on array lookups
52
+ * against composite indexes whose keypath contains a single column.
53
+ *
54
+ * E.g., Whether `store.createIndex(indexName, ['id'])` followed by
55
+ * `store.index(indexName).get([1])` will *ever* return records.
56
+ *
57
+ * In all known, modern Safari browsers as of Q4 2022, the query against an index like
58
+ * this will *always* return `undefined`. So, the index needs to be created as a scalar.
59
+ */
60
+ export declare const isSafariCompatabilityMode: () => Promise<boolean>;
49
61
  export declare function monotonicUlidFactory(seed?: number): ULID;
50
62
  /**
51
63
  * Uses performance.now() if available, otherwise, uses Date.now() (e.g. react native without a polyfill)
@@ -111,3 +123,34 @@ export declare class DeferredCallbackResolver {
111
123
  * @return merged patches
112
124
  */
113
125
  export declare function mergePatches<T>(originalSource: T, oldPatches: Patch[], newPatches: Patch[]): Patch[];
126
+ export declare const getStorename: (namespace: string, modelName: string) => string;
127
+ export declare const processCompositeKeys: (attributes: ModelAttributes) => Set<string>[];
128
+ export declare const extractKeyIfExists: (modelDefinition: SchemaModel) => ModelAttribute;
129
+ export declare const extractPrimaryKeyFieldNames: (modelDefinition: SchemaModel) => string[];
130
+ export declare const extractPrimaryKeyValues: <T extends Readonly<Record<string, any>>>(model: T, keyFields: string[]) => string[];
131
+ export declare const extractPrimaryKeysAndValues: <T extends Readonly<Record<string, any>>>(model: T, keyFields: string[]) => any;
132
+ export declare const isIdManaged: (modelDefinition: SchemaModel) => boolean;
133
+ export declare const isIdOptionallyManaged: (modelDefinition: SchemaModel) => boolean;
134
+ export declare const establishRelationAndKeys: (namespace: SchemaNamespace) => [RelationshipType, ModelKeys];
135
+ export declare const getIndex: (rel: RelationType[], src: string) => string;
136
+ export declare const getIndexFromAssociation: (indexes: IndexesType, src: string | string[]) => string;
137
+ /**
138
+ * Backwards-compatability for schema generated prior to custom primary key support:
139
+ the single field `targetName` has been replaced with an array of `targetNames`.
140
+ `targetName` and `targetNames` are exclusive (will never exist on the same schema)
141
+ * @param src {RelationType | ModelAssociation | undefined}
142
+ * @returns array of targetNames, or `undefined`
143
+ */
144
+ export declare const extractTargetNamesFromSrc: (src: RelationType | {
145
+ connectionType: "HAS_ONE" | "HAS_MANY";
146
+ associatedWith: string | string[];
147
+ targetName?: string;
148
+ targetNames?: string[];
149
+ } | {
150
+ connectionType: "BELONGS_TO";
151
+ targetName?: string;
152
+ targetNames?: string[];
153
+ }) => string[];
154
+ export declare const indexNameFromKeys: (keys: string[]) => string;
155
+ export declare const keysEqual: (keysA: any, keysB: any) => boolean;
156
+ export declare const getIndexKeys: (namespace: SchemaNamespace, modelName: string) => string[];