Commit Graph

2587 Commits

Author SHA1 Message Date
Andrey Goncharov
68e2bc73c9 Use setGlobalObject from flipper-frontned-core in flipper-ui-core
Summary: See D37139129

Reviewed By: lblasa

Differential Revision: D37236905

fbshipit-source-id: aeb4c02cfc0e57d262fa59c045fa542819ee988c
2022-06-20 12:18:40 -07:00
Andrey Goncharov
851270589f Use flipper lib implementation from flipper-frontend-core in flipper-ui-core
Summary: See D37139129

Reviewed By: lblasa

Differential Revision: D37236771

fbshipit-source-id: 7f93140f72e89cb4a7907f07cceec1fed50cb66b
2022-06-20 12:18:40 -07:00
Andrey Goncharov
17ab7a86ef Use getRenderHost from flipper-frontned-core in flipper-ui-core
Summary: See D37139129

Reviewed By: lblasa

Differential Revision: D37236435

fbshipit-source-id: 927e9f741bfedb65165f5d24f0acfb775925cdc7
2022-06-20 12:18:40 -07:00
Andrey Goncharov
fab8849c73 Use TestDevice from flipper-frontend-core in flipper-ui-core
Summary: See D37139129

Reviewed By: lblasa

Differential Revision: D37235567

fbshipit-source-id: a0596ba71fcb8722088e51361774389a7daaebb8
2022-06-20 12:18:40 -07:00
Andrey Goncharov
a648861273 Use ArchivedDevice from flipper-frontend-core in flipper-ui-core
Summary: See D37139129

Reviewed By: lblasa

Differential Revision: D37235514

fbshipit-source-id: 54124f2b9768b068ae667b27171eaa05a693b398
2022-06-20 12:18:40 -07:00
Andrey Goncharov
fd380a4c1e Use BaseDevice from flipper-frontend-core in flipper-ui-core
Summary: Use BasDevice definition from flipper-frontend-core in flipper-ui-core and remove the redundant definition from flipper-ui-core

Reviewed By: lblasa

Differential Revision: D37234785

fbshipit-source-id: 6e768090a197c1d2c49cb1cd573acea12fb65d24
2022-06-20 12:18:40 -07:00
Andrey Goncharov
ef5fa275a3 Use AbstractClient from flipper-frontend-core in fliper-ui-core
Summary: This stack attempts to start using flipper-frontend-core from flipper-ui-core. Currently, flipper-frontend-core contains lots of copy-pasted code from flipper-ui-core.

Reviewed By: lblasa

Differential Revision: D37139198

fbshipit-source-id: 042db7492c550e10ea72c32fd15001c141bf53f9
2022-06-20 12:18:40 -07:00
Andrey Goncharov
c2e3c4eb50 Add TestDeivce to flipper-frontend-core
Summary: This stack attempts to start using flipper-frontend-core from flipper-ui-core. Currently, flipper-frontend-core contains lots of copy-pasted code from flipper-ui-core.

Reviewed By: passy

Differential Revision: D37139129

fbshipit-source-id: 53ba08920735d1b40e1351fddf41a97a6352b2b6
2022-06-20 12:18:40 -07:00
Pascal Hartig
7da46dc2c2 Forward arguments to mac app
Summary: This allows using `--no-open`, etc. in a server context.

Reviewed By: lblasa

Differential Revision: D37246490

fbshipit-source-id: 4af75ed049d5523d83277a670cab2aaa3dfbc8c3
2022-06-20 04:22:25 -07:00
Lorenzo Blasa
b6bf7c6ee7 Close servers on exit
Summary: On exit, close the servers explicitly.

Reviewed By: lawrencelomax

Differential Revision: D37206986

fbshipit-source-id: 7f4313cce1db18e1fb1320993a58c440af2cc7e0
2022-06-20 03:27:19 -07:00
Flipper Bot
06ddb08406 Flipper Release: v0.150.0
Summary: Releasing version 0.150.0

Reviewed By: lblasa

Differential Revision: D37236953

fbshipit-source-id: 36cd4fd8842b898f7cba1f03ab2c72d20e2b42ce
2022-06-17 11:37:49 -07:00
Lorenzo Blasa
747b91da5f Add file:// as possible origin
Summary:
For Flipper Desktop, Electron based, the origin maybe file:// as shown in tests:

```
Refused socket connection from cross domain request, origin: file://, host: localhost:52342.

Expected origins: http://localhost:52342 or http://[::1]:52342 or http://::1:52342 or http://localhost:3000.
Expected hosts: localhost:52342 or [::1]:52342 or ::1:52342 or localhost:3000
```

This change effectively adds `file://` as a valid origin.

Reviewed By: passy

Differential Revision: D37212809

fbshipit-source-id: 311a93bb8872587d15c6be4329238af6b0f6988d
2022-06-16 10:45:08 -07:00
Lorenzo Blasa
8a1e484d0c Handle ws operations in a safe manner
Summary:
After doing some tests, any error thrown during ws events can result in flipper-server shutting down.

To avoid this, effectively, errors throughout should be properly handled.

The problem is that there's no guarantees this is or will be the case.

Instead, wrap the event handlers in a safe function execution wrapper. Any errors will be caught and logged.

Reviewed By: aigoncharov

Differential Revision: D37206923

fbshipit-source-id: 6f7cadc297ac39768030962c6eaadde55048fd21
2022-06-16 10:35:17 -07:00
Anton Kastritskiy
f5992d3489 setup engines to stop people from using npm
Summary:
Following the discussion from D37080670 (ea7ff7eb8a)

Unfortunately at some people npm changed the order in which things happen when running `npm install` and now dependency resolution happens before validating engines 🤷‍♂️

But this will work regardless

https://www.internalfb.com/intern/px/p/261cr

Reviewed By: aigoncharov

Differential Revision: D37142960

fbshipit-source-id: 306f1a4e7444dc099c1a11c4c9e22dafceacdbaa
2022-06-15 07:37:54 -07:00
Zeh Fernando
3a60f8c5be Add new icon
Summary: Add new icon for internal plugin

Reviewed By: aigoncharov

Differential Revision: D36641872

fbshipit-source-id: ff45810b9cbaf207dd392f251fcf42a8df5fd509
2022-06-15 06:38:38 -07:00
Pascal Hartig
b25a212890 Remove SupportRequestFormV2
Summary: This is now replaced by the support entry point and we need to delete the calling sites before we can clean up the everstore type.

Reviewed By: lawrencelomax

Differential Revision: D37090901

fbshipit-source-id: 597684bb149783d75e46ba61113e73878bf271a8
2022-06-13 07:16:47 -07:00
Pascal Hartig
ea7ff7eb8a Remove duplicate lock introduced in D36985721
Summary: Bad practice to have both.

Reviewed By: mweststrate

Differential Revision: D37080670

fbshipit-source-id: b239bb5216fd39ba5dae61f4a5e4388fa96bfdaf
2022-06-13 04:18:15 -07:00
Andrey Goncharov
d987e36c62 Add a single place to initialize Flipper utilitary folders
Summary: We have several folders Flipper uses that sometimes we forget to create before Flipper starts. With this diff we have a single place to initialise the necessary folder structure.

Reviewed By: lblasa

Differential Revision: D37036601

fbshipit-source-id: f945f2bfdfc6be24ba87bd4b13c7fcef3fd74451
2022-06-10 06:38:50 -07:00
Lorenzo Blasa
4b396e1ef3 Use flipper-server if running, otherwise initiate one
Summary:
Provided that GK passes:

- If a flipper-server instance is running, use and connect.

- If not, start flipper-server and connect.

Reviewed By: passy

Differential Revision: D37034960

fbshipit-source-id: ff79e56e80e74415373f84b78305b4fc3e31f7d0
2022-06-09 14:26:17 -07:00
Flipper Bot
ad19b51069 Flipper Release: v0.149.0
Summary: Releasing version 0.149.0

Reviewed By: passy

Differential Revision: D36999205

fbshipit-source-id: 9bf6df029e3d359c166f21bd12f158a2d19b6516
2022-06-09 10:32:12 -07:00
Andrey Goncharov
fec2650afb Remove redundant GK definition from flipper-common
Summary: Developers should use `getRenderHostInstance().GK(...)` instead

Reviewed By: lblasa

Differential Revision: D37034322

fbshipit-source-id: 41017f53a5256449252917a48fcd3a49a9b984c8
2022-06-09 03:34:04 -07:00
Hannah Kim
9b0535b0ff (2/n) Created JS Flipper plugin
Summary: Added JS side of plugin to be displayed in the local Flipper Desktop app

Differential Revision: D36985721

fbshipit-source-id: f9d3cc28e418e95283c572fed4d40dbecfd2f236
2022-06-08 09:25:05 -07:00
Luke De Feo
48bebdc665 Improve typing of getValueAtPath
Summary: Context: https://www.internalfb.com/diff/D36663929 (e07d5c5bfe)?dst_version_fbid=701770760940095&transaction_fbid=714786499947486

Reviewed By: antonk52

Differential Revision: D36782095

fbshipit-source-id: 2eb29d70aa641d386b129bf957320b718e97c298
2022-06-07 04:29:16 -07:00
Luke De Feo
3412ddfb1b Added mouse hovered state when exploring tree
Summary:
Added a mouse hover state to detail inspector. The hover state follows you into and out of the hierarchy.

changelog: Added hover state to detail inspector

Reviewed By: mweststrate

Differential Revision: D36781553

fbshipit-source-id: eafbf119a81779bf07199142d305b06ad6b98c52
2022-06-07 04:29:16 -07:00
Luke De Feo
ae0a89c580 Fix context menu for nested/overlapping elements
Summary:
Previously if you activated context menu in detail inspector it would trigger a context menu for multiple
overlapping children. This behaviour can be observed in live by right clicking a nested property an selecting 'Copy value'.
Most of the time you will copy the entire tree as you are clicking on the parents context menu. This is
the solution recommended by the antd team. https://github.com/ant-design/ant-design/issues/33865 (see the
response fiddle from the maintainer)

changelog: Fixed bug when copying value from context menu in detail sidebar

Reviewed By: mweststrate

Differential Revision: D36781555

fbshipit-source-id: 010a04648eb90eb19a47aa0f1f2b0427c9f5f7cc
2022-06-07 04:29:16 -07:00
Luke De Feo
0200afca51 Added support for plugin supplied context menu items
Reviewed By: passy

Differential Revision: D36781556

fbshipit-source-id: 42124e0324bb2c850099b60410eb20872ebefe3c
2022-06-07 04:29:16 -07:00
Pascal Hartig
bb401fa70b Change server template
Summary:
This is a completely meaningless change *but* it actually has an important
semantic meaning. I recently changed the `+x` bit to be set on the node binary
while bundling which is not always true when packing on Linux.

However, we don't consider permission bits as part of the checksums we build,
which means you will always get the previous version until we update the node version
or this very script because it's part of the same bundle.

So let's just ship this "update".

Reviewed By: mweststrate

Differential Revision: D36954703

fbshipit-source-id: 2d89cb1ee2e7bcce125c3f9efc9d8d39101ac133
2022-06-07 04:15:42 -07:00
Michel Weststrate
f2bf48d4e4 DataTable delighter: Introduce search history
Summary:
Getting the behavior exactly right was tricky, now settled on the following:

* Don't automatically show the search history (the default) but introduce an explicit button to toggle it, as opening it by default was pretty obtrusive in testing
* Items are added to the history when using return / explicitly clicking search, to only get "clean" entries into the history, and not half complete searches. Needing to press enter might be to subtle since datatable will also search without that, but not searching on keypress felt as a regression as well.
* Introduced a menu item for clearing the search history
* Search history is persisted like search filters.

Yay to Antd's AutoComplete, which is really straightforward and cleanly composes with Input.Search.

Changelog: DataTable will now keep a history of search items when hitting <return> to search. Use the history button to bring up the history.

Reviewed By: aigoncharov

Differential Revision: D36736821

fbshipit-source-id: 8d18b85308a39bd1644057371040855d199545c7
2022-06-07 04:04:01 -07:00
Michel Weststrate
36b78131b7 update control filter toggling implementation
Summary:
The `Control` button press, that hides the current search filter, had some specific logic to make sure that the current selection remained visible. Since this is now generically supported, this is no longer needed.

Also updated the `Control` button behavior to also toggle back the search filter if needed, which was never finished in the original implementation.

Changelog: DataTable: pressing the control key can be used to temporarily turn the current search filter on and off.

Reviewed By: aigoncharov

Differential Revision: D36736494

fbshipit-source-id: 2c4949efa0d6935735f61ee43f9268b7e27d1fcf
2022-06-07 04:04:01 -07:00
Michel Weststrate
2037cf0595 preserve selection during filter changes
Summary:
During filter changes, DataTable would loose any selections made, which was posted multiple times as papercut

I didn't implement preserving multi line selections. That should be straightforward, but wasn't sure that'd be desirable or not.

Changelog: DataTable: Data tables will now preserve the current selection and scroll it into view when changing the search filter.

Reviewed By: aigoncharov

Differential Revision: D36736496

fbshipit-source-id: 401ef351c847f58a5d411cf9f352390f6a110b24
2022-06-07 04:04:01 -07:00
Michel Weststrate
fd3f6a0435 Improve selection color of datatable
Summary:
DataTable selected rows are a bit hard to spot when changing search, scrolling etc, so give them a bit more prominent background

Changelog: DataTable: more pronounced background color for selections

Reviewed By: aigoncharov

Differential Revision: D36736495

fbshipit-source-id: 2cab9eb99594ffaaccdd9ebe0d922691adb27bdc
2022-06-07 04:04:01 -07:00
Andrey Goncharov
2f2a101094 Deprecate kaios-big-allocations
Reviewed By: passy

Differential Revision: D36809144

fbshipit-source-id: ea04ddb2ed9d6114baa6586577f3e7ddd8b8bbf4
2022-06-07 04:00:02 -07:00
Andrey Goncharov
2b16916a85 Deprecate kaios-portal
Reviewed By: passy

Differential Revision: D36807506

fbshipit-source-id: 660f334a46dbf7847c90ce6e67f2dc974c1daf90
2022-06-07 04:00:02 -07:00
Lorenzo Blasa
9cc8e4076f flipper-server refactor
Summary:
This changes moves most of the functionality found in flipper-server to flipper-server-core.

flipper-server will mostly be a package that wraps around flipper-server-core. Staying in flipper-server:
- Command line args
- Orchestration to start the necessary servers

Reviewed By: aigoncharov

Differential Revision: D36807087

fbshipit-source-id: f29002c7cc5d08b8c5184fdaaa02ba22562a9f45
2022-06-07 02:42:16 -07:00
Flipper Bot
5971d603bf Flipper Release: v0.148.0
Summary: Releasing version 0.148.0

Reviewed By: jknoxville

Differential Revision: D36805039

fbshipit-source-id: 8d97ba973c57de4558fc6aaa0a546dbac1ee08cd
2022-06-06 06:25:38 -07:00
Lorenzo Blasa
054fbf1298 Aggregate existing logs from the ones generated by flipper-server
Summary:
This change aggregates/redirects flipper-server logs with logs generated by the app.

This is a great approach, why:

As we tail the file, we deserialise the logs, and re-log them using console. This means, that they will be intercepted by the logging infrastructure flipper already has in place which will make these logs go to scribe, error reporting, etc.

Reviewed By: passy

Differential Revision: D36473790

fbshipit-source-id: a3547c5c8733217c61bb2d9b94990626bbf0a492
2022-06-01 04:37:36 -07:00
Lorenzo Blasa
ee64216725 Extract logger and write to file
Summary:
This change extracts logging logic out from startFlipperServer.

Logs will also be written to disk.

Reviewed By: passy

Differential Revision: D36473768

fbshipit-source-id: b1df9df79b4aced0d3ba2e8c243aa8d44cf83703
2022-06-01 02:37:03 -07:00
Andrey Goncharov
92cdb81096 Upgrade electron version
Summary:
CHANGELOG: Upgrade electron to 18.2.0.

In Electron 18.2.0 we no longer have access to `remote`. Instead, we are recommended to implement IPC communications. We re-implement `remote` methods used before as IPC commands. To support type-safe execution of the commands, we create electron IPC clients on both sides: the main process and renderer process. We also move the main menu creation to the main process and track its usage via sending IPC messages to the renderer process where the logging happens.

Reviewed By: mweststrate

Differential Revision: D36593625

fbshipit-source-id: 6dcf531461ef2edceb9cac372a650f84f3370953
2022-05-31 06:52:14 -07:00
Lorenzo Blasa
2fe7e73175 Refactor checks to see if socket is in use
Summary:
These are utility methods that are not specific to startServer.

They will be reused by other components needing to check if something is listening to a port.

Make socket path is also extracted.

Reviewed By: passy

Differential Revision: D36473641

fbshipit-source-id: 73ed67912052896696b59670cb757d22761eeaa1
2022-05-31 03:31:05 -07:00
Andrey Goncharov
ec068e814b Prevent using node APIs in a browser bundle
Reviewed By: antonk52

Differential Revision: D36771197

fbshipit-source-id: aec3edc22d4c4148ae0fe7a0c87c701323112acd
2022-05-31 02:58:21 -07:00
Andrey Goncharov
976399b950 Move Tail to flipper-server-core
Summary: Tail is a server-side logging utility. We cannot add it to flipper-frontend-core as it is going to be included into the browser bundle then and break the build.

Reviewed By: antonk52

Differential Revision: D36771864

fbshipit-source-id: 169cdb88543f1e47f39e8c0976c3a3f45c0439d5
2022-05-31 02:58:21 -07:00
Andrey Goncharov
59761ecd50 Mark deprecated plugins in the UI
Summary:
Changelog: Add a deprecation warning for deprecated plugins.

Closes https://github.com/facebook/flipper/issues/2074

Reviewed By: lblasa, antonk52

Differential Revision: D36760209

fbshipit-source-id: 64cf799644f28aeedf88824c949738a6a766b094
2022-05-30 07:32:12 -07:00
Flipper Bot
04400fd22e Flipper Release: v0.147.1
Summary: Releasing version 0.147.1

Reviewed By: aigoncharov

Differential Revision: D36759784

fbshipit-source-id: 27c04809b8b6efaea96e96f79e4d2079a9162799
2022-05-30 06:18:15 -07:00
Luke De Feo
e07d5c5bfe Added support for dotted key paths in Data table column
Summary:
This adds support for the key of DataTableColumn to be a dotted path into a nested object, e.g foo.bar. Currently the typescript types only allow a top level key to be set, making this feature currently unusuable from plugin code.

While this could be addressed in a future commit the intention of this is to allow the user to add custom fields into their table columns at run time

Note there is a side effect to free text search from this commit. Previously it would search all top keys in the object. Now it will only search in columns that are in the table.

changelog: Searching data table will now only search columns in the table, rather than all top level attributes of the object

Reviewed By: mweststrate

Differential Revision: D36663929

fbshipit-source-id: 3688e9f26aa7e1828f8e9ee69f8e6f86268c8a54
2022-05-30 04:37:25 -07:00
Pascal Hartig
db045a3b21 Send isHeadlessBuild flag in error reporting
Summary:
Andrey's diff already ensures that we send the flag, this also adds it to the info string
which makes it more visible.

Reviewed By: lblasa

Differential Revision: D36699070

fbshipit-source-id: 905eded9612b19ecaa35a841ec240af002e11611
2022-05-30 03:44:28 -07:00
Pascal Hartig
11ff9b51e3 Fix node +x bit in server distribution
Summary: This was lost when I changed from `pkg-fetch` writing it to copying the file.

Reviewed By: mweststrate, aigoncharov

Differential Revision: D36682861

fbshipit-source-id: 23822d4cc75720a83282de949d28029a05a2a7f9
2022-05-30 03:44:28 -07:00
Andrey Goncharov
c2a17873cb Fix node-fetch bundling
Summary:
In electron setup, bundlers usually bundle for browser environments. In browser envs, bundles seem to pick up .mjs files first. .mjs fro node-fetch exports fetch as a default export. This fix allows bundling of npm-api for electron.

Closes https://github.com/facebook/flipper/issues/3752

https://github.com/doowb/npm-api/pull/25/files

Reviewed By: lblasa

Differential Revision: D36758469

fbshipit-source-id: bf6c27ed37cb0baa54382ea563902e6e77a118e9
2022-05-30 03:41:33 -07:00
Andrey Goncharov
4eca8d1088 Add isHeadlessBuild to EnvironmentInfo
Summary: Allows to attribute errors to flipper server or flipper electron

Reviewed By: passy

Differential Revision: D36698504

fbshipit-source-id: 6d07216fd05aa48b7c8cca5b53145916b64526eb
2022-05-27 02:37:53 -07:00
Lorenzo Blasa
49eb026769 Tail
Summary:
Added a new type, Tail. It observes changes made to a file and notifies the subscriber.

It is useful and used to tail flipper-server logs, for example.

Reviewed By: passy

Differential Revision: D36473529

fbshipit-source-id: b0f905f4f8419d9e13386440d2d2cdabd528295b
2022-05-26 09:44:30 -07:00
Michel Weststrate
15e9d105c4 Restore styleguide menu entry, reordered menu
Summary: The styleguide was no longer accessible in Flipper, this diff restores that, and also cleans up the extras menu a bit to by creating a plugin devs only section.

Reviewed By: antonk52

Differential Revision: D36697071

fbshipit-source-id: a2abce40157fffd4952172f379c8063492e2dcc0
2022-05-26 04:26:20 -07:00