== Plugin Framework `require("ep_etherpad-lite/static/js/plugingfw/plugins")` === plugins.update `require("ep_etherpad-lite/static/js/plugingfw/plugins").update()` will use npm to list all installed modules and read their ep.json files, registering the contained hooks. A hook registration is a pair of a hook name and a function reference (filename for require() plus function name) === hooks.callAll `require("ep_etherpad-lite/static/js/plugingfw/hooks").callAll("hook_name", {argname:value})` will call all hook functions registered for `hook_name` with `{argname:value}`. === hooks.aCallAll ? === ...