@aws-amplify/graphql-api-construct 1.1.2 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. package/.jsii +34 -34
  2. package/CHANGELOG.md +4 -0
  3. package/lib/amplify-graphql-api.d.ts +4 -0
  4. package/lib/amplify-graphql-api.js +10 -2
  5. package/lib/amplify-graphql-definition.js +1 -1
  6. package/lib/internal/authorization-modes.d.ts +5 -0
  7. package/lib/internal/authorization-modes.js +15 -2
  8. package/node_modules/@aws-amplify/backend-output-schemas/lib/graphql/index.d.ts +10 -0
  9. package/node_modules/@aws-amplify/backend-output-schemas/lib/graphql/v1.d.ts +10 -0
  10. package/node_modules/@aws-amplify/backend-output-schemas/lib/graphql/v1.js +2 -0
  11. package/node_modules/@aws-amplify/backend-output-schemas/lib/index.d.ts +50 -0
  12. package/node_modules/@aws-amplify/backend-output-schemas/lib/index.js +6 -2
  13. package/node_modules/@aws-amplify/backend-output-schemas/lib/stack/index.d.ts +23 -0
  14. package/node_modules/@aws-amplify/backend-output-schemas/lib/stack/index.js +12 -0
  15. package/node_modules/@aws-amplify/backend-output-schemas/lib/stack/v1.d.ts +22 -0
  16. package/node_modules/@aws-amplify/backend-output-schemas/lib/stack/v1.js +14 -0
  17. package/node_modules/@aws-amplify/backend-output-schemas/package.json +3 -2
  18. package/node_modules/@aws-amplify/backend-output-storage/lib/stack_metadata_output_storage_strategy.d.ts +0 -4
  19. package/node_modules/@aws-amplify/backend-output-storage/lib/stack_metadata_output_storage_strategy.js +1 -13
  20. package/node_modules/@aws-amplify/backend-output-storage/package.json +3 -2
  21. package/node_modules/@aws-amplify/graphql-auth-transformer/API.md +2 -4
  22. package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +6 -0
  23. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/field.d.ts.map +1 -1
  24. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/field.js +1 -1
  25. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/field.js.map +1 -1
  26. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/helpers.d.ts +3 -3
  27. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/helpers.d.ts.map +1 -1
  28. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/helpers.js +8 -9
  29. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/helpers.js.map +1 -1
  30. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.create.d.ts.map +1 -1
  31. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.create.js +5 -5
  32. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.create.js.map +1 -1
  33. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.delete.d.ts.map +1 -1
  34. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.delete.js +4 -4
  35. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.delete.js.map +1 -1
  36. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.update.d.ts.map +1 -1
  37. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.update.js +5 -5
  38. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.update.js.map +1 -1
  39. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/query.d.ts.map +1 -1
  40. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/query.js +2 -2
  41. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/query.js.map +1 -1
  42. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/search.d.ts.map +1 -1
  43. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/search.js +4 -4
  44. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/search.js.map +1 -1
  45. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/subscriptions.js +1 -1
  46. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/subscriptions.js.map +1 -1
  47. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/definitions.d.ts +1 -2
  48. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/definitions.d.ts.map +1 -1
  49. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/definitions.js.map +1 -1
  50. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/index.d.ts.map +1 -1
  51. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/index.js +1 -2
  52. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/index.js.map +1 -1
  53. package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +9 -9
  54. package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +4 -0
  55. package/node_modules/@aws-amplify/graphql-default-value-transformer/LICENSE +201 -0
  56. package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +7 -6
  57. package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +4 -0
  58. package/node_modules/@aws-amplify/graphql-function-transformer/LICENSE +201 -0
  59. package/node_modules/@aws-amplify/graphql-function-transformer/package.json +6 -5
  60. package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +4 -0
  61. package/node_modules/@aws-amplify/graphql-http-transformer/LICENSE +201 -0
  62. package/node_modules/@aws-amplify/graphql-http-transformer/package.json +6 -5
  63. package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +4 -0
  64. package/node_modules/@aws-amplify/graphql-index-transformer/LICENSE +201 -0
  65. package/node_modules/@aws-amplify/graphql-index-transformer/package.json +7 -6
  66. package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +4 -0
  67. package/node_modules/@aws-amplify/graphql-maps-to-transformer/LICENSE +201 -0
  68. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
  69. package/node_modules/@aws-amplify/graphql-maps-to-transformer/package.json +10 -9
  70. package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +4 -0
  71. package/node_modules/@aws-amplify/graphql-model-transformer/LICENSE +201 -0
  72. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
  73. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
  74. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
  75. package/node_modules/@aws-amplify/graphql-model-transformer/package.json +6 -5
  76. package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +4 -0
  77. package/node_modules/@aws-amplify/graphql-predictions-transformer/LICENSE +201 -0
  78. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
  79. package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +6 -5
  80. package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +4 -0
  81. package/node_modules/@aws-amplify/graphql-relational-transformer/LICENSE +201 -0
  82. package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +8 -7
  83. package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +6 -0
  84. package/node_modules/@aws-amplify/graphql-searchable-transformer/LICENSE +201 -0
  85. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
  86. package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +7 -6
  87. package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +6 -0
  88. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts.map +1 -1
  89. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js +10 -5
  90. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js.map +1 -1
  91. package/node_modules/@aws-amplify/graphql-transformer/package.json +14 -14
  92. package/node_modules/@aws-amplify/graphql-transformer/src/graphql-transformer.ts +9 -2
  93. package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +6 -0
  94. package/node_modules/@aws-amplify/graphql-transformer-core/LICENSE +201 -0
  95. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/resolver.d.ts.map +1 -1
  96. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/resolver.js +19 -7
  97. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/resolver.js.map +1 -1
  98. package/node_modules/@aws-amplify/graphql-transformer-core/package.json +4 -3
  99. package/node_modules/@aws-amplify/graphql-transformer-interfaces/API.md +2 -0
  100. package/node_modules/@aws-amplify/graphql-transformer-interfaces/CHANGELOG.md +6 -0
  101. package/node_modules/@aws-amplify/graphql-transformer-interfaces/LICENSE +201 -0
  102. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/synth-parameters.d.ts +2 -0
  103. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/synth-parameters.d.ts.map +1 -1
  104. package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +3 -2
  105. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/synth-parameters.ts +2 -0
  106. package/node_modules/@aws-amplify/graphql-transformer-interfaces/tsconfig.tsbuildinfo +1 -1
  107. package/package.json +17 -17
  108. package/src/amplify-graphql-api.ts +17 -0
  109. package/src/internal/authorization-modes.ts +18 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/graphql-api-construct",
3
- "version": "1.1.2",
3
+ "version": "1.1.3",
4
4
  "description": "AppSync GraphQL Api Construct using Amplify GraphQL Transformer.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -74,21 +74,21 @@
74
74
  "universalify"
75
75
  ],
76
76
  "dependencies": {
77
- "@aws-amplify/backend-output-schemas": "^0.2.0-alpha.3",
78
- "@aws-amplify/backend-output-storage": "^0.1.1-alpha.0",
79
- "@aws-amplify/graphql-auth-transformer": "3.1.6",
80
- "@aws-amplify/graphql-default-value-transformer": "2.1.5",
81
- "@aws-amplify/graphql-function-transformer": "2.1.4",
82
- "@aws-amplify/graphql-http-transformer": "2.1.4",
83
- "@aws-amplify/graphql-index-transformer": "2.1.5",
84
- "@aws-amplify/graphql-maps-to-transformer": "3.2.2",
85
- "@aws-amplify/graphql-model-transformer": "2.2.1",
86
- "@aws-amplify/graphql-predictions-transformer": "2.1.4",
87
- "@aws-amplify/graphql-relational-transformer": "2.1.5",
88
- "@aws-amplify/graphql-searchable-transformer": "2.2.1",
89
- "@aws-amplify/graphql-transformer": "1.2.2",
90
- "@aws-amplify/graphql-transformer-core": "2.2.1",
91
- "@aws-amplify/graphql-transformer-interfaces": "3.2.0",
77
+ "@aws-amplify/backend-output-schemas": "^0.2.0-alpha.6",
78
+ "@aws-amplify/backend-output-storage": "^0.1.1-alpha.2",
79
+ "@aws-amplify/graphql-auth-transformer": "3.1.7",
80
+ "@aws-amplify/graphql-default-value-transformer": "2.1.6",
81
+ "@aws-amplify/graphql-function-transformer": "2.1.5",
82
+ "@aws-amplify/graphql-http-transformer": "2.1.5",
83
+ "@aws-amplify/graphql-index-transformer": "2.1.6",
84
+ "@aws-amplify/graphql-maps-to-transformer": "3.2.3",
85
+ "@aws-amplify/graphql-model-transformer": "2.2.2",
86
+ "@aws-amplify/graphql-predictions-transformer": "2.1.5",
87
+ "@aws-amplify/graphql-relational-transformer": "2.1.6",
88
+ "@aws-amplify/graphql-searchable-transformer": "2.2.2",
89
+ "@aws-amplify/graphql-transformer": "1.2.3",
90
+ "@aws-amplify/graphql-transformer-core": "2.2.2",
91
+ "@aws-amplify/graphql-transformer-interfaces": "3.2.1",
92
92
  "charenc": "^0.0.2",
93
93
  "crypt": "^0.0.2",
94
94
  "fs-extra": "^8.1.0",
@@ -162,5 +162,5 @@
162
162
  }
163
163
  }
164
164
  },
165
- "gitHead": "185090987e9c49db5e59aa4476dad7e17e9d2067"
165
+ "gitHead": "58c67c5534f7838371ef64b5ee23f2f406817f70"
166
166
  }
@@ -35,6 +35,7 @@ import type {
35
35
  FunctionSlot,
36
36
  IBackendOutputStorageStrategy,
37
37
  AddFunctionProps,
38
+ ConflictResolution,
38
39
  } from './types';
39
40
  import {
40
41
  convertAuthorizationModesToTransformerAuthConfig,
@@ -45,6 +46,7 @@ import {
45
46
  getGeneratedFunctionSlots,
46
47
  CodegenAssets,
47
48
  addAmplifyMetadataToStackDescription,
49
+ getAdditionalAuthenticationTypes,
48
50
  } from './internal';
49
51
 
50
52
  /**
@@ -103,6 +105,11 @@ export class AmplifyGraphqlApi extends Construct {
103
105
  */
104
106
  public readonly apiKey: string | undefined;
105
107
 
108
+ /**
109
+ * Conflict resolution setting
110
+ */
111
+ private readonly conflictResolution: ConflictResolution | undefined;
112
+
106
113
  /**
107
114
  * New AmplifyGraphqlApi construct, this will create an appsync api with authorization, a schema, and all necessary resolvers, functions,
108
115
  * and datasources.
@@ -180,6 +187,7 @@ export class AmplifyGraphqlApi extends Construct {
180
187
  this.codegenAssets = new CodegenAssets(this, 'AmplifyCodegenAssets', { modelSchema: definition.schema });
181
188
 
182
189
  this.resources = getGeneratedResources(this);
190
+ this.conflictResolution = conflictResolution;
183
191
  this.generatedFunctionSlots = getGeneratedFunctionSlots(assetManager.resolverAssets);
184
192
  this.storeOutput(outputStorageStrategy);
185
193
 
@@ -211,6 +219,15 @@ export class AmplifyGraphqlApi extends Construct {
211
219
  output.payload.awsAppsyncApiKey = this.resources.cfnResources.cfnApiKey.attrApiKey;
212
220
  }
213
221
 
222
+ const additionalAuthTypes = getAdditionalAuthenticationTypes(this.resources.cfnResources.cfnGraphqlApi);
223
+ if (additionalAuthTypes) {
224
+ output.payload.awsAppsyncAdditionalAuthenticationTypes = additionalAuthTypes;
225
+ }
226
+
227
+ if (this.conflictResolution?.project?.handlerType) {
228
+ output.payload.awsAppsyncConflictResolutionMode = this.conflictResolution?.project?.handlerType;
229
+ }
230
+
214
231
  outputStorageStrategy.addBackendOutputEntry(graphqlOutputKey, output);
215
232
  }
216
233
 
@@ -7,6 +7,8 @@ import {
7
7
  OIDCAuthorizationConfig,
8
8
  UserPoolAuthorizationConfig,
9
9
  } from '../types';
10
+ import { CfnGraphQLApi } from 'aws-cdk-lib/aws-appsync';
11
+ import { isArray } from 'lodash';
10
12
 
11
13
  type AuthorizationConfigMode =
12
14
  | (IAMAuthorizationConfig & { type: 'AWS_IAM' })
@@ -128,6 +130,22 @@ interface AuthConfig {
128
130
  authSynthParameters: AuthSynthParameters;
129
131
  }
130
132
 
133
+ /**
134
+ * Transforms additionalAuthenticationTypes for storage in CFN output
135
+ */
136
+ export const getAdditionalAuthenticationTypes = (cfnGraphqlApi: CfnGraphQLApi): string | undefined => {
137
+ if (!isArray(cfnGraphqlApi.additionalAuthenticationProviders)) {
138
+ return;
139
+ }
140
+
141
+ return (cfnGraphqlApi.additionalAuthenticationProviders as CfnGraphQLApi.AdditionalAuthenticationProviderProperty[])
142
+ .map(
143
+ (additionalAuthenticationProvider: CfnGraphQLApi.AdditionalAuthenticationProviderProperty) =>
144
+ additionalAuthenticationProvider.authenticationType,
145
+ )
146
+ .join(',');
147
+ };
148
+
131
149
  /**
132
150
  * Convert the list of auth modes into the necessary flags and params (effectively a reducer on the rule list)
133
151
  * @param authModes the list of auth modes configured on the API.