{
  "version": 3,
  "sources": ["../src/index.ts"],
  "sourcesContent": ["import {\n  GraphQLList,\n  GraphQLObjectType,\n  executeSync,\n  getNamedType,\n  getNullableType,\n  getOperationAST,\n  isAbstractType,\n  isCompositeType,\n  isEnumType,\n  isListType,\n  isScalarType,\n  visit,\n} from \"graphql\";\nimport type {\n  DocumentNode,\n  GraphQLResolveInfo,\n  GraphQLSchema,\n  GraphQLAbstractType,\n  GraphQLCompositeType,\n  GraphQLNamedType,\n  GraphQLScalarType,\n  FieldNode,\n  FragmentDefinitionNode,\n  SelectionNode,\n  SelectionSetNode,\n} from \"graphql\";\nimport { pathToArray } from \"graphql/jsutils/Path\";\nimport {\n  DefaultMockResolvers,\n  createValueResolver,\n  DEFAULT_MOCK_RESOLVERS,\n  DEFAULT_MOCK_TYPENAME,\n} from \"./vendor/RelayMockPayloadGenerator\";\nimport type {\n  MockData,\n  MockResolverContext,\n  MockResolvers,\n  ValueResolver,\n} from \"./vendor/RelayMockPayloadGenerator\";\nimport invariant from \"invariant\";\nimport deepmerge from \"deepmerge\";\n\nexport type { MockResolvers };\n\nexport interface RequestDescriptor<Node = DocumentNode> {\n  readonly node: Node;\n  readonly variables: Record<string, unknown>;\n}\n\nexport interface OperationDescriptor<\n  Schema = GraphQLSchema,\n  Node = DocumentNode,\n> {\n  readonly schema: Schema;\n  readonly request: RequestDescriptor<Node>;\n}\n\ninterface InternalMockData extends MockData {\n  __abstractType?: GraphQLAbstractType;\n}\n\nconst TYPENAME_KEY = \"__typename\";\ntype MultiDimensionalArray<T> = T | MultiDimensionalArray<T>[];\ntype UserValue = { __typename?: string };\n\nexport function generate<TypeMap extends DefaultMockResolvers>(\n  operation: OperationDescriptor,\n  mockResolvers?: MockResolvers<TypeMap> | null,\n  enableDefer: undefined | false = false,\n  generateId?: () => number,\n): { data: MockData } {\n  const resolvers = { ...DEFAULT_MOCK_RESOLVERS, ...mockResolvers };\n  const resolveValue = createValueResolver(resolvers, generateId);\n\n  // RelayMockPayloadGenerator will execute documents that have optional\n  // boolean variables that are not passed by the user, but are required\n  // inside the document for @include/@skip to work. We rewrite the\n  // document to replace these variable references with hardcoded values.\n  //\n  // TODO: Is this a bug in RelayMockPayloadGenerator?\n  const undefinedBooleanVariables: string[] = [];\n  getOperationAST(operation.request.node)?.variableDefinitions?.forEach(\n    (variableDefinition) => {\n      if (\n        variableDefinition.type.kind === \"NamedType\" &&\n        variableDefinition.type.name.value === \"Boolean\" &&\n        operation.request.variables[variableDefinition.variable.name.value] ===\n          undefined\n      ) {\n        undefinedBooleanVariables.push(variableDefinition.variable.name.value);\n      }\n    },\n  );\n\n  let document = operation.request.node;\n  if (undefinedBooleanVariables.length > 0) {\n    document = rewriteConditionals(document, undefinedBooleanVariables);\n  }\n  if (enableDefer) {\n    throw new Error(\n      \"Enabling @defer in payload generation is not supported at this time.\",\n    );\n  } else {\n    document = removeDeferAndStream(document);\n  }\n\n  const result = executeSync({\n    schema: operation.schema,\n    document: document,\n    variableValues: operation.request.variables,\n    rootValue: mockCompositeType(\n      resolvers,\n      getRootType(operation) as GraphQLObjectType,\n      null,\n      resolveValue,\n      null,\n      null,\n      {},\n      operation,\n      false, // default root\n    ),\n    fieldResolver: (source: InternalMockData, args, _context, info) => {\n      // FIXME: This should not assume a single selection\n      const fieldNode: FieldNode = info.fieldNodes[0];\n      const selectionName = fieldNode.alias?.value ?? fieldNode.name.value;\n\n      // Explicit null value\n      if (source[selectionName] === null) {\n        return null;\n      }\n\n      const namedReturnType = getNamedType(info.returnType);\n      const isList = isListType(getNullableType(info.returnType));\n      if (isCompositeType(namedReturnType)) {\n        const value = source[selectionName];\n        const generateValue = (\n          userValue?: UserValue | MultiDimensionalArray<UserValue> | null,\n        ) => {\n          // Explicit null value\n          if (userValue === null) {\n            return null;\n          }\n\n          const userSpecifiedTypename =\n            userValue && !Array.isArray(userValue)\n              ? userValue[TYPENAME_KEY] ?? null\n              : null;\n\n          const mockedCompositeType = mockCompositeType(\n            resolvers,\n            namedReturnType,\n            userSpecifiedTypename,\n            resolveValue,\n            fieldNode,\n            info,\n            args,\n            operation,\n            isList,\n          );\n\n          if (Array.isArray(mockedCompositeType)) {\n            if (Array.isArray(userValue)) {\n              return [...userValue];\n            }\n            return [...mockedCompositeType];\n          }\n\n          return { ...mockedCompositeType, ...userValue };\n        };\n        return generateValue(value);\n      } else if (isScalarType(namedReturnType)) {\n        if (source[selectionName] !== undefined) {\n          return source[selectionName];\n        }\n        const result = mockScalar(\n          fieldNode,\n          args,\n          namedReturnType,\n          info,\n          source.__abstractType || info.parentType,\n          resolveValue,\n          isList,\n        );\n        return result;\n      } else if (isEnumType(namedReturnType)) {\n        if (source[selectionName] !== undefined) {\n          return source[selectionName];\n        }\n        const enumValues = namedReturnType.getValues().map((e) => e.name);\n        return isList ? enumValues : enumValues[0];\n      } else {\n        return null;\n      }\n    },\n  });\n  if (result.errors) {\n    if (result.errors.length === 1) {\n      throw result.errors[0].originalError || result.errors[0];\n    }\n    throw new Error(`RelayMockPayloadGenerator: ${result.errors.join(\", \")}`);\n  }\n  invariant(result?.data, \"Expected to generate a payload\");\n  return result as { data: MockData };\n}\n\nfunction mockCompositeType(\n  mockResolvers: MockResolvers | null,\n  namedReturnType: GraphQLNamedType,\n  userSpecifiedTypename: string | null,\n  resolveValue: ValueResolver,\n  fieldNode: FieldNode | null,\n  info: GraphQLResolveInfo | null,\n  args: { [argName: string]: unknown },\n  operation: OperationDescriptor<GraphQLSchema, DocumentNode>,\n  plural: boolean,\n) {\n  // Get the concrete type selection, concrete type on an abstract type\n  // selection, or the abstract type selection.\n  let typename = userSpecifiedTypename || namedReturnType.name;\n  let abstractTypeSelectionOnly = false;\n  const abstractType = isAbstractType(namedReturnType);\n\n  if (abstractType) {\n    invariant(info, \"Expected info to be defined\");\n    const possibleTypeNames = info.fieldNodes.reduce<string[]>(\n      (acc, fieldNode) => [\n        ...acc,\n        ...getPossibleConcreteTypeNamesFromAbstractTypeSelections(\n          operation.schema,\n          fieldNode.selectionSet as SelectionSetNode,\n          info.fragments,\n        ),\n      ],\n      [],\n    );\n    if (possibleTypeNames?.length) {\n      typename = possibleTypeNames[0];\n    } else {\n      abstractTypeSelectionOnly = true;\n    }\n  }\n\n  let result: InternalMockData | MultiDimensionalArray<InternalMockData> = {\n    ...getDefaultValues(\n      mockResolvers,\n      // If a mock resolver is provided for the abstract type, use it.\n      mockResolvers && mockResolvers[namedReturnType.name]\n        ? namedReturnType.name\n        : typename,\n      resolveValue,\n      fieldNode,\n      info,\n      args,\n      plural,\n    ),\n  };\n  if (\n    abstractType &&\n    result.__typename &&\n    mockResolvers &&\n    mockResolvers[namedReturnType.name] &&\n    mockResolvers[result.__typename]\n  ) {\n    // If a mock resolver is provided for both an abstract and a concrete type\n    // (for the typename possibly returned by the abstract type mock), merge\n    // the results.\n    result = deepmerge(\n      result,\n      getDefaultValues(\n        mockResolvers,\n        result.__typename,\n        resolveValue,\n        fieldNode,\n        info,\n        args,\n        plural,\n      ) as InternalMockData,\n    );\n  }\n\n  if (abstractType && !result[TYPENAME_KEY]) {\n    if (abstractTypeSelectionOnly) {\n      // When no concrete type selection exists, it means only interface\n      // fields are selected, so we can just use the first possible type.\n      //\n      // We keep a reference to the path so we can rewrite the __typename\n      // field in the output after execution to reflect that this not a\n      // selection on a concrete type.\n      const possibleType =\n        operation.schema.getPossibleTypes(namedReturnType)[0];\n      invariant(\n        possibleType,\n        \"Expected interface %s to be implemented by at least one concrete type\",\n        namedReturnType.name,\n      );\n      typename = possibleType.name;\n      invariant(info, \"Expected info to be defined\");\n    }\n    result.__typename = typename;\n    result.__abstractType = namedReturnType;\n  }\n\n  if (!info) {\n    return result;\n  }\n\n  let currentType = getNullableType(info.returnType);\n  while (currentType instanceof GraphQLList) {\n    currentType = getNullableType(currentType.ofType);\n    result = [result];\n  }\n\n  return result;\n}\n\nfunction getDefaultValues(\n  mockResolvers: MockResolvers | null,\n  typename: string,\n  resolveValue: ValueResolver,\n  fieldNode: FieldNode | null,\n  info: GraphQLResolveInfo | null,\n  args: { [argName: string]: unknown },\n  plural: boolean,\n) {\n  const defaultValues =\n    mockResolvers?.[typename] &&\n    (resolveValue(\n      typename,\n      {\n        parentType: info ? info.parentType.name : null,\n        name: fieldNode?.name.value || \"\",\n        alias: fieldNode?.alias?.value || null,\n        path: info ? pathToArray(info.path).filter(isString) : [],\n        args: args,\n      },\n      plural,\n    ) as MockData | undefined);\n  invariant(\n    defaultValues === undefined || typeof defaultValues === \"object\",\n    \"Expected mock resolver to return an object\",\n  );\n  return defaultValues;\n}\n\nfunction isString(value: unknown): value is string {\n  return typeof value === \"string\";\n}\n\nfunction getPossibleConcreteTypeNamesFromAbstractTypeSelections(\n  schema: GraphQLSchema,\n  selectionSet: SelectionSetNode,\n  fragments: { [key: string]: FragmentDefinitionNode },\n) {\n  const result: string[] = [];\n  selectionSet.selections.forEach((selection) => {\n    const fragmentDefinition = getFragmentSelection(selection, fragments);\n    if (fragmentDefinition) {\n      const typeName = fragmentDefinition.typeCondition?.name.value;\n      if (\n        // If undefined, it means the selection is an inline fragment on the\n        // current type; i.e. on an abstract type.\n        typeName === undefined ||\n        isAbstractType(schema.getType(typeName))\n      ) {\n        result.push(\n          ...getPossibleConcreteTypeNamesFromAbstractTypeSelections(\n            schema,\n            fragmentDefinition.selectionSet,\n            fragments,\n          ),\n        );\n      } else {\n        result.push(typeName);\n      }\n    }\n  });\n  return result;\n}\n\nfunction getFragmentSelection(\n  selection: SelectionNode,\n  fragments: { [key: string]: FragmentDefinitionNode },\n) {\n  if (selection.kind === \"FragmentSpread\") {\n    const fragmentDoc = fragments[selection.name.value];\n    invariant(\n      fragmentDoc,\n      \"Expected a fragment with name %s to exist\",\n      selection.name.value,\n    );\n    return fragmentDoc;\n  } else if (selection.kind === \"InlineFragment\") {\n    return selection;\n  }\n}\n\nfunction mockScalar(\n  fieldNode: FieldNode,\n  args: { [argName: string]: unknown },\n  type: GraphQLScalarType,\n  info: GraphQLResolveInfo,\n  parentType: GraphQLCompositeType,\n  resolveValue: ValueResolver,\n  plural: boolean,\n) {\n  if (fieldNode.name.value === TYPENAME_KEY) {\n    return isAbstractType(parentType) ? DEFAULT_MOCK_TYPENAME : parentType.name;\n  }\n  const context: MockResolverContext = {\n    name: fieldNode.name.value,\n    alias: fieldNode.alias?.value || null,\n    args,\n    path: pathToArray(info.path).filter(isString),\n    parentType: isAbstractType(parentType)\n      ? DEFAULT_MOCK_TYPENAME\n      : parentType.name,\n  };\n  return resolveValue(type.name, context, plural, undefined);\n}\n\nfunction rewriteConditionals(\n  document: DocumentNode,\n  undefinedBooleanVariables: string[],\n) {\n  return visit(document, {\n    Directive(node) {\n      // Default value for @include is set to false\n      if (\n        node.name.value === \"include\" &&\n        node.arguments?.[0].value.kind === \"Variable\" &&\n        undefinedBooleanVariables.includes(node.arguments[0].value.name.value)\n      ) {\n        return {\n          ...node,\n          arguments: [\n            {\n              ...node.arguments[0],\n              value: {\n                kind: \"BooleanValue\",\n                value: false,\n              },\n            },\n          ],\n        };\n      }\n      // Default value for @skip is set to true\n      if (\n        node.name.value === \"skip\" &&\n        node.arguments?.[0].value.kind === \"Variable\" &&\n        undefinedBooleanVariables.includes(node.arguments[0].value.name.value)\n      ) {\n        return {\n          ...node,\n          arguments: [\n            {\n              ...node.arguments[0],\n              value: {\n                kind: \"BooleanValue\",\n                value: true,\n              },\n            },\n          ],\n        };\n      }\n    },\n  });\n}\n\nfunction removeDeferAndStream(doc: DocumentNode): DocumentNode {\n  return visit(doc, {\n    Directive: (node) => {\n      if (node.name.value === \"defer\" || node.name.value === \"stream\") {\n        return null;\n      }\n      return;\n    },\n  });\n}\n\nfunction getRootType(\n  operation: OperationDescriptor,\n): GraphQLObjectType | undefined | null {\n  const rootType = getOperationAST(operation.request.node);\n  invariant(rootType, \"Expected operation to have a root type\");\n  switch (rootType.operation) {\n    case \"query\":\n      return operation.schema.getQueryType();\n    case \"mutation\":\n      return operation.schema.getMutationType();\n    case \"subscription\":\n      return operation.schema.getSubscriptionType();\n  }\n}\n"],
  "mappings": ";AAAA;AAAA,EACE;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAcP,SAAS,mBAAmB;AAC5B;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOP,OAAO,eAAe;AACtB,OAAO,eAAe;AAqBtB,IAAM,eAAe;AAId,SAAS,SACd,WACA,eACA,cAAiC,OACjC,YACoB;AAvEtB;AAwEE,QAAM,YAAY,EAAE,GAAG,wBAAwB,GAAG,cAAc;AAChE,QAAM,eAAe,oBAAoB,WAAW,UAAU;AAQ9D,QAAM,4BAAsC,CAAC;AAC7C,8BAAgB,UAAU,QAAQ,IAAI,MAAtC,mBAAyC,wBAAzC,mBAA8D;AAAA,IAC5D,CAAC,uBAAuB;AACtB,UACE,mBAAmB,KAAK,SAAS,eACjC,mBAAmB,KAAK,KAAK,UAAU,aACvC,UAAU,QAAQ,UAAU,mBAAmB,SAAS,KAAK,KAAK,MAChE,QACF;AACA,kCAA0B,KAAK,mBAAmB,SAAS,KAAK,KAAK;AAAA,MACvE;AAAA,IACF;AAAA;AAGF,MAAI,WAAW,UAAU,QAAQ;AACjC,MAAI,0BAA0B,SAAS,GAAG;AACxC,eAAW,oBAAoB,UAAU,yBAAyB;AAAA,EACpE;AACA,MAAI,aAAa;AACf,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF,OAAO;AACL,eAAW,qBAAqB,QAAQ;AAAA,EAC1C;AAEA,QAAM,SAAS,YAAY;AAAA,IACzB,QAAQ,UAAU;AAAA,IAClB;AAAA,IACA,gBAAgB,UAAU,QAAQ;AAAA,IAClC,WAAW;AAAA,MACT;AAAA,MACA,YAAY,SAAS;AAAA,MACrB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,CAAC;AAAA,MACD;AAAA,MACA;AAAA;AAAA,IACF;AAAA,IACA,eAAe,CAAC,QAA0B,MAAM,UAAU,SAAS;AA1HvE,UAAAA,KAAAC;AA4HM,YAAM,YAAuB,KAAK,WAAW,CAAC;AAC9C,YAAM,iBAAgBA,OAAAD,MAAA,UAAU,UAAV,gBAAAA,IAAiB,UAAjB,OAAAC,MAA0B,UAAU,KAAK;AAG/D,UAAI,OAAO,aAAa,MAAM,MAAM;AAClC,eAAO;AAAA,MACT;AAEA,YAAM,kBAAkB,aAAa,KAAK,UAAU;AACpD,YAAM,SAAS,WAAW,gBAAgB,KAAK,UAAU,CAAC;AAC1D,UAAI,gBAAgB,eAAe,GAAG;AACpC,cAAM,QAAQ,OAAO,aAAa;AAClC,cAAM,gBAAgB,CACpB,cACG;AA1Ib,cAAAD;AA4IU,cAAI,cAAc,MAAM;AACtB,mBAAO;AAAA,UACT;AAEA,gBAAM,wBACJ,aAAa,CAAC,MAAM,QAAQ,SAAS,KACjCA,MAAA,UAAU,YAAY,MAAtB,OAAAA,MAA2B,OAC3B;AAEN,gBAAM,sBAAsB;AAAA,YAC1B;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAEA,cAAI,MAAM,QAAQ,mBAAmB,GAAG;AACtC,gBAAI,MAAM,QAAQ,SAAS,GAAG;AAC5B,qBAAO,CAAC,GAAG,SAAS;AAAA,YACtB;AACA,mBAAO,CAAC,GAAG,mBAAmB;AAAA,UAChC;AAEA,iBAAO,EAAE,GAAG,qBAAqB,GAAG,UAAU;AAAA,QAChD;AACA,eAAO,cAAc,KAAK;AAAA,MAC5B,WAAW,aAAa,eAAe,GAAG;AACxC,YAAI,OAAO,aAAa,MAAM,QAAW;AACvC,iBAAO,OAAO,aAAa;AAAA,QAC7B;AACA,cAAME,UAAS;AAAA,UACb;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,OAAO,kBAAkB,KAAK;AAAA,UAC9B;AAAA,UACA;AAAA,QACF;AACA,eAAOA;AAAA,MACT,WAAW,WAAW,eAAe,GAAG;AACtC,YAAI,OAAO,aAAa,MAAM,QAAW;AACvC,iBAAO,OAAO,aAAa;AAAA,QAC7B;AACA,cAAM,aAAa,gBAAgB,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI;AAChE,eAAO,SAAS,aAAa,WAAW,CAAC;AAAA,MAC3C,OAAO;AACL,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF,CAAC;AACD,MAAI,OAAO,QAAQ;AACjB,QAAI,OAAO,OAAO,WAAW,GAAG;AAC9B,YAAM,OAAO,OAAO,CAAC,EAAE,iBAAiB,OAAO,OAAO,CAAC;AAAA,IACzD;AACA,UAAM,IAAI,MAAM,8BAA8B,OAAO,OAAO,KAAK,IAAI,GAAG;AAAA,EAC1E;AACA,YAAU,iCAAQ,MAAM,gCAAgC;AACxD,SAAO;AACT;AAEA,SAAS,kBACP,eACA,iBACA,uBACA,cACA,WACA,MACA,MACA,WACA,QACA;AAGA,MAAI,WAAW,yBAAyB,gBAAgB;AACxD,MAAI,4BAA4B;AAChC,QAAM,eAAe,eAAe,eAAe;AAEnD,MAAI,cAAc;AAChB,cAAU,MAAM,6BAA6B;AAC7C,UAAM,oBAAoB,KAAK,WAAW;AAAA,MACxC,CAAC,KAAKC,eAAc;AAAA,QAClB,GAAG;AAAA,QACH,GAAG;AAAA,UACD,UAAU;AAAA,UACVA,WAAU;AAAA,UACV,KAAK;AAAA,QACP;AAAA,MACF;AAAA,MACA,CAAC;AAAA,IACH;AACA,QAAI,uDAAmB,QAAQ;AAC7B,iBAAW,kBAAkB,CAAC;AAAA,IAChC,OAAO;AACL,kCAA4B;AAAA,IAC9B;AAAA,EACF;AAEA,MAAI,SAAqE;AAAA,IACvE,GAAG;AAAA,MACD;AAAA;AAAA,MAEA,iBAAiB,cAAc,gBAAgB,IAAI,IAC/C,gBAAgB,OAChB;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,MACE,gBACA,OAAO,cACP,iBACA,cAAc,gBAAgB,IAAI,KAClC,cAAc,OAAO,UAAU,GAC/B;AAIA,aAAS;AAAA,MACP;AAAA,MACA;AAAA,QACE;AAAA,QACA,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,MAAI,gBAAgB,CAAC,OAAO,YAAY,GAAG;AACzC,QAAI,2BAA2B;AAO7B,YAAM,eACJ,UAAU,OAAO,iBAAiB,eAAe,EAAE,CAAC;AACtD;AAAA,QACE;AAAA,QACA;AAAA,QACA,gBAAgB;AAAA,MAClB;AACA,iBAAW,aAAa;AACxB,gBAAU,MAAM,6BAA6B;AAAA,IAC/C;AACA,WAAO,aAAa;AACpB,WAAO,iBAAiB;AAAA,EAC1B;AAEA,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AAEA,MAAI,cAAc,gBAAgB,KAAK,UAAU;AACjD,SAAO,uBAAuB,aAAa;AACzC,kBAAc,gBAAgB,YAAY,MAAM;AAChD,aAAS,CAAC,MAAM;AAAA,EAClB;AAEA,SAAO;AACT;AAEA,SAAS,iBACP,eACA,UACA,cACA,WACA,MACA,MACA,QACA;AApUF;AAqUE,QAAM,iBACJ,+CAAgB,cACf;AAAA,IACC;AAAA,IACA;AAAA,MACE,YAAY,OAAO,KAAK,WAAW,OAAO;AAAA,MAC1C,OAAM,uCAAW,KAAK,UAAS;AAAA,MAC/B,SAAO,4CAAW,UAAX,mBAAkB,UAAS;AAAA,MAClC,MAAM,OAAO,YAAY,KAAK,IAAI,EAAE,OAAO,QAAQ,IAAI,CAAC;AAAA,MACxD;AAAA,IACF;AAAA,IACA;AAAA,EACF;AACF;AAAA,IACE,kBAAkB,UAAa,OAAO,kBAAkB;AAAA,IACxD;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,SAAS,OAAiC;AACjD,SAAO,OAAO,UAAU;AAC1B;AAEA,SAAS,uDACP,QACA,cACA,WACA;AACA,QAAM,SAAmB,CAAC;AAC1B,eAAa,WAAW,QAAQ,CAAC,cAAc;AAnWjD;AAoWI,UAAM,qBAAqB,qBAAqB,WAAW,SAAS;AACpE,QAAI,oBAAoB;AACtB,YAAM,YAAW,wBAAmB,kBAAnB,mBAAkC,KAAK;AACxD;AAAA;AAAA;AAAA,QAGE,aAAa,UACb,eAAe,OAAO,QAAQ,QAAQ,CAAC;AAAA,QACvC;AACA,eAAO;AAAA,UACL,GAAG;AAAA,YACD;AAAA,YACA,mBAAmB;AAAA,YACnB;AAAA,UACF;AAAA,QACF;AAAA,MACF,OAAO;AACL,eAAO,KAAK,QAAQ;AAAA,MACtB;AAAA,IACF;AAAA,EACF,CAAC;AACD,SAAO;AACT;AAEA,SAAS,qBACP,WACA,WACA;AACA,MAAI,UAAU,SAAS,kBAAkB;AACvC,UAAM,cAAc,UAAU,UAAU,KAAK,KAAK;AAClD;AAAA,MACE;AAAA,MACA;AAAA,MACA,UAAU,KAAK;AAAA,IACjB;AACA,WAAO;AAAA,EACT,WAAW,UAAU,SAAS,kBAAkB;AAC9C,WAAO;AAAA,EACT;AACF;AAEA,SAAS,WACP,WACA,MACA,MACA,MACA,YACA,cACA,QACA;AArZF;AAsZE,MAAI,UAAU,KAAK,UAAU,cAAc;AACzC,WAAO,eAAe,UAAU,IAAI,wBAAwB,WAAW;AAAA,EACzE;AACA,QAAM,UAA+B;AAAA,IACnC,MAAM,UAAU,KAAK;AAAA,IACrB,SAAO,eAAU,UAAV,mBAAiB,UAAS;AAAA,IACjC;AAAA,IACA,MAAM,YAAY,KAAK,IAAI,EAAE,OAAO,QAAQ;AAAA,IAC5C,YAAY,eAAe,UAAU,IACjC,wBACA,WAAW;AAAA,EACjB;AACA,SAAO,aAAa,KAAK,MAAM,SAAS,QAAQ,MAAS;AAC3D;AAEA,SAAS,oBACP,UACA,2BACA;AACA,SAAO,MAAM,UAAU;AAAA,IACrB,UAAU,MAAM;AA1apB;AA4aM,UACE,KAAK,KAAK,UAAU,eACpB,UAAK,cAAL,mBAAiB,GAAG,MAAM,UAAS,cACnC,0BAA0B,SAAS,KAAK,UAAU,CAAC,EAAE,MAAM,KAAK,KAAK,GACrE;AACA,eAAO;AAAA,UACL,GAAG;AAAA,UACH,WAAW;AAAA,YACT;AAAA,cACE,GAAG,KAAK,UAAU,CAAC;AAAA,cACnB,OAAO;AAAA,gBACL,MAAM;AAAA,gBACN,OAAO;AAAA,cACT;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAEA,UACE,KAAK,KAAK,UAAU,YACpB,UAAK,cAAL,mBAAiB,GAAG,MAAM,UAAS,cACnC,0BAA0B,SAAS,KAAK,UAAU,CAAC,EAAE,MAAM,KAAK,KAAK,GACrE;AACA,eAAO;AAAA,UACL,GAAG;AAAA,UACH,WAAW;AAAA,YACT;AAAA,cACE,GAAG,KAAK,UAAU,CAAC;AAAA,cACnB,OAAO;AAAA,gBACL,MAAM;AAAA,gBACN,OAAO;AAAA,cACT;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEA,SAAS,qBAAqB,KAAiC;AAC7D,SAAO,MAAM,KAAK;AAAA,IAChB,WAAW,CAAC,SAAS;AACnB,UAAI,KAAK,KAAK,UAAU,WAAW,KAAK,KAAK,UAAU,UAAU;AAC/D,eAAO;AAAA,MACT;AACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEA,SAAS,YACP,WACsC;AACtC,QAAM,WAAW,gBAAgB,UAAU,QAAQ,IAAI;AACvD,YAAU,UAAU,wCAAwC;AAC5D,UAAQ,SAAS,WAAW;AAAA,IAC1B,KAAK;AACH,aAAO,UAAU,OAAO,aAAa;AAAA,IACvC,KAAK;AACH,aAAO,UAAU,OAAO,gBAAgB;AAAA,IAC1C,KAAK;AACH,aAAO,UAAU,OAAO,oBAAoB;AAAA,EAChD;AACF;",
  "names": ["_a", "_b", "result", "fieldNode"]
}
