@aws-amplify/datastore 4.0.12 → 4.0.13-push-notification-dryrun.43

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 (111) hide show
  1. package/lib/datastore/datastore.d.ts +29 -3
  2. package/lib/datastore/datastore.js +308 -147
  3. package/lib/datastore/datastore.js.map +1 -1
  4. package/lib/predicates/index.d.ts +77 -7
  5. package/lib/predicates/index.js +142 -122
  6. package/lib/predicates/index.js.map +1 -1
  7. package/lib/predicates/next.d.ts +51 -10
  8. package/lib/predicates/next.js +111 -91
  9. package/lib/predicates/next.js.map +1 -1
  10. package/lib/storage/adapter/AsyncStorageAdapter.d.ts +28 -30
  11. package/lib/storage/adapter/AsyncStorageAdapter.js +135 -532
  12. package/lib/storage/adapter/AsyncStorageAdapter.js.map +1 -1
  13. package/lib/storage/adapter/AsyncStorageDatabase.js.map +1 -1
  14. package/lib/storage/adapter/IndexedDBAdapter.d.ts +28 -29
  15. package/lib/storage/adapter/IndexedDBAdapter.js +490 -885
  16. package/lib/storage/adapter/IndexedDBAdapter.js.map +1 -1
  17. package/lib/storage/adapter/StorageAdapterBase.d.ts +134 -0
  18. package/lib/storage/adapter/StorageAdapterBase.js +439 -0
  19. package/lib/storage/adapter/StorageAdapterBase.js.map +1 -0
  20. package/lib/storage/relationship.d.ts +9 -0
  21. package/lib/storage/relationship.js +9 -0
  22. package/lib/storage/relationship.js.map +1 -1
  23. package/lib/storage/storage.d.ts +1 -1
  24. package/lib/storage/storage.js +4 -3
  25. package/lib/storage/storage.js.map +1 -1
  26. package/lib/sync/index.d.ts +15 -1
  27. package/lib/sync/index.js +80 -13
  28. package/lib/sync/index.js.map +1 -1
  29. package/lib/sync/outbox.js +14 -7
  30. package/lib/sync/outbox.js.map +1 -1
  31. package/lib/sync/processors/mutation.d.ts +10 -1
  32. package/lib/sync/processors/mutation.js +33 -12
  33. package/lib/sync/processors/mutation.js.map +1 -1
  34. package/lib/sync/processors/subscription.d.ts +7 -1
  35. package/lib/sync/processors/subscription.js +196 -135
  36. package/lib/sync/processors/subscription.js.map +1 -1
  37. package/lib/sync/processors/sync.d.ts +1 -1
  38. package/lib/sync/processors/sync.js.map +1 -1
  39. package/lib/sync/utils.d.ts +66 -2
  40. package/lib/sync/utils.js +264 -16
  41. package/lib/sync/utils.js.map +1 -1
  42. package/lib/types.d.ts +9 -1
  43. package/lib/types.js.map +1 -1
  44. package/lib/util.d.ts +16 -0
  45. package/lib/util.js +31 -2
  46. package/lib/util.js.map +1 -1
  47. package/lib-esm/datastore/datastore.d.ts +29 -3
  48. package/lib-esm/datastore/datastore.js +310 -149
  49. package/lib-esm/datastore/datastore.js.map +1 -1
  50. package/lib-esm/predicates/index.d.ts +77 -7
  51. package/lib-esm/predicates/index.js +143 -123
  52. package/lib-esm/predicates/index.js.map +1 -1
  53. package/lib-esm/predicates/next.d.ts +51 -10
  54. package/lib-esm/predicates/next.js +111 -91
  55. package/lib-esm/predicates/next.js.map +1 -1
  56. package/lib-esm/storage/adapter/AsyncStorageAdapter.d.ts +28 -30
  57. package/lib-esm/storage/adapter/AsyncStorageAdapter.js +138 -535
  58. package/lib-esm/storage/adapter/AsyncStorageAdapter.js.map +1 -1
  59. package/lib-esm/storage/adapter/AsyncStorageDatabase.js.map +1 -1
  60. package/lib-esm/storage/adapter/IndexedDBAdapter.d.ts +28 -29
  61. package/lib-esm/storage/adapter/IndexedDBAdapter.js +489 -884
  62. package/lib-esm/storage/adapter/IndexedDBAdapter.js.map +1 -1
  63. package/lib-esm/storage/adapter/StorageAdapterBase.d.ts +134 -0
  64. package/lib-esm/storage/adapter/StorageAdapterBase.js +437 -0
  65. package/lib-esm/storage/adapter/StorageAdapterBase.js.map +1 -0
  66. package/lib-esm/storage/relationship.d.ts +9 -0
  67. package/lib-esm/storage/relationship.js +9 -0
  68. package/lib-esm/storage/relationship.js.map +1 -1
  69. package/lib-esm/storage/storage.d.ts +1 -1
  70. package/lib-esm/storage/storage.js +4 -3
  71. package/lib-esm/storage/storage.js.map +1 -1
  72. package/lib-esm/sync/index.d.ts +15 -1
  73. package/lib-esm/sync/index.js +82 -15
  74. package/lib-esm/sync/index.js.map +1 -1
  75. package/lib-esm/sync/outbox.js +14 -7
  76. package/lib-esm/sync/outbox.js.map +1 -1
  77. package/lib-esm/sync/processors/mutation.d.ts +10 -1
  78. package/lib-esm/sync/processors/mutation.js +33 -12
  79. package/lib-esm/sync/processors/mutation.js.map +1 -1
  80. package/lib-esm/sync/processors/subscription.d.ts +7 -1
  81. package/lib-esm/sync/processors/subscription.js +197 -136
  82. package/lib-esm/sync/processors/subscription.js.map +1 -1
  83. package/lib-esm/sync/processors/sync.d.ts +1 -1
  84. package/lib-esm/sync/processors/sync.js.map +1 -1
  85. package/lib-esm/sync/utils.d.ts +66 -2
  86. package/lib-esm/sync/utils.js +261 -18
  87. package/lib-esm/sync/utils.js.map +1 -1
  88. package/lib-esm/types.d.ts +9 -1
  89. package/lib-esm/types.js.map +1 -1
  90. package/lib-esm/util.d.ts +16 -0
  91. package/lib-esm/util.js +32 -3
  92. package/lib-esm/util.js.map +1 -1
  93. package/package.json +12 -11
  94. package/src/datastore/datastore.ts +288 -159
  95. package/src/predicates/index.ts +145 -175
  96. package/src/predicates/next.ts +114 -81
  97. package/src/storage/adapter/AsyncStorageAdapter.ts +97 -563
  98. package/src/storage/adapter/AsyncStorageDatabase.ts +2 -2
  99. package/src/storage/adapter/IndexedDBAdapter.ts +318 -770
  100. package/src/storage/adapter/StorageAdapterBase.ts +545 -0
  101. package/src/storage/relationship.ts +9 -0
  102. package/src/storage/storage.ts +12 -9
  103. package/src/sync/index.ts +108 -20
  104. package/src/sync/outbox.ts +17 -11
  105. package/src/sync/processors/mutation.ts +35 -4
  106. package/src/sync/processors/subscription.ts +124 -10
  107. package/src/sync/processors/sync.ts +4 -1
  108. package/src/sync/utils.ts +285 -15
  109. package/src/types.ts +15 -2
  110. package/src/util.ts +40 -1
  111. package/CHANGELOG.md +0 -904
@@ -19,11 +19,75 @@ export declare enum TransformerMutationType {
19
19
  export declare function getMetadataFields(): ReadonlyArray<string>;
20
20
  export declare function generateSelectionSet(namespace: SchemaNamespace, modelDefinition: SchemaModel | SchemaNonModel): string;
21
21
  export declare function getAuthorizationRules(modelDefinition: SchemaModel): AuthorizationRule[];
22
- export declare function buildSubscriptionGraphQLOperation(namespace: SchemaNamespace, modelDefinition: SchemaModel, transformerMutationType: TransformerMutationType, isOwnerAuthorization: boolean, ownerField: string): [TransformerMutationType, string, string];
22
+ export declare function buildSubscriptionGraphQLOperation(namespace: SchemaNamespace, modelDefinition: SchemaModel, transformerMutationType: TransformerMutationType, isOwnerAuthorization: boolean, ownerField: string, filterArg?: boolean): [TransformerMutationType, string, string];
23
23
  export declare function buildGraphQLOperation(namespace: SchemaNamespace, modelDefinition: SchemaModel, graphQLOpType: keyof typeof GraphQLOperationType): [TransformerMutationType, string, string][];
24
24
  export declare function createMutationInstanceFromModelOperation<T extends PersistentModel>(relationships: RelationshipType, modelDefinition: SchemaModel, opType: OpType, model: PersistentModelConstructor<T>, element: T, condition: GraphQLCondition, MutationEventConstructor: PersistentModelConstructor<MutationEvent>, modelInstanceCreator: ModelInstanceCreator, id?: string): MutationEvent;
25
25
  export declare function predicateToGraphQLCondition(predicate: PredicatesGroup<any>, modelDefinition: SchemaModel): GraphQLCondition;
26
- export declare function predicateToGraphQLFilter(predicatesGroup: PredicatesGroup<any>, fieldsToOmit?: string[]): GraphQLFilter;
26
+ /**
27
+ * @param predicatesGroup - Predicate Group
28
+ @returns GQL Filter Expression from Predicate Group
29
+
30
+ @remarks Flattens redundant list predicates
31
+ @example
32
+
33
+ ```js
34
+ { and:[{ and:[{ username: { eq: 'bob' }}] }] }
35
+ ```
36
+ Becomes
37
+ ```js
38
+ { and:[{ username: { eq: 'bob' }}] }
39
+ ```
40
+ */
41
+ export declare function predicateToGraphQLFilter(predicatesGroup: PredicatesGroup<any>, fieldsToOmit?: string[], root?: boolean): GraphQLFilter;
42
+ /**
43
+ *
44
+ * @param group - selective sync predicate group
45
+ * @returns set of distinct field names in the filter group
46
+ */
47
+ export declare function filterFields(group?: PredicatesGroup<any>): Set<string>;
48
+ /**
49
+ *
50
+ * @param modelDefinition
51
+ * @returns set of field names used with dynamic auth modes configured for the provided model definition
52
+ */
53
+ export declare function dynamicAuthFields(modelDefinition: SchemaModel): Set<string>;
54
+ /**
55
+ *
56
+ * @param group - selective sync predicate group
57
+ * @returns the total number of OR'd predicates in the filter group
58
+ *
59
+ * @example returns 2
60
+ * ```js
61
+ * { type: "or", predicates: [
62
+ * { field: "username", operator: "beginsWith", operand: "a" },
63
+ * { field: "title", operator: "contains", operand: "abc" },
64
+ * ]}
65
+ * ```
66
+ */
67
+ export declare function countFilterCombinations(group?: PredicatesGroup<any>): number;
68
+ /**
69
+ *
70
+ * @param group - selective sync predicate group
71
+ * @returns name of repeated field | null
72
+ *
73
+ * @example returns "username"
74
+ * ```js
75
+ * { type: "and", predicates: [
76
+ * { field: "username", operator: "beginsWith", operand: "a" },
77
+ * { field: "username", operator: "contains", operand: "abc" },
78
+ * ] }
79
+ * ```
80
+ */
81
+ export declare function repeatedFieldInGroup(group?: PredicatesGroup<any>): string | null;
82
+ export declare enum RTFError {
83
+ UnknownField = 0,
84
+ MaxAttributes = 1,
85
+ MaxCombinations = 2,
86
+ RepeatedFieldname = 3,
87
+ NotGroup = 4,
88
+ FieldNotInType = 5
89
+ }
90
+ export declare function generateRTFRemediation(errorType: RTFError, modelDefinition: SchemaModel, predicatesGroup: PredicatesGroup<any> | undefined): string;
27
91
  export declare function getUserGroupsFromToken(token: {
28
92
  [field: string]: any;
29
93
  }, rule: AuthorizationRule): string[];
package/lib/sync/utils.js CHANGED
@@ -165,7 +165,7 @@ function getAuthorizationRules(modelDefinition) {
165
165
  // Multiple rules can be declared for allow: owner
166
166
  rules.forEach(function (rule) {
167
167
  // setting defaults for backwards compatibility with old cli
168
- var _a = rule.identityClaim, identityClaim = _a === void 0 ? 'cognito:username' : _a, _b = rule.ownerField, ownerField = _b === void 0 ? 'owner' : _b, _c = rule.operations, operations = _c === void 0 ? ['create', 'update', 'delete', 'read'] : _c, _d = rule.provider, provider = _d === void 0 ? 'userPools' : _d, _e = rule.groupClaim, groupClaim = _e === void 0 ? 'cognito:groups' : _e, _f = rule.allow, authStrategy = _f === void 0 ? 'iam' : _f, _g = rule.groups, groups = _g === void 0 ? [] : _g;
168
+ var _a = rule.identityClaim, identityClaim = _a === void 0 ? 'cognito:username' : _a, _b = rule.ownerField, ownerField = _b === void 0 ? 'owner' : _b, _c = rule.operations, operations = _c === void 0 ? ['create', 'update', 'delete', 'read'] : _c, _d = rule.provider, provider = _d === void 0 ? 'userPools' : _d, _e = rule.groupClaim, groupClaim = _e === void 0 ? 'cognito:groups' : _e, _f = rule.allow, authStrategy = _f === void 0 ? 'iam' : _f, _g = rule.groups, groups = _g === void 0 ? [] : _g, _h = rule.groupsField, groupsField = _h === void 0 ? '' : _h;
169
169
  var isReadAuthorized = operations.includes('read');
170
170
  var isOwnerAuth = authStrategy === 'owner';
171
171
  if (!isReadAuthorized && !isOwnerAuth) {
@@ -178,6 +178,7 @@ function getAuthorizationRules(modelDefinition) {
178
178
  groupClaim: groupClaim,
179
179
  authStrategy: authStrategy,
180
180
  groups: groups,
181
+ groupsField: groupsField,
181
182
  areSubscriptionsPublic: false,
182
183
  };
183
184
  if (isOwnerAuth) {
@@ -187,7 +188,7 @@ function getAuthorizationRules(modelDefinition) {
187
188
  .concat(modelDefinition.attributes || [])
188
189
  .find(function (attr) { return attr && attr.type === 'model'; });
189
190
  // find the subscriptions level. ON is default
190
- var _h = (modelConfig || {}).properties, _j = (_h === void 0 ? {} : _h).subscriptions, _k = (_j === void 0 ? {} : _j).level, level = _k === void 0 ? 'on' : _k;
191
+ var _j = (modelConfig || {}).properties, _k = (_j === void 0 ? {} : _j).subscriptions, _l = (_k === void 0 ? {} : _k).level, level = _l === void 0 ? 'on' : _l;
191
192
  // treat subscriptions as public for owner auth with unprotected reads
192
193
  // when `read` is omitted from `operations`
193
194
  authRule.areSubscriptionsPublic =
@@ -203,20 +204,27 @@ function getAuthorizationRules(modelDefinition) {
203
204
  return resultRules;
204
205
  }
205
206
  exports.getAuthorizationRules = getAuthorizationRules;
206
- function buildSubscriptionGraphQLOperation(namespace, modelDefinition, transformerMutationType, isOwnerAuthorization, ownerField) {
207
+ function buildSubscriptionGraphQLOperation(namespace, modelDefinition, transformerMutationType, isOwnerAuthorization, ownerField, filterArg) {
208
+ if (filterArg === void 0) { filterArg = false; }
207
209
  var selectionSet = generateSelectionSet(namespace, modelDefinition);
208
- var typeName = modelDefinition.name, pluralTypeName = modelDefinition.pluralName;
210
+ var typeName = modelDefinition.name;
209
211
  var opName = "on" + transformerMutationType + typeName;
210
- var docArgs = '';
211
- var opArgs = '';
212
+ var docArgs = [];
213
+ var opArgs = [];
214
+ if (filterArg) {
215
+ docArgs.push("$filter: ModelSubscription" + typeName + "FilterInput");
216
+ opArgs.push('filter: $filter');
217
+ }
212
218
  if (isOwnerAuthorization) {
213
- docArgs = "($" + ownerField + ": String!)";
214
- opArgs = "(" + ownerField + ": $" + ownerField + ")";
219
+ docArgs.push("$" + ownerField + ": String!");
220
+ opArgs.push(ownerField + ": $" + ownerField);
215
221
  }
222
+ var docStr = docArgs.length ? "(" + docArgs.join(',') + ")" : '';
223
+ var opStr = opArgs.length ? "(" + opArgs.join(',') + ")" : '';
216
224
  return [
217
225
  transformerMutationType,
218
226
  opName,
219
- "subscription operation" + docArgs + "{\n\t\t\t" + opName + opArgs + "{\n\t\t\t\t" + selectionSet + "\n\t\t\t}\n\t\t}",
227
+ "subscription operation" + docStr + "{\n\t\t\t" + opName + opStr + "{\n\t\t\t\t" + selectionSet + "\n\t\t\t}\n\t\t}",
220
228
  ];
221
229
  }
222
230
  exports.buildSubscriptionGraphQLOperation = buildSubscriptionGraphQLOperation;
@@ -322,8 +330,24 @@ function predicateToGraphQLCondition(predicate, modelDefinition) {
322
330
  return predicateToGraphQLFilter(predicate, keyFields);
323
331
  }
324
332
  exports.predicateToGraphQLCondition = predicateToGraphQLCondition;
325
- function predicateToGraphQLFilter(predicatesGroup, fieldsToOmit) {
333
+ /**
334
+ * @param predicatesGroup - Predicate Group
335
+ @returns GQL Filter Expression from Predicate Group
336
+
337
+ @remarks Flattens redundant list predicates
338
+ @example
339
+
340
+ ```js
341
+ { and:[{ and:[{ username: { eq: 'bob' }}] }] }
342
+ ```
343
+ Becomes
344
+ ```js
345
+ { and:[{ username: { eq: 'bob' }}] }
346
+ ```
347
+ */
348
+ function predicateToGraphQLFilter(predicatesGroup, fieldsToOmit, root) {
326
349
  if (fieldsToOmit === void 0) { fieldsToOmit = []; }
350
+ if (root === void 0) { root = true; }
327
351
  var result = {};
328
352
  if (!predicatesGroup || !Array.isArray(predicatesGroup.predicates)) {
329
353
  return result;
@@ -331,9 +355,7 @@ function predicateToGraphQLFilter(predicatesGroup, fieldsToOmit) {
331
355
  var type = predicatesGroup.type, predicates = predicatesGroup.predicates;
332
356
  var isList = type === 'and' || type === 'or';
333
357
  result[type] = isList ? [] : {};
334
- var appendToFilter = function (value) {
335
- return isList ? result[type].push(value) : (result[type] = value);
336
- };
358
+ var children = [];
337
359
  predicates.forEach(function (predicate) {
338
360
  var _a, _b;
339
361
  if (types_1.isPredicateObj(predicate)) {
@@ -343,11 +365,34 @@ function predicateToGraphQLFilter(predicatesGroup, fieldsToOmit) {
343
365
  var gqlField = (_a = {},
344
366
  _a[field] = (_b = {}, _b[operator] = operand, _b),
345
367
  _a);
346
- appendToFilter(gqlField);
368
+ children.push(gqlField);
347
369
  return;
348
370
  }
349
- var child = predicateToGraphQLFilter(predicate, fieldsToOmit);
350
- Object.keys(child).length > 0 && appendToFilter(child);
371
+ var child = predicateToGraphQLFilter(predicate, fieldsToOmit, false);
372
+ if (Object.keys(child).length > 0) {
373
+ children.push(child);
374
+ }
375
+ });
376
+ // flatten redundant list predicates
377
+ if (children.length === 1) {
378
+ var _a = tslib_1.__read(children, 1), child = _a[0];
379
+ if (
380
+ // any nested list node
381
+ (isList && !root) ||
382
+ // root list node where the only child is also a list node
383
+ (isList && root && ('and' in child || 'or' in child))) {
384
+ delete result[type];
385
+ Object.assign(result, child);
386
+ return result;
387
+ }
388
+ }
389
+ children.forEach(function (child) {
390
+ if (isList) {
391
+ result[type].push(child);
392
+ }
393
+ else {
394
+ result[type] = child;
395
+ }
351
396
  });
352
397
  if (isList) {
353
398
  if (result[type].length === 0)
@@ -360,6 +405,209 @@ function predicateToGraphQLFilter(predicatesGroup, fieldsToOmit) {
360
405
  return result;
361
406
  }
362
407
  exports.predicateToGraphQLFilter = predicateToGraphQLFilter;
408
+ /**
409
+ *
410
+ * @param group - selective sync predicate group
411
+ * @returns set of distinct field names in the filter group
412
+ */
413
+ function filterFields(group) {
414
+ var fields = new Set();
415
+ if (!group || !Array.isArray(group.predicates))
416
+ return fields;
417
+ var predicates = group.predicates;
418
+ var stack = tslib_1.__spread(predicates);
419
+ while (stack.length > 0) {
420
+ var current = stack.pop();
421
+ if (types_1.isPredicateObj(current)) {
422
+ fields.add(current.field);
423
+ }
424
+ else if (types_1.isPredicateGroup(current)) {
425
+ stack.push.apply(stack, tslib_1.__spread(current.predicates));
426
+ }
427
+ }
428
+ return fields;
429
+ }
430
+ exports.filterFields = filterFields;
431
+ /**
432
+ *
433
+ * @param modelDefinition
434
+ * @returns set of field names used with dynamic auth modes configured for the provided model definition
435
+ */
436
+ function dynamicAuthFields(modelDefinition) {
437
+ var e_1, _a;
438
+ var rules = getAuthorizationRules(modelDefinition);
439
+ var fields = new Set();
440
+ try {
441
+ for (var rules_1 = tslib_1.__values(rules), rules_1_1 = rules_1.next(); !rules_1_1.done; rules_1_1 = rules_1.next()) {
442
+ var rule = rules_1_1.value;
443
+ if (rule.groupsField && !rule.groups.length) {
444
+ // dynamic group rule will have no values in `rule.groups`
445
+ fields.add(rule.groupsField);
446
+ }
447
+ else if (rule.ownerField) {
448
+ fields.add(rule.ownerField);
449
+ }
450
+ }
451
+ }
452
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
453
+ finally {
454
+ try {
455
+ if (rules_1_1 && !rules_1_1.done && (_a = rules_1.return)) _a.call(rules_1);
456
+ }
457
+ finally { if (e_1) throw e_1.error; }
458
+ }
459
+ return fields;
460
+ }
461
+ exports.dynamicAuthFields = dynamicAuthFields;
462
+ /**
463
+ *
464
+ * @param group - selective sync predicate group
465
+ * @returns the total number of OR'd predicates in the filter group
466
+ *
467
+ * @example returns 2
468
+ * ```js
469
+ * { type: "or", predicates: [
470
+ * { field: "username", operator: "beginsWith", operand: "a" },
471
+ * { field: "title", operator: "contains", operand: "abc" },
472
+ * ]}
473
+ * ```
474
+ */
475
+ function countFilterCombinations(group) {
476
+ if (!group || !Array.isArray(group.predicates))
477
+ return 0;
478
+ var count = 0;
479
+ var stack = [group];
480
+ while (stack.length > 0) {
481
+ var current = stack.pop();
482
+ if (types_1.isPredicateGroup(current)) {
483
+ var predicates = current.predicates, type = current.type;
484
+ // ignore length = 1; groups with 1 predicate will get flattened when converted to gqlFilter
485
+ if (type === 'or' && predicates.length > 1) {
486
+ count += predicates.length;
487
+ }
488
+ stack.push.apply(stack, tslib_1.__spread(predicates));
489
+ }
490
+ }
491
+ // if we didn't encounter any OR groups, default to 1
492
+ return count || 1;
493
+ }
494
+ exports.countFilterCombinations = countFilterCombinations;
495
+ /**
496
+ *
497
+ * @param group - selective sync predicate group
498
+ * @returns name of repeated field | null
499
+ *
500
+ * @example returns "username"
501
+ * ```js
502
+ * { type: "and", predicates: [
503
+ * { field: "username", operator: "beginsWith", operand: "a" },
504
+ * { field: "username", operator: "contains", operand: "abc" },
505
+ * ] }
506
+ * ```
507
+ */
508
+ function repeatedFieldInGroup(group) {
509
+ if (!group || !Array.isArray(group.predicates))
510
+ return null;
511
+ // convert to filter in order to flatten redundant groups
512
+ var gqlFilter = predicateToGraphQLFilter(group);
513
+ var stack = [gqlFilter];
514
+ var hasGroupRepeatedFields = function (fields) {
515
+ var e_2, _a;
516
+ var seen = {};
517
+ try {
518
+ for (var fields_1 = tslib_1.__values(fields), fields_1_1 = fields_1.next(); !fields_1_1.done; fields_1_1 = fields_1.next()) {
519
+ var f = fields_1_1.value;
520
+ var _b = tslib_1.__read(Object.keys(f), 1), fieldName = _b[0];
521
+ if (seen[fieldName]) {
522
+ return fieldName;
523
+ }
524
+ seen[fieldName] = true;
525
+ }
526
+ }
527
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
528
+ finally {
529
+ try {
530
+ if (fields_1_1 && !fields_1_1.done && (_a = fields_1.return)) _a.call(fields_1);
531
+ }
532
+ finally { if (e_2) throw e_2.error; }
533
+ }
534
+ return null;
535
+ };
536
+ while (stack.length > 0) {
537
+ var current = stack.pop();
538
+ var _a = tslib_1.__read(Object.keys(current), 1), key = _a[0];
539
+ var values = current[key];
540
+ if (!Array.isArray(values)) {
541
+ return null;
542
+ }
543
+ // field value will be single object
544
+ var predicateObjects = values.filter(function (v) { return !Array.isArray(Object.values(v)[0]); });
545
+ // group value will be an array
546
+ var predicateGroups = values.filter(function (v) {
547
+ return Array.isArray(Object.values(v)[0]);
548
+ });
549
+ if (key === 'and') {
550
+ var repeatedField = hasGroupRepeatedFields(predicateObjects);
551
+ if (repeatedField) {
552
+ return repeatedField;
553
+ }
554
+ }
555
+ stack.push.apply(stack, tslib_1.__spread(predicateGroups));
556
+ }
557
+ return null;
558
+ }
559
+ exports.repeatedFieldInGroup = repeatedFieldInGroup;
560
+ var RTFError;
561
+ (function (RTFError) {
562
+ RTFError[RTFError["UnknownField"] = 0] = "UnknownField";
563
+ RTFError[RTFError["MaxAttributes"] = 1] = "MaxAttributes";
564
+ RTFError[RTFError["MaxCombinations"] = 2] = "MaxCombinations";
565
+ RTFError[RTFError["RepeatedFieldname"] = 3] = "RepeatedFieldname";
566
+ RTFError[RTFError["NotGroup"] = 4] = "NotGroup";
567
+ RTFError[RTFError["FieldNotInType"] = 5] = "FieldNotInType";
568
+ })(RTFError = exports.RTFError || (exports.RTFError = {}));
569
+ function generateRTFRemediation(errorType, modelDefinition, predicatesGroup) {
570
+ var selSyncFields = filterFields(predicatesGroup);
571
+ var selSyncFieldStr = tslib_1.__spread(selSyncFields).join(', ');
572
+ var dynamicAuthModeFields = dynamicAuthFields(modelDefinition);
573
+ var dynamicAuthFieldsStr = tslib_1.__spread(dynamicAuthModeFields).join(', ');
574
+ var filterCombinations = countFilterCombinations(predicatesGroup);
575
+ var repeatedField = repeatedFieldInGroup(predicatesGroup);
576
+ switch (errorType) {
577
+ case RTFError.UnknownField:
578
+ return ("Your API was generated with an older version of the CLI that doesn't support backend subscription filtering." +
579
+ 'To enable backend subscription filtering, upgrade your Amplify CLI to the latest version and push your app by running `amplify upgrade` followed by `amplify push`');
580
+ case RTFError.MaxAttributes: {
581
+ var message = "Your selective sync expression for " + modelDefinition.name + " contains " + selSyncFields.size + " different model fields: " + selSyncFieldStr + ".\n\n";
582
+ if (dynamicAuthModeFields.size > 0) {
583
+ message +=
584
+ "Note: the number of fields you can use with selective sync is affected by @auth rules configured on the model.\n\n" +
585
+ "Dynamic auth modes, such as owner auth and dynamic group auth each utilize 1 field.\n" +
586
+ ("You currently have " + dynamicAuthModeFields.size + " dynamic auth mode(s) configured on this model: " + dynamicAuthFieldsStr + ".");
587
+ }
588
+ return message;
589
+ }
590
+ case RTFError.MaxCombinations: {
591
+ var message = "Your selective sync expression for " + modelDefinition.name + " contains " + filterCombinations + " field combinations (total number of predicates in an OR expression).\n\n";
592
+ if (dynamicAuthModeFields.size > 0) {
593
+ message +=
594
+ "Note: the number of fields you can use with selective sync is affected by @auth rules configured on the model.\n\n" +
595
+ "Dynamic auth modes, such as owner auth and dynamic group auth factor in to the number of combinations you're using.\n" +
596
+ ("You currently have " + dynamicAuthModeFields.size + " dynamic auth mode(s) configured on this model: " + dynamicAuthFieldsStr + ".");
597
+ }
598
+ return message;
599
+ }
600
+ case RTFError.RepeatedFieldname:
601
+ return "Your selective sync expression for " + modelDefinition.name + " contains multiple entries for " + repeatedField + " in the same AND group.";
602
+ case RTFError.NotGroup:
603
+ return ("Your selective sync expression for " + modelDefinition.name + " uses a `not` group. If you'd like to filter subscriptions in the backend, " +
604
+ "rewrite your expression using `ne` or `notContains` operators.");
605
+ case RTFError.FieldNotInType:
606
+ // no remediation instructions. We'll surface the message directly
607
+ return '';
608
+ }
609
+ }
610
+ exports.generateRTFRemediation = generateRTFRemediation;
363
611
  function getUserGroupsFromToken(token, rule) {
364
612
  // validate token against groupClaim
365
613
  var userGroups = token[rule.groupClaim] || [];
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/sync/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/sync/utils.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -33,7 +33,14 @@ export declare type SchemaModel = {
33
33
  name: string;
34
34
  pluralName: string;
35
35
  attributes?: ModelAttributes;
36
+ /**
37
+ * Explicitly defined fields.
38
+ */
36
39
  fields: ModelFields;
40
+ /**
41
+ * Explicitly defined fields plus implied fields. (E.g., foreign keys.)
42
+ */
43
+ allFields?: ModelFields;
37
44
  syncable?: boolean;
38
45
  };
39
46
  export declare function isSchemaModel(obj: any): obj is SchemaModel;
@@ -167,6 +174,7 @@ export declare type AuthorizationRule = {
167
174
  provider: 'userPools' | 'oidc' | 'iam' | 'apiKey';
168
175
  groupClaim: string;
169
176
  groups: [string];
177
+ groupsField: string;
170
178
  authStrategy: 'owner' | 'groups' | 'private' | 'public';
171
179
  areSubscriptionsPublic: boolean;
172
180
  };
@@ -282,7 +290,7 @@ export declare type ModelInit<T extends PersistentModel, M extends PersistentMod
282
290
  [P in keyof PickOptionalRelatives<ModelInitBase<T, M>>]+?: SettableFieldType<ModelInitBase<T, M>[P]>;
283
291
  };
284
292
  declare type DeepWritable<T> = {
285
- -readonly [P in keyof T]: T[P] extends TypeName<T[P]> ? T[P] : T[P] extends Promise<infer InnerPromiseType> ? InnerPromiseType : T[P] extends AsyncCollection<infer InnerCollectionType> ? InnerCollectionType[] | undefined : DeepWritable<T[P]>;
293
+ -readonly [P in keyof T]: T[P] extends TypeName<T[P]> ? T[P] : T[P] extends Promise<infer InnerPromiseType> ? undefined extends InnerPromiseType ? InnerPromiseType | null : InnerPromiseType : T[P] extends AsyncCollection<infer InnerCollectionType> ? InnerCollectionType[] | undefined | null : DeepWritable<T[P]>;
286
294
  };
287
295
  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>>>;
288
296
  export declare type ModelInstanceMetadata = {
package/lib/types.js.map CHANGED
@@ -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/util.d.ts CHANGED
@@ -187,3 +187,19 @@ export declare const extractTargetNamesFromSrc: (src: {
187
187
  export declare const indexNameFromKeys: (keys: string[]) => string;
188
188
  export declare const keysEqual: (keysA: any, keysB: any) => boolean;
189
189
  export declare const getIndexKeys: (namespace: SchemaNamespace, modelName: string) => string[];
190
+ /**
191
+ * Determine what the managed timestamp field names are for the given model definition
192
+ * and return the mapping.
193
+ *
194
+ * All timestamp fields are included in the mapping, regardless of whether the final field
195
+ * names are the defaults or customized in the `@model` directive.
196
+ *
197
+ * @see https://docs.amplify.aws/cli/graphql/data-modeling/#customize-creation-and-update-timestamps
198
+ *
199
+ * @param definition modelDefinition to inspect.
200
+ * @returns An object mapping `createdAt` and `updatedAt` to their field names.
201
+ */
202
+ export declare const getTimestampFields: (definition: SchemaModel) => {
203
+ createdAt: string;
204
+ updatedAt: string;
205
+ };
package/lib/util.js CHANGED
@@ -859,8 +859,14 @@ exports.establishRelationAndKeys = function (namespace) {
859
859
  if (connectionType === 'BELONGS_TO') {
860
860
  var targetNames = exports.extractTargetNamesFromSrc(fieldAttribute.association);
861
861
  if (targetNames) {
862
- var idxName = exports.indexNameFromKeys(targetNames);
863
- relationship[mKey].indexes.push([idxName, targetNames]);
862
+ var idxName_1 = exports.indexNameFromKeys(targetNames);
863
+ var idxExists = relationship[mKey].indexes.find(function (_c) {
864
+ var _d = tslib_1.__read(_c, 1), index = _d[0];
865
+ return index === idxName_1;
866
+ });
867
+ if (!idxExists) {
868
+ relationship[mKey].indexes.push([idxName_1, targetNames]);
869
+ }
864
870
  }
865
871
  }
866
872
  }
@@ -984,4 +990,27 @@ exports.getIndexKeys = function (namespace, modelName) {
984
990
  return [exports.ID];
985
991
  };
986
992
  //#endregion
993
+ /**
994
+ * Determine what the managed timestamp field names are for the given model definition
995
+ * and return the mapping.
996
+ *
997
+ * All timestamp fields are included in the mapping, regardless of whether the final field
998
+ * names are the defaults or customized in the `@model` directive.
999
+ *
1000
+ * @see https://docs.amplify.aws/cli/graphql/data-modeling/#customize-creation-and-update-timestamps
1001
+ *
1002
+ * @param definition modelDefinition to inspect.
1003
+ * @returns An object mapping `createdAt` and `updatedAt` to their field names.
1004
+ */
1005
+ exports.getTimestampFields = function (definition) {
1006
+ var _c, _d;
1007
+ var modelAttributes = (_c = definition.attributes) === null || _c === void 0 ? void 0 : _c.find(function (attr) { return attr.type === 'model'; });
1008
+ var timestampFieldsMap = (_d = modelAttributes === null || modelAttributes === void 0 ? void 0 : modelAttributes.properties) === null || _d === void 0 ? void 0 : _d.timestamps;
1009
+ var defaultFields = {
1010
+ createdAt: 'createdAt',
1011
+ updatedAt: 'updatedAt',
1012
+ };
1013
+ var customFields = timestampFieldsMap || {};
1014
+ return tslib_1.__assign(tslib_1.__assign({}, defaultFields), customFields);
1015
+ };
987
1016
  //# sourceMappingURL=util.js.map