@aws-amplify/graphql-api-construct 1.9.0-gen2-release-0418.0 → 1.9.0-gen2-release-0423.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (171) hide show
  1. package/.jsii +72 -58
  2. package/API.md +1 -1
  3. package/CHANGELOG.md +3 -1
  4. package/README.md +156 -24
  5. package/lib/amplify-dynamodb-table-wrapper.js +1 -1
  6. package/lib/amplify-graphql-api.js +7 -10
  7. package/lib/amplify-graphql-definition.js +1 -1
  8. package/lib/internal/asset-provider.d.ts +26 -0
  9. package/lib/internal/asset-provider.js +58 -0
  10. package/lib/internal/data-source-config.js +12 -2
  11. package/lib/internal/index.d.ts +1 -1
  12. package/lib/internal/index.js +2 -2
  13. package/lib/model-datasource-strategy-types.d.ts +7 -2
  14. package/lib/model-datasource-strategy-types.js +1 -1
  15. package/lib/sql-model-datasource-strategy.js +4 -3
  16. package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +5 -1
  17. package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +13 -13
  18. package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +1 -1
  19. package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +8 -8
  20. package/node_modules/@aws-amplify/graphql-directives/CHANGELOG.md +1 -1
  21. package/node_modules/@aws-amplify/graphql-directives/package.json +2 -2
  22. package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +1 -1
  23. package/node_modules/@aws-amplify/graphql-function-transformer/package.json +7 -7
  24. package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +1 -1
  25. package/node_modules/@aws-amplify/graphql-http-transformer/package.json +7 -7
  26. package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +6 -1
  27. package/node_modules/@aws-amplify/graphql-index-transformer/lib/schema.js +8 -3
  28. package/node_modules/@aws-amplify/graphql-index-transformer/lib/schema.js.map +1 -1
  29. package/node_modules/@aws-amplify/graphql-index-transformer/package.json +8 -8
  30. package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +1 -1
  31. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
  32. package/node_modules/@aws-amplify/graphql-maps-to-transformer/package.json +11 -11
  33. package/node_modules/@aws-amplify/graphql-model-transformer/API.md +4 -0
  34. package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +6 -1
  35. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
  36. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
  37. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
  38. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/common.d.ts +2 -0
  39. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/common.d.ts.map +1 -1
  40. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/common.js +5 -1
  41. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/common.js.map +1 -1
  42. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/dynamodb/mutation.d.ts.map +1 -1
  43. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/dynamodb/mutation.js +8 -5
  44. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/dynamodb/mutation.js.map +1 -1
  45. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/mutation.d.ts.map +1 -1
  46. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/mutation.js +4 -3
  47. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/mutation.js.map +1 -1
  48. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.d.ts.map +1 -1
  49. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.js +4 -1
  50. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.js.map +1 -1
  51. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/model-resource-generator.d.ts.map +1 -1
  52. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/model-resource-generator.js +6 -1
  53. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/model-resource-generator.js.map +1 -1
  54. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js +1 -1
  55. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js.map +1 -1
  56. package/node_modules/@aws-amplify/graphql-model-transformer/package.json +7 -7
  57. package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +1 -1
  58. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
  59. package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +7 -7
  60. package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +3 -1
  61. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-ddb-references-transformer.d.ts.map +1 -1
  62. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-ddb-references-transformer.js +1 -0
  63. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-ddb-references-transformer.js.map +1 -1
  64. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-sql-transformer.d.ts.map +1 -1
  65. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-sql-transformer.js +1 -0
  66. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-sql-transformer.js.map +1 -1
  67. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-transformer-factory.d.ts.map +1 -1
  68. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-transformer-factory.js +2 -1
  69. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-transformer-factory.js.map +1 -1
  70. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.d.ts.map +1 -1
  71. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.js +11 -4
  72. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.js.map +1 -1
  73. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.d.ts.map +1 -1
  74. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.js +8 -1
  75. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.js.map +1 -1
  76. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-ddb-references-transformer.d.ts.map +1 -1
  77. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-ddb-references-transformer.js +2 -1
  78. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-ddb-references-transformer.js.map +1 -1
  79. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-sql-transformer.d.ts.map +1 -1
  80. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-sql-transformer.js +2 -1
  81. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-sql-transformer.js.map +1 -1
  82. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-transformer-factory.d.ts.map +1 -1
  83. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-transformer-factory.js +3 -2
  84. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-transformer-factory.js.map +1 -1
  85. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-ddb-references-transformer.d.ts.map +1 -1
  86. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-ddb-references-transformer.js +2 -1
  87. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-ddb-references-transformer.js.map +1 -1
  88. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-sql-transformer.d.ts.map +1 -1
  89. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-sql-transformer.js +2 -1
  90. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-sql-transformer.js.map +1 -1
  91. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-transformer-factory.d.ts.map +1 -1
  92. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-transformer-factory.js +2 -1
  93. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-transformer-factory.js.map +1 -1
  94. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-references-generator.d.ts.map +1 -1
  95. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-references-generator.js +2 -2
  96. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-references-generator.js.map +1 -1
  97. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.d.ts.map +1 -1
  98. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.js +5 -3
  99. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.js.map +1 -1
  100. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/types.d.ts +1 -0
  101. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/types.d.ts.map +1 -1
  102. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.d.ts +2 -2
  103. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.d.ts.map +1 -1
  104. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.js +101 -8
  105. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.js.map +1 -1
  106. package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +9 -9
  107. package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +5 -1
  108. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
  109. package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +8 -8
  110. package/node_modules/@aws-amplify/graphql-sql-transformer/CHANGELOG.md +1 -1
  111. package/node_modules/@aws-amplify/graphql-sql-transformer/package.json +8 -8
  112. package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +1 -1
  113. package/node_modules/@aws-amplify/graphql-transformer/package.json +15 -15
  114. package/node_modules/@aws-amplify/graphql-transformer-core/API.md +1 -1
  115. package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +4 -2
  116. package/node_modules/@aws-amplify/graphql-transformer-core/lib/appsync-function.js +2 -2
  117. package/node_modules/@aws-amplify/graphql-transformer-core/lib/appsync-function.js.map +1 -1
  118. package/node_modules/@aws-amplify/graphql-transformer-core/lib/cdk-compat/schema-asset.d.ts.map +1 -1
  119. package/node_modules/@aws-amplify/graphql-transformer-core/lib/cdk-compat/schema-asset.js +1 -2
  120. package/node_modules/@aws-amplify/graphql-transformer-core/lib/cdk-compat/schema-asset.js.map +1 -1
  121. package/node_modules/@aws-amplify/graphql-transformer-core/lib/cdk-compat/template-asset.d.ts +3 -3
  122. package/node_modules/@aws-amplify/graphql-transformer-core/lib/cdk-compat/template-asset.d.ts.map +1 -1
  123. package/node_modules/@aws-amplify/graphql-transformer-core/lib/cdk-compat/template-asset.js +4 -5
  124. package/node_modules/@aws-amplify/graphql-transformer-core/lib/cdk-compat/template-asset.js.map +1 -1
  125. package/node_modules/@aws-amplify/graphql-transformer-core/lib/graphql-api.d.ts +3 -1
  126. package/node_modules/@aws-amplify/graphql-transformer-core/lib/graphql-api.d.ts.map +1 -1
  127. package/node_modules/@aws-amplify/graphql-transformer-core/lib/graphql-api.js +1 -0
  128. package/node_modules/@aws-amplify/graphql-transformer-core/lib/graphql-api.js.map +1 -1
  129. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transform-host.js +5 -5
  130. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transform-host.js.map +1 -1
  131. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.d.ts +1 -1
  132. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.d.ts.map +1 -1
  133. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.js +3 -2
  134. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.js.map +1 -1
  135. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.d.ts +1 -0
  136. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.d.ts.map +1 -1
  137. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.js +1 -2
  138. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.js.map +1 -1
  139. package/node_modules/@aws-amplify/graphql-transformer-core/package.json +5 -5
  140. package/node_modules/@aws-amplify/graphql-transformer-interfaces/API.md +9 -6
  141. package/node_modules/@aws-amplify/graphql-transformer-interfaces/CHANGELOG.md +3 -1
  142. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/asset-provider.d.ts +2 -2
  143. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/asset-provider.d.ts.map +1 -1
  144. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/graphql-api-provider.d.ts +4 -2
  145. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/graphql-api-provider.d.ts.map +1 -1
  146. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/graphql-api-provider.js.map +1 -1
  147. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.d.ts +1 -1
  148. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.d.ts.map +1 -1
  149. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.js +2 -1
  150. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.js.map +1 -1
  151. package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +2 -2
  152. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/asset-provider.ts +2 -2
  153. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/graphql-api-provider.ts +4 -2
  154. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/model-datasource/types.ts +5 -2
  155. package/node_modules/@aws-amplify/graphql-transformer-interfaces/tsconfig.tsbuildinfo +1 -1
  156. package/node_modules/graphql-transformer-common/CHANGELOG.md +1 -1
  157. package/node_modules/graphql-transformer-common/package.json +2 -2
  158. package/package.json +19 -19
  159. package/src/amplify-graphql-api.ts +6 -11
  160. package/src/internal/asset-provider.ts +64 -0
  161. package/src/internal/data-source-config.ts +12 -1
  162. package/src/internal/index.ts +1 -1
  163. package/src/model-datasource-strategy-types.ts +7 -2
  164. package/src/sql-model-datasource-strategy.ts +4 -1
  165. package/lib/internal/asset-manager.d.ts +0 -12
  166. package/lib/internal/asset-manager.js +0 -44
  167. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/asset-manager.d.ts +0 -10
  168. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/asset-manager.d.ts.map +0 -1
  169. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/asset-manager.js +0 -20
  170. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/asset-manager.js.map +0 -1
  171. package/src/internal/asset-manager.ts +0 -43
@@ -3,7 +3,7 @@
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
- ## [4.30.1-gen2-release-0418.0](https://github.com/aws-amplify/amplify-category-api/compare/graphql-transformer-common@4.30.0...graphql-transformer-common@4.30.1-gen2-release-0418.0) (2024-04-18)
6
+ ## [4.30.1-gen2-release-0423.0](https://github.com/aws-amplify/amplify-category-api/compare/graphql-transformer-common@4.30.0...graphql-transformer-common@4.30.1-gen2-release-0423.0) (2024-04-23)
7
7
 
8
8
  **Note:** Version bump only for package graphql-transformer-common
9
9
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "graphql-transformer-common",
3
- "version": "4.30.1-gen2-release-0418.0",
3
+ "version": "4.30.1-gen2-release-0423.0",
4
4
  "description": "Common code and constants for AppSync Transformers",
5
5
  "repository": {
6
6
  "type": "git",
@@ -66,5 +66,5 @@
66
66
  "/__tests__/"
67
67
  ]
68
68
  },
69
- "gitHead": "1c71771315848090d494ad0883d2bd634f78bdc0"
69
+ "gitHead": "f450cc3e4a785bd0068a1cdb070c424328b64a8c"
70
70
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/graphql-api-construct",
3
- "version": "1.9.0-gen2-release-0418.0",
3
+ "version": "1.9.0-gen2-release-0423.0",
4
4
  "description": "AppSync GraphQL Api Construct using Amplify GraphQL Transformer.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -76,21 +76,21 @@
76
76
  "dependencies": {
77
77
  "@aws-amplify/backend-output-schemas": "^0.4.0",
78
78
  "@aws-amplify/backend-output-storage": "^0.2.2",
79
- "@aws-amplify/graphql-auth-transformer": "3.5.0-gen2-release-0418.0",
80
- "@aws-amplify/graphql-default-value-transformer": "2.3.4-gen2-release-0418.0",
81
- "@aws-amplify/graphql-directives": "1.1.0-gen2-release-0418.0",
82
- "@aws-amplify/graphql-function-transformer": "2.1.21-gen2-release-0418.0",
83
- "@aws-amplify/graphql-http-transformer": "2.1.21-gen2-release-0418.0",
84
- "@aws-amplify/graphql-index-transformer": "2.4.0-gen2-release-0418.0",
85
- "@aws-amplify/graphql-maps-to-transformer": "3.4.12-gen2-release-0418.0",
86
- "@aws-amplify/graphql-model-transformer": "2.9.0-gen2-release-0418.0",
87
- "@aws-amplify/graphql-predictions-transformer": "2.1.21-gen2-release-0418.0",
88
- "@aws-amplify/graphql-relational-transformer": "2.5.0-gen2-release-0418.0",
89
- "@aws-amplify/graphql-searchable-transformer": "2.7.0-gen2-release-0418.0",
90
- "@aws-amplify/graphql-sql-transformer": "0.3.0-gen2-release-0418.0",
91
- "@aws-amplify/graphql-transformer": "1.5.2-gen2-release-0418.0",
92
- "@aws-amplify/graphql-transformer-core": "2.6.1-gen2-release-0418.0",
93
- "@aws-amplify/graphql-transformer-interfaces": "3.7.0-gen2-release-0418.0",
79
+ "@aws-amplify/graphql-auth-transformer": "3.5.0-gen2-release-0423.0",
80
+ "@aws-amplify/graphql-default-value-transformer": "2.3.4-gen2-release-0423.0",
81
+ "@aws-amplify/graphql-directives": "1.1.0-gen2-release-0423.0",
82
+ "@aws-amplify/graphql-function-transformer": "2.1.21-gen2-release-0423.0",
83
+ "@aws-amplify/graphql-http-transformer": "2.1.21-gen2-release-0423.0",
84
+ "@aws-amplify/graphql-index-transformer": "2.4.0-gen2-release-0423.0",
85
+ "@aws-amplify/graphql-maps-to-transformer": "3.4.12-gen2-release-0423.0",
86
+ "@aws-amplify/graphql-model-transformer": "2.9.0-gen2-release-0423.0",
87
+ "@aws-amplify/graphql-predictions-transformer": "2.1.21-gen2-release-0423.0",
88
+ "@aws-amplify/graphql-relational-transformer": "2.5.0-gen2-release-0423.0",
89
+ "@aws-amplify/graphql-searchable-transformer": "2.7.0-gen2-release-0423.0",
90
+ "@aws-amplify/graphql-sql-transformer": "0.3.0-gen2-release-0423.0",
91
+ "@aws-amplify/graphql-transformer": "1.5.2-gen2-release-0423.0",
92
+ "@aws-amplify/graphql-transformer-core": "2.7.0-gen2-release-0423.0",
93
+ "@aws-amplify/graphql-transformer-interfaces": "3.7.0-gen2-release-0423.0",
94
94
  "@aws-amplify/platform-core": "^0.2.0",
95
95
  "@aws-amplify/plugin-types": "^0.4.1",
96
96
  "charenc": "^0.0.2",
@@ -99,7 +99,7 @@
99
99
  "graceful-fs": "^4.2.11",
100
100
  "graphql": "^15.5.0",
101
101
  "graphql-mapping-template": "4.20.15",
102
- "graphql-transformer-common": "4.30.1-gen2-release-0418.0",
102
+ "graphql-transformer-common": "4.30.1-gen2-release-0423.0",
103
103
  "hjson": "^3.2.2",
104
104
  "immer": "^9.0.12",
105
105
  "is-buffer": "^2.0.5",
@@ -114,7 +114,7 @@
114
114
  "zod": "^3.22.3"
115
115
  },
116
116
  "devDependencies": {
117
- "@aws-amplify/graphql-transformer-test-utils": "0.5.1-gen2-release-0418.0",
117
+ "@aws-amplify/graphql-transformer-test-utils": "0.5.1-gen2-release-0423.0",
118
118
  "@types/fs-extra": "^8.0.1",
119
119
  "@types/node": "^12.12.6",
120
120
  "aws-cdk-lib": "2.80.0",
@@ -179,5 +179,5 @@
179
179
  "/__tests__/"
180
180
  ]
181
181
  },
182
- "gitHead": "1c71771315848090d494ad0883d2bd634f78bdc0"
182
+ "gitHead": "f450cc3e4a785bd0068a1cdb070c424328b64a8c"
183
183
  }
@@ -2,8 +2,6 @@ import * as path from 'path';
2
2
  import { Construct } from 'constructs';
3
3
  import { ExecuteTransformConfig, executeTransform } from '@aws-amplify/graphql-transformer';
4
4
  import { NestedStack, Stack } from 'aws-cdk-lib';
5
- import { Asset } from 'aws-cdk-lib/aws-s3-assets';
6
- import { AssetProps } from '@aws-amplify/graphql-transformer-interfaces';
7
5
  import { AttributionMetadataStorage, StackMetadataBackendOutputStorageStrategy } from '@aws-amplify/backend-output-storage';
8
6
  import { graphqlOutputKey } from '@aws-amplify/backend-output-schemas';
9
7
  import type { GraphqlOutput, AwsAppsyncAuthenticationType } from '@aws-amplify/backend-output-schemas';
@@ -43,7 +41,7 @@ import {
43
41
  convertAuthorizationModesToTransformerAuthConfig,
44
42
  convertToResolverConfig,
45
43
  defaultTranslationBehavior,
46
- AssetManager,
44
+ AssetProvider,
47
45
  getGeneratedResources,
48
46
  getGeneratedFunctionSlots,
49
47
  CodegenAssets,
@@ -184,17 +182,14 @@ export class AmplifyGraphqlApi extends Construct {
184
182
  throw new Error(`or cdk --context env must have a length <= 8, found ${amplifyEnvironmentName}`);
185
183
  }
186
184
 
187
- const assetManager = new AssetManager();
185
+ const assetProvider = new AssetProvider(this);
188
186
 
189
187
  const executeTransformConfig: ExecuteTransformConfig = {
190
188
  scope: this,
191
189
  nestedStackProvider: {
192
190
  provide: (nestedStackScope: Construct, name: string) => new NestedStack(nestedStackScope, name),
193
191
  },
194
- assetProvider: {
195
- provide: (assetScope: Construct, assetId: string, assetProps: AssetProps) =>
196
- new Asset(assetScope, assetId, { path: assetManager.addAsset(assetProps.fileName, assetProps.fileContent) }),
197
- },
192
+ assetProvider,
198
193
  synthParameters: {
199
194
  amplifyEnvironmentName: amplifyEnvironmentName,
200
195
  apiName: props.apiName ?? id,
@@ -229,7 +224,7 @@ export class AmplifyGraphqlApi extends Construct {
229
224
  this.codegenAssets = new CodegenAssets(this, 'AmplifyCodegenAssets', { modelSchema: definition.schema });
230
225
 
231
226
  this.resources = getGeneratedResources(this);
232
- this.generatedFunctionSlots = getGeneratedFunctionSlots(assetManager.resolverAssets);
227
+ this.generatedFunctionSlots = getGeneratedFunctionSlots(assetProvider.resolverAssets);
233
228
  this.storeOutput(outputStorageStrategy);
234
229
 
235
230
  this.apiId = this.resources.cfnResources.cfnGraphqlApi.attrApiId;
@@ -403,7 +398,7 @@ export class AmplifyGraphqlApi extends Construct {
403
398
  * @param scope the scope this construct is created in.
404
399
  */
405
400
  const validateNoOtherAmplifyGraphqlApiInStack = (scope: Construct): void => {
406
- const rootStack = getStackForScope(scope, true);
401
+ const rootStack = getStackForScope(scope, false);
407
402
 
408
403
  let wasOtherAmplifyGraphlApiFound = false;
409
404
  walkAndProcessNodes(rootStack, (node: Construct) => {
@@ -413,7 +408,7 @@ const validateNoOtherAmplifyGraphqlApiInStack = (scope: Construct): void => {
413
408
  });
414
409
 
415
410
  if (wasOtherAmplifyGraphlApiFound) {
416
- throw new Error('Only one AmplifyGraphqlApi is expected in a stack');
411
+ throw new Error('Only one AmplifyGraphqlApi is expected in a stack. Place the AmplifyGraphqlApis in separate nested stacks.');
417
412
  }
418
413
  };
419
414
 
@@ -0,0 +1,64 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ import { Construct } from 'constructs';
4
+ import * as cdk from 'aws-cdk-lib';
5
+ import { Asset } from 'aws-cdk-lib/aws-s3-assets';
6
+ import { AssetProps, S3Asset, AssetProvider as AssetProviderInterface } from '@aws-amplify/graphql-transformer-interfaces';
7
+
8
+ const TEMP_PREFIX = 'transformer-assets';
9
+ const FUNCTION_PREFIX = 'functions';
10
+ const RESOLVER_PREFIX = 'resolvers';
11
+
12
+ /**
13
+ * The asset provider bridges the gap between creation of file assets in the transformer (which provide a name+contents tuple)
14
+ * with the path method which is used in CDK.
15
+ * The CDK S3 asset require the contents to be written to the file system first.
16
+ * The asset provider writes to a temporary directory before creating the CDK S3 asset.
17
+ *
18
+ */
19
+ export class AssetProvider implements AssetProviderInterface {
20
+ private readonly tempAssetDir: string;
21
+ public readonly resolverAssets: Record<string, string> = {};
22
+
23
+ constructor(scope: Construct) {
24
+ this.tempAssetDir = cdk.FileSystem.mkdtemp(`${TEMP_PREFIX}-${scope.node.addr}`);
25
+ }
26
+
27
+ /**
28
+ * Creates a new CDK S3 asset. The file contents in assetProps is first stored in a temporary file that is referenced by the CDK S3 asset.
29
+ * @param assetScope the parent of the asset
30
+ * @param assetId unique ID for CDK S3 asset
31
+ * @param assetProps name and contents of file to be added to CDK S3 asset
32
+ * @returns the CDK S3 asset
33
+ */
34
+ public provide(assetScope: Construct, assetId: string, assetProps: AssetProps): S3Asset {
35
+ return new Asset(assetScope, assetId, { path: this.addAsset(assetProps.fileName, assetProps.fileContent) });
36
+ }
37
+
38
+ private addAsset(fileName: string, contents: string): string {
39
+ this.trackResolverAsset(fileName, contents);
40
+ const writableContents = this.isContentsAReference(fileName) ? this.dereferenceContents(contents) : contents;
41
+ const filePath = path.join(this.tempAssetDir, fileName);
42
+ const fileDirName = path.dirname(filePath);
43
+ if (!fs.existsSync(fileDirName)) {
44
+ fs.mkdirSync(fileDirName, { recursive: true });
45
+ }
46
+ fs.writeFileSync(filePath, writableContents);
47
+ return filePath;
48
+ }
49
+
50
+ private isContentsAReference(fileName: string): boolean {
51
+ return fileName.startsWith(FUNCTION_PREFIX);
52
+ }
53
+
54
+ private dereferenceContents(contents: string): Buffer {
55
+ return fs.readFileSync(contents);
56
+ }
57
+
58
+ private trackResolverAsset(fileName: string, contents: string): void {
59
+ if (fileName.startsWith(RESOLVER_PREFIX)) {
60
+ const resolverFileName = fileName.split('/')[1];
61
+ this.resolverAssets[resolverFileName] = contents;
62
+ }
63
+ }
64
+ }
@@ -200,7 +200,18 @@ export const validateDataSourceStrategy = (strategy: ConstructModelDataSourceStr
200
200
  isSqlModelDataSourceSsmDbConnectionConfig(dbConnectionConfig) ||
201
201
  isSqlModelDataSourceSsmDbConnectionStringConfig(dbConnectionConfig)
202
202
  ) {
203
- const invalidSSMPaths = Object.values(dbConnectionConfig).filter((value) => typeof value === 'string' && !isValidSSMPath(value));
203
+ const ssmPaths = Object.values(dbConnectionConfig).filter((value) => typeof value === 'string');
204
+ if (isSqlModelDataSourceSsmDbConnectionStringConfig(dbConnectionConfig)) {
205
+ const hasMultipleSSMPaths = Array.isArray(dbConnectionConfig?.connectionUriSsmPath);
206
+ if (hasMultipleSSMPaths) {
207
+ if (dbConnectionConfig?.connectionUriSsmPath?.length < 1) {
208
+ throw new Error(`Invalid data source strategy "${strategy.name}". connectionUriSsmPath must be a string or non-empty array.`);
209
+ }
210
+ ssmPaths.push(...dbConnectionConfig.connectionUriSsmPath);
211
+ }
212
+ }
213
+
214
+ const invalidSSMPaths = ssmPaths.filter((value) => !isValidSSMPath(value));
204
215
  if (invalidSSMPaths.length > 0) {
205
216
  throw new Error(
206
217
  `Invalid data source strategy "${
@@ -2,6 +2,6 @@ export * from './authorization-modes';
2
2
  export * from './construct-exports';
3
3
  export * from './default-parameters';
4
4
  export * from './conflict-resolution';
5
- export * from './asset-manager';
5
+ export * from './asset-provider';
6
6
  export * from './codegen-assets';
7
7
  export * from './model-type-name';
@@ -131,8 +131,13 @@ export type SqlModelDataSourceDbConnectionConfig =
131
131
  * @experimental
132
132
  */
133
133
  export interface SqlModelDataSourceSsmDbConnectionStringConfig {
134
- /** The SSM Path to the secure connection string used for connecting to the database. **/
135
- readonly connectionUriSsmPath: string;
134
+ /**
135
+ * The SSM Path to the secure connection string used for connecting to the database. If more than one path is provided,
136
+ * the SQL Lambda will attempt to retrieve connection information from each path in order until it finds a valid
137
+ * path entry, then stop. If the connection information contained in that path is invalid, the SQL Lambda will not
138
+ * attempt to retrieve connection information from subsequent paths in the array.
139
+ **/
140
+ readonly connectionUriSsmPath: string | string[];
136
141
  }
137
142
 
138
143
  /**
@@ -76,7 +76,10 @@ export const isSqlModelDataSourceSecretsManagerDbConnectionConfig = (
76
76
  * @returns true if the object is shaped like a SqlModelDataSourceSsmDbConnectionStringConfig
77
77
  */
78
78
  export const isSqlModelDataSourceSsmDbConnectionStringConfig = (obj: any): obj is SqlModelDataSourceSsmDbConnectionStringConfig => {
79
- return (typeof obj === 'object' || typeof obj === 'function') && typeof obj.connectionUriSsmPath === 'string';
79
+ return (
80
+ (typeof obj === 'object' || typeof obj === 'function') &&
81
+ (typeof obj.connectionUriSsmPath === 'string' || Array.isArray(obj.connectionUriSsmPath))
82
+ );
80
83
  };
81
84
 
82
85
  /**
@@ -1,12 +0,0 @@
1
- /**
2
- * The asset manager bridges the gap between creation of file assets in the transformer (which provide a name+contents tuple)
3
- * with the path method which is used in CDK.
4
- */
5
- export declare class AssetManager {
6
- private readonly tempAssetDir;
7
- readonly resolverAssets: Record<string, string>;
8
- addAsset(fileName: string, contents: string): string;
9
- private isContentsAReference;
10
- private dereferenceContents;
11
- private trackResolverAsset;
12
- }
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AssetManager = void 0;
4
- const fs = require("fs");
5
- const path = require("path");
6
- const cdk = require("aws-cdk-lib");
7
- const TEMP_PREFIX = 'transformer-assets';
8
- const FUNCTION_PREFIX = 'functions';
9
- const RESOLVER_PREFIX = 'resolvers';
10
- /**
11
- * The asset manager bridges the gap between creation of file assets in the transformer (which provide a name+contents tuple)
12
- * with the path method which is used in CDK.
13
- */
14
- class AssetManager {
15
- constructor() {
16
- this.tempAssetDir = cdk.FileSystem.mkdtemp(TEMP_PREFIX);
17
- this.resolverAssets = {};
18
- }
19
- addAsset(fileName, contents) {
20
- this.trackResolverAsset(fileName, contents);
21
- const writableContents = this.isContentsAReference(fileName) ? this.dereferenceContents(contents) : contents;
22
- const filePath = path.join(this.tempAssetDir, fileName);
23
- const fileDirName = path.dirname(filePath);
24
- if (!fs.existsSync(fileDirName)) {
25
- fs.mkdirSync(fileDirName, { recursive: true });
26
- }
27
- fs.writeFileSync(filePath, writableContents);
28
- return filePath;
29
- }
30
- isContentsAReference(fileName) {
31
- return fileName.startsWith(FUNCTION_PREFIX);
32
- }
33
- dereferenceContents(contents) {
34
- return fs.readFileSync(contents);
35
- }
36
- trackResolverAsset(fileName, contents) {
37
- if (fileName.startsWith(RESOLVER_PREFIX)) {
38
- const resolverFileName = fileName.split('/')[1];
39
- this.resolverAssets[resolverFileName] = contents;
40
- }
41
- }
42
- }
43
- exports.AssetManager = AssetManager;
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcm5hbC9hc3NldC1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsbUNBQW1DO0FBRW5DLE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUFDO0FBQ3pDLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQztBQUNwQyxNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUM7QUFFcEM7OztHQUdHO0FBQ0gsTUFBYSxZQUFZO0lBQXpCO1FBQ21CLGlCQUFZLEdBQVcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUQsbUJBQWMsR0FBMkIsRUFBRSxDQUFDO0lBNEI5RCxDQUFDO0lBMUJRLFFBQVEsQ0FBQyxRQUFnQixFQUFFLFFBQWdCO1FBQ2hELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDNUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQzdHLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4RCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQy9CLEVBQUUsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDaEQ7UUFDRCxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzdDLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxRQUFnQjtRQUMzQyxPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVPLG1CQUFtQixDQUFDLFFBQWdCO1FBQzFDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU8sa0JBQWtCLENBQUMsUUFBZ0IsRUFBRSxRQUFnQjtRQUMzRCxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDeEMsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxRQUFRLENBQUM7U0FDbEQ7SUFDSCxDQUFDO0NBQ0Y7QUE5QkQsb0NBOEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5cbmNvbnN0IFRFTVBfUFJFRklYID0gJ3RyYW5zZm9ybWVyLWFzc2V0cyc7XG5jb25zdCBGVU5DVElPTl9QUkVGSVggPSAnZnVuY3Rpb25zJztcbmNvbnN0IFJFU09MVkVSX1BSRUZJWCA9ICdyZXNvbHZlcnMnO1xuXG4vKipcbiAqIFRoZSBhc3NldCBtYW5hZ2VyIGJyaWRnZXMgdGhlIGdhcCBiZXR3ZWVuIGNyZWF0aW9uIG9mIGZpbGUgYXNzZXRzIGluIHRoZSB0cmFuc2Zvcm1lciAod2hpY2ggcHJvdmlkZSBhIG5hbWUrY29udGVudHMgdHVwbGUpXG4gKiB3aXRoIHRoZSBwYXRoIG1ldGhvZCB3aGljaCBpcyB1c2VkIGluIENESy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFzc2V0TWFuYWdlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGVtcEFzc2V0RGlyOiBzdHJpbmcgPSBjZGsuRmlsZVN5c3RlbS5ta2R0ZW1wKFRFTVBfUFJFRklYKTtcbiAgcHVibGljIHJlYWRvbmx5IHJlc29sdmVyQXNzZXRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgcHVibGljIGFkZEFzc2V0KGZpbGVOYW1lOiBzdHJpbmcsIGNvbnRlbnRzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRoaXMudHJhY2tSZXNvbHZlckFzc2V0KGZpbGVOYW1lLCBjb250ZW50cyk7XG4gICAgY29uc3Qgd3JpdGFibGVDb250ZW50cyA9IHRoaXMuaXNDb250ZW50c0FSZWZlcmVuY2UoZmlsZU5hbWUpID8gdGhpcy5kZXJlZmVyZW5jZUNvbnRlbnRzKGNvbnRlbnRzKSA6IGNvbnRlbnRzO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKHRoaXMudGVtcEFzc2V0RGlyLCBmaWxlTmFtZSk7XG4gICAgY29uc3QgZmlsZURpck5hbWUgPSBwYXRoLmRpcm5hbWUoZmlsZVBhdGgpO1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhmaWxlRGlyTmFtZSkpIHtcbiAgICAgIGZzLm1rZGlyU3luYyhmaWxlRGlyTmFtZSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgfVxuICAgIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIHdyaXRhYmxlQ29udGVudHMpO1xuICAgIHJldHVybiBmaWxlUGF0aDtcbiAgfVxuXG4gIHByaXZhdGUgaXNDb250ZW50c0FSZWZlcmVuY2UoZmlsZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmaWxlTmFtZS5zdGFydHNXaXRoKEZVTkNUSU9OX1BSRUZJWCk7XG4gIH1cblxuICBwcml2YXRlIGRlcmVmZXJlbmNlQ29udGVudHMoY29udGVudHM6IHN0cmluZyk6IEJ1ZmZlciB7XG4gICAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhjb250ZW50cyk7XG4gIH1cblxuICBwcml2YXRlIHRyYWNrUmVzb2x2ZXJBc3NldChmaWxlTmFtZTogc3RyaW5nLCBjb250ZW50czogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKGZpbGVOYW1lLnN0YXJ0c1dpdGgoUkVTT0xWRVJfUFJFRklYKSkge1xuICAgICAgY29uc3QgcmVzb2x2ZXJGaWxlTmFtZSA9IGZpbGVOYW1lLnNwbGl0KCcvJylbMV07XG4gICAgICB0aGlzLnJlc29sdmVyQXNzZXRzW3Jlc29sdmVyRmlsZU5hbWVdID0gY29udGVudHM7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,10 +0,0 @@
1
- import { AssetProvider, S3Asset, AssetProps } from '@aws-amplify/graphql-transformer-interfaces';
2
- import { Construct } from 'constructs';
3
- export declare class AssetManager {
4
- private assetProvider;
5
- createAsset(scope: Construct, name: string, props: AssetProps): S3Asset;
6
- private getAssetProvider;
7
- setAssetProvider(provider: AssetProvider): void;
8
- }
9
- export declare const assetManager: AssetManager;
10
- //# sourceMappingURL=asset-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"asset-manager.d.ts","sourceRoot":"","sources":["../../src/transformer-context/asset-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;AACjG,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,qBAAa,YAAY;IACvB,OAAO,CAAC,aAAa,CAA4B;IAE1C,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO;IAI9E,OAAO,CAAC,gBAAgB;IAOjB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;CAGvD;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assetManager = exports.AssetManager = void 0;
4
- class AssetManager {
5
- createAsset(scope, name, props) {
6
- return this.getAssetProvider().provide(scope, name, props);
7
- }
8
- getAssetProvider() {
9
- if (!this.assetProvider) {
10
- throw new Error('AssetProvider not initialized');
11
- }
12
- return this.assetProvider;
13
- }
14
- setAssetProvider(provider) {
15
- this.assetProvider = provider;
16
- }
17
- }
18
- exports.AssetManager = AssetManager;
19
- exports.assetManager = new AssetManager();
20
- //# sourceMappingURL=asset-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"asset-manager.js","sourceRoot":"","sources":["../../src/transformer-context/asset-manager.ts"],"names":[],"mappings":";;;AAGA,MAAa,YAAY;IAGhB,WAAW,CAAC,KAAgB,EAAE,IAAY,EAAE,KAAiB;QAClE,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SAClD;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAEM,gBAAgB,CAAC,QAAuB;QAC7C,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;IAChC,CAAC;CACF;AAjBD,oCAiBC;AAEY,QAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC"}
@@ -1,43 +0,0 @@
1
- import * as fs from 'fs';
2
- import * as path from 'path';
3
- import * as cdk from 'aws-cdk-lib';
4
-
5
- const TEMP_PREFIX = 'transformer-assets';
6
- const FUNCTION_PREFIX = 'functions';
7
- const RESOLVER_PREFIX = 'resolvers';
8
-
9
- /**
10
- * The asset manager bridges the gap between creation of file assets in the transformer (which provide a name+contents tuple)
11
- * with the path method which is used in CDK.
12
- */
13
- export class AssetManager {
14
- private readonly tempAssetDir: string = cdk.FileSystem.mkdtemp(TEMP_PREFIX);
15
- public readonly resolverAssets: Record<string, string> = {};
16
-
17
- public addAsset(fileName: string, contents: string): string {
18
- this.trackResolverAsset(fileName, contents);
19
- const writableContents = this.isContentsAReference(fileName) ? this.dereferenceContents(contents) : contents;
20
- const filePath = path.join(this.tempAssetDir, fileName);
21
- const fileDirName = path.dirname(filePath);
22
- if (!fs.existsSync(fileDirName)) {
23
- fs.mkdirSync(fileDirName, { recursive: true });
24
- }
25
- fs.writeFileSync(filePath, writableContents);
26
- return filePath;
27
- }
28
-
29
- private isContentsAReference(fileName: string): boolean {
30
- return fileName.startsWith(FUNCTION_PREFIX);
31
- }
32
-
33
- private dereferenceContents(contents: string): Buffer {
34
- return fs.readFileSync(contents);
35
- }
36
-
37
- private trackResolverAsset(fileName: string, contents: string): void {
38
- if (fileName.startsWith(RESOLVER_PREFIX)) {
39
- const resolverFileName = fileName.split('/')[1];
40
- this.resolverAssets[resolverFileName] = contents;
41
- }
42
- }
43
- }