{
  "parts": [
    {
      "name": "DB",
      "hooks": {
        "shutdown": "ep_etherpad-lite/node/db/DB"
      }
    },
    {
      "name": "Minify",
      "hooks": {
        "shutdown": "ep_etherpad-lite/node/utils/Minify"
      }
    },
    {
      "name": "express",
      "hooks": {
        "createServer": "ep_etherpad-lite/node/hooks/express",
        "restartServer": "ep_etherpad-lite/node/hooks/express",
        "shutdown": "ep_etherpad-lite/node/hooks/express"
      }
    },
    {
      "name": "static",
      "hooks": {
        "expressPreSession": "ep_etherpad-lite/node/hooks/express/static"
      }
    },
    {
      "name": "stats",
      "hooks": {
        "shutdown": "ep_etherpad-lite/node/stats"
      }
    },
    {
      "name": "i18n",
      "hooks": {
        "expressPreSession": "ep_etherpad-lite/node/hooks/i18n"
      }
    },
    {
      "name": "specialpages",
      "hooks": {
        "expressCreateServer": "ep_etherpad-lite/node/hooks/express/specialpages",
        "expressPreSession": "ep_etherpad-lite/node/hooks/express/specialpages",
        "socketio": "ep_etherpad-lite/node/hooks/express/specialpages"
      }
    },
    {
      "name": "oauth2",
        "hooks": {
            "expressCreateServer": "ep_etherpad-lite/node/security/OAuth2Provider"
        }
    },
    {
      "name": "padurlsanitize",
      "hooks": {
        "expressCreateServer": "ep_etherpad-lite/node/hooks/express/padurlsanitize"
      }
    },
    {
      "name": "pwa",
      "hooks": {
        "expressCreateServer": "ep_etherpad-lite/node/hooks/express/pwa"
      }
    },
    {
      "name": "apicalls",
      "hooks": {
        "expressPreSession": "ep_etherpad-lite/node/hooks/express/apicalls"
      }
    },
    {
      "name": "importexport",
      "hooks": {
        "expressCreateServer": "ep_etherpad-lite/node/hooks/express/importexport"
      }
    },
    {
      "name": "errorhandling",
      "hooks": {
        "expressCreateServer": "ep_etherpad-lite/node/hooks/express/errorhandling"
      }
    },
    {
      "name": "socketio",
      "hooks": {
        "expressCloseServer": "ep_etherpad-lite/node/hooks/express/socketio",
        "expressCreateServer": "ep_etherpad-lite/node/hooks/express/socketio",
        "socketio": "ep_etherpad-lite/node/handler/PadMessageHandler"
      }
    },
    {
      "name": "tests",
      "hooks": {
        "expressPreSession": "ep_etherpad-lite/node/hooks/express/tests"
      }
    },
    {
      "name": "admin",
      "hooks": {
        "expressCreateServer": "ep_etherpad-lite/node/hooks/express/admin"
      }
    },
    {
      "name": "adminplugins",
      "hooks": {
        "socketio": "ep_etherpad-lite/node/hooks/express/adminplugins"
      }
    },
    {
      "name": "adminsettings",
      "hooks": {
        "socketio": "ep_etherpad-lite/node/hooks/express/adminsettings"
      }
    },
    {
      "name": "openapi",
      "hooks": {
        "expressPreSession": "ep_etherpad-lite/node/hooks/express/openapi"
      }
    }
  ]
}
