@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.
- package/{lib-esm/src → dist/cjs}/Authorization.js +149 -31
- package/dist/cjs/Authorization.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/ClientSchema.js +3 -1
- package/dist/cjs/ClientSchema.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/CombineSchema.js +3 -2
- package/dist/cjs/CombineSchema.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/CustomOperation.js +7 -3
- package/dist/cjs/CustomOperation.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/CustomType.js +3 -1
- package/dist/cjs/CustomType.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/EnumType.js +3 -1
- package/dist/cjs/EnumType.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/Handler.js +3 -1
- package/dist/cjs/Handler.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/MappedTypes/CustomOperations.js +3 -1
- package/dist/cjs/MappedTypes/CustomOperations.js.map +1 -0
- package/dist/cjs/MappedTypes/ExtractNonModelTypes.js +4 -0
- package/dist/cjs/MappedTypes/ExtractNonModelTypes.js.map +1 -0
- package/dist/cjs/MappedTypes/ImplicitFieldInjector.js +4 -0
- package/dist/cjs/MappedTypes/ImplicitFieldInjector.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/MappedTypes/MapSecondaryIndexes.js +3 -1
- package/dist/cjs/MappedTypes/MapSecondaryIndexes.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/MappedTypes/ModelMetadata.js +3 -1
- package/dist/cjs/MappedTypes/ModelMetadata.js.map +1 -0
- package/dist/cjs/MappedTypes/ResolveFieldProperties.js +4 -0
- package/dist/cjs/MappedTypes/ResolveFieldProperties.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/MappedTypes/ResolveSchema.js +3 -1
- package/dist/cjs/MappedTypes/ResolveSchema.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/ModelField.js +8 -3
- package/dist/cjs/ModelField.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/ModelIndex.js +3 -1
- package/dist/cjs/ModelIndex.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/ModelRelationalField.js +7 -10
- package/dist/cjs/ModelRelationalField.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/ModelSchema.js +10 -5
- package/dist/cjs/ModelSchema.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/ModelType.js +8 -3
- package/dist/cjs/ModelType.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/RefType.js +8 -5
- package/dist/cjs/RefType.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/SchemaProcessor.js +15 -61
- package/dist/cjs/SchemaProcessor.js.map +1 -0
- package/{lib-esm/src/index.js → dist/cjs/a.js} +4 -4
- package/dist/cjs/a.js.map +1 -0
- package/dist/cjs/index.js +8 -0
- package/dist/cjs/index.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/internals/index.js +3 -1
- package/dist/cjs/internals/index.js.map +1 -0
- package/dist/cjs/runtime/addSchemaToClient.js +17 -0
- package/dist/cjs/runtime/addSchemaToClient.js.map +1 -0
- package/dist/cjs/runtime/addSchemaToClientWithInstance.js +22 -0
- package/dist/cjs/runtime/addSchemaToClientWithInstance.js.map +1 -0
- package/dist/cjs/runtime/bridge-types.js +15 -0
- package/dist/cjs/runtime/bridge-types.js.map +1 -0
- package/dist/cjs/runtime/client/index.js +17 -0
- package/dist/cjs/runtime/client/index.js.map +1 -0
- package/dist/cjs/runtime/client/index.v3.js +7 -0
- package/dist/cjs/runtime/client/index.v3.js.map +1 -0
- package/dist/cjs/runtime/index.js +13 -0
- package/dist/cjs/runtime/index.js.map +1 -0
- package/dist/cjs/runtime/index.v3.js +13 -0
- package/dist/cjs/runtime/index.v3.js.map +1 -0
- package/dist/cjs/runtime/internals/APIClient.js +740 -0
- package/dist/cjs/runtime/internals/APIClient.js.map +1 -0
- package/dist/cjs/runtime/internals/clientUtils.js +29 -0
- package/dist/cjs/runtime/internals/clientUtils.js.map +1 -0
- package/dist/cjs/runtime/internals/generateCustomOperationsProperty.js +49 -0
- package/dist/cjs/runtime/internals/generateCustomOperationsProperty.js.map +1 -0
- package/dist/cjs/runtime/internals/index.js +21 -0
- package/dist/cjs/runtime/internals/index.js.map +1 -0
- package/dist/cjs/runtime/internals/operations/custom.js +356 -0
- package/dist/cjs/runtime/internals/operations/custom.js.map +1 -0
- package/dist/cjs/runtime/internals/operations/get.js +62 -0
- package/dist/cjs/runtime/internals/operations/get.js.map +1 -0
- package/dist/cjs/runtime/internals/operations/indexQuery.js +75 -0
- package/dist/cjs/runtime/internals/operations/indexQuery.js.map +1 -0
- package/dist/cjs/runtime/internals/operations/list.js +74 -0
- package/dist/cjs/runtime/internals/operations/list.js.map +1 -0
- package/dist/cjs/runtime/internals/operations/observeQuery.js +121 -0
- package/dist/cjs/runtime/internals/operations/observeQuery.js.map +1 -0
- package/dist/cjs/runtime/internals/operations/subscription.js +31 -0
- package/dist/cjs/runtime/internals/operations/subscription.js.map +1 -0
- package/dist/cjs/runtime/internals/server/generateModelsProperty.js +53 -0
- package/dist/cjs/runtime/internals/server/generateModelsProperty.js.map +1 -0
- package/dist/cjs/runtime/internals/server/index.js +8 -0
- package/dist/cjs/runtime/internals/server/index.js.map +1 -0
- package/dist/cjs/runtime/internals/utils/clientProperties/generateEnumsProperty.js +21 -0
- package/dist/cjs/runtime/internals/utils/clientProperties/generateEnumsProperty.js.map +1 -0
- package/dist/cjs/runtime/internals/utils/clientProperties/generateModelsProperty.js +45 -0
- package/dist/cjs/runtime/internals/utils/clientProperties/generateModelsProperty.js.map +1 -0
- package/dist/cjs/runtime/internals/utils/runtimeTypeGuards/isApiGraphQLProviderConfig.js +11 -0
- package/dist/cjs/runtime/internals/utils/runtimeTypeGuards/isApiGraphQLProviderConfig.js.map +1 -0
- package/dist/cjs/runtime/internals/utils/runtimeTypeGuards/isConfigureEventWithResourceConfig.js +11 -0
- package/dist/cjs/runtime/internals/utils/runtimeTypeGuards/isConfigureEventWithResourceConfig.js.map +1 -0
- package/dist/cjs/runtime/internals/utils/runtimeTypeGuards/isGraphQLResponseWithErrors.js +15 -0
- package/dist/cjs/runtime/internals/utils/runtimeTypeGuards/isGraphQLResponseWithErrors.js.map +1 -0
- package/dist/cjs/runtime/utils/findIndexByFields.js +25 -0
- package/dist/cjs/runtime/utils/findIndexByFields.js.map +1 -0
- package/dist/cjs/runtime/utils/index.js +11 -0
- package/dist/cjs/runtime/utils/index.js.map +1 -0
- package/dist/cjs/runtime/utils/resolveOwnerFields.js +48 -0
- package/dist/cjs/runtime/utils/resolveOwnerFields.js.map +1 -0
- package/dist/cjs/runtime/utils/resolvePKFields.js +17 -0
- package/dist/cjs/runtime/utils/resolvePKFields.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/util/Brand.js +3 -1
- package/dist/cjs/util/Brand.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/util/IndexLimit.js +3 -1
- package/dist/cjs/util/IndexLimit.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/util/SpreadTuple.js +3 -1
- package/dist/cjs/util/SpreadTuple.js.map +1 -0
- package/{lib-esm/src → dist/cjs}/util/index.js +3 -1
- package/dist/cjs/util/index.js.map +1 -0
- package/{lib-esm/src → dist/esm}/Authorization.d.ts +105 -31
- package/dist/esm/Authorization.mjs +446 -0
- package/dist/esm/Authorization.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/ClientSchema.d.ts +1 -2
- package/dist/esm/ClientSchema.mjs +2 -0
- package/dist/esm/ClientSchema.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/CombineSchema.d.ts +0 -1
- package/dist/esm/CombineSchema.mjs +39 -0
- package/dist/esm/CombineSchema.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/CustomOperation.d.ts +2 -3
- package/dist/esm/CustomOperation.mjs +67 -0
- package/dist/esm/CustomOperation.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/CustomType.d.ts +0 -1
- package/dist/esm/CustomType.mjs +13 -0
- package/dist/esm/CustomType.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/EnumType.d.ts +0 -1
- package/dist/esm/EnumType.mjs +16 -0
- package/dist/esm/EnumType.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/Handler.d.ts +0 -1
- package/dist/esm/Handler.mjs +48 -0
- package/dist/esm/Handler.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/MappedTypes/CustomOperations.d.ts +0 -1
- package/dist/esm/MappedTypes/CustomOperations.mjs +2 -0
- package/dist/esm/MappedTypes/CustomOperations.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/MappedTypes/ExtractNonModelTypes.d.ts +0 -1
- package/dist/esm/MappedTypes/ExtractNonModelTypes.mjs +2 -0
- package/dist/esm/MappedTypes/ExtractNonModelTypes.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/MappedTypes/ImplicitFieldInjector.d.ts +0 -1
- package/dist/esm/MappedTypes/ImplicitFieldInjector.mjs +2 -0
- package/dist/esm/MappedTypes/ImplicitFieldInjector.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/MappedTypes/MapSecondaryIndexes.d.ts +0 -1
- package/dist/esm/MappedTypes/MapSecondaryIndexes.mjs +2 -0
- package/dist/esm/MappedTypes/MapSecondaryIndexes.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/MappedTypes/ModelMetadata.d.ts +0 -1
- package/dist/esm/MappedTypes/ModelMetadata.mjs +2 -0
- package/dist/esm/MappedTypes/ModelMetadata.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/MappedTypes/ResolveFieldProperties.d.ts +0 -1
- package/dist/esm/MappedTypes/ResolveFieldProperties.mjs +2 -0
- package/dist/esm/MappedTypes/ResolveFieldProperties.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/MappedTypes/ResolveSchema.d.ts +0 -1
- package/dist/esm/MappedTypes/ResolveSchema.mjs +2 -0
- package/dist/esm/MappedTypes/ResolveSchema.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/ModelField.d.ts +2 -3
- package/dist/esm/ModelField.mjs +199 -0
- package/dist/esm/ModelField.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/ModelIndex.d.ts +0 -1
- package/dist/esm/ModelIndex.mjs +33 -0
- package/dist/esm/ModelIndex.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/ModelRelationalField.d.ts +3 -4
- package/dist/esm/ModelRelationalField.mjs +88 -0
- package/dist/esm/ModelRelationalField.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/ModelSchema.d.ts +3 -4
- package/dist/esm/ModelSchema.mjs +163 -0
- package/dist/esm/ModelSchema.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/ModelType.d.ts +2 -3
- package/dist/esm/ModelType.mjs +66 -0
- package/dist/esm/ModelType.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/RefType.d.ts +2 -3
- package/dist/esm/RefType.mjs +48 -0
- package/dist/esm/RefType.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/SchemaProcessor.d.ts +0 -1
- package/dist/esm/SchemaProcessor.mjs +926 -0
- package/dist/esm/SchemaProcessor.mjs.map +1 -0
- package/{lib-esm/src/index.d.ts → dist/esm/a.d.ts} +1 -3
- package/dist/esm/a.mjs +11 -0
- package/dist/esm/a.mjs.map +1 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.mjs +3 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/internals/index.d.ts +2 -0
- package/dist/esm/internals/index.mjs +2 -0
- package/dist/esm/internals/index.mjs.map +1 -0
- package/dist/esm/runtime/addSchemaToClient.d.ts +3 -0
- package/dist/esm/runtime/addSchemaToClient.mjs +17 -0
- package/dist/esm/runtime/addSchemaToClient.mjs.map +1 -0
- package/dist/esm/runtime/addSchemaToClientWithInstance.d.ts +3 -0
- package/dist/esm/runtime/addSchemaToClientWithInstance.mjs +22 -0
- package/dist/esm/runtime/addSchemaToClientWithInstance.mjs.map +1 -0
- package/dist/esm/runtime/bridge-types.d.ts +281 -0
- package/dist/esm/runtime/bridge-types.mjs +13 -0
- package/dist/esm/runtime/bridge-types.mjs.map +1 -0
- package/dist/esm/runtime/client/index.d.ts +571 -0
- package/dist/esm/runtime/client/index.mjs +2 -0
- package/dist/esm/runtime/client/index.mjs.map +1 -0
- package/dist/esm/runtime/client/index.v3.d.ts +15 -0
- package/dist/esm/runtime/client/index.v3.mjs +2 -0
- package/dist/esm/runtime/client/index.v3.mjs.map +1 -0
- package/dist/esm/runtime/index.d.ts +4 -0
- package/dist/esm/runtime/index.mjs +4 -0
- package/dist/esm/runtime/index.mjs.map +1 -0
- package/dist/esm/runtime/index.v3.d.ts +4 -0
- package/dist/esm/runtime/index.v3.mjs +4 -0
- package/dist/esm/runtime/index.v3.mjs.map +1 -0
- package/dist/esm/runtime/internals/APIClient.d.ts +125 -0
- package/dist/esm/runtime/internals/APIClient.mjs +728 -0
- package/dist/esm/runtime/internals/APIClient.mjs.map +1 -0
- package/dist/esm/runtime/internals/clientUtils.d.ts +6 -0
- package/dist/esm/runtime/internals/clientUtils.mjs +26 -0
- package/dist/esm/runtime/internals/clientUtils.mjs.map +1 -0
- package/dist/esm/runtime/internals/generateCustomOperationsProperty.d.ts +8 -0
- package/dist/esm/runtime/internals/generateCustomOperationsProperty.mjs +44 -0
- package/dist/esm/runtime/internals/generateCustomOperationsProperty.mjs.map +1 -0
- package/dist/esm/runtime/internals/index.d.ts +6 -0
- package/dist/esm/runtime/internals/index.mjs +7 -0
- package/dist/esm/runtime/internals/index.mjs.map +1 -0
- package/dist/esm/runtime/internals/operations/custom.d.ts +61 -0
- package/dist/esm/runtime/internals/operations/custom.mjs +354 -0
- package/dist/esm/runtime/internals/operations/custom.mjs.map +1 -0
- package/dist/esm/runtime/internals/operations/get.d.ts +3 -0
- package/dist/esm/runtime/internals/operations/get.mjs +60 -0
- package/dist/esm/runtime/internals/operations/get.mjs.map +1 -0
- package/dist/esm/runtime/internals/operations/indexQuery.d.ts +7 -0
- package/dist/esm/runtime/internals/operations/indexQuery.mjs +73 -0
- package/dist/esm/runtime/internals/operations/indexQuery.mjs.map +1 -0
- package/dist/esm/runtime/internals/operations/list.d.ts +2 -0
- package/dist/esm/runtime/internals/operations/list.mjs +72 -0
- package/dist/esm/runtime/internals/operations/list.mjs.map +1 -0
- package/dist/esm/runtime/internals/operations/observeQuery.d.ts +3 -0
- package/dist/esm/runtime/internals/operations/observeQuery.mjs +120 -0
- package/dist/esm/runtime/internals/operations/observeQuery.mjs.map +1 -0
- package/dist/esm/runtime/internals/operations/subscription.d.ts +3 -0
- package/dist/esm/runtime/internals/operations/subscription.mjs +29 -0
- package/dist/esm/runtime/internals/operations/subscription.mjs.map +1 -0
- package/dist/esm/runtime/internals/server/generateModelsProperty.d.ts +3 -0
- package/dist/esm/runtime/internals/server/generateModelsProperty.mjs +51 -0
- package/dist/esm/runtime/internals/server/generateModelsProperty.mjs.map +1 -0
- package/dist/esm/runtime/internals/server/index.d.ts +1 -0
- package/dist/esm/runtime/internals/server/index.mjs +2 -0
- package/dist/esm/runtime/internals/server/index.mjs.map +1 -0
- package/dist/esm/runtime/internals/utils/clientProperties/generateEnumsProperty.d.ts +3 -0
- package/dist/esm/runtime/internals/utils/clientProperties/generateEnumsProperty.mjs +18 -0
- package/dist/esm/runtime/internals/utils/clientProperties/generateEnumsProperty.mjs.map +1 -0
- package/dist/esm/runtime/internals/utils/clientProperties/generateModelsProperty.d.ts +3 -0
- package/dist/esm/runtime/internals/utils/clientProperties/generateModelsProperty.mjs +43 -0
- package/dist/esm/runtime/internals/utils/clientProperties/generateModelsProperty.mjs.map +1 -0
- package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isApiGraphQLProviderConfig.d.ts +2 -0
- package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isApiGraphQLProviderConfig.mjs +8 -0
- package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isApiGraphQLProviderConfig.mjs.map +1 -0
- package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isConfigureEventWithResourceConfig.d.ts +8 -0
- package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isConfigureEventWithResourceConfig.mjs +8 -0
- package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isConfigureEventWithResourceConfig.mjs.map +1 -0
- package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isGraphQLResponseWithErrors.d.ts +2 -0
- package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isGraphQLResponseWithErrors.mjs +12 -0
- package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isGraphQLResponseWithErrors.mjs.map +1 -0
- package/dist/esm/runtime/utils/findIndexByFields.d.ts +9 -0
- package/dist/esm/runtime/utils/findIndexByFields.mjs +22 -0
- package/dist/esm/runtime/utils/findIndexByFields.mjs.map +1 -0
- package/dist/esm/runtime/utils/index.d.ts +2 -0
- package/dist/esm/runtime/utils/index.mjs +3 -0
- package/dist/esm/runtime/utils/index.mjs.map +1 -0
- package/dist/esm/runtime/utils/resolveOwnerFields.d.ts +12 -0
- package/dist/esm/runtime/utils/resolveOwnerFields.mjs +45 -0
- package/dist/esm/runtime/utils/resolveOwnerFields.mjs.map +1 -0
- package/dist/esm/runtime/utils/resolvePKFields.d.ts +13 -0
- package/dist/esm/runtime/utils/resolvePKFields.mjs +14 -0
- package/dist/esm/runtime/utils/resolvePKFields.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/util/Brand.d.ts +0 -1
- package/dist/esm/util/Brand.mjs +30 -0
- package/dist/esm/util/Brand.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/util/IndexLimit.d.ts +0 -1
- package/dist/esm/util/IndexLimit.mjs +2 -0
- package/dist/esm/util/IndexLimit.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/util/SpreadTuple.d.ts +0 -1
- package/dist/esm/util/SpreadTuple.mjs +2 -0
- package/dist/esm/util/SpreadTuple.mjs.map +1 -0
- package/{lib-esm/src → dist/esm}/util/index.d.ts +0 -1
- package/dist/esm/util/index.mjs +2 -0
- package/dist/esm/util/index.mjs.map +1 -0
- package/dist/meta/cjs.tsbuildinfo +1 -0
- package/internals/package.json +7 -5
- package/package.json +31 -14
- package/runtime/package.json +8 -0
- package/src/Authorization.ts +684 -0
- package/src/ClientSchema.ts +118 -0
- package/src/CombineSchema.ts +58 -0
- package/src/CustomOperation.ts +286 -0
- package/src/CustomType.ts +67 -0
- package/src/EnumType.ts +36 -0
- package/src/Handler.ts +127 -0
- package/src/MappedTypes/CustomOperations.ts +256 -0
- package/src/MappedTypes/ExtractNonModelTypes.ts +154 -0
- package/src/MappedTypes/ImplicitFieldInjector.ts +69 -0
- package/src/MappedTypes/MapSecondaryIndexes.ts +100 -0
- package/src/MappedTypes/ModelMetadata.ts +87 -0
- package/src/MappedTypes/ResolveFieldProperties.ts +254 -0
- package/src/MappedTypes/ResolveSchema.ts +148 -0
- package/src/ModelField.ts +304 -0
- package/src/ModelIndex.ts +91 -0
- package/src/ModelRelationalField.ts +263 -0
- package/src/ModelSchema.ts +437 -0
- package/src/ModelType.ts +345 -0
- package/src/RefType.ts +139 -0
- package/src/SchemaProcessor.ts +1516 -0
- package/src/a.ts +58 -0
- package/src/index.ts +6 -0
- package/src/internals/index.ts +2 -0
- package/src/runtime/addSchemaToClient.ts +45 -0
- package/src/runtime/addSchemaToClientWithInstance.ts +46 -0
- package/src/runtime/bridge-types.ts +382 -0
- package/src/runtime/client/index.ts +923 -0
- package/src/runtime/client/index.v3.ts +52 -0
- package/src/runtime/index.ts +7 -0
- package/src/runtime/index.v3.ts +7 -0
- package/src/runtime/internals/APIClient.ts +1082 -0
- package/src/runtime/internals/clientUtils.ts +37 -0
- package/src/runtime/internals/generateCustomOperationsProperty.ts +116 -0
- package/src/runtime/internals/index.ts +12 -0
- package/src/runtime/internals/operations/custom.ts +497 -0
- package/src/runtime/internals/operations/get.ts +150 -0
- package/src/runtime/internals/operations/indexQuery.ts +178 -0
- package/src/runtime/internals/operations/list.ts +143 -0
- package/src/runtime/internals/operations/observeQuery.ts +146 -0
- package/src/runtime/internals/operations/subscription.ts +78 -0
- package/src/runtime/internals/server/generateModelsProperty.ts +94 -0
- package/src/runtime/internals/server/index.ts +4 -0
- package/src/runtime/internals/utils/clientProperties/generateEnumsProperty.ts +34 -0
- package/src/runtime/internals/utils/clientProperties/generateModelsProperty.ts +88 -0
- package/src/runtime/internals/utils/runtimeTypeGuards/isApiGraphQLProviderConfig.ts +10 -0
- package/src/runtime/internals/utils/runtimeTypeGuards/isConfigureEventWithResourceConfig.ts +13 -0
- package/src/runtime/internals/utils/runtimeTypeGuards/isGraphQLResponseWithErrors.ts +15 -0
- package/src/runtime/utils/findIndexByFields.ts +31 -0
- package/src/runtime/utils/index.ts +5 -0
- package/src/runtime/utils/resolveOwnerFields.ts +77 -0
- package/src/runtime/utils/resolvePKFields.ts +23 -0
- package/src/util/Brand.ts +45 -0
- package/src/util/IndexLimit.ts +12 -0
- package/src/util/SpreadTuple.ts +10 -0
- package/src/util/index.ts +3 -0
- package/lib-esm/index.d.ts +0 -5
- package/lib-esm/index.d.ts.map +0 -1
- package/lib-esm/index.js +0 -28
- package/lib-esm/src/Authorization.d.ts.map +0 -1
- package/lib-esm/src/ClientSchema.d.ts.map +0 -1
- package/lib-esm/src/CombineSchema.d.ts.map +0 -1
- package/lib-esm/src/CustomOperation.d.ts.map +0 -1
- package/lib-esm/src/CustomType.d.ts.map +0 -1
- package/lib-esm/src/EnumType.d.ts.map +0 -1
- package/lib-esm/src/Handler.d.ts.map +0 -1
- package/lib-esm/src/MappedTypes/CustomOperations.d.ts.map +0 -1
- package/lib-esm/src/MappedTypes/ExtractNonModelTypes.d.ts.map +0 -1
- package/lib-esm/src/MappedTypes/ExtractNonModelTypes.js +0 -2
- package/lib-esm/src/MappedTypes/ImplicitFieldInjector.d.ts.map +0 -1
- package/lib-esm/src/MappedTypes/ImplicitFieldInjector.js +0 -2
- package/lib-esm/src/MappedTypes/MapSecondaryIndexes.d.ts.map +0 -1
- package/lib-esm/src/MappedTypes/ModelMetadata.d.ts.map +0 -1
- package/lib-esm/src/MappedTypes/ResolveFieldProperties.d.ts.map +0 -1
- package/lib-esm/src/MappedTypes/ResolveFieldProperties.js +0 -2
- package/lib-esm/src/MappedTypes/ResolveSchema.d.ts.map +0 -1
- package/lib-esm/src/ModelField.d.ts.map +0 -1
- package/lib-esm/src/ModelIndex.d.ts.map +0 -1
- package/lib-esm/src/ModelRelationalField.d.ts.map +0 -1
- package/lib-esm/src/ModelSchema.d.ts.map +0 -1
- package/lib-esm/src/ModelType.d.ts.map +0 -1
- package/lib-esm/src/RefType.d.ts.map +0 -1
- package/lib-esm/src/SchemaProcessor.d.ts.map +0 -1
- package/lib-esm/src/index.d.ts.map +0 -1
- package/lib-esm/src/internals/index.d.ts +0 -2
- package/lib-esm/src/internals/index.d.ts.map +0 -1
- package/lib-esm/src/util/Brand.d.ts.map +0 -1
- package/lib-esm/src/util/IndexLimit.d.ts.map +0 -1
- package/lib-esm/src/util/SpreadTuple.d.ts.map +0 -1
- package/lib-esm/src/util/index.d.ts.map +0 -1
- package/lib-esm/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,923 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import {
|
|
4
|
+
DeepReadOnlyObject,
|
|
5
|
+
UnwrapArray,
|
|
6
|
+
UnionToIntersection,
|
|
7
|
+
Prettify,
|
|
8
|
+
Equal,
|
|
9
|
+
__modelMeta__,
|
|
10
|
+
ExtractModelMeta,
|
|
11
|
+
} from '@aws-amplify/data-schema-types';
|
|
12
|
+
import type { Observable } from 'rxjs';
|
|
13
|
+
|
|
14
|
+
// temporarily export symbols from `data-schema-types` because in case part of the
|
|
15
|
+
// problem with the runtime -> data-schema migration comes down to a mismatch
|
|
16
|
+
// around this symbol and it's extractor.
|
|
17
|
+
//
|
|
18
|
+
// before switching to declare these here, we need to prove it won't break any
|
|
19
|
+
// customer experiences. this *might* need to happen as a breaking change.
|
|
20
|
+
//
|
|
21
|
+
// export declare const __modelMeta__: unique symbol;
|
|
22
|
+
// export type ExtractModelMeta<T extends Record<any, any>> =
|
|
23
|
+
// T[typeof __modelMeta__];
|
|
24
|
+
|
|
25
|
+
export {
|
|
26
|
+
__modelMeta__,
|
|
27
|
+
ExtractModelMeta,
|
|
28
|
+
} from '@aws-amplify/data-schema-types';
|
|
29
|
+
|
|
30
|
+
type Model = Record<string, any>;
|
|
31
|
+
|
|
32
|
+
// #region Return Value Mapped Types
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Currently this omits any object-type fields. Update this when we add custom types/enums.
|
|
36
|
+
*/
|
|
37
|
+
type NonRelationalFields<M extends Model> = {
|
|
38
|
+
[Field in keyof M as UnwrapArray<M[Field]> extends Record<string, unknown>
|
|
39
|
+
? never
|
|
40
|
+
: Field]: M[Field];
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Selection set-aware CRUDL operation return value type
|
|
45
|
+
*
|
|
46
|
+
* @returns model type as-is with default selection set; otherwise generates return type from custonm sel. set
|
|
47
|
+
*/
|
|
48
|
+
type ReturnValue<
|
|
49
|
+
M extends Model,
|
|
50
|
+
FlatModel extends Model,
|
|
51
|
+
Paths extends ReadonlyArray<ModelPath<FlatModel>>,
|
|
52
|
+
> = Paths extends undefined | never[]
|
|
53
|
+
? M
|
|
54
|
+
: CustomSelectionSetReturnValue<FlatModel, Paths[number]>;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* This mapped type traverses the SelectionSetReturnValue result and the original FlatModel, restoring array types
|
|
58
|
+
* that were flattened in DeepPickFromPath
|
|
59
|
+
*
|
|
60
|
+
*/
|
|
61
|
+
type RestoreArrays<Result, FlatModel> = {
|
|
62
|
+
[K in keyof Result]: K extends keyof FlatModel
|
|
63
|
+
? FlatModel[K] extends Array<any>
|
|
64
|
+
? Array<RestoreArrays<Result[K], UnwrapArray<FlatModel[K]>>>
|
|
65
|
+
: FlatModel[K] extends Record<string, any>
|
|
66
|
+
? RestoreArrays<Result[K], FlatModel[K]>
|
|
67
|
+
: Result[K]
|
|
68
|
+
: never;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Generates flattened, readonly return type using specified custom sel. set
|
|
73
|
+
*/
|
|
74
|
+
type CustomSelectionSetReturnValue<
|
|
75
|
+
FlatModel extends Model,
|
|
76
|
+
Paths extends string,
|
|
77
|
+
> = Prettify<
|
|
78
|
+
DeepReadOnlyObject<
|
|
79
|
+
RestoreArrays<
|
|
80
|
+
UnionToIntersection<DeepPickFromPath<FlatModel, Paths>>,
|
|
81
|
+
FlatModel
|
|
82
|
+
>
|
|
83
|
+
>
|
|
84
|
+
>;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Picks object properties that match provided dot-separated Path
|
|
88
|
+
*
|
|
89
|
+
* @typeParam FlatModel
|
|
90
|
+
* @typeParam Path - string union of dot-separated paths
|
|
91
|
+
*
|
|
92
|
+
* @returns union of object slices
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ### Given
|
|
96
|
+
* ```ts
|
|
97
|
+
* FlatModel = {
|
|
98
|
+
title: string;
|
|
99
|
+
description?: string | null;
|
|
100
|
+
comments: {
|
|
101
|
+
content: string;
|
|
102
|
+
readonly id: string;
|
|
103
|
+
readonly createdAt: string;
|
|
104
|
+
readonly updatedAt: string;
|
|
105
|
+
}[];
|
|
106
|
+
readonly id: string;
|
|
107
|
+
readonly createdAt: string;
|
|
108
|
+
readonly updatedAt: string;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
Path = 'title' | 'comments.id' | 'comments.content'
|
|
112
|
+
* ```
|
|
113
|
+
* ### Returns
|
|
114
|
+
* ```ts
|
|
115
|
+
* { title: string } | { comments: { id: string} } | { comments: { content: string} }
|
|
116
|
+
* ```
|
|
117
|
+
*
|
|
118
|
+
* @privateRemarks
|
|
119
|
+
*
|
|
120
|
+
* Intersections on arrays have unexpected behavior in TypeScript:
|
|
121
|
+
* see: https://github.com/microsoft/TypeScript/issues/41874 and https://github.com/microsoft/TypeScript/issues/39693
|
|
122
|
+
*
|
|
123
|
+
* To work around this limitation, DeepPickFromPath flattens Arrays of Models (e.g. { comments: { id: string}[] } => { comments: { id: string} })
|
|
124
|
+
* Arrays are then restored downstream in RestoreArrays
|
|
125
|
+
*/
|
|
126
|
+
type DeepPickFromPath<
|
|
127
|
+
FlatModel extends Model,
|
|
128
|
+
Path extends string,
|
|
129
|
+
> = FlatModel extends undefined
|
|
130
|
+
? DeepPickFromPath<NonNullable<FlatModel>, Path> | undefined
|
|
131
|
+
: FlatModel extends null
|
|
132
|
+
? DeepPickFromPath<NonNullable<FlatModel>, Path> | null
|
|
133
|
+
: FlatModel extends any[]
|
|
134
|
+
? DeepPickFromPath<UnwrapArray<FlatModel>, Path>
|
|
135
|
+
: Path extends `${infer Head}.${infer Tail}`
|
|
136
|
+
? Head extends keyof FlatModel
|
|
137
|
+
? Tail extends '*'
|
|
138
|
+
? { [k in Head]: NonRelationalFields<UnwrapArray<FlatModel[Head]>> }
|
|
139
|
+
: { [k in Head]: DeepPickFromPath<FlatModel[Head], Tail> }
|
|
140
|
+
: never
|
|
141
|
+
: Path extends keyof FlatModel
|
|
142
|
+
? { [K in Path]: FlatModel[Path] }
|
|
143
|
+
: never;
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Generates custom selection set type with up to 6 levels of nested fields
|
|
147
|
+
*
|
|
148
|
+
* @returns string[] where each string is a field in the model
|
|
149
|
+
* recurses over nested objects - such as relationships and custom types - generating a `field.*` type value to select all fields in that nested type,
|
|
150
|
+
* as well as a dot-delimited set of fields for fine-grained selection of particular fields in the nested type (see example below)
|
|
151
|
+
*
|
|
152
|
+
* @example
|
|
153
|
+
* ```ts
|
|
154
|
+
* FlatModel = {
|
|
155
|
+
* id: string
|
|
156
|
+
* title: string
|
|
157
|
+
* comments: {
|
|
158
|
+
* id:: string
|
|
159
|
+
* content: string
|
|
160
|
+
* }[]
|
|
161
|
+
* }
|
|
162
|
+
*```
|
|
163
|
+
*
|
|
164
|
+
* ### Result
|
|
165
|
+
* ```
|
|
166
|
+
* 'id' | 'title' | 'comments.*' | 'comments.id' | 'comments.content'
|
|
167
|
+
* ```
|
|
168
|
+
*
|
|
169
|
+
* @privateRemarks
|
|
170
|
+
*
|
|
171
|
+
* explicit recursion depth pattern ref: https://github.com/microsoft/TypeScript/blob/main/src/lib/es2019.array.d.ts#L1-L5
|
|
172
|
+
*
|
|
173
|
+
* this pattern puts an upper bound on the levels of recursion in our mapped type
|
|
174
|
+
*
|
|
175
|
+
* it guards against infinite recursion when generating the selection set type for deeply-nested models
|
|
176
|
+
* and especially for bi-directional relationships which are infinitely recursable by their nature
|
|
177
|
+
*
|
|
178
|
+
*/
|
|
179
|
+
export type ModelPath<
|
|
180
|
+
FlatModel extends Record<string, unknown>,
|
|
181
|
+
// actual recursive Depth is 6, since we decrement down to 0
|
|
182
|
+
Depth extends number = 5, // think of this as the initialization expr. in a for loop (e.g. `let depth = 5`)
|
|
183
|
+
RecursionLoop extends number[] = [-1, 0, 1, 2, 3, 4],
|
|
184
|
+
Field = keyof FlatModel,
|
|
185
|
+
> = {
|
|
186
|
+
done: Field extends string ? `${Field}.*` : never;
|
|
187
|
+
recur: Field extends string
|
|
188
|
+
? NonNullable<UnwrapArray<FlatModel[Field]>> extends Record<string, unknown>
|
|
189
|
+
?
|
|
190
|
+
| `${Field}.${ModelPath<
|
|
191
|
+
NonNullable<UnwrapArray<FlatModel[Field]>>,
|
|
192
|
+
// this decrements `Depth` by 1 in each recursive call; it's equivalent to the update expr. afterthought in a for loop (e.g. `depth -= 1`)
|
|
193
|
+
RecursionLoop[Depth]
|
|
194
|
+
>}`
|
|
195
|
+
| `${Field}.*`
|
|
196
|
+
: `${Field}`
|
|
197
|
+
: never;
|
|
198
|
+
// this is equivalent to the condition expr. in a for loop (e.g. `depth !== -1`)
|
|
199
|
+
}[Depth extends -1 ? 'done' : 'recur'];
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Flattens model instance type and unwraps async functions into resolved GraphQL shape
|
|
203
|
+
*
|
|
204
|
+
* This type is used for generating the base shape for custom selection set input and its return value
|
|
205
|
+
* Uses same pattern as above to limit recursion depth to maximum usable for selection set.
|
|
206
|
+
*
|
|
207
|
+
* @example
|
|
208
|
+
* ### Given
|
|
209
|
+
* ```ts
|
|
210
|
+
* Model = {
|
|
211
|
+
title: string;
|
|
212
|
+
comments: () => ListReturnValue<({
|
|
213
|
+
content: string;
|
|
214
|
+
readonly id: string;
|
|
215
|
+
readonly createdAt: string;
|
|
216
|
+
readonly updatedAt: string;
|
|
217
|
+
} | null | undefined)[]>;
|
|
218
|
+
readonly id: string;
|
|
219
|
+
readonly createdAt: string;
|
|
220
|
+
readonly updatedAt: string;
|
|
221
|
+
description?: string | ... 1 more ... | undefined;
|
|
222
|
+
}
|
|
223
|
+
* ```
|
|
224
|
+
* ### Returns
|
|
225
|
+
* ```ts
|
|
226
|
+
* {
|
|
227
|
+
title: string;
|
|
228
|
+
comments: {
|
|
229
|
+
content: string;
|
|
230
|
+
readonly id: string;
|
|
231
|
+
readonly createdAt: string;
|
|
232
|
+
readonly updatedAt: string;
|
|
233
|
+
}[];
|
|
234
|
+
readonly id: string;
|
|
235
|
+
readonly createdAt: string;
|
|
236
|
+
readonly updatedAt: string;
|
|
237
|
+
description: string | null | undefined;
|
|
238
|
+
}
|
|
239
|
+
*
|
|
240
|
+
* ```
|
|
241
|
+
*/
|
|
242
|
+
// TODO: temporarily exported for troubleshooting
|
|
243
|
+
export type ResolvedModel<
|
|
244
|
+
Model extends Record<string, unknown>,
|
|
245
|
+
Depth extends number = 7,
|
|
246
|
+
RecursionLoop extends number[] = [-1, 0, 1, 2, 3, 4, 5, 6],
|
|
247
|
+
> = {
|
|
248
|
+
done: NonRelationalFields<Model>;
|
|
249
|
+
recur: {
|
|
250
|
+
[Field in keyof Model]: Model[Field] extends (
|
|
251
|
+
...args: any
|
|
252
|
+
) => ListReturnValue<infer M>
|
|
253
|
+
? NonNullable<M> extends Record<string, any>
|
|
254
|
+
? ResolvedModel<NonNullable<M>, RecursionLoop[Depth]>[]
|
|
255
|
+
: never
|
|
256
|
+
: Model[Field] extends (...args: any) => SingularReturnValue<infer M>
|
|
257
|
+
? NonNullable<M> extends Record<string, any>
|
|
258
|
+
? ResolvedModel<NonNullable<M>, RecursionLoop[Depth]>
|
|
259
|
+
: never
|
|
260
|
+
: Model[Field];
|
|
261
|
+
};
|
|
262
|
+
}[Depth extends -1 ? 'done' : 'recur'];
|
|
263
|
+
|
|
264
|
+
export type SelectionSet<
|
|
265
|
+
Model extends Record<string, unknown>,
|
|
266
|
+
Path extends ReadonlyArray<ModelPath<FlatModel>>,
|
|
267
|
+
FlatModel extends Record<string, unknown> = ResolvedModel<Model>,
|
|
268
|
+
> = CustomSelectionSetReturnValue<FlatModel, Path[number]>;
|
|
269
|
+
// #endregion
|
|
270
|
+
|
|
271
|
+
// #region Input mapped types
|
|
272
|
+
export type ModelIdentifier<Model extends Record<any, any>> = Prettify<
|
|
273
|
+
Record<Model['identifier'] & string, string>
|
|
274
|
+
>;
|
|
275
|
+
|
|
276
|
+
type IfEquals<X, Y, A = X, B = never> =
|
|
277
|
+
(<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? A : B;
|
|
278
|
+
|
|
279
|
+
// Excludes readonly fields from Record type
|
|
280
|
+
type WritableKeys<T> = {
|
|
281
|
+
[P in keyof T]-?: IfEquals<
|
|
282
|
+
{ [Q in P]: T[P] },
|
|
283
|
+
{ -readonly [Q in P]: T[P] },
|
|
284
|
+
P
|
|
285
|
+
>;
|
|
286
|
+
}[keyof T];
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* All required fields and relational fields, exclude readonly fields
|
|
290
|
+
*/
|
|
291
|
+
type MutationInput<
|
|
292
|
+
Fields,
|
|
293
|
+
WritableFields = Pick<Fields, WritableKeys<Fields>>,
|
|
294
|
+
> = {
|
|
295
|
+
[Prop in keyof WritableFields as WritableFields[Prop] extends (
|
|
296
|
+
...args: any
|
|
297
|
+
) => any
|
|
298
|
+
? never
|
|
299
|
+
: Prop]: WritableFields[Prop];
|
|
300
|
+
};
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* All identifiers and fields used to create a model
|
|
304
|
+
*/
|
|
305
|
+
type CreateModelInput<
|
|
306
|
+
Model extends Record<string, unknown>,
|
|
307
|
+
ModelMeta extends Record<string, unknown>,
|
|
308
|
+
> =
|
|
309
|
+
Equal<ModelIdentifier<ModelMeta>, { id: string }> extends true
|
|
310
|
+
? Partial<ModelIdentifier<ModelMeta>> & Omit<MutationInput<Model>, 'id'>
|
|
311
|
+
: MutationInput<Model>;
|
|
312
|
+
|
|
313
|
+
// #endregion
|
|
314
|
+
|
|
315
|
+
// #region Interfaces copied from `graphql` package
|
|
316
|
+
// From https://github.com/graphql/graphql-js/blob/main/src/error/GraphQLError.ts
|
|
317
|
+
|
|
318
|
+
/**
|
|
319
|
+
* See: https://spec.graphql.org/draft/#sec-Errors
|
|
320
|
+
*/
|
|
321
|
+
export interface GraphQLFormattedError {
|
|
322
|
+
/**
|
|
323
|
+
* A short, human-readable summary of the problem that **SHOULD NOT** change
|
|
324
|
+
* from occurrence to occurrence of the problem, except for purposes of
|
|
325
|
+
* localization.
|
|
326
|
+
*/
|
|
327
|
+
readonly message: string;
|
|
328
|
+
/**
|
|
329
|
+
* The AppSync exception category. Indicates the source of the error.
|
|
330
|
+
*/
|
|
331
|
+
readonly errorType: string;
|
|
332
|
+
/**
|
|
333
|
+
* Additional error metadata that can be surfaced via error handling resolver utils:
|
|
334
|
+
* * JS - https://docs.aws.amazon.com/appsync/latest/devguide/built-in-util-js.html#utility-helpers-in-error-js
|
|
335
|
+
* * VTL - https://docs.aws.amazon.com/appsync/latest/devguide/utility-helpers-in-util.html#utility-helpers-in-error
|
|
336
|
+
*/
|
|
337
|
+
readonly errorInfo: null | { [key: string]: unknown };
|
|
338
|
+
/**
|
|
339
|
+
* If an error can be associated to a particular point in the requested
|
|
340
|
+
* GraphQL document, it should contain a list of locations.
|
|
341
|
+
*/
|
|
342
|
+
readonly locations?: ReadonlyArray<SourceLocation>;
|
|
343
|
+
/**
|
|
344
|
+
* If an error can be associated to a particular field in the GraphQL result,
|
|
345
|
+
* it _must_ contain an entry with the key `path` that details the path of
|
|
346
|
+
* the response field which experienced the error. This allows clients to
|
|
347
|
+
* identify whether a null result is intentional or caused by a runtime error.
|
|
348
|
+
*/
|
|
349
|
+
readonly path?: ReadonlyArray<string | number>;
|
|
350
|
+
/**
|
|
351
|
+
* Reserved for implementors to extend the protocol however they see fit,
|
|
352
|
+
* and hence there are no additional restrictions on its contents.
|
|
353
|
+
*/
|
|
354
|
+
readonly extensions?: { [key: string]: unknown };
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
/**
|
|
358
|
+
* Represents a location in a Source.
|
|
359
|
+
*/
|
|
360
|
+
export interface SourceLocation {
|
|
361
|
+
readonly line: number;
|
|
362
|
+
readonly column: number;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
// #endregion
|
|
366
|
+
|
|
367
|
+
export type SingularReturnValue<T> = Promise<{
|
|
368
|
+
data: T;
|
|
369
|
+
errors?: GraphQLFormattedError[];
|
|
370
|
+
extensions?: {
|
|
371
|
+
[key: string]: any;
|
|
372
|
+
};
|
|
373
|
+
}>;
|
|
374
|
+
|
|
375
|
+
export type ListReturnValue<T> = Promise<{
|
|
376
|
+
data: Array<T>;
|
|
377
|
+
nextToken?: string | null;
|
|
378
|
+
errors?: GraphQLFormattedError[];
|
|
379
|
+
extensions?: {
|
|
380
|
+
[key: string]: any;
|
|
381
|
+
};
|
|
382
|
+
}>;
|
|
383
|
+
|
|
384
|
+
export type ObservedReturnValue<T> = Observable<T>;
|
|
385
|
+
|
|
386
|
+
export type ObserveQueryReturnValue<T> = Observable<{
|
|
387
|
+
items: T[];
|
|
388
|
+
isSynced: boolean;
|
|
389
|
+
}>;
|
|
390
|
+
|
|
391
|
+
export type LazyLoader<Model, IsArray extends boolean> = (
|
|
392
|
+
options?: IsArray extends true
|
|
393
|
+
? {
|
|
394
|
+
authMode?: AuthMode;
|
|
395
|
+
authToken?: string;
|
|
396
|
+
limit?: number;
|
|
397
|
+
nextToken?: string | null;
|
|
398
|
+
headers?: CustomHeaders;
|
|
399
|
+
}
|
|
400
|
+
: {
|
|
401
|
+
authMode?: AuthMode;
|
|
402
|
+
authToken?: string;
|
|
403
|
+
headers?: CustomHeaders;
|
|
404
|
+
},
|
|
405
|
+
) => IsArray extends true
|
|
406
|
+
? ListReturnValue<Prettify<NonNullable<Model>>>
|
|
407
|
+
: SingularReturnValue<Prettify<Model>>;
|
|
408
|
+
|
|
409
|
+
export type AuthMode =
|
|
410
|
+
| 'apiKey'
|
|
411
|
+
| 'iam'
|
|
412
|
+
| 'oidc'
|
|
413
|
+
| 'userPool'
|
|
414
|
+
| 'lambda'
|
|
415
|
+
| 'none';
|
|
416
|
+
|
|
417
|
+
type LogicalFilters<Model extends Record<any, any>> = {
|
|
418
|
+
and?: ModelFilter<Model> | ModelFilter<Model>[];
|
|
419
|
+
or?: ModelFilter<Model> | ModelFilter<Model>[];
|
|
420
|
+
not?: ModelFilter<Model>;
|
|
421
|
+
};
|
|
422
|
+
|
|
423
|
+
/**
|
|
424
|
+
* Filter options that can be used on fields where size checks are supported.
|
|
425
|
+
*/
|
|
426
|
+
type SizeFilter = {
|
|
427
|
+
between?: [number, number];
|
|
428
|
+
eq?: number;
|
|
429
|
+
ge?: number;
|
|
430
|
+
gt?: number;
|
|
431
|
+
le?: number;
|
|
432
|
+
lt?: number;
|
|
433
|
+
ne?: number;
|
|
434
|
+
};
|
|
435
|
+
|
|
436
|
+
/**
|
|
437
|
+
* Not actually sure if/how customer can pass this through as variables yet.
|
|
438
|
+
* Leaving it out for now:
|
|
439
|
+
*
|
|
440
|
+
* attributeType: "binary" | "binarySet" | "bool" | "list" | "map" | "number" | "numberSet" | "string" | "stringSet" | "_null"
|
|
441
|
+
*/
|
|
442
|
+
|
|
443
|
+
/**
|
|
444
|
+
* Filters options that can be used on string-like fields.
|
|
445
|
+
*/
|
|
446
|
+
type StringFilter = {
|
|
447
|
+
attributeExists?: boolean;
|
|
448
|
+
beginsWith?: string;
|
|
449
|
+
between?: [string, string];
|
|
450
|
+
contains?: string;
|
|
451
|
+
eq?: string;
|
|
452
|
+
ge?: string;
|
|
453
|
+
gt?: string;
|
|
454
|
+
le?: string;
|
|
455
|
+
lt?: string;
|
|
456
|
+
ne?: string;
|
|
457
|
+
notContains?: string;
|
|
458
|
+
size?: SizeFilter;
|
|
459
|
+
};
|
|
460
|
+
|
|
461
|
+
type NumericFilter = {
|
|
462
|
+
attributeExists?: boolean;
|
|
463
|
+
between?: [number, number];
|
|
464
|
+
eq?: number;
|
|
465
|
+
ge?: number;
|
|
466
|
+
gt?: number;
|
|
467
|
+
le?: number;
|
|
468
|
+
lt?: number;
|
|
469
|
+
ne?: number;
|
|
470
|
+
};
|
|
471
|
+
|
|
472
|
+
type BooleanFilters = {
|
|
473
|
+
attributeExists?: boolean;
|
|
474
|
+
eq?: boolean;
|
|
475
|
+
ne?: boolean;
|
|
476
|
+
};
|
|
477
|
+
|
|
478
|
+
type ModelFilter<Model extends Record<any, any>> = LogicalFilters<Model> & {
|
|
479
|
+
[K in keyof Model as Model[K] extends LazyLoader<any, any>
|
|
480
|
+
? never
|
|
481
|
+
: K]?: Model[K] extends boolean
|
|
482
|
+
? BooleanFilters
|
|
483
|
+
: Model[K] extends number
|
|
484
|
+
? NumericFilter
|
|
485
|
+
: StringFilter;
|
|
486
|
+
};
|
|
487
|
+
|
|
488
|
+
export type ModelSortDirection = 'ASC' | 'DESC';
|
|
489
|
+
|
|
490
|
+
type ModelMetaShape = {
|
|
491
|
+
secondaryIndexes: SecondaryIndexIrShape[];
|
|
492
|
+
identifier: string;
|
|
493
|
+
};
|
|
494
|
+
|
|
495
|
+
// TODO: remove export. added for debugging.
|
|
496
|
+
export type ModelTypesClient<
|
|
497
|
+
Model extends Record<string, unknown>,
|
|
498
|
+
ModelMeta extends ModelMetaShape,
|
|
499
|
+
FlatModel extends Record<string, unknown> = ResolvedModel<Model>,
|
|
500
|
+
> = IndexQueryMethodsFromIR<ModelMeta['secondaryIndexes'], Model> & {
|
|
501
|
+
create: (
|
|
502
|
+
model: Prettify<CreateModelInput<Model, ModelMeta>>,
|
|
503
|
+
options?: {
|
|
504
|
+
authMode?: AuthMode;
|
|
505
|
+
authToken?: string;
|
|
506
|
+
headers?: CustomHeaders;
|
|
507
|
+
},
|
|
508
|
+
) => SingularReturnValue<Model>;
|
|
509
|
+
update: (
|
|
510
|
+
model: Prettify<ModelIdentifier<ModelMeta> & Partial<MutationInput<Model>>>,
|
|
511
|
+
options?: {
|
|
512
|
+
authMode?: AuthMode;
|
|
513
|
+
authToken?: string;
|
|
514
|
+
headers?: CustomHeaders;
|
|
515
|
+
},
|
|
516
|
+
) => SingularReturnValue<Model>;
|
|
517
|
+
delete: (
|
|
518
|
+
identifier: ModelIdentifier<ModelMeta>,
|
|
519
|
+
options?: {
|
|
520
|
+
authMode?: AuthMode;
|
|
521
|
+
authToken?: string;
|
|
522
|
+
headers?: CustomHeaders;
|
|
523
|
+
},
|
|
524
|
+
) => SingularReturnValue<Model>;
|
|
525
|
+
get<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(
|
|
526
|
+
identifier: ModelIdentifier<ModelMeta>,
|
|
527
|
+
options?: {
|
|
528
|
+
selectionSet?: SelectionSet;
|
|
529
|
+
authMode?: AuthMode;
|
|
530
|
+
authToken?: string;
|
|
531
|
+
headers?: CustomHeaders;
|
|
532
|
+
},
|
|
533
|
+
): SingularReturnValue<Prettify<ReturnValue<Model, FlatModel, SelectionSet>>>;
|
|
534
|
+
list<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(
|
|
535
|
+
options?: Partial<ModelIdentifier<ModelMeta>> & {
|
|
536
|
+
filter?: ModelFilter<Model>;
|
|
537
|
+
sortDirection?: ModelSortDirection;
|
|
538
|
+
limit?: number;
|
|
539
|
+
nextToken?: string | null;
|
|
540
|
+
selectionSet?: SelectionSet;
|
|
541
|
+
authMode?: AuthMode;
|
|
542
|
+
authToken?: string;
|
|
543
|
+
headers?: CustomHeaders;
|
|
544
|
+
},
|
|
545
|
+
): ListReturnValue<Prettify<ReturnValue<Model, FlatModel, SelectionSet>>>;
|
|
546
|
+
onCreate<
|
|
547
|
+
SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[],
|
|
548
|
+
>(options?: {
|
|
549
|
+
filter?: ModelFilter<Model>;
|
|
550
|
+
selectionSet?: SelectionSet;
|
|
551
|
+
authMode?: AuthMode;
|
|
552
|
+
authToken?: string;
|
|
553
|
+
headers?: CustomHeaders;
|
|
554
|
+
}): ObservedReturnValue<
|
|
555
|
+
Prettify<ReturnValue<Model, FlatModel, SelectionSet>>
|
|
556
|
+
>;
|
|
557
|
+
onUpdate<
|
|
558
|
+
SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[],
|
|
559
|
+
>(options?: {
|
|
560
|
+
filter?: ModelFilter<Model>;
|
|
561
|
+
selectionSet?: SelectionSet;
|
|
562
|
+
authMode?: AuthMode;
|
|
563
|
+
authToken?: string;
|
|
564
|
+
headers?: CustomHeaders;
|
|
565
|
+
}): ObservedReturnValue<
|
|
566
|
+
Prettify<ReturnValue<Model, FlatModel, SelectionSet>>
|
|
567
|
+
>;
|
|
568
|
+
onDelete<
|
|
569
|
+
SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[],
|
|
570
|
+
>(options?: {
|
|
571
|
+
filter?: ModelFilter<Model>;
|
|
572
|
+
selectionSet?: SelectionSet;
|
|
573
|
+
authMode?: AuthMode;
|
|
574
|
+
authToken?: string;
|
|
575
|
+
headers?: CustomHeaders;
|
|
576
|
+
}): ObservedReturnValue<
|
|
577
|
+
Prettify<ReturnValue<Model, FlatModel, SelectionSet>>
|
|
578
|
+
>;
|
|
579
|
+
observeQuery<
|
|
580
|
+
SelectionSet extends ModelPath<FlatModel>[] = never[],
|
|
581
|
+
>(options?: {
|
|
582
|
+
filter?: ModelFilter<Model>;
|
|
583
|
+
selectionSet?: SelectionSet;
|
|
584
|
+
authMode?: AuthMode;
|
|
585
|
+
authToken?: string;
|
|
586
|
+
}): ObserveQueryReturnValue<
|
|
587
|
+
Prettify<ReturnValue<Model, FlatModel, SelectionSet>>
|
|
588
|
+
>;
|
|
589
|
+
};
|
|
590
|
+
|
|
591
|
+
type ModelTypesSSRCookies<
|
|
592
|
+
Model extends Record<string, unknown>,
|
|
593
|
+
ModelMeta extends ModelMetaShape,
|
|
594
|
+
FlatModel extends Record<string, unknown> = ResolvedModel<Model>,
|
|
595
|
+
> = IndexQueryMethodsFromIR<ModelMeta['secondaryIndexes'], Model> & {
|
|
596
|
+
create: (
|
|
597
|
+
model: Prettify<CreateModelInput<Model, ModelMeta>>,
|
|
598
|
+
options?: {
|
|
599
|
+
authMode?: AuthMode;
|
|
600
|
+
authToken?: string;
|
|
601
|
+
headers?: CustomHeaders;
|
|
602
|
+
},
|
|
603
|
+
) => SingularReturnValue<Model>;
|
|
604
|
+
update: (
|
|
605
|
+
model: Prettify<ModelIdentifier<ModelMeta> & Partial<MutationInput<Model>>>,
|
|
606
|
+
options?: {
|
|
607
|
+
authMode?: AuthMode;
|
|
608
|
+
authToken?: string;
|
|
609
|
+
headers?: CustomHeaders;
|
|
610
|
+
},
|
|
611
|
+
) => SingularReturnValue<Model>;
|
|
612
|
+
delete: (
|
|
613
|
+
identifier: ModelIdentifier<ModelMeta>,
|
|
614
|
+
options?: {
|
|
615
|
+
authMode?: AuthMode;
|
|
616
|
+
authToken?: string;
|
|
617
|
+
headers?: CustomHeaders;
|
|
618
|
+
},
|
|
619
|
+
) => SingularReturnValue<Model>;
|
|
620
|
+
get<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(
|
|
621
|
+
identifier: ModelIdentifier<ModelMeta>,
|
|
622
|
+
options?: {
|
|
623
|
+
selectionSet?: SelectionSet;
|
|
624
|
+
authMode?: AuthMode;
|
|
625
|
+
authToken?: string;
|
|
626
|
+
headers?: CustomHeaders;
|
|
627
|
+
},
|
|
628
|
+
): SingularReturnValue<Prettify<ReturnValue<Model, FlatModel, SelectionSet>>>;
|
|
629
|
+
list<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(
|
|
630
|
+
options?: Partial<ModelIdentifier<ModelMeta>> & {
|
|
631
|
+
filter?: ModelFilter<Model>;
|
|
632
|
+
sortDirection?: ModelSortDirection;
|
|
633
|
+
limit?: number;
|
|
634
|
+
nextToken?: string | null;
|
|
635
|
+
selectionSet?: SelectionSet;
|
|
636
|
+
authMode?: AuthMode;
|
|
637
|
+
authToken?: string;
|
|
638
|
+
headers?: CustomHeaders;
|
|
639
|
+
},
|
|
640
|
+
): ListReturnValue<Prettify<ReturnValue<Model, FlatModel, SelectionSet>>>;
|
|
641
|
+
};
|
|
642
|
+
|
|
643
|
+
type ModelTypesSSRRequest<
|
|
644
|
+
Model extends Record<string, unknown>,
|
|
645
|
+
ModelMeta extends ModelMetaShape,
|
|
646
|
+
FlatModel extends Record<string, unknown> = ResolvedModel<Model>,
|
|
647
|
+
> = IndexQueryMethodsFromIR<ModelMeta['secondaryIndexes'], Model> & {
|
|
648
|
+
create: (
|
|
649
|
+
// TODO: actual type
|
|
650
|
+
contextSpec: any,
|
|
651
|
+
model: Prettify<CreateModelInput<Model, ModelMeta>>,
|
|
652
|
+
options?: {
|
|
653
|
+
authMode?: AuthMode;
|
|
654
|
+
authToken?: string;
|
|
655
|
+
headers?: CustomHeaders;
|
|
656
|
+
},
|
|
657
|
+
) => SingularReturnValue<Model>;
|
|
658
|
+
update: (
|
|
659
|
+
contextSpec: any,
|
|
660
|
+
model: Prettify<ModelIdentifier<ModelMeta> & Partial<MutationInput<Model>>>,
|
|
661
|
+
options?: {
|
|
662
|
+
authMode?: AuthMode;
|
|
663
|
+
authToken?: string;
|
|
664
|
+
headers?: CustomHeaders;
|
|
665
|
+
},
|
|
666
|
+
) => SingularReturnValue<Model>;
|
|
667
|
+
delete: (
|
|
668
|
+
contextSpec: any,
|
|
669
|
+
identifier: ModelIdentifier<ModelMeta>,
|
|
670
|
+
options?: {
|
|
671
|
+
authMode?: AuthMode;
|
|
672
|
+
authToken?: string;
|
|
673
|
+
headers?: CustomHeaders;
|
|
674
|
+
},
|
|
675
|
+
) => SingularReturnValue<Model>;
|
|
676
|
+
get<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(
|
|
677
|
+
contextSpec: any,
|
|
678
|
+
identifier: ModelIdentifier<ModelMeta>,
|
|
679
|
+
options?: {
|
|
680
|
+
selectionSet?: SelectionSet;
|
|
681
|
+
authMode?: AuthMode;
|
|
682
|
+
authToken?: string;
|
|
683
|
+
headers?: CustomHeaders;
|
|
684
|
+
},
|
|
685
|
+
): SingularReturnValue<Prettify<ReturnValue<Model, FlatModel, SelectionSet>>>;
|
|
686
|
+
list<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(
|
|
687
|
+
contextSpec: any,
|
|
688
|
+
options?: Partial<ModelIdentifier<ModelMeta>> & {
|
|
689
|
+
filter?: ModelFilter<Model>;
|
|
690
|
+
sortDirection?: ModelSortDirection;
|
|
691
|
+
limit?: number;
|
|
692
|
+
nextToken?: string | null;
|
|
693
|
+
selectionSet?: SelectionSet;
|
|
694
|
+
authMode?: AuthMode;
|
|
695
|
+
authToken?: string;
|
|
696
|
+
headers?: CustomHeaders;
|
|
697
|
+
},
|
|
698
|
+
): ListReturnValue<Prettify<ReturnValue<Model, FlatModel, SelectionSet>>>;
|
|
699
|
+
};
|
|
700
|
+
|
|
701
|
+
type ContextType = 'CLIENT' | 'COOKIES' | 'REQUEST';
|
|
702
|
+
|
|
703
|
+
export type ModelTypes<
|
|
704
|
+
Schema extends Record<any, any>,
|
|
705
|
+
Context extends ContextType = 'CLIENT',
|
|
706
|
+
ModelMeta extends Record<any, any> = ExtractModelMeta<Schema>,
|
|
707
|
+
> = {
|
|
708
|
+
[ModelName in Exclude<
|
|
709
|
+
keyof Schema,
|
|
710
|
+
keyof CustomOperations<
|
|
711
|
+
Schema,
|
|
712
|
+
'Mutation' | 'Query' | 'Subscription',
|
|
713
|
+
Context,
|
|
714
|
+
ModelMeta
|
|
715
|
+
>
|
|
716
|
+
>]: ModelName extends string
|
|
717
|
+
? Schema[ModelName] extends Record<string, unknown>
|
|
718
|
+
? Context extends 'CLIENT'
|
|
719
|
+
? ModelTypesClient<Schema[ModelName], ModelMeta[ModelName]>
|
|
720
|
+
: Context extends 'COOKIES'
|
|
721
|
+
? ModelTypesSSRCookies<Schema[ModelName], ModelMeta[ModelName]>
|
|
722
|
+
: Context extends 'REQUEST'
|
|
723
|
+
? ModelTypesSSRRequest<Schema[ModelName], ModelMeta[ModelName]>
|
|
724
|
+
: never
|
|
725
|
+
: never
|
|
726
|
+
: never;
|
|
727
|
+
};
|
|
728
|
+
|
|
729
|
+
export type CustomQueries<
|
|
730
|
+
Schema extends Record<any, any>,
|
|
731
|
+
Context extends ContextType = 'CLIENT',
|
|
732
|
+
ModelMeta extends Record<any, any> = ExtractModelMeta<Schema>,
|
|
733
|
+
> = CustomOperations<Schema, 'Query', Context, ModelMeta>;
|
|
734
|
+
|
|
735
|
+
export type CustomMutations<
|
|
736
|
+
Schema extends Record<any, any>,
|
|
737
|
+
Context extends ContextType = 'CLIENT',
|
|
738
|
+
ModelMeta extends Record<any, any> = ExtractModelMeta<Schema>,
|
|
739
|
+
> = CustomOperations<Schema, 'Mutation', Context, ModelMeta>;
|
|
740
|
+
|
|
741
|
+
export type CustomSubscriptions<
|
|
742
|
+
Schema extends Record<any, any>,
|
|
743
|
+
Context extends ContextType = 'CLIENT',
|
|
744
|
+
ModelMeta extends Record<any, any> = ExtractModelMeta<Schema>,
|
|
745
|
+
> = CustomOperations<Schema, 'Subscription', Context, ModelMeta>;
|
|
746
|
+
|
|
747
|
+
type CustomOperationMethodOptions = {
|
|
748
|
+
// selectionSet?: SelectionSet;
|
|
749
|
+
authMode?: AuthMode;
|
|
750
|
+
authToken?: string;
|
|
751
|
+
headers?: CustomHeaders;
|
|
752
|
+
};
|
|
753
|
+
|
|
754
|
+
/**
|
|
755
|
+
* Generates Custom Operations function params based on whether .arguments() were specified in the schema builder
|
|
756
|
+
*/
|
|
757
|
+
type CustomOperationFnParams<Args extends Record<string, unknown> | never> = [
|
|
758
|
+
Args,
|
|
759
|
+
] extends [never]
|
|
760
|
+
? [CustomOperationMethodOptions?]
|
|
761
|
+
: [Args, CustomOperationMethodOptions?];
|
|
762
|
+
|
|
763
|
+
export type CustomOperations<
|
|
764
|
+
Schema extends Record<any, any>,
|
|
765
|
+
OperationType extends 'Query' | 'Mutation' | 'Subscription',
|
|
766
|
+
Context extends ContextType = 'CLIENT',
|
|
767
|
+
ModelMeta extends Record<any, any> = ExtractModelMeta<Schema>,
|
|
768
|
+
> = {
|
|
769
|
+
[OpName in keyof ModelMeta['customOperations'] as ModelMeta['customOperations'][OpName]['typeName'] extends OperationType
|
|
770
|
+
? OpName
|
|
771
|
+
: never]: {
|
|
772
|
+
CLIENT: (
|
|
773
|
+
...params: CustomOperationFnParams<
|
|
774
|
+
ModelMeta['customOperations'][OpName]['arguments']
|
|
775
|
+
>
|
|
776
|
+
) => // we only generate subscriptions on the clientside; so this isn't applied to COOKIES | REQUEST
|
|
777
|
+
ModelMeta['customOperations'][OpName]['typeName'] extends 'Subscription'
|
|
778
|
+
? ObservedReturnValue<ModelMeta['customOperations'][OpName]['returnType']>
|
|
779
|
+
: SingularReturnValue<
|
|
780
|
+
ModelMeta['customOperations'][OpName]['returnType']
|
|
781
|
+
>;
|
|
782
|
+
COOKIES: (
|
|
783
|
+
...params: CustomOperationFnParams<
|
|
784
|
+
ModelMeta['customOperations'][OpName]['arguments']
|
|
785
|
+
>
|
|
786
|
+
) => SingularReturnValue<
|
|
787
|
+
ModelMeta['customOperations'][OpName]['returnType']
|
|
788
|
+
>;
|
|
789
|
+
REQUEST: (
|
|
790
|
+
contextSpec: any,
|
|
791
|
+
...params: CustomOperationFnParams<
|
|
792
|
+
ModelMeta['customOperations'][OpName]['arguments']
|
|
793
|
+
>
|
|
794
|
+
) => SingularReturnValue<
|
|
795
|
+
ModelMeta['customOperations'][OpName]['returnType']
|
|
796
|
+
>;
|
|
797
|
+
}[Context];
|
|
798
|
+
};
|
|
799
|
+
|
|
800
|
+
/**
|
|
801
|
+
* The utility type that is used to infer the type (interface) of the generated
|
|
802
|
+
* `client.enums` property.
|
|
803
|
+
*
|
|
804
|
+
* @example
|
|
805
|
+
* // The schema:
|
|
806
|
+
* {
|
|
807
|
+
* TodoStatus: a.enum(['Planned' | 'InProgress' | 'Completed']),
|
|
808
|
+
* }
|
|
809
|
+
*
|
|
810
|
+
* // The inferred interface of the `client.enums`:
|
|
811
|
+
* {
|
|
812
|
+
* TodoStatus: {
|
|
813
|
+
* values: () => Array<'Planned' | 'InProgress' | 'Completed'>;
|
|
814
|
+
* }
|
|
815
|
+
* }
|
|
816
|
+
*/
|
|
817
|
+
export type EnumTypes<
|
|
818
|
+
Schema extends Record<any, any>,
|
|
819
|
+
ModelMeta extends Record<any, any> = ExtractModelMeta<Schema>,
|
|
820
|
+
> = {
|
|
821
|
+
[EnumName in keyof ModelMeta['enums']]: {
|
|
822
|
+
values: () => Array<ModelMeta['enums'][EnumName]>;
|
|
823
|
+
};
|
|
824
|
+
};
|
|
825
|
+
|
|
826
|
+
/**
|
|
827
|
+
* Request options that are passed to custom header functions.
|
|
828
|
+
* `method` and `headers` are not included in custom header functions passed to
|
|
829
|
+
* subscriptions.
|
|
830
|
+
*/
|
|
831
|
+
export type RequestOptions = {
|
|
832
|
+
url: string;
|
|
833
|
+
queryString: string;
|
|
834
|
+
method?: string;
|
|
835
|
+
};
|
|
836
|
+
|
|
837
|
+
/**
|
|
838
|
+
* Custom headers that can be passed either to the client or to individual
|
|
839
|
+
* model operations, either as a static object or a function that returns a
|
|
840
|
+
* promise.
|
|
841
|
+
*/
|
|
842
|
+
export type CustomHeaders =
|
|
843
|
+
| Record<string, string>
|
|
844
|
+
| ((requestOptions?: RequestOptions) => Promise<Record<string, string>>);
|
|
845
|
+
|
|
846
|
+
/**
|
|
847
|
+
* SecondaryIndex index types and query methods
|
|
848
|
+
*/
|
|
849
|
+
export type SecondaryIndexIrShape = {
|
|
850
|
+
queryField: string;
|
|
851
|
+
pk: { [key: string]: string | number };
|
|
852
|
+
sk: { [key: string]: string | number };
|
|
853
|
+
};
|
|
854
|
+
|
|
855
|
+
type IndexQueryMethodsFromIR<
|
|
856
|
+
SecondaryIdxTuple extends SecondaryIndexIrShape[],
|
|
857
|
+
Model extends Record<string, unknown>,
|
|
858
|
+
Res = unknown, // defaulting `unknown` because it gets absorbed in an intersection, e.g. `{a: 1} & unknown` => `{a: 1}`
|
|
859
|
+
> = SecondaryIdxTuple extends [
|
|
860
|
+
infer A extends SecondaryIndexIrShape,
|
|
861
|
+
...infer B extends SecondaryIndexIrShape[],
|
|
862
|
+
]
|
|
863
|
+
? IndexQueryMethodsFromIR<B, Model, IndexQueryMethodSignature<A, Model> & Res>
|
|
864
|
+
: Res;
|
|
865
|
+
|
|
866
|
+
type IndexQueryMethodSignature<
|
|
867
|
+
Idx extends SecondaryIndexIrShape,
|
|
868
|
+
Model extends Record<string, unknown>,
|
|
869
|
+
> = {
|
|
870
|
+
[K in Idx['queryField'] & string]: <
|
|
871
|
+
FlatModel extends Record<string, unknown> = ResolvedModel<Model>,
|
|
872
|
+
SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[],
|
|
873
|
+
>(
|
|
874
|
+
input: Idx['pk'] & {
|
|
875
|
+
[SKField in keyof Idx['sk']]+?: string extends Idx['sk'][SKField]
|
|
876
|
+
? StringFilter
|
|
877
|
+
: NumericFilter;
|
|
878
|
+
},
|
|
879
|
+
options?: {
|
|
880
|
+
filter?: ModelFilter<Model>;
|
|
881
|
+
sortDirection?: ModelSortDirection;
|
|
882
|
+
limit?: number;
|
|
883
|
+
nextToken?: string | null;
|
|
884
|
+
selectionSet?: SelectionSet;
|
|
885
|
+
authMode?: AuthMode;
|
|
886
|
+
authToken?: string;
|
|
887
|
+
headers?: CustomHeaders;
|
|
888
|
+
},
|
|
889
|
+
) => ListReturnValue<Prettify<ReturnValue<Model, FlatModel, SelectionSet>>>;
|
|
890
|
+
};
|
|
891
|
+
|
|
892
|
+
type FilteredKeys<T> = {
|
|
893
|
+
[P in keyof T]: T[P] extends never ? never : P;
|
|
894
|
+
}[keyof T];
|
|
895
|
+
|
|
896
|
+
type ExcludeNeverFields<O> = {
|
|
897
|
+
[K in FilteredKeys<O>]: O[K];
|
|
898
|
+
};
|
|
899
|
+
|
|
900
|
+
export type ClientExtensions<T extends Record<any, any> = never> =
|
|
901
|
+
ExcludeNeverFields<{
|
|
902
|
+
models: ModelTypes<T, 'CLIENT'>;
|
|
903
|
+
enums: EnumTypes<T>;
|
|
904
|
+
queries: CustomQueries<T, 'CLIENT'>;
|
|
905
|
+
mutations: CustomMutations<T, 'CLIENT'>;
|
|
906
|
+
subscriptions: CustomSubscriptions<T, 'CLIENT'>;
|
|
907
|
+
}>;
|
|
908
|
+
|
|
909
|
+
export type ClientExtensionsSSRRequest<T extends Record<any, any> = never> =
|
|
910
|
+
ExcludeNeverFields<{
|
|
911
|
+
models: ModelTypes<T, 'REQUEST'>;
|
|
912
|
+
enums: EnumTypes<T>;
|
|
913
|
+
queries: CustomQueries<T, 'REQUEST'>;
|
|
914
|
+
mutations: CustomMutations<T, 'REQUEST'>;
|
|
915
|
+
}>;
|
|
916
|
+
|
|
917
|
+
export type ClientExtensionsSSRCookies<T extends Record<any, any> = never> =
|
|
918
|
+
ExcludeNeverFields<{
|
|
919
|
+
models: ModelTypes<T, 'COOKIES'>;
|
|
920
|
+
enums: EnumTypes<T>;
|
|
921
|
+
queries: CustomQueries<T, 'COOKIES'>;
|
|
922
|
+
mutations: CustomMutations<T, 'COOKIES'>;
|
|
923
|
+
}>;
|