code: public Document signatureQuery(Document document, String operationName) {
          return sortAST(
                  removeAliases(
                          hideLiterals(
                                  dropUnusedQueryDefinitions(document, operationName)))
          );
      }
docs: This can produce a "signature" canonical AST that conforms to the algorithm as outlined
  <a href="https://github.com/apollographql/apollo-server/blob/master/packages/apollo-engine-reporting/src/signature.ts">here</a>
  which removes excess operations, removes any field aliases, hides literal values and sorts the result into a canonical
  query
  
  @param document      the document to make a signature query from
  @param operationName the name of the operation to do it for (since only one query can be run at a time)
  
  @return the signature query in document form