code: func Compress(payload string, alg string, enc string, zip string, key interface{}) (token string, err error) {
  
  	if zipAlg, ok := jwcCompressors[zip]; ok {
  		compressed := zipAlg.Compress([]byte(payload))
  
  		jwtHeader := map[string]interface{}{
  			"enc": enc,
  			"alg": alg,
  			"zip": zip,
  		}
  
  		return encrypt(compressed, jwtHeader, key)
  	}
  
  	return "", errors.New(fmt.Sprintf("jwt.Compress(): Unknown compression method '%v'", zip))
  }
docs: // This method is DEPRICATED and subject to be removed in next version.
  // Use Encrypt(..) with Zip option instead.
  //
  // Compress produces encrypted & comressed JWT token given arbitrary payload, key management , encryption and compression algorithms to use (see constants for list of supported algs) and management key.
  // Management key is of different type for different key management alg, see specific
  // key management alg implementation documentation.
  //
  // It returns 5 parts encrypted & compressed JWT token as string and not nil error if something went wrong.