         })
 
         exec init, data
+        postInit() if postInit

  setup: setup = (context = {}) ->
    if context.__typename is 'ArtworkContextAuction'
      query: """
          query artwork(
            $id: String!,
            $isClosed: Boolean!,
            $auctionId: ID,
            $saleSize: Int = 4,
            $saleSort: SaleSorts = TIMELY_AT_NAME_ASC
          ) {
            artwork(id: $id) {
              ... partner
              ... auction_artworks @skip(if: $isClosed)
              ... artist_artworks @include(if: $isClosed)
              ... related_artworks @include(if: $isClosed)
            }

            ... followed_artist_ids @skip(if: $isClosed)

            sales(size: $saleSize, sort: $saleSort) {
              ... current_auctions
            }
          }
          #{require '../../../components/artwork_brick/query.coffee'}
          #{require '../components/partner/query.coffee'}
          #{require('../components/auction_artworks/query.coffee').auction_artworks}
          #{require('../components/auction_artworks/query.coffee').followed_artist_ids(CurrentUser.orNull())}
          #{require('../../../components/current_auctions/query.js').default}
          #{require '../components/artist_artworks/query.coffee'}
          #{require '../components/related_artworks/query.coffee'}
        """
      variables:
        isClosed: context.is_closed
        auctionId: sd.AUCTION.id

    exec sharedInit

    context = CLIENT.context or {}
    { query, init, postInit, variables } = setup(context)

    return unless query? and init?
    variables ?= {}
