@aws-amplify/graphql-model-transformer 1.4.0-rds.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/CHANGELOG.md +31 -1
  2. package/lib/definitions.d.ts.map +1 -1
  3. package/lib/definitions.js +28 -2
  4. package/lib/definitions.js.map +1 -1
  5. package/lib/graphql-model-transformer.d.ts.map +1 -1
  6. package/lib/graphql-model-transformer.js +38 -36
  7. package/lib/graphql-model-transformer.js.map +1 -1
  8. package/lib/graphql-types/common.d.ts.map +1 -1
  9. package/lib/graphql-types/common.js +16 -18
  10. package/lib/graphql-types/common.js.map +1 -1
  11. package/lib/graphql-types/mutation.d.ts.map +1 -1
  12. package/lib/graphql-types/mutation.js +12 -12
  13. package/lib/graphql-types/mutation.js.map +1 -1
  14. package/lib/graphql-types/query.d.ts.map +1 -1
  15. package/lib/graphql-types/query.js.map +1 -1
  16. package/lib/rds-lambda.zip +0 -0
  17. package/lib/rds-notification-lambda.zip +0 -0
  18. package/lib/rds-patching-lambda.zip +0 -0
  19. package/lib/resolvers/common.d.ts.map +1 -1
  20. package/lib/resolvers/common.js.map +1 -1
  21. package/lib/resolvers/dynamodb/mutation.d.ts.map +1 -1
  22. package/lib/resolvers/dynamodb/mutation.js +10 -8
  23. package/lib/resolvers/dynamodb/mutation.js.map +1 -1
  24. package/lib/resolvers/dynamodb/query.d.ts.map +1 -1
  25. package/lib/resolvers/dynamodb/query.js +1 -4
  26. package/lib/resolvers/dynamodb/query.js.map +1 -1
  27. package/lib/resolvers/dynamodb/subscriptions.d.ts.map +1 -1
  28. package/lib/resolvers/dynamodb/subscriptions.js.map +1 -1
  29. package/lib/resolvers/generators/dynamodb-vtl-generator.d.ts.map +1 -1
  30. package/lib/resolvers/generators/dynamodb-vtl-generator.js.map +1 -1
  31. package/lib/resolvers/generators/rds-vtl-generator.d.ts.map +1 -1
  32. package/lib/resolvers/generators/rds-vtl-generator.js.map +1 -1
  33. package/lib/resolvers/generators/vtl-generator.d.ts.map +1 -1
  34. package/lib/resolvers/index.d.ts.map +1 -1
  35. package/lib/resolvers/index.js.map +1 -1
  36. package/lib/resolvers/rds/mutation.d.ts.map +1 -1
  37. package/lib/resolvers/rds/mutation.js.map +1 -1
  38. package/lib/resolvers/rds/query.d.ts.map +1 -1
  39. package/lib/resolvers/rds/query.js.map +1 -1
  40. package/lib/resolvers/rds/resolver.d.ts +2 -2
  41. package/lib/resolvers/rds/resolver.d.ts.map +1 -1
  42. package/lib/resolvers/rds/resolver.js +83 -83
  43. package/lib/resolvers/rds/resolver.js.map +1 -1
  44. package/lib/resources/dynamo-model-resource-generator.d.ts +1 -1
  45. package/lib/resources/dynamo-model-resource-generator.d.ts.map +1 -1
  46. package/lib/resources/dynamo-model-resource-generator.js +2 -2
  47. package/lib/resources/dynamo-model-resource-generator.js.map +1 -1
  48. package/lib/resources/model-resource-generator.d.ts.map +1 -1
  49. package/lib/resources/model-resource-generator.js +15 -7
  50. package/lib/resources/model-resource-generator.js.map +1 -1
  51. package/lib/resources/rds-model-resource-generator.d.ts.map +1 -1
  52. package/lib/resources/rds-model-resource-generator.js +1 -1
  53. package/lib/resources/rds-model-resource-generator.js.map +1 -1
  54. package/package.json +17 -8
  55. package/publish-notification-lambda/node_modules/.package-lock.json +13 -13
  56. package/publish-notification-lambda/node_modules/@smithy/protocol-http/package.json +3 -3
  57. package/publish-notification-lambda/node_modules/@smithy/types/package.json +2 -2
  58. package/publish-notification-lambda/node_modules/@types/node/README.md +1 -1
  59. package/publish-notification-lambda/node_modules/@types/node/package.json +2 -2
  60. package/publish-notification-lambda/node_modules/tslib/package.json +1 -1
  61. package/publish-notification-lambda/node_modules/tslib/tslib.es6.mjs +50 -1
  62. package/publish-notification-lambda/package-lock.json +13 -13
  63. package/publish-notification-lambda/src/index.ts +2 -2
  64. package/publish-notification-lambda/tsconfig.json +9 -9
  65. package/rds-lambda/handler.ts +17 -4
  66. package/rds-lambda/node_modules/.package-lock.json +376 -377
  67. package/rds-lambda/node_modules/@babel/compat-data/README.md +1 -1
  68. package/rds-lambda/node_modules/@babel/compat-data/data/corejs2-built-ins.json +146 -0
  69. package/rds-lambda/node_modules/@babel/compat-data/data/native-modules.json +1 -1
  70. package/rds-lambda/node_modules/@babel/compat-data/data/plugin-bugfixes.json +17 -0
  71. package/rds-lambda/node_modules/@babel/compat-data/data/plugins.json +76 -9
  72. package/rds-lambda/node_modules/@babel/compat-data/package.json +4 -4
  73. package/rds-lambda/node_modules/@babel/core/README.md +1 -1
  74. package/rds-lambda/node_modules/@babel/core/package.json +10 -10
  75. package/rds-lambda/node_modules/@babel/generator/README.md +1 -1
  76. package/rds-lambda/node_modules/@babel/generator/package.json +4 -3
  77. package/rds-lambda/node_modules/@babel/helper-compilation-targets/README.md +1 -1
  78. package/rds-lambda/node_modules/@babel/helper-compilation-targets/package.json +5 -5
  79. package/rds-lambda/node_modules/@babel/helper-module-transforms/README.md +1 -1
  80. package/rds-lambda/node_modules/@babel/helper-module-transforms/package.json +10 -6
  81. package/rds-lambda/node_modules/@babel/helper-split-export-declaration/README.md +1 -1
  82. package/rds-lambda/node_modules/@babel/helper-split-export-declaration/package.json +1 -1
  83. package/rds-lambda/node_modules/@babel/helpers/README.md +1 -1
  84. package/rds-lambda/node_modules/@babel/helpers/package.json +3 -3
  85. package/rds-lambda/node_modules/@babel/parser/README.md +1 -1
  86. package/rds-lambda/node_modules/@babel/parser/package.json +2 -2
  87. package/rds-lambda/node_modules/@babel/traverse/README.md +1 -1
  88. package/rds-lambda/node_modules/@babel/traverse/package.json +4 -4
  89. package/rds-lambda/node_modules/@jest/console/package.json +6 -6
  90. package/rds-lambda/node_modules/@jest/core/package.json +21 -21
  91. package/rds-lambda/node_modules/@jest/environment/package.json +5 -5
  92. package/rds-lambda/node_modules/@jest/expect/package.json +6 -6
  93. package/rds-lambda/node_modules/@jest/expect-utils/package.json +5 -5
  94. package/rds-lambda/node_modules/@jest/fake-timers/package.json +7 -7
  95. package/rds-lambda/node_modules/@jest/globals/package.json +6 -6
  96. package/rds-lambda/node_modules/@jest/reporters/package.json +14 -14
  97. package/rds-lambda/node_modules/@jest/schemas/package.json +3 -3
  98. package/rds-lambda/node_modules/@jest/source-map/package.json +3 -3
  99. package/rds-lambda/node_modules/@jest/test-result/package.json +6 -6
  100. package/rds-lambda/node_modules/@jest/test-sequencer/package.json +5 -5
  101. package/rds-lambda/node_modules/@jest/transform/package.json +7 -7
  102. package/rds-lambda/node_modules/@jest/types/package.json +5 -5
  103. package/rds-lambda/node_modules/@sinclair/typebox/package.json +3 -8
  104. package/rds-lambda/node_modules/@sinclair/typebox/readme.md +487 -300
  105. package/rds-lambda/node_modules/@smithy/protocol-http/package.json +3 -3
  106. package/rds-lambda/node_modules/@smithy/types/package.json +2 -2
  107. package/rds-lambda/node_modules/@types/jest/README.md +1 -1
  108. package/rds-lambda/node_modules/@types/jest/package.json +2 -2
  109. package/rds-lambda/node_modules/@types/node/README.md +1 -1
  110. package/rds-lambda/node_modules/@types/node/package.json +2 -2
  111. package/rds-lambda/node_modules/babel-jest/package.json +4 -4
  112. package/rds-lambda/node_modules/caniuse-lite/package.json +1 -1
  113. package/rds-lambda/node_modules/collect-v8-coverage/CHANGELOG.md +7 -0
  114. package/rds-lambda/node_modules/collect-v8-coverage/package.json +18 -20
  115. package/rds-lambda/node_modules/commander/Readme.md +7 -2
  116. package/rds-lambda/node_modules/commander/package.json +17 -17
  117. package/rds-lambda/node_modules/electron-to-chromium/full-chromium-versions.json +1 -1
  118. package/rds-lambda/node_modules/electron-to-chromium/full-versions.json +1 -1
  119. package/rds-lambda/node_modules/electron-to-chromium/package.json +1 -1
  120. package/rds-lambda/node_modules/electron-to-chromium/versions.json +1 -1
  121. package/rds-lambda/node_modules/expect/package.json +10 -9
  122. package/rds-lambda/node_modules/jest/package.json +7 -7
  123. package/rds-lambda/node_modules/jest-circus/package.json +15 -14
  124. package/rds-lambda/node_modules/jest-cli/package.json +10 -9
  125. package/rds-lambda/node_modules/jest-config/package.json +14 -14
  126. package/rds-lambda/node_modules/jest-diff/package.json +4 -4
  127. package/rds-lambda/node_modules/jest-each/package.json +5 -5
  128. package/rds-lambda/node_modules/jest-environment-node/package.json +8 -8
  129. package/rds-lambda/node_modules/jest-haste-map/package.json +5 -5
  130. package/rds-lambda/node_modules/jest-leak-detector/package.json +3 -3
  131. package/rds-lambda/node_modules/jest-matcher-utils/package.json +5 -5
  132. package/rds-lambda/node_modules/jest-message-util/package.json +4 -4
  133. package/rds-lambda/node_modules/jest-mock/package.json +6 -6
  134. package/rds-lambda/node_modules/jest-resolve/package.json +7 -7
  135. package/rds-lambda/node_modules/jest-resolve-dependencies/package.json +8 -8
  136. package/rds-lambda/node_modules/jest-runner/package.json +20 -20
  137. package/rds-lambda/node_modules/jest-runtime/package.json +17 -17
  138. package/rds-lambda/node_modules/jest-snapshot/node_modules/semver/README.md +3 -1
  139. package/rds-lambda/node_modules/jest-snapshot/node_modules/semver/package.json +3 -3
  140. package/rds-lambda/node_modules/jest-snapshot/package.json +15 -17
  141. package/rds-lambda/node_modules/jest-util/package.json +3 -3
  142. package/rds-lambda/node_modules/jest-validate/package.json +4 -4
  143. package/rds-lambda/node_modules/jest-watcher/package.json +5 -5
  144. package/rds-lambda/node_modules/jest-worker/package.json +6 -6
  145. package/rds-lambda/node_modules/knex/CHANGELOG.md +63 -21
  146. package/rds-lambda/node_modules/knex/CONTRIBUTING.md +1 -1
  147. package/rds-lambda/node_modules/knex/LICENSE +22 -22
  148. package/rds-lambda/node_modules/knex/README.md +32 -31
  149. package/rds-lambda/node_modules/knex/UPGRADING.md +94 -82
  150. package/rds-lambda/node_modules/knex/knex.mjs +11 -0
  151. package/rds-lambda/node_modules/knex/lib/dialects/oracle/DEAD_CODE.md +3 -3
  152. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/cjs.stub +15 -15
  153. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/coffee.stub +13 -13
  154. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/eg.stub +14 -14
  155. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/js-schema.stub +22 -22
  156. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/js.stub +22 -22
  157. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-coffee.stub +34 -34
  158. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-eg.stub +43 -43
  159. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-js.stub +47 -47
  160. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-ls.stub +35 -35
  161. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-ts.stub +47 -47
  162. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/ls.stub +14 -14
  163. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/mjs.stub +23 -23
  164. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/ts-schema.stub +21 -21
  165. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/ts.stub +21 -21
  166. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/coffee.stub +9 -9
  167. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/eg.stub +11 -11
  168. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/js.stub +13 -13
  169. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/ls.stub +11 -11
  170. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/mjs.stub +12 -12
  171. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/ts.stub +13 -13
  172. package/rds-lambda/node_modules/knex/package.json +21 -18
  173. package/rds-lambda/node_modules/knex/scripts/docker-compose.yml +2 -2
  174. package/rds-lambda/node_modules/knex/scripts/next-release-howto.md +1 -1
  175. package/rds-lambda/node_modules/knex/scripts/oracledb-install-driver-libs.sh +82 -82
  176. package/rds-lambda/node_modules/knex/scripts/release.sh +36 -34
  177. package/rds-lambda/node_modules/knex/scripts/stress-test/README.txt +18 -18
  178. package/rds-lambda/node_modules/knex/scripts/stress-test/docker-compose.yml +16 -16
  179. package/rds-lambda/node_modules/node-releases/data/processed/envs.json +1 -1
  180. package/rds-lambda/node_modules/node-releases/package.json +1 -1
  181. package/rds-lambda/node_modules/pg-connection-string/package.json +2 -2
  182. package/rds-lambda/node_modules/pretty-format/package.json +5 -5
  183. package/rds-lambda/node_modules/semver/package.json +19 -9
  184. package/rds-lambda/node_modules/ts-jest/.ts-jest-digest +1 -1
  185. package/rds-lambda/node_modules/ts-jest/CHANGELOG.md +9 -0
  186. package/rds-lambda/node_modules/ts-jest/node_modules/semver/README.md +3 -1
  187. package/rds-lambda/node_modules/ts-jest/node_modules/semver/package.json +3 -3
  188. package/rds-lambda/node_modules/ts-jest/package.json +12 -12
  189. package/rds-lambda/node_modules/tslib/package.json +1 -1
  190. package/rds-lambda/node_modules/tslib/tslib.es6.mjs +50 -1
  191. package/rds-lambda/package-lock.json +376 -377
  192. package/rds-patching-lambda/node_modules/.package-lock.json +13 -13
  193. package/rds-patching-lambda/node_modules/@smithy/protocol-http/package.json +3 -3
  194. package/rds-patching-lambda/node_modules/@smithy/types/package.json +2 -2
  195. package/rds-patching-lambda/node_modules/@types/node/README.md +1 -1
  196. package/rds-patching-lambda/node_modules/@types/node/package.json +2 -2
  197. package/rds-patching-lambda/node_modules/tslib/package.json +1 -1
  198. package/rds-patching-lambda/node_modules/tslib/tslib.es6.mjs +50 -1
  199. package/rds-patching-lambda/package-lock.json +13 -13
  200. package/rds-patching-lambda/src/index.ts +19 -6
  201. package/rds-patching-lambda/tsconfig.json +9 -9
  202. package/src/__tests__/model-transformer.test.ts +175 -145
  203. package/src/__tests__/test-utils/helpers.ts +1 -1
  204. package/src/definitions.ts +28 -2
  205. package/src/graphql-model-transformer.ts +81 -75
  206. package/src/graphql-types/common.ts +41 -41
  207. package/src/graphql-types/mutation.ts +13 -13
  208. package/src/graphql-types/query.ts +1 -0
  209. package/src/index.ts +1 -0
  210. package/src/resolvers/common.ts +1 -12
  211. package/src/resolvers/dynamodb/mutation.ts +16 -13
  212. package/src/resolvers/dynamodb/query.ts +7 -12
  213. package/src/resolvers/dynamodb/subscriptions.ts +1 -3
  214. package/src/resolvers/generators/dynamodb-vtl-generator.ts +18 -8
  215. package/src/resolvers/generators/rds-vtl-generator.ts +11 -4
  216. package/src/resolvers/generators/vtl-generator.ts +5 -5
  217. package/src/resolvers/index.ts +1 -3
  218. package/src/resolvers/rds/mutation.ts +76 -70
  219. package/src/resolvers/rds/query.ts +4 -12
  220. package/src/resolvers/rds/resolver.ts +125 -131
  221. package/src/resources/dynamo-model-resource-generator.ts +14 -28
  222. package/src/resources/model-resource-generator.ts +65 -27
  223. package/src/resources/rds-model-resource-generator.ts +5 -15
  224. package/tsconfig.json +4 -4
  225. package/tsconfig.tsbuildinfo +1 -1
  226. package/rds-lambda/node_modules/semver/CHANGELOG.md +0 -70
@@ -28,12 +28,7 @@ import {
28
28
  TransformerTransformSchemaStepContextProvider,
29
29
  TransformerValidationStepContextProvider,
30
30
  } from '@aws-amplify/graphql-transformer-interfaces';
31
- import {
32
- ITable,
33
- StreamViewType,
34
- Table,
35
- TableEncryption,
36
- } from 'aws-cdk-lib/aws-dynamodb';
31
+ import { ITable, StreamViewType, Table, TableEncryption } from 'aws-cdk-lib/aws-dynamodb';
37
32
  import * as iam from 'aws-cdk-lib/aws-iam';
38
33
  import * as cdk from 'aws-cdk-lib';
39
34
  import {
@@ -123,16 +118,24 @@ const DDB_DATASOURCE_TYPE = { dbType: DDB_DB_TYPE, provisioned: true };
123
118
  */
124
119
  export class ModelTransformer extends TransformerModelBase implements TransformerModelProvider {
125
120
  private options: ModelTransformerOptions;
121
+
126
122
  private datasourceMap: Record<string, DataSourceProvider> = {};
123
+
127
124
  private ddbTableMap: Record<string, ITable> = {};
125
+
128
126
  private resolverMap: Record<string, TransformerResolverProvider> = {};
127
+
129
128
  private typesWithModelDirective: Set<string> = new Set();
129
+
130
130
  private resourceGeneratorMap: Map<string, ModelResourceGenerator> = new Map<string, ModelResourceGenerator>();
131
- private modelToDatasourceMap: Map<string, DatasourceType> = new Map<string, DatasourceType>()
131
+
132
+ private modelToDatasourceMap: Map<string, DatasourceType> = new Map<string, DatasourceType>();
133
+
132
134
  /**
133
135
  * A Map to hold the directive configuration
134
136
  */
135
137
  private modelDirectiveConfig: Map<string, ModelDirectiveConfiguration> = new Map();
138
+
136
139
  constructor(options: ModelTransformerOptions = {}) {
137
140
  super('amplify-model-transformer', directiveDefinition);
138
141
  this.options = this.getOptions(options);
@@ -162,9 +165,10 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
162
165
  };
163
166
 
164
167
  object = (definition: ObjectTypeDefinitionNode, directive: DirectiveNode, ctx: TransformerSchemaVisitStepContextProvider): void => {
165
- const isTypeNameReserved = definition.name.value === ctx.output.getQueryTypeName()
166
- || definition.name.value === ctx.output.getMutationTypeName()
167
- || definition.name.value === ctx.output.getSubscriptionTypeName();
168
+ const isTypeNameReserved =
169
+ definition.name.value === ctx.output.getQueryTypeName() ||
170
+ definition.name.value === ctx.output.getMutationTypeName() ||
171
+ definition.name.value === ctx.output.getSubscriptionTypeName();
168
172
 
169
173
  const isDynamoDB = (ctx.modelToDatasourceMap.get(definition.name.value) ?? DDB_DATASOURCE_TYPE).dbType === DDB_DB_TYPE;
170
174
  if (isTypeNameReserved) {
@@ -180,31 +184,36 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
180
184
  }
181
185
 
182
186
  const directiveWrapped: DirectiveWrapper = new DirectiveWrapper(directive);
183
- const options = directiveWrapped.getArguments({
184
- queries: {
185
- get: getFieldNameFor('get', typeName),
186
- list: getFieldNameFor('list', typeName),
187
- ...(ctx.isProjectUsingDataStore() ? { sync: getFieldNameFor('sync', typeName) } : undefined),
188
- },
189
- mutations: {
190
- create: getFieldNameFor('create', typeName),
191
- update: getFieldNameFor('update', typeName),
192
- delete: getFieldNameFor('delete', typeName),
193
- },
194
- subscriptions: {
195
- level: SubscriptionLevel.on,
196
- onCreate: [getFieldNameFor('onCreate', typeName)],
197
- onDelete: [getFieldNameFor('onDelete', typeName)],
198
- onUpdate: [getFieldNameFor('onUpdate', typeName)],
199
- },
200
- timestamps: isDynamoDB ? {
201
- createdAt: 'createdAt',
202
- updatedAt: 'updatedAt',
203
- } : {
204
- createdAt: undefined,
205
- updatedAt: undefined,
187
+ const options = directiveWrapped.getArguments(
188
+ {
189
+ queries: {
190
+ get: getFieldNameFor('get', typeName),
191
+ list: getFieldNameFor('list', typeName),
192
+ ...(ctx.isProjectUsingDataStore() ? { sync: getFieldNameFor('sync', typeName) } : undefined),
193
+ },
194
+ mutations: {
195
+ create: getFieldNameFor('create', typeName),
196
+ update: getFieldNameFor('update', typeName),
197
+ delete: getFieldNameFor('delete', typeName),
198
+ },
199
+ subscriptions: {
200
+ level: SubscriptionLevel.on,
201
+ onCreate: [getFieldNameFor('onCreate', typeName)],
202
+ onDelete: [getFieldNameFor('onDelete', typeName)],
203
+ onUpdate: [getFieldNameFor('onUpdate', typeName)],
204
+ },
205
+ timestamps: isDynamoDB
206
+ ? {
207
+ createdAt: 'createdAt',
208
+ updatedAt: 'updatedAt',
209
+ }
210
+ : {
211
+ createdAt: undefined,
212
+ updatedAt: undefined,
213
+ },
206
214
  },
207
- }, generateGetArgumentsInput(ctx.transformParameters));
215
+ generateGetArgumentsInput(ctx.transformParameters),
216
+ );
208
217
 
209
218
  // This property override is specifically to address parity between V1 and V2 when the FF is disabled
210
219
  // If one subscription is defined, just let the others go to null without FF. But if public and none defined, default all subs
@@ -224,8 +233,10 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
224
233
  },
225
234
  generateGetArgumentsInput(ctx.transformParameters),
226
235
  );
227
- if (baseArgs?.subscriptions?.level === SubscriptionLevel.public
228
- && !(baseArgs?.subscriptions?.onCreate || baseArgs?.subscriptions?.onDelete || baseArgs?.subscriptions?.onUpdate)) {
236
+ if (
237
+ baseArgs?.subscriptions?.level === SubscriptionLevel.public &&
238
+ !(baseArgs?.subscriptions?.onCreate || baseArgs?.subscriptions?.onDelete || baseArgs?.subscriptions?.onUpdate)
239
+ ) {
229
240
  options.subscriptions = { level: SubscriptionLevel.public, ...publicSubscriptionDefaults };
230
241
  }
231
242
  }
@@ -255,7 +266,7 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
255
266
  };
256
267
 
257
268
  prepare = (context: TransformerPrepareStepContextProvider): void => {
258
- this.typesWithModelDirective.forEach(modelTypeName => {
269
+ this.typesWithModelDirective.forEach((modelTypeName) => {
259
270
  const type = context.output.getObject(modelTypeName);
260
271
  context.providerRegistry.registerDataSourceProvider(type!, this);
261
272
  });
@@ -266,9 +277,9 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
266
277
  addModelConditionInputs(ctx);
267
278
 
268
279
  this.ensureModelSortDirectionEnum(ctx);
269
- this.typesWithModelDirective.forEach(type => {
280
+ this.typesWithModelDirective.forEach((type) => {
270
281
  const def = ctx.output.getObject(type)!;
271
- const hasAuth = def.directives!.some(dir => dir.name.value === 'auth');
282
+ const hasAuth = def.directives!.some((dir) => dir.name.value === 'auth');
272
283
 
273
284
  // add Non Model type inputs
274
285
  this.createNonModelInputs(ctx, def);
@@ -291,19 +302,19 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
291
302
  }
292
303
  }
293
304
  // global auth check
294
- if (!hasAuth && ctx.sandboxModeEnabled && ctx.authConfig.defaultAuthentication.authenticationType !== 'API_KEY') {
305
+ if (!hasAuth && ctx.transformParameters.sandboxModeEnabled && ctx.authConfig.defaultAuthentication.authenticationType !== 'API_KEY') {
295
306
  const apiKeyDirArray = [makeDirective(API_KEY_DIRECTIVE, [])];
296
307
  extendTypeWithDirectives(ctx, def.name.value, apiKeyDirArray);
297
308
  propagateApiKeyToNestedTypes(ctx as TransformerContextProvider, def, new Set<string>());
298
- queryFields.forEach(operationField => {
309
+ queryFields.forEach((operationField) => {
299
310
  const operationName = operationField.name.value;
300
311
  addDirectivesToOperation(ctx, ctx.output.getQueryTypeName()!, operationName, apiKeyDirArray);
301
312
  });
302
- mutationFields.forEach(operationField => {
313
+ mutationFields.forEach((operationField) => {
303
314
  const operationName = operationField.name.value;
304
315
  addDirectivesToOperation(ctx, ctx.output.getMutationTypeName()!, operationName, apiKeyDirArray);
305
316
  });
306
- subscriptionsFields.forEach(operationField => {
317
+ subscriptionsFields.forEach((operationField) => {
307
318
  const operationName = operationField.name.value;
308
319
  addDirectivesToOperation(ctx, ctx.output.getSubscriptionTypeName()!, operationName, apiKeyDirArray);
309
320
  });
@@ -373,14 +384,9 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
373
384
  const dbInfo = ctx.modelToDatasourceMap.get(type.name.value) ?? DDB_DATASOURCE_TYPE;
374
385
  if (dbInfo?.dbType && this.resourceGeneratorMap.has(dbInfo.dbType)) {
375
386
  // Coercing this into being defined as we're running a check on it first
376
- return this.resourceGeneratorMap.get(dbInfo.dbType)!.generateUpdateResolver(
377
- ctx,
378
- type,
379
- modelDirectiveConfig,
380
- typeName,
381
- fieldName,
382
- resolverLogicalId,
383
- );
387
+ return this.resourceGeneratorMap
388
+ .get(dbInfo.dbType)!
389
+ .generateUpdateResolver(ctx, type, modelDirectiveConfig, typeName, fieldName, resolverLogicalId);
384
390
  }
385
391
  throw new Error(`DB Type undefined or resource generator not provided for ${type.name.value}`);
386
392
  };
@@ -468,7 +474,7 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
468
474
  [SubscriptionFieldType.ON_UPDATE]: MutationFieldType.UPDATE,
469
475
  [SubscriptionFieldType.ON_DELETE]: MutationFieldType.DELETE,
470
476
  };
471
- const mutation = Array.from(mutationMap).find(m => m.type === mutationToSubscriptionTypeMap[subscriptionType]);
477
+ const mutation = Array.from(mutationMap).find((m) => m.type === mutationToSubscriptionTypeMap[subscriptionType]);
472
478
  if (mutation) {
473
479
  return mutation.fieldName;
474
480
  }
@@ -478,7 +484,7 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
478
484
  private createQueryFields = (ctx: TransformerValidationStepContextProvider, def: ObjectTypeDefinitionNode): FieldDefinitionNode[] => {
479
485
  const queryFields: FieldDefinitionNode[] = [];
480
486
  const queryFieldNames = this.getQueryFieldNames(def!);
481
- queryFieldNames.forEach(queryField => {
487
+ queryFieldNames.forEach((queryField) => {
482
488
  const outputType = this.getOutputType(ctx, def, queryField);
483
489
  const args = this.getInputs(ctx, def!, {
484
490
  fieldName: queryField.fieldName,
@@ -494,7 +500,7 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
494
500
  private createMutationFields = (ctx: TransformerValidationStepContextProvider, def: ObjectTypeDefinitionNode): FieldDefinitionNode[] => {
495
501
  const mutationFields: FieldDefinitionNode[] = [];
496
502
  const mutationFieldNames = this.getMutationFieldNames(def!);
497
- mutationFieldNames.forEach(mutationField => {
503
+ mutationFieldNames.forEach((mutationField) => {
498
504
  const args = this.getInputs(ctx, def!, {
499
505
  fieldName: mutationField.fieldName,
500
506
  typeName: mutationField.typeName,
@@ -516,19 +522,21 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
516
522
 
517
523
  const subscriptionFields: FieldDefinitionNode[] = [];
518
524
 
519
- Object.keys(subscriptionToMutationsMap).forEach(subscriptionFieldName => {
525
+ Object.keys(subscriptionToMutationsMap).forEach((subscriptionFieldName) => {
520
526
  const maps = subscriptionToMutationsMap[subscriptionFieldName];
521
527
 
522
528
  const args: InputValueDefinitionNode[] = [];
523
- maps.map(it => args.push(
524
- ...this.getInputs(ctx, def!, {
525
- fieldName: it.fieldName,
526
- typeName: it.typeName,
527
- type: it.type,
528
- }),
529
- ));
529
+ maps.map((it) =>
530
+ args.push(
531
+ ...this.getInputs(ctx, def!, {
532
+ fieldName: it.fieldName,
533
+ typeName: it.typeName,
534
+ type: it.type,
535
+ }),
536
+ ),
537
+ );
530
538
 
531
- const mutationNames = maps.map(it => this.getMutationName(it.type, mutationFields));
539
+ const mutationNames = maps.map((it) => this.getMutationName(it.type, mutationFields));
532
540
 
533
541
  // Todo use directive wrapper to build the directive node
534
542
  const directive = makeDirective('aws_subscribe', [makeArgument('mutations', makeValueNode(mutationNames))]);
@@ -601,7 +609,7 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
601
609
  const filterInputs = createEnumModelFilters(ctx, type);
602
610
  conditionInput = makeMutationConditionInput(ctx, conditionTypeName, type);
603
611
  filterInputs.push(conditionInput);
604
- filterInputs.forEach(input => {
612
+ filterInputs.forEach((input) => {
605
613
  const conditionInputName = input.name.value;
606
614
  if (!ctx.output.getType(conditionInputName)) {
607
615
  ctx.output.addInput(input);
@@ -616,7 +624,7 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
616
624
  const filterInputName = toPascalCase(['Model', type.name.value, 'FilterInput']);
617
625
  const filterInputs = createEnumModelFilters(ctx, type);
618
626
  filterInputs.push(makeListQueryFilterInput(ctx, filterInputName, type));
619
- filterInputs.forEach(input => {
627
+ filterInputs.forEach((input) => {
620
628
  const conditionInputName = input.name.value;
621
629
  if (!ctx.output.getType(conditionInputName)) {
622
630
  ctx.output.addInput(input);
@@ -694,16 +702,14 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
694
702
  const filterInputName = toPascalCase(['ModelSubscription', type.name.value, 'FilterInput']);
695
703
  const filterInputs = createEnumModelFilters(ctx, type);
696
704
  filterInputs.push(makeSubscriptionQueryFilterInput(ctx, filterInputName, type));
697
- filterInputs.forEach(input => {
705
+ filterInputs.forEach((input) => {
698
706
  const conditionInputName = input.name.value;
699
707
  if (!ctx.output.getType(conditionInputName)) {
700
708
  ctx.output.addInput(input);
701
709
  }
702
710
  });
703
711
 
704
- return [
705
- makeInputValueDefinition('filter', makeNamedType(filterInputName)),
706
- ];
712
+ return [makeInputValueDefinition('filter', makeNamedType(filterInputName))];
707
713
 
708
714
  default:
709
715
  throw new Error('Unknown operation type');
@@ -752,10 +758,10 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
752
758
  createIAMRole = (context: TransformerContextProvider, def: ObjectTypeDefinitionNode, stack: cdk.Stack, tableName: string): iam.Role => {
753
759
  const ddbGenerator = this.resourceGeneratorMap.get(DDB_DB_TYPE) as DynamoModelResourceGenerator;
754
760
  return ddbGenerator.createIAMRole(context, def, stack, tableName);
755
- }
761
+ };
756
762
 
757
763
  private createNonModelInputs = (ctx: TransformerTransformSchemaStepContextProvider, obj: ObjectTypeDefinitionNode): void => {
758
- (obj.fields ?? []).forEach(field => {
764
+ (obj.fields ?? []).forEach((field) => {
759
765
  if (!isScalar(field.type)) {
760
766
  const def = ctx.output.getType(getBaseType(field.type));
761
767
  if (def && def.kind === 'ObjectTypeDefinition' && !this.isModelField(def.name.value)) {
@@ -770,7 +776,7 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
770
776
  });
771
777
  };
772
778
 
773
- private isModelField = (name: string): boolean => (!!this.typesWithModelDirective.has(name));
779
+ private isModelField = (name: string): boolean => !!this.typesWithModelDirective.has(name);
774
780
 
775
781
  private getNonModelInputObjectName = (name: string): string => `${toUpper(name)}Input`;
776
782
 
@@ -803,7 +809,7 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
803
809
  }
804
810
  }
805
811
 
806
- timestamps.forEach(fieldName => {
812
+ timestamps.forEach((fieldName) => {
807
813
  if (typeWrapper.hasField(fieldName)) {
808
814
  const field = typeWrapper.getField(fieldName);
809
815
  if (!['String', 'AWSDateTime'].includes(field.getTypeName())) {
@@ -838,7 +844,7 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
838
844
  const subscriptionToMutationsMap: { [subField: string]: { fieldName: string; typeName: string; type: SubscriptionFieldType }[] } = {};
839
845
  const subscriptionFieldNames = this.getSubscriptionFieldNames(def);
840
846
 
841
- subscriptionFieldNames.forEach(subscriptionFieldName => {
847
+ subscriptionFieldNames.forEach((subscriptionFieldName) => {
842
848
  if (!subscriptionToMutationsMap[subscriptionFieldName.fieldName]) {
843
849
  subscriptionToMutationsMap[subscriptionFieldName.fieldName] = [];
844
850
  }
@@ -854,7 +860,7 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
854
860
 
855
861
  ctx.output.addEnum(modelSortDirection);
856
862
  }
857
- }
863
+ };
858
864
 
859
865
  private getOptions = (options: ModelTransformerOptions): ModelTransformerOptions => ({
860
866
  EnableDeletionProtection: false,
@@ -64,11 +64,11 @@ export const makeConditionFilterInput = (
64
64
  object: ObjectTypeDefinitionNode,
65
65
  ): InputObjectDefinitionWrapper => {
66
66
  const input = InputObjectDefinitionWrapper.create(name);
67
-
68
- addSimpleFieldsConditionsForListing(input, object, ctx)
67
+
68
+ addSimpleFieldsConditionsForListing(input, object, ctx);
69
69
  addListTypeConditions(input, name);
70
- addNonListTypeConditions(input, name)
71
- addDatastoreConditions(input, ctx)
70
+ addNonListTypeConditions(input, name);
71
+ addDatastoreConditions(input, ctx);
72
72
 
73
73
  return input;
74
74
  };
@@ -91,7 +91,7 @@ export const makeSubscriptionFilterInput = (
91
91
  const conditionTypeName = ModelResourceIDs.ModelFilterScalarInputTypeName(
92
92
  isEnumType ? 'String' : field.getTypeName(),
93
93
  !supportsConditions,
94
- true
94
+ true,
95
95
  );
96
96
  const inputField = InputFieldWrapper.create(field.name, conditionTypeName, true);
97
97
  input.addField(inputField);
@@ -99,7 +99,7 @@ export const makeSubscriptionFilterInput = (
99
99
  }
100
100
 
101
101
  addListTypeConditions(input, name);
102
- addDatastoreConditions(input, ctx)
102
+ addDatastoreConditions(input, ctx);
103
103
 
104
104
  return input;
105
105
  };
@@ -113,7 +113,7 @@ export const makeSubscriptionFilterInput = (
113
113
  const addSimpleFieldsConditionsForListing = (
114
114
  input: InputObjectDefinitionWrapper,
115
115
  object: ObjectTypeDefinitionNode,
116
- ctx: TransformerTransformSchemaStepContextProvider
116
+ ctx: TransformerTransformSchemaStepContextProvider,
117
117
  ) => {
118
118
  const supportsConditions = true;
119
119
  const wrappedObject = new ObjectDefinitionWrapper(object);
@@ -121,16 +121,17 @@ const addSimpleFieldsConditionsForListing = (
121
121
  for (const field of wrappedObject.fields) {
122
122
  const fieldType = ctx.output.getType(field.getTypeName());
123
123
  const isEnumType = fieldType && fieldType.kind === Kind.ENUM_TYPE_DEFINITION;
124
-
124
+
125
125
  if (field.isScalar() || isEnumType) {
126
- const conditionTypeName = isEnumType && field.isList()
127
- ? ModelResourceIDs.ModelFilterListInputTypeName(field.getTypeName(), !supportsConditions)
128
- : ModelResourceIDs.ModelFilterScalarInputTypeName(field.getTypeName(), !supportsConditions);
126
+ const conditionTypeName =
127
+ isEnumType && field.isList()
128
+ ? ModelResourceIDs.ModelFilterListInputTypeName(field.getTypeName(), !supportsConditions)
129
+ : ModelResourceIDs.ModelFilterScalarInputTypeName(field.getTypeName(), !supportsConditions);
129
130
  const inputField = InputFieldWrapper.create(field.name, conditionTypeName, true);
130
131
  input.addField(inputField);
131
132
  }
132
133
  }
133
- }
134
+ };
134
135
 
135
136
  /**
136
137
  * Make additional conditions of non-list type
@@ -139,10 +140,10 @@ const addSimpleFieldsConditionsForListing = (
139
140
  */
140
141
  const addNonListTypeConditions = (input: InputObjectDefinitionWrapper, name: string) => {
141
142
  for (const additionalField of ['not']) {
142
- const inputField = InputFieldWrapper.create(additionalField, name, true, false);
143
- input.addField(inputField);
143
+ const inputField = InputFieldWrapper.create(additionalField, name, true, false);
144
+ input.addField(inputField);
144
145
  }
145
- }
146
+ };
146
147
 
147
148
  /**
148
149
  * Make additional conditions of list type
@@ -154,29 +155,24 @@ const addListTypeConditions = (input: InputObjectDefinitionWrapper, name: string
154
155
  const inputField = InputFieldWrapper.create(additionalField, name, true, true);
155
156
  input.addField(inputField);
156
157
  }
157
- }
158
+ };
158
159
 
159
160
  /**
160
161
  * Make additional conditions for datastore-enabled apps
161
162
  * @param input output object
162
163
  * @param ctx TransformerContext
163
164
  */
164
- const addDatastoreConditions = (
165
- input: InputObjectDefinitionWrapper,
166
- ctx: TransformerTransformSchemaStepContextProvider
167
- ) => {
165
+ const addDatastoreConditions = (input: InputObjectDefinitionWrapper, ctx: TransformerTransformSchemaStepContextProvider) => {
168
166
  if (ctx.isProjectUsingDataStore()) {
169
- const datastoreFields = [
170
- {fieldName: '_deleted', typeName: STANDARD_SCALARS.Boolean}
171
- ]
167
+ const datastoreFields = [{ fieldName: '_deleted', typeName: STANDARD_SCALARS.Boolean }];
172
168
 
173
- for (const {fieldName, typeName} of datastoreFields) {
174
- const type = ModelResourceIDs.ModelScalarFilterInputTypeName(typeName, false)
169
+ for (const { fieldName, typeName } of datastoreFields) {
170
+ const type = ModelResourceIDs.ModelScalarFilterInputTypeName(typeName, false);
175
171
  const inputField = InputFieldWrapper.create(fieldName, type, true, false);
176
172
  input.addField(inputField);
177
173
  }
178
174
  }
179
- }
175
+ };
180
176
 
181
177
  /**
182
178
  * Generates the Subscription filter input type name
@@ -198,7 +194,7 @@ export const removeSubscriptionFilterInputAttribute = (
198
194
  }
199
195
  const newFilterType: InputObjectTypeDefinitionNode = {
200
196
  ...filterType,
201
- fields: filterType.fields?.filter(field => field.name.value !== fieldName),
197
+ fields: filterType.fields?.filter((field) => field.name.value !== fieldName),
202
198
  };
203
199
  ctx.output.putType(newFilterType);
204
200
  };
@@ -207,11 +203,15 @@ export const removeSubscriptionFilterInputAttribute = (
207
203
  * Generates model condition input type
208
204
  */
209
205
  export const addModelConditionInputs = (ctx: TransformerTransformSchemaStepContextProvider): void => {
210
- const conditionsInput: TypeDefinitionNode[] = ['String', 'Int', 'Float', 'Boolean', 'ID'].map(scalarName => makeModelScalarFilterInputObject(scalarName, true));
211
- ['String', 'Int', 'Float', 'Boolean', 'ID'].map(scalarName => conditionsInput.push(makeModelScalarFilterInputObject(scalarName, true, true)));
206
+ const conditionsInput: TypeDefinitionNode[] = ['String', 'Int', 'Float', 'Boolean', 'ID'].map((scalarName) =>
207
+ makeModelScalarFilterInputObject(scalarName, true),
208
+ );
209
+ ['String', 'Int', 'Float', 'Boolean', 'ID'].map((scalarName) =>
210
+ conditionsInput.push(makeModelScalarFilterInputObject(scalarName, true, true)),
211
+ );
212
212
  conditionsInput.push(makeAttributeTypeEnum());
213
213
  conditionsInput.push(makeSizeInputType());
214
- conditionsInput.forEach(input => {
214
+ conditionsInput.forEach((input) => {
215
215
  const inputName = input.name.value;
216
216
  if (!ctx.output.getType(inputName)) {
217
217
  ctx.output.addType(input);
@@ -241,13 +241,13 @@ export const createEnumModelFilters = (
241
241
  ): InputObjectTypeDefinitionNode[] => {
242
242
  // add enum type if present
243
243
  const typeWrapper = new ObjectDefinitionWrapper(type);
244
- const enumFields = typeWrapper.fields.filter(field => {
244
+ const enumFields = typeWrapper.fields.filter((field) => {
245
245
  const typeName = field.getTypeName();
246
246
  const typeObj = ctx.output.getType(typeName);
247
247
  return typeObj && typeObj.kind === 'EnumTypeDefinition';
248
248
  });
249
249
 
250
- return enumFields.map(field => makeEnumFilterInput(field));
250
+ return enumFields.map((field) => makeEnumFilterInput(field));
251
251
  };
252
252
 
253
253
  /**
@@ -281,7 +281,7 @@ export function makeModelScalarFilterInputObject(
281
281
  }
282
282
 
283
283
  if (!isSubscriptionFilter) {
284
- makeFunctionInputFields(type).map(f => scalarConditionInput.addField(f));
284
+ makeFunctionInputFields(type).map((f) => scalarConditionInput.addField(f));
285
285
  }
286
286
 
287
287
  return scalarConditionInput.serialize();
@@ -398,13 +398,13 @@ export function makeEnumFilterInput(fieldWrapper: FieldWrapper): InputObjectType
398
398
  : ModelResourceIDs.ModelFilterScalarInputTypeName(fieldWrapper.getTypeName(), !supportsConditions);
399
399
 
400
400
  const input = InputObjectDefinitionWrapper.create(conditionTypeName);
401
- ['eq', 'ne'].forEach(fieldName => {
401
+ ['eq', 'ne'].forEach((fieldName) => {
402
402
  const field = InputFieldWrapper.create(fieldName, fieldWrapper.getTypeName(), true, fieldWrapper.isList());
403
403
  input.addField(field);
404
404
  });
405
405
 
406
406
  if (fieldWrapper.isList()) {
407
- ['contains', 'notContains'].forEach(fieldName => {
407
+ ['contains', 'notContains'].forEach((fieldName) => {
408
408
  const field = InputFieldWrapper.create(fieldName, fieldWrapper.getTypeName(), true);
409
409
  input.addField(field);
410
410
  });
@@ -423,9 +423,9 @@ export const addDirectivesToField = (
423
423
  ): void => {
424
424
  const type = ctx.output.getType(typeName) as ObjectTypeDefinitionNode;
425
425
  if (type) {
426
- const field = type.fields?.find(f => f.name.value === fieldName);
426
+ const field = type.fields?.find((f) => f.name.value === fieldName);
427
427
  if (field) {
428
- const newFields = [...type.fields!.filter(f => f.name.value !== field.name.value), extendFieldWithDirectives(field, directives)];
428
+ const newFields = [...type.fields!.filter((f) => f.name.value !== field.name.value), extendFieldWithDirectives(field, directives)];
429
429
 
430
430
  const newType = {
431
431
  ...type,
@@ -452,7 +452,7 @@ export const addDirectivesToOperation = (
452
452
  // add the directives to the result type of the operation
453
453
  const type = ctx.output.getType(typeName) as ObjectTypeDefinitionNode;
454
454
  if (type) {
455
- const field = type.fields!.find(f => f.name.value === operationName);
455
+ const field = type.fields!.find((f) => f.name.value === operationName);
456
456
 
457
457
  if (field) {
458
458
  const returnFieldType = field.type as NamedTypeNode;
@@ -501,18 +501,18 @@ export const propagateApiKeyToNestedTypes = (
501
501
  if (fieldType.kind !== 'ObjectTypeDefinition') {
502
502
  return undefined;
503
503
  }
504
- const typeModel = fieldType.directives!.find(dir => dir.name.value === 'model');
504
+ const typeModel = fieldType.directives!.find((dir) => dir.name.value === 'model');
505
505
  return typeModel !== undefined ? undefined : fieldType;
506
506
  }
507
507
  return fieldType;
508
508
  };
509
509
  const nonModelFieldTypes = def
510
- .fields!.map(f => ctx.output.getType(getBaseType(f.type)) as TypeDefinitionNode)
510
+ .fields!.map((f) => ctx.output.getType(getBaseType(f.type)) as TypeDefinitionNode)
511
511
  .filter(nonModelTypePredicate);
512
512
  for (const nonModelFieldType of nonModelFieldTypes) {
513
513
  const nonModelName = nonModelFieldType.name.value;
514
514
  const hasSeenType = seenNonModelTypes.has(nonModelName);
515
- const hasApiKey = nonModelFieldType.directives?.some(dir => dir.name.value === API_KEY_DIRECTIVE) ?? false;
515
+ const hasApiKey = nonModelFieldType.directives?.some((dir) => dir.name.value === API_KEY_DIRECTIVE) ?? false;
516
516
  if (!hasSeenType && !hasApiKey) {
517
517
  seenNonModelTypes.add(nonModelName);
518
518
  extendTypeWithDirectives(ctx, nonModelName, [makeDirective(API_KEY_DIRECTIVE, [])]);
@@ -2,8 +2,8 @@ import { TransformerTransformSchemaStepContextProvider } from '@aws-amplify/grap
2
2
  import { DocumentNode, InputObjectTypeDefinitionNode, ObjectTypeDefinitionNode } from 'graphql';
3
3
  import { ModelResourceIDs, toPascalCase } from 'graphql-transformer-common';
4
4
  import { InputFieldWrapper, InputObjectDefinitionWrapper, ObjectDefinitionWrapper } from '@aws-amplify/graphql-transformer-core';
5
- import { makeConditionFilterInput } from './common';
6
5
  import { ModelDirectiveConfiguration } from '../directive';
6
+ import { makeConditionFilterInput } from './common';
7
7
 
8
8
  /**
9
9
  * Generate input used for update mutation
@@ -24,36 +24,36 @@ export const makeUpdateInputField = (
24
24
  const name = toPascalCase(['Update', typeName, 'Input']);
25
25
  const hasIdField = objectWrapped.hasField('id');
26
26
  const fieldsToRemove = objectWrapped
27
- .fields!.filter(field => {
27
+ .fields!.filter((field) => {
28
28
  if (knownModelTypes.has(field.getTypeName())) {
29
29
  return true;
30
30
  }
31
31
  return false;
32
32
  })
33
- .map(field => field.name);
33
+ .map((field) => field.name);
34
34
 
35
35
  const objectTypeDefinition: ObjectTypeDefinitionNode = {
36
36
  ...obj,
37
- fields: obj.fields?.filter(f => !fieldsToRemove.includes(f.name.value)),
37
+ fields: obj.fields?.filter((f) => !fieldsToRemove.includes(f.name.value)),
38
38
  };
39
39
 
40
40
  const input = InputObjectDefinitionWrapper.fromObject(name, objectTypeDefinition, document);
41
41
 
42
42
  // make all the fields optional
43
- input.fields.forEach(f => f.makeNullable());
43
+ input.fields.forEach((f) => f.makeNullable());
44
44
 
45
45
  if (!hasIdField) {
46
46
  // Add id field and make it optional
47
47
  input.addField(InputFieldWrapper.create('id', 'ID', false));
48
48
  } else {
49
- const idField = input.fields.find(f => f.name === 'id');
49
+ const idField = input.fields.find((f) => f.name === 'id');
50
50
  if (idField) {
51
51
  idField.makeNonNullable();
52
52
  }
53
53
  }
54
54
 
55
55
  // Make createdAt and updatedAt field Optionals if present
56
- Object.values(modelDirectiveConfig?.timestamps || {}).forEach(timeStampFieldName => {
56
+ Object.values(modelDirectiveConfig?.timestamps || {}).forEach((timeStampFieldName) => {
57
57
  if (input.hasField(timeStampFieldName!)) {
58
58
  const timestampField = input.getField(timeStampFieldName!);
59
59
  if (['String', 'AWSDateTime'].includes(timestampField.getTypeName())) {
@@ -106,17 +106,17 @@ export const makeCreateInputField = (
106
106
 
107
107
  const hasIdField = objectWrapped.hasField('id');
108
108
  const fieldsToRemove = objectWrapped
109
- .fields!.filter(field => {
109
+ .fields!.filter((field) => {
110
110
  if (knownModelTypes.has(field.getTypeName())) {
111
111
  return true;
112
112
  }
113
113
  return false;
114
114
  })
115
- .map(field => field.name);
115
+ .map((field) => field.name);
116
116
 
117
117
  const objectTypeDefinition: ObjectTypeDefinitionNode = {
118
118
  ...obj,
119
- fields: obj.fields?.filter(f => !fieldsToRemove.includes(f.name.value)),
119
+ fields: obj.fields?.filter((f) => !fieldsToRemove.includes(f.name.value)),
120
120
  };
121
121
 
122
122
  const input = InputObjectDefinitionWrapper.fromObject(name, objectTypeDefinition, document);
@@ -125,13 +125,13 @@ export const makeCreateInputField = (
125
125
  if (!hasIdField) {
126
126
  input.addField(InputFieldWrapper.create('id', 'ID', true));
127
127
  } else {
128
- const idField = input.fields.find(f => f.name === 'id');
128
+ const idField = input.fields.find((f) => f.name === 'id');
129
129
  if (idField) {
130
130
  idField.makeNullable();
131
131
  }
132
132
  }
133
133
  // Make createdAt and updatedAt field Optionals if present
134
- Object.values(modelDirectiveConfig?.timestamps || {}).forEach(timeStampFieldName => {
134
+ Object.values(modelDirectiveConfig?.timestamps || {}).forEach((timeStampFieldName) => {
135
135
  if (input.hasField(timeStampFieldName!)) {
136
136
  const timestampField = input.getField(timeStampFieldName!);
137
137
  if (['String', 'AWSDateTime'].includes(timestampField.getTypeName())) {
@@ -156,7 +156,7 @@ export const makeMutationConditionInput = (
156
156
  object: ObjectTypeDefinitionNode,
157
157
  ): InputObjectTypeDefinitionNode => {
158
158
  const input = makeConditionFilterInput(ctx, name, object);
159
- const idField = input.fields.find(f => f.name === 'id' && f.getTypeName() === 'ModelIDInput');
159
+ const idField = input.fields.find((f) => f.name === 'id' && f.getTypeName() === 'ModelIDInput');
160
160
  if (idField) {
161
161
  input.removeField(idField);
162
162
  }
@@ -2,6 +2,7 @@ import { TransformerTransformSchemaStepContextProvider } from '@aws-amplify/grap
2
2
  import { InputObjectTypeDefinitionNode, ObjectTypeDefinitionNode } from 'graphql';
3
3
  import { FieldWrapper, ObjectDefinitionWrapper } from '@aws-amplify/graphql-transformer-core';
4
4
  import { makeConditionFilterInput, makeSubscriptionFilterInput } from './common';
5
+
5
6
  export const makeListQueryFilterInput = (
6
7
  ctx: TransformerTransformSchemaStepContextProvider,
7
8
  name: string,
package/src/index.ts CHANGED
@@ -3,3 +3,4 @@ export { ModelTransformer } from './graphql-model-transformer';
3
3
  export { OPERATION_KEY } from './definitions';
4
4
  export * from './graphql-types';
5
5
  export * from './resolvers';
6
+ // No-op change to trigger publish