code: function () {
          log.debug('Generating OVE.js');
          // OVE.js is a combination of client/ove.js client/utils/utils.js and client/utils/constants.js
          let text = fs.readFileSync(path.join(__dirname, '..', 'client', 'ove.js'), Constants.UTF8);
          text += fs.readFileSync(path.join(__dirname, '..', 'client', 'utils', 'utils.js'), Constants.UTF8);
          // Important thing to note here is that the output is minified using UglifyJS. This library
          // only supports ES5. Therefore some newer JS capabilities may not work. And, if there was a
          // newer JS capability used in any of the files included in OVE.js, UglifyJS will produce an
          // empty file. This can be observed by reviewing corresponding errors on the browser.
          return uglify.minify(text
              // Inject constants
              .replace(/\/\/ @CONSTANTS/g, 'var Constants = ' + JSON.stringify(Constants) + ';')
              .replace(Constants.RegExp.Annotation.VERSION, pjson.version)
              .replace(Constants.RegExp.Annotation.LICENSE, pjson.license)
              .replace(Constants.RegExp.Annotation.AUTHOR, pjson.author)
              // Replace all let/const with var for ES5 compliance
              .replace(/(let|const)/g, 'var')
              // Remove all comments matching pattern
              .replace(Constants.RegExp.ES5_COMMENT_PATTERN, ''), { output: { comments: true } }).code;
      }
docs: ************************************************************
  OVE Client Library
  ************************************************************