@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.
Files changed (96) hide show
  1. package/.jsii +38 -38
  2. package/CHANGELOG.md +10 -0
  3. package/lib/amplify-dynamodb-table-wrapper.js +1 -1
  4. package/lib/amplify-graphql-api.js +3 -2
  5. package/lib/amplify-graphql-definition.js +1 -1
  6. package/lib/sql-model-datasource-strategy.js +1 -1
  7. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/bedrock_converse_adapter.d.ts +2 -1
  8. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/bedrock_converse_adapter.js +13 -14
  9. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/conversation_message_history_retriever.js +3 -2
  10. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/conversation_turn_response_sender.d.ts +3 -1
  11. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/conversation_turn_response_sender.js +19 -5
  12. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/event-tools-provider/event_tools_provider.js +3 -2
  13. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/event-tools-provider/graphql_tool.d.ts +3 -2
  14. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/event-tools-provider/graphql_tool.js +3 -3
  15. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/graphql_request_executor.d.ts +6 -3
  16. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/graphql_request_executor.js +6 -5
  17. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/user_agent_provider.d.ts +16 -0
  18. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/user_agent_provider.js +48 -0
  19. package/node_modules/@aws-amplify/ai-constructs/package.json +2 -2
  20. package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +4 -0
  21. package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +11 -11
  22. package/node_modules/@aws-amplify/graphql-conversation-transformer/API.md +3 -1
  23. package/node_modules/@aws-amplify/graphql-conversation-transformer/CHANGELOG.md +10 -0
  24. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/conversation-directive-configuration.d.ts +17 -0
  25. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/conversation-directive-configuration.d.ts.map +1 -1
  26. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/conversation-directive-configuration.js +5 -0
  27. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/conversation-directive-configuration.js.map +1 -1
  28. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/grapqhl-conversation-transformer.d.ts +2 -1
  29. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/grapqhl-conversation-transformer.d.ts.map +1 -1
  30. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/grapqhl-conversation-transformer.js +2 -2
  31. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/grapqhl-conversation-transformer.js.map +1 -1
  32. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/tools/process-tools.d.ts +3 -1
  33. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/tools/process-tools.d.ts.map +1 -1
  34. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/tools/process-tools.js +29 -5
  35. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/tools/process-tools.js.map +1 -1
  36. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-field-handler.d.ts +1 -0
  37. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-field-handler.d.ts.map +1 -1
  38. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-field-handler.js +19 -0
  39. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-field-handler.js.map +1 -1
  40. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-resolver-generator.d.ts +3 -1
  41. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-resolver-generator.d.ts.map +1 -1
  42. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-resolver-generator.js +3 -1
  43. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-resolver-generator.js.map +1 -1
  44. package/node_modules/@aws-amplify/graphql-conversation-transformer/package.json +10 -9
  45. package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +4 -0
  46. package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +6 -6
  47. package/node_modules/@aws-amplify/graphql-directives/CHANGELOG.md +6 -0
  48. package/node_modules/@aws-amplify/graphql-directives/lib/directives/conversation.d.ts.map +1 -1
  49. package/node_modules/@aws-amplify/graphql-directives/lib/directives/conversation.js +38 -3
  50. package/node_modules/@aws-amplify/graphql-directives/lib/directives/conversation.js.map +1 -1
  51. package/node_modules/@aws-amplify/graphql-directives/package.json +2 -2
  52. package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +4 -0
  53. package/node_modules/@aws-amplify/graphql-function-transformer/package.json +5 -5
  54. package/node_modules/@aws-amplify/graphql-generation-transformer/CHANGELOG.md +4 -0
  55. package/node_modules/@aws-amplify/graphql-generation-transformer/package.json +5 -5
  56. package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +4 -0
  57. package/node_modules/@aws-amplify/graphql-http-transformer/package.json +5 -5
  58. package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +4 -0
  59. package/node_modules/@aws-amplify/graphql-index-transformer/package.json +6 -6
  60. package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +4 -0
  61. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
  62. package/node_modules/@aws-amplify/graphql-maps-to-transformer/package.json +9 -9
  63. package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +4 -0
  64. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
  65. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
  66. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
  67. package/node_modules/@aws-amplify/graphql-model-transformer/package.json +5 -5
  68. package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +4 -0
  69. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
  70. package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +5 -5
  71. package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +4 -0
  72. package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +7 -7
  73. package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +4 -0
  74. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
  75. package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +6 -6
  76. package/node_modules/@aws-amplify/graphql-sql-transformer/CHANGELOG.md +4 -0
  77. package/node_modules/@aws-amplify/graphql-sql-transformer/package.json +6 -6
  78. package/node_modules/@aws-amplify/graphql-transformer/API.md +3 -0
  79. package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +6 -0
  80. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts +2 -0
  81. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts.map +1 -1
  82. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js +1 -1
  83. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js.map +1 -1
  84. package/node_modules/@aws-amplify/graphql-transformer/package.json +19 -18
  85. package/node_modules/@aws-amplify/graphql-transformer/src/graphql-transformer.ts +10 -2
  86. package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +4 -0
  87. package/node_modules/@aws-amplify/graphql-transformer-core/package.json +3 -3
  88. package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +1 -2
  89. package/node_modules/@aws-amplify/platform-core/lib/errors/amplify_error.d.ts +11 -0
  90. package/node_modules/@aws-amplify/platform-core/lib/errors/amplify_error.js +19 -2
  91. package/node_modules/@aws-amplify/platform-core/package.json +1 -1
  92. package/node_modules/graphql-transformer-common/package.json +1 -2
  93. package/package.json +20 -20
  94. package/src/amplify-graphql-api.ts +2 -0
  95. package/node_modules/@aws-amplify/graphql-transformer-interfaces/LICENSE +0 -201
  96. 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/graphql-searchable-transformer",
3
- "version": "3.0.8",
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.5.0",
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.7",
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": "a6ab93200105e655183d8e8bab387797e7a5553d"
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.8",
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.5.0",
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.7"
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": "a6ab93200105e655183d8e8bab387797e7a5553d"
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;AAQnD,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;CAC7C,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,EA8BrG,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"}
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":"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"}
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.6",
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.6",
33
- "@aws-amplify/graphql-conversation-transformer": "0.6.0",
34
- "@aws-amplify/graphql-default-value-transformer": "3.1.3",
35
- "@aws-amplify/graphql-function-transformer": "3.1.5",
36
- "@aws-amplify/graphql-generation-transformer": "0.2.6",
37
- "@aws-amplify/graphql-http-transformer": "3.0.8",
38
- "@aws-amplify/graphql-index-transformer": "3.0.8",
39
- "@aws-amplify/graphql-maps-to-transformer": "4.0.8",
40
- "@aws-amplify/graphql-model-transformer": "3.1.0",
41
- "@aws-amplify/graphql-predictions-transformer": "3.0.8",
42
- "@aws-amplify/graphql-relational-transformer": "3.1.0",
43
- "@aws-amplify/graphql-searchable-transformer": "3.0.8",
44
- "@aws-amplify/graphql-sql-transformer": "0.4.8",
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.7",
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": "a6ab93200105e655183d8e8bab387797e7a5553d"
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(modelTransformer, hasManyTransformer, belongsToTransformer, authTransformer, options?.functionNameMap),
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.5.0",
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": "a6ab93200105e655183d8e8bab387797e7a5553d"
96
+ "gitHead": "74b295baf39b6e11454cfc5c7fef369879005d39"
97
97
  }
@@ -66,6 +66,5 @@
66
66
  "escapeString": true,
67
67
  "printBasicPrototype": true
68
68
  }
69
- },
70
- "gitHead": "a6ab93200105e655183d8e8bab387797e7a5553d"
69
+ }
71
70
  }
@@ -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 instanceof AmplifyError) {
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=
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/platform-core",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "type": "commonjs",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -72,6 +72,5 @@
72
72
  "escapeString": true,
73
73
  "printBasicPrototype": true
74
74
  }
75
- },
76
- "gitHead": "a6ab93200105e655183d8e8bab387797e7a5553d"
75
+ }
77
76
  }
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.0",
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.6",
165
- "@aws-amplify/graphql-conversation-transformer": "0.6.0",
166
- "@aws-amplify/graphql-default-value-transformer": "3.1.3",
167
- "@aws-amplify/graphql-directives": "2.5.0",
168
- "@aws-amplify/graphql-function-transformer": "3.1.5",
169
- "@aws-amplify/graphql-generation-transformer": "0.2.6",
170
- "@aws-amplify/graphql-http-transformer": "3.0.8",
171
- "@aws-amplify/graphql-index-transformer": "3.0.8",
172
- "@aws-amplify/graphql-maps-to-transformer": "4.0.8",
173
- "@aws-amplify/graphql-model-transformer": "3.1.0",
174
- "@aws-amplify/graphql-predictions-transformer": "3.0.8",
175
- "@aws-amplify/graphql-relational-transformer": "3.1.0",
176
- "@aws-amplify/graphql-searchable-transformer": "3.0.8",
177
- "@aws-amplify/graphql-sql-transformer": "0.4.8",
178
- "@aws-amplify/graphql-transformer": "2.1.6",
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.7",
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": "a6ab93200105e655183d8e8bab387797e7a5553d"
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 ?? {},