@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[];
@@ -1,8 +1,8 @@
1
- import { __assign, __awaiter, __generator, __read } from "tslib";
1
+ import { __assign, __awaiter, __generator, __read, __spread, __values } from "tslib";
2
2
  import { GRAPHQL_AUTH_MODE } from '@aws-amplify/api-graphql';
3
3
  import { GraphQLAuthError } from '@aws-amplify/api';
4
4
  import { Logger } from '@aws-amplify/core';
5
- import { isEnumFieldType, isGraphQLScalarType, isPredicateObj, isSchemaModel, isSchemaModelWithAttributes, isTargetNameAssociation, isNonModelFieldType, OpType, ModelOperation, } from '../types';
5
+ import { isEnumFieldType, isGraphQLScalarType, isPredicateObj, isSchemaModel, isSchemaModelWithAttributes, isTargetNameAssociation, isNonModelFieldType, OpType, ModelOperation, isPredicateGroup, } from '../types';
6
6
  import { extractPrimaryKeyFieldNames, establishRelationAndKeys, IDENTIFIER_KEY_SEPARATOR, } from '../util';
7
7
  var logger = new Logger('DataStore');
8
8
  var GraphQLOperationType;
@@ -161,7 +161,7 @@ export function getAuthorizationRules(modelDefinition) {
161
161
  // Multiple rules can be declared for allow: owner
162
162
  rules.forEach(function (rule) {
163
163
  // setting defaults for backwards compatibility with old cli
164
- 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;
164
+ 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;
165
165
  var isReadAuthorized = operations.includes('read');
166
166
  var isOwnerAuth = authStrategy === 'owner';
167
167
  if (!isReadAuthorized && !isOwnerAuth) {
@@ -174,6 +174,7 @@ export function getAuthorizationRules(modelDefinition) {
174
174
  groupClaim: groupClaim,
175
175
  authStrategy: authStrategy,
176
176
  groups: groups,
177
+ groupsField: groupsField,
177
178
  areSubscriptionsPublic: false,
178
179
  };
179
180
  if (isOwnerAuth) {
@@ -183,7 +184,7 @@ export function getAuthorizationRules(modelDefinition) {
183
184
  .concat(modelDefinition.attributes || [])
184
185
  .find(function (attr) { return attr && attr.type === 'model'; });
185
186
  // find the subscriptions level. ON is default
186
- var _h = (modelConfig || {}).properties, _j = (_h === void 0 ? {} : _h).subscriptions, _k = (_j === void 0 ? {} : _j).level, level = _k === void 0 ? 'on' : _k;
187
+ var _j = (modelConfig || {}).properties, _k = (_j === void 0 ? {} : _j).subscriptions, _l = (_k === void 0 ? {} : _k).level, level = _l === void 0 ? 'on' : _l;
187
188
  // treat subscriptions as public for owner auth with unprotected reads
188
189
  // when `read` is omitted from `operations`
189
190
  authRule.areSubscriptionsPublic =
@@ -198,20 +199,27 @@ export function getAuthorizationRules(modelDefinition) {
198
199
  });
199
200
  return resultRules;
200
201
  }
201
- export function buildSubscriptionGraphQLOperation(namespace, modelDefinition, transformerMutationType, isOwnerAuthorization, ownerField) {
202
+ export function buildSubscriptionGraphQLOperation(namespace, modelDefinition, transformerMutationType, isOwnerAuthorization, ownerField, filterArg) {
203
+ if (filterArg === void 0) { filterArg = false; }
202
204
  var selectionSet = generateSelectionSet(namespace, modelDefinition);
203
- var typeName = modelDefinition.name, pluralTypeName = modelDefinition.pluralName;
205
+ var typeName = modelDefinition.name;
204
206
  var opName = "on" + transformerMutationType + typeName;
205
- var docArgs = '';
206
- var opArgs = '';
207
+ var docArgs = [];
208
+ var opArgs = [];
209
+ if (filterArg) {
210
+ docArgs.push("$filter: ModelSubscription" + typeName + "FilterInput");
211
+ opArgs.push('filter: $filter');
212
+ }
207
213
  if (isOwnerAuthorization) {
208
- docArgs = "($" + ownerField + ": String!)";
209
- opArgs = "(" + ownerField + ": $" + ownerField + ")";
214
+ docArgs.push("$" + ownerField + ": String!");
215
+ opArgs.push(ownerField + ": $" + ownerField);
210
216
  }
217
+ var docStr = docArgs.length ? "(" + docArgs.join(',') + ")" : '';
218
+ var opStr = opArgs.length ? "(" + opArgs.join(',') + ")" : '';
211
219
  return [
212
220
  transformerMutationType,
213
221
  opName,
214
- "subscription operation" + docArgs + "{\n\t\t\t" + opName + opArgs + "{\n\t\t\t\t" + selectionSet + "\n\t\t\t}\n\t\t}",
222
+ "subscription operation" + docStr + "{\n\t\t\t" + opName + opStr + "{\n\t\t\t\t" + selectionSet + "\n\t\t\t}\n\t\t}",
215
223
  ];
216
224
  }
217
225
  export function buildGraphQLOperation(namespace, modelDefinition, graphQLOpType) {
@@ -313,8 +321,24 @@ export function predicateToGraphQLCondition(predicate, modelDefinition) {
313
321
  var keyFields = extractPrimaryKeyFieldNames(modelDefinition);
314
322
  return predicateToGraphQLFilter(predicate, keyFields);
315
323
  }
316
- export function predicateToGraphQLFilter(predicatesGroup, fieldsToOmit) {
324
+ /**
325
+ * @param predicatesGroup - Predicate Group
326
+ @returns GQL Filter Expression from Predicate Group
327
+
328
+ @remarks Flattens redundant list predicates
329
+ @example
330
+
331
+ ```js
332
+ { and:[{ and:[{ username: { eq: 'bob' }}] }] }
333
+ ```
334
+ Becomes
335
+ ```js
336
+ { and:[{ username: { eq: 'bob' }}] }
337
+ ```
338
+ */
339
+ export function predicateToGraphQLFilter(predicatesGroup, fieldsToOmit, root) {
317
340
  if (fieldsToOmit === void 0) { fieldsToOmit = []; }
341
+ if (root === void 0) { root = true; }
318
342
  var result = {};
319
343
  if (!predicatesGroup || !Array.isArray(predicatesGroup.predicates)) {
320
344
  return result;
@@ -322,9 +346,7 @@ export function predicateToGraphQLFilter(predicatesGroup, fieldsToOmit) {
322
346
  var type = predicatesGroup.type, predicates = predicatesGroup.predicates;
323
347
  var isList = type === 'and' || type === 'or';
324
348
  result[type] = isList ? [] : {};
325
- var appendToFilter = function (value) {
326
- return isList ? result[type].push(value) : (result[type] = value);
327
- };
349
+ var children = [];
328
350
  predicates.forEach(function (predicate) {
329
351
  var _a, _b;
330
352
  if (isPredicateObj(predicate)) {
@@ -334,11 +356,34 @@ export function predicateToGraphQLFilter(predicatesGroup, fieldsToOmit) {
334
356
  var gqlField = (_a = {},
335
357
  _a[field] = (_b = {}, _b[operator] = operand, _b),
336
358
  _a);
337
- appendToFilter(gqlField);
359
+ children.push(gqlField);
338
360
  return;
339
361
  }
340
- var child = predicateToGraphQLFilter(predicate, fieldsToOmit);
341
- Object.keys(child).length > 0 && appendToFilter(child);
362
+ var child = predicateToGraphQLFilter(predicate, fieldsToOmit, false);
363
+ if (Object.keys(child).length > 0) {
364
+ children.push(child);
365
+ }
366
+ });
367
+ // flatten redundant list predicates
368
+ if (children.length === 1) {
369
+ var _a = __read(children, 1), child = _a[0];
370
+ if (
371
+ // any nested list node
372
+ (isList && !root) ||
373
+ // root list node where the only child is also a list node
374
+ (isList && root && ('and' in child || 'or' in child))) {
375
+ delete result[type];
376
+ Object.assign(result, child);
377
+ return result;
378
+ }
379
+ }
380
+ children.forEach(function (child) {
381
+ if (isList) {
382
+ result[type].push(child);
383
+ }
384
+ else {
385
+ result[type] = child;
386
+ }
342
387
  });
343
388
  if (isList) {
344
389
  if (result[type].length === 0)
@@ -350,6 +395,204 @@ export function predicateToGraphQLFilter(predicatesGroup, fieldsToOmit) {
350
395
  }
351
396
  return result;
352
397
  }
398
+ /**
399
+ *
400
+ * @param group - selective sync predicate group
401
+ * @returns set of distinct field names in the filter group
402
+ */
403
+ export function filterFields(group) {
404
+ var fields = new Set();
405
+ if (!group || !Array.isArray(group.predicates))
406
+ return fields;
407
+ var predicates = group.predicates;
408
+ var stack = __spread(predicates);
409
+ while (stack.length > 0) {
410
+ var current = stack.pop();
411
+ if (isPredicateObj(current)) {
412
+ fields.add(current.field);
413
+ }
414
+ else if (isPredicateGroup(current)) {
415
+ stack.push.apply(stack, __spread(current.predicates));
416
+ }
417
+ }
418
+ return fields;
419
+ }
420
+ /**
421
+ *
422
+ * @param modelDefinition
423
+ * @returns set of field names used with dynamic auth modes configured for the provided model definition
424
+ */
425
+ export function dynamicAuthFields(modelDefinition) {
426
+ var e_1, _a;
427
+ var rules = getAuthorizationRules(modelDefinition);
428
+ var fields = new Set();
429
+ try {
430
+ for (var rules_1 = __values(rules), rules_1_1 = rules_1.next(); !rules_1_1.done; rules_1_1 = rules_1.next()) {
431
+ var rule = rules_1_1.value;
432
+ if (rule.groupsField && !rule.groups.length) {
433
+ // dynamic group rule will have no values in `rule.groups`
434
+ fields.add(rule.groupsField);
435
+ }
436
+ else if (rule.ownerField) {
437
+ fields.add(rule.ownerField);
438
+ }
439
+ }
440
+ }
441
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
442
+ finally {
443
+ try {
444
+ if (rules_1_1 && !rules_1_1.done && (_a = rules_1.return)) _a.call(rules_1);
445
+ }
446
+ finally { if (e_1) throw e_1.error; }
447
+ }
448
+ return fields;
449
+ }
450
+ /**
451
+ *
452
+ * @param group - selective sync predicate group
453
+ * @returns the total number of OR'd predicates in the filter group
454
+ *
455
+ * @example returns 2
456
+ * ```js
457
+ * { type: "or", predicates: [
458
+ * { field: "username", operator: "beginsWith", operand: "a" },
459
+ * { field: "title", operator: "contains", operand: "abc" },
460
+ * ]}
461
+ * ```
462
+ */
463
+ export function countFilterCombinations(group) {
464
+ if (!group || !Array.isArray(group.predicates))
465
+ return 0;
466
+ var count = 0;
467
+ var stack = [group];
468
+ while (stack.length > 0) {
469
+ var current = stack.pop();
470
+ if (isPredicateGroup(current)) {
471
+ var predicates = current.predicates, type = current.type;
472
+ // ignore length = 1; groups with 1 predicate will get flattened when converted to gqlFilter
473
+ if (type === 'or' && predicates.length > 1) {
474
+ count += predicates.length;
475
+ }
476
+ stack.push.apply(stack, __spread(predicates));
477
+ }
478
+ }
479
+ // if we didn't encounter any OR groups, default to 1
480
+ return count || 1;
481
+ }
482
+ /**
483
+ *
484
+ * @param group - selective sync predicate group
485
+ * @returns name of repeated field | null
486
+ *
487
+ * @example returns "username"
488
+ * ```js
489
+ * { type: "and", predicates: [
490
+ * { field: "username", operator: "beginsWith", operand: "a" },
491
+ * { field: "username", operator: "contains", operand: "abc" },
492
+ * ] }
493
+ * ```
494
+ */
495
+ export function repeatedFieldInGroup(group) {
496
+ if (!group || !Array.isArray(group.predicates))
497
+ return null;
498
+ // convert to filter in order to flatten redundant groups
499
+ var gqlFilter = predicateToGraphQLFilter(group);
500
+ var stack = [gqlFilter];
501
+ var hasGroupRepeatedFields = function (fields) {
502
+ var e_2, _a;
503
+ var seen = {};
504
+ try {
505
+ for (var fields_1 = __values(fields), fields_1_1 = fields_1.next(); !fields_1_1.done; fields_1_1 = fields_1.next()) {
506
+ var f = fields_1_1.value;
507
+ var _b = __read(Object.keys(f), 1), fieldName = _b[0];
508
+ if (seen[fieldName]) {
509
+ return fieldName;
510
+ }
511
+ seen[fieldName] = true;
512
+ }
513
+ }
514
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
515
+ finally {
516
+ try {
517
+ if (fields_1_1 && !fields_1_1.done && (_a = fields_1.return)) _a.call(fields_1);
518
+ }
519
+ finally { if (e_2) throw e_2.error; }
520
+ }
521
+ return null;
522
+ };
523
+ while (stack.length > 0) {
524
+ var current = stack.pop();
525
+ var _a = __read(Object.keys(current), 1), key = _a[0];
526
+ var values = current[key];
527
+ if (!Array.isArray(values)) {
528
+ return null;
529
+ }
530
+ // field value will be single object
531
+ var predicateObjects = values.filter(function (v) { return !Array.isArray(Object.values(v)[0]); });
532
+ // group value will be an array
533
+ var predicateGroups = values.filter(function (v) {
534
+ return Array.isArray(Object.values(v)[0]);
535
+ });
536
+ if (key === 'and') {
537
+ var repeatedField = hasGroupRepeatedFields(predicateObjects);
538
+ if (repeatedField) {
539
+ return repeatedField;
540
+ }
541
+ }
542
+ stack.push.apply(stack, __spread(predicateGroups));
543
+ }
544
+ return null;
545
+ }
546
+ export var RTFError;
547
+ (function (RTFError) {
548
+ RTFError[RTFError["UnknownField"] = 0] = "UnknownField";
549
+ RTFError[RTFError["MaxAttributes"] = 1] = "MaxAttributes";
550
+ RTFError[RTFError["MaxCombinations"] = 2] = "MaxCombinations";
551
+ RTFError[RTFError["RepeatedFieldname"] = 3] = "RepeatedFieldname";
552
+ RTFError[RTFError["NotGroup"] = 4] = "NotGroup";
553
+ RTFError[RTFError["FieldNotInType"] = 5] = "FieldNotInType";
554
+ })(RTFError || (RTFError = {}));
555
+ export function generateRTFRemediation(errorType, modelDefinition, predicatesGroup) {
556
+ var selSyncFields = filterFields(predicatesGroup);
557
+ var selSyncFieldStr = __spread(selSyncFields).join(', ');
558
+ var dynamicAuthModeFields = dynamicAuthFields(modelDefinition);
559
+ var dynamicAuthFieldsStr = __spread(dynamicAuthModeFields).join(', ');
560
+ var filterCombinations = countFilterCombinations(predicatesGroup);
561
+ var repeatedField = repeatedFieldInGroup(predicatesGroup);
562
+ switch (errorType) {
563
+ case RTFError.UnknownField:
564
+ return ("Your API was generated with an older version of the CLI that doesn't support backend subscription filtering." +
565
+ '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`');
566
+ case RTFError.MaxAttributes: {
567
+ var message = "Your selective sync expression for " + modelDefinition.name + " contains " + selSyncFields.size + " different model fields: " + selSyncFieldStr + ".\n\n";
568
+ if (dynamicAuthModeFields.size > 0) {
569
+ message +=
570
+ "Note: the number of fields you can use with selective sync is affected by @auth rules configured on the model.\n\n" +
571
+ "Dynamic auth modes, such as owner auth and dynamic group auth each utilize 1 field.\n" +
572
+ ("You currently have " + dynamicAuthModeFields.size + " dynamic auth mode(s) configured on this model: " + dynamicAuthFieldsStr + ".");
573
+ }
574
+ return message;
575
+ }
576
+ case RTFError.MaxCombinations: {
577
+ var message = "Your selective sync expression for " + modelDefinition.name + " contains " + filterCombinations + " field combinations (total number of predicates in an OR expression).\n\n";
578
+ if (dynamicAuthModeFields.size > 0) {
579
+ message +=
580
+ "Note: the number of fields you can use with selective sync is affected by @auth rules configured on the model.\n\n" +
581
+ "Dynamic auth modes, such as owner auth and dynamic group auth factor in to the number of combinations you're using.\n" +
582
+ ("You currently have " + dynamicAuthModeFields.size + " dynamic auth mode(s) configured on this model: " + dynamicAuthFieldsStr + ".");
583
+ }
584
+ return message;
585
+ }
586
+ case RTFError.RepeatedFieldname:
587
+ return "Your selective sync expression for " + modelDefinition.name + " contains multiple entries for " + repeatedField + " in the same AND group.";
588
+ case RTFError.NotGroup:
589
+ return ("Your selective sync expression for " + modelDefinition.name + " uses a `not` group. If you'd like to filter subscriptions in the backend, " +
590
+ "rewrite your expression using `ne` or `notContains` operators.");
591
+ case RTFError.FieldNotInType:
592
+ // no remediation instructions. We'll surface the message directly
593
+ return '';
594
+ }
595
+ }
353
596
  export function getUserGroupsFromToken(token, rule) {
354
597
  // validate token against groupClaim
355
598
  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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"}
@@ -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 = {
@@ -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
@@ -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-esm/util.js CHANGED
@@ -1,4 +1,4 @@
1
- import { __awaiter, __generator, __read, __spread, __values } from "tslib";
1
+ import { __assign, __awaiter, __generator, __read, __spread, __values } from "tslib";
2
2
  import { Buffer } from 'buffer';
3
3
  import { monotonicFactory } from 'ulid';
4
4
  import { v4 as uuid } from 'uuid';
@@ -844,8 +844,14 @@ export var establishRelationAndKeys = function (namespace) {
844
844
  if (connectionType === 'BELONGS_TO') {
845
845
  var targetNames = extractTargetNamesFromSrc(fieldAttribute.association);
846
846
  if (targetNames) {
847
- var idxName = indexNameFromKeys(targetNames);
848
- relationship[mKey].indexes.push([idxName, targetNames]);
847
+ var idxName_1 = indexNameFromKeys(targetNames);
848
+ var idxExists = relationship[mKey].indexes.find(function (_c) {
849
+ var _d = __read(_c, 1), index = _d[0];
850
+ return index === idxName_1;
851
+ });
852
+ if (!idxExists) {
853
+ relationship[mKey].indexes.push([idxName_1, targetNames]);
854
+ }
849
855
  }
850
856
  }
851
857
  }
@@ -969,4 +975,27 @@ export var getIndexKeys = function (namespace, modelName) {
969
975
  return [ID];
970
976
  };
971
977
  //#endregion
978
+ /**
979
+ * Determine what the managed timestamp field names are for the given model definition
980
+ * and return the mapping.
981
+ *
982
+ * All timestamp fields are included in the mapping, regardless of whether the final field
983
+ * names are the defaults or customized in the `@model` directive.
984
+ *
985
+ * @see https://docs.amplify.aws/cli/graphql/data-modeling/#customize-creation-and-update-timestamps
986
+ *
987
+ * @param definition modelDefinition to inspect.
988
+ * @returns An object mapping `createdAt` and `updatedAt` to their field names.
989
+ */
990
+ export var getTimestampFields = function (definition) {
991
+ var _c, _d;
992
+ var modelAttributes = (_c = definition.attributes) === null || _c === void 0 ? void 0 : _c.find(function (attr) { return attr.type === 'model'; });
993
+ var timestampFieldsMap = (_d = modelAttributes === null || modelAttributes === void 0 ? void 0 : modelAttributes.properties) === null || _d === void 0 ? void 0 : _d.timestamps;
994
+ var defaultFields = {
995
+ createdAt: 'createdAt',
996
+ updatedAt: 'updatedAt',
997
+ };
998
+ var customFields = timestampFieldsMap || {};
999
+ return __assign(__assign({}, defaultFields), customFields);
1000
+ };
972
1001
  //# sourceMappingURL=util.js.map