@aws-amplify/graphql-api-construct 1.17.0 → 1.17.2-ai-next.0
Sign up to get free protection for your applications and to get access to all the features.
- package/.jsii +38 -38
- package/CHANGELOG.md +10 -0
- package/lib/amplify-dynamodb-table-wrapper.js +1 -1
- package/lib/amplify-graphql-api.js +3 -2
- package/lib/amplify-graphql-definition.js +1 -1
- package/lib/sql-model-datasource-strategy.js +1 -1
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/bedrock_converse_adapter.d.ts +2 -1
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/bedrock_converse_adapter.js +13 -14
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/conversation_message_history_retriever.js +3 -2
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/conversation_turn_response_sender.d.ts +3 -1
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/conversation_turn_response_sender.js +19 -5
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/event-tools-provider/event_tools_provider.js +3 -2
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/event-tools-provider/graphql_tool.d.ts +3 -2
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/event-tools-provider/graphql_tool.js +3 -3
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/graphql_request_executor.d.ts +6 -3
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/graphql_request_executor.js +6 -5
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/user_agent_provider.d.ts +16 -0
- package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/user_agent_provider.js +48 -0
- package/node_modules/@aws-amplify/ai-constructs/package.json +2 -2
- package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +11 -11
- package/node_modules/@aws-amplify/graphql-conversation-transformer/API.md +3 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/CHANGELOG.md +10 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/conversation-directive-configuration.d.ts +17 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/conversation-directive-configuration.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/conversation-directive-configuration.js +5 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/conversation-directive-configuration.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/grapqhl-conversation-transformer.d.ts +2 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/grapqhl-conversation-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/grapqhl-conversation-transformer.js +2 -2
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/grapqhl-conversation-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/tools/process-tools.d.ts +3 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/tools/process-tools.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/tools/process-tools.js +29 -5
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/tools/process-tools.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-field-handler.d.ts +1 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-field-handler.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-field-handler.js +19 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-field-handler.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-resolver-generator.d.ts +3 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-resolver-generator.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-resolver-generator.js +3 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-resolver-generator.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-conversation-transformer/package.json +10 -9
- package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +6 -6
- package/node_modules/@aws-amplify/graphql-directives/CHANGELOG.md +6 -0
- package/node_modules/@aws-amplify/graphql-directives/lib/directives/conversation.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-directives/lib/directives/conversation.js +38 -3
- package/node_modules/@aws-amplify/graphql-directives/lib/directives/conversation.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-directives/package.json +2 -2
- package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-function-transformer/package.json +5 -5
- package/node_modules/@aws-amplify/graphql-generation-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/package.json +5 -5
- package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-http-transformer/package.json +5 -5
- package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-index-transformer/package.json +6 -6
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +4 -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 +9 -9
- package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +4 -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 +5 -5
- package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
- package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +5 -5
- package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +7 -7
- package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +4 -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 +6 -6
- package/node_modules/@aws-amplify/graphql-sql-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-sql-transformer/package.json +6 -6
- package/node_modules/@aws-amplify/graphql-transformer/API.md +3 -0
- package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +6 -0
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts +2 -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 +1 -1
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer/package.json +19 -18
- package/node_modules/@aws-amplify/graphql-transformer/src/graphql-transformer.ts +10 -2
- package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/package.json +3 -3
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +1 -2
- package/node_modules/@aws-amplify/platform-core/lib/errors/amplify_error.d.ts +11 -0
- package/node_modules/@aws-amplify/platform-core/lib/errors/amplify_error.js +19 -2
- package/node_modules/@aws-amplify/platform-core/package.json +1 -1
- package/node_modules/graphql-transformer-common/package.json +1 -2
- package/package.json +20 -20
- package/src/amplify-graphql-api.ts +2 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/LICENSE +0 -201
- package/node_modules/graphql-transformer-common/LICENSE +0 -201
@@ -3,6 +3,10 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
5
5
|
|
6
|
+
## [3.0.9-ai-next.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-searchable-transformer@3.0.8...@aws-amplify/graphql-searchable-transformer@3.0.9-ai-next.0) (2024-11-12)
|
7
|
+
|
8
|
+
**Note:** Version bump only for package @aws-amplify/graphql-searchable-transformer
|
9
|
+
|
6
10
|
## [3.0.8](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-searchable-transformer@3.0.7...@aws-amplify/graphql-searchable-transformer@3.0.8) (2024-11-08)
|
7
11
|
|
8
12
|
**Note:** Version bump only for package @aws-amplify/graphql-searchable-transformer
|
Binary file
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@aws-amplify/graphql-searchable-transformer",
|
3
|
-
"version": "3.0.
|
3
|
+
"version": "3.0.9-ai-next.0",
|
4
4
|
"description": "Amplfy GraphQL @searchable transformer",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -29,9 +29,9 @@
|
|
29
29
|
"extract-api": "ts-node ../../scripts/extract-api.ts"
|
30
30
|
},
|
31
31
|
"dependencies": {
|
32
|
-
"@aws-amplify/graphql-directives": "2.
|
33
|
-
"@aws-amplify/graphql-model-transformer": "3.1.0",
|
34
|
-
"@aws-amplify/graphql-transformer-core": "3.3.0",
|
32
|
+
"@aws-amplify/graphql-directives": "2.6.0-ai-next.0",
|
33
|
+
"@aws-amplify/graphql-model-transformer": "3.1.1-ai-next.0",
|
34
|
+
"@aws-amplify/graphql-transformer-core": "3.3.1-ai-next.0",
|
35
35
|
"@aws-amplify/graphql-transformer-interfaces": "4.2.0",
|
36
36
|
"graphql": "^15.5.0",
|
37
37
|
"graphql-mapping-template": "5.0.1",
|
@@ -42,7 +42,7 @@
|
|
42
42
|
"constructs": "^10.3.0"
|
43
43
|
},
|
44
44
|
"devDependencies": {
|
45
|
-
"@aws-amplify/graphql-transformer-test-utils": "1.0.
|
45
|
+
"@aws-amplify/graphql-transformer-test-utils": "1.0.8-ai-next.0",
|
46
46
|
"@types/node": "^18.0.0"
|
47
47
|
},
|
48
48
|
"jest": {
|
@@ -88,5 +88,5 @@
|
|
88
88
|
"printBasicPrototype": true
|
89
89
|
}
|
90
90
|
},
|
91
|
-
"gitHead": "
|
91
|
+
"gitHead": "74b295baf39b6e11454cfc5c7fef369879005d39"
|
92
92
|
}
|
@@ -3,6 +3,10 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
5
5
|
|
6
|
+
## [0.4.9-ai-next.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-sql-transformer@0.4.8...@aws-amplify/graphql-sql-transformer@0.4.9-ai-next.0) (2024-11-12)
|
7
|
+
|
8
|
+
**Note:** Version bump only for package @aws-amplify/graphql-sql-transformer
|
9
|
+
|
6
10
|
## [0.4.8](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-sql-transformer@0.4.7...@aws-amplify/graphql-sql-transformer@0.4.8) (2024-11-08)
|
7
11
|
|
8
12
|
**Note:** Version bump only for package @aws-amplify/graphql-sql-transformer
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@aws-amplify/graphql-sql-transformer",
|
3
|
-
"version": "0.4.
|
3
|
+
"version": "0.4.9-ai-next.0",
|
4
4
|
"description": "Amplify GraphQL @sql transformer",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -29,16 +29,16 @@
|
|
29
29
|
"extract-api": "ts-node ../../scripts/extract-api.ts"
|
30
30
|
},
|
31
31
|
"dependencies": {
|
32
|
-
"@aws-amplify/graphql-directives": "2.
|
33
|
-
"@aws-amplify/graphql-model-transformer": "3.1.0",
|
34
|
-
"@aws-amplify/graphql-transformer-core": "3.3.0",
|
32
|
+
"@aws-amplify/graphql-directives": "2.6.0-ai-next.0",
|
33
|
+
"@aws-amplify/graphql-model-transformer": "3.1.1-ai-next.0",
|
34
|
+
"@aws-amplify/graphql-transformer-core": "3.3.1-ai-next.0",
|
35
35
|
"@aws-amplify/graphql-transformer-interfaces": "4.2.0",
|
36
36
|
"graphql": "^15.5.0",
|
37
37
|
"graphql-mapping-template": "5.0.1",
|
38
38
|
"graphql-transformer-common": "5.1.1"
|
39
39
|
},
|
40
40
|
"devDependencies": {
|
41
|
-
"@aws-amplify/graphql-transformer-test-utils": "1.0.
|
41
|
+
"@aws-amplify/graphql-transformer-test-utils": "1.0.8-ai-next.0"
|
42
42
|
},
|
43
43
|
"peerDependencies": {
|
44
44
|
"aws-cdk-lib": "^2.158.0",
|
@@ -84,5 +84,5 @@
|
|
84
84
|
"printBasicPrototype": true
|
85
85
|
}
|
86
86
|
},
|
87
|
-
"gitHead": "
|
87
|
+
"gitHead": "74b295baf39b6e11454cfc5c7fef369879005d39"
|
88
88
|
}
|
@@ -6,6 +6,8 @@
|
|
6
6
|
|
7
7
|
import { AppSyncAuthConfiguration } from '@aws-amplify/graphql-transformer-interfaces';
|
8
8
|
import { AssetProvider } from '@aws-amplify/graphql-transformer-interfaces';
|
9
|
+
import { BackendOutputEntry } from '@aws-amplify/plugin-types';
|
10
|
+
import { BackendOutputStorageStrategy } from '@aws-amplify/plugin-types';
|
9
11
|
import { Construct } from 'constructs';
|
10
12
|
import type { DataSourceStrategiesProvider } from '@aws-amplify/graphql-transformer-interfaces';
|
11
13
|
import { GraphQLTransform } from '@aws-amplify/graphql-transformer-core';
|
@@ -56,6 +58,7 @@ export type TransformerFactoryArgs = {
|
|
56
58
|
storageConfig?: any;
|
57
59
|
customTransformers?: TransformerPluginProvider[];
|
58
60
|
functionNameMap?: Record<string, IFunction>;
|
61
|
+
outputStorageStrategy?: BackendOutputStorageStrategy<BackendOutputEntry>;
|
59
62
|
};
|
60
63
|
|
61
64
|
// (No @packageDocumentation comment for this package)
|
@@ -3,6 +3,12 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
5
5
|
|
6
|
+
## [2.1.7-ai-next.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-transformer@2.1.6...@aws-amplify/graphql-transformer@2.1.7-ai-next.0) (2024-11-12)
|
7
|
+
|
8
|
+
### Bug Fixes
|
9
|
+
|
10
|
+
- plumb outputStorageStrategy through conversation transformer to handler ([68438c4](https://github.com/aws-amplify/amplify-category-api/commit/68438c4d524dd619990b3784dcb4888ee0b5d091))
|
11
|
+
|
6
12
|
## [2.1.6](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-transformer@2.1.5...@aws-amplify/graphql-transformer@2.1.6) (2024-11-08)
|
7
13
|
|
8
14
|
**Note:** Version bump only for package @aws-amplify/graphql-transformer
|
@@ -3,10 +3,12 @@ import type { DataSourceStrategiesProvider, RDSLayerMappingProvider, RDSSNSTopic
|
|
3
3
|
import { GraphQLTransform, ResolverConfig, UserDefinedSlot } from '@aws-amplify/graphql-transformer-core';
|
4
4
|
import { Construct } from 'constructs';
|
5
5
|
import { IFunction } from 'aws-cdk-lib/aws-lambda';
|
6
|
+
import { BackendOutputEntry, BackendOutputStorageStrategy } from '@aws-amplify/plugin-types';
|
6
7
|
export type TransformerFactoryArgs = {
|
7
8
|
storageConfig?: any;
|
8
9
|
customTransformers?: TransformerPluginProvider[];
|
9
10
|
functionNameMap?: Record<string, IFunction>;
|
11
|
+
outputStorageStrategy?: BackendOutputStorageStrategy<BackendOutputEntry>;
|
10
12
|
};
|
11
13
|
export type TransformConfig = {
|
12
14
|
transformersFactoryArgs: TransformerFactoryArgs;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"graphql-transformer.d.ts","sourceRoot":"","sources":["../src/graphql-transformer.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,cAAc,EAEd,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,0BAA0B,EAC3B,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EACV,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,EAC1B,mBAAmB,EACpB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAC1G,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;
|
1
|
+
{"version":3,"file":"graphql-transformer.d.ts","sourceRoot":"","sources":["../src/graphql-transformer.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,cAAc,EAEd,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,0BAA0B,EAC3B,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EACV,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,EAC1B,mBAAmB,EACpB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAC1G,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGnD,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAK7F,MAAM,MAAM,sBAAsB,GAAG;IACnC,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,kBAAkB,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACjD,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC5C,qBAAqB,CAAC,EAAE,4BAA4B,CAAC,kBAAkB,CAAC,CAAC;CAC1E,CAAC;AAKF,MAAM,MAAM,eAAe,GAAG;IAC5B,uBAAuB,EAAE,sBAAsB,CAAC;IAChD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C,CAAC;AAEF,eAAO,MAAM,yBAAyB,aAAc,sBAAsB,KAAG,yBAAyB,EAqCrG,CAAC;AAOF,eAAO,MAAM,kBAAkB,WAAY,eAAe,KAAG,gBAa5D,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,eAAe,GAClD,4BAA4B,GAC5B,uBAAuB,GACvB,0BAA0B,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;IACpD,KAAK,EAAE,SAAS,CAAC;IACjB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,iBAAiB,CAAC,EAAE,0BAA0B,CAAC;IAC/C,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,eAAe,CAAC;CAClC,CAAC;AAMJ,eAAO,MAAM,0BAA0B,QAAS,cAAc,KAAG,IAiBhE,CAAC;AAOF,eAAO,MAAM,gBAAgB,WAAY,sBAAsB,KAAG,IAiCjE,CAAC"}
|
@@ -35,7 +35,7 @@ const constructTransformerChain = (options) => {
|
|
35
35
|
hasOneTransformer,
|
36
36
|
new graphql_relational_transformer_1.ManyToManyTransformer(modelTransformer, indexTransformer, hasOneTransformer, authTransformer),
|
37
37
|
belongsToTransformer,
|
38
|
-
new graphql_conversation_transformer_1.ConversationTransformer(modelTransformer, hasManyTransformer, belongsToTransformer, authTransformer, options === null || options === void 0 ? void 0 : options.functionNameMap),
|
38
|
+
new graphql_conversation_transformer_1.ConversationTransformer(modelTransformer, hasManyTransformer, belongsToTransformer, authTransformer, options === null || options === void 0 ? void 0 : options.outputStorageStrategy, options === null || options === void 0 ? void 0 : options.functionNameMap),
|
39
39
|
new graphql_generation_transformer_1.GenerationTransformer(),
|
40
40
|
new graphql_default_value_transformer_1.DefaultValueTransformer(),
|
41
41
|
authTransformer,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"graphql-transformer.js","sourceRoot":"","sources":["../src/graphql-transformer.ts"],"names":[],"mappings":";;;AAAA,oFAAwE;AACxE,sGAAyF;AACzF,4FAAgF;AAChF,oFAAwE;AACxE,sFAAiG;AACjG,0FAAkG;AAClG,sFAA0E;AAC1E,kFAAsE;AACtE,kGAAsF;AACtF,gGAKqD;AACrD,gGAAyF;AACzF,gGASqD;AAOrD,oFAA0G;AAG1G,gGAAoF;AACpF,oGAAwF;
|
1
|
+
{"version":3,"file":"graphql-transformer.js","sourceRoot":"","sources":["../src/graphql-transformer.ts"],"names":[],"mappings":"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"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@aws-amplify/graphql-transformer",
|
3
|
-
"version": "2.1.
|
3
|
+
"version": "2.1.7-ai-next.0",
|
4
4
|
"description": "Amplify GraphQL Transformer Root Package",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -29,24 +29,25 @@
|
|
29
29
|
"access": "public"
|
30
30
|
},
|
31
31
|
"dependencies": {
|
32
|
-
"@aws-amplify/graphql-auth-transformer": "4.1.
|
33
|
-
"@aws-amplify/graphql-conversation-transformer": "0.
|
34
|
-
"@aws-amplify/graphql-default-value-transformer": "3.1.
|
35
|
-
"@aws-amplify/graphql-function-transformer": "3.1.
|
36
|
-
"@aws-amplify/graphql-generation-transformer": "0.2.
|
37
|
-
"@aws-amplify/graphql-http-transformer": "3.0.
|
38
|
-
"@aws-amplify/graphql-index-transformer": "3.0.
|
39
|
-
"@aws-amplify/graphql-maps-to-transformer": "4.0.
|
40
|
-
"@aws-amplify/graphql-model-transformer": "3.1.0",
|
41
|
-
"@aws-amplify/graphql-predictions-transformer": "3.0.
|
42
|
-
"@aws-amplify/graphql-relational-transformer": "3.1.0",
|
43
|
-
"@aws-amplify/graphql-searchable-transformer": "3.0.
|
44
|
-
"@aws-amplify/graphql-sql-transformer": "0.4.
|
45
|
-
"@aws-amplify/graphql-transformer-core": "3.3.0",
|
46
|
-
"@aws-amplify/graphql-transformer-interfaces": "4.2.0"
|
32
|
+
"@aws-amplify/graphql-auth-transformer": "4.1.7-ai-next.0",
|
33
|
+
"@aws-amplify/graphql-conversation-transformer": "0.7.0-ai-next.0",
|
34
|
+
"@aws-amplify/graphql-default-value-transformer": "3.1.4-ai-next.0",
|
35
|
+
"@aws-amplify/graphql-function-transformer": "3.1.6-ai-next.0",
|
36
|
+
"@aws-amplify/graphql-generation-transformer": "0.2.7-ai-next.0",
|
37
|
+
"@aws-amplify/graphql-http-transformer": "3.0.9-ai-next.0",
|
38
|
+
"@aws-amplify/graphql-index-transformer": "3.0.9-ai-next.0",
|
39
|
+
"@aws-amplify/graphql-maps-to-transformer": "4.0.9-ai-next.0",
|
40
|
+
"@aws-amplify/graphql-model-transformer": "3.1.1-ai-next.0",
|
41
|
+
"@aws-amplify/graphql-predictions-transformer": "3.0.9-ai-next.0",
|
42
|
+
"@aws-amplify/graphql-relational-transformer": "3.1.1-ai-next.0",
|
43
|
+
"@aws-amplify/graphql-searchable-transformer": "3.0.9-ai-next.0",
|
44
|
+
"@aws-amplify/graphql-sql-transformer": "0.4.9-ai-next.0",
|
45
|
+
"@aws-amplify/graphql-transformer-core": "3.3.1-ai-next.0",
|
46
|
+
"@aws-amplify/graphql-transformer-interfaces": "4.2.0",
|
47
|
+
"@aws-amplify/plugin-types": "^1.0.0"
|
47
48
|
},
|
48
49
|
"devDependencies": {
|
49
|
-
"@aws-amplify/graphql-transformer-test-utils": "1.0.
|
50
|
+
"@aws-amplify/graphql-transformer-test-utils": "1.0.8-ai-next.0",
|
50
51
|
"@types/node": "^18.0.0",
|
51
52
|
"fs-extra": "^8.1.0",
|
52
53
|
"rimraf": "^3.0.0",
|
@@ -96,5 +97,5 @@
|
|
96
97
|
"printBasicPrototype": true
|
97
98
|
}
|
98
99
|
},
|
99
|
-
"gitHead": "
|
100
|
+
"gitHead": "74b295baf39b6e11454cfc5c7fef369879005d39"
|
100
101
|
}
|
@@ -35,7 +35,7 @@ import { Construct } from 'constructs';
|
|
35
35
|
import { IFunction } from 'aws-cdk-lib/aws-lambda';
|
36
36
|
import { GenerationTransformer } from '@aws-amplify/graphql-generation-transformer';
|
37
37
|
import { ConversationTransformer } from '@aws-amplify/graphql-conversation-transformer';
|
38
|
-
|
38
|
+
import { BackendOutputEntry, BackendOutputStorageStrategy } from '@aws-amplify/plugin-types';
|
39
39
|
/**
|
40
40
|
* Arguments passed into a TransformerFactory
|
41
41
|
* Used to determine how to create a new GraphQLTransform
|
@@ -44,6 +44,7 @@ export type TransformerFactoryArgs = {
|
|
44
44
|
storageConfig?: any;
|
45
45
|
customTransformers?: TransformerPluginProvider[];
|
46
46
|
functionNameMap?: Record<string, IFunction>;
|
47
|
+
outputStorageStrategy?: BackendOutputStorageStrategy<BackendOutputEntry>;
|
47
48
|
};
|
48
49
|
|
49
50
|
/**
|
@@ -78,7 +79,14 @@ export const constructTransformerChain = (options?: TransformerFactoryArgs): Tra
|
|
78
79
|
hasOneTransformer,
|
79
80
|
new ManyToManyTransformer(modelTransformer, indexTransformer, hasOneTransformer, authTransformer),
|
80
81
|
belongsToTransformer,
|
81
|
-
new ConversationTransformer(
|
82
|
+
new ConversationTransformer(
|
83
|
+
modelTransformer,
|
84
|
+
hasManyTransformer,
|
85
|
+
belongsToTransformer,
|
86
|
+
authTransformer,
|
87
|
+
options?.outputStorageStrategy,
|
88
|
+
options?.functionNameMap,
|
89
|
+
),
|
82
90
|
new GenerationTransformer(),
|
83
91
|
new DefaultValueTransformer(),
|
84
92
|
authTransformer,
|
@@ -3,6 +3,10 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
5
5
|
|
6
|
+
## [3.3.1-ai-next.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-transformer-core@3.3.0...@aws-amplify/graphql-transformer-core@3.3.1-ai-next.0) (2024-11-12)
|
7
|
+
|
8
|
+
**Note:** Version bump only for package @aws-amplify/graphql-transformer-core
|
9
|
+
|
6
10
|
# [3.3.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-transformer-core@3.2.2...@aws-amplify/graphql-transformer-core@3.3.0) (2024-11-08)
|
7
11
|
|
8
12
|
### Features
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@aws-amplify/graphql-transformer-core",
|
3
|
-
"version": "3.3.0",
|
3
|
+
"version": "3.3.1-ai-next.0",
|
4
4
|
"description": "A framework to transform from GraphQL SDL to AWS CloudFormation.",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -29,7 +29,7 @@
|
|
29
29
|
"extract-api": "ts-node ../../scripts/extract-api.ts"
|
30
30
|
},
|
31
31
|
"dependencies": {
|
32
|
-
"@aws-amplify/graphql-directives": "2.
|
32
|
+
"@aws-amplify/graphql-directives": "2.6.0-ai-next.0",
|
33
33
|
"@aws-amplify/graphql-transformer-interfaces": "4.2.0",
|
34
34
|
"fs-extra": "^8.1.0",
|
35
35
|
"graphql": "^15.5.0",
|
@@ -93,5 +93,5 @@
|
|
93
93
|
"printBasicPrototype": true
|
94
94
|
}
|
95
95
|
},
|
96
|
-
"gitHead": "
|
96
|
+
"gitHead": "74b295baf39b6e11454cfc5c7fef369879005d39"
|
97
97
|
}
|
@@ -28,6 +28,17 @@ export declare abstract class AmplifyError<T extends string = string> extends Er
|
|
28
28
|
*/
|
29
29
|
constructor(name: T, classification: AmplifyErrorClassification, options: AmplifyErrorOptions, cause?: Error | undefined);
|
30
30
|
static fromStderr: (_stderr: string) => AmplifyError | undefined;
|
31
|
+
/**
|
32
|
+
* This function is a type predicate for AmplifyError.
|
33
|
+
* See https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates.
|
34
|
+
*
|
35
|
+
* Checks if error is an AmplifyError by inspecting if required properties are set.
|
36
|
+
* This is recommended instead of instanceof operator.
|
37
|
+
* The instance of operator does not work as expected if AmplifyError class is loaded
|
38
|
+
* from multiple sources, for example when package manager decides to not de-duplicate dependencies.
|
39
|
+
* See https://github.com/nodejs/node/issues/17943.
|
40
|
+
*/
|
41
|
+
static isAmplifyError: (error: unknown) => error is AmplifyError<string>;
|
31
42
|
static fromError: (error: unknown) => AmplifyError<'UnknownFault' | 'CredentialsError' | 'InvalidCommandInputError' | 'DomainNotFoundError' | 'SyntaxError'>;
|
32
43
|
}
|
33
44
|
/**
|
@@ -45,7 +45,7 @@ class AmplifyError extends Error {
|
|
45
45
|
this.resolution = options.resolution;
|
46
46
|
this.code = options.code;
|
47
47
|
this.link = options.link;
|
48
|
-
if (cause && cause
|
48
|
+
if (cause && AmplifyError.isAmplifyError(cause)) {
|
49
49
|
cause.serializedError = undefined;
|
50
50
|
}
|
51
51
|
this.serializedError = JSON.stringify({
|
@@ -90,6 +90,23 @@ class AmplifyError extends Error {
|
|
90
90
|
}
|
91
91
|
return undefined;
|
92
92
|
};
|
93
|
+
/**
|
94
|
+
* This function is a type predicate for AmplifyError.
|
95
|
+
* See https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates.
|
96
|
+
*
|
97
|
+
* Checks if error is an AmplifyError by inspecting if required properties are set.
|
98
|
+
* This is recommended instead of instanceof operator.
|
99
|
+
* The instance of operator does not work as expected if AmplifyError class is loaded
|
100
|
+
* from multiple sources, for example when package manager decides to not de-duplicate dependencies.
|
101
|
+
* See https://github.com/nodejs/node/issues/17943.
|
102
|
+
*/
|
103
|
+
static isAmplifyError = (error) => {
|
104
|
+
return (error instanceof Error &&
|
105
|
+
'classification' in error &&
|
106
|
+
(error.classification === 'ERROR' || error.classification === 'FAULT') &&
|
107
|
+
typeof error.name === 'string' &&
|
108
|
+
typeof error.message === 'string');
|
109
|
+
};
|
93
110
|
static fromError = (error) => {
|
94
111
|
const errorMessage = error instanceof Error
|
95
112
|
? `${error.name}: ${error.message}`
|
@@ -180,4 +197,4 @@ class ErrorSerializerDeserializer {
|
|
180
197
|
return false;
|
181
198
|
};
|
182
199
|
}
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeV9lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcnJvcnMvYW1wbGlmeV9lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3QkFBbUQ7QUFFbkQ7O0dBRUc7QUFDSCxNQUFzQixZQUF3QyxTQUFRLEtBQUs7SUF1QnZEO0lBQ0E7SUFDQztJQUNEO0lBekJYLGVBQWUsQ0FBVTtJQUNoQixPQUFPLENBQVM7SUFDaEIsVUFBVSxDQUFVO0lBQ3BCLE9BQU8sQ0FBVTtJQUNqQixJQUFJLENBQVU7SUFDZCxJQUFJLENBQVU7SUFFOUI7Ozs7Ozs7Ozs7Ozs7T0FhRztJQUNILFlBQ2tCLElBQU8sRUFDUCxjQUEwQyxFQUN6QyxPQUE0QixFQUM3QixLQUFhO1FBRTdCLDZFQUE2RTtRQUM3RSw2RUFBNkU7UUFDN0UsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBUGxCLFNBQUksR0FBSixJQUFJLENBQUc7UUFDUCxtQkFBYyxHQUFkLGNBQWMsQ0FBNEI7UUFDekMsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7UUFDN0IsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQU03Qiw2SUFBNkk7UUFDN0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXBELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFFekIsSUFBSSxLQUFLLElBQUksS0FBSyxZQUFZLFlB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QyxxQkFBcUIsR0FBRyxDQUFDLEdBQVksRUFBOEIsRUFBRTtRQUMxRSxJQUNFLEdBQUc7WUFDRixHQUEyQixDQUFDLElBQUk7WUFDaEMsR0FBMkIsQ0FBQyxPQUFPO1lBRXBDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbXBsaWZ5RmF1bHQsIEFtcGxpZnlVc2VyRXJyb3IgfSBmcm9tICcuJztcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhbGwgQW1wbGlmeSBlcnJvcnMgb3IgZmF1bHRzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBbXBsaWZ5RXJyb3I8VCBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4gZXh0ZW5kcyBFcnJvciB7XG4gIHB1YmxpYyBzZXJpYWxpemVkRXJyb3I/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSByZXNvbHV0aW9uPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZGV0YWlscz86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGxpbms/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBjb2RlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBZb3Ugc2hvdWxkIHVzZSBBbXBsaWZ5VXNlckVycm9yIG9yIEFtcGxpZnlMaWJyYXJ5RmF1bHQgdG8gdGhyb3cgYW4gZXJyb3IuXG4gICAqIEBwYXJhbSBuYW1lIC0gYSB1c2VyIGZyaWVuZGx5IG5hbWUgZm9yIHRoZSBleGNlcHRpb25cbiAgICogQHBhcmFtIGNsYXNzaWZpY2F0aW9uIC0gTGlicmFyeUZhdWx0IG9yIFVzZXJFcnJvclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIGVycm9yIHN0YWNrLCByZXNvbHV0aW9uIHN0ZXBzLCBkZXRhaWxzLCBvciBoZWxwIGxpbmtzXG4gICAqIEBwYXJhbSBjYXVzZSBJZiB5b3UgYXJlIHRocm93aW5nIHRoaXMgZXhjZXB0aW9uIGZyb20gd2l0aGluIGEgY2F0Y2ggYmxvY2ssXG4gICAqIHlvdSBtdXN0IHByb3ZpZGUgdGhlIGV4Y2VwdGlvbiB0aGF0IHdhcyBjYXVnaHQuXG4gICAqIEBleGFtcGxlXG4gICAqIHRyeSB7XG4gICAqICAuLi5cbiAgICogfSBjYXRjaCAoZXJyb3Ipe1xuICAgKiAgICB0aHJvdyBuZXcgQW1wbGlmeUVycm9yKC4uLiwuLi4sZXJyb3IpO1xuICAgKiB9XG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogVCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2xhc3NpZmljYXRpb246IEFtcGxpZnlFcnJvckNsYXNzaWZpY2F0aW9uLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQW1wbGlmeUVycm9yT3B0aW9ucyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2F1c2U/OiBFcnJvclxuICApIHtcbiAgICAvLyBJZiBhbiBBbXBsaWZ5RXJyb3Igd2FzIGFscmVhZHkgdGhyb3duLCB3ZSBtdXN0IGFsbG93IGl0IHRvIHJlYWNoIHRoZSB1c2VyLlxuICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0IHJlc29sdXRpb24gc3RlcHMsIGFuZCB0aGUgb3JpZ2luYWwgZXJyb3IgYXJlIGJ1YmJsZWQgdXAuXG4gICAgc3VwZXIob3B0aW9ucy5tZXNzYWdlLCB7IGNhdXNlIH0pO1xuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0LXdpa2kvYmxvYi9tYWluL0JyZWFraW5nLUNoYW5nZXMubWQjZXh0ZW5kaW5nLWJ1aWx0LWlucy1saWtlLWVycm9yLWFycmF5LWFuZC1tYXAtbWF5LW5vLWxvbmdlci13b3JrXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEFtcGxpZnlFcnJvci5wcm90b3R5cGUpO1xuXG4gICAgdGhpcy5tZXNzYWdlID0gb3B0aW9ucy5tZXNzYWdlO1xuICAgIHRoaXMuZGV0YWlscyA9IG9wdGlvbnMuZGV0YWlscztcbiAgICB0aGlzLnJlc29sdXRpb24gPSBvcHRpb25zLnJlc29sdXRpb247XG4gICAgdGhpcy5jb2RlID0gb3B0aW9ucy5jb2RlO1xuICAgIHRoaXMubGluayA9IG9wdGlvbnMubGluaztcblxuICAgIGlmIChjYXVzZSAmJiBjYXVzZSBpbnN0YW5jZW9mIEFtcGxpZnlFcnJvcikge1xuICAgICAgY2F1c2Uuc2VyaWFsaXplZEVycm9yID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0aGlzLnNlcmlhbGl6ZWRFcnJvciA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAge1xuICAgICAgICBuYW1lLFxuICAgICAgICBjbGFzc2lmaWNhdGlvbixcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgY2F1c2UsXG4gICAgICB9LFxuICAgICAgZXJyb3JTZXJpYWxpemVyXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3RkZXJyID0gKF9zdGRlcnI6IHN0cmluZyk6IEFtcGxpZnlFcnJvciB8IHVuZGVmaW5lZCA9PiB7XG4gICAgLyoqXG4gICAgICogYFtcIiddP3NlcmlhbGl6ZWRFcnJvcltcIiddPzpbIF0/YCBjYXB0dXJlcyB0aGUgc3RhcnQgb2YgdGhlIHNlcmlhbGl6ZWQgZXJyb3IuIFRoZSBxdW90ZXMgZGVwZW5kIG9uIHdoaWNoIE9TIGlzIGJlaW5nIHVzZWRcbiAgICAgKiBgKD86YCguKz8pYHwnKC4rPyknfFwiKCg/OlxcXFxcInxbXlwiXSkqPylcIilgIGNhcHR1cmVzIHRoZSByZXN0IG9mIHRoZSBzZXJpYWxpemVkIHN0cmluZyBlbmNsb3NlZCBpbiBlaXRoZXIgc2luZ2xlIHF1b3RlLFxuICAgICAqIGRvdWJsZSBxdW90ZXMgb3IgYmFjay10aWNrcy5cbiAgICAgKi9cbiAgICBjb25zdCBleHRyYWN0aW9uUmVnZXggPVxuICAgICAgL1tcIiddP3NlcmlhbGl6ZWRFcnJvcltcIiddPzpbIF0/KD86YCguKz8pYHwnKC4rPyknfFwiKCg/OlxcXFxcInxbXlwiXSkqPylcIikvO1xuICAgIGNvbnN0IHNlcmlhbGl6ZWQgPSBfc3RkZXJyLm1hdGNoKGV4dHJhY3Rpb25SZWdleCk7XG4gICAgaWYgKHNlcmlhbGl6ZWQgJiYgc2VyaWFsaXplZC5sZW5ndGggPT09IDQpIHtcbiAgICAgIC8vIDQgYmVjYXVzZSAxIG1hdGNoIGFuZCAzIGNhcHR1cmluZyBncm91cHNcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHNlcmlhbGl6ZWRTdHJpbmcgPSBzZXJpYWxpemVkXG4gICAgICAgICAgLnNsaWNlKDEpXG4gICAgICAgICAgLmZpbmQoKGl0ZW0pID0+IGl0ZW0gJiYgaXRlbS5sZW5ndGggPiAwKVxuICAgICAgICAgID8ucmVwbGFjZUFsbCgnXFxcXFwiJywgJ1wiJylcbiAgICAgICAgICAucmVwbGFjZUFsbChcIlxcXFwnXCIsIFwiJ1wiKTtcblxuICAgICAgICBpZiAoIXNlcmlhbGl6ZWRTdHJpbmcpIHtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyBuYW1lLCBjbGFzc2lmaWNhdGlvbiwgb3B0aW9ucywgY2F1c2UgfSA9XG4gICAgICAgICAgSlNPTi5wYXJzZShzZXJpYWxpemVkU3RyaW5nKTtcblxuICAgICAgICBsZXQgc2VyaWFsaXplZENhdXNlID0gY2F1c2U7XG4gICAgICAgIGlmIChjYXVzZSAmJiBFcnJvclNlcmlhbGl6ZXJEZXNlcmlhbGl6ZXIuaXNTZXJpYWxpemVkRXJyb3JUeXBlKGNhdXNlKSkge1xuICAgICAgICAgIHNlcmlhbGl6ZWRDYXVzZSA9IEVycm9yU2VyaWFsaXplckRlc2VyaWFsaXplci5kZXNlcmlhbGl6ZShjYXVzZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNsYXNzaWZpY2F0aW9uID09PSAnRVJST1InXG4gICAgICAgICAgPyBuZXcgQW1wbGlmeVVzZXJFcnJvcihuYW1lLCBvcHRpb25zLCBzZXJpYWxpemVkQ2F1c2UpXG4gICAgICAgICAgOiBuZXcgQW1wbGlmeUZhdWx0KG5hbWUsIG9wdGlvbnMsIHNlcmlhbGl6ZWRDYXVzZSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBjYW5ub3QgZGVzZXJpYWxpemVcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfTtcblxuICBzdGF0aWMgZnJvbUVycm9yID0gKFxuICAgIGVycm9yOiB1bmtub3duXG4gICk6IEFtcGxpZnlFcnJvcjxcbiAgICB8ICdVbmtub3duRmF1bHQnXG4gICAgfCAnQ3JlZGVudGlhbHNFcnJvcidcbiAgICB8ICdJbnZhbGlkQ29tbWFuZElucHV0RXJyb3InXG4gICAgfCAnRG9tYWluTm90Rm91bmRFcnJvcidcbiAgICB8ICdTeW50YXhFcnJvcidcbiAgPiA9PiB7XG4gICAgY29uc3QgZXJyb3JNZXNzYWdlID1cbiAgICAgIGVycm9yIGluc3RhbmNlb2YgRXJyb3JcbiAgICAgICAgPyBgJHtlcnJvci5uYW1lfTogJHtlcnJvci5tZXNzYWdlfWBcbiAgICAgICAgOiAnQW4gdW5rbm93biBlcnJvciBoYXBwZW5lZC4gQ2hlY2sgZG93bnN0cmVhbSBlcnJvcic7XG5cbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciAmJiBpc0NyZWRlbnRpYWxzRXJyb3IoZXJyb3IpKSB7XG4gICAgICByZXR1cm4gbmV3IEFtcGxpZnlVc2VyRXJyb3IoXG4gICAgICAgICdDcmVkZW50aWFsc0Vycm9yJyxcbiAgICAgICAge1xuICAgICAgICAgIG1lc3NhZ2U6IGVycm9yTWVzc2FnZSxcbiAgICAgICAgICByZXNvbHV0aW9uOlxuICAgICAgICAgICAgJ0Vuc3VyZSB5b3VyIEFXUyBjcmVkZW50aWFscyBhcmUgY29ycmVjdGx5IHNldCBhbmQgcmVmcmVzaGVkLicsXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciAmJiBpc1lhcmdzVmFsaWRhdGlvbkVycm9yKGVycm9yKSkge1xuICAgICAgcmV0dXJuIG5ldyBBbXBsaWZ5VXNlckVycm9yKFxuICAgICAgICAnSW52YWxpZENvbW1hbmRJbnB1dEVycm9yJyxcbiAgICAgICAge1xuICAgICAgICAgIG1lc3NhZ2U6IGVycm9yTWVzc2FnZSxcbiAgICAgICAgICByZXNvbHV0aW9uOiAnUGxlYXNlIHNlZSB0aGUgdW5kZXJseWluZyBlcnJvciBtZXNzYWdlIGZvciByZXNvbHV0aW9uLicsXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciAmJiBpc0VOb3RGb3VuZEVycm9yKGVycm9yKSkge1xuICAgICAgcmV0dXJuIG5ldyBBbXBsaWZ5VXNlckVycm9yKFxuICAgICAgICAnRG9tYWluTm90Rm91bmRFcnJvcicsXG4gICAgICAgIHtcbiAgICAgICAgICBtZXNzYWdlOiAnVW5hYmxlIHRvIGVzdGFibGlzaCBhIGNvbm5lY3Rpb24gdG8gYSBkb21haW4nLFxuICAgICAgICAgIHJlc29sdXRpb246XG4gICAgICAgICAgICAnRW5zdXJlIGRvbWFpbiBuYW1lIGlzIGNvcnJlY3QgYW5kIG5ldHdvcmsgY29ubmVjdGlvbiBpcyBzdGFibGUuJyxcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3JcbiAgICAgICk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIGNhdGNoZXMgU3ludGF4RXJyb3JzIHRoYXQgd2VyZSBzb21laG93IG5vdCBpbnN0YW5jZXMgb2YgQW1wbGlmeUVycm9yXG4gICAgICogdGhpcyBjYW4gYmUgcmVtb3ZlZCBvbmNlIHdlIGNhbiBwcm9wZXJseSBpZGVudGlmeSB3aGVyZSBBbXBsaWZ5RXJyb3IgaXMgYmVpbmcgc3RyaXBwZWQgb2ZmXG4gICAgICovXG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiYgaXNTeW50YXhFcnJvcihlcnJvcikpIHtcbiAgICAgIHJldHVybiBuZXcgQW1wbGlmeVVzZXJFcnJvcihcbiAgICAgICAgJ1N5bnRheEVycm9yJyxcbiAgICAgICAge1xuICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsXG4gICAgICAgICAgcmVzb2x1dGlvbjpcbiAgICAgICAgICAgICdDaGVjayB5b3VyIGJhY2tlbmQgZGVmaW5pdGlvbiBpbiB0aGUgYGFtcGxpZnlgIGZvbGRlciBmb3Igc3ludGF4IGFuZCB0eXBlIGVycm9ycy4nLFxuICAgICAgICB9LFxuICAgICAgICBlcnJvclxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBBbXBsaWZ5RmF1bHQoXG4gICAgICAnVW5rbm93bkZhdWx0JyxcbiAgICAgIHtcbiAgICAgICAgbWVzc2FnZTogZXJyb3JNZXNzYWdlLFxuICAgICAgfSxcbiAgICAgIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvciA6IG5ldyBFcnJvcihTdHJpbmcoZXJyb3IpKVxuICAgICk7XG4gIH07XG59XG5cbmNvbnN0IGlzQ3JlZGVudGlhbHNFcnJvciA9IChlcnI/OiBFcnJvcik6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gISFlcnIgJiYgZXJyPy5uYW1lID09PSAnQ3JlZGVudGlhbHNQcm92aWRlckVycm9yJztcbn07XG5cbi8vIFRoZXNlIHZhbGlkYXRpb24gbWVzc2FnZXMgYXJlIHRha2VuIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3lhcmdzL3lhcmdzL2Jsb2IvMGM5NWY5Yzc5ZTE4MTBjZjljODk2NGZiZjdkMTM5MDA5NDEyZjdlNy9saWIvdmFsaWRhdGlvbi50c1xuY29uc3QgaXNZYXJnc1ZhbGlkYXRpb25FcnJvciA9IChlcnI/OiBFcnJvcik6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gKFxuICAgICEhZXJyICYmXG4gICAgKFtcbiAgICAgICdVbmtub3duIGNvbW1hbmQnLFxuICAgICAgJ1Vua25vd24gYXJndW1lbnQnLFxuICAgICAgJ0RpZCB5b3UgbWVhbicsXG4gICAgICAnTm90IGVub3VnaCBub24tb3B0aW9uIGFyZ3VtZW50cycsXG4gICAgICAnVG9vIG1hbnkgbm9uLW9wdGlvbiBhcmd1bWVudHMnLFxuICAgICAgJ01pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnQnLFxuICAgICAgJ0ludmFsaWQgdmFsdWVzOicsXG4gICAgICAnTWlzc2luZyBkZXBlbmRlbnQgYXJndW1lbnRzJyxcbiAgICAgICdJbXBsaWNhdGlvbnMgZmFpbGVkJyxcbiAgICBdLnNvbWUoKG1lc3NhZ2UpID0+IGVyci5tZXNzYWdlLnN0YXJ0c1dpdGgobWVzc2FnZSkpIHx8XG4gICAgICBlcnIubWVzc2FnZS5lbmRzV2l0aCgnYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZScpKVxuICApO1xufTtcblxuY29uc3QgaXNFTm90Rm91bmRFcnJvciA9IChlcnI/OiBFcnJvcik6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gISFlcnIgJiYgZXJyLm1lc3NhZ2Uuc3RhcnRzV2l0aCgnZ2V0YWRkcmluZm8gRU5PVEZPVU5EJyk7XG59O1xuXG5jb25zdCBpc1N5bnRheEVycm9yID0gKGVycj86IEVycm9yKTogYm9vbGVhbiA9PiB7XG4gIHJldHVybiAhIWVyciAmJiBlcnIubmFtZSA9PT0gJ1N5bnRheEVycm9yJztcbn07XG5cbi8qKlxuICogQW1wbGlmeSBleGNlcHRpb24gY2xhc3NpZmljYXRpb25zXG4gKi9cbmV4cG9ydCB0eXBlIEFtcGxpZnlFcnJvckNsYXNzaWZpY2F0aW9uID0gJ0ZBVUxUJyB8ICdFUlJPUic7XG5cbi8qKlxuICogQW1wbGlmeSBFcnJvciBvcHRpb25zIG9iamVjdFxuICovXG5leHBvcnQgdHlwZSBBbXBsaWZ5RXJyb3JPcHRpb25zID0ge1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGRldGFpbHM/OiBzdHJpbmc7XG4gIHJlc29sdXRpb24/OiBzdHJpbmc7XG4gIGxpbms/OiBzdHJpbmc7XG5cbiAgLy8gQ2xvdWRGb3JtYXRpb24gb3IgTm9kZUpTIGVycm9yIGNvZGVzXG4gIGNvZGU/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIFNhbWUgYXMgQW1wbGlmeUVycm9yT3B0aW9ucyBleGNlcHQgcmVzb2x1dGlvbiBpcyByZXF1aXJlZFxuICovXG5leHBvcnQgdHlwZSBBbXBsaWZ5VXNlckVycm9yT3B0aW9ucyA9IE9taXQ8XG4gIEFtcGxpZnlFcnJvck9wdGlvbnMsXG4gICdyZXNvbHV0aW9uJ1xuPiAmIHsgcmVzb2x1dGlvbjogc3RyaW5nIH07XG5cbmNvbnN0IGVycm9yU2VyaWFsaXplciA9IChfOiB1bmtub3duLCB2YWx1ZTogdW5rbm93bikgPT4ge1xuICBpZiAodmFsdWUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgIHJldHVybiBFcnJvclNlcmlhbGl6ZXJEZXNlcmlhbGl6ZXIuc2VyaWFsaXplKHZhbHVlKTtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59O1xuY2xhc3MgRXJyb3JTZXJpYWxpemVyRGVzZXJpYWxpemVyIHtcbiAgc3RhdGljIHNlcmlhbGl6ZSA9IChlcnJvcjogRXJyb3IpID0+IHtcbiAgICBjb25zdCBzZXJpYWxpemVkRXJyb3I6IFNlcmlhbGl6ZWRFcnJvclR5cGUgPSB7XG4gICAgICBuYW1lOiBlcnJvci5uYW1lLFxuICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSxcbiAgICB9O1xuICAgIHJldHVybiBzZXJpYWxpemVkRXJyb3I7XG4gIH07XG5cbiAgc3RhdGljIGRlc2VyaWFsaXplID0gKGRlc2VyaWFsaXplZDogU2VyaWFsaXplZEVycm9yVHlwZSkgPT4ge1xuICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKGRlc2VyaWFsaXplZC5tZXNzYWdlKTtcbiAgICBlcnJvci5uYW1lID0gZGVzZXJpYWxpemVkLm5hbWU7XG4gICAgcmV0dXJuIGVycm9yO1xuICB9O1xuXG4gIHN0YXRpYyBpc1NlcmlhbGl6ZWRFcnJvclR5cGUgPSAob2JqOiB1bmtub3duKTogb2JqIGlzIFNlcmlhbGl6ZWRFcnJvclR5cGUgPT4ge1xuICAgIGlmIChcbiAgICAgIG9iaiAmJlxuICAgICAgKG9iaiBhcyBTZXJpYWxpemVkRXJyb3JUeXBlKS5uYW1lICYmXG4gICAgICAob2JqIGFzIFNlcmlhbGl6ZWRFcnJvclR5cGUpLm1lc3NhZ2VcbiAgICApXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG59XG50eXBlIFNlcmlhbGl6ZWRFcnJvclR5cGUgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgbWVzc2FnZTogc3RyaW5nO1xufTtcbiJdfQ==
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeV9lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcnJvcnMvYW1wbGlmeV9lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3QkFBbUQ7QUFFbkQ7O0dBRUc7QUFDSCxNQUFzQixZQUF3QyxTQUFRLEtBQUs7SUF1QnZEO0lBQ0E7SUFDQztJQUNEO0lBekJYLGVBQWUsQ0FBVTtJQUNoQixPQUFPLENBQVM7SUFDaEIsVUFBVSxDQUFVO0lBQ3BCLE9BQU8sQ0FBVTtJQUNqQixJQUFJLENBQVU7SUFDZCxJQUFJLENBQVU7SUFFOUI7Ozs7Ozs7Ozs7Ozs7T0FhRztJQUNILFlBQ2tCLElBQU8sRUFDUCxjQUEwQyxFQUN6QyxPQUE0QixFQUM3QixLQUFhO1FBRTdCLDZFQUE2RTtRQUM3RSw2RUFBNkU7UUFDN0UsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBUGxCLFNBQUksR0FBSixJQUFJLENBQUc7UUFDUCxtQkFBYyxHQUFkLGNBQWMsQ0FBNEI7UUFDekMsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7UUFDN0IsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQU03Qiw2SUFBNkk7UUFDN0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXBELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFFekIsSUFBSSxLQUFLLElBQUksWUFBWSxDQUFDLGNB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SSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztTQUN2QixDQUFDO1FBQ0YsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQyxDQUFDO0lBRUYsTUFBTSxDQUFDLFdBQVcsR0FBRyxDQUFDLFlBQWlDLEVBQUUsRUFBRTtRQUN6RCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUMsS0FBSyxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDO1FBQy9CLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0lBRUYsTUFBTSxDQUFDLHFCQUFxQixHQUFHLENBQUMsR0FBWSxFQUE4QixFQUFFO1FBQzFFLElBQ0UsR0FBRztZQUNGLEdBQTJCLENBQUMsSUFBSTtZQUNoQyxHQUEyQixDQUFDLE9BQU87WUFFcEMsT0FBTyxJQUFJLENBQUM7UUFDZCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFtcGxpZnlGYXVsdCwgQW1wbGlmeVVzZXJFcnJvciB9IGZyb20gJy4nO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGFsbCBBbXBsaWZ5IGVycm9ycyBvciBmYXVsdHNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFtcGxpZnlFcnJvcjxUIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPiBleHRlbmRzIEVycm9yIHtcbiAgcHVibGljIHNlcmlhbGl6ZWRFcnJvcj86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHJlc29sdXRpb24/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBkZXRhaWxzPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbGluaz86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGNvZGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFlvdSBzaG91bGQgdXNlIEFtcGxpZnlVc2VyRXJyb3Igb3IgQW1wbGlmeUxpYnJhcnlGYXVsdCB0byB0aHJvdyBhbiBlcnJvci5cbiAgICogQHBhcmFtIG5hbWUgLSBhIHVzZXIgZnJpZW5kbHkgbmFtZSBmb3IgdGhlIGV4Y2VwdGlvblxuICAgKiBAcGFyYW0gY2xhc3NpZmljYXRpb24gLSBMaWJyYXJ5RmF1bHQgb3IgVXNlckVycm9yXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gZXJyb3Igc3RhY2ssIHJlc29sdXRpb24gc3RlcHMsIGRldGFpbHMsIG9yIGhlbHAgbGlua3NcbiAgICogQHBhcmFtIGNhdXNlIElmIHlvdSBhcmUgdGhyb3dpbmcgdGhpcyBleGNlcHRpb24gZnJvbSB3aXRoaW4gYSBjYXRjaCBibG9jayxcbiAgICogeW91IG11c3QgcHJvdmlkZSB0aGUgZXhjZXB0aW9uIHRoYXQgd2FzIGNhdWdodC5cbiAgICogQGV4YW1wbGVcbiAgICogdHJ5IHtcbiAgICogIC4uLlxuICAgKiB9IGNhdGNoIChlcnJvcil7XG4gICAqICAgIHRocm93IG5ldyBBbXBsaWZ5RXJyb3IoLi4uLC4uLixlcnJvcik7XG4gICAqIH1cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBuYW1lOiBULFxuICAgIHB1YmxpYyByZWFkb25seSBjbGFzc2lmaWNhdGlvbjogQW1wbGlmeUVycm9yQ2xhc3NpZmljYXRpb24sXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBBbXBsaWZ5RXJyb3JPcHRpb25zLFxuICAgIHB1YmxpYyByZWFkb25seSBjYXVzZT86IEVycm9yXG4gICkge1xuICAgIC8vIElmIGFuIEFtcGxpZnlFcnJvciB3YXMgYWxyZWFkeSB0aHJvd24sIHdlIG11c3QgYWxsb3cgaXQgdG8gcmVhY2ggdGhlIHVzZXIuXG4gICAgLy8gVGhpcyBlbnN1cmVzIHRoYXQgcmVzb2x1dGlvbiBzdGVwcywgYW5kIHRoZSBvcmlnaW5hbCBlcnJvciBhcmUgYnViYmxlZCB1cC5cbiAgICBzdXBlcihvcHRpb25zLm1lc3NhZ2UsIHsgY2F1c2UgfSk7XG5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L1R5cGVTY3JpcHQtd2lraS9ibG9iL21haW4vQnJlYWtpbmctQ2hhbmdlcy5tZCNleHRlbmRpbmctYnVpbHQtaW5zLWxpa2UtZXJyb3ItYXJyYXktYW5kLW1hcC1tYXktbm8tbG9uZ2VyLXdvcmtcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQW1wbGlmeUVycm9yLnByb3RvdHlwZSk7XG5cbiAgICB0aGlzLm1lc3NhZ2UgPSBvcHRpb25zLm1lc3NhZ2U7XG4gICAgdGhpcy5kZXRhaWxzID0gb3B0aW9ucy5kZXRhaWxzO1xuICAgIHRoaXMucmVzb2x1dGlvbiA9IG9wdGlvbnMucmVzb2x1dGlvbjtcbiAgICB0aGlzLmNvZGUgPSBvcHRpb25zLmNvZGU7XG4gICAgdGhpcy5saW5rID0gb3B0aW9ucy5saW5rO1xuXG4gICAgaWYgKGNhdXNlICYmIEFtcGxpZnlFcnJvci5pc0FtcGxpZnlFcnJvcihjYXVzZSkpIHtcbiAgICAgIGNhdXNlLnNlcmlhbGl6ZWRFcnJvciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy5zZXJpYWxpemVkRXJyb3IgPSBKU09OLnN0cmluZ2lmeShcbiAgICAgIHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgY2xhc3NpZmljYXRpb24sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICAgIGNhdXNlLFxuICAgICAgfSxcbiAgICAgIGVycm9yU2VyaWFsaXplclxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgZnJvbVN0ZGVyciA9IChfc3RkZXJyOiBzdHJpbmcpOiBBbXBsaWZ5RXJyb3IgfCB1bmRlZmluZWQgPT4ge1xuICAgIC8qKlxuICAgICAqIGBbXCInXT9zZXJpYWxpemVkRXJyb3JbXCInXT86WyBdP2AgY2FwdHVyZXMgdGhlIHN0YXJ0IG9mIHRoZSBzZXJpYWxpemVkIGVycm9yLiBUaGUgcXVvdGVzIGRlcGVuZCBvbiB3aGljaCBPUyBpcyBiZWluZyB1c2VkXG4gICAgICogYCg/OmAoLis/KWB8JyguKz8pJ3xcIigoPzpcXFxcXCJ8W15cIl0pKj8pXCIpYCBjYXB0dXJlcyB0aGUgcmVzdCBvZiB0aGUgc2VyaWFsaXplZCBzdHJpbmcgZW5jbG9zZWQgaW4gZWl0aGVyIHNpbmdsZSBxdW90ZSxcbiAgICAgKiBkb3VibGUgcXVvdGVzIG9yIGJhY2stdGlja3MuXG4gICAgICovXG4gICAgY29uc3QgZXh0cmFjdGlvblJlZ2V4ID1cbiAgICAgIC9bXCInXT9zZXJpYWxpemVkRXJyb3JbXCInXT86WyBdPyg/OmAoLis/KWB8JyguKz8pJ3xcIigoPzpcXFxcXCJ8W15cIl0pKj8pXCIpLztcbiAgICBjb25zdCBzZXJpYWxpemVkID0gX3N0ZGVyci5tYXRjaChleHRyYWN0aW9uUmVnZXgpO1xuICAgIGlmIChzZXJpYWxpemVkICYmIHNlcmlhbGl6ZWQubGVuZ3RoID09PSA0KSB7XG4gICAgICAvLyA0IGJlY2F1c2UgMSBtYXRjaCBhbmQgMyBjYXB0dXJpbmcgZ3JvdXBzXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBzZXJpYWxpemVkU3RyaW5nID0gc2VyaWFsaXplZFxuICAgICAgICAgIC5zbGljZSgxKVxuICAgICAgICAgIC5maW5kKChpdGVtKSA9PiBpdGVtICYmIGl0ZW0ubGVuZ3RoID4gMClcbiAgICAgICAgICA/LnJlcGxhY2VBbGwoJ1xcXFxcIicsICdcIicpXG4gICAgICAgICAgLnJlcGxhY2VBbGwoXCJcXFxcJ1wiLCBcIidcIik7XG5cbiAgICAgICAgaWYgKCFzZXJpYWxpemVkU3RyaW5nKSB7XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgbmFtZSwgY2xhc3NpZmljYXRpb24sIG9wdGlvbnMsIGNhdXNlIH0gPVxuICAgICAgICAgIEpTT04ucGFyc2Uoc2VyaWFsaXplZFN0cmluZyk7XG5cbiAgICAgICAgbGV0IHNlcmlhbGl6ZWRDYXVzZSA9IGNhdXNlO1xuICAgICAgICBpZiAoY2F1c2UgJiYgRXJyb3JTZXJpYWxpemVyRGVzZXJpYWxpemVyLmlzU2VyaWFsaXplZEVycm9yVHlwZShjYXVzZSkpIHtcbiAgICAgICAgICBzZXJpYWxpemVkQ2F1c2UgPSBFcnJvclNlcmlhbGl6ZXJEZXNlcmlhbGl6ZXIuZGVzZXJpYWxpemUoY2F1c2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbGFzc2lmaWNhdGlvbiA9PT0gJ0VSUk9SJ1xuICAgICAgICAgID8gbmV3IEFtcGxpZnlVc2VyRXJyb3IobmFtZSwgb3B0aW9ucywgc2VyaWFsaXplZENhdXNlKVxuICAgICAgICAgIDogbmV3IEFtcGxpZnlGYXVsdChuYW1lLCBvcHRpb25zLCBzZXJpYWxpemVkQ2F1c2UpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gY2Fubm90IGRlc2VyaWFsaXplXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gaXMgYSB0eXBlIHByZWRpY2F0ZSBmb3IgQW1wbGlmeUVycm9yLlxuICAgKiBTZWUgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9uYXJyb3dpbmcuaHRtbCN1c2luZy10eXBlLXByZWRpY2F0ZXMuXG4gICAqXG4gICAqIENoZWNrcyBpZiBlcnJvciBpcyBhbiBBbXBsaWZ5RXJyb3IgYnkgaW5zcGVjdGluZyBpZiByZXF1aXJlZCBwcm9wZXJ0aWVzIGFyZSBzZXQuXG4gICAqIFRoaXMgaXMgcmVjb21tZW5kZWQgaW5zdGVhZCBvZiBpbnN0YW5jZW9mIG9wZXJhdG9yLlxuICAgKiBUaGUgaW5zdGFuY2Ugb2Ygb3BlcmF0b3IgZG9lcyBub3Qgd29yayBhcyBleHBlY3RlZCBpZiBBbXBsaWZ5RXJyb3IgY2xhc3MgaXMgbG9hZGVkXG4gICAqIGZyb20gbXVsdGlwbGUgc291cmNlcywgZm9yIGV4YW1wbGUgd2hlbiBwYWNrYWdlIG1hbmFnZXIgZGVjaWRlcyB0byBub3QgZGUtZHVwbGljYXRlIGRlcGVuZGVuY2llcy5cbiAgICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9pc3N1ZXMvMTc5NDMuXG4gICAqL1xuICBzdGF0aWMgaXNBbXBsaWZ5RXJyb3IgPSAoZXJyb3I6IHVua25vd24pOiBlcnJvciBpcyBBbXBsaWZ5RXJyb3IgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmXG4gICAgICAnY2xhc3NpZmljYXRpb24nIGluIGVycm9yICYmXG4gICAgICAoZXJyb3IuY2xhc3NpZmljYXRpb24gPT09ICdFUlJPUicgfHwgZXJyb3IuY2xhc3NpZmljYXRpb24gPT09ICdGQVVMVCcpICYmXG4gICAgICB0eXBlb2YgZXJyb3IubmFtZSA9PT0gJ3N0cmluZycgJiZcbiAgICAgIHR5cGVvZiBlcnJvci5tZXNzYWdlID09PSAnc3RyaW5nJ1xuICAgICk7XG4gIH07XG5cbiAgc3RhdGljIGZyb21FcnJvciA9IChcbiAgICBlcnJvcjogdW5rbm93blxuICApOiBBbXBsaWZ5RXJyb3I8XG4gICAgfCAnVW5rbm93bkZhdWx0J1xuICAgIHwgJ0NyZWRlbnRpYWxzRXJyb3InXG4gICAgfCAnSW52YWxpZENvbW1hbmRJbnB1dEVycm9yJ1xuICAgIHwgJ0RvbWFpbk5vdEZvdW5kRXJyb3InXG4gICAgfCAnU3ludGF4RXJyb3InXG4gID4gPT4ge1xuICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9XG4gICAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yXG4gICAgICAgID8gYCR7ZXJyb3IubmFtZX06ICR7ZXJyb3IubWVzc2FnZX1gXG4gICAgICAgIDogJ0FuIHVua25vd24gZXJyb3IgaGFwcGVuZWQuIENoZWNrIGRvd25zdHJlYW0gZXJyb3InO1xuXG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiYgaXNDcmVkZW50aWFsc0Vycm9yKGVycm9yKSkge1xuICAgICAgcmV0dXJuIG5ldyBBbXBsaWZ5VXNlckVycm9yKFxuICAgICAgICAnQ3JlZGVudGlhbHNFcnJvcicsXG4gICAgICAgIHtcbiAgICAgICAgICBtZXNzYWdlOiBlcnJvck1lc3NhZ2UsXG4gICAgICAgICAgcmVzb2x1dGlvbjpcbiAgICAgICAgICAgICdFbnN1cmUgeW91ciBBV1MgY3JlZGVudGlhbHMgYXJlIGNvcnJlY3RseSBzZXQgYW5kIHJlZnJlc2hlZC4nLFxuICAgICAgICB9LFxuICAgICAgICBlcnJvclxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiYgaXNZYXJnc1ZhbGlkYXRpb25FcnJvcihlcnJvcikpIHtcbiAgICAgIHJldHVybiBuZXcgQW1wbGlmeVVzZXJFcnJvcihcbiAgICAgICAgJ0ludmFsaWRDb21tYW5kSW5wdXRFcnJvcicsXG4gICAgICAgIHtcbiAgICAgICAgICBtZXNzYWdlOiBlcnJvck1lc3NhZ2UsXG4gICAgICAgICAgcmVzb2x1dGlvbjogJ1BsZWFzZSBzZWUgdGhlIHVuZGVybHlpbmcgZXJyb3IgbWVzc2FnZSBmb3IgcmVzb2x1dGlvbi4nLFxuICAgICAgICB9LFxuICAgICAgICBlcnJvclxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiYgaXNFTm90Rm91bmRFcnJvcihlcnJvcikpIHtcbiAgICAgIHJldHVybiBuZXcgQW1wbGlmeVVzZXJFcnJvcihcbiAgICAgICAgJ0RvbWFpbk5vdEZvdW5kRXJyb3InLFxuICAgICAgICB7XG4gICAgICAgICAgbWVzc2FnZTogJ1VuYWJsZSB0byBlc3RhYmxpc2ggYSBjb25uZWN0aW9uIHRvIGEgZG9tYWluJyxcbiAgICAgICAgICByZXNvbHV0aW9uOlxuICAgICAgICAgICAgJ0Vuc3VyZSBkb21haW4gbmFtZSBpcyBjb3JyZWN0IGFuZCBuZXR3b3JrIGNvbm5lY3Rpb24gaXMgc3RhYmxlLicsXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yXG4gICAgICApO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBjYXRjaGVzIFN5bnRheEVycm9ycyB0aGF0IHdlcmUgc29tZWhvdyBub3QgaW5zdGFuY2VzIG9mIEFtcGxpZnlFcnJvclxuICAgICAqIHRoaXMgY2FuIGJlIHJlbW92ZWQgb25jZSB3ZSBjYW4gcHJvcGVybHkgaWRlbnRpZnkgd2hlcmUgQW1wbGlmeUVycm9yIGlzIGJlaW5nIHN0cmlwcGVkIG9mZlxuICAgICAqL1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmIGlzU3ludGF4RXJyb3IoZXJyb3IpKSB7XG4gICAgICByZXR1cm4gbmV3IEFtcGxpZnlVc2VyRXJyb3IoXG4gICAgICAgICdTeW50YXhFcnJvcicsXG4gICAgICAgIHtcbiAgICAgICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlLFxuICAgICAgICAgIHJlc29sdXRpb246XG4gICAgICAgICAgICAnQ2hlY2sgeW91ciBiYWNrZW5kIGRlZmluaXRpb24gaW4gdGhlIGBhbXBsaWZ5YCBmb2xkZXIgZm9yIHN5bnRheCBhbmQgdHlwZSBlcnJvcnMuJyxcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3JcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgQW1wbGlmeUZhdWx0KFxuICAgICAgJ1Vua25vd25GYXVsdCcsXG4gICAgICB7XG4gICAgICAgIG1lc3NhZ2U6IGVycm9yTWVzc2FnZSxcbiAgICAgIH0sXG4gICAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoU3RyaW5nKGVycm9yKSlcbiAgICApO1xuICB9O1xufVxuXG5jb25zdCBpc0NyZWRlbnRpYWxzRXJyb3IgPSAoZXJyPzogRXJyb3IpOiBib29sZWFuID0+IHtcbiAgcmV0dXJuICEhZXJyICYmIGVycj8ubmFtZSA9PT0gJ0NyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcic7XG59O1xuXG4vLyBUaGVzZSB2YWxpZGF0aW9uIG1lc3NhZ2VzIGFyZSB0YWtlbiBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS95YXJncy95YXJncy9ibG9iLzBjOTVmOWM3OWUxODEwY2Y5Yzg5NjRmYmY3ZDEzOTAwOTQxMmY3ZTcvbGliL3ZhbGlkYXRpb24udHNcbmNvbnN0IGlzWWFyZ3NWYWxpZGF0aW9uRXJyb3IgPSAoZXJyPzogRXJyb3IpOiBib29sZWFuID0+IHtcbiAgcmV0dXJuIChcbiAgICAhIWVyciAmJlxuICAgIChbXG4gICAgICAnVW5rbm93biBjb21tYW5kJyxcbiAgICAgICdVbmtub3duIGFyZ3VtZW50JyxcbiAgICAgICdEaWQgeW91IG1lYW4nLFxuICAgICAgJ05vdCBlbm91Z2ggbm9uLW9wdGlvbiBhcmd1bWVudHMnLFxuICAgICAgJ1RvbyBtYW55IG5vbi1vcHRpb24gYXJndW1lbnRzJyxcbiAgICAgICdNaXNzaW5nIHJlcXVpcmVkIGFyZ3VtZW50JyxcbiAgICAgICdJbnZhbGlkIHZhbHVlczonLFxuICAgICAgJ01pc3NpbmcgZGVwZW5kZW50IGFyZ3VtZW50cycsXG4gICAgICAnSW1wbGljYXRpb25zIGZhaWxlZCcsXG4gICAgXS5zb21lKChtZXNzYWdlKSA9PiBlcnIubWVzc2FnZS5zdGFydHNXaXRoKG1lc3NhZ2UpKSB8fFxuICAgICAgZXJyLm1lc3NhZ2UuZW5kc1dpdGgoJ2FyZSBtdXR1YWxseSBleGNsdXNpdmUnKSlcbiAgKTtcbn07XG5cbmNvbnN0IGlzRU5vdEZvdW5kRXJyb3IgPSAoZXJyPzogRXJyb3IpOiBib29sZWFuID0+IHtcbiAgcmV0dXJuICEhZXJyICYmIGVyci5tZXNzYWdlLnN0YXJ0c1dpdGgoJ2dldGFkZHJpbmZvIEVOT1RGT1VORCcpO1xufTtcblxuY29uc3QgaXNTeW50YXhFcnJvciA9IChlcnI/OiBFcnJvcik6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gISFlcnIgJiYgZXJyLm5hbWUgPT09ICdTeW50YXhFcnJvcic7XG59O1xuXG4vKipcbiAqIEFtcGxpZnkgZXhjZXB0aW9uIGNsYXNzaWZpY2F0aW9uc1xuICovXG5leHBvcnQgdHlwZSBBbXBsaWZ5RXJyb3JDbGFzc2lmaWNhdGlvbiA9ICdGQVVMVCcgfCAnRVJST1InO1xuXG4vKipcbiAqIEFtcGxpZnkgRXJyb3Igb3B0aW9ucyBvYmplY3RcbiAqL1xuZXhwb3J0IHR5cGUgQW1wbGlmeUVycm9yT3B0aW9ucyA9IHtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBkZXRhaWxzPzogc3RyaW5nO1xuICByZXNvbHV0aW9uPzogc3RyaW5nO1xuICBsaW5rPzogc3RyaW5nO1xuXG4gIC8vIENsb3VkRm9ybWF0aW9uIG9yIE5vZGVKUyBlcnJvciBjb2Rlc1xuICBjb2RlPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBTYW1lIGFzIEFtcGxpZnlFcnJvck9wdGlvbnMgZXhjZXB0IHJlc29sdXRpb24gaXMgcmVxdWlyZWRcbiAqL1xuZXhwb3J0IHR5cGUgQW1wbGlmeVVzZXJFcnJvck9wdGlvbnMgPSBPbWl0PFxuICBBbXBsaWZ5RXJyb3JPcHRpb25zLFxuICAncmVzb2x1dGlvbidcbj4gJiB7IHJlc29sdXRpb246IHN0cmluZyB9O1xuXG5jb25zdCBlcnJvclNlcmlhbGl6ZXIgPSAoXzogdW5rbm93biwgdmFsdWU6IHVua25vd24pID0+IHtcbiAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICByZXR1cm4gRXJyb3JTZXJpYWxpemVyRGVzZXJpYWxpemVyLnNlcmlhbGl6ZSh2YWx1ZSk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufTtcbmNsYXNzIEVycm9yU2VyaWFsaXplckRlc2VyaWFsaXplciB7XG4gIHN0YXRpYyBzZXJpYWxpemUgPSAoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgY29uc3Qgc2VyaWFsaXplZEVycm9yOiBTZXJpYWxpemVkRXJyb3JUeXBlID0ge1xuICAgICAgbmFtZTogZXJyb3IubmFtZSxcbiAgICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsXG4gICAgfTtcbiAgICByZXR1cm4gc2VyaWFsaXplZEVycm9yO1xuICB9O1xuXG4gIHN0YXRpYyBkZXNlcmlhbGl6ZSA9IChkZXNlcmlhbGl6ZWQ6IFNlcmlhbGl6ZWRFcnJvclR5cGUpID0+IHtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihkZXNlcmlhbGl6ZWQubWVzc2FnZSk7XG4gICAgZXJyb3IubmFtZSA9IGRlc2VyaWFsaXplZC5uYW1lO1xuICAgIHJldHVybiBlcnJvcjtcbiAgfTtcblxuICBzdGF0aWMgaXNTZXJpYWxpemVkRXJyb3JUeXBlID0gKG9iajogdW5rbm93bik6IG9iaiBpcyBTZXJpYWxpemVkRXJyb3JUeXBlID0+IHtcbiAgICBpZiAoXG4gICAgICBvYmogJiZcbiAgICAgIChvYmogYXMgU2VyaWFsaXplZEVycm9yVHlwZSkubmFtZSAmJlxuICAgICAgKG9iaiBhcyBTZXJpYWxpemVkRXJyb3JUeXBlKS5tZXNzYWdlXG4gICAgKVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xufVxudHlwZSBTZXJpYWxpemVkRXJyb3JUeXBlID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbn07XG4iXX0=
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@aws-amplify/graphql-api-construct",
|
3
|
-
"version": "1.17.0",
|
3
|
+
"version": "1.17.2-ai-next.0",
|
4
4
|
"description": "AppSync GraphQL Api Construct using Amplify GraphQL Transformer.",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -158,25 +158,25 @@
|
|
158
158
|
"semver"
|
159
159
|
],
|
160
160
|
"dependencies": {
|
161
|
-
"@aws-amplify/ai-constructs": "0.8.
|
161
|
+
"@aws-amplify/ai-constructs": "^0.8.1",
|
162
162
|
"@aws-amplify/backend-output-schemas": "^1.0.0",
|
163
163
|
"@aws-amplify/backend-output-storage": "^1.0.0",
|
164
|
-
"@aws-amplify/graphql-auth-transformer": "4.1.
|
165
|
-
"@aws-amplify/graphql-conversation-transformer": "0.
|
166
|
-
"@aws-amplify/graphql-default-value-transformer": "3.1.
|
167
|
-
"@aws-amplify/graphql-directives": "2.
|
168
|
-
"@aws-amplify/graphql-function-transformer": "3.1.
|
169
|
-
"@aws-amplify/graphql-generation-transformer": "0.2.
|
170
|
-
"@aws-amplify/graphql-http-transformer": "3.0.
|
171
|
-
"@aws-amplify/graphql-index-transformer": "3.0.
|
172
|
-
"@aws-amplify/graphql-maps-to-transformer": "4.0.
|
173
|
-
"@aws-amplify/graphql-model-transformer": "3.1.0",
|
174
|
-
"@aws-amplify/graphql-predictions-transformer": "3.0.
|
175
|
-
"@aws-amplify/graphql-relational-transformer": "3.1.0",
|
176
|
-
"@aws-amplify/graphql-searchable-transformer": "3.0.
|
177
|
-
"@aws-amplify/graphql-sql-transformer": "0.4.
|
178
|
-
"@aws-amplify/graphql-transformer": "2.1.
|
179
|
-
"@aws-amplify/graphql-transformer-core": "3.3.0",
|
164
|
+
"@aws-amplify/graphql-auth-transformer": "4.1.7-ai-next.0",
|
165
|
+
"@aws-amplify/graphql-conversation-transformer": "0.7.0-ai-next.0",
|
166
|
+
"@aws-amplify/graphql-default-value-transformer": "3.1.4-ai-next.0",
|
167
|
+
"@aws-amplify/graphql-directives": "2.6.0-ai-next.0",
|
168
|
+
"@aws-amplify/graphql-function-transformer": "3.1.6-ai-next.0",
|
169
|
+
"@aws-amplify/graphql-generation-transformer": "0.2.7-ai-next.0",
|
170
|
+
"@aws-amplify/graphql-http-transformer": "3.0.9-ai-next.0",
|
171
|
+
"@aws-amplify/graphql-index-transformer": "3.0.9-ai-next.0",
|
172
|
+
"@aws-amplify/graphql-maps-to-transformer": "4.0.9-ai-next.0",
|
173
|
+
"@aws-amplify/graphql-model-transformer": "3.1.1-ai-next.0",
|
174
|
+
"@aws-amplify/graphql-predictions-transformer": "3.0.9-ai-next.0",
|
175
|
+
"@aws-amplify/graphql-relational-transformer": "3.1.1-ai-next.0",
|
176
|
+
"@aws-amplify/graphql-searchable-transformer": "3.0.9-ai-next.0",
|
177
|
+
"@aws-amplify/graphql-sql-transformer": "0.4.9-ai-next.0",
|
178
|
+
"@aws-amplify/graphql-transformer": "2.1.7-ai-next.0",
|
179
|
+
"@aws-amplify/graphql-transformer-core": "3.3.1-ai-next.0",
|
180
180
|
"@aws-amplify/graphql-transformer-interfaces": "4.2.0",
|
181
181
|
"@aws-amplify/platform-core": "^1.0.0",
|
182
182
|
"@aws-amplify/plugin-types": "^1.0.0",
|
@@ -282,7 +282,7 @@
|
|
282
282
|
"zod": "^3.22.2"
|
283
283
|
},
|
284
284
|
"devDependencies": {
|
285
|
-
"@aws-amplify/graphql-transformer-test-utils": "1.0.
|
285
|
+
"@aws-amplify/graphql-transformer-test-utils": "1.0.8-ai-next.0",
|
286
286
|
"@types/fs-extra": "^8.0.1",
|
287
287
|
"@types/node": "^18.0.0",
|
288
288
|
"aws-cdk-lib": "2.158.0",
|
@@ -353,5 +353,5 @@
|
|
353
353
|
"printBasicPrototype": true
|
354
354
|
}
|
355
355
|
},
|
356
|
-
"gitHead": "
|
356
|
+
"gitHead": "74b295baf39b6e11454cfc5c7fef369879005d39"
|
357
357
|
}
|
@@ -51,6 +51,7 @@ import { getStackForScope, walkAndProcessNodes } from './internal/construct-tree
|
|
51
51
|
import { getDataSourceStrategiesProvider } from './internal/data-source-config';
|
52
52
|
import { getMetadataDataSources, getMetadataAuthorizationModes, getMetadataCustomOperations } from './internal/metadata';
|
53
53
|
import { isImportedAmplifyDynamoDbModelDataSourceStrategy } from '@aws-amplify/graphql-transformer-core';
|
54
|
+
import { BackendOutputStorageStrategy, BackendOutputEntry } from '@aws-amplify/plugin-types';
|
54
55
|
|
55
56
|
/**
|
56
57
|
* L3 Construct which invokes the Amplify Transformer Pattern over an input Graphql Schema.
|
@@ -238,6 +239,7 @@ export class AmplifyGraphqlApi extends Construct {
|
|
238
239
|
...definition.referencedLambdaFunctions,
|
239
240
|
...functionNameMap,
|
240
241
|
},
|
242
|
+
outputStorageStrategy: outputStorageStrategy as BackendOutputStorageStrategy<BackendOutputEntry>,
|
241
243
|
},
|
242
244
|
authConfig,
|
243
245
|
stackMapping: stackMappings ?? {},
|