@aws-amplify/api-graphql 4.0.29-unstable.f37faeb.0 → 4.0.29

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 (129) hide show
  1. package/dist/cjs/internals/generateClient.js +4 -14
  2. package/dist/cjs/internals/generateClient.js.map +1 -1
  3. package/dist/cjs/internals/server/generateClientWithAmplifyInstance.js +3 -8
  4. package/dist/cjs/internals/server/generateClientWithAmplifyInstance.js.map +1 -1
  5. package/dist/cjs/internals/v6.js +6 -3
  6. package/dist/cjs/internals/v6.js.map +1 -1
  7. package/dist/cjs/types/index.js +11 -1
  8. package/dist/cjs/types/index.js.map +1 -1
  9. package/dist/cjs/utils/index.js +1 -5
  10. package/dist/cjs/utils/index.js.map +1 -1
  11. package/dist/esm/GraphQLAPI.d.ts +1 -1
  12. package/dist/esm/Providers/AWSAppSyncRealTimeProvider/index.d.ts +1 -1
  13. package/dist/esm/index.mjs +1 -1
  14. package/dist/esm/internals/InternalGraphQLAPI.d.ts +1 -1
  15. package/dist/esm/internals/generateClient.mjs +5 -15
  16. package/dist/esm/internals/generateClient.mjs.map +1 -1
  17. package/dist/esm/internals/server/generateClientWithAmplifyInstance.mjs +4 -9
  18. package/dist/esm/internals/server/generateClientWithAmplifyInstance.mjs.map +1 -1
  19. package/dist/esm/internals/types.d.ts +1 -1
  20. package/dist/esm/internals/v6.d.ts +1 -1
  21. package/dist/esm/internals/v6.mjs +7 -4
  22. package/dist/esm/internals/v6.mjs.map +1 -1
  23. package/dist/esm/types/index.d.ts +10 -40
  24. package/dist/esm/types/index.mjs +10 -1
  25. package/dist/esm/types/index.mjs.map +1 -1
  26. package/dist/esm/utils/index.d.ts +0 -2
  27. package/dist/esm/utils/index.mjs +0 -2
  28. package/dist/esm/utils/index.mjs.map +1 -1
  29. package/package.json +5 -6
  30. package/src/GraphQLAPI.ts +1 -1
  31. package/src/Providers/AWSAppSyncRealTimeProvider/index.ts +4 -1
  32. package/src/internals/InternalGraphQLAPI.ts +4 -1
  33. package/src/internals/generateClient.ts +8 -36
  34. package/src/internals/server/generateClientWithAmplifyInstance.ts +6 -16
  35. package/src/internals/types.ts +1 -1
  36. package/src/internals/v6.ts +7 -7
  37. package/src/server/generateClient.ts +1 -1
  38. package/src/types/index.ts +36 -60
  39. package/src/utils/index.ts +0 -2
  40. package/dist/cjs/internals/APIClient.js +0 -733
  41. package/dist/cjs/internals/APIClient.js.map +0 -1
  42. package/dist/cjs/internals/clientUtils.js +0 -29
  43. package/dist/cjs/internals/clientUtils.js.map +0 -1
  44. package/dist/cjs/internals/generateCustomOperationsProperty.js +0 -50
  45. package/dist/cjs/internals/generateCustomOperationsProperty.js.map +0 -1
  46. package/dist/cjs/internals/operations/custom.js +0 -356
  47. package/dist/cjs/internals/operations/custom.js.map +0 -1
  48. package/dist/cjs/internals/operations/get.js +0 -62
  49. package/dist/cjs/internals/operations/get.js.map +0 -1
  50. package/dist/cjs/internals/operations/indexQuery.js +0 -75
  51. package/dist/cjs/internals/operations/indexQuery.js.map +0 -1
  52. package/dist/cjs/internals/operations/list.js +0 -74
  53. package/dist/cjs/internals/operations/list.js.map +0 -1
  54. package/dist/cjs/internals/operations/observeQuery.js +0 -121
  55. package/dist/cjs/internals/operations/observeQuery.js.map +0 -1
  56. package/dist/cjs/internals/operations/subscription.js +0 -31
  57. package/dist/cjs/internals/operations/subscription.js.map +0 -1
  58. package/dist/cjs/internals/server/generateModelsProperty.js +0 -53
  59. package/dist/cjs/internals/server/generateModelsProperty.js.map +0 -1
  60. package/dist/cjs/internals/utils/clientProperties/generateEnumsProperty.js +0 -21
  61. package/dist/cjs/internals/utils/clientProperties/generateEnumsProperty.js.map +0 -1
  62. package/dist/cjs/internals/utils/clientProperties/generateModelsProperty.js +0 -45
  63. package/dist/cjs/internals/utils/clientProperties/generateModelsProperty.js.map +0 -1
  64. package/dist/cjs/utils/findIndexByFields.js +0 -25
  65. package/dist/cjs/utils/findIndexByFields.js.map +0 -1
  66. package/dist/cjs/utils/resolveOwnerFields.js +0 -48
  67. package/dist/cjs/utils/resolveOwnerFields.js.map +0 -1
  68. package/dist/cjs/utils/resolvePKFields.js +0 -17
  69. package/dist/cjs/utils/resolvePKFields.js.map +0 -1
  70. package/dist/esm/internals/APIClient.d.ts +0 -126
  71. package/dist/esm/internals/APIClient.mjs +0 -721
  72. package/dist/esm/internals/APIClient.mjs.map +0 -1
  73. package/dist/esm/internals/clientUtils.d.ts +0 -6
  74. package/dist/esm/internals/clientUtils.mjs +0 -26
  75. package/dist/esm/internals/clientUtils.mjs.map +0 -1
  76. package/dist/esm/internals/generateCustomOperationsProperty.d.ts +0 -9
  77. package/dist/esm/internals/generateCustomOperationsProperty.mjs +0 -45
  78. package/dist/esm/internals/generateCustomOperationsProperty.mjs.map +0 -1
  79. package/dist/esm/internals/operations/custom.d.ts +0 -63
  80. package/dist/esm/internals/operations/custom.mjs +0 -354
  81. package/dist/esm/internals/operations/custom.mjs.map +0 -1
  82. package/dist/esm/internals/operations/get.d.ts +0 -5
  83. package/dist/esm/internals/operations/get.mjs +0 -60
  84. package/dist/esm/internals/operations/get.mjs.map +0 -1
  85. package/dist/esm/internals/operations/indexQuery.d.ts +0 -9
  86. package/dist/esm/internals/operations/indexQuery.mjs +0 -73
  87. package/dist/esm/internals/operations/indexQuery.mjs.map +0 -1
  88. package/dist/esm/internals/operations/list.d.ts +0 -4
  89. package/dist/esm/internals/operations/list.mjs +0 -72
  90. package/dist/esm/internals/operations/list.mjs.map +0 -1
  91. package/dist/esm/internals/operations/observeQuery.d.ts +0 -3
  92. package/dist/esm/internals/operations/observeQuery.mjs +0 -121
  93. package/dist/esm/internals/operations/observeQuery.mjs.map +0 -1
  94. package/dist/esm/internals/operations/subscription.d.ts +0 -3
  95. package/dist/esm/internals/operations/subscription.mjs +0 -29
  96. package/dist/esm/internals/operations/subscription.mjs.map +0 -1
  97. package/dist/esm/internals/server/generateModelsProperty.d.ts +0 -3
  98. package/dist/esm/internals/server/generateModelsProperty.mjs +0 -51
  99. package/dist/esm/internals/server/generateModelsProperty.mjs.map +0 -1
  100. package/dist/esm/internals/utils/clientProperties/generateEnumsProperty.d.ts +0 -3
  101. package/dist/esm/internals/utils/clientProperties/generateEnumsProperty.mjs +0 -18
  102. package/dist/esm/internals/utils/clientProperties/generateEnumsProperty.mjs.map +0 -1
  103. package/dist/esm/internals/utils/clientProperties/generateModelsProperty.d.ts +0 -4
  104. package/dist/esm/internals/utils/clientProperties/generateModelsProperty.mjs +0 -43
  105. package/dist/esm/internals/utils/clientProperties/generateModelsProperty.mjs.map +0 -1
  106. package/dist/esm/utils/findIndexByFields.d.ts +0 -9
  107. package/dist/esm/utils/findIndexByFields.mjs +0 -22
  108. package/dist/esm/utils/findIndexByFields.mjs.map +0 -1
  109. package/dist/esm/utils/resolveOwnerFields.d.ts +0 -12
  110. package/dist/esm/utils/resolveOwnerFields.mjs +0 -45
  111. package/dist/esm/utils/resolveOwnerFields.mjs.map +0 -1
  112. package/dist/esm/utils/resolvePKFields.d.ts +0 -13
  113. package/dist/esm/utils/resolvePKFields.mjs +0 -14
  114. package/dist/esm/utils/resolvePKFields.mjs.map +0 -1
  115. package/src/internals/APIClient.ts +0 -1076
  116. package/src/internals/clientUtils.ts +0 -37
  117. package/src/internals/generateCustomOperationsProperty.ts +0 -112
  118. package/src/internals/operations/custom.ts +0 -492
  119. package/src/internals/operations/get.ts +0 -140
  120. package/src/internals/operations/indexQuery.ts +0 -170
  121. package/src/internals/operations/list.ts +0 -135
  122. package/src/internals/operations/observeQuery.ts +0 -146
  123. package/src/internals/operations/subscription.ts +0 -75
  124. package/src/internals/server/generateModelsProperty.ts +0 -97
  125. package/src/internals/utils/clientProperties/generateEnumsProperty.ts +0 -34
  126. package/src/internals/utils/clientProperties/generateModelsProperty.ts +0 -81
  127. package/src/utils/findIndexByFields.ts +0 -31
  128. package/src/utils/resolveOwnerFields.ts +0 -77
  129. package/src/utils/resolvePKFields.ts +0 -23
@@ -1,97 +0,0 @@
1
- // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- // SPDX-License-Identifier: Apache-2.0
3
- import { ModelTypes } from '@aws-amplify/data-schema-types';
4
- import { ModelIntrospectionSchema } from '@aws-amplify/core/internals/utils';
5
-
6
- import { ModelOperation, graphQLOperationsInfo } from '../APIClient';
7
- import {
8
- ServerClientGenerationParams,
9
- V6ClientSSRCookies,
10
- V6ClientSSRRequest,
11
- } from '../../types/';
12
- import { listFactory } from '../operations/list';
13
- import { indexQueryFactory } from '../operations/indexQuery';
14
- import { getFactory } from '../operations/get';
15
- import { getSecondaryIndexesFromSchemaModel } from '../clientUtils';
16
-
17
- export function generateModelsProperty<
18
- T extends Record<any, any> = never,
19
- ClientType extends
20
- | V6ClientSSRRequest<Record<string, any>>
21
- | V6ClientSSRCookies<Record<string, any>> = V6ClientSSRCookies<
22
- Record<string, any>
23
- >,
24
- >(
25
- client: ClientType,
26
- params: ServerClientGenerationParams,
27
- ): ModelTypes<T> | ModelTypes<never> {
28
- const models = {} as any;
29
- const { config } = params;
30
- const useContext = params.amplify === null;
31
-
32
- if (!config) {
33
- throw new Error('generateModelsProperty cannot retrieve Amplify config');
34
- }
35
-
36
- if (!config.API?.GraphQL) {
37
- return {} as ModelTypes<never>;
38
- }
39
-
40
- const modelIntrospection: ModelIntrospectionSchema | undefined =
41
- config.API.GraphQL.modelIntrospection;
42
-
43
- if (!modelIntrospection) {
44
- return {} as ModelTypes<never>;
45
- }
46
-
47
- const SSR_UNSUPORTED_OPS = [
48
- 'ONCREATE',
49
- 'ONUPDATE',
50
- 'ONDELETE',
51
- 'OBSERVE_QUERY',
52
- ];
53
-
54
- for (const model of Object.values(modelIntrospection.models)) {
55
- const { name } = model;
56
- models[name] = {} as Record<string, any>;
57
-
58
- Object.entries(graphQLOperationsInfo).forEach(
59
- ([key, { operationPrefix }]) => {
60
- const operation = key as ModelOperation;
61
-
62
- // subscriptions are not supported in SSR
63
- if (SSR_UNSUPORTED_OPS.includes(operation)) return;
64
-
65
- if (operation === 'LIST') {
66
- models[name][operationPrefix] = listFactory(
67
- client,
68
- modelIntrospection,
69
- model,
70
- useContext,
71
- );
72
- } else {
73
- models[name][operationPrefix] = getFactory(
74
- client,
75
- modelIntrospection,
76
- model,
77
- operation,
78
- useContext,
79
- );
80
- }
81
- },
82
- );
83
-
84
- const secondaryIdxs = getSecondaryIndexesFromSchemaModel(model);
85
-
86
- for (const idx of secondaryIdxs) {
87
- models[name][idx.queryField] = indexQueryFactory(
88
- client,
89
- modelIntrospection,
90
- model,
91
- idx,
92
- );
93
- }
94
- }
95
-
96
- return models;
97
- }
@@ -1,34 +0,0 @@
1
- // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- import {
5
- GraphQLProviderConfig,
6
- ModelIntrospectionSchema,
7
- } from '@aws-amplify/core/internals/utils';
8
- import { EnumTypes } from '@aws-amplify/data-schema-types';
9
-
10
- export const generateEnumsProperty = <T extends Record<any, any> = never>(
11
- graphqlConfig: GraphQLProviderConfig['GraphQL'],
12
- ): EnumTypes<T> => {
13
- const modelIntrospection: ModelIntrospectionSchema | undefined =
14
- graphqlConfig.modelIntrospection;
15
-
16
- if (!modelIntrospection) {
17
- return {} as EnumTypes<never>;
18
- }
19
-
20
- const enums: Record<
21
- string,
22
- {
23
- values(): string[];
24
- }
25
- > = {};
26
-
27
- for (const [_, enumData] of Object.entries(modelIntrospection.enums)) {
28
- enums[enumData.name] = {
29
- values: () => enumData.values,
30
- };
31
- }
32
-
33
- return enums as EnumTypes<T>;
34
- };
@@ -1,81 +0,0 @@
1
- // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- // SPDX-License-Identifier: Apache-2.0
3
- import { ModelTypes } from '@aws-amplify/data-schema-types';
4
- import {
5
- GraphQLProviderConfig,
6
- ModelIntrospectionSchema,
7
- } from '@aws-amplify/core/internals/utils';
8
-
9
- import { ModelOperation, graphQLOperationsInfo } from '../../APIClient';
10
- import { V6Client } from '../../../types';
11
- import { listFactory } from '../../operations/list';
12
- import { indexQueryFactory } from '../../operations/indexQuery';
13
- import { getFactory } from '../../operations/get';
14
- import { subscriptionFactory } from '../../operations/subscription';
15
- import { observeQueryFactory } from '../../operations/observeQuery';
16
- import { getSecondaryIndexesFromSchemaModel } from '../../clientUtils';
17
-
18
- export function generateModelsProperty<T extends Record<any, any> = never>(
19
- client: V6Client<Record<string, any>>,
20
- apiGraphQLConfig: GraphQLProviderConfig['GraphQL'],
21
- ): ModelTypes<T> | ModelTypes<never> {
22
- const models = {} as any;
23
-
24
- const modelIntrospection: ModelIntrospectionSchema | undefined =
25
- apiGraphQLConfig.modelIntrospection;
26
-
27
- if (!modelIntrospection) {
28
- return {} as ModelTypes<never>;
29
- }
30
-
31
- const SUBSCRIPTION_OPS = ['ONCREATE', 'ONUPDATE', 'ONDELETE'];
32
-
33
- for (const model of Object.values(modelIntrospection.models)) {
34
- const { name } = model;
35
-
36
- models[name] = {} as Record<string, any>;
37
-
38
- Object.entries(graphQLOperationsInfo).forEach(
39
- ([key, { operationPrefix }]) => {
40
- const operation = key as ModelOperation;
41
-
42
- if (operation === 'LIST') {
43
- models[name][operationPrefix] = listFactory(
44
- client,
45
- modelIntrospection,
46
- model,
47
- );
48
- } else if (SUBSCRIPTION_OPS.includes(operation)) {
49
- models[name][operationPrefix] = subscriptionFactory(
50
- client,
51
- modelIntrospection,
52
- model,
53
- operation,
54
- );
55
- } else if (operation === 'OBSERVE_QUERY') {
56
- models[name][operationPrefix] = observeQueryFactory(models, model);
57
- } else {
58
- models[name][operationPrefix] = getFactory(
59
- client,
60
- modelIntrospection,
61
- model,
62
- operation,
63
- );
64
- }
65
- },
66
- );
67
-
68
- const secondaryIdxs = getSecondaryIndexesFromSchemaModel(model);
69
-
70
- for (const idx of secondaryIdxs) {
71
- models[name][idx.queryField] = indexQueryFactory(
72
- client,
73
- modelIntrospection,
74
- model,
75
- idx,
76
- );
77
- }
78
- }
79
-
80
- return models;
81
- }
@@ -1,31 +0,0 @@
1
- // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- // SPDX-License-Identifier: Apache-2.0
3
- /**
4
- * Iterates through a collection to find a matching item and returns the index.
5
- *
6
- * @param needle The item to search for
7
- * @param haystack The collection to search
8
- * @param keyFields The fields used to indicate a match
9
- * @returns Index of `needle` in `haystack`, otherwise -1 if not found.
10
- */
11
- export function findIndexByFields<T>(
12
- needle: T,
13
- haystack: T[],
14
- keyFields: (keyof T)[],
15
- ): number {
16
- const searchObject = Object.fromEntries(
17
- keyFields.map(fieldName => [fieldName, needle[fieldName]]),
18
- );
19
-
20
- for (let i = 0; i < haystack.length; i++) {
21
- if (
22
- Object.keys(searchObject).every(
23
- k => searchObject[k] === (haystack[i] as any)[k],
24
- )
25
- ) {
26
- return i;
27
- }
28
- }
29
-
30
- return -1;
31
- }
@@ -1,77 +0,0 @@
1
- // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- // SPDX-License-Identifier: Apache-2.0
3
- import { ResourcesConfig } from '@aws-amplify/core';
4
-
5
- type GraphQLConfig = Exclude<ResourcesConfig['API'], undefined>['GraphQL'];
6
- type ModelIntrospectionSchema = Exclude<
7
- Exclude<GraphQLConfig, undefined>['modelIntrospection'],
8
- undefined
9
- >;
10
- type Model = ModelIntrospectionSchema['models'][string];
11
-
12
- interface AuthAttribute {
13
- type: 'auth';
14
- properties: {
15
- rules: AuthRule[];
16
- };
17
- }
18
-
19
- /**
20
- * Only the portions of an Auth rule we care about.
21
- */
22
- type AuthRule =
23
- | {
24
- allow: 'owner';
25
- ownerField?: string;
26
- }
27
- | {
28
- allow: 'groups';
29
- groupsField: string;
30
- };
31
-
32
- /**
33
- * Given an introspection schema model, returns all owner fields.
34
- *
35
- * @param model Model from an introspection schema
36
- * @returns List of owner field names
37
- */
38
- export function resolveOwnerFields(model: Model): string[] {
39
- const ownerFields = new Set<string>();
40
- for (const attr of model.attributes || []) {
41
- if (isAuthAttribute(attr)) {
42
- for (const rule of attr.properties.rules) {
43
- if (rule.allow === 'owner') {
44
- ownerFields.add(rule.ownerField || 'owner');
45
- } else if (rule.allow === 'groups' && rule.groupsField !== undefined) {
46
- // only valid for dynamic group(s)
47
- // static group auth will have an array of predefined groups in the attribute, groups: string[]
48
- // but `groupsField` will be undefined
49
- ownerFields.add(rule.groupsField);
50
- }
51
- }
52
- }
53
- }
54
-
55
- return Array.from(ownerFields);
56
- }
57
-
58
- /**
59
- * Type guard that identifies an auth attribute with an attached rules list that
60
- * specifies an `allow` attribute at a minimum.
61
- *
62
- * @param attribute Any object. Ideally a model introspection schema model attribute
63
- * @returns True if given object is an auth attribute
64
- */
65
- function isAuthAttribute(attribute: any): attribute is AuthAttribute {
66
- if (attribute?.type === 'auth') {
67
- if (typeof attribute?.properties === 'object') {
68
- if (Array.isArray(attribute?.properties?.rules)) {
69
- return (attribute?.properties?.rules as any[]).every(
70
- rule => !!rule.allow,
71
- );
72
- }
73
- }
74
- }
75
-
76
- return false;
77
- }
@@ -1,23 +0,0 @@
1
- // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- // SPDX-License-Identifier: Apache-2.0
3
- import { ResourcesConfig } from '@aws-amplify/core';
4
-
5
- type GraphQLConfig = Exclude<ResourcesConfig['API'], undefined>['GraphQL'];
6
- type ModelIntrospectionSchema = Exclude<
7
- Exclude<GraphQLConfig, undefined>['modelIntrospection'],
8
- undefined
9
- >;
10
- type SchemaModel = ModelIntrospectionSchema['models'][string];
11
-
12
- /**
13
- * Given a SchemaModel from a ModelIntrospectionSchema, returns the primary key
14
- * as an array of field names.
15
- *
16
- * @param model The model object
17
- * @returns Array of field names
18
- */
19
- export function resolvePKFields(model: SchemaModel) {
20
- const { primaryKeyFieldName, sortKeyFieldNames } = model.primaryKeyInfo;
21
-
22
- return [primaryKeyFieldName, ...sortKeyFieldNames];
23
- }