hunk.code_window:         let res = fromRawPem (BL.fromStrict $ TE.encodeUtf8 key)
               err e = "Could not decode PEM: " <> T.unpack e
           either (invalidJwk . err) (return . JWTConfig ktype) res
         invalidJwk msg = fail ("Invalid JWK: " <> msg)
   -- | Helper functions to decode PEM bytestring to RSA public key
  
hunk.labels: keep keep replace keep keep keep keep keep
hunk.after_edit:         either (invalidJwk . err) (\r -> return $ JWTConfig ktype r cns) res
  
hunk.file_path: server/src-lib/Hasura/Server/Auth/JWT.hs
hunk.type: replace
file: {
    "name": "graphql-engine-console",
    "description": "Console for Hasura GraphQL Engine",
    "author": "Hasura (https://github.com/hasura/graphql-engine)",
    "license": "AGPLv3",
    "version": "0.1.0",
    "repository": {
      "type": "git",
      "url": "https://github.com/hasura/graphql-engine"
    },
    "main": "index.js",
    "homepage": "https://hasura.io/",
    "keywords": [],
    "scripts": {
      "start": "concurrently --kill-others \"npm run start-prod\"",
      "start-prod": "better-npm-run start-prod",
      "build": "webpack --progress -p --colors --display-error-details --config webpack/prod.config.js",
      "build-unused": "webpack --verbose --colors --display-error-details --config webpack/prod.config.js --json | webpack-unused -s src",
      "postinstall": "webpack --display-error-details --config webpack/prod.config.js",
      "lint": "eslint -c .eslintrc src api",
      "start-dev": "better-npm-run start-dev",
      "watch-client": "better-npm-run watch-client",
      "dev": "concurrently --kill-others \"npm run watch-client\" \"npm run start-dev\" ",
      "precommit": "lint-staged",
      "cypress": "cypress open",
      "test": "cypress run --spec 'cypress/integration/test_complete.js' --config baseUrl=$CYPRESS_BASE_URL"
    },
    "lint-staged": {
      "*.js": [
        "eslint --fix",
        "git add"
      ],
      "*.{js,json,css,md}": [
        "prettier --single-quote --trailing-comma es5 --write",
        "git add"
      ]
    },
    "betterScripts": {
      "start-prod": {
        "command": "node ./bin/server.js",
        "env": {
          "NODE_PATH": "./src",
          "NODE_ENV": "production",
          "PORT": 8080
        }
      },
      "start-dev": {
        "command": "node -r dotenv/config ./bin/server.js"
      },
      "watch-client": {
        "command": "node -r dotenv/config webpack/webpack-dev-server.js"
      }
    },
    "dependencies": {
      "apollo-link": "^1.2.2",
      "apollo-link-ws": "^1.0.8",
      "babel-polyfill": "^6.26.0",
      "brace": "^0.11.1",
      "deep-equal": "^1.0.1",
      "graphiql": "^0.11.11",
      "graphql": "^0.13.2",
      "hasura-console-graphiql": "0.0.1",
      "history": "^3.0.0",
      "hoist-non-react-statics": "^1.0.3",
      "invariant": "^2.2.0",
      "isomorphic-fetch": "^2.2.1",
      "less": "^3.7.1",
      "lru-memoize": "^1.0.0",
      "map-props": "^1.0.0",
      "multireducer": "^1.0.2",
      "piping": "^0.3.0",
      "prettier": "^1.13.0",
      "pretty-error": "^1.2.0",
      "prop-types": "^15.6.0",
      "query-string": "^6.1.0",
      "react": "^16.4.0",
      "react-ace": "^6.1.1",
      "react-bootstrap": "^0.32.1",
      "react-copy-to-clipboard": "^5.0.0",
      "react-dom": "^16.4.0",
      "react-helmet": "^5.2.0",
      "react-hot-loader": "^4.2.0",
      "react-modal": "^3.1.2",
      "react-notification-system": "^0.2.17",
      "react-notification-system-redux": "^1.2.0",
      "react-progress-bar-plus": "^1.3.1",
      "react-redux": "^5.0.6",
      "react-router": "^3.2.0",
      "react-router-redux": "^4.0.8",
      "react-table": "^6.8.6",
      "react-tabs": "^2.1.0",
      "react-toggle": "^4.0.2",
      "redux": "^4.0.0",
      "redux-logger": "^3.0.6",
      "redux-thunk": "^2.2.0",
      "semver": "^5.3.0",
      "subscriptions-transport-ws": "^0.9.12",
      "uuid": "^3.0.1",
      "valid-url": "^1.0.9"
    },
    "devDependencies": {
      "babel-core": "^6.26.0",
      "babel-eslint": "^8.2.3",
      "babel-loader": "^7.1.2",
      "babel-plugin-istanbul": "^4.1.6",
      "babel-plugin-react-transform": "~3.0.0",
      "babel-plugin-transform-react-remove-prop-types": "^0.4.10",
      "babel-plugin-typecheck": "^2.0.0",
      "babel-preset-env": "^1.6.1",
      "babel-preset-react": "^6.24.1",
      "babel-preset-stage-0": "^6.24.1",
      "babel-runtime": "~6.26.0",
      "better-npm-run": "^0.1.0",
      "bootstrap-loader": "^2.2.0",
      "bootstrap-sass": "^3.3.7",
      "clean-webpack-plugin": "^0.1.17",
      "concurrently": "^3.5.0",
      "css-loader": "^0.28.11",
      "cypress": "3.0.2",
      "dotenv": "^5.0.1",
      "eslint": "^4.19.1",
      "eslint-config-airbnb": "16.1.0",
      "eslint-loader": "^1.0.0",
      "eslint-plugin-chai-friendly": "^0.4.1",
      "eslint-plugin-cypress": "^2.0.1",
      "eslint-plugin-import": "^2.12.0",
      "eslint-plugin-jsx-a11y": "^6.0.3",
      "eslint-plugin-react": "^7.9.1",
      "express": "^4.13.3",
      "express-session": "^1.12.1",
      "extract-text-webpack-plugin": "^3.0.2",
      "file-loader": "^1.1.11",
      "font-awesome": "^4.7.0",
      "font-awesome-webpack": "0.0.4",
      "husky": "^0.14.3",
      "ignore-loader": "^0.1.2",
      "jquery": "^3.3.1",
      "json-loader": "^0.5.4",
      "less-loader": "^4.1.0",
      "lint-staged": "^6.1.1",
      "mini-css-extract-plugin": "^0.4.0",
      "node-sass": "^4.9.2",
      "nyc": "^12.0.2",
      "optimize-css-assets-webpack-plugin": "^4.0.2",
      "react-a11y": "^0.2.6",
      "react-addons-test-utils": "^15.0.3",
      "react-transform-hmr": "1.0.4",
      "redux-devtools": "^3.4.1",
      "redux-devtools-dock-monitor": "^1.1.2",
      "redux-devtools-log-monitor": "^1.3.0",
      "resolve-url-loader": "^2.3.0",
      "sass-loader": "^7.0.1",
      "sinon": "^1.17.7",
      "style-loader": "^0.20.3",
      "timekeeper": "1.0.0",
      "uglifyjs-webpack-plugin": "^1.2.7",
      "unused-files-webpack-plugin": "^3.4.0",
      "url-loader": "^1.0.1",
      "webpack": "^4.14.0",
      "webpack-bundle-analyzer": "^2.9.1",
      "webpack-cli": "^3.0.8",
      "webpack-dev-middleware": "^3.1.3",
      "webpack-hot-middleware": "^2.22.2",
      "webpack-isomorphic-tools": "^3.0.5"
    },
    "engines": {
      "node": ">=8.9.1"
    }
  }
  