Summary: > "Hi, kids, do you like violence?" Alrighty, in flipper-frontend-core we have the **base** implmenetation of flipperLib (the thing exposed to the plugins). This base implementation is never used directly by the plugins, rather it is shared code used by the real consumers - flipper-ui-core (regular Flipper with UI) and flipper-server-companion (the thing that allows hosting plugins on the server). These real consumers actually run the plugins and expose flipperLib to the plugins. In flipper-ui-core we have a more sophisticated logic of calling the intern graph - we check for VPN connection and authn. Therefore, to expose the same way of handling intern graph requests we **override** intern graph calls provided by flipper-frontend-core. *Ideally*, we should move checking for VPN connection and authn to flipper-frontend-core, but currently it is a lot of effort for very little gains: 1. flipper-frontend-core does not have a notion of a user 2. Even if we move the authn-related logic there the only real consumer of that effort if flipper-server-companion that is used only by UIQR (which in its turn is barely used in the headless mode and do not require authn-related logic). Thus, we just override intern graph request on the flipper-ui-core side since it is the simplest and the most impactful thing to do at the moment. Reviewed By: LukeDefeo Differential Revision: D49494922 fbshipit-source-id: 6f1d521af7ca5bd50549b7bc328d6b8fcab98389
Flipper Desktop
This folder contains everything to run the Flipper 'Desktop', that is, the UI which you use to interact with the device / app under debug.
Packages provided here:
- flipper-common: utilities & types shared between client, server, and plugins
- flipper-server-core: all device & client management goes in here. Basically flipper's backend
- flipper-ui-core: all UI goes in here, as far as it doesn't depend on Electron
- app: the Electron app, will load flipper-server-core and flipper-ui-core, and glue them together, providing implementations for some electron specific stuff like dialogs
- flipper-server: A node process hosting flipper-server-core that can be connected to over websockets. Also, it can serve a browser version of the UI as well.
- flipper-ui-browser: thin wrapper around flipper-ui-core, providing some browser specific behavior / stubs.
- flipper-dump: (might remove later) as an alternative way to test flipper-server-core.
- flipper-plugin: The flipper SDK used by plugins. Exposes all API's that can be used by plugins
- pkg: CLI tool to manage building flipper plugins
- pkg-lib
- plugin-lib
- babel-transformer
- doctor
- eslint-plugin-flipper
Packages overview
app:
- flipper-server-core (directly embedded)
- flipper-ui-core
- plugins (prebundled)
- plugins (installable)
- flipper-plugin
flipper-server
- flipper-server-core
- flipper-ui-browser (served by webserver)
- flipper-ui-core (communicates using web sockets with server-core)
- plugins (prebundled)
- plugins (installable)?
flipper-dump
- flipper-server-core