@aws-amplify/graphql-api-construct 1.1.2 → 1.1.4
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.
- package/.jsii +37 -37
- package/CHANGELOG.md +12 -0
- package/README.md +9 -3
- package/lib/amplify-graphql-api.d.ts +13 -3
- package/lib/amplify-graphql-api.js +19 -5
- package/lib/amplify-graphql-definition.js +1 -1
- package/lib/internal/authorization-modes.d.ts +5 -0
- package/lib/internal/authorization-modes.js +15 -2
- package/lib/internal/codegen-assets.js +6 -1
- package/node_modules/@aws-amplify/backend-output-schemas/lib/graphql/index.d.ts +10 -0
- package/node_modules/@aws-amplify/backend-output-schemas/lib/graphql/v1.d.ts +10 -0
- package/node_modules/@aws-amplify/backend-output-schemas/lib/graphql/v1.js +2 -0
- package/node_modules/@aws-amplify/backend-output-schemas/lib/index.d.ts +50 -0
- package/node_modules/@aws-amplify/backend-output-schemas/lib/index.js +6 -2
- package/node_modules/@aws-amplify/backend-output-schemas/lib/stack/index.d.ts +23 -0
- package/node_modules/@aws-amplify/backend-output-schemas/lib/stack/index.js +12 -0
- package/node_modules/@aws-amplify/backend-output-schemas/lib/stack/v1.d.ts +22 -0
- package/node_modules/@aws-amplify/backend-output-schemas/lib/stack/v1.js +14 -0
- package/node_modules/@aws-amplify/backend-output-schemas/package.json +3 -2
- package/node_modules/@aws-amplify/backend-output-storage/lib/stack_metadata_output_storage_strategy.d.ts +0 -4
- package/node_modules/@aws-amplify/backend-output-storage/lib/stack_metadata_output_storage_strategy.js +1 -13
- package/node_modules/@aws-amplify/backend-output-storage/package.json +3 -2
- package/node_modules/@aws-amplify/graphql-auth-transformer/API.md +2 -4
- package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +10 -0
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/field.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/field.js +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/field.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/helpers.d.ts +3 -3
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/helpers.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/helpers.js +8 -9
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/helpers.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.create.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.create.js +5 -5
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.create.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.delete.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.delete.js +4 -4
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.delete.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.update.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.update.js +5 -5
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.update.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/query.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/query.js +2 -2
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/query.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/search.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/search.js +4 -4
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/search.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/subscriptions.js +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/subscriptions.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/definitions.d.ts +1 -2
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/definitions.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/definitions.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/index.js +1 -2
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +9 -9
- package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +8 -0
- package/node_modules/@aws-amplify/graphql-default-value-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +7 -6
- package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +8 -0
- package/node_modules/@aws-amplify/graphql-function-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-function-transformer/package.json +6 -5
- package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +8 -0
- package/node_modules/@aws-amplify/graphql-http-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-http-transformer/package.json +6 -5
- package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +8 -0
- package/node_modules/@aws-amplify/graphql-index-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-index-transformer/package.json +7 -6
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +8 -0
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/package.json +10 -9
- package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +8 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/package.json +6 -5
- package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +8 -0
- package/node_modules/@aws-amplify/graphql-predictions-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
- package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +6 -5
- package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +8 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +8 -7
- package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +10 -0
- package/node_modules/@aws-amplify/graphql-searchable-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +7 -6
- package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +10 -0
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js +10 -5
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer/package.json +14 -14
- package/node_modules/@aws-amplify/graphql-transformer/src/graphql-transformer.ts +9 -2
- package/node_modules/@aws-amplify/graphql-transformer-core/API.md +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +12 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/output.d.ts +8 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/output.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/output.js +60 -23
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/output.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/resolver.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/resolver.js +19 -7
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/resolver.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/defaultSchema.d.ts +4 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/defaultSchema.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/defaultSchema.js +35 -36
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/defaultSchema.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/package.json +4 -3
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/API.md +2 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/CHANGELOG.md +6 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/synth-parameters.d.ts +2 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/synth-parameters.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/synth-parameters.ts +2 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/tsconfig.tsbuildinfo +1 -1
- package/node_modules/zod/README.md +215 -120
- package/node_modules/zod/lib/ZodError.js +8 -0
- package/node_modules/zod/lib/helpers/parseUtil.js +3 -2
- package/node_modules/zod/lib/helpers/util.js +4 -4
- package/node_modules/zod/lib/index.mjs +121 -57
- package/node_modules/zod/lib/index.umd.js +121 -56
- package/node_modules/zod/lib/types.d.ts +55 -10
- package/node_modules/zod/lib/types.js +301 -58
- package/node_modules/zod/package.json +29 -15
- package/package.json +18 -18
- package/src/amplify-graphql-api.ts +26 -3
- package/src/internal/authorization-modes.ts +18 -0
- package/src/internal/codegen-assets.ts +5 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zod",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.22.4",
|
|
4
4
|
"author": "Colin McDonnell <colin@colinhacks.com>",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -9,12 +9,18 @@
|
|
|
9
9
|
"main": "./lib/index.js",
|
|
10
10
|
"module": "./lib/index.mjs",
|
|
11
11
|
"devDependencies": {
|
|
12
|
+
"@babel/core": "^7.22.5",
|
|
13
|
+
"@babel/preset-env": "^7.22.5",
|
|
14
|
+
"@babel/preset-typescript": "^7.22.5",
|
|
12
15
|
"@rollup/plugin-typescript": "^8.2.0",
|
|
16
|
+
"@swc/core": "^1.3.66",
|
|
17
|
+
"@swc/jest": "^0.2.26",
|
|
13
18
|
"@types/benchmark": "^2.1.0",
|
|
14
19
|
"@types/jest": "^29.2.2",
|
|
15
20
|
"@types/node": "14",
|
|
16
21
|
"@typescript-eslint/eslint-plugin": "^5.15.0",
|
|
17
22
|
"@typescript-eslint/parser": "^5.15.0",
|
|
23
|
+
"babel-jest": "^29.5.0",
|
|
18
24
|
"benchmark": "^2.1.4",
|
|
19
25
|
"dependency-cruiser": "^9.19.0",
|
|
20
26
|
"eslint": "^8.11.0",
|
|
@@ -30,18 +36,19 @@
|
|
|
30
36
|
"prettier": "^2.6.0",
|
|
31
37
|
"pretty-quick": "^3.1.3",
|
|
32
38
|
"rollup": "^2.70.1",
|
|
33
|
-
"ts-jest": "^29.0
|
|
39
|
+
"ts-jest": "^29.1.0",
|
|
34
40
|
"ts-morph": "^14.0.0",
|
|
35
41
|
"ts-node": "^10.9.1",
|
|
36
42
|
"tslib": "^2.3.1",
|
|
37
43
|
"tsx": "^3.8.0",
|
|
38
|
-
"typescript": "~4.5.0"
|
|
44
|
+
"typescript": "~4.5.0",
|
|
45
|
+
"vitest": "^0.32.2"
|
|
39
46
|
},
|
|
40
47
|
"exports": {
|
|
41
48
|
".": {
|
|
49
|
+
"types": "./index.d.ts",
|
|
42
50
|
"require": "./lib/index.js",
|
|
43
|
-
"import": "./lib/index.mjs"
|
|
44
|
-
"types": "./index.d.ts"
|
|
51
|
+
"import": "./lib/index.mjs"
|
|
45
52
|
},
|
|
46
53
|
"./package.json": "./package.json",
|
|
47
54
|
"./locales/*": "./lib/locales/*"
|
|
@@ -68,25 +75,32 @@
|
|
|
68
75
|
"src/*.ts": [
|
|
69
76
|
"eslint --cache --fix",
|
|
70
77
|
"prettier --ignore-unknown --write"
|
|
78
|
+
],
|
|
79
|
+
"*.md": [
|
|
80
|
+
"prettier --ignore-unknown --write"
|
|
71
81
|
]
|
|
72
82
|
},
|
|
73
83
|
"scripts": {
|
|
74
|
-
"prettier:check": "prettier --check src/**/*.ts deno/lib/**/*.ts --no-error-on-unmatched-pattern",
|
|
75
|
-
"prettier:fix": "prettier --write src/**/*.ts deno/lib/**/*.ts --ignore-unknown --no-error-on-unmatched-pattern",
|
|
84
|
+
"prettier:check": "prettier --check src/**/*.ts deno/lib/**/*.ts *.md --no-error-on-unmatched-pattern",
|
|
85
|
+
"prettier:fix": "prettier --write src/**/*.ts deno/lib/**/*.ts *.md --ignore-unknown --no-error-on-unmatched-pattern",
|
|
76
86
|
"lint:check": "eslint --cache --ext .ts ./src",
|
|
77
87
|
"lint:fix": "eslint --cache --fix --ext .ts ./src",
|
|
78
88
|
"check": "yarn lint:check && yarn prettier:check",
|
|
79
89
|
"fix": "yarn lint:fix && yarn prettier:fix",
|
|
80
90
|
"clean": "rm -rf lib/* deno/lib/*",
|
|
81
91
|
"build": "yarn run clean && npm run build:cjs && npm run build:esm && npm run build:deno",
|
|
82
|
-
"build:deno": "node ./deno
|
|
83
|
-
"build:esm": "rollup --config rollup.config.js",
|
|
84
|
-
"build:cjs": "tsc -p tsconfig.cjs.json",
|
|
85
|
-
"build:types": "tsc -p tsconfig.types.json",
|
|
86
|
-
"build:test": "tsc -p tsconfig.test.json",
|
|
87
|
-
"
|
|
88
|
-
"test
|
|
89
|
-
"test": "jest --coverage",
|
|
92
|
+
"build:deno": "node ./deno-build.mjs && cp ./README.md ./deno/lib",
|
|
93
|
+
"build:esm": "rollup --config ./configs/rollup.config.js",
|
|
94
|
+
"build:cjs": "tsc -p ./configs/tsconfig.cjs.json",
|
|
95
|
+
"build:types": "tsc -p ./configs/tsconfig.types.json",
|
|
96
|
+
"build:test": "tsc -p ./configs/tsconfig.test.json",
|
|
97
|
+
"test:watch": "yarn test:ts-jest --watch",
|
|
98
|
+
"test": "yarn test:ts-jest",
|
|
99
|
+
"test:babel": "jest --coverage --config ./configs/babel-jest.config.json",
|
|
100
|
+
"test:bun": "bun test",
|
|
101
|
+
"test:vitest": "npx vitest --config ./configs/vitest.config.ts",
|
|
102
|
+
"test:ts-jest": "npx jest --config ./configs/ts-jest.config.json",
|
|
103
|
+
"test:swc": "npx jest --config ./configs/swc-jest.config.json",
|
|
90
104
|
"test:deno": "cd deno && deno test",
|
|
91
105
|
"prepublishOnly": "npm run test && npm run build && npm run build:deno",
|
|
92
106
|
"play": "nodemon -e ts -w . -x tsx playground.ts",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-amplify/graphql-api-construct",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.4",
|
|
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.
|
|
78
|
-
"@aws-amplify/backend-output-storage": "^0.1.1-alpha.
|
|
79
|
-
"@aws-amplify/graphql-auth-transformer": "3.1.
|
|
80
|
-
"@aws-amplify/graphql-default-value-transformer": "2.1.
|
|
81
|
-
"@aws-amplify/graphql-function-transformer": "2.1.
|
|
82
|
-
"@aws-amplify/graphql-http-transformer": "2.1.
|
|
83
|
-
"@aws-amplify/graphql-index-transformer": "2.1.
|
|
84
|
-
"@aws-amplify/graphql-maps-to-transformer": "3.2.
|
|
85
|
-
"@aws-amplify/graphql-model-transformer": "2.2.
|
|
86
|
-
"@aws-amplify/graphql-predictions-transformer": "2.1.
|
|
87
|
-
"@aws-amplify/graphql-relational-transformer": "2.1.
|
|
88
|
-
"@aws-amplify/graphql-searchable-transformer": "2.2.
|
|
89
|
-
"@aws-amplify/graphql-transformer": "1.2.
|
|
90
|
-
"@aws-amplify/graphql-transformer-core": "2.2.
|
|
91
|
-
"@aws-amplify/graphql-transformer-interfaces": "3.2.
|
|
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.8",
|
|
80
|
+
"@aws-amplify/graphql-default-value-transformer": "2.1.7",
|
|
81
|
+
"@aws-amplify/graphql-function-transformer": "2.1.6",
|
|
82
|
+
"@aws-amplify/graphql-http-transformer": "2.1.6",
|
|
83
|
+
"@aws-amplify/graphql-index-transformer": "2.1.7",
|
|
84
|
+
"@aws-amplify/graphql-maps-to-transformer": "3.2.4",
|
|
85
|
+
"@aws-amplify/graphql-model-transformer": "2.2.3",
|
|
86
|
+
"@aws-amplify/graphql-predictions-transformer": "2.1.6",
|
|
87
|
+
"@aws-amplify/graphql-relational-transformer": "2.1.7",
|
|
88
|
+
"@aws-amplify/graphql-searchable-transformer": "2.2.3",
|
|
89
|
+
"@aws-amplify/graphql-transformer": "1.2.4",
|
|
90
|
+
"@aws-amplify/graphql-transformer-core": "2.2.3",
|
|
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",
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
"pluralize": "^8.0.0",
|
|
108
108
|
"ts-dedent": "^2.0.0",
|
|
109
109
|
"universalify": "^2.0.0",
|
|
110
|
-
"zod": "^3.
|
|
110
|
+
"zod": "^3.22.3"
|
|
111
111
|
},
|
|
112
112
|
"devDependencies": {
|
|
113
113
|
"@types/fs-extra": "^8.0.1",
|
|
@@ -162,5 +162,5 @@
|
|
|
162
162
|
}
|
|
163
163
|
}
|
|
164
164
|
},
|
|
165
|
-
"gitHead": "
|
|
165
|
+
"gitHead": "10b8deff41ca497f67ae061c3860340f3cab724c"
|
|
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
|
/**
|
|
@@ -62,12 +64,18 @@ import {
|
|
|
62
64
|
*
|
|
63
65
|
* For a full reference of the supported custom graphql directives - https://docs.amplify.aws/cli/graphql/directives-reference/
|
|
64
66
|
*
|
|
65
|
-
* The output of this construct is a mapping of L1 resources generated by the transformer, which generally follow the access pattern
|
|
67
|
+
* The output of this construct is a mapping of L2 or L1 resources generated by the transformer, which generally follow the access pattern
|
|
66
68
|
*
|
|
67
69
|
* ```typescript
|
|
68
70
|
* const api = new AmplifyGraphQlApi(this, 'api', { <params> });
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
+
* // Access L2 resources under `.resources`
|
|
72
|
+
* api.resources.tables["Todo"].tableArn;
|
|
73
|
+
*
|
|
74
|
+
* // Access L1 resources under `.resources.cfnResources`
|
|
75
|
+
* api.resources.cfnResources.cfnGraphqlApi.xrayEnabled = true;
|
|
76
|
+
* Object.values(api.resources.cfnResources.cfnTables).forEach(table => {
|
|
77
|
+
* table.pointInTimeRecoverySpecification = { pointInTimeRecoveryEnabled: false };
|
|
78
|
+
* });
|
|
71
79
|
* ```
|
|
72
80
|
* `resources.<ResourceType>.<ResourceName>` - you can then perform any CDK action on these resulting resoureces.
|
|
73
81
|
*/
|
|
@@ -103,6 +111,11 @@ export class AmplifyGraphqlApi extends Construct {
|
|
|
103
111
|
*/
|
|
104
112
|
public readonly apiKey: string | undefined;
|
|
105
113
|
|
|
114
|
+
/**
|
|
115
|
+
* Conflict resolution setting
|
|
116
|
+
*/
|
|
117
|
+
private readonly conflictResolution: ConflictResolution | undefined;
|
|
118
|
+
|
|
106
119
|
/**
|
|
107
120
|
* New AmplifyGraphqlApi construct, this will create an appsync api with authorization, a schema, and all necessary resolvers, functions,
|
|
108
121
|
* and datasources.
|
|
@@ -180,6 +193,7 @@ export class AmplifyGraphqlApi extends Construct {
|
|
|
180
193
|
this.codegenAssets = new CodegenAssets(this, 'AmplifyCodegenAssets', { modelSchema: definition.schema });
|
|
181
194
|
|
|
182
195
|
this.resources = getGeneratedResources(this);
|
|
196
|
+
this.conflictResolution = conflictResolution;
|
|
183
197
|
this.generatedFunctionSlots = getGeneratedFunctionSlots(assetManager.resolverAssets);
|
|
184
198
|
this.storeOutput(outputStorageStrategy);
|
|
185
199
|
|
|
@@ -211,6 +225,15 @@ export class AmplifyGraphqlApi extends Construct {
|
|
|
211
225
|
output.payload.awsAppsyncApiKey = this.resources.cfnResources.cfnApiKey.attrApiKey;
|
|
212
226
|
}
|
|
213
227
|
|
|
228
|
+
const additionalAuthTypes = getAdditionalAuthenticationTypes(this.resources.cfnResources.cfnGraphqlApi);
|
|
229
|
+
if (additionalAuthTypes) {
|
|
230
|
+
output.payload.awsAppsyncAdditionalAuthenticationTypes = additionalAuthTypes;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
if (this.conflictResolution?.project?.handlerType) {
|
|
234
|
+
output.payload.awsAppsyncConflictResolutionMode = this.conflictResolution?.project?.handlerType;
|
|
235
|
+
}
|
|
236
|
+
|
|
214
237
|
outputStorageStrategy.addBackendOutputEntry(graphqlOutputKey, output);
|
|
215
238
|
}
|
|
216
239
|
|
|
@@ -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.
|
|
@@ -35,6 +35,11 @@ export class CodegenAssets extends Construct {
|
|
|
35
35
|
new BucketDeployment(this, `${id}Deployment`, {
|
|
36
36
|
destinationBucket: bucket,
|
|
37
37
|
sources: [Source.data(MODEL_SCHEMA_KEY, props.modelSchema)],
|
|
38
|
+
// Bucket deployment uses a Lambda that runs AWS S3 CLI to transfer assets to destination bucket.
|
|
39
|
+
// That Lambda requires higher memory setting to run fast even when processing small assets (less than 1kB).
|
|
40
|
+
// This setting has been established experimentally. Benchmark can be found in pull request description that established it.
|
|
41
|
+
// The value has been chosen to prefer the lowest cost (run time * memory demand) while providing reasonable performance.
|
|
42
|
+
memoryLimit: 1536,
|
|
38
43
|
});
|
|
39
44
|
|
|
40
45
|
this.modelSchemaS3Uri = getS3UriForBucketAndKey(bucket, MODEL_SCHEMA_KEY);
|