hunk.code_window: -- | HGE's own representation of various JWKs
   data JWTConfig
     = JWTConfig
     { jcType :: !T.Text
     , jcKey  :: !JWK
     } deriving (Show, Eq)
   allowedRolesClaim :: T.Text
  
hunk.labels: keep keep keep replace replace keep keep keep
hunk.after_edit:   { jcType    :: !T.Text
     , jcKey     :: !JWK
     , jcClaimNs :: !(Maybe T.Text)
  
hunk.file_path: server/src-lib/Hasura/Server/Auth/JWT.hs
hunk.type: replace
file: const Express = require('express');
  const webpack = require('webpack');
  
  const webpackConfig = require('./dev.config');
  const compiler = webpack(webpackConfig);
  const hasuraConfig = require('../hasuraconfig');
  
  const host = hasuraConfig.hmrHost;
  const port = hasuraConfig.hmrPort;
  
  const serverOptions = {
    contentBase: 'http://' + host + ':' + port,
    logLevel: 'silent',
    hot: true,
    inline: true,
    lazy: false,
    publicPath: webpackConfig.output.publicPath,
    headers: { 'Access-Control-Allow-Origin': '*' },
    stats: { colors: true },
  };
  
  const app = new Express();
  
  app.use(require('webpack-dev-middleware')(compiler, serverOptions));
  app.use(require('webpack-hot-middleware')(compiler));
  
  app.listen(port, function onAppListening(err) {
    if (err) {
      console.error(err);
    } else {
      console.info(
        '==> 🚧  Webpack development server listening on port %s',
        port
      );
    }
  });
  