UNPKG

@aws-amplify/datastore

Version:

AppSyncLocal support for aws-amplify

107 lines (104 loc) 4.99 kB
import { GRAPHQL_AUTH_MODE } from '@aws-amplify/api-graphql'; import { GraphQLAuthError } from '@aws-amplify/api'; import { ModelInstanceCreator } from '../datastore/datastore'; import { AuthorizationRule, GraphQLCondition, GraphQLFilter, ModelInstanceMetadata, OpType, PersistentModel, PersistentModelConstructor, PredicatesGroup, RelationshipType, SchemaModel, SchemaNamespace, SchemaNonModel, ModelOperation, InternalSchema, AuthModeStrategy } from '../types'; import { MutationEvent } from './'; declare enum GraphQLOperationType { LIST = "query", CREATE = "mutation", UPDATE = "mutation", DELETE = "mutation", GET = "query" } export declare enum TransformerMutationType { CREATE = "Create", UPDATE = "Update", DELETE = "Delete", GET = "Get" } export declare function getMetadataFields(): ReadonlyArray<string>; export declare function generateSelectionSet(namespace: SchemaNamespace, modelDefinition: SchemaModel | SchemaNonModel): string; export declare function getAuthorizationRules(modelDefinition: SchemaModel): AuthorizationRule[]; export declare function buildSubscriptionGraphQLOperation(namespace: SchemaNamespace, modelDefinition: SchemaModel, transformerMutationType: TransformerMutationType, isOwnerAuthorization: boolean, ownerField: string, filterArg?: boolean): [TransformerMutationType, string, string]; export declare function buildGraphQLOperation(namespace: SchemaNamespace, modelDefinition: SchemaModel, graphQLOpType: keyof typeof GraphQLOperationType): [TransformerMutationType, string, string][]; export declare function createMutationInstanceFromModelOperation<T extends PersistentModel>(relationships: RelationshipType, modelDefinition: SchemaModel, opType: OpType, model: PersistentModelConstructor<T>, element: T, condition: GraphQLCondition, MutationEventConstructor: PersistentModelConstructor<MutationEvent>, modelInstanceCreator: ModelInstanceCreator, id?: string): MutationEvent; export declare function predicateToGraphQLCondition(predicate: PredicatesGroup<any>, modelDefinition: SchemaModel): GraphQLCondition; /** * @param predicatesGroup - Predicate Group @returns GQL Filter Expression from Predicate Group @remarks Flattens redundant list predicates @example ```js { and:[{ and:[{ username: { eq: 'bob' }}] }] } ``` Becomes ```js { and:[{ username: { eq: 'bob' }}] } ``` */ export declare function predicateToGraphQLFilter(predicatesGroup: PredicatesGroup<any>, fieldsToOmit?: string[], root?: boolean): GraphQLFilter; /** * * @param group - selective sync predicate group * @returns set of distinct field names in the filter group */ export declare function filterFields(group?: PredicatesGroup<any>): Set<string>; /** * * @param modelDefinition * @returns set of field names used with dynamic auth modes configured for the provided model definition */ export declare function dynamicAuthFields(modelDefinition: SchemaModel): Set<string>; /** * * @param group - selective sync predicate group * @returns the total number of OR'd predicates in the filter group * * @example returns 2 * ```js * { type: "or", predicates: [ * { field: "username", operator: "beginsWith", operand: "a" }, * { field: "title", operator: "contains", operand: "abc" }, * ]} * ``` */ export declare function countFilterCombinations(group?: PredicatesGroup<any>): number; /** * * @param group - selective sync predicate group * @returns name of repeated field | null * * @example returns "username" * ```js * { type: "and", predicates: [ * { field: "username", operator: "beginsWith", operand: "a" }, * { field: "username", operator: "contains", operand: "abc" }, * ] } * ``` */ export declare function repeatedFieldInGroup(group?: PredicatesGroup<any>): string | null; export declare enum RTFError { UnknownField = 0, MaxAttributes = 1, MaxCombinations = 2, RepeatedFieldname = 3, NotGroup = 4, FieldNotInType = 5 } export declare function generateRTFRemediation(errorType: RTFError, modelDefinition: SchemaModel, predicatesGroup: PredicatesGroup<any> | undefined): string; export declare function getUserGroupsFromToken(token: { [field: string]: any; }, rule: AuthorizationRule): string[]; export declare function getModelAuthModes({ authModeStrategy, defaultAuthMode, modelName, schema, }: { authModeStrategy: AuthModeStrategy; defaultAuthMode: GRAPHQL_AUTH_MODE; modelName: string; schema: InternalSchema; }): Promise<{ [key in ModelOperation]: GRAPHQL_AUTH_MODE[]; }>; export declare function getForbiddenError(error: any): any; export declare function getClientSideAuthError(error: any): GraphQLAuthError; export declare function getTokenForCustomAuth(authMode: GRAPHQL_AUTH_MODE, amplifyConfig?: Record<string, any>): Promise<string | undefined>; export declare function getIdentifierValue(modelDefinition: SchemaModel, model: ModelInstanceMetadata | PersistentModel): string; export {};