Summary:
Fix long standing issue where text by default in Flipper is not selectable. Which is super annoying when working with tables, trying to copy error messages, etc etc. Wanted to fix it with ant.design, but got so annoyed by not being able to select an error I needed, that I fixed it now :-P.
This diff makes all text selectable by default, and then bails out for specific elements, like section headers, button captions, the left toolbar (navigation) and top toolbar to preserve the desktop app look & feel.
Fixes a popular papercut issue
Changelog: All text is now selectable by default in Flipper.
Reviewed By: passy
Differential Revision: D22897793
fbshipit-source-id: 7bc50a987e012595956c07d1997959a5480790aa
Summary:
This is just an initial setup from Flipper. I just ran `scarf flipper-plugin`, followed the iOS path, removed the native files (as we will use the JS infra directly later on) and submitted. :)
I followed this documentation/tutorial: https://www.internalfb.com/intern/wiki/Flipper/create-new-plugin/
(Followed iOS path, then removed native code as not needed)
Differential Revision: D22754500
fbshipit-source-id: 39130b4ee17c6bc72990eec34c466cfa7a650d17
Summary: Update electron-devtools-installer to fix issue blocking installation of dev tools for some users currently: https://github.com/MarshallOfSound/electron-devtools-installer/pull/140
Reviewed By: passy
Differential Revision: D22604024
fbshipit-source-id: f98d8d6e138283c54d5e1cf446b7049bb31b51a0
Summary:
Fixes a potential issue where double scrollbars could appear or entire main contents would be scrollable (when a plugin has a fixed height > window height) as maincontents was made scrollable as well in D22411617 (2ce65c1b3c)
Anyway this is nice clean up that makes our chrome layout more understandable (imho). The PluginContents wrapper is still very sad (used by ReactDevTools and Hermes debugger), but can hopefully be addressed with the sandy cleanup in the future
Reviewed By: nikoant
Differential Revision: D22431807
fbshipit-source-id: 113e8441e0c43a8b764f5cf27615ab93627c3197
Summary:
To know whether plugins should be mounted with the old setup or new setup (with a Provided / context based api), we need to be able to recognize whether a plugin is written with the old or new setup.
We do this by checking if the flipper-plugin dependency is declared as peer dependency. This we can to check for SDK compatibility as well.
Reviewed By: jknoxville
Differential Revision: D22043085
fbshipit-source-id: 21afabb6e58d86253a464470f4690c51cced87ab
Summary:
We've disabled web security in `BrowserWindow` (https://fburl.com/diffusion/0l0q669m). However, there is a bug in Electron 9 that makes this doesn't work as expected (https://github.com/electron/electron/issues/23664). Earlier, we've resolved this problem by specifying `no-cors` mode in requests. This strikes again in other plugin.
This diff applies a workaround commented inside the issue to allow to make CORS requests.
Reviewed By: nikoant
Differential Revision: D22306977
fbshipit-source-id: ea0f5e3f1c4080037df258a6c5ce1fc89d433c3b
Summary: Disabled producing inline source maps for debug builds. Source maps are already writte to "map" files, so this does not make sense to also inline them to the js bundle. Passing "sourceMapUrl" parameter to Metro fixed this.
Reviewed By: mweststrate
Differential Revision: D22159501
fbshipit-source-id: f06225cd43f44a7f93afcc32bb0501323b35d0c3
Summary:
Bumps [ws](https://github.com/websockets/ws) from 7.2.3 to 7.3.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/websockets/ws/releases">ws's releases</a>.</em></p>
<blockquote>
<h2>7.3.0</h2>
<h1>Features</h1>
<ul>
<li><code>WebSocket.prototype.addEventListener()</code> now supports the <code>once</code> option (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/1754">#1754</a>).</li>
</ul>
<h2>7.2.5</h2>
<h1>Bug fixes</h1>
<ul>
<li>Fixed compatibility with Node.js master (651d6627).</li>
</ul>
<h2>7.2.4</h2>
<h1>Bug fixes</h1>
<ul>
<li>The <a href="https://nodejs.org/api/http.html#http_http_request_options_callback"><code>http.request()</code></a> <code>auth</code> option is now supported (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/1734">#1734</a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="41f5e4ff11"><code>41f5e4f</code></a> [dist] 7.3.0</li>
<li><a href="2e5c01f5b5"><code>2e5c01f</code></a> [feature] Make <code>addEventListener()</code> support the <code>once</code> option (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/1754">#1754</a>)</li>
<li><a href="97ddfce983"><code>97ddfce</code></a> [ci] Test on node 14</li>
<li><a href="2b49c4821f"><code>2b49c48</code></a> Revert "[ci] Use GitHub Actions (<a href="https://github-redirect.dependabot.com/websockets/ws/issues/1644">#1644</a>)"</li>
<li><a href="82f05372ba"><code>82f0537</code></a> Revert "[ci] Test on node 14"</li>
<li><a href="b167d1cd45"><code>b167d1c</code></a> Revert "[ci] Update Coveralls GitHub Action to version 1.1.1"</li>
<li><a href="78e1c01959"><code>78e1c01</code></a> [ci] Update Coveralls GitHub Action to version 1.1.1</li>
<li><a href="e6949791fa"><code>e694979</code></a> [doc] Fix badge URL</li>
<li><a href="67983cbba4"><code>67983cb</code></a> [dist] 7.2.5</li>
<li><a href="18d773d1f5"><code>18d773d</code></a> [test] Fix failing tests</li>
<li>Additional commits viewable in <a href="https://github.com/websockets/ws/compare/7.2.3...7.3.0">compare view</a></li>
</ul>
</details>
<br />
[](https://help.github.com/articles/configuring-automated-security-fixes)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `dependabot rebase` will rebase this PR
- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `dependabot merge` will merge this PR after your CI passes on it
- `dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `dependabot cancel merge` will cancel a previously requested merge and block automerging
- `dependabot reopen` will reopen this PR if it is closed
- `dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
</details>
Pull Request resolved: https://github.com/facebook/flipper/pull/1266
Reviewed By: nikoant
Differential Revision: D22118507
Pulled By: passy
fbshipit-source-id: 700f098e5c7b6ddb1dda27ef50974af5b73fe88c
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/1224
Upgrade Electron-related dependencies to version 9.
Changes includes:
- force `fetch` to `no-cors` mode to get rid of CORS policy error while upgrading to version 9
- `keytar` returns promises so changes to reflect that ([reference](https://github.com/atom/node-keytar/blob/master/keytar.d.ts))
Reviewed By: passy
Differential Revision: D21862765
fbshipit-source-id: 25e236ee568934ee9c64dcc90f2fc9648c905b6a
Summary:
As title, this restores all of the functionality of the original plugin to but uses json-rpc to interact with fbsystrace in server mode.
Mostly at feature parity with the old plugins, need to update the following in my next diff:
- Better fbsystrace error surfacing
- Pipe all all output to 'Console'
- Support non-select type options
{F239554690}
I think that the authentication issues with Tracery might go away in prod - according to https://fb.workplace.com/groups/flippersupport/permalink/889080114905981/ this seems like a dev issue. But the "Open in Browser" functionality is working fine.
Reviewed By: nslingerland
Differential Revision: D21668522
fbshipit-source-id: fa3b887c7b5dedc08c62a9d579e1112d7f8e0323
Summary:
Install plugins to pending directory first to enable installing new versions of existing plugins. On startup Flipper moves all the plugins from pending directory into installed plugins directory.
Auto-update, after downloading a plugin package, will also extract it to "pending", so after restart update will automatically be applied.
Reviewed By: mweststrate
Differential Revision: D21929713
fbshipit-source-id: 141b106415e941156ae598cf810ab3bed8c76ced
Summary: Use interface PluginDetails everywhere where plugins are handled and removed PluginDefinition type which was effectively a subset of PluginDetails
Reviewed By: mweststrate
Differential Revision: D21927456
fbshipit-source-id: 434ebeef955b922cc11757e78fbba8dec05f1060
Summary:
Each time when the plugin starts (which is also when you re-enter it, even if the switch is on in the UI), will query Unity for all counters.
There's also a button to manually refresh the list.
I added a button to filter 0 counters (since there are a lot of them). It will pulse while it's filtering (on by default).
Differential Revision: D21923242
fbshipit-source-id: 0dc54eb8b460fe68a22aa86f43a5115a70728092
Summary: Load either installed or bundled version of plugin depending on which is newer.
Reviewed By: mweststrate
Differential Revision: D21858965
fbshipit-source-id: aa46eafe0b5137134fadad827749672441f2c9e5
Summary:
Bumps [mkdirp](https://github.com/isaacs/node-mkdirp) from 1.0.3 to 1.0.4.
<details>
<summary>Commits</summary>
<ul>
<li><a href="b694079b54"><code>b694079</code></a> 1.0.4</li>
<li><a href="2d42170b9f"><code>2d42170</code></a> Remove unnecessary process.umask()</li>
<li><a href="4d59b810ed"><code>4d59b81</code></a> update tap</li>
<li><a href="117328b713"><code>117328b</code></a> remove outdated example</li>
<li><a href="7cd4e9eb9a"><code>7cd4e9e</code></a> correct gitignore</li>
<li>See full diff in <a href="https://github.com/isaacs/node-mkdirp/compare/v1.0.3...v1.0.4">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=mkdirp&package-manager=npm_and_yarn&previous-version=1.0.3&new-version=1.0.4)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.
You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `dependabot rebase` will rebase this PR
- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `dependabot merge` will merge this PR after your CI passes on it
- `dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `dependabot cancel merge` will cancel a previously requested merge and block automerging
- `dependabot reopen` will reopen this PR if it is closed
- `dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in the `.dependabot/config.yml` file in this repo:
- Update frequency
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
</details>
Pull Request resolved: https://github.com/facebook/flipper/pull/1210
Reviewed By: passy
Differential Revision: D21838219
Pulled By: mweststrate
fbshipit-source-id: c9fe6920a65a1fcede07579899a50620f459b949
Summary:
Scuba doesn't work when running on laptops, so developers often run a canary just to see that their logging works. This attempts to give a Scuba-like view (Scuba UI does a lot, I'm just showing a simple samples-like view) of the data you report in real time.
## Unity
* `ScubaFlipperPlugin` - very similar to our Pigeon/Logview plugins.
* `ScubaLogger` - notice that I'm ignoring the sample rate (weight) to give as much signal as possible since a local Unity usually doesn't have a lot of traffic/logs.
## Flipper
* `index.tsx`
* Aggregates incoming data from Unity:
* `messages` - all messages, keyed by the scribe category.
* `columns` - keeps track of all the columns per table. This can grow over time (different messages can have different columns; Scuba does the same - using the union of all columns from all rows). I'm doing this here (and not while rendering a specific table) since this allows me to run the aggregation only once when a message arrives instead of every render (which React can do many of).
* Chooses between one of the two following components.
* `ScubaTables.tsx` - shows all known tables so far, with a count of rows (just so I'll have something to show in table...). Each row has a button to view this table.
* `ScubaTable.tsx` - probably the only interesting part is not using explicit widths in the table (since I don't know what data I'll have). Instead, I just use `horizontallyScrollable` on the table and let it decide. It will squeeze everything in the window's width, but let's you expand/scroll as needed.
Differential Revision: D21715926
fbshipit-source-id: 6f1c4f7f77c3b047dcb35a4e9b8173a7378af198
Summary:
Using this diff as baseline for fblite composer.
Demo in this post https://fb.workplace.com/groups/503571760094149/permalink/934762916975029/
## Next
* UI
* Add binary buffer (clone/re-send)
* Support multiple messages as flow
* Persistance
* More feedbacks from post
{F238376954}
Reviewed By: timur-valiev
Differential Revision: D21701994
fbshipit-source-id: 020733034968acb5c02a1f79bfc256a1a13d6ef8
Summary:
Very similar to the Logview plugin, showing a table with all logs (from all clients, if more than one is connected to Unity), and a right-side panel for details (the extra).
I'm still thinking how can I display the extra in the table (so it will be more convenient to compare logs), but still don't know (each extra can have different fields), and this is a good starting point.
Note: the POI plugin has an option to display marauder data, but I received requests for an easy way to debug just Pigeon, and since this is simple enough I don't see the harm here.
Reviewed By: timur-valiev
Differential Revision: D21549233
fbshipit-source-id: e7a48b4e21711bc9454e9b87a312e94a662917e2
Summary:
***
� **Important announcement:** Greenkeeper will be saying goodbye � and passing the torch to Snyk on June 3rd, 2020! [Find out how to migrate to Snyk and more at greenkeeper.io](https://greenkeeper.io)
***
## The dependency [uuid](https://github.com/uuidjs/uuid) was updated from `7.0.3` to `8.0.0`.
This version is **not covered** by your **current version range**.
If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.
---
**Publisher:** [ctavan](https://www.npmjs.com/~ctavan)
**License:** MIT
[Find out more about this release](https://github.com/uuidjs/uuid).
---
<details>
<summary>FAQ and help</summary>
There is a collection of [frequently asked questions](https://greenkeeper.io/faq.html). If those don’t help, you can always [ask the humans behind Greenkeeper](https://github.com/greenkeeperio/greenkeeper/issues/new).
</details>
---
Your [Greenkeeper](https://greenkeeper.io) bot 🌴
Pull Request resolved: https://github.com/facebook/flipper/pull/1079
Reviewed By: passy
Differential Revision: D21324797
Pulled By: nikoant
fbshipit-source-id: aa1883120472229827021cbbd121a9a40a30002d
Summary: Dev mode: fixed loading of plugins located outside of the Flipper source root folder, e.g. in ~/flipper-plugins as suggested in tutorial docs.
Reviewed By: passy
Differential Revision: D21306639
fbshipit-source-id: bb9044b25324065f0c12169b95fbe663da8d4305
Summary: This diff refactors the group selection to the dropdown. As with the growing list of grps, dropdown will be easy to search and scale
Reviewed By: mweststrate
Differential Revision: D21175998
fbshipit-source-id: 90f1a81dfc6c2232cd2dcf767ed01205fc63e1fd
Summary: Still requires some work (need to persist data and find a way to open IntelliJ back from the plugin), but good enough to start with.
Differential Revision: D21203979
fbshipit-source-id: 186ff541a93942680dd35b5b76b101c00183360f
Summary:
This allows bundles to have their `.buildignore` file. I did that first to remove some things from the `static` folder, but it turned out that those aren't just unnecessary for the bundle but completely unused in general. I still think there may be a case for allowing this on a per-package basis.
Right now it excludes `.ts` files, license files and readmes. Full list of excluded files is here: P129474747
It adds up to about 6MB in the *DEFLATE compressed* bundle.
Reviewed By: nikoant
Differential Revision: D21176143
fbshipit-source-id: a13e900152617fdf1c2dbfa6330c0a06a75e5484
Summary: It seems that these are not referenced anywhere in the repository.
Reviewed By: mweststrate
Differential Revision: D21176051
fbshipit-source-id: 502d4a2020d230f8c57bee31e15fbcf996484676