Commit Graph

54 Commits

Author SHA1 Message Date
Michel Weststrate
c0cd32564a Organise files per device
Summary:
Moved all logic per device type we support to its own dir, including tools and utilities around it, which makes it easier to consolidate logic and decouple in turn per device type.

Per type, all logic can be found in

`server/devices/(desktop|metro|android|ios|webapp)`

Reviewed By: timur-valiev

Differential Revision: D30277817

fbshipit-source-id: 2b5339c363d5d31ceeba07cec03826fc67cf3748
2021-08-13 04:02:32 -07:00
Michel Weststrate
5e8c968222 Move devices to server folder
Summary:
This is the first of many diffs that extracts the connection, device, client detection out of the flipper core, to create a reusable flipper-server library that can be used in e.g. flipper-dump.

To keep diffs a little smaller, the current connection logic is first moved to the `server/` directory, and decoupled manually from the rest of the core, before moving it over to a separate package.

This first diffs moves the `comms/`, `devices/` and certificate utilities to the `server` directory.

Further untangling will follow in next diffs

Reviewed By: timur-valiev

Differential Revision: D30246551

fbshipit-source-id: c84259bfb1239119b3267a51b015e30c3c080866
2021-08-12 05:43:43 -07:00
Michel Weststrate
d23ccfcd44 Restore copy on text
Summary:
Some folks were missing the copy as text ManagedTable used to have, so introduced both the options to either copy as text (visible columns or custom copy handler) or as JSON

Changelog: It is now possible to both copy as text or as JSON from data tables

Reviewed By: jknoxville

Differential Revision: D29712096

fbshipit-source-id: 27bd2e869a247bd0896ce2774c08651123fd531d
2021-07-16 03:43:36 -07:00
Thuy Hai Nguyen
8da7495a1a Mutations GraphQL calls
Summary: Added Create, Update, and Delete GraphQL calls (local devdb)

Reviewed By: timur-valiev

Differential Revision: D29472343

fbshipit-source-id: 8fc93da87b90bf8b6cfe24b13bee5c5fe97ab7e3
2021-06-30 13:53:13 -07:00
Michel Weststrate
8e0d3cf779 Removed some old ui/ components
Summary: Removing old components that are no longer used, and cleaning up index.tsx to prevent future for some of those

Reviewed By: nikoant

Differential Revision: D29428621

fbshipit-source-id: 78ae51c09510738cf2d75982fdae35b9ef6d2d7e
2021-06-30 10:42:32 -07:00
Michel Weststrate
1dafe351f7 Remove SearchableDataInspector
Summary: Fury was the last user of this component

Reviewed By: nikoant

Differential Revision: D29426804

fbshipit-source-id: 793135119e70b41eda0391d3fedee1c9b6834cbd
2021-06-30 10:42:32 -07:00
Michel Weststrate
16154e1343 Remove classic plugin infra
Summary:
This removes all code duplication / old plugin infra that isn't needed anymore when all plugin run on the Sandy plugin infra structure.

The diff is quite large, but the minimal one that passes tests and compiles. Existing tests are preserved by wrapping all remaining tests in `wrapSandy` for classic plugins where needed

Reviewed By: passy

Differential Revision: D29394738

fbshipit-source-id: 1315fabd9f048576aed15ed5f1cb6414d5fdbd40
2021-06-30 10:42:32 -07:00
Michel Weststrate
4b3772ced4 serialization
Summary: Remove serialisation utilities which are now unused

Reviewed By: priteshrnandgaonkar

Differential Revision: D29394737

fbshipit-source-id: 19ead40dfdb493cbbaee09745b3fc313272da34d
2021-06-30 10:42:32 -07:00
Michel Weststrate
8359f74a21 Get rid of immutablejs
Summary:
Changelog: 'flipper' package no longer uses or exposes immutablejs, or ManagedTable_Immutable

ImmutableJS was used in a few places, requires some specific knowledge to use optimally (e.g. batching was used nowhere), but most importantly resulted in a lot of unmaintained code duplication in terms of ManagedTable_immutable and the searchable variant.

For the planned trace export speedups this means that there is also serialization case less to worry about.

Reviewed By: jknoxville

Differential Revision: D29265677

fbshipit-source-id: 92e86081c03fb8da59d2c9f975f04a05e275c317
2021-06-29 08:04:22 -07:00
Michel Weststrate
729922e8ad clean up createTablePlugin abstraction
Summary:
createTablePlugin isn't used anymore, since all FB plugins now use flipper-plugin's, version.

Verified that no public OSS plugins use the abstraction either.

This is part of a bigger stack to clean up immutable js usage / managed table duplication and export performance speed

Reviewed By: jknoxville

Differential Revision: D29265565

fbshipit-source-id: dd6671f0b3af857db1a512c6658e1ff75c49358d
2021-06-25 04:35:13 -07:00
Michel Weststrate
01ea822341 Code shuffle
Summary:
Moved a lot of utility logic in separate files for Android and iOS, to make cleanup in next diffs easier by having a bit smaller files.

Purely a code shuffle, no functional changes

Reviewed By: passy

Differential Revision: D28102399

fbshipit-source-id: 2fd8f6669bdd2804fa8a7e1791c610ae7883eda6
2021-05-04 13:50:31 -07:00
Anton Nikolaev
368dd4a5ab Remove Value/renderValue public API from "flipper"
Summary:
Moving Value/renderValue API to "database" plugin as these APIs used exclusively by this plugin.

Alternative to that could be moving this API to "flipper-plugin" instead, but I think it doesn't make sense to expose public API which is only used in one plugin.

Reviewed By: mweststrate

Differential Revision: D28110483

fbshipit-source-id: 1576444681c1e0531fe45f0c15f442d65a28f803
2021-04-30 09:38:15 -07:00
Michel Weststrate
8e02b2ec10 Expose Toolbar from Sandy
Summary: Moved Toolbar to flipper-plugin. No further changes.

Reviewed By: nikoant

Differential Revision: D28027334

fbshipit-source-id: 35de13d87734ae3a8af037166945b1a669106274
2021-04-28 05:48:20 -07:00
Michel Weststrate
c005753018 Expose Panel and useLocalStorageState
Summary: Expose a Panel api from Sandy, which is quite similar to the old one, except that it uses Antd, and it will remember the users closed / open preference through sessions, a much requested feature.

Reviewed By: nikoant

Differential Revision: D27966607

fbshipit-source-id: 9b18df377215c1e6c5844d0bf972058c8c574cbb
2021-04-23 09:29:59 -07:00
Michel Weststrate
69de9bc92d Initial move to flipper-plugin
Summary:
This diff moves the core of ElementsInspector to flipper-plugin and decouples it from legacy design system and Electron, without any significant improvements or API changes yet, which will follow later.

Colors and docs will be added later in this stack.

Reviewed By: passy

Differential Revision: D27660300

fbshipit-source-id: 96abfa3b3174fa852cf04ae119c23c3d629fee74
2021-04-15 07:48:33 -07:00
Anton Nikolaev
b45b5f854a Move layout plugin sidebar extensions to the plugin package
Summary: Moved layout plugin sidebar extensions to the plugin package.

Reviewed By: passy

Differential Revision: D27036489

fbshipit-source-id: 5b3406e5c50ba61709d925a3c0cb07a6fd7552db
2021-04-09 05:22:00 -07:00
Michel Weststrate
32bf4c32c2 Remove Console feature
Reviewed By: fabiomassimo

Differential Revision: D27622952

fbshipit-source-id: 45ce5188a55f50b8ca28f28f354d9402902a5df8
2021-04-09 05:03:28 -07:00
Michel Weststrate
53c557f923 Move DataInspector to flipper-plugin
Summary:
This diff moves the rest of the DataInspector jungle to flipper-plugin. No actual improvements are made yet, but the code is decoupled from Electron and the legacy theming. For example by using Antd based context menus.

Note that `ManagedDataInspector` is now rebranded `DataInspector`, as that is the only variation that should (and is) used publicly.

For the interactionTracker removal, see next diff.

SearchableDataInspector will be addressed in a next diff

Reviewed By: passy

Differential Revision: D27603125

fbshipit-source-id: 188bd000260e4e4704202ce02c7fc98319f0bc22
2021-04-07 07:55:13 -07:00
Michel Weststrate
9030a98c6e Move DataDescription utility to flipper-plugin
Summary:
Another utility component used by DataInspector.

Colors have been hardcoded for now, to decouple from the classic Flipper color palette. Will organize this better later in this stack, and when addressing / adding support for dark mode.

Buttons, checkboxes, selects have been replaced by Antd's counterpart.

Unlike ManagedDataTable, the DataInspector is primarily moved rather than copied & adapted, as the underlying abstraction / API won't change significantly. So the changes here will immediately affect all plugins in Flipper using this component.

Reviewed By: passy

Differential Revision: D27603126

fbshipit-source-id: bacd48c9af2b591033e7f2352627f11acb4df589
2021-04-07 07:55:13 -07:00
Michel Weststrate
b6674bf96b Move highlighter to flipper-plugin
Summary: This stack moves the DataInspector component to flipper-plugin. The first diffs will move some utility abstractions to turn this into smaller steps

Reviewed By: passy

Differential Revision: D27591890

fbshipit-source-id: d0285ca31b6c9b334000dd15c722b9bda7638d73
2021-04-07 07:55:12 -07:00
Michel Weststrate
07c4470ab9 Stricter types for DataDescription
Summary: Made datatypes used by DataInspector more strictly typed (in the hope to be able to drop some, but all are still in use, although the distinction between different elements isn't always clear).

Reviewed By: passy

Differential Revision: D27266825

fbshipit-source-id: 6a1c74b0ae3daff6299ca598b18a205d17c42e22
2021-04-07 07:55:12 -07:00
Michel Weststrate
ba8232f30d Move DetailSidebar to flipper-plugin
Summary: This moves `<DetailSidebar>` component to `flipper-plugin` and documents it. No semantic changes.

Reviewed By: passy

Differential Revision: D27234575

fbshipit-source-id: 74640602d718f84ad999f5dac0420089796ed7fb
2021-03-23 12:56:17 -07:00
Michel Weststrate
4e2383cdb0 Introduce showNotification API
Summary: Introduced `showNotifcation` to the Sandy API.

Reviewed By: jknoxville

Differential Revision: D27012001

fbshipit-source-id: d3f237910a478400b0f925f0362af485c96072bb
2021-03-16 15:03:47 -07:00
Michel Weststrate
44bb5b1beb Introduced sorting, column visibility and column resizing
Summary:
Add support for resizable columns, column sorting, and hiding / showing columns

Moved some utilities from Flipper to flipper-plugin, such as Interactive and LowPassFilter

Split DataTable into two components; DataSourceRenderer which takes care of purely rendering the virtualization, and DataTable that has the Chrome around that, such as column headers, search bar, etc.

Reviewed By: nikoant

Differential Revision: D26321105

fbshipit-source-id: 32b8fc03b4fb97b3af52b23e273c3e5b8cbc4498
2021-03-16 15:03:43 -07:00
Pritesh Nandgaonkar
6a0854557e Add gk checks in plugin
Summary:
This diff adds gk checks, VPN check and User login check to our plugin.

I added gk checks for Insta and FB apps. There are three kind of GK's. One with FB universe, one with Distillery universe and one with Insta WWW universe. We have API's to check gk with FB and Distillery universe. API to check with Insta WWW universe doesn't exists. There are some technical challenges to build this API. So right now for gks with Insta WWW universe, we just show an notification with info icon. For gks in other universe we aggressively check it when user closes the notif to verify if user assigned himself/herself to it.

In long term we are moving away from gks altogether, we need this UX improvement as it will help users to onboard easily.

See the following flow.

Reviewed By: mweststrate

Differential Revision: D26176996

fbshipit-source-id: 92a931610f9b244c14c6888bb12df936b62edd75
2021-02-03 02:25:54 -08:00
Michel Weststrate
34c915a739 Add support for async / custom plugin export
Summary:
Sandy plugins can now set up an `onExport` handler to enable customizing the export format of a plugin: `client.onExport(callback: (idler, onStatusMessage) => Promise<state>)`

Import will be done in next diff

Reviewed By: nikoant

Differential Revision: D26124440

fbshipit-source-id: c787c79d929aa8fb484f15a9340d7c87545793cb
2021-02-01 11:43:29 -08:00
Michel Weststrate
41a1af33cb Kill metrics reducer
Reviewed By: nikoant

Differential Revision: D24332440

fbshipit-source-id: 0a48b25f98d93b181b622e8477a74c7ef0094816
2020-12-15 01:44:27 -08:00
Michel Weststrate
2ad81f2c63 Reduce sign in errors
Summary:
A lot of the errors in our monitoring / logs are mere sign in errors. Many of them are unnecessary as they are features triggered automatically even when the user isn't logged in.

This diff improves error handling and prevents requires from being made / features from being used by introducing a `<RequireLogin>` component that will hide an underlying feature if the user isn't logged in.

This also prevents the support request form from failing after the user has filled in all details.

This also fixes an issue where mobilebuilds plugin didn't refresh after the user did log in.

From our monitoring error 1,9 and 10:

{F350458668}

Reviewed By: jknoxville

Differential Revision: D25494356

fbshipit-source-id: 95701381bb74c27b9ea9658dc4df678e5f0710e0
2020-12-14 02:01:27 -08:00
Michel Weststrate
dd6f39c2b3 Wire up Tracking to different ant.design elements
Summary:
This wires up tracking directly to the ANT component library for the following components:

1. `Button`
2. `Collapse.Panel`
3. `Tabs`

Other less commonly used elements can be connected in the future if needed.
I played a bit with different patterns, but in testing the patch-package patching give the most reliable results. Alternatives considered:

1. Expect users to explicitly wrap there components, e.g. `<Tracked><Button>Hi</Button></Tracked>`
    1. Didn't implement this because it would be very common to forget, and at the moment you want to make some analysis you'll discover there is no interesting data available. I think for tracking we want to have opt-out rather than opt-in
    2. The additional wrapping can cause some subtile layout issues due to static field inspection / forwarded refs (e.g. Ant often has an assumption that relevant children types are _directly_ nested under their parent element. For examle `<Tooltip><Tracked><Button>` does not work as expected
2. Expose our own `Button` / `Collapse` / `Tabs` that applies `Tracked` to an underlying Ant component.
    1. also suffers from 1.b.
    2. It is gonna be quite confusing for other devs that some elements would need to be imported from `flipper-plugin`, ant some from `antd`, and that this is likely to change over time. We could lint against it, but it will be still suboptimal

Reviewed By: jknoxville

Differential Revision: D25196321

fbshipit-source-id: b559356498c3191a283062a88daacb354b0f79f4
2020-12-03 04:15:45 -08:00
Michel Weststrate
f7c40c315c Update to Emotion 11
Summary: Per title

Reviewed By: passy

Differential Revision: D24994086

fbshipit-source-id: 84d83638ec518a39ea2d80f56b8c794c8b86a9d4
2020-11-18 06:52:03 -08:00
Timur Valiev
957ae9d7ca small Searchable table refactoring
Summary: export filterRowsFact so we can reuse it. it's needed in diffs above

Reviewed By: SimoneCasagranda

Differential Revision: D24445819

fbshipit-source-id: 1c9ca363419c7e34f53e65b77764a49235e259e2
2020-10-22 13:16:47 -07:00
Noa Leibman
a44be7e29a Testing for Zero-Ration flipper plugin
Summary: These tests are testing the logic of building the main components in Actions tab and Sagas tab.

Reviewed By: zaxy78

Differential Revision: D24078307

fbshipit-source-id: 2929832e18f4ccbf2cf46e94c8ef08f4f947cc85
2020-10-14 03:46:49 -07:00
Pritesh Nandgaonkar
be641441d9 Add access token as a param in cdn link and minor improvements
Summary:
This fixes two issues. One issue where the recent change of cdn to lookaside hostname broke our build download process. More about this can be found [here](https://fb.workplace.com/groups/flipperfyi/permalink/772986153467682/).
It also fixes a bug which occurred on a retry when an error happened. Recently I made changes where, if the build is downloaded then retrying shouldn't redownload it. But we used to remove the downloaded builds after install phase, so this diff just removes the build when the download is successfull.

Reviewed By: nikoant

Differential Revision: D23372251

fbshipit-source-id: b57e69f65a20fc123191962d60165a62859d4ef7
2020-08-27 08:54:17 -07:00
Dominik Wielgórski
939ed27aad Detect if given Component is LithoComponent
Summary: Useful for next diffs: enables to detect whether we have LithoComponent or CKComponent

Reviewed By: adityasharat

Differential Revision: D23128972

fbshipit-source-id: b9aef358c1426df4f05213c42e43402e8cae984f
2020-08-17 10:20:53 -07:00
Dominik Wielgórski
7e4c9d05d4 Events for navigation functionality
Summary: Added new events for 'open in IDE' functionality within the Layout Plugin

Reviewed By: passy

Differential Revision: D23075105

fbshipit-source-id: 1d18977da728bb4c53cd13e8669253dea65d7c4d
2020-08-13 03:08:16 -07:00
Anton Nikolaev
dcd1c08dea Expose IDEFileResolver from 'flipper' module to properly import it from 'layout' plugin (#1442)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/1442

Layout plugin cannot be bundled as a standalone package because it imports a file from outside of its folder. This change exposes IDEFileResolver in a proper way so now it's possible to import it from 'flipper'.

Reviewed By: passy

Differential Revision: D22975515

fbshipit-source-id: 8af6d2ca1ceb8627a449e055c8773549dd681b7a
2020-08-06 04:54:14 -07:00
Michel Weststrate
b9c9e89b53 Support activate and deactivate in normal plugins
Summary:
Device plugins have an activate and deactivate hook, that reflects the plugin being selected in the UI. Added these same hooks to client plugins as well. In practice they are called at the same times as `onConnect` and `onDisconnect`, except for background plugins, which connect only once, so it is pretty useful to be still able to make the distinction.

Since there is now quite some common functionality between plugins and device plugins, will clean things a bit up in a next diff

[Interesting] as it explains the difference between the different lifecycle methods of plugins, and the impact of being a background plugin

LIfecycle summary:

1. app connects
2. for background plugins: connect them (`onConnect`)
3. user selects a plugin, triggers `onActivate`. will also trigger `onConnect` the plugin if it _isnt_ a bg plugin
4. user selects a different plugin, triggers `onDeactivate`. will also trigger `onDisconnect` if it isn't a bg plugin.
5. app is unloaded. Triggers `onDisconnect` for bg plugins. Triggers `onDestroy` for all plugins,

Reviewed By: jknoxville

Differential Revision: D22724791

fbshipit-source-id: 9fe2e666eb37fa2e0bd00fa61d78d2d4b1080137
2020-08-04 07:08:31 -07:00
Michel Weststrate
91ed4e31c0 Introduce DevicePlugin APIs
Summary:
This stack introduces Sandy device plugins, they are quite similar to normal plugins, but, a devicePlugin module is organized as

```
export function supportsDevice(device): boolean

export function devicePlugin(devicePluginClient)

export function Component
```

Device plugins get access to the device meta data and can subscribe to the `onLogEntry` callback and `onDestroy` lifecycle.

They will be able to store state just as normal plugins, but can't send or receive methods, so devicePluginClient is a bit limited.

This diff only sets up most of the new data structures, and makes sure everything still compiles and no existing tests fail.

To prevent this diff from becoming to big, actually loading, rendering and testing device plugins will be done in next diffs

Please take a critical look at the api proposed and the (especially) the public names used :)

Reviewed By: passy, nikoant

Differential Revision: D22691351

fbshipit-source-id: bdbbd7f86d14b646fc9a693ad19f33583a76f26d
2020-08-04 07:08:31 -07:00
Elaina Hsu
0721735e37 Bolded names of Store record fields that appear in the Consistency List
Summary:
Bolded the record fields' keys if it is consistent (in the consistency white list).

*if the key is within an object, information on whether it is consistent will not be available in preview. The Object has to be physically expanded by the user in order to see the bolded key.

Reviewed By: mweststrate

Differential Revision: D22416084

fbshipit-source-id: 7eb1d8c65be07f880722a133b70195a4a63f0e75
2020-07-16 12:25:36 -07:00
Pritesh Nandgaonkar
d4680eead9 Support Installation for physical device
Summary: This diff enables the installation for iOS simulators. This also fixes the error view created when there is an error. Right now there is a bug on my machine where idb doesn't detect my physical device. But once it is detected, it will work.

Reviewed By: mweststrate

Differential Revision: D22137831

fbshipit-source-id: b6d6f77318c6baef78c35af73db3969b7dd1b907
2020-06-22 15:58:31 -07:00
Anton Nikolaev
2085d4e362 Fix layout plugin source import violation
Summary: Fixed direct source import of Flipper code from layout plugin which broke its packaging

Reviewed By: cekkaewnumchai

Differential Revision: D22135716

fbshipit-source-id: 8f67a21ed94c13dd73d24ef8692d37ae51963319
2020-06-19 08:44:51 -07:00
Scott Kyle
906b6a0230 RFC NT Layout sidebar extension
Summary:
This diff is not meant to land as-is, but instead to generate discussion on how to properly accomplish this.

The goal is to add a Layout plugin sidebar extension that displays the NT reduction trace when an NT component is selected.

Note this is a feature that exists today (when whitelisted on `reduction_trace_check` GK) via the `SKComponentLayoutDescriptor` API, where we'd include the entire JSON representation on every element and display that in a standard inspector in the sidebar. We have a new metadata system where we only include a metadata id and Flipper can separately request the metadata, which is much more performant. Also, we have an existing `NTReductionTracePanel` component we'd like to use that handles requesting and displaying that information in a much better way.

I'd still like to use the `SKComponentLayoutDescriptor` API (or something similar) to have access to that component's metadata id in order to decide whether the panel should appear and of course that id is needed for the panel. This works well right now (see test plan), but as you can see, it's less than ideal in that it needs to look into `Extra Sections` then `Native Templates` to get that information. This might be acceptable for the time being while we think this API through, but I wanted to get input on if we can do better before trying to land.

Additional questions:
- Why are `SidebarExtensions` exported from the "flipper" module, when they only work with and import from the Layout plugin?
- There are two `InspectorSidebar` components - one in the Layout plugin and one in main flipper module [here](https://fburl.com/diffusion/ecg8lhfq) that I don't think is being used?

Reviewed By: mweststrate

Differential Revision: D21887701

fbshipit-source-id: 23ed19c08b68b4b1115b8cc6af84af9e87e91128
2020-06-12 09:48:52 -07:00
Pritesh Nandgaonkar
78924c527b Add persisted state
Summary: Persist state in Mobile builds plugin. This diff also moves the logic of percentage updates in the persisted state.

Reviewed By: mweststrate

Differential Revision: D21840853

fbshipit-source-id: 3246cdfecfca12cd0f269f5a87646cf619380999
2020-06-10 05:23:54 -07:00
Michel Weststrate
95d319a700 Store collapsed status of sidebar sections
Summary:
See previous diff, let's store the collapsed state of sidebar sections in local storage.

Introduced a reusable hook to take care of that.

Changelog: Device plugins are now expanded by default, and the expand / collapse state will now be remembered across restarts

Reviewed By: passy

Differential Revision: D21903394

fbshipit-source-id: a3c0231acc0aa0877522ec328eedd09cb11aedb1
2020-06-05 08:30:44 -07:00
Chaiwat Ekkaewnumchai
df480bd57a Change Value Used in DB Plugin
Summary:
- Add value for null type to use `.value` easier
- Add value to string by directly converting to string if possible; otherwise null

Reviewed By: jknoxville

Differential Revision: D21788242

fbshipit-source-id: f3a9f995de6b4cb1b304981c8adaaba70105c988
2020-06-02 01:47:04 -07:00
Pritesh Nandgaonkar
a8f749b2e8 Update the UX of the mobilebuild download
Summary:
Update the UX of the mobilebuild download. When one clicks download one can see the the installation in progress in the main screen. Once its downloaded, you can open the finder pointed to the folder of download.

I didn't write the test for InstallSection as I was not able to test it through react-testing library. Seems like the data gets added to the document little late and not instantly.

Next work:
- Search in sidebar
- Persist downloaded app data for a session
- Show download data in the form of progress bar.

Reviewed By: mweststrate

Differential Revision: D21709229

fbshipit-source-id: e67db68ff16155230becf86c913dc6b1ec9d482c
2020-05-28 11:24:57 -07:00
Timur Valiev
2283bbd313 vscode integration helper
Summary: VSCode integration helpers to call extensions

Reviewed By: passy

Differential Revision: D21641284

fbshipit-source-id: dd978520ea541dbd6a96b8398ce28744a0fc97ad
2020-05-26 05:03:05 -07:00
Pritesh Nandgaonkar
22dfc33da0 Fetch recommended and all builds types in Sidebar
Summary:
This diff updates the sidebar to show the recommended and all build types.

Also there is error handling in place along with tests. Right now the download happens by opening browser and the build gets downloaded in the download folder. But later in the diffs I will improve this flow to do that in the Flipper with a UX showing status updates.

Reviewed By: mweststrate

Differential Revision: D21556383

fbshipit-source-id: 6de9a00fe416c22cae7bacf91828a2221644eac7
2020-05-20 08:14:25 -07:00
Chaiwat Ekkaewnumchai
a5cd79ea8b Export FileSelector
Summary: FileSelector was added in D19743998, but it was not exported to be used by other. This diff exports it so that developers can use.

Reviewed By: mweststrate

Differential Revision: D21653870

fbshipit-source-id: 062247fa7a14c7ddf87c927205880a695598928d
2020-05-20 06:58:37 -07:00
Timur Valiev
596e11a463 searchable data inspector
Summary: Naive implementation of searchable data inspector: matching of search term agains first level keys of data

Reviewed By: cgrushko

Differential Revision: D21510073

fbshipit-source-id: 2010e584248a64fb3351c95a5646b1935445a13b
2020-05-12 01:04:47 -07:00