code: public static ISObject zip(ISObject... objects) {
          ByteArrayOutputStream baos = new ByteArrayOutputStream();
          ZipOutputStream zos = new ZipOutputStream(baos);
          try {
              for (ISObject obj : objects) {
                  ZipEntry entry = new ZipEntry(obj.getAttribute(SObject.ATTR_FILE_NAME));
                  InputStream is = obj.asInputStream();
                  zos.putNextEntry(entry);
                  copy(is, zos, false);
                  zos.closeEntry();
              }
          } catch (IOException e) {
              throw E.ioException(e);
          } finally {
              close(zos);
          }
          return SObject.of(Codec.encodeUrl(S.random()), baos.toByteArray());
      }
docs: Zip a list of sobject into a single sobject.
  
  @param objects
  the sobjects to be zipped.
  @return an sobject that is a zip package of `objects`.