@aws-amplify/data-schema 0.15.0 → 0.16.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 (375) hide show
  1. package/{lib-esm/src → dist/cjs}/Authorization.js +149 -31
  2. package/dist/cjs/Authorization.js.map +1 -0
  3. package/{lib-esm/src → dist/cjs}/ClientSchema.js +3 -1
  4. package/dist/cjs/ClientSchema.js.map +1 -0
  5. package/{lib-esm/src → dist/cjs}/CombineSchema.js +3 -2
  6. package/dist/cjs/CombineSchema.js.map +1 -0
  7. package/{lib-esm/src → dist/cjs}/CustomOperation.js +7 -3
  8. package/dist/cjs/CustomOperation.js.map +1 -0
  9. package/{lib-esm/src → dist/cjs}/CustomType.js +3 -1
  10. package/dist/cjs/CustomType.js.map +1 -0
  11. package/{lib-esm/src → dist/cjs}/EnumType.js +3 -1
  12. package/dist/cjs/EnumType.js.map +1 -0
  13. package/{lib-esm/src → dist/cjs}/Handler.js +3 -1
  14. package/dist/cjs/Handler.js.map +1 -0
  15. package/{lib-esm/src → dist/cjs}/MappedTypes/CustomOperations.js +3 -1
  16. package/dist/cjs/MappedTypes/CustomOperations.js.map +1 -0
  17. package/dist/cjs/MappedTypes/ExtractNonModelTypes.js +4 -0
  18. package/dist/cjs/MappedTypes/ExtractNonModelTypes.js.map +1 -0
  19. package/dist/cjs/MappedTypes/ImplicitFieldInjector.js +4 -0
  20. package/dist/cjs/MappedTypes/ImplicitFieldInjector.js.map +1 -0
  21. package/{lib-esm/src → dist/cjs}/MappedTypes/MapSecondaryIndexes.js +3 -1
  22. package/dist/cjs/MappedTypes/MapSecondaryIndexes.js.map +1 -0
  23. package/{lib-esm/src → dist/cjs}/MappedTypes/ModelMetadata.js +3 -1
  24. package/dist/cjs/MappedTypes/ModelMetadata.js.map +1 -0
  25. package/dist/cjs/MappedTypes/ResolveFieldProperties.js +4 -0
  26. package/dist/cjs/MappedTypes/ResolveFieldProperties.js.map +1 -0
  27. package/{lib-esm/src → dist/cjs}/MappedTypes/ResolveSchema.js +3 -1
  28. package/dist/cjs/MappedTypes/ResolveSchema.js.map +1 -0
  29. package/{lib-esm/src → dist/cjs}/ModelField.js +8 -3
  30. package/dist/cjs/ModelField.js.map +1 -0
  31. package/{lib-esm/src → dist/cjs}/ModelIndex.js +3 -1
  32. package/dist/cjs/ModelIndex.js.map +1 -0
  33. package/{lib-esm/src → dist/cjs}/ModelRelationalField.js +7 -10
  34. package/dist/cjs/ModelRelationalField.js.map +1 -0
  35. package/{lib-esm/src → dist/cjs}/ModelSchema.js +10 -5
  36. package/dist/cjs/ModelSchema.js.map +1 -0
  37. package/{lib-esm/src → dist/cjs}/ModelType.js +8 -3
  38. package/dist/cjs/ModelType.js.map +1 -0
  39. package/{lib-esm/src → dist/cjs}/RefType.js +8 -5
  40. package/dist/cjs/RefType.js.map +1 -0
  41. package/{lib-esm/src → dist/cjs}/SchemaProcessor.js +15 -61
  42. package/dist/cjs/SchemaProcessor.js.map +1 -0
  43. package/{lib-esm/src/index.js → dist/cjs/a.js} +4 -4
  44. package/dist/cjs/a.js.map +1 -0
  45. package/dist/cjs/index.js +8 -0
  46. package/dist/cjs/index.js.map +1 -0
  47. package/{lib-esm/src → dist/cjs}/internals/index.js +3 -1
  48. package/dist/cjs/internals/index.js.map +1 -0
  49. package/dist/cjs/runtime/addSchemaToClient.js +17 -0
  50. package/dist/cjs/runtime/addSchemaToClient.js.map +1 -0
  51. package/dist/cjs/runtime/addSchemaToClientWithInstance.js +22 -0
  52. package/dist/cjs/runtime/addSchemaToClientWithInstance.js.map +1 -0
  53. package/dist/cjs/runtime/bridge-types.js +15 -0
  54. package/dist/cjs/runtime/bridge-types.js.map +1 -0
  55. package/dist/cjs/runtime/client/index.js +17 -0
  56. package/dist/cjs/runtime/client/index.js.map +1 -0
  57. package/dist/cjs/runtime/client/index.v3.js +7 -0
  58. package/dist/cjs/runtime/client/index.v3.js.map +1 -0
  59. package/dist/cjs/runtime/index.js +13 -0
  60. package/dist/cjs/runtime/index.js.map +1 -0
  61. package/dist/cjs/runtime/index.v3.js +13 -0
  62. package/dist/cjs/runtime/index.v3.js.map +1 -0
  63. package/dist/cjs/runtime/internals/APIClient.js +740 -0
  64. package/dist/cjs/runtime/internals/APIClient.js.map +1 -0
  65. package/dist/cjs/runtime/internals/clientUtils.js +29 -0
  66. package/dist/cjs/runtime/internals/clientUtils.js.map +1 -0
  67. package/dist/cjs/runtime/internals/generateCustomOperationsProperty.js +49 -0
  68. package/dist/cjs/runtime/internals/generateCustomOperationsProperty.js.map +1 -0
  69. package/dist/cjs/runtime/internals/index.js +21 -0
  70. package/dist/cjs/runtime/internals/index.js.map +1 -0
  71. package/dist/cjs/runtime/internals/operations/custom.js +356 -0
  72. package/dist/cjs/runtime/internals/operations/custom.js.map +1 -0
  73. package/dist/cjs/runtime/internals/operations/get.js +62 -0
  74. package/dist/cjs/runtime/internals/operations/get.js.map +1 -0
  75. package/dist/cjs/runtime/internals/operations/indexQuery.js +75 -0
  76. package/dist/cjs/runtime/internals/operations/indexQuery.js.map +1 -0
  77. package/dist/cjs/runtime/internals/operations/list.js +74 -0
  78. package/dist/cjs/runtime/internals/operations/list.js.map +1 -0
  79. package/dist/cjs/runtime/internals/operations/observeQuery.js +121 -0
  80. package/dist/cjs/runtime/internals/operations/observeQuery.js.map +1 -0
  81. package/dist/cjs/runtime/internals/operations/subscription.js +31 -0
  82. package/dist/cjs/runtime/internals/operations/subscription.js.map +1 -0
  83. package/dist/cjs/runtime/internals/server/generateModelsProperty.js +53 -0
  84. package/dist/cjs/runtime/internals/server/generateModelsProperty.js.map +1 -0
  85. package/dist/cjs/runtime/internals/server/index.js +8 -0
  86. package/dist/cjs/runtime/internals/server/index.js.map +1 -0
  87. package/dist/cjs/runtime/internals/utils/clientProperties/generateEnumsProperty.js +21 -0
  88. package/dist/cjs/runtime/internals/utils/clientProperties/generateEnumsProperty.js.map +1 -0
  89. package/dist/cjs/runtime/internals/utils/clientProperties/generateModelsProperty.js +45 -0
  90. package/dist/cjs/runtime/internals/utils/clientProperties/generateModelsProperty.js.map +1 -0
  91. package/dist/cjs/runtime/internals/utils/runtimeTypeGuards/isApiGraphQLProviderConfig.js +11 -0
  92. package/dist/cjs/runtime/internals/utils/runtimeTypeGuards/isApiGraphQLProviderConfig.js.map +1 -0
  93. package/dist/cjs/runtime/internals/utils/runtimeTypeGuards/isConfigureEventWithResourceConfig.js +11 -0
  94. package/dist/cjs/runtime/internals/utils/runtimeTypeGuards/isConfigureEventWithResourceConfig.js.map +1 -0
  95. package/dist/cjs/runtime/internals/utils/runtimeTypeGuards/isGraphQLResponseWithErrors.js +15 -0
  96. package/dist/cjs/runtime/internals/utils/runtimeTypeGuards/isGraphQLResponseWithErrors.js.map +1 -0
  97. package/dist/cjs/runtime/utils/findIndexByFields.js +25 -0
  98. package/dist/cjs/runtime/utils/findIndexByFields.js.map +1 -0
  99. package/dist/cjs/runtime/utils/index.js +11 -0
  100. package/dist/cjs/runtime/utils/index.js.map +1 -0
  101. package/dist/cjs/runtime/utils/resolveOwnerFields.js +48 -0
  102. package/dist/cjs/runtime/utils/resolveOwnerFields.js.map +1 -0
  103. package/dist/cjs/runtime/utils/resolvePKFields.js +17 -0
  104. package/dist/cjs/runtime/utils/resolvePKFields.js.map +1 -0
  105. package/{lib-esm/src → dist/cjs}/util/Brand.js +3 -1
  106. package/dist/cjs/util/Brand.js.map +1 -0
  107. package/{lib-esm/src → dist/cjs}/util/IndexLimit.js +3 -1
  108. package/dist/cjs/util/IndexLimit.js.map +1 -0
  109. package/{lib-esm/src → dist/cjs}/util/SpreadTuple.js +3 -1
  110. package/dist/cjs/util/SpreadTuple.js.map +1 -0
  111. package/{lib-esm/src → dist/cjs}/util/index.js +3 -1
  112. package/dist/cjs/util/index.js.map +1 -0
  113. package/{lib-esm/src → dist/esm}/Authorization.d.ts +105 -31
  114. package/dist/esm/Authorization.mjs +446 -0
  115. package/dist/esm/Authorization.mjs.map +1 -0
  116. package/{lib-esm/src → dist/esm}/ClientSchema.d.ts +1 -2
  117. package/dist/esm/ClientSchema.mjs +2 -0
  118. package/dist/esm/ClientSchema.mjs.map +1 -0
  119. package/{lib-esm/src → dist/esm}/CombineSchema.d.ts +0 -1
  120. package/dist/esm/CombineSchema.mjs +39 -0
  121. package/dist/esm/CombineSchema.mjs.map +1 -0
  122. package/{lib-esm/src → dist/esm}/CustomOperation.d.ts +2 -3
  123. package/dist/esm/CustomOperation.mjs +67 -0
  124. package/dist/esm/CustomOperation.mjs.map +1 -0
  125. package/{lib-esm/src → dist/esm}/CustomType.d.ts +0 -1
  126. package/dist/esm/CustomType.mjs +13 -0
  127. package/dist/esm/CustomType.mjs.map +1 -0
  128. package/{lib-esm/src → dist/esm}/EnumType.d.ts +0 -1
  129. package/dist/esm/EnumType.mjs +16 -0
  130. package/dist/esm/EnumType.mjs.map +1 -0
  131. package/{lib-esm/src → dist/esm}/Handler.d.ts +0 -1
  132. package/dist/esm/Handler.mjs +48 -0
  133. package/dist/esm/Handler.mjs.map +1 -0
  134. package/{lib-esm/src → dist/esm}/MappedTypes/CustomOperations.d.ts +0 -1
  135. package/dist/esm/MappedTypes/CustomOperations.mjs +2 -0
  136. package/dist/esm/MappedTypes/CustomOperations.mjs.map +1 -0
  137. package/{lib-esm/src → dist/esm}/MappedTypes/ExtractNonModelTypes.d.ts +0 -1
  138. package/dist/esm/MappedTypes/ExtractNonModelTypes.mjs +2 -0
  139. package/dist/esm/MappedTypes/ExtractNonModelTypes.mjs.map +1 -0
  140. package/{lib-esm/src → dist/esm}/MappedTypes/ImplicitFieldInjector.d.ts +0 -1
  141. package/dist/esm/MappedTypes/ImplicitFieldInjector.mjs +2 -0
  142. package/dist/esm/MappedTypes/ImplicitFieldInjector.mjs.map +1 -0
  143. package/{lib-esm/src → dist/esm}/MappedTypes/MapSecondaryIndexes.d.ts +0 -1
  144. package/dist/esm/MappedTypes/MapSecondaryIndexes.mjs +2 -0
  145. package/dist/esm/MappedTypes/MapSecondaryIndexes.mjs.map +1 -0
  146. package/{lib-esm/src → dist/esm}/MappedTypes/ModelMetadata.d.ts +0 -1
  147. package/dist/esm/MappedTypes/ModelMetadata.mjs +2 -0
  148. package/dist/esm/MappedTypes/ModelMetadata.mjs.map +1 -0
  149. package/{lib-esm/src → dist/esm}/MappedTypes/ResolveFieldProperties.d.ts +0 -1
  150. package/dist/esm/MappedTypes/ResolveFieldProperties.mjs +2 -0
  151. package/dist/esm/MappedTypes/ResolveFieldProperties.mjs.map +1 -0
  152. package/{lib-esm/src → dist/esm}/MappedTypes/ResolveSchema.d.ts +0 -1
  153. package/dist/esm/MappedTypes/ResolveSchema.mjs +2 -0
  154. package/dist/esm/MappedTypes/ResolveSchema.mjs.map +1 -0
  155. package/{lib-esm/src → dist/esm}/ModelField.d.ts +2 -3
  156. package/dist/esm/ModelField.mjs +199 -0
  157. package/dist/esm/ModelField.mjs.map +1 -0
  158. package/{lib-esm/src → dist/esm}/ModelIndex.d.ts +0 -1
  159. package/dist/esm/ModelIndex.mjs +33 -0
  160. package/dist/esm/ModelIndex.mjs.map +1 -0
  161. package/{lib-esm/src → dist/esm}/ModelRelationalField.d.ts +3 -4
  162. package/dist/esm/ModelRelationalField.mjs +88 -0
  163. package/dist/esm/ModelRelationalField.mjs.map +1 -0
  164. package/{lib-esm/src → dist/esm}/ModelSchema.d.ts +3 -4
  165. package/dist/esm/ModelSchema.mjs +163 -0
  166. package/dist/esm/ModelSchema.mjs.map +1 -0
  167. package/{lib-esm/src → dist/esm}/ModelType.d.ts +2 -3
  168. package/dist/esm/ModelType.mjs +66 -0
  169. package/dist/esm/ModelType.mjs.map +1 -0
  170. package/{lib-esm/src → dist/esm}/RefType.d.ts +2 -3
  171. package/dist/esm/RefType.mjs +48 -0
  172. package/dist/esm/RefType.mjs.map +1 -0
  173. package/{lib-esm/src → dist/esm}/SchemaProcessor.d.ts +0 -1
  174. package/dist/esm/SchemaProcessor.mjs +926 -0
  175. package/dist/esm/SchemaProcessor.mjs.map +1 -0
  176. package/{lib-esm/src/index.d.ts → dist/esm/a.d.ts} +1 -3
  177. package/dist/esm/a.mjs +11 -0
  178. package/dist/esm/a.mjs.map +1 -0
  179. package/dist/esm/index.d.ts +4 -0
  180. package/dist/esm/index.mjs +3 -0
  181. package/dist/esm/index.mjs.map +1 -0
  182. package/dist/esm/internals/index.d.ts +2 -0
  183. package/dist/esm/internals/index.mjs +2 -0
  184. package/dist/esm/internals/index.mjs.map +1 -0
  185. package/dist/esm/runtime/addSchemaToClient.d.ts +3 -0
  186. package/dist/esm/runtime/addSchemaToClient.mjs +17 -0
  187. package/dist/esm/runtime/addSchemaToClient.mjs.map +1 -0
  188. package/dist/esm/runtime/addSchemaToClientWithInstance.d.ts +3 -0
  189. package/dist/esm/runtime/addSchemaToClientWithInstance.mjs +22 -0
  190. package/dist/esm/runtime/addSchemaToClientWithInstance.mjs.map +1 -0
  191. package/dist/esm/runtime/bridge-types.d.ts +281 -0
  192. package/dist/esm/runtime/bridge-types.mjs +13 -0
  193. package/dist/esm/runtime/bridge-types.mjs.map +1 -0
  194. package/dist/esm/runtime/client/index.d.ts +571 -0
  195. package/dist/esm/runtime/client/index.mjs +2 -0
  196. package/dist/esm/runtime/client/index.mjs.map +1 -0
  197. package/dist/esm/runtime/client/index.v3.d.ts +15 -0
  198. package/dist/esm/runtime/client/index.v3.mjs +2 -0
  199. package/dist/esm/runtime/client/index.v3.mjs.map +1 -0
  200. package/dist/esm/runtime/index.d.ts +4 -0
  201. package/dist/esm/runtime/index.mjs +4 -0
  202. package/dist/esm/runtime/index.mjs.map +1 -0
  203. package/dist/esm/runtime/index.v3.d.ts +4 -0
  204. package/dist/esm/runtime/index.v3.mjs +4 -0
  205. package/dist/esm/runtime/index.v3.mjs.map +1 -0
  206. package/dist/esm/runtime/internals/APIClient.d.ts +125 -0
  207. package/dist/esm/runtime/internals/APIClient.mjs +728 -0
  208. package/dist/esm/runtime/internals/APIClient.mjs.map +1 -0
  209. package/dist/esm/runtime/internals/clientUtils.d.ts +6 -0
  210. package/dist/esm/runtime/internals/clientUtils.mjs +26 -0
  211. package/dist/esm/runtime/internals/clientUtils.mjs.map +1 -0
  212. package/dist/esm/runtime/internals/generateCustomOperationsProperty.d.ts +8 -0
  213. package/dist/esm/runtime/internals/generateCustomOperationsProperty.mjs +44 -0
  214. package/dist/esm/runtime/internals/generateCustomOperationsProperty.mjs.map +1 -0
  215. package/dist/esm/runtime/internals/index.d.ts +6 -0
  216. package/dist/esm/runtime/internals/index.mjs +7 -0
  217. package/dist/esm/runtime/internals/index.mjs.map +1 -0
  218. package/dist/esm/runtime/internals/operations/custom.d.ts +61 -0
  219. package/dist/esm/runtime/internals/operations/custom.mjs +354 -0
  220. package/dist/esm/runtime/internals/operations/custom.mjs.map +1 -0
  221. package/dist/esm/runtime/internals/operations/get.d.ts +3 -0
  222. package/dist/esm/runtime/internals/operations/get.mjs +60 -0
  223. package/dist/esm/runtime/internals/operations/get.mjs.map +1 -0
  224. package/dist/esm/runtime/internals/operations/indexQuery.d.ts +7 -0
  225. package/dist/esm/runtime/internals/operations/indexQuery.mjs +73 -0
  226. package/dist/esm/runtime/internals/operations/indexQuery.mjs.map +1 -0
  227. package/dist/esm/runtime/internals/operations/list.d.ts +2 -0
  228. package/dist/esm/runtime/internals/operations/list.mjs +72 -0
  229. package/dist/esm/runtime/internals/operations/list.mjs.map +1 -0
  230. package/dist/esm/runtime/internals/operations/observeQuery.d.ts +3 -0
  231. package/dist/esm/runtime/internals/operations/observeQuery.mjs +120 -0
  232. package/dist/esm/runtime/internals/operations/observeQuery.mjs.map +1 -0
  233. package/dist/esm/runtime/internals/operations/subscription.d.ts +3 -0
  234. package/dist/esm/runtime/internals/operations/subscription.mjs +29 -0
  235. package/dist/esm/runtime/internals/operations/subscription.mjs.map +1 -0
  236. package/dist/esm/runtime/internals/server/generateModelsProperty.d.ts +3 -0
  237. package/dist/esm/runtime/internals/server/generateModelsProperty.mjs +51 -0
  238. package/dist/esm/runtime/internals/server/generateModelsProperty.mjs.map +1 -0
  239. package/dist/esm/runtime/internals/server/index.d.ts +1 -0
  240. package/dist/esm/runtime/internals/server/index.mjs +2 -0
  241. package/dist/esm/runtime/internals/server/index.mjs.map +1 -0
  242. package/dist/esm/runtime/internals/utils/clientProperties/generateEnumsProperty.d.ts +3 -0
  243. package/dist/esm/runtime/internals/utils/clientProperties/generateEnumsProperty.mjs +18 -0
  244. package/dist/esm/runtime/internals/utils/clientProperties/generateEnumsProperty.mjs.map +1 -0
  245. package/dist/esm/runtime/internals/utils/clientProperties/generateModelsProperty.d.ts +3 -0
  246. package/dist/esm/runtime/internals/utils/clientProperties/generateModelsProperty.mjs +43 -0
  247. package/dist/esm/runtime/internals/utils/clientProperties/generateModelsProperty.mjs.map +1 -0
  248. package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isApiGraphQLProviderConfig.d.ts +2 -0
  249. package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isApiGraphQLProviderConfig.mjs +8 -0
  250. package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isApiGraphQLProviderConfig.mjs.map +1 -0
  251. package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isConfigureEventWithResourceConfig.d.ts +8 -0
  252. package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isConfigureEventWithResourceConfig.mjs +8 -0
  253. package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isConfigureEventWithResourceConfig.mjs.map +1 -0
  254. package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isGraphQLResponseWithErrors.d.ts +2 -0
  255. package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isGraphQLResponseWithErrors.mjs +12 -0
  256. package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isGraphQLResponseWithErrors.mjs.map +1 -0
  257. package/dist/esm/runtime/utils/findIndexByFields.d.ts +9 -0
  258. package/dist/esm/runtime/utils/findIndexByFields.mjs +22 -0
  259. package/dist/esm/runtime/utils/findIndexByFields.mjs.map +1 -0
  260. package/dist/esm/runtime/utils/index.d.ts +2 -0
  261. package/dist/esm/runtime/utils/index.mjs +3 -0
  262. package/dist/esm/runtime/utils/index.mjs.map +1 -0
  263. package/dist/esm/runtime/utils/resolveOwnerFields.d.ts +12 -0
  264. package/dist/esm/runtime/utils/resolveOwnerFields.mjs +45 -0
  265. package/dist/esm/runtime/utils/resolveOwnerFields.mjs.map +1 -0
  266. package/dist/esm/runtime/utils/resolvePKFields.d.ts +13 -0
  267. package/dist/esm/runtime/utils/resolvePKFields.mjs +14 -0
  268. package/dist/esm/runtime/utils/resolvePKFields.mjs.map +1 -0
  269. package/{lib-esm/src → dist/esm}/util/Brand.d.ts +0 -1
  270. package/dist/esm/util/Brand.mjs +30 -0
  271. package/dist/esm/util/Brand.mjs.map +1 -0
  272. package/{lib-esm/src → dist/esm}/util/IndexLimit.d.ts +0 -1
  273. package/dist/esm/util/IndexLimit.mjs +2 -0
  274. package/dist/esm/util/IndexLimit.mjs.map +1 -0
  275. package/{lib-esm/src → dist/esm}/util/SpreadTuple.d.ts +0 -1
  276. package/dist/esm/util/SpreadTuple.mjs +2 -0
  277. package/dist/esm/util/SpreadTuple.mjs.map +1 -0
  278. package/{lib-esm/src → dist/esm}/util/index.d.ts +0 -1
  279. package/dist/esm/util/index.mjs +2 -0
  280. package/dist/esm/util/index.mjs.map +1 -0
  281. package/dist/meta/cjs.tsbuildinfo +1 -0
  282. package/internals/package.json +7 -5
  283. package/package.json +31 -14
  284. package/runtime/package.json +8 -0
  285. package/src/Authorization.ts +684 -0
  286. package/src/ClientSchema.ts +118 -0
  287. package/src/CombineSchema.ts +58 -0
  288. package/src/CustomOperation.ts +286 -0
  289. package/src/CustomType.ts +67 -0
  290. package/src/EnumType.ts +36 -0
  291. package/src/Handler.ts +127 -0
  292. package/src/MappedTypes/CustomOperations.ts +256 -0
  293. package/src/MappedTypes/ExtractNonModelTypes.ts +154 -0
  294. package/src/MappedTypes/ImplicitFieldInjector.ts +69 -0
  295. package/src/MappedTypes/MapSecondaryIndexes.ts +100 -0
  296. package/src/MappedTypes/ModelMetadata.ts +87 -0
  297. package/src/MappedTypes/ResolveFieldProperties.ts +254 -0
  298. package/src/MappedTypes/ResolveSchema.ts +148 -0
  299. package/src/ModelField.ts +304 -0
  300. package/src/ModelIndex.ts +91 -0
  301. package/src/ModelRelationalField.ts +263 -0
  302. package/src/ModelSchema.ts +437 -0
  303. package/src/ModelType.ts +345 -0
  304. package/src/RefType.ts +139 -0
  305. package/src/SchemaProcessor.ts +1516 -0
  306. package/src/a.ts +58 -0
  307. package/src/index.ts +6 -0
  308. package/src/internals/index.ts +2 -0
  309. package/src/runtime/addSchemaToClient.ts +45 -0
  310. package/src/runtime/addSchemaToClientWithInstance.ts +46 -0
  311. package/src/runtime/bridge-types.ts +382 -0
  312. package/src/runtime/client/index.ts +923 -0
  313. package/src/runtime/client/index.v3.ts +52 -0
  314. package/src/runtime/index.ts +7 -0
  315. package/src/runtime/index.v3.ts +7 -0
  316. package/src/runtime/internals/APIClient.ts +1082 -0
  317. package/src/runtime/internals/clientUtils.ts +37 -0
  318. package/src/runtime/internals/generateCustomOperationsProperty.ts +116 -0
  319. package/src/runtime/internals/index.ts +12 -0
  320. package/src/runtime/internals/operations/custom.ts +497 -0
  321. package/src/runtime/internals/operations/get.ts +150 -0
  322. package/src/runtime/internals/operations/indexQuery.ts +178 -0
  323. package/src/runtime/internals/operations/list.ts +143 -0
  324. package/src/runtime/internals/operations/observeQuery.ts +146 -0
  325. package/src/runtime/internals/operations/subscription.ts +78 -0
  326. package/src/runtime/internals/server/generateModelsProperty.ts +94 -0
  327. package/src/runtime/internals/server/index.ts +4 -0
  328. package/src/runtime/internals/utils/clientProperties/generateEnumsProperty.ts +34 -0
  329. package/src/runtime/internals/utils/clientProperties/generateModelsProperty.ts +88 -0
  330. package/src/runtime/internals/utils/runtimeTypeGuards/isApiGraphQLProviderConfig.ts +10 -0
  331. package/src/runtime/internals/utils/runtimeTypeGuards/isConfigureEventWithResourceConfig.ts +13 -0
  332. package/src/runtime/internals/utils/runtimeTypeGuards/isGraphQLResponseWithErrors.ts +15 -0
  333. package/src/runtime/utils/findIndexByFields.ts +31 -0
  334. package/src/runtime/utils/index.ts +5 -0
  335. package/src/runtime/utils/resolveOwnerFields.ts +77 -0
  336. package/src/runtime/utils/resolvePKFields.ts +23 -0
  337. package/src/util/Brand.ts +45 -0
  338. package/src/util/IndexLimit.ts +12 -0
  339. package/src/util/SpreadTuple.ts +10 -0
  340. package/src/util/index.ts +3 -0
  341. package/lib-esm/index.d.ts +0 -5
  342. package/lib-esm/index.d.ts.map +0 -1
  343. package/lib-esm/index.js +0 -28
  344. package/lib-esm/src/Authorization.d.ts.map +0 -1
  345. package/lib-esm/src/ClientSchema.d.ts.map +0 -1
  346. package/lib-esm/src/CombineSchema.d.ts.map +0 -1
  347. package/lib-esm/src/CustomOperation.d.ts.map +0 -1
  348. package/lib-esm/src/CustomType.d.ts.map +0 -1
  349. package/lib-esm/src/EnumType.d.ts.map +0 -1
  350. package/lib-esm/src/Handler.d.ts.map +0 -1
  351. package/lib-esm/src/MappedTypes/CustomOperations.d.ts.map +0 -1
  352. package/lib-esm/src/MappedTypes/ExtractNonModelTypes.d.ts.map +0 -1
  353. package/lib-esm/src/MappedTypes/ExtractNonModelTypes.js +0 -2
  354. package/lib-esm/src/MappedTypes/ImplicitFieldInjector.d.ts.map +0 -1
  355. package/lib-esm/src/MappedTypes/ImplicitFieldInjector.js +0 -2
  356. package/lib-esm/src/MappedTypes/MapSecondaryIndexes.d.ts.map +0 -1
  357. package/lib-esm/src/MappedTypes/ModelMetadata.d.ts.map +0 -1
  358. package/lib-esm/src/MappedTypes/ResolveFieldProperties.d.ts.map +0 -1
  359. package/lib-esm/src/MappedTypes/ResolveFieldProperties.js +0 -2
  360. package/lib-esm/src/MappedTypes/ResolveSchema.d.ts.map +0 -1
  361. package/lib-esm/src/ModelField.d.ts.map +0 -1
  362. package/lib-esm/src/ModelIndex.d.ts.map +0 -1
  363. package/lib-esm/src/ModelRelationalField.d.ts.map +0 -1
  364. package/lib-esm/src/ModelSchema.d.ts.map +0 -1
  365. package/lib-esm/src/ModelType.d.ts.map +0 -1
  366. package/lib-esm/src/RefType.d.ts.map +0 -1
  367. package/lib-esm/src/SchemaProcessor.d.ts.map +0 -1
  368. package/lib-esm/src/index.d.ts.map +0 -1
  369. package/lib-esm/src/internals/index.d.ts +0 -2
  370. package/lib-esm/src/internals/index.d.ts.map +0 -1
  371. package/lib-esm/src/util/Brand.d.ts.map +0 -1
  372. package/lib-esm/src/util/IndexLimit.d.ts.map +0 -1
  373. package/lib-esm/src/util/SpreadTuple.d.ts.map +0 -1
  374. package/lib-esm/src/util/index.d.ts.map +0 -1
  375. package/lib-esm/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,437 @@
1
+ import type {
2
+ DerivedApiDefinition,
3
+ SetTypeSubArg,
4
+ SchemaConfiguration,
5
+ DataSourceConfiguration,
6
+ DatasourceEngine,
7
+ UnionToIntersection,
8
+ } from '@aws-amplify/data-schema-types';
9
+ import {
10
+ type ModelType,
11
+ type ModelTypeParamShape,
12
+ type InternalModel,
13
+ isSchemaModelType,
14
+ SchemaModelType,
15
+ AddRelationshipFieldsToModelTypeFields,
16
+ } from './ModelType';
17
+ import type { EnumType, EnumTypeParamShape } from './EnumType';
18
+ import type { CustomType, CustomTypeParamShape } from './CustomType';
19
+ import type {
20
+ CustomOperation,
21
+ CustomOperationParamShape,
22
+ InternalCustom,
23
+ MutationCustomOperation,
24
+ QueryCustomOperation,
25
+ SubscriptionCustomOperation,
26
+ } from './CustomOperation';
27
+ import { processSchema } from './SchemaProcessor';
28
+ import { AllowModifier, SchemaAuthorization, allow } from './Authorization';
29
+ import { Brand, brand } from './util';
30
+ import {
31
+ ModelRelationalField,
32
+ ModelRelationalFieldParamShape,
33
+ } from './ModelRelationalField';
34
+
35
+ export const rdsSchemaBrandName = 'RDSSchema';
36
+ export const rdsSchemaBrand = brand(rdsSchemaBrandName);
37
+ export type RDSSchemaBrand = Brand<typeof rdsSchemaBrandName>;
38
+
39
+ export const ddbSchemaBrandName = 'DDBSchema';
40
+ const ddbSchemaBrand = brand(ddbSchemaBrandName);
41
+ export type DDBSchemaBrand = Brand<typeof ddbSchemaBrandName>;
42
+
43
+ type SchemaContent =
44
+ | ModelType<ModelTypeParamShape, any>
45
+ | CustomType<CustomTypeParamShape>
46
+ | EnumType<EnumTypeParamShape>
47
+ | CustomOperation<CustomOperationParamShape, any>;
48
+
49
+ type ModelSchemaContents = Record<string, SchemaContent>;
50
+ type InternalSchemaModels = Record<
51
+ string,
52
+ InternalModel | EnumType<any> | CustomType<any> | InternalCustom
53
+ >;
54
+
55
+ export type ModelSchemaParamShape = {
56
+ types: ModelSchemaContents;
57
+ authorization: SchemaAuthorization<any, any, any>[];
58
+ configuration: SchemaConfiguration<any, any>;
59
+ };
60
+
61
+ export type RDSModelSchemaParamShape = ModelSchemaParamShape;
62
+
63
+ export type InternalSchema = {
64
+ data: {
65
+ types: InternalSchemaModels;
66
+ authorization: SchemaAuthorization<any, any, any>[];
67
+ configuration: SchemaConfiguration<any, any>;
68
+ };
69
+ };
70
+
71
+ export type BaseSchema<
72
+ T extends ModelSchemaParamShape,
73
+ IsRDS extends boolean = false,
74
+ > = {
75
+ data: T;
76
+ models: {
77
+ [TypeKey in keyof T['types']]: T['types'][TypeKey] extends ModelType<
78
+ ModelTypeParamShape,
79
+ never | 'identifier'
80
+ >
81
+ ? SchemaModelType<T['types'][TypeKey], TypeKey & string, IsRDS>
82
+ : never;
83
+ };
84
+ transform: () => DerivedApiDefinition;
85
+ };
86
+
87
+ export type GenericModelSchema<T extends ModelSchemaParamShape> =
88
+ BaseSchema<T> & Brand<typeof rdsSchemaBrandName | typeof ddbSchemaBrandName>;
89
+
90
+ export type ModelSchema<
91
+ T extends ModelSchemaParamShape,
92
+ UsedMethods extends 'authorization' | 'addRelationships' = never,
93
+ > = Omit<
94
+ {
95
+ authorization: <AuthRules extends SchemaAuthorization<any, any, any>>(
96
+ callback: (allow: AllowModifier) => AuthRules | AuthRules[],
97
+ ) => ModelSchema<
98
+ SetTypeSubArg<T, 'authorization', AuthRules[]>,
99
+ UsedMethods | 'authorization'
100
+ >;
101
+ },
102
+ UsedMethods
103
+ > &
104
+ BaseSchema<T> &
105
+ DDBSchemaBrand;
106
+
107
+ type RDSModelSchemaFunctions =
108
+ | 'addQueries'
109
+ | 'addMutations'
110
+ | 'addSubscriptions'
111
+ | 'authorization'
112
+ | 'relationships'
113
+ | 'setAuthorization'
114
+ | 'renameModelFields'
115
+ | 'renameModels';
116
+
117
+ export type RDSModelSchema<
118
+ T extends RDSModelSchemaParamShape,
119
+ UsedMethods extends RDSModelSchemaFunctions = never,
120
+ RelationshipTemplate extends Record<
121
+ string,
122
+ ModelRelationalField<ModelRelationalFieldParamShape, string, any, any>
123
+ > = Record<
124
+ string,
125
+ ModelRelationalField<ModelRelationalFieldParamShape, string, any, any>
126
+ >,
127
+ > = Omit<
128
+ {
129
+ addQueries: <Queries extends Record<string, QueryCustomOperation>>(
130
+ types: Queries,
131
+ ) => RDSModelSchema<
132
+ SetTypeSubArg<T, 'types', T['types'] & Queries>,
133
+ UsedMethods | 'addQueries'
134
+ >;
135
+ addMutations: <Mutations extends Record<string, MutationCustomOperation>>(
136
+ types: Mutations,
137
+ ) => RDSModelSchema<
138
+ SetTypeSubArg<T, 'types', T['types'] & Mutations>,
139
+ UsedMethods | 'addMutations'
140
+ >;
141
+ addSubscriptions: <
142
+ Subscriptions extends Record<string, SubscriptionCustomOperation>,
143
+ >(
144
+ types: Subscriptions,
145
+ ) => RDSModelSchema<
146
+ SetTypeSubArg<T, 'types', T['types'] & Subscriptions>,
147
+ UsedMethods | 'addSubscriptions'
148
+ >;
149
+ // TODO: hide this, since SQL schema auth is configured via .setAuthorization?
150
+ authorization: <AuthRules extends SchemaAuthorization<any, any, any>>(
151
+ callback: (allow: AllowModifier) => AuthRules | AuthRules[],
152
+ ) => RDSModelSchema<
153
+ SetTypeSubArg<T, 'authorization', AuthRules[]>,
154
+ UsedMethods | 'authorization'
155
+ >;
156
+ setAuthorization: (
157
+ callback: (
158
+ models: BaseSchema<T, true>['models'],
159
+ schema: RDSModelSchema<T, UsedMethods | 'setAuthorization'>,
160
+ ) => void,
161
+ ) => RDSModelSchema<T>;
162
+ relationships: <
163
+ Relationships extends ReadonlyArray<
164
+ Partial<Record<keyof T['types'], RelationshipTemplate>>
165
+ >,
166
+ >(
167
+ callback: (models: BaseSchema<T, true>['models']) => Relationships,
168
+ ) => RDSModelSchema<
169
+ UnionToIntersection<Relationships[number]> extends infer RelationshipsDefs
170
+ ? RelationshipsDefs extends Record<string, RelationshipTemplate>
171
+ ? SetTypeSubArg<
172
+ T,
173
+ 'types',
174
+ {
175
+ [ModelName in keyof T['types']]: ModelName extends keyof RelationshipsDefs
176
+ ? AddRelationshipFieldsToModelTypeFields<
177
+ T['types'][ModelName],
178
+ RelationshipsDefs[ModelName]
179
+ >
180
+ : T['types'][ModelName];
181
+ }
182
+ >
183
+ : T
184
+ : T,
185
+ UsedMethods | 'relationships'
186
+ >;
187
+ renameModels: <
188
+ NewName extends string,
189
+ CurName extends string = keyof BaseSchema<T>['models'] & string,
190
+ const ChangeLog extends readonly [CurName, NewName][] = [],
191
+ >(
192
+ callback: () => ChangeLog,
193
+ ) => RDSModelSchema<
194
+ SetTypeSubArg<T, 'types', RenameModelArr<ChangeLog, T['types']>>,
195
+ UsedMethods | 'renameModels'
196
+ >;
197
+ },
198
+ UsedMethods
199
+ > &
200
+ BaseSchema<T, true> &
201
+ RDSSchemaBrand;
202
+
203
+ type RenameModel<
204
+ CurName extends string,
205
+ NewName extends string,
206
+ Types extends ModelSchemaContents,
207
+ > = {
208
+ [Type in keyof Types as Type extends CurName ? NewName : Type]: Types[Type];
209
+ };
210
+
211
+ type RenameModelArr<
212
+ ChangeLog extends readonly [string, string][],
213
+ Types extends ModelSchemaContents,
214
+ > = ChangeLog extends readonly [
215
+ infer CurPair extends [string, string],
216
+ ...infer Rest extends readonly [string, string][],
217
+ ]
218
+ ? RenameModelArr<Rest, RenameModel<CurPair[0], CurPair[1], Types>>
219
+ : Types;
220
+
221
+ /**
222
+ * Amplify API Next Model Schema shape
223
+ */
224
+ export type ModelSchemaType = ModelSchema<ModelSchemaParamShape>;
225
+
226
+ /**
227
+ * Filter the schema types down to only include the ModelTypes as SchemaModelType
228
+ *
229
+ * @param schemaContents The object containing all SchemaContent for this schema
230
+ * @returns Only the schemaContents that are ModelTypes, coerced to the SchemaModelType surface
231
+ */
232
+ const filterSchemaModelTypes = (
233
+ schemaContents: ModelSchemaContents,
234
+ ): Record<string, SchemaModelType> => {
235
+ const modelTypes: Record<string, SchemaModelType> = {};
236
+
237
+ if (schemaContents) {
238
+ Object.entries(schemaContents).forEach(([key, content]) => {
239
+ if (isSchemaModelType(content)) {
240
+ modelTypes[key] = content;
241
+ }
242
+ });
243
+ }
244
+
245
+ return modelTypes;
246
+ };
247
+
248
+ /**
249
+ * Model Schema type guard
250
+ * @param schema - api-next ModelSchema or string
251
+ * @returns true if the given value is a ModelSchema
252
+ */
253
+ export const isModelSchema = (
254
+ schema: string | ModelSchemaType,
255
+ ): schema is ModelSchemaType => {
256
+ return typeof schema === 'object' && schema.data !== undefined;
257
+ };
258
+
259
+ function _rdsSchema<
260
+ T extends RDSModelSchemaParamShape,
261
+ DSC extends SchemaConfiguration<any, any>,
262
+ >(types: T['types'], config: DSC): RDSModelSchema<T> {
263
+ const data: RDSModelSchemaParamShape = {
264
+ types,
265
+ authorization: [],
266
+ configuration: config,
267
+ };
268
+ const models = filterSchemaModelTypes(data.types) as any;
269
+ return {
270
+ data,
271
+ models,
272
+ transform(): DerivedApiDefinition {
273
+ const internalSchema: InternalSchema = { data } as InternalSchema;
274
+
275
+ return processSchema({ schema: internalSchema });
276
+ },
277
+ authorization(callback): any {
278
+ const rules = callback(allow);
279
+ this.data.authorization = Array.isArray(rules) ? rules : [rules];
280
+ const { authorization: _, ...rest } = this;
281
+ return rest;
282
+ },
283
+ addQueries(types: Record<string, QueryCustomOperation>): any {
284
+ this.data.types = { ...this.data.types, ...types };
285
+ const { addQueries: _, ...rest } = this;
286
+ return rest;
287
+ },
288
+ addMutations(types: Record<string, MutationCustomOperation>): any {
289
+ this.data.types = { ...this.data.types, ...types };
290
+ const { addMutations: _, ...rest } = this;
291
+ return rest;
292
+ },
293
+ addSubscriptions(types: Record<string, SubscriptionCustomOperation>): any {
294
+ this.data.types = { ...this.data.types, ...types };
295
+ const { addSubscriptions: _, ...rest } = this;
296
+ return rest;
297
+ },
298
+ setAuthorization(callback) {
299
+ callback(models, this);
300
+ const { setAuthorization: _, ...rest } = this;
301
+ return rest;
302
+ },
303
+ relationships(callback): any {
304
+ const { relationships: _, ...rest } = this;
305
+ // The relationships are added via `models.<Model>.addRelationships`
306
+ // modifiers that's being called within the callback. They are modifying
307
+ // by references on each model, so there is not anything else to be done
308
+ // here.
309
+ callback(models);
310
+ return rest;
311
+ },
312
+ renameModels(callback): any {
313
+ const { renameModels: _, ...rest } = this;
314
+ // returns an array of tuples [curName, newName]
315
+ const changeLog = callback();
316
+
317
+ changeLog.forEach(([curName, newName]) => {
318
+ const currentType = data.types[curName];
319
+
320
+ if (currentType === undefined) {
321
+ throw new Error(
322
+ `Invalid renameModels call. ${curName} is not defined in the schema`,
323
+ );
324
+ }
325
+
326
+ if (typeof newName !== 'string' || newName.length < 1) {
327
+ throw new Error(
328
+ `Invalid renameModels call. New name must be a non-empty string. Received: "${newName}"`,
329
+ );
330
+ }
331
+
332
+ models[newName] = currentType;
333
+ data.types[newName] = currentType;
334
+
335
+ delete models[curName];
336
+ delete data.types[curName];
337
+ });
338
+
339
+ return rest;
340
+ },
341
+ ...rdsSchemaBrand,
342
+ } as RDSModelSchema<T>;
343
+ }
344
+
345
+ function _ddbSchema<
346
+ T extends ModelSchemaParamShape,
347
+ DSC extends SchemaConfiguration<any, any>,
348
+ >(types: T['types'], config: DSC) {
349
+ const data: ModelSchemaParamShape = {
350
+ types,
351
+ authorization: [],
352
+ configuration: config,
353
+ };
354
+ return {
355
+ data,
356
+ transform(): DerivedApiDefinition {
357
+ const internalSchema = { data };
358
+
359
+ return processSchema({ schema: internalSchema });
360
+ },
361
+ authorization(callback): any {
362
+ const rules = callback(allow);
363
+ this.data.authorization = Array.isArray(rules) ? rules : [rules];
364
+ const { authorization: _, ...rest } = this;
365
+ return rest;
366
+ },
367
+ models: filterSchemaModelTypes(data.types),
368
+ ...ddbSchemaBrand,
369
+ } as ModelSchema<T>;
370
+ }
371
+
372
+ type SchemaReturnType<
373
+ DE extends DatasourceEngine,
374
+ Types extends ModelSchemaContents,
375
+ > = DE extends 'dynamodb'
376
+ ? ModelSchema<{ types: Types; authorization: []; configuration: any }>
377
+ : RDSModelSchema<{
378
+ types: Types;
379
+ authorization: [];
380
+ configuration: any;
381
+ }>;
382
+
383
+ function bindConfigToSchema<DE extends DatasourceEngine>(
384
+ config: SchemaConfiguration<DE, DataSourceConfiguration<DE>>,
385
+ ): <Types extends ModelSchemaContents>(
386
+ types: Types,
387
+ ) => SchemaReturnType<DE, Types> {
388
+ return (types) => {
389
+ return (
390
+ config.database.engine === 'dynamodb'
391
+ ? _ddbSchema(types, config)
392
+ : _rdsSchema(types, config)
393
+ ) as SchemaReturnType<DE, any>;
394
+ };
395
+ }
396
+
397
+ /**
398
+ * The API and data model definition for Amplify Data. Pass in `{ <NAME>: a.model(...) }` to create a database table
399
+ * and exposes CRUDL operations via an API.
400
+ * @param types The API and data model definition
401
+ * @returns An API and data model definition to be deployed with Amplify (Gen 2) experience (`processSchema(...)`)
402
+ * or with the Amplify Data CDK construct (`@aws-amplify/data-construct`)
403
+ */
404
+ export const schema = bindConfigToSchema({ database: { engine: 'dynamodb' } });
405
+
406
+ /**
407
+ * Configure wraps schema definition with non-default config to allow usecases other than
408
+ * the default DynamoDB use-case.
409
+ *
410
+ * @param config The SchemaConfig augments the schema with content like the database type
411
+ * @returns
412
+ */
413
+ export function configure<DE extends DatasourceEngine>(
414
+ config: SchemaConfiguration<DE, DataSourceConfiguration<DE>>,
415
+ ): {
416
+ schema: <Types extends ModelSchemaContents>(
417
+ types: Types,
418
+ ) => SchemaReturnType<DE, Types>;
419
+ } {
420
+ return {
421
+ schema: bindConfigToSchema(config),
422
+ };
423
+ }
424
+
425
+ export function isCustomPathData(obj: any): obj is CustomPathData {
426
+ return (
427
+ 'stack' in obj &&
428
+ (typeof obj.stack === 'undefined' || typeof obj.stack === 'string') &&
429
+ 'entry' in obj &&
430
+ typeof obj.entry === 'string'
431
+ );
432
+ }
433
+
434
+ export type CustomPathData = {
435
+ stack: string | undefined;
436
+ entry: string;
437
+ };